From 684705b383b52099294c6199760744b5003c1490 Mon Sep 17 00:00:00 2001 From: Duidev Software House Date: Sun, 12 Oct 2025 23:06:46 +0700 Subject: [PATCH] update --- .../app/Http/Controllers/DokterController.php | 3 + .../Controllers/JsonTransferController.php | 36 +- .../app/Http/Controllers/ListController.php | 375 +- .../public/high/assets/css/bootstrap.min.css | 7 - htdocs/public/high/assets/css/icons.css | 13661 ---------------- htdocs/public/high/assets/css/icons.css.map | 34 - htdocs/public/high/assets/css/style.css | 6060 ------- htdocs/public/high/assets/css/style.css.map | 55 - .../public/high/assets/fonts/FontAwesome.otf | Bin 134808 -> 0 bytes .../high/assets/fonts/Simple-Line-Icons.eot | Bin 53572 -> 0 bytes .../high/assets/fonts/Simple-Line-Icons.svg | 211 - .../high/assets/fonts/Simple-Line-Icons.ttf | Bin 53368 -> 0 bytes .../high/assets/fonts/Simple-Line-Icons.woff | Bin 53444 -> 0 bytes .../high/assets/fonts/Simple-Line-Icons.woff2 | Bin 26384 -> 0 bytes .../public/high/assets/fonts/dripicons-v2.eot | Bin 40522 -> 0 bytes .../public/high/assets/fonts/dripicons-v2.svg | 210 - .../public/high/assets/fonts/dripicons-v2.ttf | Bin 40348 -> 0 bytes .../high/assets/fonts/dripicons-v2.woff | Bin 26004 -> 0 bytes .../high/assets/fonts/feather-webfont.eot | Bin 10791 -> 0 bytes .../high/assets/fonts/feather-webfont.svg | 158 - .../high/assets/fonts/feather-webfont.ttf | Bin 28532 -> 0 bytes .../high/assets/fonts/feather-webfont.woff | Bin 12936 -> 0 bytes .../high/assets/fonts/fontawesome-webfont.eot | Bin 165742 -> 0 bytes .../high/assets/fonts/fontawesome-webfont.svg | 2671 --- .../high/assets/fonts/fontawesome-webfont.ttf | Bin 165548 -> 0 bytes .../assets/fonts/fontawesome-webfont.woff | Bin 98024 -> 0 bytes .../assets/fonts/fontawesome-webfont.woff2 | Bin 77160 -> 0 bytes .../fonts/materialdesignicons-webfont.eot | Bin 292776 -> 0 bytes .../fonts/materialdesignicons-webfont.svg | 6150 ------- .../fonts/materialdesignicons-webfont.ttf | Bin 292556 -> 0 bytes .../fonts/materialdesignicons-webfont.woff | Bin 144072 -> 0 bytes .../fonts/materialdesignicons-webfont.woff2 | Bin 109248 -> 0 bytes htdocs/public/high/assets/fonts/slick.eot | Bin 2048 -> 0 bytes htdocs/public/high/assets/fonts/slick.svg | 14 - htdocs/public/high/assets/fonts/slick.ttf | Bin 1892 -> 0 bytes htdocs/public/high/assets/fonts/slick.woff | Bin 1380 -> 0 bytes .../assets/images/attached-files/img-1.jpg | Bin 5076 -> 0 bytes .../assets/images/attached-files/img-2.jpg | Bin 5076 -> 0 bytes .../assets/images/attached-files/img-3.jpg | Bin 5076 -> 0 bytes htdocs/public/high/assets/images/bg-1.jpg | Bin 48820 -> 0 bytes htdocs/public/high/assets/images/bg-2.jpg | Bin 48820 -> 0 bytes .../high/assets/images/companies/airbnb.png | Bin 2652 -> 0 bytes .../high/assets/images/companies/amazon.png | Bin 2652 -> 0 bytes .../high/assets/images/companies/apple.png | Bin 2652 -> 0 bytes .../high/assets/images/companies/cisco.jpg | Bin 2621 -> 0 bytes .../high/assets/images/companies/facebook.png | Bin 2652 -> 0 bytes .../high/assets/images/companies/google.png | Bin 2652 -> 0 bytes .../high/assets/images/companies/intel.png | Bin 2652 -> 0 bytes .../high/assets/images/companies/yahoo.png | Bin 2652 -> 0 bytes htdocs/public/high/assets/images/email/1.png | Bin 19181 -> 0 bytes htdocs/public/high/assets/images/email/2.png | Bin 21207 -> 0 bytes htdocs/public/high/assets/images/email/3.png | Bin 22695 -> 0 bytes htdocs/public/high/assets/images/favicon.ico | Bin 1150 -> 0 bytes .../high/assets/images/file_icons/3ds.svg | 53 - .../high/assets/images/file_icons/aac.svg | 54 - .../high/assets/images/file_icons/ai.svg | 48 - .../high/assets/images/file_icons/avi.svg | 50 - .../high/assets/images/file_icons/bmp.svg | 56 - .../high/assets/images/file_icons/cad.svg | 53 - .../high/assets/images/file_icons/cdr.svg | 53 - .../high/assets/images/file_icons/css.svg | 56 - .../high/assets/images/file_icons/dat.svg | 50 - .../high/assets/images/file_icons/dll.svg | 49 - .../high/assets/images/file_icons/dmg.svg | 54 - .../high/assets/images/file_icons/doc.svg | 54 - .../high/assets/images/file_icons/eps.svg | 54 - .../high/assets/images/file_icons/fla.svg | 51 - .../high/assets/images/file_icons/flv.svg | 51 - .../high/assets/images/file_icons/gif.svg | 53 - .../high/assets/images/file_icons/html.svg | 54 - .../high/assets/images/file_icons/indd.svg | 52 - .../high/assets/images/file_icons/iso.svg | 53 - .../high/assets/images/file_icons/jpg.svg | 55 - .../high/assets/images/file_icons/js.svg | 50 - .../high/assets/images/file_icons/midi.svg | 53 - .../high/assets/images/file_icons/mov.svg | 54 - .../high/assets/images/file_icons/mp3.svg | 57 - .../high/assets/images/file_icons/mpg.svg | 56 - .../high/assets/images/file_icons/pdf.svg | 51 - .../high/assets/images/file_icons/php.svg | 54 - .../high/assets/images/file_icons/png.svg | 56 - .../high/assets/images/file_icons/ppt.svg | 51 - .../high/assets/images/file_icons/ps.svg | 51 - .../high/assets/images/file_icons/psd.svg | 53 - .../high/assets/images/file_icons/raw.svg | 53 - .../high/assets/images/file_icons/sql.svg | 55 - .../high/assets/images/file_icons/svg.svg | 55 - .../high/assets/images/file_icons/tif.svg | 50 - .../high/assets/images/file_icons/txt.svg | 51 - .../high/assets/images/file_icons/wmv.svg | 54 - .../high/assets/images/file_icons/xls.svg | 53 - .../high/assets/images/file_icons/xml.svg | 53 - .../high/assets/images/file_icons/zip.svg | 51 - htdocs/public/high/assets/images/logo.png | Bin 2668 -> 0 bytes .../public/high/assets/images/logo_light.png | Bin 2622 -> 0 bytes htdocs/public/high/assets/images/logo_sm.png | Bin 1562 -> 0 bytes .../public/high/assets/images/small/img-1.jpg | Bin 13616 -> 0 bytes .../public/high/assets/images/small/img-2.jpg | Bin 13616 -> 0 bytes .../public/high/assets/images/small/img-3.jpg | Bin 13616 -> 0 bytes .../public/high/assets/images/small/img-4.jpg | Bin 13616 -> 0 bytes .../public/high/assets/images/small/img-5.jpg | Bin 13616 -> 0 bytes .../public/high/assets/images/small/img-6.jpg | Bin 13616 -> 0 bytes .../public/high/assets/images/small/img-7.jpg | Bin 13616 -> 0 bytes .../high/assets/images/users/avatar-1.jpg | Bin 1918 -> 0 bytes .../high/assets/images/users/avatar-10.jpg | Bin 1918 -> 0 bytes .../high/assets/images/users/avatar-2.jpg | Bin 1918 -> 0 bytes .../high/assets/images/users/avatar-3.jpg | Bin 1918 -> 0 bytes .../high/assets/images/users/avatar-4.jpg | Bin 1918 -> 0 bytes .../high/assets/images/users/avatar-5.jpg | Bin 1918 -> 0 bytes .../high/assets/images/users/avatar-6.jpg | Bin 1918 -> 0 bytes .../high/assets/images/users/avatar-7.jpg | Bin 1918 -> 0 bytes .../high/assets/images/users/avatar-8.jpg | Bin 1918 -> 0 bytes .../high/assets/images/users/avatar-9.jpg | Bin 1918 -> 0 bytes htdocs/public/high/assets/js/bootstrap.min.js | 7 - htdocs/public/high/assets/js/jquery.app.js | 57 - htdocs/public/high/assets/js/jquery.core.js | 102 - htdocs/public/high/assets/js/jquery.min.js | 4 - .../high/assets/js/jquery.slimscroll.js | 470 - htdocs/public/high/assets/js/modernizr.min.js | 1 - htdocs/public/high/assets/js/popper.min.js | 5 - htdocs/public/high/assets/js/waves.js | 498 - htdocs/public/high/assets/js/wow.min.js | 2 - .../assets/pages/jquery.autocomplete.init.js | 84 - .../high/assets/pages/jquery.calendar.js | 207 - .../high/assets/pages/jquery.chartist.init.js | 857 - .../high/assets/pages/jquery.chartjs.init.js | 262 - .../assets/pages/jquery.charts-sparkline.js | 209 - .../high/assets/pages/jquery.companies.js | 142 - .../assets/pages/jquery.dashboard.init.js | 282 - .../high/assets/pages/jquery.flot.init.js | 712 - .../high/assets/pages/jquery.footable.js | 86 - .../assets/pages/jquery.form-advanced.init.js | 60 - .../assets/pages/jquery.form-pickers.init.js | 149 - .../public/high/assets/pages/jquery.gmaps.js | 226 - .../assets/pages/jquery.google-charts.init.js | 450 - .../assets/pages/jquery.jvectormap.init.js | 214 - .../assets/pages/jquery.mapael-map.init.js | 316 - .../high/assets/pages/jquery.morris.init.js | 201 - .../high/assets/pages/jquery.range-sliders.js | 102 - .../public/high/assets/pages/jquery.rating.js | 195 - .../assets/pages/jquery.sweet-alert.init.js | 266 - .../public/high/assets/pages/jquery.toastr.js | 122 - .../high/assets/pages/jquery.tooltipster.js | 68 - .../high/assets/pages/jquery.wizard-init.js | 58 - .../assets/pages/jquery.xeditable.init.js | 98 - .../high/assets/scss/_account-pages.scss | 143 - htdocs/public/high/assets/scss/_alerts.scss | 128 - .../high/assets/scss/_bootstrap-reset.scss | 348 - htdocs/public/high/assets/scss/_buttons.scss | 366 - htdocs/public/high/assets/scss/_calendar.scss | 134 - htdocs/public/high/assets/scss/_card.scss | 30 - htdocs/public/high/assets/scss/_charts.scss | 150 - .../high/assets/scss/_checkbox-radio.scss | 441 - .../public/high/assets/scss/_coming-soon.scss | 54 - htdocs/public/high/assets/scss/_common.scss | 121 - .../public/high/assets/scss/_companies.scss | 18 - htdocs/public/high/assets/scss/_email.scss | 216 - htdocs/public/high/assets/scss/_faq.scss | 25 - .../high/assets/scss/_file-manager.scss | 52 - .../high/assets/scss/_form-advanced.scss | 250 - .../high/assets/scss/_form-elements.scss | 95 - .../high/assets/scss/_form-pickers.scss | 120 - .../high/assets/scss/_form-uploads.scss | 18 - .../high/assets/scss/_form-validation.scss | 25 - .../public/high/assets/scss/_form-wizard.scss | 104 - htdocs/public/high/assets/scss/_gallery.scss | 112 - htdocs/public/high/assets/scss/_helper.scss | 210 - htdocs/public/high/assets/scss/_maps.scss | 114 - htdocs/public/high/assets/scss/_menu.scss | 696 - htdocs/public/high/assets/scss/_modal.scss | 116 - .../high/assets/scss/_popover-tooltips.scss | 71 - htdocs/public/high/assets/scss/_pricing.scss | 130 - htdocs/public/high/assets/scss/_print.scss | 29 - htdocs/public/high/assets/scss/_profile.scss | 11 - htdocs/public/high/assets/scss/_progress.scss | 108 - htdocs/public/high/assets/scss/_projects.scss | 47 - .../public/high/assets/scss/_responsive.scss | 211 - htdocs/public/high/assets/scss/_ribbons.scss | 305 - .../high/assets/scss/_search-results.scss | 17 - htdocs/public/high/assets/scss/_spinners.scss | 14 - .../public/high/assets/scss/_summernote.scss | 32 - .../public/high/assets/scss/_sweet-alert.scss | 73 - htdocs/public/high/assets/scss/_tables.scss | 360 - htdocs/public/high/assets/scss/_tabs.scss | 80 - .../public/high/assets/scss/_taskboard.scss | 83 - htdocs/public/high/assets/scss/_tickets.scss | 19 - htdocs/public/high/assets/scss/_timeline.scss | 189 - .../public/high/assets/scss/_variables.scss | 66 - htdocs/public/high/assets/scss/_waves.scss | 139 - htdocs/public/high/assets/scss/_widgets.scss | 158 - htdocs/public/high/assets/scss/_wysiwig.scss | 62 - htdocs/public/high/assets/scss/icons.scss | 14 - .../high/assets/scss/icons/css/dripicons.css | 832 - .../assets/scss/icons/css/dripicons.css.map | 9 - .../high/assets/scss/icons/css/feather.css | 564 - .../assets/scss/icons/css/feather.css.map | 9 - .../scss/icons/css/materialdesignicons.css | 5040 ------ .../icons/css/materialdesignicons.css.map | 7 - .../scss/icons/css/pe-icon-7-stroke.css | 626 - .../scss/icons/css/pe-icon-7-stroke.css.map | 7 - .../high/assets/scss/icons/css/typicons.css | 1370 -- .../assets/scss/icons/css/typicons.css.map | 7 - .../assets/scss/icons/dripicons/dripicons.css | 832 - .../scss/icons/dripicons/dripicons.css.map | 9 - .../scss/icons/dripicons/dripicons.scss | 638 - .../icons/dripicons/fonts/dripicons-v2.eot | Bin 40522 -> 0 bytes .../icons/dripicons/fonts/dripicons-v2.svg | 210 - .../icons/dripicons/fonts/dripicons-v2.ttf | Bin 40348 -> 0 bytes .../icons/dripicons/fonts/dripicons-v2.woff | Bin 26004 -> 0 bytes .../assets/scss/icons/feather/feather.css | 564 - .../assets/scss/icons/feather/feather.css.map | 9 - .../assets/scss/icons/feather/feather.scss | 572 - .../icons/feather/fonts/feather-webfont.eot | Bin 10791 -> 0 bytes .../icons/feather/fonts/feather-webfont.svg | 158 - .../icons/feather/fonts/feather-webfont.ttf | Bin 28532 -> 0 bytes .../icons/feather/fonts/feather-webfont.woff | Bin 12936 -> 0 bytes .../icons/font-awesome/css/font-awesome.css | 3049 ---- .../font-awesome/css/font-awesome.css.map | 22 - .../font-awesome/css/font-awesome.min.css | 4 - .../scss/icons/font-awesome/css/mixins.css | 0 .../scss/icons/font-awesome/css/variables.css | 0 .../icons/font-awesome/fonts/FontAwesome.otf | Bin 134808 -> 0 bytes .../fonts/fontawesome-webfont.eot | Bin 165742 -> 0 bytes .../fonts/fontawesome-webfont.svg | 2671 --- .../fonts/fontawesome-webfont.ttf | Bin 165548 -> 0 bytes .../fonts/fontawesome-webfont.woff | Bin 98024 -> 0 bytes .../fonts/fontawesome-webfont.woff2 | Bin 77160 -> 0 bytes .../icons/font-awesome/less/animated.less | 34 - .../font-awesome/less/bordered-pulled.less | 25 - .../scss/icons/font-awesome/less/core.less | 12 - .../icons/font-awesome/less/fixed-width.less | 6 - .../icons/font-awesome/less/font-awesome.less | 18 - .../scss/icons/font-awesome/less/icons.less | 789 - .../scss/icons/font-awesome/less/larger.less | 13 - .../scss/icons/font-awesome/less/list.less | 19 - .../scss/icons/font-awesome/less/mixins.less | 60 - .../scss/icons/font-awesome/less/path.less | 15 - .../font-awesome/less/rotated-flipped.less | 20 - .../font-awesome/less/screen-reader.less | 5 - .../scss/icons/font-awesome/less/stacked.less | 20 - .../icons/font-awesome/less/variables.less | 800 - .../icons/font-awesome/scss/_animated.scss | 34 - .../font-awesome/scss/_bordered-pulled.scss | 25 - .../scss/icons/font-awesome/scss/_core.scss | 12 - .../icons/font-awesome/scss/_fixed-width.scss | 6 - .../scss/icons/font-awesome/scss/_icons.scss | 789 - .../scss/icons/font-awesome/scss/_larger.scss | 13 - .../scss/icons/font-awesome/scss/_list.scss | 19 - .../scss/icons/font-awesome/scss/_mixins.scss | 60 - .../scss/icons/font-awesome/scss/_path.scss | 15 - .../font-awesome/scss/_rotated-flipped.scss | 20 - .../font-awesome/scss/_screen-reader.scss | 5 - .../icons/font-awesome/scss/_stacked.scss | 20 - .../icons/font-awesome/scss/_variables.scss | 800 - .../icons/font-awesome/scss/font-awesome.css | 3049 ---- .../font-awesome/scss/font-awesome.css.map | 22 - .../icons/font-awesome/scss/font-awesome.scss | 18 - .../css/materialdesignicons.css | 8457 ---------- .../css/materialdesignicons.css.map | 16 - .../css/materialdesignicons.min.css | 2 - .../css/materialdesignicons.min.css.map | 7 - .../fonts/materialdesignicons-webfont.eot | Bin 292776 -> 0 bytes .../fonts/materialdesignicons-webfont.svg | 6150 ------- .../fonts/materialdesignicons-webfont.ttf | Bin 292556 -> 0 bytes .../fonts/materialdesignicons-webfont.woff | Bin 144072 -> 0 bytes .../fonts/materialdesignicons-webfont.woff2 | Bin 109248 -> 0 bytes .../icons/material-design/scss/_animated.scss | 27 - .../icons/material-design/scss/_core.scss | 10 - .../icons/material-design/scss/_extras.scss | 65 - .../material-design/scss/_functions.scss | 20 - .../icons/material-design/scss/_icons.scss | 10 - .../icons/material-design/scss/_path.scss | 11 - .../material-design/scss/_variables.scss | 2057 --- .../scss/materialdesignicons.css | 8457 ---------- .../scss/materialdesignicons.css.map | 16 - .../scss/materialdesignicons.scss | 8 - .../css/simple-line-icons.css | 753 - .../css/simple-line-icons.css.map | 9 - .../fonts/Simple-Line-Icons.eot | Bin 53572 -> 0 bytes .../fonts/Simple-Line-Icons.svg | 211 - .../fonts/Simple-Line-Icons.ttf | Bin 53368 -> 0 bytes .../fonts/Simple-Line-Icons.woff | Bin 53444 -> 0 bytes .../fonts/Simple-Line-Icons.woff2 | Bin 26384 -> 0 bytes .../less/simple-line-icons.less | 952 -- .../scss/simple-line-icons.css | 753 - .../scss/simple-line-icons.css.map | 9 - .../scss/simple-line-icons.scss | 949 -- htdocs/public/high/assets/scss/style.scss | 101 - .../high/plugins/autoNumeric/autoNumeric.js | 1465 -- .../high/plugins/autocomplete/countries.js | 267 - .../public/high/plugins/autocomplete/demo.js | 77 - .../autocomplete/jquery.autocomplete.min.js | 8 - .../plugins/autocomplete/jquery.mockjax.js | 601 - .../css/bootstrap-colorpicker.css | 222 - .../css/bootstrap-colorpicker.css.map | 1 - .../css/bootstrap-colorpicker.min.css | 10 - .../css/bootstrap-colorpicker.min.css.map | 1 - .../alpha-horizontal.png | Bin 557 -> 0 bytes .../img/bootstrap-colorpicker/alpha.png | Bin 488 -> 0 bytes .../bootstrap-colorpicker/hue-horizontal.png | Bin 478 -> 0 bytes .../img/bootstrap-colorpicker/hue.png | Bin 504 -> 0 bytes .../img/bootstrap-colorpicker/saturation.png | Bin 4143 -> 0 bytes .../js/bootstrap-colorpicker.js | 1106 -- .../js/bootstrap-colorpicker.min.js | 5 - .../css/bootstrap-datepicker.min.css | 9 - .../js/bootstrap-datepicker.min.js | 10 - .../daterangepicker.css | 269 - .../daterangepicker.js | 1618 -- .../plugins/bootstrap-daterangepicker/drp.png | Bin 49148 -> 0 bytes .../js/bootstrap-filestyle.min.js | 10 - .../bootstrap-fileupload.css | 116 - .../bootstrap-fileupload.js | 171 - .../bootstrap-inputmask.min.js | 7 - .../bootstrap-maxlength.js | 535 - .../bootstrap-select/css/bootstrap-select.css | 300 - .../css/bootstrap-select.css.map | 1 - .../css/bootstrap-select.min.css | 6 - .../bootstrap-select/js/bootstrap-select.js | 1872 --- .../js/bootstrap-select.js.map | 1 - .../js/bootstrap-select.min.js | 9 - .../js/i18n/defaults-ar_AR.js | 49 - .../js/i18n/defaults-ar_AR.min.js | 12 - .../js/i18n/defaults-bg_BG.js | 44 - .../js/i18n/defaults-bg_BG.min.js | 7 - .../js/i18n/defaults-cro_CRO.js | 44 - .../js/i18n/defaults-cro_CRO.min.js | 7 - .../js/i18n/defaults-cs_CZ.js | 37 - .../js/i18n/defaults-cs_CZ.min.js | 7 - .../js/i18n/defaults-da_DK.js | 44 - .../js/i18n/defaults-da_DK.min.js | 7 - .../js/i18n/defaults-de_DE.js | 44 - .../js/i18n/defaults-de_DE.min.js | 7 - .../js/i18n/defaults-en_US.js | 44 - .../js/i18n/defaults-en_US.min.js | 7 - .../js/i18n/defaults-es_CL.js | 37 - .../js/i18n/defaults-es_CL.min.js | 7 - .../js/i18n/defaults-es_ES.js | 37 - .../js/i18n/defaults-es_ES.min.js | 7 - .../js/i18n/defaults-et_EE.js | 44 - .../js/i18n/defaults-et_EE.min.js | 7 - .../bootstrap-select/js/i18n/defaults-eu.js | 37 - .../js/i18n/defaults-eu.min.js | 7 - .../js/i18n/defaults-fa_IR.js | 37 - .../js/i18n/defaults-fa_IR.min.js | 7 - .../js/i18n/defaults-fi_FI.js | 44 - .../js/i18n/defaults-fi_FI.min.js | 7 - .../js/i18n/defaults-fr_FR.js | 44 - .../js/i18n/defaults-fr_FR.min.js | 7 - .../js/i18n/defaults-hu_HU.js | 44 - .../js/i18n/defaults-hu_HU.min.js | 7 - .../js/i18n/defaults-id_ID.js | 37 - .../js/i18n/defaults-id_ID.min.js | 7 - .../js/i18n/defaults-it_IT.js | 39 - .../js/i18n/defaults-it_IT.min.js | 7 - .../js/i18n/defaults-ja_JP.js | 37 - .../js/i18n/defaults-ja_JP.min.js | 7 - .../js/i18n/defaults-kh_KM.js | 44 - .../js/i18n/defaults-kh_KM.min.js | 7 - .../js/i18n/defaults-ko_KR.js | 44 - .../js/i18n/defaults-ko_KR.min.js | 7 - .../js/i18n/defaults-lt_LT.js | 44 - .../js/i18n/defaults-lt_LT.min.js | 7 - .../js/i18n/defaults-nb_NO.js | 44 - .../js/i18n/defaults-nb_NO.min.js | 7 - .../js/i18n/defaults-nl_NL.js | 37 - .../js/i18n/defaults-nl_NL.min.js | 7 - .../js/i18n/defaults-pl_PL.js | 37 - .../js/i18n/defaults-pl_PL.min.js | 7 - .../js/i18n/defaults-pt_BR.js | 37 - .../js/i18n/defaults-pt_BR.min.js | 7 - .../js/i18n/defaults-pt_PT.js | 37 - .../js/i18n/defaults-pt_PT.min.js | 7 - .../js/i18n/defaults-ro_RO.js | 38 - .../js/i18n/defaults-ro_RO.min.js | 7 - .../js/i18n/defaults-ru_RU.js | 38 - .../js/i18n/defaults-ru_RU.min.js | 7 - .../js/i18n/defaults-sk_SK.js | 37 - .../js/i18n/defaults-sk_SK.min.js | 7 - .../js/i18n/defaults-sl_SI.js | 42 - .../js/i18n/defaults-sl_SI.min.js | 7 - .../js/i18n/defaults-sv_SE.js | 44 - .../js/i18n/defaults-sv_SE.min.js | 7 - .../js/i18n/defaults-tr_TR.js | 44 - .../js/i18n/defaults-tr_TR.min.js | 7 - .../js/i18n/defaults-ua_UA.js | 37 - .../js/i18n/defaults-ua_UA.min.js | 7 - .../js/i18n/defaults-vi_VN.js | 44 - .../js/i18n/defaults-vi_VN.min.js | 7 - .../js/i18n/defaults-zh_CN.js | 37 - .../js/i18n/defaults-zh_CN.min.js | 7 - .../js/i18n/defaults-zh_TW.js | 37 - .../js/i18n/defaults-zh_TW.min.js | 7 - .../css/bootstrap-tagsinput.css | 60 - .../js/bootstrap-tagsinput.min.js | 7 - .../bootstrap-timepicker.js | 1177 -- .../bootstrap-timepicker.min.css | 148 - .../plugins/chartist/css/chartist.min.css | 1 - .../js/chartist-plugin-tooltip.min.js | 8 - .../high/plugins/chartist/js/chartist.min.js | 10 - .../css/bootstrap-clockpicker.min.css | 5 - .../js/bootstrap-clockpicker.min.js | 6 - .../count-down/jquery.lwtCountdown-1.0.js | 162 - .../plugins/counterup/jquery.counterup.min.js | 8 - .../plugins/custombox/css/custombox.min.css | 10 - .../plugins/custombox/js/custombox.min.js | 10 - .../high/plugins/custombox/js/legacy.min.js | 18 - .../datatables/buttons.bootstrap4.min.css | 1 - .../datatables/buttons.bootstrap4.min.js | 6 - .../plugins/datatables/buttons.colVis.min.js | 5 - .../plugins/datatables/buttons.html5.min.js | 26 - .../plugins/datatables/buttons.print.min.js | 4 - .../datatables/dataTables.bootstrap4.min.css | 1 - .../datatables/dataTables.bootstrap4.min.js | 8 - .../datatables/dataTables.buttons.min.js | 35 - .../datatables/dataTables.keyTable.min.js | 22 - .../datatables/dataTables.responsive.min.js | 26 - .../datatables/dataTables.select.min.js | 27 - .../datatables/jquery.dataTables.min.js | 167 - .../datatables/json/scroller-demo.json | 2502 --- .../high/plugins/datatables/jszip.min.js | 14 - .../high/plugins/datatables/pdfmake.min.js | 22 - .../datatables/responsive.bootstrap4.min.css | 1 - .../datatables/responsive.bootstrap4.min.js | 6 - .../datatables/select.bootstrap4.min.css | 1 - .../high/plugins/datatables/vfs_fonts.js | 1 - .../high/plugins/excellexport/index.html | 1 - .../jquery.battatech.excelexport.js | 184 - .../plugins/footable/css/fonts/footable.eot | Bin 4824 -> 0 bytes .../plugins/footable/css/fonts/footable.svg | 78 - .../plugins/footable/css/fonts/footable.ttf | Bin 4656 -> 0 bytes .../plugins/footable/css/fonts/footable.woff | Bin 4016 -> 0 bytes .../plugins/footable/css/footable.core.css | 181 - .../plugins/footable/js/footable.all.min.js | 14 - .../high/plugins/fullcalendar/LICENSE.txt | 20 - .../high/plugins/fullcalendar/README.md | 10 - .../examples/background-events.html | 109 - .../fullcalendar/examples/daygrid-views.html | 109 - .../examples/external-dragging-2cals.html | 75 - .../examples/external-dragging-builtin.html | 149 - .../fullcalendar/examples/full-height.html | 129 - .../examples/google-calendar.html | 86 - .../fullcalendar/examples/js/theme-chooser.js | 141 - .../plugins/fullcalendar/examples/json.html | 93 - .../fullcalendar/examples/json/events.json | 56 - .../fullcalendar/examples/list-views.html | 118 - .../fullcalendar/examples/locales.html | 152 - .../fullcalendar/examples/month-view.html | 103 - .../fullcalendar/examples/php/get-events.php | 50 - .../examples/php/get-time-zones.php | 9 - .../fullcalendar/examples/php/utils.php | 130 - .../plugins/fullcalendar/examples/rrule.html | 73 - .../fullcalendar/examples/selectable.html | 125 - .../fullcalendar/examples/theming.html | 215 - .../fullcalendar/examples/time-zones.html | 145 - .../fullcalendar/examples/timegrid-views.html | 113 - .../fullcalendar/examples/week-numbers.html | 118 - .../high/plugins/fullcalendar/locales-all.js | 1348 -- .../plugins/fullcalendar/locales-all.min.js | 1 - .../high/plugins/fullcalendar/locales/af.js | 30 - .../plugins/fullcalendar/locales/ar-dz.js | 31 - .../plugins/fullcalendar/locales/ar-kw.js | 31 - .../plugins/fullcalendar/locales/ar-ly.js | 31 - .../plugins/fullcalendar/locales/ar-ma.js | 31 - .../plugins/fullcalendar/locales/ar-sa.js | 31 - .../plugins/fullcalendar/locales/ar-tn.js | 31 - .../high/plugins/fullcalendar/locales/ar.js | 31 - .../high/plugins/fullcalendar/locales/bg.js | 31 - .../high/plugins/fullcalendar/locales/bs.js | 32 - .../high/plugins/fullcalendar/locales/ca.js | 30 - .../high/plugins/fullcalendar/locales/cs.js | 32 - .../high/plugins/fullcalendar/locales/da.js | 30 - .../high/plugins/fullcalendar/locales/de.js | 33 - .../high/plugins/fullcalendar/locales/el.js | 30 - .../plugins/fullcalendar/locales/en-au.js | 17 - .../plugins/fullcalendar/locales/en-gb.js | 17 - .../plugins/fullcalendar/locales/en-nz.js | 17 - .../plugins/fullcalendar/locales/es-us.js | 30 - .../high/plugins/fullcalendar/locales/es.js | 30 - .../high/plugins/fullcalendar/locales/et.js | 32 - .../high/plugins/fullcalendar/locales/eu.js | 30 - .../high/plugins/fullcalendar/locales/fa.js | 33 - .../high/plugins/fullcalendar/locales/fi.js | 30 - .../plugins/fullcalendar/locales/fr-ca.js | 27 - .../plugins/fullcalendar/locales/fr-ch.js | 31 - .../high/plugins/fullcalendar/locales/fr.js | 31 - .../high/plugins/fullcalendar/locales/gl.js | 30 - .../high/plugins/fullcalendar/locales/he.js | 27 - .../high/plugins/fullcalendar/locales/hi.js | 32 - .../high/plugins/fullcalendar/locales/hr.js | 32 - .../high/plugins/fullcalendar/locales/hu.js | 30 - .../high/plugins/fullcalendar/locales/id.js | 30 - .../high/plugins/fullcalendar/locales/is.js | 30 - .../high/plugins/fullcalendar/locales/it.js | 32 - .../high/plugins/fullcalendar/locales/ja.js | 28 - .../high/plugins/fullcalendar/locales/ka.js | 32 - .../high/plugins/fullcalendar/locales/kk.js | 32 - .../high/plugins/fullcalendar/locales/ko.js | 26 - .../high/plugins/fullcalendar/locales/lb.js | 30 - .../high/plugins/fullcalendar/locales/lt.js | 30 - .../high/plugins/fullcalendar/locales/lv.js | 32 - .../high/plugins/fullcalendar/locales/mk.js | 28 - .../high/plugins/fullcalendar/locales/ms.js | 32 - .../high/plugins/fullcalendar/locales/nb.js | 30 - .../high/plugins/fullcalendar/locales/nl.js | 30 - .../high/plugins/fullcalendar/locales/nn.js | 30 - .../high/plugins/fullcalendar/locales/pl.js | 30 - .../plugins/fullcalendar/locales/pt-br.js | 28 - .../high/plugins/fullcalendar/locales/pt.js | 30 - .../high/plugins/fullcalendar/locales/ro.js | 32 - .../high/plugins/fullcalendar/locales/ru.js | 32 - .../high/plugins/fullcalendar/locales/sk.js | 32 - .../high/plugins/fullcalendar/locales/sl.js | 30 - .../high/plugins/fullcalendar/locales/sq.js | 32 - .../plugins/fullcalendar/locales/sr-cyrl.js | 32 - .../high/plugins/fullcalendar/locales/sr.js | 32 - .../high/plugins/fullcalendar/locales/sv.js | 30 - .../high/plugins/fullcalendar/locales/th.js | 25 - .../high/plugins/fullcalendar/locales/tr.js | 30 - .../high/plugins/fullcalendar/locales/uk.js | 32 - .../high/plugins/fullcalendar/locales/vi.js | 32 - .../plugins/fullcalendar/locales/zh-cn.js | 33 - .../plugins/fullcalendar/locales/zh-tw.js | 26 - .../public/high/plugins/fullcalendar/main.css | 1052 -- .../high/plugins/fullcalendar/main.d.ts | 2730 --- .../high/plugins/fullcalendar/main.esm.js | 8558 ---------- .../public/high/plugins/fullcalendar/main.js | 8717 ---------- .../high/plugins/fullcalendar/main.min.css | 1 - .../high/plugins/fullcalendar/main.min.js | 6 - .../packages/bootstrap/LICENSE.txt | 20 - .../fullcalendar/packages/bootstrap/README.md | 8 - .../fullcalendar/packages/bootstrap/main.css | 36 - .../fullcalendar/packages/bootstrap/main.d.ts | 12 - .../packages/bootstrap/main.esm.js | 83 - .../fullcalendar/packages/bootstrap/main.js | 91 - .../packages/bootstrap/main.min.css | 1 - .../packages/bootstrap/main.min.js | 6 - .../packages/bootstrap/package.json | 33 - .../fullcalendar/packages/core/LICENSE.txt | 20 - .../fullcalendar/packages/core/README.md | 8 - .../fullcalendar/packages/core/locales-all.js | 1348 -- .../packages/core/locales-all.min.js | 1 - .../fullcalendar/packages/core/locales/af.js | 30 - .../packages/core/locales/ar-dz.js | 31 - .../packages/core/locales/ar-kw.js | 31 - .../packages/core/locales/ar-ly.js | 31 - .../packages/core/locales/ar-ma.js | 31 - .../packages/core/locales/ar-sa.js | 31 - .../packages/core/locales/ar-tn.js | 31 - .../fullcalendar/packages/core/locales/ar.js | 31 - .../fullcalendar/packages/core/locales/bg.js | 31 - .../fullcalendar/packages/core/locales/bs.js | 32 - .../fullcalendar/packages/core/locales/ca.js | 30 - .../fullcalendar/packages/core/locales/cs.js | 32 - .../fullcalendar/packages/core/locales/da.js | 30 - .../fullcalendar/packages/core/locales/de.js | 33 - .../fullcalendar/packages/core/locales/el.js | 30 - .../packages/core/locales/en-au.js | 17 - .../packages/core/locales/en-gb.js | 17 - .../packages/core/locales/en-nz.js | 17 - .../packages/core/locales/es-us.js | 30 - .../fullcalendar/packages/core/locales/es.js | 30 - .../fullcalendar/packages/core/locales/et.js | 32 - .../fullcalendar/packages/core/locales/eu.js | 30 - .../fullcalendar/packages/core/locales/fa.js | 33 - .../fullcalendar/packages/core/locales/fi.js | 30 - .../packages/core/locales/fr-ca.js | 27 - .../packages/core/locales/fr-ch.js | 31 - .../fullcalendar/packages/core/locales/fr.js | 31 - .../fullcalendar/packages/core/locales/gl.js | 30 - .../fullcalendar/packages/core/locales/he.js | 27 - .../fullcalendar/packages/core/locales/hi.js | 32 - .../fullcalendar/packages/core/locales/hr.js | 32 - .../fullcalendar/packages/core/locales/hu.js | 30 - .../fullcalendar/packages/core/locales/id.js | 30 - .../fullcalendar/packages/core/locales/is.js | 30 - .../fullcalendar/packages/core/locales/it.js | 32 - .../fullcalendar/packages/core/locales/ja.js | 28 - .../fullcalendar/packages/core/locales/ka.js | 32 - .../fullcalendar/packages/core/locales/kk.js | 32 - .../fullcalendar/packages/core/locales/ko.js | 26 - .../fullcalendar/packages/core/locales/lb.js | 30 - .../fullcalendar/packages/core/locales/lt.js | 30 - .../fullcalendar/packages/core/locales/lv.js | 32 - .../fullcalendar/packages/core/locales/mk.js | 28 - .../fullcalendar/packages/core/locales/ms.js | 32 - .../fullcalendar/packages/core/locales/nb.js | 30 - .../fullcalendar/packages/core/locales/nl.js | 30 - .../fullcalendar/packages/core/locales/nn.js | 30 - .../fullcalendar/packages/core/locales/pl.js | 30 - .../packages/core/locales/pt-br.js | 28 - .../fullcalendar/packages/core/locales/pt.js | 30 - .../fullcalendar/packages/core/locales/ro.js | 32 - .../fullcalendar/packages/core/locales/ru.js | 32 - .../fullcalendar/packages/core/locales/sk.js | 32 - .../fullcalendar/packages/core/locales/sl.js | 30 - .../fullcalendar/packages/core/locales/sq.js | 32 - .../packages/core/locales/sr-cyrl.js | 32 - .../fullcalendar/packages/core/locales/sr.js | 32 - .../fullcalendar/packages/core/locales/sv.js | 30 - .../fullcalendar/packages/core/locales/th.js | 25 - .../fullcalendar/packages/core/locales/tr.js | 30 - .../fullcalendar/packages/core/locales/uk.js | 32 - .../fullcalendar/packages/core/locales/vi.js | 32 - .../packages/core/locales/zh-cn.js | 33 - .../packages/core/locales/zh-tw.js | 26 - .../fullcalendar/packages/core/main.css | 1052 -- .../fullcalendar/packages/core/main.d.ts | 2730 --- .../fullcalendar/packages/core/main.esm.js | 8558 ---------- .../fullcalendar/packages/core/main.js | 8717 ---------- .../fullcalendar/packages/core/main.min.css | 1 - .../fullcalendar/packages/core/main.min.js | 6 - .../fullcalendar/packages/core/package.json | 30 - .../fullcalendar/packages/daygrid/LICENSE.txt | 20 - .../fullcalendar/packages/daygrid/README.md | 8 - .../fullcalendar/packages/daygrid/main.css | 78 - .../fullcalendar/packages/daygrid/main.d.ts | 310 - .../fullcalendar/packages/daygrid/main.esm.js | 1627 -- .../fullcalendar/packages/daygrid/main.js | 1641 -- .../packages/daygrid/main.min.css | 1 - .../fullcalendar/packages/daygrid/main.min.js | 6 - .../packages/daygrid/package.json | 33 - .../packages/google-calendar/LICENSE.txt | 20 - .../packages/google-calendar/README.md | 8 - .../packages/google-calendar/main.d.ts | 20 - .../packages/google-calendar/main.esm.js | 162 - .../packages/google-calendar/main.js | 170 - .../packages/google-calendar/main.min.js | 6 - .../packages/google-calendar/package.json | 33 - .../packages/interaction/LICENSE.txt | 20 - .../packages/interaction/README.md | 8 - .../packages/interaction/main.d.ts | 323 - .../packages/interaction/main.esm.js | 2132 --- .../fullcalendar/packages/interaction/main.js | 2143 --- .../packages/interaction/main.min.js | 6 - .../packages/interaction/package.json | 33 - .../fullcalendar/packages/list/LICENSE.txt | 20 - .../fullcalendar/packages/list/README.md | 8 - .../fullcalendar/packages/list/main.css | 118 - .../fullcalendar/packages/list/main.d.ts | 33 - .../fullcalendar/packages/list/main.esm.js | 335 - .../fullcalendar/packages/list/main.js | 343 - .../fullcalendar/packages/list/main.min.css | 1 - .../fullcalendar/packages/list/main.min.js | 6 - .../fullcalendar/packages/list/package.json | 33 - .../fullcalendar/packages/luxon/LICENSE.txt | 20 - .../fullcalendar/packages/luxon/README.md | 8 - .../fullcalendar/packages/luxon/main.d.ts | 14 - .../fullcalendar/packages/luxon/main.esm.js | 162 - .../fullcalendar/packages/luxon/main.js | 170 - .../fullcalendar/packages/luxon/main.min.js | 6 - .../fullcalendar/packages/luxon/package.json | 34 - .../packages/moment-timezone/LICENSE.txt | 20 - .../packages/moment-timezone/README.md | 8 - .../packages/moment-timezone/main.d.ts | 11 - .../packages/moment-timezone/main.esm.js | 58 - .../packages/moment-timezone/main.js | 64 - .../packages/moment-timezone/main.min.js | 6 - .../packages/moment-timezone/package.json | 35 - .../fullcalendar/packages/moment/LICENSE.txt | 20 - .../fullcalendar/packages/moment/README.md | 8 - .../fullcalendar/packages/moment/main.d.ts | 14 - .../fullcalendar/packages/moment/main.esm.js | 102 - .../fullcalendar/packages/moment/main.js | 110 - .../fullcalendar/packages/moment/main.min.js | 6 - .../fullcalendar/packages/moment/package.json | 34 - .../fullcalendar/packages/rrule/LICENSE.txt | 20 - .../fullcalendar/packages/rrule/README.md | 8 - .../fullcalendar/packages/rrule/main.d.ts | 9 - .../fullcalendar/packages/rrule/main.esm.js | 121 - .../fullcalendar/packages/rrule/main.js | 128 - .../fullcalendar/packages/rrule/main.min.js | 6 - .../fullcalendar/packages/rrule/package.json | 34 - .../packages/timegrid/LICENSE.txt | 20 - .../fullcalendar/packages/timegrid/README.md | 8 - .../fullcalendar/packages/timegrid/main.css | 309 - .../fullcalendar/packages/timegrid/main.d.ts | 220 - .../packages/timegrid/main.esm.js | 1345 -- .../fullcalendar/packages/timegrid/main.js | 1357 -- .../packages/timegrid/main.min.css | 1 - .../packages/timegrid/main.min.js | 6 - .../packages/timegrid/package.json | 36 - .../high/plugins/fullcalendar/vendor/rrule.js | 3782 ----- htdocs/public/high/plugins/gmaps/gmaps.min.js | 2 - .../high/plugins/gmaps/lib/gmaps.controls.js | 83 - .../high/plugins/gmaps/lib/gmaps.core.js | 488 - .../high/plugins/gmaps/lib/gmaps.events.js | 54 - .../high/plugins/gmaps/lib/gmaps.geofences.js | 14 - .../high/plugins/gmaps/lib/gmaps.geometry.js | 205 - .../high/plugins/gmaps/lib/gmaps.layers.js | 158 - .../high/plugins/gmaps/lib/gmaps.map_types.js | 29 - .../high/plugins/gmaps/lib/gmaps.markers.js | 210 - .../gmaps/lib/gmaps.native_extensions.js | 121 - .../high/plugins/gmaps/lib/gmaps.overlays.js | 134 - .../high/plugins/gmaps/lib/gmaps.routes.js | 330 - .../high/plugins/gmaps/lib/gmaps.static.js | 245 - .../plugins/gmaps/lib/gmaps.streetview.js | 44 - .../high/plugins/gmaps/lib/gmaps.styles.js | 9 - .../high/plugins/gmaps/lib/gmaps.utils.js | 42 - .../ion-rangeslider/ion.rangeSlider.css | 150 - .../ion-rangeslider/ion.rangeSlider.min.js | 76 - .../ion.rangeSlider.skinFlat.css | 106 - .../ion.rangeSlider.skinModern.css | 116 - .../ion-rangeslider/sprite-skin-flat.png | Bin 1377 -> 0 bytes .../ion-rangeslider/sprite-skin-modern.png | Bin 3923 -> 0 bytes .../plugins/isotope/js/isotope.pkgd.min.js | 12 - .../high/plugins/jquery-knob/excanvas.js | 924 -- .../high/plugins/jquery-knob/jquery.knob.js | 805 - .../plugins/jquery-mapael/jquery.mapael.js | 2249 --- .../jquery-mapael/jquery.mapael.min.js | 14 - .../plugins/jquery-mapael/maps/README.txt | 3 - .../jquery-mapael/maps/france_departments.js | 165 - .../maps/france_departments.min.js | 16 - .../plugins/jquery-mapael/maps/usa_states.js | 148 - .../jquery-mapael/maps/usa_states.min.js | 11 - .../jquery-mapael/maps/world_countries.js | 229 - .../jquery-mapael/maps/world_countries.min.js | 13 - .../maps/world_countries_mercator.js | 285 - .../maps/world_countries_mercator.min.js | 14 - .../maps/world_countries_miller.js | 322 - .../maps/world_countries_miller.min.js | 13 - .../high/plugins/jquery-mapael/raphael-min.js | 11 - .../jquery-sparkline/jquery.sparkline.min.js | 5 - .../jquery-toastr/jquery.toast.min.css | 1 - .../plugins/jquery-toastr/jquery.toast.min.js | 1 - .../high/plugins/jquery-ui/jquery-ui.min.css | 7 - .../high/plugins/jquery-ui/jquery-ui.min.js | 13 - .../plugins/jquery.steps/css/jquery.steps.css | 382 - .../jquery.steps/js/jquery.steps.min.js | 6 - .../high/plugins/jvectormap/gdp-data.js | 185 - .../jvectormap/jquery-jvectormap-2.0.2.css | 130 - .../jvectormap/jquery-jvectormap-2.0.2.min.js | 3328 ---- .../jvectormap/jquery-jvectormap-asia-mill.js | 1 - .../jvectormap/jquery-jvectormap-au-mill.js | 1 - .../jvectormap/jquery-jvectormap-ca-lcc.js | 1 - .../jvectormap/jquery-jvectormap-de-mill.js | 1 - .../jquery-jvectormap-europe-mill-en.js | 1 - .../jvectormap/jquery-jvectormap-in-mill.js | 1 - .../jquery-jvectormap-uk-mill-en.js | 1 - .../jvectormap/jquery-jvectormap-us-aea-en.js | 1 - ...jquery-jvectormap-us-il-chicago-mill-en.js | 1 - .../jquery-jvectormap-world-mill-en.js | 1 - .../magnific-popup/css/magnific-popup.css | 369 - .../js/jquery.magnific-popup.min.js | 4 - htdocs/public/high/plugins/moment/moment.js | 4514 ----- .../high/plugins/parsleyjs/parsley.min.js | 18 - .../high/plugins/raphael/raphael-min.js | 11 - .../high/plugins/raty-fa/jquery.raty-fa.js | 452 - .../responsive-table/css/rwd-table.min.css | 7 - .../responsive-table/js/rwd-table.min.js | 7 - .../high/plugins/select2/css/select2.css | 484 - .../high/plugins/select2/css/select2.min.css | 1 - .../public/high/plugins/select2/js/i18n/ar.js | 3 - .../public/high/plugins/select2/js/i18n/az.js | 3 - .../public/high/plugins/select2/js/i18n/bg.js | 3 - .../public/high/plugins/select2/js/i18n/ca.js | 3 - .../public/high/plugins/select2/js/i18n/cs.js | 3 - .../public/high/plugins/select2/js/i18n/da.js | 3 - .../public/high/plugins/select2/js/i18n/de.js | 3 - .../public/high/plugins/select2/js/i18n/el.js | 3 - .../public/high/plugins/select2/js/i18n/en.js | 3 - .../public/high/plugins/select2/js/i18n/es.js | 3 - .../public/high/plugins/select2/js/i18n/et.js | 3 - .../public/high/plugins/select2/js/i18n/eu.js | 3 - .../public/high/plugins/select2/js/i18n/fa.js | 3 - .../public/high/plugins/select2/js/i18n/fi.js | 3 - .../public/high/plugins/select2/js/i18n/fr.js | 3 - .../public/high/plugins/select2/js/i18n/gl.js | 3 - .../public/high/plugins/select2/js/i18n/he.js | 3 - .../public/high/plugins/select2/js/i18n/hi.js | 3 - .../public/high/plugins/select2/js/i18n/hr.js | 3 - .../public/high/plugins/select2/js/i18n/hu.js | 3 - .../public/high/plugins/select2/js/i18n/id.js | 3 - .../public/high/plugins/select2/js/i18n/is.js | 3 - .../public/high/plugins/select2/js/i18n/it.js | 3 - .../public/high/plugins/select2/js/i18n/ja.js | 3 - .../public/high/plugins/select2/js/i18n/km.js | 3 - .../public/high/plugins/select2/js/i18n/ko.js | 3 - .../public/high/plugins/select2/js/i18n/lt.js | 3 - .../public/high/plugins/select2/js/i18n/lv.js | 3 - .../public/high/plugins/select2/js/i18n/mk.js | 3 - .../public/high/plugins/select2/js/i18n/ms.js | 3 - .../public/high/plugins/select2/js/i18n/nb.js | 3 - .../public/high/plugins/select2/js/i18n/nl.js | 3 - .../public/high/plugins/select2/js/i18n/pl.js | 3 - .../high/plugins/select2/js/i18n/pt-BR.js | 3 - .../public/high/plugins/select2/js/i18n/pt.js | 3 - .../public/high/plugins/select2/js/i18n/ro.js | 3 - .../public/high/plugins/select2/js/i18n/ru.js | 3 - .../public/high/plugins/select2/js/i18n/sk.js | 3 - .../high/plugins/select2/js/i18n/sr-Cyrl.js | 3 - .../public/high/plugins/select2/js/i18n/sr.js | 3 - .../public/high/plugins/select2/js/i18n/sv.js | 3 - .../public/high/plugins/select2/js/i18n/th.js | 3 - .../public/high/plugins/select2/js/i18n/tr.js | 3 - .../public/high/plugins/select2/js/i18n/uk.js | 3 - .../public/high/plugins/select2/js/i18n/vi.js | 3 - .../high/plugins/select2/js/i18n/zh-CN.js | 3 - .../high/plugins/select2/js/i18n/zh-TW.js | 3 - .../high/plugins/select2/js/select2.full.js | 6436 -------- .../plugins/select2/js/select2.full.min.js | 3 - .../public/high/plugins/select2/js/select2.js | 5725 ------- .../high/plugins/select2/js/select2.min.js | 3 - .../public/high/plugins/signature_pad/app.js | 121 - .../high/plugins/signature_pad/css/ie9.css | 20 - .../signature_pad/css/signature-pad.css | 119 - .../plugins/signature_pad/example/css/ie9.css | 20 - .../example/css/signature-pad.css | 119 - .../plugins/signature_pad/example/index.html | 62 - .../plugins/signature_pad/example/js/app.js | 121 - .../signature_pad/example/js/signature_pad.js | 617 - .../plugins/signature_pad/signature_pad.js | 617 - .../high/plugins/signature_pad/src/bezier.js | 52 - .../high/plugins/signature_pad/src/point.js | 19 - .../signature_pad/src/signature_pad.js | 509 - .../plugins/signature_pad/src/throttle.js | 34 - .../public/high/plugins/spinkit/spinkit.css | 769 - .../high/plugins/sweet-alert/sweetalert2.css | 708 - .../high/plugins/sweet-alert/sweetalert2.js | 1806 -- .../plugins/sweet-alert/sweetalert2.min.css | 1 - .../plugins/sweet-alert/sweetalert2.min.js | 1 - .../high/plugins/switchery/switchery.min.css | 1 - .../high/plugins/switchery/switchery.min.js | 1 - .../high/plugins/tablesaw/css/tablesaw.css | 833 - .../high/plugins/tablesaw/js/tablesaw-init.js | 12 - .../high/plugins/tablesaw/js/tablesaw.js | 1266 -- .../plugins/tinymce/jquery.tinymce.min.js | 1 - .../high/plugins/tinymce/langs/readme.md | 3 - .../public/high/plugins/tinymce/license.txt | 504 - .../tinymce/plugins/advlist/plugin.min.js | 1 - .../tinymce/plugins/anchor/plugin.min.js | 1 - .../tinymce/plugins/autolink/plugin.min.js | 1 - .../tinymce/plugins/autoresize/plugin.min.js | 1 - .../tinymce/plugins/autosave/plugin.min.js | 1 - .../tinymce/plugins/bbcode/plugin.min.js | 1 - .../tinymce/plugins/charmap/plugin.min.js | 1 - .../tinymce/plugins/code/plugin.min.js | 1 - .../tinymce/plugins/codesample/css/prism.css | 138 - .../tinymce/plugins/codesample/plugin.min.js | 1 - .../tinymce/plugins/colorpicker/plugin.min.js | 1 - .../tinymce/plugins/contextmenu/plugin.min.js | 1 - .../plugins/directionality/plugin.min.js | 1 - .../plugins/emoticons/img/smiley-cool.gif | Bin 354 -> 0 bytes .../plugins/emoticons/img/smiley-cry.gif | Bin 329 -> 0 bytes .../emoticons/img/smiley-embarassed.gif | Bin 331 -> 0 bytes .../emoticons/img/smiley-foot-in-mouth.gif | Bin 342 -> 0 bytes .../plugins/emoticons/img/smiley-frown.gif | Bin 340 -> 0 bytes .../plugins/emoticons/img/smiley-innocent.gif | Bin 336 -> 0 bytes .../plugins/emoticons/img/smiley-kiss.gif | Bin 338 -> 0 bytes .../plugins/emoticons/img/smiley-laughing.gif | Bin 343 -> 0 bytes .../emoticons/img/smiley-money-mouth.gif | Bin 321 -> 0 bytes .../plugins/emoticons/img/smiley-sealed.gif | Bin 323 -> 0 bytes .../plugins/emoticons/img/smiley-smile.gif | Bin 344 -> 0 bytes .../emoticons/img/smiley-surprised.gif | Bin 338 -> 0 bytes .../emoticons/img/smiley-tongue-out.gif | Bin 328 -> 0 bytes .../emoticons/img/smiley-undecided.gif | Bin 337 -> 0 bytes .../plugins/emoticons/img/smiley-wink.gif | Bin 350 -> 0 bytes .../plugins/emoticons/img/smiley-yell.gif | Bin 336 -> 0 bytes .../tinymce/plugins/emoticons/plugin.min.js | 1 - .../tinymce/plugins/example/dialog.html | 8 - .../tinymce/plugins/example/plugin.min.js | 1 - .../plugins/example_dependency/plugin.min.js | 1 - .../tinymce/plugins/fullpage/plugin.min.js | 1 - .../tinymce/plugins/fullscreen/plugin.min.js | 1 - .../plugins/tinymce/plugins/hr/plugin.min.js | 1 - .../tinymce/plugins/image/plugin.min.js | 1 - .../tinymce/plugins/imagetools/plugin.min.js | 1 - .../tinymce/plugins/importcss/plugin.min.js | 1 - .../plugins/insertdatetime/plugin.min.js | 1 - .../tinymce/plugins/layer/plugin.min.js | 1 - .../plugins/legacyoutput/plugin.min.js | 1 - .../tinymce/plugins/link/plugin.min.js | 1 - .../tinymce/plugins/lists/plugin.min.js | 1 - .../tinymce/plugins/media/moxieplayer.swf | Bin 20017 -> 0 bytes .../tinymce/plugins/media/plugin.min.js | 1 - .../tinymce/plugins/nonbreaking/plugin.min.js | 1 - .../tinymce/plugins/noneditable/plugin.min.js | 1 - .../tinymce/plugins/pagebreak/plugin.min.js | 1 - .../tinymce/plugins/paste/plugin.min.js | 1 - .../tinymce/plugins/preview/plugin.min.js | 1 - .../tinymce/plugins/print/plugin.min.js | 1 - .../tinymce/plugins/save/plugin.min.js | 1 - .../plugins/searchreplace/plugin.min.js | 1 - .../plugins/spellchecker/plugin.min.js | 1 - .../tinymce/plugins/tabfocus/plugin.min.js | 1 - .../tinymce/plugins/table/plugin.min.js | 2 - .../tinymce/plugins/template/plugin.min.js | 1 - .../tinymce/plugins/textcolor/plugin.min.js | 1 - .../tinymce/plugins/textpattern/plugin.min.js | 1 - .../plugins/visualblocks/css/visualblocks.css | 135 - .../plugins/visualblocks/plugin.min.js | 1 - .../tinymce/plugins/visualchars/plugin.min.js | 1 - .../tinymce/plugins/wordcount/plugin.min.js | 1 - .../skins/lightgray/content.inline.min.css | 1 - .../tinymce/skins/lightgray/content.min.css | 1 - .../skins/lightgray/fonts/tinymce-small.eot | Bin 9492 -> 0 bytes .../skins/lightgray/fonts/tinymce-small.svg | 63 - .../skins/lightgray/fonts/tinymce-small.ttf | Bin 9304 -> 0 bytes .../skins/lightgray/fonts/tinymce-small.woff | Bin 9380 -> 0 bytes .../tinymce/skins/lightgray/fonts/tinymce.eot | Bin 17292 -> 0 bytes .../tinymce/skins/lightgray/fonts/tinymce.svg | 129 - .../tinymce/skins/lightgray/fonts/tinymce.ttf | Bin 17128 -> 0 bytes .../skins/lightgray/fonts/tinymce.woff | Bin 17204 -> 0 bytes .../tinymce/skins/lightgray/img/anchor.gif | Bin 53 -> 0 bytes .../tinymce/skins/lightgray/img/loader.gif | Bin 2608 -> 0 bytes .../tinymce/skins/lightgray/img/object.gif | Bin 152 -> 0 bytes .../tinymce/skins/lightgray/img/trans.gif | Bin 43 -> 0 bytes .../tinymce/skins/lightgray/skin.ie7.min.css | 1 - .../tinymce/skins/lightgray/skin.min.css | 1 - .../themes/inlite/config/bolt/atomic.js | 5 - .../inlite/config/bolt/bootstrap-atomic.js | 1491 -- .../inlite/config/bolt/bootstrap-browser.js | 1491 -- .../inlite/config/bolt/bootstrap-demo.js | 1491 -- .../inlite/config/bolt/bootstrap-prod.js | 1491 -- .../themes/inlite/config/bolt/browser.js | 10 - .../tinymce/themes/inlite/config/bolt/demo.js | 8 - .../tinymce/themes/inlite/config/bolt/prod.js | 5 - .../themes/inlite/config/dent/depend.js | 21 - .../inlite/scratch/compile/bootstrap.js | 1526 -- .../themes/inlite/scratch/compile/theme.js | 1594 -- .../themes/inlite/scratch/inline/theme.js | 1679 -- .../themes/inlite/scratch/inline/theme.raw.js | 1679 -- .../themes/inlite/src/demo/css/demo.css | 25 - .../themes/inlite/src/demo/html/demo.html | 69 - .../inlite/src/demo/js/tinymce/inlite/Demo.js | 28 - .../src/main/js/tinymce/inlite/Theme.js | 150 - .../src/main/js/tinymce/inlite/alien/Arr.js | 22 - .../main/js/tinymce/inlite/alien/Bookmark.js | 130 - .../main/js/tinymce/inlite/alien/Unlink.js | 84 - .../src/main/js/tinymce/inlite/alien/Uuid.js | 34 - .../main/js/tinymce/inlite/core/Actions.js | 106 - .../main/js/tinymce/inlite/core/Convert.js | 37 - .../js/tinymce/inlite/core/ElementMatcher.js | 47 - .../src/main/js/tinymce/inlite/core/Layout.js | 95 - .../main/js/tinymce/inlite/core/Matcher.js | 39 - .../main/js/tinymce/inlite/core/Measure.js | 61 - .../js/tinymce/inlite/core/PredicateId.js | 32 - .../tinymce/inlite/core/SelectionMatcher.js | 55 - .../main/js/tinymce/inlite/core/SkinLoader.js | 45 - .../main/js/tinymce/inlite/core/UrlType.js | 27 - .../js/tinymce/inlite/file/Conversions.js | 31 - .../src/main/js/tinymce/inlite/file/Picker.js | 40 - .../src/main/js/tinymce/inlite/ui/Buttons.js | 80 - .../src/main/js/tinymce/inlite/ui/Forms.js | 102 - .../src/main/js/tinymce/inlite/ui/Panel.js | 218 - .../src/main/js/tinymce/inlite/ui/Toolbar.js | 126 - .../tinymce/themes/inlite/src/test/.eslintrc | 14 - .../src/test/js/atomic/alien/ArrTest.js | 9 - .../src/test/js/atomic/alien/UuidTest.js | 10 - .../src/test/js/atomic/core/ConvertTest.js | 12 - .../src/test/js/atomic/core/MatcherTest.js | 51 - .../src/test/js/atomic/core/UrlTypeTest.js | 33 - .../inlite/src/test/js/browser/ThemeTest.js | 202 - .../src/test/js/browser/alien/BookmarkTest.js | 65 - .../src/test/js/browser/alien/UnlinkTest.js | 38 - .../src/test/js/browser/core/ActionsTest.js | 177 - .../test/js/browser/core/ElementMatcher.js | 69 - .../src/test/js/browser/core/LayoutTest.js | 118 - .../src/test/js/browser/core/MeasureTest.js | 62 - .../test/js/browser/core/PredicateIdTest.js | 26 - .../js/browser/core/SelectionMatcherTest.js | 76 - .../test/js/browser/file/ConversionsTest.js | 41 - .../test/js/browser/file/SelectionMatcher.js | 55 - .../tinymce/themes/inlite/theme.min.js | 1 - .../tinymce/themes/modern/theme.min.js | 1 - .../high/plugins/tinymce/tinymce.min.js | 13 - .../tooltipster/tooltipster.bundle.min.css | 1 - .../tooltipster/tooltipster.bundle.min.js | 2 - .../tooltipster/tooltipster.core.min.js | 1 - .../waypoints/lib/jquery.waypoints.min.js | 7 - .../waypoints/lib/shortcuts/infinite.js | 84 - .../waypoints/lib/shortcuts/infinite.min.js | 7 - .../plugins/waypoints/lib/shortcuts/inview.js | 103 - .../waypoints/lib/shortcuts/inview.min.js | 7 - .../plugins/waypoints/lib/shortcuts/sticky.js | 65 - .../waypoints/lib/shortcuts/sticky.min.js | 7 - htdocs/public/jqwidgets/autonumeric.js | 1250 -- .../public/jqwidgets/globalization/ReadMe.txt | 2 - .../globalization/globalize.culture.cs-CZ.js | 85 - .../globalization/globalize.culture.de-DE.js | 81 - .../globalization/globalize.culture.en-CA.js | 49 - .../globalization/globalize.culture.en-US.js | 33 - .../globalization/globalize.culture.fr-FR.js | 79 - .../globalization/globalize.culture.he-IL.js | 97 - .../globalization/globalize.culture.hr-HR.js | 81 - .../globalization/globalize.culture.hu-HU.js | 80 - .../globalization/globalize.culture.it-IT.js | 80 - .../globalization/globalize.culture.ja-JP.js | 100 - .../globalization/globalize.culture.lt.js | 83 - .../globalization/globalize.culture.ru-RU.js | 82 - .../globalization/globalize.culture.sa-IN.js | 71 - .../jqwidgets/globalization/globalize.js | 10 - htdocs/public/jqwidgets/jquery.min.js | 4 - .../public/jqwidgets/jquery.printElement.js | 181 - htdocs/public/jqwidgets/jqx-all.js | 7 - htdocs/public/jqwidgets/jqxangular.js | 7 - htdocs/public/jqwidgets/jqxbulletchart.js | 7 - htdocs/public/jqwidgets/jqxbuttongroup.js | 7 - htdocs/public/jqwidgets/jqxbuttons.js | 7 - htdocs/public/jqwidgets/jqxcalendar.js | 7 - .../public/jqwidgets/jqxchart.annotations.js | 7 - htdocs/public/jqwidgets/jqxchart.api.js | 7 - htdocs/public/jqwidgets/jqxchart.core.js | 7 - htdocs/public/jqwidgets/jqxchart.js | 7 - .../jqwidgets/jqxchart.rangeselector.js | 7 - htdocs/public/jqwidgets/jqxchart.waterfall.js | 7 - htdocs/public/jqwidgets/jqxcheckbox.js | 7 - htdocs/public/jqwidgets/jqxcolorpicker.js | 7 - htdocs/public/jqwidgets/jqxcombobox.js | 7 - htdocs/public/jqwidgets/jqxcomplexinput.js | 7 - htdocs/public/jqwidgets/jqxcore.js | 7 - htdocs/public/jqwidgets/jqxdata.export.js | 7 - htdocs/public/jqwidgets/jqxdata.js | 7 - htdocs/public/jqwidgets/jqxdatatable.js | 7 - htdocs/public/jqwidgets/jqxdate.js | 7 - htdocs/public/jqwidgets/jqxdatetimeinput.js | 7 - htdocs/public/jqwidgets/jqxdocking.js | 7 - htdocs/public/jqwidgets/jqxdockinglayout.js | 7 - htdocs/public/jqwidgets/jqxdockpanel.js | 7 - htdocs/public/jqwidgets/jqxdragdrop.js | 7 - htdocs/public/jqwidgets/jqxdraw.js | 7 - htdocs/public/jqwidgets/jqxdropdownbutton.js | 7 - htdocs/public/jqwidgets/jqxdropdownlist.js | 7 - htdocs/public/jqwidgets/jqxeditor.js | 7 - htdocs/public/jqwidgets/jqxexpander.js | 7 - htdocs/public/jqwidgets/jqxfileupload.js | 7 - htdocs/public/jqwidgets/jqxformattedinput.js | 7 - htdocs/public/jqwidgets/jqxgauge.js | 7 - htdocs/public/jqwidgets/jqxgrid.aggregates.js | 7 - .../jqwidgets/jqxgrid.columnsreorder.js | 7 - .../public/jqwidgets/jqxgrid.columnsresize.js | 7 - htdocs/public/jqwidgets/jqxgrid.edit.js | 7 - htdocs/public/jqwidgets/jqxgrid.export.js | 7 - htdocs/public/jqwidgets/jqxgrid.filter.js | 7 - htdocs/public/jqwidgets/jqxgrid.grouping.js | 7 - htdocs/public/jqwidgets/jqxgrid.js | 7 - htdocs/public/jqwidgets/jqxgrid.pager.js | 7 - htdocs/public/jqwidgets/jqxgrid.selection.js | 7 - htdocs/public/jqwidgets/jqxgrid.sort.js | 7 - htdocs/public/jqwidgets/jqxgrid.storage.js | 7 - htdocs/public/jqwidgets/jqxinput.js | 7 - htdocs/public/jqwidgets/jqxkanban.js | 7 - htdocs/public/jqwidgets/jqxknob.js | 7 - htdocs/public/jqwidgets/jqxknockout.js | 7 - htdocs/public/jqwidgets/jqxlayout.js | 7 - htdocs/public/jqwidgets/jqxlistbox.js | 7 - htdocs/public/jqwidgets/jqxlistmenu.js | 7 - htdocs/public/jqwidgets/jqxloader.js | 7 - htdocs/public/jqwidgets/jqxmaskedinput.js | 7 - htdocs/public/jqwidgets/jqxmenu.js | 7 - htdocs/public/jqwidgets/jqxnavbar.js | 7 - htdocs/public/jqwidgets/jqxnavigationbar.js | 7 - htdocs/public/jqwidgets/jqxnotification.js | 7 - htdocs/public/jqwidgets/jqxnumberinput.js | 7 - htdocs/public/jqwidgets/jqxpanel.js | 7 - htdocs/public/jqwidgets/jqxpasswordinput.js | 7 - htdocs/public/jqwidgets/jqxpopover.js | 7 - htdocs/public/jqwidgets/jqxprogressbar.js | 7 - htdocs/public/jqwidgets/jqxradiobutton.js | 7 - htdocs/public/jqwidgets/jqxrangeselector.js | 7 - htdocs/public/jqwidgets/jqxrating.js | 7 - htdocs/public/jqwidgets/jqxresponse.js | 7 - htdocs/public/jqwidgets/jqxresponsivepanel.js | 7 - htdocs/public/jqwidgets/jqxribbon.js | 7 - htdocs/public/jqwidgets/jqxscheduler.api.js | 7 - htdocs/public/jqwidgets/jqxscheduler.js | 7 - htdocs/public/jqwidgets/jqxscrollbar.js | 7 - htdocs/public/jqwidgets/jqxscrollview.js | 7 - htdocs/public/jqwidgets/jqxslider.js | 7 - htdocs/public/jqwidgets/jqxsortable.js | 7 - htdocs/public/jqwidgets/jqxsplitter.js | 7 - htdocs/public/jqwidgets/jqxswitchbutton.js | 7 - htdocs/public/jqwidgets/jqxtabs.js | 7 - htdocs/public/jqwidgets/jqxtagcloud.js | 7 - htdocs/public/jqwidgets/jqxtextarea.js | 7 - htdocs/public/jqwidgets/jqxtoolbar.js | 7 - htdocs/public/jqwidgets/jqxtooltip.js | 7 - htdocs/public/jqwidgets/jqxtouch.js | 7 - htdocs/public/jqwidgets/jqxtree.js | 7 - htdocs/public/jqwidgets/jqxtreegrid.js | 7 - htdocs/public/jqwidgets/jqxtreemap.js | 7 - htdocs/public/jqwidgets/jqxvalidator.js | 7 - htdocs/public/jqwidgets/jqxwindow.js | 7 - .../jqwidgets/styles/images/backImage.png | Bin 260 -> 0 bytes .../jqwidgets/styles/images/backgroundTop.png | Bin 286 -> 0 bytes .../jqwidgets/styles/images/bg_black.png | Bin 1007 -> 0 bytes .../styles/images/bg_black_horizontal.png | Bin 1193 -> 0 bytes .../jqwidgets/styles/images/bg_blackhover.png | Bin 2962 -> 0 bytes .../images/bg_blackhover_horizontal.png | Bin 3546 -> 0 bytes .../styles/images/bg_blackpressed.png | Bin 2959 -> 0 bytes .../images/bg_blackpressed_horizontal.png | Bin 3530 -> 0 bytes .../jqwidgets/styles/images/bg_blueenergy.png | Bin 238 -> 0 bytes .../jqwidgets/styles/images/bg_darkblue.png | Bin 1261 -> 0 bytes .../styles/images/bg_darkbluehover.png | Bin 2851 -> 0 bytes .../styles/images/bg_darkbluepressed.png | Bin 2851 -> 0 bytes .../styles/images/black_gradient.png | Bin 2844 -> 0 bytes .../styles/images/blackbackground.png | Bin 213 -> 0 bytes .../jqwidgets/styles/images/check_black.png | Bin 2922 -> 0 bytes .../jqwidgets/styles/images/check_blue.png | Bin 3128 -> 0 bytes .../images/check_blue_indeterminate.png | Bin 943 -> 0 bytes .../styles/images/check_disabled.png | Bin 2959 -> 0 bytes .../images/check_indeterminate_black.png | Bin 1005 -> 0 bytes .../images/check_indeterminate_disabled.png | Bin 998 -> 0 bytes .../images/check_indeterminate_white.png | Bin 1022 -> 0 bytes .../styles/images/check_lightblue.png | Bin 3080 -> 0 bytes .../images/check_lightblue_indeterminate.png | Bin 943 -> 0 bytes .../jqwidgets/styles/images/check_white.png | Bin 2957 -> 0 bytes .../public/jqwidgets/styles/images/close.png | Bin 307 -> 0 bytes .../jqwidgets/styles/images/close_black.png | Bin 2922 -> 0 bytes .../jqwidgets/styles/images/close_blue.png | Bin 294 -> 0 bytes .../jqwidgets/styles/images/close_white.png | Bin 2968 -> 0 bytes .../styles/images/colorpicker/ReadMe.txt | 4 - .../styles/images/colorpicker/bar-hue.png | Bin 226 -> 0 bytes .../images/colorpicker/bar-saturation.png | Bin 257 -> 0 bytes .../styles/images/colorpicker/map-hue.png | Bin 15712 -> 0 bytes .../colorpicker/map-saturation-overlay.png | Bin 38806 -> 0 bytes .../images/colorpicker/map-saturation.png | Bin 6260 -> 0 bytes .../public/jqwidgets/styles/images/common.png | Bin 6765 -> 0 bytes .../styles/images/crosshair-white.png | Bin 149 -> 0 bytes .../jqwidgets/styles/images/crosshair.png | Bin 160 -> 0 bytes .../styles/images/darkness/ReadMe.txt | 4 - .../darkness/ui-bg_flat_30_cccccc_40x100.png | Bin 180 -> 0 bytes .../darkness/ui-bg_flat_50_5c5c5c_40x100.png | Bin 180 -> 0 bytes .../darkness/ui-bg_glass_20_555555_1x400.png | Bin 115 -> 0 bytes .../darkness/ui-bg_glass_40_0078a3_1x400.png | Bin 135 -> 0 bytes .../darkness/ui-bg_glass_40_ffc73d_1x400.png | Bin 131 -> 0 bytes .../ui-bg_gloss-wave_25_333333_500x100.png | Bin 1874 -> 0 bytes .../ui-bg_highlight-soft_80_eeeeee_1x100.png | Bin 95 -> 0 bytes .../ui-bg_inset-soft_25_000000_1x100.png | Bin 98 -> 0 bytes .../ui-bg_inset-soft_30_f58400_1x100.png | Bin 117 -> 0 bytes .../darkness/ui-icons_222222_256x240.png | Bin 4369 -> 0 bytes .../darkness/ui-icons_4b8e0b_256x240.png | Bin 4369 -> 0 bytes .../darkness/ui-icons_a83300_256x240.png | Bin 5355 -> 0 bytes .../darkness/ui-icons_cccccc_256x240.png | Bin 4369 -> 0 bytes .../darkness/ui-icons_ffffff_256x240.png | Bin 4369 -> 0 bytes .../styles/images/darkred_gradient.png | Bin 2875 -> 0 bytes .../public/jqwidgets/styles/images/drag.png | Bin 541 -> 0 bytes .../jqwidgets/styles/images/dragcancel.png | Bin 334 -> 0 bytes .../public/jqwidgets/styles/images/error.png | Bin 988 -> 0 bytes .../public/jqwidgets/styles/images/filter.png | Bin 352 -> 0 bytes .../jqwidgets/styles/images/html_editor.png | Bin 2035 -> 0 bytes .../styles/images/html_editor_white.png | Bin 2006 -> 0 bytes .../styles/images/icon-calendar-white.png | Bin 326 -> 0 bytes .../jqwidgets/styles/images/icon-calendar.png | Bin 478 -> 0 bytes .../styles/images/icon-cancel-white.png | Bin 343 -> 0 bytes .../jqwidgets/styles/images/icon-cancel.png | Bin 333 -> 0 bytes .../styles/images/icon-delete - Copy.png | Bin 3167 -> 0 bytes .../styles/images/icon-delete-white.png | Bin 276 -> 0 bytes .../jqwidgets/styles/images/icon-delete.png | Bin 3167 -> 0 bytes .../styles/images/icon-down-blue.png | Bin 3041 -> 0 bytes .../styles/images/icon-down-transparent.png | Bin 3040 -> 0 bytes .../styles/images/icon-down-white.png | Bin 128 -> 0 bytes .../jqwidgets/styles/images/icon-down.png | Bin 142 -> 0 bytes .../styles/images/icon-edit-white.png | Bin 367 -> 0 bytes .../jqwidgets/styles/images/icon-edit.png | Bin 405 -> 0 bytes .../styles/images/icon-first-blue.png | Bin 3089 -> 0 bytes .../styles/images/icon-first-transparent.png | Bin 3005 -> 0 bytes .../styles/images/icon-first-white.png | Bin 153 -> 0 bytes .../jqwidgets/styles/images/icon-first.png | Bin 152 -> 0 bytes .../styles/images/icon-last-blue.png | Bin 3072 -> 0 bytes .../styles/images/icon-last-transparent.png | Bin 2998 -> 0 bytes .../styles/images/icon-last-white.png | Bin 157 -> 0 bytes .../jqwidgets/styles/images/icon-last.png | Bin 153 -> 0 bytes .../styles/images/icon-left-blue.png | Bin 3042 -> 0 bytes .../styles/images/icon-left-transparent.png | Bin 3036 -> 0 bytes .../styles/images/icon-left-white.png | Bin 131 -> 0 bytes .../jqwidgets/styles/images/icon-left.png | Bin 139 -> 0 bytes .../images/icon-menu-minimized-white.png | Bin 190 -> 0 bytes .../styles/images/icon-menu-minimized.png | Bin 202 -> 0 bytes .../styles/images/icon-plus-white.png | Bin 3070 -> 0 bytes .../jqwidgets/styles/images/icon-plus.png | Bin 2992 -> 0 bytes .../icon-recurrence-exception-white.png | Bin 347 -> 0 bytes .../images/icon-recurrence-exception.png | Bin 453 -> 0 bytes .../styles/images/icon-recurrence-white.png | Bin 265 -> 0 bytes .../styles/images/icon-recurrence.png | Bin 295 -> 0 bytes .../styles/images/icon-right-blue.png | Bin 3071 -> 0 bytes .../styles/images/icon-right-transparent.png | Bin 3040 -> 0 bytes .../styles/images/icon-right-white.png | Bin 130 -> 0 bytes .../jqwidgets/styles/images/icon-right.png | Bin 143 -> 0 bytes .../styles/images/icon-save-white.png | Bin 255 -> 0 bytes .../jqwidgets/styles/images/icon-save.png | Bin 3173 -> 0 bytes .../styles/images/icon-showpassword-white.png | Bin 442 -> 0 bytes .../styles/images/icon-showpassword.png | Bin 360 -> 0 bytes .../styles/images/icon-time-white.png | Bin 455 -> 0 bytes .../jqwidgets/styles/images/icon-time.png | Bin 556 -> 0 bytes .../jqwidgets/styles/images/icon-up-blue.png | Bin 3034 -> 0 bytes .../styles/images/icon-up-transparent.png | Bin 3025 -> 0 bytes .../jqwidgets/styles/images/icon-up-white.png | Bin 125 -> 0 bytes .../jqwidgets/styles/images/icon-up.png | Bin 130 -> 0 bytes .../public/jqwidgets/styles/images/info.png | Bin 542 -> 0 bytes .../styles/images/le-frog/ReadMe.txt | 4 - .../ui-bg_diagonals-small_0_aaaaaa_40x40.png | Bin 128 -> 0 bytes .../ui-bg_diagonals-thick_15_444444_40x40.png | Bin 253 -> 0 bytes .../ui-bg_diagonals-thick_95_ffdc2e_40x40.png | Bin 266 -> 0 bytes .../le-frog/ui-bg_glass_55_fbf5d0_1x400.png | Bin 153 -> 0 bytes .../ui-bg_highlight-hard_30_285c00_1x100.png | Bin 121 -> 0 bytes .../ui-bg_highlight-soft_33_3a8104_1x100.png | Bin 123 -> 0 bytes .../ui-bg_highlight-soft_50_4eb305_1x100.png | Bin 126 -> 0 bytes .../ui-bg_highlight-soft_60_4ca20b_1x100.png | Bin 134 -> 0 bytes .../ui-bg_inset-soft_10_285c00_1x100.png | Bin 118 -> 0 bytes .../le-frog/ui-icons_4eb305_256x240.png | Bin 4369 -> 0 bytes .../le-frog/ui-icons_72b42d_256x240.png | Bin 4369 -> 0 bytes .../le-frog/ui-icons_cd0a0a_256x240.png | Bin 4369 -> 0 bytes .../le-frog/ui-icons_ffffff_256x240.png | Bin 4369 -> 0 bytes .../styles/images/lightness/ReadMe.txt | 4 - .../styles/images/lightness/icon-first.png | Bin 220 -> 0 bytes .../styles/images/lightness/icon-last.png | Bin 229 -> 0 bytes .../ui-bg_diagonals-thick_18_b81900_40x40.png | Bin 260 -> 0 bytes .../ui-bg_diagonals-thick_20_666666_40x40.png | Bin 251 -> 0 bytes .../lightness/ui-bg_flat_10_000000_40x100.png | Bin 178 -> 0 bytes .../ui-bg_glass_100_f6f6f6_1x400.png | Bin 104 -> 0 bytes .../ui-bg_glass_100_fdf5ce_1x400.png | Bin 125 -> 0 bytes .../lightness/ui-bg_glass_65_ffffff_1x400.png | Bin 105 -> 0 bytes .../ui-bg_gloss-wave_35_f6a828_500x100.png | Bin 3762 -> 0 bytes .../ui-bg_highlight-soft_100_eeeeee_1x100.png | Bin 90 -> 0 bytes .../ui-bg_highlight-soft_75_ffe45c_1x100.png | Bin 129 -> 0 bytes .../lightness/ui-icons_222222_256x240.png | Bin 4369 -> 0 bytes .../lightness/ui-icons_228ef1_256x240.png | Bin 4369 -> 0 bytes .../lightness/ui-icons_ef8c08_256x240.png | Bin 4369 -> 0 bytes .../lightness/ui-icons_ffd27a_256x240.png | Bin 4369 -> 0 bytes .../lightness/ui-icons_ffffff_256x240.png | Bin 4369 -> 0 bytes .../jqwidgets/styles/images/loader-small.gif | Bin 4319 -> 0 bytes .../public/jqwidgets/styles/images/loader.gif | Bin 4176 -> 0 bytes .../public/jqwidgets/styles/images/mail.png | Bin 504 -> 0 bytes .../jqwidgets/styles/images/menubutton.png | Bin 142 -> 0 bytes .../styles/images/metro-icon-down-white.png | Bin 149 -> 0 bytes .../styles/images/metro-icon-down.png | Bin 169 -> 0 bytes .../styles/images/metro-icon-first-white.png | Bin 155 -> 0 bytes .../styles/images/metro-icon-first.png | Bin 156 -> 0 bytes .../styles/images/metro-icon-last-white.png | Bin 157 -> 0 bytes .../styles/images/metro-icon-last.png | Bin 157 -> 0 bytes .../styles/images/metro-icon-left-white.png | Bin 142 -> 0 bytes .../styles/images/metro-icon-left.png | Bin 163 -> 0 bytes .../styles/images/metro-icon-right - Copy.png | Bin 162 -> 0 bytes .../styles/images/metro-icon-right-white.png | Bin 145 -> 0 bytes .../styles/images/metro-icon-right.png | Bin 162 -> 0 bytes .../styles/images/metro-icon-up-white.png | Bin 150 -> 0 bytes .../jqwidgets/styles/images/metro-icon-up.png | Bin 161 -> 0 bytes .../jqwidgets/styles/images/multi-arrow.gif | Bin 88 -> 0 bytes .../styles/images/office-icon-down.png | Bin 160 -> 0 bytes .../styles/images/office-icon-first.png | Bin 288 -> 0 bytes .../styles/images/office-icon-last.png | Bin 295 -> 0 bytes .../styles/images/office-icon-left.png | Bin 154 -> 0 bytes .../styles/images/office-icon-right.png | Bin 157 -> 0 bytes .../styles/images/office-icon-up.png | Bin 146 -> 0 bytes .../styles/images/overcast/ReadMe.txt | 4 - .../overcast/ui-bg_flat_0_aaaaaa_40x100.png | Bin 180 -> 0 bytes .../overcast/ui-bg_flat_0_eeeeee_40x100.png | Bin 180 -> 0 bytes .../overcast/ui-bg_flat_55_c0402a_40x100.png | Bin 182 -> 0 bytes .../overcast/ui-bg_flat_55_eeeeee_40x100.png | Bin 180 -> 0 bytes .../overcast/ui-bg_glass_100_f8f8f8_1x400.png | Bin 105 -> 0 bytes .../overcast/ui-bg_glass_35_dddddd_1x400.png | Bin 109 -> 0 bytes .../overcast/ui-bg_glass_60_eeeeee_1x400.png | Bin 110 -> 0 bytes .../ui-bg_inset-hard_75_999999_1x100.png | Bin 114 -> 0 bytes .../ui-bg_inset-soft_50_c9c9c9_1x100.png | Bin 142 -> 0 bytes .../overcast/ui-icons_3383bb_256x240.png | Bin 4369 -> 0 bytes .../overcast/ui-icons_454545_256x240.png | Bin 4369 -> 0 bytes .../overcast/ui-icons_70b2e1_256x240.png | Bin 4369 -> 0 bytes .../overcast/ui-icons_999999_256x240.png | Bin 4369 -> 0 bytes .../overcast/ui-icons_fbc856_256x240.png | Bin 4369 -> 0 bytes .../jqwidgets/styles/images/pin-black.png | Bin 186 -> 0 bytes .../jqwidgets/styles/images/pin-blue.png | Bin 187 -> 0 bytes .../jqwidgets/styles/images/pin-lightblue.png | Bin 187 -> 0 bytes .../jqwidgets/styles/images/pin-white.png | Bin 184 -> 0 bytes .../jqwidgets/styles/images/pin-yellow.png | Bin 187 -> 0 bytes htdocs/public/jqwidgets/styles/images/pin.png | Bin 187 -> 0 bytes .../jqwidgets/styles/images/pinned-black.png | Bin 185 -> 0 bytes .../jqwidgets/styles/images/pinned-blue.png | Bin 185 -> 0 bytes .../styles/images/pinned-lightblue.png | Bin 185 -> 0 bytes .../jqwidgets/styles/images/pinned-white.png | Bin 183 -> 0 bytes .../jqwidgets/styles/images/pinned-yellow.png | Bin 185 -> 0 bytes .../public/jqwidgets/styles/images/pinned.png | Bin 185 -> 0 bytes .../public/jqwidgets/styles/images/plus.png | Bin 141 -> 0 bytes .../jqwidgets/styles/images/plus_white.png | Bin 228 -> 0 bytes .../jqwidgets/styles/images/pointer.png | Bin 171 -> 0 bytes .../styles/images/rangebar_classic.png | Bin 131 -> 0 bytes .../styles/images/rangebar_darkblue.png | Bin 130 -> 0 bytes .../styles/images/rangebar_shinyblack.png | Bin 126 -> 0 bytes .../styles/images/rangebar_summer.png | Bin 127 -> 0 bytes .../styles/images/red_arrow_down.png | Bin 2825 -> 0 bytes .../jqwidgets/styles/images/red_arrow_up.png | Bin 2828 -> 0 bytes .../jqwidgets/styles/images/red_gradient.png | Bin 2873 -> 0 bytes .../styles/images/redmond/ReadMe.txt | 4 - .../styles/images/redmond/icon-first.png | Bin 233 -> 0 bytes .../styles/images/redmond/icon-last.png | Bin 242 -> 0 bytes .../redmond/ui-bg_flat_0_aaaaaa_40x100.png | Bin 180 -> 0 bytes .../redmond/ui-bg_flat_55_fbec88_40x100.png | Bin 213 -> 0 bytes .../redmond/ui-bg_glass_75_d0e5f5_1x400.png | Bin 124 -> 0 bytes .../redmond/ui-bg_glass_85_dfeffc_1x400.png | Bin 155 -> 0 bytes .../redmond/ui-bg_glass_95_fef1ec_1x400.png | Bin 119 -> 0 bytes .../ui-bg_gloss-wave_55_5c9ccc_500x100.png | Bin 3457 -> 0 bytes .../ui-bg_inset-hard_100_f5f8f9_1x100.png | Bin 104 -> 0 bytes .../ui-bg_inset-hard_100_fcfdfd_1x100.png | Bin 88 -> 0 bytes .../redmond/ui-icons_217bc0_256x240.png | Bin 4369 -> 0 bytes .../redmond/ui-icons_2e83ff_256x240.png | Bin 4369 -> 0 bytes .../redmond/ui-icons_469bdd_256x240.png | Bin 4369 -> 0 bytes .../redmond/ui-icons_6da8d5_256x240.png | Bin 5355 -> 0 bytes .../redmond/ui-icons_cd0a0a_256x240.png | Bin 4369 -> 0 bytes .../redmond/ui-icons_d8e7f3_256x240.png | Bin 4369 -> 0 bytes .../redmond/ui-icons_f9bd01_256x240.png | Bin 4369 -> 0 bytes .../styles/images/roundbg_check_black.png | Bin 3008 -> 0 bytes .../styles/images/roundbg_check_disabled.png | Bin 2971 -> 0 bytes .../images/roundbg_check_indeterminate.png | Bin 2971 -> 0 bytes .../styles/images/roundbg_check_white.png | Bin 2889 -> 0 bytes .../styles/images/roundbg_classic_hover.png | Bin 3244 -> 0 bytes .../styles/images/roundbg_classic_normal.png | Bin 3264 -> 0 bytes .../styles/images/roundbg_disabled.png | Bin 2982 -> 0 bytes .../public/jqwidgets/styles/images/search.png | Bin 414 -> 0 bytes .../jqwidgets/styles/images/search_white.png | Bin 437 -> 0 bytes .../styles/images/smoothness/ReadMe.txt | 4 - .../smoothness/ui-bg_flat_0_aaaaaa_40x100.png | Bin 180 -> 0 bytes .../ui-bg_flat_75_ffffff_40x100.png | Bin 178 -> 0 bytes .../ui-bg_glass_55_fbf9ee_1x400.png | Bin 120 -> 0 bytes .../ui-bg_glass_65_ffffff_1x400.png | Bin 105 -> 0 bytes .../ui-bg_glass_75_dadada_1x400.png | Bin 111 -> 0 bytes .../ui-bg_glass_75_e6e6e6_1x400.png | Bin 110 -> 0 bytes .../ui-bg_glass_95_fef1ec_1x400.png | Bin 119 -> 0 bytes .../ui-bg_highlight-soft_75_cccccc_1x100.png | Bin 101 -> 0 bytes .../smoothness/ui-icons_222222_256x240.png | Bin 4369 -> 0 bytes .../smoothness/ui-icons_2e83ff_256x240.png | Bin 4369 -> 0 bytes .../smoothness/ui-icons_454545_256x240.png | Bin 4369 -> 0 bytes .../smoothness/ui-icons_888888_256x240.png | Bin 4369 -> 0 bytes .../smoothness/ui-icons_cd0a0a_256x240.png | Bin 4369 -> 0 bytes .../jqwidgets/styles/images/sortasc.png | Bin 3240 -> 0 bytes .../jqwidgets/styles/images/sortascbutton.png | Bin 176 -> 0 bytes .../jqwidgets/styles/images/sortdesc.png | Bin 500 -> 0 bytes .../styles/images/sortdescbutton.png | Bin 196 -> 0 bytes .../jqwidgets/styles/images/sortremove.png | Bin 3190 -> 0 bytes .../public/jqwidgets/styles/images/star.png | Bin 1394 -> 0 bytes .../jqwidgets/styles/images/star_disabled.png | Bin 1169 -> 0 bytes .../jqwidgets/styles/images/star_hover.png | Bin 922 -> 0 bytes .../jqwidgets/styles/images/start/ReadMe.txt | 4 - .../start/ui-bg_flat_55_999999_40x100.png | Bin 180 -> 0 bytes .../start/ui-bg_flat_75_aaaaaa_40x100.png | Bin 180 -> 0 bytes .../start/ui-bg_glass_45_0078ae_1x400.png | Bin 136 -> 0 bytes .../start/ui-bg_glass_55_f8da4e_1x400.png | Bin 131 -> 0 bytes .../start/ui-bg_glass_75_79c9ec_1x400.png | Bin 132 -> 0 bytes .../ui-bg_gloss-wave_45_e14f1c_500x100.png | Bin 3649 -> 0 bytes .../ui-bg_gloss-wave_50_6eac2c_500x100.png | Bin 4256 -> 0 bytes .../ui-bg_gloss-wave_75_2191c0_500x100.png | Bin 3457 -> 0 bytes .../ui-bg_inset-hard_100_fcfdfd_1x100.png | Bin 112 -> 0 bytes .../images/start/ui-icons_0078ae_256x240.png | Bin 4369 -> 0 bytes .../images/start/ui-icons_056b93_256x240.png | Bin 4369 -> 0 bytes .../images/start/ui-icons_d8e7f3_256x240.png | Bin 4369 -> 0 bytes .../images/start/ui-icons_e0fdff_256x240.png | Bin 4369 -> 0 bytes .../images/start/ui-icons_f5e175_256x240.png | Bin 4369 -> 0 bytes .../images/start/ui-icons_f7a50d_256x240.png | Bin 5355 -> 0 bytes .../images/start/ui-icons_fcd113_256x240.png | Bin 5355 -> 0 bytes .../jqwidgets/styles/images/stripes.png | Bin 193 -> 0 bytes .../jqwidgets/styles/images/success.png | Bin 960 -> 0 bytes .../jqwidgets/styles/images/sunny/ReadMe.txt | 4 - ...ui-bg_diagonals-medium_20_d34d17_40x40.png | Bin 199 -> 0 bytes .../sunny/ui-bg_flat_30_cccccc_40x100.png | Bin 180 -> 0 bytes .../sunny/ui-bg_flat_50_5c5c5c_40x100.png | Bin 180 -> 0 bytes .../ui-bg_gloss-wave_45_817865_500x100.png | Bin 4626 -> 0 bytes .../ui-bg_gloss-wave_60_fece2f_500x100.png | Bin 3512 -> 0 bytes .../ui-bg_gloss-wave_70_ffdd57_500x100.png | Bin 3122 -> 0 bytes .../ui-bg_gloss-wave_90_fff9e5_500x100.png | Bin 2257 -> 0 bytes .../ui-bg_highlight-soft_100_feeebd_1x100.png | Bin 108 -> 0 bytes .../ui-bg_inset-soft_30_ffffff_1x100.png | Bin 100 -> 0 bytes .../images/sunny/ui-icons_3d3d3d_256x240.png | Bin 4369 -> 0 bytes .../images/sunny/ui-icons_bd7b00_256x240.png | Bin 4369 -> 0 bytes .../images/sunny/ui-icons_d19405_256x240.png | Bin 5355 -> 0 bytes .../images/sunny/ui-icons_eb990f_256x240.png | Bin 5355 -> 0 bytes .../images/sunny/ui-icons_ed9f26_256x240.png | Bin 4369 -> 0 bytes .../images/sunny/ui-icons_fadc7a_256x240.png | Bin 5355 -> 0 bytes .../images/sunny/ui-icons_ffe180_256x240.png | Bin 4369 -> 0 bytes .../public/jqwidgets/styles/images/tick.png | Bin 131 -> 0 bytes .../public/jqwidgets/styles/images/time.png | Bin 513 -> 0 bytes .../jqwidgets/styles/images/track_classic.png | Bin 129 -> 0 bytes .../styles/images/track_darkblue.png | Bin 130 -> 0 bytes .../styles/images/track_shinyblack.png | Bin 123 -> 0 bytes .../jqwidgets/styles/images/track_summer.png | Bin 129 -> 0 bytes .../jqwidgets/styles/images/warning.png | Bin 647 -> 0 bytes .../images/wp_check_indeterminate_white.png | Bin 939 -> 0 bytes .../styles/images/wp_check_white.png | Bin 505 -> 0 bytes .../public/jqwidgets/styles/jqx.android.css | 523 - htdocs/public/jqwidgets/styles/jqx.arctic.css | 539 - htdocs/public/jqwidgets/styles/jqx.base.css | 6539 -------- htdocs/public/jqwidgets/styles/jqx.black.css | 253 - .../jqwidgets/styles/jqx.blackberry.css | 656 - .../public/jqwidgets/styles/jqx.bootstrap.css | 927 -- .../public/jqwidgets/styles/jqx.classic.css | 82 - .../public/jqwidgets/styles/jqx.darkblue.css | 164 - .../jqwidgets/styles/jqx.energyblue.css | 16 - htdocs/public/jqwidgets/styles/jqx.fresh.css | 138 - .../public/jqwidgets/styles/jqx.glacier.css | 257 - .../jqwidgets/styles/jqx.highcontrast.css | 125 - htdocs/public/jqwidgets/styles/jqx.metro.css | 323 - .../public/jqwidgets/styles/jqx.metrodark.css | 376 - htdocs/public/jqwidgets/styles/jqx.mobile.css | 777 - htdocs/public/jqwidgets/styles/jqx.office.css | 262 - htdocs/public/jqwidgets/styles/jqx.orange.css | 208 - .../jqwidgets/styles/jqx.shinyblack.css | 180 - htdocs/public/jqwidgets/styles/jqx.summer.css | 85 - .../jqwidgets/styles/jqx.ui-darkness.css | 204 - .../jqwidgets/styles/jqx.ui-le-frog.css | 251 - .../jqwidgets/styles/jqx.ui-lightness.css | 161 - .../jqwidgets/styles/jqx.ui-overcast.css | 177 - .../jqwidgets/styles/jqx.ui-redmond.css | 183 - .../jqwidgets/styles/jqx.ui-smoothness.css | 164 - .../public/jqwidgets/styles/jqx.ui-start.css | 227 - .../public/jqwidgets/styles/jqx.ui-sunny.css | 166 - htdocs/public/jqwidgets/styles/jqx.web.css | 317 - .../jqwidgets/styles/jqx.windowsphone.css | 496 - htdocs/resources/views/backup.blade.php | 20 +- 1405 files changed, 273 insertions(+), 254420 deletions(-) delete mode 100644 htdocs/public/high/assets/css/bootstrap.min.css delete mode 100644 htdocs/public/high/assets/css/icons.css delete mode 100644 htdocs/public/high/assets/css/icons.css.map delete mode 100644 htdocs/public/high/assets/css/style.css delete mode 100644 htdocs/public/high/assets/css/style.css.map delete mode 100644 htdocs/public/high/assets/fonts/FontAwesome.otf delete mode 100644 htdocs/public/high/assets/fonts/Simple-Line-Icons.eot delete mode 100644 htdocs/public/high/assets/fonts/Simple-Line-Icons.svg delete mode 100644 htdocs/public/high/assets/fonts/Simple-Line-Icons.ttf delete mode 100644 htdocs/public/high/assets/fonts/Simple-Line-Icons.woff delete mode 100644 htdocs/public/high/assets/fonts/Simple-Line-Icons.woff2 delete mode 100644 htdocs/public/high/assets/fonts/dripicons-v2.eot delete mode 100644 htdocs/public/high/assets/fonts/dripicons-v2.svg delete mode 100644 htdocs/public/high/assets/fonts/dripicons-v2.ttf delete mode 100644 htdocs/public/high/assets/fonts/dripicons-v2.woff delete mode 100644 htdocs/public/high/assets/fonts/feather-webfont.eot delete mode 100644 htdocs/public/high/assets/fonts/feather-webfont.svg delete mode 100644 htdocs/public/high/assets/fonts/feather-webfont.ttf delete mode 100644 htdocs/public/high/assets/fonts/feather-webfont.woff delete mode 100644 htdocs/public/high/assets/fonts/fontawesome-webfont.eot delete mode 100644 htdocs/public/high/assets/fonts/fontawesome-webfont.svg delete mode 100644 htdocs/public/high/assets/fonts/fontawesome-webfont.ttf delete mode 100644 htdocs/public/high/assets/fonts/fontawesome-webfont.woff delete mode 100644 htdocs/public/high/assets/fonts/fontawesome-webfont.woff2 delete mode 100644 htdocs/public/high/assets/fonts/materialdesignicons-webfont.eot delete mode 100644 htdocs/public/high/assets/fonts/materialdesignicons-webfont.svg delete mode 100644 htdocs/public/high/assets/fonts/materialdesignicons-webfont.ttf delete mode 100644 htdocs/public/high/assets/fonts/materialdesignicons-webfont.woff delete mode 100644 htdocs/public/high/assets/fonts/materialdesignicons-webfont.woff2 delete mode 100644 htdocs/public/high/assets/fonts/slick.eot delete mode 100644 htdocs/public/high/assets/fonts/slick.svg delete mode 100644 htdocs/public/high/assets/fonts/slick.ttf delete mode 100644 htdocs/public/high/assets/fonts/slick.woff delete mode 100644 htdocs/public/high/assets/images/attached-files/img-1.jpg delete mode 100644 htdocs/public/high/assets/images/attached-files/img-2.jpg delete mode 100644 htdocs/public/high/assets/images/attached-files/img-3.jpg delete mode 100644 htdocs/public/high/assets/images/bg-1.jpg delete mode 100644 htdocs/public/high/assets/images/bg-2.jpg delete mode 100644 htdocs/public/high/assets/images/companies/airbnb.png delete mode 100644 htdocs/public/high/assets/images/companies/amazon.png delete mode 100644 htdocs/public/high/assets/images/companies/apple.png delete mode 100644 htdocs/public/high/assets/images/companies/cisco.jpg delete mode 100644 htdocs/public/high/assets/images/companies/facebook.png delete mode 100644 htdocs/public/high/assets/images/companies/google.png delete mode 100644 htdocs/public/high/assets/images/companies/intel.png delete mode 100644 htdocs/public/high/assets/images/companies/yahoo.png delete mode 100644 htdocs/public/high/assets/images/email/1.png delete mode 100644 htdocs/public/high/assets/images/email/2.png delete mode 100644 htdocs/public/high/assets/images/email/3.png delete mode 100644 htdocs/public/high/assets/images/favicon.ico delete mode 100644 htdocs/public/high/assets/images/file_icons/3ds.svg delete mode 100644 htdocs/public/high/assets/images/file_icons/aac.svg delete mode 100644 htdocs/public/high/assets/images/file_icons/ai.svg delete mode 100644 htdocs/public/high/assets/images/file_icons/avi.svg delete mode 100644 htdocs/public/high/assets/images/file_icons/bmp.svg delete mode 100644 htdocs/public/high/assets/images/file_icons/cad.svg delete mode 100644 htdocs/public/high/assets/images/file_icons/cdr.svg delete mode 100644 htdocs/public/high/assets/images/file_icons/css.svg delete mode 100644 htdocs/public/high/assets/images/file_icons/dat.svg delete mode 100644 htdocs/public/high/assets/images/file_icons/dll.svg delete mode 100644 htdocs/public/high/assets/images/file_icons/dmg.svg delete mode 100644 htdocs/public/high/assets/images/file_icons/doc.svg delete mode 100644 htdocs/public/high/assets/images/file_icons/eps.svg delete mode 100644 htdocs/public/high/assets/images/file_icons/fla.svg delete mode 100644 htdocs/public/high/assets/images/file_icons/flv.svg delete mode 100644 htdocs/public/high/assets/images/file_icons/gif.svg delete mode 100644 htdocs/public/high/assets/images/file_icons/html.svg delete mode 100644 htdocs/public/high/assets/images/file_icons/indd.svg delete mode 100644 htdocs/public/high/assets/images/file_icons/iso.svg delete mode 100644 htdocs/public/high/assets/images/file_icons/jpg.svg delete mode 100644 htdocs/public/high/assets/images/file_icons/js.svg delete mode 100644 htdocs/public/high/assets/images/file_icons/midi.svg delete mode 100644 htdocs/public/high/assets/images/file_icons/mov.svg delete mode 100644 htdocs/public/high/assets/images/file_icons/mp3.svg delete mode 100644 htdocs/public/high/assets/images/file_icons/mpg.svg delete mode 100644 htdocs/public/high/assets/images/file_icons/pdf.svg delete mode 100644 htdocs/public/high/assets/images/file_icons/php.svg delete mode 100644 htdocs/public/high/assets/images/file_icons/png.svg delete mode 100644 htdocs/public/high/assets/images/file_icons/ppt.svg delete mode 100644 htdocs/public/high/assets/images/file_icons/ps.svg delete mode 100644 htdocs/public/high/assets/images/file_icons/psd.svg delete mode 100644 htdocs/public/high/assets/images/file_icons/raw.svg delete mode 100644 htdocs/public/high/assets/images/file_icons/sql.svg delete mode 100644 htdocs/public/high/assets/images/file_icons/svg.svg delete mode 100644 htdocs/public/high/assets/images/file_icons/tif.svg delete mode 100644 htdocs/public/high/assets/images/file_icons/txt.svg delete mode 100644 htdocs/public/high/assets/images/file_icons/wmv.svg delete mode 100644 htdocs/public/high/assets/images/file_icons/xls.svg delete mode 100644 htdocs/public/high/assets/images/file_icons/xml.svg delete mode 100644 htdocs/public/high/assets/images/file_icons/zip.svg delete mode 100644 htdocs/public/high/assets/images/logo.png delete mode 100644 htdocs/public/high/assets/images/logo_light.png delete mode 100644 htdocs/public/high/assets/images/logo_sm.png delete mode 100644 htdocs/public/high/assets/images/small/img-1.jpg delete mode 100644 htdocs/public/high/assets/images/small/img-2.jpg delete mode 100644 htdocs/public/high/assets/images/small/img-3.jpg delete mode 100644 htdocs/public/high/assets/images/small/img-4.jpg delete mode 100644 htdocs/public/high/assets/images/small/img-5.jpg delete mode 100644 htdocs/public/high/assets/images/small/img-6.jpg delete mode 100644 htdocs/public/high/assets/images/small/img-7.jpg delete mode 100644 htdocs/public/high/assets/images/users/avatar-1.jpg delete mode 100644 htdocs/public/high/assets/images/users/avatar-10.jpg delete mode 100644 htdocs/public/high/assets/images/users/avatar-2.jpg delete mode 100644 htdocs/public/high/assets/images/users/avatar-3.jpg delete mode 100644 htdocs/public/high/assets/images/users/avatar-4.jpg delete mode 100644 htdocs/public/high/assets/images/users/avatar-5.jpg delete mode 100644 htdocs/public/high/assets/images/users/avatar-6.jpg delete mode 100644 htdocs/public/high/assets/images/users/avatar-7.jpg delete mode 100644 htdocs/public/high/assets/images/users/avatar-8.jpg delete mode 100644 htdocs/public/high/assets/images/users/avatar-9.jpg delete mode 100644 htdocs/public/high/assets/js/bootstrap.min.js delete mode 100644 htdocs/public/high/assets/js/jquery.app.js delete mode 100644 htdocs/public/high/assets/js/jquery.core.js delete mode 100644 htdocs/public/high/assets/js/jquery.min.js delete mode 100644 htdocs/public/high/assets/js/jquery.slimscroll.js delete mode 100644 htdocs/public/high/assets/js/modernizr.min.js delete mode 100644 htdocs/public/high/assets/js/popper.min.js delete mode 100644 htdocs/public/high/assets/js/waves.js delete mode 100644 htdocs/public/high/assets/js/wow.min.js delete mode 100644 htdocs/public/high/assets/pages/jquery.autocomplete.init.js delete mode 100644 htdocs/public/high/assets/pages/jquery.calendar.js delete mode 100644 htdocs/public/high/assets/pages/jquery.chartist.init.js delete mode 100644 htdocs/public/high/assets/pages/jquery.chartjs.init.js delete mode 100644 htdocs/public/high/assets/pages/jquery.charts-sparkline.js delete mode 100644 htdocs/public/high/assets/pages/jquery.companies.js delete mode 100644 htdocs/public/high/assets/pages/jquery.dashboard.init.js delete mode 100644 htdocs/public/high/assets/pages/jquery.flot.init.js delete mode 100644 htdocs/public/high/assets/pages/jquery.footable.js delete mode 100644 htdocs/public/high/assets/pages/jquery.form-advanced.init.js delete mode 100644 htdocs/public/high/assets/pages/jquery.form-pickers.init.js delete mode 100644 htdocs/public/high/assets/pages/jquery.gmaps.js delete mode 100644 htdocs/public/high/assets/pages/jquery.google-charts.init.js delete mode 100644 htdocs/public/high/assets/pages/jquery.jvectormap.init.js delete mode 100644 htdocs/public/high/assets/pages/jquery.mapael-map.init.js delete mode 100644 htdocs/public/high/assets/pages/jquery.morris.init.js delete mode 100644 htdocs/public/high/assets/pages/jquery.range-sliders.js delete mode 100644 htdocs/public/high/assets/pages/jquery.rating.js delete mode 100644 htdocs/public/high/assets/pages/jquery.sweet-alert.init.js delete mode 100644 htdocs/public/high/assets/pages/jquery.toastr.js delete mode 100644 htdocs/public/high/assets/pages/jquery.tooltipster.js delete mode 100644 htdocs/public/high/assets/pages/jquery.wizard-init.js delete mode 100644 htdocs/public/high/assets/pages/jquery.xeditable.init.js delete mode 100644 htdocs/public/high/assets/scss/_account-pages.scss delete mode 100644 htdocs/public/high/assets/scss/_alerts.scss delete mode 100644 htdocs/public/high/assets/scss/_bootstrap-reset.scss delete mode 100644 htdocs/public/high/assets/scss/_buttons.scss delete mode 100644 htdocs/public/high/assets/scss/_calendar.scss delete mode 100644 htdocs/public/high/assets/scss/_card.scss delete mode 100644 htdocs/public/high/assets/scss/_charts.scss delete mode 100644 htdocs/public/high/assets/scss/_checkbox-radio.scss delete mode 100644 htdocs/public/high/assets/scss/_coming-soon.scss delete mode 100644 htdocs/public/high/assets/scss/_common.scss delete mode 100644 htdocs/public/high/assets/scss/_companies.scss delete mode 100644 htdocs/public/high/assets/scss/_email.scss delete mode 100644 htdocs/public/high/assets/scss/_faq.scss delete mode 100644 htdocs/public/high/assets/scss/_file-manager.scss delete mode 100644 htdocs/public/high/assets/scss/_form-advanced.scss delete mode 100644 htdocs/public/high/assets/scss/_form-elements.scss delete mode 100644 htdocs/public/high/assets/scss/_form-pickers.scss delete mode 100644 htdocs/public/high/assets/scss/_form-uploads.scss delete mode 100644 htdocs/public/high/assets/scss/_form-validation.scss delete mode 100644 htdocs/public/high/assets/scss/_form-wizard.scss delete mode 100644 htdocs/public/high/assets/scss/_gallery.scss delete mode 100644 htdocs/public/high/assets/scss/_helper.scss delete mode 100644 htdocs/public/high/assets/scss/_maps.scss delete mode 100644 htdocs/public/high/assets/scss/_menu.scss delete mode 100644 htdocs/public/high/assets/scss/_modal.scss delete mode 100644 htdocs/public/high/assets/scss/_popover-tooltips.scss delete mode 100644 htdocs/public/high/assets/scss/_pricing.scss delete mode 100644 htdocs/public/high/assets/scss/_print.scss delete mode 100644 htdocs/public/high/assets/scss/_profile.scss delete mode 100644 htdocs/public/high/assets/scss/_progress.scss delete mode 100644 htdocs/public/high/assets/scss/_projects.scss delete mode 100644 htdocs/public/high/assets/scss/_responsive.scss delete mode 100644 htdocs/public/high/assets/scss/_ribbons.scss delete mode 100644 htdocs/public/high/assets/scss/_search-results.scss delete mode 100644 htdocs/public/high/assets/scss/_spinners.scss delete mode 100644 htdocs/public/high/assets/scss/_summernote.scss delete mode 100644 htdocs/public/high/assets/scss/_sweet-alert.scss delete mode 100644 htdocs/public/high/assets/scss/_tables.scss delete mode 100644 htdocs/public/high/assets/scss/_tabs.scss delete mode 100644 htdocs/public/high/assets/scss/_taskboard.scss delete mode 100644 htdocs/public/high/assets/scss/_tickets.scss delete mode 100644 htdocs/public/high/assets/scss/_timeline.scss delete mode 100644 htdocs/public/high/assets/scss/_variables.scss delete mode 100644 htdocs/public/high/assets/scss/_waves.scss delete mode 100644 htdocs/public/high/assets/scss/_widgets.scss delete mode 100644 htdocs/public/high/assets/scss/_wysiwig.scss delete mode 100644 htdocs/public/high/assets/scss/icons.scss delete mode 100644 htdocs/public/high/assets/scss/icons/css/dripicons.css delete mode 100644 htdocs/public/high/assets/scss/icons/css/dripicons.css.map delete mode 100644 htdocs/public/high/assets/scss/icons/css/feather.css delete mode 100644 htdocs/public/high/assets/scss/icons/css/feather.css.map delete mode 100644 htdocs/public/high/assets/scss/icons/css/materialdesignicons.css delete mode 100644 htdocs/public/high/assets/scss/icons/css/materialdesignicons.css.map delete mode 100644 htdocs/public/high/assets/scss/icons/css/pe-icon-7-stroke.css delete mode 100644 htdocs/public/high/assets/scss/icons/css/pe-icon-7-stroke.css.map delete mode 100644 htdocs/public/high/assets/scss/icons/css/typicons.css delete mode 100644 htdocs/public/high/assets/scss/icons/css/typicons.css.map delete mode 100644 htdocs/public/high/assets/scss/icons/dripicons/dripicons.css delete mode 100644 htdocs/public/high/assets/scss/icons/dripicons/dripicons.css.map delete mode 100644 htdocs/public/high/assets/scss/icons/dripicons/dripicons.scss delete mode 100644 htdocs/public/high/assets/scss/icons/dripicons/fonts/dripicons-v2.eot delete mode 100644 htdocs/public/high/assets/scss/icons/dripicons/fonts/dripicons-v2.svg delete mode 100644 htdocs/public/high/assets/scss/icons/dripicons/fonts/dripicons-v2.ttf delete mode 100644 htdocs/public/high/assets/scss/icons/dripicons/fonts/dripicons-v2.woff delete mode 100644 htdocs/public/high/assets/scss/icons/feather/feather.css delete mode 100644 htdocs/public/high/assets/scss/icons/feather/feather.css.map delete mode 100644 htdocs/public/high/assets/scss/icons/feather/feather.scss delete mode 100644 htdocs/public/high/assets/scss/icons/feather/fonts/feather-webfont.eot delete mode 100644 htdocs/public/high/assets/scss/icons/feather/fonts/feather-webfont.svg delete mode 100644 htdocs/public/high/assets/scss/icons/feather/fonts/feather-webfont.ttf delete mode 100644 htdocs/public/high/assets/scss/icons/feather/fonts/feather-webfont.woff delete mode 100644 htdocs/public/high/assets/scss/icons/font-awesome/css/font-awesome.css delete mode 100644 htdocs/public/high/assets/scss/icons/font-awesome/css/font-awesome.css.map delete mode 100644 htdocs/public/high/assets/scss/icons/font-awesome/css/font-awesome.min.css delete mode 100644 htdocs/public/high/assets/scss/icons/font-awesome/css/mixins.css delete mode 100644 htdocs/public/high/assets/scss/icons/font-awesome/css/variables.css delete mode 100644 htdocs/public/high/assets/scss/icons/font-awesome/fonts/FontAwesome.otf delete mode 100644 htdocs/public/high/assets/scss/icons/font-awesome/fonts/fontawesome-webfont.eot delete mode 100644 htdocs/public/high/assets/scss/icons/font-awesome/fonts/fontawesome-webfont.svg delete mode 100644 htdocs/public/high/assets/scss/icons/font-awesome/fonts/fontawesome-webfont.ttf delete mode 100644 htdocs/public/high/assets/scss/icons/font-awesome/fonts/fontawesome-webfont.woff delete mode 100644 htdocs/public/high/assets/scss/icons/font-awesome/fonts/fontawesome-webfont.woff2 delete mode 100644 htdocs/public/high/assets/scss/icons/font-awesome/less/animated.less delete mode 100644 htdocs/public/high/assets/scss/icons/font-awesome/less/bordered-pulled.less delete mode 100644 htdocs/public/high/assets/scss/icons/font-awesome/less/core.less delete mode 100644 htdocs/public/high/assets/scss/icons/font-awesome/less/fixed-width.less delete mode 100644 htdocs/public/high/assets/scss/icons/font-awesome/less/font-awesome.less delete mode 100644 htdocs/public/high/assets/scss/icons/font-awesome/less/icons.less delete mode 100644 htdocs/public/high/assets/scss/icons/font-awesome/less/larger.less delete mode 100644 htdocs/public/high/assets/scss/icons/font-awesome/less/list.less delete mode 100644 htdocs/public/high/assets/scss/icons/font-awesome/less/mixins.less delete mode 100644 htdocs/public/high/assets/scss/icons/font-awesome/less/path.less delete mode 100644 htdocs/public/high/assets/scss/icons/font-awesome/less/rotated-flipped.less delete mode 100644 htdocs/public/high/assets/scss/icons/font-awesome/less/screen-reader.less delete mode 100644 htdocs/public/high/assets/scss/icons/font-awesome/less/stacked.less delete mode 100644 htdocs/public/high/assets/scss/icons/font-awesome/less/variables.less delete mode 100644 htdocs/public/high/assets/scss/icons/font-awesome/scss/_animated.scss delete mode 100644 htdocs/public/high/assets/scss/icons/font-awesome/scss/_bordered-pulled.scss delete mode 100644 htdocs/public/high/assets/scss/icons/font-awesome/scss/_core.scss delete mode 100644 htdocs/public/high/assets/scss/icons/font-awesome/scss/_fixed-width.scss delete mode 100644 htdocs/public/high/assets/scss/icons/font-awesome/scss/_icons.scss delete mode 100644 htdocs/public/high/assets/scss/icons/font-awesome/scss/_larger.scss delete mode 100644 htdocs/public/high/assets/scss/icons/font-awesome/scss/_list.scss delete mode 100644 htdocs/public/high/assets/scss/icons/font-awesome/scss/_mixins.scss delete mode 100644 htdocs/public/high/assets/scss/icons/font-awesome/scss/_path.scss delete mode 100644 htdocs/public/high/assets/scss/icons/font-awesome/scss/_rotated-flipped.scss delete mode 100644 htdocs/public/high/assets/scss/icons/font-awesome/scss/_screen-reader.scss delete mode 100644 htdocs/public/high/assets/scss/icons/font-awesome/scss/_stacked.scss delete mode 100644 htdocs/public/high/assets/scss/icons/font-awesome/scss/_variables.scss delete mode 100644 htdocs/public/high/assets/scss/icons/font-awesome/scss/font-awesome.css delete mode 100644 htdocs/public/high/assets/scss/icons/font-awesome/scss/font-awesome.css.map delete mode 100644 htdocs/public/high/assets/scss/icons/font-awesome/scss/font-awesome.scss delete mode 100644 htdocs/public/high/assets/scss/icons/material-design/css/materialdesignicons.css delete mode 100644 htdocs/public/high/assets/scss/icons/material-design/css/materialdesignicons.css.map delete mode 100644 htdocs/public/high/assets/scss/icons/material-design/css/materialdesignicons.min.css delete mode 100644 htdocs/public/high/assets/scss/icons/material-design/css/materialdesignicons.min.css.map delete mode 100644 htdocs/public/high/assets/scss/icons/material-design/fonts/materialdesignicons-webfont.eot delete mode 100644 htdocs/public/high/assets/scss/icons/material-design/fonts/materialdesignicons-webfont.svg delete mode 100644 htdocs/public/high/assets/scss/icons/material-design/fonts/materialdesignicons-webfont.ttf delete mode 100644 htdocs/public/high/assets/scss/icons/material-design/fonts/materialdesignicons-webfont.woff delete mode 100644 htdocs/public/high/assets/scss/icons/material-design/fonts/materialdesignicons-webfont.woff2 delete mode 100644 htdocs/public/high/assets/scss/icons/material-design/scss/_animated.scss delete mode 100644 htdocs/public/high/assets/scss/icons/material-design/scss/_core.scss delete mode 100644 htdocs/public/high/assets/scss/icons/material-design/scss/_extras.scss delete mode 100644 htdocs/public/high/assets/scss/icons/material-design/scss/_functions.scss delete mode 100644 htdocs/public/high/assets/scss/icons/material-design/scss/_icons.scss delete mode 100644 htdocs/public/high/assets/scss/icons/material-design/scss/_path.scss delete mode 100644 htdocs/public/high/assets/scss/icons/material-design/scss/_variables.scss delete mode 100644 htdocs/public/high/assets/scss/icons/material-design/scss/materialdesignicons.css delete mode 100644 htdocs/public/high/assets/scss/icons/material-design/scss/materialdesignicons.css.map delete mode 100644 htdocs/public/high/assets/scss/icons/material-design/scss/materialdesignicons.scss delete mode 100644 htdocs/public/high/assets/scss/icons/simple-line-icons/css/simple-line-icons.css delete mode 100644 htdocs/public/high/assets/scss/icons/simple-line-icons/css/simple-line-icons.css.map delete mode 100644 htdocs/public/high/assets/scss/icons/simple-line-icons/fonts/Simple-Line-Icons.eot delete mode 100644 htdocs/public/high/assets/scss/icons/simple-line-icons/fonts/Simple-Line-Icons.svg delete mode 100644 htdocs/public/high/assets/scss/icons/simple-line-icons/fonts/Simple-Line-Icons.ttf delete mode 100644 htdocs/public/high/assets/scss/icons/simple-line-icons/fonts/Simple-Line-Icons.woff delete mode 100644 htdocs/public/high/assets/scss/icons/simple-line-icons/fonts/Simple-Line-Icons.woff2 delete mode 100644 htdocs/public/high/assets/scss/icons/simple-line-icons/less/simple-line-icons.less delete mode 100644 htdocs/public/high/assets/scss/icons/simple-line-icons/scss/simple-line-icons.css delete mode 100644 htdocs/public/high/assets/scss/icons/simple-line-icons/scss/simple-line-icons.css.map delete mode 100644 htdocs/public/high/assets/scss/icons/simple-line-icons/scss/simple-line-icons.scss delete mode 100644 htdocs/public/high/assets/scss/style.scss delete mode 100644 htdocs/public/high/plugins/autoNumeric/autoNumeric.js delete mode 100644 htdocs/public/high/plugins/autocomplete/countries.js delete mode 100644 htdocs/public/high/plugins/autocomplete/demo.js delete mode 100644 htdocs/public/high/plugins/autocomplete/jquery.autocomplete.min.js delete mode 100644 htdocs/public/high/plugins/autocomplete/jquery.mockjax.js delete mode 100644 htdocs/public/high/plugins/bootstrap-colorpicker/css/bootstrap-colorpicker.css delete mode 100644 htdocs/public/high/plugins/bootstrap-colorpicker/css/bootstrap-colorpicker.css.map delete mode 100644 htdocs/public/high/plugins/bootstrap-colorpicker/css/bootstrap-colorpicker.min.css delete mode 100644 htdocs/public/high/plugins/bootstrap-colorpicker/css/bootstrap-colorpicker.min.css.map delete mode 100644 htdocs/public/high/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/alpha-horizontal.png delete mode 100644 htdocs/public/high/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/alpha.png delete mode 100644 htdocs/public/high/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/hue-horizontal.png delete mode 100644 htdocs/public/high/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/hue.png delete mode 100644 htdocs/public/high/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/saturation.png delete mode 100644 htdocs/public/high/plugins/bootstrap-colorpicker/js/bootstrap-colorpicker.js delete mode 100644 htdocs/public/high/plugins/bootstrap-colorpicker/js/bootstrap-colorpicker.min.js delete mode 100644 htdocs/public/high/plugins/bootstrap-datepicker/css/bootstrap-datepicker.min.css delete mode 100644 htdocs/public/high/plugins/bootstrap-datepicker/js/bootstrap-datepicker.min.js delete mode 100644 htdocs/public/high/plugins/bootstrap-daterangepicker/daterangepicker.css delete mode 100644 htdocs/public/high/plugins/bootstrap-daterangepicker/daterangepicker.js delete mode 100644 htdocs/public/high/plugins/bootstrap-daterangepicker/drp.png delete mode 100644 htdocs/public/high/plugins/bootstrap-filestyle/js/bootstrap-filestyle.min.js delete mode 100644 htdocs/public/high/plugins/bootstrap-fileupload/bootstrap-fileupload.css delete mode 100644 htdocs/public/high/plugins/bootstrap-fileupload/bootstrap-fileupload.js delete mode 100644 htdocs/public/high/plugins/bootstrap-inputmask/bootstrap-inputmask.min.js delete mode 100644 htdocs/public/high/plugins/bootstrap-maxlength/bootstrap-maxlength.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/css/bootstrap-select.css delete mode 100644 htdocs/public/high/plugins/bootstrap-select/css/bootstrap-select.css.map delete mode 100644 htdocs/public/high/plugins/bootstrap-select/css/bootstrap-select.min.css delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/bootstrap-select.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/bootstrap-select.js.map delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/bootstrap-select.min.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-ar_AR.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-ar_AR.min.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-bg_BG.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-bg_BG.min.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-cro_CRO.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-cro_CRO.min.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-cs_CZ.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-cs_CZ.min.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-da_DK.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-da_DK.min.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-de_DE.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-de_DE.min.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-en_US.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-en_US.min.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-es_CL.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-es_CL.min.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-es_ES.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-es_ES.min.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-et_EE.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-et_EE.min.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-eu.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-eu.min.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-fa_IR.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-fa_IR.min.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-fi_FI.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-fi_FI.min.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-fr_FR.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-fr_FR.min.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-hu_HU.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-hu_HU.min.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-id_ID.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-id_ID.min.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-it_IT.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-it_IT.min.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-ja_JP.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-ja_JP.min.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-kh_KM.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-kh_KM.min.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-ko_KR.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-ko_KR.min.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-lt_LT.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-lt_LT.min.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-nb_NO.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-nb_NO.min.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-nl_NL.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-nl_NL.min.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-pl_PL.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-pl_PL.min.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-pt_BR.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-pt_BR.min.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-pt_PT.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-pt_PT.min.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-ro_RO.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-ro_RO.min.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-ru_RU.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-ru_RU.min.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-sk_SK.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-sk_SK.min.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-sl_SI.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-sl_SI.min.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-sv_SE.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-sv_SE.min.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-tr_TR.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-tr_TR.min.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-ua_UA.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-ua_UA.min.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-vi_VN.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-vi_VN.min.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-zh_CN.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-zh_CN.min.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-zh_TW.js delete mode 100644 htdocs/public/high/plugins/bootstrap-select/js/i18n/defaults-zh_TW.min.js delete mode 100644 htdocs/public/high/plugins/bootstrap-tagsinput/css/bootstrap-tagsinput.css delete mode 100644 htdocs/public/high/plugins/bootstrap-tagsinput/js/bootstrap-tagsinput.min.js delete mode 100644 htdocs/public/high/plugins/bootstrap-timepicker/bootstrap-timepicker.js delete mode 100644 htdocs/public/high/plugins/bootstrap-timepicker/bootstrap-timepicker.min.css delete mode 100644 htdocs/public/high/plugins/chartist/css/chartist.min.css delete mode 100644 htdocs/public/high/plugins/chartist/js/chartist-plugin-tooltip.min.js delete mode 100644 htdocs/public/high/plugins/chartist/js/chartist.min.js delete mode 100644 htdocs/public/high/plugins/clockpicker/css/bootstrap-clockpicker.min.css delete mode 100644 htdocs/public/high/plugins/clockpicker/js/bootstrap-clockpicker.min.js delete mode 100644 htdocs/public/high/plugins/count-down/jquery.lwtCountdown-1.0.js delete mode 100644 htdocs/public/high/plugins/counterup/jquery.counterup.min.js delete mode 100644 htdocs/public/high/plugins/custombox/css/custombox.min.css delete mode 100644 htdocs/public/high/plugins/custombox/js/custombox.min.js delete mode 100644 htdocs/public/high/plugins/custombox/js/legacy.min.js delete mode 100644 htdocs/public/high/plugins/datatables/buttons.bootstrap4.min.css delete mode 100644 htdocs/public/high/plugins/datatables/buttons.bootstrap4.min.js delete mode 100644 htdocs/public/high/plugins/datatables/buttons.colVis.min.js delete mode 100644 htdocs/public/high/plugins/datatables/buttons.html5.min.js delete mode 100644 htdocs/public/high/plugins/datatables/buttons.print.min.js delete mode 100644 htdocs/public/high/plugins/datatables/dataTables.bootstrap4.min.css delete mode 100644 htdocs/public/high/plugins/datatables/dataTables.bootstrap4.min.js delete mode 100644 htdocs/public/high/plugins/datatables/dataTables.buttons.min.js delete mode 100644 htdocs/public/high/plugins/datatables/dataTables.keyTable.min.js delete mode 100644 htdocs/public/high/plugins/datatables/dataTables.responsive.min.js delete mode 100644 htdocs/public/high/plugins/datatables/dataTables.select.min.js delete mode 100644 htdocs/public/high/plugins/datatables/jquery.dataTables.min.js delete mode 100644 htdocs/public/high/plugins/datatables/json/scroller-demo.json delete mode 100644 htdocs/public/high/plugins/datatables/jszip.min.js delete mode 100644 htdocs/public/high/plugins/datatables/pdfmake.min.js delete mode 100644 htdocs/public/high/plugins/datatables/responsive.bootstrap4.min.css delete mode 100644 htdocs/public/high/plugins/datatables/responsive.bootstrap4.min.js delete mode 100644 htdocs/public/high/plugins/datatables/select.bootstrap4.min.css delete mode 100644 htdocs/public/high/plugins/datatables/vfs_fonts.js delete mode 100644 htdocs/public/high/plugins/excellexport/index.html delete mode 100644 htdocs/public/high/plugins/excellexport/jquery.battatech.excelexport.js delete mode 100644 htdocs/public/high/plugins/footable/css/fonts/footable.eot delete mode 100644 htdocs/public/high/plugins/footable/css/fonts/footable.svg delete mode 100644 htdocs/public/high/plugins/footable/css/fonts/footable.ttf delete mode 100644 htdocs/public/high/plugins/footable/css/fonts/footable.woff delete mode 100644 htdocs/public/high/plugins/footable/css/footable.core.css delete mode 100644 htdocs/public/high/plugins/footable/js/footable.all.min.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/LICENSE.txt delete mode 100644 htdocs/public/high/plugins/fullcalendar/README.md delete mode 100644 htdocs/public/high/plugins/fullcalendar/examples/background-events.html delete mode 100644 htdocs/public/high/plugins/fullcalendar/examples/daygrid-views.html delete mode 100644 htdocs/public/high/plugins/fullcalendar/examples/external-dragging-2cals.html delete mode 100644 htdocs/public/high/plugins/fullcalendar/examples/external-dragging-builtin.html delete mode 100644 htdocs/public/high/plugins/fullcalendar/examples/full-height.html delete mode 100644 htdocs/public/high/plugins/fullcalendar/examples/google-calendar.html delete mode 100644 htdocs/public/high/plugins/fullcalendar/examples/js/theme-chooser.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/examples/json.html delete mode 100644 htdocs/public/high/plugins/fullcalendar/examples/json/events.json delete mode 100644 htdocs/public/high/plugins/fullcalendar/examples/list-views.html delete mode 100644 htdocs/public/high/plugins/fullcalendar/examples/locales.html delete mode 100644 htdocs/public/high/plugins/fullcalendar/examples/month-view.html delete mode 100644 htdocs/public/high/plugins/fullcalendar/examples/php/get-events.php delete mode 100644 htdocs/public/high/plugins/fullcalendar/examples/php/get-time-zones.php delete mode 100644 htdocs/public/high/plugins/fullcalendar/examples/php/utils.php delete mode 100644 htdocs/public/high/plugins/fullcalendar/examples/rrule.html delete mode 100644 htdocs/public/high/plugins/fullcalendar/examples/selectable.html delete mode 100644 htdocs/public/high/plugins/fullcalendar/examples/theming.html delete mode 100644 htdocs/public/high/plugins/fullcalendar/examples/time-zones.html delete mode 100644 htdocs/public/high/plugins/fullcalendar/examples/timegrid-views.html delete mode 100644 htdocs/public/high/plugins/fullcalendar/examples/week-numbers.html delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales-all.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales-all.min.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/af.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/ar-dz.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/ar-kw.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/ar-ly.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/ar-ma.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/ar-sa.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/ar-tn.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/ar.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/bg.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/bs.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/ca.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/cs.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/da.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/de.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/el.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/en-au.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/en-gb.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/en-nz.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/es-us.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/es.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/et.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/eu.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/fa.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/fi.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/fr-ca.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/fr-ch.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/fr.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/gl.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/he.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/hi.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/hr.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/hu.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/id.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/is.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/it.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/ja.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/ka.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/kk.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/ko.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/lb.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/lt.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/lv.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/mk.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/ms.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/nb.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/nl.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/nn.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/pl.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/pt-br.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/pt.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/ro.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/ru.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/sk.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/sl.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/sq.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/sr-cyrl.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/sr.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/sv.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/th.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/tr.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/uk.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/vi.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/zh-cn.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/locales/zh-tw.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/main.css delete mode 100644 htdocs/public/high/plugins/fullcalendar/main.d.ts delete mode 100644 htdocs/public/high/plugins/fullcalendar/main.esm.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/main.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/main.min.css delete mode 100644 htdocs/public/high/plugins/fullcalendar/main.min.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/bootstrap/LICENSE.txt delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/bootstrap/README.md delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/bootstrap/main.css delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/bootstrap/main.d.ts delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/bootstrap/main.esm.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/bootstrap/main.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/bootstrap/main.min.css delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/bootstrap/main.min.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/bootstrap/package.json delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/LICENSE.txt delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/README.md delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales-all.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales-all.min.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/af.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar-dz.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar-kw.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar-ly.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar-ma.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar-sa.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar-tn.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/bg.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/bs.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/ca.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/cs.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/da.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/de.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/el.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/en-au.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/en-gb.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/en-nz.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/es-us.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/es.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/et.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/eu.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/fa.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/fi.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/fr-ca.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/fr-ch.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/fr.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/gl.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/he.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/hi.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/hr.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/hu.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/id.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/is.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/it.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/ja.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/ka.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/kk.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/ko.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/lb.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/lt.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/lv.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/mk.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/ms.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/nb.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/nl.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/nn.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/pl.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/pt-br.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/pt.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/ro.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/ru.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/sk.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/sl.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/sq.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/sr-cyrl.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/sr.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/sv.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/th.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/tr.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/uk.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/vi.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/zh-cn.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/locales/zh-tw.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/main.css delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/main.d.ts delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/main.esm.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/main.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/main.min.css delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/main.min.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/core/package.json delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/daygrid/LICENSE.txt delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/daygrid/README.md delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/daygrid/main.css delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/daygrid/main.d.ts delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/daygrid/main.esm.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/daygrid/main.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/daygrid/main.min.css delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/daygrid/main.min.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/daygrid/package.json delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/google-calendar/LICENSE.txt delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/google-calendar/README.md delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/google-calendar/main.d.ts delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/google-calendar/main.esm.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/google-calendar/main.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/google-calendar/main.min.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/google-calendar/package.json delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/interaction/LICENSE.txt delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/interaction/README.md delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/interaction/main.d.ts delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/interaction/main.esm.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/interaction/main.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/interaction/main.min.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/interaction/package.json delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/list/LICENSE.txt delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/list/README.md delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/list/main.css delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/list/main.d.ts delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/list/main.esm.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/list/main.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/list/main.min.css delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/list/main.min.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/list/package.json delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/luxon/LICENSE.txt delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/luxon/README.md delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/luxon/main.d.ts delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/luxon/main.esm.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/luxon/main.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/luxon/main.min.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/luxon/package.json delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/moment-timezone/LICENSE.txt delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/moment-timezone/README.md delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/moment-timezone/main.d.ts delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/moment-timezone/main.esm.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/moment-timezone/main.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/moment-timezone/main.min.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/moment-timezone/package.json delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/moment/LICENSE.txt delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/moment/README.md delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/moment/main.d.ts delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/moment/main.esm.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/moment/main.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/moment/main.min.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/moment/package.json delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/rrule/LICENSE.txt delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/rrule/README.md delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/rrule/main.d.ts delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/rrule/main.esm.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/rrule/main.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/rrule/main.min.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/rrule/package.json delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/timegrid/LICENSE.txt delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/timegrid/README.md delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/timegrid/main.css delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/timegrid/main.d.ts delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/timegrid/main.esm.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/timegrid/main.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/timegrid/main.min.css delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/timegrid/main.min.js delete mode 100644 htdocs/public/high/plugins/fullcalendar/packages/timegrid/package.json delete mode 100644 htdocs/public/high/plugins/fullcalendar/vendor/rrule.js delete mode 100644 htdocs/public/high/plugins/gmaps/gmaps.min.js delete mode 100644 htdocs/public/high/plugins/gmaps/lib/gmaps.controls.js delete mode 100644 htdocs/public/high/plugins/gmaps/lib/gmaps.core.js delete mode 100644 htdocs/public/high/plugins/gmaps/lib/gmaps.events.js delete mode 100644 htdocs/public/high/plugins/gmaps/lib/gmaps.geofences.js delete mode 100644 htdocs/public/high/plugins/gmaps/lib/gmaps.geometry.js delete mode 100644 htdocs/public/high/plugins/gmaps/lib/gmaps.layers.js delete mode 100644 htdocs/public/high/plugins/gmaps/lib/gmaps.map_types.js delete mode 100644 htdocs/public/high/plugins/gmaps/lib/gmaps.markers.js delete mode 100644 htdocs/public/high/plugins/gmaps/lib/gmaps.native_extensions.js delete mode 100644 htdocs/public/high/plugins/gmaps/lib/gmaps.overlays.js delete mode 100644 htdocs/public/high/plugins/gmaps/lib/gmaps.routes.js delete mode 100644 htdocs/public/high/plugins/gmaps/lib/gmaps.static.js delete mode 100644 htdocs/public/high/plugins/gmaps/lib/gmaps.streetview.js delete mode 100644 htdocs/public/high/plugins/gmaps/lib/gmaps.styles.js delete mode 100644 htdocs/public/high/plugins/gmaps/lib/gmaps.utils.js delete mode 100644 htdocs/public/high/plugins/ion-rangeslider/ion.rangeSlider.css delete mode 100644 htdocs/public/high/plugins/ion-rangeslider/ion.rangeSlider.min.js delete mode 100644 htdocs/public/high/plugins/ion-rangeslider/ion.rangeSlider.skinFlat.css delete mode 100644 htdocs/public/high/plugins/ion-rangeslider/ion.rangeSlider.skinModern.css delete mode 100644 htdocs/public/high/plugins/ion-rangeslider/sprite-skin-flat.png delete mode 100644 htdocs/public/high/plugins/ion-rangeslider/sprite-skin-modern.png delete mode 100644 htdocs/public/high/plugins/isotope/js/isotope.pkgd.min.js delete mode 100644 htdocs/public/high/plugins/jquery-knob/excanvas.js delete mode 100644 htdocs/public/high/plugins/jquery-knob/jquery.knob.js delete mode 100644 htdocs/public/high/plugins/jquery-mapael/jquery.mapael.js delete mode 100644 htdocs/public/high/plugins/jquery-mapael/jquery.mapael.min.js delete mode 100644 htdocs/public/high/plugins/jquery-mapael/maps/README.txt delete mode 100644 htdocs/public/high/plugins/jquery-mapael/maps/france_departments.js delete mode 100644 htdocs/public/high/plugins/jquery-mapael/maps/france_departments.min.js delete mode 100644 htdocs/public/high/plugins/jquery-mapael/maps/usa_states.js delete mode 100644 htdocs/public/high/plugins/jquery-mapael/maps/usa_states.min.js delete mode 100644 htdocs/public/high/plugins/jquery-mapael/maps/world_countries.js delete mode 100644 htdocs/public/high/plugins/jquery-mapael/maps/world_countries.min.js delete mode 100644 htdocs/public/high/plugins/jquery-mapael/maps/world_countries_mercator.js delete mode 100644 htdocs/public/high/plugins/jquery-mapael/maps/world_countries_mercator.min.js delete mode 100644 htdocs/public/high/plugins/jquery-mapael/maps/world_countries_miller.js delete mode 100644 htdocs/public/high/plugins/jquery-mapael/maps/world_countries_miller.min.js delete mode 100644 htdocs/public/high/plugins/jquery-mapael/raphael-min.js delete mode 100644 htdocs/public/high/plugins/jquery-sparkline/jquery.sparkline.min.js delete mode 100644 htdocs/public/high/plugins/jquery-toastr/jquery.toast.min.css delete mode 100644 htdocs/public/high/plugins/jquery-toastr/jquery.toast.min.js delete mode 100644 htdocs/public/high/plugins/jquery-ui/jquery-ui.min.css delete mode 100644 htdocs/public/high/plugins/jquery-ui/jquery-ui.min.js delete mode 100644 htdocs/public/high/plugins/jquery.steps/css/jquery.steps.css delete mode 100644 htdocs/public/high/plugins/jquery.steps/js/jquery.steps.min.js delete mode 100644 htdocs/public/high/plugins/jvectormap/gdp-data.js delete mode 100644 htdocs/public/high/plugins/jvectormap/jquery-jvectormap-2.0.2.css delete mode 100644 htdocs/public/high/plugins/jvectormap/jquery-jvectormap-2.0.2.min.js delete mode 100644 htdocs/public/high/plugins/jvectormap/jquery-jvectormap-asia-mill.js delete mode 100644 htdocs/public/high/plugins/jvectormap/jquery-jvectormap-au-mill.js delete mode 100644 htdocs/public/high/plugins/jvectormap/jquery-jvectormap-ca-lcc.js delete mode 100644 htdocs/public/high/plugins/jvectormap/jquery-jvectormap-de-mill.js delete mode 100644 htdocs/public/high/plugins/jvectormap/jquery-jvectormap-europe-mill-en.js delete mode 100644 htdocs/public/high/plugins/jvectormap/jquery-jvectormap-in-mill.js delete mode 100644 htdocs/public/high/plugins/jvectormap/jquery-jvectormap-uk-mill-en.js delete mode 100644 htdocs/public/high/plugins/jvectormap/jquery-jvectormap-us-aea-en.js delete mode 100644 htdocs/public/high/plugins/jvectormap/jquery-jvectormap-us-il-chicago-mill-en.js delete mode 100644 htdocs/public/high/plugins/jvectormap/jquery-jvectormap-world-mill-en.js delete mode 100644 htdocs/public/high/plugins/magnific-popup/css/magnific-popup.css delete mode 100644 htdocs/public/high/plugins/magnific-popup/js/jquery.magnific-popup.min.js delete mode 100644 htdocs/public/high/plugins/moment/moment.js delete mode 100644 htdocs/public/high/plugins/parsleyjs/parsley.min.js delete mode 100644 htdocs/public/high/plugins/raphael/raphael-min.js delete mode 100644 htdocs/public/high/plugins/raty-fa/jquery.raty-fa.js delete mode 100644 htdocs/public/high/plugins/responsive-table/css/rwd-table.min.css delete mode 100644 htdocs/public/high/plugins/responsive-table/js/rwd-table.min.js delete mode 100644 htdocs/public/high/plugins/select2/css/select2.css delete mode 100644 htdocs/public/high/plugins/select2/css/select2.min.css delete mode 100644 htdocs/public/high/plugins/select2/js/i18n/ar.js delete mode 100644 htdocs/public/high/plugins/select2/js/i18n/az.js delete mode 100644 htdocs/public/high/plugins/select2/js/i18n/bg.js delete mode 100644 htdocs/public/high/plugins/select2/js/i18n/ca.js delete mode 100644 htdocs/public/high/plugins/select2/js/i18n/cs.js delete mode 100644 htdocs/public/high/plugins/select2/js/i18n/da.js delete mode 100644 htdocs/public/high/plugins/select2/js/i18n/de.js delete mode 100644 htdocs/public/high/plugins/select2/js/i18n/el.js delete mode 100644 htdocs/public/high/plugins/select2/js/i18n/en.js delete mode 100644 htdocs/public/high/plugins/select2/js/i18n/es.js delete mode 100644 htdocs/public/high/plugins/select2/js/i18n/et.js delete mode 100644 htdocs/public/high/plugins/select2/js/i18n/eu.js delete mode 100644 htdocs/public/high/plugins/select2/js/i18n/fa.js delete mode 100644 htdocs/public/high/plugins/select2/js/i18n/fi.js delete mode 100644 htdocs/public/high/plugins/select2/js/i18n/fr.js delete mode 100644 htdocs/public/high/plugins/select2/js/i18n/gl.js delete mode 100644 htdocs/public/high/plugins/select2/js/i18n/he.js delete mode 100644 htdocs/public/high/plugins/select2/js/i18n/hi.js delete mode 100644 htdocs/public/high/plugins/select2/js/i18n/hr.js delete mode 100644 htdocs/public/high/plugins/select2/js/i18n/hu.js delete mode 100644 htdocs/public/high/plugins/select2/js/i18n/id.js delete mode 100644 htdocs/public/high/plugins/select2/js/i18n/is.js delete mode 100644 htdocs/public/high/plugins/select2/js/i18n/it.js delete mode 100644 htdocs/public/high/plugins/select2/js/i18n/ja.js delete mode 100644 htdocs/public/high/plugins/select2/js/i18n/km.js delete mode 100644 htdocs/public/high/plugins/select2/js/i18n/ko.js delete mode 100644 htdocs/public/high/plugins/select2/js/i18n/lt.js delete mode 100644 htdocs/public/high/plugins/select2/js/i18n/lv.js delete mode 100644 htdocs/public/high/plugins/select2/js/i18n/mk.js delete mode 100644 htdocs/public/high/plugins/select2/js/i18n/ms.js delete mode 100644 htdocs/public/high/plugins/select2/js/i18n/nb.js delete mode 100644 htdocs/public/high/plugins/select2/js/i18n/nl.js delete mode 100644 htdocs/public/high/plugins/select2/js/i18n/pl.js delete mode 100644 htdocs/public/high/plugins/select2/js/i18n/pt-BR.js delete mode 100644 htdocs/public/high/plugins/select2/js/i18n/pt.js delete mode 100644 htdocs/public/high/plugins/select2/js/i18n/ro.js delete mode 100644 htdocs/public/high/plugins/select2/js/i18n/ru.js delete mode 100644 htdocs/public/high/plugins/select2/js/i18n/sk.js delete mode 100644 htdocs/public/high/plugins/select2/js/i18n/sr-Cyrl.js delete mode 100644 htdocs/public/high/plugins/select2/js/i18n/sr.js delete mode 100644 htdocs/public/high/plugins/select2/js/i18n/sv.js delete mode 100644 htdocs/public/high/plugins/select2/js/i18n/th.js delete mode 100644 htdocs/public/high/plugins/select2/js/i18n/tr.js delete mode 100644 htdocs/public/high/plugins/select2/js/i18n/uk.js delete mode 100644 htdocs/public/high/plugins/select2/js/i18n/vi.js delete mode 100644 htdocs/public/high/plugins/select2/js/i18n/zh-CN.js delete mode 100644 htdocs/public/high/plugins/select2/js/i18n/zh-TW.js delete mode 100644 htdocs/public/high/plugins/select2/js/select2.full.js delete mode 100644 htdocs/public/high/plugins/select2/js/select2.full.min.js delete mode 100644 htdocs/public/high/plugins/select2/js/select2.js delete mode 100644 htdocs/public/high/plugins/select2/js/select2.min.js delete mode 100644 htdocs/public/high/plugins/signature_pad/app.js delete mode 100644 htdocs/public/high/plugins/signature_pad/css/ie9.css delete mode 100644 htdocs/public/high/plugins/signature_pad/css/signature-pad.css delete mode 100644 htdocs/public/high/plugins/signature_pad/example/css/ie9.css delete mode 100644 htdocs/public/high/plugins/signature_pad/example/css/signature-pad.css delete mode 100644 htdocs/public/high/plugins/signature_pad/example/index.html delete mode 100644 htdocs/public/high/plugins/signature_pad/example/js/app.js delete mode 100644 htdocs/public/high/plugins/signature_pad/example/js/signature_pad.js delete mode 100644 htdocs/public/high/plugins/signature_pad/signature_pad.js delete mode 100644 htdocs/public/high/plugins/signature_pad/src/bezier.js delete mode 100644 htdocs/public/high/plugins/signature_pad/src/point.js delete mode 100644 htdocs/public/high/plugins/signature_pad/src/signature_pad.js delete mode 100644 htdocs/public/high/plugins/signature_pad/src/throttle.js delete mode 100644 htdocs/public/high/plugins/spinkit/spinkit.css delete mode 100644 htdocs/public/high/plugins/sweet-alert/sweetalert2.css delete mode 100644 htdocs/public/high/plugins/sweet-alert/sweetalert2.js delete mode 100644 htdocs/public/high/plugins/sweet-alert/sweetalert2.min.css delete mode 100644 htdocs/public/high/plugins/sweet-alert/sweetalert2.min.js delete mode 100644 htdocs/public/high/plugins/switchery/switchery.min.css delete mode 100644 htdocs/public/high/plugins/switchery/switchery.min.js delete mode 100644 htdocs/public/high/plugins/tablesaw/css/tablesaw.css delete mode 100644 htdocs/public/high/plugins/tablesaw/js/tablesaw-init.js delete mode 100644 htdocs/public/high/plugins/tablesaw/js/tablesaw.js delete mode 100644 htdocs/public/high/plugins/tinymce/jquery.tinymce.min.js delete mode 100644 htdocs/public/high/plugins/tinymce/langs/readme.md delete mode 100644 htdocs/public/high/plugins/tinymce/license.txt delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/advlist/plugin.min.js delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/anchor/plugin.min.js delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/autolink/plugin.min.js delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/autoresize/plugin.min.js delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/autosave/plugin.min.js delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/bbcode/plugin.min.js delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/charmap/plugin.min.js delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/code/plugin.min.js delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/codesample/css/prism.css delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/codesample/plugin.min.js delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/colorpicker/plugin.min.js delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/contextmenu/plugin.min.js delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/directionality/plugin.min.js delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/emoticons/img/smiley-cool.gif delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/emoticons/img/smiley-cry.gif delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/emoticons/img/smiley-embarassed.gif delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/emoticons/img/smiley-foot-in-mouth.gif delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/emoticons/img/smiley-frown.gif delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/emoticons/img/smiley-innocent.gif delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/emoticons/img/smiley-kiss.gif delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/emoticons/img/smiley-laughing.gif delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/emoticons/img/smiley-money-mouth.gif delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/emoticons/img/smiley-sealed.gif delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/emoticons/img/smiley-smile.gif delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/emoticons/img/smiley-surprised.gif delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/emoticons/img/smiley-tongue-out.gif delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/emoticons/img/smiley-undecided.gif delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/emoticons/img/smiley-wink.gif delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/emoticons/img/smiley-yell.gif delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/emoticons/plugin.min.js delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/example/dialog.html delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/example/plugin.min.js delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/example_dependency/plugin.min.js delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/fullpage/plugin.min.js delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/fullscreen/plugin.min.js delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/hr/plugin.min.js delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/image/plugin.min.js delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/imagetools/plugin.min.js delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/importcss/plugin.min.js delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/insertdatetime/plugin.min.js delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/layer/plugin.min.js delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/legacyoutput/plugin.min.js delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/link/plugin.min.js delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/lists/plugin.min.js delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/media/moxieplayer.swf delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/media/plugin.min.js delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/nonbreaking/plugin.min.js delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/noneditable/plugin.min.js delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/pagebreak/plugin.min.js delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/paste/plugin.min.js delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/preview/plugin.min.js delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/print/plugin.min.js delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/save/plugin.min.js delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/searchreplace/plugin.min.js delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/spellchecker/plugin.min.js delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/tabfocus/plugin.min.js delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/table/plugin.min.js delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/template/plugin.min.js delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/textcolor/plugin.min.js delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/textpattern/plugin.min.js delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/visualblocks/css/visualblocks.css delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/visualblocks/plugin.min.js delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/visualchars/plugin.min.js delete mode 100644 htdocs/public/high/plugins/tinymce/plugins/wordcount/plugin.min.js delete mode 100644 htdocs/public/high/plugins/tinymce/skins/lightgray/content.inline.min.css delete mode 100644 htdocs/public/high/plugins/tinymce/skins/lightgray/content.min.css delete mode 100644 htdocs/public/high/plugins/tinymce/skins/lightgray/fonts/tinymce-small.eot delete mode 100644 htdocs/public/high/plugins/tinymce/skins/lightgray/fonts/tinymce-small.svg delete mode 100644 htdocs/public/high/plugins/tinymce/skins/lightgray/fonts/tinymce-small.ttf delete mode 100644 htdocs/public/high/plugins/tinymce/skins/lightgray/fonts/tinymce-small.woff delete mode 100644 htdocs/public/high/plugins/tinymce/skins/lightgray/fonts/tinymce.eot delete mode 100644 htdocs/public/high/plugins/tinymce/skins/lightgray/fonts/tinymce.svg delete mode 100644 htdocs/public/high/plugins/tinymce/skins/lightgray/fonts/tinymce.ttf delete mode 100644 htdocs/public/high/plugins/tinymce/skins/lightgray/fonts/tinymce.woff delete mode 100644 htdocs/public/high/plugins/tinymce/skins/lightgray/img/anchor.gif delete mode 100644 htdocs/public/high/plugins/tinymce/skins/lightgray/img/loader.gif delete mode 100644 htdocs/public/high/plugins/tinymce/skins/lightgray/img/object.gif delete mode 100644 htdocs/public/high/plugins/tinymce/skins/lightgray/img/trans.gif delete mode 100644 htdocs/public/high/plugins/tinymce/skins/lightgray/skin.ie7.min.css delete mode 100644 htdocs/public/high/plugins/tinymce/skins/lightgray/skin.min.css delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/config/bolt/atomic.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/config/bolt/bootstrap-atomic.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/config/bolt/bootstrap-browser.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/config/bolt/bootstrap-demo.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/config/bolt/bootstrap-prod.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/config/bolt/browser.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/config/bolt/demo.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/config/bolt/prod.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/config/dent/depend.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/scratch/compile/bootstrap.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/scratch/compile/theme.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/scratch/inline/theme.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/scratch/inline/theme.raw.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/src/demo/css/demo.css delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/src/demo/html/demo.html delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/src/demo/js/tinymce/inlite/Demo.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/src/main/js/tinymce/inlite/Theme.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/src/main/js/tinymce/inlite/alien/Arr.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/src/main/js/tinymce/inlite/alien/Bookmark.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/src/main/js/tinymce/inlite/alien/Unlink.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/src/main/js/tinymce/inlite/alien/Uuid.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/src/main/js/tinymce/inlite/core/Actions.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/src/main/js/tinymce/inlite/core/Convert.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/src/main/js/tinymce/inlite/core/ElementMatcher.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/src/main/js/tinymce/inlite/core/Layout.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/src/main/js/tinymce/inlite/core/Matcher.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/src/main/js/tinymce/inlite/core/Measure.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/src/main/js/tinymce/inlite/core/PredicateId.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/src/main/js/tinymce/inlite/core/SelectionMatcher.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/src/main/js/tinymce/inlite/core/SkinLoader.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/src/main/js/tinymce/inlite/core/UrlType.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/src/main/js/tinymce/inlite/file/Conversions.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/src/main/js/tinymce/inlite/file/Picker.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/src/main/js/tinymce/inlite/ui/Buttons.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/src/main/js/tinymce/inlite/ui/Forms.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/src/main/js/tinymce/inlite/ui/Panel.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/src/main/js/tinymce/inlite/ui/Toolbar.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/src/test/.eslintrc delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/src/test/js/atomic/alien/ArrTest.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/src/test/js/atomic/alien/UuidTest.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/src/test/js/atomic/core/ConvertTest.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/src/test/js/atomic/core/MatcherTest.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/src/test/js/atomic/core/UrlTypeTest.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/src/test/js/browser/ThemeTest.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/src/test/js/browser/alien/BookmarkTest.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/src/test/js/browser/alien/UnlinkTest.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/src/test/js/browser/core/ActionsTest.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/src/test/js/browser/core/ElementMatcher.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/src/test/js/browser/core/LayoutTest.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/src/test/js/browser/core/MeasureTest.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/src/test/js/browser/core/PredicateIdTest.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/src/test/js/browser/core/SelectionMatcherTest.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/src/test/js/browser/file/ConversionsTest.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/src/test/js/browser/file/SelectionMatcher.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/inlite/theme.min.js delete mode 100644 htdocs/public/high/plugins/tinymce/themes/modern/theme.min.js delete mode 100644 htdocs/public/high/plugins/tinymce/tinymce.min.js delete mode 100644 htdocs/public/high/plugins/tooltipster/tooltipster.bundle.min.css delete mode 100644 htdocs/public/high/plugins/tooltipster/tooltipster.bundle.min.js delete mode 100644 htdocs/public/high/plugins/tooltipster/tooltipster.core.min.js delete mode 100644 htdocs/public/high/plugins/waypoints/lib/jquery.waypoints.min.js delete mode 100644 htdocs/public/high/plugins/waypoints/lib/shortcuts/infinite.js delete mode 100644 htdocs/public/high/plugins/waypoints/lib/shortcuts/infinite.min.js delete mode 100644 htdocs/public/high/plugins/waypoints/lib/shortcuts/inview.js delete mode 100644 htdocs/public/high/plugins/waypoints/lib/shortcuts/inview.min.js delete mode 100644 htdocs/public/high/plugins/waypoints/lib/shortcuts/sticky.js delete mode 100644 htdocs/public/high/plugins/waypoints/lib/shortcuts/sticky.min.js delete mode 100644 htdocs/public/jqwidgets/autonumeric.js delete mode 100644 htdocs/public/jqwidgets/globalization/ReadMe.txt delete mode 100644 htdocs/public/jqwidgets/globalization/globalize.culture.cs-CZ.js delete mode 100644 htdocs/public/jqwidgets/globalization/globalize.culture.de-DE.js delete mode 100644 htdocs/public/jqwidgets/globalization/globalize.culture.en-CA.js delete mode 100644 htdocs/public/jqwidgets/globalization/globalize.culture.en-US.js delete mode 100644 htdocs/public/jqwidgets/globalization/globalize.culture.fr-FR.js delete mode 100644 htdocs/public/jqwidgets/globalization/globalize.culture.he-IL.js delete mode 100644 htdocs/public/jqwidgets/globalization/globalize.culture.hr-HR.js delete mode 100644 htdocs/public/jqwidgets/globalization/globalize.culture.hu-HU.js delete mode 100644 htdocs/public/jqwidgets/globalization/globalize.culture.it-IT.js delete mode 100644 htdocs/public/jqwidgets/globalization/globalize.culture.ja-JP.js delete mode 100644 htdocs/public/jqwidgets/globalization/globalize.culture.lt.js delete mode 100644 htdocs/public/jqwidgets/globalization/globalize.culture.ru-RU.js delete mode 100644 htdocs/public/jqwidgets/globalization/globalize.culture.sa-IN.js delete mode 100644 htdocs/public/jqwidgets/globalization/globalize.js delete mode 100644 htdocs/public/jqwidgets/jquery.min.js delete mode 100644 htdocs/public/jqwidgets/jquery.printElement.js delete mode 100644 htdocs/public/jqwidgets/jqx-all.js delete mode 100644 htdocs/public/jqwidgets/jqxangular.js delete mode 100644 htdocs/public/jqwidgets/jqxbulletchart.js delete mode 100644 htdocs/public/jqwidgets/jqxbuttongroup.js delete mode 100644 htdocs/public/jqwidgets/jqxbuttons.js delete mode 100644 htdocs/public/jqwidgets/jqxcalendar.js delete mode 100644 htdocs/public/jqwidgets/jqxchart.annotations.js delete mode 100644 htdocs/public/jqwidgets/jqxchart.api.js delete mode 100644 htdocs/public/jqwidgets/jqxchart.core.js delete mode 100644 htdocs/public/jqwidgets/jqxchart.js delete mode 100644 htdocs/public/jqwidgets/jqxchart.rangeselector.js delete mode 100644 htdocs/public/jqwidgets/jqxchart.waterfall.js delete mode 100644 htdocs/public/jqwidgets/jqxcheckbox.js delete mode 100644 htdocs/public/jqwidgets/jqxcolorpicker.js delete mode 100644 htdocs/public/jqwidgets/jqxcombobox.js delete mode 100644 htdocs/public/jqwidgets/jqxcomplexinput.js delete mode 100644 htdocs/public/jqwidgets/jqxcore.js delete mode 100644 htdocs/public/jqwidgets/jqxdata.export.js delete mode 100644 htdocs/public/jqwidgets/jqxdata.js delete mode 100644 htdocs/public/jqwidgets/jqxdatatable.js delete mode 100644 htdocs/public/jqwidgets/jqxdate.js delete mode 100644 htdocs/public/jqwidgets/jqxdatetimeinput.js delete mode 100644 htdocs/public/jqwidgets/jqxdocking.js delete mode 100644 htdocs/public/jqwidgets/jqxdockinglayout.js delete mode 100644 htdocs/public/jqwidgets/jqxdockpanel.js delete mode 100644 htdocs/public/jqwidgets/jqxdragdrop.js delete mode 100644 htdocs/public/jqwidgets/jqxdraw.js delete mode 100644 htdocs/public/jqwidgets/jqxdropdownbutton.js delete mode 100644 htdocs/public/jqwidgets/jqxdropdownlist.js delete mode 100644 htdocs/public/jqwidgets/jqxeditor.js delete mode 100644 htdocs/public/jqwidgets/jqxexpander.js delete mode 100644 htdocs/public/jqwidgets/jqxfileupload.js delete mode 100644 htdocs/public/jqwidgets/jqxformattedinput.js delete mode 100644 htdocs/public/jqwidgets/jqxgauge.js delete mode 100644 htdocs/public/jqwidgets/jqxgrid.aggregates.js delete mode 100644 htdocs/public/jqwidgets/jqxgrid.columnsreorder.js delete mode 100644 htdocs/public/jqwidgets/jqxgrid.columnsresize.js delete mode 100644 htdocs/public/jqwidgets/jqxgrid.edit.js delete mode 100644 htdocs/public/jqwidgets/jqxgrid.export.js delete mode 100644 htdocs/public/jqwidgets/jqxgrid.filter.js delete mode 100644 htdocs/public/jqwidgets/jqxgrid.grouping.js delete mode 100644 htdocs/public/jqwidgets/jqxgrid.js delete mode 100644 htdocs/public/jqwidgets/jqxgrid.pager.js delete mode 100644 htdocs/public/jqwidgets/jqxgrid.selection.js delete mode 100644 htdocs/public/jqwidgets/jqxgrid.sort.js delete mode 100644 htdocs/public/jqwidgets/jqxgrid.storage.js delete mode 100644 htdocs/public/jqwidgets/jqxinput.js delete mode 100644 htdocs/public/jqwidgets/jqxkanban.js delete mode 100644 htdocs/public/jqwidgets/jqxknob.js delete mode 100644 htdocs/public/jqwidgets/jqxknockout.js delete mode 100644 htdocs/public/jqwidgets/jqxlayout.js delete mode 100644 htdocs/public/jqwidgets/jqxlistbox.js delete mode 100644 htdocs/public/jqwidgets/jqxlistmenu.js delete mode 100644 htdocs/public/jqwidgets/jqxloader.js delete mode 100644 htdocs/public/jqwidgets/jqxmaskedinput.js delete mode 100644 htdocs/public/jqwidgets/jqxmenu.js delete mode 100644 htdocs/public/jqwidgets/jqxnavbar.js delete mode 100644 htdocs/public/jqwidgets/jqxnavigationbar.js delete mode 100644 htdocs/public/jqwidgets/jqxnotification.js delete mode 100644 htdocs/public/jqwidgets/jqxnumberinput.js delete mode 100644 htdocs/public/jqwidgets/jqxpanel.js delete mode 100644 htdocs/public/jqwidgets/jqxpasswordinput.js delete mode 100644 htdocs/public/jqwidgets/jqxpopover.js delete mode 100644 htdocs/public/jqwidgets/jqxprogressbar.js delete mode 100644 htdocs/public/jqwidgets/jqxradiobutton.js delete mode 100644 htdocs/public/jqwidgets/jqxrangeselector.js delete mode 100644 htdocs/public/jqwidgets/jqxrating.js delete mode 100644 htdocs/public/jqwidgets/jqxresponse.js delete mode 100644 htdocs/public/jqwidgets/jqxresponsivepanel.js delete mode 100644 htdocs/public/jqwidgets/jqxribbon.js delete mode 100644 htdocs/public/jqwidgets/jqxscheduler.api.js delete mode 100644 htdocs/public/jqwidgets/jqxscheduler.js delete mode 100644 htdocs/public/jqwidgets/jqxscrollbar.js delete mode 100644 htdocs/public/jqwidgets/jqxscrollview.js delete mode 100644 htdocs/public/jqwidgets/jqxslider.js delete mode 100644 htdocs/public/jqwidgets/jqxsortable.js delete mode 100644 htdocs/public/jqwidgets/jqxsplitter.js delete mode 100644 htdocs/public/jqwidgets/jqxswitchbutton.js delete mode 100644 htdocs/public/jqwidgets/jqxtabs.js delete mode 100644 htdocs/public/jqwidgets/jqxtagcloud.js delete mode 100644 htdocs/public/jqwidgets/jqxtextarea.js delete mode 100644 htdocs/public/jqwidgets/jqxtoolbar.js delete mode 100644 htdocs/public/jqwidgets/jqxtooltip.js delete mode 100644 htdocs/public/jqwidgets/jqxtouch.js delete mode 100644 htdocs/public/jqwidgets/jqxtree.js delete mode 100644 htdocs/public/jqwidgets/jqxtreegrid.js delete mode 100644 htdocs/public/jqwidgets/jqxtreemap.js delete mode 100644 htdocs/public/jqwidgets/jqxvalidator.js delete mode 100644 htdocs/public/jqwidgets/jqxwindow.js delete mode 100644 htdocs/public/jqwidgets/styles/images/backImage.png delete mode 100644 htdocs/public/jqwidgets/styles/images/backgroundTop.png delete mode 100644 htdocs/public/jqwidgets/styles/images/bg_black.png delete mode 100644 htdocs/public/jqwidgets/styles/images/bg_black_horizontal.png delete mode 100644 htdocs/public/jqwidgets/styles/images/bg_blackhover.png delete mode 100644 htdocs/public/jqwidgets/styles/images/bg_blackhover_horizontal.png delete mode 100644 htdocs/public/jqwidgets/styles/images/bg_blackpressed.png delete mode 100644 htdocs/public/jqwidgets/styles/images/bg_blackpressed_horizontal.png delete mode 100644 htdocs/public/jqwidgets/styles/images/bg_blueenergy.png delete mode 100644 htdocs/public/jqwidgets/styles/images/bg_darkblue.png delete mode 100644 htdocs/public/jqwidgets/styles/images/bg_darkbluehover.png delete mode 100644 htdocs/public/jqwidgets/styles/images/bg_darkbluepressed.png delete mode 100644 htdocs/public/jqwidgets/styles/images/black_gradient.png delete mode 100644 htdocs/public/jqwidgets/styles/images/blackbackground.png delete mode 100644 htdocs/public/jqwidgets/styles/images/check_black.png delete mode 100644 htdocs/public/jqwidgets/styles/images/check_blue.png delete mode 100644 htdocs/public/jqwidgets/styles/images/check_blue_indeterminate.png delete mode 100644 htdocs/public/jqwidgets/styles/images/check_disabled.png delete mode 100644 htdocs/public/jqwidgets/styles/images/check_indeterminate_black.png delete mode 100644 htdocs/public/jqwidgets/styles/images/check_indeterminate_disabled.png delete mode 100644 htdocs/public/jqwidgets/styles/images/check_indeterminate_white.png delete mode 100644 htdocs/public/jqwidgets/styles/images/check_lightblue.png delete mode 100644 htdocs/public/jqwidgets/styles/images/check_lightblue_indeterminate.png delete mode 100644 htdocs/public/jqwidgets/styles/images/check_white.png delete mode 100644 htdocs/public/jqwidgets/styles/images/close.png delete mode 100644 htdocs/public/jqwidgets/styles/images/close_black.png delete mode 100644 htdocs/public/jqwidgets/styles/images/close_blue.png delete mode 100644 htdocs/public/jqwidgets/styles/images/close_white.png delete mode 100644 htdocs/public/jqwidgets/styles/images/colorpicker/ReadMe.txt delete mode 100644 htdocs/public/jqwidgets/styles/images/colorpicker/bar-hue.png delete mode 100644 htdocs/public/jqwidgets/styles/images/colorpicker/bar-saturation.png delete mode 100644 htdocs/public/jqwidgets/styles/images/colorpicker/map-hue.png delete mode 100644 htdocs/public/jqwidgets/styles/images/colorpicker/map-saturation-overlay.png delete mode 100644 htdocs/public/jqwidgets/styles/images/colorpicker/map-saturation.png delete mode 100644 htdocs/public/jqwidgets/styles/images/common.png delete mode 100644 htdocs/public/jqwidgets/styles/images/crosshair-white.png delete mode 100644 htdocs/public/jqwidgets/styles/images/crosshair.png delete mode 100644 htdocs/public/jqwidgets/styles/images/darkness/ReadMe.txt delete mode 100644 htdocs/public/jqwidgets/styles/images/darkness/ui-bg_flat_30_cccccc_40x100.png delete mode 100644 htdocs/public/jqwidgets/styles/images/darkness/ui-bg_flat_50_5c5c5c_40x100.png delete mode 100644 htdocs/public/jqwidgets/styles/images/darkness/ui-bg_glass_20_555555_1x400.png delete mode 100644 htdocs/public/jqwidgets/styles/images/darkness/ui-bg_glass_40_0078a3_1x400.png delete mode 100644 htdocs/public/jqwidgets/styles/images/darkness/ui-bg_glass_40_ffc73d_1x400.png delete mode 100644 htdocs/public/jqwidgets/styles/images/darkness/ui-bg_gloss-wave_25_333333_500x100.png delete mode 100644 htdocs/public/jqwidgets/styles/images/darkness/ui-bg_highlight-soft_80_eeeeee_1x100.png delete mode 100644 htdocs/public/jqwidgets/styles/images/darkness/ui-bg_inset-soft_25_000000_1x100.png delete mode 100644 htdocs/public/jqwidgets/styles/images/darkness/ui-bg_inset-soft_30_f58400_1x100.png delete mode 100644 htdocs/public/jqwidgets/styles/images/darkness/ui-icons_222222_256x240.png delete mode 100644 htdocs/public/jqwidgets/styles/images/darkness/ui-icons_4b8e0b_256x240.png delete mode 100644 htdocs/public/jqwidgets/styles/images/darkness/ui-icons_a83300_256x240.png delete mode 100644 htdocs/public/jqwidgets/styles/images/darkness/ui-icons_cccccc_256x240.png delete mode 100644 htdocs/public/jqwidgets/styles/images/darkness/ui-icons_ffffff_256x240.png delete mode 100644 htdocs/public/jqwidgets/styles/images/darkred_gradient.png delete mode 100644 htdocs/public/jqwidgets/styles/images/drag.png delete mode 100644 htdocs/public/jqwidgets/styles/images/dragcancel.png delete mode 100644 htdocs/public/jqwidgets/styles/images/error.png delete mode 100644 htdocs/public/jqwidgets/styles/images/filter.png delete mode 100644 htdocs/public/jqwidgets/styles/images/html_editor.png delete mode 100644 htdocs/public/jqwidgets/styles/images/html_editor_white.png delete mode 100644 htdocs/public/jqwidgets/styles/images/icon-calendar-white.png delete mode 100644 htdocs/public/jqwidgets/styles/images/icon-calendar.png delete mode 100644 htdocs/public/jqwidgets/styles/images/icon-cancel-white.png delete mode 100644 htdocs/public/jqwidgets/styles/images/icon-cancel.png delete mode 100644 htdocs/public/jqwidgets/styles/images/icon-delete - Copy.png delete mode 100644 htdocs/public/jqwidgets/styles/images/icon-delete-white.png delete mode 100644 htdocs/public/jqwidgets/styles/images/icon-delete.png delete mode 100644 htdocs/public/jqwidgets/styles/images/icon-down-blue.png delete mode 100644 htdocs/public/jqwidgets/styles/images/icon-down-transparent.png delete mode 100644 htdocs/public/jqwidgets/styles/images/icon-down-white.png delete mode 100644 htdocs/public/jqwidgets/styles/images/icon-down.png delete mode 100644 htdocs/public/jqwidgets/styles/images/icon-edit-white.png delete mode 100644 htdocs/public/jqwidgets/styles/images/icon-edit.png delete mode 100644 htdocs/public/jqwidgets/styles/images/icon-first-blue.png delete mode 100644 htdocs/public/jqwidgets/styles/images/icon-first-transparent.png delete mode 100644 htdocs/public/jqwidgets/styles/images/icon-first-white.png delete mode 100644 htdocs/public/jqwidgets/styles/images/icon-first.png delete mode 100644 htdocs/public/jqwidgets/styles/images/icon-last-blue.png delete mode 100644 htdocs/public/jqwidgets/styles/images/icon-last-transparent.png delete mode 100644 htdocs/public/jqwidgets/styles/images/icon-last-white.png delete mode 100644 htdocs/public/jqwidgets/styles/images/icon-last.png delete mode 100644 htdocs/public/jqwidgets/styles/images/icon-left-blue.png delete mode 100644 htdocs/public/jqwidgets/styles/images/icon-left-transparent.png delete mode 100644 htdocs/public/jqwidgets/styles/images/icon-left-white.png delete mode 100644 htdocs/public/jqwidgets/styles/images/icon-left.png delete mode 100644 htdocs/public/jqwidgets/styles/images/icon-menu-minimized-white.png delete mode 100644 htdocs/public/jqwidgets/styles/images/icon-menu-minimized.png delete mode 100644 htdocs/public/jqwidgets/styles/images/icon-plus-white.png delete mode 100644 htdocs/public/jqwidgets/styles/images/icon-plus.png delete mode 100644 htdocs/public/jqwidgets/styles/images/icon-recurrence-exception-white.png delete mode 100644 htdocs/public/jqwidgets/styles/images/icon-recurrence-exception.png delete mode 100644 htdocs/public/jqwidgets/styles/images/icon-recurrence-white.png delete mode 100644 htdocs/public/jqwidgets/styles/images/icon-recurrence.png delete mode 100644 htdocs/public/jqwidgets/styles/images/icon-right-blue.png delete mode 100644 htdocs/public/jqwidgets/styles/images/icon-right-transparent.png delete mode 100644 htdocs/public/jqwidgets/styles/images/icon-right-white.png delete mode 100644 htdocs/public/jqwidgets/styles/images/icon-right.png delete mode 100644 htdocs/public/jqwidgets/styles/images/icon-save-white.png delete mode 100644 htdocs/public/jqwidgets/styles/images/icon-save.png delete mode 100644 htdocs/public/jqwidgets/styles/images/icon-showpassword-white.png delete mode 100644 htdocs/public/jqwidgets/styles/images/icon-showpassword.png delete mode 100644 htdocs/public/jqwidgets/styles/images/icon-time-white.png delete mode 100644 htdocs/public/jqwidgets/styles/images/icon-time.png delete mode 100644 htdocs/public/jqwidgets/styles/images/icon-up-blue.png delete mode 100644 htdocs/public/jqwidgets/styles/images/icon-up-transparent.png delete mode 100644 htdocs/public/jqwidgets/styles/images/icon-up-white.png delete mode 100644 htdocs/public/jqwidgets/styles/images/icon-up.png delete mode 100644 htdocs/public/jqwidgets/styles/images/info.png delete mode 100644 htdocs/public/jqwidgets/styles/images/le-frog/ReadMe.txt delete mode 100644 htdocs/public/jqwidgets/styles/images/le-frog/ui-bg_diagonals-small_0_aaaaaa_40x40.png delete mode 100644 htdocs/public/jqwidgets/styles/images/le-frog/ui-bg_diagonals-thick_15_444444_40x40.png delete mode 100644 htdocs/public/jqwidgets/styles/images/le-frog/ui-bg_diagonals-thick_95_ffdc2e_40x40.png delete mode 100644 htdocs/public/jqwidgets/styles/images/le-frog/ui-bg_glass_55_fbf5d0_1x400.png delete mode 100644 htdocs/public/jqwidgets/styles/images/le-frog/ui-bg_highlight-hard_30_285c00_1x100.png delete mode 100644 htdocs/public/jqwidgets/styles/images/le-frog/ui-bg_highlight-soft_33_3a8104_1x100.png delete mode 100644 htdocs/public/jqwidgets/styles/images/le-frog/ui-bg_highlight-soft_50_4eb305_1x100.png delete mode 100644 htdocs/public/jqwidgets/styles/images/le-frog/ui-bg_highlight-soft_60_4ca20b_1x100.png delete mode 100644 htdocs/public/jqwidgets/styles/images/le-frog/ui-bg_inset-soft_10_285c00_1x100.png delete mode 100644 htdocs/public/jqwidgets/styles/images/le-frog/ui-icons_4eb305_256x240.png delete mode 100644 htdocs/public/jqwidgets/styles/images/le-frog/ui-icons_72b42d_256x240.png delete mode 100644 htdocs/public/jqwidgets/styles/images/le-frog/ui-icons_cd0a0a_256x240.png delete mode 100644 htdocs/public/jqwidgets/styles/images/le-frog/ui-icons_ffffff_256x240.png delete mode 100644 htdocs/public/jqwidgets/styles/images/lightness/ReadMe.txt delete mode 100644 htdocs/public/jqwidgets/styles/images/lightness/icon-first.png delete mode 100644 htdocs/public/jqwidgets/styles/images/lightness/icon-last.png delete mode 100644 htdocs/public/jqwidgets/styles/images/lightness/ui-bg_diagonals-thick_18_b81900_40x40.png delete mode 100644 htdocs/public/jqwidgets/styles/images/lightness/ui-bg_diagonals-thick_20_666666_40x40.png delete mode 100644 htdocs/public/jqwidgets/styles/images/lightness/ui-bg_flat_10_000000_40x100.png delete mode 100644 htdocs/public/jqwidgets/styles/images/lightness/ui-bg_glass_100_f6f6f6_1x400.png delete mode 100644 htdocs/public/jqwidgets/styles/images/lightness/ui-bg_glass_100_fdf5ce_1x400.png delete mode 100644 htdocs/public/jqwidgets/styles/images/lightness/ui-bg_glass_65_ffffff_1x400.png delete mode 100644 htdocs/public/jqwidgets/styles/images/lightness/ui-bg_gloss-wave_35_f6a828_500x100.png delete mode 100644 htdocs/public/jqwidgets/styles/images/lightness/ui-bg_highlight-soft_100_eeeeee_1x100.png delete mode 100644 htdocs/public/jqwidgets/styles/images/lightness/ui-bg_highlight-soft_75_ffe45c_1x100.png delete mode 100644 htdocs/public/jqwidgets/styles/images/lightness/ui-icons_222222_256x240.png delete mode 100644 htdocs/public/jqwidgets/styles/images/lightness/ui-icons_228ef1_256x240.png delete mode 100644 htdocs/public/jqwidgets/styles/images/lightness/ui-icons_ef8c08_256x240.png delete mode 100644 htdocs/public/jqwidgets/styles/images/lightness/ui-icons_ffd27a_256x240.png delete mode 100644 htdocs/public/jqwidgets/styles/images/lightness/ui-icons_ffffff_256x240.png delete mode 100644 htdocs/public/jqwidgets/styles/images/loader-small.gif delete mode 100644 htdocs/public/jqwidgets/styles/images/loader.gif delete mode 100644 htdocs/public/jqwidgets/styles/images/mail.png delete mode 100644 htdocs/public/jqwidgets/styles/images/menubutton.png delete mode 100644 htdocs/public/jqwidgets/styles/images/metro-icon-down-white.png delete mode 100644 htdocs/public/jqwidgets/styles/images/metro-icon-down.png delete mode 100644 htdocs/public/jqwidgets/styles/images/metro-icon-first-white.png delete mode 100644 htdocs/public/jqwidgets/styles/images/metro-icon-first.png delete mode 100644 htdocs/public/jqwidgets/styles/images/metro-icon-last-white.png delete mode 100644 htdocs/public/jqwidgets/styles/images/metro-icon-last.png delete mode 100644 htdocs/public/jqwidgets/styles/images/metro-icon-left-white.png delete mode 100644 htdocs/public/jqwidgets/styles/images/metro-icon-left.png delete mode 100644 htdocs/public/jqwidgets/styles/images/metro-icon-right - Copy.png delete mode 100644 htdocs/public/jqwidgets/styles/images/metro-icon-right-white.png delete mode 100644 htdocs/public/jqwidgets/styles/images/metro-icon-right.png delete mode 100644 htdocs/public/jqwidgets/styles/images/metro-icon-up-white.png delete mode 100644 htdocs/public/jqwidgets/styles/images/metro-icon-up.png delete mode 100644 htdocs/public/jqwidgets/styles/images/multi-arrow.gif delete mode 100644 htdocs/public/jqwidgets/styles/images/office-icon-down.png delete mode 100644 htdocs/public/jqwidgets/styles/images/office-icon-first.png delete mode 100644 htdocs/public/jqwidgets/styles/images/office-icon-last.png delete mode 100644 htdocs/public/jqwidgets/styles/images/office-icon-left.png delete mode 100644 htdocs/public/jqwidgets/styles/images/office-icon-right.png delete mode 100644 htdocs/public/jqwidgets/styles/images/office-icon-up.png delete mode 100644 htdocs/public/jqwidgets/styles/images/overcast/ReadMe.txt delete mode 100644 htdocs/public/jqwidgets/styles/images/overcast/ui-bg_flat_0_aaaaaa_40x100.png delete mode 100644 htdocs/public/jqwidgets/styles/images/overcast/ui-bg_flat_0_eeeeee_40x100.png delete mode 100644 htdocs/public/jqwidgets/styles/images/overcast/ui-bg_flat_55_c0402a_40x100.png delete mode 100644 htdocs/public/jqwidgets/styles/images/overcast/ui-bg_flat_55_eeeeee_40x100.png delete mode 100644 htdocs/public/jqwidgets/styles/images/overcast/ui-bg_glass_100_f8f8f8_1x400.png delete mode 100644 htdocs/public/jqwidgets/styles/images/overcast/ui-bg_glass_35_dddddd_1x400.png delete mode 100644 htdocs/public/jqwidgets/styles/images/overcast/ui-bg_glass_60_eeeeee_1x400.png delete mode 100644 htdocs/public/jqwidgets/styles/images/overcast/ui-bg_inset-hard_75_999999_1x100.png delete mode 100644 htdocs/public/jqwidgets/styles/images/overcast/ui-bg_inset-soft_50_c9c9c9_1x100.png delete mode 100644 htdocs/public/jqwidgets/styles/images/overcast/ui-icons_3383bb_256x240.png delete mode 100644 htdocs/public/jqwidgets/styles/images/overcast/ui-icons_454545_256x240.png delete mode 100644 htdocs/public/jqwidgets/styles/images/overcast/ui-icons_70b2e1_256x240.png delete mode 100644 htdocs/public/jqwidgets/styles/images/overcast/ui-icons_999999_256x240.png delete mode 100644 htdocs/public/jqwidgets/styles/images/overcast/ui-icons_fbc856_256x240.png delete mode 100644 htdocs/public/jqwidgets/styles/images/pin-black.png delete mode 100644 htdocs/public/jqwidgets/styles/images/pin-blue.png delete mode 100644 htdocs/public/jqwidgets/styles/images/pin-lightblue.png delete mode 100644 htdocs/public/jqwidgets/styles/images/pin-white.png delete mode 100644 htdocs/public/jqwidgets/styles/images/pin-yellow.png delete mode 100644 htdocs/public/jqwidgets/styles/images/pin.png delete mode 100644 htdocs/public/jqwidgets/styles/images/pinned-black.png delete mode 100644 htdocs/public/jqwidgets/styles/images/pinned-blue.png delete mode 100644 htdocs/public/jqwidgets/styles/images/pinned-lightblue.png delete mode 100644 htdocs/public/jqwidgets/styles/images/pinned-white.png delete mode 100644 htdocs/public/jqwidgets/styles/images/pinned-yellow.png delete mode 100644 htdocs/public/jqwidgets/styles/images/pinned.png delete mode 100644 htdocs/public/jqwidgets/styles/images/plus.png delete mode 100644 htdocs/public/jqwidgets/styles/images/plus_white.png delete mode 100644 htdocs/public/jqwidgets/styles/images/pointer.png delete mode 100644 htdocs/public/jqwidgets/styles/images/rangebar_classic.png delete mode 100644 htdocs/public/jqwidgets/styles/images/rangebar_darkblue.png delete mode 100644 htdocs/public/jqwidgets/styles/images/rangebar_shinyblack.png delete mode 100644 htdocs/public/jqwidgets/styles/images/rangebar_summer.png delete mode 100644 htdocs/public/jqwidgets/styles/images/red_arrow_down.png delete mode 100644 htdocs/public/jqwidgets/styles/images/red_arrow_up.png delete mode 100644 htdocs/public/jqwidgets/styles/images/red_gradient.png delete mode 100644 htdocs/public/jqwidgets/styles/images/redmond/ReadMe.txt delete mode 100644 htdocs/public/jqwidgets/styles/images/redmond/icon-first.png delete mode 100644 htdocs/public/jqwidgets/styles/images/redmond/icon-last.png delete mode 100644 htdocs/public/jqwidgets/styles/images/redmond/ui-bg_flat_0_aaaaaa_40x100.png delete mode 100644 htdocs/public/jqwidgets/styles/images/redmond/ui-bg_flat_55_fbec88_40x100.png delete mode 100644 htdocs/public/jqwidgets/styles/images/redmond/ui-bg_glass_75_d0e5f5_1x400.png delete mode 100644 htdocs/public/jqwidgets/styles/images/redmond/ui-bg_glass_85_dfeffc_1x400.png delete mode 100644 htdocs/public/jqwidgets/styles/images/redmond/ui-bg_glass_95_fef1ec_1x400.png delete mode 100644 htdocs/public/jqwidgets/styles/images/redmond/ui-bg_gloss-wave_55_5c9ccc_500x100.png delete mode 100644 htdocs/public/jqwidgets/styles/images/redmond/ui-bg_inset-hard_100_f5f8f9_1x100.png delete mode 100644 htdocs/public/jqwidgets/styles/images/redmond/ui-bg_inset-hard_100_fcfdfd_1x100.png delete mode 100644 htdocs/public/jqwidgets/styles/images/redmond/ui-icons_217bc0_256x240.png delete mode 100644 htdocs/public/jqwidgets/styles/images/redmond/ui-icons_2e83ff_256x240.png delete mode 100644 htdocs/public/jqwidgets/styles/images/redmond/ui-icons_469bdd_256x240.png delete mode 100644 htdocs/public/jqwidgets/styles/images/redmond/ui-icons_6da8d5_256x240.png delete mode 100644 htdocs/public/jqwidgets/styles/images/redmond/ui-icons_cd0a0a_256x240.png delete mode 100644 htdocs/public/jqwidgets/styles/images/redmond/ui-icons_d8e7f3_256x240.png delete mode 100644 htdocs/public/jqwidgets/styles/images/redmond/ui-icons_f9bd01_256x240.png delete mode 100644 htdocs/public/jqwidgets/styles/images/roundbg_check_black.png delete mode 100644 htdocs/public/jqwidgets/styles/images/roundbg_check_disabled.png delete mode 100644 htdocs/public/jqwidgets/styles/images/roundbg_check_indeterminate.png delete mode 100644 htdocs/public/jqwidgets/styles/images/roundbg_check_white.png delete mode 100644 htdocs/public/jqwidgets/styles/images/roundbg_classic_hover.png delete mode 100644 htdocs/public/jqwidgets/styles/images/roundbg_classic_normal.png delete mode 100644 htdocs/public/jqwidgets/styles/images/roundbg_disabled.png delete mode 100644 htdocs/public/jqwidgets/styles/images/search.png delete mode 100644 htdocs/public/jqwidgets/styles/images/search_white.png delete mode 100644 htdocs/public/jqwidgets/styles/images/smoothness/ReadMe.txt delete mode 100644 htdocs/public/jqwidgets/styles/images/smoothness/ui-bg_flat_0_aaaaaa_40x100.png delete mode 100644 htdocs/public/jqwidgets/styles/images/smoothness/ui-bg_flat_75_ffffff_40x100.png delete mode 100644 htdocs/public/jqwidgets/styles/images/smoothness/ui-bg_glass_55_fbf9ee_1x400.png delete mode 100644 htdocs/public/jqwidgets/styles/images/smoothness/ui-bg_glass_65_ffffff_1x400.png delete mode 100644 htdocs/public/jqwidgets/styles/images/smoothness/ui-bg_glass_75_dadada_1x400.png delete mode 100644 htdocs/public/jqwidgets/styles/images/smoothness/ui-bg_glass_75_e6e6e6_1x400.png delete mode 100644 htdocs/public/jqwidgets/styles/images/smoothness/ui-bg_glass_95_fef1ec_1x400.png delete mode 100644 htdocs/public/jqwidgets/styles/images/smoothness/ui-bg_highlight-soft_75_cccccc_1x100.png delete mode 100644 htdocs/public/jqwidgets/styles/images/smoothness/ui-icons_222222_256x240.png delete mode 100644 htdocs/public/jqwidgets/styles/images/smoothness/ui-icons_2e83ff_256x240.png delete mode 100644 htdocs/public/jqwidgets/styles/images/smoothness/ui-icons_454545_256x240.png delete mode 100644 htdocs/public/jqwidgets/styles/images/smoothness/ui-icons_888888_256x240.png delete mode 100644 htdocs/public/jqwidgets/styles/images/smoothness/ui-icons_cd0a0a_256x240.png delete mode 100644 htdocs/public/jqwidgets/styles/images/sortasc.png delete mode 100644 htdocs/public/jqwidgets/styles/images/sortascbutton.png delete mode 100644 htdocs/public/jqwidgets/styles/images/sortdesc.png delete mode 100644 htdocs/public/jqwidgets/styles/images/sortdescbutton.png delete mode 100644 htdocs/public/jqwidgets/styles/images/sortremove.png delete mode 100644 htdocs/public/jqwidgets/styles/images/star.png delete mode 100644 htdocs/public/jqwidgets/styles/images/star_disabled.png delete mode 100644 htdocs/public/jqwidgets/styles/images/star_hover.png delete mode 100644 htdocs/public/jqwidgets/styles/images/start/ReadMe.txt delete mode 100644 htdocs/public/jqwidgets/styles/images/start/ui-bg_flat_55_999999_40x100.png delete mode 100644 htdocs/public/jqwidgets/styles/images/start/ui-bg_flat_75_aaaaaa_40x100.png delete mode 100644 htdocs/public/jqwidgets/styles/images/start/ui-bg_glass_45_0078ae_1x400.png delete mode 100644 htdocs/public/jqwidgets/styles/images/start/ui-bg_glass_55_f8da4e_1x400.png delete mode 100644 htdocs/public/jqwidgets/styles/images/start/ui-bg_glass_75_79c9ec_1x400.png delete mode 100644 htdocs/public/jqwidgets/styles/images/start/ui-bg_gloss-wave_45_e14f1c_500x100.png delete mode 100644 htdocs/public/jqwidgets/styles/images/start/ui-bg_gloss-wave_50_6eac2c_500x100.png delete mode 100644 htdocs/public/jqwidgets/styles/images/start/ui-bg_gloss-wave_75_2191c0_500x100.png delete mode 100644 htdocs/public/jqwidgets/styles/images/start/ui-bg_inset-hard_100_fcfdfd_1x100.png delete mode 100644 htdocs/public/jqwidgets/styles/images/start/ui-icons_0078ae_256x240.png delete mode 100644 htdocs/public/jqwidgets/styles/images/start/ui-icons_056b93_256x240.png delete mode 100644 htdocs/public/jqwidgets/styles/images/start/ui-icons_d8e7f3_256x240.png delete mode 100644 htdocs/public/jqwidgets/styles/images/start/ui-icons_e0fdff_256x240.png delete mode 100644 htdocs/public/jqwidgets/styles/images/start/ui-icons_f5e175_256x240.png delete mode 100644 htdocs/public/jqwidgets/styles/images/start/ui-icons_f7a50d_256x240.png delete mode 100644 htdocs/public/jqwidgets/styles/images/start/ui-icons_fcd113_256x240.png delete mode 100644 htdocs/public/jqwidgets/styles/images/stripes.png delete mode 100644 htdocs/public/jqwidgets/styles/images/success.png delete mode 100644 htdocs/public/jqwidgets/styles/images/sunny/ReadMe.txt delete mode 100644 htdocs/public/jqwidgets/styles/images/sunny/ui-bg_diagonals-medium_20_d34d17_40x40.png delete mode 100644 htdocs/public/jqwidgets/styles/images/sunny/ui-bg_flat_30_cccccc_40x100.png delete mode 100644 htdocs/public/jqwidgets/styles/images/sunny/ui-bg_flat_50_5c5c5c_40x100.png delete mode 100644 htdocs/public/jqwidgets/styles/images/sunny/ui-bg_gloss-wave_45_817865_500x100.png delete mode 100644 htdocs/public/jqwidgets/styles/images/sunny/ui-bg_gloss-wave_60_fece2f_500x100.png delete mode 100644 htdocs/public/jqwidgets/styles/images/sunny/ui-bg_gloss-wave_70_ffdd57_500x100.png delete mode 100644 htdocs/public/jqwidgets/styles/images/sunny/ui-bg_gloss-wave_90_fff9e5_500x100.png delete mode 100644 htdocs/public/jqwidgets/styles/images/sunny/ui-bg_highlight-soft_100_feeebd_1x100.png delete mode 100644 htdocs/public/jqwidgets/styles/images/sunny/ui-bg_inset-soft_30_ffffff_1x100.png delete mode 100644 htdocs/public/jqwidgets/styles/images/sunny/ui-icons_3d3d3d_256x240.png delete mode 100644 htdocs/public/jqwidgets/styles/images/sunny/ui-icons_bd7b00_256x240.png delete mode 100644 htdocs/public/jqwidgets/styles/images/sunny/ui-icons_d19405_256x240.png delete mode 100644 htdocs/public/jqwidgets/styles/images/sunny/ui-icons_eb990f_256x240.png delete mode 100644 htdocs/public/jqwidgets/styles/images/sunny/ui-icons_ed9f26_256x240.png delete mode 100644 htdocs/public/jqwidgets/styles/images/sunny/ui-icons_fadc7a_256x240.png delete mode 100644 htdocs/public/jqwidgets/styles/images/sunny/ui-icons_ffe180_256x240.png delete mode 100644 htdocs/public/jqwidgets/styles/images/tick.png delete mode 100644 htdocs/public/jqwidgets/styles/images/time.png delete mode 100644 htdocs/public/jqwidgets/styles/images/track_classic.png delete mode 100644 htdocs/public/jqwidgets/styles/images/track_darkblue.png delete mode 100644 htdocs/public/jqwidgets/styles/images/track_shinyblack.png delete mode 100644 htdocs/public/jqwidgets/styles/images/track_summer.png delete mode 100644 htdocs/public/jqwidgets/styles/images/warning.png delete mode 100644 htdocs/public/jqwidgets/styles/images/wp_check_indeterminate_white.png delete mode 100644 htdocs/public/jqwidgets/styles/images/wp_check_white.png delete mode 100644 htdocs/public/jqwidgets/styles/jqx.android.css delete mode 100644 htdocs/public/jqwidgets/styles/jqx.arctic.css delete mode 100644 htdocs/public/jqwidgets/styles/jqx.base.css delete mode 100644 htdocs/public/jqwidgets/styles/jqx.black.css delete mode 100644 htdocs/public/jqwidgets/styles/jqx.blackberry.css delete mode 100644 htdocs/public/jqwidgets/styles/jqx.bootstrap.css delete mode 100644 htdocs/public/jqwidgets/styles/jqx.classic.css delete mode 100644 htdocs/public/jqwidgets/styles/jqx.darkblue.css delete mode 100644 htdocs/public/jqwidgets/styles/jqx.energyblue.css delete mode 100644 htdocs/public/jqwidgets/styles/jqx.fresh.css delete mode 100644 htdocs/public/jqwidgets/styles/jqx.glacier.css delete mode 100644 htdocs/public/jqwidgets/styles/jqx.highcontrast.css delete mode 100644 htdocs/public/jqwidgets/styles/jqx.metro.css delete mode 100644 htdocs/public/jqwidgets/styles/jqx.metrodark.css delete mode 100644 htdocs/public/jqwidgets/styles/jqx.mobile.css delete mode 100644 htdocs/public/jqwidgets/styles/jqx.office.css delete mode 100644 htdocs/public/jqwidgets/styles/jqx.orange.css delete mode 100644 htdocs/public/jqwidgets/styles/jqx.shinyblack.css delete mode 100644 htdocs/public/jqwidgets/styles/jqx.summer.css delete mode 100644 htdocs/public/jqwidgets/styles/jqx.ui-darkness.css delete mode 100644 htdocs/public/jqwidgets/styles/jqx.ui-le-frog.css delete mode 100644 htdocs/public/jqwidgets/styles/jqx.ui-lightness.css delete mode 100644 htdocs/public/jqwidgets/styles/jqx.ui-overcast.css delete mode 100644 htdocs/public/jqwidgets/styles/jqx.ui-redmond.css delete mode 100644 htdocs/public/jqwidgets/styles/jqx.ui-smoothness.css delete mode 100644 htdocs/public/jqwidgets/styles/jqx.ui-start.css delete mode 100644 htdocs/public/jqwidgets/styles/jqx.ui-sunny.css delete mode 100644 htdocs/public/jqwidgets/styles/jqx.web.css delete mode 100644 htdocs/public/jqwidgets/styles/jqx.windowsphone.css diff --git a/htdocs/app/Http/Controllers/DokterController.php b/htdocs/app/Http/Controllers/DokterController.php index 0ad58d60..76e48b04 100644 --- a/htdocs/app/Http/Controllers/DokterController.php +++ b/htdocs/app/Http/Controllers/DokterController.php @@ -1242,6 +1242,9 @@ class DokterController extends Controller $pesan = 'Sejumlah data di rentang '.$request->input('isi').' Berhasil di arsipkan'; } catch (Exception $e) { $pesan = $e->getMessage(); + Log::error('Gagal Arsipkan Data.', [ + 'message' => $e->getMessage(), + ]); } return $pesan; } else if ($worklist == 'getvitek'){ diff --git a/htdocs/app/Http/Controllers/JsonTransferController.php b/htdocs/app/Http/Controllers/JsonTransferController.php index 7c8e55eb..38ee4936 100644 --- a/htdocs/app/Http/Controllers/JsonTransferController.php +++ b/htdocs/app/Http/Controllers/JsonTransferController.php @@ -13,17 +13,37 @@ class JsonTransferController extends Controller public function index() { - $tables = DB::select("SELECT tablename FROM pg_tables WHERE schemaname = 'public'"); - $tableNames = array_map(fn($t) => $t->tablename, $tables); + //POSTGRESS + //$tables = DB::select("SELECT tablename FROM pg_tables WHERE schemaname = 'public'"); + //$tableNames = array_map(fn($t) => $t->tablename, $tables); + //MYSQL + $tables = DB::select('SHOW TABLES'); + $tableNames = array_map('current', $tables); + $tableInfo = []; - return view('backup', compact('tableNames')); + foreach ($tableNames as $table) { + $filePath = base_path($this->exportPath . $table . '.json'); + $fileSize = file_exists($filePath) ? filesize($filePath) : null; + + $tableInfo[] = [ + 'name' => $table, + 'size' => $fileSize, + ]; + } + return view('backup', compact('tableInfo')); } public function generate() { - $tables = DB::select("SELECT tablename FROM pg_tables WHERE schemaname = 'public'"); - $tableNames = array_map(fn($t) => $t->tablename, $tables); + //POSTGRESS + + //$tables = DB::select("SELECT tablename FROM pg_tables WHERE schemaname = 'public'"); + //$tableNames = array_map(fn($t) => $t->tablename, $tables); + //MYSQL + $tables = DB::select('SHOW TABLES'); + $tableNames = array_map('current', $tables); + foreach ($tableNames as $table) { try { $data = DB::table($table)->get(); @@ -87,7 +107,11 @@ class JsonTransferController extends Controller // Kosongkan tabel sebelum import (opsional, hati-hati!) DB::table($table)->truncate(); - DB::table($table)->insert($data); + $chunks = array_chunk($data, 200); // ubah 1000 sesuai kemampuan server + + foreach ($chunks as $chunk) { + DB::table($table)->insert($chunk); + } DB::commit(); return redirect()->back()->with('success', "Data untuk tabel $table berhasil di-import."); diff --git a/htdocs/app/Http/Controllers/ListController.php b/htdocs/app/Http/Controllers/ListController.php index c4472216..3316755b 100644 --- a/htdocs/app/Http/Controllers/ListController.php +++ b/htdocs/app/Http/Controllers/ListController.php @@ -65,155 +65,234 @@ class ListController extends Controller $lokasi = $request->input('poli'); $valcari = $request->input('valcari'); $master = $request->input('master'); - if ($jenis == 'verificationppds'){ - $valcari = $request->input('poli'); + $lamanurlhasil = url('/').'/hasil/'; + if ($jenis === null){$jenis = '';} + if ($master == 'logbook') { + list($start, $end) = explode(' - ', $mulai); + $startDate = Carbon::createFromFormat('m/d/Y', $start)->format('Y-m-d'); + $endDate = Carbon::createFromFormat('m/d/Y', $end)->format('Y-m-d'); + $arraylist = Periksa::select('id', 'mulai', 'akhir', 'noloket', 'nofoto', 'noregister', 'asalpasien', 'nmrs', 'pasien_id', 'nmpasien', 'jkpasien', 'tgllahirpasien', 'tlppasien', 'alamatpasien', 'reques', 'usia', 'berat', 'ruangan_id', 'ruangan', 'dokter_id', 'ppdssenior', 'middleppds', 'ppdsjunior', 'ppdsmiddle2', 'ppdsjunior2', 'analis', 'excutor', 'nmdokter', 'nmppdssenior', 'nmmiddleppds', 'nmppdsjunior', 'nmppdsmiddle2', 'nmppdsjunior2', 'nmanalis', 'nmexcutor', 'klinisi', 'klinis', 'keterangan', 'kesimpulan', 'poli_id', 'asuransi', 'urgensi', 'diagnosa', 'diagnosa2', 'modality', 'dlp', 'daftar', 'foto', 'tgldraft', 'nmdrafter', 'baca', 'nmpembaca', 'verifikasi', 'export', 'tgladendum', 'nmadendum', 'filefoto', 'status', 'created_at', 'updated_at', + DB::raw("CASE + WHEN ppdssenior = $valcari THEN 'SENIOR' + WHEN middleppds = $valcari THEN 'MIDDLE' + WHEN ppdsjunior = $valcari THEN 'JUNIOR' + WHEN ppdsmiddle2 = $valcari THEN 'MIDDLE' + ELSE 'JUNIOR' + END AS role")); + $arraylist = $arraylist->whereBetween('daftar', [$startDate, $endDate]); + $arraylist = $arraylist->where(function($query) use ($valcari) { + $query->where('ppdssenior', $valcari) + ->orWhere('middleppds', $valcari) + ->orWhere('ppdsjunior', $valcari) + ->orWhere('ppdsmiddle2', $valcari) + ->orWhere('ppdsjunior2', $valcari); + })->get(); + } else if ($master == 'pengambilan') { + $arraylist = Periksa::select( + DB::raw("CONCAT('', nofoto, '') as tlsnofoto"), + DB::raw("CONCAT('', noregister, '') as tlsnoregister"), + DB::raw("CONCAT('', nmpasien, '') as tlsnama"), + DB::raw("CONCAT('', urgensi, '') as tlsurgensi"), + DB::raw("CONCAT('', reques, '') as tlsreques"), + DB::raw("CONCAT('', ruangan, '') as tlsruangan"), + DB::raw("CONCAT('', daftar, '') as tlsdaftar"), + DB::raw("CONCAT('', status, '') as tlsstatus"), + DB::raw("CONCAT('', asalpasien, '') as asalpasien"), + 'tlppasien as telpon', 'ruangan_id as idruangan', 'dokter_id as iddokter', 'id', 'daftar', 'nofoto', 'noloket', 'nmdokter as dokter')->whereNotNull('verifikasi')->where('status', '!=', 'Arsip'); + if ($valcari != ''){ + if ($jenis == 'norm'){ + $arraylist = $arraylist->where('noregister', $valcari); + } else { + $arraylist = $arraylist->where('nofoto', $valcari); + } + } + if ($akhir != '' AND $mulai != $akhir){ + $arraylist = $arraylist->whereBetween('daftar', [$mulai, $akhir]); + } else { + if ($jenis == 'ThisDay' OR $jenis == ''){ + if ($mulai == '' OR is_null($mulai)){ $mulai = date('Y-m-d'); } + $arraylist = $arraylist->whereDate('daftar', $mulai); + } else if ($jenis == 'mundur2'){ + $arraylist = $arraylist->whereDate('daftar', '>=', Carbon::today()->subDays(2)); + } else if ($jenis == 'mundur3'){ + $arraylist = $arraylist->whereDate('daftar', '>=', Carbon::today()->subDays(2)); + } else { + + } + } + $arraylist = $arraylist->get(); + } else if ($master == 'verificationppds') { + $arraylist = Periksa::select('id', 'mulai', 'akhir', 'noloket', 'nofoto', 'noregister', 'asalpasien', 'nmrs', 'pasien_id', 'nmpasien', 'jkpasien', 'tgllahirpasien', 'tlppasien', 'alamatpasien', 'reques', 'usia', 'berat','ruangan', 'nmdokter', 'nmppdssenior', 'nmmiddleppds', 'nmppdsjunior', 'nmppdsmiddle2', 'nmppdsjunior2', 'nmanalis', 'nmexcutor', 'klinisi', 'klinis', 'asuransi', 'urgensi', 'diagnosa', 'diagnosa2', 'modality', 'dlp', 'daftar', 'foto', 'tgldraft', 'nmdrafter', 'baca', 'nmpembaca', 'verifikasi', 'export', 'tgladendum', 'nmadendum', 'filefoto', 'status', + DB::raw('DATE(daftar) as daftartgl'), + DB::raw('TIME(daftar) as daftarjam'), + DB::raw('TIME(export) as cetakjam'), + DB::raw('TIME(verifikasi) as verifikasijam'), + DB::raw('TIME(baca) as bacajam'), + DB::raw('TIME(foto) as fotojam'), + DB::raw("GROUP_CONCAT(nofoto SEPARATOR '
') as nofoto_list"), + DB::raw("GROUP_CONCAT(reques SEPARATOR '
') as reques_list"), + DB::raw("CASE WHEN jkpasien = 'L' THEN '1' ELSE '' END AS l"), + DB::raw("CASE WHEN jkpasien = 'P' THEN '1' ELSE '' END AS p"), + DB::raw("CASE WHEN asuransi = 'JKN' THEN '1' WHEN asuransi = 'BPJS' THEN '1' ELSE '' END AS jkn"), + DB::raw("CASE WHEN asuransi = 'Billing' THEN '1' ELSE '' END AS billing"), + DB::raw("CASE WHEN asuransi = 'GCU' THEN '1' ELSE '' END AS gcu"), + DB::raw("CASE WHEN asuransi = 'MANDIRI' THEN '1' WHEN asuransi = 'Umum' THEN '1' ELSE '' END AS umum"), + DB::raw("CASE WHEN asuransi = 'SWASTA' THEN '1' ELSE '' END AS swasta"), + DB::raw("CASE WHEN asuransi = 'TAG' THEN '1' ELSE '' END AS tag"), + DB::raw("CASE WHEN urgensi != 'CITO' THEN '1' ELSE '' END AS elective"), + DB::raw("CASE WHEN urgensi = 'CITO' THEN '1' ELSE '' END AS cito"), + DB::raw("CASE + WHEN nofoto LIKE '%IGD%' THEN 'IGD' + WHEN nofoto LIKE '%PAV%' THEN 'PAVILIUN' + ELSE 'SENTRAL' + END AS inputor"), + DB::raw("CASE + WHEN status IS NULL THEN 'NEW' + WHEN status LIKE '%Dibatalkan%' THEN 'Batal' + WHEN status LIKE '%Telah%' THEN 'Telah di kirim ke worklist/modalitas' + WHEN status LIKE '%Diperiksa%' THEN 'Diperiksa' + WHEN status LIKE '%Draft%' THEN 'Draft' + WHEN status LIKE '%Expertise%' THEN 'Expertise' + WHEN status LIKE '%Decliend%' THEN 'Decliend' + WHEN status LIKE '%Selesai%' THEN 'Selesai' + WHEN status LIKE '%Arsip%' THEN 'Arsip' + ELSE 'Unkown' + END AS status_label")); + + if ($valcari == 'allspv'){ + $arraylist = $arraylist->where('status', 'LIKE', 'Expertise Saved (Un Verified)')->whereNull('periksa.verifikasi'); + } else { + $arraylist = $arraylist->where('status', 'LIKE', 'Expertise Saved (Un Verified)')->whereNull('periksa.verifikasi')->where('periksa.dokter_id', Session('id')); + } + $arraylist = $arraylist->get(); + } else { + $arraylist = Periksa::select('id', 'mulai', 'akhir', 'noloket', 'nofoto', 'noregister', 'asalpasien', 'nmrs', 'pasien_id', 'nmpasien', 'jkpasien', 'tgllahirpasien', 'tlppasien', 'alamatpasien', 'reques', 'usia', 'berat', 'ruangan_id', 'ruangan', 'dokter_id', 'ppdssenior', 'middleppds', 'ppdsjunior', 'ppdsmiddle2', 'ppdsjunior2', 'analis', 'excutor', 'nmdokter', 'nmppdssenior', 'nmmiddleppds', 'nmppdsjunior', 'nmppdsmiddle2', 'nmppdsjunior2', 'nmanalis', 'nmexcutor', 'klinisi', 'klinis', 'keterangan', 'kesimpulan', 'poli_id', 'asuransi', 'urgensi', 'diagnosa', 'diagnosa2', 'modality', 'dlp', 'daftar', 'foto', 'tgldraft', 'nmdrafter', 'baca', 'nmpembaca', 'verifikasi', 'export', 'tgladendum', 'nmadendum', 'filefoto', 'status', 'created_at', 'updated_at', + DB::raw('DATE(daftar) as daftartgl'), + DB::raw('TIME(daftar) as daftarjam'), + DB::raw('TIME(export) as cetakjam'), + DB::raw('TIME(verifikasi) as verifikasijam'), + DB::raw('TIME(baca) as bacajam'), + DB::raw('TIME(foto) as fotojam'), + DB::raw("CASE WHEN jkpasien = 'L' THEN '1' ELSE '' END AS l"), + DB::raw("CASE WHEN jkpasien = 'P' THEN '1' ELSE '' END AS p"), + DB::raw("CONCAT('https://10.10.123.218/hasil/', nofoto) as urlhasil"), + DB::raw("CASE WHEN asuransi = 'JKN' THEN '1' WHEN asuransi = 'BPJS' THEN '1' ELSE '' END AS jkn"), + DB::raw("CASE WHEN asuransi = 'Billing' THEN '1' ELSE '' END AS billing"), + DB::raw("CASE WHEN asuransi = 'GCU' THEN '1' ELSE '' END AS gcu"), + DB::raw("CASE WHEN asuransi = 'MANDIRI' THEN '1' WHEN asuransi = 'Umum' THEN '1' ELSE '' END AS umum"), + DB::raw("CASE WHEN asuransi = 'SWASTA' THEN '1' ELSE '' END AS swasta"), + DB::raw("CASE WHEN asuransi = 'TAG' THEN '1' ELSE '' END AS tag"), + DB::raw("CASE WHEN urgensi != 'CITO' THEN '1' ELSE '' END AS elective"), + DB::raw("CASE WHEN urgensi = 'CITO' THEN '1' ELSE '' END AS cito"), + DB::raw("CASE + WHEN status IS NULL THEN 'NEW' + WHEN status LIKE '%Dibatalkan%' THEN 'Batal' + WHEN status LIKE '%Telah%' THEN 'Telah di kirim ke worklist/modalitas' + WHEN status LIKE '%Diperiksa%' THEN 'Diperiksa' + WHEN status LIKE '%Draft%' THEN 'Draft' + WHEN status LIKE '%Expertise%' THEN 'Expertise' + WHEN status LIKE '%Decliend%' THEN 'Decliend' + WHEN status LIKE '%Selesai%' THEN 'Selesai' + WHEN status LIKE '%Arsip%' THEN 'Arsip' + ELSE 'Unkown' + END AS status_label"), + DB::raw("CASE + WHEN status IS NULL THEN CONCAT('', nofoto, '') + WHEN status LIKE '%Dibatalkan%' THEN CONCAT('', nofoto, '') + WHEN status LIKE '%Telah%' THEN CONCAT('', nofoto, '') + WHEN status LIKE '%Diperiksa%' THEN CONCAT('', nofoto, '') + WHEN status LIKE '%Draft%' THEN CONCAT('', nofoto, '') + WHEN status LIKE '%Expertise%' THEN CONCAT('', nofoto, '') + WHEN status LIKE '%Decliend%' THEN CONCAT('', nofoto, '') + WHEN status LIKE '%Selesai%' THEN CONCAT('', nofoto, '') + WHEN status LIKE '%Arsip%' THEN CONCAT('', nofoto, '') + ELSE CONCAT('', nofoto, '') + END AS tlsnofoto"), + DB::raw("CASE + WHEN status IS NULL THEN CONCAT('', noregister, '') + WHEN status LIKE '%Dibatalkan%' THEN CONCAT('', noregister, '') + WHEN status LIKE '%Telah%' THEN CONCAT('', noregister, '') + WHEN status LIKE '%Diperiksa%' THEN CONCAT('', noregister, '') + WHEN status LIKE '%Draft%' THEN CONCAT('', noregister, '') + WHEN status LIKE '%Expertise%' THEN CONCAT('', noregister, '') + WHEN status LIKE '%Decliend%' THEN CONCAT('', noregister, '') + WHEN status LIKE '%Selesai%' THEN CONCAT('', noregister, '') + WHEN status LIKE '%Arsip%' THEN CONCAT('', noregister, '') + ELSE CONCAT('', noregister, '') + END AS tlsnoregister"), + DB::raw("CASE + WHEN status IS NULL THEN CONCAT('', nmpasien, '') + WHEN status LIKE '%Dibatalkan%' THEN CONCAT('', nmpasien, '') + WHEN status LIKE '%Telah%' THEN CONCAT('', nmpasien, '') + WHEN status LIKE '%Diperiksa%' THEN CONCAT('', nmpasien, '') + WHEN status LIKE '%Draft%' THEN CONCAT('', nmpasien, '') + WHEN status LIKE '%Expertise%' THEN CONCAT('', nmpasien, '') + WHEN status LIKE '%Decliend%' THEN CONCAT('', nmpasien, '') + WHEN status LIKE '%Selesai%' THEN CONCAT('', nmpasien, '') + WHEN status LIKE '%Arsip%' THEN CONCAT('', nmpasien, '') + ELSE CONCAT('', nmpasien, '') + END AS tlsnama"), + DB::raw("CASE + WHEN status IS NULL THEN CONCAT('', reques, '') + WHEN status LIKE '%Dibatalkan%' THEN CONCAT('', reques, '') + WHEN status LIKE '%Telah%' THEN CONCAT('', reques, '') + WHEN status LIKE '%Diperiksa%' THEN CONCAT('', reques, '') + WHEN status LIKE '%Draft%' THEN CONCAT('', reques, '') + WHEN status LIKE '%Expertise%' THEN CONCAT('', reques, '') + WHEN status LIKE '%Decliend%' THEN CONCAT('', reques, '') + WHEN status LIKE '%Selesai%' THEN CONCAT('', reques, '') + WHEN status LIKE '%Arsip%' THEN CONCAT('', reques, '') + ELSE CONCAT('', reques, '') + END AS tlsreques") + ); + + + if ($jenis == 'ThisDay') { + $arraylist = $arraylist->where(function($q) { + $q->where(function($sub) { + $sub->whereNotIn('status', ['Selesai', 'Arsip']) + ->where('status', 'not like', 'Dibatalkan%'); + })->orWhereNull('status'); + }); + } else if ($jenis == 'ThisDayPendaftaran') { + $arraylist = $arraylist->whereDate('daftar', Carbon::today()); + } else if ($jenis == 'mundur2') { + $arraylist = $arraylist->whereDate('daftar', '>=', Carbon::today()->subDays(2)); + } else if ($jenis == 'mundur3') { + $arraylist = $arraylist->whereDate('daftar', '>=', Carbon::today()->subDays(3)); + } else if ($jenis === 'searchbydate') { + $mulai = $mulai ?: date("Y-m-d"); + $akhir = $akhir ?: date("Y-m-d"); + if ($mulai >= $akhir) { + $akhir = date('Y-m-d', strtotime($akhir . ' +1 day')); + } + $arraylist = $arraylist->whereBetween('daftar', [$mulai, $akhir]); + } else if ($jenis === 'searchbydatemanual') { + $mulai = $mulai ?: date("Y-m-d"); + $akhir = $akhir ?: date("Y-m-d"); + if ($mulai >= $akhir) { + $akhir = date('Y-m-d', strtotime($akhir . ' +1 day')); + } + $arraylist = $arraylist->whereBetween('daftar', [$mulai, $akhir])->whereNotIn('pendaftar', ['supervisor', 'admin', 'analis', 'ppds', 'developer']); + } else { + switch ($jenis) { + case 'norm': + $arraylist = $arraylist->where('noregister', 'LIKE', '%'.$valcari.'%'); + case 'nofoto': + $arraylist = $arraylist->where('nofoto', 'LIKE', '%'.$valcari.'%'); + case 'rekues': + $arraylist = $arraylist->where('reques', 'LIKE', '%'.$valcari.'%'); + case 'keterangan': + $arraylist = $arraylist->where('keterangan', 'LIKE', '%'.$valcari.'%'); + case 'kesimpulan': + $arraylist = $arraylist->where('keterangan', 'LIKE', '%'.$valcari.'%'); + default: + $arraylist = $arraylist->where('nmpasien', 'LIKE', '%'.$valcari.'%'); + } + } + $arraylist = $arraylist->orderBy('id', 'DESC')->get(); } - $total = 0; - $data = $this->getDataBasedOnMaster($master, $jenis, $mulai, $akhir, $valcari); - if (!empty($data)){ - $dataArray = $data->get()->toArray(); - $total = count($dataArray); - $arraylist = array_map(function ($list) use ($master) { - $tgl = $list['tgllahirpasien']; - $poli_id = $list['poli_id']; - $foto = $list['foto']; - $baca = $list['baca']; - $export = $list['export']; - $nofoto = $list['nofoto']; - $noregister = $list['noregister']; - $usia = $list['usia']; - $urgensi = $list['urgensi']; - $reques = $list['reques']; - $ruangan = $list['ruangan']; - $daftar = $list['daftar']; - $status = $list['status']; - $asalpasien = $list['asalpasien']; - $dokter_id = $list['dokter_id']; - $ppdssenior = $list['ppdssenior']; - $middleppds = $list['middleppds']; - $ppdsjunior = $list['ppdsjunior']; - $middleppds2= $list['ppdsmiddle2']; - $ppdsjunior2= $list['ppdsjunior2']; - $pasiedin = $list['pasien_id']; - $keterangan = $list['keterangan']; - $kesimpulan = $list['kesimpulan']; - $verifikasi = $list['verifikasi']; - $nama = $list['nmpasien']; - $jk = $list['jkpasien']; - $telpon = $list['tlppasien']; - $alamat = $list['alamatpasien']; - $tgllahir = $list['tgllahirpasien']; - $ktp = $list['ktp']; - $bpjs = $list['bpjs']; - $nmpendaftar= $list['pendaftar']; - if ($nmpendaftar == 'supervisor' OR $nmpendaftar == 'admin' OR $nmpendaftar == 'analis' OR $nmpendaftar == 'ppds' OR $nmpendaftar == 'developer'){ - $nmpendaftar = $list['nmpendaftar']; - } else { - $nmpendaftar = 'SIMRS'; - } - $from = $verifikasi ? \Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $verifikasi) : null; - $to = $verifikasi ? \Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $verifikasi)->toString() : ''; - if ($from && $from->isValid()) { - $durasi = $verifikasi ? \Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $verifikasi)->diffForHumans($from) : 'On Progress'; - } else { - $durasi = 'On Progress'; - } - if ($middleppds2 != 0){ - $ppdsas = 'Middle'; - $otherppds = $list['nmppdsmiddle2']; - } else { - $ppdsas = 'Junior'; - $otherppds = $ppdsjunior2; - $otherppds = $list['nmppdsjunior2']; - } - - $arrdaftar = explode(" ", $daftar); - $tgldaftar = $arrdaftar[0]; - $jamdaftar = $arrdaftar[1]; - $daftar = $tgldaftar; - $tglfoto = $foto ?: date("Y-m-d H:i:s"); - $datatampilan = $this->setStatusStyles($status, $nofoto, $noregister, $nama, $telpon, $jk, $usia, $urgensi, $reques, $ruangan, $daftar, $asalpasien); - return [ - 'asalpasien' => $list['asalpasien'], - 'tlsnofoto' => $datatampilan['nofoto'], - 'tlsnoregister' => $datatampilan['noregister'], - 'tlsnama' => $datatampilan['nama'], - 'tlsjk' => $datatampilan['jk'], - 'tlsusia' => $datatampilan['usia'], - 'tlsurgensi' => ($list['urgensi'] == 'CITO') ? 'C I T O' : $datatampilan['urgensi'], - 'tlsreques' => $datatampilan['reques'], - 'tlsruangan' => $list['ruangan'], - 'tlsdaftar' => $datatampilan['daftar'], - 'tlsstatus' => $datatampilan['status'], - 'id' => $list['id'], - 'nofoto' => $nofoto, - 'noregister' => $noregister, - 'nama' => $nama, - 'jk' => $jk, - 'usia' => $usia, - 'urgensi' => $urgensi, - 'poli' => $reques, - 'idpasien' => $pasiedin, - 'ruangan' => $ruangan, - 'daftar' => $list['daftar'], - 'daftartgl' => $daftar, - 'daftarjam' => $jamdaftar, - 'status' => $status, - 'dokter' => $master != 'kiriman' ? $list['nmdokter'] : '', - 'ppds1' => $master != 'kiriman' ? $list['nmppdssenior'] : '', - 'ppds2' => $master != 'kiriman' ? $list['nmmiddleppds'] : '', - 'ppds3' => $master != 'kiriman' ? $list['nmppdsjunior'] : '', - 'keterangan' => $keterangan, - 'kesimpulan' => $kesimpulan, - 'noloket' => $list['noloket'], - 'idruangan' => $list['ruangan_id'], - 'iddokter' => $list['dokter_id'], - 'ppdssenior' => $list['ppdssenior'], - 'middleppds' => $list['middleppds'], - 'ppdsjunior' => $list['ppdsjunior'], - 'diagnosa' => $list['diagnosa'], - 'diagnosa2' => $list['diagnosa2'], - 'kd_spesimen' => $list['kd_spesimen'], - 'nm_spesimen' => $list['nm_spesimen'], - 'berat' => $list['berat'], - 'klinis' => $list['klinis'], - 'klinisi' => $list['klinisi'], - 'filefoto' => $list['filefoto'], - 'dlp' => $list['dlp'], - 'analis' => $list['analis'], - 'excutor' => $list['excutor'], - 'modality' => $list['modality'], - 'viewfoto' => $list['foto'], - 'tglfoto' => $tglfoto, - 'nmppdssenior' => $list['nmppdssenior'], - 'nmmiddleppds' => $list['nmmiddleppds'], - 'nmppdsjunior' => $list['nmppdsjunior'], - 'nmppdsmiddle2' => $list['nmppdsmiddle2'], - 'nmppdsjunior2' => $list['nmppdsjunior2'], - 'nmanalis' => $list['nmanalis'], - 'nmexcutor' => $list['nmexcutor'], - 'telpon' => $list['tlppasien'], - 'asuransi' => $list['asuransi'], - 'tgllahir' => $list['tgllahirpasien'], - 'alamat' => $list['alamatpasien'], - 'poli_id' => $list['poli_id'], - 'nmpendaftar' => $nmpendaftar, - 'timestamp1' => $from ? $from->toString() : null, - 'timestamp2' => $to, - 'durasi' => $durasi, - 'ppdsas' => $ppdsas, - 'otherppds' => $otherppds, - 'ktp' => $ktp, - 'bpjs' => $bpjs, - ]; - }, $dataArray); - } - $response = [ - 'message' => 'List Laporan', - 'data' => $arraylist, - 'total' => $total - ]; - return response()->json($response, 200); + echo json_encode($arraylist); } public function listDetail(Request $request) { $id = $request->input('id'); diff --git a/htdocs/public/high/assets/css/bootstrap.min.css b/htdocs/public/high/assets/css/bootstrap.min.css deleted file mode 100644 index 6561b6f4..00000000 --- a/htdocs/public/high/assets/css/bootstrap.min.css +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap v4.0.0 (https://getbootstrap.com) - * Copyright 2011-2018 The Bootstrap Authors - * Copyright 2011-2018 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}@-ms-viewport{width:device-width}article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-family:inherit;font-weight:500;line-height:1.2;color:inherit}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014 \00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}code{font-size:87.5%;color:#e83e8c;word-break:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;min-height:1px;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-1{-webkit-box-flex:0;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-webkit-box-flex:0;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-webkit-box-flex:0;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-webkit-box-flex:0;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-webkit-box-flex:0;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-webkit-box-flex:0;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-webkit-box-flex:0;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-webkit-box-flex:0;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-sm-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-sm-1{-webkit-box-flex:0;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-webkit-box-flex:0;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-webkit-box-flex:0;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-webkit-box-flex:0;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-webkit-box-flex:0;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-webkit-box-flex:0;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-webkit-box-flex:0;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-webkit-box-flex:0;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-sm-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-sm-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-sm-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-sm-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-sm-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-sm-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-sm-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-sm-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-sm-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-sm-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-sm-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-sm-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-sm-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-sm-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-md-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-md-1{-webkit-box-flex:0;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-webkit-box-flex:0;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-webkit-box-flex:0;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-webkit-box-flex:0;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-webkit-box-flex:0;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-webkit-box-flex:0;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-webkit-box-flex:0;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-webkit-box-flex:0;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-md-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-md-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-md-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-md-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-md-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-md-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-md-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-md-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-md-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-md-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-md-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-md-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-md-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-md-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-lg-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-lg-1{-webkit-box-flex:0;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-webkit-box-flex:0;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-webkit-box-flex:0;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-webkit-box-flex:0;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-webkit-box-flex:0;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-webkit-box-flex:0;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-webkit-box-flex:0;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-webkit-box-flex:0;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-lg-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-lg-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-lg-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-lg-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-lg-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-lg-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-lg-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-lg-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-lg-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-lg-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-lg-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-lg-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-lg-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-lg-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-xl-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-xl-1{-webkit-box-flex:0;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-webkit-box-flex:0;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-webkit-box-flex:0;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-webkit-box-flex:0;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-webkit-box-flex:0;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-webkit-box-flex:0;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-webkit-box-flex:0;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-webkit-box-flex:0;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-xl-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-xl-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-xl-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-xl-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-xl-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-xl-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-xl-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-xl-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-xl-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-xl-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-xl-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-xl-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-xl-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-xl-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;max-width:100%;margin-bottom:1rem;background-color:transparent}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table .table{background-color:#fff}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#212529;border-color:#32383e}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#212529}.table-dark td,.table-dark th,.table-dark thead th{border-color:#32383e}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:not([size]):not([multiple]){height:calc(2.25rem + 2px)}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding-top:.375rem;padding-bottom:.375rem;margin-bottom:0;line-height:1.5;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm,.input-group-lg>.form-control-plaintext.form-control,.input-group-lg>.input-group-append>.form-control-plaintext.btn,.input-group-lg>.input-group-append>.form-control-plaintext.input-group-text,.input-group-lg>.input-group-prepend>.form-control-plaintext.btn,.input-group-lg>.input-group-prepend>.form-control-plaintext.input-group-text,.input-group-sm>.form-control-plaintext.form-control,.input-group-sm>.input-group-append>.form-control-plaintext.btn,.input-group-sm>.input-group-append>.form-control-plaintext.input-group-text,.input-group-sm>.input-group-prepend>.form-control-plaintext.btn,.input-group-sm>.input-group-prepend>.form-control-plaintext.input-group-text{padding-right:0;padding-left:0}.form-control-sm,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-sm>.input-group-append>select.btn:not([size]):not([multiple]),.input-group-sm>.input-group-append>select.input-group-text:not([size]):not([multiple]),.input-group-sm>.input-group-prepend>select.btn:not([size]):not([multiple]),.input-group-sm>.input-group-prepend>select.input-group-text:not([size]):not([multiple]),.input-group-sm>select.form-control:not([size]):not([multiple]),select.form-control-sm:not([size]):not([multiple]){height:calc(1.8125rem + 2px)}.form-control-lg,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-lg>.input-group-append>select.btn:not([size]):not([multiple]),.input-group-lg>.input-group-append>select.input-group-text:not([size]):not([multiple]),.input-group-lg>.input-group-prepend>select.btn:not([size]):not([multiple]),.input-group-lg>.input-group-prepend>select.input-group-text:not([size]):not([multiple]),.input-group-lg>select.form-control:not([size]):not([multiple]),select.form-control-lg:not([size]):not([multiple]){height:calc(2.875rem + 2px)}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.5rem;margin-top:.1rem;font-size:.875rem;line-height:1;color:#fff;background-color:rgba(40,167,69,.8);border-radius:.2rem}.custom-select.is-valid,.form-control.is-valid,.was-validated .custom-select:valid,.was-validated .form-control:valid{border-color:#28a745}.custom-select.is-valid:focus,.form-control.is-valid:focus,.was-validated .custom-select:valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-select.is-valid~.valid-feedback,.custom-select.is-valid~.valid-tooltip,.form-control.is-valid~.valid-feedback,.form-control.is-valid~.valid-tooltip,.was-validated .custom-select:valid~.valid-feedback,.was-validated .custom-select:valid~.valid-tooltip,.was-validated .form-control:valid~.valid-feedback,.was-validated .form-control:valid~.valid-tooltip{display:block}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{background-color:#71dd8a}.custom-control-input.is-valid~.valid-feedback,.custom-control-input.is-valid~.valid-tooltip,.was-validated .custom-control-input:valid~.valid-feedback,.was-validated .custom-control-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(40,167,69,.25)}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label::before,.was-validated .custom-file-input:valid~.custom-file-label::before{border-color:inherit}.custom-file-input.is-valid~.valid-feedback,.custom-file-input.is-valid~.valid-tooltip,.was-validated .custom-file-input:valid~.valid-feedback,.was-validated .custom-file-input:valid~.valid-tooltip{display:block}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.5rem;margin-top:.1rem;font-size:.875rem;line-height:1;color:#fff;background-color:rgba(220,53,69,.8);border-radius:.2rem}.custom-select.is-invalid,.form-control.is-invalid,.was-validated .custom-select:invalid,.was-validated .form-control:invalid{border-color:#dc3545}.custom-select.is-invalid:focus,.form-control.is-invalid:focus,.was-validated .custom-select:invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-select.is-invalid~.invalid-feedback,.custom-select.is-invalid~.invalid-tooltip,.form-control.is-invalid~.invalid-feedback,.form-control.is-invalid~.invalid-tooltip,.was-validated .custom-select:invalid~.invalid-feedback,.was-validated .custom-select:invalid~.invalid-tooltip,.was-validated .form-control:invalid~.invalid-feedback,.was-validated .form-control:invalid~.invalid-tooltip{display:block}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{background-color:#efa2a9}.custom-control-input.is-invalid~.invalid-feedback,.custom-control-input.is-invalid~.invalid-tooltip,.was-validated .custom-control-input:invalid~.invalid-feedback,.was-validated .custom-control-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(220,53,69,.25)}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label::before,.was-validated .custom-file-input:invalid~.custom-file-label::before{border-color:inherit}.custom-file-input.is-invalid~.invalid-feedback,.custom-file-input.is-invalid~.invalid-tooltip,.was-validated .custom-file-input:invalid~.invalid-feedback,.was-validated .custom-file-input:invalid~.invalid-tooltip{display:block}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .input-group{width:auto}.form-inline .form-check{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;text-align:center;white-space:nowrap;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.btn:focus,.btn:hover{text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}.btn:not(:disabled):not(.disabled).active,.btn:not(:disabled):not(.disabled):active{background-image:none}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-primary{color:#007bff;background-color:transparent;background-image:none;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;background-color:transparent;background-image:none;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;background-color:transparent;background-image:none;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;background-color:transparent;background-image:none;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;background-color:transparent;background-image:none;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;background-color:transparent;background-image:none;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;background-color:transparent;background-image:none;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;background-color:transparent;background-image:none;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;background-color:transparent}.btn-link:hover{color:#0056b3;text-decoration:underline;background-color:transparent;border-color:transparent}.btn-link.focus,.btn-link:focus{text-decoration:underline;border-color:transparent;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;transition:opacity .15s linear}.fade.show{opacity:1}.collapse{display:none}.collapse.show{display:block}tr.collapse.show{display:table-row}tbody.collapse.show{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}.dropdown,.dropup{position:relative}.dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropup .dropdown-menu{margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;width:0;height:0;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.btn-group,.btn-group-vertical{position:relative;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group,.btn-group-vertical .btn+.btn,.btn-group-vertical .btn+.btn-group,.btn-group-vertical .btn-group+.btn,.btn-group-vertical .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after{margin-left:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.btn-group-vertical .btn,.btn-group-vertical .btn-group{width:100%}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control{position:relative;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;margin-bottom:0}.input-group>.custom-file:focus,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control{margin-left:-1px}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::before{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label,.input-group>.custom-file:not(:first-child) .custom-file-label::before{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-webkit-box;display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;z-index:-1;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:active~.custom-control-label::before{color:#fff;background-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{margin-bottom:0}.custom-control-label::before{position:absolute;top:.25rem;left:0;display:block;width:1rem;height:1rem;pointer-events:none;content:"";-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#dee2e6}.custom-control-label::after{position:absolute;top:.25rem;left:0;display:block;width:1rem;height:1rem;content:"";background-repeat:no-repeat;background-position:center center;background-size:50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::before{background-color:#007bff}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::before{background-color:#007bff}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(2.25rem + 2px);padding:.375rem 1.75rem .375rem .75rem;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center;background-size:8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:inset 0 1px 2px rgba(0,0,0,.075),0 0 5px rgba(128,189,255,.5)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{opacity:0}.custom-select-sm{height:calc(1.8125rem + 2px);padding-top:.375rem;padding-bottom:.375rem;font-size:75%}.custom-select-lg{height:calc(2.875rem + 2px);padding-top:.375rem;padding-bottom:.375rem;font-size:125%}.custom-file{position:relative;display:inline-block;width:100%;height:calc(2.25rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(2.25rem + 2px);margin:0;opacity:0}.custom-file-input:focus~.custom-file-control{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:focus~.custom-file-control::before{border-color:#80bdff}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(2.25rem + 2px);padding:.375rem .75rem;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(calc(2.25rem + 2px) - 1px * 2);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:1px solid #ced4da;border-radius:0 .25rem .25rem 0}.nav{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar>.container,.navbar>.container-fluid{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler:not(:disabled):not(.disabled){cursor:pointer}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat center center;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .dropdown-menu-right{right:0;left:auto}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .dropup .dropdown-menu{top:auto;bottom:100%}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .dropdown-menu-right{right:0;left:auto}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .dropup .dropdown-menu{top:auto;bottom:100%}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .dropdown-menu-right{right:0;left:auto}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .dropup .dropdown-menu{top:auto;bottom:100%}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .dropdown-menu-right{right:0;left:auto}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .dropup .dropdown-menu{top:auto;bottom:100%}}.navbar-expand{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .dropdown-menu-right{right:0;left:auto}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .dropup .dropdown-menu{top:auto;bottom:100%}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img{width:100%;border-radius:calc(.25rem - 1px)}.card-img-top{width:100%;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:first-child .card-header,.card-group>.card:first-child .card-img-top{border-top-right-radius:0}.card-group>.card:first-child .card-footer,.card-group>.card:first-child .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:last-child .card-header,.card-group>.card:last-child .card-img-top{border-top-left-radius:0}.card-group>.card:last-child .card-footer,.card-group>.card:last-child .card-img-bottom{border-bottom-left-radius:0}.card-group>.card:only-child{border-radius:.25rem}.card-group>.card:only-child .card-header,.card-group>.card:only-child .card-img-top{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card-group>.card:only-child .card-footer,.card-group>.card:only-child .card-img-bottom{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-group>.card:not(:first-child):not(:last-child):not(:only-child){border-radius:0}.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-footer,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-header,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-top{border-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem}.card-columns .card{display:inline-block;width:100%}}.breadcrumb{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;padding-left:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-webkit-box;display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:2;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-link:not(:disabled):not(.disabled){cursor:pointer}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:1;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}.badge-primary[href]:focus,.badge-primary[href]:hover{color:#fff;text-decoration:none;background-color:#0062cc}.badge-secondary{color:#fff;background-color:#6c757d}.badge-secondary[href]:focus,.badge-secondary[href]:hover{color:#fff;text-decoration:none;background-color:#545b62}.badge-success{color:#fff;background-color:#28a745}.badge-success[href]:focus,.badge-success[href]:hover{color:#fff;text-decoration:none;background-color:#1e7e34}.badge-info{color:#fff;background-color:#17a2b8}.badge-info[href]:focus,.badge-info[href]:hover{color:#fff;text-decoration:none;background-color:#117a8b}.badge-warning{color:#212529;background-color:#ffc107}.badge-warning[href]:focus,.badge-warning[href]:hover{color:#212529;text-decoration:none;background-color:#d39e00}.badge-danger{color:#fff;background-color:#dc3545}.badge-danger[href]:focus,.badge-danger[href]:hover{color:#fff;text-decoration:none;background-color:#bd2130}.badge-light{color:#212529;background-color:#f8f9fa}.badge-light[href]:focus,.badge-light[href]:hover{color:#212529;text-decoration:none;background-color:#dae0e5}.badge-dark{color:#fff;background-color:#343a40}.badge-dark[href]:focus,.badge-dark[href]:hover{color:#fff;text-decoration:none;background-color:#1d2124}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-webkit-box;display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;color:#fff;text-align:center;background-color:#007bff;transition:width .6s ease}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}.media{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.media-body{-webkit-box-flex:1;-ms-flex:1;flex:1}.list-group{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item:focus,.list-group-item:hover{z-index:1;text-decoration:none}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:focus,.close:hover{color:#000;text-decoration:none;opacity:.75}.close:not(:disabled):not(.disabled){cursor:pointer}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;outline:0}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.show .modal-dialog{-webkit-transform:translate(0,0);transform:translate(0,0)}.modal-dialog-centered{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;min-height:calc(100% - (.5rem * 2))}.modal-content{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:1rem;border-bottom:1px solid #e9ecef;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;padding:1rem;border-top:1px solid #e9ecef}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-centered{min-height:calc(100% - (1.75rem * 2))}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg{max-width:800px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top] .arrow,.bs-popover-top .arrow{bottom:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::after,.bs-popover-top .arrow::before{border-width:.5rem .5rem 0}.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::before{bottom:0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-top .arrow::after{bottom:1px;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right] .arrow,.bs-popover-right .arrow{left:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::after,.bs-popover-right .arrow::before{border-width:.5rem .5rem .5rem 0}.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::before{left:0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-right .arrow::after{left:1px;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom] .arrow,.bs-popover-bottom .arrow{top:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::after,.bs-popover-bottom .arrow::before{border-width:0 .5rem .5rem .5rem}.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::before{top:0;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-bottom .arrow::after{top:1px;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left] .arrow,.bs-popover-left .arrow{right:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::after,.bs-popover-left .arrow::before{border-width:.5rem 0 .5rem .5rem}.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::before{right:0;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-left .arrow::after{right:1px;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;color:inherit;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-item{position:relative;display:none;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;transition:-webkit-transform .6s ease;transition:transform .6s ease;transition:transform .6s ease,-webkit-transform .6s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.carousel-item-next,.carousel-item-prev{position:absolute;top:0}.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{-webkit-transform:translateX(0);transform:translateX(0)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.active.carousel-item-right,.carousel-item-next{-webkit-transform:translateX(100%);transform:translateX(100%)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.active.carousel-item-right,.carousel-item-next{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.active.carousel-item-left,.carousel-item-prev{-webkit-transform:translateX(-100%);transform:translateX(-100%)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.active.carousel-item-left,.carousel-item-prev{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:transparent no-repeat center center;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E")}.carousel-control-next-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E")}.carousel-indicators{position:absolute;right:0;bottom:10px;left:0;z-index:15;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{position:relative;-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;background-color:rgba(255,255,255,.5)}.carousel-indicators li::before{position:absolute;top:-10px;left:0;display:inline-block;width:100%;height:10px;content:""}.carousel-indicators li::after{position:absolute;bottom:-10px;left:0;display:inline-block;width:100%;height:10px;content:""}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-circle{border-radius:50%!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-sm-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-md-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-lg-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-xl-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;-webkit-clip-path:inset(50%);clip-path:inset(50%);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal;-webkit-clip-path:none;clip-path:none}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-justify{text-align:justify!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0062cc!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#545b62!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#1e7e34!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#117a8b!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#d39e00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#bd2130!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#dae0e5!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#1d2124!important}.text-muted{color:#6c757d!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}} -/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/htdocs/public/high/assets/css/icons.css b/htdocs/public/high/assets/css/icons.css deleted file mode 100644 index 721972bb..00000000 --- a/htdocs/public/high/assets/css/icons.css +++ /dev/null @@ -1,13661 +0,0 @@ -@charset "UTF-8"; -/* -Template Name: Highdmin - Responsive Bootstrap 4 Admin Dashboard -Author: CoderThemes -Email: coderthemes@gmail.com -File: Icons -*/ -/*! - * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */ -/* FONT PATH - * -------------------------- */ -@font-face { - font-family: 'FontAwesome'; - src: url("../fonts/fontawesome-webfont.eot?v=4.7.0"); - src: url("../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0") format("embedded-opentype"), url("../fonts/fontawesome-webfont.woff2?v=4.7.0") format("woff2"), url("../fonts/fontawesome-webfont.woff?v=4.7.0") format("woff"), url("../fonts/fontawesome-webfont.ttf?v=4.7.0") format("truetype"), url("../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular") format("svg"); - font-weight: normal; - font-style: normal; -} - -.fa { - display: inline-block; - font: normal normal normal 14px/1 FontAwesome; - font-size: inherit; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -/* makes the font 33% larger relative to the icon container */ -.fa-lg { - font-size: 1.33333em; - line-height: 0.75em; - vertical-align: -15%; -} - -.fa-2x { - font-size: 2em; -} - -.fa-3x { - font-size: 3em; -} - -.fa-4x { - font-size: 4em; -} - -.fa-5x { - font-size: 5em; -} - -.fa-fw { - width: 1.28571em; - text-align: center; -} - -.fa-ul { - padding-left: 0; - margin-left: 2.14286em; - list-style-type: none; -} - -.fa-ul > li { - position: relative; -} - -.fa-li { - position: absolute; - left: -2.14286em; - width: 2.14286em; - top: 0.14286em; - text-align: center; -} - -.fa-li.fa-lg { - left: -1.85714em; -} - -.fa-border { - padding: .2em .25em .15em; - border: solid 0.08em #eee; - border-radius: .1em; -} - -.fa-pull-left { - float: left; -} - -.fa-pull-right { - float: right; -} - -.fa.fa-pull-left { - margin-right: .3em; -} - -.fa.fa-pull-right { - margin-left: .3em; -} - -/* Deprecated as of 4.4.0 */ -.pull-right { - float: right; -} - -.pull-left { - float: left; -} - -.fa.pull-left { - margin-right: .3em; -} - -.fa.pull-right { - margin-left: .3em; -} - -.fa-spin { - -webkit-animation: fa-spin 2s infinite linear; - animation: fa-spin 2s infinite linear; -} - -.fa-pulse { - -webkit-animation: fa-spin 1s infinite steps(8); - animation: fa-spin 1s infinite steps(8); -} - -@-webkit-keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} - -@keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} - -.fa-rotate-90 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; - -webkit-transform: rotate(90deg); - -ms-transform: rotate(90deg); - transform: rotate(90deg); -} - -.fa-rotate-180 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; - -webkit-transform: rotate(180deg); - -ms-transform: rotate(180deg); - transform: rotate(180deg); -} - -.fa-rotate-270 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; - -webkit-transform: rotate(270deg); - -ms-transform: rotate(270deg); - transform: rotate(270deg); -} - -.fa-flip-horizontal { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; - -webkit-transform: scale(-1, 1); - -ms-transform: scale(-1, 1); - transform: scale(-1, 1); -} - -.fa-flip-vertical { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; - -webkit-transform: scale(1, -1); - -ms-transform: scale(1, -1); - transform: scale(1, -1); -} - -:root .fa-rotate-90, -:root .fa-rotate-180, -:root .fa-rotate-270, -:root .fa-flip-horizontal, -:root .fa-flip-vertical { - filter: none; -} - -.fa-stack { - position: relative; - display: inline-block; - width: 2em; - height: 2em; - line-height: 2em; - vertical-align: middle; -} - -.fa-stack-1x, .fa-stack-2x { - position: absolute; - left: 0; - width: 100%; - text-align: center; -} - -.fa-stack-1x { - line-height: inherit; -} - -.fa-stack-2x { - font-size: 2em; -} - -.fa-inverse { - color: #fff; -} - -/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen - readers do not read off random characters that represent icons */ -.fa-glass:before { - content: ""; -} - -.fa-music:before { - content: ""; -} - -.fa-search:before { - content: ""; -} - -.fa-envelope-o:before { - content: ""; -} - -.fa-heart:before { - content: ""; -} - -.fa-star:before { - content: ""; -} - -.fa-star-o:before { - content: ""; -} - -.fa-user:before { - content: ""; -} - -.fa-film:before { - content: ""; -} - -.fa-th-large:before { - content: ""; -} - -.fa-th:before { - content: ""; -} - -.fa-th-list:before { - content: ""; -} - -.fa-check:before { - content: ""; -} - -.fa-remove:before, -.fa-close:before, -.fa-times:before { - content: ""; -} - -.fa-search-plus:before { - content: ""; -} - -.fa-search-minus:before { - content: ""; -} - -.fa-power-off:before { - content: ""; -} - -.fa-signal:before { - content: ""; -} - -.fa-gear:before, -.fa-cog:before { - content: ""; -} - -.fa-trash-o:before { - content: ""; -} - -.fa-home:before { - content: ""; -} - -.fa-file-o:before { - content: ""; -} - -.fa-clock-o:before { - content: ""; -} - -.fa-road:before { - content: ""; -} - -.fa-download:before { - content: ""; -} - -.fa-arrow-circle-o-down:before { - content: ""; -} - -.fa-arrow-circle-o-up:before { - content: ""; -} - -.fa-inbox:before { - content: ""; -} - -.fa-play-circle-o:before { - content: ""; -} - -.fa-rotate-right:before, -.fa-repeat:before { - content: ""; -} - -.fa-refresh:before { - content: ""; -} - -.fa-list-alt:before { - content: ""; -} - -.fa-lock:before { - content: ""; -} - -.fa-flag:before { - content: ""; -} - -.fa-headphones:before { - content: ""; -} - -.fa-volume-off:before { - content: ""; -} - -.fa-volume-down:before { - content: ""; -} - -.fa-volume-up:before { - content: ""; -} - -.fa-qrcode:before { - content: ""; -} - -.fa-barcode:before { - content: ""; -} - -.fa-tag:before { - content: ""; -} - -.fa-tags:before { - content: ""; -} - -.fa-book:before { - content: ""; -} - -.fa-bookmark:before { - content: ""; -} - -.fa-print:before { - content: ""; -} - -.fa-camera:before { - content: ""; -} - -.fa-font:before { - content: ""; -} - -.fa-bold:before { - content: ""; -} - -.fa-italic:before { - content: ""; -} - -.fa-text-height:before { - content: ""; -} - -.fa-text-width:before { - content: ""; -} - -.fa-align-left:before { - content: ""; -} - -.fa-align-center:before { - content: ""; -} - -.fa-align-right:before { - content: ""; -} - -.fa-align-justify:before { - content: ""; -} - -.fa-list:before { - content: ""; -} - -.fa-dedent:before, -.fa-outdent:before { - content: ""; -} - -.fa-indent:before { - content: ""; -} - -.fa-video-camera:before { - content: ""; -} - -.fa-photo:before, -.fa-image:before, -.fa-picture-o:before { - content: ""; -} - -.fa-pencil:before { - content: ""; -} - -.fa-map-marker:before { - content: ""; -} - -.fa-adjust:before { - content: ""; -} - -.fa-tint:before { - content: ""; -} - -.fa-edit:before, -.fa-pencil-square-o:before { - content: ""; -} - -.fa-share-square-o:before { - content: ""; -} - -.fa-check-square-o:before { - content: ""; -} - -.fa-arrows:before { - content: ""; -} - -.fa-step-backward:before { - content: ""; -} - -.fa-fast-backward:before { - content: ""; -} - -.fa-backward:before { - content: ""; -} - -.fa-play:before { - content: ""; -} - -.fa-pause:before { - content: ""; -} - -.fa-stop:before { - content: ""; -} - -.fa-forward:before { - content: ""; -} - -.fa-fast-forward:before { - content: ""; -} - -.fa-step-forward:before { - content: ""; -} - -.fa-eject:before { - content: ""; -} - -.fa-chevron-left:before { - content: ""; -} - -.fa-chevron-right:before { - content: ""; -} - -.fa-plus-circle:before { - content: ""; -} - -.fa-minus-circle:before { - content: ""; -} - -.fa-times-circle:before { - content: ""; -} - -.fa-check-circle:before { - content: ""; -} - -.fa-question-circle:before { - content: ""; -} - -.fa-info-circle:before { - content: ""; -} - -.fa-crosshairs:before { - content: ""; -} - -.fa-times-circle-o:before { - content: ""; -} - -.fa-check-circle-o:before { - content: ""; -} - -.fa-ban:before { - content: ""; -} - -.fa-arrow-left:before { - content: ""; -} - -.fa-arrow-right:before { - content: ""; -} - -.fa-arrow-up:before { - content: ""; -} - -.fa-arrow-down:before { - content: ""; -} - -.fa-mail-forward:before, -.fa-share:before { - content: ""; -} - -.fa-expand:before { - content: ""; -} - -.fa-compress:before { - content: ""; -} - -.fa-plus:before { - content: ""; -} - -.fa-minus:before { - content: ""; -} - -.fa-asterisk:before { - content: ""; -} - -.fa-exclamation-circle:before { - content: ""; -} - -.fa-gift:before { - content: ""; -} - -.fa-leaf:before { - content: ""; -} - -.fa-fire:before { - content: ""; -} - -.fa-eye:before { - content: ""; -} - -.fa-eye-slash:before { - content: ""; -} - -.fa-warning:before, -.fa-exclamation-triangle:before { - content: ""; -} - -.fa-plane:before { - content: ""; -} - -.fa-calendar:before { - content: ""; -} - -.fa-random:before { - content: ""; -} - -.fa-comment:before { - content: ""; -} - -.fa-magnet:before { - content: ""; -} - -.fa-chevron-up:before { - content: ""; -} - -.fa-chevron-down:before { - content: ""; -} - -.fa-retweet:before { - content: ""; -} - -.fa-shopping-cart:before { - content: ""; -} - -.fa-folder:before { - content: ""; -} - -.fa-folder-open:before { - content: ""; -} - -.fa-arrows-v:before { - content: ""; -} - -.fa-arrows-h:before { - content: ""; -} - -.fa-bar-chart-o:before, -.fa-bar-chart:before { - content: ""; -} - -.fa-twitter-square:before { - content: ""; -} - -.fa-facebook-square:before { - content: ""; -} - -.fa-camera-retro:before { - content: ""; -} - -.fa-key:before { - content: ""; -} - -.fa-gears:before, -.fa-cogs:before { - content: ""; -} - -.fa-comments:before { - content: ""; -} - -.fa-thumbs-o-up:before { - content: ""; -} - -.fa-thumbs-o-down:before { - content: ""; -} - -.fa-star-half:before { - content: ""; -} - -.fa-heart-o:before { - content: ""; -} - -.fa-sign-out:before { - content: ""; -} - -.fa-linkedin-square:before { - content: ""; -} - -.fa-thumb-tack:before { - content: ""; -} - -.fa-external-link:before { - content: ""; -} - -.fa-sign-in:before { - content: ""; -} - -.fa-trophy:before { - content: ""; -} - -.fa-github-square:before { - content: ""; -} - -.fa-upload:before { - content: ""; -} - -.fa-lemon-o:before { - content: ""; -} - -.fa-phone:before { - content: ""; -} - -.fa-square-o:before { - content: ""; -} - -.fa-bookmark-o:before { - content: ""; -} - -.fa-phone-square:before { - content: ""; -} - -.fa-twitter:before { - content: ""; -} - -.fa-facebook-f:before, -.fa-facebook:before { - content: ""; -} - -.fa-github:before { - content: ""; -} - -.fa-unlock:before { - content: ""; -} - -.fa-credit-card:before { - content: ""; -} - -.fa-feed:before, -.fa-rss:before { - content: ""; -} - -.fa-hdd-o:before { - content: ""; -} - -.fa-bullhorn:before { - content: ""; -} - -.fa-bell:before { - content: ""; -} - -.fa-certificate:before { - content: ""; -} - -.fa-hand-o-right:before { - content: ""; -} - -.fa-hand-o-left:before { - content: ""; -} - -.fa-hand-o-up:before { - content: ""; -} - -.fa-hand-o-down:before { - content: ""; -} - -.fa-arrow-circle-left:before { - content: ""; -} - -.fa-arrow-circle-right:before { - content: ""; -} - -.fa-arrow-circle-up:before { - content: ""; -} - -.fa-arrow-circle-down:before { - content: ""; -} - -.fa-globe:before { - content: ""; -} - -.fa-wrench:before { - content: ""; -} - -.fa-tasks:before { - content: ""; -} - -.fa-filter:before { - content: ""; -} - -.fa-briefcase:before { - content: ""; -} - -.fa-arrows-alt:before { - content: ""; -} - -.fa-group:before, -.fa-users:before { - content: ""; -} - -.fa-chain:before, -.fa-link:before { - content: ""; -} - -.fa-cloud:before { - content: ""; -} - -.fa-flask:before { - content: ""; -} - -.fa-cut:before, -.fa-scissors:before { - content: ""; -} - -.fa-copy:before, -.fa-files-o:before { - content: ""; -} - -.fa-paperclip:before { - content: ""; -} - -.fa-save:before, -.fa-floppy-o:before { - content: ""; -} - -.fa-square:before { - content: ""; -} - -.fa-navicon:before, -.fa-reorder:before, -.fa-bars:before { - content: ""; -} - -.fa-list-ul:before { - content: ""; -} - -.fa-list-ol:before { - content: ""; -} - -.fa-strikethrough:before { - content: ""; -} - -.fa-underline:before { - content: ""; -} - -.fa-table:before { - content: ""; -} - -.fa-magic:before { - content: ""; -} - -.fa-truck:before { - content: ""; -} - -.fa-pinterest:before { - content: ""; -} - -.fa-pinterest-square:before { - content: ""; -} - -.fa-google-plus-square:before { - content: ""; -} - -.fa-google-plus:before { - content: ""; -} - -.fa-money:before { - content: ""; -} - -.fa-caret-down:before { - content: ""; -} - -.fa-caret-up:before { - content: ""; -} - -.fa-caret-left:before { - content: ""; -} - -.fa-caret-right:before { - content: ""; -} - -.fa-columns:before { - content: ""; -} - -.fa-unsorted:before, -.fa-sort:before { - content: ""; -} - -.fa-sort-down:before, -.fa-sort-desc:before { - content: ""; -} - -.fa-sort-up:before, -.fa-sort-asc:before { - content: ""; -} - -.fa-envelope:before { - content: ""; -} - -.fa-linkedin:before { - content: ""; -} - -.fa-rotate-left:before, -.fa-undo:before { - content: ""; -} - -.fa-legal:before, -.fa-gavel:before { - content: ""; -} - -.fa-dashboard:before, -.fa-tachometer:before { - content: ""; -} - -.fa-comment-o:before { - content: ""; -} - -.fa-comments-o:before { - content: ""; -} - -.fa-flash:before, -.fa-bolt:before { - content: ""; -} - -.fa-sitemap:before { - content: ""; -} - -.fa-umbrella:before { - content: ""; -} - -.fa-paste:before, -.fa-clipboard:before { - content: ""; -} - -.fa-lightbulb-o:before { - content: ""; -} - -.fa-exchange:before { - content: ""; -} - -.fa-cloud-download:before { - content: ""; -} - -.fa-cloud-upload:before { - content: ""; -} - -.fa-user-md:before { - content: ""; -} - -.fa-stethoscope:before { - content: ""; -} - -.fa-suitcase:before { - content: ""; -} - -.fa-bell-o:before { - content: ""; -} - -.fa-coffee:before { - content: ""; -} - -.fa-cutlery:before { - content: ""; -} - -.fa-file-text-o:before { - content: ""; -} - -.fa-building-o:before { - content: ""; -} - -.fa-hospital-o:before { - content: ""; -} - -.fa-ambulance:before { - content: ""; -} - -.fa-medkit:before { - content: ""; -} - -.fa-fighter-jet:before { - content: ""; -} - -.fa-beer:before { - content: ""; -} - -.fa-h-square:before { - content: ""; -} - -.fa-plus-square:before { - content: ""; -} - -.fa-angle-double-left:before { - content: ""; -} - -.fa-angle-double-right:before { - content: ""; -} - -.fa-angle-double-up:before { - content: ""; -} - -.fa-angle-double-down:before { - content: ""; -} - -.fa-angle-left:before { - content: ""; -} - -.fa-angle-right:before { - content: ""; -} - -.fa-angle-up:before { - content: ""; -} - -.fa-angle-down:before { - content: ""; -} - -.fa-desktop:before { - content: ""; -} - -.fa-laptop:before { - content: ""; -} - -.fa-tablet:before { - content: ""; -} - -.fa-mobile-phone:before, -.fa-mobile:before { - content: ""; -} - -.fa-circle-o:before { - content: ""; -} - -.fa-quote-left:before { - content: ""; -} - -.fa-quote-right:before { - content: ""; -} - -.fa-spinner:before { - content: ""; -} - -.fa-circle:before { - content: ""; -} - -.fa-mail-reply:before, -.fa-reply:before { - content: ""; -} - -.fa-github-alt:before { - content: ""; -} - -.fa-folder-o:before { - content: ""; -} - -.fa-folder-open-o:before { - content: ""; -} - -.fa-smile-o:before { - content: ""; -} - -.fa-frown-o:before { - content: ""; -} - -.fa-meh-o:before { - content: ""; -} - -.fa-gamepad:before { - content: ""; -} - -.fa-keyboard-o:before { - content: ""; -} - -.fa-flag-o:before { - content: ""; -} - -.fa-flag-checkered:before { - content: ""; -} - -.fa-terminal:before { - content: ""; -} - -.fa-code:before { - content: ""; -} - -.fa-mail-reply-all:before, -.fa-reply-all:before { - content: ""; -} - -.fa-star-half-empty:before, -.fa-star-half-full:before, -.fa-star-half-o:before { - content: ""; -} - -.fa-location-arrow:before { - content: ""; -} - -.fa-crop:before { - content: ""; -} - -.fa-code-fork:before { - content: ""; -} - -.fa-unlink:before, -.fa-chain-broken:before { - content: ""; -} - -.fa-question:before { - content: ""; -} - -.fa-info:before { - content: ""; -} - -.fa-exclamation:before { - content: ""; -} - -.fa-superscript:before { - content: ""; -} - -.fa-subscript:before { - content: ""; -} - -.fa-eraser:before { - content: ""; -} - -.fa-puzzle-piece:before { - content: ""; -} - -.fa-microphone:before { - content: ""; -} - -.fa-microphone-slash:before { - content: ""; -} - -.fa-shield:before { - content: ""; -} - -.fa-calendar-o:before { - content: ""; -} - -.fa-fire-extinguisher:before { - content: ""; -} - -.fa-rocket:before { - content: ""; -} - -.fa-maxcdn:before { - content: ""; -} - -.fa-chevron-circle-left:before { - content: ""; -} - -.fa-chevron-circle-right:before { - content: ""; -} - -.fa-chevron-circle-up:before { - content: ""; -} - -.fa-chevron-circle-down:before { - content: ""; -} - -.fa-html5:before { - content: ""; -} - -.fa-css3:before { - content: ""; -} - -.fa-anchor:before { - content: ""; -} - -.fa-unlock-alt:before { - content: ""; -} - -.fa-bullseye:before { - content: ""; -} - -.fa-ellipsis-h:before { - content: ""; -} - -.fa-ellipsis-v:before { - content: ""; -} - -.fa-rss-square:before { - content: ""; -} - -.fa-play-circle:before { - content: ""; -} - -.fa-ticket:before { - content: ""; -} - -.fa-minus-square:before { - content: ""; -} - -.fa-minus-square-o:before { - content: ""; -} - -.fa-level-up:before { - content: ""; -} - -.fa-level-down:before { - content: ""; -} - -.fa-check-square:before { - content: ""; -} - -.fa-pencil-square:before { - content: ""; -} - -.fa-external-link-square:before { - content: ""; -} - -.fa-share-square:before { - content: ""; -} - -.fa-compass:before { - content: ""; -} - -.fa-toggle-down:before, -.fa-caret-square-o-down:before { - content: ""; -} - -.fa-toggle-up:before, -.fa-caret-square-o-up:before { - content: ""; -} - -.fa-toggle-right:before, -.fa-caret-square-o-right:before { - content: ""; -} - -.fa-euro:before, -.fa-eur:before { - content: ""; -} - -.fa-gbp:before { - content: ""; -} - -.fa-dollar:before, -.fa-usd:before { - content: ""; -} - -.fa-rupee:before, -.fa-inr:before { - content: ""; -} - -.fa-cny:before, -.fa-rmb:before, -.fa-yen:before, -.fa-jpy:before { - content: ""; -} - -.fa-ruble:before, -.fa-rouble:before, -.fa-rub:before { - content: ""; -} - -.fa-won:before, -.fa-krw:before { - content: ""; -} - -.fa-bitcoin:before, -.fa-btc:before { - content: ""; -} - -.fa-file:before { - content: ""; -} - -.fa-file-text:before { - content: ""; -} - -.fa-sort-alpha-asc:before { - content: ""; -} - -.fa-sort-alpha-desc:before { - content: ""; -} - -.fa-sort-amount-asc:before { - content: ""; -} - -.fa-sort-amount-desc:before { - content: ""; -} - -.fa-sort-numeric-asc:before { - content: ""; -} - -.fa-sort-numeric-desc:before { - content: ""; -} - -.fa-thumbs-up:before { - content: ""; -} - -.fa-thumbs-down:before { - content: ""; -} - -.fa-youtube-square:before { - content: ""; -} - -.fa-youtube:before { - content: ""; -} - -.fa-xing:before { - content: ""; -} - -.fa-xing-square:before { - content: ""; -} - -.fa-youtube-play:before { - content: ""; -} - -.fa-dropbox:before { - content: ""; -} - -.fa-stack-overflow:before { - content: ""; -} - -.fa-instagram:before { - content: ""; -} - -.fa-flickr:before { - content: ""; -} - -.fa-adn:before { - content: ""; -} - -.fa-bitbucket:before { - content: ""; -} - -.fa-bitbucket-square:before { - content: ""; -} - -.fa-tumblr:before { - content: ""; -} - -.fa-tumblr-square:before { - content: ""; -} - -.fa-long-arrow-down:before { - content: ""; -} - -.fa-long-arrow-up:before { - content: ""; -} - -.fa-long-arrow-left:before { - content: ""; -} - -.fa-long-arrow-right:before { - content: ""; -} - -.fa-apple:before { - content: ""; -} - -.fa-windows:before { - content: ""; -} - -.fa-android:before { - content: ""; -} - -.fa-linux:before { - content: ""; -} - -.fa-dribbble:before { - content: ""; -} - -.fa-skype:before { - content: ""; -} - -.fa-foursquare:before { - content: ""; -} - -.fa-trello:before { - content: ""; -} - -.fa-female:before { - content: ""; -} - -.fa-male:before { - content: ""; -} - -.fa-gittip:before, -.fa-gratipay:before { - content: ""; -} - -.fa-sun-o:before { - content: ""; -} - -.fa-moon-o:before { - content: ""; -} - -.fa-archive:before { - content: ""; -} - -.fa-bug:before { - content: ""; -} - -.fa-vk:before { - content: ""; -} - -.fa-weibo:before { - content: ""; -} - -.fa-renren:before { - content: ""; -} - -.fa-pagelines:before { - content: ""; -} - -.fa-stack-exchange:before { - content: ""; -} - -.fa-arrow-circle-o-right:before { - content: ""; -} - -.fa-arrow-circle-o-left:before { - content: ""; -} - -.fa-toggle-left:before, -.fa-caret-square-o-left:before { - content: ""; -} - -.fa-dot-circle-o:before { - content: ""; -} - -.fa-wheelchair:before { - content: ""; -} - -.fa-vimeo-square:before { - content: ""; -} - -.fa-turkish-lira:before, -.fa-try:before { - content: ""; -} - -.fa-plus-square-o:before { - content: ""; -} - -.fa-space-shuttle:before { - content: ""; -} - -.fa-slack:before { - content: ""; -} - -.fa-envelope-square:before { - content: ""; -} - -.fa-wordpress:before { - content: ""; -} - -.fa-openid:before { - content: ""; -} - -.fa-institution:before, -.fa-bank:before, -.fa-university:before { - content: ""; -} - -.fa-mortar-board:before, -.fa-graduation-cap:before { - content: ""; -} - -.fa-yahoo:before { - content: ""; -} - -.fa-google:before { - content: ""; -} - -.fa-reddit:before { - content: ""; -} - -.fa-reddit-square:before { - content: ""; -} - -.fa-stumbleupon-circle:before { - content: ""; -} - -.fa-stumbleupon:before { - content: ""; -} - -.fa-delicious:before { - content: ""; -} - -.fa-digg:before { - content: ""; -} - -.fa-pied-piper-pp:before { - content: ""; -} - -.fa-pied-piper-alt:before { - content: ""; -} - -.fa-drupal:before { - content: ""; -} - -.fa-joomla:before { - content: ""; -} - -.fa-language:before { - content: ""; -} - -.fa-fax:before { - content: ""; -} - -.fa-building:before { - content: ""; -} - -.fa-child:before { - content: ""; -} - -.fa-paw:before { - content: ""; -} - -.fa-spoon:before { - content: ""; -} - -.fa-cube:before { - content: ""; -} - -.fa-cubes:before { - content: ""; -} - -.fa-behance:before { - content: ""; -} - -.fa-behance-square:before { - content: ""; -} - -.fa-steam:before { - content: ""; -} - -.fa-steam-square:before { - content: ""; -} - -.fa-recycle:before { - content: ""; -} - -.fa-automobile:before, -.fa-car:before { - content: ""; -} - -.fa-cab:before, -.fa-taxi:before { - content: ""; -} - -.fa-tree:before { - content: ""; -} - -.fa-spotify:before { - content: ""; -} - -.fa-deviantart:before { - content: ""; -} - -.fa-soundcloud:before { - content: ""; -} - -.fa-database:before { - content: ""; -} - -.fa-file-pdf-o:before { - content: ""; -} - -.fa-file-word-o:before { - content: ""; -} - -.fa-file-excel-o:before { - content: ""; -} - -.fa-file-powerpoint-o:before { - content: ""; -} - -.fa-file-photo-o:before, -.fa-file-picture-o:before, -.fa-file-image-o:before { - content: ""; -} - -.fa-file-zip-o:before, -.fa-file-archive-o:before { - content: ""; -} - -.fa-file-sound-o:before, -.fa-file-audio-o:before { - content: ""; -} - -.fa-file-movie-o:before, -.fa-file-video-o:before { - content: ""; -} - -.fa-file-code-o:before { - content: ""; -} - -.fa-vine:before { - content: ""; -} - -.fa-codepen:before { - content: ""; -} - -.fa-jsfiddle:before { - content: ""; -} - -.fa-life-bouy:before, -.fa-life-buoy:before, -.fa-life-saver:before, -.fa-support:before, -.fa-life-ring:before { - content: ""; -} - -.fa-circle-o-notch:before { - content: ""; -} - -.fa-ra:before, -.fa-resistance:before, -.fa-rebel:before { - content: ""; -} - -.fa-ge:before, -.fa-empire:before { - content: ""; -} - -.fa-git-square:before { - content: ""; -} - -.fa-git:before { - content: ""; -} - -.fa-y-combinator-square:before, -.fa-yc-square:before, -.fa-hacker-news:before { - content: ""; -} - -.fa-tencent-weibo:before { - content: ""; -} - -.fa-qq:before { - content: ""; -} - -.fa-wechat:before, -.fa-weixin:before { - content: ""; -} - -.fa-send:before, -.fa-paper-plane:before { - content: ""; -} - -.fa-send-o:before, -.fa-paper-plane-o:before { - content: ""; -} - -.fa-history:before { - content: ""; -} - -.fa-circle-thin:before { - content: ""; -} - -.fa-header:before { - content: ""; -} - -.fa-paragraph:before { - content: ""; -} - -.fa-sliders:before { - content: ""; -} - -.fa-share-alt:before { - content: ""; -} - -.fa-share-alt-square:before { - content: ""; -} - -.fa-bomb:before { - content: ""; -} - -.fa-soccer-ball-o:before, -.fa-futbol-o:before { - content: ""; -} - -.fa-tty:before { - content: ""; -} - -.fa-binoculars:before { - content: ""; -} - -.fa-plug:before { - content: ""; -} - -.fa-slideshare:before { - content: ""; -} - -.fa-twitch:before { - content: ""; -} - -.fa-yelp:before { - content: ""; -} - -.fa-newspaper-o:before { - content: ""; -} - -.fa-wifi:before { - content: ""; -} - -.fa-calculator:before { - content: ""; -} - -.fa-paypal:before { - content: ""; -} - -.fa-google-wallet:before { - content: ""; -} - -.fa-cc-visa:before { - content: ""; -} - -.fa-cc-mastercard:before { - content: ""; -} - -.fa-cc-discover:before { - content: ""; -} - -.fa-cc-amex:before { - content: ""; -} - -.fa-cc-paypal:before { - content: ""; -} - -.fa-cc-stripe:before { - content: ""; -} - -.fa-bell-slash:before { - content: ""; -} - -.fa-bell-slash-o:before { - content: ""; -} - -.fa-trash:before { - content: ""; -} - -.fa-copyright:before { - content: ""; -} - -.fa-at:before { - content: ""; -} - -.fa-eyedropper:before { - content: ""; -} - -.fa-paint-brush:before { - content: ""; -} - -.fa-birthday-cake:before { - content: ""; -} - -.fa-area-chart:before { - content: ""; -} - -.fa-pie-chart:before { - content: ""; -} - -.fa-line-chart:before { - content: ""; -} - -.fa-lastfm:before { - content: ""; -} - -.fa-lastfm-square:before { - content: ""; -} - -.fa-toggle-off:before { - content: ""; -} - -.fa-toggle-on:before { - content: ""; -} - -.fa-bicycle:before { - content: ""; -} - -.fa-bus:before { - content: ""; -} - -.fa-ioxhost:before { - content: ""; -} - -.fa-angellist:before { - content: ""; -} - -.fa-cc:before { - content: ""; -} - -.fa-shekel:before, -.fa-sheqel:before, -.fa-ils:before { - content: ""; -} - -.fa-meanpath:before { - content: ""; -} - -.fa-buysellads:before { - content: ""; -} - -.fa-connectdevelop:before { - content: ""; -} - -.fa-dashcube:before { - content: ""; -} - -.fa-forumbee:before { - content: ""; -} - -.fa-leanpub:before { - content: ""; -} - -.fa-sellsy:before { - content: ""; -} - -.fa-shirtsinbulk:before { - content: ""; -} - -.fa-simplybuilt:before { - content: ""; -} - -.fa-skyatlas:before { - content: ""; -} - -.fa-cart-plus:before { - content: ""; -} - -.fa-cart-arrow-down:before { - content: ""; -} - -.fa-diamond:before { - content: ""; -} - -.fa-ship:before { - content: ""; -} - -.fa-user-secret:before { - content: ""; -} - -.fa-motorcycle:before { - content: ""; -} - -.fa-street-view:before { - content: ""; -} - -.fa-heartbeat:before { - content: ""; -} - -.fa-venus:before { - content: ""; -} - -.fa-mars:before { - content: ""; -} - -.fa-mercury:before { - content: ""; -} - -.fa-intersex:before, -.fa-transgender:before { - content: ""; -} - -.fa-transgender-alt:before { - content: ""; -} - -.fa-venus-double:before { - content: ""; -} - -.fa-mars-double:before { - content: ""; -} - -.fa-venus-mars:before { - content: ""; -} - -.fa-mars-stroke:before { - content: ""; -} - -.fa-mars-stroke-v:before { - content: ""; -} - -.fa-mars-stroke-h:before { - content: ""; -} - -.fa-neuter:before { - content: ""; -} - -.fa-genderless:before { - content: ""; -} - -.fa-facebook-official:before { - content: ""; -} - -.fa-pinterest-p:before { - content: ""; -} - -.fa-whatsapp:before { - content: ""; -} - -.fa-server:before { - content: ""; -} - -.fa-user-plus:before { - content: ""; -} - -.fa-user-times:before { - content: ""; -} - -.fa-hotel:before, -.fa-bed:before { - content: ""; -} - -.fa-viacoin:before { - content: ""; -} - -.fa-train:before { - content: ""; -} - -.fa-subway:before { - content: ""; -} - -.fa-medium:before { - content: ""; -} - -.fa-yc:before, -.fa-y-combinator:before { - content: ""; -} - -.fa-optin-monster:before { - content: ""; -} - -.fa-opencart:before { - content: ""; -} - -.fa-expeditedssl:before { - content: ""; -} - -.fa-battery-4:before, -.fa-battery:before, -.fa-battery-full:before { - content: ""; -} - -.fa-battery-3:before, -.fa-battery-three-quarters:before { - content: ""; -} - -.fa-battery-2:before, -.fa-battery-half:before { - content: ""; -} - -.fa-battery-1:before, -.fa-battery-quarter:before { - content: ""; -} - -.fa-battery-0:before, -.fa-battery-empty:before { - content: ""; -} - -.fa-mouse-pointer:before { - content: ""; -} - -.fa-i-cursor:before { - content: ""; -} - -.fa-object-group:before { - content: ""; -} - -.fa-object-ungroup:before { - content: ""; -} - -.fa-sticky-note:before { - content: ""; -} - -.fa-sticky-note-o:before { - content: ""; -} - -.fa-cc-jcb:before { - content: ""; -} - -.fa-cc-diners-club:before { - content: ""; -} - -.fa-clone:before { - content: ""; -} - -.fa-balance-scale:before { - content: ""; -} - -.fa-hourglass-o:before { - content: ""; -} - -.fa-hourglass-1:before, -.fa-hourglass-start:before { - content: ""; -} - -.fa-hourglass-2:before, -.fa-hourglass-half:before { - content: ""; -} - -.fa-hourglass-3:before, -.fa-hourglass-end:before { - content: ""; -} - -.fa-hourglass:before { - content: ""; -} - -.fa-hand-grab-o:before, -.fa-hand-rock-o:before { - content: ""; -} - -.fa-hand-stop-o:before, -.fa-hand-paper-o:before { - content: ""; -} - -.fa-hand-scissors-o:before { - content: ""; -} - -.fa-hand-lizard-o:before { - content: ""; -} - -.fa-hand-spock-o:before { - content: ""; -} - -.fa-hand-pointer-o:before { - content: ""; -} - -.fa-hand-peace-o:before { - content: ""; -} - -.fa-trademark:before { - content: ""; -} - -.fa-registered:before { - content: ""; -} - -.fa-creative-commons:before { - content: ""; -} - -.fa-gg:before { - content: ""; -} - -.fa-gg-circle:before { - content: ""; -} - -.fa-tripadvisor:before { - content: ""; -} - -.fa-odnoklassniki:before { - content: ""; -} - -.fa-odnoklassniki-square:before { - content: ""; -} - -.fa-get-pocket:before { - content: ""; -} - -.fa-wikipedia-w:before { - content: ""; -} - -.fa-safari:before { - content: ""; -} - -.fa-chrome:before { - content: ""; -} - -.fa-firefox:before { - content: ""; -} - -.fa-opera:before { - content: ""; -} - -.fa-internet-explorer:before { - content: ""; -} - -.fa-tv:before, -.fa-television:before { - content: ""; -} - -.fa-contao:before { - content: ""; -} - -.fa-500px:before { - content: ""; -} - -.fa-amazon:before { - content: ""; -} - -.fa-calendar-plus-o:before { - content: ""; -} - -.fa-calendar-minus-o:before { - content: ""; -} - -.fa-calendar-times-o:before { - content: ""; -} - -.fa-calendar-check-o:before { - content: ""; -} - -.fa-industry:before { - content: ""; -} - -.fa-map-pin:before { - content: ""; -} - -.fa-map-signs:before { - content: ""; -} - -.fa-map-o:before { - content: ""; -} - -.fa-map:before { - content: ""; -} - -.fa-commenting:before { - content: ""; -} - -.fa-commenting-o:before { - content: ""; -} - -.fa-houzz:before { - content: ""; -} - -.fa-vimeo:before { - content: ""; -} - -.fa-black-tie:before { - content: ""; -} - -.fa-fonticons:before { - content: ""; -} - -.fa-reddit-alien:before { - content: ""; -} - -.fa-edge:before { - content: ""; -} - -.fa-credit-card-alt:before { - content: ""; -} - -.fa-codiepie:before { - content: ""; -} - -.fa-modx:before { - content: ""; -} - -.fa-fort-awesome:before { - content: ""; -} - -.fa-usb:before { - content: ""; -} - -.fa-product-hunt:before { - content: ""; -} - -.fa-mixcloud:before { - content: ""; -} - -.fa-scribd:before { - content: ""; -} - -.fa-pause-circle:before { - content: ""; -} - -.fa-pause-circle-o:before { - content: ""; -} - -.fa-stop-circle:before { - content: ""; -} - -.fa-stop-circle-o:before { - content: ""; -} - -.fa-shopping-bag:before { - content: ""; -} - -.fa-shopping-basket:before { - content: ""; -} - -.fa-hashtag:before { - content: ""; -} - -.fa-bluetooth:before { - content: ""; -} - -.fa-bluetooth-b:before { - content: ""; -} - -.fa-percent:before { - content: ""; -} - -.fa-gitlab:before { - content: ""; -} - -.fa-wpbeginner:before { - content: ""; -} - -.fa-wpforms:before { - content: ""; -} - -.fa-envira:before { - content: ""; -} - -.fa-universal-access:before { - content: ""; -} - -.fa-wheelchair-alt:before { - content: ""; -} - -.fa-question-circle-o:before { - content: ""; -} - -.fa-blind:before { - content: ""; -} - -.fa-audio-description:before { - content: ""; -} - -.fa-volume-control-phone:before { - content: ""; -} - -.fa-braille:before { - content: ""; -} - -.fa-assistive-listening-systems:before { - content: ""; -} - -.fa-asl-interpreting:before, -.fa-american-sign-language-interpreting:before { - content: ""; -} - -.fa-deafness:before, -.fa-hard-of-hearing:before, -.fa-deaf:before { - content: ""; -} - -.fa-glide:before { - content: ""; -} - -.fa-glide-g:before { - content: ""; -} - -.fa-signing:before, -.fa-sign-language:before { - content: ""; -} - -.fa-low-vision:before { - content: ""; -} - -.fa-viadeo:before { - content: ""; -} - -.fa-viadeo-square:before { - content: ""; -} - -.fa-snapchat:before { - content: ""; -} - -.fa-snapchat-ghost:before { - content: ""; -} - -.fa-snapchat-square:before { - content: ""; -} - -.fa-pied-piper:before { - content: ""; -} - -.fa-first-order:before { - content: ""; -} - -.fa-yoast:before { - content: ""; -} - -.fa-themeisle:before { - content: ""; -} - -.fa-google-plus-circle:before, -.fa-google-plus-official:before { - content: ""; -} - -.fa-fa:before, -.fa-font-awesome:before { - content: ""; -} - -.fa-handshake-o:before { - content: ""; -} - -.fa-envelope-open:before { - content: ""; -} - -.fa-envelope-open-o:before { - content: ""; -} - -.fa-linode:before { - content: ""; -} - -.fa-address-book:before { - content: ""; -} - -.fa-address-book-o:before { - content: ""; -} - -.fa-vcard:before, -.fa-address-card:before { - content: ""; -} - -.fa-vcard-o:before, -.fa-address-card-o:before { - content: ""; -} - -.fa-user-circle:before { - content: ""; -} - -.fa-user-circle-o:before { - content: ""; -} - -.fa-user-o:before { - content: ""; -} - -.fa-id-badge:before { - content: ""; -} - -.fa-drivers-license:before, -.fa-id-card:before { - content: ""; -} - -.fa-drivers-license-o:before, -.fa-id-card-o:before { - content: ""; -} - -.fa-quora:before { - content: ""; -} - -.fa-free-code-camp:before { - content: ""; -} - -.fa-telegram:before { - content: ""; -} - -.fa-thermometer-4:before, -.fa-thermometer:before, -.fa-thermometer-full:before { - content: ""; -} - -.fa-thermometer-3:before, -.fa-thermometer-three-quarters:before { - content: ""; -} - -.fa-thermometer-2:before, -.fa-thermometer-half:before { - content: ""; -} - -.fa-thermometer-1:before, -.fa-thermometer-quarter:before { - content: ""; -} - -.fa-thermometer-0:before, -.fa-thermometer-empty:before { - content: ""; -} - -.fa-shower:before { - content: ""; -} - -.fa-bathtub:before, -.fa-s15:before, -.fa-bath:before { - content: ""; -} - -.fa-podcast:before { - content: ""; -} - -.fa-window-maximize:before { - content: ""; -} - -.fa-window-minimize:before { - content: ""; -} - -.fa-window-restore:before { - content: ""; -} - -.fa-times-rectangle:before, -.fa-window-close:before { - content: ""; -} - -.fa-times-rectangle-o:before, -.fa-window-close-o:before { - content: ""; -} - -.fa-bandcamp:before { - content: ""; -} - -.fa-grav:before { - content: ""; -} - -.fa-etsy:before { - content: ""; -} - -.fa-imdb:before { - content: ""; -} - -.fa-ravelry:before { - content: ""; -} - -.fa-eercast:before { - content: ""; -} - -.fa-microchip:before { - content: ""; -} - -.fa-snowflake-o:before { - content: ""; -} - -.fa-superpowers:before { - content: ""; -} - -.fa-wpexplorer:before { - content: ""; -} - -.fa-meetup:before { - content: ""; -} - -.sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; -} - -.sr-only-focusable:active, .sr-only-focusable:focus { - position: static; - width: auto; - height: auto; - margin: 0; - overflow: visible; - clip: auto; -} - -/* MaterialDesignIcons.com */ -@font-face { - font-family: "Material Design Icons"; - src: url("../fonts/materialdesignicons-webfont.eot?v=2.0.46"); - src: url("../fonts/materialdesignicons-webfont.eot?#iefix&v=2.0.46") format("embedded-opentype"), url("../fonts/materialdesignicons-webfont.woff2?v=2.0.46") format("woff2"), url("../fonts/materialdesignicons-webfont.woff?v=2.0.46") format("woff"), url("../fonts/materialdesignicons-webfont.ttf?v=2.0.46") format("truetype"), url("../fonts/materialdesignicons-webfont.svg?v=2.0.46#materialdesigniconsregular") format("svg"); - font-weight: normal; - font-style: normal; -} - -.mdi:before, -.mdi-set { - display: inline-block; - font: normal normal normal 24px/1 "Material Design Icons"; - font-size: inherit; - text-rendering: auto; - line-height: inherit; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -.mdi-access-point:before { - content: "\F002"; -} - -.mdi-access-point-network:before { - content: "\F003"; -} - -.mdi-account:before { - content: "\F004"; -} - -.mdi-account-alert:before { - content: "\F005"; -} - -.mdi-account-box:before { - content: "\F006"; -} - -.mdi-account-box-outline:before { - content: "\F007"; -} - -.mdi-account-card-details:before { - content: "\F5D2"; -} - -.mdi-account-check:before { - content: "\F008"; -} - -.mdi-account-circle:before { - content: "\F009"; -} - -.mdi-account-convert:before { - content: "\F00A"; -} - -.mdi-account-edit:before { - content: "\F6BB"; -} - -.mdi-account-key:before { - content: "\F00B"; -} - -.mdi-account-location:before { - content: "\F00C"; -} - -.mdi-account-minus:before { - content: "\F00D"; -} - -.mdi-account-multiple:before { - content: "\F00E"; -} - -.mdi-account-multiple-minus:before { - content: "\F5D3"; -} - -.mdi-account-multiple-outline:before { - content: "\F00F"; -} - -.mdi-account-multiple-plus:before { - content: "\F010"; -} - -.mdi-account-network:before { - content: "\F011"; -} - -.mdi-account-off:before { - content: "\F012"; -} - -.mdi-account-outline:before { - content: "\F013"; -} - -.mdi-account-plus:before { - content: "\F014"; -} - -.mdi-account-remove:before { - content: "\F015"; -} - -.mdi-account-search:before { - content: "\F016"; -} - -.mdi-account-settings:before { - content: "\F630"; -} - -.mdi-account-settings-variant:before { - content: "\F631"; -} - -.mdi-account-star:before { - content: "\F017"; -} - -.mdi-account-switch:before { - content: "\F019"; -} - -.mdi-adjust:before { - content: "\F01A"; -} - -.mdi-air-conditioner:before { - content: "\F01B"; -} - -.mdi-airballoon:before { - content: "\F01C"; -} - -.mdi-airplane:before { - content: "\F01D"; -} - -.mdi-airplane-landing:before { - content: "\F5D4"; -} - -.mdi-airplane-off:before { - content: "\F01E"; -} - -.mdi-airplane-takeoff:before { - content: "\F5D5"; -} - -.mdi-airplay:before { - content: "\F01F"; -} - -.mdi-alarm:before { - content: "\F020"; -} - -.mdi-alarm-bell:before { - content: "\F78D"; -} - -.mdi-alarm-check:before { - content: "\F021"; -} - -.mdi-alarm-light:before { - content: "\F78E"; -} - -.mdi-alarm-multiple:before { - content: "\F022"; -} - -.mdi-alarm-off:before { - content: "\F023"; -} - -.mdi-alarm-plus:before { - content: "\F024"; -} - -.mdi-alarm-snooze:before { - content: "\F68D"; -} - -.mdi-album:before { - content: "\F025"; -} - -.mdi-alert:before { - content: "\F026"; -} - -.mdi-alert-box:before { - content: "\F027"; -} - -.mdi-alert-circle:before { - content: "\F028"; -} - -.mdi-alert-circle-outline:before { - content: "\F5D6"; -} - -.mdi-alert-decagram:before { - content: "\F6BC"; -} - -.mdi-alert-octagon:before { - content: "\F029"; -} - -.mdi-alert-octagram:before { - content: "\F766"; -} - -.mdi-alert-outline:before { - content: "\F02A"; -} - -.mdi-all-inclusive:before { - content: "\F6BD"; -} - -.mdi-alpha:before { - content: "\F02B"; -} - -.mdi-alphabetical:before { - content: "\F02C"; -} - -.mdi-altimeter:before { - content: "\F5D7"; -} - -.mdi-amazon:before { - content: "\F02D"; -} - -.mdi-amazon-clouddrive:before { - content: "\F02E"; -} - -.mdi-ambulance:before { - content: "\F02F"; -} - -.mdi-amplifier:before { - content: "\F030"; -} - -.mdi-anchor:before { - content: "\F031"; -} - -.mdi-android:before { - content: "\F032"; -} - -.mdi-android-debug-bridge:before { - content: "\F033"; -} - -.mdi-android-head:before { - content: "\F78F"; -} - -.mdi-android-studio:before { - content: "\F034"; -} - -.mdi-angular:before { - content: "\F6B1"; -} - -.mdi-angularjs:before { - content: "\F6BE"; -} - -.mdi-animation:before { - content: "\F5D8"; -} - -.mdi-apple:before { - content: "\F035"; -} - -.mdi-apple-finder:before { - content: "\F036"; -} - -.mdi-apple-ios:before { - content: "\F037"; -} - -.mdi-apple-keyboard-caps:before { - content: "\F632"; -} - -.mdi-apple-keyboard-command:before { - content: "\F633"; -} - -.mdi-apple-keyboard-control:before { - content: "\F634"; -} - -.mdi-apple-keyboard-option:before { - content: "\F635"; -} - -.mdi-apple-keyboard-shift:before { - content: "\F636"; -} - -.mdi-apple-mobileme:before { - content: "\F038"; -} - -.mdi-apple-safari:before { - content: "\F039"; -} - -.mdi-application:before { - content: "\F614"; -} - -.mdi-approval:before { - content: "\F790"; -} - -.mdi-apps:before { - content: "\F03B"; -} - -.mdi-archive:before { - content: "\F03C"; -} - -.mdi-arrange-bring-forward:before { - content: "\F03D"; -} - -.mdi-arrange-bring-to-front:before { - content: "\F03E"; -} - -.mdi-arrange-send-backward:before { - content: "\F03F"; -} - -.mdi-arrange-send-to-back:before { - content: "\F040"; -} - -.mdi-arrow-all:before { - content: "\F041"; -} - -.mdi-arrow-bottom-left:before { - content: "\F042"; -} - -.mdi-arrow-bottom-right:before { - content: "\F043"; -} - -.mdi-arrow-collapse:before { - content: "\F615"; -} - -.mdi-arrow-collapse-all:before { - content: "\F044"; -} - -.mdi-arrow-collapse-down:before { - content: "\F791"; -} - -.mdi-arrow-collapse-left:before { - content: "\F792"; -} - -.mdi-arrow-collapse-right:before { - content: "\F793"; -} - -.mdi-arrow-collapse-up:before { - content: "\F794"; -} - -.mdi-arrow-down:before { - content: "\F045"; -} - -.mdi-arrow-down-bold:before { - content: "\F72D"; -} - -.mdi-arrow-down-bold-box:before { - content: "\F72E"; -} - -.mdi-arrow-down-bold-box-outline:before { - content: "\F72F"; -} - -.mdi-arrow-down-bold-circle:before { - content: "\F047"; -} - -.mdi-arrow-down-bold-circle-outline:before { - content: "\F048"; -} - -.mdi-arrow-down-bold-hexagon-outline:before { - content: "\F049"; -} - -.mdi-arrow-down-box:before { - content: "\F6BF"; -} - -.mdi-arrow-down-drop-circle:before { - content: "\F04A"; -} - -.mdi-arrow-down-drop-circle-outline:before { - content: "\F04B"; -} - -.mdi-arrow-down-thick:before { - content: "\F046"; -} - -.mdi-arrow-expand:before { - content: "\F616"; -} - -.mdi-arrow-expand-all:before { - content: "\F04C"; -} - -.mdi-arrow-expand-down:before { - content: "\F795"; -} - -.mdi-arrow-expand-left:before { - content: "\F796"; -} - -.mdi-arrow-expand-right:before { - content: "\F797"; -} - -.mdi-arrow-expand-up:before { - content: "\F798"; -} - -.mdi-arrow-left:before { - content: "\F04D"; -} - -.mdi-arrow-left-bold:before { - content: "\F730"; -} - -.mdi-arrow-left-bold-box:before { - content: "\F731"; -} - -.mdi-arrow-left-bold-box-outline:before { - content: "\F732"; -} - -.mdi-arrow-left-bold-circle:before { - content: "\F04F"; -} - -.mdi-arrow-left-bold-circle-outline:before { - content: "\F050"; -} - -.mdi-arrow-left-bold-hexagon-outline:before { - content: "\F051"; -} - -.mdi-arrow-left-box:before { - content: "\F6C0"; -} - -.mdi-arrow-left-drop-circle:before { - content: "\F052"; -} - -.mdi-arrow-left-drop-circle-outline:before { - content: "\F053"; -} - -.mdi-arrow-left-thick:before { - content: "\F04E"; -} - -.mdi-arrow-right:before { - content: "\F054"; -} - -.mdi-arrow-right-bold:before { - content: "\F733"; -} - -.mdi-arrow-right-bold-box:before { - content: "\F734"; -} - -.mdi-arrow-right-bold-box-outline:before { - content: "\F735"; -} - -.mdi-arrow-right-bold-circle:before { - content: "\F056"; -} - -.mdi-arrow-right-bold-circle-outline:before { - content: "\F057"; -} - -.mdi-arrow-right-bold-hexagon-outline:before { - content: "\F058"; -} - -.mdi-arrow-right-box:before { - content: "\F6C1"; -} - -.mdi-arrow-right-drop-circle:before { - content: "\F059"; -} - -.mdi-arrow-right-drop-circle-outline:before { - content: "\F05A"; -} - -.mdi-arrow-right-thick:before { - content: "\F055"; -} - -.mdi-arrow-top-left:before { - content: "\F05B"; -} - -.mdi-arrow-top-right:before { - content: "\F05C"; -} - -.mdi-arrow-up:before { - content: "\F05D"; -} - -.mdi-arrow-up-bold:before { - content: "\F736"; -} - -.mdi-arrow-up-bold-box:before { - content: "\F737"; -} - -.mdi-arrow-up-bold-box-outline:before { - content: "\F738"; -} - -.mdi-arrow-up-bold-circle:before { - content: "\F05F"; -} - -.mdi-arrow-up-bold-circle-outline:before { - content: "\F060"; -} - -.mdi-arrow-up-bold-hexagon-outline:before { - content: "\F061"; -} - -.mdi-arrow-up-box:before { - content: "\F6C2"; -} - -.mdi-arrow-up-drop-circle:before { - content: "\F062"; -} - -.mdi-arrow-up-drop-circle-outline:before { - content: "\F063"; -} - -.mdi-arrow-up-thick:before { - content: "\F05E"; -} - -.mdi-assistant:before { - content: "\F064"; -} - -.mdi-asterisk:before { - content: "\F6C3"; -} - -.mdi-at:before { - content: "\F065"; -} - -.mdi-atom:before { - content: "\F767"; -} - -.mdi-attachment:before { - content: "\F066"; -} - -.mdi-audiobook:before { - content: "\F067"; -} - -.mdi-auto-fix:before { - content: "\F068"; -} - -.mdi-auto-upload:before { - content: "\F069"; -} - -.mdi-autorenew:before { - content: "\F06A"; -} - -.mdi-av-timer:before { - content: "\F06B"; -} - -.mdi-baby:before { - content: "\F06C"; -} - -.mdi-baby-buggy:before { - content: "\F68E"; -} - -.mdi-backburger:before { - content: "\F06D"; -} - -.mdi-backspace:before { - content: "\F06E"; -} - -.mdi-backup-restore:before { - content: "\F06F"; -} - -.mdi-bandcamp:before { - content: "\F674"; -} - -.mdi-bank:before { - content: "\F070"; -} - -.mdi-barcode:before { - content: "\F071"; -} - -.mdi-barcode-scan:before { - content: "\F072"; -} - -.mdi-barley:before { - content: "\F073"; -} - -.mdi-barrel:before { - content: "\F074"; -} - -.mdi-basecamp:before { - content: "\F075"; -} - -.mdi-basket:before { - content: "\F076"; -} - -.mdi-basket-fill:before { - content: "\F077"; -} - -.mdi-basket-unfill:before { - content: "\F078"; -} - -.mdi-battery:before { - content: "\F079"; -} - -.mdi-battery-10:before { - content: "\F07A"; -} - -.mdi-battery-20:before { - content: "\F07B"; -} - -.mdi-battery-30:before { - content: "\F07C"; -} - -.mdi-battery-40:before { - content: "\F07D"; -} - -.mdi-battery-50:before { - content: "\F07E"; -} - -.mdi-battery-60:before { - content: "\F07F"; -} - -.mdi-battery-70:before { - content: "\F080"; -} - -.mdi-battery-80:before { - content: "\F081"; -} - -.mdi-battery-90:before { - content: "\F082"; -} - -.mdi-battery-alert:before { - content: "\F083"; -} - -.mdi-battery-charging:before { - content: "\F084"; -} - -.mdi-battery-charging-100:before { - content: "\F085"; -} - -.mdi-battery-charging-20:before { - content: "\F086"; -} - -.mdi-battery-charging-30:before { - content: "\F087"; -} - -.mdi-battery-charging-40:before { - content: "\F088"; -} - -.mdi-battery-charging-60:before { - content: "\F089"; -} - -.mdi-battery-charging-80:before { - content: "\F08A"; -} - -.mdi-battery-charging-90:before { - content: "\F08B"; -} - -.mdi-battery-minus:before { - content: "\F08C"; -} - -.mdi-battery-negative:before { - content: "\F08D"; -} - -.mdi-battery-outline:before { - content: "\F08E"; -} - -.mdi-battery-plus:before { - content: "\F08F"; -} - -.mdi-battery-positive:before { - content: "\F090"; -} - -.mdi-battery-unknown:before { - content: "\F091"; -} - -.mdi-beach:before { - content: "\F092"; -} - -.mdi-beaker:before { - content: "\F68F"; -} - -.mdi-beats:before { - content: "\F097"; -} - -.mdi-beer:before { - content: "\F098"; -} - -.mdi-behance:before { - content: "\F099"; -} - -.mdi-bell:before { - content: "\F09A"; -} - -.mdi-bell-off:before { - content: "\F09B"; -} - -.mdi-bell-outline:before { - content: "\F09C"; -} - -.mdi-bell-plus:before { - content: "\F09D"; -} - -.mdi-bell-ring:before { - content: "\F09E"; -} - -.mdi-bell-ring-outline:before { - content: "\F09F"; -} - -.mdi-bell-sleep:before { - content: "\F0A0"; -} - -.mdi-beta:before { - content: "\F0A1"; -} - -.mdi-bible:before { - content: "\F0A2"; -} - -.mdi-bike:before { - content: "\F0A3"; -} - -.mdi-bing:before { - content: "\F0A4"; -} - -.mdi-binoculars:before { - content: "\F0A5"; -} - -.mdi-bio:before { - content: "\F0A6"; -} - -.mdi-biohazard:before { - content: "\F0A7"; -} - -.mdi-bitbucket:before { - content: "\F0A8"; -} - -.mdi-black-mesa:before { - content: "\F0A9"; -} - -.mdi-blackberry:before { - content: "\F0AA"; -} - -.mdi-blender:before { - content: "\F0AB"; -} - -.mdi-blinds:before { - content: "\F0AC"; -} - -.mdi-block-helper:before { - content: "\F0AD"; -} - -.mdi-blogger:before { - content: "\F0AE"; -} - -.mdi-bluetooth:before { - content: "\F0AF"; -} - -.mdi-bluetooth-audio:before { - content: "\F0B0"; -} - -.mdi-bluetooth-connect:before { - content: "\F0B1"; -} - -.mdi-bluetooth-off:before { - content: "\F0B2"; -} - -.mdi-bluetooth-settings:before { - content: "\F0B3"; -} - -.mdi-bluetooth-transfer:before { - content: "\F0B4"; -} - -.mdi-blur:before { - content: "\F0B5"; -} - -.mdi-blur-linear:before { - content: "\F0B6"; -} - -.mdi-blur-off:before { - content: "\F0B7"; -} - -.mdi-blur-radial:before { - content: "\F0B8"; -} - -.mdi-bomb:before { - content: "\F690"; -} - -.mdi-bomb-off:before { - content: "\F6C4"; -} - -.mdi-bone:before { - content: "\F0B9"; -} - -.mdi-book:before { - content: "\F0BA"; -} - -.mdi-book-minus:before { - content: "\F5D9"; -} - -.mdi-book-multiple:before { - content: "\F0BB"; -} - -.mdi-book-multiple-variant:before { - content: "\F0BC"; -} - -.mdi-book-open:before { - content: "\F0BD"; -} - -.mdi-book-open-page-variant:before { - content: "\F5DA"; -} - -.mdi-book-open-variant:before { - content: "\F0BE"; -} - -.mdi-book-plus:before { - content: "\F5DB"; -} - -.mdi-book-secure:before { - content: "\F799"; -} - -.mdi-book-unsecure:before { - content: "\F79A"; -} - -.mdi-book-variant:before { - content: "\F0BF"; -} - -.mdi-bookmark:before { - content: "\F0C0"; -} - -.mdi-bookmark-check:before { - content: "\F0C1"; -} - -.mdi-bookmark-music:before { - content: "\F0C2"; -} - -.mdi-bookmark-outline:before { - content: "\F0C3"; -} - -.mdi-bookmark-plus:before { - content: "\F0C5"; -} - -.mdi-bookmark-plus-outline:before { - content: "\F0C4"; -} - -.mdi-bookmark-remove:before { - content: "\F0C6"; -} - -.mdi-boombox:before { - content: "\F5DC"; -} - -.mdi-bootstrap:before { - content: "\F6C5"; -} - -.mdi-border-all:before { - content: "\F0C7"; -} - -.mdi-border-bottom:before { - content: "\F0C8"; -} - -.mdi-border-color:before { - content: "\F0C9"; -} - -.mdi-border-horizontal:before { - content: "\F0CA"; -} - -.mdi-border-inside:before { - content: "\F0CB"; -} - -.mdi-border-left:before { - content: "\F0CC"; -} - -.mdi-border-none:before { - content: "\F0CD"; -} - -.mdi-border-outside:before { - content: "\F0CE"; -} - -.mdi-border-right:before { - content: "\F0CF"; -} - -.mdi-border-style:before { - content: "\F0D0"; -} - -.mdi-border-top:before { - content: "\F0D1"; -} - -.mdi-border-vertical:before { - content: "\F0D2"; -} - -.mdi-bow-tie:before { - content: "\F677"; -} - -.mdi-bowl:before { - content: "\F617"; -} - -.mdi-bowling:before { - content: "\F0D3"; -} - -.mdi-box:before { - content: "\F0D4"; -} - -.mdi-box-cutter:before { - content: "\F0D5"; -} - -.mdi-box-shadow:before { - content: "\F637"; -} - -.mdi-bridge:before { - content: "\F618"; -} - -.mdi-briefcase:before { - content: "\F0D6"; -} - -.mdi-briefcase-check:before { - content: "\F0D7"; -} - -.mdi-briefcase-download:before { - content: "\F0D8"; -} - -.mdi-briefcase-upload:before { - content: "\F0D9"; -} - -.mdi-brightness-1:before { - content: "\F0DA"; -} - -.mdi-brightness-2:before { - content: "\F0DB"; -} - -.mdi-brightness-3:before { - content: "\F0DC"; -} - -.mdi-brightness-4:before { - content: "\F0DD"; -} - -.mdi-brightness-5:before { - content: "\F0DE"; -} - -.mdi-brightness-6:before { - content: "\F0DF"; -} - -.mdi-brightness-7:before { - content: "\F0E0"; -} - -.mdi-brightness-auto:before { - content: "\F0E1"; -} - -.mdi-broom:before { - content: "\F0E2"; -} - -.mdi-brush:before { - content: "\F0E3"; -} - -.mdi-buffer:before { - content: "\F619"; -} - -.mdi-bug:before { - content: "\F0E4"; -} - -.mdi-bulletin-board:before { - content: "\F0E5"; -} - -.mdi-bullhorn:before { - content: "\F0E6"; -} - -.mdi-bullseye:before { - content: "\F5DD"; -} - -.mdi-burst-mode:before { - content: "\F5DE"; -} - -.mdi-bus:before { - content: "\F0E7"; -} - -.mdi-bus-articulated-end:before { - content: "\F79B"; -} - -.mdi-bus-articulated-front:before { - content: "\F79C"; -} - -.mdi-bus-double-decker:before { - content: "\F79D"; -} - -.mdi-bus-school:before { - content: "\F79E"; -} - -.mdi-bus-side:before { - content: "\F79F"; -} - -.mdi-cached:before { - content: "\F0E8"; -} - -.mdi-cake:before { - content: "\F0E9"; -} - -.mdi-cake-layered:before { - content: "\F0EA"; -} - -.mdi-cake-variant:before { - content: "\F0EB"; -} - -.mdi-calculator:before { - content: "\F0EC"; -} - -.mdi-calendar:before { - content: "\F0ED"; -} - -.mdi-calendar-blank:before { - content: "\F0EE"; -} - -.mdi-calendar-check:before { - content: "\F0EF"; -} - -.mdi-calendar-clock:before { - content: "\F0F0"; -} - -.mdi-calendar-multiple:before { - content: "\F0F1"; -} - -.mdi-calendar-multiple-check:before { - content: "\F0F2"; -} - -.mdi-calendar-plus:before { - content: "\F0F3"; -} - -.mdi-calendar-question:before { - content: "\F691"; -} - -.mdi-calendar-range:before { - content: "\F678"; -} - -.mdi-calendar-remove:before { - content: "\F0F4"; -} - -.mdi-calendar-text:before { - content: "\F0F5"; -} - -.mdi-calendar-today:before { - content: "\F0F6"; -} - -.mdi-call-made:before { - content: "\F0F7"; -} - -.mdi-call-merge:before { - content: "\F0F8"; -} - -.mdi-call-missed:before { - content: "\F0F9"; -} - -.mdi-call-received:before { - content: "\F0FA"; -} - -.mdi-call-split:before { - content: "\F0FB"; -} - -.mdi-camcorder:before { - content: "\F0FC"; -} - -.mdi-camcorder-box:before { - content: "\F0FD"; -} - -.mdi-camcorder-box-off:before { - content: "\F0FE"; -} - -.mdi-camcorder-off:before { - content: "\F0FF"; -} - -.mdi-camera:before { - content: "\F100"; -} - -.mdi-camera-burst:before { - content: "\F692"; -} - -.mdi-camera-enhance:before { - content: "\F101"; -} - -.mdi-camera-front:before { - content: "\F102"; -} - -.mdi-camera-front-variant:before { - content: "\F103"; -} - -.mdi-camera-gopro:before { - content: "\F7A0"; -} - -.mdi-camera-iris:before { - content: "\F104"; -} - -.mdi-camera-metering-center:before { - content: "\F7A1"; -} - -.mdi-camera-metering-matrix:before { - content: "\F7A2"; -} - -.mdi-camera-metering-partial:before { - content: "\F7A3"; -} - -.mdi-camera-metering-spot:before { - content: "\F7A4"; -} - -.mdi-camera-off:before { - content: "\F5DF"; -} - -.mdi-camera-party-mode:before { - content: "\F105"; -} - -.mdi-camera-rear:before { - content: "\F106"; -} - -.mdi-camera-rear-variant:before { - content: "\F107"; -} - -.mdi-camera-switch:before { - content: "\F108"; -} - -.mdi-camera-timer:before { - content: "\F109"; -} - -.mdi-cancel:before { - content: "\F739"; -} - -.mdi-candle:before { - content: "\F5E2"; -} - -.mdi-candycane:before { - content: "\F10A"; -} - -.mdi-cannabis:before { - content: "\F7A5"; -} - -.mdi-car:before { - content: "\F10B"; -} - -.mdi-car-battery:before { - content: "\F10C"; -} - -.mdi-car-connected:before { - content: "\F10D"; -} - -.mdi-car-convertable:before { - content: "\F7A6"; -} - -.mdi-car-estate:before { - content: "\F7A7"; -} - -.mdi-car-hatchback:before { - content: "\F7A8"; -} - -.mdi-car-pickup:before { - content: "\F7A9"; -} - -.mdi-car-side:before { - content: "\F7AA"; -} - -.mdi-car-sports:before { - content: "\F7AB"; -} - -.mdi-car-wash:before { - content: "\F10E"; -} - -.mdi-caravan:before { - content: "\F7AC"; -} - -.mdi-cards:before { - content: "\F638"; -} - -.mdi-cards-outline:before { - content: "\F639"; -} - -.mdi-cards-playing-outline:before { - content: "\F63A"; -} - -.mdi-cards-variant:before { - content: "\F6C6"; -} - -.mdi-carrot:before { - content: "\F10F"; -} - -.mdi-cart:before { - content: "\F110"; -} - -.mdi-cart-off:before { - content: "\F66B"; -} - -.mdi-cart-outline:before { - content: "\F111"; -} - -.mdi-cart-plus:before { - content: "\F112"; -} - -.mdi-case-sensitive-alt:before { - content: "\F113"; -} - -.mdi-cash:before { - content: "\F114"; -} - -.mdi-cash-100:before { - content: "\F115"; -} - -.mdi-cash-multiple:before { - content: "\F116"; -} - -.mdi-cash-usd:before { - content: "\F117"; -} - -.mdi-cast:before { - content: "\F118"; -} - -.mdi-cast-connected:before { - content: "\F119"; -} - -.mdi-cast-off:before { - content: "\F789"; -} - -.mdi-castle:before { - content: "\F11A"; -} - -.mdi-cat:before { - content: "\F11B"; -} - -.mdi-cctv:before { - content: "\F7AD"; -} - -.mdi-ceiling-light:before { - content: "\F768"; -} - -.mdi-cellphone:before { - content: "\F11C"; -} - -.mdi-cellphone-android:before { - content: "\F11D"; -} - -.mdi-cellphone-basic:before { - content: "\F11E"; -} - -.mdi-cellphone-dock:before { - content: "\F11F"; -} - -.mdi-cellphone-iphone:before { - content: "\F120"; -} - -.mdi-cellphone-link:before { - content: "\F121"; -} - -.mdi-cellphone-link-off:before { - content: "\F122"; -} - -.mdi-cellphone-settings:before { - content: "\F123"; -} - -.mdi-certificate:before { - content: "\F124"; -} - -.mdi-chair-school:before { - content: "\F125"; -} - -.mdi-chart-arc:before { - content: "\F126"; -} - -.mdi-chart-areaspline:before { - content: "\F127"; -} - -.mdi-chart-bar:before { - content: "\F128"; -} - -.mdi-chart-bar-stacked:before { - content: "\F769"; -} - -.mdi-chart-bubble:before { - content: "\F5E3"; -} - -.mdi-chart-donut:before { - content: "\F7AE"; -} - -.mdi-chart-donut-variant:before { - content: "\F7AF"; -} - -.mdi-chart-gantt:before { - content: "\F66C"; -} - -.mdi-chart-histogram:before { - content: "\F129"; -} - -.mdi-chart-line:before { - content: "\F12A"; -} - -.mdi-chart-line-stacked:before { - content: "\F76A"; -} - -.mdi-chart-line-variant:before { - content: "\F7B0"; -} - -.mdi-chart-pie:before { - content: "\F12B"; -} - -.mdi-chart-scatterplot-hexbin:before { - content: "\F66D"; -} - -.mdi-chart-timeline:before { - content: "\F66E"; -} - -.mdi-check:before { - content: "\F12C"; -} - -.mdi-check-all:before { - content: "\F12D"; -} - -.mdi-check-circle:before { - content: "\F5E0"; -} - -.mdi-check-circle-outline:before { - content: "\F5E1"; -} - -.mdi-checkbox-blank:before { - content: "\F12E"; -} - -.mdi-checkbox-blank-circle:before { - content: "\F12F"; -} - -.mdi-checkbox-blank-circle-outline:before { - content: "\F130"; -} - -.mdi-checkbox-blank-outline:before { - content: "\F131"; -} - -.mdi-checkbox-marked:before { - content: "\F132"; -} - -.mdi-checkbox-marked-circle:before { - content: "\F133"; -} - -.mdi-checkbox-marked-circle-outline:before { - content: "\F134"; -} - -.mdi-checkbox-marked-outline:before { - content: "\F135"; -} - -.mdi-checkbox-multiple-blank:before { - content: "\F136"; -} - -.mdi-checkbox-multiple-blank-circle:before { - content: "\F63B"; -} - -.mdi-checkbox-multiple-blank-circle-outline:before { - content: "\F63C"; -} - -.mdi-checkbox-multiple-blank-outline:before { - content: "\F137"; -} - -.mdi-checkbox-multiple-marked:before { - content: "\F138"; -} - -.mdi-checkbox-multiple-marked-circle:before { - content: "\F63D"; -} - -.mdi-checkbox-multiple-marked-circle-outline:before { - content: "\F63E"; -} - -.mdi-checkbox-multiple-marked-outline:before { - content: "\F139"; -} - -.mdi-checkerboard:before { - content: "\F13A"; -} - -.mdi-chemical-weapon:before { - content: "\F13B"; -} - -.mdi-chevron-double-down:before { - content: "\F13C"; -} - -.mdi-chevron-double-left:before { - content: "\F13D"; -} - -.mdi-chevron-double-right:before { - content: "\F13E"; -} - -.mdi-chevron-double-up:before { - content: "\F13F"; -} - -.mdi-chevron-down:before { - content: "\F140"; -} - -.mdi-chevron-left:before { - content: "\F141"; -} - -.mdi-chevron-right:before { - content: "\F142"; -} - -.mdi-chevron-up:before { - content: "\F143"; -} - -.mdi-chili-hot:before { - content: "\F7B1"; -} - -.mdi-chili-medium:before { - content: "\F7B2"; -} - -.mdi-chili-mild:before { - content: "\F7B3"; -} - -.mdi-chip:before { - content: "\F61A"; -} - -.mdi-church:before { - content: "\F144"; -} - -.mdi-circle:before { - content: "\F764"; -} - -.mdi-circle-outline:before { - content: "\F765"; -} - -.mdi-cisco-webex:before { - content: "\F145"; -} - -.mdi-city:before { - content: "\F146"; -} - -.mdi-clipboard:before { - content: "\F147"; -} - -.mdi-clipboard-account:before { - content: "\F148"; -} - -.mdi-clipboard-alert:before { - content: "\F149"; -} - -.mdi-clipboard-arrow-down:before { - content: "\F14A"; -} - -.mdi-clipboard-arrow-left:before { - content: "\F14B"; -} - -.mdi-clipboard-check:before { - content: "\F14C"; -} - -.mdi-clipboard-flow:before { - content: "\F6C7"; -} - -.mdi-clipboard-outline:before { - content: "\F14D"; -} - -.mdi-clipboard-plus:before { - content: "\F750"; -} - -.mdi-clipboard-text:before { - content: "\F14E"; -} - -.mdi-clippy:before { - content: "\F14F"; -} - -.mdi-clock:before { - content: "\F150"; -} - -.mdi-clock-alert:before { - content: "\F5CE"; -} - -.mdi-clock-end:before { - content: "\F151"; -} - -.mdi-clock-fast:before { - content: "\F152"; -} - -.mdi-clock-in:before { - content: "\F153"; -} - -.mdi-clock-out:before { - content: "\F154"; -} - -.mdi-clock-start:before { - content: "\F155"; -} - -.mdi-close:before { - content: "\F156"; -} - -.mdi-close-box:before { - content: "\F157"; -} - -.mdi-close-box-outline:before { - content: "\F158"; -} - -.mdi-close-circle:before { - content: "\F159"; -} - -.mdi-close-circle-outline:before { - content: "\F15A"; -} - -.mdi-close-network:before { - content: "\F15B"; -} - -.mdi-close-octagon:before { - content: "\F15C"; -} - -.mdi-close-octagon-outline:before { - content: "\F15D"; -} - -.mdi-close-outline:before { - content: "\F6C8"; -} - -.mdi-closed-caption:before { - content: "\F15E"; -} - -.mdi-cloud:before { - content: "\F15F"; -} - -.mdi-cloud-braces:before { - content: "\F7B4"; -} - -.mdi-cloud-check:before { - content: "\F160"; -} - -.mdi-cloud-circle:before { - content: "\F161"; -} - -.mdi-cloud-download:before { - content: "\F162"; -} - -.mdi-cloud-off-outline:before { - content: "\F164"; -} - -.mdi-cloud-outline:before { - content: "\F163"; -} - -.mdi-cloud-print:before { - content: "\F165"; -} - -.mdi-cloud-print-outline:before { - content: "\F166"; -} - -.mdi-cloud-sync:before { - content: "\F63F"; -} - -.mdi-cloud-tags:before { - content: "\F7B5"; -} - -.mdi-cloud-upload:before { - content: "\F167"; -} - -.mdi-code-array:before { - content: "\F168"; -} - -.mdi-code-braces:before { - content: "\F169"; -} - -.mdi-code-brackets:before { - content: "\F16A"; -} - -.mdi-code-equal:before { - content: "\F16B"; -} - -.mdi-code-greater-than:before { - content: "\F16C"; -} - -.mdi-code-greater-than-or-equal:before { - content: "\F16D"; -} - -.mdi-code-less-than:before { - content: "\F16E"; -} - -.mdi-code-less-than-or-equal:before { - content: "\F16F"; -} - -.mdi-code-not-equal:before { - content: "\F170"; -} - -.mdi-code-not-equal-variant:before { - content: "\F171"; -} - -.mdi-code-parentheses:before { - content: "\F172"; -} - -.mdi-code-string:before { - content: "\F173"; -} - -.mdi-code-tags:before { - content: "\F174"; -} - -.mdi-code-tags-check:before { - content: "\F693"; -} - -.mdi-codepen:before { - content: "\F175"; -} - -.mdi-coffee:before { - content: "\F176"; -} - -.mdi-coffee-outline:before { - content: "\F6C9"; -} - -.mdi-coffee-to-go:before { - content: "\F177"; -} - -.mdi-coin:before { - content: "\F178"; -} - -.mdi-coins:before { - content: "\F694"; -} - -.mdi-collage:before { - content: "\F640"; -} - -.mdi-color-helper:before { - content: "\F179"; -} - -.mdi-comment:before { - content: "\F17A"; -} - -.mdi-comment-account:before { - content: "\F17B"; -} - -.mdi-comment-account-outline:before { - content: "\F17C"; -} - -.mdi-comment-alert:before { - content: "\F17D"; -} - -.mdi-comment-alert-outline:before { - content: "\F17E"; -} - -.mdi-comment-check:before { - content: "\F17F"; -} - -.mdi-comment-check-outline:before { - content: "\F180"; -} - -.mdi-comment-multiple-outline:before { - content: "\F181"; -} - -.mdi-comment-outline:before { - content: "\F182"; -} - -.mdi-comment-plus-outline:before { - content: "\F183"; -} - -.mdi-comment-processing:before { - content: "\F184"; -} - -.mdi-comment-processing-outline:before { - content: "\F185"; -} - -.mdi-comment-question-outline:before { - content: "\F186"; -} - -.mdi-comment-remove-outline:before { - content: "\F187"; -} - -.mdi-comment-text:before { - content: "\F188"; -} - -.mdi-comment-text-outline:before { - content: "\F189"; -} - -.mdi-compare:before { - content: "\F18A"; -} - -.mdi-compass:before { - content: "\F18B"; -} - -.mdi-compass-outline:before { - content: "\F18C"; -} - -.mdi-console:before { - content: "\F18D"; -} - -.mdi-console-line:before { - content: "\F7B6"; -} - -.mdi-contact-mail:before { - content: "\F18E"; -} - -.mdi-contacts:before { - content: "\F6CA"; -} - -.mdi-content-copy:before { - content: "\F18F"; -} - -.mdi-content-cut:before { - content: "\F190"; -} - -.mdi-content-duplicate:before { - content: "\F191"; -} - -.mdi-content-paste:before { - content: "\F192"; -} - -.mdi-content-save:before { - content: "\F193"; -} - -.mdi-content-save-all:before { - content: "\F194"; -} - -.mdi-content-save-settings:before { - content: "\F61B"; -} - -.mdi-contrast:before { - content: "\F195"; -} - -.mdi-contrast-box:before { - content: "\F196"; -} - -.mdi-contrast-circle:before { - content: "\F197"; -} - -.mdi-cookie:before { - content: "\F198"; -} - -.mdi-copyright:before { - content: "\F5E6"; -} - -.mdi-corn:before { - content: "\F7B7"; -} - -.mdi-counter:before { - content: "\F199"; -} - -.mdi-cow:before { - content: "\F19A"; -} - -.mdi-creation:before { - content: "\F1C9"; -} - -.mdi-credit-card:before { - content: "\F19B"; -} - -.mdi-credit-card-multiple:before { - content: "\F19C"; -} - -.mdi-credit-card-off:before { - content: "\F5E4"; -} - -.mdi-credit-card-plus:before { - content: "\F675"; -} - -.mdi-credit-card-scan:before { - content: "\F19D"; -} - -.mdi-crop:before { - content: "\F19E"; -} - -.mdi-crop-free:before { - content: "\F19F"; -} - -.mdi-crop-landscape:before { - content: "\F1A0"; -} - -.mdi-crop-portrait:before { - content: "\F1A1"; -} - -.mdi-crop-rotate:before { - content: "\F695"; -} - -.mdi-crop-square:before { - content: "\F1A2"; -} - -.mdi-crosshairs:before { - content: "\F1A3"; -} - -.mdi-crosshairs-gps:before { - content: "\F1A4"; -} - -.mdi-crown:before { - content: "\F1A5"; -} - -.mdi-cube:before { - content: "\F1A6"; -} - -.mdi-cube-outline:before { - content: "\F1A7"; -} - -.mdi-cube-send:before { - content: "\F1A8"; -} - -.mdi-cube-unfolded:before { - content: "\F1A9"; -} - -.mdi-cup:before { - content: "\F1AA"; -} - -.mdi-cup-off:before { - content: "\F5E5"; -} - -.mdi-cup-water:before { - content: "\F1AB"; -} - -.mdi-currency-btc:before { - content: "\F1AC"; -} - -.mdi-currency-chf:before { - content: "\F7B8"; -} - -.mdi-currency-cny:before { - content: "\F7B9"; -} - -.mdi-currency-eth:before { - content: "\F7BA"; -} - -.mdi-currency-eur:before { - content: "\F1AD"; -} - -.mdi-currency-gbp:before { - content: "\F1AE"; -} - -.mdi-currency-inr:before { - content: "\F1AF"; -} - -.mdi-currency-jpy:before { - content: "\F7BB"; -} - -.mdi-currency-krw:before { - content: "\F7BC"; -} - -.mdi-currency-ngn:before { - content: "\F1B0"; -} - -.mdi-currency-rub:before { - content: "\F1B1"; -} - -.mdi-currency-sign:before { - content: "\F7BD"; -} - -.mdi-currency-try:before { - content: "\F1B2"; -} - -.mdi-currency-twd:before { - content: "\F7BE"; -} - -.mdi-currency-usd:before { - content: "\F1B3"; -} - -.mdi-currency-usd-off:before { - content: "\F679"; -} - -.mdi-cursor-default:before { - content: "\F1B4"; -} - -.mdi-cursor-default-outline:before { - content: "\F1B5"; -} - -.mdi-cursor-move:before { - content: "\F1B6"; -} - -.mdi-cursor-pointer:before { - content: "\F1B7"; -} - -.mdi-cursor-text:before { - content: "\F5E7"; -} - -.mdi-database:before { - content: "\F1B8"; -} - -.mdi-database-minus:before { - content: "\F1B9"; -} - -.mdi-database-plus:before { - content: "\F1BA"; -} - -.mdi-debug-step-into:before { - content: "\F1BB"; -} - -.mdi-debug-step-out:before { - content: "\F1BC"; -} - -.mdi-debug-step-over:before { - content: "\F1BD"; -} - -.mdi-decagram:before { - content: "\F76B"; -} - -.mdi-decagram-outline:before { - content: "\F76C"; -} - -.mdi-decimal-decrease:before { - content: "\F1BE"; -} - -.mdi-decimal-increase:before { - content: "\F1BF"; -} - -.mdi-delete:before { - content: "\F1C0"; -} - -.mdi-delete-circle:before { - content: "\F682"; -} - -.mdi-delete-empty:before { - content: "\F6CB"; -} - -.mdi-delete-forever:before { - content: "\F5E8"; -} - -.mdi-delete-sweep:before { - content: "\F5E9"; -} - -.mdi-delete-variant:before { - content: "\F1C1"; -} - -.mdi-delta:before { - content: "\F1C2"; -} - -.mdi-deskphone:before { - content: "\F1C3"; -} - -.mdi-desktop-classic:before { - content: "\F7BF"; -} - -.mdi-desktop-mac:before { - content: "\F1C4"; -} - -.mdi-desktop-tower:before { - content: "\F1C5"; -} - -.mdi-details:before { - content: "\F1C6"; -} - -.mdi-developer-board:before { - content: "\F696"; -} - -.mdi-deviantart:before { - content: "\F1C7"; -} - -.mdi-dialpad:before { - content: "\F61C"; -} - -.mdi-diamond:before { - content: "\F1C8"; -} - -.mdi-dice-1:before { - content: "\F1CA"; -} - -.mdi-dice-2:before { - content: "\F1CB"; -} - -.mdi-dice-3:before { - content: "\F1CC"; -} - -.mdi-dice-4:before { - content: "\F1CD"; -} - -.mdi-dice-5:before { - content: "\F1CE"; -} - -.mdi-dice-6:before { - content: "\F1CF"; -} - -.mdi-dice-d10:before { - content: "\F76E"; -} - -.mdi-dice-d20:before { - content: "\F5EA"; -} - -.mdi-dice-d4:before { - content: "\F5EB"; -} - -.mdi-dice-d6:before { - content: "\F5EC"; -} - -.mdi-dice-d8:before { - content: "\F5ED"; -} - -.mdi-dice-multiple:before { - content: "\F76D"; -} - -.mdi-dictionary:before { - content: "\F61D"; -} - -.mdi-dip-switch:before { - content: "\F7C0"; -} - -.mdi-directions:before { - content: "\F1D0"; -} - -.mdi-directions-fork:before { - content: "\F641"; -} - -.mdi-discord:before { - content: "\F66F"; -} - -.mdi-disk:before { - content: "\F5EE"; -} - -.mdi-disk-alert:before { - content: "\F1D1"; -} - -.mdi-disqus:before { - content: "\F1D2"; -} - -.mdi-disqus-outline:before { - content: "\F1D3"; -} - -.mdi-division:before { - content: "\F1D4"; -} - -.mdi-division-box:before { - content: "\F1D5"; -} - -.mdi-dna:before { - content: "\F683"; -} - -.mdi-dns:before { - content: "\F1D6"; -} - -.mdi-do-not-disturb:before { - content: "\F697"; -} - -.mdi-do-not-disturb-off:before { - content: "\F698"; -} - -.mdi-dolby:before { - content: "\F6B2"; -} - -.mdi-domain:before { - content: "\F1D7"; -} - -.mdi-donkey:before { - content: "\F7C1"; -} - -.mdi-dots-horizontal:before { - content: "\F1D8"; -} - -.mdi-dots-horizontal-circle:before { - content: "\F7C2"; -} - -.mdi-dots-vertical:before { - content: "\F1D9"; -} - -.mdi-dots-vertical-circle:before { - content: "\F7C3"; -} - -.mdi-douban:before { - content: "\F699"; -} - -.mdi-download:before { - content: "\F1DA"; -} - -.mdi-download-network:before { - content: "\F6F3"; -} - -.mdi-drag:before { - content: "\F1DB"; -} - -.mdi-drag-horizontal:before { - content: "\F1DC"; -} - -.mdi-drag-vertical:before { - content: "\F1DD"; -} - -.mdi-drawing:before { - content: "\F1DE"; -} - -.mdi-drawing-box:before { - content: "\F1DF"; -} - -.mdi-dribbble:before { - content: "\F1E0"; -} - -.mdi-dribbble-box:before { - content: "\F1E1"; -} - -.mdi-drone:before { - content: "\F1E2"; -} - -.mdi-dropbox:before { - content: "\F1E3"; -} - -.mdi-drupal:before { - content: "\F1E4"; -} - -.mdi-duck:before { - content: "\F1E5"; -} - -.mdi-dumbbell:before { - content: "\F1E6"; -} - -.mdi-ear-hearing:before { - content: "\F7C4"; -} - -.mdi-earth:before { - content: "\F1E7"; -} - -.mdi-earth-box:before { - content: "\F6CC"; -} - -.mdi-earth-box-off:before { - content: "\F6CD"; -} - -.mdi-earth-off:before { - content: "\F1E8"; -} - -.mdi-edge:before { - content: "\F1E9"; -} - -.mdi-eject:before { - content: "\F1EA"; -} - -.mdi-elephant:before { - content: "\F7C5"; -} - -.mdi-elevation-decline:before { - content: "\F1EB"; -} - -.mdi-elevation-rise:before { - content: "\F1EC"; -} - -.mdi-elevator:before { - content: "\F1ED"; -} - -.mdi-email:before { - content: "\F1EE"; -} - -.mdi-email-alert:before { - content: "\F6CE"; -} - -.mdi-email-open:before { - content: "\F1EF"; -} - -.mdi-email-open-outline:before { - content: "\F5EF"; -} - -.mdi-email-outline:before { - content: "\F1F0"; -} - -.mdi-email-secure:before { - content: "\F1F1"; -} - -.mdi-email-variant:before { - content: "\F5F0"; -} - -.mdi-emby:before { - content: "\F6B3"; -} - -.mdi-emoticon:before { - content: "\F1F2"; -} - -.mdi-emoticon-cool:before { - content: "\F1F3"; -} - -.mdi-emoticon-dead:before { - content: "\F69A"; -} - -.mdi-emoticon-devil:before { - content: "\F1F4"; -} - -.mdi-emoticon-excited:before { - content: "\F69B"; -} - -.mdi-emoticon-happy:before { - content: "\F1F5"; -} - -.mdi-emoticon-neutral:before { - content: "\F1F6"; -} - -.mdi-emoticon-poop:before { - content: "\F1F7"; -} - -.mdi-emoticon-sad:before { - content: "\F1F8"; -} - -.mdi-emoticon-tongue:before { - content: "\F1F9"; -} - -.mdi-engine:before { - content: "\F1FA"; -} - -.mdi-engine-outline:before { - content: "\F1FB"; -} - -.mdi-equal:before { - content: "\F1FC"; -} - -.mdi-equal-box:before { - content: "\F1FD"; -} - -.mdi-eraser:before { - content: "\F1FE"; -} - -.mdi-eraser-variant:before { - content: "\F642"; -} - -.mdi-escalator:before { - content: "\F1FF"; -} - -.mdi-ethernet:before { - content: "\F200"; -} - -.mdi-ethernet-cable:before { - content: "\F201"; -} - -.mdi-ethernet-cable-off:before { - content: "\F202"; -} - -.mdi-etsy:before { - content: "\F203"; -} - -.mdi-ev-station:before { - content: "\F5F1"; -} - -.mdi-eventbrite:before { - content: "\F7C6"; -} - -.mdi-evernote:before { - content: "\F204"; -} - -.mdi-exclamation:before { - content: "\F205"; -} - -.mdi-exit-to-app:before { - content: "\F206"; -} - -.mdi-export:before { - content: "\F207"; -} - -.mdi-eye:before { - content: "\F208"; -} - -.mdi-eye-off:before { - content: "\F209"; -} - -.mdi-eye-off-outline:before { - content: "\F6D0"; -} - -.mdi-eye-outline:before { - content: "\F6CF"; -} - -.mdi-eyedropper:before { - content: "\F20A"; -} - -.mdi-eyedropper-variant:before { - content: "\F20B"; -} - -.mdi-face:before { - content: "\F643"; -} - -.mdi-face-profile:before { - content: "\F644"; -} - -.mdi-facebook:before { - content: "\F20C"; -} - -.mdi-facebook-box:before { - content: "\F20D"; -} - -.mdi-facebook-messenger:before { - content: "\F20E"; -} - -.mdi-factory:before { - content: "\F20F"; -} - -.mdi-fan:before { - content: "\F210"; -} - -.mdi-fast-forward:before { - content: "\F211"; -} - -.mdi-fast-forward-outline:before { - content: "\F6D1"; -} - -.mdi-fax:before { - content: "\F212"; -} - -.mdi-feather:before { - content: "\F6D2"; -} - -.mdi-ferry:before { - content: "\F213"; -} - -.mdi-file:before { - content: "\F214"; -} - -.mdi-file-account:before { - content: "\F73A"; -} - -.mdi-file-chart:before { - content: "\F215"; -} - -.mdi-file-check:before { - content: "\F216"; -} - -.mdi-file-cloud:before { - content: "\F217"; -} - -.mdi-file-delimited:before { - content: "\F218"; -} - -.mdi-file-document:before { - content: "\F219"; -} - -.mdi-file-document-box:before { - content: "\F21A"; -} - -.mdi-file-excel:before { - content: "\F21B"; -} - -.mdi-file-excel-box:before { - content: "\F21C"; -} - -.mdi-file-export:before { - content: "\F21D"; -} - -.mdi-file-find:before { - content: "\F21E"; -} - -.mdi-file-hidden:before { - content: "\F613"; -} - -.mdi-file-image:before { - content: "\F21F"; -} - -.mdi-file-import:before { - content: "\F220"; -} - -.mdi-file-lock:before { - content: "\F221"; -} - -.mdi-file-multiple:before { - content: "\F222"; -} - -.mdi-file-music:before { - content: "\F223"; -} - -.mdi-file-outline:before { - content: "\F224"; -} - -.mdi-file-pdf:before { - content: "\F225"; -} - -.mdi-file-pdf-box:before { - content: "\F226"; -} - -.mdi-file-plus:before { - content: "\F751"; -} - -.mdi-file-powerpoint:before { - content: "\F227"; -} - -.mdi-file-powerpoint-box:before { - content: "\F228"; -} - -.mdi-file-presentation-box:before { - content: "\F229"; -} - -.mdi-file-restore:before { - content: "\F670"; -} - -.mdi-file-send:before { - content: "\F22A"; -} - -.mdi-file-tree:before { - content: "\F645"; -} - -.mdi-file-video:before { - content: "\F22B"; -} - -.mdi-file-word:before { - content: "\F22C"; -} - -.mdi-file-word-box:before { - content: "\F22D"; -} - -.mdi-file-xml:before { - content: "\F22E"; -} - -.mdi-film:before { - content: "\F22F"; -} - -.mdi-filmstrip:before { - content: "\F230"; -} - -.mdi-filmstrip-off:before { - content: "\F231"; -} - -.mdi-filter:before { - content: "\F232"; -} - -.mdi-filter-outline:before { - content: "\F233"; -} - -.mdi-filter-remove:before { - content: "\F234"; -} - -.mdi-filter-remove-outline:before { - content: "\F235"; -} - -.mdi-filter-variant:before { - content: "\F236"; -} - -.mdi-find-replace:before { - content: "\F6D3"; -} - -.mdi-fingerprint:before { - content: "\F237"; -} - -.mdi-fire:before { - content: "\F238"; -} - -.mdi-firefox:before { - content: "\F239"; -} - -.mdi-fish:before { - content: "\F23A"; -} - -.mdi-flag:before { - content: "\F23B"; -} - -.mdi-flag-checkered:before { - content: "\F23C"; -} - -.mdi-flag-outline:before { - content: "\F23D"; -} - -.mdi-flag-outline-variant:before { - content: "\F23E"; -} - -.mdi-flag-triangle:before { - content: "\F23F"; -} - -.mdi-flag-variant:before { - content: "\F240"; -} - -.mdi-flash:before { - content: "\F241"; -} - -.mdi-flash-auto:before { - content: "\F242"; -} - -.mdi-flash-off:before { - content: "\F243"; -} - -.mdi-flash-outline:before { - content: "\F6D4"; -} - -.mdi-flash-red-eye:before { - content: "\F67A"; -} - -.mdi-flashlight:before { - content: "\F244"; -} - -.mdi-flashlight-off:before { - content: "\F245"; -} - -.mdi-flask:before { - content: "\F093"; -} - -.mdi-flask-empty:before { - content: "\F094"; -} - -.mdi-flask-empty-outline:before { - content: "\F095"; -} - -.mdi-flask-outline:before { - content: "\F096"; -} - -.mdi-flattr:before { - content: "\F246"; -} - -.mdi-flip-to-back:before { - content: "\F247"; -} - -.mdi-flip-to-front:before { - content: "\F248"; -} - -.mdi-floppy:before { - content: "\F249"; -} - -.mdi-flower:before { - content: "\F24A"; -} - -.mdi-folder:before { - content: "\F24B"; -} - -.mdi-folder-account:before { - content: "\F24C"; -} - -.mdi-folder-download:before { - content: "\F24D"; -} - -.mdi-folder-google-drive:before { - content: "\F24E"; -} - -.mdi-folder-image:before { - content: "\F24F"; -} - -.mdi-folder-lock:before { - content: "\F250"; -} - -.mdi-folder-lock-open:before { - content: "\F251"; -} - -.mdi-folder-move:before { - content: "\F252"; -} - -.mdi-folder-multiple:before { - content: "\F253"; -} - -.mdi-folder-multiple-image:before { - content: "\F254"; -} - -.mdi-folder-multiple-outline:before { - content: "\F255"; -} - -.mdi-folder-open:before { - content: "\F76F"; -} - -.mdi-folder-outline:before { - content: "\F256"; -} - -.mdi-folder-plus:before { - content: "\F257"; -} - -.mdi-folder-remove:before { - content: "\F258"; -} - -.mdi-folder-star:before { - content: "\F69C"; -} - -.mdi-folder-upload:before { - content: "\F259"; -} - -.mdi-font-awesome:before { - content: "\F03A"; -} - -.mdi-food:before { - content: "\F25A"; -} - -.mdi-food-apple:before { - content: "\F25B"; -} - -.mdi-food-croissant:before { - content: "\F7C7"; -} - -.mdi-food-fork-drink:before { - content: "\F5F2"; -} - -.mdi-food-off:before { - content: "\F5F3"; -} - -.mdi-food-variant:before { - content: "\F25C"; -} - -.mdi-football:before { - content: "\F25D"; -} - -.mdi-football-australian:before { - content: "\F25E"; -} - -.mdi-football-helmet:before { - content: "\F25F"; -} - -.mdi-forklift:before { - content: "\F7C8"; -} - -.mdi-format-align-bottom:before { - content: "\F752"; -} - -.mdi-format-align-center:before { - content: "\F260"; -} - -.mdi-format-align-justify:before { - content: "\F261"; -} - -.mdi-format-align-left:before { - content: "\F262"; -} - -.mdi-format-align-middle:before { - content: "\F753"; -} - -.mdi-format-align-right:before { - content: "\F263"; -} - -.mdi-format-align-top:before { - content: "\F754"; -} - -.mdi-format-annotation-plus:before { - content: "\F646"; -} - -.mdi-format-bold:before { - content: "\F264"; -} - -.mdi-format-clear:before { - content: "\F265"; -} - -.mdi-format-color-fill:before { - content: "\F266"; -} - -.mdi-format-color-text:before { - content: "\F69D"; -} - -.mdi-format-float-center:before { - content: "\F267"; -} - -.mdi-format-float-left:before { - content: "\F268"; -} - -.mdi-format-float-none:before { - content: "\F269"; -} - -.mdi-format-float-right:before { - content: "\F26A"; -} - -.mdi-format-font:before { - content: "\F6D5"; -} - -.mdi-format-header-1:before { - content: "\F26B"; -} - -.mdi-format-header-2:before { - content: "\F26C"; -} - -.mdi-format-header-3:before { - content: "\F26D"; -} - -.mdi-format-header-4:before { - content: "\F26E"; -} - -.mdi-format-header-5:before { - content: "\F26F"; -} - -.mdi-format-header-6:before { - content: "\F270"; -} - -.mdi-format-header-decrease:before { - content: "\F271"; -} - -.mdi-format-header-equal:before { - content: "\F272"; -} - -.mdi-format-header-increase:before { - content: "\F273"; -} - -.mdi-format-header-pound:before { - content: "\F274"; -} - -.mdi-format-horizontal-align-center:before { - content: "\F61E"; -} - -.mdi-format-horizontal-align-left:before { - content: "\F61F"; -} - -.mdi-format-horizontal-align-right:before { - content: "\F620"; -} - -.mdi-format-indent-decrease:before { - content: "\F275"; -} - -.mdi-format-indent-increase:before { - content: "\F276"; -} - -.mdi-format-italic:before { - content: "\F277"; -} - -.mdi-format-line-spacing:before { - content: "\F278"; -} - -.mdi-format-line-style:before { - content: "\F5C8"; -} - -.mdi-format-line-weight:before { - content: "\F5C9"; -} - -.mdi-format-list-bulleted:before { - content: "\F279"; -} - -.mdi-format-list-bulleted-type:before { - content: "\F27A"; -} - -.mdi-format-list-checks:before { - content: "\F755"; -} - -.mdi-format-list-numbers:before { - content: "\F27B"; -} - -.mdi-format-page-break:before { - content: "\F6D6"; -} - -.mdi-format-paint:before { - content: "\F27C"; -} - -.mdi-format-paragraph:before { - content: "\F27D"; -} - -.mdi-format-pilcrow:before { - content: "\F6D7"; -} - -.mdi-format-quote-close:before { - content: "\F27E"; -} - -.mdi-format-quote-open:before { - content: "\F756"; -} - -.mdi-format-rotate-90:before { - content: "\F6A9"; -} - -.mdi-format-section:before { - content: "\F69E"; -} - -.mdi-format-size:before { - content: "\F27F"; -} - -.mdi-format-strikethrough:before { - content: "\F280"; -} - -.mdi-format-strikethrough-variant:before { - content: "\F281"; -} - -.mdi-format-subscript:before { - content: "\F282"; -} - -.mdi-format-superscript:before { - content: "\F283"; -} - -.mdi-format-text:before { - content: "\F284"; -} - -.mdi-format-textdirection-l-to-r:before { - content: "\F285"; -} - -.mdi-format-textdirection-r-to-l:before { - content: "\F286"; -} - -.mdi-format-title:before { - content: "\F5F4"; -} - -.mdi-format-underline:before { - content: "\F287"; -} - -.mdi-format-vertical-align-bottom:before { - content: "\F621"; -} - -.mdi-format-vertical-align-center:before { - content: "\F622"; -} - -.mdi-format-vertical-align-top:before { - content: "\F623"; -} - -.mdi-format-wrap-inline:before { - content: "\F288"; -} - -.mdi-format-wrap-square:before { - content: "\F289"; -} - -.mdi-format-wrap-tight:before { - content: "\F28A"; -} - -.mdi-format-wrap-top-bottom:before { - content: "\F28B"; -} - -.mdi-forum:before { - content: "\F28C"; -} - -.mdi-forward:before { - content: "\F28D"; -} - -.mdi-foursquare:before { - content: "\F28E"; -} - -.mdi-fridge:before { - content: "\F28F"; -} - -.mdi-fridge-filled:before { - content: "\F290"; -} - -.mdi-fridge-filled-bottom:before { - content: "\F291"; -} - -.mdi-fridge-filled-top:before { - content: "\F292"; -} - -.mdi-fuel:before { - content: "\F7C9"; -} - -.mdi-fullscreen:before { - content: "\F293"; -} - -.mdi-fullscreen-exit:before { - content: "\F294"; -} - -.mdi-function:before { - content: "\F295"; -} - -.mdi-gamepad:before { - content: "\F296"; -} - -.mdi-gamepad-variant:before { - content: "\F297"; -} - -.mdi-garage:before { - content: "\F6D8"; -} - -.mdi-garage-open:before { - content: "\F6D9"; -} - -.mdi-gas-cylinder:before { - content: "\F647"; -} - -.mdi-gas-station:before { - content: "\F298"; -} - -.mdi-gate:before { - content: "\F299"; -} - -.mdi-gauge:before { - content: "\F29A"; -} - -.mdi-gavel:before { - content: "\F29B"; -} - -.mdi-gender-female:before { - content: "\F29C"; -} - -.mdi-gender-male:before { - content: "\F29D"; -} - -.mdi-gender-male-female:before { - content: "\F29E"; -} - -.mdi-gender-transgender:before { - content: "\F29F"; -} - -.mdi-gesture:before { - content: "\F7CA"; -} - -.mdi-gesture-double-tap:before { - content: "\F73B"; -} - -.mdi-gesture-swipe-down:before { - content: "\F73C"; -} - -.mdi-gesture-swipe-left:before { - content: "\F73D"; -} - -.mdi-gesture-swipe-right:before { - content: "\F73E"; -} - -.mdi-gesture-swipe-up:before { - content: "\F73F"; -} - -.mdi-gesture-tap:before { - content: "\F740"; -} - -.mdi-gesture-two-double-tap:before { - content: "\F741"; -} - -.mdi-gesture-two-tap:before { - content: "\F742"; -} - -.mdi-ghost:before { - content: "\F2A0"; -} - -.mdi-gift:before { - content: "\F2A1"; -} - -.mdi-git:before { - content: "\F2A2"; -} - -.mdi-github-box:before { - content: "\F2A3"; -} - -.mdi-github-circle:before { - content: "\F2A4"; -} - -.mdi-github-face:before { - content: "\F6DA"; -} - -.mdi-glass-flute:before { - content: "\F2A5"; -} - -.mdi-glass-mug:before { - content: "\F2A6"; -} - -.mdi-glass-stange:before { - content: "\F2A7"; -} - -.mdi-glass-tulip:before { - content: "\F2A8"; -} - -.mdi-glassdoor:before { - content: "\F2A9"; -} - -.mdi-glasses:before { - content: "\F2AA"; -} - -.mdi-gmail:before { - content: "\F2AB"; -} - -.mdi-gnome:before { - content: "\F2AC"; -} - -.mdi-gondola:before { - content: "\F685"; -} - -.mdi-google:before { - content: "\F2AD"; -} - -.mdi-google-analytics:before { - content: "\F7CB"; -} - -.mdi-google-assistant:before { - content: "\F7CC"; -} - -.mdi-google-cardboard:before { - content: "\F2AE"; -} - -.mdi-google-chrome:before { - content: "\F2AF"; -} - -.mdi-google-circles:before { - content: "\F2B0"; -} - -.mdi-google-circles-communities:before { - content: "\F2B1"; -} - -.mdi-google-circles-extended:before { - content: "\F2B2"; -} - -.mdi-google-circles-group:before { - content: "\F2B3"; -} - -.mdi-google-controller:before { - content: "\F2B4"; -} - -.mdi-google-controller-off:before { - content: "\F2B5"; -} - -.mdi-google-drive:before { - content: "\F2B6"; -} - -.mdi-google-earth:before { - content: "\F2B7"; -} - -.mdi-google-glass:before { - content: "\F2B8"; -} - -.mdi-google-keep:before { - content: "\F6DB"; -} - -.mdi-google-maps:before { - content: "\F5F5"; -} - -.mdi-google-nearby:before { - content: "\F2B9"; -} - -.mdi-google-pages:before { - content: "\F2BA"; -} - -.mdi-google-photos:before { - content: "\F6DC"; -} - -.mdi-google-physical-web:before { - content: "\F2BB"; -} - -.mdi-google-play:before { - content: "\F2BC"; -} - -.mdi-google-plus:before { - content: "\F2BD"; -} - -.mdi-google-plus-box:before { - content: "\F2BE"; -} - -.mdi-google-translate:before { - content: "\F2BF"; -} - -.mdi-google-wallet:before { - content: "\F2C0"; -} - -.mdi-gradient:before { - content: "\F69F"; -} - -.mdi-grease-pencil:before { - content: "\F648"; -} - -.mdi-grid:before { - content: "\F2C1"; -} - -.mdi-grid-large:before { - content: "\F757"; -} - -.mdi-grid-off:before { - content: "\F2C2"; -} - -.mdi-group:before { - content: "\F2C3"; -} - -.mdi-guitar-acoustic:before { - content: "\F770"; -} - -.mdi-guitar-electric:before { - content: "\F2C4"; -} - -.mdi-guitar-pick:before { - content: "\F2C5"; -} - -.mdi-guitar-pick-outline:before { - content: "\F2C6"; -} - -.mdi-hackernews:before { - content: "\F624"; -} - -.mdi-hamburger:before { - content: "\F684"; -} - -.mdi-hand-pointing-right:before { - content: "\F2C7"; -} - -.mdi-hanger:before { - content: "\F2C8"; -} - -.mdi-hangouts:before { - content: "\F2C9"; -} - -.mdi-harddisk:before { - content: "\F2CA"; -} - -.mdi-headphones:before { - content: "\F2CB"; -} - -.mdi-headphones-box:before { - content: "\F2CC"; -} - -.mdi-headphones-off:before { - content: "\F7CD"; -} - -.mdi-headphones-settings:before { - content: "\F2CD"; -} - -.mdi-headset:before { - content: "\F2CE"; -} - -.mdi-headset-dock:before { - content: "\F2CF"; -} - -.mdi-headset-off:before { - content: "\F2D0"; -} - -.mdi-heart:before { - content: "\F2D1"; -} - -.mdi-heart-box:before { - content: "\F2D2"; -} - -.mdi-heart-box-outline:before { - content: "\F2D3"; -} - -.mdi-heart-broken:before { - content: "\F2D4"; -} - -.mdi-heart-half:before { - content: "\F6DE"; -} - -.mdi-heart-half-full:before { - content: "\F6DD"; -} - -.mdi-heart-half-outline:before { - content: "\F6DF"; -} - -.mdi-heart-off:before { - content: "\F758"; -} - -.mdi-heart-outline:before { - content: "\F2D5"; -} - -.mdi-heart-pulse:before { - content: "\F5F6"; -} - -.mdi-help:before { - content: "\F2D6"; -} - -.mdi-help-box:before { - content: "\F78A"; -} - -.mdi-help-circle:before { - content: "\F2D7"; -} - -.mdi-help-circle-outline:before { - content: "\F625"; -} - -.mdi-help-network:before { - content: "\F6F4"; -} - -.mdi-hexagon:before { - content: "\F2D8"; -} - -.mdi-hexagon-multiple:before { - content: "\F6E0"; -} - -.mdi-hexagon-outline:before { - content: "\F2D9"; -} - -.mdi-high-definition:before { - content: "\F7CE"; -} - -.mdi-highway:before { - content: "\F5F7"; -} - -.mdi-history:before { - content: "\F2DA"; -} - -.mdi-hololens:before { - content: "\F2DB"; -} - -.mdi-home:before { - content: "\F2DC"; -} - -.mdi-home-assistant:before { - content: "\F7CF"; -} - -.mdi-home-automation:before { - content: "\F7D0"; -} - -.mdi-home-circle:before { - content: "\F7D1"; -} - -.mdi-home-map-marker:before { - content: "\F5F8"; -} - -.mdi-home-modern:before { - content: "\F2DD"; -} - -.mdi-home-outline:before { - content: "\F6A0"; -} - -.mdi-home-variant:before { - content: "\F2DE"; -} - -.mdi-hook:before { - content: "\F6E1"; -} - -.mdi-hook-off:before { - content: "\F6E2"; -} - -.mdi-hops:before { - content: "\F2DF"; -} - -.mdi-hospital:before { - content: "\F2E0"; -} - -.mdi-hospital-building:before { - content: "\F2E1"; -} - -.mdi-hospital-marker:before { - content: "\F2E2"; -} - -.mdi-hotel:before { - content: "\F2E3"; -} - -.mdi-houzz:before { - content: "\F2E4"; -} - -.mdi-houzz-box:before { - content: "\F2E5"; -} - -.mdi-human:before { - content: "\F2E6"; -} - -.mdi-human-child:before { - content: "\F2E7"; -} - -.mdi-human-female:before { - content: "\F649"; -} - -.mdi-human-greeting:before { - content: "\F64A"; -} - -.mdi-human-handsdown:before { - content: "\F64B"; -} - -.mdi-human-handsup:before { - content: "\F64C"; -} - -.mdi-human-male:before { - content: "\F64D"; -} - -.mdi-human-male-female:before { - content: "\F2E8"; -} - -.mdi-human-pregnant:before { - content: "\F5CF"; -} - -.mdi-humble-bundle:before { - content: "\F743"; -} - -.mdi-image:before { - content: "\F2E9"; -} - -.mdi-image-album:before { - content: "\F2EA"; -} - -.mdi-image-area:before { - content: "\F2EB"; -} - -.mdi-image-area-close:before { - content: "\F2EC"; -} - -.mdi-image-broken:before { - content: "\F2ED"; -} - -.mdi-image-broken-variant:before { - content: "\F2EE"; -} - -.mdi-image-filter:before { - content: "\F2EF"; -} - -.mdi-image-filter-black-white:before { - content: "\F2F0"; -} - -.mdi-image-filter-center-focus:before { - content: "\F2F1"; -} - -.mdi-image-filter-center-focus-weak:before { - content: "\F2F2"; -} - -.mdi-image-filter-drama:before { - content: "\F2F3"; -} - -.mdi-image-filter-frames:before { - content: "\F2F4"; -} - -.mdi-image-filter-hdr:before { - content: "\F2F5"; -} - -.mdi-image-filter-none:before { - content: "\F2F6"; -} - -.mdi-image-filter-tilt-shift:before { - content: "\F2F7"; -} - -.mdi-image-filter-vintage:before { - content: "\F2F8"; -} - -.mdi-image-multiple:before { - content: "\F2F9"; -} - -.mdi-import:before { - content: "\F2FA"; -} - -.mdi-inbox:before { - content: "\F686"; -} - -.mdi-inbox-arrow-down:before { - content: "\F2FB"; -} - -.mdi-inbox-arrow-up:before { - content: "\F3D1"; -} - -.mdi-incognito:before { - content: "\F5F9"; -} - -.mdi-infinity:before { - content: "\F6E3"; -} - -.mdi-information:before { - content: "\F2FC"; -} - -.mdi-information-outline:before { - content: "\F2FD"; -} - -.mdi-information-variant:before { - content: "\F64E"; -} - -.mdi-instagram:before { - content: "\F2FE"; -} - -.mdi-instapaper:before { - content: "\F2FF"; -} - -.mdi-internet-explorer:before { - content: "\F300"; -} - -.mdi-invert-colors:before { - content: "\F301"; -} - -.mdi-itunes:before { - content: "\F676"; -} - -.mdi-jeepney:before { - content: "\F302"; -} - -.mdi-jira:before { - content: "\F303"; -} - -.mdi-jsfiddle:before { - content: "\F304"; -} - -.mdi-json:before { - content: "\F626"; -} - -.mdi-keg:before { - content: "\F305"; -} - -.mdi-kettle:before { - content: "\F5FA"; -} - -.mdi-key:before { - content: "\F306"; -} - -.mdi-key-change:before { - content: "\F307"; -} - -.mdi-key-minus:before { - content: "\F308"; -} - -.mdi-key-plus:before { - content: "\F309"; -} - -.mdi-key-remove:before { - content: "\F30A"; -} - -.mdi-key-variant:before { - content: "\F30B"; -} - -.mdi-keyboard:before { - content: "\F30C"; -} - -.mdi-keyboard-backspace:before { - content: "\F30D"; -} - -.mdi-keyboard-caps:before { - content: "\F30E"; -} - -.mdi-keyboard-close:before { - content: "\F30F"; -} - -.mdi-keyboard-off:before { - content: "\F310"; -} - -.mdi-keyboard-return:before { - content: "\F311"; -} - -.mdi-keyboard-tab:before { - content: "\F312"; -} - -.mdi-keyboard-variant:before { - content: "\F313"; -} - -.mdi-kickstarter:before { - content: "\F744"; -} - -.mdi-kodi:before { - content: "\F314"; -} - -.mdi-label:before { - content: "\F315"; -} - -.mdi-label-outline:before { - content: "\F316"; -} - -.mdi-lambda:before { - content: "\F627"; -} - -.mdi-lamp:before { - content: "\F6B4"; -} - -.mdi-lan:before { - content: "\F317"; -} - -.mdi-lan-connect:before { - content: "\F318"; -} - -.mdi-lan-disconnect:before { - content: "\F319"; -} - -.mdi-lan-pending:before { - content: "\F31A"; -} - -.mdi-language-c:before { - content: "\F671"; -} - -.mdi-language-cpp:before { - content: "\F672"; -} - -.mdi-language-csharp:before { - content: "\F31B"; -} - -.mdi-language-css3:before { - content: "\F31C"; -} - -.mdi-language-go:before { - content: "\F7D2"; -} - -.mdi-language-html5:before { - content: "\F31D"; -} - -.mdi-language-javascript:before { - content: "\F31E"; -} - -.mdi-language-php:before { - content: "\F31F"; -} - -.mdi-language-python:before { - content: "\F320"; -} - -.mdi-language-python-text:before { - content: "\F321"; -} - -.mdi-language-r:before { - content: "\F7D3"; -} - -.mdi-language-swift:before { - content: "\F6E4"; -} - -.mdi-language-typescript:before { - content: "\F6E5"; -} - -.mdi-laptop:before { - content: "\F322"; -} - -.mdi-laptop-chromebook:before { - content: "\F323"; -} - -.mdi-laptop-mac:before { - content: "\F324"; -} - -.mdi-laptop-off:before { - content: "\F6E6"; -} - -.mdi-laptop-windows:before { - content: "\F325"; -} - -.mdi-lastfm:before { - content: "\F326"; -} - -.mdi-launch:before { - content: "\F327"; -} - -.mdi-lava-lamp:before { - content: "\F7D4"; -} - -.mdi-layers:before { - content: "\F328"; -} - -.mdi-layers-off:before { - content: "\F329"; -} - -.mdi-lead-pencil:before { - content: "\F64F"; -} - -.mdi-leaf:before { - content: "\F32A"; -} - -.mdi-led-off:before { - content: "\F32B"; -} - -.mdi-led-on:before { - content: "\F32C"; -} - -.mdi-led-outline:before { - content: "\F32D"; -} - -.mdi-led-strip:before { - content: "\F7D5"; -} - -.mdi-led-variant-off:before { - content: "\F32E"; -} - -.mdi-led-variant-on:before { - content: "\F32F"; -} - -.mdi-led-variant-outline:before { - content: "\F330"; -} - -.mdi-library:before { - content: "\F331"; -} - -.mdi-library-books:before { - content: "\F332"; -} - -.mdi-library-music:before { - content: "\F333"; -} - -.mdi-library-plus:before { - content: "\F334"; -} - -.mdi-lightbulb:before { - content: "\F335"; -} - -.mdi-lightbulb-on:before { - content: "\F6E7"; -} - -.mdi-lightbulb-on-outline:before { - content: "\F6E8"; -} - -.mdi-lightbulb-outline:before { - content: "\F336"; -} - -.mdi-link:before { - content: "\F337"; -} - -.mdi-link-off:before { - content: "\F338"; -} - -.mdi-link-variant:before { - content: "\F339"; -} - -.mdi-link-variant-off:before { - content: "\F33A"; -} - -.mdi-linkedin:before { - content: "\F33B"; -} - -.mdi-linkedin-box:before { - content: "\F33C"; -} - -.mdi-linux:before { - content: "\F33D"; -} - -.mdi-loading:before { - content: "\F771"; -} - -.mdi-lock:before { - content: "\F33E"; -} - -.mdi-lock-open:before { - content: "\F33F"; -} - -.mdi-lock-open-outline:before { - content: "\F340"; -} - -.mdi-lock-outline:before { - content: "\F341"; -} - -.mdi-lock-pattern:before { - content: "\F6E9"; -} - -.mdi-lock-plus:before { - content: "\F5FB"; -} - -.mdi-lock-reset:before { - content: "\F772"; -} - -.mdi-locker:before { - content: "\F7D6"; -} - -.mdi-locker-multiple:before { - content: "\F7D7"; -} - -.mdi-login:before { - content: "\F342"; -} - -.mdi-login-variant:before { - content: "\F5FC"; -} - -.mdi-logout:before { - content: "\F343"; -} - -.mdi-logout-variant:before { - content: "\F5FD"; -} - -.mdi-looks:before { - content: "\F344"; -} - -.mdi-loop:before { - content: "\F6EA"; -} - -.mdi-loupe:before { - content: "\F345"; -} - -.mdi-lumx:before { - content: "\F346"; -} - -.mdi-magnet:before { - content: "\F347"; -} - -.mdi-magnet-on:before { - content: "\F348"; -} - -.mdi-magnify:before { - content: "\F349"; -} - -.mdi-magnify-minus:before { - content: "\F34A"; -} - -.mdi-magnify-minus-outline:before { - content: "\F6EB"; -} - -.mdi-magnify-plus:before { - content: "\F34B"; -} - -.mdi-magnify-plus-outline:before { - content: "\F6EC"; -} - -.mdi-mail-ru:before { - content: "\F34C"; -} - -.mdi-mailbox:before { - content: "\F6ED"; -} - -.mdi-map:before { - content: "\F34D"; -} - -.mdi-map-marker:before { - content: "\F34E"; -} - -.mdi-map-marker-circle:before { - content: "\F34F"; -} - -.mdi-map-marker-minus:before { - content: "\F650"; -} - -.mdi-map-marker-multiple:before { - content: "\F350"; -} - -.mdi-map-marker-off:before { - content: "\F351"; -} - -.mdi-map-marker-outline:before { - content: "\F7D8"; -} - -.mdi-map-marker-plus:before { - content: "\F651"; -} - -.mdi-map-marker-radius:before { - content: "\F352"; -} - -.mdi-margin:before { - content: "\F353"; -} - -.mdi-markdown:before { - content: "\F354"; -} - -.mdi-marker:before { - content: "\F652"; -} - -.mdi-marker-check:before { - content: "\F355"; -} - -.mdi-martini:before { - content: "\F356"; -} - -.mdi-material-ui:before { - content: "\F357"; -} - -.mdi-math-compass:before { - content: "\F358"; -} - -.mdi-matrix:before { - content: "\F628"; -} - -.mdi-maxcdn:before { - content: "\F359"; -} - -.mdi-medical-bag:before { - content: "\F6EE"; -} - -.mdi-medium:before { - content: "\F35A"; -} - -.mdi-memory:before { - content: "\F35B"; -} - -.mdi-menu:before { - content: "\F35C"; -} - -.mdi-menu-down:before { - content: "\F35D"; -} - -.mdi-menu-down-outline:before { - content: "\F6B5"; -} - -.mdi-menu-left:before { - content: "\F35E"; -} - -.mdi-menu-right:before { - content: "\F35F"; -} - -.mdi-menu-up:before { - content: "\F360"; -} - -.mdi-menu-up-outline:before { - content: "\F6B6"; -} - -.mdi-message:before { - content: "\F361"; -} - -.mdi-message-alert:before { - content: "\F362"; -} - -.mdi-message-bulleted:before { - content: "\F6A1"; -} - -.mdi-message-bulleted-off:before { - content: "\F6A2"; -} - -.mdi-message-draw:before { - content: "\F363"; -} - -.mdi-message-image:before { - content: "\F364"; -} - -.mdi-message-outline:before { - content: "\F365"; -} - -.mdi-message-plus:before { - content: "\F653"; -} - -.mdi-message-processing:before { - content: "\F366"; -} - -.mdi-message-reply:before { - content: "\F367"; -} - -.mdi-message-reply-text:before { - content: "\F368"; -} - -.mdi-message-settings:before { - content: "\F6EF"; -} - -.mdi-message-settings-variant:before { - content: "\F6F0"; -} - -.mdi-message-text:before { - content: "\F369"; -} - -.mdi-message-text-outline:before { - content: "\F36A"; -} - -.mdi-message-video:before { - content: "\F36B"; -} - -.mdi-meteor:before { - content: "\F629"; -} - -.mdi-metronome:before { - content: "\F7D9"; -} - -.mdi-metronome-tick:before { - content: "\F7DA"; -} - -.mdi-micro-sd:before { - content: "\F7DB"; -} - -.mdi-microphone:before { - content: "\F36C"; -} - -.mdi-microphone-off:before { - content: "\F36D"; -} - -.mdi-microphone-outline:before { - content: "\F36E"; -} - -.mdi-microphone-settings:before { - content: "\F36F"; -} - -.mdi-microphone-variant:before { - content: "\F370"; -} - -.mdi-microphone-variant-off:before { - content: "\F371"; -} - -.mdi-microscope:before { - content: "\F654"; -} - -.mdi-microsoft:before { - content: "\F372"; -} - -.mdi-minecraft:before { - content: "\F373"; -} - -.mdi-minus:before { - content: "\F374"; -} - -.mdi-minus-box:before { - content: "\F375"; -} - -.mdi-minus-box-outline:before { - content: "\F6F1"; -} - -.mdi-minus-circle:before { - content: "\F376"; -} - -.mdi-minus-circle-outline:before { - content: "\F377"; -} - -.mdi-minus-network:before { - content: "\F378"; -} - -.mdi-mixcloud:before { - content: "\F62A"; -} - -.mdi-mixer:before { - content: "\F7DC"; -} - -.mdi-monitor:before { - content: "\F379"; -} - -.mdi-monitor-multiple:before { - content: "\F37A"; -} - -.mdi-more:before { - content: "\F37B"; -} - -.mdi-motorbike:before { - content: "\F37C"; -} - -.mdi-mouse:before { - content: "\F37D"; -} - -.mdi-mouse-off:before { - content: "\F37E"; -} - -.mdi-mouse-variant:before { - content: "\F37F"; -} - -.mdi-mouse-variant-off:before { - content: "\F380"; -} - -.mdi-move-resize:before { - content: "\F655"; -} - -.mdi-move-resize-variant:before { - content: "\F656"; -} - -.mdi-movie:before { - content: "\F381"; -} - -.mdi-movie-roll:before { - content: "\F7DD"; -} - -.mdi-multiplication:before { - content: "\F382"; -} - -.mdi-multiplication-box:before { - content: "\F383"; -} - -.mdi-mushroom:before { - content: "\F7DE"; -} - -.mdi-mushroom-outline:before { - content: "\F7DF"; -} - -.mdi-music:before { - content: "\F759"; -} - -.mdi-music-box:before { - content: "\F384"; -} - -.mdi-music-box-outline:before { - content: "\F385"; -} - -.mdi-music-circle:before { - content: "\F386"; -} - -.mdi-music-note:before { - content: "\F387"; -} - -.mdi-music-note-bluetooth:before { - content: "\F5FE"; -} - -.mdi-music-note-bluetooth-off:before { - content: "\F5FF"; -} - -.mdi-music-note-eighth:before { - content: "\F388"; -} - -.mdi-music-note-half:before { - content: "\F389"; -} - -.mdi-music-note-off:before { - content: "\F38A"; -} - -.mdi-music-note-quarter:before { - content: "\F38B"; -} - -.mdi-music-note-sixteenth:before { - content: "\F38C"; -} - -.mdi-music-note-whole:before { - content: "\F38D"; -} - -.mdi-music-off:before { - content: "\F75A"; -} - -.mdi-nature:before { - content: "\F38E"; -} - -.mdi-nature-people:before { - content: "\F38F"; -} - -.mdi-navigation:before { - content: "\F390"; -} - -.mdi-near-me:before { - content: "\F5CD"; -} - -.mdi-needle:before { - content: "\F391"; -} - -.mdi-nest-protect:before { - content: "\F392"; -} - -.mdi-nest-thermostat:before { - content: "\F393"; -} - -.mdi-netflix:before { - content: "\F745"; -} - -.mdi-network:before { - content: "\F6F2"; -} - -.mdi-new-box:before { - content: "\F394"; -} - -.mdi-newspaper:before { - content: "\F395"; -} - -.mdi-nfc:before { - content: "\F396"; -} - -.mdi-nfc-tap:before { - content: "\F397"; -} - -.mdi-nfc-variant:before { - content: "\F398"; -} - -.mdi-ninja:before { - content: "\F773"; -} - -.mdi-nintendo-switch:before { - content: "\F7E0"; -} - -.mdi-nodejs:before { - content: "\F399"; -} - -.mdi-note:before { - content: "\F39A"; -} - -.mdi-note-multiple:before { - content: "\F6B7"; -} - -.mdi-note-multiple-outline:before { - content: "\F6B8"; -} - -.mdi-note-outline:before { - content: "\F39B"; -} - -.mdi-note-plus:before { - content: "\F39C"; -} - -.mdi-note-plus-outline:before { - content: "\F39D"; -} - -.mdi-note-text:before { - content: "\F39E"; -} - -.mdi-notification-clear-all:before { - content: "\F39F"; -} - -.mdi-npm:before { - content: "\F6F6"; -} - -.mdi-nuke:before { - content: "\F6A3"; -} - -.mdi-null:before { - content: "\F7E1"; -} - -.mdi-numeric:before { - content: "\F3A0"; -} - -.mdi-numeric-0-box:before { - content: "\F3A1"; -} - -.mdi-numeric-0-box-multiple-outline:before { - content: "\F3A2"; -} - -.mdi-numeric-0-box-outline:before { - content: "\F3A3"; -} - -.mdi-numeric-1-box:before { - content: "\F3A4"; -} - -.mdi-numeric-1-box-multiple-outline:before { - content: "\F3A5"; -} - -.mdi-numeric-1-box-outline:before { - content: "\F3A6"; -} - -.mdi-numeric-2-box:before { - content: "\F3A7"; -} - -.mdi-numeric-2-box-multiple-outline:before { - content: "\F3A8"; -} - -.mdi-numeric-2-box-outline:before { - content: "\F3A9"; -} - -.mdi-numeric-3-box:before { - content: "\F3AA"; -} - -.mdi-numeric-3-box-multiple-outline:before { - content: "\F3AB"; -} - -.mdi-numeric-3-box-outline:before { - content: "\F3AC"; -} - -.mdi-numeric-4-box:before { - content: "\F3AD"; -} - -.mdi-numeric-4-box-multiple-outline:before { - content: "\F3AE"; -} - -.mdi-numeric-4-box-outline:before { - content: "\F3AF"; -} - -.mdi-numeric-5-box:before { - content: "\F3B0"; -} - -.mdi-numeric-5-box-multiple-outline:before { - content: "\F3B1"; -} - -.mdi-numeric-5-box-outline:before { - content: "\F3B2"; -} - -.mdi-numeric-6-box:before { - content: "\F3B3"; -} - -.mdi-numeric-6-box-multiple-outline:before { - content: "\F3B4"; -} - -.mdi-numeric-6-box-outline:before { - content: "\F3B5"; -} - -.mdi-numeric-7-box:before { - content: "\F3B6"; -} - -.mdi-numeric-7-box-multiple-outline:before { - content: "\F3B7"; -} - -.mdi-numeric-7-box-outline:before { - content: "\F3B8"; -} - -.mdi-numeric-8-box:before { - content: "\F3B9"; -} - -.mdi-numeric-8-box-multiple-outline:before { - content: "\F3BA"; -} - -.mdi-numeric-8-box-outline:before { - content: "\F3BB"; -} - -.mdi-numeric-9-box:before { - content: "\F3BC"; -} - -.mdi-numeric-9-box-multiple-outline:before { - content: "\F3BD"; -} - -.mdi-numeric-9-box-outline:before { - content: "\F3BE"; -} - -.mdi-numeric-9-plus-box:before { - content: "\F3BF"; -} - -.mdi-numeric-9-plus-box-multiple-outline:before { - content: "\F3C0"; -} - -.mdi-numeric-9-plus-box-outline:before { - content: "\F3C1"; -} - -.mdi-nut:before { - content: "\F6F7"; -} - -.mdi-nutrition:before { - content: "\F3C2"; -} - -.mdi-oar:before { - content: "\F67B"; -} - -.mdi-octagon:before { - content: "\F3C3"; -} - -.mdi-octagon-outline:before { - content: "\F3C4"; -} - -.mdi-octagram:before { - content: "\F6F8"; -} - -.mdi-octagram-outline:before { - content: "\F774"; -} - -.mdi-odnoklassniki:before { - content: "\F3C5"; -} - -.mdi-office:before { - content: "\F3C6"; -} - -.mdi-oil:before { - content: "\F3C7"; -} - -.mdi-oil-temperature:before { - content: "\F3C8"; -} - -.mdi-omega:before { - content: "\F3C9"; -} - -.mdi-onedrive:before { - content: "\F3CA"; -} - -.mdi-onenote:before { - content: "\F746"; -} - -.mdi-opacity:before { - content: "\F5CC"; -} - -.mdi-open-in-app:before { - content: "\F3CB"; -} - -.mdi-open-in-new:before { - content: "\F3CC"; -} - -.mdi-openid:before { - content: "\F3CD"; -} - -.mdi-opera:before { - content: "\F3CE"; -} - -.mdi-orbit:before { - content: "\F018"; -} - -.mdi-ornament:before { - content: "\F3CF"; -} - -.mdi-ornament-variant:before { - content: "\F3D0"; -} - -.mdi-owl:before { - content: "\F3D2"; -} - -.mdi-package:before { - content: "\F3D3"; -} - -.mdi-package-down:before { - content: "\F3D4"; -} - -.mdi-package-up:before { - content: "\F3D5"; -} - -.mdi-package-variant:before { - content: "\F3D6"; -} - -.mdi-package-variant-closed:before { - content: "\F3D7"; -} - -.mdi-page-first:before { - content: "\F600"; -} - -.mdi-page-last:before { - content: "\F601"; -} - -.mdi-page-layout-body:before { - content: "\F6F9"; -} - -.mdi-page-layout-footer:before { - content: "\F6FA"; -} - -.mdi-page-layout-header:before { - content: "\F6FB"; -} - -.mdi-page-layout-sidebar-left:before { - content: "\F6FC"; -} - -.mdi-page-layout-sidebar-right:before { - content: "\F6FD"; -} - -.mdi-palette:before { - content: "\F3D8"; -} - -.mdi-palette-advanced:before { - content: "\F3D9"; -} - -.mdi-panda:before { - content: "\F3DA"; -} - -.mdi-pandora:before { - content: "\F3DB"; -} - -.mdi-panorama:before { - content: "\F3DC"; -} - -.mdi-panorama-fisheye:before { - content: "\F3DD"; -} - -.mdi-panorama-horizontal:before { - content: "\F3DE"; -} - -.mdi-panorama-vertical:before { - content: "\F3DF"; -} - -.mdi-panorama-wide-angle:before { - content: "\F3E0"; -} - -.mdi-paper-cut-vertical:before { - content: "\F3E1"; -} - -.mdi-paperclip:before { - content: "\F3E2"; -} - -.mdi-parking:before { - content: "\F3E3"; -} - -.mdi-passport:before { - content: "\F7E2"; -} - -.mdi-pause:before { - content: "\F3E4"; -} - -.mdi-pause-circle:before { - content: "\F3E5"; -} - -.mdi-pause-circle-outline:before { - content: "\F3E6"; -} - -.mdi-pause-octagon:before { - content: "\F3E7"; -} - -.mdi-pause-octagon-outline:before { - content: "\F3E8"; -} - -.mdi-paw:before { - content: "\F3E9"; -} - -.mdi-paw-off:before { - content: "\F657"; -} - -.mdi-pen:before { - content: "\F3EA"; -} - -.mdi-pencil:before { - content: "\F3EB"; -} - -.mdi-pencil-box:before { - content: "\F3EC"; -} - -.mdi-pencil-box-outline:before { - content: "\F3ED"; -} - -.mdi-pencil-circle:before { - content: "\F6FE"; -} - -.mdi-pencil-circle-outline:before { - content: "\F775"; -} - -.mdi-pencil-lock:before { - content: "\F3EE"; -} - -.mdi-pencil-off:before { - content: "\F3EF"; -} - -.mdi-pentagon:before { - content: "\F6FF"; -} - -.mdi-pentagon-outline:before { - content: "\F700"; -} - -.mdi-percent:before { - content: "\F3F0"; -} - -.mdi-periodic-table-co2:before { - content: "\F7E3"; -} - -.mdi-periscope:before { - content: "\F747"; -} - -.mdi-pharmacy:before { - content: "\F3F1"; -} - -.mdi-phone:before { - content: "\F3F2"; -} - -.mdi-phone-bluetooth:before { - content: "\F3F3"; -} - -.mdi-phone-classic:before { - content: "\F602"; -} - -.mdi-phone-forward:before { - content: "\F3F4"; -} - -.mdi-phone-hangup:before { - content: "\F3F5"; -} - -.mdi-phone-in-talk:before { - content: "\F3F6"; -} - -.mdi-phone-incoming:before { - content: "\F3F7"; -} - -.mdi-phone-locked:before { - content: "\F3F8"; -} - -.mdi-phone-log:before { - content: "\F3F9"; -} - -.mdi-phone-minus:before { - content: "\F658"; -} - -.mdi-phone-missed:before { - content: "\F3FA"; -} - -.mdi-phone-outgoing:before { - content: "\F3FB"; -} - -.mdi-phone-paused:before { - content: "\F3FC"; -} - -.mdi-phone-plus:before { - content: "\F659"; -} - -.mdi-phone-settings:before { - content: "\F3FD"; -} - -.mdi-phone-voip:before { - content: "\F3FE"; -} - -.mdi-pi:before { - content: "\F3FF"; -} - -.mdi-pi-box:before { - content: "\F400"; -} - -.mdi-piano:before { - content: "\F67C"; -} - -.mdi-pig:before { - content: "\F401"; -} - -.mdi-pill:before { - content: "\F402"; -} - -.mdi-pillar:before { - content: "\F701"; -} - -.mdi-pin:before { - content: "\F403"; -} - -.mdi-pin-off:before { - content: "\F404"; -} - -.mdi-pine-tree:before { - content: "\F405"; -} - -.mdi-pine-tree-box:before { - content: "\F406"; -} - -.mdi-pinterest:before { - content: "\F407"; -} - -.mdi-pinterest-box:before { - content: "\F408"; -} - -.mdi-pipe:before { - content: "\F7E4"; -} - -.mdi-pipe-disconnected:before { - content: "\F7E5"; -} - -.mdi-pistol:before { - content: "\F702"; -} - -.mdi-pizza:before { - content: "\F409"; -} - -.mdi-plane-shield:before { - content: "\F6BA"; -} - -.mdi-play:before { - content: "\F40A"; -} - -.mdi-play-box-outline:before { - content: "\F40B"; -} - -.mdi-play-circle:before { - content: "\F40C"; -} - -.mdi-play-circle-outline:before { - content: "\F40D"; -} - -.mdi-play-pause:before { - content: "\F40E"; -} - -.mdi-play-protected-content:before { - content: "\F40F"; -} - -.mdi-playlist-check:before { - content: "\F5C7"; -} - -.mdi-playlist-minus:before { - content: "\F410"; -} - -.mdi-playlist-play:before { - content: "\F411"; -} - -.mdi-playlist-plus:before { - content: "\F412"; -} - -.mdi-playlist-remove:before { - content: "\F413"; -} - -.mdi-playstation:before { - content: "\F414"; -} - -.mdi-plex:before { - content: "\F6B9"; -} - -.mdi-plus:before { - content: "\F415"; -} - -.mdi-plus-box:before { - content: "\F416"; -} - -.mdi-plus-box-outline:before { - content: "\F703"; -} - -.mdi-plus-circle:before { - content: "\F417"; -} - -.mdi-plus-circle-multiple-outline:before { - content: "\F418"; -} - -.mdi-plus-circle-outline:before { - content: "\F419"; -} - -.mdi-plus-network:before { - content: "\F41A"; -} - -.mdi-plus-one:before { - content: "\F41B"; -} - -.mdi-plus-outline:before { - content: "\F704"; -} - -.mdi-pocket:before { - content: "\F41C"; -} - -.mdi-pokeball:before { - content: "\F41D"; -} - -.mdi-polaroid:before { - content: "\F41E"; -} - -.mdi-poll:before { - content: "\F41F"; -} - -.mdi-poll-box:before { - content: "\F420"; -} - -.mdi-polymer:before { - content: "\F421"; -} - -.mdi-pool:before { - content: "\F606"; -} - -.mdi-popcorn:before { - content: "\F422"; -} - -.mdi-pot:before { - content: "\F65A"; -} - -.mdi-pot-mix:before { - content: "\F65B"; -} - -.mdi-pound:before { - content: "\F423"; -} - -.mdi-pound-box:before { - content: "\F424"; -} - -.mdi-power:before { - content: "\F425"; -} - -.mdi-power-plug:before { - content: "\F6A4"; -} - -.mdi-power-plug-off:before { - content: "\F6A5"; -} - -.mdi-power-settings:before { - content: "\F426"; -} - -.mdi-power-socket:before { - content: "\F427"; -} - -.mdi-power-socket-eu:before { - content: "\F7E6"; -} - -.mdi-power-socket-uk:before { - content: "\F7E7"; -} - -.mdi-power-socket-us:before { - content: "\F7E8"; -} - -.mdi-prescription:before { - content: "\F705"; -} - -.mdi-presentation:before { - content: "\F428"; -} - -.mdi-presentation-play:before { - content: "\F429"; -} - -.mdi-printer:before { - content: "\F42A"; -} - -.mdi-printer-3d:before { - content: "\F42B"; -} - -.mdi-printer-alert:before { - content: "\F42C"; -} - -.mdi-printer-settings:before { - content: "\F706"; -} - -.mdi-priority-high:before { - content: "\F603"; -} - -.mdi-priority-low:before { - content: "\F604"; -} - -.mdi-professional-hexagon:before { - content: "\F42D"; -} - -.mdi-projector:before { - content: "\F42E"; -} - -.mdi-projector-screen:before { - content: "\F42F"; -} - -.mdi-publish:before { - content: "\F6A6"; -} - -.mdi-pulse:before { - content: "\F430"; -} - -.mdi-puzzle:before { - content: "\F431"; -} - -.mdi-qqchat:before { - content: "\F605"; -} - -.mdi-qrcode:before { - content: "\F432"; -} - -.mdi-qrcode-scan:before { - content: "\F433"; -} - -.mdi-quadcopter:before { - content: "\F434"; -} - -.mdi-quality-high:before { - content: "\F435"; -} - -.mdi-quicktime:before { - content: "\F436"; -} - -.mdi-radar:before { - content: "\F437"; -} - -.mdi-radiator:before { - content: "\F438"; -} - -.mdi-radio:before { - content: "\F439"; -} - -.mdi-radio-handheld:before { - content: "\F43A"; -} - -.mdi-radio-tower:before { - content: "\F43B"; -} - -.mdi-radioactive:before { - content: "\F43C"; -} - -.mdi-radiobox-blank:before { - content: "\F43D"; -} - -.mdi-radiobox-marked:before { - content: "\F43E"; -} - -.mdi-raspberrypi:before { - content: "\F43F"; -} - -.mdi-ray-end:before { - content: "\F440"; -} - -.mdi-ray-end-arrow:before { - content: "\F441"; -} - -.mdi-ray-start:before { - content: "\F442"; -} - -.mdi-ray-start-arrow:before { - content: "\F443"; -} - -.mdi-ray-start-end:before { - content: "\F444"; -} - -.mdi-ray-vertex:before { - content: "\F445"; -} - -.mdi-rdio:before { - content: "\F446"; -} - -.mdi-react:before { - content: "\F707"; -} - -.mdi-read:before { - content: "\F447"; -} - -.mdi-readability:before { - content: "\F448"; -} - -.mdi-receipt:before { - content: "\F449"; -} - -.mdi-record:before { - content: "\F44A"; -} - -.mdi-record-rec:before { - content: "\F44B"; -} - -.mdi-recycle:before { - content: "\F44C"; -} - -.mdi-reddit:before { - content: "\F44D"; -} - -.mdi-redo:before { - content: "\F44E"; -} - -.mdi-redo-variant:before { - content: "\F44F"; -} - -.mdi-refresh:before { - content: "\F450"; -} - -.mdi-regex:before { - content: "\F451"; -} - -.mdi-relative-scale:before { - content: "\F452"; -} - -.mdi-reload:before { - content: "\F453"; -} - -.mdi-remote:before { - content: "\F454"; -} - -.mdi-rename-box:before { - content: "\F455"; -} - -.mdi-reorder-horizontal:before { - content: "\F687"; -} - -.mdi-reorder-vertical:before { - content: "\F688"; -} - -.mdi-repeat:before { - content: "\F456"; -} - -.mdi-repeat-off:before { - content: "\F457"; -} - -.mdi-repeat-once:before { - content: "\F458"; -} - -.mdi-replay:before { - content: "\F459"; -} - -.mdi-reply:before { - content: "\F45A"; -} - -.mdi-reply-all:before { - content: "\F45B"; -} - -.mdi-reproduction:before { - content: "\F45C"; -} - -.mdi-resize-bottom-right:before { - content: "\F45D"; -} - -.mdi-responsive:before { - content: "\F45E"; -} - -.mdi-restart:before { - content: "\F708"; -} - -.mdi-restore:before { - content: "\F6A7"; -} - -.mdi-rewind:before { - content: "\F45F"; -} - -.mdi-rewind-outline:before { - content: "\F709"; -} - -.mdi-rhombus:before { - content: "\F70A"; -} - -.mdi-rhombus-outline:before { - content: "\F70B"; -} - -.mdi-ribbon:before { - content: "\F460"; -} - -.mdi-rice:before { - content: "\F7E9"; -} - -.mdi-ring:before { - content: "\F7EA"; -} - -.mdi-road:before { - content: "\F461"; -} - -.mdi-road-variant:before { - content: "\F462"; -} - -.mdi-robot:before { - content: "\F6A8"; -} - -.mdi-rocket:before { - content: "\F463"; -} - -.mdi-roomba:before { - content: "\F70C"; -} - -.mdi-rotate-3d:before { - content: "\F464"; -} - -.mdi-rotate-left:before { - content: "\F465"; -} - -.mdi-rotate-left-variant:before { - content: "\F466"; -} - -.mdi-rotate-right:before { - content: "\F467"; -} - -.mdi-rotate-right-variant:before { - content: "\F468"; -} - -.mdi-rounded-corner:before { - content: "\F607"; -} - -.mdi-router-wireless:before { - content: "\F469"; -} - -.mdi-routes:before { - content: "\F46A"; -} - -.mdi-rowing:before { - content: "\F608"; -} - -.mdi-rss:before { - content: "\F46B"; -} - -.mdi-rss-box:before { - content: "\F46C"; -} - -.mdi-ruler:before { - content: "\F46D"; -} - -.mdi-run:before { - content: "\F70D"; -} - -.mdi-run-fast:before { - content: "\F46E"; -} - -.mdi-sale:before { - content: "\F46F"; -} - -.mdi-sass:before { - content: "\F7EB"; -} - -.mdi-satellite:before { - content: "\F470"; -} - -.mdi-satellite-variant:before { - content: "\F471"; -} - -.mdi-saxophone:before { - content: "\F609"; -} - -.mdi-scale:before { - content: "\F472"; -} - -.mdi-scale-balance:before { - content: "\F5D1"; -} - -.mdi-scale-bathroom:before { - content: "\F473"; -} - -.mdi-scanner:before { - content: "\F6AA"; -} - -.mdi-school:before { - content: "\F474"; -} - -.mdi-screen-rotation:before { - content: "\F475"; -} - -.mdi-screen-rotation-lock:before { - content: "\F476"; -} - -.mdi-screwdriver:before { - content: "\F477"; -} - -.mdi-script:before { - content: "\F478"; -} - -.mdi-sd:before { - content: "\F479"; -} - -.mdi-seal:before { - content: "\F47A"; -} - -.mdi-search-web:before { - content: "\F70E"; -} - -.mdi-seat-flat:before { - content: "\F47B"; -} - -.mdi-seat-flat-angled:before { - content: "\F47C"; -} - -.mdi-seat-individual-suite:before { - content: "\F47D"; -} - -.mdi-seat-legroom-extra:before { - content: "\F47E"; -} - -.mdi-seat-legroom-normal:before { - content: "\F47F"; -} - -.mdi-seat-legroom-reduced:before { - content: "\F480"; -} - -.mdi-seat-recline-extra:before { - content: "\F481"; -} - -.mdi-seat-recline-normal:before { - content: "\F482"; -} - -.mdi-security:before { - content: "\F483"; -} - -.mdi-security-home:before { - content: "\F689"; -} - -.mdi-security-network:before { - content: "\F484"; -} - -.mdi-select:before { - content: "\F485"; -} - -.mdi-select-all:before { - content: "\F486"; -} - -.mdi-select-inverse:before { - content: "\F487"; -} - -.mdi-select-off:before { - content: "\F488"; -} - -.mdi-selection:before { - content: "\F489"; -} - -.mdi-selection-off:before { - content: "\F776"; -} - -.mdi-send:before { - content: "\F48A"; -} - -.mdi-send-secure:before { - content: "\F7EC"; -} - -.mdi-serial-port:before { - content: "\F65C"; -} - -.mdi-server:before { - content: "\F48B"; -} - -.mdi-server-minus:before { - content: "\F48C"; -} - -.mdi-server-network:before { - content: "\F48D"; -} - -.mdi-server-network-off:before { - content: "\F48E"; -} - -.mdi-server-off:before { - content: "\F48F"; -} - -.mdi-server-plus:before { - content: "\F490"; -} - -.mdi-server-remove:before { - content: "\F491"; -} - -.mdi-server-security:before { - content: "\F492"; -} - -.mdi-set-all:before { - content: "\F777"; -} - -.mdi-set-center:before { - content: "\F778"; -} - -.mdi-set-center-right:before { - content: "\F779"; -} - -.mdi-set-left:before { - content: "\F77A"; -} - -.mdi-set-left-center:before { - content: "\F77B"; -} - -.mdi-set-left-right:before { - content: "\F77C"; -} - -.mdi-set-none:before { - content: "\F77D"; -} - -.mdi-set-right:before { - content: "\F77E"; -} - -.mdi-settings:before { - content: "\F493"; -} - -.mdi-settings-box:before { - content: "\F494"; -} - -.mdi-shape-circle-plus:before { - content: "\F65D"; -} - -.mdi-shape-plus:before { - content: "\F495"; -} - -.mdi-shape-polygon-plus:before { - content: "\F65E"; -} - -.mdi-shape-rectangle-plus:before { - content: "\F65F"; -} - -.mdi-shape-square-plus:before { - content: "\F660"; -} - -.mdi-share:before { - content: "\F496"; -} - -.mdi-share-variant:before { - content: "\F497"; -} - -.mdi-shield:before { - content: "\F498"; -} - -.mdi-shield-half-full:before { - content: "\F77F"; -} - -.mdi-shield-outline:before { - content: "\F499"; -} - -.mdi-shopping:before { - content: "\F49A"; -} - -.mdi-shopping-music:before { - content: "\F49B"; -} - -.mdi-shovel:before { - content: "\F70F"; -} - -.mdi-shovel-off:before { - content: "\F710"; -} - -.mdi-shredder:before { - content: "\F49C"; -} - -.mdi-shuffle:before { - content: "\F49D"; -} - -.mdi-shuffle-disabled:before { - content: "\F49E"; -} - -.mdi-shuffle-variant:before { - content: "\F49F"; -} - -.mdi-sigma:before { - content: "\F4A0"; -} - -.mdi-sigma-lower:before { - content: "\F62B"; -} - -.mdi-sign-caution:before { - content: "\F4A1"; -} - -.mdi-sign-direction:before { - content: "\F780"; -} - -.mdi-sign-text:before { - content: "\F781"; -} - -.mdi-signal:before { - content: "\F4A2"; -} - -.mdi-signal-2g:before { - content: "\F711"; -} - -.mdi-signal-3g:before { - content: "\F712"; -} - -.mdi-signal-4g:before { - content: "\F713"; -} - -.mdi-signal-hspa:before { - content: "\F714"; -} - -.mdi-signal-hspa-plus:before { - content: "\F715"; -} - -.mdi-signal-off:before { - content: "\F782"; -} - -.mdi-signal-variant:before { - content: "\F60A"; -} - -.mdi-silverware:before { - content: "\F4A3"; -} - -.mdi-silverware-fork:before { - content: "\F4A4"; -} - -.mdi-silverware-spoon:before { - content: "\F4A5"; -} - -.mdi-silverware-variant:before { - content: "\F4A6"; -} - -.mdi-sim:before { - content: "\F4A7"; -} - -.mdi-sim-alert:before { - content: "\F4A8"; -} - -.mdi-sim-off:before { - content: "\F4A9"; -} - -.mdi-sitemap:before { - content: "\F4AA"; -} - -.mdi-skip-backward:before { - content: "\F4AB"; -} - -.mdi-skip-forward:before { - content: "\F4AC"; -} - -.mdi-skip-next:before { - content: "\F4AD"; -} - -.mdi-skip-next-circle:before { - content: "\F661"; -} - -.mdi-skip-next-circle-outline:before { - content: "\F662"; -} - -.mdi-skip-previous:before { - content: "\F4AE"; -} - -.mdi-skip-previous-circle:before { - content: "\F663"; -} - -.mdi-skip-previous-circle-outline:before { - content: "\F664"; -} - -.mdi-skull:before { - content: "\F68B"; -} - -.mdi-skype:before { - content: "\F4AF"; -} - -.mdi-skype-business:before { - content: "\F4B0"; -} - -.mdi-slack:before { - content: "\F4B1"; -} - -.mdi-sleep:before { - content: "\F4B2"; -} - -.mdi-sleep-off:before { - content: "\F4B3"; -} - -.mdi-smoking:before { - content: "\F4B4"; -} - -.mdi-smoking-off:before { - content: "\F4B5"; -} - -.mdi-snapchat:before { - content: "\F4B6"; -} - -.mdi-snowflake:before { - content: "\F716"; -} - -.mdi-snowman:before { - content: "\F4B7"; -} - -.mdi-soccer:before { - content: "\F4B8"; -} - -.mdi-sofa:before { - content: "\F4B9"; -} - -.mdi-solid:before { - content: "\F68C"; -} - -.mdi-sort:before { - content: "\F4BA"; -} - -.mdi-sort-alphabetical:before { - content: "\F4BB"; -} - -.mdi-sort-ascending:before { - content: "\F4BC"; -} - -.mdi-sort-descending:before { - content: "\F4BD"; -} - -.mdi-sort-numeric:before { - content: "\F4BE"; -} - -.mdi-sort-variant:before { - content: "\F4BF"; -} - -.mdi-soundcloud:before { - content: "\F4C0"; -} - -.mdi-source-branch:before { - content: "\F62C"; -} - -.mdi-source-commit:before { - content: "\F717"; -} - -.mdi-source-commit-end:before { - content: "\F718"; -} - -.mdi-source-commit-end-local:before { - content: "\F719"; -} - -.mdi-source-commit-local:before { - content: "\F71A"; -} - -.mdi-source-commit-next-local:before { - content: "\F71B"; -} - -.mdi-source-commit-start:before { - content: "\F71C"; -} - -.mdi-source-commit-start-next-local:before { - content: "\F71D"; -} - -.mdi-source-fork:before { - content: "\F4C1"; -} - -.mdi-source-merge:before { - content: "\F62D"; -} - -.mdi-source-pull:before { - content: "\F4C2"; -} - -.mdi-soy-sauce:before { - content: "\F7ED"; -} - -.mdi-speaker:before { - content: "\F4C3"; -} - -.mdi-speaker-off:before { - content: "\F4C4"; -} - -.mdi-speaker-wireless:before { - content: "\F71E"; -} - -.mdi-speedometer:before { - content: "\F4C5"; -} - -.mdi-spellcheck:before { - content: "\F4C6"; -} - -.mdi-spotify:before { - content: "\F4C7"; -} - -.mdi-spotlight:before { - content: "\F4C8"; -} - -.mdi-spotlight-beam:before { - content: "\F4C9"; -} - -.mdi-spray:before { - content: "\F665"; -} - -.mdi-square:before { - content: "\F763"; -} - -.mdi-square-inc:before { - content: "\F4CA"; -} - -.mdi-square-inc-cash:before { - content: "\F4CB"; -} - -.mdi-square-outline:before { - content: "\F762"; -} - -.mdi-square-root:before { - content: "\F783"; -} - -.mdi-stackexchange:before { - content: "\F60B"; -} - -.mdi-stackoverflow:before { - content: "\F4CC"; -} - -.mdi-stadium:before { - content: "\F71F"; -} - -.mdi-stairs:before { - content: "\F4CD"; -} - -.mdi-standard-definition:before { - content: "\F7EE"; -} - -.mdi-star:before { - content: "\F4CE"; -} - -.mdi-star-circle:before { - content: "\F4CF"; -} - -.mdi-star-half:before { - content: "\F4D0"; -} - -.mdi-star-off:before { - content: "\F4D1"; -} - -.mdi-star-outline:before { - content: "\F4D2"; -} - -.mdi-steam:before { - content: "\F4D3"; -} - -.mdi-steering:before { - content: "\F4D4"; -} - -.mdi-step-backward:before { - content: "\F4D5"; -} - -.mdi-step-backward-2:before { - content: "\F4D6"; -} - -.mdi-step-forward:before { - content: "\F4D7"; -} - -.mdi-step-forward-2:before { - content: "\F4D8"; -} - -.mdi-stethoscope:before { - content: "\F4D9"; -} - -.mdi-sticker:before { - content: "\F5D0"; -} - -.mdi-sticker-emoji:before { - content: "\F784"; -} - -.mdi-stocking:before { - content: "\F4DA"; -} - -.mdi-stop:before { - content: "\F4DB"; -} - -.mdi-stop-circle:before { - content: "\F666"; -} - -.mdi-stop-circle-outline:before { - content: "\F667"; -} - -.mdi-store:before { - content: "\F4DC"; -} - -.mdi-store-24-hour:before { - content: "\F4DD"; -} - -.mdi-stove:before { - content: "\F4DE"; -} - -.mdi-subdirectory-arrow-left:before { - content: "\F60C"; -} - -.mdi-subdirectory-arrow-right:before { - content: "\F60D"; -} - -.mdi-subway:before { - content: "\F6AB"; -} - -.mdi-subway-variant:before { - content: "\F4DF"; -} - -.mdi-summit:before { - content: "\F785"; -} - -.mdi-sunglasses:before { - content: "\F4E0"; -} - -.mdi-surround-sound:before { - content: "\F5C5"; -} - -.mdi-surround-sound-2-0:before { - content: "\F7EF"; -} - -.mdi-surround-sound-3-1:before { - content: "\F7F0"; -} - -.mdi-surround-sound-5-1:before { - content: "\F7F1"; -} - -.mdi-surround-sound-7-1:before { - content: "\F7F2"; -} - -.mdi-svg:before { - content: "\F720"; -} - -.mdi-swap-horizontal:before { - content: "\F4E1"; -} - -.mdi-swap-vertical:before { - content: "\F4E2"; -} - -.mdi-swim:before { - content: "\F4E3"; -} - -.mdi-switch:before { - content: "\F4E4"; -} - -.mdi-sword:before { - content: "\F4E5"; -} - -.mdi-sword-cross:before { - content: "\F786"; -} - -.mdi-sync:before { - content: "\F4E6"; -} - -.mdi-sync-alert:before { - content: "\F4E7"; -} - -.mdi-sync-off:before { - content: "\F4E8"; -} - -.mdi-tab:before { - content: "\F4E9"; -} - -.mdi-tab-plus:before { - content: "\F75B"; -} - -.mdi-tab-unselected:before { - content: "\F4EA"; -} - -.mdi-table:before { - content: "\F4EB"; -} - -.mdi-table-column-plus-after:before { - content: "\F4EC"; -} - -.mdi-table-column-plus-before:before { - content: "\F4ED"; -} - -.mdi-table-column-remove:before { - content: "\F4EE"; -} - -.mdi-table-column-width:before { - content: "\F4EF"; -} - -.mdi-table-edit:before { - content: "\F4F0"; -} - -.mdi-table-large:before { - content: "\F4F1"; -} - -.mdi-table-row-height:before { - content: "\F4F2"; -} - -.mdi-table-row-plus-after:before { - content: "\F4F3"; -} - -.mdi-table-row-plus-before:before { - content: "\F4F4"; -} - -.mdi-table-row-remove:before { - content: "\F4F5"; -} - -.mdi-tablet:before { - content: "\F4F6"; -} - -.mdi-tablet-android:before { - content: "\F4F7"; -} - -.mdi-tablet-ipad:before { - content: "\F4F8"; -} - -.mdi-taco:before { - content: "\F761"; -} - -.mdi-tag:before { - content: "\F4F9"; -} - -.mdi-tag-faces:before { - content: "\F4FA"; -} - -.mdi-tag-heart:before { - content: "\F68A"; -} - -.mdi-tag-multiple:before { - content: "\F4FB"; -} - -.mdi-tag-outline:before { - content: "\F4FC"; -} - -.mdi-tag-plus:before { - content: "\F721"; -} - -.mdi-tag-remove:before { - content: "\F722"; -} - -.mdi-tag-text-outline:before { - content: "\F4FD"; -} - -.mdi-target:before { - content: "\F4FE"; -} - -.mdi-taxi:before { - content: "\F4FF"; -} - -.mdi-teamviewer:before { - content: "\F500"; -} - -.mdi-telegram:before { - content: "\F501"; -} - -.mdi-television:before { - content: "\F502"; -} - -.mdi-television-classic:before { - content: "\F7F3"; -} - -.mdi-television-guide:before { - content: "\F503"; -} - -.mdi-temperature-celsius:before { - content: "\F504"; -} - -.mdi-temperature-fahrenheit:before { - content: "\F505"; -} - -.mdi-temperature-kelvin:before { - content: "\F506"; -} - -.mdi-tennis:before { - content: "\F507"; -} - -.mdi-tent:before { - content: "\F508"; -} - -.mdi-terrain:before { - content: "\F509"; -} - -.mdi-test-tube:before { - content: "\F668"; -} - -.mdi-text-shadow:before { - content: "\F669"; -} - -.mdi-text-to-speech:before { - content: "\F50A"; -} - -.mdi-text-to-speech-off:before { - content: "\F50B"; -} - -.mdi-textbox:before { - content: "\F60E"; -} - -.mdi-textbox-password:before { - content: "\F7F4"; -} - -.mdi-texture:before { - content: "\F50C"; -} - -.mdi-theater:before { - content: "\F50D"; -} - -.mdi-theme-light-dark:before { - content: "\F50E"; -} - -.mdi-thermometer:before { - content: "\F50F"; -} - -.mdi-thermometer-lines:before { - content: "\F510"; -} - -.mdi-thought-bubble:before { - content: "\F7F5"; -} - -.mdi-thought-bubble-outline:before { - content: "\F7F6"; -} - -.mdi-thumb-down:before { - content: "\F511"; -} - -.mdi-thumb-down-outline:before { - content: "\F512"; -} - -.mdi-thumb-up:before { - content: "\F513"; -} - -.mdi-thumb-up-outline:before { - content: "\F514"; -} - -.mdi-thumbs-up-down:before { - content: "\F515"; -} - -.mdi-ticket:before { - content: "\F516"; -} - -.mdi-ticket-account:before { - content: "\F517"; -} - -.mdi-ticket-confirmation:before { - content: "\F518"; -} - -.mdi-ticket-percent:before { - content: "\F723"; -} - -.mdi-tie:before { - content: "\F519"; -} - -.mdi-tilde:before { - content: "\F724"; -} - -.mdi-timelapse:before { - content: "\F51A"; -} - -.mdi-timer:before { - content: "\F51B"; -} - -.mdi-timer-10:before { - content: "\F51C"; -} - -.mdi-timer-3:before { - content: "\F51D"; -} - -.mdi-timer-off:before { - content: "\F51E"; -} - -.mdi-timer-sand:before { - content: "\F51F"; -} - -.mdi-timer-sand-empty:before { - content: "\F6AC"; -} - -.mdi-timer-sand-full:before { - content: "\F78B"; -} - -.mdi-timetable:before { - content: "\F520"; -} - -.mdi-toggle-switch:before { - content: "\F521"; -} - -.mdi-toggle-switch-off:before { - content: "\F522"; -} - -.mdi-tooltip:before { - content: "\F523"; -} - -.mdi-tooltip-edit:before { - content: "\F524"; -} - -.mdi-tooltip-image:before { - content: "\F525"; -} - -.mdi-tooltip-outline:before { - content: "\F526"; -} - -.mdi-tooltip-outline-plus:before { - content: "\F527"; -} - -.mdi-tooltip-text:before { - content: "\F528"; -} - -.mdi-tooth:before { - content: "\F529"; -} - -.mdi-tor:before { - content: "\F52A"; -} - -.mdi-tower-beach:before { - content: "\F680"; -} - -.mdi-tower-fire:before { - content: "\F681"; -} - -.mdi-trackpad:before { - content: "\F7F7"; -} - -.mdi-traffic-light:before { - content: "\F52B"; -} - -.mdi-train:before { - content: "\F52C"; -} - -.mdi-tram:before { - content: "\F52D"; -} - -.mdi-transcribe:before { - content: "\F52E"; -} - -.mdi-transcribe-close:before { - content: "\F52F"; -} - -.mdi-transfer:before { - content: "\F530"; -} - -.mdi-transit-transfer:before { - content: "\F6AD"; -} - -.mdi-translate:before { - content: "\F5CA"; -} - -.mdi-treasure-chest:before { - content: "\F725"; -} - -.mdi-tree:before { - content: "\F531"; -} - -.mdi-trello:before { - content: "\F532"; -} - -.mdi-trending-down:before { - content: "\F533"; -} - -.mdi-trending-neutral:before { - content: "\F534"; -} - -.mdi-trending-up:before { - content: "\F535"; -} - -.mdi-triangle:before { - content: "\F536"; -} - -.mdi-triangle-outline:before { - content: "\F537"; -} - -.mdi-trophy:before { - content: "\F538"; -} - -.mdi-trophy-award:before { - content: "\F539"; -} - -.mdi-trophy-outline:before { - content: "\F53A"; -} - -.mdi-trophy-variant:before { - content: "\F53B"; -} - -.mdi-trophy-variant-outline:before { - content: "\F53C"; -} - -.mdi-truck:before { - content: "\F53D"; -} - -.mdi-truck-delivery:before { - content: "\F53E"; -} - -.mdi-truck-fast:before { - content: "\F787"; -} - -.mdi-truck-trailer:before { - content: "\F726"; -} - -.mdi-tshirt-crew:before { - content: "\F53F"; -} - -.mdi-tshirt-v:before { - content: "\F540"; -} - -.mdi-tumblr:before { - content: "\F541"; -} - -.mdi-tumblr-reblog:before { - content: "\F542"; -} - -.mdi-tune:before { - content: "\F62E"; -} - -.mdi-tune-vertical:before { - content: "\F66A"; -} - -.mdi-twitch:before { - content: "\F543"; -} - -.mdi-twitter:before { - content: "\F544"; -} - -.mdi-twitter-box:before { - content: "\F545"; -} - -.mdi-twitter-circle:before { - content: "\F546"; -} - -.mdi-twitter-retweet:before { - content: "\F547"; -} - -.mdi-uber:before { - content: "\F748"; -} - -.mdi-ubuntu:before { - content: "\F548"; -} - -.mdi-ultra-high-definition:before { - content: "\F7F8"; -} - -.mdi-umbraco:before { - content: "\F549"; -} - -.mdi-umbrella:before { - content: "\F54A"; -} - -.mdi-umbrella-outline:before { - content: "\F54B"; -} - -.mdi-undo:before { - content: "\F54C"; -} - -.mdi-undo-variant:before { - content: "\F54D"; -} - -.mdi-unfold-less-horizontal:before { - content: "\F54E"; -} - -.mdi-unfold-less-vertical:before { - content: "\F75F"; -} - -.mdi-unfold-more-horizontal:before { - content: "\F54F"; -} - -.mdi-unfold-more-vertical:before { - content: "\F760"; -} - -.mdi-ungroup:before { - content: "\F550"; -} - -.mdi-unity:before { - content: "\F6AE"; -} - -.mdi-untappd:before { - content: "\F551"; -} - -.mdi-update:before { - content: "\F6AF"; -} - -.mdi-upload:before { - content: "\F552"; -} - -.mdi-upload-network:before { - content: "\F6F5"; -} - -.mdi-usb:before { - content: "\F553"; -} - -.mdi-van-passenger:before { - content: "\F7F9"; -} - -.mdi-van-utility:before { - content: "\F7FA"; -} - -.mdi-vanish:before { - content: "\F7FB"; -} - -.mdi-vector-arrange-above:before { - content: "\F554"; -} - -.mdi-vector-arrange-below:before { - content: "\F555"; -} - -.mdi-vector-circle:before { - content: "\F556"; -} - -.mdi-vector-circle-variant:before { - content: "\F557"; -} - -.mdi-vector-combine:before { - content: "\F558"; -} - -.mdi-vector-curve:before { - content: "\F559"; -} - -.mdi-vector-difference:before { - content: "\F55A"; -} - -.mdi-vector-difference-ab:before { - content: "\F55B"; -} - -.mdi-vector-difference-ba:before { - content: "\F55C"; -} - -.mdi-vector-intersection:before { - content: "\F55D"; -} - -.mdi-vector-line:before { - content: "\F55E"; -} - -.mdi-vector-point:before { - content: "\F55F"; -} - -.mdi-vector-polygon:before { - content: "\F560"; -} - -.mdi-vector-polyline:before { - content: "\F561"; -} - -.mdi-vector-radius:before { - content: "\F749"; -} - -.mdi-vector-rectangle:before { - content: "\F5C6"; -} - -.mdi-vector-selection:before { - content: "\F562"; -} - -.mdi-vector-square:before { - content: "\F001"; -} - -.mdi-vector-triangle:before { - content: "\F563"; -} - -.mdi-vector-union:before { - content: "\F564"; -} - -.mdi-verified:before { - content: "\F565"; -} - -.mdi-vibrate:before { - content: "\F566"; -} - -.mdi-video:before { - content: "\F567"; -} - -.mdi-video-3d:before { - content: "\F7FC"; -} - -.mdi-video-off:before { - content: "\F568"; -} - -.mdi-video-switch:before { - content: "\F569"; -} - -.mdi-view-agenda:before { - content: "\F56A"; -} - -.mdi-view-array:before { - content: "\F56B"; -} - -.mdi-view-carousel:before { - content: "\F56C"; -} - -.mdi-view-column:before { - content: "\F56D"; -} - -.mdi-view-dashboard:before { - content: "\F56E"; -} - -.mdi-view-day:before { - content: "\F56F"; -} - -.mdi-view-grid:before { - content: "\F570"; -} - -.mdi-view-headline:before { - content: "\F571"; -} - -.mdi-view-list:before { - content: "\F572"; -} - -.mdi-view-module:before { - content: "\F573"; -} - -.mdi-view-parallel:before { - content: "\F727"; -} - -.mdi-view-quilt:before { - content: "\F574"; -} - -.mdi-view-sequential:before { - content: "\F728"; -} - -.mdi-view-stream:before { - content: "\F575"; -} - -.mdi-view-week:before { - content: "\F576"; -} - -.mdi-vimeo:before { - content: "\F577"; -} - -.mdi-vine:before { - content: "\F578"; -} - -.mdi-violin:before { - content: "\F60F"; -} - -.mdi-visualstudio:before { - content: "\F610"; -} - -.mdi-vk:before { - content: "\F579"; -} - -.mdi-vk-box:before { - content: "\F57A"; -} - -.mdi-vk-circle:before { - content: "\F57B"; -} - -.mdi-vlc:before { - content: "\F57C"; -} - -.mdi-voice:before { - content: "\F5CB"; -} - -.mdi-voicemail:before { - content: "\F57D"; -} - -.mdi-volume-high:before { - content: "\F57E"; -} - -.mdi-volume-low:before { - content: "\F57F"; -} - -.mdi-volume-medium:before { - content: "\F580"; -} - -.mdi-volume-minus:before { - content: "\F75D"; -} - -.mdi-volume-mute:before { - content: "\F75E"; -} - -.mdi-volume-off:before { - content: "\F581"; -} - -.mdi-volume-plus:before { - content: "\F75C"; -} - -.mdi-vpn:before { - content: "\F582"; -} - -.mdi-walk:before { - content: "\F583"; -} - -.mdi-wall:before { - content: "\F7FD"; -} - -.mdi-wallet:before { - content: "\F584"; -} - -.mdi-wallet-giftcard:before { - content: "\F585"; -} - -.mdi-wallet-membership:before { - content: "\F586"; -} - -.mdi-wallet-travel:before { - content: "\F587"; -} - -.mdi-wan:before { - content: "\F588"; -} - -.mdi-washing-machine:before { - content: "\F729"; -} - -.mdi-watch:before { - content: "\F589"; -} - -.mdi-watch-export:before { - content: "\F58A"; -} - -.mdi-watch-import:before { - content: "\F58B"; -} - -.mdi-watch-vibrate:before { - content: "\F6B0"; -} - -.mdi-water:before { - content: "\F58C"; -} - -.mdi-water-off:before { - content: "\F58D"; -} - -.mdi-water-percent:before { - content: "\F58E"; -} - -.mdi-water-pump:before { - content: "\F58F"; -} - -.mdi-watermark:before { - content: "\F612"; -} - -.mdi-waves:before { - content: "\F78C"; -} - -.mdi-weather-cloudy:before { - content: "\F590"; -} - -.mdi-weather-fog:before { - content: "\F591"; -} - -.mdi-weather-hail:before { - content: "\F592"; -} - -.mdi-weather-lightning:before { - content: "\F593"; -} - -.mdi-weather-lightning-rainy:before { - content: "\F67D"; -} - -.mdi-weather-night:before { - content: "\F594"; -} - -.mdi-weather-partlycloudy:before { - content: "\F595"; -} - -.mdi-weather-pouring:before { - content: "\F596"; -} - -.mdi-weather-rainy:before { - content: "\F597"; -} - -.mdi-weather-snowy:before { - content: "\F598"; -} - -.mdi-weather-snowy-rainy:before { - content: "\F67E"; -} - -.mdi-weather-sunny:before { - content: "\F599"; -} - -.mdi-weather-sunset:before { - content: "\F59A"; -} - -.mdi-weather-sunset-down:before { - content: "\F59B"; -} - -.mdi-weather-sunset-up:before { - content: "\F59C"; -} - -.mdi-weather-windy:before { - content: "\F59D"; -} - -.mdi-weather-windy-variant:before { - content: "\F59E"; -} - -.mdi-web:before { - content: "\F59F"; -} - -.mdi-webcam:before { - content: "\F5A0"; -} - -.mdi-webhook:before { - content: "\F62F"; -} - -.mdi-webpack:before { - content: "\F72A"; -} - -.mdi-wechat:before { - content: "\F611"; -} - -.mdi-weight:before { - content: "\F5A1"; -} - -.mdi-weight-kilogram:before { - content: "\F5A2"; -} - -.mdi-whatsapp:before { - content: "\F5A3"; -} - -.mdi-wheelchair-accessibility:before { - content: "\F5A4"; -} - -.mdi-white-balance-auto:before { - content: "\F5A5"; -} - -.mdi-white-balance-incandescent:before { - content: "\F5A6"; -} - -.mdi-white-balance-iridescent:before { - content: "\F5A7"; -} - -.mdi-white-balance-sunny:before { - content: "\F5A8"; -} - -.mdi-widgets:before { - content: "\F72B"; -} - -.mdi-wifi:before { - content: "\F5A9"; -} - -.mdi-wifi-off:before { - content: "\F5AA"; -} - -.mdi-wii:before { - content: "\F5AB"; -} - -.mdi-wiiu:before { - content: "\F72C"; -} - -.mdi-wikipedia:before { - content: "\F5AC"; -} - -.mdi-window-close:before { - content: "\F5AD"; -} - -.mdi-window-closed:before { - content: "\F5AE"; -} - -.mdi-window-maximize:before { - content: "\F5AF"; -} - -.mdi-window-minimize:before { - content: "\F5B0"; -} - -.mdi-window-open:before { - content: "\F5B1"; -} - -.mdi-window-restore:before { - content: "\F5B2"; -} - -.mdi-windows:before { - content: "\F5B3"; -} - -.mdi-wordpress:before { - content: "\F5B4"; -} - -.mdi-worker:before { - content: "\F5B5"; -} - -.mdi-wrap:before { - content: "\F5B6"; -} - -.mdi-wrench:before { - content: "\F5B7"; -} - -.mdi-wunderlist:before { - content: "\F5B8"; -} - -.mdi-xaml:before { - content: "\F673"; -} - -.mdi-xbox:before { - content: "\F5B9"; -} - -.mdi-xbox-controller:before { - content: "\F5BA"; -} - -.mdi-xbox-controller-battery-alert:before { - content: "\F74A"; -} - -.mdi-xbox-controller-battery-empty:before { - content: "\F74B"; -} - -.mdi-xbox-controller-battery-full:before { - content: "\F74C"; -} - -.mdi-xbox-controller-battery-low:before { - content: "\F74D"; -} - -.mdi-xbox-controller-battery-medium:before { - content: "\F74E"; -} - -.mdi-xbox-controller-battery-unknown:before { - content: "\F74F"; -} - -.mdi-xbox-controller-off:before { - content: "\F5BB"; -} - -.mdi-xda:before { - content: "\F5BC"; -} - -.mdi-xing:before { - content: "\F5BD"; -} - -.mdi-xing-box:before { - content: "\F5BE"; -} - -.mdi-xing-circle:before { - content: "\F5BF"; -} - -.mdi-xml:before { - content: "\F5C0"; -} - -.mdi-xmpp:before { - content: "\F7FE"; -} - -.mdi-yammer:before { - content: "\F788"; -} - -.mdi-yeast:before { - content: "\F5C1"; -} - -.mdi-yelp:before { - content: "\F5C2"; -} - -.mdi-yin-yang:before { - content: "\F67F"; -} - -.mdi-youtube-play:before { - content: "\F5C3"; -} - -.mdi-zip-box:before { - content: "\F5C4"; -} - -.mdi-blank:before { - content: "\F68C"; - visibility: hidden; -} - -.mdi-18px.mdi-set, .mdi-18px.mdi:before { - font-size: 18px; -} - -.mdi-24px.mdi-set, .mdi-24px.mdi:before { - font-size: 24px; -} - -.mdi-36px.mdi-set, .mdi-36px.mdi:before { - font-size: 36px; -} - -.mdi-48px.mdi-set, .mdi-48px.mdi:before { - font-size: 48px; -} - -.mdi-dark:before { - color: rgba(0, 0, 0, 0.54); -} - -.mdi-dark.mdi-inactive:before { - color: rgba(0, 0, 0, 0.26); -} - -.mdi-light:before { - color: white; -} - -.mdi-light.mdi-inactive:before { - color: rgba(255, 255, 255, 0.3); -} - -.mdi-rotate-45 { - /* - // Not included in production - &.mdi-flip-h:before { - -webkit-transform: scaleX(-1) rotate(45deg); - transform: scaleX(-1) rotate(45deg); - filter: FlipH; - -ms-filter: "FlipH"; - } - &.mdi-flip-v:before { - -webkit-transform: scaleY(-1) rotate(45deg); - -ms-transform: rotate(45deg); - transform: scaleY(-1) rotate(45deg); - filter: FlipV; - -ms-filter: "FlipV"; - } - */ -} - -.mdi-rotate-45:before { - -webkit-transform: rotate(45deg); - -ms-transform: rotate(45deg); - transform: rotate(45deg); -} - -.mdi-rotate-90 { - /* - // Not included in production - &.mdi-flip-h:before { - -webkit-transform: scaleX(-1) rotate(90deg); - transform: scaleX(-1) rotate(90deg); - filter: FlipH; - -ms-filter: "FlipH"; - } - &.mdi-flip-v:before { - -webkit-transform: scaleY(-1) rotate(90deg); - -ms-transform: rotate(90deg); - transform: scaleY(-1) rotate(90deg); - filter: FlipV; - -ms-filter: "FlipV"; - } - */ -} - -.mdi-rotate-90:before { - -webkit-transform: rotate(90deg); - -ms-transform: rotate(90deg); - transform: rotate(90deg); -} - -.mdi-rotate-135 { - /* - // Not included in production - &.mdi-flip-h:before { - -webkit-transform: scaleX(-1) rotate(135deg); - transform: scaleX(-1) rotate(135deg); - filter: FlipH; - -ms-filter: "FlipH"; - } - &.mdi-flip-v:before { - -webkit-transform: scaleY(-1) rotate(135deg); - -ms-transform: rotate(135deg); - transform: scaleY(-1) rotate(135deg); - filter: FlipV; - -ms-filter: "FlipV"; - } - */ -} - -.mdi-rotate-135:before { - -webkit-transform: rotate(135deg); - -ms-transform: rotate(135deg); - transform: rotate(135deg); -} - -.mdi-rotate-180 { - /* - // Not included in production - &.mdi-flip-h:before { - -webkit-transform: scaleX(-1) rotate(180deg); - transform: scaleX(-1) rotate(180deg); - filter: FlipH; - -ms-filter: "FlipH"; - } - &.mdi-flip-v:before { - -webkit-transform: scaleY(-1) rotate(180deg); - -ms-transform: rotate(180deg); - transform: scaleY(-1) rotate(180deg); - filter: FlipV; - -ms-filter: "FlipV"; - } - */ -} - -.mdi-rotate-180:before { - -webkit-transform: rotate(180deg); - -ms-transform: rotate(180deg); - transform: rotate(180deg); -} - -.mdi-rotate-225 { - /* - // Not included in production - &.mdi-flip-h:before { - -webkit-transform: scaleX(-1) rotate(225deg); - transform: scaleX(-1) rotate(225deg); - filter: FlipH; - -ms-filter: "FlipH"; - } - &.mdi-flip-v:before { - -webkit-transform: scaleY(-1) rotate(225deg); - -ms-transform: rotate(225deg); - transform: scaleY(-1) rotate(225deg); - filter: FlipV; - -ms-filter: "FlipV"; - } - */ -} - -.mdi-rotate-225:before { - -webkit-transform: rotate(225deg); - -ms-transform: rotate(225deg); - transform: rotate(225deg); -} - -.mdi-rotate-270 { - /* - // Not included in production - &.mdi-flip-h:before { - -webkit-transform: scaleX(-1) rotate(270deg); - transform: scaleX(-1) rotate(270deg); - filter: FlipH; - -ms-filter: "FlipH"; - } - &.mdi-flip-v:before { - -webkit-transform: scaleY(-1) rotate(270deg); - -ms-transform: rotate(270deg); - transform: scaleY(-1) rotate(270deg); - filter: FlipV; - -ms-filter: "FlipV"; - } - */ -} - -.mdi-rotate-270:before { - -webkit-transform: rotate(270deg); - -ms-transform: rotate(270deg); - transform: rotate(270deg); -} - -.mdi-rotate-315 { - /* - // Not included in production - &.mdi-flip-h:before { - -webkit-transform: scaleX(-1) rotate(315deg); - transform: scaleX(-1) rotate(315deg); - filter: FlipH; - -ms-filter: "FlipH"; - } - &.mdi-flip-v:before { - -webkit-transform: scaleY(-1) rotate(315deg); - -ms-transform: rotate(315deg); - transform: scaleY(-1) rotate(315deg); - filter: FlipV; - -ms-filter: "FlipV"; - } - */ -} - -.mdi-rotate-315:before { - -webkit-transform: rotate(315deg); - -ms-transform: rotate(315deg); - transform: rotate(315deg); -} - -.mdi-flip-h:before { - -webkit-transform: scaleX(-1); - transform: scaleX(-1); - filter: FlipH; - -ms-filter: "FlipH"; -} - -.mdi-flip-v:before { - -webkit-transform: scaleY(-1); - transform: scaleY(-1); - filter: FlipV; - -ms-filter: "FlipV"; -} - -.mdi-spin:before { - -webkit-animation: mdi-spin 2s infinite linear; - animation: mdi-spin 2s infinite linear; -} - -@-webkit-keyframes mdi-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} - -@keyframes mdi-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} - -@font-face { - font-family: "feather"; - src: url("../fonts/feather-webfont.eot"); - src: url("../fonts/feather-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/feather-webfont.woff") format("woff"), url("../fonts/feather-webfont.ttf") format("truetype"), url("../fonts/feather-webfont.svg#feather") format("svg"); - font-weight: normal; - font-style: normal; -} - -/* Character Mapping Method */ -[data-fi]:before { - display: inline-block; - font-family: "feather"; - content: attr(data-icon); - font-style: normal; - font-weight: normal; - font-variant: normal; - text-transform: none; - line-height: 1; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -/* CSS Class Mapping Method */ -[class^="fi-"], -[class*=" fi-"] { - display: inline-block; - font-family: "feather"; - font-style: normal; - font-weight: normal; - font-variant: normal; - text-transform: none; - line-height: 1; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -.fi-eye:before { - content: "\e000"; -} - -.fi-paper-clip:before { - content: "\e001"; -} - -.fi-mail:before { - content: "\e002"; -} - -.fi-mail:before { - content: "\e002"; -} - -.fi-toggle:before { - content: "\e003"; -} - -.fi-layout:before { - content: "\e004"; -} - -.fi-link:before { - content: "\e005"; -} - -.fi-bell:before { - content: "\e006"; -} - -.fi-lock:before { - content: "\e007"; -} - -.fi-unlock:before { - content: "\e008"; -} - -.fi-ribbon:before { - content: "\e009"; -} - -.fi-image:before { - content: "\e010"; -} - -.fi-signal:before { - content: "\e011"; -} - -.fi-target:before { - content: "\e012"; -} - -.fi-clipboard:before { - content: "\e013"; -} - -.fi-clock:before { - content: "\e014"; -} - -.fi-clock:before { - content: "\e014"; -} - -.fi-watch:before { - content: "\e015"; -} - -.fi-air-play:before { - content: "\e016"; -} - -.fi-camera:before { - content: "\e017"; -} - -.fi-video:before { - content: "\e018"; -} - -.fi-disc:before { - content: "\e019"; -} - -.fi-printer:before { - content: "\e020"; -} - -.fi-monitor:before { - content: "\e021"; -} - -.fi-server:before { - content: "\e022"; -} - -.fi-cog:before { - content: "\e023"; -} - -.fi-heart:before { - content: "\e024"; -} - -.fi-paragraph:before { - content: "\e025"; -} - -.fi-align-justify:before { - content: "\e026"; -} - -.fi-align-left:before { - content: "\e027"; -} - -.fi-align-center:before { - content: "\e028"; -} - -.fi-align-right:before { - content: "\e029"; -} - -.fi-book:before { - content: "\e030"; -} - -.fi-layers:before { - content: "\e031"; -} - -.fi-stack:before { - content: "\e032"; -} - -.fi-stack-2:before { - content: "\e033"; -} - -.fi-paper:before { - content: "\e034"; -} - -.fi-paper-stack:before { - content: "\e035"; -} - -.fi-search:before { - content: "\e036"; -} - -.fi-zoom-in:before { - content: "\e037"; -} - -.fi-zoom-out:before { - content: "\e038"; -} - -.fi-reply:before { - content: "\e039"; -} - -.fi-circle-plus:before { - content: "\e040"; -} - -.fi-circle-minus:before { - content: "\e041"; -} - -.fi-circle-check:before { - content: "\e042"; -} - -.fi-circle-cross:before { - content: "\e043"; -} - -.fi-square-plus:before { - content: "\e044"; -} - -.fi-square-minus:before { - content: "\e045"; -} - -.fi-square-check:before { - content: "\e046"; -} - -.fi-square-cross:before { - content: "\e047"; -} - -.fi-microphone:before { - content: "\e048"; -} - -.fi-record:before { - content: "\e049"; -} - -.fi-skip-back:before { - content: "\e050"; -} - -.fi-rewind:before { - content: "\e051"; -} - -.fi-play:before { - content: "\e052"; -} - -.fi-pause:before { - content: "\e053"; -} - -.fi-stop:before { - content: "\e054"; -} - -.fi-fast-forward:before { - content: "\e055"; -} - -.fi-skip-forward:before { - content: "\e056"; -} - -.fi-shuffle:before { - content: "\e057"; -} - -.fi-repeat:before { - content: "\e058"; -} - -.fi-folder:before { - content: "\e059"; -} - -.fi-umbrella:before { - content: "\e060"; -} - -.fi-moon:before { - content: "\e061"; -} - -.fi-thermometer:before { - content: "\e062"; -} - -.fi-drop:before { - content: "\e063"; -} - -.fi-sun:before { - content: "\e064"; -} - -.fi-cloud:before { - content: "\e065"; -} - -.fi-cloud-upload:before { - content: "\e066"; -} - -.fi-cloud-download:before { - content: "\e067"; -} - -.fi-upload:before { - content: "\e068"; -} - -.fi-download:before { - content: "\e069"; -} - -.fi-location:before { - content: "\e070"; -} - -.fi-location-2:before { - content: "\e071"; -} - -.fi-map:before { - content: "\e072"; -} - -.fi-battery:before { - content: "\e073"; -} - -.fi-head:before { - content: "\e074"; -} - -.fi-briefcase:before { - content: "\e075"; -} - -.fi-speech-bubble:before { - content: "\e076"; -} - -.fi-anchor:before { - content: "\e077"; -} - -.fi-globe:before { - content: "\e078"; -} - -.fi-box:before { - content: "\e079"; -} - -.fi-reload:before { - content: "\e080"; -} - -.fi-share:before { - content: "\e081"; -} - -.fi-marquee:before { - content: "\e082"; -} - -.fi-marquee-plus:before { - content: "\e083"; -} - -.fi-marquee-minus:before { - content: "\e084"; -} - -.fi-tag:before { - content: "\e085"; -} - -.fi-power:before { - content: "\e086"; -} - -.fi-command:before { - content: "\e087"; -} - -.fi-alt:before { - content: "\e088"; -} - -.fi-esc:before { - content: "\e089"; -} - -.fi-bar-graph:before { - content: "\e090"; -} - -.fi-bar-graph-2:before { - content: "\e091"; -} - -.fi-pie-graph:before { - content: "\e092"; -} - -.fi-star:before { - content: "\e093"; -} - -.fi-arrow-left:before { - content: "\e094"; -} - -.fi-arrow-right:before { - content: "\e095"; -} - -.fi-arrow-up:before { - content: "\e096"; -} - -.fi-arrow-down:before { - content: "\e097"; -} - -.fi-volume:before { - content: "\e098"; -} - -.fi-mute:before { - content: "\e099"; -} - -.fi-content-right:before { - content: "\e100"; -} - -.fi-content-left:before { - content: "\e101"; -} - -.fi-grid:before { - content: "\e102"; -} - -.fi-grid-2:before { - content: "\e103"; -} - -.fi-columns:before { - content: "\e104"; -} - -.fi-loader:before { - content: "\e105"; -} - -.fi-bag:before { - content: "\e106"; -} - -.fi-ban:before { - content: "\e107"; -} - -.fi-flag:before { - content: "\e108"; -} - -.fi-trash:before { - content: "\e109"; -} - -.fi-expand:before { - content: "\e110"; -} - -.fi-contract:before { - content: "\e111"; -} - -.fi-maximize:before { - content: "\e112"; -} - -.fi-minimize:before { - content: "\e113"; -} - -.fi-plus:before { - content: "\e114"; -} - -.fi-minus:before { - content: "\e115"; -} - -.fi-check:before { - content: "\e116"; -} - -.fi-cross:before { - content: "\e117"; -} - -.fi-move:before { - content: "\e118"; -} - -.fi-delete:before { - content: "\e119"; -} - -.fi-menu:before { - content: "\e120"; -} - -.fi-archive:before { - content: "\e121"; -} - -.fi-inbox:before { - content: "\e122"; -} - -.fi-outbox:before { - content: "\e123"; -} - -.fi-file:before { - content: "\e124"; -} - -.fi-file-add:before { - content: "\e125"; -} - -.fi-file-subtract:before { - content: "\e126"; -} - -.fi-help:before { - content: "\e127"; -} - -.fi-open:before { - content: "\e128"; -} - -.fi-ellipsis:before { - content: "\e129"; -} - -@font-face { - font-family: "dripicons-v2"; - src: url("../fonts/dripicons-v2.eot"); - src: url("../fonts/dripicons-v2.eot?#iefix") format("embedded-opentype"), url("../fonts/dripicons-v2.woff") format("woff"), url("../fonts/dripicons-v2.ttf") format("truetype"), url("../fonts/dripicons-v2.svg#dripicons-v2") format("svg"); - font-weight: normal; - font-style: normal; -} - -[data-icon]:before { - font-family: "dripicons-v2" !important; - content: attr(data-icon); - font-style: normal !important; - font-weight: normal !important; - font-variant: normal !important; - text-transform: none !important; - speak: none; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -[class^="dripicons-"]:before, -[class*=" dripicons-"]:before { - font-family: "dripicons-v2" !important; - font-style: normal !important; - font-weight: normal !important; - font-variant: normal !important; - text-transform: none !important; - speak: none; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -.dripicons-alarm:before { - content: "\61"; -} - -.dripicons-align-center:before { - content: "\62"; -} - -.dripicons-align-justify:before { - content: "\63"; -} - -.dripicons-align-left:before { - content: "\64"; -} - -.dripicons-align-right:before { - content: "\65"; -} - -.dripicons-anchor:before { - content: "\66"; -} - -.dripicons-archive:before { - content: "\67"; -} - -.dripicons-arrow-down:before { - content: "\68"; -} - -.dripicons-arrow-left:before { - content: "\69"; -} - -.dripicons-arrow-right:before { - content: "\6a"; -} - -.dripicons-arrow-thin-down:before { - content: "\6b"; -} - -.dripicons-arrow-thin-left:before { - content: "\6c"; -} - -.dripicons-arrow-thin-right:before { - content: "\6d"; -} - -.dripicons-arrow-thin-up:before { - content: "\6e"; -} - -.dripicons-arrow-up:before { - content: "\6f"; -} - -.dripicons-article:before { - content: "\70"; -} - -.dripicons-backspace:before { - content: "\71"; -} - -.dripicons-basket:before { - content: "\72"; -} - -.dripicons-basketball:before { - content: "\73"; -} - -.dripicons-battery-empty:before { - content: "\74"; -} - -.dripicons-battery-full:before { - content: "\75"; -} - -.dripicons-battery-low:before { - content: "\76"; -} - -.dripicons-battery-medium:before { - content: "\77"; -} - -.dripicons-bell:before { - content: "\78"; -} - -.dripicons-blog:before { - content: "\79"; -} - -.dripicons-bluetooth:before { - content: "\7a"; -} - -.dripicons-bold:before { - content: "\41"; -} - -.dripicons-bookmark:before { - content: "\42"; -} - -.dripicons-bookmarks:before { - content: "\43"; -} - -.dripicons-box:before { - content: "\44"; -} - -.dripicons-briefcase:before { - content: "\45"; -} - -.dripicons-brightness-low:before { - content: "\46"; -} - -.dripicons-brightness-max:before { - content: "\47"; -} - -.dripicons-brightness-medium:before { - content: "\48"; -} - -.dripicons-broadcast:before { - content: "\49"; -} - -.dripicons-browser:before { - content: "\4a"; -} - -.dripicons-browser-upload:before { - content: "\4b"; -} - -.dripicons-brush:before { - content: "\4c"; -} - -.dripicons-calendar:before { - content: "\4d"; -} - -.dripicons-camcorder:before { - content: "\4e"; -} - -.dripicons-camera:before { - content: "\4f"; -} - -.dripicons-card:before { - content: "\50"; -} - -.dripicons-cart:before { - content: "\51"; -} - -.dripicons-checklist:before { - content: "\52"; -} - -.dripicons-checkmark:before { - content: "\53"; -} - -.dripicons-chevron-down:before { - content: "\54"; -} - -.dripicons-chevron-left:before { - content: "\55"; -} - -.dripicons-chevron-right:before { - content: "\56"; -} - -.dripicons-chevron-up:before { - content: "\57"; -} - -.dripicons-clipboard:before { - content: "\58"; -} - -.dripicons-clock:before { - content: "\59"; -} - -.dripicons-clockwise:before { - content: "\5a"; -} - -.dripicons-cloud:before { - content: "\30"; -} - -.dripicons-cloud-download:before { - content: "\31"; -} - -.dripicons-cloud-upload:before { - content: "\32"; -} - -.dripicons-code:before { - content: "\33"; -} - -.dripicons-contract:before { - content: "\34"; -} - -.dripicons-contract-2:before { - content: "\35"; -} - -.dripicons-conversation:before { - content: "\36"; -} - -.dripicons-copy:before { - content: "\37"; -} - -.dripicons-crop:before { - content: "\38"; -} - -.dripicons-cross:before { - content: "\39"; -} - -.dripicons-crosshair:before { - content: "\21"; -} - -.dripicons-cutlery:before { - content: "\22"; -} - -.dripicons-device-desktop:before { - content: "\23"; -} - -.dripicons-device-mobile:before { - content: "\24"; -} - -.dripicons-device-tablet:before { - content: "\25"; -} - -.dripicons-direction:before { - content: "\26"; -} - -.dripicons-disc:before { - content: "\27"; -} - -.dripicons-document:before { - content: "\28"; -} - -.dripicons-document-delete:before { - content: "\29"; -} - -.dripicons-document-edit:before { - content: "\2a"; -} - -.dripicons-document-new:before { - content: "\2b"; -} - -.dripicons-document-remove:before { - content: "\2c"; -} - -.dripicons-dot:before { - content: "\2d"; -} - -.dripicons-dots-2:before { - content: "\2e"; -} - -.dripicons-dots-3:before { - content: "\2f"; -} - -.dripicons-download:before { - content: "\3a"; -} - -.dripicons-duplicate:before { - content: "\3b"; -} - -.dripicons-enter:before { - content: "\3c"; -} - -.dripicons-exit:before { - content: "\3d"; -} - -.dripicons-expand:before { - content: "\3e"; -} - -.dripicons-expand-2:before { - content: "\3f"; -} - -.dripicons-experiment:before { - content: "\40"; -} - -.dripicons-export:before { - content: "\5b"; -} - -.dripicons-feed:before { - content: "\5d"; -} - -.dripicons-flag:before { - content: "\5e"; -} - -.dripicons-flashlight:before { - content: "\5f"; -} - -.dripicons-folder:before { - content: "\60"; -} - -.dripicons-folder-open:before { - content: "\7b"; -} - -.dripicons-forward:before { - content: "\7c"; -} - -.dripicons-gaming:before { - content: "\7d"; -} - -.dripicons-gear:before { - content: "\7e"; -} - -.dripicons-graduation:before { - content: "\5c"; -} - -.dripicons-graph-bar:before { - content: "\e000"; -} - -.dripicons-graph-line:before { - content: "\e001"; -} - -.dripicons-graph-pie:before { - content: "\e002"; -} - -.dripicons-headset:before { - content: "\e003"; -} - -.dripicons-heart:before { - content: "\e004"; -} - -.dripicons-help:before { - content: "\e005"; -} - -.dripicons-home:before { - content: "\e006"; -} - -.dripicons-hourglass:before { - content: "\e007"; -} - -.dripicons-inbox:before { - content: "\e008"; -} - -.dripicons-information:before { - content: "\e009"; -} - -.dripicons-italic:before { - content: "\e00a"; -} - -.dripicons-jewel:before { - content: "\e00b"; -} - -.dripicons-lifting:before { - content: "\e00c"; -} - -.dripicons-lightbulb:before { - content: "\e00d"; -} - -.dripicons-link:before { - content: "\e00e"; -} - -.dripicons-link-broken:before { - content: "\e00f"; -} - -.dripicons-list:before { - content: "\e010"; -} - -.dripicons-loading:before { - content: "\e011"; -} - -.dripicons-location:before { - content: "\e012"; -} - -.dripicons-lock:before { - content: "\e013"; -} - -.dripicons-lock-open:before { - content: "\e014"; -} - -.dripicons-mail:before { - content: "\e015"; -} - -.dripicons-map:before { - content: "\e016"; -} - -.dripicons-media-loop:before { - content: "\e017"; -} - -.dripicons-media-next:before { - content: "\e018"; -} - -.dripicons-media-pause:before { - content: "\e019"; -} - -.dripicons-media-play:before { - content: "\e01a"; -} - -.dripicons-media-previous:before { - content: "\e01b"; -} - -.dripicons-media-record:before { - content: "\e01c"; -} - -.dripicons-media-shuffle:before { - content: "\e01d"; -} - -.dripicons-media-stop:before { - content: "\e01e"; -} - -.dripicons-medical:before { - content: "\e01f"; -} - -.dripicons-menu:before { - content: "\e020"; -} - -.dripicons-message:before { - content: "\e021"; -} - -.dripicons-meter:before { - content: "\e022"; -} - -.dripicons-microphone:before { - content: "\e023"; -} - -.dripicons-minus:before { - content: "\e024"; -} - -.dripicons-monitor:before { - content: "\e025"; -} - -.dripicons-move:before { - content: "\e026"; -} - -.dripicons-music:before { - content: "\e027"; -} - -.dripicons-network-1:before { - content: "\e028"; -} - -.dripicons-network-2:before { - content: "\e029"; -} - -.dripicons-network-3:before { - content: "\e02a"; -} - -.dripicons-network-4:before { - content: "\e02b"; -} - -.dripicons-network-5:before { - content: "\e02c"; -} - -.dripicons-pamphlet:before { - content: "\e02d"; -} - -.dripicons-paperclip:before { - content: "\e02e"; -} - -.dripicons-pencil:before { - content: "\e02f"; -} - -.dripicons-phone:before { - content: "\e030"; -} - -.dripicons-photo:before { - content: "\e031"; -} - -.dripicons-photo-group:before { - content: "\e032"; -} - -.dripicons-pill:before { - content: "\e033"; -} - -.dripicons-pin:before { - content: "\e034"; -} - -.dripicons-plus:before { - content: "\e035"; -} - -.dripicons-power:before { - content: "\e036"; -} - -.dripicons-preview:before { - content: "\e037"; -} - -.dripicons-print:before { - content: "\e038"; -} - -.dripicons-pulse:before { - content: "\e039"; -} - -.dripicons-question:before { - content: "\e03a"; -} - -.dripicons-reply:before { - content: "\e03b"; -} - -.dripicons-reply-all:before { - content: "\e03c"; -} - -.dripicons-return:before { - content: "\e03d"; -} - -.dripicons-retweet:before { - content: "\e03e"; -} - -.dripicons-rocket:before { - content: "\e03f"; -} - -.dripicons-scale:before { - content: "\e040"; -} - -.dripicons-search:before { - content: "\e041"; -} - -.dripicons-shopping-bag:before { - content: "\e042"; -} - -.dripicons-skip:before { - content: "\e043"; -} - -.dripicons-stack:before { - content: "\e044"; -} - -.dripicons-star:before { - content: "\e045"; -} - -.dripicons-stopwatch:before { - content: "\e046"; -} - -.dripicons-store:before { - content: "\e047"; -} - -.dripicons-suitcase:before { - content: "\e048"; -} - -.dripicons-swap:before { - content: "\e049"; -} - -.dripicons-tag:before { - content: "\e04a"; -} - -.dripicons-tag-delete:before { - content: "\e04b"; -} - -.dripicons-tags:before { - content: "\e04c"; -} - -.dripicons-thumbs-down:before { - content: "\e04d"; -} - -.dripicons-thumbs-up:before { - content: "\e04e"; -} - -.dripicons-ticket:before { - content: "\e04f"; -} - -.dripicons-time-reverse:before { - content: "\e050"; -} - -.dripicons-to-do:before { - content: "\e051"; -} - -.dripicons-toggles:before { - content: "\e052"; -} - -.dripicons-trash:before { - content: "\e053"; -} - -.dripicons-trophy:before { - content: "\e054"; -} - -.dripicons-upload:before { - content: "\e055"; -} - -.dripicons-user:before { - content: "\e056"; -} - -.dripicons-user-group:before { - content: "\e057"; -} - -.dripicons-user-id:before { - content: "\e058"; -} - -.dripicons-vibrate:before { - content: "\e059"; -} - -.dripicons-view-apps:before { - content: "\e05a"; -} - -.dripicons-view-list:before { - content: "\e05b"; -} - -.dripicons-view-list-large:before { - content: "\e05c"; -} - -.dripicons-view-thumb:before { - content: "\e05d"; -} - -.dripicons-volume-full:before { - content: "\e05e"; -} - -.dripicons-volume-low:before { - content: "\e05f"; -} - -.dripicons-volume-medium:before { - content: "\e060"; -} - -.dripicons-volume-off:before { - content: "\e061"; -} - -.dripicons-wallet:before { - content: "\e062"; -} - -.dripicons-warning:before { - content: "\e063"; -} - -.dripicons-web:before { - content: "\e064"; -} - -.dripicons-weight:before { - content: "\e065"; -} - -.dripicons-wifi:before { - content: "\e066"; -} - -.dripicons-wrong:before { - content: "\e067"; -} - -.dripicons-zoom-in:before { - content: "\e068"; -} - -.dripicons-zoom-out:before { - content: "\e069"; -} - -@font-face { - font-family: "simple-line-icons"; - src: url("../fonts/Simple-Line-Icons.eot?-i3a2kk"); - src: url("../fonts/Simple-Line-Icons.eot?#iefix-i3a2kk") format("embedded-opentype"), url("../fonts/Simple-Line-Icons.ttf?-i3a2kk") format("truetype"), url("../fonts/Simple-Line-Icons.woff2?-i3a2kk") format("woff2"), url("../fonts/Simple-Line-Icons.woff?-i3a2kk") format("woff"), url("../fonts/Simple-Line-Icons.svg?-i3a2kk#simple-line-icons") format("svg"); - font-weight: normal; - font-style: normal; -} - -.icon-user, .icon-people, .icon-user-female, .icon-user-follow, .icon-user-following, .icon-user-unfollow, .icon-login, .icon-logout, .icon-emotsmile, .icon-phone, .icon-call-end, .icon-call-in, .icon-call-out, .icon-map, .icon-location-pin, .icon-direction, .icon-directions, .icon-compass, .icon-layers, .icon-menu, .icon-list, .icon-options-vertical, .icon-options, .icon-arrow-down, .icon-arrow-left, .icon-arrow-right, .icon-arrow-up, .icon-arrow-up-circle, .icon-arrow-left-circle, .icon-arrow-right-circle, .icon-arrow-down-circle, .icon-check, .icon-clock, .icon-plus, .icon-close, .icon-trophy, .icon-screen-smartphone, .icon-screen-desktop, .icon-plane, .icon-notebook, .icon-mustache, .icon-mouse, .icon-magnet, .icon-energy, .icon-disc, .icon-cursor, .icon-cursor-move, .icon-crop, .icon-chemistry, .icon-speedometer, .icon-shield, .icon-screen-tablet, .icon-magic-wand, .icon-hourglass, .icon-graduation, .icon-ghost, .icon-game-controller, .icon-fire, .icon-eyeglass, .icon-envelope-open, .icon-envelope-letter, .icon-bell, .icon-badge, .icon-anchor, .icon-wallet, .icon-vector, .icon-speech, .icon-puzzle, .icon-printer, .icon-present, .icon-playlist, .icon-pin, .icon-picture, .icon-handbag, .icon-globe-alt, .icon-globe, .icon-folder-alt, .icon-folder, .icon-film, .icon-feed, .icon-drop, .icon-drawar, .icon-docs, .icon-doc, .icon-diamond, .icon-cup, .icon-calculator, .icon-bubbles, .icon-briefcase, .icon-book-open, .icon-basket-loaded, .icon-basket, .icon-bag, .icon-action-undo, .icon-action-redo, .icon-wrench, .icon-umbrella, .icon-trash, .icon-tag, .icon-support, .icon-frame, .icon-size-fullscreen, .icon-size-actual, .icon-shuffle, .icon-share-alt, .icon-share, .icon-rocket, .icon-question, .icon-pie-chart, .icon-pencil, .icon-note, .icon-loop, .icon-home, .icon-grid, .icon-graph, .icon-microphone, .icon-music-tone-alt, .icon-music-tone, .icon-earphones-alt, .icon-earphones, .icon-equalizer, .icon-like, .icon-dislike, .icon-control-start, .icon-control-rewind, .icon-control-play, .icon-control-pause, .icon-control-forward, .icon-control-end, .icon-volume-1, .icon-volume-2, .icon-volume-off, .icon-calender, .icon-bulb, .icon-chart, .icon-ban, .icon-bubble, .icon-camrecorder, .icon-camera, .icon-cloud-download, .icon-cloud-upload, .icon-envelope, .icon-eye, .icon-flag, .icon-heart, .icon-info, .icon-key, .icon-link, .icon-lock, .icon-lock-open, .icon-magnifier, .icon-magnifier-add, .icon-magnifier-remove, .icon-paper-clip, .icon-paper-plane, .icon-power, .icon-refresh, .icon-reload, .icon-settings, .icon-star, .icon-symble-female, .icon-symbol-male, .icon-target, .icon-credit-card, .icon-paypal, .icon-social-tumblr, .icon-social-twitter, .icon-social-facebook, .icon-social-instagram, .icon-social-linkedin, .icon-social-pintarest, .icon-social-github, .icon-social-gplus, .icon-social-reddit, .icon-social-skype, .icon-social-dribbble, .icon-social-behance, .icon-social-foursqare, .icon-social-soundcloud, .icon-social-spotify, .icon-social-stumbleupon, .icon-social-youtube, .icon-social-dropbox { - font-family: "simple-line-icons"; - speak: none; - font-style: normal; - font-weight: normal; - font-variant: normal; - text-transform: none; - line-height: 1; - /* Better Font Rendering =========== */ - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -.icon-user:before { - content: "\e005"; -} - -.icon-people:before { - content: "\e001"; -} - -.icon-user-female:before { - content: "\e000"; -} - -.icon-user-follow:before { - content: "\e002"; -} - -.icon-user-following:before { - content: "\e003"; -} - -.icon-user-unfollow:before { - content: "\e004"; -} - -.icon-login:before { - content: "\e066"; -} - -.icon-logout:before { - content: "\e065"; -} - -.icon-emotsmile:before { - content: "\e021"; -} - -.icon-phone:before { - content: "\e600"; -} - -.icon-call-end:before { - content: "\e048"; -} - -.icon-call-in:before { - content: "\e047"; -} - -.icon-call-out:before { - content: "\e046"; -} - -.icon-map:before { - content: "\e033"; -} - -.icon-location-pin:before { - content: "\e096"; -} - -.icon-direction:before { - content: "\e042"; -} - -.icon-directions:before { - content: "\e041"; -} - -.icon-compass:before { - content: "\e045"; -} - -.icon-layers:before { - content: "\e034"; -} - -.icon-menu:before { - content: "\e601"; -} - -.icon-list:before { - content: "\e067"; -} - -.icon-options-vertical:before { - content: "\e602"; -} - -.icon-options:before { - content: "\e603"; -} - -.icon-arrow-down:before { - content: "\e604"; -} - -.icon-arrow-left:before { - content: "\e605"; -} - -.icon-arrow-right:before { - content: "\e606"; -} - -.icon-arrow-up:before { - content: "\e607"; -} - -.icon-arrow-up-circle:before { - content: "\e078"; -} - -.icon-arrow-left-circle:before { - content: "\e07a"; -} - -.icon-arrow-right-circle:before { - content: "\e079"; -} - -.icon-arrow-down-circle:before { - content: "\e07b"; -} - -.icon-check:before { - content: "\e080"; -} - -.icon-clock:before { - content: "\e081"; -} - -.icon-plus:before { - content: "\e095"; -} - -.icon-close:before { - content: "\e082"; -} - -.icon-trophy:before { - content: "\e006"; -} - -.icon-screen-smartphone:before { - content: "\e010"; -} - -.icon-screen-desktop:before { - content: "\e011"; -} - -.icon-plane:before { - content: "\e012"; -} - -.icon-notebook:before { - content: "\e013"; -} - -.icon-mustache:before { - content: "\e014"; -} - -.icon-mouse:before { - content: "\e015"; -} - -.icon-magnet:before { - content: "\e016"; -} - -.icon-energy:before { - content: "\e020"; -} - -.icon-disc:before { - content: "\e022"; -} - -.icon-cursor:before { - content: "\e06e"; -} - -.icon-cursor-move:before { - content: "\e023"; -} - -.icon-crop:before { - content: "\e024"; -} - -.icon-chemistry:before { - content: "\e026"; -} - -.icon-speedometer:before { - content: "\e007"; -} - -.icon-shield:before { - content: "\e00e"; -} - -.icon-screen-tablet:before { - content: "\e00f"; -} - -.icon-magic-wand:before { - content: "\e017"; -} - -.icon-hourglass:before { - content: "\e018"; -} - -.icon-graduation:before { - content: "\e019"; -} - -.icon-ghost:before { - content: "\e01a"; -} - -.icon-game-controller:before { - content: "\e01b"; -} - -.icon-fire:before { - content: "\e01c"; -} - -.icon-eyeglass:before { - content: "\e01d"; -} - -.icon-envelope-open:before { - content: "\e01e"; -} - -.icon-envelope-letter:before { - content: "\e01f"; -} - -.icon-bell:before { - content: "\e027"; -} - -.icon-badge:before { - content: "\e028"; -} - -.icon-anchor:before { - content: "\e029"; -} - -.icon-wallet:before { - content: "\e02a"; -} - -.icon-vector:before { - content: "\e02b"; -} - -.icon-speech:before { - content: "\e02c"; -} - -.icon-puzzle:before { - content: "\e02d"; -} - -.icon-printer:before { - content: "\e02e"; -} - -.icon-present:before { - content: "\e02f"; -} - -.icon-playlist:before { - content: "\e030"; -} - -.icon-pin:before { - content: "\e031"; -} - -.icon-picture:before { - content: "\e032"; -} - -.icon-handbag:before { - content: "\e035"; -} - -.icon-globe-alt:before { - content: "\e036"; -} - -.icon-globe:before { - content: "\e037"; -} - -.icon-folder-alt:before { - content: "\e039"; -} - -.icon-folder:before { - content: "\e089"; -} - -.icon-film:before { - content: "\e03a"; -} - -.icon-feed:before { - content: "\e03b"; -} - -.icon-drop:before { - content: "\e03e"; -} - -.icon-drawar:before { - content: "\e03f"; -} - -.icon-docs:before { - content: "\e040"; -} - -.icon-doc:before { - content: "\e085"; -} - -.icon-diamond:before { - content: "\e043"; -} - -.icon-cup:before { - content: "\e044"; -} - -.icon-calculator:before { - content: "\e049"; -} - -.icon-bubbles:before { - content: "\e04a"; -} - -.icon-briefcase:before { - content: "\e04b"; -} - -.icon-book-open:before { - content: "\e04c"; -} - -.icon-basket-loaded:before { - content: "\e04d"; -} - -.icon-basket:before { - content: "\e04e"; -} - -.icon-bag:before { - content: "\e04f"; -} - -.icon-action-undo:before { - content: "\e050"; -} - -.icon-action-redo:before { - content: "\e051"; -} - -.icon-wrench:before { - content: "\e052"; -} - -.icon-umbrella:before { - content: "\e053"; -} - -.icon-trash:before { - content: "\e054"; -} - -.icon-tag:before { - content: "\e055"; -} - -.icon-support:before { - content: "\e056"; -} - -.icon-frame:before { - content: "\e038"; -} - -.icon-size-fullscreen:before { - content: "\e057"; -} - -.icon-size-actual:before { - content: "\e058"; -} - -.icon-shuffle:before { - content: "\e059"; -} - -.icon-share-alt:before { - content: "\e05a"; -} - -.icon-share:before { - content: "\e05b"; -} - -.icon-rocket:before { - content: "\e05c"; -} - -.icon-question:before { - content: "\e05d"; -} - -.icon-pie-chart:before { - content: "\e05e"; -} - -.icon-pencil:before { - content: "\e05f"; -} - -.icon-note:before { - content: "\e060"; -} - -.icon-loop:before { - content: "\e064"; -} - -.icon-home:before { - content: "\e069"; -} - -.icon-grid:before { - content: "\e06a"; -} - -.icon-graph:before { - content: "\e06b"; -} - -.icon-microphone:before { - content: "\e063"; -} - -.icon-music-tone-alt:before { - content: "\e061"; -} - -.icon-music-tone:before { - content: "\e062"; -} - -.icon-earphones-alt:before { - content: "\e03c"; -} - -.icon-earphones:before { - content: "\e03d"; -} - -.icon-equalizer:before { - content: "\e06c"; -} - -.icon-like:before { - content: "\e068"; -} - -.icon-dislike:before { - content: "\e06d"; -} - -.icon-control-start:before { - content: "\e06f"; -} - -.icon-control-rewind:before { - content: "\e070"; -} - -.icon-control-play:before { - content: "\e071"; -} - -.icon-control-pause:before { - content: "\e072"; -} - -.icon-control-forward:before { - content: "\e073"; -} - -.icon-control-end:before { - content: "\e074"; -} - -.icon-volume-1:before { - content: "\e09f"; -} - -.icon-volume-2:before { - content: "\e0a0"; -} - -.icon-volume-off:before { - content: "\e0a1"; -} - -.icon-calender:before { - content: "\e075"; -} - -.icon-bulb:before { - content: "\e076"; -} - -.icon-chart:before { - content: "\e077"; -} - -.icon-ban:before { - content: "\e07c"; -} - -.icon-bubble:before { - content: "\e07d"; -} - -.icon-camrecorder:before { - content: "\e07e"; -} - -.icon-camera:before { - content: "\e07f"; -} - -.icon-cloud-download:before { - content: "\e083"; -} - -.icon-cloud-upload:before { - content: "\e084"; -} - -.icon-envelope:before { - content: "\e086"; -} - -.icon-eye:before { - content: "\e087"; -} - -.icon-flag:before { - content: "\e088"; -} - -.icon-heart:before { - content: "\e08a"; -} - -.icon-info:before { - content: "\e08b"; -} - -.icon-key:before { - content: "\e08c"; -} - -.icon-link:before { - content: "\e08d"; -} - -.icon-lock:before { - content: "\e08e"; -} - -.icon-lock-open:before { - content: "\e08f"; -} - -.icon-magnifier:before { - content: "\e090"; -} - -.icon-magnifier-add:before { - content: "\e091"; -} - -.icon-magnifier-remove:before { - content: "\e092"; -} - -.icon-paper-clip:before { - content: "\e093"; -} - -.icon-paper-plane:before { - content: "\e094"; -} - -.icon-power:before { - content: "\e097"; -} - -.icon-refresh:before { - content: "\e098"; -} - -.icon-reload:before { - content: "\e099"; -} - -.icon-settings:before { - content: "\e09a"; -} - -.icon-star:before { - content: "\e09b"; -} - -.icon-symble-female:before { - content: "\e09c"; -} - -.icon-symbol-male:before { - content: "\e09d"; -} - -.icon-target:before { - content: "\e09e"; -} - -.icon-credit-card:before { - content: "\e025"; -} - -.icon-paypal:before { - content: "\e608"; -} - -.icon-social-tumblr:before { - content: "\e00a"; -} - -.icon-social-twitter:before { - content: "\e009"; -} - -.icon-social-facebook:before { - content: "\e00b"; -} - -.icon-social-instagram:before { - content: "\e609"; -} - -.icon-social-linkedin:before { - content: "\e60a"; -} - -.icon-social-pintarest:before { - content: "\e60b"; -} - -.icon-social-github:before { - content: "\e60c"; -} - -.icon-social-gplus:before { - content: "\e60d"; -} - -.icon-social-reddit:before { - content: "\e60e"; -} - -.icon-social-skype:before { - content: "\e60f"; -} - -.icon-social-dribbble:before { - content: "\e00d"; -} - -.icon-social-behance:before { - content: "\e610"; -} - -.icon-social-foursqare:before { - content: "\e611"; -} - -.icon-social-soundcloud:before { - content: "\e612"; -} - -.icon-social-spotify:before { - content: "\e613"; -} - -.icon-social-stumbleupon:before { - content: "\e614"; -} - -.icon-social-youtube:before { - content: "\e008"; -} - -.icon-social-dropbox:before { - content: "\e00c"; -} -/*# sourceMappingURL=icons.css.map */ \ No newline at end of file diff --git a/htdocs/public/high/assets/css/icons.css.map b/htdocs/public/high/assets/css/icons.css.map deleted file mode 100644 index 5e493608..00000000 --- a/htdocs/public/high/assets/css/icons.css.map +++ /dev/null @@ -1,34 +0,0 @@ -{ - "version": 3, - "mappings": "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", - "sources": [ - "../scss/icons.scss", - "../scss/icons/font-awesome/scss/font-awesome.scss", - "../scss/icons/font-awesome/scss/_variables.scss", - "../scss/icons/font-awesome/scss/_mixins.scss", - "../scss/icons/font-awesome/scss/_path.scss", - "../scss/icons/font-awesome/scss/_core.scss", - "../scss/icons/font-awesome/scss/_larger.scss", - "../scss/icons/font-awesome/scss/_fixed-width.scss", - "../scss/icons/font-awesome/scss/_list.scss", - "../scss/icons/font-awesome/scss/_bordered-pulled.scss", - "../scss/icons/font-awesome/scss/_animated.scss", - "../scss/icons/font-awesome/scss/_rotated-flipped.scss", - "../scss/icons/font-awesome/scss/_stacked.scss", - "../scss/icons/font-awesome/scss/_icons.scss", - "../scss/icons/font-awesome/scss/_screen-reader.scss", - "../scss/icons/material-design/scss/materialdesignicons.scss", - "../scss/icons/material-design/scss/_variables.scss", - "../scss/icons/material-design/scss/_functions.scss", - "../scss/icons/material-design/scss/_path.scss", - "../scss/icons/material-design/scss/_core.scss", - "../scss/icons/material-design/scss/_icons.scss", - "../scss/icons/material-design/scss/_extras.scss", - "../scss/icons/material-design/scss/_animated.scss", - "../scss/icons/feather/feather.scss", - "../scss/icons/dripicons/dripicons.scss", - "../scss/icons/simple-line-icons/scss/simple-line-icons.scss" - ], - "names": [], - "file": "icons.css" -} \ No newline at end of file diff --git a/htdocs/public/high/assets/css/style.css b/htdocs/public/high/assets/css/style.css deleted file mode 100644 index ce9fe27a..00000000 --- a/htdocs/public/high/assets/css/style.css +++ /dev/null @@ -1,6060 +0,0 @@ -/* -Template Name: Highdmin - Responsive Bootstrap 4 Admin Dashboard -Author: CoderThemes -Email: coderthemes@gmail.com -File: Main Css File -*/ -/* -1. Menu -2. Common -3. Helper -4. Bootstrap Reset -5. Waves Effect -6. Card -7. Buttons -8. Ribbons -9. Popovers and Tooltips -10. Checkbox & Radio -11. Alerts -12. Modal -13. Spinners -14. Widgets -15. Tabs -16. Progress -17. Sweet Alert -18. Charts -19. Email -20. Form Elements -21. Form Advanced -22. Form Validation -23. Form Pickers -24. Form Wizard -25. Summernote -26. Wysiwig -27. Form Uploads -28. Tables -29. Maps -30. Calendar -31. Tickets -32. taskboards -33. Projects -34. Companies -35. File Manager -36. Timeline -37. Profile -38. Print -39. FAQ -40. Pricing -41. Account-Pages -42. Search Results -43. Gallery -44. Coming Soon -45. Responsive -*/ -@import url("https://fonts.googleapis.com/css?family=Roboto:400,700"); -@import url("https://fonts.googleapis.com/css?family=Rubik:300,400,500,700"); -/* =========== - Menu - =============*/ -.container-fluid { - max-width: 95%; -} - -.wrapper { - padding-top: 120px; -} - -.page-title-box { - padding: 22px 0; -} - -#topnav { - position: fixed; - right: 0; - left: 0; - top: 0; - z-index: 1030; - border: 0; - -webkit-transition: all .5s ease; - transition: all .5s ease; - min-height: 62px; - background: #ffffff; - box-shadow: 0 0 18px 0 rgba(0, 0, 0, 0.2); -} - -#topnav .has-submenu.active a { - color: #ffffff; -} - -#topnav .has-submenu.active a i { - color: #ffffff; -} - -#topnav .has-submenu.active .submenu li.active > a { - color: #02c0ce; -} - -#topnav .topbar-main .logo { - color: #313a46 !important; - font-size: 20px; - font-weight: 700; - letter-spacing: 1px; - line-height: 60px; - text-transform: uppercase; - float: left; -} - -#topnav .topbar-main .logo-small { - display: none; -} - -#topnav .topbar-main .badge-topbar { - position: absolute; - top: 7px; - right: 7px; - z-index: 99; -} - -#topnav .topbar-main .nav > li > a { - height: 36px; - width: 36px; - padding: 0; - font-size: 24px; - line-height: 35px; - text-align: center; - border-radius: 50%; - margin: 12px 8px; - color: rgba(49, 58, 70, 0.7); -} - -#topnav .topbar-main .nav > li > a:focus, #topnav .topbar-main .nav > li > a:hover { - background-color: rgba(49, 58, 70, 0.1); - color: #313a46; -} - -#topnav .topbar-main .dropdown-menu-lg .list-group { - margin-bottom: 0; -} - -#topnav .topbar-main .dropdown-menu-lg .list-group-item { - border: none; - padding: 10px 20px; -} - -#topnav .topbar-main .dropdown-menu-lg .media-heading { - margin-bottom: 0; -} - -#topnav .topbar-main .dropdown-menu-lg .media-body p { - color: #828282; -} - -#topnav .topbar-main .navbar-nav { - margin: 0; -} - -#topnav .topbar-main .topbar-right-menu li { - float: left; -} - -#topnav .navbar-custom { - background-color: #02c0ce; -} - -#topnav .navbar-toggle { - border: 0; - position: relative; - padding: 0; - margin: 0; - cursor: pointer; -} - -#topnav .navbar-toggle:hover { - background-color: transparent; -} - -#topnav .navbar-toggle:hover span { - background-color: #313a46; -} - -#topnav .navbar-toggle:focus { - background-color: transparent; -} - -#topnav .navbar-toggle:focus span { - background-color: #313a46; -} - -#topnav .navbar-toggle .lines { - width: 25px; - display: block; - position: relative; - margin: 10px 10px 0 0; - padding-top: 13px; - height: 44px; - -webkit-transition: all .5s ease; - transition: all .5s ease; -} - -#topnav .navbar-toggle span { - height: 2px; - width: 100%; - background-color: rgba(49, 58, 70, 0.8); - display: block; - margin-bottom: 5px; - -webkit-transition: -webkit-transform .5s ease; - transition: -webkit-transform .5s ease; - transition: transform .5s ease; -} - -#topnav .navbar-toggle.open span { - position: absolute; -} - -#topnav .navbar-toggle.open span:first-child { - top: 18px; - -webkit-transform: rotate(45deg); - transform: rotate(45deg); -} - -#topnav .navbar-toggle.open span:nth-child(2) { - visibility: hidden; -} - -#topnav .navbar-toggle.open span:last-child { - width: 100%; - top: 18px; - -webkit-transform: rotate(-45deg); - transform: rotate(-45deg); -} - -#topnav .navigation-menu { - list-style: none; - margin: 0; - padding: 0; -} - -#topnav .navigation-menu > li { - display: inline-block; - position: relative; -} - -#topnav .navigation-menu > li > a { - display: block; - color: rgba(255, 255, 255, 0.7); - font-weight: 500; - font-size: 16px; - -webkit-transition: all .5s ease; - transition: all .5s ease; - line-height: 20px; - padding-left: 25px; - padding-right: 25px; -} - -#topnav .navigation-menu > li > a:hover { - color: #ffffff; -} - -#topnav .navigation-menu > li > a:focus { - color: #ffffff; -} - -#topnav .navigation-menu > li > a:active { - color: #ffffff; -} - -#topnav .navigation-menu > li > a i { - font-size: 15px; - margin-right: 8px; - -webkit-transition: all .5s ease; - transition: all .5s ease; -} - -#topnav .navigation-menu > li > a:hover, #topnav .navigation-menu > li > a:focus { - background-color: transparent; -} - -/* - Responsive Menu -*/ -@media (min-width: 992px) { - #topnav .navigation-menu > li > a { - padding-top: 20px; - padding-bottom: 20px; - } - #topnav .navigation-menu > li:first-of-type > a { - padding-left: 0; - } - #topnav .navigation-menu > li.last-elements .submenu { - left: auto; - right: 0; - } - #topnav .navigation-menu > li.last-elements .submenu > li.has-submenu .submenu { - left: auto; - right: 100%; - margin-left: 0; - margin-right: 10px; - } - #topnav .navigation-menu > li:hover a { - color: #ffffff; - } - #topnav .navigation-menu > li:hover a i { - color: #ffffff; - } - #topnav .navigation-menu > li > ul > li.has-submenu:active > a, - #topnav .navigation-menu > li > ul > li.has-submenu:hover > a { - color: #02c0ce; - } - #topnav .navigation-menu > li .submenu { - position: absolute; - top: 100%; - left: 0; - z-index: 1000; - border: 1px solid #e7e7e7; - padding: 15px 0; - list-style: none; - min-width: 200px; - text-align: left; - visibility: hidden; - opacity: 0; - margin-top: 10px; - -webkit-transition: all .2s ease; - transition: all .2s ease; - background-color: #ffffff; - box-shadow: 0 0 24px 0 rgba(0, 0, 0, 0.06), 0 1px 0 0 rgba(0, 0, 0, 0.02); - } - #topnav .navigation-menu > li .submenu.megamenu { - white-space: nowrap; - width: auto; - } - #topnav .navigation-menu > li .submenu.megamenu > li { - overflow: hidden; - width: 200px; - display: inline-block; - vertical-align: top; - } - #topnav .navigation-menu > li .submenu > li.has-submenu > a:after { - content: "\F142"; - font-family: "Material Design Icons"; - position: absolute; - right: 20px; - top: 5px; - font-size: 18px; - } - #topnav .navigation-menu > li .submenu > li .submenu { - left: 100%; - top: 0; - margin-left: 10px; - margin-top: -1px; - } - #topnav .navigation-menu > li .submenu li { - position: relative; - } - #topnav .navigation-menu > li .submenu li ul { - list-style: none; - padding-left: 0; - margin: 0; - } - #topnav .navigation-menu > li .submenu li a { - display: block; - padding: 8px 25px; - clear: both; - white-space: nowrap; - font-size: 15px; - color: #313a46; - -webkit-transition: all .35s ease; - transition: all .35s ease; - } - #topnav .navigation-menu > li .submenu li a:hover { - color: #02c0ce; - } - #topnav .navigation-menu > li .submenu li span { - display: block; - padding: 8px 25px; - clear: both; - line-height: 1.42857143; - white-space: nowrap; - font-size: 10px; - text-transform: uppercase; - letter-spacing: 2px; - font-weight: 500; - color: #313a46; - } - #topnav .navbar-toggle { - display: none; - } - #topnav #navigation { - display: block !important; - } -} - -@media (max-width: 991px) { - .wrapper { - padding-top: 60px; - } - .container { - width: auto !important; - } - #topnav .navigation-menu { - float: none; - max-height: 400px; - text-align: left; - } - #topnav .navigation-menu > li { - display: block; - } - #topnav .navigation-menu > li > a { - color: #313a46; - padding: 15px; - } - #topnav .navigation-menu > li > a i { - display: inline-block; - margin-right: 10px; - margin-bottom: 0; - vertical-align: inherit; - } - #topnav .navigation-menu > li > a:after { - position: absolute; - right: 15px; - } - #topnav .navigation-menu > li .submenu { - display: none; - list-style: none; - padding-left: 20px; - margin: 0; - } - #topnav .navigation-menu > li .submenu li a { - display: block; - position: relative; - padding: 7px 20px; - color: #313a46; - } - #topnav .navigation-menu > li .submenu li a:hover { - color: #02c0ce; - } - #topnav .navigation-menu > li .submenu li.has-submenu > a:after { - content: "\F140"; - font-family: "Material Design Icons"; - position: absolute; - right: 30px; - } - #topnav .navigation-menu > li .submenu.open { - display: block; - } - #topnav .navigation-menu > li .submenu .submenu { - display: none; - list-style: none; - } - #topnav .navigation-menu > li .submenu .submenu.open { - display: block; - } - #topnav .navigation-menu > li .submenu.megamenu > li > ul { - list-style: none; - padding-left: 0; - } - #topnav .navigation-menu > li .submenu.megamenu > li > ul > li > span { - display: block; - position: relative; - padding: 15px; - text-transform: uppercase; - font-size: 11px; - letter-spacing: 2px; - color: #313a46; - } - #topnav .navigation-menu > li.has-submenu.open > a { - color: #02c0ce; - } - #topnav .navbar-header { - float: left; - } - #navigation { - position: absolute; - top: 62px; - left: 0; - width: 100%; - display: none; - height: auto; - padding-bottom: 0; - overflow: auto; - border-top: 1px solid #e7e7e7; - border-bottom: 1px solid #e7e7e7; - background-color: #ffffff; - } - #navigation.open { - display: block; - overflow-y: auto; - } - #topnav .has-submenu.active a { - color: #02c0ce; - } - #topnav .has-submenu.active a:active, #topnav .has-submenu.active a:focus, #topnav .has-submenu.active a i { - color: #02c0ce; - } -} - -@media (min-width: 768px) { - #topnav .navigation-menu > li.has-submenu:hover > .submenu { - visibility: visible; - opacity: 1; - margin-top: 0; - } - #topnav .navigation-menu > li.has-submenu:hover > .submenu > li.has-submenu:hover > .submenu { - visibility: visible; - opacity: 1; - margin-left: 0; - margin-right: 0; - } - .navbar-toggle { - display: block; - } -} - -.topbar-custom { - border-radius: 0; - margin-bottom: 0; -} - -.topbar-custom .nav-link { - padding: 0; - line-height: 60px; - color: #313a46; -} - -.topbar-custom .dropdown-toggle:after { - content: initial; -} - -.topbar-custom .menu-left { - overflow: hidden; -} - -/* Footer */ -.footer { - border-top: 1px solid rgba(0, 0, 0, 0.1); - bottom: 0; - text-align: left !important; - padding: 20px 0; - position: absolute; - right: 0; - background-color: #ffffff; - left: 0; -} - -/* Search */ -.app-search { - position: relative; - padding-top: 18px; -} - -.app-search a { - position: absolute; - top: 18px; - left: 220px; - display: block; - height: 34px; - line-height: 34px; - width: 34px; - text-align: center; - color: rgba(255, 255, 255, 0.5); -} - -.app-search a:hover { - color: #ffffff; -} - -.app-search .form-control, -.app-search .form-control:focus { - border: 1px solid rgba(255, 255, 255, 0.3); - font-size: 13px; - height: 34px; - color: #ffffff; - padding-left: 20px; - padding-right: 40px; - background: transparent; - box-shadow: none; - border-radius: 30px; - width: 200px; -} - -.app-search input::-webkit-input-placeholder { - color: white; -} - -.app-search input:-moz-placeholder { - color: white; -} - -.app-search input::-moz-placeholder { - color: white; -} - -.app-search input:-ms-input-placeholder { - color: white; -} - -/* Page titles */ -.header-title { - margin-bottom: 8px; - text-transform: uppercase; - letter-spacing: 0.02em; - font-size: 14px; - font-weight: 700; -} - -.page-title-box .breadcrumb { - margin-bottom: 0; - padding: 0; - background-color: transparent !important; -} - -/* Notification */ -.notification-wrapper { - max-height: 190px; -} - -.notification-list { - margin-left: 0 !important; -} - -.notification-list .noti-title { - background-color: #ffffff !important; - padding: 7px 20px; -} - -.notification-list .noti-icon { - font-size: 20px; - padding: 0 15px; - vertical-align: middle; -} - -.notification-list .noti-icon-badge { - display: inline-block; - position: absolute; - top: 14px; - right: 8px; -} - -.notification-list .notify-item { - padding: 10px 20px; -} - -.notification-list .notify-item .notify-icon { - float: left; - height: 36px; - width: 36px; - line-height: 36px; - text-align: center; - margin-right: 10px; - border-radius: 50%; - color: #ffffff; -} - -.notification-list .notify-item .notify-details { - margin-bottom: 0; - overflow: hidden; - margin-left: 45px; - text-overflow: ellipsis; - white-space: nowrap; -} - -.notification-list .notify-item .notify-details b { - font-weight: 500; -} - -.notification-list .notify-item .notify-details small { - display: block; -} - -.notification-list .notify-item .notify-details span { - display: block; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - font-size: 13px; -} - -.notification-list .notify-item .user-msg { - margin-left: 45px; - white-space: normal; - line-height: 16px; -} - -.notification-list .profile-dropdown .notify-item { - padding: 7px 20px; -} - -.profile-dropdown { - width: 170px; -} - -.profile-dropdown i { - vertical-align: middle; - margin-right: 5px; -} - -.profile-dropdown span { - vertical-align: middle; -} - -.nav-user { - padding: 0 12px !important; -} - -.nav-user img { - height: 32px; - width: 32px; -} - -/* ============= - Common -============= */ -body { - margin: 0; - padding-bottom: 60px; - overflow-x: hidden; - font-size: 14px; - background-color: #f3f6f8; - font-family: "Roboto", sans-serif; -} - -html { - position: relative; - min-height: 100%; -} - -.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 { - font-family: "Rubik", sans-serif; - margin: 10px 0; -} - -h1 { - line-height: 43px; - font-size: 36px; -} - -h2 { - line-height: 35px; - font-size: 30px; -} - -h3 { - line-height: 30px; - font-size: 24px; -} - -h4 { - line-height: 22px; - font-size: 18px; -} - -h5 { - font-size: 15px; -} - -h6 { - font-size: 12px; -} - -p { - line-height: 1.6; -} - -* { - outline: none !important; -} - -a:hover { - outline: 0; - text-decoration: none; -} - -a:active { - outline: 0; - text-decoration: none; -} - -a:focus { - outline: 0; - text-decoration: none; -} - -.container { - width: auto; -} - -.container-alt { - margin-left: auto; - margin-right: auto; - padding-left: 15px; - padding-right: 15px; -} - -#wrapper { - height: 100%; - overflow: hidden; - width: 100%; -} - -/* Page titles */ -.page-title { - font-size: 18px; - margin: 0; -} - -.header-title { - margin-bottom: 8px; - text-transform: uppercase; - letter-spacing: 0.02em; - font-size: 14px; - font-weight: 500; - margin-top: 0; -} - -.page-title-box { - font-size: 13px; -} - -.page-title-box .breadcrumb { - margin-bottom: 0; - padding: 0; - background-color: transparent; -} - -/* ============= - Helper classes -============= */ -.m-b-30 { - margin-bottom: 30px; -} - -.m-t-50 { - margin-top: 50px; -} - -@media (max-width: 767px) { - .mt-md-30 { - margin-top: 30px; - } -} - -.p-l-r-10 { - padding-left: 10px; - padding-right: 10px; -} - -.w-xs { - min-width: 80px; -} - -.w-sm { - min-width: 95px; -} - -.w-md { - min-width: 110px; -} - -.w-lg { - min-width: 140px; -} - -.center-page { - float: none !important; - margin: 0 auto !important; -} - -.text-overflow { - text-overflow: ellipsis; - white-space: nowrap; - display: block; - width: 100%; - overflow: hidden; -} - -.pull-in { - margin-left: -20px; - margin-right: -20px; -} - -.font-600 { - font-weight: 600; -} - -.font-normal { - font-weight: normal; -} - -.font-light { - font-weight: 300; -} - -.font-13 { - font-size: 13px !important; -} - -.font-14 { - font-size: 14px !important; -} - -.font-15 { - font-size: 15px !important; -} - -.font-16 { - font-size: 16px !important; -} - -.font-18 { - font-size: 18px !important; -} - -.bx-shadow { - box-shadow: 0 0 24px 0 rgba(0, 0, 0, 0.06), 0 1px 0 0 rgba(0, 0, 0, 0.02); -} - -.bx-shadow-lg { - box-shadow: 0 0 24px 0 rgba(0, 0, 0, 0.15), 0 1px 0 0 rgba(0, 0, 0, 0.1); -} - -.bx-shadow-none { - box-shadow: none !important; -} - -.thumb-sm { - height: 36px; - width: 36px; -} - -.thumb-md { - height: 48px; - width: 48px; -} - -.thumb-lg { - height: 88px; - width: 88px; -} - -.thumb-xl { - height: 120px; - width: 120px; -} - -.slimScrollDiv { - height: auto !important; -} - -/* Table type box */ -.table-box { - display: table; - height: 100%; - width: 100%; -} - -.table-box .table-detail { - display: table-cell; - vertical-align: middle; -} - -/* Button demo */ -.button-list { - margin-left: -8px; - margin-bottom: -12px; -} - -.button-list .btn { - margin-bottom: 12px; - margin-left: 8px; -} - -/* Demo only */ -.icon-list-demo div { - cursor: pointer; - line-height: 45px; - white-space: nowrap; - text-overflow: ellipsis; - display: block; - overflow: hidden; -} - -.icon-list-demo div p { - margin-bottom: 0; - line-height: inherit; -} - -.icon-list-demo i { - text-align: center; - vertical-align: middle; - font-size: 22px; - width: 50px; - height: 50px; - line-height: 50px; - margin-right: 12px; - color: rgba(49, 58, 70, 0.7); - border-radius: 3px; - display: inline-block; - transition: all 0.2s; -} - -.icon-list-demo [class^="pe-7s-"], .icon-list-demo [class*=" pe-7s-"] { - font-weight: 600; -} - -.icon-list-demo .col-md-4 { - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-border-radius: 3px; - background-clip: padding-box; - margin-bottom: 10px; -} - -.icon-list-demo .col-md-4:hover, .icon-list-demo .col-md-4:hover i { - color: #02c0ce; -} - -.social-links li a { - border-radius: 50%; - color: rgba(121, 121, 121, 0.8); - display: inline-block; - height: 30px; - line-height: 27px; - border: 2px solid rgba(121, 121, 121, 0.5); - text-align: center; - width: 30px; -} - -.social-links li a:hover { - color: #797979; - border: 2px solid #797979; -} - -/* ============= - Bootstrap-custom -============= */ -.breadcrumb { - background-color: transparent; - margin-bottom: 15px; - padding-top: 10px; - padding-left: 0; -} - -.breadcrumb a { - color: #98a6ad; -} - -.breadcrumb > li + li:before { - padding: 0 5px; - color: #98a6ad; - content: "\f105" !important; - font-family: FontAwesome; -} - -code { - color: #02c0ce; -} - -/* Blockquote */ -.blockquote { - font-size: 1.1rem; -} - -.media { - margin-top: 25px; -} - -/* Dropdown */ -.dropdown-menu { - padding: 4px 0; - font-size: 14px; - box-shadow: 0 3px 12px rgba(0, 0, 0, 0.05); - border-color: #e3eaef; -} - -.dropdown-menu-animated { - display: block; - visibility: hidden; - opacity: 0; - transition: all 300ms ease; - -moz-transition: all 300ms ease; - -webkit-transition: all 300ms ease; - -o-transition: all 300ms ease; - -ms-transition: all 300ms ease; - margin-top: 20px !important; -} - -.show > .dropdown-menu { - visibility: visible; - opacity: 1; - margin-top: 0 !important; -} - -.dropdown-item.active, .dropdown-item:active { - color: #313a46; - text-decoration: none; - background-color: #f7f7f7; -} - -.dropdown-item { - padding: 6px 1.5rem; -} - -.dropdown-lg { - width: 320px; -} - -.arrow-none:after { - border: none; - margin: 0; - display: none; -} - -/* Background colors */ -.bg-custom { - background-color: #02c0ce !important; -} - -.bg-primary { - background-color: #2d7bf4 !important; -} - -.bg-success { - background-color: #0acf97 !important; -} - -.bg-info { - background-color: #4eb7eb !important; -} - -.bg-warning { - background-color: #f9bc0b !important; -} - -.bg-danger { - background-color: #f1556c !important; -} - -.bg-muted { - background-color: #797979 !important; -} - -.bg-purple { - background-color: #777edd !important; -} - -.bg-pink { - background-color: #ff679b !important; -} - -.bg-white { - background-color: #ffffff !important; -} - -.bg-dark { - background-color: #313a46 !important; -} - -.bg-light { - background-color: #e3eaef !important; -} - -/* Text colors */ -.text-custom { - color: #02c0ce !important; -} - -.text-white { - color: #ffffff !important; -} - -.text-danger { - color: #f1556c !important; -} - -.text-muted { - color: #98a6ad !important; -} - -.text-primary { - color: #2d7bf4 !important; -} - -.text-warning { - color: #f9bc0b !important; -} - -.text-success { - color: #0acf97 !important; -} - -.text-info { - color: #4eb7eb !important; -} - -.text-pink { - color: #ff679b !important; -} - -.text-purple { - color: #777edd !important; -} - -.text-dark { - color: #313a46 !important; -} - -/* Border colors */ -.border-primary { - border-color: #2d7bf4 !important; -} - -.border-success { - border-color: #0acf97 !important; -} - -.border-info { - border-color: #4eb7eb !important; -} - -.border-warning { - border-color: #f9bc0b !important; -} - -.border-danger { - border-color: #f1556c !important; -} - -.border-dark { - border-color: #313a46 !important; -} - -.border-pink { - border-color: #ff679b !important; -} - -.border-purple { - border-color: #777edd !important; -} - -.border-custom { - border-color: #02c0ce !important; -} - -/* Badge */ -.badge { - font-family: "Rubik", sans-serif; - box-shadow: 0 0 24px 0 rgba(0, 0, 0, 0.06), 0 1px 0 0 rgba(0, 0, 0, 0.02); - padding: .35em .5em; - font-weight: 500; -} - -.badge-custom { - background: #02c0ce; - color: #ffffff; -} - -.badge-primary { - background-color: #2d7bf4; -} - -.badge-secondary { - background-color: #9a9a9a; -} - -.badge-success { - background-color: #0acf97; -} - -.badge-info { - background-color: #4eb7eb; -} - -.badge-warning { - background-color: #f9bc0b; - color: #ffffff; -} - -.badge-danger { - background-color: #f1556c; -} - -.badge-purple { - background-color: #777edd; - color: #ffffff; -} - -.badge-pink { - background-color: #ff679b; - color: #ffffff; -} - -.badge-dark { - background-color: #313a46; -} - -/* Pagination/ Pager */ -.pagination > li:first-child > a, -.pagination > li:first-child > span { - border-bottom-left-radius: 3px; - border-top-left-radius: 3px; -} - -.pagination > li:last-child > a, -.pagination > li:last-child > span { - border-bottom-right-radius: 3px; - border-top-right-radius: 3px; -} - -.pagination > li > a, -.pagination > li > span { - color: #313a46; -} - -.pagination > li > a:hover, -.pagination > li > span:hover, -.pagination > li > a:focus, -.pagination > li > span:focus { - background-color: #e3eaef; -} - -.pagination-split li { - margin-left: 5px; - display: inline-block; - float: left; -} - -.pagination-split li:first-child { - margin-left: 0; -} - -.pagination-split li a { - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; -} - -.pagination > .active > a, -.pagination > .active > span, -.pagination > .active > a:hover, -.pagination > .active > span:hover, -.pagination > .active > a:focus, -.pagination > .active > span:focus, -.page-item.active .page-link { - background: #02c0ce; - border-color: #02c0ce; -} - -.pager li > a, .pager li > span { - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - color: #313a46; -} - -.list-group-item.active, .list-group-item.active:focus, -.list-group-item.active:hover { - background-color: #02c0ce; - border-color: #02c0ce; -} - -.list-group-item.active .list-group-item-text, -.list-group-item.active:focus .list-group-item-text, -.list-group-item.active:hover .list-group-item-text { - color: fade(#ffffff, 70%); -} - -/* ============= - Waves Effect -============= */ -/*! - * Waves v0.6.0 - * http://fian.my.id/Waves - * - * Copyright 2014 Alfiana E. Sibuea and other contributors - * Released under the MIT license - * https://github.com/fians/Waves/blob/master/LICENSE - */ -.waves-effect { - position: relative; - cursor: pointer; - display: inline-block; - overflow: hidden; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - -webkit-tap-highlight-color: transparent; - vertical-align: middle; - z-index: 1; - will-change: opacity, transform; - -webkit-transition: all 0.3s ease-out; - -moz-transition: all 0.3s ease-out; - -o-transition: all 0.3s ease-out; - -ms-transition: all 0.3s ease-out; - transition: all 0.3s ease-out; -} - -.waves-effect .waves-ripple { - position: absolute; - border-radius: 50%; - width: 20px; - height: 20px; - margin-top: -10px; - margin-left: -10px; - opacity: 0; - background: rgba(0, 0, 0, 0.2); - -webkit-transition: all 0.7s ease-out; - -moz-transition: all 0.7s ease-out; - -o-transition: all 0.7s ease-out; - -ms-transition: all 0.7s ease-out; - transition: all 0.7s ease-out; - -webkit-transition-property: -webkit-transform, opacity; - -moz-transition-property: -moz-transform, opacity; - -o-transition-property: -o-transform, opacity; - transition-property: transform, opacity; - -webkit-transform: scale(0); - -moz-transform: scale(0); - -ms-transform: scale(0); - -o-transform: scale(0); - transform: scale(0); - pointer-events: none; -} - -.waves-notransition { - -webkit-transition: none !important; - -moz-transition: none !important; - -o-transition: none !important; - -ms-transition: none !important; - transition: none !important; -} - -.waves-circle { - -webkit-transform: translateZ(0); - -moz-transform: translateZ(0); - -ms-transform: translateZ(0); - -o-transform: translateZ(0); - transform: translateZ(0); - text-align: center; - width: 2.5em; - height: 2.5em; - line-height: 2.5em; - border-radius: 50%; - -webkit-mask-image: none; -} - -.waves-input-wrapper { - border-radius: 0.2em; - vertical-align: bottom; -} - -.waves-input-wrapper .waves-button-input { - position: relative; - top: 0; - left: 0; - z-index: 1; -} - -.waves-block { - display: block; -} - -.waves-effect.waves-light .waves-ripple { - background-color: rgba(255, 255, 255, 0.4); -} - -.waves-effect.waves-custom .waves-ripple { - background-color: rgba(2, 192, 206, 0.4); -} - -.waves-effect.waves-primary .waves-ripple { - background-color: rgba(45, 123, 244, 0.4); -} - -.waves-effect.waves-success .waves-ripple { - background-color: rgba(10, 207, 151, 0.4); -} - -.waves-effect.waves-info .waves-ripple { - background-color: rgba(78, 183, 235, 0.4); -} - -.waves-effect.waves-warning .waves-ripple { - background-color: rgba(249, 188, 11, 0.4); -} - -.waves-effect.waves-danger .waves-ripple { - background-color: rgba(241, 85, 108, 0.4); -} - -.waves-effect.waves-pink .waves-ripple { - background-color: rgba(255, 103, 155, 0.4); -} - -.waves-effect.waves-purple .waves-ripple { - background-color: rgba(119, 126, 221, 0.4); -} - -/* ============= - Card -============= */ -/* Card Box */ -.card-box { - padding: 20px; - border-radius: 3px; - margin-bottom: 30px; - background-color: #ffffff; -} - -/* Card */ -.card { - border: none; -} - -.card-title, .card-header { - margin-top: 0 !important; -} - -.card-header, .card-footer { - background-color: #e3eaef; - border-bottom-color: #d3dee6; -} - -.card-footer { - border-top-color: #d3dee6; -} - -/* ============= - Buttons -============= */ -.btn { - border-radius: 2px; - font-size: 14px; - outline: none !important; - padding: .375rem 1.1rem; -} - -.btn-group-sm > .btn, .btn-sm { - padding: .2rem .8rem; -} - -.btn-group-lg > .btn, .btn-lg { - padding: .7rem 1.6rem; -} - -.btn-group.open .dropdown-toggle { - -webkit-box-shadow: 0 0 0 100px rgba(0, 0, 0, 0.1) inset; - box-shadow: 0 0 0 100px rgba(0, 0, 0, 0.1) inset; -} - -.dropdown-toggle-split { - padding-right: .5625rem; - padding-left: .5625rem; -} - -.dropleft .dropdown-toggle-split { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} - -.btn-custom, .btn-primary, .btn-success, .btn-info, .btn-warning, -.btn-danger, .btn-inverse, .btn-purple, .btn-pink { - color: #ffffff !important; -} - -.btn-custom { - background-color: #02c0ce; - border-color: #02c0ce; -} - -.btn-custom:hover, .btn-custom:focus, .btn-custom:active, .btn-custom.active, -.btn-custom.focus, .btn-custom:active, .btn-custom:focus, .btn-custom:hover, -.open > .dropdown-toggle.btn-custom { - background-color: #02a8b5; - border: 1px solid #02a8b5; -} - -.btn-custom.focus, .btn-custom:focus, .btn-outline-custom.focus, .btn-outline-custom:focus, -.btn-custom:not([disabled]):not(.disabled).active, .btn-custom:not([disabled]):not(.disabled):active, .show > .btn-custom.dropdown-toggle { - box-shadow: 0 0 0 2px rgba(2, 192, 206, 0.5); -} - -.btn-primary { - background-color: #2d7bf4; - border: 1px solid #2d7bf4; -} - -.btn-primary:hover, .btn-primary:focus, .btn-primary:active, .btn-primary.active, -.btn-primary.focus, .btn-primary:active, .btn-primary:focus, .btn-primary:hover, -.open > .dropdown-toggle.btn-primary, .btn-primary:not([disabled]):not(.disabled).active, .btn-primary:not([disabled]):not(.disabled):active, -.show > .btn-primary.dropdown-toggle { - background-color: #156cf3; - border-color: #156cf3; -} - -.btn-primary.focus, .btn-primary:focus, .btn-outline-primary.focus, .btn-outline-primary:focus, -.btn-primary:not([disabled]):not(.disabled).active, .btn-primary:not([disabled]):not(.disabled):active, .show > .btn-primary.dropdown-toggle, -.btn-primary:not([disabled]):not(.disabled).active:focus, .btn-primary:not([disabled]):not(.disabled):active:focus, .show > .btn-primary.dropdown-toggle:focus { - box-shadow: 0 0 0 2px rgba(45, 123, 244, 0.5); -} - -.btn-secondary { - background-color: #9a9a9a; - border-color: #9a9a9a; -} - -.btn-secondary:hover, .btn-secondary:focus, .btn-secondary:active, .btn-secondary.active, -.btn-secondary.focus, .btn-secondary:active, .btn-secondary:focus, .btn-secondary:hover, -.open > .dropdown-toggle.btn-secondary { - background-color: #8d8d8d; - border-color: #8d8d8d; -} - -.btn-secondary.focus, .btn-secondary:focus, .btn-outline-secondary.focus, .btn-outline-secondary:focus { - box-shadow: 0 0 0 2px rgba(121, 121, 121, 0.5); -} - -.btn-light { - border-color: #e3eaef; -} - -.btn-light:hover, .btn-light:focus, .btn-light:active, .btn-light.active, -.btn-light.focus, .btn-light:active, .btn-light:focus, .btn-light:hover, -.open > .dropdown-toggle.btn-light { - border-color: #bfbfbf; -} - -.btn-light.focus, .btn-light:focus, .btn-outline-light.focus, .btn-outline-light:focus { - box-shadow: 0 0 0 2px #d9d9d9; -} - -.btn-success { - background-color: #0acf97; - border: 1px solid #0acf97; -} - -.btn-success:hover, .btn-success:focus, .btn-success:active, .btn-success.active, .btn-success.focus, .btn-success:active, .btn-success:focus, .btn-success:hover, .open > .dropdown-toggle.btn-success, -.btn-success:not([disabled]):not(.disabled).active, .btn-success:not([disabled]):not(.disabled):active, .show > .btn-success.dropdown-toggle { - background-color: #09b785; - border-color: #09b785; -} - -.btn-success.focus, .btn-success:focus, .btn-outline-success.focus, .btn-outline-success:focus, -.btn-success:not([disabled]):not(.disabled).active, .btn-success:not([disabled]):not(.disabled):active, .show > .btn-success.dropdown-toggle, -.btn-success:not([disabled]):not(.disabled).active:focus, .btn-success:not([disabled]):not(.disabled):active:focus, .show > .btn-success.dropdown-toggle:focus { - box-shadow: 0 0 0 2px rgba(10, 207, 151, 0.5); -} - -.btn-info { - background-color: #4eb7eb; - border: 1px solid #4eb7eb; -} - -.btn-info:hover, .btn-info:focus, .btn-info:active, .btn-info.active, .btn-info.focus, .btn-info:active, .btn-info:focus, .btn-info:hover, -.open > .dropdown-toggle.btn-info, .btn-info:not([disabled]):not(.disabled).active, .btn-info:not([disabled]):not(.disabled):active, -.show > .btn-info.dropdown-toggle { - background-color: #37aee8; - border-color: #37aee8; -} - -.btn-info.focus, .btn-info:focus, .btn-outline-info.focus, .btn-outline-info:focus, -.btn-info:not([disabled]):not(.disabled).active, .btn-info:not([disabled]):not(.disabled):active, .show > .btn-info.dropdown-toggle, -.btn-info:not([disabled]):not(.disabled).active:focus, .btn-info:not([disabled]):not(.disabled):active:focus, .show > .btn-info.dropdown-toggle:focus { - box-shadow: 0 0 0 2px rgba(78, 183, 235, 0.5); -} - -.btn-warning { - background-color: #f9bc0b; - border: 1px solid #f9bc0b; -} - -.btn-warning:hover, .btn-warning:focus, .btn-warning:active, .btn-warning.active, .btn-warning.focus, .btn-warning:active, -.btn-warning:focus, .btn-warning:hover, .open > .dropdown-toggle.btn-warning, .btn-warning:not([disabled]):not(.disabled).active, -.btn-warning:not([disabled]):not(.disabled):active, .show > .btn-warning.dropdown-toggle { - background-color: #e5ac06; - border-color: #e5ac06; -} - -.btn-warning.focus, .btn-warning:focus, .btn-outline-warning.focus, .btn-outline-warning:focus, -.btn-warning:not([disabled]):not(.disabled).active, .btn-warning:not([disabled]):not(.disabled):active, .show > .btn-warning.dropdown-toggle, -.btn-warning:not([disabled]):not(.disabled).active:focus, .btn-warning:not([disabled]):not(.disabled):active:focus, .show > .btn-warning.dropdown-toggle:focus { - box-shadow: 0 0 0 2px rgba(249, 188, 11, 0.5); -} - -.btn-danger { - background-color: #f1556c; - border: 1px solid #f1556c; -} - -.btn-danger:active, .btn-danger:focus, .btn-danger:hover, .btn-danger.active, .btn-danger.focus, .btn-danger:active, .btn-danger:focus, -.btn-danger:hover, .open > .dropdown-toggle.btn-danger, .btn-danger:not([disabled]):not(.disabled).active, .btn-danger:not([disabled]):not(.disabled):active, -.show > .btn-danger.dropdown-toggle { - background-color: #ef3d58; - border-color: #ef3d58; -} - -.btn-danger.focus, .btn-danger:focus, .btn-outline-danger.focus, .btn-outline-danger:focus, -.btn-danger:not([disabled]):not(.disabled).active, .btn-danger:not([disabled]):not(.disabled):active, .show > .btn-danger.dropdown-toggle, -.btn-danger:not([disabled]):not(.disabled).active:focus, .btn-danger:not([disabled]):not(.disabled):active:focus, .show > .btn-danger.dropdown-toggle:focus { - box-shadow: 0 0 0 2px rgba(241, 85, 108, 0.5); -} - -.btn-dark { - background-color: #313a46; - border: 1px solid #313a46; -} - -.btn-dark:hover, .btn-dark:focus, .btn-dark:active, .btn-dark.active, .btn-dark.focus, .btn-dark:active, .btn-dark:focus, .btn-dark:hover, .open > .dropdown-toggle.btn-dark { - background-color: #272e37; - border-color: #272e37; -} - -.btn-dark.focus, .btn-dark:focus, .btn-outline-dark.focus, .btn-outline-dark:focus, -.btn-dark:not([disabled]):not(.disabled).active, .btn-dark:not([disabled]):not(.disabled):active, .show > .btn-dark.dropdown-toggle { - box-shadow: 0 0 0 2px rgba(49, 58, 70, 0.5); -} - -.btn-purple { - background-color: #777edd; - border: 1px solid #777edd; -} - -.btn-purple:hover, .btn-purple:focus, .btn-purple:active { - background-color: #636bd8; - border-color: #636bd8; -} - -.btn-purple.focus, .btn-purple:focus, .btn-outline-purple.focus, .btn-outline-purple:focus { - box-shadow: 0 0 0 2px rgba(119, 126, 221, 0.5); -} - -.btn-pink { - background-color: #ff679b; - border: 1px solid #ff679b; -} - -.btn-pink:hover, .btn-pink:focus, .btn-pink:active { - background-color: #ff4e8a; - border-color: #ff4e8a; -} - -.btn-pink.focus, .btn-pink:focus, .btn-outline-pink.focus, .btn-outline-pink:focus { - box-shadow: 0 0 0 2px rgba(255, 103, 155, 0.5); -} - -/* button Outline */ -.btn-outline-custom { - color: #02c0ce; - border-color: #02c0ce; - background-image: none; - background-color: transparent; -} - -.btn-outline-custom:hover { - background-color: #02c0ce; - border-color: #02c0ce; - color: #ffffff; -} - -.btn-outline-primary { - color: #2d7bf4; - border-color: #2d7bf4; -} - -.btn-outline-primary:hover { - background-color: #2d7bf4; - border-color: #2d7bf4; -} - -.btn-outline-success { - color: #0acf97; - border-color: #0acf97; -} - -.btn-outline-success:hover { - background-color: #0acf97; - border-color: #0acf97; -} - -.btn-outline-info { - color: #4eb7eb; - border-color: #4eb7eb; -} - -.btn-outline-info:hover { - background-color: #4eb7eb; - border-color: #4eb7eb; -} - -.btn-outline-warning { - color: #f9bc0b; - border-color: #f9bc0b; -} - -.btn-outline-warning:hover { - background-color: #f9bc0b; - border-color: #f9bc0b; -} - -.btn-outline-danger { - color: #f1556c; - border-color: #f1556c; -} - -.btn-outline-danger:hover { - background-color: #f1556c; - border-color: #f1556c; -} - -.btn-outline-dark { - color: #313a46; - border-color: #313a46; -} - -.btn-outline-dark:hover { - background-color: #313a46; - border-color: #313a46; -} - -.btn-outline-pink { - color: #ff679b; - background-image: none; - background-color: transparent; - border-color: #ff679b; -} - -.btn-outline-pink:hover { - background-color: #ff679b; - border-color: #ff679b; - color: #ffffff; -} - -.btn-outline-purple { - color: #777edd; - background-image: none; - background-color: transparent; - border-color: #777edd; -} - -.btn-outline-purple:hover { - background-color: #777edd; - border-color: #777edd; - color: #ffffff; -} - -.btn-rounded { - border-radius: 2em; -} - -/* Social Buttons */ -.btn-facebook { - color: #ffffff !important; - background-color: #3b5998; -} - -.btn-twitter { - color: #ffffff !important; - background-color: #00aced; -} - -.btn-linkedin { - color: #ffffff !important; - background-color: #007bb6; -} - -.btn-dribbble { - color: #ffffff !important; - background-color: #ea4c89; -} - -.btn-googleplus { - color: #ffffff !important; - background-color: #dd4b39; -} - -.btn-instagram { - color: #ffffff !important; - background-color: #517fa4; -} - -.btn-pinterest { - color: #ffffff !important; - background-color: #cb2027; -} - -.btn-dropbox { - color: #ffffff !important; - background-color: #007ee5; -} - -.btn-flickr { - color: #ffffff !important; - background-color: #ff0084; -} - -.btn-tumblr { - color: #ffffff !important; - background-color: #32506d; -} - -.btn-skype { - color: #ffffff !important; - background-color: #00aff0; -} - -.btn-youtube { - color: #ffffff !important; - background-color: #bb0000; -} - -.btn-github { - color: #ffffff !important; - background-color: #171515; -} - -/* ================= - Ribbons -==================== */ -.ribbon-box { - position: relative; - /* Ribbon two */ -} - -.ribbon-box .ribbon { - position: relative; - float: left; - clear: both; - padding: 5px 12px 5px 12px; - margin-left: -30px; - margin-bottom: 15px; - font-family: "Rubik", sans-serif; - -moz-box-shadow: 2px 5px 10px rgba(49, 58, 70, 0.15); - -webkit-box-shadow: 2px 5px 10px rgba(49, 58, 70, 0.15); - -o-box-shadow: 2px 5px 10px rgba(49, 58, 70, 0.15); - box-shadow: 2px 5px 10px rgba(49, 58, 70, 0.15); - color: #ffffff; - font-size: 13px; -} - -.ribbon-box .ribbon:before { - content: " "; - border-style: solid; - border-width: 10px; - display: block; - position: absolute; - bottom: -10px; - left: 0; - margin-bottom: -10px; - z-index: -1; -} - -.ribbon-box .ribbon + p { - clear: both; -} - -.ribbon-box .ribbon-custom { - background: #02c0ce; -} - -.ribbon-box .ribbon-custom:before { - border-color: #02919b transparent transparent; -} - -.ribbon-box .ribbon-primary { - background: #2d7bf4; -} - -.ribbon-box .ribbon-primary:before { - border-color: #0c60e2 transparent transparent; -} - -.ribbon-box .ribbon-success { - background: #0acf97; -} - -.ribbon-box .ribbon-success:before { - border-color: #089e74 transparent transparent; -} - -.ribbon-box .ribbon-info { - background: #4eb7eb; -} - -.ribbon-box .ribbon-info:before { - border-color: #20a4e6 transparent transparent; -} - -.ribbon-box .ribbon-warning { - background: #f9bc0b; -} - -.ribbon-box .ribbon-warning:before { - border-color: #cc9905 transparent transparent; -} - -.ribbon-box .ribbon-danger { - background: #f1556c; -} - -.ribbon-box .ribbon-danger:before { - border-color: #ed2643 transparent transparent; -} - -.ribbon-box .ribbon-pink { - background: #ff679b; -} - -.ribbon-box .ribbon-pink:before { - border-color: #ff3479 transparent transparent; -} - -.ribbon-box .ribbon-purple { - background: #777edd; -} - -.ribbon-box .ribbon-purple:before { - border-color: #4e57d3 transparent transparent; -} - -.ribbon-box .ribbon-dark { - background: #313a46; -} - -.ribbon-box .ribbon-dark:before { - border-color: #1c2128 transparent transparent; -} - -.ribbon-box .ribbon-two { - position: absolute; - left: -5px; - top: -5px; - z-index: 1; - overflow: hidden; - width: 75px; - height: 75px; - text-align: right; -} - -.ribbon-box .ribbon-two span { - font-size: 13px; - color: #ffffff; - font-family: "Rubik", sans-serif; - text-align: center; - line-height: 20px; - transform: rotate(-45deg); - -webkit-transform: rotate(-45deg); - width: 100px; - display: block; - box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.06), 0 1px 0 0 rgba(0, 0, 0, 0.02); - position: absolute; - top: 19px; - left: -21px; -} - -.ribbon-box .ribbon-two span:before { - content: ""; - position: absolute; - left: 0; - top: 100%; - z-index: -1; - border-right: 3px solid transparent; - border-bottom: 3px solid transparent; -} - -.ribbon-box .ribbon-two span:after { - content: ""; - position: absolute; - right: 0; - top: 100%; - z-index: -1; - border-left: 3px solid transparent; - border-bottom: 3px solid transparent; -} - -.ribbon-box .ribbon-two-custom span { - background: #02c0ce; -} - -.ribbon-box .ribbon-two-custom span:before { - border-left: 3px solid #017982; - border-top: 3px solid #017982; -} - -.ribbon-box .ribbon-two-custom span:after { - border-right: 3px solid #017982; - border-top: 3px solid #017982; -} - -.ribbon-box .ribbon-two-primary span { - background: #2d7bf4; -} - -.ribbon-box .ribbon-two-primary span:before { - border-left: 3px solid #0b56ca; - border-top: 3px solid #0b56ca; -} - -.ribbon-box .ribbon-two-primary span:after { - border-right: 3px solid #0b56ca; - border-top: 3px solid #0b56ca; -} - -.ribbon-box .ribbon-two-success span { - background: #0acf97; -} - -.ribbon-box .ribbon-two-success span:before { - border-left: 3px solid #068662; - border-top: 3px solid #068662; -} - -.ribbon-box .ribbon-two-success span:after { - border-right: 3px solid #068662; - border-top: 3px solid #068662; -} - -.ribbon-box .ribbon-two-info span { - background: #4eb7eb; -} - -.ribbon-box .ribbon-two-info span:before { - border-left: 3px solid #1896d4; - border-top: 3px solid #1896d4; -} - -.ribbon-box .ribbon-two-info span:after { - border-right: 3px solid #1896d4; - border-top: 3px solid #1896d4; -} - -.ribbon-box .ribbon-two-warning span { - background: #f9bc0b; -} - -.ribbon-box .ribbon-two-warning span:before { - border-left: 3px solid #b38604; - border-top: 3px solid #b38604; -} - -.ribbon-box .ribbon-two-warning span:after { - border-right: 3px solid #b38604; - border-top: 3px solid #b38604; -} - -.ribbon-box .ribbon-two-danger span { - background: #f1556c; -} - -.ribbon-box .ribbon-two-danger span:before { - border-left: 3px solid #e71332; - border-top: 3px solid #e71332; -} - -.ribbon-box .ribbon-two-danger span:after { - border-right: 3px solid #e71332; - border-top: 3px solid #e71332; -} - -.ribbon-box .ribbon-two-pink span { - background: #ff679b; -} - -.ribbon-box .ribbon-two-pink span:before { - border-left: 3px solid #ff1b69; - border-top: 3px solid #ff1b69; -} - -.ribbon-box .ribbon-two-pink span:after { - border-right: 3px solid #ff1b69; - border-top: 3px solid #ff1b69; -} - -.ribbon-box .ribbon-two-purple span { - background: #777edd; -} - -.ribbon-box .ribbon-two-purple span:before { - border-left: 3px solid #3a44ce; - border-top: 3px solid #3a44ce; -} - -.ribbon-box .ribbon-two-purple span:after { - border-right: 3px solid #3a44ce; - border-top: 3px solid #3a44ce; -} - -.ribbon-box .ribbon-two-dark span { - background: #313a46; -} - -.ribbon-box .ribbon-two-dark span:before { - border-left: 3px solid #121519; - border-top: 3px solid #121519; -} - -.ribbon-box .ribbon-two-dark span:after { - border-right: 3px solid #121519; - border-top: 3px solid #121519; -} - -/* ================= - Popover / Tooltips -==================== */ -/* Popover */ -.popover { - font-family: inherit; - border-color: #e3eaef; - box-shadow: 0 0 24px 0 rgba(0, 0, 0, 0.06), 0 1px 0 0 rgba(0, 0, 0, 0.02); -} - -.popover .popover-header { - margin-top: 0; - font-size: 14px; - background-color: #e3eaef; - padding: 2px 15px; - border: none; -} - -/* Tooltips */ -.tooltip { - font-family: "Rubik", sans-serif; -} - -.tooltip .tooltip-inner { - padding: 4px 10px; - border-radius: 2px; - background-color: #313a46; -} - -.tooltip.left .tooltip-arrow { - border-left-color: #313a46; -} - -.tooltip.top .tooltip-arrow { - border-top-color: #313a46; -} - -.tooltip.bottom .tooltip-arrow { - border-bottom-color: #313a46; -} - -.tooltip.right .tooltip-arrow { - border-right-color: #313a46; -} - -/* Tooltpster */ -.tooltipster-sidetip .tooltipster-box { - background-color: #02c0ce; - border: 2px solid #02c0ce; -} - -.tooltipster-sidetip.tooltipster-top .tooltipster-arrow-border, -.tooltipster-sidetip.tooltipster-top .tooltipster-arrow-background { - border-top-color: #02c0ce; -} - -.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-border, -.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-background { - border-bottom-color: #02c0ce; -} - -.tooltipster-sidetip.tooltipster-left .tooltipster-arrow-border, -.tooltipster-sidetip.tooltipster-left .tooltipster-arrow-background { - border-left-color: #02c0ce; -} - -.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-border, -.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-background { - border-right-color: #02c0ce; -} - -/* ============= - Checkbox and Radios -============= */ -.checkbox label { - display: inline-block; - padding-left: 8px; - position: relative; - font-weight: normal; -} - -.checkbox label::before { - -o-transition: 0.3s ease-in-out; - -webkit-transition: 0.3s ease-in-out; - background-color: #ffffff; - border-radius: 3px; - border: 2px solid #98a6ad; - content: ""; - display: inline-block; - height: 18px; - left: 0; - margin-left: -18px; - position: absolute; - transition: 0.3s ease-in-out; - width: 18px; - outline: none !important; -} - -.checkbox label::after { - color: #797979; - display: inline-block; - font-size: 11px; - height: 18px; - left: 0; - margin-left: -18px; - padding-left: 3px; - padding-top: 2px; - position: absolute; - top: 0; - width: 18px; -} - -.checkbox input[type="checkbox"] { - cursor: pointer; - opacity: 0; - z-index: 1; - outline: none !important; -} - -.checkbox input[type="checkbox"]:disabled + label { - opacity: 0.65; -} - -.checkbox input[type="checkbox"]:focus + label::before { - outline-offset: -2px; - outline: none; -} - -.checkbox input[type="checkbox"]:checked + label::after { - content: ""; - position: absolute; - top: 3px; - left: 7px; - display: table; - width: 5px; - height: 10px; - border: 1px solid #313a46; - border-top-width: 0; - border-left-width: 0; - -webkit-transform: rotate(45deg); - -ms-transform: rotate(45deg); - -o-transform: rotate(45deg); - transform: rotate(45deg); -} - -.checkbox input[type="checkbox"]:disabled + label::before { - background-color: #e3eaef; - cursor: not-allowed; -} - -.checkbox.checkbox-circle label::before { - border-radius: 50%; -} - -.checkbox.checkbox-inline { - margin-top: 0; -} - -.checkbox.checkbox-single input { - height: 18px; - width: 18px; - position: absolute; -} - -.checkbox.checkbox-single label { - height: 18px; - width: 18px; -} - -.checkbox.checkbox-single label:before { - margin-left: 0; -} - -.checkbox.checkbox-single label:after { - margin-left: 0; -} - -.checkbox-custom input[type="checkbox"]:checked + label::before { - background-color: #02c0ce; - border-color: #02c0ce; -} - -.checkbox-custom input[type="checkbox"]:checked + label::after { - border-color: #ffffff; -} - -.checkbox-primary input[type="checkbox"]:checked + label::before { - background-color: #2d7bf4; - border-color: #2d7bf4; -} - -.checkbox-primary input[type="checkbox"]:checked + label::after { - border-color: #ffffff; -} - -.checkbox-danger input[type="checkbox"]:checked + label::before { - background-color: #f1556c; - border-color: #f1556c; -} - -.checkbox-danger input[type="checkbox"]:checked + label::after { - border-color: #ffffff; -} - -.checkbox-info input[type="checkbox"]:checked + label::before { - background-color: #4eb7eb; - border-color: #4eb7eb; -} - -.checkbox-info input[type="checkbox"]:checked + label::after { - border-color: #ffffff; -} - -.checkbox-warning input[type="checkbox"]:checked + label::before { - background-color: #f9bc0b; - border-color: #f9bc0b; -} - -.checkbox-warning input[type="checkbox"]:checked + label::after { - border-color: #ffffff; -} - -.checkbox-success input[type="checkbox"]:checked + label::before { - background-color: #0acf97; - border-color: #0acf97; -} - -.checkbox-success input[type="checkbox"]:checked + label::after { - border-color: #ffffff; -} - -.checkbox-purple input[type="checkbox"]:checked + label::before { - background-color: #777edd; - border-color: #777edd; -} - -.checkbox-purple input[type="checkbox"]:checked + label::after { - border-color: #ffffff; -} - -.checkbox-pink input[type="checkbox"]:checked + label::before { - background-color: #ff679b; - border-color: #ff679b; -} - -.checkbox-pink input[type="checkbox"]:checked + label::after { - border-color: #ffffff; -} - -.checkbox-dark input[type="checkbox"]:checked + label::before { - background-color: #313a46; - border-color: #313a46; -} - -.checkbox-dark input[type="checkbox"]:checked + label::after { - border-color: #ffffff; -} - -/* Radios */ -.radio label { - display: inline-block; - padding-left: 8px; - position: relative; - font-weight: normal; -} - -.radio label::before { - -o-transition: border 0.5s ease-in-out; - -webkit-transition: border 0.5s ease-in-out; - background-color: #ffffff; - border-radius: 50%; - border: 2px solid #98a6ad; - content: ""; - display: inline-block; - height: 18px; - left: 0; - margin-left: -18px; - position: absolute; - transition: border 0.5s ease-in-out; - width: 18px; - outline: none !important; -} - -.radio label::after { - -moz-transition: -moz-transform 0.1s cubic-bezier(0.8, -0.33, 0.2, 1.33); - -ms-transform: scale(0, 0); - -o-transform: scale(0, 0); - -o-transition: -o-transform 0.1s cubic-bezier(0.8, -0.33, 0.2, 1.33); - -webkit-transform: scale(0, 0); - -webkit-transition: -webkit-transform 0.1s cubic-bezier(0.8, -0.33, 0.2, 1.33); - background-color: #797979; - border-radius: 50%; - content: " "; - display: inline-block; - height: 10px; - left: 6px; - margin-left: -20px; - position: absolute; - top: 4px; - transform: scale(0, 0); - transition: transform 0.1s cubic-bezier(0.8, -0.33, 0.2, 1.33); - width: 10px; -} - -.radio input[type="radio"] { - cursor: pointer; - opacity: 0; - z-index: 1; - outline: none !important; -} - -.radio input[type="radio"]:disabled + label { - opacity: 0.65; -} - -.radio input[type="radio"]:focus + label::before { - outline-offset: -2px; - outline: 5px auto -webkit-focus-ring-color; - outline: thin dotted; -} - -.radio input[type="radio"]:checked + label::after { - -ms-transform: scale(1, 1); - -o-transform: scale(1, 1); - -webkit-transform: scale(1, 1); - transform: scale(1, 1); -} - -.radio input[type="radio"]:disabled + label::before { - cursor: not-allowed; -} - -.radio.radio-inline { - margin-top: 0; -} - -.radio.radio-single label { - height: 17px; -} - -.radio-custom input[type="radio"] + label::after { - background-color: #02c0ce; -} - -.radio-custom input[type="radio"]:checked + label::before { - border-color: #02c0ce; -} - -.radio-custom input[type="radio"]:checked + label::after { - background-color: #02c0ce; -} - -.radio-primary input[type="radio"] + label::after { - background-color: #2d7bf4; -} - -.radio-primary input[type="radio"]:checked + label::before { - border-color: #2d7bf4; -} - -.radio-primary input[type="radio"]:checked + label::after { - background-color: #2d7bf4; -} - -.radio-danger input[type="radio"] + label::after { - background-color: #f1556c; -} - -.radio-danger input[type="radio"]:checked + label::before { - border-color: #f1556c; -} - -.radio-danger input[type="radio"]:checked + label::after { - background-color: #f1556c; -} - -.radio-info input[type="radio"] + label::after { - background-color: #4eb7eb; -} - -.radio-info input[type="radio"]:checked + label::before { - border-color: #4eb7eb; -} - -.radio-info input[type="radio"]:checked + label::after { - background-color: #4eb7eb; -} - -.radio-warning input[type="radio"] + label::after { - background-color: #f9bc0b; -} - -.radio-warning input[type="radio"]:checked + label::before { - border-color: #f9bc0b; -} - -.radio-warning input[type="radio"]:checked + label::after { - background-color: #f9bc0b; -} - -.radio-success input[type="radio"] + label::after { - background-color: #0acf97; -} - -.radio-success input[type="radio"]:checked + label::before { - border-color: #0acf97; -} - -.radio-success input[type="radio"]:checked + label::after { - background-color: #0acf97; -} - -.radio-purple input[type="radio"] + label::after { - background-color: #777edd; -} - -.radio-purple input[type="radio"]:checked + label::before { - border-color: #777edd; -} - -.radio-purple input[type="radio"]:checked + label::after { - background-color: #777edd; -} - -.radio-pink input[type="radio"] + label::after { - background-color: #ff679b; -} - -.radio-pink input[type="radio"]:checked + label::before { - border-color: #ff679b; -} - -.radio-pink input[type="radio"]:checked + label::after { - background-color: #ff679b; -} - -/* ============= - Alerts -============= */ -.alert-custom { - color: #02c0ce; - background-color: #eafdff; - border-color: #39f0fd; -} - -.alert-primary { - color: #2d7bf4; - background-color: #e5effe; - border-color: #8eb8f9; -} - -.alert-secondary { - color: #9a9a9a; - background-color: #f3f3f3; - border-color: #cdcdcd; -} - -.alert-success { - color: #0acf97; - background-color: #f3fefb; - border-color: #49f6c5; -} - -.alert-danger { - color: #f1556c; - background-color: #fef0f2; - border-color: #f9b3bd; -} - -.alert-warning { - color: #f9bc0b; - background-color: #fffaeb; - border-color: #fbd76f; -} - -.alert-info { - color: #4eb7eb; - background-color: #eef8fd; - border-color: #aadcf5; -} - -.alert-light { - background-color: #f3f6f8; - border-color: #e3eaef; -} - -.alert-dark { - color: #313a46; - background-color: #dce1e7; - border-color: #919fb2; -} - -.jq-toast-single { - padding: 15px; - font-family: "Roboto", sans-serif; - background-color: #02c0ce; - font-size: 13px; - line-height: 22px; -} - -.jq-toast-single h2 { - font-family: "Rubik", sans-serif; -} - -.jq-toast-single a { - font-size: 14px; -} - -.jq-toast-single a:hover { - color: #ffffff; -} - -.jq-has-icon { - padding: 10px 10px 10px 50px; -} - -.jq-icon-info { - background-color: #4eb7eb; - color: #ffffff; - border-color: #4eb7eb; -} - -.jq-icon-success { - background-color: #0acf97; - color: #ffffff; - border-color: #0acf97; -} - -.jq-icon-warning { - background-color: #f9bc0b; - color: #ffffff; - border-color: #f9bc0b; -} - -.jq-icon-error { - background-color: #f1556c; - color: #ffffff; - border-color: #f1556c; -} - -.close-jq-toast-single { - position: absolute; - top: -12px; - right: -12px; - font-size: 20px; - cursor: pointer; - height: 32px; - width: 32px; - background-color: #313a46; - border-radius: 50%; - text-align: center; - line-height: 32px; -} - -.jq-toast-loader { - height: 3px; - top: 0; - border-radius: 0; -} - -/* ============= - Modals -============= */ -.modal .modal-dialog .close { - top: 0; - position: absolute; - right: 0; - height: 36px; - width: 36px; - background-color: #313a46; - opacity: 1; - border: 2px solid #ffffff; - text-shadow: none; - color: #ffffff; - border-radius: 50%; - padding: 0; -} - -.modal .modal-dialog .modal-title { - margin: 0; -} - -.modal .modal-dialog .modal-content { - border: none; - box-shadow: none; -} - -.modal .modal-dialog .modal-content .modal-header { - border-bottom-width: 2px; - margin: 0; -} - -.modal .modal-dialog .modal-content .modal-body { - padding: 20px; -} - -.modal-backdrop { - background-color: #313a46; -} - -.modal-backdrop.show { - opacity: .6; -} - -.modal-full { - width: 98%; -} - -.modal-content .nav.nav-tabs + .tab-content { - margin-bottom: 0; -} - -.modal-content .panel-group { - margin-bottom: 0; -} - -.modal-content .panel { - border-top: none; -} - -/* Custom-modal */ -.custombox-open body { - padding-right: 0 !important; -} - -.modal-demo { - background-color: #ffffff; - width: 600px !important; - border-radius: 4px; - display: none; -} - -.modal-demo .close { - position: absolute; - top: 15px; - right: 25px; - color: #e3eaef; -} - -@media (max-width: 768px) { - .modal-demo { - width: 100% !important; - } -} - -.custom-modal-title { - padding: 15px 25px 15px 25px; - line-height: 22px; - font-size: 18px; - background-color: #313a46; - color: #ffffff; - text-align: left; - margin: 0; -} - -.custom-modal-text { - padding: 20px; -} - -.custombox-modal-wrapper { - text-align: left; -} - -.custombox-modal-flash .close, .custombox-modal-rotatedown .close { - top: 20px; - z-index: 9999; -} - -/* ================= - Spinners -==================== */ -.sk-rotating-plane, .sk-double-bounce .sk-child, .sk-wave .sk-rect, .sk-wandering-cubes .sk-cube, .sk-spinner-pulse, -.sk-chasing-dots .sk-child, .sk-three-bounce .sk-child, .sk-circle .sk-child:before, .sk-cube-grid .sk-cube, -.sk-fading-circle .sk-circle:before, .sk-folding-cube .sk-cube:before { - background-color: #02c0ce; -} - -.sk-fading-circle .sk-circle { - margin-top: 0; -} - -/* ============= - Widgets -============= */ -.widget-flat { - border: 2px solid #313a46; - position: relative; -} - -.widget-flat i { - position: absolute; - bottom: -20px; - font-size: 78px; - opacity: 0.25; - left: 0; - transition: bottom 0.5s ease 0s; -} - -.widget-flat:hover i { - bottom: 0; -} - -.widget-chart-one { - min-height: 120px; -} - -.widget-chart-one .widget-chart-one-content { - margin-left: 100px; -} - -.widget-chart-two { - min-height: 120px; -} - -.widget-chart-two .widget-chart-one-content { - margin-right: 100px; -} - -.tilebox-one i { - font-size: 30px; -} - -/* Inbox-widget */ -.inbox-widget .inbox-item { - border-bottom: 1px solid #f3f6f8; - overflow: hidden; - padding: 10px 0; - position: relative; -} - -.inbox-widget .inbox-item .inbox-item-img { - display: block; - float: left; - margin-right: 15px; - width: 40px; -} - -.inbox-widget .inbox-item img { - width: 40px; -} - -.inbox-widget .inbox-item .inbox-item-author { - color: #313a46; - display: block; - margin: 0; -} - -.inbox-widget .inbox-item .inbox-item-text { - color: #98a6ad; - display: block; - font-size: 14px; - margin: 0; -} - -.inbox-widget .inbox-item .inbox-item-date { - color: #98a6ad; - font-size: 11px; - position: absolute; - right: 7px; - top: 2px; -} - -/* Comment List */ -.comment-list .comment-box-item { - position: relative; -} - -.comment-list .comment-box-item .commnet-item-date { - color: #98a6ad; - font-size: 11px; - position: absolute; - right: 7px; - top: 2px; -} - -.comment-list .comment-box-item .commnet-item-msg { - color: #313a46; - display: block; - margin: 10px 0; - font-weight: normal; - font-size: 15px; - line-height: 24px; -} - -.comment-list .comment-box-item .commnet-item-user { - color: #98a6ad; - display: block; - font-size: 14px; - margin: 0; -} - -.comment-list a + a { - margin-top: 15px; - display: block; -} - -/* Transaction */ -.transaction-list li { - padding: 7px 0; - border-bottom: 1px solid #f3f6f8; - clear: both; - position: relative; -} - -.transaction-list i { - width: 20px; - position: absolute; - top: 10px; - font-size: 12px; -} - -.transaction-list .tran-text { - padding-left: 25px; - white-space: nowrap; - display: inline-block; - overflow: hidden; - text-overflow: ellipsis; - width: 150px; -} - -.transaction-list .tran-price { - margin-left: 30px; -} - -/* ============= - Tabs -============= */ -.tab-content { - padding: 20px 0 0 0; -} - -.navtab-bg { - background-color: #f3f6f8; -} - -.nav-tabs > li > a, .nav-pills > li > a { - color: #98a6ad; - font-family: "Rubik", sans-serif; -} - -.nav-pills .nav-item.show .nav-link, .nav-pills .nav-link.active { - background: #02c0ce; -} - -/* Vertial tab */ -.tabs-vertical-env .tab-content { - background: #ffffff; - display: table-cell; - padding: 0 0 0 20px; - vertical-align: top; -} - -.tabs-vertical-env .nav.tabs-vertical { - display: table-cell; - min-width: 120px; - vertical-align: top; - width: 150px; -} - -.tabs-vertical-env .nav.tabs-vertical li > a { - color: #98a6ad; - white-space: nowrap; - font-family: "Rubik", sans-serif; -} - -.tabs-vertical-env .nav.tabs-vertical li > a.active { - background: #02c0ce; - border: 0; - color: #ffffff; -} - -.tabs-vertical-env-right .tab-content { - padding: 0 20px 0 0; -} - -.tabs-bordered { - border-bottom: 2px solid rgba(152, 166, 173, 0.2) !important; -} - -.tabs-bordered .nav-item { - margin-bottom: -2px; -} - -.tabs-bordered li a, .tabs-bordered li a:hover, .tabs-bordered li a:focus { - border: 0 !important; - padding: 10px 20px !important; -} - -.tabs-bordered li a.active { - border-bottom: 2px solid #02c0ce !important; -} - -/* Navpills */ -.nav-pills > li > a { - color: #313a46; -} - -.nav-pills > li.active > a, .nav-pills > li.active > a:focus, .nav-pills > li.active > a:hover { - background: #02c0ce; -} - -/* ============= - Progressbars -============= */ -.progress { - -webkit-box-shadow: none; - background-color: #f3f3f3; - box-shadow: none; - margin-bottom: 18px; - overflow: hidden; - height: 0.7rem; -} - -.progress-bar { - box-shadow: none; - font-size: 8px; - font-weight: 600; - line-height: 12px; - background-color: #02c0ce; -} - -.progress-bar-primary { - background-color: #2d7bf4; -} - -.progress-bar-success { - background-color: #0acf97; -} - -.progress-bar-info { - background-color: #4eb7eb; -} - -.progress-bar-warning { - background-color: #f9bc0b; -} - -.progress-bar-danger { - background-color: #f1556c; -} - -.progress-bar-dark { - background-color: #313a46; -} - -.progress-bar-purple { - background-color: #777edd; -} - -.progress-bar-pink { - background-color: #ff679b; -} - -/* Progressbar Vertical */ -.progress-vertical { - min-height: 250px; - height: 250px; - width: 10px; - position: relative; - display: inline-block; - margin-bottom: 0; - margin-right: 20px; -} - -.progress-vertical .progress-bar { - width: 100%; -} - -.progress-vertical-bottom { - min-height: 250px; - height: 250px; - position: relative; - width: 10px; - display: inline-block; - margin-bottom: 0; - margin-right: 20px; -} - -.progress-vertical-bottom .progress-bar { - width: 100%; - position: absolute; - bottom: 0; -} - -.progress-vertical.progress-sm, .progress-vertical-bottom.progress-sm { - width: 5px; -} - -.progress-vertical.progress-sm .progress-bar, .progress-vertical-bottom.progress-sm .progress-bar { - font-size: 8px; - line-height: 5px; -} - -.progress-vertical.progress-md, .progress-vertical-bottom.progress-md { - width: 15px; -} - -.progress-vertical.progress-md .progress-bar, .progress-vertical-bottom.progress-md .progress-bar { - font-size: 10.8px; - line-height: 14.4px; -} - -.progress-vertical.progress-lg, .progress-vertical-bottom.progress-lg { - width: 20px; -} - -.progress-vertical.progress-lg .progress-bar, .progress-vertical-bottom.progress-lg .progress-bar { - font-size: 12px; - line-height: 20px; -} - -/* =========== */ -/* Sweet Alert */ -/* =========== */ -.swal2-modal { - font-family: "Roboto", sans-serif; - box-shadow: 0 10px 33px rgba(0, 0, 0, 0.1); -} - -.swal2-modal .swal2-title { - font-size: 28px; -} - -.swal2-modal .swal2-content { - font-size: 16px; -} - -.swal2-modal .swal2-spacer { - margin: 10px 0; -} - -.swal2-modal .swal2-file, .swal2-modal .swal2-input, .swal2-modal .swal2-textarea { - border: 2px solid #98a6ad; - font-size: 16px; - box-shadow: none; -} - -.swal2-modal .swal2-confirm.btn-confirm { - background-color: #02c0ce !important; -} - -.swal2-modal .swal2-cancel.btn-cancel { - background-color: #f1556c !important; -} - -.swal2-modal .swal2-styled:focus { - box-shadow: none !important; -} - -.swal2-icon.swal2-question { - color: #02c0ce; - border-color: #02c0ce; -} - -.swal2-icon.swal2-success { - border-color: #0acf97; -} - -.swal2-icon.swal2-success .line, .swal2-icon.swal2-success [class^=swal2-success-line][class$=long], -.swal2-icon.swal2-success [class^=swal2-success-line] { - background-color: #0acf97; -} - -.swal2-icon.swal2-success .placeholder, .swal2-icon.swal2-success .swal2-success-ring { - border-color: #0acf97; -} - -.swal2-icon.swal2-warning { - color: #f9bc0b; - border-color: #f9bc0b; -} - -.swal2-icon.swal2-error { - border-color: #f1556c; -} - -.swal2-icon.swal2-error .line { - background-color: #f1556c; -} - -.swal2-modal .swal2-file:focus, .swal2-modal .swal2-input:focus, .swal2-modal .swal2-textarea:focus { - outline: 0; - border: 2px solid #02c0ce; -} - -.swal2-container.swal2-shown { - background-color: rgba(49, 58, 70, 0.9); -} - -/* ============= - Charts -============= */ -/* Flot chart */ -#flotTip { - padding: 8px 12px; - background-color: #ffffff; - z-index: 100; - color: #313a46; - opacity: 1; - box-shadow: 0 5px 25px 5px rgba(0, 0, 0, 0.14); - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} - -.legend tr { - height: 30px; - font-family: "Rubik", sans-serif; -} - -.legendLabel { - padding-left: 5px !important; - line-height: 10px; - padding-right: 20px; - font-size: 13px; - font-weight: 500; - color: rgba(49, 58, 70, 0.6); - text-transform: uppercase; -} - -.legendColorBox div div { - border-radius: 50%; -} - -/* Morris chart */ -.morris-hover.morris-default-style { - border-radius: 3px; - padding: 10px 12px; - background: #ffffff; - border: none; - box-shadow: 0 0 24px 0 rgba(0, 0, 0, 0.06), 0 1px 0 0 rgba(0, 0, 0, 0.02); - color: #313a46; -} - -/* Chartist chart */ -.ct-golden-section:before { - float: none; -} - -.ct-chart { - max-height: 350px; -} - -.ct-chart .ct-label { - fill: #98a6ad; - color: #98a6ad; - font-size: 13px; - line-height: 1; -} - -.ct-grid { - stroke: rgba(49, 58, 70, 0.1); -} - -.ct-chart.simple-pie-chart-chartist .ct-label { - color: #ffffff; - fill: #ffffff; - font-size: 16px; -} - -.ct-chart .ct-series.ct-series-a .ct-bar, .ct-chart .ct-series.ct-series-a .ct-line, .ct-chart .ct-series.ct-series-a .ct-point, .ct-chart .ct-series.ct-series-a .ct-slice-donut { - stroke: #02c0ce; -} - -.ct-chart .ct-series.ct-series-b .ct-bar, .ct-chart .ct-series.ct-series-b .ct-line, .ct-chart .ct-series.ct-series-b .ct-point, .ct-chart .ct-series.ct-series-b .ct-slice-donut { - stroke: #e3eaef; -} - -.ct-chart .ct-series.ct-series-c .ct-bar, .ct-chart .ct-series.ct-series-c .ct-line, .ct-chart .ct-series.ct-series-c .ct-point, .ct-chart .ct-series.ct-series-c .ct-slice-donut { - stroke: #2d7bf4; -} - -.ct-chart .ct-series.ct-series-d .ct-bar, .ct-chart .ct-series.ct-series-d .ct-line, .ct-chart .ct-series.ct-series-d .ct-point, .ct-chart .ct-series.ct-series-d .ct-slice-donut { - stroke: #f1556c; -} - -.ct-chart .ct-series.ct-series-e .ct-bar, .ct-chart .ct-series.ct-series-e .ct-line, .ct-chart .ct-series.ct-series-e .ct-point, .ct-chart .ct-series.ct-series-e .ct-slice-donut { - stroke: #4eb7eb; -} - -.ct-chart .ct-series.ct-series-f .ct-bar, .ct-chart .ct-series.ct-series-f .ct-line, .ct-chart .ct-series.ct-series-f .ct-point, .ct-chart .ct-series.ct-series-f .ct-slice-donut { - stroke: #ff679b; -} - -.ct-chart .ct-series.ct-series-g .ct-bar, .ct-chart .ct-series.ct-series-g .ct-line, .ct-chart .ct-series.ct-series-g .ct-point, .ct-chart .ct-series.ct-series-g .ct-slice-donut { - stroke: #f9bc0b; -} - -.ct-series-a .ct-area, .ct-series-a .ct-slice-pie { - fill: #02c0ce; -} - -.ct-series-b .ct-area, .ct-series-b .ct-slice-pie { - fill: #e3eaef; -} - -.ct-series-c .ct-area, .ct-series-c .ct-slice-pie { - fill: #2d7bf4; -} - -.ct-series-d .ct-area, .ct-series-d .ct-slice-pie { - fill: #f1556c; -} - -.chartist-tooltip { - position: absolute; - display: inline-block; - opacity: 0; - min-width: 10px; - padding: 2px 10px; - border-radius: 3px; - background: #313a46; - color: #ffffff; - text-align: center; - pointer-events: none; - z-index: 1; - -webkit-transition: opacity .2s linear; - -moz-transition: opacity .2s linear; - -o-transition: opacity .2s linear; - transition: opacity .2s linear; -} - -.chartist-tooltip.tooltip-show { - opacity: 1; -} - -/* Sparkline chart */ -.jqstooltip { - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; - width: auto !important; - height: auto !important; - background-color: #ffffff !important; - box-shadow: 0 5px 25px 5px rgba(0, 0, 0, 0.14); - padding: 5px 10px !important; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-border-radius: 3px; - border-color: #ffffff !important; -} - -.jqsfield { - color: #313a46 !important; - font-size: 12px !important; - line-height: 18px !important; -} - -/* ============= - Email -============= */ -.inbox-leftbar { - width: 240px; - float: left; - padding: 0 20px 20px 10px; -} - -.inbox-rightbar { - margin-left: 250px; -} - -.message-list { - display: block; - padding-left: 0; -} - -.message-list li { - position: relative; - display: block; - height: 50px; - line-height: 50px; - cursor: default; - transition-duration: .3s; -} - -.message-list li a { - color: #797979; -} - -.message-list li:hover { - background: rgba(152, 166, 173, 0.15); - transition-duration: .05s; -} - -.message-list li .col-mail { - float: left; - position: relative; -} - -.message-list li .col-mail-1 { - width: 320px; -} - -.message-list li .col-mail-1 .star-toggle, -.message-list li .col-mail-1 .checkbox-wrapper-mail, -.message-list li .col-mail-1 .dot { - display: block; - float: left; -} - -.message-list li .col-mail-1 .dot { - border: 4px solid transparent; - border-radius: 100px; - margin: 22px 26px 0; - height: 0; - width: 0; - line-height: 0; - font-size: 0; -} - -.message-list li .col-mail-1 .checkbox-wrapper-mail { - margin: 15px 10px 0 20px; -} - -.message-list li .col-mail-1 .star-toggle { - margin-top: 18px; - font-size: 16px; - margin-left: 5px; -} - -.message-list li .col-mail-1 .title { - position: absolute; - top: 15px; - left: 110px; - right: 0; - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; -} - -.message-list li .col-mail-2 { - position: absolute; - top: 0; - left: 320px; - right: 0; - bottom: 0; -} - -.message-list li .col-mail-2 .subject, -.message-list li .col-mail-2 .date { - position: absolute; - top: 0; -} - -.message-list li .col-mail-2 .subject { - left: 0; - right: 200px; - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; -} - -.message-list li .col-mail-2 .date { - right: 0; - width: 170px; - padding-left: 80px; -} - -.message-list li.active, .message-list li.selected { - background: rgba(152, 166, 173, 0.15); - transition-duration: .05s; -} - -.message-list li.active, -.message-list li.active:hover { - box-shadow: inset 3px 0 0 #02c0ce; -} - -.message-list li.unread a { - font-weight: 600; - color: #272e37; -} - -.message-list li.blue-dot .col-mail-1 .dot { - border-color: #2d7bf4; -} - -.message-list li.orange-dot .col-mail-1 .dot { - border-color: #f9bc0b; -} - -.message-list li.green-dot .col-mail-1 .dot { - border-color: #0acf97; -} - -.message-list .checkbox-wrapper-mail { - cursor: pointer; - height: 20px; - width: 20px; - position: relative; - display: inline-block; - box-shadow: inset 0 0 0 1px #98a6ad; - border-radius: 1px; -} - -.message-list .checkbox-wrapper-mail input { - opacity: 0; - cursor: pointer; -} - -.message-list .checkbox-wrapper-mail input:checked ~ label { - opacity: 1; -} - -.message-list .checkbox-wrapper-mail label { - position: absolute; - top: 3px; - left: 3px; - right: 3px; - bottom: 3px; - cursor: pointer; - background: #98a6ad; - opacity: 0; - margin-bottom: 0 !important; - transition-duration: .05s; -} - -.message-list .checkbox-wrapper-mail label:active { - background: #87949b; -} - -.mail-list a { - font-family: "Rubik", sans-serif; - vertical-align: middle; - color: #797979; - padding: 10px 15px; - display: block; -} - -.reply-box { - border: 2px solid #e3eaef; -} - -@media (max-width: 648px) { - .inbox-leftbar { - width: 100%; - } - .inbox-rightbar { - margin-left: 0; - } -} - -@media (max-width: 520px) { - .message-list li .col-mail-1 { - width: 150px; - } - .message-list li .col-mail-1 .title { - left: 80px; - } - .message-list li .col-mail-2 { - left: 160px; - } - .message-list li .col-mail-2 .date { - text-align: right; - padding-right: 10px; - padding-left: 20px; - } -} - -/* ============= - Form -============= */ -label { - font-size: 14px; - color: #313a46; - font-family: "Rubik", sans-serif; - font-weight: 500; -} - -select[multiple] option + option, select[size] option + option { - margin-top: 1px; -} - -select[multiple] option, select[size] option { - padding: 6px 12px; - border-radius: 2px; -} - -select[multiple] { - height: auto; -} - -textarea.form-control { - min-height: 90px; -} - -.form-control { - border: 1px solid #d9e3e9; - border-radius: 4px; - max-width: 100%; - padding: .469rem .75rem; - font-size: 14px; - -webkit-box-shadow: none; - box-shadow: none; - -webkit-transition: all 300ms linear; - -moz-transition: all 300ms linear; - -o-transition: all 300ms linear; - transition: all 300ms linear; -} - -.form-control:focus { - border: 1px solid #a2b9ca; - -webkit-box-shadow: none; - box-shadow: none; - outline: 0; -} - -.form-control-lg { - padding: 12px 16px; - font-size: 16px; - border-radius: 4px; -} - -.form-control-sm { - padding: 5px 10px; - font-size: 12px; - border-radius: 3px; -} - -input[type="color"] { - min-height: 38px; -} - -.input-group-prepend .btn, .input-group-append .btn { - min-height: 38px; -} - -.form-control-sm, .input-group-sm > .form-control, .input-group-sm > .input-group-append > .btn, -.input-group-sm > .input-group-append > .input-group-text, .input-group-sm > .input-group-prepend > .btn, -.input-group-sm > .input-group-prepend > .input-group-text { - font-size: 12px; -} - -.custom-select:focus { - box-shadow: none; -} - -.custom-control-input { - display: none; -} - -.custom-control-input:checked ~ .custom-control-indicator { - background-color: #02c0ce; -} - -.form-check-input:only-child { - position: absolute; -} - -/* ============= - Form Advanced -============= */ -/* Select 2 */ -.select2-container { - width: 100% !important; -} - -.select2-container .select2-selection--single { - border: 1px solid #e0e8ed; - height: 38px; -} - -.select2-container .select2-selection--single .select2-selection__rendered { - line-height: 36px; - padding-left: 12px; -} - -.select2-container .select2-selection--single .select2-selection__arrow { - height: 34px; - width: 34px; - right: 3px; -} - -.select2-container .select2-selection--single .select2-selection__arrow b { - border-color: #b2c5d3 transparent transparent transparent; - border-width: 6px 6px 0 6px; -} - -.select2-container--open .select2-selection--single .select2-selection__arrow b { - border-color: transparent transparent #b2c5d3 transparent !important; - border-width: 0 6px 6px 6px !important; -} - -.select2-results__option { - padding: 6px 12px; -} - -.select2-dropdown { - border: 1px solid #d3dee6; - box-shadow: 0 0 24px 0 rgba(0, 0, 0, 0.06), 0 1px 0 0 rgba(0, 0, 0, 0.02); -} - -.select2-container--default .select2-search--dropdown { - padding: 10px; - background-color: #f3f6f8; -} - -.select2-container--default .select2-search--dropdown .select2-search__field { - border: 1px solid #d3dee6; -} - -.select2-container--default .select2-results__option--highlighted[aria-selected] { - background-color: #02c0ce; -} - -.select2-container--default .select2-results__option[aria-selected=true] { - background-color: #e3eaef; - color: #313a46; -} - -.select2-container--default .select2-results__option[aria-selected=true]:hover { - background-color: #02c0ce; - color: #ffffff; -} - -.select2-container .select2-selection--multiple { - min-height: 38px; - border: 1px solid #d3dee6 !important; -} - -.select2-container .select2-selection--multiple .select2-selection__rendered { - padding: 2px 10px; -} - -.select2-container .select2-selection--multiple .select2-search__field { - margin-top: 7px; - border: 0; -} - -.select2-container .select2-selection--multiple .select2-selection__choice { - background-color: #02c0ce; - border: 1px solid transparent; - color: #ffffff; - border-radius: 3px; - padding: 0 7px; -} - -.select2-container .select2-selection--multiple .select2-selection__choice__remove { - color: #ffffff; - margin-right: 5px; -} - -.select2-container .select2-selection--multiple .select2-selection__choice__remove:hover { - color: #ffffff; -} - -/* AUTOCOMPLETE */ -.autocomplete-suggestions { - border: 1px solid #e3eaef; - background: #ffffff; - cursor: default; - overflow: auto; - box-shadow: 0 0 24px 0 rgba(0, 0, 0, 0.06), 0 1px 0 0 rgba(0, 0, 0, 0.02); -} - -.autocomplete-suggestion { - padding: 5px 8px; - white-space: nowrap; - overflow: hidden; -} - -.autocomplete-no-suggestion { - padding: 5px 10px; - color: #f1556c; -} - -.autocomplete-selected { - background-color: #02c0ce; - color: #ffffff; - cursor: pointer; -} - -.autocomplete-selected strong { - color: #ffffff !important; -} - -.autocomplete-suggestions strong { - font-weight: bold; - color: #313a46; -} - -.autocomplete-group { - padding: 2px 5px; -} - -.autocomplete-group strong { - font-weight: bold; - font-size: 16px; - color: #313a46; - display: block; -} - -/* Bootstrap tagsinput */ -.bootstrap-tagsinput { - box-shadow: none; - padding: 3px 7px 5px; - width: 100%; - line-height: 1; - border: 1px solid #d3dee6; -} - -.bootstrap-tagsinput .label-info { - background-color: #02c0ce; - display: inline-block; - padding: 4px 8px; - font-size: 13px; - margin: 3px 1px; - border-radius: 3px; -} - -/* Bootstrap select */ -.bootstrap-select:not([class*=col-]):not([class*=form-control]):not(.input-group-btn) { - width: 100% !important; -} - -.bootstrap-select .dropdown-toggle:focus { - outline: none !important; -} - -.bootstrap-select .glyphicon { - padding-right: 6px; -} - -.bootstrap-select.show > .dropdown-menu > .dropdown-menu { - display: block; -} - -.bootstrap-select > .dropdown-menu > .dropdown-menu li.hidden { - display: none; -} - -.bootstrap-select > .dropdown-menu > .dropdown-menu li a { - display: block; - width: 100%; - padding: 3px 1.5rem; - clear: both; - font-weight: 400; - color: #313a46; - text-align: inherit; - white-space: nowrap; - background: 0 0; - border: 0; -} - -.bootstrap-select > .dropdown-menu > .dropdown-menu li a:hover { - background-color: #02c0ce; - color: #ffffff; -} - -.bootstrap-select .check-mark::after { - content: "\F12C"; - font-family: "Material Design Icons"; -} - -.bootstrap-select button { - overflow: hidden; - text-overflow: ellipsis; -} - -.bootstrap-select.btn-group.show-tick .dropdown-menu li.selected a span.check-mark { - margin-top: 0; -} - -.bootstrap-select.btn-group .no-results { - background-color: #ffffff; - color: #f1556c; -} - -/* X Editable */ -.editable-checklist label { - display: block; -} - -.editable-click, a.editable-click, a.editable-click:hover { - color: #02c0ce; -} - -/* Bootstrap Fileupload */ -.bootstrap-filestyle .group-span-filestyle .btn { - min-height: 38px; - line-height: 24px; -} - -/* ============= - Form Validation -============= */ -.parsley-errors-list { - margin: 0; - padding: 0; -} - -.parsley-errors-list > li { - list-style: none; - color: #f1556c; - margin-top: 5px; - padding-left: 20px; - position: relative; -} - -.parsley-errors-list > li:before { - content: "\F159"; - font-family: "Material Design Icons"; - position: absolute; - left: 2px; - top: -1px; -} - -/* ============= - Form Pickers -============= */ -/* Time Picker */ -.bootstrap-timepicker-widget table td input { - height: 32px; - width: 32px; - color: #ffffff; - background-color: #02c0ce; - border-radius: 50%; -} - -.bootstrap-timepicker-widget table td a:hover { - background-color: transparent; - border: 1px solid transparent; - color: #02c0ce; -} - -/* Color Picker */ -.colorpicker-selectors i { - margin-top: 5px; - margin-left: 5px; -} - -/* Datepicker */ -.datepicker-dropdown { - padding: 10px !important; -} - -.datepicker > div { - display: inherit; -} - -.datepicker td, .datepicker th { - width: 30px; - height: 30px; -} - -.datepicker table tr td.active:hover, .datepicker table tr td.active:hover:hover, -.datepicker table tr td.active.disabled:hover, -.datepicker table tr td.active.disabled:hover:hover, -.datepicker table tr td.active:active, .datepicker table tr td.active:hover:active, -.datepicker table tr td.active.disabled:active, -.datepicker table tr td.active.disabled:hover:active, -.datepicker table tr td.active.active, .datepicker table tr td.active:hover.active, -.datepicker table tr td.active.disabled.active, -.datepicker table tr td.active.disabled:hover.active, -.datepicker table tr td.active.disabled, -.datepicker table tr td.active:hover.disabled, -.datepicker table tr td.active.disabled.disabled, -.datepicker table tr td.active.disabled:hover.disabled, -.datepicker table tr td.active[disabled], .datepicker table tr td.active:hover[disabled], -.datepicker table tr td.active.disabled[disabled], -.datepicker table tr td.active.disabled:hover[disabled], -.datepicker table tr td.selected, .datepicker table tr td.selected:hover, -.datepicker table tr td.selected.disabled, .datepicker table tr td.selected.disabled:hover { - background-color: #02c0ce !important; - color: #ffffff !important; - background-image: none !important; - text-shadow: none !important; -} - -.datepicker table tr td.today, .datepicker table tr td.today:hover, .datepicker table tr td.today.disabled, .datepicker table tr td.today.disabled:hover { - background-color: #02c0ce !important; - color: #ffffff !important; - background-image: none !important; -} - -.datepicker-inline { - border: 2px solid #d3dee6; - width: 240px; -} - -.datepicker .datepicker-switch:hover, .datepicker .next:hover, .datepicker .prev:hover, .datepicker tfoot tr th:hover, -.datepicker table tr td.day.focused, .datepicker table tr td.day:hover { - background: #e3eaef; -} - -/* Daterange Picker */ -.daterangepicker td.active, .daterangepicker td.active:hover { - background: #02c0ce; -} - -.daterangepicker .input-mini.active { - border: 1px solid rgba(49, 58, 70, 0.3); -} - -.daterangepicker .ranges li { - border-radius: 2px; - color: #313a46; - font-size: 12px; - background-color: #e3eaef; - border-color: #e3eaef; -} - -.daterangepicker select.hourselect, .daterangepicker select.minuteselect, -.daterangepicker select.secondselect, .daterangepicker select.ampmselect { - border: 1px solid rgba(49, 58, 70, 0.3); - padding: 2px; - width: 60px; -} - -.daterangepicker .ranges li.active, .daterangepicker .ranges li:hover { - background: #02c0ce; - border: 1px solid #02c0ce; - color: #ffffff; -} - -.daterangepicker select.monthselect, .daterangepicker select.yearselect { - border: none; -} - -/* Clock picker */ -.clockpicker-canvas line { - stroke: #b7f9fe; -} - -.clockpicker-canvas-bearing, .clockpicker-canvas-fg, .clockpicker-canvas-bg { - fill: #b7f9fe; -} - -/* ============= - Form Wizard -============= */ -.wizard > .content { - background: #ffffff; - min-height: 240px; - padding: 20px; - margin-top: 0; -} - -.wizard > .content > .body { - padding: 0; - position: relative; -} - -.wizard > .content > .body ul > li { - display: block; - line-height: 30px; -} - -.wizard > .content > .body label.error { - color: #f1556c; - margin-left: 0; -} - -.wizard > .content > .body label { - display: inline-block; - margin-top: 10px; -} - -.wizard > .content > .body input { - border-color: #d9e3e9; -} - -.wizard > .steps { - background-color: #f3f6f8; -} - -.wizard > .steps .number { - border-radius: 50%; - background-color: rgba(255, 255, 255, 0.3); - display: inline-block; - line-height: 30px; - margin-right: 10px; - width: 30px; - text-align: center; -} - -.wizard > .steps .disabled a, .wizard > .steps .disabled a:hover, .wizard > .steps .disabled a:active { - background: transparent; - color: #313a46; - cursor: default; - border: none; -} - -.wizard > .steps .current a { - background: #02c0ce; -} - -.wizard > .steps .current a:hover, .wizard > .steps .current a:active { - background: #02c0ce; -} - -.wizard > .steps .current a:hover .number, .wizard > .steps .current a:active .number { - color: #ffffff; -} - -.wizard > .steps .current a .number { - color: #ffffff; -} - -.wizard > .steps .done a { - background: #e3eaef; - color: #313a46; -} - -.wizard > .steps .done a:hover, .wizard > .steps .done a:active { - background: #e3eaef; - color: #313a46; -} - -.wizard > .steps a, .wizard > .steps a:hover, .wizard > .steps a:active { - border-radius: 2px; - margin: 0; -} - -.wizard > .actions { - padding: 0 20px; - margin: 0 !important; -} - -.wizard > .actions a, .wizard > .actions a:hover, .wizard > .actions a:active { - background: #02c0ce; - border-radius: 2px; - color: #ffffff; -} - -.wizard > .actions .disabled a, .wizard > .actions .disabled a:hover, .wizard > .actions .disabled a:active { - background: #f2f2f2; - color: #313a46; - cursor: default; - border: none; -} - -/* ============= - Summernote -============= */ -.note-editor.note-frame { - border: 3px solid #edf1f5; -} - -.note-popover .popover-content, .card-header.note-toolbar { - background-color: #edf1f5; - padding: 2px 5px 10px 10px; - border: none; -} - -.note-editor.note-frame .note-statusbar { - background-color: #edf1f5; -} - -.note-editor.note-frame .note-editing-area .note-editable { - padding: 10px 20px; -} - -.note-btn-group .btn-light { - background-color: #02c0ce !important; - color: #ffffff !important; - border-radius: 4px !important; - border: none !important; - margin: 2px; - box-shadow: none !important; -} - -/* ============= - Wysiwig -============= */ -.mce-panel { - border: 1px solid #edf1f5 !important; - background-color: #edf1f5 !important; -} - -.mce-menu { - background-color: #ffffff !important; - box-shadow: 0 0 24px 0 rgba(0, 0, 0, 0.06), 0 1px 0 0 rgba(0, 0, 0, 0.02); -} - -.mce-menubar .mce-menubtn:hover, .mce-menubar .mce-menubtn.mce-active, .mce-menubar .mce-menubtn:focus { - border-color: #edf1f5 !important; -} - -.mce-menu-item:hover, .mce-menu-item.mce-selected, .mce-menu-item:focus, .mce-menu-item-normal.mce-active, -.mce-primary { - background-color: #02c0ce !important; -} - -.mce-window-head .mce-title { - font-family: "Rubik", sans-serif; -} - -.mce-window { - padding: 20px !important; -} - -.mce-window-head { - padding-bottom: 20px !important; - border-bottom: 0 !important; -} - -.mce-grid-border a:hover, .mce-grid-border a.mce-active { - border-color: #02c0ce !important; - background: #02c0ce !important; -} - -.mce-btn { - background-color: #02c0ce !important; - border: none !important; - border-radius: 3px; - color: #ffffff !important; -} - -.mce-menubtn button, .mce-btn button { - color: #ffffff !important; -} - -.mce-menubtn button span, .mce-menubtn button i, .mce-btn button span, .mce-btn button i { - color: #ffffff !important; -} - -.mce-menubar .mce-caret, .mce-btn .mce-caret { - border-top-color: #ffffff !important; -} - -.mce-flow-layout { - padding: 5px !important; -} - -/* ============= - Form Uploads -============= */ -/* Dropzone */ -.dropzone { - min-height: 230px; - border: 2px dashed rgba(0, 0, 0, 0.3); - background: white; - border-radius: 6px; -} - -.dropzone .dz-message { - font-size: 30px; -} - -/* ============= - Tables -============= */ -.table > tbody > tr > td, .table > tbody > tr > th, .table > tfoot > tr > td, .table > tfoot > tr > th, .table > thead > tr > td, .table > thead > tr > th { - padding: 12px 10px; -} - -.table-sm td, .table-sm th { - padding: .4rem !important; -} - -.table-condensed > tbody > tr > td, .table-condensed > tbody > tr > th, .table-condensed > tfoot > tr > td, .table-condensed > tfoot > tr > th, .table-condensed > thead > tr > td, .table-condensed > thead > tr > th { - padding: 7px; -} - -th { - font-family: "Rubik", sans-serif; - font-weight: 500; -} - -.table-centered td { - vertical-align: middle !important; -} - -.table-striped tbody tr:nth-of-type(odd), .table-hover tbody tr:hover, .table-active, .table-active > td, .table-active > th { - background-color: #f3f6f8; -} - -.table-success, .table-success > td, .table-success > th { - background-color: rgba(10, 207, 151, 0.15); - border-color: rgba(10, 207, 151, 0.2); -} - -.table-info, .table-info > td, .table-info > th { - background-color: rgba(78, 183, 235, 0.15); - border-color: rgba(78, 183, 235, 0.2); -} - -.table-warning, .table-warning > td, .table-warning > th { - background-color: rgba(249, 188, 11, 0.1); - border-color: rgba(249, 188, 11, 0.2); -} - -.table-danger, .table-danger > td, .table-danger > th { - background-color: rgba(241, 85, 108, 0.1); - border-color: rgba(241, 85, 108, 0.2); -} - -/* Data table */ -.container-fluid.dataTables_wrapper { - max-width: 100%; - padding: 0; -} - -div.dt-button-info { - background-color: #02c0ce; - border: none; - color: #ffffff; - box-shadow: none; - border-radius: 3px; - text-align: center; - z-index: 21; -} - -div.dt-button-info h2 { - border-bottom: none; - background-color: rgba(255, 255, 255, 0.2); - color: #ffffff; -} - -table.dataTable { - margin-top: 10px !important; - margin-bottom: 18px !important; -} - -.table-bordered.dataTable > thead > tr > td, .table-bordered.dataTable > thead > tr > th { - border-bottom-width: 1px !important; -} - -table.dataTable th.focus, table.dataTable td.focus { - outline: 2px solid #02c0ce !important; - outline-offset: -1px; - background-color: rgba(2, 192, 206, 0.15); -} - -table.dataTable tbody > tr.selected, table.dataTable tbody > tr > .selected { - background-color: #02c0ce; -} - -/* Responsive data table */ -table.dataTable.dtr-inline.collapsed > tbody > tr > td:first-child:before, -table.dataTable.dtr-inline.collapsed > tbody > tr > th:first-child:before { - box-shadow: 0 0 3px rgba(67, 89, 102, 0.2); - background-color: #0acf97; -} - -table.dataTable.dtr-inline.collapsed > tbody > tr.parent > td:first-child:before, -table.dataTable.dtr-inline.collapsed > tbody > tr.parent > th:first-child:before { - background-color: #f1556c; -} - -table.dataTable > tbody > tr.child span.dtr-title { - font-family: "Rubik", sans-serif; -} - -/* Responsive Table */ -.table-rep-plugin .dropdown-menu li.checkbox-row { - padding: 7px 15px; -} - -.table-rep-plugin .table-responsive { - border: none; -} - -.table-rep-plugin tbody th { - font-size: 14px; - font-weight: normal; -} - -.table-rep-plugin .checkbox-row { - padding-left: 40px; -} - -.table-rep-plugin .checkbox-row label { - display: inline-block; - padding-left: 5px; - position: relative; - margin-bottom: 0; -} - -.table-rep-plugin .checkbox-row label::before { - -o-transition: 0.3s ease-in-out; - -webkit-transition: 0.3s ease-in-out; - background-color: #ffffff; - border-radius: 3px; - border: 1px solid #98a6ad; - content: ""; - display: inline-block; - height: 17px; - left: 0; - margin-left: -20px; - position: absolute; - transition: 0.3s ease-in-out; - width: 17px; - outline: none; -} - -.table-rep-plugin .checkbox-row label::after { - color: #f3f3f3; - display: inline-block; - font-size: 11px; - height: 16px; - left: 0; - margin-left: -20px; - padding-left: 3px; - padding-top: 1px; - position: absolute; - top: -1px; - width: 16px; -} - -.table-rep-plugin .checkbox-row input[type="checkbox"] { - cursor: pointer; - opacity: 0; - z-index: 1; - outline: none; -} - -.table-rep-plugin .checkbox-row input[type="checkbox"]:disabled + label { - opacity: 0.65; -} - -.table-rep-plugin .checkbox-row input[type="checkbox"]:focus + label::before { - outline-offset: -2px; - outline: none; -} - -.table-rep-plugin .checkbox-row input[type="checkbox"]:checked + label::after { - content: "\f00c"; - font-family: 'FontAwesome'; -} - -.table-rep-plugin .checkbox-row input[type="checkbox"]:disabled + label::before { - background-color: #e3eaef; - cursor: not-allowed; -} - -.table-rep-plugin .checkbox-row input[type="checkbox"]:checked + label::before { - background-color: #ffffff; - border-color: #02c0ce; -} - -.table-rep-plugin .checkbox-row input[type="checkbox"]:checked + label::after { - color: #02c0ce; -} - -.table-rep-plugin table.focus-on tbody tr.focused th, .table-rep-plugin table.focus-on tbody tr.focused td, -.table-rep-plugin .sticky-table-header { - background: #02c0ce; - color: #ffffff; - border-color: #02c0ce; -} - -.table-rep-plugin .sticky-table-header.fixed-solution { - top: 120px !important; -} - -.table-rep-plugin .btn-default { - background-color: #ffffff; - border: 1px solid rgba(49, 58, 70, 0.3); -} - -.table-rep-plugin .btn-group.pull-right { - float: right; -} - -.table-rep-plugin .btn-group.pull-right .dropdown-menu { - left: auto; - right: 0; -} - -.table-rep-plugin .btn-default.btn-primary { - background-color: #02c0ce; - border-color: #02c0ce; - box-shadow: 0 0 0 2px rgba(2, 192, 206, 0.5); -} - -.table-rep-plugin .btn-toolbar { - display: block; -} - -/* Tablesaw Tables */ -.tablesaw thead { - background: #f3f6f8; - background-image: none; - border: none; -} - -.tablesaw thead th { - text-shadow: none; -} - -.tablesaw thead tr:first-child th { - border: none; - font-weight: 500; - font-family: "Rubik", sans-serif; -} - -.tablesaw td { - border-top: 1px solid #f3f6f8 !important; -} - -.tablesaw td, .tablesaw tbody th { - font-size: inherit; - line-height: inherit; - padding: 10px !important; -} - -.tablesaw-stack tbody tr, .tablesaw tbody tr { - border-bottom: none; -} - -.tablesaw-sortable .tablesaw-sortable-head.tablesaw-sortable-ascending button:after, .tablesaw-sortable .tablesaw-sortable-head.tablesaw-sortable-descending button:after { - font-family: FontAwesome; - font-size: 10px; -} - -.tablesaw-sortable .tablesaw-sortable-head.tablesaw-sortable-ascending button:after { - content: "\f176"; -} - -.tablesaw-sortable .tablesaw-sortable-head.tablesaw-sortable-descending button:after { - content: "\f175"; -} - -.tablesaw-bar .btn-select.btn-small:after, .tablesaw-bar .btn-select.btn-micro:after { - font-size: 8px; - padding-right: 10px; -} - -.tablesaw-swipe .tablesaw-cell-persist { - box-shadow: none; - border-color: #e3eaef; -} - -.tablesaw-enhanced .tablesaw-bar .btn { - text-shadow: none; - background-image: none; - text-transform: none; - border: 1px solid #d3dee6; -} - -.tablesaw-enhanced .tablesaw-bar .btn.btn-select:hover { - background: #ffffff; -} - -.tablesaw thead tr:first-child th, .tablesaw-sortable th.tablesaw-sortable-head button { - padding-top: 1.2em; - padding-bottom: 1em; -} - -.tablesaw-enhanced .tablesaw-bar .btn:hover, .tablesaw-enhanced .tablesaw-bar .btn:focus, .tablesaw-enhanced .tablesaw-bar .btn:active { - color: #02c0ce !important; - background-color: #e3eaef; - outline: none !important; - box-shadow: none !important; - background-image: none; -} - -.tablesaw-columntoggle-popup .btn-group { - display: block; -} - -/* Footable */ -.footable-odd { - background-color: #ffffff; -} - -.footable-detail-show { - background-color: #e3eaef; -} - -.footable-row-detail { - background-color: #F0F4F7; -} - -.footable-pagination li { - margin-left: 5px; - display: inline-block; - float: left; -} - -.footable-pagination li a { - position: relative; - display: block; - padding: .5rem .75rem; - margin-left: -1px; - line-height: 1.25; - color: #313a46; - background-color: #ffffff; - border: 1px solid #e3eaef; -} - -.footable-pagination li.active a { - color: #ffffff; -} - -.footable > thead > tr > th > span.footable-sort-indicator { - float: right; -} - -.footable a { - color: #02c0ce; -} - -/* ============= - Maps -============= */ -.gmaps, -.gmaps-panaroma { - height: 300px; - background: #e3eaef; - border-radius: 3px; -} - -.gmaps-overlay { - display: block; - text-align: center; - color: #ffffff; - font-size: 16px; - line-height: 40px; - background: #02c0ce; - border-radius: 4px; - padding: 10px 20px; -} - -.gmaps-overlay_arrow { - left: 50%; - margin-left: -16px; - width: 0; - height: 0; - position: absolute; -} - -.gmaps-overlay_arrow.above { - bottom: -15px; - border-left: 16px solid transparent; - border-right: 16px solid transparent; - border-top: 16px solid #02c0ce; -} - -.gmaps-overlay_arrow.below { - top: -15px; - border-left: 16px solid transparent; - border-right: 16px solid transparent; - border-bottom: 16px solid #02c0ce; -} - -.gmaps-full { - z-index: 99; - margin: 0 -20px -10px -20px; -} - -.gmaps-full .gmaps-full1 { - height: 80vh; - width: 100%; -} - -/* Vector Map */ -.jvectormap-zoomin, -.jvectormap-zoomout { - width: 10px; - height: 10px; - line-height: 10px; -} - -.jvectormap-zoomout { - top: 40px; -} - -.jvectormap-tip { - border: none; - background: #313a46; - color: white; - font-family: "Rubik", sans-serif; - font-size: 14px; - padding: 5px 8px; -} - -/* Mapael Map */ -.mapael .map { - position: relative; -} - -.mapael .mapTooltip { - position: absolute; - background-color: #02c0ce; - opacity: 0.95; - border-radius: 3px; - padding: 2px 10px; - z-index: 1000; - max-width: 200px; - display: none; - color: #ffffff; - font-family: "Rubik", sans-serif; -} - -.mapael .zoomIn, .mapael .zoomOut, .mapael .zoomReset { - display: inline-block; - text-align: center; - vertical-align: middle; - border-radius: 2px; - font-weight: 500; - cursor: pointer; - background-color: #02c0ce; - text-decoration: none; - color: #ffffff; - font-size: 14px; - position: absolute; - top: 0; - left: 10px; - width: 24px; - height: 24px; - line-height: 24px; -} - -.map .zoomIn { - top: 25px; -} - -.map .zoomOut { - top: 50px; -} - -/* ============= - Calendar -============= */ -.calendar { - float: left; - margin-bottom: 0; -} - -.fc-view { - margin-top: 30px; -} - -.none-border .modal-footer { - border-top: none; -} - -.fc-toolbar { - margin-bottom: 5px; - margin-top: 15px; -} - -.fc-toolbar h2 { - font-size: 20px; - font-family: "Rubik", sans-serif; - line-height: 30px; - text-transform: uppercase; -} - -.fc-day-grid-event .fc-time { - font-family: "Rubik", sans-serif; -} - -.fc-day { - background: #ffffff; -} - -.fc-toolbar .fc-state-active, .fc-toolbar .ui-state-active, -.fc-toolbar button:focus, .fc-toolbar button:hover, -.fc-toolbar .ui-state-hover { - z-index: 0; -} - -.fc th.fc-widget-header { - background: #e3eaef; - font-size: 13px; - line-height: 20px; - padding: 10px 0; - text-transform: uppercase; -} - -.fc-unthemed th, .fc-unthemed td, .fc-unthemed thead, .fc-unthemed tbody, .fc-unthemed .fc-divider, .fc-unthemed .fc-row, .fc-unthemed .fc-popover { - border-color: #e3eaef; -} - -.fc-button { - background: #e3eaef; - border: none; - color: #797979; - text-transform: capitalize; - box-shadow: none; - border-radius: 3px; - margin: 0 3px; - padding: 6px 12px; - height: auto; -} - -.fc-text-arrow { - font-family: inherit; - font-size: 16px; -} - -.fc-state-hover { - background: #f3f3f3; -} - -.fc-state-highlight { - background: #f0f0f0; -} - -.fc-state-down, .fc-state-active, .fc-state-disabled { - background-color: #02c0ce; - color: #ffffff; - text-shadow: none; -} - -.fc-cell-overlay { - background: #f0f0f0; -} - -.fc-unthemed .fc-today { - background: #ffffff; -} - -.fc-event { - border-radius: 2px; - border: none; - cursor: move; - font-size: 13px; - margin: 5px 7px; - padding: 5px 5px; - text-align: center; -} - -.external-event { - cursor: move; - margin: 10px 0; - padding: 8px 10px; - color: #ffffff; -} - -.fc-basic-view td.fc-week-number span { - padding-right: 8px; - font-family: "Rubik", sans-serif; -} - -.fc-basic-view td.fc-day-number { - padding-right: 8px; - font-family: "Rubik", sans-serif; -} - -.fc-basic-view .fc-content { - color: #ffffff; -} - -.fc-time-grid-event .fc-content { - color: #ffffff; -} - -/* =========== -Tickets -============== */ -.tickets-list a { - color: #98a6ad; - white-space: nowrap; -} - -.tickets-list img { - height: 32px; - width: 32px; -} - -.tickets-list td { - vertical-align: middle; -} - -/* ============= - Task board -============= */ -.taskList { - min-height: 40px; - margin-bottom: 0; -} - -.taskList li { - background-color: #ffffff; - border: 1px solid rgba(121, 121, 121, 0.2); - padding: 10px; - margin-bottom: 15px; - border-radius: 3px; -} - -.taskList li:last-of-type { - margin-bottom: 0; -} - -.taskList a { - font-size: 13px; -} - -.taskList .checkbox { - margin-left: 20px; - margin-top: 5px; -} - -.task-placeholder { - border: 1px dashed rgba(227, 234, 239, 0.9) !important; - background-color: rgba(227, 234, 239, 0.2) !important; - padding: 20px; -} - -/* Task Detail */ -.task-detail .task-dates li { - width: 50%; - float: left; -} - -.task-detail .task-tags .bootstrap-tagsinput { - padding: 0px; - border: none; -} - -.task-detail .assign-team a { - display: inline-block; - margin: 5px 5px 5px 0px; -} - -.task-detail .files-list .file-box { - display: inline-block; - vertical-align: middle; - width: 80px; - padding: 2px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-border-radius: 3px; - background-clip: padding-box; -} - -.task-detail .files-list .file-box img { - line-height: 70px; -} - -.task-detail .files-list .file-box p { - width: 100%; - display: block; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} - -.add-new-plus { - height: 32px; - text-align: center; - width: 32px; - display: block; - line-height: 32px; - color: #98a6ad; - font-weight: 700; - background-color: #e3eaef; - border-radius: 50%; -} - -/* ============= - Projects -============= */ -.project-sort-item .form-group { - margin-right: 30px; -} - -.project-sort-item .form-group:last-of-type { - margin-right: 0; -} - -.project-box { - position: relative; -} - -.project-box .badge { - position: absolute; - right: 20px; -} - -.project-box h4 { - text-overflow: ellipsis; - white-space: nowrap; - display: block; - width: 100%; - overflow: hidden; -} - -.project-box ul li { - padding-right: 30px; -} - -.project-box .project-members a { - margin: 0 0 10px -12px; - display: inline-block; - border: 3px solid #ffffff; - border-radius: 50%; - box-shadow: 0 0 24px 0 rgba(0, 0, 0, 0.06), 0 1px 0 0 rgba(0, 0, 0, 0.02); -} - -.project-box .project-members a:first-of-type { - margin-left: 0; -} - -/* =========== -Companies -============== */ -.company-card .company-logo { - float: left; - height: 60px; - width: 60px; - border-radius: 3px; -} - -.company-card .company-detail { - margin: 0 0 50px 75px; -} - -/* =========== -File Manager -============== */ -.file-man-box { - padding: 20px; - border: 1px solid #e3eaef; - border-radius: 5px; - position: relative; - margin-bottom: 20px; -} - -.file-man-box .file-close { - color: #f1556c; - position: absolute; - line-height: 24px; - font-size: 24px; - right: 10px; - top: 10px; - visibility: hidden; -} - -.file-man-box .file-img-box { - line-height: 120px; - text-align: center; -} - -.file-man-box .file-img-box img { - height: 64px; -} - -.file-man-box .file-download { - font-size: 32px; - color: #98a6ad; - position: absolute; - right: 10px; -} - -.file-man-box .file-download:hover { - color: #313a46; -} - -.file-man-box .file-man-title { - padding-right: 25px; -} - -.file-man-box:hover { - box-shadow: 0 0 24px 0 rgba(0, 0, 0, 0.06), 0 1px 0 0 rgba(0, 0, 0, 0.02); -} - -.file-man-box:hover .file-close { - visibility: visible; -} - -/* ============= - Timeline -============= */ -.timeline { - border-collapse: collapse; - border-spacing: 0; - display: table; - margin-bottom: 50px; - position: relative; - table-layout: fixed; - width: 100%; -} - -.timeline .time-show { - margin-bottom: 30px; - margin-right: -75px; - margin-top: 30px; - position: relative; -} - -.timeline:before { - background-color: #e3eaef; - bottom: 0; - content: ""; - left: 50%; - position: absolute; - top: 30px; - width: 2px; - z-index: 0; -} - -.timeline .timeline-icon { - -webkit-border-radius: 50%; - background: #e3eaef; - border-radius: 50%; - display: block; - height: 20px; - left: -54px; - margin-top: -10px; - position: absolute; - text-align: center; - top: 50%; - width: 20px; -} - -.timeline .timeline-icon i { - color: #ffffff; - font-size: 13px; - margin-top: 1px; - position: absolute; - left: 4px; -} - -.timeline .time-icon:before { - font-size: 16px; - margin-top: 5px; -} - -h3.timeline-title { - color: #797979; - font-size: 20px; - font-weight: 400; - margin: 0 0 5px; - text-transform: uppercase; -} - -.timeline-item { - display: table-row; -} - -.timeline-item:before { - content: ""; - display: block; - width: 50%; -} - -.timeline-item .timeline-desk .arrow { - border-bottom: 12px solid transparent; - border-right: 12px solid #e9eff3 !important; - border-top: 12px solid transparent; - display: block; - height: 0; - left: -12px; - margin-top: -12px; - position: absolute; - top: 50%; - width: 0; -} - -.timeline-item .timeline-desk .timeline-box { - padding: 20px; -} - -.timeline-item .timeline-date { - margin-bottom: 10px; -} - -.timeline-item.alt:after { - content: ""; - display: block; - width: 50%; -} - -.timeline-item.alt .timeline-desk .arrow-alt { - border-bottom: 12px solid transparent; - border-left: 12px solid #edf1f5 !important; - border-top: 12px solid transparent; - display: block; - height: 0; - left: auto; - margin-top: -12px; - position: absolute; - right: -12px; - top: 50%; - width: 0; -} - -.timeline-item.alt .timeline-desk .album { - float: right; - margin-top: 20px; -} - -.timeline-item.alt .timeline-desk .album a { - float: right; - margin-left: 5px; -} - -.timeline-item.alt .timeline-icon { - left: auto; - right: -56px; -} - -.timeline-item.alt:before { - display: none; -} - -.timeline-item.alt .panel { - margin-left: 0; - margin-right: 45px; -} - -.timeline-item.alt h4, .timeline-item.alt p, .timeline-item.alt .timeline-date { - text-align: right; -} - -.timeline-desk { - display: table-cell; - vertical-align: top; - width: 50%; -} - -.timeline-desk h4 { - font-size: 16px; - font-weight: normal; - margin: 0; -} - -.timeline-desk .panel { - background: #edf1f5; - display: block; - margin-bottom: 5px; - margin-left: 45px; - position: relative; - text-align: left; - border: 0; -} - -.timeline-desk h5 span { - color: #797979; - display: block; - font-size: 12px; - margin-bottom: 4px; -} - -.timeline-desk p { - font-size: 14px; - margin-bottom: 0; -} - -.timeline-desk .album { - margin-top: 12px; -} - -.timeline-desk .album a { - float: left; - margin-right: 5px; -} - -.timeline-desk .album img { - height: 36px; - width: auto; - border-radius: 3px; -} - -.timeline-desk .notification { - background: none repeat scroll 0 0 #ffffff; - margin-top: 20px; - padding: 8px; -} - -/* ============= - Profile -============= */ -.profile-user-box { - position: relative; - border-radius: 5px; -} - -/* ============= - Print css -============= */ -@media print { - .page-title-box, .topbar-left, .hidden-print, .breadcrumb, .page-title, .footer, #topnav { - display: none; - margin: 0; - padding: 0; - } - .left, .right-bar { - display: none; - } - .content { - margin-top: 0; - padding-top: 0; - } - .content-page { - margin-left: 0; - margin-top: 0; - } - .card-box, body { - border: none; - padding: 0; - margin-bottom: 0; - } -} - -/* ============= - FAQ -============= */ -.question-q-box { - height: 30px; - width: 30px; - color: #ffffff; - background-color: #02c0ce; - text-align: center; - border-radius: 50%; - float: left; - line-height: 30px; -} - -.question { - margin-top: 0; - margin-left: 50px; - font-weight: 400; - font-size: 16px; -} - -.answer { - margin-left: 50px; - color: #98a6ad; - margin-bottom: 40px; -} - -/* ============= - Pricing -============= */ -.pricing-plan { - padding-bottom: 50px; -} - -.price_card { - background: #ffffff; - border-radius: 5px; - margin-top: 30px; - margin-bottom: 30px; - padding-bottom: 20px; - position: relative; -} - -.price_card .name { - display: block; - font-size: 16px; - padding: 0 0 30px; - text-align: center; - width: 100%; -} - -.price_card button { - margin-top: 20px; -} - -.pricing-header { - -moz-border-radius-topleft: 5px; - -moz-border-radius-topright: 5px; - -webkit-border-top-left-radius: 5px; - -webkit-border-top-right-radius: 5px; - border-top-left-radius: 5px; - border-top-right-radius: 5px; - color: #ffffff; -} - -.price { - display: block; - font-size: 48px; - font-weight: 300; - padding: 30px 0 10px; - text-align: center; - width: 100%; -} - -.price-features { - color: #98a6ad; - list-style: none; - margin: 0; - padding-left: 0; - padding-top: 20px; - text-align: center; -} - -.price-features li { - padding: 15px; -} - -.pricing-item { - margin: 0 0 30px; - position: relative; - text-align: center; -} - -.pricing-wrap { - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box; - overflow: hidden; - padding: 30px 20px; - position: relative; - text-align: center; -} - -.pricing-icon { - font-size: 32px; - padding-bottom: 5px; - padding-top: 10px; - position: relative; - z-index: 1; -} - -.pricing-title { - font-size: 16px; - font-weight: 700; - margin-bottom: 40px; - position: relative; - text-transform: uppercase; - z-index: 1; -} - -.pr-list { - color: #98a6ad; - font-size: 12px; - font-weight: 400; - margin: 0 -20px 30px; - padding: 0; - text-transform: uppercase; -} - -.pr-list li { - list-style: none; - padding: 12px 20px; -} - -.pricing-num { - font-size: 40px; - font-weight: 700; - line-height: 1; -} - -.pricing-num sup { - font-size: 18px; - font-weight: 400; - left: -3px; - margin-left: -7px; - position: relative; - top: -20px; -} - -.pr-per { - color: #98a6ad; - font-size: 12px; -} - -.pr-button { - margin-top: 30px; -} - -/* ============== - Account Pages -===================*/ -.accountbg { - position: absolute; - background-size: cover; - height: 100%; - width: 100%; - top: 0; -} - -.account-page-full { - right: 0; - position: absolute; - height: 100%; - margin: 0; - width: 540px; - background-color: #ffffff; -} - -.account-page-full .card { - border: none; -} - -.account-copyright { - position: absolute; - bottom: 0; - width: 100%; -} - -.checkmark { - width: 100px; - margin: 0 auto; - padding: 20px 0; -} - -.path { - stroke-dasharray: 1000; - stroke-dashoffset: 0; - animation: dash 2s ease-in-out; - -webkit-animation: dash 2s ease-in-out; -} - -.spin { - animation: spin 2s; - -webkit-animation: spin 2s; - transform-origin: 50% 50%; - -webkit-transform-origin: 50% 50%; -} - -@-webkit-keyframes dash { - 0% { - stroke-dashoffset: 1000; - } - 100% { - stroke-dashoffset: 0; - } -} - -@keyframes dash { - 0% { - stroke-dashoffset: 1000; - } - 100% { - stroke-dashoffset: 0; - } -} - -@-webkit-keyframes spin { - 0% { - -webkit-transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(360deg); - } -} - -@keyframes spin { - 0% { - -webkit-transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(360deg); - } -} - -@-webkit-keyframes text { - 0% { - opacity: 0; - } - 100% { - opacity: 1; - } -} - -@keyframes text { - 0% { - opacity: 0; - } - 100% { - opacity: 1; - } -} - -.text-error { - color: #02c0ce; - text-shadow: rgba(2, 192, 206, 0.3) 5px 1px, rgba(2, 192, 206, 0.2) 10px 3px; - font-size: 84px; - line-height: 90px; -} - -@media (max-width: 768px) { - .account-pages.enlarged { - min-height: 100%; - } - .account-pages .account-page-full { - width: 100%; - } -} - -.svg-computer { - stroke-dasharray: 1134; - stroke-dashoffset: -1134; - animation: draw-me 5s infinite; - animation-direction: normal; - height: 200px; -} - -@keyframes draw-me { - from { - stroke-dashoffset: -1134; - } - to { - stroke-dashoffset: 0; - } -} - -/* ============= - Search result -============= */ -.search-result-box .tab-content { - padding: 30px 30px 10px 30px; - -webkit-box-shadow: none; - box-shadow: none; - -moz-box-shadow: none; -} - -.search-result-box .search-item { - padding-bottom: 20px; - border-bottom: 1px solid #e3eaef; - margin-bottom: 20px; -} - -/* ============= - Gallery -============= */ -.port { - margin-bottom: 30px; -} - -.portfolioFilter a { - transition: all 0.3s ease-out; - color: #313a46; - border-radius: 3px; - padding: 5px 10px; - display: inline-block; - margin-bottom: 5px; - font-family: "Rubik", sans-serif; -} - -.portfolioFilter a:hover { - background-color: #02c0ce; - color: #ffffff; -} - -.portfolioFilter a.current { - background-color: #02c0ce; - color: #ffffff; - box-shadow: 0 0 24px 0 rgba(0, 0, 0, 0.06), 0 1px 0 0 rgba(0, 0, 0, 0.02); -} - -.portfolio-masonry-box { - overflow: hidden; - position: relative; - padding: 0; - margin-top: 30px; -} - -.portfolio-masonry-box .portfolio-masonry-img { - position: relative; - overflow: hidden; - border-radius: 5px; -} - -.portfolio-masonry-box .portfolio-masonry-img:after { - content: " "; - display: block; - width: 100%; - height: 100%; - position: absolute; - top: 0; - left: 0; - background: rgba(49, 58, 70, 0); - -webkit-transition: all 0.27s cubic-bezier(0.3, 0.1, 0.58, 1); - -moz-transition: all 0.27s cubic-bezier(0.3, 0.1, 0.58, 1); - -o-transition: all 0.27s cubic-bezier(0.3, 0.1, 0.58, 1); - transition: all 0.27s cubic-bezier(0.3, 0.1, 0.58, 1); -} - -.portfolio-masonry-box .portfolio-masonry-img > img { - -webkit-transition: all 0.3s cubic-bezier(0.3, 0.1, 0.58, 1); - -moz-transition: all 0.3s cubic-bezier(0.3, 0.1, 0.58, 1); - -o-transition: all 0.3s cubic-bezier(0.3, 0.1, 0.58, 1); - transition: all 0.3s cubic-bezier(0.3, 0.1, 0.58, 1); - border-radius: 0; -} - -.portfolio-masonry-box .portfolio-masonry-detail { - opacity: 0; - width: 100%; - padding: 20px 20px 0 20px; - box-sizing: border-box; - position: absolute; - left: 0; - text-align: center; - overflow: hidden; - -webkit-transition: all 0.27s cubic-bezier(0.3, 0.1, 0.58, 1); - -moz-transition: all 0.27s cubic-bezier(0.3, 0.1, 0.58, 1); - -o-transition: all 0.27s cubic-bezier(0.3, 0.1, 0.58, 1); - transition: all 0.27s cubic-bezier(0.3, 0.1, 0.58, 1); -} - -.portfolio-masonry-box .portfolio-masonry-detail h4 { - margin-bottom: 3px; - color: #ffffff !important; -} - -.portfolio-masonry-box .portfolio-masonry-detail p { - color: #ffffff !important; - text-transform: uppercase; - font-size: 12px; -} - -.portfolio-masonry-box:hover .portfolio-masonry-detail { - -webkit-transform: translateY(-100%); - -moz-transform: translateY(-100%); - transform: translateY(-100%); - z-index: 3; - opacity: 1; -} - -.portfolio-masonry-box:hover .portfolio-masonry-img:after { - background: rgba(49, 58, 70, 0.8); -} - -.portfolio-masonry-box:hover .portfolio-masonry-img > img { - -webkit-transform: scale(1.05); - -moz-transform: scale(1.05); - -o-transform: scale(1.05); - -ms-transform: scale(1.05); - transform: scale(1.05); -} - -/* ============= - Count Down - Coming Soon -============= */ -.svg-rocket { - height: 80px; -} - -.rocket-clouds__bubble, -.rocket-clouds__cloud, -.rocket-rocket, -.rocket-inner__rocket-and-lines { - fill: #02c0ce; -} - -#count-down { - margin-top: 30px; -} - -#count-down .clock-presenter { - height: 100px; - line-height: 30px; - text-align: center; -} - -#count-down .clock-presenter .digit { - margin-top: 20px; - font-size: 26px; - line-height: 42px; - font-family: "Rubik", sans-serif; - font-weight: 500; - height: 42px; - display: inline-block; - overflow: hidden; - text-align: center; - position: relative; - cursor: default; - color: #313a46; -} - -#count-down .clock-presenter .note { - position: relative; - bottom: 0; - padding-top: 5px; - cursor: default; - font-size: 13px; - color: #313a46; - text-transform: uppercase; -} - -@media (max-width: 767px) { - #count-down .clock-presenter { - width: 50%; - float: left; - } - #count-down .hours_dash { - border-right: none; - } -} - -/* -Template Name: Abstack - Bootstrap 4 Web App kit -Author: CoderThemes -Email: coderthemes@gmail.com -File: Responsive -*/ -@media (min-width: 768px) and (max-width: 991px) { - body { - overflow-x: hidden; - } - .fixedHeader-floating { - top: 60px !important; - } -} - -@media (max-width: 768px) { - body { - overflow-x: hidden; - } - .container-fluid { - max-width: 100%; - } - .topbar-left { - width: 70px !important; - } - .topbar-left span { - display: none !important; - } - .topbar-left i { - display: block !important; - line-height: 70px !important; - } - .topbar .topbar-left { - height: 70px; - } - .navbar-nav.navbar-right { - float: right; - } - .content-page { - margin-left: 0 !important; - } - .enlarged .left.side-menu { - margin-left: -70px; - } - .footer { - left: 0 !important; - } - .mobile-sidebar { - left: 0; - } - .mobile-content { - left: 250px; - right: -250px; - } - .dataTables_wrapper .col-xs-6 { - width: 100%; - text-align: left; - } - div#datatable-buttons_info { - float: none; - } - .ms-container { - width: 100%; - } - .m-t-sm-50 { - margin-top: 50px !important; - } - .fixedHeader-floating { - top: 60px !important; - } -} - -@media (max-width: 767px) { - .navbar-nav .open .dropdown-menu { - background-color: #ffffff; - box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26); - left: auto; - position: absolute; - right: 0; - } - .navbar-nav .open .dropdown-menu li { - display: block; - } - .navbar-nav { - margin: 0; - display: inline-block; - } - .navbar-nav li { - display: inline-block; - line-height: 1px; - } - .dropdown-lg { - width: 200px !important; - } - .user-box { - float: right; - } - .dataTables_length { - float: none; - margin-bottom: 10px; - } - .table-auto-res { - display: block; - width: 100%; - overflow-x: auto; - } -} - -@media (max-width: 480px) { - .side-menu { - z-index: 10 !important; - } - .button-menu-mobile { - display: block; - } - .search-bar { - display: none !important; - } - .logo-large { - display: none; - } - .logo-small { - display: inline-block !important; - } - .dropdown-menu-lg { - max-width: 230px; - } -} - -@media (max-width: 420px) { - .hide-phone { - display: none !important; - } -} - -/* Container-alt */ -@media (min-width: 768px) { - .container-alt { - width: 750px; - } -} - -@media (min-width: 992px) { - .container-alt { - width: 970px; - } -} - -@media (min-width: 1200px) { - .container-alt { - width: 1170px; - } -} - -@media (max-width: 419px) { - .hidden-xxs { - display: none; - } - .pro-user-name { - display: none; - } - .topbar-left { - width: 70px !important; - } - .page-title { - font-size: 15px; - max-width: 250px; - white-space: nowrap; - } - .editable-responsive { - overflow-x: auto; - } - .page-title-box .breadcrumb { - display: none; - } - .navbar-nav .open .dropdown-menu { - margin-right: -20px; - } - .user-box .dropdown-menu { - margin-right: 0 !important; - } - .dropdown-lg { - width: 200px !important; - } - .user-list .user-list-item .icon, .user-list .user-list-item .avatar { - display: none; - } - .user-list .user-list-item .user-desc { - margin-left: 0; - } -} -/*# sourceMappingURL=style.css.map */ \ No newline at end of file diff --git a/htdocs/public/high/assets/css/style.css.map b/htdocs/public/high/assets/css/style.css.map deleted file mode 100644 index 13b80b14..00000000 --- a/htdocs/public/high/assets/css/style.css.map +++ /dev/null @@ -1,55 +0,0 @@ -{ - "version": 3, - "mappings": "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", - "sources": [ - "../scss/style.scss", - "../scss/_variables.scss", - "../scss/_menu.scss", - "../scss/_common.scss", - "../scss/_helper.scss", - "../scss/_bootstrap-reset.scss", - "../scss/_waves.scss", - "../scss/_card.scss", - "../scss/_buttons.scss", - "../scss/_ribbons.scss", - "../scss/_popover-tooltips.scss", - "../scss/_checkbox-radio.scss", - "../scss/_alerts.scss", - "../scss/_modal.scss", - "../scss/_spinners.scss", - "../scss/_widgets.scss", - "../scss/_tabs.scss", - "../scss/_progress.scss", - "../scss/_sweet-alert.scss", - "../scss/_charts.scss", - "../scss/_email.scss", - "../scss/_form-elements.scss", - "../scss/_form-advanced.scss", - "../scss/_form-validation.scss", - "../scss/_form-pickers.scss", - "../scss/_form-wizard.scss", - "../scss/_summernote.scss", - "../scss/_wysiwig.scss", - "../scss/_form-uploads.scss", - "../scss/_tables.scss", - "../scss/_maps.scss", - "../scss/_calendar.scss", - "../scss/_tickets.scss", - "../scss/_taskboard.scss", - "../scss/_projects.scss", - "../scss/_companies.scss", - "../scss/_file-manager.scss", - "../scss/_timeline.scss", - "../scss/_profile.scss", - "../scss/_print.scss", - "../scss/_faq.scss", - "../scss/_pricing.scss", - "../scss/_account-pages.scss", - "../scss/_search-results.scss", - "../scss/_gallery.scss", - "../scss/_coming-soon.scss", - "../scss/_responsive.scss" - ], - "names": [], - "file": "style.css" -} \ No newline at end of file diff --git a/htdocs/public/high/assets/fonts/FontAwesome.otf b/htdocs/public/high/assets/fonts/FontAwesome.otf deleted file mode 100644 index 401ec0f36e4f73b8efa40bd6f604fe80d286db70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 134808 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 diff --git a/htdocs/public/high/assets/fonts/Simple-Line-Icons.eot b/htdocs/public/high/assets/fonts/Simple-Line-Icons.eot deleted file mode 100644 index 533fd7f421b7d5451990efac2b83e1944df50de3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53572 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 Na8O+Ovj64Z{{!=8KpOx6 diff --git a/htdocs/public/high/assets/fonts/Simple-Line-Icons.svg b/htdocs/public/high/assets/fonts/Simple-Line-Icons.svg deleted file mode 100644 index bed0f148..00000000 --- a/htdocs/public/high/assets/fonts/Simple-Line-Icons.svg +++ /dev/null @@ -1,211 +0,0 @@ - - - - - - -{ - "fontFamily": "simple-line-icons", - "majorVersion": 2, - "minorVersion": 0, - "license": "MIT", - "designer": "Jamal Jama, Ahmad Firoz", - "version": "Version 2.0", - "fontId": "simple-line-icons", - "psName": "simple-line-icons", - "subFamily": "Regular", - "fullName": "simple-line-icons", - "description": "Font generated by IcoMoon." -} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/htdocs/public/high/assets/fonts/Simple-Line-Icons.ttf b/htdocs/public/high/assets/fonts/Simple-Line-Icons.ttf deleted file mode 100644 index ecf85a424727e176aca280c28c5cca684a4d270e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53368 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%0Aq0D;5;J)O7MJ4* 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 diff --git a/htdocs/public/high/assets/fonts/Simple-Line-Icons.woff b/htdocs/public/high/assets/fonts/Simple-Line-Icons.woff deleted file mode 100644 index b38250d4921211d6ceaa82f0b0b5769e5284579b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53444 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 CEG^Ce diff --git a/htdocs/public/high/assets/fonts/Simple-Line-Icons.woff2 b/htdocs/public/high/assets/fonts/Simple-Line-Icons.woff2 deleted file mode 100644 index ec9373a5dd05b221e8130398f184da76f2d9f857..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26384 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 j_`zImAZfC?1C>D{)eV9U@1wdmu9n diff --git a/htdocs/public/high/assets/fonts/dripicons-v2.eot b/htdocs/public/high/assets/fonts/dripicons-v2.eot deleted file mode 100644 index 8afeaaad46ae42235136852b4da8a57310760a6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40522 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 LxArgJ*SP*4aYE)g diff --git a/htdocs/public/high/assets/fonts/dripicons-v2.svg b/htdocs/public/high/assets/fonts/dripicons-v2.svg deleted file mode 100644 index 0b501721..00000000 --- a/htdocs/public/high/assets/fonts/dripicons-v2.svg +++ /dev/null @@ -1,210 +0,0 @@ - - - -Generated by Fontastic.me - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/fonts/dripicons-v2.ttf b/htdocs/public/high/assets/fonts/dripicons-v2.ttf deleted file mode 100644 index 041e33364ade3afa763993c25996f630c21d258c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40348 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 diff --git a/htdocs/public/high/assets/fonts/dripicons-v2.woff b/htdocs/public/high/assets/fonts/dripicons-v2.woff deleted file mode 100644 index 5322e3d81c6e1b0878e52cfd18bf5bb5138f69f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26004 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/htdocs/public/high/assets/fonts/feather-webfont.ttf b/htdocs/public/high/assets/fonts/feather-webfont.ttf deleted file mode 100644 index 39c978b839ef53da8350a5eb2280654acc449f44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28532 zcmd6Q3w%_?_5aMhcOOZ3Bmok6X7kt$&x9nq8xSQx6@d+i&no!fArB)$08vq@S49P_ zK>1;8s~DuhAAi2E8bPs2`$t<1RiW5c@UMib)zlW-A|c7%$^Uz1W;eTmh_wCxKK~@U z_ce3o%*;7w&TDQMXN+}YHZ$3b@#8O@Ty^wbH|~6ePrnP!JAXX;-^^l+dvWc%@RH)v zJGNeP7}o=FJ!AHbGpmQ~J64P9Rrnm7H*;xqTN@xT^Ey2D&Rej2?hjLr72^i_?;rY0cJwGK2*XQ86VE&Ca-Fox=!=AzQ48Xg5!J^qSFHRp>!`Pgi zxGuVJ=B?H22z#EfxnH2XZ{f@v=Y*d6{#M530YBsJ>P1U$I`a9EwTxZ=L&jVm-!f;` z+$Fs(DPwFA+Go@+>Mh%Q?&kOC_}&$7Y?j9>^ESvQ-Eegl-C+iH5%q%qMod}s$P=uba+ z#n=Jdq5J)S1NzSfGat@U@x95H>MQnLTfqF$!zqV*A0Bjghh3jEeDd>; zG7o0^diuKgygnl*nsYqo>zu}%Pjf!bxix1=&H{}aK!2AXjxnb$&=03kq)*}x9?H>3 zy!Zd@Ig!G@_`@+9L{kYrC5&iG*j<>%X8CL^o5(K0D3x|G2Jjr-&12=~4K<2*F(2(I zU_PsxlUEF%?s#}(&FciCH*yd2@wgzW=?1tJF zSKe}zXWn*$t5t*p#mJq=0LVE@7*UI@Y`rYIxw9?gSAMjp6>NT0~P z06a5*XKP~5r$^m*&jAJ%MwN16B)};s3}6aSzC2vuwIAWVKVGtQAqXn#265uS=O0`4 zdU>SE9~gW6?dz_4Z4$R9RaS0z?KiJY692SUXASI`#_ff?uaniWpokabT~$G0FA{%# zq(*$UaM6+_i#RpFydHv%p#X-I-kS?pT4|2Z_b}~wpL{|h+j2iwN~x?)118JFMn#Vsz{_N z(&dZauK&T5iUFziPrajmYNrmUnDT@5Ui*gEgd=|UlyEsO?yML~3^%r7r!kqgKE;P| z^R=cMP&HEJjZCQCxMACkLFaa{gHJT>4c@qI!^UdK+nNS?vq21t0&vd+ttB&f8E7vP zyaXy#JPxi8U=Ue^){&)6d>h19 zE$>D`jx2BD+XX&4AV8l75@^)VLJGV7yr(-aa4ruj1ik~N8bgeP;!hGaF(&DVszMPQ z5((J{Xbl1)r$HBJF~a~2q!JCJvR*NMPT?dR<*?Cdzyzb#Hbfy*8eFxl=%@+Wkqmp> zHldxR*tHF9ED}0l8)KZ^9w5P7aULaE;b+5W6goF<(|XNH5)r z5nQr7cI?(VcSMR}>TASRXV{VEp?q`$Q6I09G?y$(n(7TyB8dYOX`1RB+l8uajH)#7 z(K(XV(5Fz_D{1wR)qPlyv20}(=NuDk=m5_=NvQEFw= zqN^Vj_^kG41=cNQrtt+Y9^!NRL#6rR8)uPI=`0f8kw+&JFZ0ex2|2F!7Z*<{wp> z@Amt?I(FGf{Ez0*A{{HsLm3IGP zg0pcGByLQuc4s-Pm{qU~*o8C-db#qc#md4pEn3j3)G`LCfi=pFYZ91Y%h%0FA7J=K z8|g*d>M)yDgE87j;mbeyMBMK*Ilpq6#QmRq!k1f_VyL)G?A@`02l>lDkYJ+#OFIEG_27P<&wTl~So26jz;Ct~}!4|Jw zyEqbRmW4d{=1kJJTsxr?#n*6}wUXIbE zCK^zu^LAC_5cRi>`5|0U>TARIH8h-tT5)ib7%Ni6xF^Ixnr9w(g1^p>^EWo}KyAY} z_O1A#ISrkP9H9Y)4$6UG{xIg=sE>qH1q=yfmn|4{GlrEsfEAIo%UY9!ETlLnP*Wcy zuGD{1Trp)=?A|TONy z_+{ehHmIplLI+1wgKj~3Z$29WSptmOaZ>G<BkYLsq!cvwY$79wti0 zaMiez0u0}RO~clN_Aq$1afjyr7@r#5lss=}YIVA{F{g>JOkv?kl|e5|#?NY7?ymg= z_})?bCt-KO-o{K0tD!R7a(5^)G32@ns(F%OB3eq98zg9eDrPBJCC^W7|mfJWo2s$SNBm`bFNbDL?dLVLo!q}O2T0cCiFO(2;$+05m6c+&q6tq%JD4R zb|O^9f}R5scQ8=`lS87lq1M2efeAgK1uK-H5XodEc!`lvE#%mSEe#gfE1EZ@#BJvS zQdboP1;glMCzKT9(Wp%ZP>eV@$O^sj!e*kIWSvS(iA6y|QVrt3oS2hHikMX~ZUQa! zV1CHY$(R#g7ic;VoL#tYsFd@tk}_yXFU%NV$eW{ikB&E}RyXd67bq`+rP_kxjr=D~ zO=6zNa*l~CF|VnK|HMp$FOsKFP9yscPitOx)3q}o$pGleJKxScGxsW}|e#V}ramnh>v$D&TBc(e|vAn0d zhrrW9N*0BNtBux)SQw2_Ok{%ufP@jeT#RA{JqPjYm`!(9y;A_?Oj{ldRF!=t-5U|Keq2Kaz>x+SU3e6(kT#sM69l20OlnS5dhiqJHbI zP)F7W`6bwAeOO*hPLdrNf?q`+^9rEQfL(L*KoDi{wUd~r!qSW{5%U8XFkcS{ScV74 z3_32QL5h8xiiRv3y^zLmD};lR*l640SohLs-Altr<;$^3kXSvw!#RhRMlCd{_D+B9 zwt+PM;PjD4qr;KLA!onpGl z&&aI9+}DC5_gRPA&%IAZ&xxL6?s3`Vx#gL`;NFn^Cgv8n z=Vq-qBi_X~`8%i}sVLAQaYiZ%`U6&1#Q?xn8@r%7;3JGb^b*q1mA#MgPqtl^XIv>` zr_ymPo3smM7BmP*YIhY>DAGXIdj8(7aK!ZzrHwd^%{8Pe(bbB#_~<0v#0{DNPFRDx zYwPZN?fPM&w%yJ@iE^mpNG8&DVmZSmV_6%{MhF4JSkqbBb#u>h;}8CcuQ|A{&4w3zww9V_au0NPUWAGHm~+&5S|yDA*Mv?TH3`I(tu)7>tE>w z+5KEnh+KHvT zlDs7^w+4+%Nd=7V_xsJFfTtMe&NDBIdU5$*>`l?VO>5Q~Jk%AkA6)X`4ogmdY4niC3i!%+|OH5i7y#n05?AwGj)<23kTXo#=< zpr1Ov=Zt&c>?Fc#@cVgpX{6NgH&31ec*9OZV+=Ib6Xu7a{S@jLMdM(jpl>im!e`vM z4?ygin7>N5b`t$1=|*~u z>)<B2jFd!jg|vH21g?_UF3vQ`^aq|Ho=EiTf19S! zIgZWsN!-ynW>IbToJ>2x?|_SxrEy+BEF1*WIZ{qNiPZZg-PcG{pLaKMKn|Uw=bTGa zem|(ZN>aJ_8Wm2)bjF|86iJ8Rze<-h{Vkoip%Uc# zcaU$D<^)n$K)uAd?c~c$a^t6xPCAT@gujwW`s|s?El*5?$Wxj_pdgi#qAW=z6XG=! zS2En&6W=&T<`D&eq?(@sVteqYsN0q7*4riOjy{M-F_S!s%%2W9MHY0*Hn`|Fif>-b z7AKU*lOr7ygIctg^8&?*Qg(RJ zd4Kev835ge{ZSi>zumG`>eyrk;?|+)K}_c)+%F846`FP+X6eJYruGovNP#uLGT{r2 zOI=bxu#k|#K{_G{;)Gjd@dl!YOg~`78udHmlInO9I6x&i6g@;FX4?J*^mU3`gom(! zhYju91w1kkEy;i>Ym08JOYj8Np7C1CDrOm&D_Jh?lYx(t1QW6~Kwk;x($}bIEs^d# zIwV3eF~bfTl?rV5@Xr#8i+k;pxOf!Bhb>o8>dxtzCT8akb{G+}m={UsxvZXDuZ zlUpZo-TqM0M{K@&D6KIYGlO+MwmL#=qxuJFd zQ-)c>)SCE}_QH^V#jQezX}}{@AMhJe8+?wqnMQe#U8Vnj=&LYCOJa%y?k)j~3gj9+MAU zk)Qo&=^d*!q9Qmd7Kb0l+k5XsOv84nr}GVO?BE-AT=)F#bI$FRIisX>SjON@ z*X=y|MN9LSM|Xs{jyE=(v$imyDiU2_AUw+- zu8c$m-SUIAx1Ix_nb(%s(d%~3yylvjJNY8fhiHbdaM`$Fi2vfB(;XS^f_il6`kzKB z9}a!EIH4xl`#L_A0WU8*IZn$FFxH`C<)F$pn1Lx&UMi`HnKezyKP3ZE2uBHM4>IV9 zyu;cC$0k>l@-cuH<(%l;vs{W+QzVIHBBVm;gJ?r8p=!;{MJ6jUBrTs8Xh1mT@L%z# z_-x+)7X`gqY^21}pva8d7Q0u$FL-}G+kDm8hSXEB?S&@ljvgEslvI@iEWi`>`Iz{9-v|VI$QCp&4WhAT<#Doyv8PES0At zFK#F|-Bv0B1W1S}D;>%+%dvDIQ6_}!;vs`CTk|!qeEF>%=2ct15`RVt%ai#0`Kv8g z;Tq|9l~cBeKmB%@%;J21JDH;T(e{SGfPcf9p7WxQNAc*t|f)%aD&H|Py8 zqG9lBLWmvPRXXUh-}3%jtQ|bW|GP2F402m~NnZ3KSt<1pnJKAKbs!1KwMIe#4pLBp z6jyS2_!929W%Z(8h*oh#wEkkz>RXKTP1Q>u;_}HuOH-I=ex;>$w)pIcwe)<^FSu*% z6TI(i*UVQu)l*w~mVdbN717K+udMvA-1XH|v<)3Y`g*THh$5G<6hk6H7O2d!giDrm z3>rct6@`L^vCk|vi?=@gG&+8T7%i^Yy5*T?+*6$Uocrwi?nN|k((`h>?!DKAa?yQT z#T5-l5HNh{nP;|c<^KybvaP#un{(e?NYU6Vb_j9beW)~H`}2GfR5^@`jPs?z>l}b} zc{Z}huS72CVs;melLhq$m=QuyHB|l=1ZM?Tik}hQ<@@0xbP_sq9~ckK@qyXI6yilv5wRyNnnw=)gIoD z-hrZ&4_*h`&y$G@iX+z1s=*&isM}Jn>YAS_Bqw4Su9LO{$!S~W_4mTA4e*`TLovoO z!i8umLsSkPM?_62)P>||nZr}yv6VMS`4L;~nCd(3Ld5KL9p5T``{l-Laa=LIr9468 zHA+@bV;c7-eEM5$?3TUa(2xR*c!Q(07v-DhqFqJBYdOS-;xoAwl6(aF${Yl zr&xyd+p#y)+A9e}uQ57iT+U;is1--Wy&wF6U;B=9Y$YH+eM8+<&=X@Jy?v^C6;%P` zMv>{V1tYsfEz<~>sKGcW7K;79K8qVU&HS#9r4LN^?7&TL-FZP9OYC(Ni!js>ki*t! z9nG~F*{W7!n|N5w5BeTv7bo=HL&^mf;P5H>KZ;}dOq@T1ly@CZC%sL%YbZXR5sZz% zezE2+72yH>_|M-v)ezL=moKJtT$SG*8wBb(5C{G;)r^RKOKcF@#M$DF38Tv=o;S6p zcLl$v;iPf6VnlWFKp-4Yw^fcRAR_sUv@!oyGeR~)+-IM!@|u)Al8@+>ULNDiB}I40 zAk>!Yd?nc?FZsDrdbMvUiO*cNoH+_O#Uc!Z zJM~22h1~@tDwHA(tS~*)Az0dekM4v*nw0(aFa#ylG}rNfngeK{29sSE2a*0uw5Vmc zNycJEip$l7wZJywKR3sp_{eBM&a!!N#m1=0W1)X`|%x&oITQJU#J(tCo(>RFxv!3H!`0Tgn0aTYR&t-}G z=>cD!^&AwBjh%Yl1}2x20KOeE`h~cs9vcrrX)^AK%xa2!ni)9CKc3-5IZEk{;)u1` zZBszglxGI=0w{aQfu(8KP1ktxMfHjQ<37L}P8yJ=8mKWCxw(~GZ1dLiQ z%?xU3B-#i2Cs7j5P+Y=ok6qh9R09_c&KkTqC!iXFZ0MUKK|4bEaSg~pRK-rtjuSR{ z@MtBZ`2{|tQ$pV%z3qE)hOs9AJ43n{GNypZLr`HT_ao5*8v{T9o^B?d$n8IPQe+gW z-2vKLqu1dTi+BNli*ps`{*co5 zZM9r+8(Y3W$mpuf@9Yg7y%0Mdv>&y<9CVN_X(BY-Wx3Eact$+c7x|T-0oW6|bVV6hxR`B#WSB(j8|#J8P1;PX&e#$1&kPMZ*nxp|TDS!7)dtjIM<#sv{6 zu)&#h6rf45n6Fg{mWgc-QaeN#MKQ5XlZHt?x|owoF*s@P*%_1r1aAphAwieasQ$R^ z1MHH@s0H&TW-sHi7H*o`KiKw1z17bPZRo%Y;;%!RkDv8xBo3`VNOLM0Vma=}d(WXe zdP#Pt4&gmsfGSK^&;5fOzDhFC=8GMZu&@r&mV)e-C!uuHMsmQI9Tl|LdR3p8Q zF_f3{+)U;Q7(6#CbAXXO+RWq@Gjp-&#oz^uWBX%nz$h}xVfDgx`e;JttNdC%xcS+c zGoNk79>*tM&BQJ7g!sL>h0T!HzUu4}#z6ji{{6duX&!M>Q!A#-y?E%*i|0am>@_cvz-`u@od&97`9c!_qA*lMSQ<&nka7B;`uXwR$L;GWDXG*=fewd z1?NC^*2&HRMmsQl~p(zw`reelv(F!4J?l{^8em zhy`#2Y?vI0Ox~be3a>xBwK8KyX=zbr(Z<<3kA5k-eR))@BL@JlKI&!U2N3I%&HirV z$!AdcFaSt!>T2tUVgJ}z;#|@dc zrPAm@R0>I;`BEWADlU1LVtd76N9?|n{N&ZH>;sG6p5WY)mS(J;@b+T4S&3w3nsW=zq6%wII1(3|F3_PkzHXiCKH4Y865Lo=B%CJ=25R@s!VM+tav?m9x z3eY443R|gX@lpRzO^OAGiBnI>LrKk|RUp%frsdrI=clRzQ6$V;M?QJ*e~we)92Mup zlU*?X54fh;P6*a|)Na=Q2_7;v+mLA&=fDJBYTpae1$ntSOAZmMqWopPvkHu8-h3sm{d2mH;WcNSvkFrpb(QUh|ZHz#+~v)Vhuj)^S>G1zkU9Ke^OQ8p`E+Mtlc}s=ZO#= z3RF!pE>1{4gd{@#p4NkG)f2qjfEicPb!x~B?20HL*p>~`AlB^z?Hnks@X=e7-o zB+Tp{6dwjRX2&_QkV{ETk~6;kL4}$aFb^5<{LwC$iGir!c?ajTRaf1@w}*{s9s_YU z#=V6Tnw--jrU430-lqMtHBxTCV1vSB6YzAmQMs^kg2DHats#fHH!m|RzVnV^u zhF>qp+8vt^(Q!Wn<#XTmXJ^b>H1Dmqo8aSa5XYMT{`xN)`?w-!mrQi^dZYHyH}@X; z%Lngl*?ifwsgu{P6DvO`8P|XKkd{?Cz7w*PTcVX*G7<0cK8?S8{qN1NRSYa}Q!M;1eBUz($8_9TQH<1!;i= zs4|UVLel;Wsb@e-u%J1_4MaSMrvO8uwP)S@TYXFDLudVz`(VB$zTL5l->q-%#4d== zItspw&0BYf2T10QUMAXA#S9%TB99W}!?$^pjBOv_eH}+@Wj1W%LB5_B{raq^$80{0 z=cwfqtNE;7i~VBZL6v-~j8&^S>QOEz@HHFne3SO7_bIIM$c@Kt{1kT@qJL%zIKbqvB8Ouu_YnBLM3xJ)4?y! zbm`(oKF55db0opI8q62(z zc_*G$(nl3q1TFzxFSG>=n(|rW5%rWD;?6V-DEvpU*b2#$V(j^wgBgcejPZfzD~z2M zIK|Fqa)v>e)9yAzwpAvBl&$1dk}p+>z1x6>S2_M6clA@+ehnRj9VB#Y;)e<&*g=at=r55!IF=dF!aiTLcoaBC=HJUzJJsh4&< zSuo^+k=cE3zWc6Qv-^&`fX}Jevi-H)Z@m8VpN*a{B0uNu4KPj*qLV&3+?Q06%4n^mKl(dS; z-nOT?wtmY#(c8&Z`uer*r{1$wKsoy-jSg8L@eOihWWcO2@eMD3%zrL3bF3WX5{Kw51oWCM zcsy~$1#N7H{FFuX_Bq6Z@C^G$Q9f$7+Ngs_$absDP?4O+XcLLUi%KW2!e)LgUhe`Cv!jvWy5+6|B1zMrR3$%hYF8)51Udo%m@Kz2)iDaCH)&#_h z@DdwEaF|f$gPwqUF7^HmY%P>|oCcfwv~@H#Q%(*NOKIOF-m`JHE#rH&9^1bAuTOvT zx!Z0Ap+!>a5K^*hlXPZ!qsvJ;GbIPbG-i$zM=moBI*-7*nwp=zb*0jn-{#fMuW4tQ z`x0y^qu2j*8f4A-&V;b%Euw!_frU}1HBC}%SuNZ z6+ELGUKdwnA|X(FFGpKFa1JBY${yf?ftmrbfo1A4?W$u(jvT96uz$m{{{2!1-u1%| z7N|RK{1TI?ZtQt&_wF^kUtRW{qn1p*ZkW6jpXy654P2;CAkejIGjnAO%k4+kL!wX9 zAywUJV`Z&f17pwe4(XBGy=$5E&-gjbH5g9%X>!0lWlFBd7-CPn)gV6OP~qZ{L@8%5 z?Mgpvj~y!dg$yB+Pof1%us{kb2nas}qc?>~F=L~5vDYQy)K;-Wnc3?N#e#+Hel7Af zj!NA3DK!)AkyYHA?2C_c?P+}Oh)JPsU;u_7luy`n8uRZ`JT!KWhjB-`EGkQp$ZWqt zi4(SlBwev~$Wz}A95v|GkW@go3E)zWLJO3(eY~HY^(h`fNb0+c_0s&vaOtV~PHFLp z{c2{({Wj3=#Gbf2^qbxhAp5Dib)r78G=O_Lbn8UNexsl5zMQjU{1x(9r&7cOG3C*Q zg0T+7a_lt|1;cJim_{yfq!Q~95x5aS;&uxbCc1FykbqwqDjOL6hg+zOUvIeMd zC2q+SYS`^nk?2P<|K9JYq$X4cdI|XTrX6Oq5}Xo0P`+9_PC}5AL3t8_6Wt@?7#1iS zmi$DOUK@Gm9WW$C9~=V|)fRzv6f4PY*1kw-b3)nFc<2F&$4JN~jJc`_6r(}FTMHS6 zLc-QJ@C?NWt^u0{R%e>x|JZaSy?wwWp2Z)E#NPwalSWCcgYD@**jtopW5sHr)E)Ex%@3zS@!EL{ZJZ));y0*d+fvwvHTiQeKs?zYj-EK-D@N$y}0i^8|5}Zt+r#muD z-y`jyP99S05&+FRkLSlAgHPJ>2-6i~eUq-}_~rrRd*&ijEv7|4seq#zX==H#w}rvG zKu^1)7=rTT!64(G@1bp|jb?o#9r>F`ogW423p7SUjdT>}U}>g%REqB5C`KX0>`hsU z>Y)_hlfq7}xS-(l^)Lw?Q9v(|8>4kMde7rX3<79LSuaqHNIO#bA*VB8;dix|8}baf zUQiEH?dE?*KQ;TgyMp9IeMci!ZWxexXO!)wQov%0o&`3J;#Vnl0-Tg=!&0sq)zL{` zWE@jJ;q1M2D<>0*`VEyBDW0+1y|?**de0WZ^oG1w`REtu$} z(x?a+JaQV`d$WPcT1~{AWKE1mPlKybt3oVt!-|3Bt5XbNXh{AvPBolKJ{`)K8v+`v z0H64*q`i%5+X0eR(sAZPW(#eJ*RLTokRHhKB1j&<>Xc4K2X+N~Wehaje8c|zVu91* z{LyI<3-<5l8@MIbudwYEd|{RALa~06xMP!8|0woRtmI3?4X}hLtn#{8A=W&~7jEKr zZ{iCdBZKwq-L9>#n2RcvlxL!KBK3n_(f?O zo_=%^JHzNmWf*-ZSWP&pAA*7(TU{kW!hNcP-wrK}r)z>N>*+FdE-@!~`ktz%hFQ0g z3`;lq9S&Z$iudE!@I8jtc*aaMr02d$v>lB?3S)$Mh!cOUeO@!akC!aKveEhU&b zF!heq*V4Rcm!@q>`>IR7E*E!srpxiJ3%l;@)}`Bh-M;ERy!)o^E$Oq;4`-a6VQ2h4 zb4=#;%;Pff{f`2MdB7(C!e&g;HazWur3+}*jy^KQ%gBLDLIXYvmh zq!)}USW>XrKidCfV0hs5!dnaX40I3NKJe>7=MCCA=-A--gFhNFbjXS!+lK5O^2N}B zLpKj|4;wS=fni6A&MsO~^nP)l;!VXZ!z(dPG>kRu8QL?29~xRUfn(@W{-m)7Xo4*w z&H4DKbI!WqN}U@xzgeG~c(e9OeQvP<_zx|rjEk*fzt`t(Hh|C7=P9fwkCpGj`tTp? z`@dmX{O9`oZ8n_$2KnBLST$SDmayxQ$v2r1G=R9?-&^EtSCGrq4w$?-VO1oZjx?#1|?$CjbyOq40X^WpM$ z6uXQ?*!S5KtmMfxh9RRju}<<+Ux%lc%T|^G%SCJ<@JVc8Dl#N|vbDs!^HK69><*^# zH^*xfAtQb`aJdn9-T;_XW-hQ@0LZg2Mn#YW^cex4P$@JtA3F~|uFLVMgdb)q;)Um< zFPEOCFEj@o$Cfamd$aI~jW*r85u-zQ=i+>!oGsN0x_cekpDag|=8v}5(JY<~+=BQn z1(xmes;Cl#*H(uor~1KvLITxd;ld6;1h%=0yRnnei`UI#KQZ=YbVdFuURi<&XeR!h zMo-?0XYp+OYnR@<5AO>p(4W)4mhnNY&*S;n3V=N|ypRv%gODvf1UWUskn3HHJmwN! z%FFQj@(>RrFM9+Z$LDC$$SdG zkWb|o@r(H-{8D}yzZ`khSMVzlfuD}8o>xN-UCU?S6^*m7dE`3eOwZ->_tne- zj?l-E`Z!h{OUJ8YNF9T^ozVF2(f#vvyEw{rag^=iDBHzRwu_@|7f0DHjR%sfJgo;gxE5r5awT zhF7ZLm1=lp8eW-(SEk{WX?SHCUYUkhrs0)ocx4)1nT8kC@PZm%P{RvqctH&>sNn@Q zyr6~`)bN5DUP!|WX?P(GFQnmxG`x_87t-)T8eT}l3u$;^4KJ+Wg*Cjeh8NcG!Wv#! z!wYM8VGS>=;gxH6Ki(C|iRcq25tks97e4R54|H&VkJso{;(@J4EQBQ?B{8s10+uSD_7`6Ze^ zN;H3zX#ObC{86I$qeSyZiROQBq320)9!^5_lf}FJp&?)Bpeg diff --git a/htdocs/public/high/assets/fonts/feather-webfont.woff b/htdocs/public/high/assets/fonts/feather-webfont.woff deleted file mode 100644 index 9fbf6b9058b8a65b29cef21b94739c509caebe72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12936 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 G*yFsbY~cLNXLP73aA74Mq6M9f^&YV`isWW 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

5q!RY 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 - - - -Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 - By ,,, -Copyright Dave Gandy 2016. All rights reserved. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/fonts/fontawesome-webfont.ttf b/htdocs/public/high/assets/fonts/fontawesome-webfont.ttf deleted file mode 100644 index 35acda2fa1196aad98c2adf4378a7611dd713aa3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 165548 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 z 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 d0mRO}xo^G_%I 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 SdSQM28?+M|D(2r_;{O0|uQ74} diff --git a/htdocs/public/high/assets/fonts/fontawesome-webfont.woff2 b/htdocs/public/high/assets/fonts/fontawesome-webfont.woff2 deleted file mode 100644 index 4d13fc60404b91e398a37200c4a77b645cfd9586..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 77160 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 diff --git a/htdocs/public/high/assets/fonts/materialdesignicons-webfont.eot b/htdocs/public/high/assets/fonts/materialdesignicons-webfont.eot deleted file mode 100644 index df4d4521cbcb1a9184ee9e1cb70c2e50c4b3c083..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 292776 zcmeFaf1FfTdB^{pdv|B{$Lx=p+4-@*W@mrSG6TEI{v?6GB!TcFgg|5w4KYhXBFPdZ z1|o@=jEYJOR#X-d`X_EYW|K6xvRJnC(VGifc>^qMLz)1^bYc=E?lCWBVAL^5Ja{KnUHcF%cw*}X)z6T9N}dseSMS?PaD zq;WHGi{8BMfjfV;@mDvCTysS1gR=IH)oXmqAF3wpG0?x32>aK?-zK~tw5+{n!=|%Q zLSix^4QJQA_4d`}Uwh^ik)|U;o$pz_X?<~{9OiiuiQ;crea{_t?0adh*#E_I>#OVE zdf$ex@B8>svHzR$A6TMwHDl+-q(jHy+=OL0wI`hW=RN1dkS_6yn{K?dV%E!2>Wb*Yb1Tz{C2{vJLO)_L$_4X^0bDRak&pJ^T1^uxXc5WdEhb+T;_qx zJaCx@F7v=;9=OZ{mwDha4_xMf%RF$I2QKr#WgfW91DAQ=G7ntlfy+E_nFlWOz-1n| z%mbHs;4%;V|C0we_E$d=MP1e(0N)2ER3`kgRhF8JpPj+0m1>w2v&hLfV9C^M5=gR zML0AIU!GOqph#p0XAsJW9uld3T%?A2)f^M4C0`xkI?Ar+c|G}Kn*j71+5!0*_JS8g z;-ri328RL98<&F&;CUl;YoaXmy=g82>%nul=@fveU;}twq;)aa21wr)1!=GqoWZMx zvJ!hl+R4-24oKThUD`G7q{tM?n{pU0B%UYN0>UY-sTV}1E(N5SHUp5pgR~vTL^>-0 zWp`3u*DUb3$aL!2O}g$KB0Z$(oeQAV$F*+@Ag;eoU5>z$A_D@b%fK%1g2;?6uoavT zxq|Q&wC4)SzLNY`Qua*J&m02#MP?NN>N4wq$W_q1YOl!bso;pnoH%$~Bu&2bA#hgY zYG_{53wDcK>jRrb=2imgF|P$|2WLdCdsdx#fvfJ!#jEiQKyY91?lk4Dh(feFb1D7y_ib?@4f4WCQKpum!v%vT+t5 z@BMSZQIWT=0w+Z_@qE)6{Kv@q0M8$U_JfB--mx4&XY*E(cS7@_c0idAlkefPBANXn z?I|0v}@x(Sf(QR=siG~1}_wxc2+i~`E~AmKlWgAL$Wkq<%dLwmtDd{h8*KYCJR$7XOwWMnNkA+nQt?mQy$F=*`C4$g{ve5=Tx z&IN}>KCu8$?(QP67C`@#y@0YlMV?RX0#azyh#C>1KOL%O500QETflE{xJ>qm3JUXdRc0P6eW!ykexC62r1^)8$UnA#=S2RAGG16E^2;KT zf8HkYFKLmJbzmJh3aHD!Li=B-*Ndcik@y!M2QP`d6a_Dc{2THAwjR)se_sq<5&4g$ zfOP-C^V7tgre6P90O;rcq}*Sv75Q}>tN}+v&JaFB8E4Llyu1>S?l-+)J2)xw+aYjN zI3h;of}`LSF=iIn z4$k6x+9k#&u3)VgPZ8J;o)zO=47Q3Xih~8&ERasfCX#vcW1z?hgo3)lqChzTwQPl~DHTJ?gMPzD?o z6DEC_^kJSw2uD@|@_5<>^64yrB zw$0#qF^Rc=dL*6|gN|d`cZiunUUVCSUSm?Ud1?V5JoTuUX{4WaQVcqc>7?vV@^w+> zbe>O#UN_IX*MT!)ddS<`0y1Lyy1*_m{oMDT5HmoU8C8J%S8Nq?C242!Y$k1(H5F_J zlylW`F|*sjCh&@wIXlFpNuTD~)my||lLpl5+F5{l%!Te;?&m>g-XSs9kq`aE%!khW zV`3Kcf+xi+B;UeqxOxkK&Z6hVT)!3^7PELR;MrozxB)shoDj350IUSW-$>kz2gEF$ z1-M_z^JP9j{$<23J0s?%&ESZb*R_N70J_VUg8gC!TL5u`r^T!w|Lf~O2J98H5;`l7 ziFw20V%}H;)`4fm+#Clx#H^wYt9W(`@wbeLdDB`kx6TzaG!^Uul)ZX4I4kBh(%g1Z z%;uv^UfO0Y)Ez0kXta_^;%_mcN*O95%`px z0O>O)#Jr32@7f{e-D?5#-ctk~7qg`fY!mZduJ48JdryjaUoW5z?>i>u{m^

9#^^ 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%0DUem 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%0AVGJoQ*r%>5U{PvxTn}xpmljiSsg^nl_r8 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

sN-6iyaCK?e4{` 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 diff --git a/htdocs/public/high/assets/fonts/materialdesignicons-webfont.svg b/htdocs/public/high/assets/fonts/materialdesignicons-webfont.svg deleted file mode 100644 index 41d0359f..00000000 --- a/htdocs/public/high/assets/fonts/materialdesignicons-webfont.svg +++ /dev/null @@ -1,6150 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/fonts/materialdesignicons-webfont.ttf b/htdocs/public/high/assets/fonts/materialdesignicons-webfont.ttf deleted file mode 100644 index 69404e3d9758bf3d6a7e4ce27e5362089366542f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 292556 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໶Mi^<6`|6 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

YP+mSoyJ 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 UF${6<6sghVORY|aen0vD14G(^TmS$7 diff --git a/htdocs/public/high/assets/fonts/materialdesignicons-webfont.woff b/htdocs/public/high/assets/fonts/materialdesignicons-webfont.woff deleted file mode 100644 index 56b9a358a8648a69cedc922150ecb337aa41dd6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 144072 zcmV)kK%l>OPew)n0RR910y4+|3IG5A1a`~-0RR91000000000000000000000000_ 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ʜ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 - - -Generated by Fontastic.me - - - - - - - - - - diff --git a/htdocs/public/high/assets/fonts/slick.ttf b/htdocs/public/high/assets/fonts/slick.ttf deleted file mode 100644 index 9d03461b653373f7cda3b4af104c6bca07f9892b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1892 zcmcgtO>7%Q7=7dYvttuC>BcFo9o8<6(=@T2jd4&^kqQzA6;LWbX$}ZjQpdJ%;>2-9 zkdO!w5*H3p4_x3>i8B>Q1tD=k2=xS_7m$ofCB&7VLwiBUyq#S)NmC98iCxXk_rBjZ z-_FiL0C)h~P;kCfdj6T!@2-CY7*A3gpP!v8p#YtDgxFemE@v;?`RijqEDIs?@EmH#S?j zPi)rLf1rI1?%Fth|LVxXOVKm85e`rRe7mvr=G{4sv}lVqaS)za#z;-pQ&4s@?Y~s1 zF)-`LxQ;^V&iZa50I>@VLGiR$p>E!vZ{tC{&2B&od7j&{9xM+5=U3(~;w+rxWpS%> z3t7?bxa@oeU5f6^LH6=?gSl=w;=b<-L~c|ZD)Rvmxk8naW2KV2$;*6K?zInfKK$wD zo2{E0-D=X#hu|LQwtx$hrMosccZ~;>{}Qmqf4;bv{)elCcX3t3_yW4S=NPy{XGF1( z6T>G{QK1i*4+%p)W0Q8#G;~8xWrj1ug{k6H(H@Kq{;{L$JDL&H61sljg03gDpz&K` z$j-l!w}%p4VPi+{rJFXS86kCPNevkkZya!OeYxg)xTL3wkC2S_^eBNCzWf@#%K3CmarCGG5fQmm=C5R~V=S)Qo9* zAuoFI(Y|;(sQMc_g7^H7Nbp>U_;LUSQogJpi8WtV>GOdvYY5|WU)HI=;eOd_h?*Yu z*OLS2MZYgAcpRg?tkP%Kmo>z2#g}#Jzs4r&s9_ne0-N>PGN)%zMg^CschDp(S1#2Z z3MDkittICsJ<70PBa1xeX^y>29-iQzV_XiKJ}yG3vDPXznw7F;XYNfv0h$j(Z%)RImyGEQZL6bS0%B+KcnE;+N~vPeDmw~?!W86Kjv>PckT%Q diff --git a/htdocs/public/high/assets/fonts/slick.woff b/htdocs/public/high/assets/fonts/slick.woff deleted file mode 100644 index 8ee99721bb81b59a5e1ceee1d3256b15f907d96b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1380 zcmZWoc~H_>9DiItQdGPuZL>_xgDjCHpv=4wk37&Nx3m(F$RqMd4ZI>#sTnIvS4$mr zYIRq0kV)NX%VjCA6!RLbG&S?cF0*sBT4Nv8fBW8i=FR8xz30vMSTKtf%;5wBfD-@$ zfCs-1ptSG*j~9z&2>@yZ0O&0cW$QnM8L(KKKmafd=)DGFt!Us*gAdc21vQSALs$X| zzy|;1M1fiYDb!#MKm#b}&(TnX8WVDD zJ{!y|8WSx_7DJ5-xq%i~f8a0TiD5phwg&PQI5s%K6CH#a^aW$E#u1#|iQ5VBN0Z^a z+Wrh7ECB|f#O1CR`r?f}Ogj%bMA#Kog;~-(rbgn@>1o4d$4nYiRyuAWwB_b_E;YM} zZ@NV6aV$`k?$I^#Wy?FR9QXZfCw>r^*1y-k$0lC+Q7Ne`X`$=sB1Wy`n;#2J7g5fr zwyHxDSEMClZ`L6n$e70#EAWLIl3&MaoK(k+l#St%Y&(Sx=VqDv(*x+{1v@swNPOd5 z_D&(udjRFH?3%?ol%y>x6(M%zP2C#?oZgpRVvQB6J2<-s z1XZ2vz<(2aNi{4LTCF&BxGP@+$wvm5GG@1!A5n$t7wEd@)dWbK1t7 zAI3J92@9!?&4dSMUJZ6VPu@Y5=2}-+pk@x!aH)vCoky=Cjr>DnYdb;5B3lEE)C=baaLJ_-dKR1 zWr9+1d0o&|%I}m3VT=Au5?NY}TCUN7+x*?X<*rIq)!7En?lfx*iHingK58Bf7Yt(K z_X`Li%+9B6@V=(#SWT`XQx%ekcKa;n!7{j@jA|tbPOhjX{3cs;}XV-aNF@z-Qg~t z^N?v#oy+p0z}5Q)3S^P$>6P=;iqWo=dqdtaskSzCVSy7fDSNx#E>`??q5MPtvepFdF46=ngEMs$@2`LCj^yh_!*S07+8;<}0 diff --git a/htdocs/public/high/assets/images/attached-files/img-1.jpg b/htdocs/public/high/assets/images/attached-files/img-1.jpg deleted file mode 100644 index 97e8f68051d705e3aa4e159b37041486d878824a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5076 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 diff --git a/htdocs/public/high/assets/images/attached-files/img-2.jpg b/htdocs/public/high/assets/images/attached-files/img-2.jpg deleted file mode 100644 index 5ca4a9c43c96622e9fdc0aed18165bb74ce6271b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5076 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 diff --git a/htdocs/public/high/assets/images/bg-1.jpg b/htdocs/public/high/assets/images/bg-1.jpg deleted file mode 100644 index e3164e82030a242750d6c7bee1967e71e221ead6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48820 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 P00bZaf&VG6ZOi=!EH-Sp diff --git a/htdocs/public/high/assets/images/bg-2.jpg b/htdocs/public/high/assets/images/bg-2.jpg deleted file mode 100644 index 37f4ba9272a7e6ebc160ef968bfdbcb305abba68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48820 zcmeFZc{rPC-#?sAr|oo6qe@%rln&Dp#J+`@sa9Ltv}%oIDhMKC7ZJ=eZE0y4RXfSF zim^mSiBQ|!S~4V&K_w)XqKOhg?7R2UnYr)hdEV##9nbN;zxmIXBa$oEbuORtJiq66 z`J8qKcE>K6?%2VLe&ON4#+sTz zVH$V5(Oy0pa5PF2b0=66qM@Y;GBw8p-+?22!oTqHLHGwjmF5~+l)muyhAKJf*=X4W zU-t3yzlIIhvoB0B#u!vE$|wBJ7Z_AvP?#|Ws`RmNW8nSXWlg0o zKHd_JgerZrSL+wfHs5`586E2Lg`S2M7_OzS^@Tn}1EQmAU|^vBg|-$%OH)f*6QT`< z7#Qnl8*6EO@uw&OwS{{78sDAgMmB1 zVbMY1cQD|fFy+5WuvP7vJZx&>4TcwWQb-`iOG+i!G@ zE<+5j>KhtDAXf|wujp%CzN%+n2r<0;t;M%`e?4n~hDV@$g2MlL*85-28vWa6_a*`= z7^vC8C)7XE$NOq18ui7;4jcRb`?l!++w%T=*8AVL#o*sQs|hqlb8lGx(=h*a379*3 zZ~r-Ife-(j_C7(tTn_~%_3kX_~cn<7xLH9tP{8J7B?+$(nydM1Y(5HKH z=vRA7wEGW`#Ak=}j{JV`fCT6hi30~E4(zspvVawS@W7t@bM+rOd<1CSfzNqaeBjXM2Y|kSJ~?#w*x}=#gTN2y0B~L6(0Rx=rw-q|6Y?L=l+vnRYkwR1 zQd0SJ&#fn6x_VweK7XTg`NHjRDQWw=)xGd55|{f1ojcwM_?a;eFXLq*hgR=fqew_5!gpy zAAx-Y_7T`eU>|{f1ojcwM_?a;eFXLq*hgR=fqew_5!gpyAAx-Y_7T`eU>|{f1ojcw zM_?a;eFXLq*hgR=fqew_5!gpyAAx-Y_7T`eU>|{f1ojcwM_?a;za4>yB};4O?N7Kg zQ!v3-Ef3pAOu{0Q%-gaTMIXwxjZr-J(Wzk8`=RPv%Clq$qi~C!HcDv?GKE@AdQ`tT zgS>T9!udhP6))rG#-~EovGx~&o76B1u1aw_pQs{#T4?$Ozd{W0z`ne*syf(XR`>0) zz&+2oXwmaz;0MRSc}^r5*@v_UZc^U3`F^q0Y}?5*BR#M@ARXwp)k3oknW3qZI!_ju zY6rr~Onc;C;tQg@g9bdqw@heyN-DuShzk+#8FTT7@_{~*W0gDSEdw$^l^+VPG+tMe zkeG3Kq_jas`eoN#d5#^&elHQ@mY#`f+vXQtjNSzq$VGvvv<~BKKaVDKqA%;B9Je)3 zMyfV8#Ff7A z(j_2oyi`;xFGw_)5;BEt9VpY-sg3XyUbD>n)hXiq45wWucMYyzgd*Hv4Zilsn;?kP z6e{Zwqs7eZm*|X}H@*jfP6|)Dlj&ix-DJc0U6AC3CC4gWj+J{5dyE#`;{-E?2?z$n8_W`Mtn&%t+5GZ8OOv0>!4&>>BZf>bX%i5rAK8w7^8E8%+N zbp(FwVq1sd>Goup=cg9mzfL`2=>s(CS@@IlS=EKf@XQY=i;h@p7sG9hnJX;;hBpkZ zN2kynG!SF9LR4Pn2)ea60u43qr*xVhd%O{sp0`~ZNi0R)TFxD*h6K=qv$F*c6T(N8 ze+F9iUq#%_ISkPVf1R{Wg5G{%Q}Qm+o7|pm_a<+B4d%Q2_Qi@_OZ<FZ%{vbkW9C*xU4bM zU!5qU@dF4XA1l$P(+{d$7(F&Qki;LU5qROVTNTHxqt})k;tKQ^Drf7Ep+PR?605El zq2De@=R%Zlo|`IuYn@#&f1mR<1L@j!#Y;`1U!v!z;THKKW(<2}qSJ3e^yB|worQUx zoLN|_#p$dUI8Twsq0^R2g}j8=jmj30H}}%`i+_MX(s3?h1qEGf{r(dBL$8pMiVyu3 zEfK^>ph@>fkK;*7JZzdg!}Wbld`{LV0d0YOh7+(bPLX6aS613^kr#QvBKY1A*mcB& zQsLTsJw@xYCj9lTmFIDbx1QGQf^t$!GM6?R4L5#o!j7I~RM*)N z71VJ@(?;b==rMz-YQB0N&+%3^aMroKYs-X8SE_%>&-&KCBeb0>F$6!Z%zv zbg~IIsOc{t6Lri6opLi3F%tt&I2 z!8C3Okq)aIbUa-QI%<29hNiDx{Lzpt6)Sv{Ht4*LD3k27L*9$5d+d2q&bSVlEQL%y zd1;;qf39@C_PP@Ob|q>&uYK-r=6n+SIX6rW!(39r8bo`+)E87={LU4M%pp zEYbo+E^N!?Q_<3uW+_{urcE_x!BaAu1L#=RazyadJ1XhN0y<{mo@F32kco$RKk@pC za;d~XWI61yG1Sn2WMRBH*%K0wL1*DoSHWhLNRn+wHqhUhZDUjmeL8gp_3;Y7Oy56) z#8tFm*k)KeY|cx^o_>h`!!X@9F_+u88@0qput~OA2HI>33uez(uwQlGe08HoPk$c$ zeQ|fw=Gxr!o|a4LOdv+)S+_ghu@sqqRoT=sqgOuMnmMF@QQo0(Thn4IaGL|?tM{Rg z{doTe(A3+0T76YA>_kXs=8$ry1XqXuU@FQbFA>}d`@QEiZMl^Aqp@0F%nE0?8q5*s zWhbG!TDoyo?p9o8U+))=vG- zW1lmlD7i1M%Zc*zd{yevE-9tS)>b*sk(O;Zs%`(H90Xdtmzs%TitD`^^KELd2zps# zBeop}C%He42}vpMjf+6N&kkVw*U+7Or934Uu;oSfsu5>8S2n_f>Eqx*3jxGlx{og1E3HOL$POjaOdi zqe+kRR2n~mT<*rjL1)bk6iX7_)_U}2BAn%IfokQb6c5Z7#y53Z)+1ZII=TyQq;S#lt)L^~UR>N(D z`ndjgHFK0`F1`pIAeJZ2LSV(({8e~juJPnM7m{PYY)!HU;oj1(^R**ZD9_roS^L30 zp*zVU|5;SIhCEK@?dLe%+dPvRlTt6+=r_4#uFGS48mg+_YI#0YcSU<; zN)RS3sCBr1@rO?YW0h8JRUUAP?Xp*V?>N3Rdn0T?HzHz^Up|UHp2_DoryLIq9Ia1j z@^Hcb_CT1iiPFm{drvbP6opFM<7nGR?T=*(JUfgbx_6s-cI7fRWi|4Xg8@9tFg*_um}S*ln0=prevfm zSz<${2iPs~@)LzLNv@=Px|p$0o$la!I$m-iNx38{=ct)|NEamv3lws7oUw3aLiAlMi|R#edgk~ut;HW3R|Mmx=&sOasT4A322&x zSec8eKHtbFb9m9!7vdQ6YHb(f*iww;CC6@;34J9VTmV*w!YRIV4vqE__84#jS`?V9 z3S9hg%c~<&bEXwrqmBkfkt63)^f&99&552^=&udY1pzWcj$glN1j$4tgcmwxIq4N9 zxOZ;S?3S?Qibw2-q!PD)l9=2HktZbo?8RqEL)wAV7+tCxe0pr#Kdb>~ZSn$9QT{dP zQ1zR}j$o8+idEc6wyhzd@QJx~xW?4zna|K?Qtp)42u(LAyCCi6_v>JJJ;MDGRBW*n zEx{;&fePRlx>iH{@SO>Vn6H1A(Y&`*coJ_zvm8gk?yGj*uoDjy1x&FeFHu@F<0Zpn z{iixkIL=OTCp;i*SIcgKr^3lq^ut8m9N)m?A3%qaTX7wnnEux>@g>~sqH*l=(W|54 z-;NMP!3m3y7lH4n<-5)voB>&Ls$%~8>NCej zY>huz9TWR12{GCfE3g~Ble1uXv}R-Dd`Y3_B}%iT+b$@Zsrh@&1YY*sf_ip} zQYI-JWf@g4eB5Jo`gGXp$R9wTGL`xIJnn!{e~gstl_xbb26bG%(cQEiU}D`-o-VIF z(X5^^XaA)yrDCOxdNhHiU6g_j;98;Kj>8zV-a|ZRnH3w-+gj89WgFx37h}TB=G91==7DcYbu}Oc;%kazMX7*>?2ka(}Q|cA}YfBau1{b~ExY^!( zSdI<{G5b8`)zY@BrBmhJT576vx_)o3KgSdAQG_;+@|#yCQgvK7%cC!DZ zKqr`27nm*TlQ#CEdI%vbwHs7#OACX}`zI)bFtso-!77Rh^YG198#FZ*3Nplfd5=vi>;rm{wC;?Hu0q;izz=|7^!&?Ei^qps6FA+&!(1=5@DxnaY%5psT(kEf48_b$|r%V8VHHDrV%gVJ$&O|wLHi5$5i0YGYyTd4zVz> z3s((y8r$rulV-V(1B@5CoU?#7sTduaR5a+#7B;eCr7Ngi1kY(@iWr>q9P5Q0BU?!{ zUO{824k(C1X|!NenPhD^sUPT!TzolFLn`ij4d5G4q?YoOdTq=)B8g?1ChF$rL9y|5p*Pw%a(pGn9sbJOnB3I4pi*2GrpVr5P zCvWiEll9_)TpgE}Tn$@s^-1Rt=IqCDD2j86RHq-!Q$RhpB7zIEIhCxf^BFI;ALL{| zNYR0QCq}UU6d528P#xtWN-C9$T3j9`U>S{8)h2RmJ&dTh#z`vnW=CwbdK1M2+>84{ zN(BTm_wrRyQN2gCwm#_7GqA_zSrBiNdn9;t1~Ah&pu~uuvbgCV2(BNG%D;iK{~M818##ML^;V> zicfit5DmMidbXHBI#q4Wo%2e)?j~F zSwTtHkq%?gIo*}##weIqf3B>mOJjz6hsYn~335OGr#UnL^x!yh;9fufpw|9K4PxqD%ZA2jhGHRL*oruZ-wpYI5LRf75_oK^B-Ev>O0)fB^lKBq&b1!|G{D)pcTx#0F z8Rfi1jVYeknwwEGUuJb?B8JEUbV3j;#c`=<-`yH9hI{pAUv*#MsitgGc zA?Mp@602t1at+=3?a=V+RD0x?`VfX_tf^GOFK0q3Cq*6%LuplBH3h5>(1HGG`n^5t>s0DPH_65O}Qt2}Y8n#&(6BALb) z%E7>G_Gc^TbUM?TX-#8#Y{^@Nn#RX4YLKm|Ckl2!0}m;`5!||as)krBIiujZBu%S_ZarwylWtR!ve{3Atw;K73jDZo$S&(G4r^3$_&=QuGsu7oP+ zXj<~i$$$orkLEL|XG{4BiWb@%-^KJxwP00?L;)XK)*V_j#m`Pml$T^B(rE!98~qd8 zY?H}0UBnFSYm{-_jsWI)+EV;g`;Fj@s?SGNl%c*J%AKqE6X?#=`WqYNaUAru1-=ugnCJ%NRDu};8Xye%uB#Vx#4)qjU6}7W0Drt-cNB z>nuMeBkH9ihC0IViYsYYfJC|pose(9pZ>5{z~3(ieqOWtHspI+ z)00MU_3WLAjSPIwGPA9}r&7fMjWafNXpq^ED0kU%?;L}0Pm`>fr04RpT*<@fygY62 z0q9uv!%5>l^Q-kL=3a1~OW(%jI2qd+M)-GhhpR(IZRVQc0~gtmJKK{O3Ji z`?}8XmgmqPSjNJtBxN?n$^)L2@Y~3<$LL*Z)C1#Y3+j2^Mtg+yP&e>;IS)!65SI;2O=qem67M# z_lEpnLPuxtbHm;(Xs3|&E7z2)CFfHQ-HsWs51;lb=L*d%y z&DIN+Jyh=eve9s}ihQq5g2T^yg&tf{^7T?Oq%VK1YbUmVoMLesZqLs6kfNk73W^Yw z2qxIw9kX6m%hhO+2s8dL1rr1Blmw_`j~feIK9HNQSyAGh`GEcTIC!r#&?oCaPz>it zf^bVB7Zs;M?A$^&>=jaq@s*9Zy)=YLcYQ{5P{Ev}Vm3|E2D=NgqJ6kukhjqmkyDXJ zD#rR^c@HrkOZxj?zN|M_Z_(jaYUIA7&INj>bge5hFD_3BZ*s=U=wtn_bxa}OvrC?< zxl%u%*3#_MvvL=YFM{cL(i5lG>n@sKP3zzA`NQXYkn+tJ(&8uL4cQy@W_04z_W2eu z+4wbi=8*TMc0WbRjrZtRO`t;uep!RBo3*eySBk1j7E0p28`0SXZH?~C&8p4KXC|2# zw~>^0P|r38){4wp-dYC9a6>Z{7IXKY@EiGj2S(VjX>ON!Wqygm8=FuZ15#u$=$Dg! ztjAd%fnFcKm2Vz&s&84YQD0^G1Tub2$Q*sYdFwSr4>$JPo*8<4@^1W_(T#x}HQl9X zhlYlBLYH831LtVfu)xo+cD%y0_8gzs=n*x@p;EuOe11}qVU##GC;D|Iu1tuz`twh~ z2n*hgilTNZ%~Kfi3J$Xbk?Ml`=uXQn=thNb>um%tqpEVRy+`^raZ!~wT>Y`uu9+zh zAEsny%OU0Ra{6+noi5BjeiS#`ZkoA3&4poCSCS&LzrmDb#PZB%esvn9O2|5-a8_Xb z{boL~KrqiA_mwrxF_n>NOw5^S|sHHKZGJ@EmWyg0iR(O9Ht60XtCfs5SF5_uSLU#<+L-B}jPAWak~0dB)HynVb8?+l%nyTi|fwOM%o%ys$D^i)=;gf3co#F768-& z?$NL2vvhOD4A>+*8vW!YVSbQ_nQnb2%*o#B;2T?_hucPCo7jjei*Bnf(eX;Wt!A$! zs!=u75m%t2@L>8rXPI%c!4;SvKr|tX^|q)Gfh^NvVcHQJVS^t8VR3_`ZIyaoZcOxQ z*eKjA$wW!{<@t0JvA*29HHZ2&2z1J=AtP|n%BQlXSM`L&Xp4@bN$N>CB^;nU zx%W_STur}Zs9|2XyJN!0FMa7M_CNWI+J*mAYM zbGRUXdFoLP#@b@Ny#IK_bZ%iJSwOEJ$pRCfuRh``TDqopV1PLp0}YxR)C)x-bw@{m z{F3y*07cgB%0)$eAoZ+`B6Ika=_fDzH4pa2_-~X0J*DM&QD)FUsX6aX(?4=%i4mDY zmf%(wUSo?mxWBkrBQJtSke(^(VLQd5exzm3l4VC> zL$$dCRBxf=7iZA%BMIjD$Za=*ujA6rPooKsTeeP4&T7Zz1aOloLpz+$`~Y<7Ee^6p z@DzA&-Wu#%w{Q6heQp=D18mk&t5U0LR#)T;yqwZ@LHfUM&){zT5hy{`TZuK;`T8_5E=#ejlj4x)1r z>3MN6@P#@s)yWk*QMNjrvt)T&Cvr|0G8Xh|%w><1@Q1AS@2GmN)@*(^!|URB{Fq=u z2RII4;_F7uL%*Uo$|p~r{x}m4F@IWYI_X(xsE@*Q8lmE(NN2|&iqGOby;)x6Tvz~d z7i8ZR@2NR+gDEUC%a}`U%O|L}#UW?;F`8DEl*A*5pc3MBQUA#6fcC1Hcb#(J;p`f_ ze-Ju)6r_USW2R2Y-aK}`Qwo7Lf&n69`0V9UZsC+s3+Hj(Np~EjHBWAWmV)uf6ePrG zRlT418Q3*E6Qi36;MOXeau0B(C}0&yeXjiDERkQ$6C;zoc0q3!2yEKsDavL*Vi9&i zq^a6zs_Gj;UyhpcTWPa4F^Pa)f+?Wfha5L6>Q*4GhMx6)6i@H@X%yb~3b%Ny*;%Jp+lJWxxq>h*8 zV;gHX9XWXxzC@)0j%Ye(LPVS%L3YVn6U{g9_8aT*UQY3-@0Li`aVqau@sd@6@vfQc zO6~<5ddQLRs2p=J$Bzw%91^4*9^C?|iK@=(P`cS2hyTqS^{rCL=VvOoJ3-;2N zY^`%t)NWY1(Hm6U0^G8m!g(0z>=_PCVs+h=(37gGA2B5`?}wqD#y_YZ3b@5_-ScFh zm`jUx+!4H|CNU6^QIvaVw~ONs|6g?oJ%m?9EfKvkzvCHyujb|;>&s}xMU?mmwf*A9 za1M+6^w-sVVC{nrUY$=|7}^CbpjN)>@A<Ox6;T4r;Tb)Iaduni0>H z5ogZrG=5n!ZG;K5nLf+f1&O$X7Qkk@8}ye8cxLo)+jjTTip`XS*#kmvUk~7eQ~vMR zGR*(CEdv6%;WQb|0@dxv_Lk%7B38||EYm$!a&U5qG&QOy<*~8uxn_A5FAwPlU+Pai zwTSL~w}n3*JUB>dg0OGcSul&S&zyqRvL8-Wx>PIe!SPZ4w|2*#n-E*@*exx~6a4G@ z)FPL$`E~cqZn?&;-&5rTNmq74C$5@9?G?*JI+YK%*td244F7;&eP+|uxLpw z0zH9F61);1%w1nUISeh?KnByY|4^0UZbsF}_mytvz{y`?N!POp@Rws9_kROOj+4cD z`g}Et#9FlSb8U-=rAR9~Pc)^S=fN3M?v8deLzD-!Sp<$hEWqL8`*Rj<#OB6W>ecy3 z6U&i~J$htcuYP=8wwLRc{9bR5jF{#?JnA7H19L7DFqW?hRPu1}`1)_S%dvTVR&hN> zsGhs<@+R|gwD}WP>}HtAK}hO-O<#{xK$PRoDJhBi?rNe?yrpQzxssYU+G9_A+HvPX z@6bGEtsQemny)_`Q~$#~`vcp*_4UA}gnl;B3rNQuV;TGU#(WV{v~cpeT#H=bjH7B4 z7~8TYFu!WL_!pxCsSS9y`t0;E7Rcz&yd! zTHoVz$E8KiUUviVvL#XJ0nvc@w=ox_(9unz+fy#BK0-+nZWNHI(F8Z@2ZvF*)fLFM zZCR?6u-p%JSx~i2`&OPEX|LqQp`wR8Qkcq(xT4~gPv?PH4dCno;RVn8YQsD?3~q}} zd8zy!IkiEi{J(XC;#0Xy3;K+{& zM)Y!BzR6ocVO6@&>hMH1FAnj zdM#Box~|L1e@TpMqgz{tTZgyZ4I)182k03+k_wccyF1r~G5Mod)xs3pRiTAlSNq^b zIeF~!AAtrRr{4ANqib%KQCEsxjZMpkHOG^$L|=6#lsrjO6jw|`MDgT}d`|!g-aU~X zJrPQv`##=U-Z~+@b&T2D7`dS)B2D#~>v^oUUJh_9UCVpAgAkvbcM<`=<%+gx+$mC9 zVS_atU=FpK{3oW(|8jo^Dm`+wn6a!MJTrkm(~7Byo~VU}{60%Lqv4XtuyR}`0)a0~ zvLmjqcjQ@mSd(8rKQFsn?xMk5uZf|D$q>{H1BtXoIU(aDt^vFOK%fwxX1TgWI3-F& z?MkWNO!m}X+9?la8Yp--K(atkVQtYSJ=D9n`kb3CgohD@p1J&7>aiI|9gApT4?56F zF|dOc-tw80{||e`i4Wvdw3nNLT_ynj$ic_SnZmfJ%TB&=k!~TQ8$H1N22)|$#dHVB z_S~Mt>^>;`9txfe6F3b638A2=$C*G=<8 z9|F+^Pt~-Na+0E+BNt<{7>7*G5UdK{tS^K-#+kV+Fmt8REftn7nGS$2l|QI6+4!FJ z1T)f04GIdFOx`mqOzM4|U(>^1GOzgO7ECQ#&l9{{-JE%2RR+JnWwQ~UXvC*f@p@W- z<#W|%lR_W|YLveh)g%q_sSj%xKn~PU6ey`hF`QLX_w(5u40=F1U_^D(=d;H*sh+Ls2iX0gtDD8K2ukzUzeTz@Zp4H->DJ61b(D*Hx~^b zYZVbOse0QVR;Fvczhnv3k;+G&Y4!jdRsN?;QZBQJ9H#8BXBCa-*)Rc&L^wT z^3#aTRX{=ToJKKLR{;8rSaPP%qpb!jP0tuHlacHcNnwIe!~16Rca07SA&b{LTMOY* zU@B8#?l;D;`BJs*$E@_8uQ8Szx;0pA9OjExNNTgBwwFK0T^h|IJko9tUk(;c(ehfR zi+s(Sj>N9%^6)Q-ALrL8x#}z)ABI`35+!ZT44ONpvCW@>^;YVx4(T--h6KE$CQ88- zrUEBerSWz&ip*$qlh zPx05Ai?Fa$s9PZRm2-T=YFj7sLS+{!3>RU(I#;b$O{zTRPCmp#!`>SRmJ=F$K&4th zWwMIuIe2#(AL|=YWzAeZ-(p7xu*NyH?yxWs+YFNtJRvQs;SZckj4Uru^ebbWytHE5 zSSl(_v(Q;H%z}C!X;8klbu(JiFS*?psLfLWZ|XC=(d6rv=i_#J&z})P z{6uGd)iW2ds`_ru?(j$p{U*R#ePo`(+NQ2nl(alu8oT*j6{O3^dJzfme?>nAv%q~G zs|q@;07a$br3va@qSk!3jhHDnjN(?6*g%!L1y9BHcr@$q?1Bg``Sk`}l>m44V{ls~ zerkDb1*R&_`6IY}8Plzts(~NvnApA_yK}0?65;$2?7#QrlgY7e%hhUIIK}SG!wF(i z+*4{VK{rx!TEJvD)s9H-+@WiQ4kH5*cvEA@L`nm<^Y{t}seLcUN4BAUbw#tfD#)P4 z0bW)$D4}o_THD~(-+Sj{NDc%VG>W7L`3VBsMEP~&=;gxaJ@ai8L74V)x`TMTYuMd5 zeWYSyy@zRhiH8JaJ~%T-7!q1-HD6w84RB^ciPuL)S?sZn+D2Q?QjfftQ+=Mud#JWR zc?mhh^Yisqa(ol>{1MJzYF^d_hFL|p)8Gjcw;@uxL|gLDdd-$(Ssck;Rl%UhY)+L` z($F`Rk~z{);PtrpQu(;hs2C^PpBknYH+Nwj>_JK}`x3gb#e-hT2grh;sXkUSpCuL; zZ=yHeh)d&|{qiRP*ym5)gsX*P)%yn@5|&R83T8S+b-6T`i5uKm5fgFDGODnz^-to2 z1VEh7Qxrp8WnOA^!5gr0+T$(4*@J(j@m1S5!U6SZe(CL!Lz%*Tv20d`m zt-nH4OoofaLi*5wG*whLEu8S#q3b{NnyQk|)yI(Ofz z+c5ue?u(FGVx9L!)|gzZ{pXW$^*Oo~!VEtk9sMBB+OevGg_n@vY8wvJ2a(>_L_{=a zUb2iA*x59_94)TPwhszO9%uZ*pkE}pOt`y+NN=#G_V!D`zX%i{&;}6|P4))>G2i6B_w&LPX~;lLtc)F^ zc=SxsNufw2-y023`y2@;7CpNHqx`RIoin5( zh?Lpc8fKHE8#z_ouEAW{?h0RRSZ5pxLxolh|2F680oQ|1iyp36mvAd1EMZBsvwL2N znP{Tc?P>e930!7UuW7Z;o1@wj{;ermlO-_wtsLq7<+8i%GpOpz&Y zx%gX3s@(R}+P#$U=ViTaI7Pf#HHD<}CJas#OueATN5@}TuksKfCta)SY5KqR8or-h z6}3e$N};m~&2nc}kRJ(^S3go3HYIc*01E>9v#d(O(f;0kHlYAGZxByxE#Zt-w546C zuh?vNDb&;>D`7gCFTn|RHYGysRks;nA0uC{*pXzOtD}v zzH!a7K7lf+TT3pS^rb@Vh-^=!ZJ*9DUOPOpg4GAJjO@n)M^3W8cl+oxA@j35BI-Rd z)hv%knXIHj`KZ2mN(3EXo{bOP--G2g~#9Yrz`EAiMV79Uao%co-m2kJZ`mUwN`XUE1)-DflpZ#l*+GW-+ z@d$eLA~c7QHC%+%x--#pV+U|{psNiIy?11O{Ccm|p9sgy;8OYd4dA*cekd|zVf)fn z3qXS10Z6b!)4r?;J~oR@IW{_Zr*ngnQo8=-pQ$>tj%Jh_`!zm2Rl{g3fJs$w_IgQ6 zdgazA7k*^Mg5G8klJnuge{^Jxjob|KOyJ5&jZv!PRI1rGBIcKvZscWufljnT?I0GD zn%$9kzv|YIzW#W~M9KiEm-71exuAiBYP~EVvGI{9tG9wK%p8IU?d0sCIm*==zqgbG zx}9(Ih*}b%r+NLf9=EhvZf$K!X{tpHid6HaKDg6Bckx4@r>9o|mt7VEmQR;_p9viHYpEc6`HjUS6 z=Y3cV`I+c)y&7EAWJ+zhj#inQwk@1iy)c~oJwpyol6IbM!c{G_N^^#T&d{;|rqd_O zV<|RR*G5`E!AR;-_9UrfidkM-QbJ-lHIGQgA)0L6OR{{2RC?rxbhnYr+i@8ULIJSd zRs6^z19Y7jRwJF$#|4PAY6Rtrfw|-_ zz19|3NbCyW?A5wts1x!+D~3p3{(gDiH;P{8C0bCQAZYRxu&Ic0a{ZMregbJIoO{1Y z%gm?x=4*}Pjr$2DXciC{Zz&-Gj@u^2eO13|3hB$CnO;n4#6$xbp+2xI>S0ExPs$`C z_R(M%4{xO7ijH2Si|$Yi)Bwux-t;?8xnFOGjh|Ujn`J)=aEw8ep{J)4QVLA_V}xT! ze$3i>P_a#ZfqrU~v^lGB*>cLgd8GQQ>zS4W{XJ)bPl?xn*^vAfXj1j{Za`{ACMq$S zGP&G5p;spqSX?Q_&e{G#=>*5ZHm#%WYwJv}bj8o;0hxL+4DdBW$#~9#v-NA_l+e7- z{a3onnY|_fa&Yud^6cg6EVX|}p1mGgunusQBe4j%nEG=08j9y@7CsL|eHOWir9V?ae$hmX zab3kP&*>mxG@ZV^DNxxY*6>02j#FYiPB}-)tnPsb?vc4H9!+~d3(;PksDRU-8>cyw z!3x)dvUDz;HvfDx_nDYY8Pe1}5EoZo)dP172Ir zm7GivMy}-C^pz5qSWx4v@@1Six94JzV%W8vMoV;oCE7E)+P(3s8GvVaDEX&_z`XS- zf}YAN=aR=n$j$|7Pih9*)051+r_U8r)epq3g(7Hv#p(`u9wXNh8iGqx=TM$8XtVwe zRlT~lXyr2H{u3ssyo`mv%*8(@#ozRLupv{>hmLoGsng-KCu(u>IDnNiMhlVIF~!VJ z6szBUgb`6ApOSzBs^Qt+CGl|tMZH?{mO+{|X2(}1DyA_8QLI`dwy|B1cSmX$l-jck ziXd#7KNBB2wOX=cZn@2hpV_&)c6o%bwyn78vJ0x-5FZoA#!oE8480rhbiZCsBr3P~7w3a>3RdGy+VGk_ z6{F-^BDSRbEvrPCs4pk8qce@iX?pDq&Z||+SJq-L?Id(JGl9$tD)^@nUM{X9&8Fg} zKZ#D0KSO$ci+i1-VRav7aJQt1>KQdWQ+XqtTB%y{&K_%47B^>%G129U3`$*B82-S? z$h&Kv)x%!Ap~TBs*4{-3eatj7y%;`Cy$xnp20Z4l5n6oXA<7BfK+93WyvVYi?Wt%SLAO-T^Fh(DuVzI&j7UV(JC2yb$tY z!7M&C@+phcXdl@m;s4^dl_lK29F*YqI&47~@-$L%93MXiIZ&mcZMQ|NVDz zDBZRjyTn$p{e__JR2tM|e>;d(WMB|cqs2ArzE-4MW`Z)iK@BXa?Q_X}pW}mL=lJmR zbnrW~#+!AJNZ@=+jPvR!hnW7^TY#}6BYs|VNXK3wbH#QRJ6|ccf={M;Td&9IS2hoA zIluy{g#pOf@q81*LJgxCd>ug@2>B6T(Yj8J*$>RenYg0L>jOguQ@@NEp*T1AVa+)^yo-s!N;#SRS%g2Z zE3_nTeRG4AE6Yx5j~$LpwzE9h#fiJ1h)4#U3|JSx5Ipex@|7}8$kda@ zy;WyLUZi8x+m2OYjTe1}R&(vNxr7G7Qk^0D(`a1na@7hNpv-CA1(>tOOBC%7f#aN3 zvlXK$l22i6^^}!+Q;=IVILaO=&2I+h>(9Yy9uVF`;lstY+K;~LS8*yl^9;uNjMSD` za-1G;G!{R4rCC2n2nmz+r`)%>vDZpK{&z7F&~XFh$rav~US!?-zMNH*ygrrM$xGFq zZ65VZej|&_Oit7ntGJoIN43X%AR`{x<&?QN1pmj-JXM2JGkO|ke_@F^yfsKDH&;Cb z3m4qV8@S(cx7uPe?`=(_O(}5rHzWSdcG2v1$z9-lu*$NU=Z9Y3*y@wrsY|Q2AJ))W z{+xQS3y0>BUF#t!0sK1z%Qw})e`hd2-fGBu#W{=6@4iO8woVq-tgFeF3TxO|7igON zEv|tcbF?OQOEfnMMQ7BYs)jV zCxWzf85P>AS4&=nTtx+vX(_{1gZ%87fJ_f5mwUFWiAF&@;**QUgD5u6O-Th;?Lqnv zu~+0$n~JYTU)OuZi(@lMOCLKFRk&?6ylw|jP*ztC8oHh5ke#TYG#5d zPmG%v6T?>Eyzy#}0xtt>{=gu+uhl40+v(&b%ab}Hi^z@hJ}>QnbK*LaZUR+Zn$!zh zsI~o?^JFDrnK-$YV`2hr85c&pIqLc~DChmwgux{mR5IP^!j8W9oKttTEv?K1nVD14 zRNj)L6To|vvEi`cK=`t-isW8AbgBBJ*v>aJ3V#rs66{Oy2y~a!nM^6Q3@WXzMoP`# z#X70;lybcVk95hI90#oV+on;e`N%eU6eXlBl70)pOEkZ~3GLm$OYt^Vk|)V4LdB~i zLUUj98w{*BkJjWI>dk)JYS0;geAg}?2C(K9zU6v92<T(Ud+@IxLw zl9|_eqM!gjDtZ5vVDA{j-o*TSWBZ|-&iVYi8SKwl;+*q7!a`yq8QZ)$*`Vq6=;7wnSDG4_H#|31XKPh<&UCG{CZg~`P)gnO>J%qtWjWj;=JTf2*6J&sW;m`9I1dhf`JUn~H1)BmUBD}7>>1^sv=)tfz)K~p zIQk+>hfq^+6|68a-8l+WjkSBETNfTMnKLsn zoSNyrGr#nUkZ?B8L*>=0npW!6NX+7V__t@8*CPGO1BHP>-uVqi#N0)$|Ma3ogk`A> zXT(1JWYk{P@_1Nb{ckIcW}2;{n$lV)uC9(s3_d4O znkY@_bNbaVa3Q~Ki?g9*eBPGpUTXH*HqRUg&Ux^e1XINqm^jUcSMI z(fDQ9$617-o^FfX$tZ_br-;ltAHYm@#uZZIw-Zt~fdh_%yP$OwpmH~u0;I96qw=X^ zjArIge6@t4j6ut^iLS$HbmpX14Gd}e{=s_P#Pg~T72y}TF_ep)%J=^uSszNwT-*$0 z#MiZ!r1a_NcV_xxIJlh$u>Yr>yKQMQ3gZAS)GGr?h7^<&swFYYtTxKjAgZZpBTVN^ z5-~SqE6GT)HG5%YHrx$K>ZaZU6_yVxWU1H`k=VwxY1@sXiqxN#-gN4y@)#KqqL4m6|6t`(%bn_A4Q! ztC*Py_nr;VKa@l?*E9vi(MK#YiS0}(Wo@;w&+{ioO7dr!d$X__rJ*KGr!Z(&izj*H zUS-@wQePoc&ZuGDH+3t*JxoZeoJ0xbnX@FSn2MYn?x)BU;(i8CYGa8BHEVOlGcNEA zr9zH0}0J?)hQHDLd|@E}(C-RsD9Pr0XTfkv@GyHQ)T zMEq-SDbwC}=f)fJ4ipa8y)O}DdJ;Hp`JB04WHzm~aJyCPiGmj&k5OOMao($^y^DL= zE@oKbjZxM5I^#l@%i){V1$4>3lk{}TqfMQp)JT*jiOYg-oUOkS@<~UWp*<~+vK0-i zhfmWubh{h-hWZC9HeHIshP58@iM6HM5!(B~NApHB+m`zeRnu&( diff --git a/htdocs/public/high/assets/images/companies/airbnb.png b/htdocs/public/high/assets/images/companies/airbnb.png deleted file mode 100644 index 702a9a28a2c0f6a73d0f5cabc08ed7458b3626ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2652 zcmdT`Ygkg*8m2i<_mHN^O2?9D%CxwP2uU6VQB+iryj3;`TSbM9unoMBXRbV*oC| z7bYj(0o-7)zad4uFer@ePZfY-4BvvmD8*7U8wPW8S4#PUcmP610Wl&84fUd~9)%PM zX{b;V8^@N?fmo4GiVO%&3E&A*;sq2T%6&7^O-VHihyjR?REiTMa;lPs`k+fS&n?SX z6!HTEil?FeFcroQLefDQfFxmXXaUXzhjhVX@I+@anYI-7LUPMwloc7v;RL- zEdGR+LtNlbzyDKM&P$d8SS}z3lVk$(#YL~Nl#){EGJp?(G9CyfOrK&j1UJw1td4-ck`D;baXB73^xaC8?} zf)|d-^dOUQ(_989ND>1QXqqehlj}Jn*U|`Lskt%(kcoBzLZ%E9BR_1IDw^4g>x_CI zxx$&fP-f&}&1SHcYyGclo?bHdj%E6(Y0b%}wg)8UUYD7hIx51+9R{0okHzrdDLbDR znk1b*cHZ-kNQsM)r`dI7<-QY%CyGwIo2Po~%Ta{hIkR{PZiN6dv9LN3ZFF6S%BiM! za{wl>zq#?Ky8H1{><&3>VqKs$ENYe|kjpIbS4%9uFD=gQKveOZ?4K+&>Fvu}+<5rU*waFE!?;PWv8-MBh;=;klBD-Uyp>G|Vp6pCZ9eY-q z=S|6fl*XF__`SBSiV9MfIt_8s;}H54Kl~>mK0+tRiR>*@e|;UwZ4NQ%$NuTgMu(az znI=Z>4PDQR9(dtUFiB%ehd(D@x@&c|>CI+nOL;rz&17Shb;hEggMD#yjx}OKMtYO| z=lSKH16Mm+x~W=XH#!-aj#+SG*ZVaY{IXqJhsfm;eQ%03)XIz8Q1N+X;J0%ek{E4S z89x)#kMT>xSH`4#X)AMv%9Lna{j&(iQ(5#9UWnoWIAZ(#>D|%VpxUg#k@L0jJbi>8 z*}0y^`?5T{C*j*L#JS|bg?t7tiJKhYKS&j89SK+1rq0T zH_ya3&lVG**GieXB#hcQ1Vf&v-BtDZ>YWglj7{@)>uPnp4jN= zJ1}?LZB6^CGd}P+trrEx2e0=htY%(cSbgJla7A?JuGq;p`}Y=8nX#-qf>W|xYO{D? z{{`bWhj;F6z0h!|$fdn0p!(F&ME^yHIOzuZf*fk)YhxCz@$Gn<`U^jJ@q8b3c6e9z zAgdMTxcc9&Yid2K0BzII=+1;KjQnc(68K5SvGo&%A|pAr2JH8sMJ(s4-H2L3RgYa*Ua(l zJGs9Wb8BVD(H{`Qm4k)etjPwjp(JKqUtS$t>~NbLYP4F%WtJq&cMzNW1I~>f*b3C9 zUUSTK(%Mn3G>UWUGcxv^&0lgvcW>pt9UO<|uB|z&xJ#+MjI(bG(+{hp#}cpkx&yr9 zoAgJRnRvOZQ1`T@!`crnsOW6(hDW^O#aH$uYB(M@Gn)SnRpzzW)E4*xNtsVrEp7oW zbsUn0HW&|Es1hVNhUcesMzlRm-LM8En0d2zFBdQI2wAl6gssiCj<-@Rz1AbeezM* z+56;8x{b&GwJL4uS5gLFlrHh2#x8!p)+Sx498pztO{!h59$i1K+DKfke(9MR^Xuh_ z{^CnnDyZ0ps;%DBL!TYY1S03AIKB`7yo%fYgV^8JHs*0k(oVeYaO|JLRt!fz@YSoT zI~szSV_d82Z=09?Bg_)8{j)9c7fZ~(1FzJ7wg~2@J6tL5T7t3s@3FiB7-v1d-u*jK CbU9rB diff --git a/htdocs/public/high/assets/images/companies/amazon.png b/htdocs/public/high/assets/images/companies/amazon.png deleted file mode 100644 index fe449860381ea556151ed84ecd82df349d20c290..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2652 zcmdT`X;@QN8jkIVRf<6eWq@L1R46KBArOcJ1VS(=L6)$IpjmE6gyhEL#sttoMX-p% zw6Z9;D+-9BBB3M`GA_`HL}UqQ05?VmG66b*OJ$iGD|UX2^S}3d?mg!_&-=dLd(QcO z+?=q`V5S400v>-hzh8U?f6*lGJMdr!1;s*O%n8is3AQT%&5{Ss?QMDG0 z5^%}r7!L-PAr1uif(>aBATlkK$w^D*cyrNyz9=6B2^J6n5DTRcrii2@1sVNbmjutv z%NR83Jp@W7qkl6M%LqdSf)W7b;f8hPU_G%YPn;Xhoj@cK*P`%P92SGcV{mv^9FgRX zCtv6-Ky9Q$-L< z;VP1@m{p(vQjSC*h6JDpWmaUdK^a6w!%lzOf>8WXRwVs!Oz?qW6f7|Y=Y}Q zC`JWFdZ1ziA}%PGzDF|{B$`MHu|ynzMj@kNzMDY6C3yxCy$D4AAgZSq5r+#R`UkiZ zyxhG5s1zI}$R8It%cX!EnGg^`vs~`)T_NsS;3#dcR?k;L~0L zKdJYD%l)($$|t!P*bK&et^ak+vrBOAn5Q3`7EV64Js^U6T>>}t)1H~72!usDjpEN# z82(i{EHZ5PD!4wobPr;=(7=d_GUUIrnd%HS-ikS(Qqw(GEuWK#8@Q&$I&@z<#6h=v zl}c@*cm&RL%dvWcE@S%N9`mk%3z&0IOU;2`&oRdzEHV4OVR^b>%KGkedPCUe>Y@{a zPTVy`&5i6hTdBOH^YDVKi2BOhEMokn=#7q(kIs_HJ10gZL$0>V*yJCw^%e1swTIr8 z+n+RazcQ{iC`|X_Bm1*+$j1&^oL(By@3ARZb>ZZhrUu7EpKwc;69Z4Lre&Rc79#qo zt~fuBo>~z3Ru>F}DY;t~t+A**P}#oB>iny)L(9{*O%&-#?M9D=`Y%00UK^p>#DtkQ z9i5U(Z6am9M`-WnDaXIFE=tcdMRUscOl8MBym+@pgG|tu$R4EoNmCk8pWATDx|qze z%olpUr2OybQK!eZ3XP(^>57pepTGIpHg43;e1GE#Q){~C5LNeLyC!iBpxLBL2)2!` z84L*?en$rh>Uo7t6VD&AaYPr()`@`{p1OLn1pn8(uT9h9vEtzeGZSyh21#eBHFb6? zkL|h~ZWMUd5BwZ(chRwZX1Xq@F(G3}M16 zijBDz&N50zPUg?<8OK@W@d-(34)ziPRG}bawZ=^@r*i_!n9=eF;F$ffb9;H3FjdZr zC#RIj%-XbgB0)=LI#eEbl9C&XtWLFk8As^*g1NS6Ql{C~J38Xu%hYihx9pR*=>J1 z7uC2{6f|*;zq`P?{pRhhz9T!++I<_=ZFR7cRA<_*=wgj({BTog2dy>z`EC7I3H(=` z(cyD5Zp8VqO}nYN5%r|WU#9BqsgINMtFH%?7`oL>r*vm|8{-Ofhg-VWM86!1?IYi) z4CqyUQ*s2~qpZGCLY^B|r^-s$!P<1JB4(veI?Yb6+%*gvPy10#tjeo8U>f0V)IWEaCR}xTUA#iZ}wLC62I<<)emKek8i(8 z_XC(G*6E9>`*Bi9sc!K8!zJHZajFbmeO8;sJ71WdY*&W+H)gi3hb|S|w^NnS0one4 z((e0&daA=clw^B8!g3cU#U-wAXKx{X^~)Ce7W>tSb)*4YxJ4=EEb=r%{(2y9_<_8d z5H#I2T$cKkdTg`o*KL~GMAsInQRgLpcF*bXFRjWpoAXu){i5U7H@lJxHR<>I(u=h{ zg2W^7jiU~#(Q(8Z`-iOsCP%pCp9+R_||tMB6vmRMUpng1qc_Z&oXPf_LKp)W6(|MzG?p_I!3 HTlfA4E9o8U diff --git a/htdocs/public/high/assets/images/companies/apple.png b/htdocs/public/high/assets/images/companies/apple.png deleted file mode 100644 index fa26a213b8f6175c63b94adf455366bde3dda391..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2652 zcmdT`X;@QN8jkIVRm7l08KBr06^aU3SOSrNKnNx!$PzXYG|LT%kldKum;gGc2o_Oj zD~p1=qJStW5=t^5;{vTnM3#UCaASlZ6QCowRF=81V&}&&|9ijZ-gCb5yzl$H=bZ1y z%?=F-vRGid0D(YQP&bmp;qe#K`^9JQ7ftlK3lBC>UR03?TeCAPYcI1llh7Y@iSXRC zj6tJ5K%gWN`gcrCNbCJ2afZ{|9&dbZoq=Cmf!w6?diV$MT zorRK>GYVut!WQ#I5FZqxOo~hvD1}I9*y-3MC(p2|h54oGHTKT(G7s%>e22 z{|^-iKA|O0IPizx|0yhCq=*1aI3NL~Vm5qn+?A$MB4U6TU_zjn0fNahrx?luAyC2t zMW}!XcT_ZA$N^=N4`@1_NEJ#TrjQL#$s{z)cj5CnL=TDw7VG7Tr+9c0aJWE%7nXqa zbM<#6`;i046!*XxE*WG?1%MEm;d1`qy3WcqHG)6{S0)2u{!V~H5rYEMhYb_?vwOkL zs`ru0ncWL+RxSoMgE3v}e_iv;65Knc>8GZJlTU3A2;p8A!%gj+Z?+JDFl(cd{TOon zze5-B8y!Td<9YKcM(Fc_(n#bxDb24!K*ELwXuIq={=r+$1 ziB%-mjXl+TyiTu8pZd4^ysO{>#vIf#Qy^G#Oz|g6OulcLpUI!Jy!V1uAG)Qg@Z^94 zXKi6q11r{AA}j7VvLG|Ot|BLs5O+Chll{cwbHuWa@e%Q$v-NTo>BlTxd7ORC;df=W zr}SN~4QuprI1_7Z8&ep|i&1w!-v@N%|@H+JHinQ(Hg*sxJ!M(n2p-1o=15}d`KmE47 zLwvbasK|2<>De-A|99pk$=SvzcG=#^tmsFV?p3Ri@w#H^!!%z>as%pfD^6)AgHf9C zQs!|91 z;Gm)RG|){oub^@K#UmDu;AGx1-e1jCRZSG*|Cal;aY{5=H1u$K{B7v~@f@YP)@If5 z-B;qwGef3tCli%wAHt58jz`NXxw5(~>xLsY+7t-o58n&$^=&+3S7WoyC3&enRB%zV zX+;vFCN+-WrXexxDh@tP&WS-*rC7g;b?g0tv954Js@~o+GVIqwKd@-gURw4&?$Dxc zJ!P<1=vLKmA?f~MWPMEAnDu(~cJt>LoA#i{D;=x1j%8JAk;tjw&KTtBx$Pd$_DS}4 z#&I2&YRd;3w+<9P;w-LRh6A*_&+rD=g1FtBYm5cZ#~?=zC)-?ar+*`;|9V(QFF5 zbJYV1=#JjF;ak-$gZ>3I%q}VM;-d%6o(@@ec~^&4WKvG-95CKl&YhST)Mb}uwf^ON zWWzdP;P`poo_x!;TX(kk4DU*9^Qm9I&CWtxm0`WIlR2XH#Z9IjvQ+owwf0?eP z3Y(jLGuD@7+(XF;uOm+UI$38+d6JY@b;G|{-=%6itv$!x6kDJ@(%iK+>eXmWFX?85 ze~;pu;-mO(Mb*_}(%jHmWoGQ5>{Wp3p`<1lve@nClb6zm@O68PZZKVRV#h6- zFTgmtUROjpfRl(zv;z+wE&bMlU8(Qvwb(q?@zVHoha$|cA){pjbUFWljk1^qNDusz z`oKHHLlx$(AldQ|=DXR+PO$~MdJ6DsUNzIU+OA2cCHCXO%t|olkZ0(!H~qOo4`o$u zfm5ABr72&jMz=_R+pexjaBh|uw4So(_Z^P>+M;N+x?mCCCp>Xui!-S}op!%Btw__& zPdFOaFk+`18I#_=Df4aVk&a1!lQ#g@Cuwl$SC4{gA_*j;((;P_GMWTs~SF?>b-NW0Ja(w^x|U9Wju zxf1k9OKB=gXkz|#`q*cd=B7Yg`w)M!#M1of{I}72<{+B73oDikF1%>^-=hYGkgxb} G+xH)D&l^bq diff --git a/htdocs/public/high/assets/images/companies/cisco.jpg b/htdocs/public/high/assets/images/companies/cisco.jpg deleted file mode 100644 index 42a2566f4fe58d69a479297a8f5ff5c41121270b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2621 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 HZ{7PJh_4(q diff --git a/htdocs/public/high/assets/images/companies/google.png b/htdocs/public/high/assets/images/companies/google.png deleted file mode 100644 index 1674f137e052a19ef3c059301fab888d717dec4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2652 zcmdT`X;@QN8jkIVRf<6eWq@L1R46KBArOcJWD6!GtYH&Dv)qsf$&Ja437~_DU=f9B zWl?a!1qDP=kx-He85d|pBC-TDfEyzOnE)NZrLxS86+1u1`QQ6J_nz~e=Y8MrJ?DHs zZcbQ8ki{a~MF<4Kg1RXn0v>-hy=AQzG`#Q?&W1F`@VRlrOF zA^;{Qb;ljR3xW6?#b?AqvGiaP8x*)OO&AxsKm@Z92rnPGh{;X{AQTHo;tR>>F_i|5 z;&aI87&khWF7gL>{7q?MATlk4!A?tNdvee|-Y73Q2^J6l5ECUAqzEM>IT`(4mjusE z%NR83Jp@W7qkl6MOAkZ&gJJ;X=7M!*W8JYRcbp5(l|UpC*Q4-Q92SGcV{mw99FgRT zCt4u8o3pt=n@*Yj6lc+)o#1ygtY5*Ax^IiCS4v9#>QV6~j9L3#(h{FXEJ+W9< z3Wb7q!+ZGqdr*AmxB(zrDgcDg9GCMu7yn7FsSyMsxN-m>=I;bJ6fr13z27j2|4A=_ zluzn?;Br3g1^Y=Z1~!8+UF&~c^V|~LJErN!riGJ_Z4U_HUKhhnZSA3~K_JXJr~$qV zx&B|JBSQVAuYww~OZOsH3iR}-D1H7rtLd&F!>yQuN)^q0&B}S1xWQ{0tXtEJYcpp4?Y7_wxQHA32bnLq2}U?DX=80k_RT$_uB?G&kBOdWD-iog936H7)DZvtZ#* z^~L#lwA6ygx7r{eOu^Z@WSv>v!K#iG7Uy4u9bTEfeX>YL>M*!9Hhk$G{MrE3B__Fg3;Y8NW<-9q}dOxypRc~NqvIhtLucRD-f;l;bPYGi`0MEW4zN0QQn`rL|B-pyc? zXTH$+B;|ici#k2AO<)lA&s2^UdHv1Dx+zpM`~8h842|)gT~z&x9qPn&fO@kwA;>zq zb|^S#3A0nNl)YjXq zKEC^Mym?m0?5z}%QteIL@xt+FMKxE}ux0&d)Fzukq5Q!+0lu+=XY6TiwYexS*M|wN z$U}3@9HjxBIhjAZW}IMF#3v-B+1ZK-P^FxV)fhHAozC$uXGF^$faA8u&+X%?!<0EM zo|Gw)8Fgv#M1qFQu&X-wBqcW%S(9r0GLF#y1!H~DlvKUFZ*0`JkA7hB;=Qz-yWEk* zy?V-UiI7m!bUyjsVPs=$$At9;^>*`T7@N+ZsLNezwoYW%YLUp9;OSm6qeQ?uhhb+|t`RxN&3A|Tb z(c$wmZp8VpjC&}#5e=lNU#1&uDUXx$Yp(m1=zCPnW!kgc(6~bFk=CAd(J#ki`^h(| z{Q4B%lpMwPDr&BjkmrZhE3*=IGB+Quj9KlKPPNe~c8|cu(|%MDtMjT48b`UIoE49= z+rnE4%f3^(G}%WVyM`RSWLp|U&CCVwmM1wpFHl(s9DgDf_bzsbpp>U9bQFvPhty;p ziU*YGH=XjxJ>j4n??cQ)b&n=u*Lb8)XR%kRJFa z^}bh#yDHpGLAK=~%y+X>oZ{74 zfivAB<*8q(#vi&_Z*J=(xzy)I&YCMAUtt>i!-@Uoqn%By;#%B zPdpmmG-jt9n~>hRA@gbLlTJu~l{gT4t0Ts6Tb1U?SE_)S4{+o z24Zy8VQq+OZqm88ZCe|;*!9M?OPdy0JkzWmKq8Ti`Gu;CWsV+yUZcqe23c;2hVkG> zuOICyAYRQET2bpWN-TF(Y-_1#9odL^zPtL+!O5f4=`79uWB96qu}<#|<$beRx_Pc^%tN&F7F8`B{_=w9e~%g%5^&jX H+rIw*LTMai diff --git a/htdocs/public/high/assets/images/companies/intel.png b/htdocs/public/high/assets/images/companies/intel.png deleted file mode 100644 index 91115e0f689962e8b3c2938ee2d602421b4c407b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2652 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 VRrS_65?DMic)I$ztaD0e0syk}B6a`( diff --git a/htdocs/public/high/assets/images/email/2.png b/htdocs/public/high/assets/images/email/2.png deleted file mode 100644 index f22a39762e616df1de88047fef1ea721006709a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21207 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 diff --git a/htdocs/public/high/assets/images/email/3.png b/htdocs/public/high/assets/images/email/3.png deleted file mode 100644 index 5393ed3222ab9a2175c54067b56b7dc9a72fbcd6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22695 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 diff --git a/htdocs/public/high/assets/images/file_icons/3ds.svg b/htdocs/public/high/assets/images/file_icons/3ds.svg deleted file mode 100644 index 9e01fb73..00000000 --- a/htdocs/public/high/assets/images/file_icons/3ds.svg +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/aac.svg b/htdocs/public/high/assets/images/file_icons/aac.svg deleted file mode 100644 index 61d50bb5..00000000 --- a/htdocs/public/high/assets/images/file_icons/aac.svg +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/ai.svg b/htdocs/public/high/assets/images/file_icons/ai.svg deleted file mode 100644 index 69fd1a31..00000000 --- a/htdocs/public/high/assets/images/file_icons/ai.svg +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/avi.svg b/htdocs/public/high/assets/images/file_icons/avi.svg deleted file mode 100644 index a4170689..00000000 --- a/htdocs/public/high/assets/images/file_icons/avi.svg +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/bmp.svg b/htdocs/public/high/assets/images/file_icons/bmp.svg deleted file mode 100644 index 1938e993..00000000 --- a/htdocs/public/high/assets/images/file_icons/bmp.svg +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/cad.svg b/htdocs/public/high/assets/images/file_icons/cad.svg deleted file mode 100644 index b6dfe718..00000000 --- a/htdocs/public/high/assets/images/file_icons/cad.svg +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/cdr.svg b/htdocs/public/high/assets/images/file_icons/cdr.svg deleted file mode 100644 index 0acfc924..00000000 --- a/htdocs/public/high/assets/images/file_icons/cdr.svg +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/css.svg b/htdocs/public/high/assets/images/file_icons/css.svg deleted file mode 100644 index 71ed21da..00000000 --- a/htdocs/public/high/assets/images/file_icons/css.svg +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/dat.svg b/htdocs/public/high/assets/images/file_icons/dat.svg deleted file mode 100644 index cbddf289..00000000 --- a/htdocs/public/high/assets/images/file_icons/dat.svg +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/dll.svg b/htdocs/public/high/assets/images/file_icons/dll.svg deleted file mode 100644 index 682cd4c6..00000000 --- a/htdocs/public/high/assets/images/file_icons/dll.svg +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/dmg.svg b/htdocs/public/high/assets/images/file_icons/dmg.svg deleted file mode 100644 index c11b9511..00000000 --- a/htdocs/public/high/assets/images/file_icons/dmg.svg +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/doc.svg b/htdocs/public/high/assets/images/file_icons/doc.svg deleted file mode 100644 index 1f678dfd..00000000 --- a/htdocs/public/high/assets/images/file_icons/doc.svg +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/eps.svg b/htdocs/public/high/assets/images/file_icons/eps.svg deleted file mode 100644 index a21ca63c..00000000 --- a/htdocs/public/high/assets/images/file_icons/eps.svg +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/fla.svg b/htdocs/public/high/assets/images/file_icons/fla.svg deleted file mode 100644 index 3fd6a481..00000000 --- a/htdocs/public/high/assets/images/file_icons/fla.svg +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/flv.svg b/htdocs/public/high/assets/images/file_icons/flv.svg deleted file mode 100644 index fa08af2e..00000000 --- a/htdocs/public/high/assets/images/file_icons/flv.svg +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/gif.svg b/htdocs/public/high/assets/images/file_icons/gif.svg deleted file mode 100644 index 7c47d75b..00000000 --- a/htdocs/public/high/assets/images/file_icons/gif.svg +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/html.svg b/htdocs/public/high/assets/images/file_icons/html.svg deleted file mode 100644 index bfd126d7..00000000 --- a/htdocs/public/high/assets/images/file_icons/html.svg +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/indd.svg b/htdocs/public/high/assets/images/file_icons/indd.svg deleted file mode 100644 index c01b77e0..00000000 --- a/htdocs/public/high/assets/images/file_icons/indd.svg +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/iso.svg b/htdocs/public/high/assets/images/file_icons/iso.svg deleted file mode 100644 index edbf06a0..00000000 --- a/htdocs/public/high/assets/images/file_icons/iso.svg +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/jpg.svg b/htdocs/public/high/assets/images/file_icons/jpg.svg deleted file mode 100644 index b0047d78..00000000 --- a/htdocs/public/high/assets/images/file_icons/jpg.svg +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/js.svg b/htdocs/public/high/assets/images/file_icons/js.svg deleted file mode 100644 index 64323f57..00000000 --- a/htdocs/public/high/assets/images/file_icons/js.svg +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/midi.svg b/htdocs/public/high/assets/images/file_icons/midi.svg deleted file mode 100644 index e14b9fa0..00000000 --- a/htdocs/public/high/assets/images/file_icons/midi.svg +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/mov.svg b/htdocs/public/high/assets/images/file_icons/mov.svg deleted file mode 100644 index dbba47ef..00000000 --- a/htdocs/public/high/assets/images/file_icons/mov.svg +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/mp3.svg b/htdocs/public/high/assets/images/file_icons/mp3.svg deleted file mode 100644 index ed8e31e6..00000000 --- a/htdocs/public/high/assets/images/file_icons/mp3.svg +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/mpg.svg b/htdocs/public/high/assets/images/file_icons/mpg.svg deleted file mode 100644 index 5da4e20a..00000000 --- a/htdocs/public/high/assets/images/file_icons/mpg.svg +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/pdf.svg b/htdocs/public/high/assets/images/file_icons/pdf.svg deleted file mode 100644 index 8c9430a4..00000000 --- a/htdocs/public/high/assets/images/file_icons/pdf.svg +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/php.svg b/htdocs/public/high/assets/images/file_icons/php.svg deleted file mode 100644 index f9dc468b..00000000 --- a/htdocs/public/high/assets/images/file_icons/php.svg +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/png.svg b/htdocs/public/high/assets/images/file_icons/png.svg deleted file mode 100644 index 5bc975d1..00000000 --- a/htdocs/public/high/assets/images/file_icons/png.svg +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/ppt.svg b/htdocs/public/high/assets/images/file_icons/ppt.svg deleted file mode 100644 index 51340109..00000000 --- a/htdocs/public/high/assets/images/file_icons/ppt.svg +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/ps.svg b/htdocs/public/high/assets/images/file_icons/ps.svg deleted file mode 100644 index ff7c1c2b..00000000 --- a/htdocs/public/high/assets/images/file_icons/ps.svg +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/psd.svg b/htdocs/public/high/assets/images/file_icons/psd.svg deleted file mode 100644 index a0716411..00000000 --- a/htdocs/public/high/assets/images/file_icons/psd.svg +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/raw.svg b/htdocs/public/high/assets/images/file_icons/raw.svg deleted file mode 100644 index 6a5e37a0..00000000 --- a/htdocs/public/high/assets/images/file_icons/raw.svg +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/sql.svg b/htdocs/public/high/assets/images/file_icons/sql.svg deleted file mode 100644 index 37bd1cf9..00000000 --- a/htdocs/public/high/assets/images/file_icons/sql.svg +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/svg.svg b/htdocs/public/high/assets/images/file_icons/svg.svg deleted file mode 100644 index 5a05dcfd..00000000 --- a/htdocs/public/high/assets/images/file_icons/svg.svg +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/tif.svg b/htdocs/public/high/assets/images/file_icons/tif.svg deleted file mode 100644 index 174e2763..00000000 --- a/htdocs/public/high/assets/images/file_icons/tif.svg +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/txt.svg b/htdocs/public/high/assets/images/file_icons/txt.svg deleted file mode 100644 index bbaf6939..00000000 --- a/htdocs/public/high/assets/images/file_icons/txt.svg +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/wmv.svg b/htdocs/public/high/assets/images/file_icons/wmv.svg deleted file mode 100644 index 5a03f483..00000000 --- a/htdocs/public/high/assets/images/file_icons/wmv.svg +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/xls.svg b/htdocs/public/high/assets/images/file_icons/xls.svg deleted file mode 100644 index 325f9742..00000000 --- a/htdocs/public/high/assets/images/file_icons/xls.svg +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/xml.svg b/htdocs/public/high/assets/images/file_icons/xml.svg deleted file mode 100644 index 12d4f2ef..00000000 --- a/htdocs/public/high/assets/images/file_icons/xml.svg +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/file_icons/zip.svg b/htdocs/public/high/assets/images/file_icons/zip.svg deleted file mode 100644 index 9aaaf6ba..00000000 --- a/htdocs/public/high/assets/images/file_icons/zip.svg +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/public/high/assets/images/logo.png b/htdocs/public/high/assets/images/logo.png deleted file mode 100644 index a33eedfff28a382bc6accce5ce09dcf2d25cc9ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2668 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 J>ll$4{{azSMS%bS diff --git a/htdocs/public/high/assets/images/logo_light.png b/htdocs/public/high/assets/images/logo_light.png deleted file mode 100644 index 2d4e9624e0b18bdbc545daecaa3407f4f9ab90c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2622 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 F{Vz`S;UWM4 diff --git a/htdocs/public/high/assets/images/small/img-2.jpg b/htdocs/public/high/assets/images/small/img-2.jpg deleted file mode 100644 index 86249f49882777d7bfdeb4af03789b5603e1df7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13616 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 G;r|5>hvG5- diff --git a/htdocs/public/high/assets/images/small/img-4.jpg b/htdocs/public/high/assets/images/small/img-4.jpg deleted file mode 100644 index 07503ef7721d12b9be0c4d99e71969bc4b188a1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13616 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 G{J#K%6X9wA diff --git a/htdocs/public/high/assets/images/small/img-5.jpg b/htdocs/public/high/assets/images/small/img-5.jpg deleted file mode 100644 index a54ed63a06bc858d217abccbf2c96ff9c52be76a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13616 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 G4E--xNa6ti diff --git a/htdocs/public/high/assets/images/small/img-6.jpg b/htdocs/public/high/assets/images/small/img-6.jpg deleted file mode 100644 index 80361477d1988ab9c89ee3aa10046d9b3b26a279..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13616 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 diff --git a/htdocs/public/high/assets/images/users/avatar-9.jpg b/htdocs/public/high/assets/images/users/avatar-9.jpg deleted file mode 100644 index 6adab937402ca19859be4b044a77e8a50470ccd0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1918 zcmex=+4R@c$vRW=2U#ft9{~ zUa?+cN`6wRUUGh}ennz|zM-ChK7);YML}Y6c4~=2Qfhi;o~_dR-TRdkGE;1o!cBb* zd<&dYGcrA@ic*8C{6dnevXd=Slx^|#0uTKVr7^KE~&-IMVSR9nfZANAQKal@=Hr>m4GgVcpt$x9Sh>2oSvne8xVf2G zm>U|pnp>C~n7TMQT9`T;S{Ru-8Nl?qE)c@Zx@PU&mL&^bQ=3)GQo1uk)2@aTnEM^uU$;`sa0s^dTtYE;##?H>c&d$ck z$;HLV$%6_QnVFecSy(yQ*f@E)Ik|cH`GA0*AFK#U@j!T}`ry3(2N(o77#bKFm>C5b zm;@P_1sVSzVaNyOaArnEMnv9c0J)2i11JWRK@w(Q1W5>hJ;KP$3YTL7n#7_g=}Oae3NxRwt+@$SzfEJxj(fx z>QwKOz8k&8Y0dR$tB;*CpVlqgb24&O>Fr3N+j{=9j!x|=eHJBFJZH1lqe6)%j8_unIlf#Y4tiu#`AnrwyCWuUGz4#J2}YYe&p4#(0Pfw z{ZysoqCb5;X4@`SVyLR0S{^ZD#v;WvF`uucOLqKnIj>geol#|Hv031nijDe=wlC)| z8=lzAwl?c)&axjV8`pcqov6FWEwuTVn6mNlJDUx)R!K+gns++8w|lqKb!TrUr$jFKO*7NcjA3p6DF7v2n($iVB#XcsWpq4g?4EjDjBVumt)Xtg5b-jZ(Uy}G~=zQZD+_$J2BO#$@ko6E?w)jR(fmfu3vxSB(q+pmMNL29IXsVJG46a z`oZ;kmLK^hpH^Cy{L9*V!{z?Vky~>!>Mq_23!Tk<-9Ga{bn&D*!xvTo@3*|!v_)UU z=UDEv&W^}_?SJ?4D~zA_g)Q8x^?mEh{1db7zxJH*);Ygwi~EuzAK#w%dT+wz)c9L( zF6`ZUH{7`A%ws|3lVKUz;W;;Rdqa*|yk4KWGW^8lIYn>wxX_Q` VCJuC=#c^o|8YMzxW9|Rn1OV9{Ot}C6 diff --git a/htdocs/public/high/assets/js/bootstrap.min.js b/htdocs/public/high/assets/js/bootstrap.min.js deleted file mode 100644 index 534d5334..00000000 --- a/htdocs/public/high/assets/js/bootstrap.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap v4.0.0 (https://getbootstrap.com) - * Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jquery"),require("popper.js")):"function"==typeof define&&define.amd?define(["exports","jquery","popper.js"],e):e(t.bootstrap={},t.jQuery,t.Popper)}(this,function(t,e,n){"use strict";function i(t,e){for(var n=0;n0?i:null}catch(t){return null}},reflow:function(t){return t.offsetHeight},triggerTransitionEnd:function(n){t(n).trigger(e.end)},supportsTransitionEnd:function(){return Boolean(e)},isElement:function(t){return(t[0]||t).nodeType},typeCheckConfig:function(t,e,n){for(var s in n)if(Object.prototype.hasOwnProperty.call(n,s)){var r=n[s],o=e[s],a=o&&i.isElement(o)?"element":(l=o,{}.toString.call(l).match(/\s([a-zA-Z]+)/)[1].toLowerCase());if(!new RegExp(r).test(a))throw new Error(t.toUpperCase()+': Option "'+s+'" provided type "'+a+'" but expected type "'+r+'".')}var l}};return e=("undefined"==typeof window||!window.QUnit)&&{end:"transitionend"},t.fn.emulateTransitionEnd=n,i.supportsTransitionEnd()&&(t.event.special[i.TRANSITION_END]={bindType:e.end,delegateType:e.end,handle:function(e){if(t(e.target).is(this))return e.handleObj.handler.apply(this,arguments)}}),i}(e),L=(a="alert",h="."+(l="bs.alert"),c=(o=e).fn[a],u={CLOSE:"close"+h,CLOSED:"closed"+h,CLICK_DATA_API:"click"+h+".data-api"},f="alert",d="fade",_="show",g=function(){function t(t){this._element=t}var e=t.prototype;return e.close=function(t){t=t||this._element;var e=this._getRootElement(t);this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},e.dispose=function(){o.removeData(this._element,l),this._element=null},e._getRootElement=function(t){var e=P.getSelectorFromElement(t),n=!1;return e&&(n=o(e)[0]),n||(n=o(t).closest("."+f)[0]),n},e._triggerCloseEvent=function(t){var e=o.Event(u.CLOSE);return o(t).trigger(e),e},e._removeElement=function(t){var e=this;o(t).removeClass(_),P.supportsTransitionEnd()&&o(t).hasClass(d)?o(t).one(P.TRANSITION_END,function(n){return e._destroyElement(t,n)}).emulateTransitionEnd(150):this._destroyElement(t)},e._destroyElement=function(t){o(t).detach().trigger(u.CLOSED).remove()},t._jQueryInterface=function(e){return this.each(function(){var n=o(this),i=n.data(l);i||(i=new t(this),n.data(l,i)),"close"===e&&i[e](this)})},t._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},s(t,null,[{key:"VERSION",get:function(){return"4.0.0"}}]),t}(),o(document).on(u.CLICK_DATA_API,'[data-dismiss="alert"]',g._handleDismiss(new g)),o.fn[a]=g._jQueryInterface,o.fn[a].Constructor=g,o.fn[a].noConflict=function(){return o.fn[a]=c,g._jQueryInterface},g),R=(m="button",E="."+(v="bs.button"),T=".data-api",y=(p=e).fn[m],C="active",I="btn",A="focus",b='[data-toggle^="button"]',D='[data-toggle="buttons"]',S="input",w=".active",N=".btn",O={CLICK_DATA_API:"click"+E+T,FOCUS_BLUR_DATA_API:"focus"+E+T+" blur"+E+T},k=function(){function t(t){this._element=t}var e=t.prototype;return e.toggle=function(){var t=!0,e=!0,n=p(this._element).closest(D)[0];if(n){var i=p(this._element).find(S)[0];if(i){if("radio"===i.type)if(i.checked&&p(this._element).hasClass(C))t=!1;else{var s=p(n).find(w)[0];s&&p(s).removeClass(C)}if(t){if(i.hasAttribute("disabled")||n.hasAttribute("disabled")||i.classList.contains("disabled")||n.classList.contains("disabled"))return;i.checked=!p(this._element).hasClass(C),p(i).trigger("change")}i.focus(),e=!1}}e&&this._element.setAttribute("aria-pressed",!p(this._element).hasClass(C)),t&&p(this._element).toggleClass(C)},e.dispose=function(){p.removeData(this._element,v),this._element=null},t._jQueryInterface=function(e){return this.each(function(){var n=p(this).data(v);n||(n=new t(this),p(this).data(v,n)),"toggle"===e&&n[e]()})},s(t,null,[{key:"VERSION",get:function(){return"4.0.0"}}]),t}(),p(document).on(O.CLICK_DATA_API,b,function(t){t.preventDefault();var e=t.target;p(e).hasClass(I)||(e=p(e).closest(N)),k._jQueryInterface.call(p(e),"toggle")}).on(O.FOCUS_BLUR_DATA_API,b,function(t){var e=p(t.target).closest(N)[0];p(e).toggleClass(A,/^focus(in)?$/.test(t.type))}),p.fn[m]=k._jQueryInterface,p.fn[m].Constructor=k,p.fn[m].noConflict=function(){return p.fn[m]=y,k._jQueryInterface},k),j=function(t){var e="carousel",n="bs.carousel",i="."+n,o=t.fn[e],a={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0},l={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean"},h="next",c="prev",u="left",f="right",d={SLIDE:"slide"+i,SLID:"slid"+i,KEYDOWN:"keydown"+i,MOUSEENTER:"mouseenter"+i,MOUSELEAVE:"mouseleave"+i,TOUCHEND:"touchend"+i,LOAD_DATA_API:"load"+i+".data-api",CLICK_DATA_API:"click"+i+".data-api"},_="carousel",g="active",p="slide",m="carousel-item-right",v="carousel-item-left",E="carousel-item-next",T="carousel-item-prev",y={ACTIVE:".active",ACTIVE_ITEM:".active.carousel-item",ITEM:".carousel-item",NEXT_PREV:".carousel-item-next, .carousel-item-prev",INDICATORS:".carousel-indicators",DATA_SLIDE:"[data-slide], [data-slide-to]",DATA_RIDE:'[data-ride="carousel"]'},C=function(){function o(e,n){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this._config=this._getConfig(n),this._element=t(e)[0],this._indicatorsElement=t(this._element).find(y.INDICATORS)[0],this._addEventListeners()}var C=o.prototype;return C.next=function(){this._isSliding||this._slide(h)},C.nextWhenVisible=function(){!document.hidden&&t(this._element).is(":visible")&&"hidden"!==t(this._element).css("visibility")&&this.next()},C.prev=function(){this._isSliding||this._slide(c)},C.pause=function(e){e||(this._isPaused=!0),t(this._element).find(y.NEXT_PREV)[0]&&P.supportsTransitionEnd()&&(P.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},C.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},C.to=function(e){var n=this;this._activeElement=t(this._element).find(y.ACTIVE_ITEM)[0];var i=this._getItemIndex(this._activeElement);if(!(e>this._items.length-1||e<0))if(this._isSliding)t(this._element).one(d.SLID,function(){return n.to(e)});else{if(i===e)return this.pause(),void this.cycle();var s=e>i?h:c;this._slide(s,this._items[e])}},C.dispose=function(){t(this._element).off(i),t.removeData(this._element,n),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},C._getConfig=function(t){return t=r({},a,t),P.typeCheckConfig(e,t,l),t},C._addEventListeners=function(){var e=this;this._config.keyboard&&t(this._element).on(d.KEYDOWN,function(t){return e._keydown(t)}),"hover"===this._config.pause&&(t(this._element).on(d.MOUSEENTER,function(t){return e.pause(t)}).on(d.MOUSELEAVE,function(t){return e.cycle(t)}),"ontouchstart"in document.documentElement&&t(this._element).on(d.TOUCHEND,function(){e.pause(),e.touchTimeout&&clearTimeout(e.touchTimeout),e.touchTimeout=setTimeout(function(t){return e.cycle(t)},500+e._config.interval)}))},C._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next()}},C._getItemIndex=function(e){return this._items=t.makeArray(t(e).parent().find(y.ITEM)),this._items.indexOf(e)},C._getItemByDirection=function(t,e){var n=t===h,i=t===c,s=this._getItemIndex(e),r=this._items.length-1;if((i&&0===s||n&&s===r)&&!this._config.wrap)return e;var o=(s+(t===c?-1:1))%this._items.length;return-1===o?this._items[this._items.length-1]:this._items[o]},C._triggerSlideEvent=function(e,n){var i=this._getItemIndex(e),s=this._getItemIndex(t(this._element).find(y.ACTIVE_ITEM)[0]),r=t.Event(d.SLIDE,{relatedTarget:e,direction:n,from:s,to:i});return t(this._element).trigger(r),r},C._setActiveIndicatorElement=function(e){if(this._indicatorsElement){t(this._indicatorsElement).find(y.ACTIVE).removeClass(g);var n=this._indicatorsElement.children[this._getItemIndex(e)];n&&t(n).addClass(g)}},C._slide=function(e,n){var i,s,r,o=this,a=t(this._element).find(y.ACTIVE_ITEM)[0],l=this._getItemIndex(a),c=n||a&&this._getItemByDirection(e,a),_=this._getItemIndex(c),C=Boolean(this._interval);if(e===h?(i=v,s=E,r=u):(i=m,s=T,r=f),c&&t(c).hasClass(g))this._isSliding=!1;else if(!this._triggerSlideEvent(c,r).isDefaultPrevented()&&a&&c){this._isSliding=!0,C&&this.pause(),this._setActiveIndicatorElement(c);var I=t.Event(d.SLID,{relatedTarget:c,direction:r,from:l,to:_});P.supportsTransitionEnd()&&t(this._element).hasClass(p)?(t(c).addClass(s),P.reflow(c),t(a).addClass(i),t(c).addClass(i),t(a).one(P.TRANSITION_END,function(){t(c).removeClass(i+" "+s).addClass(g),t(a).removeClass(g+" "+s+" "+i),o._isSliding=!1,setTimeout(function(){return t(o._element).trigger(I)},0)}).emulateTransitionEnd(600)):(t(a).removeClass(g),t(c).addClass(g),this._isSliding=!1,t(this._element).trigger(I)),C&&this.cycle()}},o._jQueryInterface=function(e){return this.each(function(){var i=t(this).data(n),s=r({},a,t(this).data());"object"==typeof e&&(s=r({},s,e));var l="string"==typeof e?e:s.slide;if(i||(i=new o(this,s),t(this).data(n,i)),"number"==typeof e)i.to(e);else if("string"==typeof l){if("undefined"==typeof i[l])throw new TypeError('No method named "'+l+'"');i[l]()}else s.interval&&(i.pause(),i.cycle())})},o._dataApiClickHandler=function(e){var i=P.getSelectorFromElement(this);if(i){var s=t(i)[0];if(s&&t(s).hasClass(_)){var a=r({},t(s).data(),t(this).data()),l=this.getAttribute("data-slide-to");l&&(a.interval=!1),o._jQueryInterface.call(t(s),a),l&&t(s).data(n).to(l),e.preventDefault()}}},s(o,null,[{key:"VERSION",get:function(){return"4.0.0"}},{key:"Default",get:function(){return a}}]),o}();return t(document).on(d.CLICK_DATA_API,y.DATA_SLIDE,C._dataApiClickHandler),t(window).on(d.LOAD_DATA_API,function(){t(y.DATA_RIDE).each(function(){var e=t(this);C._jQueryInterface.call(e,e.data())})}),t.fn[e]=C._jQueryInterface,t.fn[e].Constructor=C,t.fn[e].noConflict=function(){return t.fn[e]=o,C._jQueryInterface},C}(e),H=function(t){var e="collapse",n="bs.collapse",i="."+n,o=t.fn[e],a={toggle:!0,parent:""},l={toggle:"boolean",parent:"(string|element)"},h={SHOW:"show"+i,SHOWN:"shown"+i,HIDE:"hide"+i,HIDDEN:"hidden"+i,CLICK_DATA_API:"click"+i+".data-api"},c="show",u="collapse",f="collapsing",d="collapsed",_="width",g="height",p={ACTIVES:".show, .collapsing",DATA_TOGGLE:'[data-toggle="collapse"]'},m=function(){function i(e,n){this._isTransitioning=!1,this._element=e,this._config=this._getConfig(n),this._triggerArray=t.makeArray(t('[data-toggle="collapse"][href="#'+e.id+'"],[data-toggle="collapse"][data-target="#'+e.id+'"]'));for(var i=t(p.DATA_TOGGLE),s=0;s0&&(this._selector=o,this._triggerArray.push(r))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var o=i.prototype;return o.toggle=function(){t(this._element).hasClass(c)?this.hide():this.show()},o.show=function(){var e,s,r=this;if(!this._isTransitioning&&!t(this._element).hasClass(c)&&(this._parent&&0===(e=t.makeArray(t(this._parent).find(p.ACTIVES).filter('[data-parent="'+this._config.parent+'"]'))).length&&(e=null),!(e&&(s=t(e).not(this._selector).data(n))&&s._isTransitioning))){var o=t.Event(h.SHOW);if(t(this._element).trigger(o),!o.isDefaultPrevented()){e&&(i._jQueryInterface.call(t(e).not(this._selector),"hide"),s||t(e).data(n,null));var a=this._getDimension();t(this._element).removeClass(u).addClass(f),this._element.style[a]=0,this._triggerArray.length>0&&t(this._triggerArray).removeClass(d).attr("aria-expanded",!0),this.setTransitioning(!0);var l=function(){t(r._element).removeClass(f).addClass(u).addClass(c),r._element.style[a]="",r.setTransitioning(!1),t(r._element).trigger(h.SHOWN)};if(P.supportsTransitionEnd()){var _="scroll"+(a[0].toUpperCase()+a.slice(1));t(this._element).one(P.TRANSITION_END,l).emulateTransitionEnd(600),this._element.style[a]=this._element[_]+"px"}else l()}}},o.hide=function(){var e=this;if(!this._isTransitioning&&t(this._element).hasClass(c)){var n=t.Event(h.HIDE);if(t(this._element).trigger(n),!n.isDefaultPrevented()){var i=this._getDimension();if(this._element.style[i]=this._element.getBoundingClientRect()[i]+"px",P.reflow(this._element),t(this._element).addClass(f).removeClass(u).removeClass(c),this._triggerArray.length>0)for(var s=0;s0&&t(n).toggleClass(d,!i).attr("aria-expanded",i)}},i._getTargetFromElement=function(e){var n=P.getSelectorFromElement(e);return n?t(n)[0]:null},i._jQueryInterface=function(e){return this.each(function(){var s=t(this),o=s.data(n),l=r({},a,s.data(),"object"==typeof e&&e);if(!o&&l.toggle&&/show|hide/.test(e)&&(l.toggle=!1),o||(o=new i(this,l),s.data(n,o)),"string"==typeof e){if("undefined"==typeof o[e])throw new TypeError('No method named "'+e+'"');o[e]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.0.0"}},{key:"Default",get:function(){return a}}]),i}();return t(document).on(h.CLICK_DATA_API,p.DATA_TOGGLE,function(e){"A"===e.currentTarget.tagName&&e.preventDefault();var i=t(this),s=P.getSelectorFromElement(this);t(s).each(function(){var e=t(this),s=e.data(n)?"toggle":i.data();m._jQueryInterface.call(e,s)})}),t.fn[e]=m._jQueryInterface,t.fn[e].Constructor=m,t.fn[e].noConflict=function(){return t.fn[e]=o,m._jQueryInterface},m}(e),W=function(t){var e="dropdown",i="bs.dropdown",o="."+i,a=".data-api",l=t.fn[e],h=new RegExp("38|40|27"),c={HIDE:"hide"+o,HIDDEN:"hidden"+o,SHOW:"show"+o,SHOWN:"shown"+o,CLICK:"click"+o,CLICK_DATA_API:"click"+o+a,KEYDOWN_DATA_API:"keydown"+o+a,KEYUP_DATA_API:"keyup"+o+a},u="disabled",f="show",d="dropup",_="dropright",g="dropleft",p="dropdown-menu-right",m="dropdown-menu-left",v="position-static",E='[data-toggle="dropdown"]',T=".dropdown form",y=".dropdown-menu",C=".navbar-nav",I=".dropdown-menu .dropdown-item:not(.disabled)",A="top-start",b="top-end",D="bottom-start",S="bottom-end",w="right-start",N="left-start",O={offset:0,flip:!0,boundary:"scrollParent"},k={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)"},L=function(){function a(t,e){this._element=t,this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}var l=a.prototype;return l.toggle=function(){if(!this._element.disabled&&!t(this._element).hasClass(u)){var e=a._getParentFromElement(this._element),i=t(this._menu).hasClass(f);if(a._clearMenus(),!i){var s={relatedTarget:this._element},r=t.Event(c.SHOW,s);if(t(e).trigger(r),!r.isDefaultPrevented()){if(!this._inNavbar){if("undefined"==typeof n)throw new TypeError("Bootstrap dropdown require Popper.js (https://popper.js.org)");var o=this._element;t(e).hasClass(d)&&(t(this._menu).hasClass(m)||t(this._menu).hasClass(p))&&(o=e),"scrollParent"!==this._config.boundary&&t(e).addClass(v),this._popper=new n(o,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&0===t(e).closest(C).length&&t("body").children().on("mouseover",null,t.noop),this._element.focus(),this._element.setAttribute("aria-expanded",!0),t(this._menu).toggleClass(f),t(e).toggleClass(f).trigger(t.Event(c.SHOWN,s))}}}},l.dispose=function(){t.removeData(this._element,i),t(this._element).off(o),this._element=null,this._menu=null,null!==this._popper&&(this._popper.destroy(),this._popper=null)},l.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},l._addEventListeners=function(){var e=this;t(this._element).on(c.CLICK,function(t){t.preventDefault(),t.stopPropagation(),e.toggle()})},l._getConfig=function(n){return n=r({},this.constructor.Default,t(this._element).data(),n),P.typeCheckConfig(e,n,this.constructor.DefaultType),n},l._getMenuElement=function(){if(!this._menu){var e=a._getParentFromElement(this._element);this._menu=t(e).find(y)[0]}return this._menu},l._getPlacement=function(){var e=t(this._element).parent(),n=D;return e.hasClass(d)?(n=A,t(this._menu).hasClass(p)&&(n=b)):e.hasClass(_)?n=w:e.hasClass(g)?n=N:t(this._menu).hasClass(p)&&(n=S),n},l._detectNavbar=function(){return t(this._element).closest(".navbar").length>0},l._getPopperConfig=function(){var t=this,e={};return"function"==typeof this._config.offset?e.fn=function(e){return e.offsets=r({},e.offsets,t._config.offset(e.offsets)||{}),e}:e.offset=this._config.offset,{placement:this._getPlacement(),modifiers:{offset:e,flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}}},a._jQueryInterface=function(e){return this.each(function(){var n=t(this).data(i);if(n||(n=new a(this,"object"==typeof e?e:null),t(this).data(i,n)),"string"==typeof e){if("undefined"==typeof n[e])throw new TypeError('No method named "'+e+'"');n[e]()}})},a._clearMenus=function(e){if(!e||3!==e.which&&("keyup"!==e.type||9===e.which))for(var n=t.makeArray(t(E)),s=0;s0&&r--,40===e.which&&rdocument.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},p._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},p._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right

',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent"},f="show",d="out",_={HIDE:"hide"+o,HIDDEN:"hidden"+o,SHOW:"show"+o,SHOWN:"shown"+o,INSERTED:"inserted"+o,CLICK:"click"+o,FOCUSIN:"focusin"+o,FOCUSOUT:"focusout"+o,MOUSEENTER:"mouseenter"+o,MOUSELEAVE:"mouseleave"+o},g="fade",p="show",m=".tooltip-inner",v=".arrow",E="hover",T="focus",y="click",C="manual",I=function(){function a(t,e){if("undefined"==typeof n)throw new TypeError("Bootstrap tooltips require Popper.js (https://popper.js.org)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var I=a.prototype;return I.enable=function(){this._isEnabled=!0},I.disable=function(){this._isEnabled=!1},I.toggleEnabled=function(){this._isEnabled=!this._isEnabled},I.toggle=function(e){if(this._isEnabled)if(e){var n=this.constructor.DATA_KEY,i=t(e.currentTarget).data(n);i||(i=new this.constructor(e.currentTarget,this._getDelegateConfig()),t(e.currentTarget).data(n,i)),i._activeTrigger.click=!i._activeTrigger.click,i._isWithActiveTrigger()?i._enter(null,i):i._leave(null,i)}else{if(t(this.getTipElement()).hasClass(p))return void this._leave(null,this);this._enter(null,this)}},I.dispose=function(){clearTimeout(this._timeout),t.removeData(this.element,this.constructor.DATA_KEY),t(this.element).off(this.constructor.EVENT_KEY),t(this.element).closest(".modal").off("hide.bs.modal"),this.tip&&t(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,null!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},I.show=function(){var e=this;if("none"===t(this.element).css("display"))throw new Error("Please use show on visible elements");var i=t.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){t(this.element).trigger(i);var s=t.contains(this.element.ownerDocument.documentElement,this.element);if(i.isDefaultPrevented()||!s)return;var r=this.getTipElement(),o=P.getUID(this.constructor.NAME);r.setAttribute("id",o),this.element.setAttribute("aria-describedby",o),this.setContent(),this.config.animation&&t(r).addClass(g);var l="function"==typeof this.config.placement?this.config.placement.call(this,r,this.element):this.config.placement,h=this._getAttachment(l);this.addAttachmentClass(h);var c=!1===this.config.container?document.body:t(this.config.container);t(r).data(this.constructor.DATA_KEY,this),t.contains(this.element.ownerDocument.documentElement,this.tip)||t(r).appendTo(c),t(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new n(this.element,r,{placement:h,modifiers:{offset:{offset:this.config.offset},flip:{behavior:this.config.fallbackPlacement},arrow:{element:v},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){e._handlePopperPlacementChange(t)}}),t(r).addClass(p),"ontouchstart"in document.documentElement&&t("body").children().on("mouseover",null,t.noop);var u=function(){e.config.animation&&e._fixTransition();var n=e._hoverState;e._hoverState=null,t(e.element).trigger(e.constructor.Event.SHOWN),n===d&&e._leave(null,e)};P.supportsTransitionEnd()&&t(this.tip).hasClass(g)?t(this.tip).one(P.TRANSITION_END,u).emulateTransitionEnd(a._TRANSITION_DURATION):u()}},I.hide=function(e){var n=this,i=this.getTipElement(),s=t.Event(this.constructor.Event.HIDE),r=function(){n._hoverState!==f&&i.parentNode&&i.parentNode.removeChild(i),n._cleanTipClass(),n.element.removeAttribute("aria-describedby"),t(n.element).trigger(n.constructor.Event.HIDDEN),null!==n._popper&&n._popper.destroy(),e&&e()};t(this.element).trigger(s),s.isDefaultPrevented()||(t(i).removeClass(p),"ontouchstart"in document.documentElement&&t("body").children().off("mouseover",null,t.noop),this._activeTrigger[y]=!1,this._activeTrigger[T]=!1,this._activeTrigger[E]=!1,P.supportsTransitionEnd()&&t(this.tip).hasClass(g)?t(i).one(P.TRANSITION_END,r).emulateTransitionEnd(150):r(),this._hoverState="")},I.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},I.isWithContent=function(){return Boolean(this.getTitle())},I.addAttachmentClass=function(e){t(this.getTipElement()).addClass("bs-tooltip-"+e)},I.getTipElement=function(){return this.tip=this.tip||t(this.config.template)[0],this.tip},I.setContent=function(){var e=t(this.getTipElement());this.setElementContent(e.find(m),this.getTitle()),e.removeClass(g+" "+p)},I.setElementContent=function(e,n){var i=this.config.html;"object"==typeof n&&(n.nodeType||n.jquery)?i?t(n).parent().is(e)||e.empty().append(n):e.text(t(n).text()):e[i?"html":"text"](n)},I.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},I._getAttachment=function(t){return c[t.toUpperCase()]},I._setListeners=function(){var e=this;this.config.trigger.split(" ").forEach(function(n){if("click"===n)t(e.element).on(e.constructor.Event.CLICK,e.config.selector,function(t){return e.toggle(t)});else if(n!==C){var i=n===E?e.constructor.Event.MOUSEENTER:e.constructor.Event.FOCUSIN,s=n===E?e.constructor.Event.MOUSELEAVE:e.constructor.Event.FOCUSOUT;t(e.element).on(i,e.config.selector,function(t){return e._enter(t)}).on(s,e.config.selector,function(t){return e._leave(t)})}t(e.element).closest(".modal").on("hide.bs.modal",function(){return e.hide()})}),this.config.selector?this.config=r({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},I._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},I._enter=function(e,n){var i=this.constructor.DATA_KEY;(n=n||t(e.currentTarget).data(i))||(n=new this.constructor(e.currentTarget,this._getDelegateConfig()),t(e.currentTarget).data(i,n)),e&&(n._activeTrigger["focusin"===e.type?T:E]=!0),t(n.getTipElement()).hasClass(p)||n._hoverState===f?n._hoverState=f:(clearTimeout(n._timeout),n._hoverState=f,n.config.delay&&n.config.delay.show?n._timeout=setTimeout(function(){n._hoverState===f&&n.show()},n.config.delay.show):n.show())},I._leave=function(e,n){var i=this.constructor.DATA_KEY;(n=n||t(e.currentTarget).data(i))||(n=new this.constructor(e.currentTarget,this._getDelegateConfig()),t(e.currentTarget).data(i,n)),e&&(n._activeTrigger["focusout"===e.type?T:E]=!1),n._isWithActiveTrigger()||(clearTimeout(n._timeout),n._hoverState=d,n.config.delay&&n.config.delay.hide?n._timeout=setTimeout(function(){n._hoverState===d&&n.hide()},n.config.delay.hide):n.hide())},I._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},I._getConfig=function(n){return"number"==typeof(n=r({},this.constructor.Default,t(this.element).data(),n)).delay&&(n.delay={show:n.delay,hide:n.delay}),"number"==typeof n.title&&(n.title=n.title.toString()),"number"==typeof n.content&&(n.content=n.content.toString()),P.typeCheckConfig(e,n,this.constructor.DefaultType),n},I._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},I._cleanTipClass=function(){var e=t(this.getTipElement()),n=e.attr("class").match(l);null!==n&&n.length>0&&e.removeClass(n.join(""))},I._handlePopperPlacementChange=function(t){this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},I._fixTransition=function(){var e=this.getTipElement(),n=this.config.animation;null===e.getAttribute("x-placement")&&(t(e).removeClass(g),this.config.animation=!1,this.hide(),this.show(),this.config.animation=n)},a._jQueryInterface=function(e){return this.each(function(){var n=t(this).data(i),s="object"==typeof e&&e;if((n||!/dispose|hide/.test(e))&&(n||(n=new a(this,s),t(this).data(i,n)),"string"==typeof e)){if("undefined"==typeof n[e])throw new TypeError('No method named "'+e+'"');n[e]()}})},s(a,null,[{key:"VERSION",get:function(){return"4.0.0"}},{key:"Default",get:function(){return u}},{key:"NAME",get:function(){return e}},{key:"DATA_KEY",get:function(){return i}},{key:"Event",get:function(){return _}},{key:"EVENT_KEY",get:function(){return o}},{key:"DefaultType",get:function(){return h}}]),a}();return t.fn[e]=I._jQueryInterface,t.fn[e].Constructor=I,t.fn[e].noConflict=function(){return t.fn[e]=a,I._jQueryInterface},I}(e),x=function(t){var e="popover",n="bs.popover",i="."+n,o=t.fn[e],a=new RegExp("(^|\\s)bs-popover\\S+","g"),l=r({},U.Default,{placement:"right",trigger:"click",content:"",template:''}),h=r({},U.DefaultType,{content:"(string|element|function)"}),c="fade",u="show",f=".popover-header",d=".popover-body",_={HIDE:"hide"+i,HIDDEN:"hidden"+i,SHOW:"show"+i,SHOWN:"shown"+i,INSERTED:"inserted"+i,CLICK:"click"+i,FOCUSIN:"focusin"+i,FOCUSOUT:"focusout"+i,MOUSEENTER:"mouseenter"+i,MOUSELEAVE:"mouseleave"+i},g=function(r){var o,g;function p(){return r.apply(this,arguments)||this}g=r,(o=p).prototype=Object.create(g.prototype),o.prototype.constructor=o,o.__proto__=g;var m=p.prototype;return m.isWithContent=function(){return this.getTitle()||this._getContent()},m.addAttachmentClass=function(e){t(this.getTipElement()).addClass("bs-popover-"+e)},m.getTipElement=function(){return this.tip=this.tip||t(this.config.template)[0],this.tip},m.setContent=function(){var e=t(this.getTipElement());this.setElementContent(e.find(f),this.getTitle());var n=this._getContent();"function"==typeof n&&(n=n.call(this.element)),this.setElementContent(e.find(d),n),e.removeClass(c+" "+u)},m._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},m._cleanTipClass=function(){var e=t(this.getTipElement()),n=e.attr("class").match(a);null!==n&&n.length>0&&e.removeClass(n.join(""))},p._jQueryInterface=function(e){return this.each(function(){var i=t(this).data(n),s="object"==typeof e?e:null;if((i||!/destroy|hide/.test(e))&&(i||(i=new p(this,s),t(this).data(n,i)),"string"==typeof e)){if("undefined"==typeof i[e])throw new TypeError('No method named "'+e+'"');i[e]()}})},s(p,null,[{key:"VERSION",get:function(){return"4.0.0"}},{key:"Default",get:function(){return l}},{key:"NAME",get:function(){return e}},{key:"DATA_KEY",get:function(){return n}},{key:"Event",get:function(){return _}},{key:"EVENT_KEY",get:function(){return i}},{key:"DefaultType",get:function(){return h}}]),p}(U);return t.fn[e]=g._jQueryInterface,t.fn[e].Constructor=g,t.fn[e].noConflict=function(){return t.fn[e]=o,g._jQueryInterface},g}(e),K=function(t){var e="scrollspy",n="bs.scrollspy",i="."+n,o=t.fn[e],a={offset:10,method:"auto",target:""},l={offset:"number",method:"string",target:"(string|element)"},h={ACTIVATE:"activate"+i,SCROLL:"scroll"+i,LOAD_DATA_API:"load"+i+".data-api"},c="dropdown-item",u="active",f={DATA_SPY:'[data-spy="scroll"]',ACTIVE:".active",NAV_LIST_GROUP:".nav, .list-group",NAV_LINKS:".nav-link",NAV_ITEMS:".nav-item",LIST_ITEMS:".list-group-item",DROPDOWN:".dropdown",DROPDOWN_ITEMS:".dropdown-item",DROPDOWN_TOGGLE:".dropdown-toggle"},d="offset",_="position",g=function(){function o(e,n){var i=this;this._element=e,this._scrollElement="BODY"===e.tagName?window:e,this._config=this._getConfig(n),this._selector=this._config.target+" "+f.NAV_LINKS+","+this._config.target+" "+f.LIST_ITEMS+","+this._config.target+" "+f.DROPDOWN_ITEMS,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,t(this._scrollElement).on(h.SCROLL,function(t){return i._process(t)}),this.refresh(),this._process()}var g=o.prototype;return g.refresh=function(){var e=this,n=this._scrollElement===this._scrollElement.window?d:_,i="auto"===this._config.method?n:this._config.method,s=i===_?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),t.makeArray(t(this._selector)).map(function(e){var n,r=P.getSelectorFromElement(e);if(r&&(n=t(r)[0]),n){var o=n.getBoundingClientRect();if(o.width||o.height)return[t(n)[i]().top+s,r]}return null}).filter(function(t){return t}).sort(function(t,e){return t[0]-e[0]}).forEach(function(t){e._offsets.push(t[0]),e._targets.push(t[1])})},g.dispose=function(){t.removeData(this._element,n),t(this._scrollElement).off(i),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},g._getConfig=function(n){if("string"!=typeof(n=r({},a,n)).target){var i=t(n.target).attr("id");i||(i=P.getUID(e),t(n.target).attr("id",i)),n.target="#"+i}return P.typeCheckConfig(e,n,l),n},g._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},g._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},g._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},g._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t0)return this._activeTarget=null,void this._clear();for(var s=this._offsets.length;s--;){this._activeTarget!==this._targets[s]&&t>=this._offsets[s]&&("undefined"==typeof this._offsets[s+1]||t=4)throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}(e),t.Util=P,t.Alert=L,t.Button=R,t.Carousel=j,t.Collapse=H,t.Dropdown=W,t.Modal=M,t.Popover=x,t.Scrollspy=K,t.Tab=V,t.Tooltip=U,Object.defineProperty(t,"__esModule",{value:!0})}); -//# sourceMappingURL=bootstrap.min.js.map \ No newline at end of file diff --git a/htdocs/public/high/assets/js/jquery.app.js b/htdocs/public/high/assets/js/jquery.app.js deleted file mode 100644 index c7b4bffe..00000000 --- a/htdocs/public/high/assets/js/jquery.app.js +++ /dev/null @@ -1,57 +0,0 @@ -/** - * Theme: Highdmin - Bootstrap 4 Web App kit - * Author: Coderthemes - * Module/App: Main Js - */ - - -(function ($) { - - 'use strict'; - - function initNavbar() { - - $('.navbar-toggle').on('click', function (event) { - $(this).toggleClass('open'); - $('#navigation').slideToggle(400); - }); - - $('.navigation-menu>li').slice(-2).addClass('last-elements'); - - $('.navigation-menu li.has-submenu a[href="#"]').on('click', function (e) { - if ($(window).width() < 992) { - e.preventDefault(); - $(this).parent('li').toggleClass('open').find('.submenu:first').toggleClass('open'); - } - }); - } - function initScrollbar() { - $('.slimscroll').slimscroll({ - height: 'auto', - position: 'right', - size: "8px", - color: '#9ea5ab' - }); - } - // === following js will activate the menu in left side bar based on url ==== - function initMenuItem() { - $(".navigation-menu a").each(function () { - if (this.href == window.location.href) { - $(this).parent().addClass("active"); // add active to li of the current link - $(this).parent().parent().parent().addClass("active"); // add active class to an anchor - $(this).parent().parent().parent().parent().parent().addClass("active"); // add active class to an anchor - } - }); - } - function init() { - initNavbar(); - initScrollbar(); - initMenuItem(); - } - - init(); - -})(jQuery); - - - diff --git a/htdocs/public/high/assets/js/jquery.core.js b/htdocs/public/high/assets/js/jquery.core.js deleted file mode 100644 index 86157b86..00000000 --- a/htdocs/public/high/assets/js/jquery.core.js +++ /dev/null @@ -1,102 +0,0 @@ -/** -* Theme: Highdmin - Bootstrap 4 Web App kit -* Author: Coderthemes -* Module/App: Core js -*/ - - -/** - * Components - */ -!function($) { - "use strict"; - - var Components = function() {}; - - //initializing tooltip - Components.prototype.initTooltipPlugin = function() { - $.fn.tooltip && $('[data-toggle="tooltip"]').tooltip() - }, - - //initializing popover - Components.prototype.initPopoverPlugin = function() { - $.fn.popover && $('[data-toggle="popover"]').popover() - }, - - //initializing custom modal - Components.prototype.initCustomModalPlugin = function() { - $('[data-plugin="custommodal"]').on('click', function(e) { - Custombox.open({ - target: $(this).attr("href"), - effect: $(this).attr("data-animation"), - overlaySpeed: $(this).attr("data-overlaySpeed"), - overlayColor: $(this).attr("data-overlayColor") - }); - e.preventDefault(); - }); - }, - - //initializing Slimscroll - Components.prototype.initSlimScrollPlugin = function() { - //You can change the color of scroll bar here - $.fn.slimScroll && $(".slimscroll-alt").slimScroll({ position: 'right',size: "5px", color: '#98a6ad',wheelStep: 10}); - }, - - //range slider - Components.prototype.initRangeSlider = function() { - $.fn.slider && $('[data-plugin="range-slider"]').slider({}); - }, - - /* ------------- - * Form related controls - */ - //switch - Components.prototype.initSwitchery = function() { - $('[data-plugin="switchery"]').each(function (idx, obj) { - new Switchery($(this)[0], $(this).data()); - }); - }, - - Components.prototype.initKnob = function() { - $('[data-plugin="knob"]').each(function(idx, obj) { - $(this).knob(); - }); - }, - - Components.prototype.initCounterUp = function() { - var delay = $(this).attr('data-delay')?$(this).attr('data-delay'):100; //default is 100 - var time = $(this).attr('data-time')?$(this).attr('data-time'):1200; //default is 1200 - $('[data-plugin="counterup"]').each(function(idx, obj) { - $(this).counterUp({ - delay: 100, - time: 1200 - }); - }); - }, - - - //initilizing - Components.prototype.init = function() { - var $this = this; - this.initTooltipPlugin(), - this.initPopoverPlugin(), - this.initSlimScrollPlugin(), - this.initCustomModalPlugin(), - this.initRangeSlider(), - this.initSwitchery(), - this.initKnob(), - this.initCounterUp() - }, - - $.Components = new Components, $.Components.Constructor = Components - -}(window.jQuery), - //initializing main application module -function($) { - "use strict"; - $.Components.init(); -}(window.jQuery); - - - - diff --git a/htdocs/public/high/assets/js/jquery.min.js b/htdocs/public/high/assets/js/jquery.min.js deleted file mode 100644 index 4c5be4c0..00000000 --- a/htdocs/public/high/assets/js/jquery.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! jQuery v3.1.1 | (c) jQuery Foundation | jquery.org/license */ -!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.1.1",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext,B=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,C=/^.[^:#\[\.,]*$/;function D(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):C.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(D(this,a||[],!1))},not:function(a){return this.pushStack(D(this,a||[],!0))},is:function(a){return!!D(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var E,F=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,G=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||E,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:F.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),B.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};G.prototype=r.fn,E=r(d);var H=/^(?:parents|prev(?:Until|All))/,I={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function J(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return J(a,"nextSibling")},prev:function(a){return J(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return a.contentDocument||r.merge([],a.childNodes)}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(I[a]||r.uniqueSort(e),H.test(a)&&e.reverse()),this.pushStack(e)}});var K=/[^\x20\t\r\n\f]+/g;function L(a){var b={};return r.each(a.match(K)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?L(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function M(a){return a}function N(a){throw a}function O(a,b,c){var d;try{a&&r.isFunction(d=a.promise)?d.call(a).done(b).fail(c):a&&r.isFunction(d=a.then)?d.call(a,b,c):b.call(void 0,a)}catch(a){c.call(void 0,a)}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b=f&&(d!==N&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:M,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:M)),c[2][3].add(g(0,a,r.isFunction(d)?d:N))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(O(a,g.done(h(c)).resolve,g.reject),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)O(e[c],h(c),g.reject);return g.promise()}});var P=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&P.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var Q=r.Deferred();r.fn.ready=function(a){return Q.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,holdReady:function(a){a?r.readyWait++:r.ready(!0)},ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||Q.resolveWith(d,[r]))}}),r.ready.then=Q.then;function R(){d.removeEventListener("DOMContentLoaded",R), -a.removeEventListener("load",R),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",R),a.addEventListener("load",R));var S=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)S(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h1,null,!0)},removeData:function(a){return this.each(function(){W.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=V.get(a,b),c&&(!d||r.isArray(c)?d=V.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return V.get(a,c)||V.access(a,c,{empty:r.Callbacks("once memory").add(function(){V.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length\x20\t\r\n\f]+)/i,ka=/^$|\/(?:java|ecma)script/i,la={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};la.optgroup=la.option,la.tbody=la.tfoot=la.colgroup=la.caption=la.thead,la.th=la.td;function ma(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&r.nodeName(a,b)?r.merge([a],c):c}function na(a,b){for(var c=0,d=a.length;c-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=ma(l.appendChild(f),"script"),j&&na(g),c){k=0;while(f=g[k++])ka.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var qa=d.documentElement,ra=/^key/,sa=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ta=/^([^.]*)(?:\.(.+)|)/;function ua(){return!0}function va(){return!1}function wa(){try{return d.activeElement}catch(a){}}function xa(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)xa(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=va;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(qa,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(K)||[""],j=b.length;while(j--)h=ta.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.hasData(a)&&V.get(a);if(q&&(i=q.events)){b=(b||"").match(K)||[""],j=b.length;while(j--)if(h=ta.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&V.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(V.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i\x20\t\r\n\f]*)[^>]*)\/>/gi,za=/\s*$/g;function Da(a,b){return r.nodeName(a,"table")&&r.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a:a}function Ea(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Fa(a){var b=Ba.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ga(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(V.hasData(a)&&(f=V.access(a),g=V.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c1&&"string"==typeof q&&!o.checkClone&&Aa.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ia(f,b,c,d)});if(m&&(e=pa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(ma(e,"script"),Ea),i=h.length;l")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=ma(h),f=ma(a),d=0,e=f.length;d0&&na(g,!i&&ma(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(T(c)){if(b=c[V.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[V.expando]=void 0}c[W.expando]&&(c[W.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ja(this,a,!0)},remove:function(a){return Ja(this,a)},text:function(a){return S(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ia(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Da(this,a);b.appendChild(a)}})},prepend:function(){return Ia(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Da(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ia(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ia(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(ma(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return S(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!za.test(a)&&!la[(ja.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c1)}});function Ya(a,b,c,d,e){return new Ya.prototype.init(a,b,c,d,e)}r.Tween=Ya,Ya.prototype={constructor:Ya,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=Ya.propHooks[this.prop];return a&&a.get?a.get(this):Ya.propHooks._default.get(this)},run:function(a){var b,c=Ya.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Ya.propHooks._default.set(this),this}},Ya.prototype.init.prototype=Ya.prototype,Ya.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},Ya.propHooks.scrollTop=Ya.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=Ya.prototype.init,r.fx.step={};var Za,$a,_a=/^(?:toggle|show|hide)$/,ab=/queueHooks$/;function bb(){$a&&(a.requestAnimationFrame(bb),r.fx.tick())}function cb(){return a.setTimeout(function(){Za=void 0}),Za=r.now()}function db(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=ba[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function eb(a,b,c){for(var d,e=(hb.tweeners[b]||[]).concat(hb.tweeners["*"]),f=0,g=e.length;f1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?ib:void 0)), -void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&r.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(K);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),ib={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=jb[b]||r.find.attr;jb[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=jb[g],jb[g]=e,e=null!=c(a,b,d)?g:null,jb[g]=f),e}});var kb=/^(?:input|select|textarea|button)$/i,lb=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return S(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):kb.test(a.nodeName)||lb.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function mb(a){var b=a.match(K)||[];return b.join(" ")}function nb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,nb(this)))});if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=nb(c),d=1===c.nodeType&&" "+mb(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=mb(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,nb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=nb(c),d=1===c.nodeType&&" "+mb(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=mb(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,nb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(K)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=nb(this),b&&V.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":V.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+mb(nb(c))+" ").indexOf(b)>-1)return!0;return!1}});var ob=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":r.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(ob,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:mb(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(r.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var pb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!pb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,pb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(V.get(h,"events")||{})[b.type]&&V.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&T(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!T(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=V.access(d,b);e||d.addEventListener(a,c,!0),V.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=V.access(d,b)-1;e?V.access(d,b,e):(d.removeEventListener(a,c,!0),V.remove(d,b))}}});var qb=a.location,rb=r.now(),sb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var tb=/\[\]$/,ub=/\r?\n/g,vb=/^(?:submit|button|image|reset|file)$/i,wb=/^(?:input|select|textarea|keygen)/i;function xb(a,b,c,d){var e;if(r.isArray(b))r.each(b,function(b,e){c||tb.test(a)?d(a,e):xb(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)xb(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(r.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)xb(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&wb.test(this.nodeName)&&!vb.test(a)&&(this.checked||!ia.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:r.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(ub,"\r\n")}}):{name:b.name,value:c.replace(ub,"\r\n")}}).get()}});var yb=/%20/g,zb=/#.*$/,Ab=/([?&])_=[^&]*/,Bb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Cb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Db=/^(?:GET|HEAD)$/,Eb=/^\/\//,Fb={},Gb={},Hb="*/".concat("*"),Ib=d.createElement("a");Ib.href=qb.href;function Jb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(K)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Kb(a,b,c,d){var e={},f=a===Gb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Lb(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Mb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Nb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:qb.href,type:"GET",isLocal:Cb.test(qb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Hb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Lb(Lb(a,r.ajaxSettings),b):Lb(r.ajaxSettings,a)},ajaxPrefilter:Jb(Fb),ajaxTransport:Jb(Gb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Bb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||qb.href)+"").replace(Eb,qb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(K)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Ib.protocol+"//"+Ib.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Kb(Fb,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Db.test(o.type),f=o.url.replace(zb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(yb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(sb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Ab,"$1"),n=(sb.test(f)?"&":"?")+"_="+rb++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Hb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Kb(Gb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Mb(o,y,d)),v=Nb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Ob={0:200,1223:204},Pb=r.ajaxSettings.xhr();o.cors=!!Pb&&"withCredentials"in Pb,o.ajax=Pb=!!Pb,r.ajaxTransport(function(b){var c,d;if(o.cors||Pb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Ob[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r(" - - - - - - - - - -
- - - diff --git a/htdocs/public/high/plugins/fullcalendar/examples/daygrid-views.html b/htdocs/public/high/plugins/fullcalendar/examples/daygrid-views.html deleted file mode 100644 index 75f2cb11..00000000 --- a/htdocs/public/high/plugins/fullcalendar/examples/daygrid-views.html +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - - - - - - - - - -
- - - diff --git a/htdocs/public/high/plugins/fullcalendar/examples/external-dragging-2cals.html b/htdocs/public/high/plugins/fullcalendar/examples/external-dragging-2cals.html deleted file mode 100644 index 624c8ca1..00000000 --- a/htdocs/public/high/plugins/fullcalendar/examples/external-dragging-2cals.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - - - - - - -
-
- - - diff --git a/htdocs/public/high/plugins/fullcalendar/examples/external-dragging-builtin.html b/htdocs/public/high/plugins/fullcalendar/examples/external-dragging-builtin.html deleted file mode 100644 index f9471b0e..00000000 --- a/htdocs/public/high/plugins/fullcalendar/examples/external-dragging-builtin.html +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - - - - - - - - - - - - -
- -
-

Draggable Events

- -
-
My Event 1
-
My Event 2
-
My Event 3
-
My Event 4
-
My Event 5
-
- -

- - -

-
- -
- -
- -
- - diff --git a/htdocs/public/high/plugins/fullcalendar/examples/full-height.html b/htdocs/public/high/plugins/fullcalendar/examples/full-height.html deleted file mode 100644 index b05a2121..00000000 --- a/htdocs/public/high/plugins/fullcalendar/examples/full-height.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - - - - - - - - - - - - -
-
-
- - - diff --git a/htdocs/public/high/plugins/fullcalendar/examples/google-calendar.html b/htdocs/public/high/plugins/fullcalendar/examples/google-calendar.html deleted file mode 100644 index 96194ac6..00000000 --- a/htdocs/public/high/plugins/fullcalendar/examples/google-calendar.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - - - - -
loading...
- -
- - - diff --git a/htdocs/public/high/plugins/fullcalendar/examples/js/theme-chooser.js b/htdocs/public/high/plugins/fullcalendar/examples/js/theme-chooser.js deleted file mode 100644 index 92a7c475..00000000 --- a/htdocs/public/high/plugins/fullcalendar/examples/js/theme-chooser.js +++ /dev/null @@ -1,141 +0,0 @@ - -function initThemeChooser(settings) { - var isInitialized = false; - var currentThemeSystem; // don't set this directly. use setThemeSystem - var currentStylesheetEl; - var loadingEl = document.getElementById('loading'); - var systemSelectEl = document.querySelector('#theme-system-selector select'); - var themeSelectWrapEls = Array.prototype.slice.call( // convert to real array - document.querySelectorAll('.selector[data-theme-system]') - ); - - systemSelectEl.addEventListener('change', function() { - setThemeSystem(this.value); - }); - - setThemeSystem(systemSelectEl.value); - - themeSelectWrapEls.forEach(function(themeSelectWrapEl) { - var themeSelectEl = themeSelectWrapEl.querySelector('select'); - - themeSelectWrapEl.addEventListener('change', function() { - setTheme( - currentThemeSystem, - themeSelectEl.options[themeSelectEl.selectedIndex].value - ); - }); - }); - - - function setThemeSystem(themeSystem) { - var selectedTheme; - - currentThemeSystem = themeSystem; - - themeSelectWrapEls.forEach(function(themeSelectWrapEl) { - var themeSelectEl = themeSelectWrapEl.querySelector('select'); - - if (themeSelectWrapEl.getAttribute('data-theme-system') === themeSystem) { - selectedTheme = themeSelectEl.options[themeSelectEl.selectedIndex].value; - themeSelectWrapEl.style.display = 'inline-block'; - } else { - themeSelectWrapEl.style.display = 'none'; - } - }); - - setTheme(themeSystem, selectedTheme); - } - - - function setTheme(themeSystem, themeName) { - var stylesheetUrl = generateStylesheetUrl(themeSystem, themeName); - var stylesheetEl; - - function done() { - if (!isInitialized) { - isInitialized = true; - settings.init(themeSystem); - } - else { - settings.change(themeSystem); - } - - showCredits(themeSystem, themeName); - } - - if (stylesheetUrl) { - stylesheetEl = document.createElement('link'); - stylesheetEl.setAttribute('rel', 'stylesheet'); - stylesheetEl.setAttribute('href', stylesheetUrl); - document.querySelector('head').appendChild(stylesheetEl); - - loadingEl.style.display = 'inline'; - - whenStylesheetLoaded(stylesheetEl, function() { - if (currentStylesheetEl) { - currentStylesheetEl.parentNode.removeChild(currentStylesheetEl); - } - currentStylesheetEl = stylesheetEl; - loadingEl.style.display = 'none'; - done(); - }); - } else { - if (currentStylesheetEl) { - currentStylesheetEl.parentNode.removeChild(currentStylesheetEl); - currentStylesheetEl = null - } - done(); - } - } - - - function generateStylesheetUrl(themeSystem, themeName) { - if (themeSystem === 'bootstrap') { - if (themeName) { - return 'https://bootswatch.com/4/' + themeName + '/bootstrap.min.css'; - } - else { // the default bootstrap theme - return 'https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css'; - } - } - } - - - function showCredits(themeSystem, themeName) { - var creditId; - - if (themeSystem.match('bootstrap')) { - if (themeName) { - creditId = 'bootstrap-custom'; - } - else { - creditId = 'bootstrap-standard'; - } - } - - Array.prototype.slice.call( // convert to real array - document.querySelectorAll('.credits') - ).forEach(function(creditEl) { - if (creditEl.getAttribute('data-credit-id') === creditId) { - creditEl.style.display = 'block'; - } else { - creditEl.style.display = 'none'; - } - }) - } - - - function whenStylesheetLoaded(linkNode, callback) { - var isReady = false; - - function ready() { - if (!isReady) { // avoid double-call - isReady = true; - callback(); - } - } - - linkNode.onload = ready; // does not work cross-browser - setTimeout(ready, 2000); // max wait. also handles browsers that don't support onload - } -} diff --git a/htdocs/public/high/plugins/fullcalendar/examples/json.html b/htdocs/public/high/plugins/fullcalendar/examples/json.html deleted file mode 100644 index cf2038fd..00000000 --- a/htdocs/public/high/plugins/fullcalendar/examples/json.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - - - - - - - - - - - - -
- php/get-events.php must be running. -
- -
loading...
- -
- - - diff --git a/htdocs/public/high/plugins/fullcalendar/examples/json/events.json b/htdocs/public/high/plugins/fullcalendar/examples/json/events.json deleted file mode 100644 index 3d4c458c..00000000 --- a/htdocs/public/high/plugins/fullcalendar/examples/json/events.json +++ /dev/null @@ -1,56 +0,0 @@ -[ - { - "title": "All Day Event", - "start": "2019-08-01" - }, - { - "title": "Long Event", - "start": "2019-08-07", - "end": "2019-08-10" - }, - { - "id": "999", - "title": "Repeating Event", - "start": "2019-08-09T16:00:00-05:00" - }, - { - "id": "999", - "title": "Repeating Event", - "start": "2019-08-16T16:00:00-05:00" - }, - { - "title": "Conference", - "start": "2019-08-11", - "end": "2019-08-13" - }, - { - "title": "Meeting", - "start": "2019-08-12T10:30:00-05:00", - "end": "2019-08-12T12:30:00-05:00" - }, - { - "title": "Lunch", - "start": "2019-08-12T12:00:00-05:00" - }, - { - "title": "Meeting", - "start": "2019-08-12T14:30:00-05:00" - }, - { - "title": "Happy Hour", - "start": "2019-08-12T17:30:00-05:00" - }, - { - "title": "Dinner", - "start": "2019-08-12T20:00:00" - }, - { - "title": "Birthday Party", - "start": "2019-08-13T07:00:00-05:00" - }, - { - "title": "Click for Google", - "url": "http://google.com/", - "start": "2019-08-28" - } -] diff --git a/htdocs/public/high/plugins/fullcalendar/examples/list-views.html b/htdocs/public/high/plugins/fullcalendar/examples/list-views.html deleted file mode 100644 index 79c48274..00000000 --- a/htdocs/public/high/plugins/fullcalendar/examples/list-views.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - - - - - - - - -
- - - diff --git a/htdocs/public/high/plugins/fullcalendar/examples/locales.html b/htdocs/public/high/plugins/fullcalendar/examples/locales.html deleted file mode 100644 index bac02839..00000000 --- a/htdocs/public/high/plugins/fullcalendar/examples/locales.html +++ /dev/null @@ -1,152 +0,0 @@ - - - - - - - - - - - - - - - - - - - -
- - Locales: - - -
- -
- - - diff --git a/htdocs/public/high/plugins/fullcalendar/examples/month-view.html b/htdocs/public/high/plugins/fullcalendar/examples/month-view.html deleted file mode 100644 index 477bc0a2..00000000 --- a/htdocs/public/high/plugins/fullcalendar/examples/month-view.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - - - - - - - - -
- - - diff --git a/htdocs/public/high/plugins/fullcalendar/examples/php/get-events.php b/htdocs/public/high/plugins/fullcalendar/examples/php/get-events.php deleted file mode 100644 index e4d76543..00000000 --- a/htdocs/public/high/plugins/fullcalendar/examples/php/get-events.php +++ /dev/null @@ -1,50 +0,0 @@ -isWithinDayRange($range_start, $range_end)) { - $output_arrays[] = $event->toArray(); - } -} - -// Send JSON to the client. -echo json_encode($output_arrays); diff --git a/htdocs/public/high/plugins/fullcalendar/examples/php/get-time-zones.php b/htdocs/public/high/plugins/fullcalendar/examples/php/get-time-zones.php deleted file mode 100644 index 241e1bd1..00000000 --- a/htdocs/public/high/plugins/fullcalendar/examples/php/get-time-zones.php +++ /dev/null @@ -1,9 +0,0 @@ -values. - // You can optionally force the timeZone of the parsed dates. - public function __construct($array, $timeZone=null) { - - $this->title = $array['title']; - - if (isset($array['allDay'])) { - // allDay has been explicitly specified - $this->allDay = (bool)$array['allDay']; - } - else { - // Guess allDay based off of ISO8601 date strings - $this->allDay = preg_match(self::ALL_DAY_REGEX, $array['start']) && - (!isset($array['end']) || preg_match(self::ALL_DAY_REGEX, $array['end'])); - } - - if ($this->allDay) { - // If dates are allDay, we want to parse them in UTC to avoid DST issues. - $timeZone = null; - } - - // Parse dates - $this->start = parseDateTime($array['start'], $timeZone); - $this->end = isset($array['end']) ? parseDateTime($array['end'], $timeZone) : null; - - // Record misc properties - foreach ($array as $name => $value) { - if (!in_array($name, array('title', 'allDay', 'start', 'end'))) { - $this->properties[$name] = $value; - } - } - } - - - // Returns whether the date range of our event intersects with the given all-day range. - // $rangeStart and $rangeEnd are assumed to be dates in UTC with 00:00:00 time. - public function isWithinDayRange($rangeStart, $rangeEnd) { - - // Normalize our event's dates for comparison with the all-day range. - $eventStart = stripTime($this->start); - - if (isset($this->end)) { - $eventEnd = stripTime($this->end); // normalize - } - else { - $eventEnd = $eventStart; // consider this a zero-duration event - } - - // Check if the two whole-day ranges intersect. - return $eventStart < $rangeEnd && $eventEnd >= $rangeStart; - } - - - // Converts this Event object back to a plain data array, to be used for generating JSON - public function toArray() { - - // Start with the misc properties (don't worry, PHP won't affect the original array) - $array = $this->properties; - - $array['title'] = $this->title; - - // Figure out the date format. This essentially encodes allDay into the date string. - if ($this->allDay) { - $format = 'Y-m-d'; // output like "2013-12-29" - } - else { - $format = 'c'; // full ISO8601 output, like "2013-12-29T09:00:00+08:00" - } - - // Serialize dates into strings - $array['start'] = $this->start->format($format); - if (isset($this->end)) { - $array['end'] = $this->end->format($format); - } - - return $array; - } - -} - - -// Date Utilities -//---------------------------------------------------------------------------------------------- - - -// Parses a string into a DateTime object, optionally forced into the given timeZone. -function parseDateTime($string, $timeZone=null) { - $date = new DateTime( - $string, - $timeZone ? $timeZone : new DateTimeZone('UTC') - // Used only when the string is ambiguous. - // Ignored if string has a timeZone offset in it. - ); - if ($timeZone) { - // If our timeZone was ignored above, force it. - $date->setTimezone($timeZone); - } - return $date; -} - - -// Takes the year/month/date values of the given DateTime and converts them to a new DateTime, -// but in UTC. -function stripTime($datetime) { - return new DateTime($datetime->format('Y-m-d')); -} diff --git a/htdocs/public/high/plugins/fullcalendar/examples/rrule.html b/htdocs/public/high/plugins/fullcalendar/examples/rrule.html deleted file mode 100644 index 2ab3cc2b..00000000 --- a/htdocs/public/high/plugins/fullcalendar/examples/rrule.html +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - - - - - - - - - - - -
- - - diff --git a/htdocs/public/high/plugins/fullcalendar/examples/selectable.html b/htdocs/public/high/plugins/fullcalendar/examples/selectable.html deleted file mode 100644 index b9f0f761..00000000 --- a/htdocs/public/high/plugins/fullcalendar/examples/selectable.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - - - - - - - - - - - -
- - - diff --git a/htdocs/public/high/plugins/fullcalendar/examples/theming.html b/htdocs/public/high/plugins/fullcalendar/examples/theming.html deleted file mode 100644 index c444a1a9..00000000 --- a/htdocs/public/high/plugins/fullcalendar/examples/theming.html +++ /dev/null @@ -1,215 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
- Theme System: - - -
- - - - - -
- - - -
-
- -
- - - diff --git a/htdocs/public/high/plugins/fullcalendar/examples/time-zones.html b/htdocs/public/high/plugins/fullcalendar/examples/time-zones.html deleted file mode 100644 index 2a61eace..00000000 --- a/htdocs/public/high/plugins/fullcalendar/examples/time-zones.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - - - - - - - - - - - - -
- -
- Timezone: - -
- -
- loading... - php/get-events.php must be running. -
- -
- -
- -
- - - diff --git a/htdocs/public/high/plugins/fullcalendar/examples/timegrid-views.html b/htdocs/public/high/plugins/fullcalendar/examples/timegrid-views.html deleted file mode 100644 index a4408e9f..00000000 --- a/htdocs/public/high/plugins/fullcalendar/examples/timegrid-views.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - - - - - - - - - - - - - -
- - - diff --git a/htdocs/public/high/plugins/fullcalendar/examples/week-numbers.html b/htdocs/public/high/plugins/fullcalendar/examples/week-numbers.html deleted file mode 100644 index 5e1d4091..00000000 --- a/htdocs/public/high/plugins/fullcalendar/examples/week-numbers.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - - - - - - - - - - - - - -
- - - diff --git a/htdocs/public/high/plugins/fullcalendar/locales-all.js b/htdocs/public/high/plugins/fullcalendar/locales-all.js deleted file mode 100644 index 5c7c9fa9..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales-all.js +++ /dev/null @@ -1,1348 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, global.FullCalendarLocalesAll = factory()); -}(this, function () { 'use strict'; - - var _m0 = { - code: "af", - week: { - dow: 1, - doy: 4 // Die week wat die 4de Januarie bevat is die eerste week van die jaar. - }, - buttonText: { - prev: "Vorige", - next: "Volgende", - today: "Vandag", - year: "Jaar", - month: "Maand", - week: "Week", - day: "Dag", - list: "Agenda" - }, - allDayHtml: "Heeldag", - eventLimitText: "Addisionele", - noEventsMessage: "Daar is geen gebeurtenisse nie" - }; - - var _m1 = { - code: "ar-dz", - week: { - dow: 0, - doy: 4 // The week that contains Jan 1st is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "السابق", - next: "التالي", - today: "اليوم", - month: "شهر", - week: "أسبوع", - day: "يوم", - list: "أجندة" - }, - weekLabel: "أسبوع", - allDayText: "اليوم كله", - eventLimitText: "أخرى", - noEventsMessage: "أي أحداث لعرض" - }; - - var _m2 = { - code: "ar-kw", - week: { - dow: 0, - doy: 12 // The week that contains Jan 1st is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "السابق", - next: "التالي", - today: "اليوم", - month: "شهر", - week: "أسبوع", - day: "يوم", - list: "أجندة" - }, - weekLabel: "أسبوع", - allDayText: "اليوم كله", - eventLimitText: "أخرى", - noEventsMessage: "أي أحداث لعرض" - }; - - var _m3 = { - code: "ar-ly", - week: { - dow: 6, - doy: 12 // The week that contains Jan 1st is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "السابق", - next: "التالي", - today: "اليوم", - month: "شهر", - week: "أسبوع", - day: "يوم", - list: "أجندة" - }, - weekLabel: "أسبوع", - allDayText: "اليوم كله", - eventLimitText: "أخرى", - noEventsMessage: "أي أحداث لعرض" - }; - - var _m4 = { - code: "ar-ma", - week: { - dow: 6, - doy: 12 // The week that contains Jan 1st is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "السابق", - next: "التالي", - today: "اليوم", - month: "شهر", - week: "أسبوع", - day: "يوم", - list: "أجندة" - }, - weekLabel: "أسبوع", - allDayText: "اليوم كله", - eventLimitText: "أخرى", - noEventsMessage: "أي أحداث لعرض" - }; - - var _m5 = { - code: "ar-sa", - week: { - dow: 0, - doy: 6 // The week that contains Jan 1st is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "السابق", - next: "التالي", - today: "اليوم", - month: "شهر", - week: "أسبوع", - day: "يوم", - list: "أجندة" - }, - weekLabel: "أسبوع", - allDayText: "اليوم كله", - eventLimitText: "أخرى", - noEventsMessage: "أي أحداث لعرض" - }; - - var _m6 = { - code: "ar-tn", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "السابق", - next: "التالي", - today: "اليوم", - month: "شهر", - week: "أسبوع", - day: "يوم", - list: "أجندة" - }, - weekLabel: "أسبوع", - allDayText: "اليوم كله", - eventLimitText: "أخرى", - noEventsMessage: "أي أحداث لعرض" - }; - - var _m7 = { - code: "ar", - week: { - dow: 6, - doy: 12 // The week that contains Jan 1st is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "السابق", - next: "التالي", - today: "اليوم", - month: "شهر", - week: "أسبوع", - day: "يوم", - list: "أجندة" - }, - weekLabel: "أسبوع", - allDayText: "اليوم كله", - eventLimitText: "أخرى", - noEventsMessage: "أي أحداث لعرض" - }; - - var _m8 = { - code: "bg", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "назад", - next: "напред", - today: "днес", - month: "Месец", - week: "Седмица", - day: "Ден", - list: "График" - }, - allDayText: "Цял ден", - eventLimitText: function (n) { - return "+още " + n; - }, - noEventsMessage: "Няма събития за показване" - }; - - var _m9 = { - code: "bs", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Prošli", - next: "Sljedeći", - today: "Danas", - month: "Mjesec", - week: "Sedmica", - day: "Dan", - list: "Raspored" - }, - weekLabel: "Sed", - allDayText: "Cijeli dan", - eventLimitText: function (n) { - return "+ još " + n; - }, - noEventsMessage: "Nema događaja za prikazivanje" - }; - - var _m10 = { - code: "ca", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Anterior", - next: "Següent", - today: "Avui", - month: "Mes", - week: "Setmana", - day: "Dia", - list: "Agenda" - }, - weekLabel: "Set", - allDayText: "Tot el dia", - eventLimitText: "més", - noEventsMessage: "No hi ha esdeveniments per mostrar" - }; - - var _m11 = { - code: "cs", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Dříve", - next: "Později", - today: "Nyní", - month: "Měsíc", - week: "Týden", - day: "Den", - list: "Agenda" - }, - weekLabel: "Týd", - allDayText: "Celý den", - eventLimitText: function (n) { - return "+další: " + n; - }, - noEventsMessage: "Žádné akce k zobrazení" - }; - - var _m12 = { - code: "da", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Forrige", - next: "Næste", - today: "I dag", - month: "Måned", - week: "Uge", - day: "Dag", - list: "Agenda" - }, - weekLabel: "Uge", - allDayText: "Hele dagen", - eventLimitText: "flere", - noEventsMessage: "Ingen arrangementer at vise" - }; - - var _m13 = { - code: "de", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Zurück", - next: "Vor", - today: "Heute", - year: "Jahr", - month: "Monat", - week: "Woche", - day: "Tag", - list: "Terminübersicht" - }, - weekLabel: "KW", - allDayText: "Ganztägig", - eventLimitText: function (n) { - return "+ weitere " + n; - }, - noEventsMessage: "Keine Ereignisse anzuzeigen" - }; - - var _m14 = { - code: "el", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4st is the first week of the year. - }, - buttonText: { - prev: "Προηγούμενος", - next: "Επόμενος", - today: "Σήμερα", - month: "Μήνας", - week: "Εβδομάδα", - day: "Ημέρα", - list: "Ατζέντα" - }, - weekLabel: "Εβδ", - allDayText: "Ολοήμερο", - eventLimitText: "περισσότερα", - noEventsMessage: "Δεν υπάρχουν γεγονότα για να εμφανιστεί" - }; - - var _m15 = { - code: "en-au", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - } - }; - - var _m16 = { - code: "en-gb", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - } - }; - - var _m17 = { - code: "en-nz", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - } - }; - - var _m18 = { - code: "es", - week: { - dow: 0, - doy: 6 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Ant", - next: "Sig", - today: "Hoy", - month: "Mes", - week: "Semana", - day: "Día", - list: "Agenda" - }, - weekLabel: "Sm", - allDayHtml: "Todo
el día", - eventLimitText: "más", - noEventsMessage: "No hay eventos para mostrar" - }; - - var _m19 = { - code: "es", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Ant", - next: "Sig", - today: "Hoy", - month: "Mes", - week: "Semana", - day: "Día", - list: "Agenda" - }, - weekLabel: "Sm", - allDayHtml: "Todo
el día", - eventLimitText: "más", - noEventsMessage: "No hay eventos para mostrar" - }; - - var _m20 = { - code: "et", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Eelnev", - next: "Järgnev", - today: "Täna", - month: "Kuu", - week: "Nädal", - day: "Päev", - list: "Päevakord" - }, - weekLabel: "näd", - allDayText: "Kogu päev", - eventLimitText: function (n) { - return "+ veel " + n; - }, - noEventsMessage: "Kuvamiseks puuduvad sündmused" - }; - - var _m21 = { - code: "eu", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Aur", - next: "Hur", - today: "Gaur", - month: "Hilabetea", - week: "Astea", - day: "Eguna", - list: "Agenda" - }, - weekLabel: "As", - allDayHtml: "Egun
osoa", - eventLimitText: "gehiago", - noEventsMessage: "Ez dago ekitaldirik erakusteko" - }; - - var _m22 = { - code: "fa", - week: { - dow: 6, - doy: 12 // The week that contains Jan 1st is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "قبلی", - next: "بعدی", - today: "امروز", - month: "ماه", - week: "هفته", - day: "روز", - list: "برنامه" - }, - weekLabel: "هف", - allDayText: "تمام روز", - eventLimitText: function (n) { - return "بیش از " + n; - }, - noEventsMessage: "هیچ رویدادی به نمایش" - }; - - var _m23 = { - code: "fi", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Edellinen", - next: "Seuraava", - today: "Tänään", - month: "Kuukausi", - week: "Viikko", - day: "Päivä", - list: "Tapahtumat" - }, - weekLabel: "Vk", - allDayText: "Koko päivä", - eventLimitText: "lisää", - noEventsMessage: "Ei näytettäviä tapahtumia" - }; - - var _m24 = { - code: "fr", - buttonText: { - prev: "Précédent", - next: "Suivant", - today: "Aujourd'hui", - year: "Année", - month: "Mois", - week: "Semaine", - day: "Jour", - list: "Mon planning" - }, - weekLabel: "Sem.", - allDayHtml: "Toute la
journée", - eventLimitText: "en plus", - noEventsMessage: "Aucun événement à afficher" - }; - - var _m25 = { - code: "fr-ch", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Précédent", - next: "Suivant", - today: "Courant", - year: "Année", - month: "Mois", - week: "Semaine", - day: "Jour", - list: "Mon planning" - }, - weekLabel: "Sm", - allDayHtml: "Toute la
journée", - eventLimitText: "en plus", - noEventsMessage: "Aucun événement à afficher" - }; - - var _m26 = { - code: "fr", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Précédent", - next: "Suivant", - today: "Aujourd'hui", - year: "Année", - month: "Mois", - week: "Semaine", - day: "Jour", - list: "Mon planning" - }, - weekLabel: "Sem.", - allDayHtml: "Toute la
journée", - eventLimitText: "en plus", - noEventsMessage: "Aucun événement à afficher" - }; - - var _m27 = { - code: "gl", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Ant", - next: "Seg", - today: "Hoxe", - month: "Mes", - week: "Semana", - day: "Día", - list: "Axenda" - }, - weekLabel: "Sm", - allDayHtml: "Todo
o día", - eventLimitText: "máis", - noEventsMessage: "Non hai eventos para amosar" - }; - - var _m28 = { - code: "he", - dir: 'rtl', - buttonText: { - prev: "הקודם", - next: "הבא", - today: "היום", - month: "חודש", - week: "שבוע", - day: "יום", - list: "סדר יום" - }, - allDayText: "כל היום", - eventLimitText: "אחר", - noEventsMessage: "אין אירועים להצגה", - weekLabel: "שבוע" - }; - - var _m29 = { - code: "hi", - week: { - dow: 0, - doy: 6 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "पिछला", - next: "अगला", - today: "आज", - month: "महीना", - week: "सप्ताह", - day: "दिन", - list: "कार्यसूची" - }, - weekLabel: "हफ्ता", - allDayText: "सभी दिन", - eventLimitText: function (n) { - return "+अधिक " + n; - }, - noEventsMessage: "कोई घटनाओं को प्रदर्शित करने के लिए" - }; - - var _m30 = { - code: "hr", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Prijašnji", - next: "Sljedeći", - today: "Danas", - month: "Mjesec", - week: "Tjedan", - day: "Dan", - list: "Raspored" - }, - weekLabel: "Tje", - allDayText: "Cijeli dan", - eventLimitText: function (n) { - return "+ još " + n; - }, - noEventsMessage: "Nema događaja za prikaz" - }; - - var _m31 = { - code: "hu", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "vissza", - next: "előre", - today: "ma", - month: "Hónap", - week: "Hét", - day: "Nap", - list: "Napló" - }, - weekLabel: "Hét", - allDayText: "Egész nap", - eventLimitText: "további", - noEventsMessage: "Nincs megjeleníthető esemény" - }; - - var _m32 = { - code: "id", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "mundur", - next: "maju", - today: "hari ini", - month: "Bulan", - week: "Minggu", - day: "Hari", - list: "Agenda" - }, - weekLabel: "Mg", - allDayHtml: "Sehari
penuh", - eventLimitText: "lebih", - noEventsMessage: "Tidak ada acara untuk ditampilkan" - }; - - var _m33 = { - code: "is", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Fyrri", - next: "Næsti", - today: "Í dag", - month: "Mánuður", - week: "Vika", - day: "Dagur", - list: "Dagskrá" - }, - weekLabel: "Vika", - allDayHtml: "Allan
daginn", - eventLimitText: "meira", - noEventsMessage: "Engir viðburðir til að sýna" - }; - - var _m34 = { - code: "it", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Prec", - next: "Succ", - today: "Oggi", - month: "Mese", - week: "Settimana", - day: "Giorno", - list: "Agenda" - }, - weekLabel: "Sm", - allDayHtml: "Tutto il
giorno", - eventLimitText: function (n) { - return "+altri " + n; - }, - noEventsMessage: "Non ci sono eventi da visualizzare" - }; - - var _m35 = { - code: "ja", - buttonText: { - prev: "前", - next: "次", - today: "今日", - month: "月", - week: "週", - day: "日", - list: "予定リスト" - }, - weekLabel: "週", - allDayText: "終日", - eventLimitText: function (n) { - return "他 " + n + " 件"; - }, - noEventsMessage: "表示する予定はありません" - }; - - var _m36 = { - code: "ka", - week: { - dow: 1, - doy: 7 - }, - buttonText: { - prev: "წინა", - next: "შემდეგი", - today: "დღეს", - month: "თვე", - week: "კვირა", - day: "დღე", - list: "დღის წესრიგი" - }, - weekLabel: "კვ", - allDayText: "მთელი დღე", - eventLimitText: function (n) { - return "+ კიდევ " + n; - }, - noEventsMessage: "ღონისძიებები არ არის" - }; - - var _m37 = { - code: "kk", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Алдыңғы", - next: "Келесі", - today: "Бүгін", - month: "Ай", - week: "Апта", - day: "Күн", - list: "Күн тәртібі" - }, - weekLabel: "Не", - allDayText: "Күні бойы", - eventLimitText: function (n) { - return "+ тағы " + n; - }, - noEventsMessage: "Көрсету үшін оқиғалар жоқ" - }; - - var _m38 = { - code: "ko", - buttonText: { - prev: "이전달", - next: "다음달", - today: "오늘", - month: "월", - week: "주", - day: "일", - list: "일정목록" - }, - weekLabel: "주", - allDayText: "종일", - eventLimitText: "개", - noEventsMessage: "일정이 없습니다" - }; - - var _m39 = { - code: "lb", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Zréck", - next: "Weider", - today: "Haut", - month: "Mount", - week: "Woch", - day: "Dag", - list: "Terminiwwersiicht" - }, - weekLabel: "W", - allDayText: "Ganzen Dag", - eventLimitText: "méi", - noEventsMessage: "Nee Evenementer ze affichéieren" - }; - - var _m40 = { - code: "lt", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Atgal", - next: "Pirmyn", - today: "Šiandien", - month: "Mėnuo", - week: "Savaitė", - day: "Diena", - list: "Darbotvarkė" - }, - weekLabel: "SAV", - allDayText: "Visą dieną", - eventLimitText: "daugiau", - noEventsMessage: "Nėra įvykių rodyti" - }; - - var _m41 = { - code: "lv", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Iepr.", - next: "Nāk.", - today: "Šodien", - month: "Mēnesis", - week: "Nedēļa", - day: "Diena", - list: "Dienas kārtība" - }, - weekLabel: "Ned.", - allDayText: "Visu dienu", - eventLimitText: function (n) { - return "+vēl " + n; - }, - noEventsMessage: "Nav notikumu" - }; - - var _m42 = { - code: "mk", - buttonText: { - prev: "претходно", - next: "следно", - today: "Денес", - month: "Месец", - week: "Недела", - day: "Ден", - list: "График" - }, - weekLabel: "Сед", - allDayText: "Цел ден", - eventLimitText: function (n) { - return "+повеќе " + n; - }, - noEventsMessage: "Нема настани за прикажување" - }; - - var _m43 = { - code: "ms", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Sebelum", - next: "Selepas", - today: "hari ini", - month: "Bulan", - week: "Minggu", - day: "Hari", - list: "Agenda" - }, - weekLabel: "Mg", - allDayText: "Sepanjang hari", - eventLimitText: function (n) { - return "masih ada " + n + " acara"; - }, - noEventsMessage: "Tiada peristiwa untuk dipaparkan" - }; - - var _m44 = { - code: "nb", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Forrige", - next: "Neste", - today: "I dag", - month: "Måned", - week: "Uke", - day: "Dag", - list: "Agenda" - }, - weekLabel: "Uke", - allDayText: "Hele dagen", - eventLimitText: "til", - noEventsMessage: "Ingen hendelser å vise" - }; - - var _m45 = { - code: "nl", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Voorgaand", - next: "Volgende", - today: "Vandaag", - year: "Jaar", - month: "Maand", - week: "Week", - day: "Dag", - list: "Agenda" - }, - allDayText: "Hele dag", - eventLimitText: "extra", - noEventsMessage: "Geen evenementen om te laten zien" - }; - - var _m46 = { - code: "nn", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Førre", - next: "Neste", - today: "I dag", - month: "Månad", - week: "Veke", - day: "Dag", - list: "Agenda" - }, - weekLabel: "Veke", - allDayText: "Heile dagen", - eventLimitText: "til", - noEventsMessage: "Ingen hendelser å vise" - }; - - var _m47 = { - code: "pl", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Poprzedni", - next: "Następny", - today: "Dziś", - month: "Miesiąc", - week: "Tydzień", - day: "Dzień", - list: "Plan dnia" - }, - weekLabel: "Tydz", - allDayText: "Cały dzień", - eventLimitText: "więcej", - noEventsMessage: "Brak wydarzeń do wyświetlenia" - }; - - var _m48 = { - code: "pt-br", - buttonText: { - prev: "Anterior", - next: "Próximo", - today: "Hoje", - month: "Mês", - week: "Semana", - day: "Dia", - list: "Compromissos" - }, - weekLabel: "Sm", - allDayText: "dia inteiro", - eventLimitText: function (n) { - return "mais +" + n; - }, - noEventsMessage: "Não há eventos para mostrar" - }; - - var _m49 = { - code: "pt", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Anterior", - next: "Seguinte", - today: "Hoje", - month: "Mês", - week: "Semana", - day: "Dia", - list: "Agenda" - }, - weekLabel: "Sem", - allDayText: "Todo o dia", - eventLimitText: "mais", - noEventsMessage: "Não há eventos para mostrar" - }; - - var _m50 = { - code: "ro", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "precedentă", - next: "următoare", - today: "Azi", - month: "Lună", - week: "Săptămână", - day: "Zi", - list: "Agendă" - }, - weekLabel: "Săpt", - allDayText: "Toată ziua", - eventLimitText: function (n) { - return "+alte " + n; - }, - noEventsMessage: "Nu există evenimente de afișat" - }; - - var _m51 = { - code: "ru", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Пред", - next: "След", - today: "Сегодня", - month: "Месяц", - week: "Неделя", - day: "День", - list: "Повестка дня" - }, - weekLabel: "Нед", - allDayText: "Весь день", - eventLimitText: function (n) { - return "+ ещё " + n; - }, - noEventsMessage: "Нет событий для отображения" - }; - - var _m52 = { - code: "sk", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Predchádzajúci", - next: "Nasledujúci", - today: "Dnes", - month: "Mesiac", - week: "Týždeň", - day: "Deň", - list: "Rozvrh" - }, - weekLabel: "Ty", - allDayText: "Celý deň", - eventLimitText: function (n) { - return "+ďalšie: " + n; - }, - noEventsMessage: "Žiadne akcie na zobrazenie" - }; - - var _m53 = { - code: "sl", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Prejšnji", - next: "Naslednji", - today: "Trenutni", - month: "Mesec", - week: "Teden", - day: "Dan", - list: "Dnevni red" - }, - weekLabel: "Teden", - allDayText: "Ves dan", - eventLimitText: "več", - noEventsMessage: "Ni dogodkov za prikaz" - }; - - var _m54 = { - code: "sq", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "mbrapa", - next: "Përpara", - today: "sot", - month: "Muaj", - week: "Javë", - day: "Ditë", - list: "Listë" - }, - weekLabel: "Ja", - allDayHtml: "Gjithë
ditën", - eventLimitText: function (n) { - return "+më tepër " + n; - }, - noEventsMessage: "Nuk ka evente për të shfaqur" - }; - - var _m55 = { - code: "sr-cyrl", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Претходна", - next: "следећи", - today: "Данас", - month: "Месец", - week: "Недеља", - day: "Дан", - list: "Планер" - }, - weekLabel: "Сед", - allDayText: "Цео дан", - eventLimitText: function (n) { - return "+ још " + n; - }, - noEventsMessage: "Нема догађаја за приказ" - }; - - var _m56 = { - code: "sr", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Prethodna", - next: "Sledeći", - today: "Danas", - month: "Mеsеc", - week: "Nеdеlja", - day: "Dan", - list: "Planеr" - }, - weekLabel: "Sed", - allDayText: "Cеo dan", - eventLimitText: function (n) { - return "+ još " + n; - }, - noEventsMessage: "Nеma događaja za prikaz" - }; - - var _m57 = { - code: "sv", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Förra", - next: "Nästa", - today: "Idag", - month: "Månad", - week: "Vecka", - day: "Dag", - list: "Program" - }, - weekLabel: "v.", - allDayText: "Heldag", - eventLimitText: "till", - noEventsMessage: "Inga händelser att visa" - }; - - var _m58 = { - code: "th", - buttonText: { - prev: "ย้อน", - next: "ถัดไป", - today: "วันนี้", - month: "เดือน", - week: "สัปดาห์", - day: "วัน", - list: "แผนงาน" - }, - allDayText: "ตลอดวัน", - eventLimitText: "เพิ่มเติม", - noEventsMessage: "ไม่มีกิจกรรมที่จะแสดง" - }; - - var _m59 = { - code: "tr", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "geri", - next: "ileri", - today: "bugün", - month: "Ay", - week: "Hafta", - day: "Gün", - list: "Ajanda" - }, - weekLabel: "Hf", - allDayText: "Tüm gün", - eventLimitText: "daha fazla", - noEventsMessage: "Gösterilecek etkinlik yok" - }; - - var _m60 = { - code: "uk", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Попередній", - next: "далі", - today: "Сьогодні", - month: "Місяць", - week: "Тиждень", - day: "День", - list: "Порядок денний" - }, - weekLabel: "Тиж", - allDayText: "Увесь день", - eventLimitText: function (n) { - return "+ще " + n + "..."; - }, - noEventsMessage: "Немає подій для відображення" - }; - - var _m61 = { - code: "vi", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Trước", - next: "Tiếp", - today: "Hôm nay", - month: "Tháng", - week: "Tuần", - day: "Ngày", - list: "Lịch biểu" - }, - weekLabel: "Tu", - allDayText: "Cả ngày", - eventLimitText: function (n) { - return "+ thêm " + n; - }, - noEventsMessage: "Không có sự kiện để hiển thị" - }; - - var _m62 = { - code: "zh-cn", - week: { - // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效 - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "上月", - next: "下月", - today: "今天", - month: "月", - week: "周", - day: "日", - list: "日程" - }, - weekLabel: "周", - allDayText: "全天", - eventLimitText: function (n) { - return "另外 " + n + " 个"; - }, - noEventsMessage: "没有事件显示" - }; - - var _m63 = { - code: "zh-tw", - buttonText: { - prev: "上月", - next: "下月", - today: "今天", - month: "月", - week: "週", - day: "天", - list: "活動列表" - }, - weekLabel: "周", - allDayText: "整天", - eventLimitText: '顯示更多', - noEventsMessage: "没有任何活動" - }; - - var _rollupPluginMultiEntry_entryPoint = [ - _m0, _m1, _m2, _m3, _m4, _m5, _m6, _m7, _m8, _m9, _m10, _m11, _m12, _m13, _m14, _m15, _m16, _m17, _m18, _m19, _m20, _m21, _m22, _m23, _m24, _m25, _m26, _m27, _m28, _m29, _m30, _m31, _m32, _m33, _m34, _m35, _m36, _m37, _m38, _m39, _m40, _m41, _m42, _m43, _m44, _m45, _m46, _m47, _m48, _m49, _m50, _m51, _m52, _m53, _m54, _m55, _m56, _m57, _m58, _m59, _m60, _m61, _m62, _m63 - ]; - - return _rollupPluginMultiEntry_entryPoint; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales-all.min.js b/htdocs/public/high/plugins/fullcalendar/locales-all.min.js deleted file mode 100644 index 810d6dea..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales-all.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).FullCalendarLocalesAll=t()}(this,function(){"use strict";return[{code:"af",week:{dow:1,doy:4},buttonText:{prev:"Vorige",next:"Volgende",today:"Vandag",year:"Jaar",month:"Maand",week:"Week",day:"Dag",list:"Agenda"},allDayHtml:"Heeldag",eventLimitText:"Addisionele",noEventsMessage:"Daar is geen gebeurtenisse nie"},{code:"ar-dz",week:{dow:0,doy:4},dir:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekLabel:"أسبوع",allDayText:"اليوم كله",eventLimitText:"أخرى",noEventsMessage:"أي أحداث لعرض"},{code:"ar-kw",week:{dow:0,doy:12},dir:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekLabel:"أسبوع",allDayText:"اليوم كله",eventLimitText:"أخرى",noEventsMessage:"أي أحداث لعرض"},{code:"ar-ly",week:{dow:6,doy:12},dir:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekLabel:"أسبوع",allDayText:"اليوم كله",eventLimitText:"أخرى",noEventsMessage:"أي أحداث لعرض"},{code:"ar-ma",week:{dow:6,doy:12},dir:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekLabel:"أسبوع",allDayText:"اليوم كله",eventLimitText:"أخرى",noEventsMessage:"أي أحداث لعرض"},{code:"ar-sa",week:{dow:0,doy:6},dir:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekLabel:"أسبوع",allDayText:"اليوم كله",eventLimitText:"أخرى",noEventsMessage:"أي أحداث لعرض"},{code:"ar-tn",week:{dow:1,doy:4},dir:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekLabel:"أسبوع",allDayText:"اليوم كله",eventLimitText:"أخرى",noEventsMessage:"أي أحداث لعرض"},{code:"ar",week:{dow:6,doy:12},dir:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekLabel:"أسبوع",allDayText:"اليوم كله",eventLimitText:"أخرى",noEventsMessage:"أي أحداث لعرض"},{code:"bg",week:{dow:1,doy:7},buttonText:{prev:"назад",next:"напред",today:"днес",month:"Месец",week:"Седмица",day:"Ден",list:"График"},allDayText:"Цял ден",eventLimitText:function(e){return"+още "+e},noEventsMessage:"Няма събития за показване"},{code:"bs",week:{dow:1,doy:7},buttonText:{prev:"Prošli",next:"Sljedeći",today:"Danas",month:"Mjesec",week:"Sedmica",day:"Dan",list:"Raspored"},weekLabel:"Sed",allDayText:"Cijeli dan",eventLimitText:function(e){return"+ još "+e},noEventsMessage:"Nema događaja za prikazivanje"},{code:"ca",week:{dow:1,doy:4},buttonText:{prev:"Anterior",next:"Següent",today:"Avui",month:"Mes",week:"Setmana",day:"Dia",list:"Agenda"},weekLabel:"Set",allDayText:"Tot el dia",eventLimitText:"més",noEventsMessage:"No hi ha esdeveniments per mostrar"},{code:"cs",week:{dow:1,doy:4},buttonText:{prev:"Dříve",next:"Později",today:"Nyní",month:"Měsíc",week:"Týden",day:"Den",list:"Agenda"},weekLabel:"Týd",allDayText:"Celý den",eventLimitText:function(e){return"+další: "+e},noEventsMessage:"Žádné akce k zobrazení"},{code:"da",week:{dow:1,doy:4},buttonText:{prev:"Forrige",next:"Næste",today:"I dag",month:"Måned",week:"Uge",day:"Dag",list:"Agenda"},weekLabel:"Uge",allDayText:"Hele dagen",eventLimitText:"flere",noEventsMessage:"Ingen arrangementer at vise"},{code:"de",week:{dow:1,doy:4},buttonText:{prev:"Zurück",next:"Vor",today:"Heute",year:"Jahr",month:"Monat",week:"Woche",day:"Tag",list:"Terminübersicht"},weekLabel:"KW",allDayText:"Ganztägig",eventLimitText:function(e){return"+ weitere "+e},noEventsMessage:"Keine Ereignisse anzuzeigen"},{code:"el",week:{dow:1,doy:4},buttonText:{prev:"Προηγούμενος",next:"Επόμενος",today:"Σήμερα",month:"Μήνας",week:"Εβδομάδα",day:"Ημέρα",list:"Ατζέντα"},weekLabel:"Εβδ",allDayText:"Ολοήμερο",eventLimitText:"περισσότερα",noEventsMessage:"Δεν υπάρχουν γεγονότα για να εμφανιστεί"},{code:"en-au",week:{dow:1,doy:4}},{code:"en-gb",week:{dow:1,doy:4}},{code:"en-nz",week:{dow:1,doy:4}},{code:"es",week:{dow:0,doy:6},buttonText:{prev:"Ant",next:"Sig",today:"Hoy",month:"Mes",week:"Semana",day:"Día",list:"Agenda"},weekLabel:"Sm",allDayHtml:"Todo
el día",eventLimitText:"más",noEventsMessage:"No hay eventos para mostrar"},{code:"es",week:{dow:1,doy:4},buttonText:{prev:"Ant",next:"Sig",today:"Hoy",month:"Mes",week:"Semana",day:"Día",list:"Agenda"},weekLabel:"Sm",allDayHtml:"Todo
el día",eventLimitText:"más",noEventsMessage:"No hay eventos para mostrar"},{code:"et",week:{dow:1,doy:4},buttonText:{prev:"Eelnev",next:"Järgnev",today:"Täna",month:"Kuu",week:"Nädal",day:"Päev",list:"Päevakord"},weekLabel:"näd",allDayText:"Kogu päev",eventLimitText:function(e){return"+ veel "+e},noEventsMessage:"Kuvamiseks puuduvad sündmused"},{code:"eu",week:{dow:1,doy:7},buttonText:{prev:"Aur",next:"Hur",today:"Gaur",month:"Hilabetea",week:"Astea",day:"Eguna",list:"Agenda"},weekLabel:"As",allDayHtml:"Egun
osoa",eventLimitText:"gehiago",noEventsMessage:"Ez dago ekitaldirik erakusteko"},{code:"fa",week:{dow:6,doy:12},dir:"rtl",buttonText:{prev:"قبلی",next:"بعدی",today:"امروز",month:"ماه",week:"هفته",day:"روز",list:"برنامه"},weekLabel:"هف",allDayText:"تمام روز",eventLimitText:function(e){return"بیش از "+e},noEventsMessage:"هیچ رویدادی به نمایش"},{code:"fi",week:{dow:1,doy:4},buttonText:{prev:"Edellinen",next:"Seuraava",today:"Tänään",month:"Kuukausi",week:"Viikko",day:"Päivä",list:"Tapahtumat"},weekLabel:"Vk",allDayText:"Koko päivä",eventLimitText:"lisää",noEventsMessage:"Ei näytettäviä tapahtumia"},{code:"fr",buttonText:{prev:"Précédent",next:"Suivant",today:"Aujourd'hui",year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Mon planning"},weekLabel:"Sem.",allDayHtml:"Toute la
journée",eventLimitText:"en plus",noEventsMessage:"Aucun événement à afficher"},{code:"fr-ch",week:{dow:1,doy:4},buttonText:{prev:"Précédent",next:"Suivant",today:"Courant",year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Mon planning"},weekLabel:"Sm",allDayHtml:"Toute la
journée",eventLimitText:"en plus",noEventsMessage:"Aucun événement à afficher"},{code:"fr",week:{dow:1,doy:4},buttonText:{prev:"Précédent",next:"Suivant",today:"Aujourd'hui",year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Mon planning"},weekLabel:"Sem.",allDayHtml:"Toute la
journée",eventLimitText:"en plus",noEventsMessage:"Aucun événement à afficher"},{code:"gl",week:{dow:1,doy:4},buttonText:{prev:"Ant",next:"Seg",today:"Hoxe",month:"Mes",week:"Semana",day:"Día",list:"Axenda"},weekLabel:"Sm",allDayHtml:"Todo
o día",eventLimitText:"máis",noEventsMessage:"Non hai eventos para amosar"},{code:"he",dir:"rtl",buttonText:{prev:"הקודם",next:"הבא",today:"היום",month:"חודש",week:"שבוע",day:"יום",list:"סדר יום"},allDayText:"כל היום",eventLimitText:"אחר",noEventsMessage:"אין אירועים להצגה",weekLabel:"שבוע"},{code:"hi",week:{dow:0,doy:6},buttonText:{prev:"पिछला",next:"अगला",today:"आज",month:"महीना",week:"सप्ताह",day:"दिन",list:"कार्यसूची"},weekLabel:"हफ्ता",allDayText:"सभी दिन",eventLimitText:function(e){return"+अधिक "+e},noEventsMessage:"कोई घटनाओं को प्रदर्शित करने के लिए"},{code:"hr",week:{dow:1,doy:7},buttonText:{prev:"Prijašnji",next:"Sljedeći",today:"Danas",month:"Mjesec",week:"Tjedan",day:"Dan",list:"Raspored"},weekLabel:"Tje",allDayText:"Cijeli dan",eventLimitText:function(e){return"+ još "+e},noEventsMessage:"Nema događaja za prikaz"},{code:"hu",week:{dow:1,doy:4},buttonText:{prev:"vissza",next:"előre",today:"ma",month:"Hónap",week:"Hét",day:"Nap",list:"Napló"},weekLabel:"Hét",allDayText:"Egész nap",eventLimitText:"további",noEventsMessage:"Nincs megjeleníthető esemény"},{code:"id",week:{dow:1,doy:7},buttonText:{prev:"mundur",next:"maju",today:"hari ini",month:"Bulan",week:"Minggu",day:"Hari",list:"Agenda"},weekLabel:"Mg",allDayHtml:"Sehari
penuh",eventLimitText:"lebih",noEventsMessage:"Tidak ada acara untuk ditampilkan"},{code:"is",week:{dow:1,doy:4},buttonText:{prev:"Fyrri",next:"Næsti",today:"Í dag",month:"Mánuður",week:"Vika",day:"Dagur",list:"Dagskrá"},weekLabel:"Vika",allDayHtml:"Allan
daginn",eventLimitText:"meira",noEventsMessage:"Engir viðburðir til að sýna"},{code:"it",week:{dow:1,doy:4},buttonText:{prev:"Prec",next:"Succ",today:"Oggi",month:"Mese",week:"Settimana",day:"Giorno",list:"Agenda"},weekLabel:"Sm",allDayHtml:"Tutto il
giorno",eventLimitText:function(e){return"+altri "+e},noEventsMessage:"Non ci sono eventi da visualizzare"},{code:"ja",buttonText:{prev:"前",next:"次",today:"今日",month:"月",week:"週",day:"日",list:"予定リスト"},weekLabel:"週",allDayText:"終日",eventLimitText:function(e){return"他 "+e+" 件"},noEventsMessage:"表示する予定はありません"},{code:"ka",week:{dow:1,doy:7},buttonText:{prev:"წინა",next:"შემდეგი",today:"დღეს",month:"თვე",week:"კვირა",day:"დღე",list:"დღის წესრიგი"},weekLabel:"კვ",allDayText:"მთელი დღე",eventLimitText:function(e){return"+ კიდევ "+e},noEventsMessage:"ღონისძიებები არ არის"},{code:"kk",week:{dow:1,doy:7},buttonText:{prev:"Алдыңғы",next:"Келесі",today:"Бүгін",month:"Ай",week:"Апта",day:"Күн",list:"Күн тәртібі"},weekLabel:"Не",allDayText:"Күні бойы",eventLimitText:function(e){return"+ тағы "+e},noEventsMessage:"Көрсету үшін оқиғалар жоқ"},{code:"ko",buttonText:{prev:"이전달",next:"다음달",today:"오늘",month:"월",week:"주",day:"일",list:"일정목록"},weekLabel:"주",allDayText:"종일",eventLimitText:"개",noEventsMessage:"일정이 없습니다"},{code:"lb",week:{dow:1,doy:4},buttonText:{prev:"Zréck",next:"Weider",today:"Haut",month:"Mount",week:"Woch",day:"Dag",list:"Terminiwwersiicht"},weekLabel:"W",allDayText:"Ganzen Dag",eventLimitText:"méi",noEventsMessage:"Nee Evenementer ze affichéieren"},{code:"lt",week:{dow:1,doy:4},buttonText:{prev:"Atgal",next:"Pirmyn",today:"Šiandien",month:"Mėnuo",week:"Savaitė",day:"Diena",list:"Darbotvarkė"},weekLabel:"SAV",allDayText:"Visą dieną",eventLimitText:"daugiau",noEventsMessage:"Nėra įvykių rodyti"},{code:"lv",week:{dow:1,doy:4},buttonText:{prev:"Iepr.",next:"Nāk.",today:"Šodien",month:"Mēnesis",week:"Nedēļa",day:"Diena",list:"Dienas kārtība"},weekLabel:"Ned.",allDayText:"Visu dienu",eventLimitText:function(e){return"+vēl "+e},noEventsMessage:"Nav notikumu"},{code:"mk",buttonText:{prev:"претходно",next:"следно",today:"Денес",month:"Месец",week:"Недела",day:"Ден",list:"График"},weekLabel:"Сед",allDayText:"Цел ден",eventLimitText:function(e){return"+повеќе "+e},noEventsMessage:"Нема настани за прикажување"},{code:"ms",week:{dow:1,doy:7},buttonText:{prev:"Sebelum",next:"Selepas",today:"hari ini",month:"Bulan",week:"Minggu",day:"Hari",list:"Agenda"},weekLabel:"Mg",allDayText:"Sepanjang hari",eventLimitText:function(e){return"masih ada "+e+" acara"},noEventsMessage:"Tiada peristiwa untuk dipaparkan"},{code:"nb",week:{dow:1,doy:4},buttonText:{prev:"Forrige",next:"Neste",today:"I dag",month:"Måned",week:"Uke",day:"Dag",list:"Agenda"},weekLabel:"Uke",allDayText:"Hele dagen",eventLimitText:"til",noEventsMessage:"Ingen hendelser å vise"},{code:"nl",week:{dow:1,doy:4},buttonText:{prev:"Voorgaand",next:"Volgende",today:"Vandaag",year:"Jaar",month:"Maand",week:"Week",day:"Dag",list:"Agenda"},allDayText:"Hele dag",eventLimitText:"extra",noEventsMessage:"Geen evenementen om te laten zien"},{code:"nn",week:{dow:1,doy:4},buttonText:{prev:"Førre",next:"Neste",today:"I dag",month:"Månad",week:"Veke",day:"Dag",list:"Agenda"},weekLabel:"Veke",allDayText:"Heile dagen",eventLimitText:"til",noEventsMessage:"Ingen hendelser å vise"},{code:"pl",week:{dow:1,doy:4},buttonText:{prev:"Poprzedni",next:"Następny",today:"Dziś",month:"Miesiąc",week:"Tydzień",day:"Dzień",list:"Plan dnia"},weekLabel:"Tydz",allDayText:"Cały dzień",eventLimitText:"więcej",noEventsMessage:"Brak wydarzeń do wyświetlenia"},{code:"pt-br",buttonText:{prev:"Anterior",next:"Próximo",today:"Hoje",month:"Mês",week:"Semana",day:"Dia",list:"Compromissos"},weekLabel:"Sm",allDayText:"dia inteiro",eventLimitText:function(e){return"mais +"+e},noEventsMessage:"Não há eventos para mostrar"},{code:"pt",week:{dow:1,doy:4},buttonText:{prev:"Anterior",next:"Seguinte",today:"Hoje",month:"Mês",week:"Semana",day:"Dia",list:"Agenda"},weekLabel:"Sem",allDayText:"Todo o dia",eventLimitText:"mais",noEventsMessage:"Não há eventos para mostrar"},{code:"ro",week:{dow:1,doy:7},buttonText:{prev:"precedentă",next:"următoare",today:"Azi",month:"Lună",week:"Săptămână",day:"Zi",list:"Agendă"},weekLabel:"Săpt",allDayText:"Toată ziua",eventLimitText:function(e){return"+alte "+e},noEventsMessage:"Nu există evenimente de afișat"},{code:"ru",week:{dow:1,doy:4},buttonText:{prev:"Пред",next:"След",today:"Сегодня",month:"Месяц",week:"Неделя",day:"День",list:"Повестка дня"},weekLabel:"Нед",allDayText:"Весь день",eventLimitText:function(e){return"+ ещё "+e},noEventsMessage:"Нет событий для отображения"},{code:"sk",week:{dow:1,doy:4},buttonText:{prev:"Predchádzajúci",next:"Nasledujúci",today:"Dnes",month:"Mesiac",week:"Týždeň",day:"Deň",list:"Rozvrh"},weekLabel:"Ty",allDayText:"Celý deň",eventLimitText:function(e){return"+ďalšie: "+e},noEventsMessage:"Žiadne akcie na zobrazenie"},{code:"sl",week:{dow:1,doy:7},buttonText:{prev:"Prejšnji",next:"Naslednji",today:"Trenutni",month:"Mesec",week:"Teden",day:"Dan",list:"Dnevni red"},weekLabel:"Teden",allDayText:"Ves dan",eventLimitText:"več",noEventsMessage:"Ni dogodkov za prikaz"},{code:"sq",week:{dow:1,doy:4},buttonText:{prev:"mbrapa",next:"Përpara",today:"sot",month:"Muaj",week:"Javë",day:"Ditë",list:"Listë"},weekLabel:"Ja",allDayHtml:"Gjithë
ditën",eventLimitText:function(e){return"+më tepër "+e},noEventsMessage:"Nuk ka evente për të shfaqur"},{code:"sr-cyrl",week:{dow:1,doy:7},buttonText:{prev:"Претходна",next:"следећи",today:"Данас",month:"Месец",week:"Недеља",day:"Дан",list:"Планер"},weekLabel:"Сед",allDayText:"Цео дан",eventLimitText:function(e){return"+ још "+e},noEventsMessage:"Нема догађаја за приказ"},{code:"sr",week:{dow:1,doy:7},buttonText:{prev:"Prethodna",next:"Sledeći",today:"Danas",month:"Mеsеc",week:"Nеdеlja",day:"Dan",list:"Planеr"},weekLabel:"Sed",allDayText:"Cеo dan",eventLimitText:function(e){return"+ još "+e},noEventsMessage:"Nеma događaja za prikaz"},{code:"sv",week:{dow:1,doy:4},buttonText:{prev:"Förra",next:"Nästa",today:"Idag",month:"Månad",week:"Vecka",day:"Dag",list:"Program"},weekLabel:"v.",allDayText:"Heldag",eventLimitText:"till",noEventsMessage:"Inga händelser att visa"},{code:"th",buttonText:{prev:"ย้อน",next:"ถัดไป",today:"วันนี้",month:"เดือน",week:"สัปดาห์",day:"วัน",list:"แผนงาน"},allDayText:"ตลอดวัน",eventLimitText:"เพิ่มเติม",noEventsMessage:"ไม่มีกิจกรรมที่จะแสดง"},{code:"tr",week:{dow:1,doy:7},buttonText:{prev:"geri",next:"ileri",today:"bugün",month:"Ay",week:"Hafta",day:"Gün",list:"Ajanda"},weekLabel:"Hf",allDayText:"Tüm gün",eventLimitText:"daha fazla",noEventsMessage:"Gösterilecek etkinlik yok"},{code:"uk",week:{dow:1,doy:7},buttonText:{prev:"Попередній",next:"далі",today:"Сьогодні",month:"Місяць",week:"Тиждень",day:"День",list:"Порядок денний"},weekLabel:"Тиж",allDayText:"Увесь день",eventLimitText:function(e){return"+ще "+e+"..."},noEventsMessage:"Немає подій для відображення"},{code:"vi",week:{dow:1,doy:4},buttonText:{prev:"Trước",next:"Tiếp",today:"Hôm nay",month:"Tháng",week:"Tuần",day:"Ngày",list:"Lịch biểu"},weekLabel:"Tu",allDayText:"Cả ngày",eventLimitText:function(e){return"+ thêm "+e},noEventsMessage:"Không có sự kiện để hiển thị"},{code:"zh-cn",week:{dow:1,doy:4},buttonText:{prev:"上月",next:"下月",today:"今天",month:"月",week:"周",day:"日",list:"日程"},weekLabel:"周",allDayText:"全天",eventLimitText:function(e){return"另外 "+e+" 个"},noEventsMessage:"没有事件显示"},{code:"zh-tw",buttonText:{prev:"上月",next:"下月",today:"今天",month:"月",week:"週",day:"天",list:"活動列表"},weekLabel:"周",allDayText:"整天",eventLimitText:"顯示更多",noEventsMessage:"没有任何活動"}]}); \ No newline at end of file diff --git a/htdocs/public/high/plugins/fullcalendar/locales/af.js b/htdocs/public/high/plugins/fullcalendar/locales/af.js deleted file mode 100644 index ee9f9f74..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/af.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.af = factory())); -}(this, function () { 'use strict'; - - var af = { - code: "af", - week: { - dow: 1, - doy: 4 // Die week wat die 4de Januarie bevat is die eerste week van die jaar. - }, - buttonText: { - prev: "Vorige", - next: "Volgende", - today: "Vandag", - year: "Jaar", - month: "Maand", - week: "Week", - day: "Dag", - list: "Agenda" - }, - allDayHtml: "Heeldag", - eventLimitText: "Addisionele", - noEventsMessage: "Daar is geen gebeurtenisse nie" - }; - - return af; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/ar-dz.js b/htdocs/public/high/plugins/fullcalendar/locales/ar-dz.js deleted file mode 100644 index 201eb171..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/ar-dz.js +++ /dev/null @@ -1,31 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['ar-dz'] = factory())); -}(this, function () { 'use strict'; - - var arDz = { - code: "ar-dz", - week: { - dow: 0, - doy: 4 // The week that contains Jan 1st is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "السابق", - next: "التالي", - today: "اليوم", - month: "شهر", - week: "أسبوع", - day: "يوم", - list: "أجندة" - }, - weekLabel: "أسبوع", - allDayText: "اليوم كله", - eventLimitText: "أخرى", - noEventsMessage: "أي أحداث لعرض" - }; - - return arDz; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/ar-kw.js b/htdocs/public/high/plugins/fullcalendar/locales/ar-kw.js deleted file mode 100644 index 94c69001..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/ar-kw.js +++ /dev/null @@ -1,31 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['ar-kw'] = factory())); -}(this, function () { 'use strict'; - - var arKw = { - code: "ar-kw", - week: { - dow: 0, - doy: 12 // The week that contains Jan 1st is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "السابق", - next: "التالي", - today: "اليوم", - month: "شهر", - week: "أسبوع", - day: "يوم", - list: "أجندة" - }, - weekLabel: "أسبوع", - allDayText: "اليوم كله", - eventLimitText: "أخرى", - noEventsMessage: "أي أحداث لعرض" - }; - - return arKw; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/ar-ly.js b/htdocs/public/high/plugins/fullcalendar/locales/ar-ly.js deleted file mode 100644 index e1c8aeb0..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/ar-ly.js +++ /dev/null @@ -1,31 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['ar-ly'] = factory())); -}(this, function () { 'use strict'; - - var arLy = { - code: "ar-ly", - week: { - dow: 6, - doy: 12 // The week that contains Jan 1st is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "السابق", - next: "التالي", - today: "اليوم", - month: "شهر", - week: "أسبوع", - day: "يوم", - list: "أجندة" - }, - weekLabel: "أسبوع", - allDayText: "اليوم كله", - eventLimitText: "أخرى", - noEventsMessage: "أي أحداث لعرض" - }; - - return arLy; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/ar-ma.js b/htdocs/public/high/plugins/fullcalendar/locales/ar-ma.js deleted file mode 100644 index 00cc7c67..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/ar-ma.js +++ /dev/null @@ -1,31 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['ar-ma'] = factory())); -}(this, function () { 'use strict'; - - var arMa = { - code: "ar-ma", - week: { - dow: 6, - doy: 12 // The week that contains Jan 1st is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "السابق", - next: "التالي", - today: "اليوم", - month: "شهر", - week: "أسبوع", - day: "يوم", - list: "أجندة" - }, - weekLabel: "أسبوع", - allDayText: "اليوم كله", - eventLimitText: "أخرى", - noEventsMessage: "أي أحداث لعرض" - }; - - return arMa; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/ar-sa.js b/htdocs/public/high/plugins/fullcalendar/locales/ar-sa.js deleted file mode 100644 index 0361f6d8..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/ar-sa.js +++ /dev/null @@ -1,31 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['ar-sa'] = factory())); -}(this, function () { 'use strict'; - - var arSa = { - code: "ar-sa", - week: { - dow: 0, - doy: 6 // The week that contains Jan 1st is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "السابق", - next: "التالي", - today: "اليوم", - month: "شهر", - week: "أسبوع", - day: "يوم", - list: "أجندة" - }, - weekLabel: "أسبوع", - allDayText: "اليوم كله", - eventLimitText: "أخرى", - noEventsMessage: "أي أحداث لعرض" - }; - - return arSa; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/ar-tn.js b/htdocs/public/high/plugins/fullcalendar/locales/ar-tn.js deleted file mode 100644 index 57a07f8f..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/ar-tn.js +++ /dev/null @@ -1,31 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['ar-tn'] = factory())); -}(this, function () { 'use strict'; - - var arTn = { - code: "ar-tn", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "السابق", - next: "التالي", - today: "اليوم", - month: "شهر", - week: "أسبوع", - day: "يوم", - list: "أجندة" - }, - weekLabel: "أسبوع", - allDayText: "اليوم كله", - eventLimitText: "أخرى", - noEventsMessage: "أي أحداث لعرض" - }; - - return arTn; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/ar.js b/htdocs/public/high/plugins/fullcalendar/locales/ar.js deleted file mode 100644 index f789afd1..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/ar.js +++ /dev/null @@ -1,31 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ar = factory())); -}(this, function () { 'use strict'; - - var ar = { - code: "ar", - week: { - dow: 6, - doy: 12 // The week that contains Jan 1st is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "السابق", - next: "التالي", - today: "اليوم", - month: "شهر", - week: "أسبوع", - day: "يوم", - list: "أجندة" - }, - weekLabel: "أسبوع", - allDayText: "اليوم كله", - eventLimitText: "أخرى", - noEventsMessage: "أي أحداث لعرض" - }; - - return ar; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/bg.js b/htdocs/public/high/plugins/fullcalendar/locales/bg.js deleted file mode 100644 index e7343a6c..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/bg.js +++ /dev/null @@ -1,31 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.bg = factory())); -}(this, function () { 'use strict'; - - var bg = { - code: "bg", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "назад", - next: "напред", - today: "днес", - month: "Месец", - week: "Седмица", - day: "Ден", - list: "График" - }, - allDayText: "Цял ден", - eventLimitText: function (n) { - return "+още " + n; - }, - noEventsMessage: "Няма събития за показване" - }; - - return bg; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/bs.js b/htdocs/public/high/plugins/fullcalendar/locales/bs.js deleted file mode 100644 index d96b8adb..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/bs.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.bs = factory())); -}(this, function () { 'use strict'; - - var bs = { - code: "bs", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Prošli", - next: "Sljedeći", - today: "Danas", - month: "Mjesec", - week: "Sedmica", - day: "Dan", - list: "Raspored" - }, - weekLabel: "Sed", - allDayText: "Cijeli dan", - eventLimitText: function (n) { - return "+ još " + n; - }, - noEventsMessage: "Nema događaja za prikazivanje" - }; - - return bs; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/ca.js b/htdocs/public/high/plugins/fullcalendar/locales/ca.js deleted file mode 100644 index d2d3e2aa..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/ca.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ca = factory())); -}(this, function () { 'use strict'; - - var ca = { - code: "ca", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Anterior", - next: "Següent", - today: "Avui", - month: "Mes", - week: "Setmana", - day: "Dia", - list: "Agenda" - }, - weekLabel: "Set", - allDayText: "Tot el dia", - eventLimitText: "més", - noEventsMessage: "No hi ha esdeveniments per mostrar" - }; - - return ca; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/cs.js b/htdocs/public/high/plugins/fullcalendar/locales/cs.js deleted file mode 100644 index 2624e360..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/cs.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.cs = factory())); -}(this, function () { 'use strict'; - - var cs = { - code: "cs", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Dříve", - next: "Později", - today: "Nyní", - month: "Měsíc", - week: "Týden", - day: "Den", - list: "Agenda" - }, - weekLabel: "Týd", - allDayText: "Celý den", - eventLimitText: function (n) { - return "+další: " + n; - }, - noEventsMessage: "Žádné akce k zobrazení" - }; - - return cs; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/da.js b/htdocs/public/high/plugins/fullcalendar/locales/da.js deleted file mode 100644 index 73d15592..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/da.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.da = factory())); -}(this, function () { 'use strict'; - - var da = { - code: "da", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Forrige", - next: "Næste", - today: "I dag", - month: "Måned", - week: "Uge", - day: "Dag", - list: "Agenda" - }, - weekLabel: "Uge", - allDayText: "Hele dagen", - eventLimitText: "flere", - noEventsMessage: "Ingen arrangementer at vise" - }; - - return da; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/de.js b/htdocs/public/high/plugins/fullcalendar/locales/de.js deleted file mode 100644 index ab5a815a..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/de.js +++ /dev/null @@ -1,33 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.de = factory())); -}(this, function () { 'use strict'; - - var de = { - code: "de", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Zurück", - next: "Vor", - today: "Heute", - year: "Jahr", - month: "Monat", - week: "Woche", - day: "Tag", - list: "Terminübersicht" - }, - weekLabel: "KW", - allDayText: "Ganztägig", - eventLimitText: function (n) { - return "+ weitere " + n; - }, - noEventsMessage: "Keine Ereignisse anzuzeigen" - }; - - return de; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/el.js b/htdocs/public/high/plugins/fullcalendar/locales/el.js deleted file mode 100644 index 9f59e365..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/el.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.el = factory())); -}(this, function () { 'use strict'; - - var el = { - code: "el", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4st is the first week of the year. - }, - buttonText: { - prev: "Προηγούμενος", - next: "Επόμενος", - today: "Σήμερα", - month: "Μήνας", - week: "Εβδομάδα", - day: "Ημέρα", - list: "Ατζέντα" - }, - weekLabel: "Εβδ", - allDayText: "Ολοήμερο", - eventLimitText: "περισσότερα", - noEventsMessage: "Δεν υπάρχουν γεγονότα για να εμφανιστεί" - }; - - return el; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/en-au.js b/htdocs/public/high/plugins/fullcalendar/locales/en-au.js deleted file mode 100644 index be10bfb6..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/en-au.js +++ /dev/null @@ -1,17 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['en-au'] = factory())); -}(this, function () { 'use strict'; - - var enAu = { - code: "en-au", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - } - }; - - return enAu; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/en-gb.js b/htdocs/public/high/plugins/fullcalendar/locales/en-gb.js deleted file mode 100644 index 8a4a84e6..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/en-gb.js +++ /dev/null @@ -1,17 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['en-gb'] = factory())); -}(this, function () { 'use strict'; - - var enGb = { - code: "en-gb", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - } - }; - - return enGb; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/en-nz.js b/htdocs/public/high/plugins/fullcalendar/locales/en-nz.js deleted file mode 100644 index df56c145..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/en-nz.js +++ /dev/null @@ -1,17 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['en-nz'] = factory())); -}(this, function () { 'use strict'; - - var enNz = { - code: "en-nz", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - } - }; - - return enNz; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/es-us.js b/htdocs/public/high/plugins/fullcalendar/locales/es-us.js deleted file mode 100644 index 1efa89a4..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/es-us.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['es-us'] = factory())); -}(this, function () { 'use strict'; - - var esUs = { - code: "es", - week: { - dow: 0, - doy: 6 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Ant", - next: "Sig", - today: "Hoy", - month: "Mes", - week: "Semana", - day: "Día", - list: "Agenda" - }, - weekLabel: "Sm", - allDayHtml: "Todo
el día", - eventLimitText: "más", - noEventsMessage: "No hay eventos para mostrar" - }; - - return esUs; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/es.js b/htdocs/public/high/plugins/fullcalendar/locales/es.js deleted file mode 100644 index bfd9af4c..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/es.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.es = factory())); -}(this, function () { 'use strict'; - - var es = { - code: "es", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Ant", - next: "Sig", - today: "Hoy", - month: "Mes", - week: "Semana", - day: "Día", - list: "Agenda" - }, - weekLabel: "Sm", - allDayHtml: "Todo
el día", - eventLimitText: "más", - noEventsMessage: "No hay eventos para mostrar" - }; - - return es; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/et.js b/htdocs/public/high/plugins/fullcalendar/locales/et.js deleted file mode 100644 index c44fcaec..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/et.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.et = factory())); -}(this, function () { 'use strict'; - - var et = { - code: "et", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Eelnev", - next: "Järgnev", - today: "Täna", - month: "Kuu", - week: "Nädal", - day: "Päev", - list: "Päevakord" - }, - weekLabel: "näd", - allDayText: "Kogu päev", - eventLimitText: function (n) { - return "+ veel " + n; - }, - noEventsMessage: "Kuvamiseks puuduvad sündmused" - }; - - return et; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/eu.js b/htdocs/public/high/plugins/fullcalendar/locales/eu.js deleted file mode 100644 index 91903aaa..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/eu.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.eu = factory())); -}(this, function () { 'use strict'; - - var eu = { - code: "eu", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Aur", - next: "Hur", - today: "Gaur", - month: "Hilabetea", - week: "Astea", - day: "Eguna", - list: "Agenda" - }, - weekLabel: "As", - allDayHtml: "Egun
osoa", - eventLimitText: "gehiago", - noEventsMessage: "Ez dago ekitaldirik erakusteko" - }; - - return eu; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/fa.js b/htdocs/public/high/plugins/fullcalendar/locales/fa.js deleted file mode 100644 index 031fc7b3..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/fa.js +++ /dev/null @@ -1,33 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.fa = factory())); -}(this, function () { 'use strict'; - - var fa = { - code: "fa", - week: { - dow: 6, - doy: 12 // The week that contains Jan 1st is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "قبلی", - next: "بعدی", - today: "امروز", - month: "ماه", - week: "هفته", - day: "روز", - list: "برنامه" - }, - weekLabel: "هف", - allDayText: "تمام روز", - eventLimitText: function (n) { - return "بیش از " + n; - }, - noEventsMessage: "هیچ رویدادی به نمایش" - }; - - return fa; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/fi.js b/htdocs/public/high/plugins/fullcalendar/locales/fi.js deleted file mode 100644 index 3912845c..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/fi.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.fi = factory())); -}(this, function () { 'use strict'; - - var fi = { - code: "fi", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Edellinen", - next: "Seuraava", - today: "Tänään", - month: "Kuukausi", - week: "Viikko", - day: "Päivä", - list: "Tapahtumat" - }, - weekLabel: "Vk", - allDayText: "Koko päivä", - eventLimitText: "lisää", - noEventsMessage: "Ei näytettäviä tapahtumia" - }; - - return fi; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/fr-ca.js b/htdocs/public/high/plugins/fullcalendar/locales/fr-ca.js deleted file mode 100644 index d554c140..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/fr-ca.js +++ /dev/null @@ -1,27 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['fr-ca'] = factory())); -}(this, function () { 'use strict'; - - var frCa = { - code: "fr", - buttonText: { - prev: "Précédent", - next: "Suivant", - today: "Aujourd'hui", - year: "Année", - month: "Mois", - week: "Semaine", - day: "Jour", - list: "Mon planning" - }, - weekLabel: "Sem.", - allDayHtml: "Toute la
journée", - eventLimitText: "en plus", - noEventsMessage: "Aucun événement à afficher" - }; - - return frCa; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/fr-ch.js b/htdocs/public/high/plugins/fullcalendar/locales/fr-ch.js deleted file mode 100644 index 358b8bf3..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/fr-ch.js +++ /dev/null @@ -1,31 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['fr-ch'] = factory())); -}(this, function () { 'use strict'; - - var frCh = { - code: "fr-ch", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Précédent", - next: "Suivant", - today: "Courant", - year: "Année", - month: "Mois", - week: "Semaine", - day: "Jour", - list: "Mon planning" - }, - weekLabel: "Sm", - allDayHtml: "Toute la
journée", - eventLimitText: "en plus", - noEventsMessage: "Aucun événement à afficher" - }; - - return frCh; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/fr.js b/htdocs/public/high/plugins/fullcalendar/locales/fr.js deleted file mode 100644 index b679ceff..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/fr.js +++ /dev/null @@ -1,31 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.fr = factory())); -}(this, function () { 'use strict'; - - var fr = { - code: "fr", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Précédent", - next: "Suivant", - today: "Aujourd'hui", - year: "Année", - month: "Mois", - week: "Semaine", - day: "Jour", - list: "Mon planning" - }, - weekLabel: "Sem.", - allDayHtml: "Toute la
journée", - eventLimitText: "en plus", - noEventsMessage: "Aucun événement à afficher" - }; - - return fr; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/gl.js b/htdocs/public/high/plugins/fullcalendar/locales/gl.js deleted file mode 100644 index 721a6a89..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/gl.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.gl = factory())); -}(this, function () { 'use strict'; - - var gl = { - code: "gl", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Ant", - next: "Seg", - today: "Hoxe", - month: "Mes", - week: "Semana", - day: "Día", - list: "Axenda" - }, - weekLabel: "Sm", - allDayHtml: "Todo
o día", - eventLimitText: "máis", - noEventsMessage: "Non hai eventos para amosar" - }; - - return gl; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/he.js b/htdocs/public/high/plugins/fullcalendar/locales/he.js deleted file mode 100644 index 3521d9e3..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/he.js +++ /dev/null @@ -1,27 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.he = factory())); -}(this, function () { 'use strict'; - - var he = { - code: "he", - dir: 'rtl', - buttonText: { - prev: "הקודם", - next: "הבא", - today: "היום", - month: "חודש", - week: "שבוע", - day: "יום", - list: "סדר יום" - }, - allDayText: "כל היום", - eventLimitText: "אחר", - noEventsMessage: "אין אירועים להצגה", - weekLabel: "שבוע" - }; - - return he; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/hi.js b/htdocs/public/high/plugins/fullcalendar/locales/hi.js deleted file mode 100644 index 15348e69..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/hi.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.hi = factory())); -}(this, function () { 'use strict'; - - var hi = { - code: "hi", - week: { - dow: 0, - doy: 6 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "पिछला", - next: "अगला", - today: "आज", - month: "महीना", - week: "सप्ताह", - day: "दिन", - list: "कार्यसूची" - }, - weekLabel: "हफ्ता", - allDayText: "सभी दिन", - eventLimitText: function (n) { - return "+अधिक " + n; - }, - noEventsMessage: "कोई घटनाओं को प्रदर्शित करने के लिए" - }; - - return hi; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/hr.js b/htdocs/public/high/plugins/fullcalendar/locales/hr.js deleted file mode 100644 index 295b4856..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/hr.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.hr = factory())); -}(this, function () { 'use strict'; - - var hr = { - code: "hr", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Prijašnji", - next: "Sljedeći", - today: "Danas", - month: "Mjesec", - week: "Tjedan", - day: "Dan", - list: "Raspored" - }, - weekLabel: "Tje", - allDayText: "Cijeli dan", - eventLimitText: function (n) { - return "+ još " + n; - }, - noEventsMessage: "Nema događaja za prikaz" - }; - - return hr; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/hu.js b/htdocs/public/high/plugins/fullcalendar/locales/hu.js deleted file mode 100644 index 2f0fe8ac..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/hu.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.hu = factory())); -}(this, function () { 'use strict'; - - var hu = { - code: "hu", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "vissza", - next: "előre", - today: "ma", - month: "Hónap", - week: "Hét", - day: "Nap", - list: "Napló" - }, - weekLabel: "Hét", - allDayText: "Egész nap", - eventLimitText: "további", - noEventsMessage: "Nincs megjeleníthető esemény" - }; - - return hu; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/id.js b/htdocs/public/high/plugins/fullcalendar/locales/id.js deleted file mode 100644 index b742e80d..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/id.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.id = factory())); -}(this, function () { 'use strict'; - - var id = { - code: "id", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "mundur", - next: "maju", - today: "hari ini", - month: "Bulan", - week: "Minggu", - day: "Hari", - list: "Agenda" - }, - weekLabel: "Mg", - allDayHtml: "Sehari
penuh", - eventLimitText: "lebih", - noEventsMessage: "Tidak ada acara untuk ditampilkan" - }; - - return id; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/is.js b/htdocs/public/high/plugins/fullcalendar/locales/is.js deleted file mode 100644 index dd569bce..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/is.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.is = factory())); -}(this, function () { 'use strict'; - - var is = { - code: "is", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Fyrri", - next: "Næsti", - today: "Í dag", - month: "Mánuður", - week: "Vika", - day: "Dagur", - list: "Dagskrá" - }, - weekLabel: "Vika", - allDayHtml: "Allan
daginn", - eventLimitText: "meira", - noEventsMessage: "Engir viðburðir til að sýna" - }; - - return is; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/it.js b/htdocs/public/high/plugins/fullcalendar/locales/it.js deleted file mode 100644 index 39a2829e..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/it.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.it = factory())); -}(this, function () { 'use strict'; - - var it = { - code: "it", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Prec", - next: "Succ", - today: "Oggi", - month: "Mese", - week: "Settimana", - day: "Giorno", - list: "Agenda" - }, - weekLabel: "Sm", - allDayHtml: "Tutto il
giorno", - eventLimitText: function (n) { - return "+altri " + n; - }, - noEventsMessage: "Non ci sono eventi da visualizzare" - }; - - return it; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/ja.js b/htdocs/public/high/plugins/fullcalendar/locales/ja.js deleted file mode 100644 index eb4245b2..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/ja.js +++ /dev/null @@ -1,28 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ja = factory())); -}(this, function () { 'use strict'; - - var ja = { - code: "ja", - buttonText: { - prev: "前", - next: "次", - today: "今日", - month: "月", - week: "週", - day: "日", - list: "予定リスト" - }, - weekLabel: "週", - allDayText: "終日", - eventLimitText: function (n) { - return "他 " + n + " 件"; - }, - noEventsMessage: "表示する予定はありません" - }; - - return ja; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/ka.js b/htdocs/public/high/plugins/fullcalendar/locales/ka.js deleted file mode 100644 index b971c033..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/ka.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ka = factory())); -}(this, function () { 'use strict'; - - var ka = { - code: "ka", - week: { - dow: 1, - doy: 7 - }, - buttonText: { - prev: "წინა", - next: "შემდეგი", - today: "დღეს", - month: "თვე", - week: "კვირა", - day: "დღე", - list: "დღის წესრიგი" - }, - weekLabel: "კვ", - allDayText: "მთელი დღე", - eventLimitText: function (n) { - return "+ კიდევ " + n; - }, - noEventsMessage: "ღონისძიებები არ არის" - }; - - return ka; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/kk.js b/htdocs/public/high/plugins/fullcalendar/locales/kk.js deleted file mode 100644 index 5b19b99d..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/kk.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.kk = factory())); -}(this, function () { 'use strict'; - - var kk = { - code: "kk", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Алдыңғы", - next: "Келесі", - today: "Бүгін", - month: "Ай", - week: "Апта", - day: "Күн", - list: "Күн тәртібі" - }, - weekLabel: "Не", - allDayText: "Күні бойы", - eventLimitText: function (n) { - return "+ тағы " + n; - }, - noEventsMessage: "Көрсету үшін оқиғалар жоқ" - }; - - return kk; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/ko.js b/htdocs/public/high/plugins/fullcalendar/locales/ko.js deleted file mode 100644 index ffe985d6..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/ko.js +++ /dev/null @@ -1,26 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ko = factory())); -}(this, function () { 'use strict'; - - var ko = { - code: "ko", - buttonText: { - prev: "이전달", - next: "다음달", - today: "오늘", - month: "월", - week: "주", - day: "일", - list: "일정목록" - }, - weekLabel: "주", - allDayText: "종일", - eventLimitText: "개", - noEventsMessage: "일정이 없습니다" - }; - - return ko; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/lb.js b/htdocs/public/high/plugins/fullcalendar/locales/lb.js deleted file mode 100644 index b9b17e3e..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/lb.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.lb = factory())); -}(this, function () { 'use strict'; - - var lb = { - code: "lb", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Zréck", - next: "Weider", - today: "Haut", - month: "Mount", - week: "Woch", - day: "Dag", - list: "Terminiwwersiicht" - }, - weekLabel: "W", - allDayText: "Ganzen Dag", - eventLimitText: "méi", - noEventsMessage: "Nee Evenementer ze affichéieren" - }; - - return lb; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/lt.js b/htdocs/public/high/plugins/fullcalendar/locales/lt.js deleted file mode 100644 index ec641b75..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/lt.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.lt = factory())); -}(this, function () { 'use strict'; - - var lt = { - code: "lt", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Atgal", - next: "Pirmyn", - today: "Šiandien", - month: "Mėnuo", - week: "Savaitė", - day: "Diena", - list: "Darbotvarkė" - }, - weekLabel: "SAV", - allDayText: "Visą dieną", - eventLimitText: "daugiau", - noEventsMessage: "Nėra įvykių rodyti" - }; - - return lt; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/lv.js b/htdocs/public/high/plugins/fullcalendar/locales/lv.js deleted file mode 100644 index 5453630d..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/lv.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.lv = factory())); -}(this, function () { 'use strict'; - - var lv = { - code: "lv", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Iepr.", - next: "Nāk.", - today: "Šodien", - month: "Mēnesis", - week: "Nedēļa", - day: "Diena", - list: "Dienas kārtība" - }, - weekLabel: "Ned.", - allDayText: "Visu dienu", - eventLimitText: function (n) { - return "+vēl " + n; - }, - noEventsMessage: "Nav notikumu" - }; - - return lv; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/mk.js b/htdocs/public/high/plugins/fullcalendar/locales/mk.js deleted file mode 100644 index 6729fa63..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/mk.js +++ /dev/null @@ -1,28 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.mk = factory())); -}(this, function () { 'use strict'; - - var mk = { - code: "mk", - buttonText: { - prev: "претходно", - next: "следно", - today: "Денес", - month: "Месец", - week: "Недела", - day: "Ден", - list: "График" - }, - weekLabel: "Сед", - allDayText: "Цел ден", - eventLimitText: function (n) { - return "+повеќе " + n; - }, - noEventsMessage: "Нема настани за прикажување" - }; - - return mk; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/ms.js b/htdocs/public/high/plugins/fullcalendar/locales/ms.js deleted file mode 100644 index 7205ecc7..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/ms.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ms = factory())); -}(this, function () { 'use strict'; - - var ms = { - code: "ms", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Sebelum", - next: "Selepas", - today: "hari ini", - month: "Bulan", - week: "Minggu", - day: "Hari", - list: "Agenda" - }, - weekLabel: "Mg", - allDayText: "Sepanjang hari", - eventLimitText: function (n) { - return "masih ada " + n + " acara"; - }, - noEventsMessage: "Tiada peristiwa untuk dipaparkan" - }; - - return ms; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/nb.js b/htdocs/public/high/plugins/fullcalendar/locales/nb.js deleted file mode 100644 index 6464461c..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/nb.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.nb = factory())); -}(this, function () { 'use strict'; - - var nb = { - code: "nb", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Forrige", - next: "Neste", - today: "I dag", - month: "Måned", - week: "Uke", - day: "Dag", - list: "Agenda" - }, - weekLabel: "Uke", - allDayText: "Hele dagen", - eventLimitText: "til", - noEventsMessage: "Ingen hendelser å vise" - }; - - return nb; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/nl.js b/htdocs/public/high/plugins/fullcalendar/locales/nl.js deleted file mode 100644 index c91b5e55..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/nl.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.nl = factory())); -}(this, function () { 'use strict'; - - var nl = { - code: "nl", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Voorgaand", - next: "Volgende", - today: "Vandaag", - year: "Jaar", - month: "Maand", - week: "Week", - day: "Dag", - list: "Agenda" - }, - allDayText: "Hele dag", - eventLimitText: "extra", - noEventsMessage: "Geen evenementen om te laten zien" - }; - - return nl; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/nn.js b/htdocs/public/high/plugins/fullcalendar/locales/nn.js deleted file mode 100644 index a5cdd162..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/nn.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.nn = factory())); -}(this, function () { 'use strict'; - - var nn = { - code: "nn", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Førre", - next: "Neste", - today: "I dag", - month: "Månad", - week: "Veke", - day: "Dag", - list: "Agenda" - }, - weekLabel: "Veke", - allDayText: "Heile dagen", - eventLimitText: "til", - noEventsMessage: "Ingen hendelser å vise" - }; - - return nn; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/pl.js b/htdocs/public/high/plugins/fullcalendar/locales/pl.js deleted file mode 100644 index 0a22e69c..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/pl.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.pl = factory())); -}(this, function () { 'use strict'; - - var pl = { - code: "pl", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Poprzedni", - next: "Następny", - today: "Dziś", - month: "Miesiąc", - week: "Tydzień", - day: "Dzień", - list: "Plan dnia" - }, - weekLabel: "Tydz", - allDayText: "Cały dzień", - eventLimitText: "więcej", - noEventsMessage: "Brak wydarzeń do wyświetlenia" - }; - - return pl; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/pt-br.js b/htdocs/public/high/plugins/fullcalendar/locales/pt-br.js deleted file mode 100644 index 0133cd6b..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/pt-br.js +++ /dev/null @@ -1,28 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['pt-br'] = factory())); -}(this, function () { 'use strict'; - - var ptBr = { - code: "pt-br", - buttonText: { - prev: "Anterior", - next: "Próximo", - today: "Hoje", - month: "Mês", - week: "Semana", - day: "Dia", - list: "Compromissos" - }, - weekLabel: "Sm", - allDayText: "dia inteiro", - eventLimitText: function (n) { - return "mais +" + n; - }, - noEventsMessage: "Não há eventos para mostrar" - }; - - return ptBr; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/pt.js b/htdocs/public/high/plugins/fullcalendar/locales/pt.js deleted file mode 100644 index 5c54d8d4..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/pt.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.pt = factory())); -}(this, function () { 'use strict'; - - var pt = { - code: "pt", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Anterior", - next: "Seguinte", - today: "Hoje", - month: "Mês", - week: "Semana", - day: "Dia", - list: "Agenda" - }, - weekLabel: "Sem", - allDayText: "Todo o dia", - eventLimitText: "mais", - noEventsMessage: "Não há eventos para mostrar" - }; - - return pt; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/ro.js b/htdocs/public/high/plugins/fullcalendar/locales/ro.js deleted file mode 100644 index e8992f27..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/ro.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ro = factory())); -}(this, function () { 'use strict'; - - var ro = { - code: "ro", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "precedentă", - next: "următoare", - today: "Azi", - month: "Lună", - week: "Săptămână", - day: "Zi", - list: "Agendă" - }, - weekLabel: "Săpt", - allDayText: "Toată ziua", - eventLimitText: function (n) { - return "+alte " + n; - }, - noEventsMessage: "Nu există evenimente de afișat" - }; - - return ro; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/ru.js b/htdocs/public/high/plugins/fullcalendar/locales/ru.js deleted file mode 100644 index 77e0308e..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/ru.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ru = factory())); -}(this, function () { 'use strict'; - - var ru = { - code: "ru", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Пред", - next: "След", - today: "Сегодня", - month: "Месяц", - week: "Неделя", - day: "День", - list: "Повестка дня" - }, - weekLabel: "Нед", - allDayText: "Весь день", - eventLimitText: function (n) { - return "+ ещё " + n; - }, - noEventsMessage: "Нет событий для отображения" - }; - - return ru; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/sk.js b/htdocs/public/high/plugins/fullcalendar/locales/sk.js deleted file mode 100644 index 3513a64a..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/sk.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.sk = factory())); -}(this, function () { 'use strict'; - - var sk = { - code: "sk", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Predchádzajúci", - next: "Nasledujúci", - today: "Dnes", - month: "Mesiac", - week: "Týždeň", - day: "Deň", - list: "Rozvrh" - }, - weekLabel: "Ty", - allDayText: "Celý deň", - eventLimitText: function (n) { - return "+ďalšie: " + n; - }, - noEventsMessage: "Žiadne akcie na zobrazenie" - }; - - return sk; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/sl.js b/htdocs/public/high/plugins/fullcalendar/locales/sl.js deleted file mode 100644 index 32335535..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/sl.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.sl = factory())); -}(this, function () { 'use strict'; - - var sl = { - code: "sl", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Prejšnji", - next: "Naslednji", - today: "Trenutni", - month: "Mesec", - week: "Teden", - day: "Dan", - list: "Dnevni red" - }, - weekLabel: "Teden", - allDayText: "Ves dan", - eventLimitText: "več", - noEventsMessage: "Ni dogodkov za prikaz" - }; - - return sl; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/sq.js b/htdocs/public/high/plugins/fullcalendar/locales/sq.js deleted file mode 100644 index 0d43a522..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/sq.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.sq = factory())); -}(this, function () { 'use strict'; - - var sq = { - code: "sq", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "mbrapa", - next: "Përpara", - today: "sot", - month: "Muaj", - week: "Javë", - day: "Ditë", - list: "Listë" - }, - weekLabel: "Ja", - allDayHtml: "Gjithë
ditën", - eventLimitText: function (n) { - return "+më tepër " + n; - }, - noEventsMessage: "Nuk ka evente për të shfaqur" - }; - - return sq; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/sr-cyrl.js b/htdocs/public/high/plugins/fullcalendar/locales/sr-cyrl.js deleted file mode 100644 index ba0d0dfa..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/sr-cyrl.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['sr-cyrl'] = factory())); -}(this, function () { 'use strict'; - - var srCyrl = { - code: "sr-cyrl", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Претходна", - next: "следећи", - today: "Данас", - month: "Месец", - week: "Недеља", - day: "Дан", - list: "Планер" - }, - weekLabel: "Сед", - allDayText: "Цео дан", - eventLimitText: function (n) { - return "+ још " + n; - }, - noEventsMessage: "Нема догађаја за приказ" - }; - - return srCyrl; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/sr.js b/htdocs/public/high/plugins/fullcalendar/locales/sr.js deleted file mode 100644 index 23e5c9b2..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/sr.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.sr = factory())); -}(this, function () { 'use strict'; - - var sr = { - code: "sr", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Prethodna", - next: "Sledeći", - today: "Danas", - month: "Mеsеc", - week: "Nеdеlja", - day: "Dan", - list: "Planеr" - }, - weekLabel: "Sed", - allDayText: "Cеo dan", - eventLimitText: function (n) { - return "+ još " + n; - }, - noEventsMessage: "Nеma događaja za prikaz" - }; - - return sr; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/sv.js b/htdocs/public/high/plugins/fullcalendar/locales/sv.js deleted file mode 100644 index a887060b..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/sv.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.sv = factory())); -}(this, function () { 'use strict'; - - var sv = { - code: "sv", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Förra", - next: "Nästa", - today: "Idag", - month: "Månad", - week: "Vecka", - day: "Dag", - list: "Program" - }, - weekLabel: "v.", - allDayText: "Heldag", - eventLimitText: "till", - noEventsMessage: "Inga händelser att visa" - }; - - return sv; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/th.js b/htdocs/public/high/plugins/fullcalendar/locales/th.js deleted file mode 100644 index caa3fe9a..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/th.js +++ /dev/null @@ -1,25 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.th = factory())); -}(this, function () { 'use strict'; - - var th = { - code: "th", - buttonText: { - prev: "ย้อน", - next: "ถัดไป", - today: "วันนี้", - month: "เดือน", - week: "สัปดาห์", - day: "วัน", - list: "แผนงาน" - }, - allDayText: "ตลอดวัน", - eventLimitText: "เพิ่มเติม", - noEventsMessage: "ไม่มีกิจกรรมที่จะแสดง" - }; - - return th; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/tr.js b/htdocs/public/high/plugins/fullcalendar/locales/tr.js deleted file mode 100644 index 48458982..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/tr.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.tr = factory())); -}(this, function () { 'use strict'; - - var tr = { - code: "tr", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "geri", - next: "ileri", - today: "bugün", - month: "Ay", - week: "Hafta", - day: "Gün", - list: "Ajanda" - }, - weekLabel: "Hf", - allDayText: "Tüm gün", - eventLimitText: "daha fazla", - noEventsMessage: "Gösterilecek etkinlik yok" - }; - - return tr; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/uk.js b/htdocs/public/high/plugins/fullcalendar/locales/uk.js deleted file mode 100644 index de33f250..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/uk.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.uk = factory())); -}(this, function () { 'use strict'; - - var uk = { - code: "uk", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Попередній", - next: "далі", - today: "Сьогодні", - month: "Місяць", - week: "Тиждень", - day: "День", - list: "Порядок денний" - }, - weekLabel: "Тиж", - allDayText: "Увесь день", - eventLimitText: function (n) { - return "+ще " + n + "..."; - }, - noEventsMessage: "Немає подій для відображення" - }; - - return uk; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/vi.js b/htdocs/public/high/plugins/fullcalendar/locales/vi.js deleted file mode 100644 index 167ce11d..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/vi.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.vi = factory())); -}(this, function () { 'use strict'; - - var vi = { - code: "vi", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Trước", - next: "Tiếp", - today: "Hôm nay", - month: "Tháng", - week: "Tuần", - day: "Ngày", - list: "Lịch biểu" - }, - weekLabel: "Tu", - allDayText: "Cả ngày", - eventLimitText: function (n) { - return "+ thêm " + n; - }, - noEventsMessage: "Không có sự kiện để hiển thị" - }; - - return vi; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/zh-cn.js b/htdocs/public/high/plugins/fullcalendar/locales/zh-cn.js deleted file mode 100644 index 4debbb9e..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/zh-cn.js +++ /dev/null @@ -1,33 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['zh-cn'] = factory())); -}(this, function () { 'use strict'; - - var zhCn = { - code: "zh-cn", - week: { - // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效 - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "上月", - next: "下月", - today: "今天", - month: "月", - week: "周", - day: "日", - list: "日程" - }, - weekLabel: "周", - allDayText: "全天", - eventLimitText: function (n) { - return "另外 " + n + " 个"; - }, - noEventsMessage: "没有事件显示" - }; - - return zhCn; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/locales/zh-tw.js b/htdocs/public/high/plugins/fullcalendar/locales/zh-tw.js deleted file mode 100644 index bc14dcd4..00000000 --- a/htdocs/public/high/plugins/fullcalendar/locales/zh-tw.js +++ /dev/null @@ -1,26 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['zh-tw'] = factory())); -}(this, function () { 'use strict'; - - var zhTw = { - code: "zh-tw", - buttonText: { - prev: "上月", - next: "下月", - today: "今天", - month: "月", - week: "週", - day: "天", - list: "活動列表" - }, - weekLabel: "周", - allDayText: "整天", - eventLimitText: '顯示更多', - noEventsMessage: "没有任何活動" - }; - - return zhTw; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/main.css b/htdocs/public/high/plugins/fullcalendar/main.css deleted file mode 100644 index 4412a185..00000000 --- a/htdocs/public/high/plugins/fullcalendar/main.css +++ /dev/null @@ -1,1052 +0,0 @@ -@charset "UTF-8"; -.fc { - direction: ltr; - text-align: left; -} - -.fc-rtl { - text-align: right; -} - -body .fc { - /* extra precedence to overcome jqui */ - font-size: 1em; -} - -/* Colors ---------------------------------------------------------------------------------------------------*/ -.fc-highlight { - /* when user is selecting cells */ - background: #bce8f1; - opacity: 0.3; -} - -.fc-bgevent { - /* default look for background events */ - background: #8fdf82; - opacity: 0.3; -} - -.fc-nonbusiness { - /* default look for non-business-hours areas */ - /* will inherit .fc-bgevent's styles */ - background: #d7d7d7; -} - -/* Popover ---------------------------------------------------------------------------------------------------*/ -.fc-popover { - position: absolute; - box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15); -} - -.fc-popover .fc-header { - /* TODO: be more consistent with fc-head/fc-body */ - display: flex; - flex-direction: row; - justify-content: space-between; - align-items: center; - padding: 2px 4px; -} - -.fc-rtl .fc-popover .fc-header { - flex-direction: row-reverse; -} - -.fc-popover .fc-header .fc-title { - margin: 0 2px; -} - -.fc-popover .fc-header .fc-close { - cursor: pointer; - opacity: 0.65; - font-size: 1.1em; -} - -/* Misc Reusable Components ---------------------------------------------------------------------------------------------------*/ -.fc-divider { - border-style: solid; - border-width: 1px; -} - -hr.fc-divider { - height: 0; - margin: 0; - padding: 0 0 2px; - /* height is unreliable across browsers, so use padding */ - border-width: 1px 0; -} - -.fc-bg, -.fc-bgevent-skeleton, -.fc-highlight-skeleton, -.fc-mirror-skeleton { - /* these element should always cling to top-left/right corners */ - position: absolute; - top: 0; - left: 0; - right: 0; -} - -.fc-bg { - bottom: 0; - /* strech bg to bottom edge */ -} - -.fc-bg table { - height: 100%; - /* strech bg to bottom edge */ -} - -/* Tables ---------------------------------------------------------------------------------------------------*/ -.fc table { - width: 100%; - box-sizing: border-box; - /* fix scrollbar issue in firefox */ - table-layout: fixed; - border-collapse: collapse; - border-spacing: 0; - font-size: 1em; - /* normalize cross-browser */ -} - -.fc th { - text-align: center; -} - -.fc th, -.fc td { - border-style: solid; - border-width: 1px; - padding: 0; - vertical-align: top; -} - -.fc td.fc-today { - border-style: double; - /* overcome neighboring borders */ -} - -/* Internal Nav Links ---------------------------------------------------------------------------------------------------*/ -a[data-goto] { - cursor: pointer; -} - -a[data-goto]:hover { - text-decoration: underline; -} - -/* Fake Table Rows ---------------------------------------------------------------------------------------------------*/ -.fc .fc-row { - /* extra precedence to overcome themes forcing a 1px border */ - /* no visible border by default. but make available if need be (scrollbar width compensation) */ - border-style: solid; - border-width: 0; -} - -.fc-row table { - /* don't put left/right border on anything within a fake row. - the outer tbody will worry about this */ - border-left: 0 hidden transparent; - border-right: 0 hidden transparent; - /* no bottom borders on rows */ - border-bottom: 0 hidden transparent; -} - -.fc-row:first-child table { - border-top: 0 hidden transparent; - /* no top border on first row */ -} - -/* Day Row (used within the header and the DayGrid) ---------------------------------------------------------------------------------------------------*/ -.fc-row { - position: relative; -} - -.fc-row .fc-bg { - z-index: 1; -} - -/* highlighting cells & background event skeleton */ -.fc-row .fc-bgevent-skeleton, -.fc-row .fc-highlight-skeleton { - bottom: 0; - /* stretch skeleton to bottom of row */ -} - -.fc-row .fc-bgevent-skeleton table, -.fc-row .fc-highlight-skeleton table { - height: 100%; - /* stretch skeleton to bottom of row */ -} - -.fc-row .fc-highlight-skeleton td, -.fc-row .fc-bgevent-skeleton td { - border-color: transparent; -} - -.fc-row .fc-bgevent-skeleton { - z-index: 2; -} - -.fc-row .fc-highlight-skeleton { - z-index: 3; -} - -/* -row content (which contains day/week numbers and events) as well as "mirror" (which contains -temporary rendered events). -*/ -.fc-row .fc-content-skeleton { - position: relative; - z-index: 4; - padding-bottom: 2px; - /* matches the space above the events */ -} - -.fc-row .fc-mirror-skeleton { - z-index: 5; -} - -.fc .fc-row .fc-content-skeleton table, -.fc .fc-row .fc-content-skeleton td, -.fc .fc-row .fc-mirror-skeleton td { - /* see-through to the background below */ - /* extra precedence to prevent theme-provided backgrounds */ - background: none; - /* in case s are globally styled */ - border-color: transparent; -} - -.fc-row .fc-content-skeleton td, -.fc-row .fc-mirror-skeleton td { - /* don't put a border between events and/or the day number */ - border-bottom: 0; -} - -.fc-row .fc-content-skeleton tbody td, -.fc-row .fc-mirror-skeleton tbody td { - /* don't put a border between event cells */ - border-top: 0; -} - -/* Scrolling Container ---------------------------------------------------------------------------------------------------*/ -.fc-scroller { - -webkit-overflow-scrolling: touch; -} - -/* TODO: move to timegrid/daygrid */ -.fc-scroller > .fc-day-grid, -.fc-scroller > .fc-time-grid { - position: relative; - /* re-scope all positions */ - width: 100%; - /* hack to force re-sizing this inner element when scrollbars appear/disappear */ -} - -/* Global Event Styles ---------------------------------------------------------------------------------------------------*/ -.fc-event { - position: relative; - /* for resize handle and other inner positioning */ - display: block; - /* make the tag block */ - font-size: 0.85em; - line-height: 1.4; - border-radius: 3px; - border: 1px solid #3788d8; -} - -.fc-event, -.fc-event-dot { - background-color: #3788d8; - /* default BACKGROUND color */ -} - -.fc-event, -.fc-event:hover { - color: #fff; - /* default TEXT color */ - text-decoration: none; - /* if has an href */ -} - -.fc-event[href], -.fc-event.fc-draggable { - cursor: pointer; - /* give events with links and draggable events a hand mouse pointer */ -} - -.fc-not-allowed, -.fc-not-allowed .fc-event { - /* to override an event's custom cursor */ - cursor: not-allowed; -} - -.fc-event .fc-content { - position: relative; - z-index: 2; -} - -/* resizer (cursor AND touch devices) */ -.fc-event .fc-resizer { - position: absolute; - z-index: 4; -} - -/* resizer (touch devices) */ -.fc-event .fc-resizer { - display: none; -} - -.fc-event.fc-allow-mouse-resize .fc-resizer, -.fc-event.fc-selected .fc-resizer { - /* only show when hovering or selected (with touch) */ - display: block; -} - -/* hit area */ -.fc-event.fc-selected .fc-resizer:before { - /* 40x40 touch area */ - content: ""; - position: absolute; - z-index: 9999; - /* user of this util can scope within a lower z-index */ - top: 50%; - left: 50%; - width: 40px; - height: 40px; - margin-left: -20px; - margin-top: -20px; -} - -/* Event Selection (only for touch devices) ---------------------------------------------------------------------------------------------------*/ -.fc-event.fc-selected { - z-index: 9999 !important; - /* overcomes inline z-index */ - box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2); -} - -.fc-event.fc-selected:after { - content: ""; - position: absolute; - z-index: 1; - /* same z-index as fc-bg, behind text */ - /* overcome the borders */ - top: -1px; - right: -1px; - bottom: -1px; - left: -1px; - /* darkening effect */ - background: #000; - opacity: 0.25; -} - -/* Event Dragging ---------------------------------------------------------------------------------------------------*/ -.fc-event.fc-dragging.fc-selected { - box-shadow: 0 2px 7px rgba(0, 0, 0, 0.3); -} - -.fc-event.fc-dragging:not(.fc-selected) { - opacity: 0.75; -} - -/* Horizontal Events ---------------------------------------------------------------------------------------------------*/ -/* bigger touch area when selected */ -.fc-h-event.fc-selected:before { - content: ""; - position: absolute; - z-index: 3; - /* below resizers */ - top: -10px; - bottom: -10px; - left: 0; - right: 0; -} - -/* events that are continuing to/from another week. kill rounded corners and butt up against edge */ -.fc-ltr .fc-h-event.fc-not-start, -.fc-rtl .fc-h-event.fc-not-end { - margin-left: 0; - border-left-width: 0; - padding-left: 1px; - /* replace the border with padding */ - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} - -.fc-ltr .fc-h-event.fc-not-end, -.fc-rtl .fc-h-event.fc-not-start { - margin-right: 0; - border-right-width: 0; - padding-right: 1px; - /* replace the border with padding */ - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} - -/* resizer (cursor AND touch devices) */ -/* left resizer */ -.fc-ltr .fc-h-event .fc-start-resizer, -.fc-rtl .fc-h-event .fc-end-resizer { - cursor: w-resize; - left: -1px; - /* overcome border */ -} - -/* right resizer */ -.fc-ltr .fc-h-event .fc-end-resizer, -.fc-rtl .fc-h-event .fc-start-resizer { - cursor: e-resize; - right: -1px; - /* overcome border */ -} - -/* resizer (mouse devices) */ -.fc-h-event.fc-allow-mouse-resize .fc-resizer { - width: 7px; - top: -1px; - /* overcome top border */ - bottom: -1px; - /* overcome bottom border */ -} - -/* resizer (touch devices) */ -.fc-h-event.fc-selected .fc-resizer { - /* 8x8 little dot */ - border-radius: 4px; - border-width: 1px; - width: 6px; - height: 6px; - border-style: solid; - border-color: inherit; - background: #fff; - /* vertically center */ - top: 50%; - margin-top: -4px; -} - -/* left resizer */ -.fc-ltr .fc-h-event.fc-selected .fc-start-resizer, -.fc-rtl .fc-h-event.fc-selected .fc-end-resizer { - margin-left: -4px; - /* centers the 8x8 dot on the left edge */ -} - -/* right resizer */ -.fc-ltr .fc-h-event.fc-selected .fc-end-resizer, -.fc-rtl .fc-h-event.fc-selected .fc-start-resizer { - margin-right: -4px; - /* centers the 8x8 dot on the right edge */ -} - -/* DayGrid events ----------------------------------------------------------------------------------------------------- -We use the full "fc-day-grid-event" class instead of using descendants because the event won't -be a descendant of the grid when it is being dragged. -*/ -.fc-day-grid-event { - margin: 1px 2px 0; - /* spacing between events and edges */ - padding: 0 1px; -} - -tr:first-child > td > .fc-day-grid-event { - margin-top: 2px; - /* a little bit more space before the first event */ -} - -.fc-mirror-skeleton tr:first-child > td > .fc-day-grid-event { - margin-top: 0; - /* except for mirror skeleton */ -} - -.fc-day-grid-event .fc-content { - /* force events to be one-line tall */ - white-space: nowrap; - overflow: hidden; -} - -.fc-day-grid-event .fc-time { - font-weight: bold; -} - -/* resizer (cursor devices) */ -/* left resizer */ -.fc-ltr .fc-day-grid-event.fc-allow-mouse-resize .fc-start-resizer, -.fc-rtl .fc-day-grid-event.fc-allow-mouse-resize .fc-end-resizer { - margin-left: -2px; - /* to the day cell's edge */ -} - -/* right resizer */ -.fc-ltr .fc-day-grid-event.fc-allow-mouse-resize .fc-end-resizer, -.fc-rtl .fc-day-grid-event.fc-allow-mouse-resize .fc-start-resizer { - margin-right: -2px; - /* to the day cell's edge */ -} - -/* Event Limiting ---------------------------------------------------------------------------------------------------*/ -/* "more" link that represents hidden events */ -a.fc-more { - margin: 1px 3px; - font-size: 0.85em; - cursor: pointer; - text-decoration: none; -} - -a.fc-more:hover { - text-decoration: underline; -} - -.fc-limited { - /* rows and cells that are hidden because of a "more" link */ - display: none; -} - -/* popover that appears when "more" link is clicked */ -.fc-day-grid .fc-row { - z-index: 1; - /* make the "more" popover one higher than this */ -} - -.fc-more-popover { - z-index: 2; - width: 220px; -} - -.fc-more-popover .fc-event-container { - padding: 10px; -} - -/* Now Indicator ---------------------------------------------------------------------------------------------------*/ -.fc-now-indicator { - position: absolute; - border: 0 solid red; -} - -/* Utilities ---------------------------------------------------------------------------------------------------*/ -.fc-unselectable { - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - -webkit-touch-callout: none; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -} - -/* -TODO: more distinction between this file and common.css -*/ -/* Colors ---------------------------------------------------------------------------------------------------*/ -.fc-unthemed th, -.fc-unthemed td, -.fc-unthemed thead, -.fc-unthemed tbody, -.fc-unthemed .fc-divider, -.fc-unthemed .fc-row, -.fc-unthemed .fc-content, -.fc-unthemed .fc-popover, -.fc-unthemed .fc-list-view, -.fc-unthemed .fc-list-heading td { - border-color: #ddd; -} - -.fc-unthemed .fc-popover { - background-color: #fff; -} - -.fc-unthemed .fc-divider, -.fc-unthemed .fc-popover .fc-header, -.fc-unthemed .fc-list-heading td { - background: #eee; -} - -.fc-unthemed td.fc-today { - background: #fcf8e3; -} - -.fc-unthemed .fc-disabled-day { - background: #d7d7d7; - opacity: 0.3; -} - -/* Icons --------------------------------------------------------------------------------------------------- -from https://feathericons.com/ and built with IcoMoon -*/ -@font-face { - font-family: "fcicons"; - src: url("data:application/x-font-ttf;charset=utf-8;base64,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") format("truetype"); - font-weight: normal; - font-style: normal; -} -.fc-icon { - /* use !important to prevent issues with browser extensions that change fonts */ - font-family: "fcicons" !important; - speak: none; - font-style: normal; - font-weight: normal; - font-variant: normal; - text-transform: none; - line-height: 1; - /* Better Font Rendering =========== */ - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -.fc-icon-chevron-left:before { - content: ""; -} - -.fc-icon-chevron-right:before { - content: ""; -} - -.fc-icon-chevrons-left:before { - content: ""; -} - -.fc-icon-chevrons-right:before { - content: ""; -} - -.fc-icon-minus-square:before { - content: ""; -} - -.fc-icon-plus-square:before { - content: ""; -} - -.fc-icon-x:before { - content: ""; -} - -.fc-icon { - display: inline-block; - width: 1em; - height: 1em; - text-align: center; -} - -/* Buttons --------------------------------------------------------------------------------------------------- -Lots taken from Flatly (MIT): https://bootswatch.com/4/flatly/bootstrap.css -*/ -/* reset */ -.fc-button { - border-radius: 0; - overflow: visible; - text-transform: none; - margin: 0; - font-family: inherit; - font-size: inherit; - line-height: inherit; -} - -.fc-button:focus { - outline: 1px dotted; - outline: 5px auto -webkit-focus-ring-color; -} - -.fc-button { - -webkit-appearance: button; -} - -.fc-button:not(:disabled) { - cursor: pointer; -} - -.fc-button::-moz-focus-inner { - padding: 0; - border-style: none; -} - -/* theme */ -.fc-button { - display: inline-block; - font-weight: 400; - color: #212529; - text-align: center; - vertical-align: middle; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - background-color: transparent; - border: 1px solid transparent; - padding: 0.4em 0.65em; - font-size: 1em; - line-height: 1.5; - border-radius: 0.25em; -} - -.fc-button:hover { - color: #212529; - text-decoration: none; -} - -.fc-button:focus { - outline: 0; - -webkit-box-shadow: 0 0 0 0.2rem rgba(44, 62, 80, 0.25); - box-shadow: 0 0 0 0.2rem rgba(44, 62, 80, 0.25); -} - -.fc-button:disabled { - opacity: 0.65; -} - -/* "primary" coloring */ -.fc-button-primary { - color: #fff; - background-color: #2C3E50; - border-color: #2C3E50; -} - -.fc-button-primary:hover { - color: #fff; - background-color: #1e2b37; - border-color: #1a252f; -} - -.fc-button-primary:focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(76, 91, 106, 0.5); - box-shadow: 0 0 0 0.2rem rgba(76, 91, 106, 0.5); -} - -.fc-button-primary:disabled { - color: #fff; - background-color: #2C3E50; - border-color: #2C3E50; -} - -.fc-button-primary:not(:disabled):active, -.fc-button-primary:not(:disabled).fc-button-active { - color: #fff; - background-color: #1a252f; - border-color: #151e27; -} - -.fc-button-primary:not(:disabled):active:focus, -.fc-button-primary:not(:disabled).fc-button-active:focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(76, 91, 106, 0.5); - box-shadow: 0 0 0 0.2rem rgba(76, 91, 106, 0.5); -} - -/* icons within buttons */ -.fc-button .fc-icon { - vertical-align: middle; - font-size: 1.5em; -} - -/* Buttons Groups ---------------------------------------------------------------------------------------------------*/ -.fc-button-group { - position: relative; - display: -webkit-inline-box; - display: -ms-inline-flexbox; - display: inline-flex; - vertical-align: middle; -} - -.fc-button-group > .fc-button { - position: relative; - -webkit-box-flex: 1; - -ms-flex: 1 1 auto; - flex: 1 1 auto; -} - -.fc-button-group > .fc-button:hover { - z-index: 1; -} - -.fc-button-group > .fc-button:focus, -.fc-button-group > .fc-button:active, -.fc-button-group > .fc-button.fc-button-active { - z-index: 1; -} - -.fc-button-group > .fc-button:not(:first-child) { - margin-left: -1px; -} - -.fc-button-group > .fc-button:not(:last-child) { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} - -.fc-button-group > .fc-button:not(:first-child) { - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} - -/* Popover ---------------------------------------------------------------------------------------------------*/ -.fc-unthemed .fc-popover { - border-width: 1px; - border-style: solid; -} - -/* List View ---------------------------------------------------------------------------------------------------*/ -.fc-unthemed .fc-list-item:hover td { - background-color: #f5f5f5; -} - -/* Toolbar ---------------------------------------------------------------------------------------------------*/ -.fc-toolbar { - display: flex; - justify-content: space-between; - align-items: center; -} - -.fc-toolbar.fc-header-toolbar { - margin-bottom: 1.5em; -} - -.fc-toolbar.fc-footer-toolbar { - margin-top: 1.5em; -} - -/* inner content */ -.fc-toolbar > * > :not(:first-child) { - margin-left: 0.75em; -} - -.fc-toolbar h2 { - font-size: 1.75em; - margin: 0; -} - -/* View Structure ---------------------------------------------------------------------------------------------------*/ -.fc-view-container { - position: relative; -} - -/* undo twitter bootstrap's box-sizing rules. normalizes positioning techniques */ -/* don't do this for the toolbar because we'll want bootstrap to style those buttons as some pt */ -.fc-view-container *, -.fc-view-container *:before, -.fc-view-container *:after { - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; -} - -.fc-view, -.fc-view > table { - /* so dragged elements can be above the view's main element */ - position: relative; - z-index: 1; -} - -@media print { - .fc { - max-width: 100% !important; - } - - /* Global Event Restyling - --------------------------------------------------------------------------------------------------*/ - .fc-event { - background: #fff !important; - color: #000 !important; - page-break-inside: avoid; - } - - .fc-event .fc-resizer { - display: none; - } - - /* Table & Day-Row Restyling - --------------------------------------------------------------------------------------------------*/ - .fc th, -.fc td, -.fc hr, -.fc thead, -.fc tbody, -.fc-row { - border-color: #ccc !important; - background: #fff !important; - } - - /* kill the overlaid, absolutely-positioned components */ - /* common... */ - .fc-bg, -.fc-bgevent-skeleton, -.fc-highlight-skeleton, -.fc-mirror-skeleton, -.fc-bgevent-container, -.fc-business-container, -.fc-highlight-container, -.fc-mirror-container { - display: none; - } - - /* don't force a min-height on rows (for DayGrid) */ - .fc tbody .fc-row { - height: auto !important; - /* undo height that JS set in distributeHeight */ - min-height: 0 !important; - /* undo the min-height from each view's specific stylesheet */ - } - - .fc tbody .fc-row .fc-content-skeleton { - position: static; - /* undo .fc-rigid */ - padding-bottom: 0 !important; - /* use a more border-friendly method for this... */ - } - - .fc tbody .fc-row .fc-content-skeleton tbody tr:last-child td { - /* only works in newer browsers */ - padding-bottom: 1em; - /* ...gives space within the skeleton. also ensures min height in a way */ - } - - .fc tbody .fc-row .fc-content-skeleton table { - /* provides a min-height for the row, but only effective for IE, which exaggerates this value, - making it look more like 3em. for other browers, it will already be this tall */ - height: 1em; - } - - /* Undo month-view event limiting. Display all events and hide the "more" links - --------------------------------------------------------------------------------------------------*/ - .fc-more-cell, -.fc-more { - display: none !important; - } - - .fc tr.fc-limited { - display: table-row !important; - } - - .fc td.fc-limited { - display: table-cell !important; - } - - .fc-popover { - display: none; - /* never display the "more.." popover in print mode */ - } - - /* TimeGrid Restyling - --------------------------------------------------------------------------------------------------*/ - /* undo the min-height 100% trick used to fill the container's height */ - .fc-time-grid { - min-height: 0 !important; - } - - /* don't display the side axis at all ("all-day" and time cells) */ - .fc-timeGrid-view .fc-axis { - display: none; - } - - /* don't display the horizontal lines */ - .fc-slats, -.fc-time-grid hr { - /* this hr is used when height is underused and needs to be filled */ - display: none !important; - /* important overrides inline declaration */ - } - - /* let the container that holds the events be naturally positioned and create real height */ - .fc-time-grid .fc-content-skeleton { - position: static; - } - - /* in case there are no events, we still want some height */ - .fc-time-grid .fc-content-skeleton table { - height: 4em; - } - - /* kill the horizontal spacing made by the event container. event margins will be done below */ - .fc-time-grid .fc-event-container { - margin: 0 !important; - } - - /* TimeGrid *Event* Restyling - --------------------------------------------------------------------------------------------------*/ - /* naturally position events, vertically stacking them */ - .fc-time-grid .fc-event { - position: static !important; - margin: 3px 2px !important; - } - - /* for events that continue to a future day, give the bottom border back */ - .fc-time-grid .fc-event.fc-not-end { - border-bottom-width: 1px !important; - } - - /* indicate the event continues via "..." text */ - .fc-time-grid .fc-event.fc-not-end:after { - content: "..."; - } - - /* for events that are continuations from previous days, give the top border back */ - .fc-time-grid .fc-event.fc-not-start { - border-top-width: 1px !important; - } - - /* indicate the event is a continuation via "..." text */ - .fc-time-grid .fc-event.fc-not-start:before { - content: "..."; - } - - /* time */ - /* undo a previous declaration and let the time text span to a second line */ - .fc-time-grid .fc-event .fc-time { - white-space: normal !important; - } - - /* hide the the time that is normally displayed... */ - .fc-time-grid .fc-event .fc-time span { - display: none; - } - - /* ...replace it with a more verbose version (includes AM/PM) stored in an html attribute */ - .fc-time-grid .fc-event .fc-time:after { - content: attr(data-full); - } - - /* Vertical Scroller & Containers - --------------------------------------------------------------------------------------------------*/ - /* kill the scrollbars and allow natural height */ - .fc-scroller, -.fc-day-grid-container, -.fc-time-grid-container { - /* */ - overflow: visible !important; - height: auto !important; - } - - /* kill the horizontal border/padding used to compensate for scrollbars */ - .fc-row { - border: 0 !important; - margin: 0 !important; - } - - /* Button Controls - --------------------------------------------------------------------------------------------------*/ - .fc-button-group, -.fc button { - display: none; - /* don't display any button-related controls */ - } -} diff --git a/htdocs/public/high/plugins/fullcalendar/main.d.ts b/htdocs/public/high/plugins/fullcalendar/main.d.ts deleted file mode 100644 index cfd23435..00000000 --- a/htdocs/public/high/plugins/fullcalendar/main.d.ts +++ /dev/null @@ -1,2730 +0,0 @@ -// Generated by dts-bundle v0.7.3-fork.1 -// Dependencies for this module: -// ../../../../../@fullcalendar/core - -declare module '@fullcalendar/core' { - export const version = "<%= version %>"; - export { OptionsInput } from '@fullcalendar/core/types/input-types'; - export { EventInput, EventDef, EventDefHash, EventInstance, EventInstanceHash, parseEventDef, createEventInstance, EventTuple } from '@fullcalendar/core/structs/event'; - export { BusinessHoursInput, parseBusinessHours } from '@fullcalendar/core/structs/business-hours'; - export { applyAll, debounce, padStart, isInt, capitaliseFirstLetter, parseFieldSpecs, compareByFieldSpecs, compareByFieldSpec, flexibleCompare, computeVisibleDayRange, refineProps, matchCellWidths, uncompensateScroll, compensateScroll, subtractInnerElHeight, isMultiDayRange, distributeHeight, undistributeHeight, preventSelection, allowSelection, preventContextMenu, allowContextMenu, compareNumbers, enableCursor, disableCursor, diffDates } from '@fullcalendar/core/util/misc'; - export { htmlEscape, cssToStr } from '@fullcalendar/core/util/html'; - export { removeExact, isArraysEqual } from '@fullcalendar/core/util/array'; - export { memoize, memoizeOutput } from '@fullcalendar/core/util/memoize'; - export { memoizeRendering, MemoizedRendering } from '@fullcalendar/core/component/memoized-rendering'; - export { intersectRects, Rect, pointInsideRect, constrainPoint, getRectCenter, diffPoints, Point, translateRect } from '@fullcalendar/core/util/geom'; - export { mapHash, filterHash, isPropsEqual } from '@fullcalendar/core/util/object'; - export { findElements, findChildren, htmlToElement, createElement, insertAfterElement, prependToElement, removeElement, appendToElement, applyStyle, applyStyleProp, elementMatches, elementClosest, forceClassName } from '@fullcalendar/core/util/dom-manip'; - export { EventStore, filterEventStoreDefs, createEmptyEventStore, mergeEventStores, getRelevantEvents, eventTupleToStore } from '@fullcalendar/core/structs/event-store'; - export { EventUiHash, EventUi, processScopedUiProps, combineEventUis } from '@fullcalendar/core/component/event-ui'; - export { default as Splitter, SplittableProps } from '@fullcalendar/core/component/event-splitting'; - export { buildGotoAnchorHtml, getAllDayHtml, getDayClasses } from '@fullcalendar/core/component/date-rendering'; - export { preventDefault, listenBySelector, whenTransitionDone } from '@fullcalendar/core/util/dom-event'; - export { computeInnerRect, computeEdges, computeHeightAndMargins, getClippingParents, computeClippingRect, computeRect } from '@fullcalendar/core/util/dom-geom'; - export { unpromisify } from '@fullcalendar/core/util/promise'; - export { default as EmitterMixin, EmitterInterface } from '@fullcalendar/core/common/EmitterMixin'; - export { DateRange, rangeContainsMarker, intersectRanges, rangesEqual, rangesIntersect, rangeContainsRange } from '@fullcalendar/core/datelib/date-range'; - export { default as Mixin } from '@fullcalendar/core/common/Mixin'; - export { default as PositionCache } from '@fullcalendar/core/common/PositionCache'; - export { default as ScrollComponent, ScrollbarWidths } from '@fullcalendar/core/common/ScrollComponent'; - export { ScrollController, ElementScrollController, WindowScrollController } from '@fullcalendar/core/common/scroll-controller'; - export { default as Theme } from '@fullcalendar/core/theme/Theme'; - export { default as Component, ComponentContext } from '@fullcalendar/core/component/Component'; - export { default as DateComponent, Seg, EventSegUiInteractionState } from '@fullcalendar/core/component/DateComponent'; - export { default as Calendar, DatePointTransform, DateSpanTransform, DateSelectionApi } from '@fullcalendar/core/Calendar'; - export { default as View, ViewProps } from '@fullcalendar/core/View'; - export { default as FgEventRenderer, buildSegCompareObj } from '@fullcalendar/core/component/renderers/FgEventRenderer'; - export { default as FillRenderer } from '@fullcalendar/core/component/renderers/FillRenderer'; - export { default as DateProfileGenerator, DateProfile } from '@fullcalendar/core/DateProfileGenerator'; - export { ViewDef } from '@fullcalendar/core/structs/view-def'; - export { ViewSpec } from '@fullcalendar/core/structs/view-spec'; - export { DateSpan, DateSpanApi, DatePointApi, isDateSpansEqual } from '@fullcalendar/core/structs/date-span'; - export { DateMarker, addDays, startOfDay, addMs, addWeeks, diffWeeks, diffWholeWeeks, diffWholeDays, diffDayAndTime, diffDays, isValidDate } from '@fullcalendar/core/datelib/marker'; - export { Duration, createDuration, isSingleDay, multiplyDuration, addDurations, asRoughMinutes, asRoughSeconds, asRoughMs, wholeDivideDurations, greatestDurationDenominator } from '@fullcalendar/core/datelib/duration'; - export { DateEnv, DateMarkerMeta } from '@fullcalendar/core/datelib/env'; - export { DateFormatter, createFormatter, VerboseFormattingArg, formatIsoTimeString } from '@fullcalendar/core/datelib/formatting'; - export { NamedTimeZoneImpl } from '@fullcalendar/core/datelib/timezone'; - export { parse as parseMarker } from '@fullcalendar/core/datelib/parsing'; - export { EventSourceDef, EventSource, EventSourceHash } from '@fullcalendar/core/structs/event-source'; - export { Interaction, InteractionSettings, interactionSettingsToStore, interactionSettingsStore, InteractionSettingsStore } from '@fullcalendar/core/interactions/interaction'; - export { PointerDragEvent } from '@fullcalendar/core/interactions/pointer'; - export { Hit } from '@fullcalendar/core/interactions/hit'; - export { dateSelectionJoinTransformer } from '@fullcalendar/core/interactions/date-selecting'; - export { eventDragMutationMassager, EventDropTransformers } from '@fullcalendar/core/interactions/event-dragging'; - export { EventResizeJoinTransforms } from '@fullcalendar/core/interactions/event-resizing'; - export { default as ElementDragging } from '@fullcalendar/core/interactions/ElementDragging'; - export { formatDate, formatRange } from '@fullcalendar/core/formatting-api'; - export { globalDefaults, config } from '@fullcalendar/core/options'; - export { RecurringType, ParsedRecurring } from '@fullcalendar/core/structs/recurring-event'; - export { DragMetaInput, DragMeta, parseDragMeta } from '@fullcalendar/core/structs/drag-meta'; - export { createPlugin, PluginDef, PluginDefInput, ViewPropsTransformer, ViewContainerModifier } from '@fullcalendar/core/plugin-system'; - export { reducerFunc, Action, CalendarState } from '@fullcalendar/core/reducers/types'; - export { CalendarComponentProps } from '@fullcalendar/core/CalendarComponent'; - export { default as DayHeader } from '@fullcalendar/core/common/DayHeader'; - export { computeFallbackHeaderFormat, renderDateCell } from '@fullcalendar/core/common/table-utils'; - export { default as DaySeries } from '@fullcalendar/core/common/DaySeries'; - export { EventInteractionState } from '@fullcalendar/core/interactions/event-interaction-state'; - export { EventRenderRange, sliceEventStore, hasBgRendering, getElSeg } from '@fullcalendar/core/component/event-rendering'; - export { default as DayTable, DayTableSeg, DayTableCell } from '@fullcalendar/core/common/DayTable'; - export { default as Slicer, SlicedProps } from '@fullcalendar/core/common/slicing-utils'; - export { EventMutation, applyMutationToEventStore } from '@fullcalendar/core/structs/event-mutation'; - export { Constraint, ConstraintInput, AllowFunc, isPropsValid, isInteractionValid } from '@fullcalendar/core/validation'; - export { default as EventApi } from '@fullcalendar/core/api/EventApi'; - export { default as requestJson } from '@fullcalendar/core/util/requestJson'; -} - -declare module '@fullcalendar/core/types/input-types' { - import View from '@fullcalendar/core/View'; - import { EventSourceInput, EventInputTransformer } from '@fullcalendar/core/structs/event-source'; - import { Duration, DurationInput } from '@fullcalendar/core/datelib/duration'; - import { DateInput } from '@fullcalendar/core/datelib/env'; - import { FormatterInput } from '@fullcalendar/core/datelib/formatting'; - import { DateRangeInput } from '@fullcalendar/core/datelib/date-range'; - import { BusinessHoursInput } from '@fullcalendar/core/structs/business-hours'; - import EventApi from '@fullcalendar/core/api/EventApi'; - import { AllowFunc, ConstraintInput, OverlapFunc } from '@fullcalendar/core/validation'; - import { PluginDef } from '@fullcalendar/core/plugin-system'; - import { LocaleSingularArg, RawLocale } from '@fullcalendar/core/datelib/locale'; - export interface ToolbarInput { - left?: string; - center?: string; - right?: string; - } - export interface CustomButtonInput { - text: string; - icon?: string; - themeIcon?: string; - bootstrapFontAwesome?: string; - click(element: HTMLElement): void; - } - export interface ButtonIconsInput { - prev?: string; - next?: string; - prevYear?: string; - nextYear?: string; - } - export interface ButtonTextCompoundInput { - prev?: string; - next?: string; - prevYear?: string; - nextYear?: string; - today?: string; - month?: string; - week?: string; - day?: string; - [viewId: string]: string | undefined; - } - export interface EventSegment { - event: EventApi; - start: Date; - end: Date; - isStart: boolean; - isEnd: boolean; - } - export interface CellInfo { - date: Date; - dayEl: HTMLElement; - moreEl: HTMLElement; - segs: EventSegment[]; - hiddenSegs: EventSegment[]; - } - export interface DropInfo { - start: Date; - end: Date; - } - export type EventHandlerName = '_init' | 'selectAllow' | 'eventAllow' | 'eventDataTransform' | 'datesRender' | 'datesDestroy' | 'dayRender' | 'windowResize' | 'dateClick' | 'eventClick' | 'eventMouseEnter' | 'eventMouseLeave' | 'select' | 'unselect' | 'loading' | 'eventRender' | 'eventPositioned' | '_eventsPositioned' | 'eventDestroy' | 'eventDragStart' | 'eventDragStop' | 'eventDrop' | '_destroyed' | 'drop' | 'eventResizeStart' | 'eventResizeStop' | 'eventResize' | 'eventReceive' | 'eventLeave' | 'viewSkeletonRender' | 'viewSkeletonDestroy' | '_noEventDrop' | '_noEventResize' | 'eventLimitClick' | 'resourceRender'; - export type EventHandlerArgs = Parameters any>>; - export type EventHandlerArg = EventHandlerArgs[0]; - export interface OptionsInputBase { - header?: boolean | ToolbarInput; - footer?: boolean | ToolbarInput; - customButtons?: { - [name: string]: CustomButtonInput; - }; - buttonIcons?: boolean | ButtonIconsInput; - themeSystem?: 'standard' | string; - bootstrapFontAwesome?: boolean | ButtonIconsInput; - firstDay?: number; - dir?: 'ltr' | 'rtl' | 'auto'; - weekends?: boolean; - hiddenDays?: number[]; - fixedWeekCount?: boolean; - weekNumbers?: boolean; - weekNumbersWithinDays?: boolean; - weekNumberCalculation?: 'local' | 'ISO' | ((m: Date) => number); - businessHours?: BusinessHoursInput; - showNonCurrentDates?: boolean; - height?: number | 'auto' | 'parent' | (() => number); - contentHeight?: number | 'auto' | (() => number); - aspectRatio?: number; - handleWindowResize?: boolean; - windowResizeDelay?: number; - eventLimit?: boolean | number; - eventLimitClick?: 'popover' | 'week' | 'day' | 'timeGridWeek' | 'timeGridDay' | string | ((arg: { - date: Date; - allDay: boolean; - dayEl: HTMLElement; - moreEl: HTMLElement; - segs: any[]; - hiddenSegs: any[]; - jsEvent: MouseEvent; - view: View; - }) => void); - timeZone?: string | boolean; - now?: DateInput | (() => DateInput); - defaultView?: string; - allDaySlot?: boolean; - allDayText?: string; - slotDuration?: DurationInput; - slotLabelFormat?: FormatterInput; - slotLabelInterval?: DurationInput; - snapDuration?: DurationInput; - scrollTime?: DurationInput; - minTime?: DurationInput; - maxTime?: DurationInput; - slotEventOverlap?: boolean; - listDayFormat?: FormatterInput | boolean; - listDayAltFormat?: FormatterInput | boolean; - noEventsMessage?: string; - defaultDate?: DateInput; - nowIndicator?: boolean; - visibleRange?: ((currentDate: Date) => DateRangeInput) | DateRangeInput; - validRange?: DateRangeInput; - dateIncrement?: DurationInput; - dateAlignment?: string; - duration?: DurationInput; - dayCount?: number; - locales?: RawLocale[]; - locale?: LocaleSingularArg; - eventTimeFormat?: FormatterInput; - columnHeader?: boolean; - columnHeaderFormat?: FormatterInput; - columnHeaderText?: string | ((date: DateInput) => string); - columnHeaderHtml?: string | ((date: DateInput) => string); - titleFormat?: FormatterInput; - weekLabel?: string; - displayEventTime?: boolean; - displayEventEnd?: boolean; - eventLimitText?: string | ((eventCnt: number) => string); - dayPopoverFormat?: FormatterInput; - navLinks?: boolean; - navLinkDayClick?: string | ((date: Date, jsEvent: Event) => void); - navLinkWeekClick?: string | ((weekStart: any, jsEvent: Event) => void); - selectable?: boolean; - selectMirror?: boolean; - unselectAuto?: boolean; - unselectCancel?: string; - defaultAllDayEventDuration?: DurationInput; - defaultTimedEventDuration?: DurationInput; - cmdFormatter?: string; - defaultRangeSeparator?: string; - selectConstraint?: ConstraintInput; - selectOverlap?: boolean | OverlapFunc; - selectAllow?: AllowFunc; - editable?: boolean; - eventStartEditable?: boolean; - eventDurationEditable?: boolean; - eventConstraint?: ConstraintInput; - eventOverlap?: boolean | OverlapFunc; - eventAllow?: AllowFunc; - eventClassName?: string[] | string; - eventClassNames?: string[] | string; - eventBackgroundColor?: string; - eventBorderColor?: string; - eventTextColor?: string; - eventColor?: string; - events?: EventSourceInput; - eventSources?: EventSourceInput[]; - allDayDefault?: boolean; - startParam?: string; - endParam?: string; - lazyFetching?: boolean; - nextDayThreshold?: DurationInput; - eventOrder?: string | Array<((a: EventApi, b: EventApi) => number) | (string | ((a: EventApi, b: EventApi) => number))>; - rerenderDelay?: number | null; - dragRevertDuration?: number; - dragScroll?: boolean; - longPressDelay?: number; - eventLongPressDelay?: number; - droppable?: boolean; - dropAccept?: string | ((draggable: any) => boolean); - eventDataTransform?: EventInputTransformer; - allDayMaintainDuration?: boolean; - eventResizableFromStart?: boolean; - timeGridEventMinHeight?: number; - allDayHtml?: string; - eventDragMinDistance?: number; - eventSourceFailure?: any; - eventSourceSuccess?: any; - forceEventDuration?: boolean; - progressiveEventRendering?: boolean; - selectLongPressDelay?: number; - selectMinDistance?: number; - timeZoneParam?: string; - titleRangeSeparator?: string; - datesRender?(arg: { - view: View; - el: HTMLElement; - }): void; - datesDestroy?(arg: { - view: View; - el: HTMLElement; - }): void; - dayRender?(arg: { - view: View; - date: Date; - allDay?: boolean; - el: HTMLElement; - }): void; - windowResize?(view: View): void; - dateClick?(arg: { - date: Date; - dateStr: string; - allDay: boolean; - resource?: any; - dayEl: HTMLElement; - jsEvent: MouseEvent; - view: View; - }): void; - eventClick?(arg: { - el: HTMLElement; - event: EventApi; - jsEvent: MouseEvent; - view: View; - }): boolean | void; - eventMouseEnter?(arg: { - el: HTMLElement; - event: EventApi; - jsEvent: MouseEvent; - view: View; - }): void; - eventMouseLeave?(arg: { - el: HTMLElement; - event: EventApi; - jsEvent: MouseEvent; - view: View; - }): void; - select?(arg: { - start: Date; - end: Date; - startStr: string; - endStr: string; - allDay: boolean; - resource?: any; - jsEvent: MouseEvent; - view: View; - }): void; - unselect?(arg: { - view: View; - jsEvent: Event; - }): void; - loading?(isLoading: boolean): void; - eventRender?(arg: { - isMirror: boolean; - isStart: boolean; - isEnd: boolean; - event: EventApi; - el: HTMLElement; - view: View; - }): void; - eventPositioned?(arg: { - isMirror: boolean; - isStart: boolean; - isEnd: boolean; - event: EventApi; - el: HTMLElement; - view: View; - }): void; - _eventsPositioned?(arg: { - view: View; - }): void; - eventDestroy?(arg: { - isMirror: boolean; - event: EventApi; - el: HTMLElement; - view: View; - }): void; - eventDragStart?(arg: { - event: EventApi; - el: HTMLElement; - jsEvent: MouseEvent; - view: View; - }): void; - eventDragStop?(arg: { - event: EventApi; - el: HTMLElement; - jsEvent: MouseEvent; - view: View; - }): void; - eventDrop?(arg: { - el: HTMLElement; - event: EventApi; - oldEvent: EventApi; - delta: Duration; - revert: () => void; - jsEvent: Event; - view: View; - }): void; - eventResizeStart?(arg: { - el: HTMLElement; - event: EventApi; - jsEvent: MouseEvent; - view: View; - }): void; - eventResizeStop?(arg: { - el: HTMLElement; - event: EventApi; - jsEvent: MouseEvent; - view: View; - }): void; - eventResize?(arg: { - el: HTMLElement; - startDelta: Duration; - endDelta: Duration; - prevEvent: EventApi; - event: EventApi; - revert: () => void; - jsEvent: Event; - view: View; - }): void; - drop?(arg: { - date: Date; - dateStr: string; - allDay: boolean; - draggedEl: HTMLElement; - jsEvent: MouseEvent; - view: View; - }): void; - eventReceive?(arg: { - event: EventApi; - draggedEl: HTMLElement; - view: View; - }): void; - eventLeave?(arg: { - draggedEl: HTMLElement; - event: EventApi; - view: View; - }): void; - viewSkeletonRender?(arg: { - el: HTMLElement; - view: View; - }): void; - viewSkeletonDestroy?(arg: { - el: HTMLElement; - view: View; - }): void; - _destroyed?(): void; - _init?(): void; - _noEventDrop?(): void; - _noEventResize?(): void; - resourceRender?(arg: { - resource: any; - el: HTMLElement; - view: View; - }): void; - } - export interface ViewOptionsInput extends OptionsInputBase { - type?: string; - buttonText?: string; - } - export interface OptionsInput extends OptionsInputBase { - buttonText?: ButtonTextCompoundInput; - views?: { - [viewId: string]: ViewOptionsInput; - }; - plugins?: (PluginDef | string)[]; - } -} - -declare module '@fullcalendar/core/structs/event' { - import { DateInput } from '@fullcalendar/core/datelib/env'; - import Calendar from '@fullcalendar/core/Calendar'; - import { DateRange } from '@fullcalendar/core/datelib/date-range'; - import { Duration } from '@fullcalendar/core/datelib/duration'; - import { UnscopedEventUiInput, EventUi } from '@fullcalendar/core/component/event-ui'; - export type EventRenderingChoice = '' | 'background' | 'inverse-background' | 'none'; - export interface EventNonDateInput extends UnscopedEventUiInput { - id?: string | number; - groupId?: string | number; - title?: string; - url?: string; - rendering?: EventRenderingChoice; - extendedProps?: object; - [extendedProp: string]: any; - } - export interface EventDateInput { - start?: DateInput; - end?: DateInput; - date?: DateInput; - allDay?: boolean; - } - export type EventInput = EventNonDateInput & EventDateInput; - export interface EventDef { - defId: string; - sourceId: string; - publicId: string; - groupId: string; - allDay: boolean; - hasEnd: boolean; - recurringDef: { - typeId: number; - typeData: any; - duration: Duration | null; - } | null; - title: string; - url: string; - rendering: EventRenderingChoice; - ui: EventUi; - extendedProps: any; - } - export interface EventInstance { - instanceId: string; - defId: string; - range: DateRange; - forcedStartTzo: number | null; - forcedEndTzo: number | null; - } - export interface EventTuple { - def: EventDef; - instance: EventInstance | null; - } - export type EventInstanceHash = { - [instanceId: string]: EventInstance; - }; - export type EventDefHash = { - [defId: string]: EventDef; - }; - export const NON_DATE_PROPS: { - id: StringConstructor; - groupId: StringConstructor; - title: StringConstructor; - url: StringConstructor; - rendering: StringConstructor; - extendedProps: any; - }; - export const DATE_PROPS: { - start: any; - date: any; - end: any; - allDay: any; - }; - export function parseEvent(raw: EventInput, sourceId: string, calendar: Calendar, allowOpenRange?: boolean): EventTuple | null; - export function parseEventDef(raw: EventNonDateInput, sourceId: string, allDay: boolean, hasEnd: boolean, calendar: Calendar): EventDef; - export type eventDefParserFunc = (def: EventDef, props: any, leftovers: any) => void; - export function createEventInstance(defId: string, range: DateRange, forcedStartTzo?: number, forcedEndTzo?: number): EventInstance; -} - -declare module '@fullcalendar/core/structs/business-hours' { - import Calendar from '@fullcalendar/core/Calendar'; - import { EventInput } from '@fullcalendar/core/structs/event'; - import { EventStore } from '@fullcalendar/core/structs/event-store'; - export type BusinessHoursInput = boolean | EventInput | EventInput[]; - export function parseBusinessHours(input: BusinessHoursInput, calendar: Calendar): EventStore; -} - -declare module '@fullcalendar/core/util/misc' { - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { Duration } from '@fullcalendar/core/datelib/duration'; - import { DateEnv } from '@fullcalendar/core/datelib/env'; - import { DateRange, OpenDateRange } from '@fullcalendar/core/datelib/date-range'; - export function compensateScroll(rowEl: HTMLElement, scrollbarWidths: any): void; - export function uncompensateScroll(rowEl: HTMLElement): void; - export function disableCursor(): void; - export function enableCursor(): void; - export function distributeHeight(els: HTMLElement[], availableHeight: any, shouldRedistribute: any): void; - export function undistributeHeight(els: HTMLElement[]): void; - export function matchCellWidths(els: HTMLElement[]): number; - export function subtractInnerElHeight(outerEl: HTMLElement, innerEl: HTMLElement): number; - export function preventSelection(el: HTMLElement): void; - export function allowSelection(el: HTMLElement): void; - export function preventContextMenu(el: HTMLElement): void; - export function allowContextMenu(el: HTMLElement): void; - export function parseFieldSpecs(input: any): any[]; - export function compareByFieldSpecs(obj0: any, obj1: any, fieldSpecs: any): any; - export function compareByFieldSpec(obj0: any, obj1: any, fieldSpec: any): any; - export function flexibleCompare(a: any, b: any): number; - export function capitaliseFirstLetter(str: any): any; - export function padStart(val: any, len: any): string; - export function compareNumbers(a: any, b: any): number; - export function isInt(n: any): boolean; - export function applyAll(functions: any, thisObj: any, args: any): any; - export function firstDefined(...args: any[]): any; - export function debounce(func: any, wait: any): () => any; - export type GenericHash = { - [key: string]: any; - }; - export function refineProps(rawProps: GenericHash, processors: GenericHash, defaults?: GenericHash, leftoverProps?: GenericHash): GenericHash; - export function computeAlignedDayRange(timedRange: DateRange): DateRange; - export function computeVisibleDayRange(timedRange: OpenDateRange, nextDayThreshold?: Duration): OpenDateRange; - export function isMultiDayRange(range: DateRange): boolean; - export function diffDates(date0: DateMarker, date1: DateMarker, dateEnv: DateEnv, largeUnit?: string): Duration; -} - -declare module '@fullcalendar/core/util/html' { - export function htmlEscape(s: any): string; - export function cssToStr(cssProps: any): string; - export function attrsToStr(attrs: any): string; - export type ClassNameInput = string | string[]; - export function parseClassName(raw: ClassNameInput): string[]; -} - -declare module '@fullcalendar/core/util/array' { - export function removeMatching(array: any, testFunc: any): number; - export function removeExact(array: any, exactVal: any): number; - export function isArraysEqual(a0: any, a1: any): boolean; -} - -declare module '@fullcalendar/core/util/memoize' { - export function memoize(workerFunc: T): T; - export function memoizeOutput(workerFunc: T, equalityFunc: (output0: any, output1: any) => boolean): T; -} - -declare module '@fullcalendar/core/component/memoized-rendering' { - export interface MemoizedRendering { - (...args: ArgsType): void; - unrender: () => void; - dependents: MemoizedRendering[]; - } - export function memoizeRendering(renderFunc: (...args: ArgsType) => void, unrenderFunc?: (...args: ArgsType) => void, dependencies?: MemoizedRendering[]): MemoizedRendering; -} - -declare module '@fullcalendar/core/util/geom' { - export interface Point { - left: number; - top: number; - } - export interface Rect { - left: number; - right: number; - top: number; - bottom: number; - } - export function pointInsideRect(point: Point, rect: Rect): boolean; - export function intersectRects(rect1: Rect, rect2: Rect): Rect | false; - export function translateRect(rect: Rect, deltaX: number, deltaY: number): Rect; - export function constrainPoint(point: Point, rect: Rect): Point; - export function getRectCenter(rect: Rect): Point; - export function diffPoints(point1: Point, point2: Point): Point; -} - -declare module '@fullcalendar/core/util/object' { - export function mergeProps(propObjs: any, complexProps?: any): any; - export function filterHash(hash: any, func: any): {}; - export function mapHash(hash: { - [key: string]: InputItem; - }, func: (input: InputItem, key: string) => OutputItem): { - [key: string]: OutputItem; - }; - export function arrayToHash(a: any): { - [key: string]: true; - }; - export function hashValuesToArray(obj: any): any[]; - export function isPropsEqual(obj0: any, obj1: any): boolean; -} - -declare module '@fullcalendar/core/util/dom-manip' { - export function createElement(tagName: string, attrs: object | null, content?: ElementContent): HTMLElement; - export function htmlToElement(html: string): HTMLElement; - export function htmlToElements(html: string): HTMLElement[]; - export type ElementContent = string | Node | Node[] | NodeList; - export function appendToElement(el: HTMLElement, content: ElementContent): void; - export function prependToElement(parent: HTMLElement, content: ElementContent): void; - export function insertAfterElement(refEl: HTMLElement, content: ElementContent): void; - export function removeElement(el: HTMLElement): void; - export function elementClosest(el: HTMLElement, selector: string): HTMLElement; - export function elementMatches(el: HTMLElement, selector: string): HTMLElement; - export function findElements(container: HTMLElement[] | HTMLElement | NodeListOf, selector: string): HTMLElement[]; - export function findChildren(parent: HTMLElement[] | HTMLElement, selector?: string): HTMLElement[]; - export function forceClassName(el: HTMLElement, className: string, bool: any): void; - export function applyStyle(el: HTMLElement, props: object): void; - export function applyStyleProp(el: HTMLElement, name: string, val: any): void; -} - -declare module '@fullcalendar/core/structs/event-store' { - import { EventInput, EventDef, EventDefHash, EventInstanceHash, EventTuple } from '@fullcalendar/core/structs/event'; - import { EventSource } from '@fullcalendar/core/structs/event-source'; - import Calendar from '@fullcalendar/core/Calendar'; - import { DateRange } from '@fullcalendar/core/datelib/date-range'; - export interface EventStore { - defs: EventDefHash; - instances: EventInstanceHash; - } - export function parseEvents(rawEvents: EventInput[], sourceId: string, calendar: Calendar, allowOpenRange?: boolean): EventStore; - export function eventTupleToStore(tuple: EventTuple, eventStore?: EventStore): EventStore; - export function expandRecurring(eventStore: EventStore, framingRange: DateRange, calendar: Calendar): EventStore; - export function getRelevantEvents(eventStore: EventStore, instanceId: string): EventStore; - export function transformRawEvents(rawEvents: any, eventSource: EventSource, calendar: Calendar): any; - export function createEmptyEventStore(): EventStore; - export function mergeEventStores(store0: EventStore, store1: EventStore): EventStore; - export function filterEventStoreDefs(eventStore: EventStore, filterFunc: (eventDef: EventDef) => boolean): EventStore; -} - -declare module '@fullcalendar/core/component/event-ui' { - import { Constraint, AllowFunc, ConstraintInput } from '@fullcalendar/core/validation'; - import { parseClassName } from '@fullcalendar/core/util/html'; - import Calendar from '@fullcalendar/core/Calendar'; - export interface UnscopedEventUiInput { - editable?: boolean; - startEditable?: boolean; - durationEditable?: boolean; - constraint?: ConstraintInput; - overlap?: boolean; - allow?: AllowFunc; - className?: string[] | string; - classNames?: string[] | string; - backgroundColor?: string; - borderColor?: string; - textColor?: string; - color?: string; - } - export interface EventUi { - startEditable: boolean | null; - durationEditable: boolean | null; - constraints: Constraint[]; - overlap: boolean | null; - allows: AllowFunc[]; - backgroundColor: string; - borderColor: string; - textColor: string; - classNames: string[]; - } - export type EventUiHash = { - [defId: string]: EventUi; - }; - export const UNSCOPED_EVENT_UI_PROPS: { - editable: BooleanConstructor; - startEditable: BooleanConstructor; - durationEditable: BooleanConstructor; - constraint: any; - overlap: any; - allow: any; - className: typeof parseClassName; - classNames: typeof parseClassName; - color: StringConstructor; - backgroundColor: StringConstructor; - borderColor: StringConstructor; - textColor: StringConstructor; - }; - export function processUnscopedUiProps(rawProps: UnscopedEventUiInput, calendar: Calendar, leftovers?: any): EventUi; - export function processScopedUiProps(prefix: string, rawScoped: any, calendar: Calendar, leftovers?: any): EventUi; - export function combineEventUis(uis: EventUi[]): EventUi; -} - -declare module '@fullcalendar/core/component/event-splitting' { - import { EventStore } from '@fullcalendar/core/structs/event-store'; - import { EventDef } from '@fullcalendar/core/structs/event'; - import { EventInteractionState } from '@fullcalendar/core/interactions/event-interaction-state'; - import { EventUiHash, EventUi } from '@fullcalendar/core/component/event-ui'; - import { DateSpan } from '@fullcalendar/core/structs/date-span'; - export interface SplittableProps { - businessHours: EventStore | null; - dateSelection: DateSpan | null; - eventStore: EventStore; - eventUiBases: EventUiHash; - eventSelection: string; - eventDrag: EventInteractionState | null; - eventResize: EventInteractionState | null; - } - export { Splitter as default, Splitter }; - abstract class Splitter { - abstract getKeyInfo(props: PropsType): { - [key: string]: { - ui?: EventUi; - businessHours?: EventStore; - }; - }; - abstract getKeysForDateSpan(dateSpan: DateSpan): string[]; - abstract getKeysForEventDef(eventDef: EventDef): string[]; - splitProps(props: PropsType): { - [key: string]: SplittableProps; - }; - } -} - -declare module '@fullcalendar/core/component/date-rendering' { - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import Component, { ComponentContext } from '@fullcalendar/core/component/Component'; - import { DateProfile } from '@fullcalendar/core/DateProfileGenerator'; - export function buildGotoAnchorHtml(component: Component, gotoOptions: any, attrs: any, innerHtml?: any): string; - export function getAllDayHtml(component: Component): any; - export function getDayClasses(date: DateMarker, dateProfile: DateProfile, context: ComponentContext, noThemeHighlight?: any): any[]; -} - -declare module '@fullcalendar/core/util/dom-event' { - export function preventDefault(ev: any): void; - export function listenBySelector(container: HTMLElement, eventType: string, selector: string, handler: (ev: Event, matchedTarget: HTMLElement) => void): () => void; - export function listenToHoverBySelector(container: HTMLElement, selector: string, onMouseEnter: (ev: Event, matchedTarget: HTMLElement) => void, onMouseLeave: (ev: Event, matchedTarget: HTMLElement) => void): () => void; - export function whenTransitionDone(el: HTMLElement, callback: (ev: Event) => void): void; -} - -declare module '@fullcalendar/core/util/dom-geom' { - import { Rect } from '@fullcalendar/core/util/geom'; - export interface EdgeInfo { - borderLeft: number; - borderRight: number; - borderTop: number; - borderBottom: number; - scrollbarLeft: number; - scrollbarRight: number; - scrollbarBottom: number; - paddingLeft?: number; - paddingRight?: number; - paddingTop?: number; - paddingBottom?: number; - } - export function computeEdges(el: any, getPadding?: boolean): EdgeInfo; - export function computeInnerRect(el: any, goWithinPadding?: boolean): { - left: number; - right: number; - top: number; - bottom: number; - }; - export function computeRect(el: any): Rect; - export function computeHeightAndMargins(el: HTMLElement): number; - export function computeVMargins(el: HTMLElement): number; - export function getClippingParents(el: HTMLElement): HTMLElement[]; - export function computeClippingRect(el: HTMLElement): Rect; -} - -declare module '@fullcalendar/core/util/promise' { - export function unpromisify(func: any, success: any, failure?: any): void; -} - -declare module '@fullcalendar/core/common/EmitterMixin' { - import Mixin from '@fullcalendar/core/common/Mixin'; - export interface EmitterInterface { - on(types: any, handler: any): any; - one(types: any, handler: any): any; - off(types: any, handler: any): any; - trigger(type: any, ...args: any[]): any; - triggerWith(type: any, context: any, args: any): any; - hasHandlers(type: any): any; - } - export { EmitterMixin as default, EmitterMixin }; - class EmitterMixin extends Mixin implements EmitterInterface { - _handlers: any; - _oneHandlers: any; - on(type: any, handler: any): this; - one(type: any, handler: any): this; - off(type: any, handler?: any): this; - trigger(type: any, ...args: any[]): this; - triggerWith(type: any, context: any, args: any): this; - hasHandlers(type: any): any; - } -} - -declare module '@fullcalendar/core/datelib/date-range' { - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { DateEnv, DateInput } from '@fullcalendar/core/datelib/env'; - export interface DateRangeInput { - start?: DateInput; - end?: DateInput; - } - export interface OpenDateRange { - start: DateMarker | null; - end: DateMarker | null; - } - export interface DateRange { - start: DateMarker; - end: DateMarker; - } - export function parseRange(input: DateRangeInput, dateEnv: DateEnv): OpenDateRange; - export function invertRanges(ranges: DateRange[], constraintRange: DateRange): DateRange[]; - export function intersectRanges(range0: OpenDateRange, range1: OpenDateRange): OpenDateRange; - export function rangesEqual(range0: OpenDateRange, range1: OpenDateRange): boolean; - export function rangesIntersect(range0: OpenDateRange, range1: OpenDateRange): boolean; - export function rangeContainsRange(outerRange: OpenDateRange, innerRange: OpenDateRange): boolean; - export function rangeContainsMarker(range: OpenDateRange, date: DateMarker | number): boolean; - export function constrainMarkerToRange(date: DateMarker, range: DateRange): DateMarker; -} - -declare module '@fullcalendar/core/common/Mixin' { - export { Mixin as default, Mixin }; - class Mixin { - static mixInto(destClass: any): void; - static mixIntoObj(destObj: any): void; - static mixOver(destClass: any): void; - } -} - -declare module '@fullcalendar/core/common/PositionCache' { - export { PositionCache as default, PositionCache }; - class PositionCache { - originClientRect: ClientRect; - els: HTMLElement[]; - originEl: HTMLElement; - isHorizontal: boolean; - isVertical: boolean; - lefts: any; - rights: any; - tops: any; - bottoms: any; - constructor(originEl: HTMLElement, els: HTMLElement[], isHorizontal: boolean, isVertical: boolean); - build(): void; - buildElHorizontals(originClientLeft: number): void; - buildElVerticals(originClientTop: number): void; - leftToIndex(leftPosition: number): any; - topToIndex(topPosition: number): any; - getWidth(leftIndex: number): number; - getHeight(topIndex: number): number; - } -} - -declare module '@fullcalendar/core/common/ScrollComponent' { - import { ElementScrollController } from '@fullcalendar/core/common/scroll-controller'; - export interface ScrollbarWidths { - left: number; - right: number; - bottom: number; - } - export { ScrollComponent as default, ScrollComponent }; - class ScrollComponent extends ElementScrollController { - overflowX: string; - overflowY: string; - constructor(overflowX: string, overflowY: string); - clear(): void; - destroy(): void; - applyOverflow(): void; - lockOverflow(scrollbarWidths: ScrollbarWidths): void; - setHeight(height: number | string): void; - getScrollbarWidths(): ScrollbarWidths; - } -} - -declare module '@fullcalendar/core/common/scroll-controller' { - export abstract class ScrollController { - abstract getScrollTop(): number; - abstract getScrollLeft(): number; - abstract setScrollTop(top: number): void; - abstract setScrollLeft(left: number): void; - abstract getClientWidth(): number; - abstract getClientHeight(): number; - abstract getScrollWidth(): number; - abstract getScrollHeight(): number; - getMaxScrollTop(): number; - getMaxScrollLeft(): number; - canScrollVertically(): boolean; - canScrollHorizontally(): boolean; - canScrollUp(): boolean; - canScrollDown(): boolean; - canScrollLeft(): boolean; - canScrollRight(): boolean; - } - export class ElementScrollController extends ScrollController { - el: HTMLElement; - constructor(el: HTMLElement); - getScrollTop(): number; - getScrollLeft(): number; - setScrollTop(top: number): void; - setScrollLeft(left: number): void; - getScrollWidth(): number; - getScrollHeight(): number; - getClientHeight(): number; - getClientWidth(): number; - } - export class WindowScrollController extends ScrollController { - getScrollTop(): number; - getScrollLeft(): number; - setScrollTop(n: number): void; - setScrollLeft(n: number): void; - getScrollWidth(): number; - getScrollHeight(): number; - getClientHeight(): number; - getClientWidth(): number; - } -} - -declare module '@fullcalendar/core/theme/Theme' { - export { Theme as default, Theme }; - class Theme { - calendarOptions: any; - classes: any; - iconClasses: any; - baseIconClass: string; - iconOverrideOption: any; - iconOverrideCustomButtonOption: any; - iconOverridePrefix: string; - constructor(calendarOptions: any); - processIconOverride(): void; - setIconOverride(iconOverrideHash: any): void; - applyIconOverridePrefix(className: any): any; - getClass(key: any): any; - getIconClass(buttonName: any): string; - getCustomButtonIconClass(customButtonProps: any): string; - } - export type ThemeClass = { - new (calendarOptions: any): Theme; - }; -} - -declare module '@fullcalendar/core/component/Component' { - import Calendar from '@fullcalendar/core/Calendar'; - import View from '@fullcalendar/core/View'; - import Theme from '@fullcalendar/core/theme/Theme'; - import { DateEnv } from '@fullcalendar/core/datelib/env'; - export interface ComponentContext { - options: any; - dateEnv: DateEnv; - theme: Theme; - calendar: Calendar; - view: View; - } - export type EqualityFuncHash = { - [propName: string]: (obj0: any, obj1: any) => boolean; - }; - export { Component as default, Component }; - class Component { - equalityFuncs: EqualityFuncHash; - uid: string; - props: PropsType | null; - context: ComponentContext; - dateEnv: DateEnv; - theme: Theme; - view: View; - calendar: Calendar; - isRtl: boolean; - constructor(context: ComponentContext, isView?: boolean); - static addEqualityFuncs(newFuncs: EqualityFuncHash): void; - opt(name: any): any; - receiveProps(props: PropsType): void; - protected render(props: PropsType): void; - destroy(): void; - } -} - -declare module '@fullcalendar/core/component/DateComponent' { - import Component, { ComponentContext } from '@fullcalendar/core/component/Component'; - import { EventRenderRange } from '@fullcalendar/core/component/event-rendering'; - import { DateSpan } from '@fullcalendar/core/structs/date-span'; - import { EventInstanceHash } from '@fullcalendar/core/structs/event'; - import { Hit } from '@fullcalendar/core/interactions/hit'; - import FgEventRenderer from '@fullcalendar/core/component/renderers/FgEventRenderer'; - import FillRenderer from '@fullcalendar/core/component/renderers/FillRenderer'; - import { EventInteractionState } from '@fullcalendar/core/interactions/event-interaction-state'; - import { EventHandlerName, EventHandlerArgs } from '@fullcalendar/core/types/input-types'; - export type DateComponentHash = { - [uid: string]: DateComponent; - }; - export interface Seg { - component?: DateComponent; - isStart: boolean; - isEnd: boolean; - eventRange?: EventRenderRange; - el?: HTMLElement; - [otherProp: string]: any; - } - export interface EventSegUiInteractionState { - affectedInstances: EventInstanceHash; - segs: Seg[]; - isEvent: boolean; - sourceSeg: any; - } - export { DateComponent as default, DateComponent }; - class DateComponent extends Component { - fgSegSelector: string; - bgSegSelector: string; - largeUnit: any; - eventRenderer: FgEventRenderer; - mirrorRenderer: FgEventRenderer; - fillRenderer: FillRenderer; - el: HTMLElement; - constructor(context: ComponentContext, el: HTMLElement, isView?: boolean); - destroy(): void; - buildPositionCaches(): void; - queryHit(positionLeft: number, positionTop: number, elWidth: number, elHeight: number): Hit | null; - isInteractionValid(interaction: EventInteractionState): boolean; - isDateSelectionValid(selection: DateSpan): boolean; - publiclyTrigger(name: T, args?: EventHandlerArgs): any; - publiclyTriggerAfterSizing(name: T, args: EventHandlerArgs): void; - hasPublicHandlers(name: T): boolean; - triggerRenderedSegs(segs: Seg[], isMirrors: boolean): void; - triggerWillRemoveSegs(segs: Seg[], isMirrors: boolean): void; - isValidSegDownEl(el: HTMLElement): boolean; - isValidDateDownEl(el: HTMLElement): boolean; - isPopover(): boolean; - isInPopover(el: HTMLElement): boolean; - } -} - -declare module '@fullcalendar/core/Calendar' { - import { EmitterInterface } from '@fullcalendar/core/common/EmitterMixin'; - import OptionsManager from '@fullcalendar/core/OptionsManager'; - import View from '@fullcalendar/core/View'; - import Theme from '@fullcalendar/core/theme/Theme'; - import { OptionsInput, EventHandlerName, EventHandlerArgs } from '@fullcalendar/core/types/input-types'; - import { RawLocaleMap } from '@fullcalendar/core/datelib/locale'; - import { DateEnv, DateInput } from '@fullcalendar/core/datelib/env'; - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { Duration, DurationInput } from '@fullcalendar/core/datelib/duration'; - import { DateSpan, DateSpanApi, DatePointApi } from '@fullcalendar/core/structs/date-span'; - import { DateRangeInput } from '@fullcalendar/core/datelib/date-range'; - import DateProfileGenerator from '@fullcalendar/core/DateProfileGenerator'; - import { EventSourceInput } from '@fullcalendar/core/structs/event-source'; - import { EventInput } from '@fullcalendar/core/structs/event'; - import { CalendarState, Action } from '@fullcalendar/core/reducers/types'; - import EventSourceApi from '@fullcalendar/core/api/EventSourceApi'; - import EventApi from '@fullcalendar/core/api/EventApi'; - import { EventStore } from '@fullcalendar/core/structs/event-store'; - import { EventUiHash, EventUi } from '@fullcalendar/core/component/event-ui'; - import { ViewSpecHash, ViewSpec } from '@fullcalendar/core/structs/view-spec'; - import { PluginSystem } from '@fullcalendar/core/plugin-system'; - import CalendarComponent from '@fullcalendar/core/CalendarComponent'; - import DateComponent from '@fullcalendar/core/component/DateComponent'; - import { PointerDragEvent } from '@fullcalendar/core/interactions/pointer'; - import { InteractionSettingsInput, Interaction } from '@fullcalendar/core/interactions/interaction'; - export interface DateClickApi extends DatePointApi { - dayEl: HTMLElement; - jsEvent: UIEvent; - view: View; - } - export interface DateSelectionApi extends DateSpanApi { - jsEvent: UIEvent; - view: View; - } - export type DatePointTransform = (dateSpan: DateSpan, calendar: Calendar) => any; - export type DateSpanTransform = (dateSpan: DateSpan, calendar: Calendar) => any; - export type CalendarInteraction = { - destroy(): any; - }; - export type CalendarInteractionClass = { - new (calendar: Calendar): CalendarInteraction; - }; - export type OptionChangeHandler = (propValue: any, calendar: Calendar, deepEqual: any) => void; - export type OptionChangeHandlerMap = { - [propName: string]: OptionChangeHandler; - }; - export { Calendar as default, Calendar }; - class Calendar { - static on: EmitterInterface['on']; - static off: EmitterInterface['off']; - static trigger: EmitterInterface['trigger']; - on: EmitterInterface['on']; - one: EmitterInterface['one']; - off: EmitterInterface['off']; - trigger: EmitterInterface['trigger']; - triggerWith: EmitterInterface['triggerWith']; - hasHandlers: EmitterInterface['hasHandlers']; - eventUiBases: EventUiHash; - selectionConfig: EventUi; - optionsManager: OptionsManager; - viewSpecs: ViewSpecHash; - dateProfileGenerators: { - [viewName: string]: DateProfileGenerator; - }; - theme: Theme; - dateEnv: DateEnv; - availableRawLocales: RawLocaleMap; - pluginSystem: PluginSystem; - defaultAllDayEventDuration: Duration; - defaultTimedEventDuration: Duration; - calendarInteractions: CalendarInteraction[]; - interactionsStore: { - [componentUid: string]: Interaction[]; - }; - removeNavLinkListener: any; - windowResizeProxy: any; - isHandlingWindowResize: boolean; - state: CalendarState; - actionQueue: any[]; - isReducing: boolean; - needsRerender: boolean; - needsFullRerender: boolean; - isRendering: boolean; - renderingPauseDepth: number; - renderableEventStore: EventStore; - buildDelayedRerender: typeof buildDelayedRerender; - delayedRerender: any; - afterSizingTriggers: any; - isViewUpdated: boolean; - isDatesUpdated: boolean; - isEventsUpdated: boolean; - el: HTMLElement; - component: CalendarComponent; - constructor(el: HTMLElement, overrides?: OptionsInput); - addPluginInputs(pluginInputs: any): void; - readonly view: View; - render(): void; - destroy(): void; - bindHandlers(): void; - unbindHandlers(): void; - hydrate(): void; - buildInitialState(): CalendarState; - reduce(state: CalendarState, action: Action, calendar: Calendar): CalendarState; - requestRerender(needsFull?: boolean): void; - tryRerender(): void; - batchRendering(func: any): void; - executeRender(): void; - renderComponent(needsFull: any): void; - setOption(name: string, val: any): void; - getOption(name: string): any; - opt(name: string): any; - viewOpt(name: string): any; - viewOpts(): any; - mutateOptions(updates: any, removals: string[], isDynamic?: boolean, deepEqual?: any): void; - handleOptions(options: any): void; - getAvailableLocaleCodes(): string[]; - _buildSelectionConfig(rawOpts: any): EventUi; - _buildEventUiSingleBase(rawOpts: any): EventUi; - hasPublicHandlers(name: T): boolean; - publiclyTrigger(name: T, args?: EventHandlerArgs): any; - publiclyTriggerAfterSizing(name: T, args: EventHandlerArgs): void; - releaseAfterSizingTriggers(): void; - isValidViewType(viewType: string): boolean; - changeView(viewType: string, dateOrRange?: DateRangeInput | DateInput): void; - zoomTo(dateMarker: DateMarker, viewType?: string): void; - getUnitViewSpec(unit: string): ViewSpec | null; - getInitialDate(): Date; - prev(): void; - next(): void; - prevYear(): void; - nextYear(): void; - today(): void; - gotoDate(zonedDateInput: any): void; - incrementDate(deltaInput: any): void; - getDate(): Date; - formatDate(d: DateInput, formatter: any): string; - formatRange(d0: DateInput, d1: DateInput, settings: any): any; - formatIso(d: DateInput, omitTime?: boolean): string; - windowResize(ev: Event): void; - updateSize(): void; - registerInteractiveComponent(component: DateComponent, settingsInput: InteractionSettingsInput): void; - unregisterInteractiveComponent(component: DateComponent): void; - select(dateOrObj: DateInput | any, endDate?: DateInput): void; - unselect(pev?: PointerDragEvent): void; - triggerDateSelect(selection: DateSpan, pev?: PointerDragEvent): void; - triggerDateUnselect(pev?: PointerDragEvent): void; - triggerDateClick(dateSpan: DateSpan, dayEl: HTMLElement, view: View, ev: UIEvent): void; - buildDatePointApi(dateSpan: DateSpan): import("@fullcalendar/core/structs/date-span").DatePointApi; - buildDateSpanApi(dateSpan: DateSpan): import("@fullcalendar/core/structs/date-span").DateSpanApi; - getNow(): DateMarker; - getDefaultEventEnd(allDay: boolean, marker: DateMarker): DateMarker; - addEvent(eventInput: EventInput, sourceInput?: EventSourceApi | string | number): EventApi | null; - getEventById(id: string): EventApi | null; - getEvents(): EventApi[]; - removeAllEvents(): void; - rerenderEvents(): void; - getEventSources(): EventSourceApi[]; - getEventSourceById(id: string | number): EventSourceApi | null; - addEventSource(sourceInput: EventSourceInput): EventSourceApi; - removeAllEventSources(): void; - refetchEvents(): void; - scrollToTime(timeInput: DurationInput): void; - } - function buildDelayedRerender(this: Calendar, wait: any): any; - export {}; -} - -declare module '@fullcalendar/core/View' { - import DateProfileGenerator, { DateProfile } from '@fullcalendar/core/DateProfileGenerator'; - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { Duration } from '@fullcalendar/core/datelib/duration'; - import { EmitterInterface } from '@fullcalendar/core/common/EmitterMixin'; - import { ViewSpec } from '@fullcalendar/core/structs/view-spec'; - import { ComponentContext } from '@fullcalendar/core/component/Component'; - import DateComponent from '@fullcalendar/core/component/DateComponent'; - import { EventStore } from '@fullcalendar/core/structs/event-store'; - import { EventUiHash, EventUi } from '@fullcalendar/core/component/event-ui'; - import { EventRenderRange } from '@fullcalendar/core/component/event-rendering'; - import { DateSpan } from '@fullcalendar/core/structs/date-span'; - import { EventInteractionState } from '@fullcalendar/core/interactions/event-interaction-state'; - import { EventDef } from '@fullcalendar/core/structs/event'; - export interface ViewProps { - dateProfile: DateProfile; - businessHours: EventStore; - eventStore: EventStore; - eventUiBases: EventUiHash; - dateSelection: DateSpan | null; - eventSelection: string; - eventDrag: EventInteractionState | null; - eventResize: EventInteractionState | null; - } - export { View as default, View }; - abstract class View extends DateComponent { - usesMinMaxTime: boolean; - dateProfileGeneratorClass: any; - on: EmitterInterface['on']; - one: EmitterInterface['one']; - off: EmitterInterface['off']; - trigger: EmitterInterface['trigger']; - triggerWith: EmitterInterface['triggerWith']; - hasHandlers: EmitterInterface['hasHandlers']; - viewSpec: ViewSpec; - dateProfileGenerator: DateProfileGenerator; - type: string; - title: string; - queuedScroll: any; - eventOrderSpecs: any; - nextDayThreshold: Duration; - isNowIndicatorRendered: boolean; - initialNowDate: DateMarker; - initialNowQueriedMs: number; - nowIndicatorTimeoutID: any; - nowIndicatorIntervalID: any; - constructor(context: ComponentContext, viewSpec: ViewSpec, dateProfileGenerator: DateProfileGenerator, parentEl: HTMLElement); - initialize(): void; - readonly activeStart: Date; - readonly activeEnd: Date; - readonly currentStart: Date; - readonly currentEnd: Date; - render(props: ViewProps): void; - destroy(): void; - updateSize(isResize: boolean, viewHeight: number, isAuto: boolean): void; - updateBaseSize(isResize: boolean, viewHeight: number, isAuto: boolean): void; - renderDatesWrap(dateProfile: DateProfile): void; - unrenderDatesWrap(): void; - renderDates(dateProfile: DateProfile): void; - unrenderDates(): void; - renderBusinessHours(businessHours: EventStore): void; - unrenderBusinessHours(): void; - renderDateSelectionWrap(selection: DateSpan): void; - unrenderDateSelectionWrap(selection: DateSpan): void; - renderDateSelection(selection: DateSpan): void; - unrenderDateSelection(selection: DateSpan): void; - renderEvents(eventStore: EventStore): void; - unrenderEvents(): void; - sliceEvents(eventStore: EventStore, allDay: boolean): EventRenderRange[]; - computeEventDraggable(eventDef: EventDef, eventUi: EventUi): boolean; - computeEventStartResizable(eventDef: EventDef, eventUi: EventUi): any; - computeEventEndResizable(eventDef: EventDef, eventUi: EventUi): boolean; - renderEventSelectionWrap(instanceId: string): void; - unrenderEventSelectionWrap(instanceId: string): void; - renderEventSelection(instanceId: string): void; - unrenderEventSelection(instanceId: string): void; - renderEventDragWrap(state: EventInteractionState): void; - unrenderEventDragWrap(state: EventInteractionState): void; - renderEventDrag(state: EventInteractionState): void; - unrenderEventDrag(state: EventInteractionState): void; - renderEventResizeWrap(state: EventInteractionState): void; - unrenderEventResizeWrap(state: EventInteractionState): void; - renderEventResize(state: EventInteractionState): void; - unrenderEventResize(state: EventInteractionState): void; - startNowIndicator(dateProfile: DateProfile): void; - updateNowIndicator(): void; - stopNowIndicator(): void; - getNowIndicatorUnit(dateProfile: DateProfile): void; - renderNowIndicator(date: any): void; - unrenderNowIndicator(): void; - addScroll(scroll: any): void; - popScroll(isResize: boolean): void; - applyQueuedScroll(isResize: boolean): void; - queryScroll(): any; - applyScroll(scroll: any, isResize: boolean): void; - computeDateScroll(duration: Duration): {}; - queryDateScroll(): {}; - applyDateScroll(scroll: any): void; - scrollToDuration(duration: Duration): void; - } -} - -declare module '@fullcalendar/core/component/renderers/FgEventRenderer' { - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { DateFormatter } from '@fullcalendar/core/datelib/formatting'; - import { EventUi } from '@fullcalendar/core/component/event-ui'; - import { EventRenderRange } from '@fullcalendar/core/component/event-rendering'; - import { Seg } from '@fullcalendar/core/component/DateComponent'; - import { ComponentContext } from '@fullcalendar/core/component/Component'; - export { FgEventRenderer as default, FgEventRenderer }; - abstract class FgEventRenderer { - context: ComponentContext; - eventTimeFormat: DateFormatter; - displayEventTime: boolean; - displayEventEnd: boolean; - segs: Seg[]; - isSizeDirty: boolean; - constructor(context: ComponentContext); - renderSegs(segs: Seg[], mirrorInfo?: any): void; - unrender(_segs: Seg[], mirrorInfo?: any): void; - abstract renderSegHtml(seg: Seg, mirrorInfo: any): string; - abstract attachSegs(segs: Seg[], mirrorInfo: any): any; - abstract detachSegs(segs: Seg[]): any; - rangeUpdated(): void; - renderSegEls(segs: Seg[], mirrorInfo: any): Seg[]; - getSegClasses(seg: Seg, isDraggable: any, isResizable: any, mirrorInfo: any): string[]; - getTimeText(eventRange: EventRenderRange, formatter?: any, displayEnd?: any): any; - _getTimeText(start: DateMarker, end: DateMarker, allDay: any, formatter?: any, displayEnd?: any, forcedStartTzo?: number, forcedEndTzo?: number): any; - computeEventTimeFormat(): any; - computeDisplayEventTime(): boolean; - computeDisplayEventEnd(): boolean; - getSkinCss(ui: EventUi): { - 'background-color': string; - 'border-color': string; - color: string; - }; - sortEventSegs(segs: any): Seg[]; - computeSizes(force: boolean): void; - assignSizes(force: boolean): void; - computeSegSizes(segs: Seg[]): void; - assignSegSizes(segs: Seg[]): void; - hideByHash(hash: any): void; - showByHash(hash: any): void; - selectByInstanceId(instanceId: string): void; - unselectByInstanceId(instanceId: string): void; - } - export function buildSegCompareObj(seg: Seg): any; -} - -declare module '@fullcalendar/core/component/renderers/FillRenderer' { - import { Seg } from '@fullcalendar/core/component/DateComponent'; - import { ComponentContext } from '@fullcalendar/core/component/Component'; - export { FillRenderer as default, FillRenderer }; - abstract class FillRenderer { - context: ComponentContext; - fillSegTag: string; - containerElsByType: any; - segsByType: any; - dirtySizeFlags: any; - constructor(context: ComponentContext); - getSegsByType(type: string): any; - renderSegs(type: any, segs: Seg[]): void; - unrender(type: any): void; - renderSegEls(type: any, segs: Seg[]): Seg[]; - renderSegHtml(type: any, seg: Seg): string; - abstract attachSegs(type: any, segs: Seg[]): HTMLElement[] | void; - detachSegs(type: any, segs: Seg[]): void; - computeSizes(force: boolean): void; - assignSizes(force: boolean): void; - computeSegSizes(segs: Seg[]): void; - assignSegSizes(segs: Seg[]): void; - } -} - -declare module '@fullcalendar/core/DateProfileGenerator' { - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { Duration } from '@fullcalendar/core/datelib/duration'; - import { DateRange, OpenDateRange } from '@fullcalendar/core/datelib/date-range'; - import { ViewSpec } from '@fullcalendar/core/structs/view-spec'; - import { DateEnv } from '@fullcalendar/core/datelib/env'; - import Calendar from '@fullcalendar/core/Calendar'; - export interface DateProfile { - currentRange: DateRange; - currentRangeUnit: string; - isRangeAllDay: boolean; - validRange: OpenDateRange; - activeRange: DateRange; - renderRange: DateRange; - minTime: Duration; - maxTime: Duration; - isValid: boolean; - dateIncrement: Duration; - } - export { DateProfileGenerator as default, DateProfileGenerator }; - class DateProfileGenerator { - viewSpec: ViewSpec; - options: any; - dateEnv: DateEnv; - calendar: Calendar; - isHiddenDayHash: boolean[]; - constructor(viewSpec: ViewSpec, calendar: Calendar); - buildPrev(currentDateProfile: DateProfile, currentDate: DateMarker): DateProfile; - buildNext(currentDateProfile: DateProfile, currentDate: DateMarker): DateProfile; - build(currentDate: DateMarker, direction?: any, forceToValid?: boolean): DateProfile; - buildValidRange(): OpenDateRange; - buildCurrentRangeInfo(date: DateMarker, direction: any): { - duration: any; - unit: any; - range: any; - }; - getFallbackDuration(): Duration; - adjustActiveRange(range: DateRange, minTime: Duration, maxTime: Duration): { - start: Date; - end: Date; - }; - buildRangeFromDuration(date: DateMarker, direction: any, duration: Duration, unit: any): any; - buildRangeFromDayCount(date: DateMarker, direction: any, dayCount: any): { - start: Date; - end: Date; - }; - buildCustomVisibleRange(date: DateMarker): OpenDateRange; - buildRenderRange(currentRange: DateRange, currentRangeUnit: any, isRangeAllDay: any): DateRange; - buildDateIncrement(fallback: any): Duration; - getRangeOption(name: any, ...otherArgs: any[]): OpenDateRange; - initHiddenDays(): void; - trimHiddenDays(range: DateRange): DateRange | null; - isHiddenDay(day: any): boolean; - skipHiddenDays(date: DateMarker, inc?: number, isExclusive?: boolean): Date; - } - export function isDateProfilesEqual(p0: DateProfile, p1: DateProfile): boolean; -} - -declare module '@fullcalendar/core/structs/view-def' { - import { ViewClass, ViewConfigHash } from '@fullcalendar/core/structs/view-config'; - export interface ViewDef { - type: string; - class: ViewClass; - overrides: any; - defaults: any; - } - export type ViewDefHash = { - [viewType: string]: ViewDef; - }; - export function compileViewDefs(defaultConfigs: ViewConfigHash, overrideConfigs: ViewConfigHash): ViewDefHash; -} - -declare module '@fullcalendar/core/structs/view-spec' { - import { Duration } from '@fullcalendar/core/datelib/duration'; - import OptionsManager from '@fullcalendar/core/OptionsManager'; - import { ViewConfigInputHash, ViewClass } from '@fullcalendar/core/structs/view-config'; - export interface ViewSpec { - type: string; - class: ViewClass; - duration: Duration; - durationUnit: string; - singleUnit: string; - options: any; - buttonTextOverride: string; - buttonTextDefault: string; - } - export type ViewSpecHash = { - [viewType: string]: ViewSpec; - }; - export function buildViewSpecs(defaultInputs: ViewConfigInputHash, optionsManager: OptionsManager): ViewSpecHash; -} - -declare module '@fullcalendar/core/structs/date-span' { - import { DateRange, OpenDateRange } from '@fullcalendar/core/datelib/date-range'; - import { DateInput, DateEnv } from '@fullcalendar/core/datelib/env'; - import { Duration } from '@fullcalendar/core/datelib/duration'; - import { EventRenderRange } from '@fullcalendar/core/component/event-rendering'; - import { EventUiHash } from '@fullcalendar/core/component/event-ui'; - import Calendar from '@fullcalendar/core/Calendar'; - export interface OpenDateSpanInput { - start?: DateInput; - end?: DateInput; - allDay?: boolean; - [otherProp: string]: any; - } - export interface DateSpanInput extends OpenDateSpanInput { - start: DateInput; - end: DateInput; - } - export interface OpenDateSpan { - range: OpenDateRange; - allDay: boolean; - [otherProp: string]: any; - } - export interface DateSpan extends OpenDateSpan { - range: DateRange; - } - export interface DateSpanApi { - start: Date; - end: Date; - startStr: string; - endStr: string; - allDay: boolean; - } - export interface DatePointApi { - date: Date; - dateStr: string; - allDay: boolean; - } - export function parseDateSpan(raw: DateSpanInput, dateEnv: DateEnv, defaultDuration?: Duration): DateSpan | null; - export function parseOpenDateSpan(raw: OpenDateSpanInput, dateEnv: DateEnv): OpenDateSpan | null; - export function isDateSpansEqual(span0: DateSpan, span1: DateSpan): boolean; - export function buildDateSpanApi(span: DateSpan, dateEnv: DateEnv): DateSpanApi; - export function buildDatePointApi(span: DateSpan, dateEnv: DateEnv): DatePointApi; - export function fabricateEventRange(dateSpan: DateSpan, eventUiBases: EventUiHash, calendar: Calendar): EventRenderRange; -} - -declare module '@fullcalendar/core/datelib/marker' { - import { Duration } from '@fullcalendar/core/datelib/duration'; - export type DateMarker = Date; - export const DAY_IDS: string[]; - export function addWeeks(m: DateMarker, n: number): Date; - export function addDays(m: DateMarker, n: number): Date; - export function addMs(m: DateMarker, n: number): Date; - export function diffWeeks(m0: any, m1: any): number; - export function diffDays(m0: any, m1: any): number; - export function diffHours(m0: any, m1: any): number; - export function diffMinutes(m0: any, m1: any): number; - export function diffSeconds(m0: any, m1: any): number; - export function diffDayAndTime(m0: DateMarker, m1: DateMarker): Duration; - export function diffWholeWeeks(m0: DateMarker, m1: DateMarker): number; - export function diffWholeDays(m0: DateMarker, m1: DateMarker): number; - export function startOfDay(m: DateMarker): DateMarker; - export function startOfHour(m: DateMarker): Date; - export function startOfMinute(m: DateMarker): Date; - export function startOfSecond(m: DateMarker): Date; - export function weekOfYear(marker: any, dow: any, doy: any): number; - export function dateToLocalArray(date: any): any[]; - export function arrayToLocalDate(a: any): Date; - export function dateToUtcArray(date: any): any[]; - export function arrayToUtcDate(a: any): Date; - export function isValidDate(m: DateMarker): boolean; - export function timeAsMs(m: DateMarker): number; -} - -declare module '@fullcalendar/core/datelib/duration' { - export type DurationInput = DurationObjectInput | string | number; - export interface DurationObjectInput { - years?: number; - year?: number; - months?: number; - month?: number; - weeks?: number; - week?: number; - days?: number; - day?: number; - hours?: number; - hour?: number; - minutes?: number; - minute?: number; - seconds?: number; - second?: number; - milliseconds?: number; - millisecond?: number; - ms?: number; - } - export interface Duration { - years: number; - months: number; - days: number; - milliseconds: number; - } - export function createDuration(input: DurationInput, unit?: string): Duration | null; - export function getWeeksFromInput(obj: DurationObjectInput): number; - export function durationsEqual(d0: Duration, d1: Duration): boolean; - export function isSingleDay(dur: Duration): boolean; - export function addDurations(d0: Duration, d1: Duration): { - years: number; - months: number; - days: number; - milliseconds: number; - }; - export function subtractDurations(d1: Duration, d0: Duration): Duration; - export function multiplyDuration(d: Duration, n: number): { - years: number; - months: number; - days: number; - milliseconds: number; - }; - export function asRoughYears(dur: Duration): number; - export function asRoughMonths(dur: Duration): number; - export function asRoughDays(dur: Duration): number; - export function asRoughHours(dur: Duration): number; - export function asRoughMinutes(dur: Duration): number; - export function asRoughSeconds(dur: Duration): number; - export function asRoughMs(dur: Duration): number; - export function wholeDivideDurations(numerator: Duration, denominator: Duration): number; - export function greatestDurationDenominator(dur: Duration, dontReturnWeeks?: boolean): { - unit: string; - value: number; - }; -} - -declare module '@fullcalendar/core/datelib/env' { - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { CalendarSystem } from '@fullcalendar/core/datelib/calendar-system'; - import { Locale } from '@fullcalendar/core/datelib/locale'; - import { NamedTimeZoneImpl, NamedTimeZoneImplClass } from '@fullcalendar/core/datelib/timezone'; - import { Duration } from '@fullcalendar/core/datelib/duration'; - import { DateFormatter } from '@fullcalendar/core/datelib/formatting'; - import { CmdFormatterFunc } from '@fullcalendar/core/datelib/formatting-cmd'; - export interface DateEnvSettings { - timeZone: string; - namedTimeZoneImpl?: NamedTimeZoneImplClass; - calendarSystem: string; - locale: Locale; - weekNumberCalculation?: any; - firstDay?: any; - weekLabel?: string; - cmdFormatter?: CmdFormatterFunc; - } - export type DateInput = Date | string | number | number[]; - export interface DateMarkerMeta { - marker: DateMarker; - isTimeUnspecified: boolean; - forcedTzo: number | null; - } - export class DateEnv { - timeZone: string; - namedTimeZoneImpl: NamedTimeZoneImpl; - canComputeOffset: boolean; - calendarSystem: CalendarSystem; - locale: Locale; - weekDow: number; - weekDoy: number; - weekNumberFunc: any; - weekLabel: string; - cmdFormatter?: CmdFormatterFunc; - constructor(settings: DateEnvSettings); - createMarker(input: DateInput): DateMarker; - createNowMarker(): DateMarker; - createMarkerMeta(input: DateInput): DateMarkerMeta; - parse(s: string): { - marker: Date; - isTimeUnspecified: boolean; - forcedTzo: any; - }; - getYear(marker: DateMarker): number; - getMonth(marker: DateMarker): number; - add(marker: DateMarker, dur: Duration): DateMarker; - subtract(marker: DateMarker, dur: Duration): DateMarker; - addYears(marker: DateMarker, n: number): Date; - addMonths(marker: DateMarker, n: number): Date; - diffWholeYears(m0: DateMarker, m1: DateMarker): number; - diffWholeMonths(m0: DateMarker, m1: DateMarker): number; - greatestWholeUnit(m0: DateMarker, m1: DateMarker): { - unit: string; - value: number; - }; - countDurationsBetween(m0: DateMarker, m1: DateMarker, d: Duration): number; - startOf(m: DateMarker, unit: string): Date; - startOfYear(m: DateMarker): DateMarker; - startOfMonth(m: DateMarker): DateMarker; - startOfWeek(m: DateMarker): DateMarker; - computeWeekNumber(marker: DateMarker): number; - format(marker: DateMarker, formatter: DateFormatter, dateOptions?: { - forcedTzo?: number; - }): any; - formatRange(start: DateMarker, end: DateMarker, formatter: DateFormatter, dateOptions?: { - forcedStartTzo?: number; - forcedEndTzo?: number; - isEndExclusive?: boolean; - }): any; - formatIso(marker: DateMarker, extraOptions?: any): string; - timestampToMarker(ms: number): Date; - offsetForMarker(m: DateMarker): number; - toDate(m: DateMarker, forcedTzo?: number): Date; - } -} - -declare module '@fullcalendar/core/datelib/formatting' { - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { CalendarSystem } from '@fullcalendar/core/datelib/calendar-system'; - import { Locale } from '@fullcalendar/core/datelib/locale'; - import { CmdFormatterFunc } from '@fullcalendar/core/datelib/formatting-cmd'; - import { FuncFormatterFunc } from '@fullcalendar/core/datelib/formatting-func'; - export interface ZonedMarker { - marker: DateMarker; - timeZoneOffset: number; - } - export interface ExpandedZonedMarker extends ZonedMarker { - array: number[]; - year: number; - month: number; - day: number; - hour: number; - minute: number; - second: number; - millisecond: number; - } - export interface VerboseFormattingArg { - date: ExpandedZonedMarker; - start: ExpandedZonedMarker; - end?: ExpandedZonedMarker; - timeZone: string; - localeCodes: string[]; - separator: string; - } - export interface DateFormattingContext { - timeZone: string; - locale: Locale; - calendarSystem: CalendarSystem; - computeWeekNumber: (d: DateMarker) => number; - weekLabel: string; - cmdFormatter?: CmdFormatterFunc; - } - export interface DateFormatter { - format(date: ZonedMarker, context: DateFormattingContext): any; - formatRange(start: ZonedMarker, end: ZonedMarker, context: DateFormattingContext): any; - } - export type FormatterInput = object | string | FuncFormatterFunc; - export function createFormatter(input: FormatterInput, defaultSeparator?: string): DateFormatter; - export function buildIsoString(marker: DateMarker, timeZoneOffset?: number, stripZeroTime?: boolean): string; - export function formatIsoTimeString(marker: DateMarker): string; - export function formatTimeZoneOffset(minutes: number, doIso?: boolean): string; - export function createVerboseFormattingArg(start: ZonedMarker, end: ZonedMarker, context: DateFormattingContext, separator?: string): VerboseFormattingArg; -} - -declare module '@fullcalendar/core/datelib/timezone' { - export abstract class NamedTimeZoneImpl { - timeZoneName: string; - constructor(timeZoneName: string); - abstract offsetForArray(a: number[]): number; - abstract timestampToArray(ms: number): number[]; - } - export type NamedTimeZoneImplClass = { - new (timeZoneName: string): NamedTimeZoneImpl; - }; -} - -declare module '@fullcalendar/core/datelib/parsing' { - export function parse(str: any): { - marker: Date; - isTimeUnspecified: boolean; - timeZoneOffset: any; - }; -} - -declare module '@fullcalendar/core/structs/event-source' { - import { EventInput } from '@fullcalendar/core/structs/event'; - import Calendar from '@fullcalendar/core/Calendar'; - import { DateRange } from '@fullcalendar/core/datelib/date-range'; - import { EventSourceFunc } from '@fullcalendar/core/event-sources/func-event-source'; - import { EventUi } from '@fullcalendar/core/component/event-ui'; - import { ConstraintInput, AllowFunc } from '@fullcalendar/core/validation'; - export type EventSourceError = { - message: string; - response?: any; - [otherProp: string]: any; - }; - export type EventInputTransformer = (eventInput: EventInput) => EventInput | null; - export type EventSourceSuccessResponseHandler = (rawData: any, response: any) => EventInput[] | void; - export type EventSourceErrorResponseHandler = (error: EventSourceError) => void; - export interface ExtendedEventSourceInput { - id?: string | number; - allDayDefault?: boolean; - eventDataTransform?: EventInputTransformer; - events?: EventInput[] | EventSourceFunc; - url?: string; - method?: string; - extraParams?: object | (() => object); - startParam?: string; - endParam?: string; - timeZoneParam?: string; - success?: EventSourceSuccessResponseHandler; - failure?: EventSourceErrorResponseHandler; - editable?: boolean; - startEditable?: boolean; - durationEditable?: boolean; - constraint?: ConstraintInput; - overlap?: boolean; - allow?: AllowFunc; - className?: string[] | string; - classNames?: string[] | string; - backgroundColor?: string; - borderColor?: string; - textColor?: string; - color?: string; - [otherProp: string]: any; - } - export type EventSourceInput = ExtendedEventSourceInput | // object in extended form - EventSourceFunc | // just a function - string; - export interface EventSource { - _raw: any; - sourceId: string; - sourceDefId: number; - meta: any; - publicId: string; - isFetching: boolean; - latestFetchId: string; - fetchRange: DateRange | null; - allDayDefault: boolean | null; - eventDataTransform: EventInputTransformer; - ui: EventUi; - success: EventSourceSuccessResponseHandler | null; - failure: EventSourceErrorResponseHandler | null; - extendedProps: any; - } - export type EventSourceHash = { - [sourceId: string]: EventSource; - }; - export type EventSourceFetcher = (arg: { - eventSource: EventSource; - calendar: Calendar; - range: DateRange; - }, success: (res: { - rawEvents: EventInput[]; - xhr?: XMLHttpRequest; - }) => void, failure: (error: EventSourceError) => void) => (void | PromiseLike); - export interface EventSourceDef { - ignoreRange?: boolean; - parseMeta: (raw: EventSourceInput) => object | null; - fetch: EventSourceFetcher; - } - export function doesSourceNeedRange(eventSource: EventSource, calendar: Calendar): boolean; - export function parseEventSource(raw: EventSourceInput, calendar: Calendar): EventSource | null; -} - -declare module '@fullcalendar/core/interactions/interaction' { - import DateComponent from '@fullcalendar/core/component/DateComponent'; - export abstract class Interaction { - component: DateComponent; - constructor(settings: InteractionSettings); - destroy(): void; - } - export type InteractionClass = { - new (settings: InteractionSettings): Interaction; - }; - export interface InteractionSettingsInput { - el: HTMLElement; - useEventCenter?: boolean; - } - export interface InteractionSettings { - component: DateComponent; - el: HTMLElement; - useEventCenter: boolean; - } - export type InteractionSettingsStore = { - [componenUid: string]: InteractionSettings; - }; - export function parseInteractionSettings(component: DateComponent, input: InteractionSettingsInput): InteractionSettings; - export function interactionSettingsToStore(settings: InteractionSettings): { - [x: string]: InteractionSettings; - }; - export let interactionSettingsStore: InteractionSettingsStore; -} - -declare module '@fullcalendar/core/interactions/pointer' { - export interface PointerDragEvent { - origEvent: UIEvent; - isTouch: boolean; - subjectEl: EventTarget; - pageX: number; - pageY: number; - deltaX: number; - deltaY: number; - } -} - -declare module '@fullcalendar/core/interactions/hit' { - import DateComponent from '@fullcalendar/core/component/DateComponent'; - import { DateSpan } from '@fullcalendar/core/structs/date-span'; - import { Rect } from '@fullcalendar/core/util/geom'; - export interface Hit { - component: DateComponent; - dateSpan: DateSpan; - dayEl: HTMLElement; - rect: Rect; - layer: number; - } -} - -declare module '@fullcalendar/core/interactions/date-selecting' { - import { Hit } from '@fullcalendar/core/interactions/hit'; - export type dateSelectionJoinTransformer = (hit0: Hit, hit1: Hit) => any; -} - -declare module '@fullcalendar/core/interactions/event-dragging' { - import Calendar from '@fullcalendar/core/Calendar'; - import { EventMutation } from '@fullcalendar/core/structs/event-mutation'; - import { Hit } from '@fullcalendar/core/interactions/hit'; - import { EventDef } from '@fullcalendar/core/structs/event'; - import { EventUi } from '@fullcalendar/core/component/event-ui'; - import { View } from '@fullcalendar/core'; - export type eventDragMutationMassager = (mutation: EventMutation, hit0: Hit, hit1: Hit) => void; - export type EventDropTransformers = (mutation: EventMutation, calendar: Calendar) => any; - export type eventIsDraggableTransformer = (val: boolean, eventDef: EventDef, eventUi: EventUi, view: View) => boolean; -} - -declare module '@fullcalendar/core/interactions/event-resizing' { - import { Hit } from '@fullcalendar/core/interactions/hit'; - export type EventResizeJoinTransforms = (hit0: Hit, hit1: Hit) => false | object; -} - -declare module '@fullcalendar/core/interactions/ElementDragging' { - import EmitterMixin from '@fullcalendar/core/common/EmitterMixin'; - export { ElementDragging as default, ElementDragging }; - abstract class ElementDragging { - emitter: EmitterMixin; - constructor(el: HTMLElement); - destroy(): void; - abstract setIgnoreMove(bool: boolean): void; - setMirrorIsVisible(bool: boolean): void; - setMirrorNeedsRevert(bool: boolean): void; - setAutoScrollEnabled(bool: boolean): void; - } - export type ElementDraggingClass = { - new (el: HTMLElement): ElementDragging; - }; -} - -declare module '@fullcalendar/core/formatting-api' { - import { DateInput } from '@fullcalendar/core/datelib/env'; - export function formatDate(dateInput: DateInput, settings?: {}): any; - export function formatRange(startInput: DateInput, endInput: DateInput, settings: any): any; -} - -declare module '@fullcalendar/core/options' { - import { PluginDef } from '@fullcalendar/core/plugin-system'; - export const config: any; - export const globalDefaults: { - defaultRangeSeparator: string; - titleRangeSeparator: string; - defaultTimedEventDuration: string; - defaultAllDayEventDuration: { - day: number; - }; - forceEventDuration: boolean; - nextDayThreshold: string; - columnHeader: boolean; - defaultView: string; - aspectRatio: number; - header: { - left: string; - center: string; - right: string; - }; - weekends: boolean; - weekNumbers: boolean; - weekNumberCalculation: string; - editable: boolean; - scrollTime: string; - minTime: string; - maxTime: string; - showNonCurrentDates: boolean; - lazyFetching: boolean; - startParam: string; - endParam: string; - timeZoneParam: string; - timeZone: string; - locales: any[]; - locale: string; - timeGridEventMinHeight: number; - themeSystem: string; - dragRevertDuration: number; - dragScroll: boolean; - allDayMaintainDuration: boolean; - unselectAuto: boolean; - dropAccept: string; - eventOrder: string; - eventLimit: boolean; - eventLimitClick: string; - dayPopoverFormat: { - month: string; - day: string; - year: string; - }; - handleWindowResize: boolean; - windowResizeDelay: number; - longPressDelay: number; - eventDragMinDistance: number; - }; - export const rtlDefaults: { - header: { - left: string; - center: string; - right: string; - }; - buttonIcons: { - prev: string; - next: string; - prevYear: string; - nextYear: string; - }; - }; - export function mergeOptions(optionObjs: any): any; - export function refinePluginDefs(pluginInputs: any[]): PluginDef[]; -} - -declare module '@fullcalendar/core/structs/recurring-event' { - import { EventInput, EventDef } from '@fullcalendar/core/structs/event'; - import { DateRange } from '@fullcalendar/core/datelib/date-range'; - import { DateEnv } from '@fullcalendar/core/datelib/env'; - import { Duration } from '@fullcalendar/core/datelib/duration'; - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - export interface ParsedRecurring { - typeData: any; - allDayGuess: boolean | null; - duration: Duration | null; - } - export interface RecurringType { - parse: (rawEvent: EventInput, leftoverProps: any, dateEnv: DateEnv) => ParsedRecurring | null; - expand: (typeData: any, framingRange: DateRange, dateEnv: DateEnv) => DateMarker[]; - } - export function parseRecurring(eventInput: EventInput, allDayDefault: boolean | null, dateEnv: DateEnv, recurringTypes: RecurringType[], leftovers: any): { - allDay: any; - duration: Duration; - typeData: any; - typeId: number; - }; - export function expandRecurringRanges(eventDef: EventDef, duration: Duration, framingRange: DateRange, dateEnv: DateEnv, recurringTypes: RecurringType[]): DateMarker[]; -} - -declare module '@fullcalendar/core/structs/drag-meta' { - import { Duration, DurationInput } from '@fullcalendar/core/datelib/duration'; - import { EventNonDateInput } from '@fullcalendar/core/structs/event'; - export interface DragMetaInput extends EventNonDateInput { - startTime?: DurationInput; - duration?: DurationInput; - create?: boolean; - sourceId?: string; - } - export interface DragMeta { - startTime: Duration | null; - duration: Duration | null; - create: boolean; - sourceId: string; - leftoverProps: object; - } - export function parseDragMeta(raw: DragMetaInput): DragMeta; -} - -declare module '@fullcalendar/core/plugin-system' { - import { reducerFunc } from '@fullcalendar/core/reducers/types'; - import { eventDefParserFunc } from '@fullcalendar/core/structs/event'; - import { eventDefMutationApplier } from '@fullcalendar/core/structs/event-mutation'; - import Calendar, { DatePointTransform, DateSpanTransform, CalendarInteractionClass, OptionChangeHandlerMap } from '@fullcalendar/core/Calendar'; - import { ViewConfigInputHash } from '@fullcalendar/core/structs/view-config'; - import { ViewSpec } from '@fullcalendar/core/structs/view-spec'; - import View, { ViewProps } from '@fullcalendar/core/View'; - import { CalendarComponentProps } from '@fullcalendar/core/CalendarComponent'; - import { isPropsValidTester } from '@fullcalendar/core/validation'; - import { eventDragMutationMassager, eventIsDraggableTransformer, EventDropTransformers } from '@fullcalendar/core/interactions/event-dragging'; - import { dateSelectionJoinTransformer } from '@fullcalendar/core/interactions/date-selecting'; - import { EventResizeJoinTransforms } from '@fullcalendar/core/interactions/event-resizing'; - import { ExternalDefTransform } from '@fullcalendar/core/interactions/external-element-dragging'; - import { InteractionClass } from '@fullcalendar/core/interactions/interaction'; - import { ThemeClass } from '@fullcalendar/core/theme/Theme'; - import { EventSourceDef } from '@fullcalendar/core/structs/event-source'; - import { CmdFormatterFunc } from '@fullcalendar/core/datelib/formatting-cmd'; - import { RecurringType } from '@fullcalendar/core/structs/recurring-event'; - import { NamedTimeZoneImplClass } from '@fullcalendar/core/datelib/timezone'; - import { ElementDraggingClass } from '@fullcalendar/core/interactions/ElementDragging'; - export interface PluginDefInput { - deps?: PluginDef[]; - reducers?: reducerFunc[]; - eventDefParsers?: eventDefParserFunc[]; - isDraggableTransformers?: eventIsDraggableTransformer[]; - eventDragMutationMassagers?: eventDragMutationMassager[]; - eventDefMutationAppliers?: eventDefMutationApplier[]; - dateSelectionTransformers?: dateSelectionJoinTransformer[]; - datePointTransforms?: DatePointTransform[]; - dateSpanTransforms?: DateSpanTransform[]; - views?: ViewConfigInputHash; - viewPropsTransformers?: ViewPropsTransformerClass[]; - isPropsValid?: isPropsValidTester; - externalDefTransforms?: ExternalDefTransform[]; - eventResizeJoinTransforms?: EventResizeJoinTransforms[]; - viewContainerModifiers?: ViewContainerModifier[]; - eventDropTransformers?: EventDropTransformers[]; - componentInteractions?: InteractionClass[]; - calendarInteractions?: CalendarInteractionClass[]; - themeClasses?: { - [themeSystemName: string]: ThemeClass; - }; - eventSourceDefs?: EventSourceDef[]; - cmdFormatter?: CmdFormatterFunc; - recurringTypes?: RecurringType[]; - namedTimeZonedImpl?: NamedTimeZoneImplClass; - defaultView?: string; - elementDraggingImpl?: ElementDraggingClass; - optionChangeHandlers?: OptionChangeHandlerMap; - } - export interface PluginHooks { - reducers: reducerFunc[]; - eventDefParsers: eventDefParserFunc[]; - isDraggableTransformers: eventIsDraggableTransformer[]; - eventDragMutationMassagers: eventDragMutationMassager[]; - eventDefMutationAppliers: eventDefMutationApplier[]; - dateSelectionTransformers: dateSelectionJoinTransformer[]; - datePointTransforms: DatePointTransform[]; - dateSpanTransforms: DateSpanTransform[]; - views: ViewConfigInputHash; - viewPropsTransformers: ViewPropsTransformerClass[]; - isPropsValid: isPropsValidTester | null; - externalDefTransforms: ExternalDefTransform[]; - eventResizeJoinTransforms: EventResizeJoinTransforms[]; - viewContainerModifiers: ViewContainerModifier[]; - eventDropTransformers: EventDropTransformers[]; - componentInteractions: InteractionClass[]; - calendarInteractions: CalendarInteractionClass[]; - themeClasses: { - [themeSystemName: string]: ThemeClass; - }; - eventSourceDefs: EventSourceDef[]; - cmdFormatter?: CmdFormatterFunc; - recurringTypes: RecurringType[]; - namedTimeZonedImpl?: NamedTimeZoneImplClass; - defaultView: string; - elementDraggingImpl?: ElementDraggingClass; - optionChangeHandlers: OptionChangeHandlerMap; - } - export interface PluginDef extends PluginHooks { - id: string; - deps: PluginDef[]; - } - export type ViewPropsTransformerClass = new () => ViewPropsTransformer; - export interface ViewPropsTransformer { - transform(viewProps: ViewProps, viewSpec: ViewSpec, calendarProps: CalendarComponentProps, view: View): any; - } - export type ViewContainerModifier = (contentEl: HTMLElement, calendar: Calendar) => void; - export function createPlugin(input: PluginDefInput): PluginDef; - export class PluginSystem { - hooks: PluginHooks; - addedHash: { - [pluginId: string]: true; - }; - constructor(); - add(plugin: PluginDef): void; - } -} - -declare module '@fullcalendar/core/reducers/types' { - import { EventInput, EventInstanceHash } from '@fullcalendar/core/structs/event'; - import { DateRange } from '@fullcalendar/core/datelib/date-range'; - import { EventStore } from '@fullcalendar/core/structs/event-store'; - import { EventMutation } from '@fullcalendar/core/structs/event-mutation'; - import { EventSource, EventSourceHash, EventSourceError } from '@fullcalendar/core/structs/event-source'; - import { DateProfile } from '@fullcalendar/core/DateProfileGenerator'; - import { EventInteractionState } from '@fullcalendar/core/interactions/event-interaction-state'; - import { DateSpan } from '@fullcalendar/core/structs/date-span'; - import { DateEnv } from '@fullcalendar/core/datelib/env'; - import Calendar from '@fullcalendar/core/Calendar'; - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - export interface CalendarState { - eventSources: EventSourceHash; - eventSourceLoadingLevel: number; - loadingLevel: number; - viewType: string; - currentDate: DateMarker; - dateProfile: DateProfile | null; - eventStore: EventStore; - dateSelection: DateSpan | null; - eventSelection: string; - eventDrag: EventInteractionState | null; - eventResize: EventInteractionState | null; - } - export type reducerFunc = (state: CalendarState, action: Action, calendar: Calendar) => CalendarState; - export type Action = { - type: 'INIT'; - } | // wont it create another rerender? - { - type: 'PREV'; - } | { - type: 'NEXT'; - } | { - type: 'SET_DATE'; - dateMarker: DateMarker; - } | { - type: 'SET_VIEW_TYPE'; - viewType: string; - dateMarker?: DateMarker; - } | { - type: 'SELECT_DATES'; - selection: DateSpan; - } | { - type: 'UNSELECT_DATES'; - } | { - type: 'SELECT_EVENT'; - eventInstanceId: string; - } | { - type: 'UNSELECT_EVENT'; - } | { - type: 'SET_EVENT_DRAG'; - state: EventInteractionState; - } | { - type: 'UNSET_EVENT_DRAG'; - } | { - type: 'SET_EVENT_RESIZE'; - state: EventInteractionState; - } | { - type: 'UNSET_EVENT_RESIZE'; - } | { - type: 'ADD_EVENT_SOURCES'; - sources: EventSource[]; - } | { - type: 'REMOVE_EVENT_SOURCE'; - sourceId: string; - } | { - type: 'REMOVE_ALL_EVENT_SOURCES'; - } | { - type: 'FETCH_EVENT_SOURCES'; - sourceIds?: string[]; - } | // if no sourceIds, fetch all - { - type: 'CHANGE_TIMEZONE'; - oldDateEnv: DateEnv; - } | { - type: 'RECEIVE_EVENTS'; - sourceId: string; - fetchId: string; - fetchRange: DateRange | null; - rawEvents: EventInput[]; - } | { - type: 'RECEIVE_EVENT_ERROR'; - sourceId: string; - fetchId: string; - fetchRange: DateRange | null; - error: EventSourceError; - } | // need all these? - { - type: 'ADD_EVENTS'; - eventStore: EventStore; - } | { - type: 'MERGE_EVENTS'; - eventStore: EventStore; - } | { - type: 'MUTATE_EVENTS'; - instanceId: string; - mutation: EventMutation; - fromApi?: boolean; - } | { - type: 'REMOVE_EVENT_DEF'; - defId: string; - } | { - type: 'REMOVE_EVENT_INSTANCES'; - instances: EventInstanceHash; - } | { - type: 'REMOVE_ALL_EVENTS'; - } | { - type: 'RESET_EVENTS'; - }; -} - -declare module '@fullcalendar/core/CalendarComponent' { - import Component, { ComponentContext } from '@fullcalendar/core/component/Component'; - import { ViewSpec } from '@fullcalendar/core/structs/view-spec'; - import View from '@fullcalendar/core/View'; - import Toolbar from '@fullcalendar/core/Toolbar'; - import DateProfileGenerator, { DateProfile } from '@fullcalendar/core/DateProfileGenerator'; - import { EventStore } from '@fullcalendar/core/structs/event-store'; - import { EventUiHash } from '@fullcalendar/core/component/event-ui'; - import { BusinessHoursInput } from '@fullcalendar/core/structs/business-hours'; - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { CalendarState } from '@fullcalendar/core/reducers/types'; - export interface CalendarComponentProps extends CalendarState { - viewSpec: ViewSpec; - dateProfileGenerator: DateProfileGenerator; - eventUiBases: EventUiHash; - } - export { CalendarComponent as default, CalendarComponent }; - class CalendarComponent extends Component { - view: View; - header: Toolbar; - footer: Toolbar; - computeTitle: (dateProfile: any, viewOptions: any) => string; - parseBusinessHours: (input: BusinessHoursInput) => EventStore; - el: HTMLElement; - contentEl: HTMLElement; - isHeightAuto: boolean; - viewHeight: number; - constructor(context: ComponentContext, el: HTMLElement); - destroy(): void; - toggleElClassNames(bool: boolean): void; - render(props: CalendarComponentProps): void; - renderToolbars(viewSpec: ViewSpec, dateProfile: DateProfile, currentDate: DateMarker, dateProfileGenerator: DateProfileGenerator, title: string): void; - renderView(props: CalendarComponentProps, title: string): void; - updateSize(isResize?: boolean): void; - computeHeightVars(): void; - queryToolbarsHeight(): number; - freezeHeight(): void; - thawHeight(): void; - } -} - -declare module '@fullcalendar/core/common/DayHeader' { - import Component, { ComponentContext } from '@fullcalendar/core/component/Component'; - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { DateProfile } from '@fullcalendar/core/DateProfileGenerator'; - export interface DayTableHeaderProps { - dates: DateMarker[]; - dateProfile: DateProfile; - datesRepDistinctDays: boolean; - renderIntroHtml?: () => string; - } - export { DayHeader as default, DayHeader }; - class DayHeader extends Component { - el: HTMLElement; - thead: HTMLElement; - constructor(context: ComponentContext, parentEl: HTMLElement); - destroy(): void; - render(props: DayTableHeaderProps): void; - } -} - -declare module '@fullcalendar/core/common/table-utils' { - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { DateProfile } from '@fullcalendar/core/DateProfileGenerator'; - import { ComponentContext } from '@fullcalendar/core/component/Component'; - export function computeFallbackHeaderFormat(datesRepDistinctDays: boolean, dayCnt: number): { - weekday: string; - month?: undefined; - day?: undefined; - omitCommas?: undefined; - } | { - weekday: string; - month: string; - day: string; - omitCommas: boolean; - }; - export function renderDateCell(dateMarker: DateMarker, dateProfile: DateProfile, datesRepDistinctDays: any, colCnt: any, colHeadFormat: any, context: ComponentContext, colspan?: any, otherAttrs?: any): string; -} - -declare module '@fullcalendar/core/common/DaySeries' { - import DateProfileGenerator from '@fullcalendar/core/DateProfileGenerator'; - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { DateRange } from '@fullcalendar/core/datelib/date-range'; - export interface DaySeriesSeg { - firstIndex: number; - lastIndex: number; - isStart: boolean; - isEnd: boolean; - } - export { DaySeries as default, DaySeries }; - class DaySeries { - cnt: number; - dates: DateMarker[]; - indices: number[]; - constructor(range: DateRange, dateProfileGenerator: DateProfileGenerator); - sliceRange(range: DateRange): DaySeriesSeg | null; - } -} - -declare module '@fullcalendar/core/interactions/event-interaction-state' { - import { EventStore } from '@fullcalendar/core/structs/event-store'; - import { Seg } from '@fullcalendar/core/component/DateComponent'; - export interface EventInteractionState { - affectedEvents: EventStore; - mutatedEvents: EventStore; - isEvent: boolean; - origSeg: Seg | null; - } -} - -declare module '@fullcalendar/core/component/event-rendering' { - import { EventDef, EventTuple, EventDefHash } from '@fullcalendar/core/structs/event'; - import { EventStore } from '@fullcalendar/core/structs/event-store'; - import { DateRange } from '@fullcalendar/core/datelib/date-range'; - import { Duration } from '@fullcalendar/core/datelib/duration'; - import { Seg } from '@fullcalendar/core/component/DateComponent'; - import View from '@fullcalendar/core/View'; - import { EventUi, EventUiHash } from '@fullcalendar/core/component/event-ui'; - export interface EventRenderRange extends EventTuple { - ui: EventUi; - range: DateRange; - isStart: boolean; - isEnd: boolean; - } - export function sliceEventStore(eventStore: EventStore, eventUiBases: EventUiHash, framingRange: DateRange, nextDayThreshold?: Duration): { - bg: EventRenderRange[]; - fg: EventRenderRange[]; - }; - export function hasBgRendering(def: EventDef): boolean; - export function filterSegsViaEls(view: View, segs: Seg[], isMirror: boolean): Seg[]; - export function getElSeg(el: HTMLElement): Seg | null; - export function compileEventUis(eventDefs: EventDefHash, eventUiBases: EventUiHash): { - [key: string]: EventUi; - }; - export function compileEventUi(eventDef: EventDef, eventUiBases: EventUiHash): EventUi; -} - -declare module '@fullcalendar/core/common/DayTable' { - import DaySeries from '@fullcalendar/core/common/DaySeries'; - import { DateRange } from '@fullcalendar/core/datelib/date-range'; - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { Seg } from '@fullcalendar/core/component/DateComponent'; - export interface DayTableSeg extends Seg { - row: number; - firstCol: number; - lastCol: number; - } - export interface DayTableCell { - date: DateMarker; - htmlAttrs?: string; - } - export { DayTable as default, DayTable }; - class DayTable { - rowCnt: number; - colCnt: number; - cells: DayTableCell[][]; - headerDates: DateMarker[]; - constructor(daySeries: DaySeries, breakOnWeeks: boolean); - sliceRange(range: DateRange): DayTableSeg[]; - } -} - -declare module '@fullcalendar/core/common/slicing-utils' { - import { DateRange } from '@fullcalendar/core/datelib/date-range'; - import { EventStore } from '@fullcalendar/core/structs/event-store'; - import { EventUiHash } from '@fullcalendar/core/component/event-ui'; - import { DateProfile } from '@fullcalendar/core/DateProfileGenerator'; - import DateComponent, { Seg, EventSegUiInteractionState } from '@fullcalendar/core/component/DateComponent'; - import { DateSpan } from '@fullcalendar/core/structs/date-span'; - import { EventInteractionState } from '@fullcalendar/core/interactions/event-interaction-state'; - import { Duration } from '@fullcalendar/core/datelib/duration'; - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - export interface SliceableProps { - dateSelection: DateSpan; - businessHours: EventStore; - eventStore: EventStore; - eventDrag: EventInteractionState | null; - eventResize: EventInteractionState | null; - eventSelection: string; - eventUiBases: EventUiHash; - } - export interface SlicedProps { - dateSelectionSegs: SegType[]; - businessHourSegs: SegType[]; - fgEventSegs: SegType[]; - bgEventSegs: SegType[]; - eventDrag: EventSegUiInteractionState | null; - eventResize: EventSegUiInteractionState | null; - eventSelection: string; - } - export { Slicer as default, Slicer }; - abstract class Slicer { - abstract sliceRange(dateRange: DateRange, ...extraArgs: ExtraArgs): SegType[]; - sliceProps(props: SliceableProps, dateProfile: DateProfile, nextDayThreshold: Duration | null, component: DateComponent, // TODO: kill - ...extraArgs: ExtraArgs): SlicedProps; - sliceNowDate(// does not memoize - date: DateMarker, component: DateComponent, // TODO: kill - ...extraArgs: ExtraArgs): SegType[]; - } -} - -declare module '@fullcalendar/core/structs/event-mutation' { - import { Duration } from '@fullcalendar/core/datelib/duration'; - import { EventStore } from '@fullcalendar/core/structs/event-store'; - import { EventDef } from '@fullcalendar/core/structs/event'; - import Calendar from '@fullcalendar/core/Calendar'; - import { EventUiHash } from '@fullcalendar/core/component/event-ui'; - export interface EventMutation { - datesDelta?: Duration; - startDelta?: Duration; - endDelta?: Duration; - standardProps?: any; - extendedProps?: any; - } - export function applyMutationToEventStore(eventStore: EventStore, eventConfigBase: EventUiHash, mutation: EventMutation, calendar: Calendar): EventStore; - export type eventDefMutationApplier = (eventDef: EventDef, mutation: EventMutation, calendar: Calendar) => void; -} - -declare module '@fullcalendar/core/validation' { - import { EventStore } from '@fullcalendar/core/structs/event-store'; - import Calendar from '@fullcalendar/core/Calendar'; - import { DateSpan, DateSpanApi } from '@fullcalendar/core/structs/date-span'; - import EventApi from '@fullcalendar/core/api/EventApi'; - import { EventInput } from '@fullcalendar/core/structs/event'; - import { EventInteractionState } from '@fullcalendar/core/interactions/event-interaction-state'; - import { SplittableProps } from '@fullcalendar/core/component/event-splitting'; - export type ConstraintInput = 'businessHours' | string | EventInput | EventInput[]; - export type Constraint = 'businessHours' | string | EventStore | false; - export type OverlapFunc = ((stillEvent: EventApi, movingEvent: EventApi | null) => boolean); - export type AllowFunc = (span: DateSpanApi, movingEvent: EventApi | null) => boolean; - export type isPropsValidTester = (props: SplittableProps, calendar: Calendar) => boolean; - export function isInteractionValid(interaction: EventInteractionState, calendar: Calendar): boolean; - export function isDateSelectionValid(dateSelection: DateSpan, calendar: Calendar): boolean; - export function isPropsValid(state: SplittableProps, calendar: Calendar, dateSpanMeta?: {}, filterConfig?: any): boolean; - export function normalizeConstraint(input: ConstraintInput, calendar: Calendar): Constraint | null; -} - -declare module '@fullcalendar/core/api/EventApi' { - import Calendar from '@fullcalendar/core/Calendar'; - import { EventDef, EventInstance } from '@fullcalendar/core/structs/event'; - import { EventMutation } from '@fullcalendar/core/structs/event-mutation'; - import { DateInput } from '@fullcalendar/core/datelib/env'; - import { DurationInput } from '@fullcalendar/core/datelib/duration'; - import { FormatterInput } from '@fullcalendar/core/datelib/formatting'; - import EventSourceApi from '@fullcalendar/core/api/EventSourceApi'; - export { EventApi as default, EventApi }; - class EventApi { - _calendar: Calendar; - _def: EventDef; - _instance: EventInstance | null; - constructor(calendar: Calendar, def: EventDef, instance?: EventInstance); - setProp(name: string, val: string): void; - setExtendedProp(name: string, val: any): void; - setStart(startInput: DateInput, options?: { - granularity?: string; - maintainDuration?: boolean; - }): void; - setEnd(endInput: DateInput | null, options?: { - granularity?: string; - }): void; - setDates(startInput: DateInput, endInput: DateInput | null, options?: { - allDay?: boolean; - granularity?: string; - }): void; - moveStart(deltaInput: DurationInput): void; - moveEnd(deltaInput: DurationInput): void; - moveDates(deltaInput: DurationInput): void; - setAllDay(allDay: boolean, options?: { - maintainDuration?: boolean; - }): void; - formatRange(formatInput: FormatterInput): any; - mutate(mutation: EventMutation): void; - remove(): void; - readonly source: EventSourceApi | null; - readonly start: Date | null; - readonly end: Date | null; - readonly id: string; - readonly groupId: string; - readonly allDay: boolean; - readonly title: string; - readonly url: string; - readonly rendering: string; - readonly startEditable: boolean; - readonly durationEditable: boolean; - readonly constraint: any; - readonly overlap: any; - readonly allow: any; - readonly backgroundColor: string; - readonly borderColor: string; - readonly textColor: string; - readonly classNames: string[]; - readonly extendedProps: any; - } -} - -declare module '@fullcalendar/core/util/requestJson' { - export default function requestJson(method: string, url: string, params: object, successCallback: any, failureCallback: any): void; -} - -declare module '@fullcalendar/core/datelib/locale' { - export type LocaleCodeArg = string | string[]; - export type LocaleSingularArg = LocaleCodeArg | RawLocale; - export interface Locale { - codeArg: LocaleCodeArg; - codes: string[]; - week: { - dow: number; - doy: number; - }; - simpleNumberFormat: Intl.NumberFormat; - options: any; - } - export interface RawLocale { - code: string; - [otherProp: string]: any; - } - export type RawLocaleMap = { - [code: string]: RawLocale; - }; - export interface RawLocaleInfo { - map: RawLocaleMap; - defaultCode: string; - } - export function parseRawLocales(explicitRawLocales: RawLocale[]): RawLocaleInfo; - export function buildLocale(inputSingular: LocaleSingularArg, available: RawLocaleMap): Locale; -} - -declare module '@fullcalendar/core/OptionsManager' { - export { OptionsManager as default, OptionsManager }; - class OptionsManager { - dirDefaults: any; - localeDefaults: any; - overrides: any; - dynamicOverrides: any; - computed: any; - constructor(overrides: any); - mutate(updates: any, removals: string[], isDynamic?: boolean): void; - compute(): void; - } -} - -declare module '@fullcalendar/core/api/EventSourceApi' { - import Calendar from '@fullcalendar/core/Calendar'; - import { EventSource } from '@fullcalendar/core/structs/event-source'; - export { EventSourceApi as default, EventSourceApi }; - class EventSourceApi { - calendar: Calendar; - internalEventSource: EventSource; - constructor(calendar: Calendar, internalEventSource: EventSource); - remove(): void; - refetch(): void; - readonly id: string; - readonly url: string; - } -} - -declare module '@fullcalendar/core/structs/view-config' { - import View from '@fullcalendar/core/View'; - import { ViewSpec } from '@fullcalendar/core/structs/view-spec'; - import { ComponentContext } from '@fullcalendar/core/component/Component'; - import DateProfileGenerator from '@fullcalendar/core/DateProfileGenerator'; - export type ViewClass = new (context: ComponentContext, viewSpec: ViewSpec, dateProfileGenerator: DateProfileGenerator, parentEl: HTMLElement) => View; - export interface ViewConfigObjectInput { - type?: string; - class?: ViewClass; - [optionName: string]: any; - } - export type ViewConfigInput = ViewClass | ViewConfigObjectInput; - export type ViewConfigInputHash = { - [viewType: string]: ViewConfigInput; - }; - export interface ViewConfig { - superType: string; - class: ViewClass | null; - options: any; - } - export type ViewConfigHash = { - [viewType: string]: ViewConfig; - }; - export function parseViewConfigs(inputs: ViewConfigInputHash): ViewConfigHash; -} - -declare module '@fullcalendar/core/datelib/calendar-system' { - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - export interface CalendarSystem { - getMarkerYear(d: DateMarker): number; - getMarkerMonth(d: DateMarker): number; - getMarkerDay(d: DateMarker): number; - arrayToMarker(arr: number[]): DateMarker; - markerToArray(d: DateMarker): number[]; - } - export function registerCalendarSystem(name: any, theClass: any): void; - export function createCalendarSystem(name: any): any; -} - -declare module '@fullcalendar/core/datelib/formatting-cmd' { - import { DateFormatter, DateFormattingContext, ZonedMarker, VerboseFormattingArg } from '@fullcalendar/core/datelib/formatting'; - export type CmdFormatterFunc = (cmd: string, arg: VerboseFormattingArg) => string; - export class CmdFormatter implements DateFormatter { - cmdStr: string; - separator: string; - constructor(cmdStr: string, separator?: string); - format(date: ZonedMarker, context: DateFormattingContext): string; - formatRange(start: ZonedMarker, end: ZonedMarker, context: DateFormattingContext): string; - } -} - -declare module '@fullcalendar/core/datelib/formatting-func' { - import { DateFormatter, DateFormattingContext, ZonedMarker, VerboseFormattingArg } from '@fullcalendar/core/datelib/formatting'; - export type FuncFormatterFunc = (arg: VerboseFormattingArg) => string; - export class FuncFormatter implements DateFormatter { - func: FuncFormatterFunc; - constructor(func: FuncFormatterFunc); - format(date: ZonedMarker, context: DateFormattingContext): string; - formatRange(start: ZonedMarker, end: ZonedMarker, context: DateFormattingContext): string; - } -} - -declare module '@fullcalendar/core/event-sources/func-event-source' { - import { EventSourceError } from '@fullcalendar/core/structs/event-source'; - import { EventInput } from '@fullcalendar/core/structs/event'; - export type EventSourceFunc = (arg: { - start: Date; - end: Date; - timeZone: string; - }, successCallback: (events: EventInput[]) => void, failureCallback: (error: EventSourceError) => void) => (void | PromiseLike); - const _default: import("@fullcalendar/core/plugin-system").PluginDef; - export default _default; -} - -declare module '@fullcalendar/core/interactions/external-element-dragging' { - import { DateSpan } from '@fullcalendar/core/structs/date-span'; - import { DragMeta } from '@fullcalendar/core/structs/drag-meta'; - export type ExternalDefTransform = (dateSpan: DateSpan, dragMeta: DragMeta) => any; -} - -declare module '@fullcalendar/core/Toolbar' { - import Component, { ComponentContext } from '@fullcalendar/core/component/Component'; - export interface ToolbarRenderProps { - layout: any; - title: string; - activeButton: string; - isTodayEnabled: boolean; - isPrevEnabled: boolean; - isNextEnabled: boolean; - } - export { Toolbar as default, Toolbar }; - class Toolbar extends Component { - el: HTMLElement; - viewsWithButtons: any; - constructor(context: ComponentContext, extraClassName: any); - destroy(): void; - render(props: ToolbarRenderProps): void; - renderLayout(layout: any): void; - unrenderLayout(): void; - renderSection(position: any, buttonStr: any): HTMLElement; - updateToday(isTodayEnabled: any): void; - updatePrev(isPrevEnabled: any): void; - updateNext(isNextEnabled: any): void; - updateTitle(text: any): void; - updateActiveButton(buttonName?: any): void; - toggleButtonEnabled(buttonName: any, bool: any): void; - } -} - diff --git a/htdocs/public/high/plugins/fullcalendar/main.esm.js b/htdocs/public/high/plugins/fullcalendar/main.esm.js deleted file mode 100644 index b3d27d75..00000000 --- a/htdocs/public/high/plugins/fullcalendar/main.esm.js +++ /dev/null @@ -1,8558 +0,0 @@ -/*! -FullCalendar Core Package v4.3.1 -Docs & License: https://fullcalendar.io/ -(c) 2019 Adam Shaw -*/ - -// Creating -// ---------------------------------------------------------------------------------------------------------------- -var elementPropHash = { - className: true, - colSpan: true, - rowSpan: true -}; -var containerTagHash = { - '= rect.left && - point.left < rect.right && - point.top >= rect.top && - point.top < rect.bottom; -} -// Returns a new rectangle that is the intersection of the two rectangles. If they don't intersect, returns false -function intersectRects(rect1, rect2) { - var res = { - left: Math.max(rect1.left, rect2.left), - right: Math.min(rect1.right, rect2.right), - top: Math.max(rect1.top, rect2.top), - bottom: Math.min(rect1.bottom, rect2.bottom) - }; - if (res.left < res.right && res.top < res.bottom) { - return res; - } - return false; -} -function translateRect(rect, deltaX, deltaY) { - return { - left: rect.left + deltaX, - right: rect.right + deltaX, - top: rect.top + deltaY, - bottom: rect.bottom + deltaY - }; -} -// Returns a new point that will have been moved to reside within the given rectangle -function constrainPoint(point, rect) { - return { - left: Math.min(Math.max(point.left, rect.left), rect.right), - top: Math.min(Math.max(point.top, rect.top), rect.bottom) - }; -} -// Returns a point that is the center of the given rectangle -function getRectCenter(rect) { - return { - left: (rect.left + rect.right) / 2, - top: (rect.top + rect.bottom) / 2 - }; -} -// Subtracts point2's coordinates from point1's coordinates, returning a delta -function diffPoints(point1, point2) { - return { - left: point1.left - point2.left, - top: point1.top - point2.top - }; -} - -// Logic for determining if, when the element is right-to-left, the scrollbar appears on the left side -var isRtlScrollbarOnLeft = null; -function getIsRtlScrollbarOnLeft() { - if (isRtlScrollbarOnLeft === null) { - isRtlScrollbarOnLeft = computeIsRtlScrollbarOnLeft(); - } - return isRtlScrollbarOnLeft; -} -function computeIsRtlScrollbarOnLeft() { - var outerEl = createElement('div', { - style: { - position: 'absolute', - top: -1000, - left: 0, - border: 0, - padding: 0, - overflow: 'scroll', - direction: 'rtl' - } - }, '
'); - document.body.appendChild(outerEl); - var innerEl = outerEl.firstChild; - var res = innerEl.getBoundingClientRect().left > outerEl.getBoundingClientRect().left; - removeElement(outerEl); - return res; -} -// The scrollbar width computations in computeEdges are sometimes flawed when it comes to -// retina displays, rounding, and IE11. Massage them into a usable value. -function sanitizeScrollbarWidth(width) { - width = Math.max(0, width); // no negatives - width = Math.round(width); - return width; -} - -function computeEdges(el, getPadding) { - if (getPadding === void 0) { getPadding = false; } - var computedStyle = window.getComputedStyle(el); - var borderLeft = parseInt(computedStyle.borderLeftWidth, 10) || 0; - var borderRight = parseInt(computedStyle.borderRightWidth, 10) || 0; - var borderTop = parseInt(computedStyle.borderTopWidth, 10) || 0; - var borderBottom = parseInt(computedStyle.borderBottomWidth, 10) || 0; - // must use offset(Width|Height) because compatible with client(Width|Height) - var scrollbarLeftRight = sanitizeScrollbarWidth(el.offsetWidth - el.clientWidth - borderLeft - borderRight); - var scrollbarBottom = sanitizeScrollbarWidth(el.offsetHeight - el.clientHeight - borderTop - borderBottom); - var res = { - borderLeft: borderLeft, - borderRight: borderRight, - borderTop: borderTop, - borderBottom: borderBottom, - scrollbarBottom: scrollbarBottom, - scrollbarLeft: 0, - scrollbarRight: 0 - }; - if (getIsRtlScrollbarOnLeft() && computedStyle.direction === 'rtl') { // is the scrollbar on the left side? - res.scrollbarLeft = scrollbarLeftRight; - } - else { - res.scrollbarRight = scrollbarLeftRight; - } - if (getPadding) { - res.paddingLeft = parseInt(computedStyle.paddingLeft, 10) || 0; - res.paddingRight = parseInt(computedStyle.paddingRight, 10) || 0; - res.paddingTop = parseInt(computedStyle.paddingTop, 10) || 0; - res.paddingBottom = parseInt(computedStyle.paddingBottom, 10) || 0; - } - return res; -} -function computeInnerRect(el, goWithinPadding) { - if (goWithinPadding === void 0) { goWithinPadding = false; } - var outerRect = computeRect(el); - var edges = computeEdges(el, goWithinPadding); - var res = { - left: outerRect.left + edges.borderLeft + edges.scrollbarLeft, - right: outerRect.right - edges.borderRight - edges.scrollbarRight, - top: outerRect.top + edges.borderTop, - bottom: outerRect.bottom - edges.borderBottom - edges.scrollbarBottom - }; - if (goWithinPadding) { - res.left += edges.paddingLeft; - res.right -= edges.paddingRight; - res.top += edges.paddingTop; - res.bottom -= edges.paddingBottom; - } - return res; -} -function computeRect(el) { - var rect = el.getBoundingClientRect(); - return { - left: rect.left + window.pageXOffset, - top: rect.top + window.pageYOffset, - right: rect.right + window.pageXOffset, - bottom: rect.bottom + window.pageYOffset - }; -} -function computeViewportRect() { - return { - left: window.pageXOffset, - right: window.pageXOffset + document.documentElement.clientWidth, - top: window.pageYOffset, - bottom: window.pageYOffset + document.documentElement.clientHeight - }; -} -function computeHeightAndMargins(el) { - return el.getBoundingClientRect().height + computeVMargins(el); -} -function computeVMargins(el) { - var computed = window.getComputedStyle(el); - return parseInt(computed.marginTop, 10) + - parseInt(computed.marginBottom, 10); -} -// does not return window -function getClippingParents(el) { - var parents = []; - while (el instanceof HTMLElement) { // will stop when gets to document or null - var computedStyle = window.getComputedStyle(el); - if (computedStyle.position === 'fixed') { - break; - } - if ((/(auto|scroll)/).test(computedStyle.overflow + computedStyle.overflowY + computedStyle.overflowX)) { - parents.push(el); - } - el = el.parentNode; - } - return parents; -} -function computeClippingRect(el) { - return getClippingParents(el) - .map(function (el) { - return computeInnerRect(el); - }) - .concat(computeViewportRect()) - .reduce(function (rect0, rect1) { - return intersectRects(rect0, rect1) || rect1; // should always intersect - }); -} - -// Stops a mouse/touch event from doing it's native browser action -function preventDefault(ev) { - ev.preventDefault(); -} -// Event Delegation -// ---------------------------------------------------------------------------------------------------------------- -function listenBySelector(container, eventType, selector, handler) { - function realHandler(ev) { - var matchedChild = elementClosest(ev.target, selector); - if (matchedChild) { - handler.call(matchedChild, ev, matchedChild); - } - } - container.addEventListener(eventType, realHandler); - return function () { - container.removeEventListener(eventType, realHandler); - }; -} -function listenToHoverBySelector(container, selector, onMouseEnter, onMouseLeave) { - var currentMatchedChild; - return listenBySelector(container, 'mouseover', selector, function (ev, matchedChild) { - if (matchedChild !== currentMatchedChild) { - currentMatchedChild = matchedChild; - onMouseEnter(ev, matchedChild); - var realOnMouseLeave_1 = function (ev) { - currentMatchedChild = null; - onMouseLeave(ev, matchedChild); - matchedChild.removeEventListener('mouseleave', realOnMouseLeave_1); - }; - // listen to the next mouseleave, and then unattach - matchedChild.addEventListener('mouseleave', realOnMouseLeave_1); - } - }); -} -// Animation -// ---------------------------------------------------------------------------------------------------------------- -var transitionEventNames = [ - 'webkitTransitionEnd', - 'otransitionend', - 'oTransitionEnd', - 'msTransitionEnd', - 'transitionend' -]; -// triggered only when the next single subsequent transition finishes -function whenTransitionDone(el, callback) { - var realCallback = function (ev) { - callback(ev); - transitionEventNames.forEach(function (eventName) { - el.removeEventListener(eventName, realCallback); - }); - }; - transitionEventNames.forEach(function (eventName) { - el.addEventListener(eventName, realCallback); // cross-browser way to determine when the transition finishes - }); -} - -var DAY_IDS = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat']; -// Adding -function addWeeks(m, n) { - var a = dateToUtcArray(m); - a[2] += n * 7; - return arrayToUtcDate(a); -} -function addDays(m, n) { - var a = dateToUtcArray(m); - a[2] += n; - return arrayToUtcDate(a); -} -function addMs(m, n) { - var a = dateToUtcArray(m); - a[6] += n; - return arrayToUtcDate(a); -} -// Diffing (all return floats) -function diffWeeks(m0, m1) { - return diffDays(m0, m1) / 7; -} -function diffDays(m0, m1) { - return (m1.valueOf() - m0.valueOf()) / (1000 * 60 * 60 * 24); -} -function diffHours(m0, m1) { - return (m1.valueOf() - m0.valueOf()) / (1000 * 60 * 60); -} -function diffMinutes(m0, m1) { - return (m1.valueOf() - m0.valueOf()) / (1000 * 60); -} -function diffSeconds(m0, m1) { - return (m1.valueOf() - m0.valueOf()) / 1000; -} -function diffDayAndTime(m0, m1) { - var m0day = startOfDay(m0); - var m1day = startOfDay(m1); - return { - years: 0, - months: 0, - days: Math.round(diffDays(m0day, m1day)), - milliseconds: (m1.valueOf() - m1day.valueOf()) - (m0.valueOf() - m0day.valueOf()) - }; -} -// Diffing Whole Units -function diffWholeWeeks(m0, m1) { - var d = diffWholeDays(m0, m1); - if (d !== null && d % 7 === 0) { - return d / 7; - } - return null; -} -function diffWholeDays(m0, m1) { - if (timeAsMs(m0) === timeAsMs(m1)) { - return Math.round(diffDays(m0, m1)); - } - return null; -} -// Start-Of -function startOfDay(m) { - return arrayToUtcDate([ - m.getUTCFullYear(), - m.getUTCMonth(), - m.getUTCDate() - ]); -} -function startOfHour(m) { - return arrayToUtcDate([ - m.getUTCFullYear(), - m.getUTCMonth(), - m.getUTCDate(), - m.getUTCHours() - ]); -} -function startOfMinute(m) { - return arrayToUtcDate([ - m.getUTCFullYear(), - m.getUTCMonth(), - m.getUTCDate(), - m.getUTCHours(), - m.getUTCMinutes() - ]); -} -function startOfSecond(m) { - return arrayToUtcDate([ - m.getUTCFullYear(), - m.getUTCMonth(), - m.getUTCDate(), - m.getUTCHours(), - m.getUTCMinutes(), - m.getUTCSeconds() - ]); -} -// Week Computation -function weekOfYear(marker, dow, doy) { - var y = marker.getUTCFullYear(); - var w = weekOfGivenYear(marker, y, dow, doy); - if (w < 1) { - return weekOfGivenYear(marker, y - 1, dow, doy); - } - var nextW = weekOfGivenYear(marker, y + 1, dow, doy); - if (nextW >= 1) { - return Math.min(w, nextW); - } - return w; -} -function weekOfGivenYear(marker, year, dow, doy) { - var firstWeekStart = arrayToUtcDate([year, 0, 1 + firstWeekOffset(year, dow, doy)]); - var dayStart = startOfDay(marker); - var days = Math.round(diffDays(firstWeekStart, dayStart)); - return Math.floor(days / 7) + 1; // zero-indexed -} -// start-of-first-week - start-of-year -function firstWeekOffset(year, dow, doy) { - // first-week day -- which january is always in the first week (4 for iso, 1 for other) - var fwd = 7 + dow - doy; - // first-week day local weekday -- which local weekday is fwd - var fwdlw = (7 + arrayToUtcDate([year, 0, fwd]).getUTCDay() - dow) % 7; - return -fwdlw + fwd - 1; -} -// Array Conversion -function dateToLocalArray(date) { - return [ - date.getFullYear(), - date.getMonth(), - date.getDate(), - date.getHours(), - date.getMinutes(), - date.getSeconds(), - date.getMilliseconds() - ]; -} -function arrayToLocalDate(a) { - return new Date(a[0], a[1] || 0, a[2] == null ? 1 : a[2], // day of month - a[3] || 0, a[4] || 0, a[5] || 0); -} -function dateToUtcArray(date) { - return [ - date.getUTCFullYear(), - date.getUTCMonth(), - date.getUTCDate(), - date.getUTCHours(), - date.getUTCMinutes(), - date.getUTCSeconds(), - date.getUTCMilliseconds() - ]; -} -function arrayToUtcDate(a) { - // according to web standards (and Safari), a month index is required. - // massage if only given a year. - if (a.length === 1) { - a = a.concat([0]); - } - return new Date(Date.UTC.apply(Date, a)); -} -// Other Utils -function isValidDate(m) { - return !isNaN(m.valueOf()); -} -function timeAsMs(m) { - return m.getUTCHours() * 1000 * 60 * 60 + - m.getUTCMinutes() * 1000 * 60 + - m.getUTCSeconds() * 1000 + - m.getUTCMilliseconds(); -} - -var INTERNAL_UNITS = ['years', 'months', 'days', 'milliseconds']; -var PARSE_RE = /^(-?)(?:(\d+)\.)?(\d+):(\d\d)(?::(\d\d)(?:\.(\d\d\d))?)?/; -// Parsing and Creation -function createDuration(input, unit) { - var _a; - if (typeof input === 'string') { - return parseString(input); - } - else if (typeof input === 'object' && input) { // non-null object - return normalizeObject(input); - } - else if (typeof input === 'number') { - return normalizeObject((_a = {}, _a[unit || 'milliseconds'] = input, _a)); - } - else { - return null; - } -} -function parseString(s) { - var m = PARSE_RE.exec(s); - if (m) { - var sign = m[1] ? -1 : 1; - return { - years: 0, - months: 0, - days: sign * (m[2] ? parseInt(m[2], 10) : 0), - milliseconds: sign * ((m[3] ? parseInt(m[3], 10) : 0) * 60 * 60 * 1000 + // hours - (m[4] ? parseInt(m[4], 10) : 0) * 60 * 1000 + // minutes - (m[5] ? parseInt(m[5], 10) : 0) * 1000 + // seconds - (m[6] ? parseInt(m[6], 10) : 0) // ms - ) - }; - } - return null; -} -function normalizeObject(obj) { - return { - years: obj.years || obj.year || 0, - months: obj.months || obj.month || 0, - days: (obj.days || obj.day || 0) + - getWeeksFromInput(obj) * 7, - milliseconds: (obj.hours || obj.hour || 0) * 60 * 60 * 1000 + // hours - (obj.minutes || obj.minute || 0) * 60 * 1000 + // minutes - (obj.seconds || obj.second || 0) * 1000 + // seconds - (obj.milliseconds || obj.millisecond || obj.ms || 0) // ms - }; -} -function getWeeksFromInput(obj) { - return obj.weeks || obj.week || 0; -} -// Equality -function durationsEqual(d0, d1) { - return d0.years === d1.years && - d0.months === d1.months && - d0.days === d1.days && - d0.milliseconds === d1.milliseconds; -} -function isSingleDay(dur) { - return dur.years === 0 && dur.months === 0 && dur.days === 1 && dur.milliseconds === 0; -} -// Simple Math -function addDurations(d0, d1) { - return { - years: d0.years + d1.years, - months: d0.months + d1.months, - days: d0.days + d1.days, - milliseconds: d0.milliseconds + d1.milliseconds - }; -} -function subtractDurations(d1, d0) { - return { - years: d1.years - d0.years, - months: d1.months - d0.months, - days: d1.days - d0.days, - milliseconds: d1.milliseconds - d0.milliseconds - }; -} -function multiplyDuration(d, n) { - return { - years: d.years * n, - months: d.months * n, - days: d.days * n, - milliseconds: d.milliseconds * n - }; -} -// Conversions -// "Rough" because they are based on average-case Gregorian months/years -function asRoughYears(dur) { - return asRoughDays(dur) / 365; -} -function asRoughMonths(dur) { - return asRoughDays(dur) / 30; -} -function asRoughDays(dur) { - return asRoughMs(dur) / 864e5; -} -function asRoughMinutes(dur) { - return asRoughMs(dur) / (1000 * 60); -} -function asRoughSeconds(dur) { - return asRoughMs(dur) / 1000; -} -function asRoughMs(dur) { - return dur.years * (365 * 864e5) + - dur.months * (30 * 864e5) + - dur.days * 864e5 + - dur.milliseconds; -} -// Advanced Math -function wholeDivideDurations(numerator, denominator) { - var res = null; - for (var i = 0; i < INTERNAL_UNITS.length; i++) { - var unit = INTERNAL_UNITS[i]; - if (denominator[unit]) { - var localRes = numerator[unit] / denominator[unit]; - if (!isInt(localRes) || (res !== null && res !== localRes)) { - return null; - } - res = localRes; - } - else if (numerator[unit]) { - // needs to divide by something but can't! - return null; - } - } - return res; -} -function greatestDurationDenominator(dur, dontReturnWeeks) { - var ms = dur.milliseconds; - if (ms) { - if (ms % 1000 !== 0) { - return { unit: 'millisecond', value: ms }; - } - if (ms % (1000 * 60) !== 0) { - return { unit: 'second', value: ms / 1000 }; - } - if (ms % (1000 * 60 * 60) !== 0) { - return { unit: 'minute', value: ms / (1000 * 60) }; - } - if (ms) { - return { unit: 'hour', value: ms / (1000 * 60 * 60) }; - } - } - if (dur.days) { - if (!dontReturnWeeks && dur.days % 7 === 0) { - return { unit: 'week', value: dur.days / 7 }; - } - return { unit: 'day', value: dur.days }; - } - if (dur.months) { - return { unit: 'month', value: dur.months }; - } - if (dur.years) { - return { unit: 'year', value: dur.years }; - } - return { unit: 'millisecond', value: 0 }; -} - -/* FullCalendar-specific DOM Utilities -----------------------------------------------------------------------------------------------------------------------*/ -// Given the scrollbar widths of some other container, create borders/margins on rowEls in order to match the left -// and right space that was offset by the scrollbars. A 1-pixel border first, then margin beyond that. -function compensateScroll(rowEl, scrollbarWidths) { - if (scrollbarWidths.left) { - applyStyle(rowEl, { - borderLeftWidth: 1, - marginLeft: scrollbarWidths.left - 1 - }); - } - if (scrollbarWidths.right) { - applyStyle(rowEl, { - borderRightWidth: 1, - marginRight: scrollbarWidths.right - 1 - }); - } -} -// Undoes compensateScroll and restores all borders/margins -function uncompensateScroll(rowEl) { - applyStyle(rowEl, { - marginLeft: '', - marginRight: '', - borderLeftWidth: '', - borderRightWidth: '' - }); -} -// Make the mouse cursor express that an event is not allowed in the current area -function disableCursor() { - document.body.classList.add('fc-not-allowed'); -} -// Returns the mouse cursor to its original look -function enableCursor() { - document.body.classList.remove('fc-not-allowed'); -} -// Given a total available height to fill, have `els` (essentially child rows) expand to accomodate. -// By default, all elements that are shorter than the recommended height are expanded uniformly, not considering -// any other els that are already too tall. if `shouldRedistribute` is on, it considers these tall rows and -// reduces the available height. -function distributeHeight(els, availableHeight, shouldRedistribute) { - // *FLOORING NOTE*: we floor in certain places because zoom can give inaccurate floating-point dimensions, - // and it is better to be shorter than taller, to avoid creating unnecessary scrollbars. - var minOffset1 = Math.floor(availableHeight / els.length); // for non-last element - var minOffset2 = Math.floor(availableHeight - minOffset1 * (els.length - 1)); // for last element *FLOORING NOTE* - var flexEls = []; // elements that are allowed to expand. array of DOM nodes - var flexOffsets = []; // amount of vertical space it takes up - var flexHeights = []; // actual css height - var usedHeight = 0; - undistributeHeight(els); // give all elements their natural height - // find elements that are below the recommended height (expandable). - // important to query for heights in a single first pass (to avoid reflow oscillation). - els.forEach(function (el, i) { - var minOffset = i === els.length - 1 ? minOffset2 : minOffset1; - var naturalHeight = el.getBoundingClientRect().height; - var naturalOffset = naturalHeight + computeVMargins(el); - if (naturalOffset < minOffset) { - flexEls.push(el); - flexOffsets.push(naturalOffset); - flexHeights.push(naturalHeight); - } - else { - // this element stretches past recommended height (non-expandable). mark the space as occupied. - usedHeight += naturalOffset; - } - }); - // readjust the recommended height to only consider the height available to non-maxed-out rows. - if (shouldRedistribute) { - availableHeight -= usedHeight; - minOffset1 = Math.floor(availableHeight / flexEls.length); - minOffset2 = Math.floor(availableHeight - minOffset1 * (flexEls.length - 1)); // *FLOORING NOTE* - } - // assign heights to all expandable elements - flexEls.forEach(function (el, i) { - var minOffset = i === flexEls.length - 1 ? minOffset2 : minOffset1; - var naturalOffset = flexOffsets[i]; - var naturalHeight = flexHeights[i]; - var newHeight = minOffset - (naturalOffset - naturalHeight); // subtract the margin/padding - if (naturalOffset < minOffset) { // we check this again because redistribution might have changed things - el.style.height = newHeight + 'px'; - } - }); -} -// Undoes distrubuteHeight, restoring all els to their natural height -function undistributeHeight(els) { - els.forEach(function (el) { - el.style.height = ''; - }); -} -// Given `els`, a set of cells, find the cell with the largest natural width and set the widths of all the -// cells to be that width. -// PREREQUISITE: if you want a cell to take up width, it needs to have a single inner element w/ display:inline -function matchCellWidths(els) { - var maxInnerWidth = 0; - els.forEach(function (el) { - var innerEl = el.firstChild; // hopefully an element - if (innerEl instanceof HTMLElement) { - var innerWidth_1 = innerEl.getBoundingClientRect().width; - if (innerWidth_1 > maxInnerWidth) { - maxInnerWidth = innerWidth_1; - } - } - }); - maxInnerWidth++; // sometimes not accurate of width the text needs to stay on one line. insurance - els.forEach(function (el) { - el.style.width = maxInnerWidth + 'px'; - }); - return maxInnerWidth; -} -// Given one element that resides inside another, -// Subtracts the height of the inner element from the outer element. -function subtractInnerElHeight(outerEl, innerEl) { - // effin' IE8/9/10/11 sometimes returns 0 for dimensions. this weird hack was the only thing that worked - var reflowStyleProps = { - position: 'relative', - left: -1 // ensure reflow in case the el was already relative. negative is less likely to cause new scroll - }; - applyStyle(outerEl, reflowStyleProps); - applyStyle(innerEl, reflowStyleProps); - var diff = // grab the dimensions - outerEl.getBoundingClientRect().height - - innerEl.getBoundingClientRect().height; - // undo hack - var resetStyleProps = { position: '', left: '' }; - applyStyle(outerEl, resetStyleProps); - applyStyle(innerEl, resetStyleProps); - return diff; -} -/* Selection -----------------------------------------------------------------------------------------------------------------------*/ -function preventSelection(el) { - el.classList.add('fc-unselectable'); - el.addEventListener('selectstart', preventDefault); -} -function allowSelection(el) { - el.classList.remove('fc-unselectable'); - el.removeEventListener('selectstart', preventDefault); -} -/* Context Menu -----------------------------------------------------------------------------------------------------------------------*/ -function preventContextMenu(el) { - el.addEventListener('contextmenu', preventDefault); -} -function allowContextMenu(el) { - el.removeEventListener('contextmenu', preventDefault); -} -/* Object Ordering by Field -----------------------------------------------------------------------------------------------------------------------*/ -function parseFieldSpecs(input) { - var specs = []; - var tokens = []; - var i; - var token; - if (typeof input === 'string') { - tokens = input.split(/\s*,\s*/); - } - else if (typeof input === 'function') { - tokens = [input]; - } - else if (Array.isArray(input)) { - tokens = input; - } - for (i = 0; i < tokens.length; i++) { - token = tokens[i]; - if (typeof token === 'string') { - specs.push(token.charAt(0) === '-' ? - { field: token.substring(1), order: -1 } : - { field: token, order: 1 }); - } - else if (typeof token === 'function') { - specs.push({ func: token }); - } - } - return specs; -} -function compareByFieldSpecs(obj0, obj1, fieldSpecs) { - var i; - var cmp; - for (i = 0; i < fieldSpecs.length; i++) { - cmp = compareByFieldSpec(obj0, obj1, fieldSpecs[i]); - if (cmp) { - return cmp; - } - } - return 0; -} -function compareByFieldSpec(obj0, obj1, fieldSpec) { - if (fieldSpec.func) { - return fieldSpec.func(obj0, obj1); - } - return flexibleCompare(obj0[fieldSpec.field], obj1[fieldSpec.field]) - * (fieldSpec.order || 1); -} -function flexibleCompare(a, b) { - if (!a && !b) { - return 0; - } - if (b == null) { - return -1; - } - if (a == null) { - return 1; - } - if (typeof a === 'string' || typeof b === 'string') { - return String(a).localeCompare(String(b)); - } - return a - b; -} -/* String Utilities -----------------------------------------------------------------------------------------------------------------------*/ -function capitaliseFirstLetter(str) { - return str.charAt(0).toUpperCase() + str.slice(1); -} -function padStart(val, len) { - var s = String(val); - return '000'.substr(0, len - s.length) + s; -} -/* Number Utilities -----------------------------------------------------------------------------------------------------------------------*/ -function compareNumbers(a, b) { - return a - b; -} -function isInt(n) { - return n % 1 === 0; -} -/* Weird Utilities -----------------------------------------------------------------------------------------------------------------------*/ -function applyAll(functions, thisObj, args) { - if (typeof functions === 'function') { // supplied a single function - functions = [functions]; - } - if (functions) { - var i = void 0; - var ret = void 0; - for (i = 0; i < functions.length; i++) { - ret = functions[i].apply(thisObj, args) || ret; - } - return ret; - } -} -function firstDefined() { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - for (var i = 0; i < args.length; i++) { - if (args[i] !== undefined) { - return args[i]; - } - } -} -// Returns a function, that, as long as it continues to be invoked, will not -// be triggered. The function will be called after it stops being called for -// N milliseconds. If `immediate` is passed, trigger the function on the -// leading edge, instead of the trailing. -// https://github.com/jashkenas/underscore/blob/1.6.0/underscore.js#L714 -function debounce(func, wait) { - var timeout; - var args; - var context; - var timestamp; - var result; - var later = function () { - var last = new Date().valueOf() - timestamp; - if (last < wait) { - timeout = setTimeout(later, wait - last); - } - else { - timeout = null; - result = func.apply(context, args); - context = args = null; - } - }; - return function () { - context = this; - args = arguments; - timestamp = new Date().valueOf(); - if (!timeout) { - timeout = setTimeout(later, wait); - } - return result; - }; -} -// Number and Boolean are only types that defaults or not computed for -// TODO: write more comments -function refineProps(rawProps, processors, defaults, leftoverProps) { - if (defaults === void 0) { defaults = {}; } - var refined = {}; - for (var key in processors) { - var processor = processors[key]; - if (rawProps[key] !== undefined) { - // found - if (processor === Function) { - refined[key] = typeof rawProps[key] === 'function' ? rawProps[key] : null; - } - else if (processor) { // a refining function? - refined[key] = processor(rawProps[key]); - } - else { - refined[key] = rawProps[key]; - } - } - else if (defaults[key] !== undefined) { - // there's an explicit default - refined[key] = defaults[key]; - } - else { - // must compute a default - if (processor === String) { - refined[key] = ''; // empty string is default for String - } - else if (!processor || processor === Number || processor === Boolean || processor === Function) { - refined[key] = null; // assign null for other non-custom processor funcs - } - else { - refined[key] = processor(null); // run the custom processor func - } - } - } - if (leftoverProps) { - for (var key in rawProps) { - if (processors[key] === undefined) { - leftoverProps[key] = rawProps[key]; - } - } - } - return refined; -} -/* Date stuff that doesn't belong in datelib core -----------------------------------------------------------------------------------------------------------------------*/ -// given a timed range, computes an all-day range that has the same exact duration, -// but whose start time is aligned with the start of the day. -function computeAlignedDayRange(timedRange) { - var dayCnt = Math.floor(diffDays(timedRange.start, timedRange.end)) || 1; - var start = startOfDay(timedRange.start); - var end = addDays(start, dayCnt); - return { start: start, end: end }; -} -// given a timed range, computes an all-day range based on how for the end date bleeds into the next day -// TODO: give nextDayThreshold a default arg -function computeVisibleDayRange(timedRange, nextDayThreshold) { - if (nextDayThreshold === void 0) { nextDayThreshold = createDuration(0); } - var startDay = null; - var endDay = null; - if (timedRange.end) { - endDay = startOfDay(timedRange.end); - var endTimeMS = timedRange.end.valueOf() - endDay.valueOf(); // # of milliseconds into `endDay` - // If the end time is actually inclusively part of the next day and is equal to or - // beyond the next day threshold, adjust the end to be the exclusive end of `endDay`. - // Otherwise, leaving it as inclusive will cause it to exclude `endDay`. - if (endTimeMS && endTimeMS >= asRoughMs(nextDayThreshold)) { - endDay = addDays(endDay, 1); - } - } - if (timedRange.start) { - startDay = startOfDay(timedRange.start); // the beginning of the day the range starts - // If end is within `startDay` but not past nextDayThreshold, assign the default duration of one day. - if (endDay && endDay <= startDay) { - endDay = addDays(startDay, 1); - } - } - return { start: startDay, end: endDay }; -} -// spans from one day into another? -function isMultiDayRange(range) { - var visibleRange = computeVisibleDayRange(range); - return diffDays(visibleRange.start, visibleRange.end) > 1; -} -function diffDates(date0, date1, dateEnv, largeUnit) { - if (largeUnit === 'year') { - return createDuration(dateEnv.diffWholeYears(date0, date1), 'year'); - } - else if (largeUnit === 'month') { - return createDuration(dateEnv.diffWholeMonths(date0, date1), 'month'); - } - else { - return diffDayAndTime(date0, date1); // returns a duration - } -} - -/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. All rights reserved. -Licensed under the Apache License, Version 2.0 (the "License"); you may not use -this file except in compliance with the License. You may obtain a copy of the -License at http://www.apache.org/licenses/LICENSE-2.0 - -THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED -WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, -MERCHANTABLITY OR NON-INFRINGEMENT. - -See the Apache Version 2.0 License for specific language governing permissions -and limitations under the License. -***************************************************************************** */ -/* global Reflect, Promise */ - -var extendStatics = function(d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return extendStatics(d, b); -}; - -function __extends(d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -} - -var __assign = function() { - __assign = Object.assign || function __assign(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); -}; - -function parseRecurring(eventInput, allDayDefault, dateEnv, recurringTypes, leftovers) { - for (var i = 0; i < recurringTypes.length; i++) { - var localLeftovers = {}; - var parsed = recurringTypes[i].parse(eventInput, localLeftovers, dateEnv); - if (parsed) { - var allDay = localLeftovers.allDay; - delete localLeftovers.allDay; // remove from leftovers - if (allDay == null) { - allDay = allDayDefault; - if (allDay == null) { - allDay = parsed.allDayGuess; - if (allDay == null) { - allDay = false; - } - } - } - __assign(leftovers, localLeftovers); - return { - allDay: allDay, - duration: parsed.duration, - typeData: parsed.typeData, - typeId: i - }; - } - } - return null; -} -/* -Event MUST have a recurringDef -*/ -function expandRecurringRanges(eventDef, duration, framingRange, dateEnv, recurringTypes) { - var typeDef = recurringTypes[eventDef.recurringDef.typeId]; - var markers = typeDef.expand(eventDef.recurringDef.typeData, { - start: dateEnv.subtract(framingRange.start, duration), - end: framingRange.end - }, dateEnv); - // the recurrence plugins don't guarantee that all-day events are start-of-day, so we have to - if (eventDef.allDay) { - markers = markers.map(startOfDay); - } - return markers; -} - -var hasOwnProperty = Object.prototype.hasOwnProperty; -// Merges an array of objects into a single object. -// The second argument allows for an array of property names who's object values will be merged together. -function mergeProps(propObjs, complexProps) { - var dest = {}; - var i; - var name; - var complexObjs; - var j; - var val; - var props; - if (complexProps) { - for (i = 0; i < complexProps.length; i++) { - name = complexProps[i]; - complexObjs = []; - // collect the trailing object values, stopping when a non-object is discovered - for (j = propObjs.length - 1; j >= 0; j--) { - val = propObjs[j][name]; - if (typeof val === 'object' && val) { // non-null object - complexObjs.unshift(val); - } - else if (val !== undefined) { - dest[name] = val; // if there were no objects, this value will be used - break; - } - } - // if the trailing values were objects, use the merged value - if (complexObjs.length) { - dest[name] = mergeProps(complexObjs); - } - } - } - // copy values into the destination, going from last to first - for (i = propObjs.length - 1; i >= 0; i--) { - props = propObjs[i]; - for (name in props) { - if (!(name in dest)) { // if already assigned by previous props or complex props, don't reassign - dest[name] = props[name]; - } - } - } - return dest; -} -function filterHash(hash, func) { - var filtered = {}; - for (var key in hash) { - if (func(hash[key], key)) { - filtered[key] = hash[key]; - } - } - return filtered; -} -function mapHash(hash, func) { - var newHash = {}; - for (var key in hash) { - newHash[key] = func(hash[key], key); - } - return newHash; -} -function arrayToHash(a) { - var hash = {}; - for (var _i = 0, a_1 = a; _i < a_1.length; _i++) { - var item = a_1[_i]; - hash[item] = true; - } - return hash; -} -function hashValuesToArray(obj) { - var a = []; - for (var key in obj) { - a.push(obj[key]); - } - return a; -} -function isPropsEqual(obj0, obj1) { - for (var key in obj0) { - if (hasOwnProperty.call(obj0, key)) { - if (!(key in obj1)) { - return false; - } - } - } - for (var key in obj1) { - if (hasOwnProperty.call(obj1, key)) { - if (obj0[key] !== obj1[key]) { - return false; - } - } - } - return true; -} - -function parseEvents(rawEvents, sourceId, calendar, allowOpenRange) { - var eventStore = createEmptyEventStore(); - for (var _i = 0, rawEvents_1 = rawEvents; _i < rawEvents_1.length; _i++) { - var rawEvent = rawEvents_1[_i]; - var tuple = parseEvent(rawEvent, sourceId, calendar, allowOpenRange); - if (tuple) { - eventTupleToStore(tuple, eventStore); - } - } - return eventStore; -} -function eventTupleToStore(tuple, eventStore) { - if (eventStore === void 0) { eventStore = createEmptyEventStore(); } - eventStore.defs[tuple.def.defId] = tuple.def; - if (tuple.instance) { - eventStore.instances[tuple.instance.instanceId] = tuple.instance; - } - return eventStore; -} -function expandRecurring(eventStore, framingRange, calendar) { - var dateEnv = calendar.dateEnv; - var defs = eventStore.defs, instances = eventStore.instances; - // remove existing recurring instances - instances = filterHash(instances, function (instance) { - return !defs[instance.defId].recurringDef; - }); - for (var defId in defs) { - var def = defs[defId]; - if (def.recurringDef) { - var duration = def.recurringDef.duration; - if (!duration) { - duration = def.allDay ? - calendar.defaultAllDayEventDuration : - calendar.defaultTimedEventDuration; - } - var starts = expandRecurringRanges(def, duration, framingRange, calendar.dateEnv, calendar.pluginSystem.hooks.recurringTypes); - for (var _i = 0, starts_1 = starts; _i < starts_1.length; _i++) { - var start = starts_1[_i]; - var instance = createEventInstance(defId, { - start: start, - end: dateEnv.add(start, duration) - }); - instances[instance.instanceId] = instance; - } - } - } - return { defs: defs, instances: instances }; -} -// retrieves events that have the same groupId as the instance specified by `instanceId` -// or they are the same as the instance. -// why might instanceId not be in the store? an event from another calendar? -function getRelevantEvents(eventStore, instanceId) { - var instance = eventStore.instances[instanceId]; - if (instance) { - var def_1 = eventStore.defs[instance.defId]; - // get events/instances with same group - var newStore = filterEventStoreDefs(eventStore, function (lookDef) { - return isEventDefsGrouped(def_1, lookDef); - }); - // add the original - // TODO: wish we could use eventTupleToStore or something like it - newStore.defs[def_1.defId] = def_1; - newStore.instances[instance.instanceId] = instance; - return newStore; - } - return createEmptyEventStore(); -} -function isEventDefsGrouped(def0, def1) { - return Boolean(def0.groupId && def0.groupId === def1.groupId); -} -function transformRawEvents(rawEvents, eventSource, calendar) { - var calEachTransform = calendar.opt('eventDataTransform'); - var sourceEachTransform = eventSource ? eventSource.eventDataTransform : null; - if (sourceEachTransform) { - rawEvents = transformEachRawEvent(rawEvents, sourceEachTransform); - } - if (calEachTransform) { - rawEvents = transformEachRawEvent(rawEvents, calEachTransform); - } - return rawEvents; -} -function transformEachRawEvent(rawEvents, func) { - var refinedEvents; - if (!func) { - refinedEvents = rawEvents; - } - else { - refinedEvents = []; - for (var _i = 0, rawEvents_2 = rawEvents; _i < rawEvents_2.length; _i++) { - var rawEvent = rawEvents_2[_i]; - var refinedEvent = func(rawEvent); - if (refinedEvent) { - refinedEvents.push(refinedEvent); - } - else if (refinedEvent == null) { - refinedEvents.push(rawEvent); - } // if a different falsy value, do nothing - } - } - return refinedEvents; -} -function createEmptyEventStore() { - return { defs: {}, instances: {} }; -} -function mergeEventStores(store0, store1) { - return { - defs: __assign({}, store0.defs, store1.defs), - instances: __assign({}, store0.instances, store1.instances) - }; -} -function filterEventStoreDefs(eventStore, filterFunc) { - var defs = filterHash(eventStore.defs, filterFunc); - var instances = filterHash(eventStore.instances, function (instance) { - return defs[instance.defId]; // still exists? - }); - return { defs: defs, instances: instances }; -} - -function parseRange(input, dateEnv) { - var start = null; - var end = null; - if (input.start) { - start = dateEnv.createMarker(input.start); - } - if (input.end) { - end = dateEnv.createMarker(input.end); - } - if (!start && !end) { - return null; - } - if (start && end && end < start) { - return null; - } - return { start: start, end: end }; -} -// SIDE-EFFECT: will mutate ranges. -// Will return a new array result. -function invertRanges(ranges, constraintRange) { - var invertedRanges = []; - var start = constraintRange.start; // the end of the previous range. the start of the new range - var i; - var dateRange; - // ranges need to be in order. required for our date-walking algorithm - ranges.sort(compareRanges); - for (i = 0; i < ranges.length; i++) { - dateRange = ranges[i]; - // add the span of time before the event (if there is any) - if (dateRange.start > start) { // compare millisecond time (skip any ambig logic) - invertedRanges.push({ start: start, end: dateRange.start }); - } - if (dateRange.end > start) { - start = dateRange.end; - } - } - // add the span of time after the last event (if there is any) - if (start < constraintRange.end) { // compare millisecond time (skip any ambig logic) - invertedRanges.push({ start: start, end: constraintRange.end }); - } - return invertedRanges; -} -function compareRanges(range0, range1) { - return range0.start.valueOf() - range1.start.valueOf(); // earlier ranges go first -} -function intersectRanges(range0, range1) { - var start = range0.start; - var end = range0.end; - var newRange = null; - if (range1.start !== null) { - if (start === null) { - start = range1.start; - } - else { - start = new Date(Math.max(start.valueOf(), range1.start.valueOf())); - } - } - if (range1.end != null) { - if (end === null) { - end = range1.end; - } - else { - end = new Date(Math.min(end.valueOf(), range1.end.valueOf())); - } - } - if (start === null || end === null || start < end) { - newRange = { start: start, end: end }; - } - return newRange; -} -function rangesEqual(range0, range1) { - return (range0.start === null ? null : range0.start.valueOf()) === (range1.start === null ? null : range1.start.valueOf()) && - (range0.end === null ? null : range0.end.valueOf()) === (range1.end === null ? null : range1.end.valueOf()); -} -function rangesIntersect(range0, range1) { - return (range0.end === null || range1.start === null || range0.end > range1.start) && - (range0.start === null || range1.end === null || range0.start < range1.end); -} -function rangeContainsRange(outerRange, innerRange) { - return (outerRange.start === null || (innerRange.start !== null && innerRange.start >= outerRange.start)) && - (outerRange.end === null || (innerRange.end !== null && innerRange.end <= outerRange.end)); -} -function rangeContainsMarker(range, date) { - return (range.start === null || date >= range.start) && - (range.end === null || date < range.end); -} -// If the given date is not within the given range, move it inside. -// (If it's past the end, make it one millisecond before the end). -function constrainMarkerToRange(date, range) { - if (range.start != null && date < range.start) { - return range.start; - } - if (range.end != null && date >= range.end) { - return new Date(range.end.valueOf() - 1); - } - return date; -} - -function removeExact(array, exactVal) { - var removeCnt = 0; - var i = 0; - while (i < array.length) { - if (array[i] === exactVal) { - array.splice(i, 1); - removeCnt++; - } - else { - i++; - } - } - return removeCnt; -} -function isArraysEqual(a0, a1) { - var len = a0.length; - var i; - if (len !== a1.length) { // not array? or not same length? - return false; - } - for (i = 0; i < len; i++) { - if (a0[i] !== a1[i]) { - return false; - } - } - return true; -} - -function memoize(workerFunc) { - var args; - var res; - return function () { - if (!args || !isArraysEqual(args, arguments)) { - args = arguments; - res = workerFunc.apply(this, arguments); - } - return res; - }; -} -/* -always executes the workerFunc, but if the result is equal to the previous result, -return the previous result instead. -*/ -function memoizeOutput(workerFunc, equalityFunc) { - var cachedRes = null; - return function () { - var newRes = workerFunc.apply(this, arguments); - if (cachedRes === null || !(cachedRes === newRes || equalityFunc(cachedRes, newRes))) { - cachedRes = newRes; - } - return cachedRes; - }; -} - -var EXTENDED_SETTINGS_AND_SEVERITIES = { - week: 3, - separator: 0, - omitZeroMinute: 0, - meridiem: 0, - omitCommas: 0 -}; -var STANDARD_DATE_PROP_SEVERITIES = { - timeZoneName: 7, - era: 6, - year: 5, - month: 4, - day: 2, - weekday: 2, - hour: 1, - minute: 1, - second: 1 -}; -var MERIDIEM_RE = /\s*([ap])\.?m\.?/i; // eats up leading spaces too -var COMMA_RE = /,/g; // we need re for globalness -var MULTI_SPACE_RE = /\s+/g; -var LTR_RE = /\u200e/g; // control character -var UTC_RE = /UTC|GMT/; -var NativeFormatter = /** @class */ (function () { - function NativeFormatter(formatSettings) { - var standardDateProps = {}; - var extendedSettings = {}; - var severity = 0; - for (var name_1 in formatSettings) { - if (name_1 in EXTENDED_SETTINGS_AND_SEVERITIES) { - extendedSettings[name_1] = formatSettings[name_1]; - severity = Math.max(EXTENDED_SETTINGS_AND_SEVERITIES[name_1], severity); - } - else { - standardDateProps[name_1] = formatSettings[name_1]; - if (name_1 in STANDARD_DATE_PROP_SEVERITIES) { - severity = Math.max(STANDARD_DATE_PROP_SEVERITIES[name_1], severity); - } - } - } - this.standardDateProps = standardDateProps; - this.extendedSettings = extendedSettings; - this.severity = severity; - this.buildFormattingFunc = memoize(buildFormattingFunc); - } - NativeFormatter.prototype.format = function (date, context) { - return this.buildFormattingFunc(this.standardDateProps, this.extendedSettings, context)(date); - }; - NativeFormatter.prototype.formatRange = function (start, end, context) { - var _a = this, standardDateProps = _a.standardDateProps, extendedSettings = _a.extendedSettings; - var diffSeverity = computeMarkerDiffSeverity(start.marker, end.marker, context.calendarSystem); - if (!diffSeverity) { - return this.format(start, context); - } - var biggestUnitForPartial = diffSeverity; - if (biggestUnitForPartial > 1 && // the two dates are different in a way that's larger scale than time - (standardDateProps.year === 'numeric' || standardDateProps.year === '2-digit') && - (standardDateProps.month === 'numeric' || standardDateProps.month === '2-digit') && - (standardDateProps.day === 'numeric' || standardDateProps.day === '2-digit')) { - biggestUnitForPartial = 1; // make it look like the dates are only different in terms of time - } - var full0 = this.format(start, context); - var full1 = this.format(end, context); - if (full0 === full1) { - return full0; - } - var partialDateProps = computePartialFormattingOptions(standardDateProps, biggestUnitForPartial); - var partialFormattingFunc = buildFormattingFunc(partialDateProps, extendedSettings, context); - var partial0 = partialFormattingFunc(start); - var partial1 = partialFormattingFunc(end); - var insertion = findCommonInsertion(full0, partial0, full1, partial1); - var separator = extendedSettings.separator || ''; - if (insertion) { - return insertion.before + partial0 + separator + partial1 + insertion.after; - } - return full0 + separator + full1; - }; - NativeFormatter.prototype.getLargestUnit = function () { - switch (this.severity) { - case 7: - case 6: - case 5: - return 'year'; - case 4: - return 'month'; - case 3: - return 'week'; - default: - return 'day'; - } - }; - return NativeFormatter; -}()); -function buildFormattingFunc(standardDateProps, extendedSettings, context) { - var standardDatePropCnt = Object.keys(standardDateProps).length; - if (standardDatePropCnt === 1 && standardDateProps.timeZoneName === 'short') { - return function (date) { - return formatTimeZoneOffset(date.timeZoneOffset); - }; - } - if (standardDatePropCnt === 0 && extendedSettings.week) { - return function (date) { - return formatWeekNumber(context.computeWeekNumber(date.marker), context.weekLabel, context.locale, extendedSettings.week); - }; - } - return buildNativeFormattingFunc(standardDateProps, extendedSettings, context); -} -function buildNativeFormattingFunc(standardDateProps, extendedSettings, context) { - standardDateProps = __assign({}, standardDateProps); // copy - extendedSettings = __assign({}, extendedSettings); // copy - sanitizeSettings(standardDateProps, extendedSettings); - standardDateProps.timeZone = 'UTC'; // we leverage the only guaranteed timeZone for our UTC markers - var normalFormat = new Intl.DateTimeFormat(context.locale.codes, standardDateProps); - var zeroFormat; // needed? - if (extendedSettings.omitZeroMinute) { - var zeroProps = __assign({}, standardDateProps); - delete zeroProps.minute; // seconds and ms were already considered in sanitizeSettings - zeroFormat = new Intl.DateTimeFormat(context.locale.codes, zeroProps); - } - return function (date) { - var marker = date.marker; - var format; - if (zeroFormat && !marker.getUTCMinutes()) { - format = zeroFormat; - } - else { - format = normalFormat; - } - var s = format.format(marker); - return postProcess(s, date, standardDateProps, extendedSettings, context); - }; -} -function sanitizeSettings(standardDateProps, extendedSettings) { - // deal with a browser inconsistency where formatting the timezone - // requires that the hour/minute be present. - if (standardDateProps.timeZoneName) { - if (!standardDateProps.hour) { - standardDateProps.hour = '2-digit'; - } - if (!standardDateProps.minute) { - standardDateProps.minute = '2-digit'; - } - } - // only support short timezone names - if (standardDateProps.timeZoneName === 'long') { - standardDateProps.timeZoneName = 'short'; - } - // if requesting to display seconds, MUST display minutes - if (extendedSettings.omitZeroMinute && (standardDateProps.second || standardDateProps.millisecond)) { - delete extendedSettings.omitZeroMinute; - } -} -function postProcess(s, date, standardDateProps, extendedSettings, context) { - s = s.replace(LTR_RE, ''); // remove left-to-right control chars. do first. good for other regexes - if (standardDateProps.timeZoneName === 'short') { - s = injectTzoStr(s, (context.timeZone === 'UTC' || date.timeZoneOffset == null) ? - 'UTC' : // important to normalize for IE, which does "GMT" - formatTimeZoneOffset(date.timeZoneOffset)); - } - if (extendedSettings.omitCommas) { - s = s.replace(COMMA_RE, '').trim(); - } - if (extendedSettings.omitZeroMinute) { - s = s.replace(':00', ''); // zeroFormat doesn't always achieve this - } - // ^ do anything that might create adjacent spaces before this point, - // because MERIDIEM_RE likes to eat up loading spaces - if (extendedSettings.meridiem === false) { - s = s.replace(MERIDIEM_RE, '').trim(); - } - else if (extendedSettings.meridiem === 'narrow') { // a/p - s = s.replace(MERIDIEM_RE, function (m0, m1) { - return m1.toLocaleLowerCase(); - }); - } - else if (extendedSettings.meridiem === 'short') { // am/pm - s = s.replace(MERIDIEM_RE, function (m0, m1) { - return m1.toLocaleLowerCase() + 'm'; - }); - } - else if (extendedSettings.meridiem === 'lowercase') { // other meridiem transformers already converted to lowercase - s = s.replace(MERIDIEM_RE, function (m0) { - return m0.toLocaleLowerCase(); - }); - } - s = s.replace(MULTI_SPACE_RE, ' '); - s = s.trim(); - return s; -} -function injectTzoStr(s, tzoStr) { - var replaced = false; - s = s.replace(UTC_RE, function () { - replaced = true; - return tzoStr; - }); - // IE11 doesn't include UTC/GMT in the original string, so append to end - if (!replaced) { - s += ' ' + tzoStr; - } - return s; -} -function formatWeekNumber(num, weekLabel, locale, display) { - var parts = []; - if (display === 'narrow') { - parts.push(weekLabel); - } - else if (display === 'short') { - parts.push(weekLabel, ' '); - } - // otherwise, considered 'numeric' - parts.push(locale.simpleNumberFormat.format(num)); - if (locale.options.isRtl) { // TODO: use control characters instead? - parts.reverse(); - } - return parts.join(''); -} -// Range Formatting Utils -// 0 = exactly the same -// 1 = different by time -// and bigger -function computeMarkerDiffSeverity(d0, d1, ca) { - if (ca.getMarkerYear(d0) !== ca.getMarkerYear(d1)) { - return 5; - } - if (ca.getMarkerMonth(d0) !== ca.getMarkerMonth(d1)) { - return 4; - } - if (ca.getMarkerDay(d0) !== ca.getMarkerDay(d1)) { - return 2; - } - if (timeAsMs(d0) !== timeAsMs(d1)) { - return 1; - } - return 0; -} -function computePartialFormattingOptions(options, biggestUnit) { - var partialOptions = {}; - for (var name_2 in options) { - if (!(name_2 in STANDARD_DATE_PROP_SEVERITIES) || // not a date part prop (like timeZone) - STANDARD_DATE_PROP_SEVERITIES[name_2] <= biggestUnit) { - partialOptions[name_2] = options[name_2]; - } - } - return partialOptions; -} -function findCommonInsertion(full0, partial0, full1, partial1) { - var i0 = 0; - while (i0 < full0.length) { - var found0 = full0.indexOf(partial0, i0); - if (found0 === -1) { - break; - } - var before0 = full0.substr(0, found0); - i0 = found0 + partial0.length; - var after0 = full0.substr(i0); - var i1 = 0; - while (i1 < full1.length) { - var found1 = full1.indexOf(partial1, i1); - if (found1 === -1) { - break; - } - var before1 = full1.substr(0, found1); - i1 = found1 + partial1.length; - var after1 = full1.substr(i1); - if (before0 === before1 && after0 === after1) { - return { - before: before0, - after: after0 - }; - } - } - } - return null; -} - -/* -TODO: fix the terminology of "formatter" vs "formatting func" -*/ -/* -At the time of instantiation, this object does not know which cmd-formatting system it will use. -It receives this at the time of formatting, as a setting. -*/ -var CmdFormatter = /** @class */ (function () { - function CmdFormatter(cmdStr, separator) { - this.cmdStr = cmdStr; - this.separator = separator; - } - CmdFormatter.prototype.format = function (date, context) { - return context.cmdFormatter(this.cmdStr, createVerboseFormattingArg(date, null, context, this.separator)); - }; - CmdFormatter.prototype.formatRange = function (start, end, context) { - return context.cmdFormatter(this.cmdStr, createVerboseFormattingArg(start, end, context, this.separator)); - }; - return CmdFormatter; -}()); - -var FuncFormatter = /** @class */ (function () { - function FuncFormatter(func) { - this.func = func; - } - FuncFormatter.prototype.format = function (date, context) { - return this.func(createVerboseFormattingArg(date, null, context)); - }; - FuncFormatter.prototype.formatRange = function (start, end, context) { - return this.func(createVerboseFormattingArg(start, end, context)); - }; - return FuncFormatter; -}()); - -// Formatter Object Creation -function createFormatter(input, defaultSeparator) { - if (typeof input === 'object' && input) { // non-null object - if (typeof defaultSeparator === 'string') { - input = __assign({ separator: defaultSeparator }, input); - } - return new NativeFormatter(input); - } - else if (typeof input === 'string') { - return new CmdFormatter(input, defaultSeparator); - } - else if (typeof input === 'function') { - return new FuncFormatter(input); - } -} -// String Utils -// timeZoneOffset is in minutes -function buildIsoString(marker, timeZoneOffset, stripZeroTime) { - if (stripZeroTime === void 0) { stripZeroTime = false; } - var s = marker.toISOString(); - s = s.replace('.000', ''); - if (stripZeroTime) { - s = s.replace('T00:00:00Z', ''); - } - if (s.length > 10) { // time part wasn't stripped, can add timezone info - if (timeZoneOffset == null) { - s = s.replace('Z', ''); - } - else if (timeZoneOffset !== 0) { - s = s.replace('Z', formatTimeZoneOffset(timeZoneOffset, true)); - } - // otherwise, its UTC-0 and we want to keep the Z - } - return s; -} -function formatIsoTimeString(marker) { - return padStart(marker.getUTCHours(), 2) + ':' + - padStart(marker.getUTCMinutes(), 2) + ':' + - padStart(marker.getUTCSeconds(), 2); -} -function formatTimeZoneOffset(minutes, doIso) { - if (doIso === void 0) { doIso = false; } - var sign = minutes < 0 ? '-' : '+'; - var abs = Math.abs(minutes); - var hours = Math.floor(abs / 60); - var mins = Math.round(abs % 60); - if (doIso) { - return sign + padStart(hours, 2) + ':' + padStart(mins, 2); - } - else { - return 'GMT' + sign + hours + (mins ? ':' + padStart(mins, 2) : ''); - } -} -// Arg Utils -function createVerboseFormattingArg(start, end, context, separator) { - var startInfo = expandZonedMarker(start, context.calendarSystem); - var endInfo = end ? expandZonedMarker(end, context.calendarSystem) : null; - return { - date: startInfo, - start: startInfo, - end: endInfo, - timeZone: context.timeZone, - localeCodes: context.locale.codes, - separator: separator - }; -} -function expandZonedMarker(dateInfo, calendarSystem) { - var a = calendarSystem.markerToArray(dateInfo.marker); - return { - marker: dateInfo.marker, - timeZoneOffset: dateInfo.timeZoneOffset, - array: a, - year: a[0], - month: a[1], - day: a[2], - hour: a[3], - minute: a[4], - second: a[5], - millisecond: a[6] - }; -} - -var EventSourceApi = /** @class */ (function () { - function EventSourceApi(calendar, internalEventSource) { - this.calendar = calendar; - this.internalEventSource = internalEventSource; - } - EventSourceApi.prototype.remove = function () { - this.calendar.dispatch({ - type: 'REMOVE_EVENT_SOURCE', - sourceId: this.internalEventSource.sourceId - }); - }; - EventSourceApi.prototype.refetch = function () { - this.calendar.dispatch({ - type: 'FETCH_EVENT_SOURCES', - sourceIds: [this.internalEventSource.sourceId] - }); - }; - Object.defineProperty(EventSourceApi.prototype, "id", { - get: function () { - return this.internalEventSource.publicId; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventSourceApi.prototype, "url", { - // only relevant to json-feed event sources - get: function () { - return this.internalEventSource.meta.url; - }, - enumerable: true, - configurable: true - }); - return EventSourceApi; -}()); - -var EventApi = /** @class */ (function () { - function EventApi(calendar, def, instance) { - this._calendar = calendar; - this._def = def; - this._instance = instance || null; - } - /* - TODO: make event struct more responsible for this - */ - EventApi.prototype.setProp = function (name, val) { - var _a, _b; - if (name in DATE_PROPS) ; - else if (name in NON_DATE_PROPS) { - if (typeof NON_DATE_PROPS[name] === 'function') { - val = NON_DATE_PROPS[name](val); - } - this.mutate({ - standardProps: (_a = {}, _a[name] = val, _a) - }); - } - else if (name in UNSCOPED_EVENT_UI_PROPS) { - var ui = void 0; - if (typeof UNSCOPED_EVENT_UI_PROPS[name] === 'function') { - val = UNSCOPED_EVENT_UI_PROPS[name](val); - } - if (name === 'color') { - ui = { backgroundColor: val, borderColor: val }; - } - else if (name === 'editable') { - ui = { startEditable: val, durationEditable: val }; - } - else { - ui = (_b = {}, _b[name] = val, _b); - } - this.mutate({ - standardProps: { ui: ui } - }); - } - }; - EventApi.prototype.setExtendedProp = function (name, val) { - var _a; - this.mutate({ - extendedProps: (_a = {}, _a[name] = val, _a) - }); - }; - EventApi.prototype.setStart = function (startInput, options) { - if (options === void 0) { options = {}; } - var dateEnv = this._calendar.dateEnv; - var start = dateEnv.createMarker(startInput); - if (start && this._instance) { // TODO: warning if parsed bad - var instanceRange = this._instance.range; - var startDelta = diffDates(instanceRange.start, start, dateEnv, options.granularity); // what if parsed bad!? - if (options.maintainDuration) { - this.mutate({ datesDelta: startDelta }); - } - else { - this.mutate({ startDelta: startDelta }); - } - } - }; - EventApi.prototype.setEnd = function (endInput, options) { - if (options === void 0) { options = {}; } - var dateEnv = this._calendar.dateEnv; - var end; - if (endInput != null) { - end = dateEnv.createMarker(endInput); - if (!end) { - return; // TODO: warning if parsed bad - } - } - if (this._instance) { - if (end) { - var endDelta = diffDates(this._instance.range.end, end, dateEnv, options.granularity); - this.mutate({ endDelta: endDelta }); - } - else { - this.mutate({ standardProps: { hasEnd: false } }); - } - } - }; - EventApi.prototype.setDates = function (startInput, endInput, options) { - if (options === void 0) { options = {}; } - var dateEnv = this._calendar.dateEnv; - var standardProps = { allDay: options.allDay }; - var start = dateEnv.createMarker(startInput); - var end; - if (!start) { - return; // TODO: warning if parsed bad - } - if (endInput != null) { - end = dateEnv.createMarker(endInput); - if (!end) { // TODO: warning if parsed bad - return; - } - } - if (this._instance) { - var instanceRange = this._instance.range; - // when computing the diff for an event being converted to all-day, - // compute diff off of the all-day values the way event-mutation does. - if (options.allDay === true) { - instanceRange = computeAlignedDayRange(instanceRange); - } - var startDelta = diffDates(instanceRange.start, start, dateEnv, options.granularity); - if (end) { - var endDelta = diffDates(instanceRange.end, end, dateEnv, options.granularity); - if (durationsEqual(startDelta, endDelta)) { - this.mutate({ datesDelta: startDelta, standardProps: standardProps }); - } - else { - this.mutate({ startDelta: startDelta, endDelta: endDelta, standardProps: standardProps }); - } - } - else { // means "clear the end" - standardProps.hasEnd = false; - this.mutate({ datesDelta: startDelta, standardProps: standardProps }); - } - } - }; - EventApi.prototype.moveStart = function (deltaInput) { - var delta = createDuration(deltaInput); - if (delta) { // TODO: warning if parsed bad - this.mutate({ startDelta: delta }); - } - }; - EventApi.prototype.moveEnd = function (deltaInput) { - var delta = createDuration(deltaInput); - if (delta) { // TODO: warning if parsed bad - this.mutate({ endDelta: delta }); - } - }; - EventApi.prototype.moveDates = function (deltaInput) { - var delta = createDuration(deltaInput); - if (delta) { // TODO: warning if parsed bad - this.mutate({ datesDelta: delta }); - } - }; - EventApi.prototype.setAllDay = function (allDay, options) { - if (options === void 0) { options = {}; } - var standardProps = { allDay: allDay }; - var maintainDuration = options.maintainDuration; - if (maintainDuration == null) { - maintainDuration = this._calendar.opt('allDayMaintainDuration'); - } - if (this._def.allDay !== allDay) { - standardProps.hasEnd = maintainDuration; - } - this.mutate({ standardProps: standardProps }); - }; - EventApi.prototype.formatRange = function (formatInput) { - var dateEnv = this._calendar.dateEnv; - var instance = this._instance; - var formatter = createFormatter(formatInput, this._calendar.opt('defaultRangeSeparator')); - if (this._def.hasEnd) { - return dateEnv.formatRange(instance.range.start, instance.range.end, formatter, { - forcedStartTzo: instance.forcedStartTzo, - forcedEndTzo: instance.forcedEndTzo - }); - } - else { - return dateEnv.format(instance.range.start, formatter, { - forcedTzo: instance.forcedStartTzo - }); - } - }; - EventApi.prototype.mutate = function (mutation) { - var def = this._def; - var instance = this._instance; - if (instance) { - this._calendar.dispatch({ - type: 'MUTATE_EVENTS', - instanceId: instance.instanceId, - mutation: mutation, - fromApi: true - }); - var eventStore = this._calendar.state.eventStore; - this._def = eventStore.defs[def.defId]; - this._instance = eventStore.instances[instance.instanceId]; - } - }; - EventApi.prototype.remove = function () { - this._calendar.dispatch({ - type: 'REMOVE_EVENT_DEF', - defId: this._def.defId - }); - }; - Object.defineProperty(EventApi.prototype, "source", { - get: function () { - var sourceId = this._def.sourceId; - if (sourceId) { - return new EventSourceApi(this._calendar, this._calendar.state.eventSources[sourceId]); - } - return null; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "start", { - get: function () { - return this._instance ? - this._calendar.dateEnv.toDate(this._instance.range.start) : - null; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "end", { - get: function () { - return (this._instance && this._def.hasEnd) ? - this._calendar.dateEnv.toDate(this._instance.range.end) : - null; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "id", { - // computable props that all access the def - // TODO: find a TypeScript-compatible way to do this at scale - get: function () { return this._def.publicId; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "groupId", { - get: function () { return this._def.groupId; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "allDay", { - get: function () { return this._def.allDay; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "title", { - get: function () { return this._def.title; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "url", { - get: function () { return this._def.url; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "rendering", { - get: function () { return this._def.rendering; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "startEditable", { - get: function () { return this._def.ui.startEditable; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "durationEditable", { - get: function () { return this._def.ui.durationEditable; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "constraint", { - get: function () { return this._def.ui.constraints[0] || null; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "overlap", { - get: function () { return this._def.ui.overlap; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "allow", { - get: function () { return this._def.ui.allows[0] || null; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "backgroundColor", { - get: function () { return this._def.ui.backgroundColor; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "borderColor", { - get: function () { return this._def.ui.borderColor; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "textColor", { - get: function () { return this._def.ui.textColor; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "classNames", { - // NOTE: user can't modify these because Object.freeze was called in event-def parsing - get: function () { return this._def.ui.classNames; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "extendedProps", { - get: function () { return this._def.extendedProps; }, - enumerable: true, - configurable: true - }); - return EventApi; -}()); - -/* -Specifying nextDayThreshold signals that all-day ranges should be sliced. -*/ -function sliceEventStore(eventStore, eventUiBases, framingRange, nextDayThreshold) { - var inverseBgByGroupId = {}; - var inverseBgByDefId = {}; - var defByGroupId = {}; - var bgRanges = []; - var fgRanges = []; - var eventUis = compileEventUis(eventStore.defs, eventUiBases); - for (var defId in eventStore.defs) { - var def = eventStore.defs[defId]; - if (def.rendering === 'inverse-background') { - if (def.groupId) { - inverseBgByGroupId[def.groupId] = []; - if (!defByGroupId[def.groupId]) { - defByGroupId[def.groupId] = def; - } - } - else { - inverseBgByDefId[defId] = []; - } - } - } - for (var instanceId in eventStore.instances) { - var instance = eventStore.instances[instanceId]; - var def = eventStore.defs[instance.defId]; - var ui = eventUis[def.defId]; - var origRange = instance.range; - var normalRange = (!def.allDay && nextDayThreshold) ? - computeVisibleDayRange(origRange, nextDayThreshold) : - origRange; - var slicedRange = intersectRanges(normalRange, framingRange); - if (slicedRange) { - if (def.rendering === 'inverse-background') { - if (def.groupId) { - inverseBgByGroupId[def.groupId].push(slicedRange); - } - else { - inverseBgByDefId[instance.defId].push(slicedRange); - } - } - else { - (def.rendering === 'background' ? bgRanges : fgRanges).push({ - def: def, - ui: ui, - instance: instance, - range: slicedRange, - isStart: normalRange.start && normalRange.start.valueOf() === slicedRange.start.valueOf(), - isEnd: normalRange.end && normalRange.end.valueOf() === slicedRange.end.valueOf() - }); - } - } - } - for (var groupId in inverseBgByGroupId) { // BY GROUP - var ranges = inverseBgByGroupId[groupId]; - var invertedRanges = invertRanges(ranges, framingRange); - for (var _i = 0, invertedRanges_1 = invertedRanges; _i < invertedRanges_1.length; _i++) { - var invertedRange = invertedRanges_1[_i]; - var def = defByGroupId[groupId]; - var ui = eventUis[def.defId]; - bgRanges.push({ - def: def, - ui: ui, - instance: null, - range: invertedRange, - isStart: false, - isEnd: false - }); - } - } - for (var defId in inverseBgByDefId) { - var ranges = inverseBgByDefId[defId]; - var invertedRanges = invertRanges(ranges, framingRange); - for (var _a = 0, invertedRanges_2 = invertedRanges; _a < invertedRanges_2.length; _a++) { - var invertedRange = invertedRanges_2[_a]; - bgRanges.push({ - def: eventStore.defs[defId], - ui: eventUis[defId], - instance: null, - range: invertedRange, - isStart: false, - isEnd: false - }); - } - } - return { bg: bgRanges, fg: fgRanges }; -} -function hasBgRendering(def) { - return def.rendering === 'background' || def.rendering === 'inverse-background'; -} -function filterSegsViaEls(view, segs, isMirror) { - if (view.hasPublicHandlers('eventRender')) { - segs = segs.filter(function (seg) { - var custom = view.publiclyTrigger('eventRender', [ - { - event: new EventApi(view.calendar, seg.eventRange.def, seg.eventRange.instance), - isMirror: isMirror, - isStart: seg.isStart, - isEnd: seg.isEnd, - // TODO: include seg.range once all components consistently generate it - el: seg.el, - view: view - } - ]); - if (custom === false) { // means don't render at all - return false; - } - else if (custom && custom !== true) { - seg.el = custom; - } - return true; - }); - } - for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) { - var seg = segs_1[_i]; - setElSeg(seg.el, seg); - } - return segs; -} -function setElSeg(el, seg) { - el.fcSeg = seg; -} -function getElSeg(el) { - return el.fcSeg || null; -} -// event ui computation -function compileEventUis(eventDefs, eventUiBases) { - return mapHash(eventDefs, function (eventDef) { - return compileEventUi(eventDef, eventUiBases); - }); -} -function compileEventUi(eventDef, eventUiBases) { - var uis = []; - if (eventUiBases['']) { - uis.push(eventUiBases['']); - } - if (eventUiBases[eventDef.defId]) { - uis.push(eventUiBases[eventDef.defId]); - } - uis.push(eventDef.ui); - return combineEventUis(uis); -} - -// applies the mutation to ALL defs/instances within the event store -function applyMutationToEventStore(eventStore, eventConfigBase, mutation, calendar) { - var eventConfigs = compileEventUis(eventStore.defs, eventConfigBase); - var dest = createEmptyEventStore(); - for (var defId in eventStore.defs) { - var def = eventStore.defs[defId]; - dest.defs[defId] = applyMutationToEventDef(def, eventConfigs[defId], mutation, calendar.pluginSystem.hooks.eventDefMutationAppliers, calendar); - } - for (var instanceId in eventStore.instances) { - var instance = eventStore.instances[instanceId]; - var def = dest.defs[instance.defId]; // important to grab the newly modified def - dest.instances[instanceId] = applyMutationToEventInstance(instance, def, eventConfigs[instance.defId], mutation, calendar); - } - return dest; -} -function applyMutationToEventDef(eventDef, eventConfig, mutation, appliers, calendar) { - var standardProps = mutation.standardProps || {}; - // if hasEnd has not been specified, guess a good value based on deltas. - // if duration will change, there's no way the default duration will persist, - // and thus, we need to mark the event as having a real end - if (standardProps.hasEnd == null && - eventConfig.durationEditable && - (mutation.startDelta || mutation.endDelta)) { - standardProps.hasEnd = true; // TODO: is this mutation okay? - } - var copy = __assign({}, eventDef, standardProps, { ui: __assign({}, eventDef.ui, standardProps.ui) }); - if (mutation.extendedProps) { - copy.extendedProps = __assign({}, copy.extendedProps, mutation.extendedProps); - } - for (var _i = 0, appliers_1 = appliers; _i < appliers_1.length; _i++) { - var applier = appliers_1[_i]; - applier(copy, mutation, calendar); - } - if (!copy.hasEnd && calendar.opt('forceEventDuration')) { - copy.hasEnd = true; - } - return copy; -} -function applyMutationToEventInstance(eventInstance, eventDef, // must first be modified by applyMutationToEventDef -eventConfig, mutation, calendar) { - var dateEnv = calendar.dateEnv; - var forceAllDay = mutation.standardProps && mutation.standardProps.allDay === true; - var clearEnd = mutation.standardProps && mutation.standardProps.hasEnd === false; - var copy = __assign({}, eventInstance); - if (forceAllDay) { - copy.range = computeAlignedDayRange(copy.range); - } - if (mutation.datesDelta && eventConfig.startEditable) { - copy.range = { - start: dateEnv.add(copy.range.start, mutation.datesDelta), - end: dateEnv.add(copy.range.end, mutation.datesDelta) - }; - } - if (mutation.startDelta && eventConfig.durationEditable) { - copy.range = { - start: dateEnv.add(copy.range.start, mutation.startDelta), - end: copy.range.end - }; - } - if (mutation.endDelta && eventConfig.durationEditable) { - copy.range = { - start: copy.range.start, - end: dateEnv.add(copy.range.end, mutation.endDelta) - }; - } - if (clearEnd) { - copy.range = { - start: copy.range.start, - end: calendar.getDefaultEventEnd(eventDef.allDay, copy.range.start) - }; - } - // in case event was all-day but the supplied deltas were not - // better util for this? - if (eventDef.allDay) { - copy.range = { - start: startOfDay(copy.range.start), - end: startOfDay(copy.range.end) - }; - } - // handle invalid durations - if (copy.range.end < copy.range.start) { - copy.range.end = calendar.getDefaultEventEnd(eventDef.allDay, copy.range.start); - } - return copy; -} - -function reduceEventStore (eventStore, action, eventSources, dateProfile, calendar) { - switch (action.type) { - case 'RECEIVE_EVENTS': // raw - return receiveRawEvents(eventStore, eventSources[action.sourceId], action.fetchId, action.fetchRange, action.rawEvents, calendar); - case 'ADD_EVENTS': // already parsed, but not expanded - return addEvent(eventStore, action.eventStore, // new ones - dateProfile ? dateProfile.activeRange : null, calendar); - case 'MERGE_EVENTS': // already parsed and expanded - return mergeEventStores(eventStore, action.eventStore); - case 'PREV': // TODO: how do we track all actions that affect dateProfile :( - case 'NEXT': - case 'SET_DATE': - case 'SET_VIEW_TYPE': - if (dateProfile) { - return expandRecurring(eventStore, dateProfile.activeRange, calendar); - } - else { - return eventStore; - } - case 'CHANGE_TIMEZONE': - return rezoneDates(eventStore, action.oldDateEnv, calendar.dateEnv); - case 'MUTATE_EVENTS': - return applyMutationToRelated(eventStore, action.instanceId, action.mutation, action.fromApi, calendar); - case 'REMOVE_EVENT_INSTANCES': - return excludeInstances(eventStore, action.instances); - case 'REMOVE_EVENT_DEF': - return filterEventStoreDefs(eventStore, function (eventDef) { - return eventDef.defId !== action.defId; - }); - case 'REMOVE_EVENT_SOURCE': - return excludeEventsBySourceId(eventStore, action.sourceId); - case 'REMOVE_ALL_EVENT_SOURCES': - return filterEventStoreDefs(eventStore, function (eventDef) { - return !eventDef.sourceId; // only keep events with no source id - }); - case 'REMOVE_ALL_EVENTS': - return createEmptyEventStore(); - case 'RESET_EVENTS': - return { - defs: eventStore.defs, - instances: eventStore.instances - }; - default: - return eventStore; - } -} -function receiveRawEvents(eventStore, eventSource, fetchId, fetchRange, rawEvents, calendar) { - if (eventSource && // not already removed - fetchId === eventSource.latestFetchId // TODO: wish this logic was always in event-sources - ) { - var subset = parseEvents(transformRawEvents(rawEvents, eventSource, calendar), eventSource.sourceId, calendar); - if (fetchRange) { - subset = expandRecurring(subset, fetchRange, calendar); - } - return mergeEventStores(excludeEventsBySourceId(eventStore, eventSource.sourceId), subset); - } - return eventStore; -} -function addEvent(eventStore, subset, expandRange, calendar) { - if (expandRange) { - subset = expandRecurring(subset, expandRange, calendar); - } - return mergeEventStores(eventStore, subset); -} -function rezoneDates(eventStore, oldDateEnv, newDateEnv) { - var defs = eventStore.defs; - var instances = mapHash(eventStore.instances, function (instance) { - var def = defs[instance.defId]; - if (def.allDay || def.recurringDef) { - return instance; // isn't dependent on timezone - } - else { - return __assign({}, instance, { range: { - start: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.start, instance.forcedStartTzo)), - end: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.end, instance.forcedEndTzo)) - }, forcedStartTzo: newDateEnv.canComputeOffset ? null : instance.forcedStartTzo, forcedEndTzo: newDateEnv.canComputeOffset ? null : instance.forcedEndTzo }); - } - }); - return { defs: defs, instances: instances }; -} -function applyMutationToRelated(eventStore, instanceId, mutation, fromApi, calendar) { - var relevant = getRelevantEvents(eventStore, instanceId); - var eventConfigBase = fromApi ? - { '': { - startEditable: true, - durationEditable: true, - constraints: [], - overlap: null, - allows: [], - backgroundColor: '', - borderColor: '', - textColor: '', - classNames: [] - } } : - calendar.eventUiBases; - relevant = applyMutationToEventStore(relevant, eventConfigBase, mutation, calendar); - return mergeEventStores(eventStore, relevant); -} -function excludeEventsBySourceId(eventStore, sourceId) { - return filterEventStoreDefs(eventStore, function (eventDef) { - return eventDef.sourceId !== sourceId; - }); -} -// QUESTION: why not just return instances? do a general object-property-exclusion util -function excludeInstances(eventStore, removals) { - return { - defs: eventStore.defs, - instances: filterHash(eventStore.instances, function (instance) { - return !removals[instance.instanceId]; - }) - }; -} - -// high-level segmenting-aware tester functions -// ------------------------------------------------------------------------------------------------------------------------ -function isInteractionValid(interaction, calendar) { - return isNewPropsValid({ eventDrag: interaction }, calendar); // HACK: the eventDrag props is used for ALL interactions -} -function isDateSelectionValid(dateSelection, calendar) { - return isNewPropsValid({ dateSelection: dateSelection }, calendar); -} -function isNewPropsValid(newProps, calendar) { - var view = calendar.view; - var props = __assign({ businessHours: view ? view.props.businessHours : createEmptyEventStore(), dateSelection: '', eventStore: calendar.state.eventStore, eventUiBases: calendar.eventUiBases, eventSelection: '', eventDrag: null, eventResize: null }, newProps); - return (calendar.pluginSystem.hooks.isPropsValid || isPropsValid)(props, calendar); -} -function isPropsValid(state, calendar, dateSpanMeta, filterConfig) { - if (dateSpanMeta === void 0) { dateSpanMeta = {}; } - if (state.eventDrag && !isInteractionPropsValid(state, calendar, dateSpanMeta, filterConfig)) { - return false; - } - if (state.dateSelection && !isDateSelectionPropsValid(state, calendar, dateSpanMeta, filterConfig)) { - return false; - } - return true; -} -// Moving Event Validation -// ------------------------------------------------------------------------------------------------------------------------ -function isInteractionPropsValid(state, calendar, dateSpanMeta, filterConfig) { - var interaction = state.eventDrag; // HACK: the eventDrag props is used for ALL interactions - var subjectEventStore = interaction.mutatedEvents; - var subjectDefs = subjectEventStore.defs; - var subjectInstances = subjectEventStore.instances; - var subjectConfigs = compileEventUis(subjectDefs, interaction.isEvent ? - state.eventUiBases : - { '': calendar.selectionConfig } // if not a real event, validate as a selection - ); - if (filterConfig) { - subjectConfigs = mapHash(subjectConfigs, filterConfig); - } - var otherEventStore = excludeInstances(state.eventStore, interaction.affectedEvents.instances); // exclude the subject events. TODO: exclude defs too? - var otherDefs = otherEventStore.defs; - var otherInstances = otherEventStore.instances; - var otherConfigs = compileEventUis(otherDefs, state.eventUiBases); - for (var subjectInstanceId in subjectInstances) { - var subjectInstance = subjectInstances[subjectInstanceId]; - var subjectRange = subjectInstance.range; - var subjectConfig = subjectConfigs[subjectInstance.defId]; - var subjectDef = subjectDefs[subjectInstance.defId]; - // constraint - if (!allConstraintsPass(subjectConfig.constraints, subjectRange, otherEventStore, state.businessHours, calendar)) { - return false; - } - // overlap - var overlapFunc = calendar.opt('eventOverlap'); - if (typeof overlapFunc !== 'function') { - overlapFunc = null; - } - for (var otherInstanceId in otherInstances) { - var otherInstance = otherInstances[otherInstanceId]; - // intersect! evaluate - if (rangesIntersect(subjectRange, otherInstance.range)) { - var otherOverlap = otherConfigs[otherInstance.defId].overlap; - // consider the other event's overlap. only do this if the subject event is a "real" event - if (otherOverlap === false && interaction.isEvent) { - return false; - } - if (subjectConfig.overlap === false) { - return false; - } - if (overlapFunc && !overlapFunc(new EventApi(calendar, otherDefs[otherInstance.defId], otherInstance), // still event - new EventApi(calendar, subjectDef, subjectInstance) // moving event - )) { - return false; - } - } - } - // allow (a function) - var calendarEventStore = calendar.state.eventStore; // need global-to-calendar, not local to component (splittable)state - for (var _i = 0, _a = subjectConfig.allows; _i < _a.length; _i++) { - var subjectAllow = _a[_i]; - var subjectDateSpan = __assign({}, dateSpanMeta, { range: subjectInstance.range, allDay: subjectDef.allDay }); - var origDef = calendarEventStore.defs[subjectDef.defId]; - var origInstance = calendarEventStore.instances[subjectInstanceId]; - var eventApi = void 0; - if (origDef) { // was previously in the calendar - eventApi = new EventApi(calendar, origDef, origInstance); - } - else { // was an external event - eventApi = new EventApi(calendar, subjectDef); // no instance, because had no dates - } - if (!subjectAllow(calendar.buildDateSpanApi(subjectDateSpan), eventApi)) { - return false; - } - } - } - return true; -} -// Date Selection Validation -// ------------------------------------------------------------------------------------------------------------------------ -function isDateSelectionPropsValid(state, calendar, dateSpanMeta, filterConfig) { - var relevantEventStore = state.eventStore; - var relevantDefs = relevantEventStore.defs; - var relevantInstances = relevantEventStore.instances; - var selection = state.dateSelection; - var selectionRange = selection.range; - var selectionConfig = calendar.selectionConfig; - if (filterConfig) { - selectionConfig = filterConfig(selectionConfig); - } - // constraint - if (!allConstraintsPass(selectionConfig.constraints, selectionRange, relevantEventStore, state.businessHours, calendar)) { - return false; - } - // overlap - var overlapFunc = calendar.opt('selectOverlap'); - if (typeof overlapFunc !== 'function') { - overlapFunc = null; - } - for (var relevantInstanceId in relevantInstances) { - var relevantInstance = relevantInstances[relevantInstanceId]; - // intersect! evaluate - if (rangesIntersect(selectionRange, relevantInstance.range)) { - if (selectionConfig.overlap === false) { - return false; - } - if (overlapFunc && !overlapFunc(new EventApi(calendar, relevantDefs[relevantInstance.defId], relevantInstance))) { - return false; - } - } - } - // allow (a function) - for (var _i = 0, _a = selectionConfig.allows; _i < _a.length; _i++) { - var selectionAllow = _a[_i]; - var fullDateSpan = __assign({}, dateSpanMeta, selection); - if (!selectionAllow(calendar.buildDateSpanApi(fullDateSpan), null)) { - return false; - } - } - return true; -} -// Constraint Utils -// ------------------------------------------------------------------------------------------------------------------------ -function allConstraintsPass(constraints, subjectRange, otherEventStore, businessHoursUnexpanded, calendar) { - for (var _i = 0, constraints_1 = constraints; _i < constraints_1.length; _i++) { - var constraint = constraints_1[_i]; - if (!anyRangesContainRange(constraintToRanges(constraint, subjectRange, otherEventStore, businessHoursUnexpanded, calendar), subjectRange)) { - return false; - } - } - return true; -} -function constraintToRanges(constraint, subjectRange, // for expanding a recurring constraint, or expanding business hours -otherEventStore, // for if constraint is an even group ID -businessHoursUnexpanded, // for if constraint is 'businessHours' -calendar // for expanding businesshours -) { - if (constraint === 'businessHours') { - return eventStoreToRanges(expandRecurring(businessHoursUnexpanded, subjectRange, calendar)); - } - else if (typeof constraint === 'string') { // an group ID - return eventStoreToRanges(filterEventStoreDefs(otherEventStore, function (eventDef) { - return eventDef.groupId === constraint; - })); - } - else if (typeof constraint === 'object' && constraint) { // non-null object - return eventStoreToRanges(expandRecurring(constraint, subjectRange, calendar)); - } - return []; // if it's false -} -// TODO: move to event-store file? -function eventStoreToRanges(eventStore) { - var instances = eventStore.instances; - var ranges = []; - for (var instanceId in instances) { - ranges.push(instances[instanceId].range); - } - return ranges; -} -// TODO: move to geom file? -function anyRangesContainRange(outerRanges, innerRange) { - for (var _i = 0, outerRanges_1 = outerRanges; _i < outerRanges_1.length; _i++) { - var outerRange = outerRanges_1[_i]; - if (rangeContainsRange(outerRange, innerRange)) { - return true; - } - } - return false; -} -// Parsing -// ------------------------------------------------------------------------------------------------------------------------ -function normalizeConstraint(input, calendar) { - if (Array.isArray(input)) { - return parseEvents(input, '', calendar, true); // allowOpenRange=true - } - else if (typeof input === 'object' && input) { // non-null object - return parseEvents([input], '', calendar, true); // allowOpenRange=true - } - else if (input != null) { - return String(input); - } - else { - return null; - } -} - -function htmlEscape(s) { - return (s + '').replace(/&/g, '&') - .replace(//g, '>') - .replace(/'/g, ''') - .replace(/"/g, '"') - .replace(/\n/g, '
'); -} -// Given a hash of CSS properties, returns a string of CSS. -// Uses property names as-is (no camel-case conversion). Will not make statements for null/undefined values. -function cssToStr(cssProps) { - var statements = []; - for (var name_1 in cssProps) { - var val = cssProps[name_1]; - if (val != null && val !== '') { - statements.push(name_1 + ':' + val); - } - } - return statements.join(';'); -} -// Given an object hash of HTML attribute names to values, -// generates a string that can be injected between < > in HTML -function attrsToStr(attrs) { - var parts = []; - for (var name_2 in attrs) { - var val = attrs[name_2]; - if (val != null) { - parts.push(name_2 + '="' + htmlEscape(val) + '"'); - } - } - return parts.join(' '); -} -function parseClassName(raw) { - if (Array.isArray(raw)) { - return raw; - } - else if (typeof raw === 'string') { - return raw.split(/\s+/); - } - else { - return []; - } -} - -var UNSCOPED_EVENT_UI_PROPS = { - editable: Boolean, - startEditable: Boolean, - durationEditable: Boolean, - constraint: null, - overlap: null, - allow: null, - className: parseClassName, - classNames: parseClassName, - color: String, - backgroundColor: String, - borderColor: String, - textColor: String -}; -function processUnscopedUiProps(rawProps, calendar, leftovers) { - var props = refineProps(rawProps, UNSCOPED_EVENT_UI_PROPS, {}, leftovers); - var constraint = normalizeConstraint(props.constraint, calendar); - return { - startEditable: props.startEditable != null ? props.startEditable : props.editable, - durationEditable: props.durationEditable != null ? props.durationEditable : props.editable, - constraints: constraint != null ? [constraint] : [], - overlap: props.overlap, - allows: props.allow != null ? [props.allow] : [], - backgroundColor: props.backgroundColor || props.color, - borderColor: props.borderColor || props.color, - textColor: props.textColor, - classNames: props.classNames.concat(props.className) - }; -} -function processScopedUiProps(prefix, rawScoped, calendar, leftovers) { - var rawUnscoped = {}; - var wasFound = {}; - for (var key in UNSCOPED_EVENT_UI_PROPS) { - var scopedKey = prefix + capitaliseFirstLetter(key); - rawUnscoped[key] = rawScoped[scopedKey]; - wasFound[scopedKey] = true; - } - if (prefix === 'event') { - rawUnscoped.editable = rawScoped.editable; // special case. there is no 'eventEditable', just 'editable' - } - if (leftovers) { - for (var key in rawScoped) { - if (!wasFound[key]) { - leftovers[key] = rawScoped[key]; - } - } - } - return processUnscopedUiProps(rawUnscoped, calendar); -} -var EMPTY_EVENT_UI = { - startEditable: null, - durationEditable: null, - constraints: [], - overlap: null, - allows: [], - backgroundColor: '', - borderColor: '', - textColor: '', - classNames: [] -}; -// prevent against problems with <2 args! -function combineEventUis(uis) { - return uis.reduce(combineTwoEventUis, EMPTY_EVENT_UI); -} -function combineTwoEventUis(item0, item1) { - return { - startEditable: item1.startEditable != null ? item1.startEditable : item0.startEditable, - durationEditable: item1.durationEditable != null ? item1.durationEditable : item0.durationEditable, - constraints: item0.constraints.concat(item1.constraints), - overlap: typeof item1.overlap === 'boolean' ? item1.overlap : item0.overlap, - allows: item0.allows.concat(item1.allows), - backgroundColor: item1.backgroundColor || item0.backgroundColor, - borderColor: item1.borderColor || item0.borderColor, - textColor: item1.textColor || item0.textColor, - classNames: item0.classNames.concat(item1.classNames) - }; -} - -var NON_DATE_PROPS = { - id: String, - groupId: String, - title: String, - url: String, - rendering: String, - extendedProps: null -}; -var DATE_PROPS = { - start: null, - date: null, - end: null, - allDay: null -}; -var uid = 0; -function parseEvent(raw, sourceId, calendar, allowOpenRange) { - var allDayDefault = computeIsAllDayDefault(sourceId, calendar); - var leftovers0 = {}; - var recurringRes = parseRecurring(raw, // raw, but with single-event stuff stripped out - allDayDefault, calendar.dateEnv, calendar.pluginSystem.hooks.recurringTypes, leftovers0 // will populate with non-recurring props - ); - if (recurringRes) { - var def = parseEventDef(leftovers0, sourceId, recurringRes.allDay, Boolean(recurringRes.duration), calendar); - def.recurringDef = { - typeId: recurringRes.typeId, - typeData: recurringRes.typeData, - duration: recurringRes.duration - }; - return { def: def, instance: null }; - } - else { - var leftovers1 = {}; - var singleRes = parseSingle(raw, allDayDefault, calendar, leftovers1, allowOpenRange); - if (singleRes) { - var def = parseEventDef(leftovers1, sourceId, singleRes.allDay, singleRes.hasEnd, calendar); - var instance = createEventInstance(def.defId, singleRes.range, singleRes.forcedStartTzo, singleRes.forcedEndTzo); - return { def: def, instance: instance }; - } - } - return null; -} -/* -Will NOT populate extendedProps with the leftover properties. -Will NOT populate date-related props. -The EventNonDateInput has been normalized (id => publicId, etc). -*/ -function parseEventDef(raw, sourceId, allDay, hasEnd, calendar) { - var leftovers = {}; - var def = pluckNonDateProps(raw, calendar, leftovers); - def.defId = String(uid++); - def.sourceId = sourceId; - def.allDay = allDay; - def.hasEnd = hasEnd; - for (var _i = 0, _a = calendar.pluginSystem.hooks.eventDefParsers; _i < _a.length; _i++) { - var eventDefParser = _a[_i]; - var newLeftovers = {}; - eventDefParser(def, leftovers, newLeftovers); - leftovers = newLeftovers; - } - def.extendedProps = __assign(leftovers, def.extendedProps || {}); - // help out EventApi from having user modify props - Object.freeze(def.ui.classNames); - Object.freeze(def.extendedProps); - return def; -} -function createEventInstance(defId, range, forcedStartTzo, forcedEndTzo) { - return { - instanceId: String(uid++), - defId: defId, - range: range, - forcedStartTzo: forcedStartTzo == null ? null : forcedStartTzo, - forcedEndTzo: forcedEndTzo == null ? null : forcedEndTzo - }; -} -function parseSingle(raw, allDayDefault, calendar, leftovers, allowOpenRange) { - var props = pluckDateProps(raw, leftovers); - var allDay = props.allDay; - var startMeta; - var startMarker = null; - var hasEnd = false; - var endMeta; - var endMarker = null; - startMeta = calendar.dateEnv.createMarkerMeta(props.start); - if (startMeta) { - startMarker = startMeta.marker; - } - else if (!allowOpenRange) { - return null; - } - if (props.end != null) { - endMeta = calendar.dateEnv.createMarkerMeta(props.end); - } - if (allDay == null) { - if (allDayDefault != null) { - allDay = allDayDefault; - } - else { - // fall back to the date props LAST - allDay = (!startMeta || startMeta.isTimeUnspecified) && - (!endMeta || endMeta.isTimeUnspecified); - } - } - if (allDay && startMarker) { - startMarker = startOfDay(startMarker); - } - if (endMeta) { - endMarker = endMeta.marker; - if (allDay) { - endMarker = startOfDay(endMarker); - } - if (startMarker && endMarker <= startMarker) { - endMarker = null; - } - } - if (endMarker) { - hasEnd = true; - } - else if (!allowOpenRange) { - hasEnd = calendar.opt('forceEventDuration') || false; - endMarker = calendar.dateEnv.add(startMarker, allDay ? - calendar.defaultAllDayEventDuration : - calendar.defaultTimedEventDuration); - } - return { - allDay: allDay, - hasEnd: hasEnd, - range: { start: startMarker, end: endMarker }, - forcedStartTzo: startMeta ? startMeta.forcedTzo : null, - forcedEndTzo: endMeta ? endMeta.forcedTzo : null - }; -} -function pluckDateProps(raw, leftovers) { - var props = refineProps(raw, DATE_PROPS, {}, leftovers); - props.start = (props.start !== null) ? props.start : props.date; - delete props.date; - return props; -} -function pluckNonDateProps(raw, calendar, leftovers) { - var preLeftovers = {}; - var props = refineProps(raw, NON_DATE_PROPS, {}, preLeftovers); - var ui = processUnscopedUiProps(preLeftovers, calendar, leftovers); - props.publicId = props.id; - delete props.id; - props.ui = ui; - return props; -} -function computeIsAllDayDefault(sourceId, calendar) { - var res = null; - if (sourceId) { - var source = calendar.state.eventSources[sourceId]; - res = source.allDayDefault; - } - if (res == null) { - res = calendar.opt('allDayDefault'); - } - return res; -} - -var DEF_DEFAULTS = { - startTime: '09:00', - endTime: '17:00', - daysOfWeek: [1, 2, 3, 4, 5], - rendering: 'inverse-background', - classNames: 'fc-nonbusiness', - groupId: '_businessHours' // so multiple defs get grouped -}; -/* -TODO: pass around as EventDefHash!!! -*/ -function parseBusinessHours(input, calendar) { - return parseEvents(refineInputs(input), '', calendar); -} -function refineInputs(input) { - var rawDefs; - if (input === true) { - rawDefs = [{}]; // will get DEF_DEFAULTS verbatim - } - else if (Array.isArray(input)) { - // if specifying an array, every sub-definition NEEDS a day-of-week - rawDefs = input.filter(function (rawDef) { - return rawDef.daysOfWeek; - }); - } - else if (typeof input === 'object' && input) { // non-null object - rawDefs = [input]; - } - else { // is probably false - rawDefs = []; - } - rawDefs = rawDefs.map(function (rawDef) { - return __assign({}, DEF_DEFAULTS, rawDef); - }); - return rawDefs; -} - -function memoizeRendering(renderFunc, unrenderFunc, dependencies) { - if (dependencies === void 0) { dependencies = []; } - var dependents = []; - var thisContext; - var prevArgs; - function unrender() { - if (prevArgs) { - for (var _i = 0, dependents_1 = dependents; _i < dependents_1.length; _i++) { - var dependent = dependents_1[_i]; - dependent.unrender(); - } - if (unrenderFunc) { - unrenderFunc.apply(thisContext, prevArgs); - } - prevArgs = null; - } - } - function res() { - if (!prevArgs || !isArraysEqual(prevArgs, arguments)) { - unrender(); - thisContext = this; - prevArgs = arguments; - renderFunc.apply(this, arguments); - } - } - res.dependents = dependents; - res.unrender = unrender; - for (var _i = 0, dependencies_1 = dependencies; _i < dependencies_1.length; _i++) { - var dependency = dependencies_1[_i]; - dependency.dependents.push(res); - } - return res; -} - -var EMPTY_EVENT_STORE = createEmptyEventStore(); // for purecomponents. TODO: keep elsewhere -var Splitter = /** @class */ (function () { - function Splitter() { - this.getKeysForEventDefs = memoize(this._getKeysForEventDefs); - this.splitDateSelection = memoize(this._splitDateSpan); - this.splitEventStore = memoize(this._splitEventStore); - this.splitIndividualUi = memoize(this._splitIndividualUi); - this.splitEventDrag = memoize(this._splitInteraction); - this.splitEventResize = memoize(this._splitInteraction); - this.eventUiBuilders = {}; // TODO: typescript protection - } - Splitter.prototype.splitProps = function (props) { - var _this = this; - var keyInfos = this.getKeyInfo(props); - var defKeys = this.getKeysForEventDefs(props.eventStore); - var dateSelections = this.splitDateSelection(props.dateSelection); - var individualUi = this.splitIndividualUi(props.eventUiBases, defKeys); // the individual *bases* - var eventStores = this.splitEventStore(props.eventStore, defKeys); - var eventDrags = this.splitEventDrag(props.eventDrag); - var eventResizes = this.splitEventResize(props.eventResize); - var splitProps = {}; - this.eventUiBuilders = mapHash(keyInfos, function (info, key) { - return _this.eventUiBuilders[key] || memoize(buildEventUiForKey); - }); - for (var key in keyInfos) { - var keyInfo = keyInfos[key]; - var eventStore = eventStores[key] || EMPTY_EVENT_STORE; - var buildEventUi = this.eventUiBuilders[key]; - splitProps[key] = { - businessHours: keyInfo.businessHours || props.businessHours, - dateSelection: dateSelections[key] || null, - eventStore: eventStore, - eventUiBases: buildEventUi(props.eventUiBases[''], keyInfo.ui, individualUi[key]), - eventSelection: eventStore.instances[props.eventSelection] ? props.eventSelection : '', - eventDrag: eventDrags[key] || null, - eventResize: eventResizes[key] || null - }; - } - return splitProps; - }; - Splitter.prototype._splitDateSpan = function (dateSpan) { - var dateSpans = {}; - if (dateSpan) { - var keys = this.getKeysForDateSpan(dateSpan); - for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) { - var key = keys_1[_i]; - dateSpans[key] = dateSpan; - } - } - return dateSpans; - }; - Splitter.prototype._getKeysForEventDefs = function (eventStore) { - var _this = this; - return mapHash(eventStore.defs, function (eventDef) { - return _this.getKeysForEventDef(eventDef); - }); - }; - Splitter.prototype._splitEventStore = function (eventStore, defKeys) { - var defs = eventStore.defs, instances = eventStore.instances; - var splitStores = {}; - for (var defId in defs) { - for (var _i = 0, _a = defKeys[defId]; _i < _a.length; _i++) { - var key = _a[_i]; - if (!splitStores[key]) { - splitStores[key] = createEmptyEventStore(); - } - splitStores[key].defs[defId] = defs[defId]; - } - } - for (var instanceId in instances) { - var instance = instances[instanceId]; - for (var _b = 0, _c = defKeys[instance.defId]; _b < _c.length; _b++) { - var key = _c[_b]; - if (splitStores[key]) { // must have already been created - splitStores[key].instances[instanceId] = instance; - } - } - } - return splitStores; - }; - Splitter.prototype._splitIndividualUi = function (eventUiBases, defKeys) { - var splitHashes = {}; - for (var defId in eventUiBases) { - if (defId) { // not the '' key - for (var _i = 0, _a = defKeys[defId]; _i < _a.length; _i++) { - var key = _a[_i]; - if (!splitHashes[key]) { - splitHashes[key] = {}; - } - splitHashes[key][defId] = eventUiBases[defId]; - } - } - } - return splitHashes; - }; - Splitter.prototype._splitInteraction = function (interaction) { - var splitStates = {}; - if (interaction) { - var affectedStores_1 = this._splitEventStore(interaction.affectedEvents, this._getKeysForEventDefs(interaction.affectedEvents) // can't use cached. might be events from other calendar - ); - // can't rely on defKeys because event data is mutated - var mutatedKeysByDefId = this._getKeysForEventDefs(interaction.mutatedEvents); - var mutatedStores_1 = this._splitEventStore(interaction.mutatedEvents, mutatedKeysByDefId); - var populate = function (key) { - if (!splitStates[key]) { - splitStates[key] = { - affectedEvents: affectedStores_1[key] || EMPTY_EVENT_STORE, - mutatedEvents: mutatedStores_1[key] || EMPTY_EVENT_STORE, - isEvent: interaction.isEvent, - origSeg: interaction.origSeg - }; - } - }; - for (var key in affectedStores_1) { - populate(key); - } - for (var key in mutatedStores_1) { - populate(key); - } - } - return splitStates; - }; - return Splitter; -}()); -function buildEventUiForKey(allUi, eventUiForKey, individualUi) { - var baseParts = []; - if (allUi) { - baseParts.push(allUi); - } - if (eventUiForKey) { - baseParts.push(eventUiForKey); - } - var stuff = { - '': combineEventUis(baseParts) - }; - if (individualUi) { - __assign(stuff, individualUi); - } - return stuff; -} - -// Generates HTML for an anchor to another view into the calendar. -// Will either generate an
tag or a non-clickable tag, depending on enabled settings. -// `gotoOptions` can either be a DateMarker, or an object with the form: -// { date, type, forceOff } -// `type` is a view-type like "day" or "week". default value is "day". -// `attrs` and `innerHtml` are use to generate the rest of the HTML tag. -function buildGotoAnchorHtml(component, gotoOptions, attrs, innerHtml) { - var dateEnv = component.dateEnv; - var date; - var type; - var forceOff; - var finalOptions; - if (gotoOptions instanceof Date) { - date = gotoOptions; // a single date-like input - } - else { - date = gotoOptions.date; - type = gotoOptions.type; - forceOff = gotoOptions.forceOff; - } - finalOptions = { - date: dateEnv.formatIso(date, { omitTime: true }), - type: type || 'day' - }; - if (typeof attrs === 'string') { - innerHtml = attrs; - attrs = null; - } - attrs = attrs ? ' ' + attrsToStr(attrs) : ''; // will have a leading space - innerHtml = innerHtml || ''; - if (!forceOff && component.opt('navLinks')) { - return '' + - innerHtml + - ''; - } - else { - return '' + - innerHtml + - ''; - } -} -function getAllDayHtml(component) { - return component.opt('allDayHtml') || htmlEscape(component.opt('allDayText')); -} -// Computes HTML classNames for a single-day element -function getDayClasses(date, dateProfile, context, noThemeHighlight) { - var calendar = context.calendar, view = context.view, theme = context.theme, dateEnv = context.dateEnv; - var classes = []; - var todayStart; - var todayEnd; - if (!rangeContainsMarker(dateProfile.activeRange, date)) { - classes.push('fc-disabled-day'); - } - else { - classes.push('fc-' + DAY_IDS[date.getUTCDay()]); - if (view.opt('monthMode') && - dateEnv.getMonth(date) !== dateEnv.getMonth(dateProfile.currentRange.start)) { - classes.push('fc-other-month'); - } - todayStart = startOfDay(calendar.getNow()); - todayEnd = addDays(todayStart, 1); - if (date < todayStart) { - classes.push('fc-past'); - } - else if (date >= todayEnd) { - classes.push('fc-future'); - } - else { - classes.push('fc-today'); - if (noThemeHighlight !== true) { - classes.push(theme.getClass('today')); - } - } - } - return classes; -} - -// given a function that resolves a result asynchronously. -// the function can either call passed-in success and failure callbacks, -// or it can return a promise. -// if you need to pass additional params to func, bind them first. -function unpromisify(func, success, failure) { - // guard against success/failure callbacks being called more than once - // and guard against a promise AND callback being used together. - var isResolved = false; - var wrappedSuccess = function () { - if (!isResolved) { - isResolved = true; - success.apply(this, arguments); - } - }; - var wrappedFailure = function () { - if (!isResolved) { - isResolved = true; - if (failure) { - failure.apply(this, arguments); - } - } - }; - var res = func(wrappedSuccess, wrappedFailure); - if (res && typeof res.then === 'function') { - res.then(wrappedSuccess, wrappedFailure); - } -} - -var Mixin = /** @class */ (function () { - function Mixin() { - } - // mix into a CLASS - Mixin.mixInto = function (destClass) { - this.mixIntoObj(destClass.prototype); - }; - // mix into ANY object - Mixin.mixIntoObj = function (destObj) { - var _this = this; - Object.getOwnPropertyNames(this.prototype).forEach(function (name) { - if (!destObj[name]) { // if destination doesn't already define it - destObj[name] = _this.prototype[name]; - } - }); - }; - /* - will override existing methods - TODO: remove! not used anymore - */ - Mixin.mixOver = function (destClass) { - var _this = this; - Object.getOwnPropertyNames(this.prototype).forEach(function (name) { - destClass.prototype[name] = _this.prototype[name]; - }); - }; - return Mixin; -}()); - -/* -USAGE: - import { default as EmitterMixin, EmitterInterface } from './EmitterMixin' -in class: - on: EmitterInterface['on'] - one: EmitterInterface['one'] - off: EmitterInterface['off'] - trigger: EmitterInterface['trigger'] - triggerWith: EmitterInterface['triggerWith'] - hasHandlers: EmitterInterface['hasHandlers'] -after class: - EmitterMixin.mixInto(TheClass) -*/ -var EmitterMixin = /** @class */ (function (_super) { - __extends(EmitterMixin, _super); - function EmitterMixin() { - return _super !== null && _super.apply(this, arguments) || this; - } - EmitterMixin.prototype.on = function (type, handler) { - addToHash(this._handlers || (this._handlers = {}), type, handler); - return this; // for chaining - }; - // todo: add comments - EmitterMixin.prototype.one = function (type, handler) { - addToHash(this._oneHandlers || (this._oneHandlers = {}), type, handler); - return this; // for chaining - }; - EmitterMixin.prototype.off = function (type, handler) { - if (this._handlers) { - removeFromHash(this._handlers, type, handler); - } - if (this._oneHandlers) { - removeFromHash(this._oneHandlers, type, handler); - } - return this; // for chaining - }; - EmitterMixin.prototype.trigger = function (type) { - var args = []; - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; - } - this.triggerWith(type, this, args); - return this; // for chaining - }; - EmitterMixin.prototype.triggerWith = function (type, context, args) { - if (this._handlers) { - applyAll(this._handlers[type], context, args); - } - if (this._oneHandlers) { - applyAll(this._oneHandlers[type], context, args); - delete this._oneHandlers[type]; // will never fire again - } - return this; // for chaining - }; - EmitterMixin.prototype.hasHandlers = function (type) { - return (this._handlers && this._handlers[type] && this._handlers[type].length) || - (this._oneHandlers && this._oneHandlers[type] && this._oneHandlers[type].length); - }; - return EmitterMixin; -}(Mixin)); -function addToHash(hash, type, handler) { - (hash[type] || (hash[type] = [])) - .push(handler); -} -function removeFromHash(hash, type, handler) { - if (handler) { - if (hash[type]) { - hash[type] = hash[type].filter(function (func) { - return func !== handler; - }); - } - } - else { - delete hash[type]; // remove all handler funcs for this type - } -} - -/* -Records offset information for a set of elements, relative to an origin element. -Can record the left/right OR the top/bottom OR both. -Provides methods for querying the cache by position. -*/ -var PositionCache = /** @class */ (function () { - function PositionCache(originEl, els, isHorizontal, isVertical) { - this.originEl = originEl; - this.els = els; - this.isHorizontal = isHorizontal; - this.isVertical = isVertical; - } - // Queries the els for coordinates and stores them. - // Call this method before using and of the get* methods below. - PositionCache.prototype.build = function () { - var originEl = this.originEl; - var originClientRect = this.originClientRect = - originEl.getBoundingClientRect(); // relative to viewport top-left - if (this.isHorizontal) { - this.buildElHorizontals(originClientRect.left); - } - if (this.isVertical) { - this.buildElVerticals(originClientRect.top); - } - }; - // Populates the left/right internal coordinate arrays - PositionCache.prototype.buildElHorizontals = function (originClientLeft) { - var lefts = []; - var rights = []; - for (var _i = 0, _a = this.els; _i < _a.length; _i++) { - var el = _a[_i]; - var rect = el.getBoundingClientRect(); - lefts.push(rect.left - originClientLeft); - rights.push(rect.right - originClientLeft); - } - this.lefts = lefts; - this.rights = rights; - }; - // Populates the top/bottom internal coordinate arrays - PositionCache.prototype.buildElVerticals = function (originClientTop) { - var tops = []; - var bottoms = []; - for (var _i = 0, _a = this.els; _i < _a.length; _i++) { - var el = _a[_i]; - var rect = el.getBoundingClientRect(); - tops.push(rect.top - originClientTop); - bottoms.push(rect.bottom - originClientTop); - } - this.tops = tops; - this.bottoms = bottoms; - }; - // Given a left offset (from document left), returns the index of the el that it horizontally intersects. - // If no intersection is made, returns undefined. - PositionCache.prototype.leftToIndex = function (leftPosition) { - var lefts = this.lefts; - var rights = this.rights; - var len = lefts.length; - var i; - for (i = 0; i < len; i++) { - if (leftPosition >= lefts[i] && leftPosition < rights[i]) { - return i; - } - } - }; - // Given a top offset (from document top), returns the index of the el that it vertically intersects. - // If no intersection is made, returns undefined. - PositionCache.prototype.topToIndex = function (topPosition) { - var tops = this.tops; - var bottoms = this.bottoms; - var len = tops.length; - var i; - for (i = 0; i < len; i++) { - if (topPosition >= tops[i] && topPosition < bottoms[i]) { - return i; - } - } - }; - // Gets the width of the element at the given index - PositionCache.prototype.getWidth = function (leftIndex) { - return this.rights[leftIndex] - this.lefts[leftIndex]; - }; - // Gets the height of the element at the given index - PositionCache.prototype.getHeight = function (topIndex) { - return this.bottoms[topIndex] - this.tops[topIndex]; - }; - return PositionCache; -}()); - -/* -An object for getting/setting scroll-related information for an element. -Internally, this is done very differently for window versus DOM element, -so this object serves as a common interface. -*/ -var ScrollController = /** @class */ (function () { - function ScrollController() { - } - ScrollController.prototype.getMaxScrollTop = function () { - return this.getScrollHeight() - this.getClientHeight(); - }; - ScrollController.prototype.getMaxScrollLeft = function () { - return this.getScrollWidth() - this.getClientWidth(); - }; - ScrollController.prototype.canScrollVertically = function () { - return this.getMaxScrollTop() > 0; - }; - ScrollController.prototype.canScrollHorizontally = function () { - return this.getMaxScrollLeft() > 0; - }; - ScrollController.prototype.canScrollUp = function () { - return this.getScrollTop() > 0; - }; - ScrollController.prototype.canScrollDown = function () { - return this.getScrollTop() < this.getMaxScrollTop(); - }; - ScrollController.prototype.canScrollLeft = function () { - return this.getScrollLeft() > 0; - }; - ScrollController.prototype.canScrollRight = function () { - return this.getScrollLeft() < this.getMaxScrollLeft(); - }; - return ScrollController; -}()); -var ElementScrollController = /** @class */ (function (_super) { - __extends(ElementScrollController, _super); - function ElementScrollController(el) { - var _this = _super.call(this) || this; - _this.el = el; - return _this; - } - ElementScrollController.prototype.getScrollTop = function () { - return this.el.scrollTop; - }; - ElementScrollController.prototype.getScrollLeft = function () { - return this.el.scrollLeft; - }; - ElementScrollController.prototype.setScrollTop = function (top) { - this.el.scrollTop = top; - }; - ElementScrollController.prototype.setScrollLeft = function (left) { - this.el.scrollLeft = left; - }; - ElementScrollController.prototype.getScrollWidth = function () { - return this.el.scrollWidth; - }; - ElementScrollController.prototype.getScrollHeight = function () { - return this.el.scrollHeight; - }; - ElementScrollController.prototype.getClientHeight = function () { - return this.el.clientHeight; - }; - ElementScrollController.prototype.getClientWidth = function () { - return this.el.clientWidth; - }; - return ElementScrollController; -}(ScrollController)); -var WindowScrollController = /** @class */ (function (_super) { - __extends(WindowScrollController, _super); - function WindowScrollController() { - return _super !== null && _super.apply(this, arguments) || this; - } - WindowScrollController.prototype.getScrollTop = function () { - return window.pageYOffset; - }; - WindowScrollController.prototype.getScrollLeft = function () { - return window.pageXOffset; - }; - WindowScrollController.prototype.setScrollTop = function (n) { - window.scroll(window.pageXOffset, n); - }; - WindowScrollController.prototype.setScrollLeft = function (n) { - window.scroll(n, window.pageYOffset); - }; - WindowScrollController.prototype.getScrollWidth = function () { - return document.documentElement.scrollWidth; - }; - WindowScrollController.prototype.getScrollHeight = function () { - return document.documentElement.scrollHeight; - }; - WindowScrollController.prototype.getClientHeight = function () { - return document.documentElement.clientHeight; - }; - WindowScrollController.prototype.getClientWidth = function () { - return document.documentElement.clientWidth; - }; - return WindowScrollController; -}(ScrollController)); - -/* -Embodies a div that has potential scrollbars -*/ -var ScrollComponent = /** @class */ (function (_super) { - __extends(ScrollComponent, _super); - function ScrollComponent(overflowX, overflowY) { - var _this = _super.call(this, createElement('div', { - className: 'fc-scroller' - })) || this; - _this.overflowX = overflowX; - _this.overflowY = overflowY; - _this.applyOverflow(); - return _this; - } - // sets to natural height, unlocks overflow - ScrollComponent.prototype.clear = function () { - this.setHeight('auto'); - this.applyOverflow(); - }; - ScrollComponent.prototype.destroy = function () { - removeElement(this.el); - }; - // Overflow - // ----------------------------------------------------------------------------------------------------------------- - ScrollComponent.prototype.applyOverflow = function () { - applyStyle(this.el, { - overflowX: this.overflowX, - overflowY: this.overflowY - }); - }; - // Causes any 'auto' overflow values to resolves to 'scroll' or 'hidden'. - // Useful for preserving scrollbar widths regardless of future resizes. - // Can pass in scrollbarWidths for optimization. - ScrollComponent.prototype.lockOverflow = function (scrollbarWidths) { - var overflowX = this.overflowX; - var overflowY = this.overflowY; - scrollbarWidths = scrollbarWidths || this.getScrollbarWidths(); - if (overflowX === 'auto') { - overflowX = (scrollbarWidths.bottom || // horizontal scrollbars? - this.canScrollHorizontally() // OR scrolling pane with massless scrollbars? - ) ? 'scroll' : 'hidden'; - } - if (overflowY === 'auto') { - overflowY = (scrollbarWidths.left || scrollbarWidths.right || // horizontal scrollbars? - this.canScrollVertically() // OR scrolling pane with massless scrollbars? - ) ? 'scroll' : 'hidden'; - } - applyStyle(this.el, { overflowX: overflowX, overflowY: overflowY }); - }; - ScrollComponent.prototype.setHeight = function (height) { - applyStyleProp(this.el, 'height', height); - }; - ScrollComponent.prototype.getScrollbarWidths = function () { - var edges = computeEdges(this.el); - return { - left: edges.scrollbarLeft, - right: edges.scrollbarRight, - bottom: edges.scrollbarBottom - }; - }; - return ScrollComponent; -}(ElementScrollController)); - -var Theme = /** @class */ (function () { - function Theme(calendarOptions) { - this.calendarOptions = calendarOptions; - this.processIconOverride(); - } - Theme.prototype.processIconOverride = function () { - if (this.iconOverrideOption) { - this.setIconOverride(this.calendarOptions[this.iconOverrideOption]); - } - }; - Theme.prototype.setIconOverride = function (iconOverrideHash) { - var iconClassesCopy; - var buttonName; - if (typeof iconOverrideHash === 'object' && iconOverrideHash) { // non-null object - iconClassesCopy = __assign({}, this.iconClasses); - for (buttonName in iconOverrideHash) { - iconClassesCopy[buttonName] = this.applyIconOverridePrefix(iconOverrideHash[buttonName]); - } - this.iconClasses = iconClassesCopy; - } - else if (iconOverrideHash === false) { - this.iconClasses = {}; - } - }; - Theme.prototype.applyIconOverridePrefix = function (className) { - var prefix = this.iconOverridePrefix; - if (prefix && className.indexOf(prefix) !== 0) { // if not already present - className = prefix + className; - } - return className; - }; - Theme.prototype.getClass = function (key) { - return this.classes[key] || ''; - }; - Theme.prototype.getIconClass = function (buttonName) { - var className = this.iconClasses[buttonName]; - if (className) { - return this.baseIconClass + ' ' + className; - } - return ''; - }; - Theme.prototype.getCustomButtonIconClass = function (customButtonProps) { - var className; - if (this.iconOverrideCustomButtonOption) { - className = customButtonProps[this.iconOverrideCustomButtonOption]; - if (className) { - return this.baseIconClass + ' ' + this.applyIconOverridePrefix(className); - } - } - return ''; - }; - return Theme; -}()); -Theme.prototype.classes = {}; -Theme.prototype.iconClasses = {}; -Theme.prototype.baseIconClass = ''; -Theme.prototype.iconOverridePrefix = ''; - -var guid = 0; -var Component = /** @class */ (function () { - function Component(context, isView) { - // HACK to populate view at top of component instantiation call chain - if (isView) { - context.view = this; - } - this.uid = String(guid++); - this.context = context; - this.dateEnv = context.dateEnv; - this.theme = context.theme; - this.view = context.view; - this.calendar = context.calendar; - this.isRtl = this.opt('dir') === 'rtl'; - } - Component.addEqualityFuncs = function (newFuncs) { - this.prototype.equalityFuncs = __assign({}, this.prototype.equalityFuncs, newFuncs); - }; - Component.prototype.opt = function (name) { - return this.context.options[name]; - }; - Component.prototype.receiveProps = function (props) { - var _a = recycleProps(this.props || {}, props, this.equalityFuncs), anyChanges = _a.anyChanges, comboProps = _a.comboProps; - this.props = comboProps; - if (anyChanges) { - this.render(comboProps); - } - }; - Component.prototype.render = function (props) { - }; - // after destroy is called, this component won't ever be used again - Component.prototype.destroy = function () { - }; - return Component; -}()); -Component.prototype.equalityFuncs = {}; -/* -Reuses old values when equal. If anything is unequal, returns newProps as-is. -Great for PureComponent, but won't be feasible with React, so just eliminate and use React's DOM diffing. -*/ -function recycleProps(oldProps, newProps, equalityFuncs) { - var comboProps = {}; // some old, some new - var anyChanges = false; - for (var key in newProps) { - if (key in oldProps && (oldProps[key] === newProps[key] || - (equalityFuncs[key] && equalityFuncs[key](oldProps[key], newProps[key])))) { - // equal to old? use old prop - comboProps[key] = oldProps[key]; - } - else { - comboProps[key] = newProps[key]; - anyChanges = true; - } - } - for (var key in oldProps) { - if (!(key in newProps)) { - anyChanges = true; - break; - } - } - return { anyChanges: anyChanges, comboProps: comboProps }; -} - -/* -PURPOSES: -- hook up to fg, fill, and mirror renderers -- interface for dragging and hits -*/ -var DateComponent = /** @class */ (function (_super) { - __extends(DateComponent, _super); - function DateComponent(context, el, isView) { - var _this = _super.call(this, context, isView) || this; - _this.el = el; - return _this; - } - DateComponent.prototype.destroy = function () { - _super.prototype.destroy.call(this); - removeElement(this.el); - }; - // TODO: WHAT ABOUT (sourceSeg && sourceSeg.component.doesDragMirror) - // - // Event Drag-n-Drop Rendering (for both events and external elements) - // --------------------------------------------------------------------------------------------------------------- - /* - renderEventDragSegs(state: EventSegUiInteractionState) { - if (state) { - let { isEvent, segs, sourceSeg } = state - - if (this.eventRenderer) { - this.eventRenderer.hideByHash(state.affectedInstances) - } - - // if the user is dragging something that is considered an event with real event data, - // and this component likes to do drag mirrors OR the component where the seg came from - // likes to do drag mirrors, then render a drag mirror. - if (isEvent && (this.doesDragMirror || sourceSeg && sourceSeg.component.doesDragMirror)) { - if (this.mirrorRenderer) { - this.mirrorRenderer.renderSegs(segs, { isDragging: true, sourceSeg }) - } - } - - // if it would be impossible to render a drag mirror OR this component likes to render - // highlights, then render a highlight. - if (!isEvent || this.doesDragHighlight) { - if (this.fillRenderer) { - this.fillRenderer.renderSegs('highlight', segs) - } - } - } - } - */ - // Hit System - // ----------------------------------------------------------------------------------------------------------------- - DateComponent.prototype.buildPositionCaches = function () { - }; - DateComponent.prototype.queryHit = function (positionLeft, positionTop, elWidth, elHeight) { - return null; // this should be abstract - }; - // Validation - // ----------------------------------------------------------------------------------------------------------------- - DateComponent.prototype.isInteractionValid = function (interaction) { - var calendar = this.calendar; - var dateProfile = this.props.dateProfile; // HACK - var instances = interaction.mutatedEvents.instances; - if (dateProfile) { // HACK for DayTile - for (var instanceId in instances) { - if (!rangeContainsRange(dateProfile.validRange, instances[instanceId].range)) { - return false; - } - } - } - return isInteractionValid(interaction, calendar); - }; - DateComponent.prototype.isDateSelectionValid = function (selection) { - var dateProfile = this.props.dateProfile; // HACK - if (dateProfile && // HACK for DayTile - !rangeContainsRange(dateProfile.validRange, selection.range)) { - return false; - } - return isDateSelectionValid(selection, this.calendar); - }; - // Triggering - // ----------------------------------------------------------------------------------------------------------------- - // TODO: move to Calendar - DateComponent.prototype.publiclyTrigger = function (name, args) { - var calendar = this.calendar; - return calendar.publiclyTrigger(name, args); - }; - DateComponent.prototype.publiclyTriggerAfterSizing = function (name, args) { - var calendar = this.calendar; - return calendar.publiclyTriggerAfterSizing(name, args); - }; - DateComponent.prototype.hasPublicHandlers = function (name) { - var calendar = this.calendar; - return calendar.hasPublicHandlers(name); - }; - DateComponent.prototype.triggerRenderedSegs = function (segs, isMirrors) { - var calendar = this.calendar; - if (this.hasPublicHandlers('eventPositioned')) { - for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) { - var seg = segs_1[_i]; - this.publiclyTriggerAfterSizing('eventPositioned', [ - { - event: new EventApi(calendar, seg.eventRange.def, seg.eventRange.instance), - isMirror: isMirrors, - isStart: seg.isStart, - isEnd: seg.isEnd, - el: seg.el, - view: this // safe to cast because this method is only called on context.view - } - ]); - } - } - if (!calendar.state.loadingLevel) { // avoid initial empty state while pending - calendar.afterSizingTriggers._eventsPositioned = [null]; // fire once - } - }; - DateComponent.prototype.triggerWillRemoveSegs = function (segs, isMirrors) { - var calendar = this.calendar; - for (var _i = 0, segs_2 = segs; _i < segs_2.length; _i++) { - var seg = segs_2[_i]; - calendar.trigger('eventElRemove', seg.el); - } - if (this.hasPublicHandlers('eventDestroy')) { - for (var _a = 0, segs_3 = segs; _a < segs_3.length; _a++) { - var seg = segs_3[_a]; - this.publiclyTrigger('eventDestroy', [ - { - event: new EventApi(calendar, seg.eventRange.def, seg.eventRange.instance), - isMirror: isMirrors, - el: seg.el, - view: this // safe to cast because this method is only called on context.view - } - ]); - } - } - }; - // Pointer Interaction Utils - // ----------------------------------------------------------------------------------------------------------------- - DateComponent.prototype.isValidSegDownEl = function (el) { - return !this.props.eventDrag && // HACK - !this.props.eventResize && // HACK - !elementClosest(el, '.fc-mirror') && - (this.isPopover() || !this.isInPopover(el)); - // ^above line ensures we don't detect a seg interaction within a nested component. - // it's a HACK because it only supports a popover as the nested component. - }; - DateComponent.prototype.isValidDateDownEl = function (el) { - var segEl = elementClosest(el, this.fgSegSelector); - return (!segEl || segEl.classList.contains('fc-mirror')) && - !elementClosest(el, '.fc-more') && // a "more.." link - !elementClosest(el, 'a[data-goto]') && // a clickable nav link - !this.isInPopover(el); - }; - DateComponent.prototype.isPopover = function () { - return this.el.classList.contains('fc-popover'); - }; - DateComponent.prototype.isInPopover = function (el) { - return Boolean(elementClosest(el, '.fc-popover')); - }; - return DateComponent; -}(Component)); -DateComponent.prototype.fgSegSelector = '.fc-event-container > *'; -DateComponent.prototype.bgSegSelector = '.fc-bgevent:not(.fc-nonbusiness)'; - -var uid$1 = 0; -function createPlugin(input) { - return { - id: String(uid$1++), - deps: input.deps || [], - reducers: input.reducers || [], - eventDefParsers: input.eventDefParsers || [], - isDraggableTransformers: input.isDraggableTransformers || [], - eventDragMutationMassagers: input.eventDragMutationMassagers || [], - eventDefMutationAppliers: input.eventDefMutationAppliers || [], - dateSelectionTransformers: input.dateSelectionTransformers || [], - datePointTransforms: input.datePointTransforms || [], - dateSpanTransforms: input.dateSpanTransforms || [], - views: input.views || {}, - viewPropsTransformers: input.viewPropsTransformers || [], - isPropsValid: input.isPropsValid || null, - externalDefTransforms: input.externalDefTransforms || [], - eventResizeJoinTransforms: input.eventResizeJoinTransforms || [], - viewContainerModifiers: input.viewContainerModifiers || [], - eventDropTransformers: input.eventDropTransformers || [], - componentInteractions: input.componentInteractions || [], - calendarInteractions: input.calendarInteractions || [], - themeClasses: input.themeClasses || {}, - eventSourceDefs: input.eventSourceDefs || [], - cmdFormatter: input.cmdFormatter, - recurringTypes: input.recurringTypes || [], - namedTimeZonedImpl: input.namedTimeZonedImpl, - defaultView: input.defaultView || '', - elementDraggingImpl: input.elementDraggingImpl, - optionChangeHandlers: input.optionChangeHandlers || {} - }; -} -var PluginSystem = /** @class */ (function () { - function PluginSystem() { - this.hooks = { - reducers: [], - eventDefParsers: [], - isDraggableTransformers: [], - eventDragMutationMassagers: [], - eventDefMutationAppliers: [], - dateSelectionTransformers: [], - datePointTransforms: [], - dateSpanTransforms: [], - views: {}, - viewPropsTransformers: [], - isPropsValid: null, - externalDefTransforms: [], - eventResizeJoinTransforms: [], - viewContainerModifiers: [], - eventDropTransformers: [], - componentInteractions: [], - calendarInteractions: [], - themeClasses: {}, - eventSourceDefs: [], - cmdFormatter: null, - recurringTypes: [], - namedTimeZonedImpl: null, - defaultView: '', - elementDraggingImpl: null, - optionChangeHandlers: {} - }; - this.addedHash = {}; - } - PluginSystem.prototype.add = function (plugin) { - if (!this.addedHash[plugin.id]) { - this.addedHash[plugin.id] = true; - for (var _i = 0, _a = plugin.deps; _i < _a.length; _i++) { - var dep = _a[_i]; - this.add(dep); - } - this.hooks = combineHooks(this.hooks, plugin); - } - }; - return PluginSystem; -}()); -function combineHooks(hooks0, hooks1) { - return { - reducers: hooks0.reducers.concat(hooks1.reducers), - eventDefParsers: hooks0.eventDefParsers.concat(hooks1.eventDefParsers), - isDraggableTransformers: hooks0.isDraggableTransformers.concat(hooks1.isDraggableTransformers), - eventDragMutationMassagers: hooks0.eventDragMutationMassagers.concat(hooks1.eventDragMutationMassagers), - eventDefMutationAppliers: hooks0.eventDefMutationAppliers.concat(hooks1.eventDefMutationAppliers), - dateSelectionTransformers: hooks0.dateSelectionTransformers.concat(hooks1.dateSelectionTransformers), - datePointTransforms: hooks0.datePointTransforms.concat(hooks1.datePointTransforms), - dateSpanTransforms: hooks0.dateSpanTransforms.concat(hooks1.dateSpanTransforms), - views: __assign({}, hooks0.views, hooks1.views), - viewPropsTransformers: hooks0.viewPropsTransformers.concat(hooks1.viewPropsTransformers), - isPropsValid: hooks1.isPropsValid || hooks0.isPropsValid, - externalDefTransforms: hooks0.externalDefTransforms.concat(hooks1.externalDefTransforms), - eventResizeJoinTransforms: hooks0.eventResizeJoinTransforms.concat(hooks1.eventResizeJoinTransforms), - viewContainerModifiers: hooks0.viewContainerModifiers.concat(hooks1.viewContainerModifiers), - eventDropTransformers: hooks0.eventDropTransformers.concat(hooks1.eventDropTransformers), - calendarInteractions: hooks0.calendarInteractions.concat(hooks1.calendarInteractions), - componentInteractions: hooks0.componentInteractions.concat(hooks1.componentInteractions), - themeClasses: __assign({}, hooks0.themeClasses, hooks1.themeClasses), - eventSourceDefs: hooks0.eventSourceDefs.concat(hooks1.eventSourceDefs), - cmdFormatter: hooks1.cmdFormatter || hooks0.cmdFormatter, - recurringTypes: hooks0.recurringTypes.concat(hooks1.recurringTypes), - namedTimeZonedImpl: hooks1.namedTimeZonedImpl || hooks0.namedTimeZonedImpl, - defaultView: hooks0.defaultView || hooks1.defaultView, - elementDraggingImpl: hooks0.elementDraggingImpl || hooks1.elementDraggingImpl, - optionChangeHandlers: __assign({}, hooks0.optionChangeHandlers, hooks1.optionChangeHandlers) - }; -} - -var eventSourceDef = { - ignoreRange: true, - parseMeta: function (raw) { - if (Array.isArray(raw)) { // short form - return raw; - } - else if (Array.isArray(raw.events)) { - return raw.events; - } - return null; - }, - fetch: function (arg, success) { - success({ - rawEvents: arg.eventSource.meta - }); - } -}; -var ArrayEventSourcePlugin = createPlugin({ - eventSourceDefs: [eventSourceDef] -}); - -var eventSourceDef$1 = { - parseMeta: function (raw) { - if (typeof raw === 'function') { // short form - return raw; - } - else if (typeof raw.events === 'function') { - return raw.events; - } - return null; - }, - fetch: function (arg, success, failure) { - var dateEnv = arg.calendar.dateEnv; - var func = arg.eventSource.meta; - unpromisify(func.bind(null, { - start: dateEnv.toDate(arg.range.start), - end: dateEnv.toDate(arg.range.end), - startStr: dateEnv.formatIso(arg.range.start), - endStr: dateEnv.formatIso(arg.range.end), - timeZone: dateEnv.timeZone - }), function (rawEvents) { - success({ rawEvents: rawEvents }); // needs an object response - }, failure // send errorObj directly to failure callback - ); - } -}; -var FuncEventSourcePlugin = createPlugin({ - eventSourceDefs: [eventSourceDef$1] -}); - -function requestJson(method, url, params, successCallback, failureCallback) { - method = method.toUpperCase(); - var body = null; - if (method === 'GET') { - url = injectQueryStringParams(url, params); - } - else { - body = encodeParams(params); - } - var xhr = new XMLHttpRequest(); - xhr.open(method, url, true); - if (method !== 'GET') { - xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); - } - xhr.onload = function () { - if (xhr.status >= 200 && xhr.status < 400) { - try { - var res = JSON.parse(xhr.responseText); - successCallback(res, xhr); - } - catch (err) { - failureCallback('Failure parsing JSON', xhr); - } - } - else { - failureCallback('Request failed', xhr); - } - }; - xhr.onerror = function () { - failureCallback('Request failed', xhr); - }; - xhr.send(body); -} -function injectQueryStringParams(url, params) { - return url + - (url.indexOf('?') === -1 ? '?' : '&') + - encodeParams(params); -} -function encodeParams(params) { - var parts = []; - for (var key in params) { - parts.push(encodeURIComponent(key) + '=' + encodeURIComponent(params[key])); - } - return parts.join('&'); -} - -var eventSourceDef$2 = { - parseMeta: function (raw) { - if (typeof raw === 'string') { // short form - raw = { url: raw }; - } - else if (!raw || typeof raw !== 'object' || !raw.url) { - return null; - } - return { - url: raw.url, - method: (raw.method || 'GET').toUpperCase(), - extraParams: raw.extraParams, - startParam: raw.startParam, - endParam: raw.endParam, - timeZoneParam: raw.timeZoneParam - }; - }, - fetch: function (arg, success, failure) { - var meta = arg.eventSource.meta; - var requestParams = buildRequestParams(meta, arg.range, arg.calendar); - requestJson(meta.method, meta.url, requestParams, function (rawEvents, xhr) { - success({ rawEvents: rawEvents, xhr: xhr }); - }, function (errorMessage, xhr) { - failure({ message: errorMessage, xhr: xhr }); - }); - } -}; -var JsonFeedEventSourcePlugin = createPlugin({ - eventSourceDefs: [eventSourceDef$2] -}); -function buildRequestParams(meta, range, calendar) { - var dateEnv = calendar.dateEnv; - var startParam; - var endParam; - var timeZoneParam; - var customRequestParams; - var params = {}; - startParam = meta.startParam; - if (startParam == null) { - startParam = calendar.opt('startParam'); - } - endParam = meta.endParam; - if (endParam == null) { - endParam = calendar.opt('endParam'); - } - timeZoneParam = meta.timeZoneParam; - if (timeZoneParam == null) { - timeZoneParam = calendar.opt('timeZoneParam'); - } - // retrieve any outbound GET/POST data from the options - if (typeof meta.extraParams === 'function') { - // supplied as a function that returns a key/value object - customRequestParams = meta.extraParams(); - } - else { - // probably supplied as a straight key/value object - customRequestParams = meta.extraParams || {}; - } - __assign(params, customRequestParams); - params[startParam] = dateEnv.formatIso(range.start); - params[endParam] = dateEnv.formatIso(range.end); - if (dateEnv.timeZone !== 'local') { - params[timeZoneParam] = dateEnv.timeZone; - } - return params; -} - -var recurring = { - parse: function (rawEvent, leftoverProps, dateEnv) { - var createMarker = dateEnv.createMarker.bind(dateEnv); - var processors = { - daysOfWeek: null, - startTime: createDuration, - endTime: createDuration, - startRecur: createMarker, - endRecur: createMarker - }; - var props = refineProps(rawEvent, processors, {}, leftoverProps); - var anyValid = false; - for (var propName in props) { - if (props[propName] != null) { - anyValid = true; - break; - } - } - if (anyValid) { - var duration = null; - if ('duration' in leftoverProps) { - duration = createDuration(leftoverProps.duration); - delete leftoverProps.duration; - } - if (!duration && props.startTime && props.endTime) { - duration = subtractDurations(props.endTime, props.startTime); - } - return { - allDayGuess: Boolean(!props.startTime && !props.endTime), - duration: duration, - typeData: props // doesn't need endTime anymore but oh well - }; - } - return null; - }, - expand: function (typeData, framingRange, dateEnv) { - var clippedFramingRange = intersectRanges(framingRange, { start: typeData.startRecur, end: typeData.endRecur }); - if (clippedFramingRange) { - return expandRanges(typeData.daysOfWeek, typeData.startTime, clippedFramingRange, dateEnv); - } - else { - return []; - } - } -}; -var SimpleRecurrencePlugin = createPlugin({ - recurringTypes: [recurring] -}); -function expandRanges(daysOfWeek, startTime, framingRange, dateEnv) { - var dowHash = daysOfWeek ? arrayToHash(daysOfWeek) : null; - var dayMarker = startOfDay(framingRange.start); - var endMarker = framingRange.end; - var instanceStarts = []; - while (dayMarker < endMarker) { - var instanceStart - // if everyday, or this particular day-of-week - = void 0; - // if everyday, or this particular day-of-week - if (!dowHash || dowHash[dayMarker.getUTCDay()]) { - if (startTime) { - instanceStart = dateEnv.add(dayMarker, startTime); - } - else { - instanceStart = dayMarker; - } - instanceStarts.push(instanceStart); - } - dayMarker = addDays(dayMarker, 1); - } - return instanceStarts; -} - -var DefaultOptionChangeHandlers = createPlugin({ - optionChangeHandlers: { - events: function (events, calendar, deepEqual) { - handleEventSources([events], calendar, deepEqual); - }, - eventSources: handleEventSources, - plugins: handlePlugins - } -}); -function handleEventSources(inputs, calendar, deepEqual) { - var unfoundSources = hashValuesToArray(calendar.state.eventSources); - var newInputs = []; - for (var _i = 0, inputs_1 = inputs; _i < inputs_1.length; _i++) { - var input = inputs_1[_i]; - var inputFound = false; - for (var i = 0; i < unfoundSources.length; i++) { - if (deepEqual(unfoundSources[i]._raw, input)) { - unfoundSources.splice(i, 1); // delete - inputFound = true; - break; - } - } - if (!inputFound) { - newInputs.push(input); - } - } - for (var _a = 0, unfoundSources_1 = unfoundSources; _a < unfoundSources_1.length; _a++) { - var unfoundSource = unfoundSources_1[_a]; - calendar.dispatch({ - type: 'REMOVE_EVENT_SOURCE', - sourceId: unfoundSource.sourceId - }); - } - for (var _b = 0, newInputs_1 = newInputs; _b < newInputs_1.length; _b++) { - var newInput = newInputs_1[_b]; - calendar.addEventSource(newInput); - } -} -// shortcoming: won't remove plugins -function handlePlugins(inputs, calendar) { - calendar.addPluginInputs(inputs); // will gracefully handle duplicates -} - -var config = {}; // TODO: make these options -var globalDefaults = { - defaultRangeSeparator: ' - ', - titleRangeSeparator: ' \u2013 ', - defaultTimedEventDuration: '01:00:00', - defaultAllDayEventDuration: { day: 1 }, - forceEventDuration: false, - nextDayThreshold: '00:00:00', - // display - columnHeader: true, - defaultView: '', - aspectRatio: 1.35, - header: { - left: 'title', - center: '', - right: 'today prev,next' - }, - weekends: true, - weekNumbers: false, - weekNumberCalculation: 'local', - editable: false, - // nowIndicator: false, - scrollTime: '06:00:00', - minTime: '00:00:00', - maxTime: '24:00:00', - showNonCurrentDates: true, - // event ajax - lazyFetching: true, - startParam: 'start', - endParam: 'end', - timeZoneParam: 'timeZone', - timeZone: 'local', - // allDayDefault: undefined, - // locale - locales: [], - locale: '', - // dir: will get this from the default locale - // buttonIcons: null, - // allows setting a min-height to the event segment to prevent short events overlapping each other - timeGridEventMinHeight: 0, - themeSystem: 'standard', - // eventResizableFromStart: false, - dragRevertDuration: 500, - dragScroll: true, - allDayMaintainDuration: false, - // selectable: false, - unselectAuto: true, - // selectMinDistance: 0, - dropAccept: '*', - eventOrder: 'start,-duration,allDay,title', - // ^ if start tie, longer events go before shorter. final tie-breaker is title text - // rerenderDelay: null, - eventLimit: false, - eventLimitClick: 'popover', - dayPopoverFormat: { month: 'long', day: 'numeric', year: 'numeric' }, - handleWindowResize: true, - windowResizeDelay: 100, - longPressDelay: 1000, - eventDragMinDistance: 5 // only applies to mouse -}; -var rtlDefaults = { - header: { - left: 'next,prev today', - center: '', - right: 'title' - }, - buttonIcons: { - // TODO: make RTL support the responibility of the theme - prev: 'fc-icon-chevron-right', - next: 'fc-icon-chevron-left', - prevYear: 'fc-icon-chevrons-right', - nextYear: 'fc-icon-chevrons-left' - } -}; -var complexOptions = [ - 'header', - 'footer', - 'buttonText', - 'buttonIcons' -]; -// Merges an array of option objects into a single object -function mergeOptions(optionObjs) { - return mergeProps(optionObjs, complexOptions); -} -// TODO: move this stuff to a "plugin"-related file... -var INTERNAL_PLUGINS = [ - ArrayEventSourcePlugin, - FuncEventSourcePlugin, - JsonFeedEventSourcePlugin, - SimpleRecurrencePlugin, - DefaultOptionChangeHandlers -]; -function refinePluginDefs(pluginInputs) { - var plugins = []; - for (var _i = 0, pluginInputs_1 = pluginInputs; _i < pluginInputs_1.length; _i++) { - var pluginInput = pluginInputs_1[_i]; - if (typeof pluginInput === 'string') { - var globalName = 'FullCalendar' + capitaliseFirstLetter(pluginInput); - if (!window[globalName]) { - console.warn('Plugin file not loaded for ' + pluginInput); - } - else { - plugins.push(window[globalName].default); // is an ES6 module - } - } - else { - plugins.push(pluginInput); - } - } - return INTERNAL_PLUGINS.concat(plugins); -} - -var RAW_EN_LOCALE = { - code: 'en', - week: { - dow: 0, - doy: 4 // 4 days need to be within the year to be considered the first week - }, - dir: 'ltr', - buttonText: { - prev: 'prev', - next: 'next', - prevYear: 'prev year', - nextYear: 'next year', - year: 'year', - today: 'today', - month: 'month', - week: 'week', - day: 'day', - list: 'list' - }, - weekLabel: 'W', - allDayText: 'all-day', - eventLimitText: 'more', - noEventsMessage: 'No events to display' -}; -function parseRawLocales(explicitRawLocales) { - var defaultCode = explicitRawLocales.length > 0 ? explicitRawLocales[0].code : 'en'; - var globalArray = window['FullCalendarLocalesAll'] || []; // from locales-all.js - var globalObject = window['FullCalendarLocales'] || {}; // from locales/*.js. keys are meaningless - var allRawLocales = globalArray.concat(// globalArray is low prio - hashValuesToArray(globalObject), // medium prio - explicitRawLocales // highest prio - ); - var rawLocaleMap = { - en: RAW_EN_LOCALE // necessary? - }; - for (var _i = 0, allRawLocales_1 = allRawLocales; _i < allRawLocales_1.length; _i++) { - var rawLocale = allRawLocales_1[_i]; - rawLocaleMap[rawLocale.code] = rawLocale; - } - return { - map: rawLocaleMap, - defaultCode: defaultCode - }; -} -function buildLocale(inputSingular, available) { - if (typeof inputSingular === 'object' && !Array.isArray(inputSingular)) { - return parseLocale(inputSingular.code, [inputSingular.code], inputSingular); - } - else { - return queryLocale(inputSingular, available); - } -} -function queryLocale(codeArg, available) { - var codes = [].concat(codeArg || []); // will convert to array - var raw = queryRawLocale(codes, available) || RAW_EN_LOCALE; - return parseLocale(codeArg, codes, raw); -} -function queryRawLocale(codes, available) { - for (var i = 0; i < codes.length; i++) { - var parts = codes[i].toLocaleLowerCase().split('-'); - for (var j = parts.length; j > 0; j--) { - var simpleId = parts.slice(0, j).join('-'); - if (available[simpleId]) { - return available[simpleId]; - } - } - } - return null; -} -function parseLocale(codeArg, codes, raw) { - var merged = mergeProps([RAW_EN_LOCALE, raw], ['buttonText']); - delete merged.code; // don't want this part of the options - var week = merged.week; - delete merged.week; - return { - codeArg: codeArg, - codes: codes, - week: week, - simpleNumberFormat: new Intl.NumberFormat(codeArg), - options: merged - }; -} - -var OptionsManager = /** @class */ (function () { - function OptionsManager(overrides) { - this.overrides = __assign({}, overrides); // make a copy - this.dynamicOverrides = {}; - this.compute(); - } - OptionsManager.prototype.mutate = function (updates, removals, isDynamic) { - var overrideHash = isDynamic ? this.dynamicOverrides : this.overrides; - __assign(overrideHash, updates); - for (var _i = 0, removals_1 = removals; _i < removals_1.length; _i++) { - var propName = removals_1[_i]; - delete overrideHash[propName]; - } - this.compute(); - }; - // Computes the flattened options hash for the calendar and assigns to `this.options`. - // Assumes this.overrides and this.dynamicOverrides have already been initialized. - OptionsManager.prototype.compute = function () { - // TODO: not a very efficient system - var locales = firstDefined(// explicit locale option given? - this.dynamicOverrides.locales, this.overrides.locales, globalDefaults.locales); - var locale = firstDefined(// explicit locales option given? - this.dynamicOverrides.locale, this.overrides.locale, globalDefaults.locale); - var available = parseRawLocales(locales); - var localeDefaults = buildLocale(locale || available.defaultCode, available.map).options; - var dir = firstDefined(// based on options computed so far, is direction RTL? - this.dynamicOverrides.dir, this.overrides.dir, localeDefaults.dir); - var dirDefaults = dir === 'rtl' ? rtlDefaults : {}; - this.dirDefaults = dirDefaults; - this.localeDefaults = localeDefaults; - this.computed = mergeOptions([ - globalDefaults, - dirDefaults, - localeDefaults, - this.overrides, - this.dynamicOverrides - ]); - }; - return OptionsManager; -}()); - -var calendarSystemClassMap = {}; -function registerCalendarSystem(name, theClass) { - calendarSystemClassMap[name] = theClass; -} -function createCalendarSystem(name) { - return new calendarSystemClassMap[name](); -} -var GregorianCalendarSystem = /** @class */ (function () { - function GregorianCalendarSystem() { - } - GregorianCalendarSystem.prototype.getMarkerYear = function (d) { - return d.getUTCFullYear(); - }; - GregorianCalendarSystem.prototype.getMarkerMonth = function (d) { - return d.getUTCMonth(); - }; - GregorianCalendarSystem.prototype.getMarkerDay = function (d) { - return d.getUTCDate(); - }; - GregorianCalendarSystem.prototype.arrayToMarker = function (arr) { - return arrayToUtcDate(arr); - }; - GregorianCalendarSystem.prototype.markerToArray = function (marker) { - return dateToUtcArray(marker); - }; - return GregorianCalendarSystem; -}()); -registerCalendarSystem('gregory', GregorianCalendarSystem); - -var ISO_RE = /^\s*(\d{4})(-(\d{2})(-(\d{2})([T ](\d{2}):(\d{2})(:(\d{2})(\.(\d+))?)?(Z|(([-+])(\d{2})(:?(\d{2}))?))?)?)?)?$/; -function parse(str) { - var m = ISO_RE.exec(str); - if (m) { - var marker = new Date(Date.UTC(Number(m[1]), m[3] ? Number(m[3]) - 1 : 0, Number(m[5] || 1), Number(m[7] || 0), Number(m[8] || 0), Number(m[10] || 0), m[12] ? Number('0.' + m[12]) * 1000 : 0)); - if (isValidDate(marker)) { - var timeZoneOffset = null; - if (m[13]) { - timeZoneOffset = (m[15] === '-' ? -1 : 1) * (Number(m[16] || 0) * 60 + - Number(m[18] || 0)); - } - return { - marker: marker, - isTimeUnspecified: !m[6], - timeZoneOffset: timeZoneOffset - }; - } - } - return null; -} - -var DateEnv = /** @class */ (function () { - function DateEnv(settings) { - var timeZone = this.timeZone = settings.timeZone; - var isNamedTimeZone = timeZone !== 'local' && timeZone !== 'UTC'; - if (settings.namedTimeZoneImpl && isNamedTimeZone) { - this.namedTimeZoneImpl = new settings.namedTimeZoneImpl(timeZone); - } - this.canComputeOffset = Boolean(!isNamedTimeZone || this.namedTimeZoneImpl); - this.calendarSystem = createCalendarSystem(settings.calendarSystem); - this.locale = settings.locale; - this.weekDow = settings.locale.week.dow; - this.weekDoy = settings.locale.week.doy; - if (settings.weekNumberCalculation === 'ISO') { - this.weekDow = 1; - this.weekDoy = 4; - } - if (typeof settings.firstDay === 'number') { - this.weekDow = settings.firstDay; - } - if (typeof settings.weekNumberCalculation === 'function') { - this.weekNumberFunc = settings.weekNumberCalculation; - } - this.weekLabel = settings.weekLabel != null ? settings.weekLabel : settings.locale.options.weekLabel; - this.cmdFormatter = settings.cmdFormatter; - } - // Creating / Parsing - DateEnv.prototype.createMarker = function (input) { - var meta = this.createMarkerMeta(input); - if (meta === null) { - return null; - } - return meta.marker; - }; - DateEnv.prototype.createNowMarker = function () { - if (this.canComputeOffset) { - return this.timestampToMarker(new Date().valueOf()); - } - else { - // if we can't compute the current date val for a timezone, - // better to give the current local date vals than UTC - return arrayToUtcDate(dateToLocalArray(new Date())); - } - }; - DateEnv.prototype.createMarkerMeta = function (input) { - if (typeof input === 'string') { - return this.parse(input); - } - var marker = null; - if (typeof input === 'number') { - marker = this.timestampToMarker(input); - } - else if (input instanceof Date) { - input = input.valueOf(); - if (!isNaN(input)) { - marker = this.timestampToMarker(input); - } - } - else if (Array.isArray(input)) { - marker = arrayToUtcDate(input); - } - if (marker === null || !isValidDate(marker)) { - return null; - } - return { marker: marker, isTimeUnspecified: false, forcedTzo: null }; - }; - DateEnv.prototype.parse = function (s) { - var parts = parse(s); - if (parts === null) { - return null; - } - var marker = parts.marker; - var forcedTzo = null; - if (parts.timeZoneOffset !== null) { - if (this.canComputeOffset) { - marker = this.timestampToMarker(marker.valueOf() - parts.timeZoneOffset * 60 * 1000); - } - else { - forcedTzo = parts.timeZoneOffset; - } - } - return { marker: marker, isTimeUnspecified: parts.isTimeUnspecified, forcedTzo: forcedTzo }; - }; - // Accessors - DateEnv.prototype.getYear = function (marker) { - return this.calendarSystem.getMarkerYear(marker); - }; - DateEnv.prototype.getMonth = function (marker) { - return this.calendarSystem.getMarkerMonth(marker); - }; - // Adding / Subtracting - DateEnv.prototype.add = function (marker, dur) { - var a = this.calendarSystem.markerToArray(marker); - a[0] += dur.years; - a[1] += dur.months; - a[2] += dur.days; - a[6] += dur.milliseconds; - return this.calendarSystem.arrayToMarker(a); - }; - DateEnv.prototype.subtract = function (marker, dur) { - var a = this.calendarSystem.markerToArray(marker); - a[0] -= dur.years; - a[1] -= dur.months; - a[2] -= dur.days; - a[6] -= dur.milliseconds; - return this.calendarSystem.arrayToMarker(a); - }; - DateEnv.prototype.addYears = function (marker, n) { - var a = this.calendarSystem.markerToArray(marker); - a[0] += n; - return this.calendarSystem.arrayToMarker(a); - }; - DateEnv.prototype.addMonths = function (marker, n) { - var a = this.calendarSystem.markerToArray(marker); - a[1] += n; - return this.calendarSystem.arrayToMarker(a); - }; - // Diffing Whole Units - DateEnv.prototype.diffWholeYears = function (m0, m1) { - var calendarSystem = this.calendarSystem; - if (timeAsMs(m0) === timeAsMs(m1) && - calendarSystem.getMarkerDay(m0) === calendarSystem.getMarkerDay(m1) && - calendarSystem.getMarkerMonth(m0) === calendarSystem.getMarkerMonth(m1)) { - return calendarSystem.getMarkerYear(m1) - calendarSystem.getMarkerYear(m0); - } - return null; - }; - DateEnv.prototype.diffWholeMonths = function (m0, m1) { - var calendarSystem = this.calendarSystem; - if (timeAsMs(m0) === timeAsMs(m1) && - calendarSystem.getMarkerDay(m0) === calendarSystem.getMarkerDay(m1)) { - return (calendarSystem.getMarkerMonth(m1) - calendarSystem.getMarkerMonth(m0)) + - (calendarSystem.getMarkerYear(m1) - calendarSystem.getMarkerYear(m0)) * 12; - } - return null; - }; - // Range / Duration - DateEnv.prototype.greatestWholeUnit = function (m0, m1) { - var n = this.diffWholeYears(m0, m1); - if (n !== null) { - return { unit: 'year', value: n }; - } - n = this.diffWholeMonths(m0, m1); - if (n !== null) { - return { unit: 'month', value: n }; - } - n = diffWholeWeeks(m0, m1); - if (n !== null) { - return { unit: 'week', value: n }; - } - n = diffWholeDays(m0, m1); - if (n !== null) { - return { unit: 'day', value: n }; - } - n = diffHours(m0, m1); - if (isInt(n)) { - return { unit: 'hour', value: n }; - } - n = diffMinutes(m0, m1); - if (isInt(n)) { - return { unit: 'minute', value: n }; - } - n = diffSeconds(m0, m1); - if (isInt(n)) { - return { unit: 'second', value: n }; - } - return { unit: 'millisecond', value: m1.valueOf() - m0.valueOf() }; - }; - DateEnv.prototype.countDurationsBetween = function (m0, m1, d) { - // TODO: can use greatestWholeUnit - var diff; - if (d.years) { - diff = this.diffWholeYears(m0, m1); - if (diff !== null) { - return diff / asRoughYears(d); - } - } - if (d.months) { - diff = this.diffWholeMonths(m0, m1); - if (diff !== null) { - return diff / asRoughMonths(d); - } - } - if (d.days) { - diff = diffWholeDays(m0, m1); - if (diff !== null) { - return diff / asRoughDays(d); - } - } - return (m1.valueOf() - m0.valueOf()) / asRoughMs(d); - }; - // Start-Of - DateEnv.prototype.startOf = function (m, unit) { - if (unit === 'year') { - return this.startOfYear(m); - } - else if (unit === 'month') { - return this.startOfMonth(m); - } - else if (unit === 'week') { - return this.startOfWeek(m); - } - else if (unit === 'day') { - return startOfDay(m); - } - else if (unit === 'hour') { - return startOfHour(m); - } - else if (unit === 'minute') { - return startOfMinute(m); - } - else if (unit === 'second') { - return startOfSecond(m); - } - }; - DateEnv.prototype.startOfYear = function (m) { - return this.calendarSystem.arrayToMarker([ - this.calendarSystem.getMarkerYear(m) - ]); - }; - DateEnv.prototype.startOfMonth = function (m) { - return this.calendarSystem.arrayToMarker([ - this.calendarSystem.getMarkerYear(m), - this.calendarSystem.getMarkerMonth(m) - ]); - }; - DateEnv.prototype.startOfWeek = function (m) { - return this.calendarSystem.arrayToMarker([ - this.calendarSystem.getMarkerYear(m), - this.calendarSystem.getMarkerMonth(m), - m.getUTCDate() - ((m.getUTCDay() - this.weekDow + 7) % 7) - ]); - }; - // Week Number - DateEnv.prototype.computeWeekNumber = function (marker) { - if (this.weekNumberFunc) { - return this.weekNumberFunc(this.toDate(marker)); - } - else { - return weekOfYear(marker, this.weekDow, this.weekDoy); - } - }; - // TODO: choke on timeZoneName: long - DateEnv.prototype.format = function (marker, formatter, dateOptions) { - if (dateOptions === void 0) { dateOptions = {}; } - return formatter.format({ - marker: marker, - timeZoneOffset: dateOptions.forcedTzo != null ? - dateOptions.forcedTzo : - this.offsetForMarker(marker) - }, this); - }; - DateEnv.prototype.formatRange = function (start, end, formatter, dateOptions) { - if (dateOptions === void 0) { dateOptions = {}; } - if (dateOptions.isEndExclusive) { - end = addMs(end, -1); - } - return formatter.formatRange({ - marker: start, - timeZoneOffset: dateOptions.forcedStartTzo != null ? - dateOptions.forcedStartTzo : - this.offsetForMarker(start) - }, { - marker: end, - timeZoneOffset: dateOptions.forcedEndTzo != null ? - dateOptions.forcedEndTzo : - this.offsetForMarker(end) - }, this); - }; - DateEnv.prototype.formatIso = function (marker, extraOptions) { - if (extraOptions === void 0) { extraOptions = {}; } - var timeZoneOffset = null; - if (!extraOptions.omitTimeZoneOffset) { - if (extraOptions.forcedTzo != null) { - timeZoneOffset = extraOptions.forcedTzo; - } - else { - timeZoneOffset = this.offsetForMarker(marker); - } - } - return buildIsoString(marker, timeZoneOffset, extraOptions.omitTime); - }; - // TimeZone - DateEnv.prototype.timestampToMarker = function (ms) { - if (this.timeZone === 'local') { - return arrayToUtcDate(dateToLocalArray(new Date(ms))); - } - else if (this.timeZone === 'UTC' || !this.namedTimeZoneImpl) { - return new Date(ms); - } - else { - return arrayToUtcDate(this.namedTimeZoneImpl.timestampToArray(ms)); - } - }; - DateEnv.prototype.offsetForMarker = function (m) { - if (this.timeZone === 'local') { - return -arrayToLocalDate(dateToUtcArray(m)).getTimezoneOffset(); // convert "inverse" offset to "normal" offset - } - else if (this.timeZone === 'UTC') { - return 0; - } - else if (this.namedTimeZoneImpl) { - return this.namedTimeZoneImpl.offsetForArray(dateToUtcArray(m)); - } - return null; - }; - // Conversion - DateEnv.prototype.toDate = function (m, forcedTzo) { - if (this.timeZone === 'local') { - return arrayToLocalDate(dateToUtcArray(m)); - } - else if (this.timeZone === 'UTC') { - return new Date(m.valueOf()); // make sure it's a copy - } - else if (!this.namedTimeZoneImpl) { - return new Date(m.valueOf() - (forcedTzo || 0)); - } - else { - return new Date(m.valueOf() - - this.namedTimeZoneImpl.offsetForArray(dateToUtcArray(m)) * 1000 * 60 // convert minutes -> ms - ); - } - }; - return DateEnv; -}()); - -var SIMPLE_SOURCE_PROPS = { - id: String, - allDayDefault: Boolean, - eventDataTransform: Function, - success: Function, - failure: Function -}; -var uid$2 = 0; -function doesSourceNeedRange(eventSource, calendar) { - var defs = calendar.pluginSystem.hooks.eventSourceDefs; - return !defs[eventSource.sourceDefId].ignoreRange; -} -function parseEventSource(raw, calendar) { - var defs = calendar.pluginSystem.hooks.eventSourceDefs; - for (var i = defs.length - 1; i >= 0; i--) { // later-added plugins take precedence - var def = defs[i]; - var meta = def.parseMeta(raw); - if (meta) { - var res = parseEventSourceProps(typeof raw === 'object' ? raw : {}, meta, i, calendar); - res._raw = raw; - return res; - } - } - return null; -} -function parseEventSourceProps(raw, meta, sourceDefId, calendar) { - var leftovers0 = {}; - var props = refineProps(raw, SIMPLE_SOURCE_PROPS, {}, leftovers0); - var leftovers1 = {}; - var ui = processUnscopedUiProps(leftovers0, calendar, leftovers1); - props.isFetching = false; - props.latestFetchId = ''; - props.fetchRange = null; - props.publicId = String(raw.id || ''); - props.sourceId = String(uid$2++); - props.sourceDefId = sourceDefId; - props.meta = meta; - props.ui = ui; - props.extendedProps = leftovers1; - return props; -} - -function reduceEventSources (eventSources, action, dateProfile, calendar) { - switch (action.type) { - case 'ADD_EVENT_SOURCES': // already parsed - return addSources(eventSources, action.sources, dateProfile ? dateProfile.activeRange : null, calendar); - case 'REMOVE_EVENT_SOURCE': - return removeSource(eventSources, action.sourceId); - case 'PREV': // TODO: how do we track all actions that affect dateProfile :( - case 'NEXT': - case 'SET_DATE': - case 'SET_VIEW_TYPE': - if (dateProfile) { - return fetchDirtySources(eventSources, dateProfile.activeRange, calendar); - } - else { - return eventSources; - } - case 'FETCH_EVENT_SOURCES': - case 'CHANGE_TIMEZONE': - return fetchSourcesByIds(eventSources, action.sourceIds ? - arrayToHash(action.sourceIds) : - excludeStaticSources(eventSources, calendar), dateProfile ? dateProfile.activeRange : null, calendar); - case 'RECEIVE_EVENTS': - case 'RECEIVE_EVENT_ERROR': - return receiveResponse(eventSources, action.sourceId, action.fetchId, action.fetchRange); - case 'REMOVE_ALL_EVENT_SOURCES': - return {}; - default: - return eventSources; - } -} -var uid$3 = 0; -function addSources(eventSourceHash, sources, fetchRange, calendar) { - var hash = {}; - for (var _i = 0, sources_1 = sources; _i < sources_1.length; _i++) { - var source = sources_1[_i]; - hash[source.sourceId] = source; - } - if (fetchRange) { - hash = fetchDirtySources(hash, fetchRange, calendar); - } - return __assign({}, eventSourceHash, hash); -} -function removeSource(eventSourceHash, sourceId) { - return filterHash(eventSourceHash, function (eventSource) { - return eventSource.sourceId !== sourceId; - }); -} -function fetchDirtySources(sourceHash, fetchRange, calendar) { - return fetchSourcesByIds(sourceHash, filterHash(sourceHash, function (eventSource) { - return isSourceDirty(eventSource, fetchRange, calendar); - }), fetchRange, calendar); -} -function isSourceDirty(eventSource, fetchRange, calendar) { - if (!doesSourceNeedRange(eventSource, calendar)) { - return !eventSource.latestFetchId; - } - else { - return !calendar.opt('lazyFetching') || - !eventSource.fetchRange || - fetchRange.start < eventSource.fetchRange.start || - fetchRange.end > eventSource.fetchRange.end; - } -} -function fetchSourcesByIds(prevSources, sourceIdHash, fetchRange, calendar) { - var nextSources = {}; - for (var sourceId in prevSources) { - var source = prevSources[sourceId]; - if (sourceIdHash[sourceId]) { - nextSources[sourceId] = fetchSource(source, fetchRange, calendar); - } - else { - nextSources[sourceId] = source; - } - } - return nextSources; -} -function fetchSource(eventSource, fetchRange, calendar) { - var sourceDef = calendar.pluginSystem.hooks.eventSourceDefs[eventSource.sourceDefId]; - var fetchId = String(uid$3++); - sourceDef.fetch({ - eventSource: eventSource, - calendar: calendar, - range: fetchRange - }, function (res) { - var rawEvents = res.rawEvents; - var calSuccess = calendar.opt('eventSourceSuccess'); - var calSuccessRes; - var sourceSuccessRes; - if (eventSource.success) { - sourceSuccessRes = eventSource.success(rawEvents, res.xhr); - } - if (calSuccess) { - calSuccessRes = calSuccess(rawEvents, res.xhr); - } - rawEvents = sourceSuccessRes || calSuccessRes || rawEvents; - calendar.dispatch({ - type: 'RECEIVE_EVENTS', - sourceId: eventSource.sourceId, - fetchId: fetchId, - fetchRange: fetchRange, - rawEvents: rawEvents - }); - }, function (error) { - var callFailure = calendar.opt('eventSourceFailure'); - console.warn(error.message, error); - if (eventSource.failure) { - eventSource.failure(error); - } - if (callFailure) { - callFailure(error); - } - calendar.dispatch({ - type: 'RECEIVE_EVENT_ERROR', - sourceId: eventSource.sourceId, - fetchId: fetchId, - fetchRange: fetchRange, - error: error - }); - }); - return __assign({}, eventSource, { isFetching: true, latestFetchId: fetchId }); -} -function receiveResponse(sourceHash, sourceId, fetchId, fetchRange) { - var _a; - var eventSource = sourceHash[sourceId]; - if (eventSource && // not already removed - fetchId === eventSource.latestFetchId) { - return __assign({}, sourceHash, (_a = {}, _a[sourceId] = __assign({}, eventSource, { isFetching: false, fetchRange: fetchRange }), _a)); - } - return sourceHash; -} -function excludeStaticSources(eventSources, calendar) { - return filterHash(eventSources, function (eventSource) { - return doesSourceNeedRange(eventSource, calendar); - }); -} - -var DateProfileGenerator = /** @class */ (function () { - function DateProfileGenerator(viewSpec, calendar) { - this.viewSpec = viewSpec; - this.options = viewSpec.options; - this.dateEnv = calendar.dateEnv; - this.calendar = calendar; - this.initHiddenDays(); - } - /* Date Range Computation - ------------------------------------------------------------------------------------------------------------------*/ - // Builds a structure with info about what the dates/ranges will be for the "prev" view. - DateProfileGenerator.prototype.buildPrev = function (currentDateProfile, currentDate) { - var dateEnv = this.dateEnv; - var prevDate = dateEnv.subtract(dateEnv.startOf(currentDate, currentDateProfile.currentRangeUnit), // important for start-of-month - currentDateProfile.dateIncrement); - return this.build(prevDate, -1); - }; - // Builds a structure with info about what the dates/ranges will be for the "next" view. - DateProfileGenerator.prototype.buildNext = function (currentDateProfile, currentDate) { - var dateEnv = this.dateEnv; - var nextDate = dateEnv.add(dateEnv.startOf(currentDate, currentDateProfile.currentRangeUnit), // important for start-of-month - currentDateProfile.dateIncrement); - return this.build(nextDate, 1); - }; - // Builds a structure holding dates/ranges for rendering around the given date. - // Optional direction param indicates whether the date is being incremented/decremented - // from its previous value. decremented = -1, incremented = 1 (default). - DateProfileGenerator.prototype.build = function (currentDate, direction, forceToValid) { - if (forceToValid === void 0) { forceToValid = false; } - var validRange; - var minTime = null; - var maxTime = null; - var currentInfo; - var isRangeAllDay; - var renderRange; - var activeRange; - var isValid; - validRange = this.buildValidRange(); - validRange = this.trimHiddenDays(validRange); - if (forceToValid) { - currentDate = constrainMarkerToRange(currentDate, validRange); - } - currentInfo = this.buildCurrentRangeInfo(currentDate, direction); - isRangeAllDay = /^(year|month|week|day)$/.test(currentInfo.unit); - renderRange = this.buildRenderRange(this.trimHiddenDays(currentInfo.range), currentInfo.unit, isRangeAllDay); - renderRange = this.trimHiddenDays(renderRange); - activeRange = renderRange; - if (!this.options.showNonCurrentDates) { - activeRange = intersectRanges(activeRange, currentInfo.range); - } - minTime = createDuration(this.options.minTime); - maxTime = createDuration(this.options.maxTime); - activeRange = this.adjustActiveRange(activeRange, minTime, maxTime); - activeRange = intersectRanges(activeRange, validRange); // might return null - // it's invalid if the originally requested date is not contained, - // or if the range is completely outside of the valid range. - isValid = rangesIntersect(currentInfo.range, validRange); - return { - // constraint for where prev/next operations can go and where events can be dragged/resized to. - // an object with optional start and end properties. - validRange: validRange, - // range the view is formally responsible for. - // for example, a month view might have 1st-31st, excluding padded dates - currentRange: currentInfo.range, - // name of largest unit being displayed, like "month" or "week" - currentRangeUnit: currentInfo.unit, - isRangeAllDay: isRangeAllDay, - // dates that display events and accept drag-n-drop - // will be `null` if no dates accept events - activeRange: activeRange, - // date range with a rendered skeleton - // includes not-active days that need some sort of DOM - renderRange: renderRange, - // Duration object that denotes the first visible time of any given day - minTime: minTime, - // Duration object that denotes the exclusive visible end time of any given day - maxTime: maxTime, - isValid: isValid, - // how far the current date will move for a prev/next operation - dateIncrement: this.buildDateIncrement(currentInfo.duration) - // pass a fallback (might be null) ^ - }; - }; - // Builds an object with optional start/end properties. - // Indicates the minimum/maximum dates to display. - // not responsible for trimming hidden days. - DateProfileGenerator.prototype.buildValidRange = function () { - return this.getRangeOption('validRange', this.calendar.getNow()) || - { start: null, end: null }; // completely open-ended - }; - // Builds a structure with info about the "current" range, the range that is - // highlighted as being the current month for example. - // See build() for a description of `direction`. - // Guaranteed to have `range` and `unit` properties. `duration` is optional. - DateProfileGenerator.prototype.buildCurrentRangeInfo = function (date, direction) { - var _a = this, viewSpec = _a.viewSpec, dateEnv = _a.dateEnv; - var duration = null; - var unit = null; - var range = null; - var dayCount; - if (viewSpec.duration) { - duration = viewSpec.duration; - unit = viewSpec.durationUnit; - range = this.buildRangeFromDuration(date, direction, duration, unit); - } - else if ((dayCount = this.options.dayCount)) { - unit = 'day'; - range = this.buildRangeFromDayCount(date, direction, dayCount); - } - else if ((range = this.buildCustomVisibleRange(date))) { - unit = dateEnv.greatestWholeUnit(range.start, range.end).unit; - } - else { - duration = this.getFallbackDuration(); - unit = greatestDurationDenominator(duration).unit; - range = this.buildRangeFromDuration(date, direction, duration, unit); - } - return { duration: duration, unit: unit, range: range }; - }; - DateProfileGenerator.prototype.getFallbackDuration = function () { - return createDuration({ day: 1 }); - }; - // Returns a new activeRange to have time values (un-ambiguate) - // minTime or maxTime causes the range to expand. - DateProfileGenerator.prototype.adjustActiveRange = function (range, minTime, maxTime) { - var dateEnv = this.dateEnv; - var start = range.start; - var end = range.end; - if (this.viewSpec.class.prototype.usesMinMaxTime) { - // expand active range if minTime is negative (why not when positive?) - if (asRoughDays(minTime) < 0) { - start = startOfDay(start); // necessary? - start = dateEnv.add(start, minTime); - } - // expand active range if maxTime is beyond one day (why not when positive?) - if (asRoughDays(maxTime) > 1) { - end = startOfDay(end); // necessary? - end = addDays(end, -1); - end = dateEnv.add(end, maxTime); - } - } - return { start: start, end: end }; - }; - // Builds the "current" range when it is specified as an explicit duration. - // `unit` is the already-computed greatestDurationDenominator unit of duration. - DateProfileGenerator.prototype.buildRangeFromDuration = function (date, direction, duration, unit) { - var dateEnv = this.dateEnv; - var alignment = this.options.dateAlignment; - var dateIncrementInput; - var dateIncrementDuration; - var start; - var end; - var res; - // compute what the alignment should be - if (!alignment) { - dateIncrementInput = this.options.dateIncrement; - if (dateIncrementInput) { - dateIncrementDuration = createDuration(dateIncrementInput); - // use the smaller of the two units - if (asRoughMs(dateIncrementDuration) < asRoughMs(duration)) { - alignment = greatestDurationDenominator(dateIncrementDuration, !getWeeksFromInput(dateIncrementInput)).unit; - } - else { - alignment = unit; - } - } - else { - alignment = unit; - } - } - // if the view displays a single day or smaller - if (asRoughDays(duration) <= 1) { - if (this.isHiddenDay(start)) { - start = this.skipHiddenDays(start, direction); - start = startOfDay(start); - } - } - function computeRes() { - start = dateEnv.startOf(date, alignment); - end = dateEnv.add(start, duration); - res = { start: start, end: end }; - } - computeRes(); - // if range is completely enveloped by hidden days, go past the hidden days - if (!this.trimHiddenDays(res)) { - date = this.skipHiddenDays(date, direction); - computeRes(); - } - return res; - }; - // Builds the "current" range when a dayCount is specified. - DateProfileGenerator.prototype.buildRangeFromDayCount = function (date, direction, dayCount) { - var dateEnv = this.dateEnv; - var customAlignment = this.options.dateAlignment; - var runningCount = 0; - var start = date; - var end; - if (customAlignment) { - start = dateEnv.startOf(start, customAlignment); - } - start = startOfDay(start); - start = this.skipHiddenDays(start, direction); - end = start; - do { - end = addDays(end, 1); - if (!this.isHiddenDay(end)) { - runningCount++; - } - } while (runningCount < dayCount); - return { start: start, end: end }; - }; - // Builds a normalized range object for the "visible" range, - // which is a way to define the currentRange and activeRange at the same time. - DateProfileGenerator.prototype.buildCustomVisibleRange = function (date) { - var dateEnv = this.dateEnv; - var visibleRange = this.getRangeOption('visibleRange', dateEnv.toDate(date)); - if (visibleRange && (visibleRange.start == null || visibleRange.end == null)) { - return null; - } - return visibleRange; - }; - // Computes the range that will represent the element/cells for *rendering*, - // but which may have voided days/times. - // not responsible for trimming hidden days. - DateProfileGenerator.prototype.buildRenderRange = function (currentRange, currentRangeUnit, isRangeAllDay) { - return currentRange; - }; - // Compute the duration value that should be added/substracted to the current date - // when a prev/next operation happens. - DateProfileGenerator.prototype.buildDateIncrement = function (fallback) { - var dateIncrementInput = this.options.dateIncrement; - var customAlignment; - if (dateIncrementInput) { - return createDuration(dateIncrementInput); - } - else if ((customAlignment = this.options.dateAlignment)) { - return createDuration(1, customAlignment); - } - else if (fallback) { - return fallback; - } - else { - return createDuration({ days: 1 }); - } - }; - // Arguments after name will be forwarded to a hypothetical function value - // WARNING: passed-in arguments will be given to generator functions as-is and can cause side-effects. - // Always clone your objects if you fear mutation. - DateProfileGenerator.prototype.getRangeOption = function (name) { - var otherArgs = []; - for (var _i = 1; _i < arguments.length; _i++) { - otherArgs[_i - 1] = arguments[_i]; - } - var val = this.options[name]; - if (typeof val === 'function') { - val = val.apply(null, otherArgs); - } - if (val) { - val = parseRange(val, this.dateEnv); - } - if (val) { - val = computeVisibleDayRange(val); - } - return val; - }; - /* Hidden Days - ------------------------------------------------------------------------------------------------------------------*/ - // Initializes internal variables related to calculating hidden days-of-week - DateProfileGenerator.prototype.initHiddenDays = function () { - var hiddenDays = this.options.hiddenDays || []; // array of day-of-week indices that are hidden - var isHiddenDayHash = []; // is the day-of-week hidden? (hash with day-of-week-index -> bool) - var dayCnt = 0; - var i; - if (this.options.weekends === false) { - hiddenDays.push(0, 6); // 0=sunday, 6=saturday - } - for (i = 0; i < 7; i++) { - if (!(isHiddenDayHash[i] = hiddenDays.indexOf(i) !== -1)) { - dayCnt++; - } - } - if (!dayCnt) { - throw new Error('invalid hiddenDays'); // all days were hidden? bad. - } - this.isHiddenDayHash = isHiddenDayHash; - }; - // Remove days from the beginning and end of the range that are computed as hidden. - // If the whole range is trimmed off, returns null - DateProfileGenerator.prototype.trimHiddenDays = function (range) { - var start = range.start; - var end = range.end; - if (start) { - start = this.skipHiddenDays(start); - } - if (end) { - end = this.skipHiddenDays(end, -1, true); - } - if (start == null || end == null || start < end) { - return { start: start, end: end }; - } - return null; - }; - // Is the current day hidden? - // `day` is a day-of-week index (0-6), or a Date (used for UTC) - DateProfileGenerator.prototype.isHiddenDay = function (day) { - if (day instanceof Date) { - day = day.getUTCDay(); - } - return this.isHiddenDayHash[day]; - }; - // Incrementing the current day until it is no longer a hidden day, returning a copy. - // DOES NOT CONSIDER validRange! - // If the initial value of `date` is not a hidden day, don't do anything. - // Pass `isExclusive` as `true` if you are dealing with an end date. - // `inc` defaults to `1` (increment one day forward each time) - DateProfileGenerator.prototype.skipHiddenDays = function (date, inc, isExclusive) { - if (inc === void 0) { inc = 1; } - if (isExclusive === void 0) { isExclusive = false; } - while (this.isHiddenDayHash[(date.getUTCDay() + (isExclusive ? inc : 0) + 7) % 7]) { - date = addDays(date, inc); - } - return date; - }; - return DateProfileGenerator; -}()); -// TODO: find a way to avoid comparing DateProfiles. it's tedious -function isDateProfilesEqual(p0, p1) { - return rangesEqual(p0.validRange, p1.validRange) && - rangesEqual(p0.activeRange, p1.activeRange) && - rangesEqual(p0.renderRange, p1.renderRange) && - durationsEqual(p0.minTime, p1.minTime) && - durationsEqual(p0.maxTime, p1.maxTime); - /* - TODO: compare more? - currentRange: DateRange - currentRangeUnit: string - isRangeAllDay: boolean - isValid: boolean - dateIncrement: Duration - */ -} - -function reduce (state, action, calendar) { - var viewType = reduceViewType(state.viewType, action); - var dateProfile = reduceDateProfile(state.dateProfile, action, state.currentDate, viewType, calendar); - var eventSources = reduceEventSources(state.eventSources, action, dateProfile, calendar); - var nextState = __assign({}, state, { viewType: viewType, - dateProfile: dateProfile, currentDate: reduceCurrentDate(state.currentDate, action, dateProfile), eventSources: eventSources, eventStore: reduceEventStore(state.eventStore, action, eventSources, dateProfile, calendar), dateSelection: reduceDateSelection(state.dateSelection, action, calendar), eventSelection: reduceSelectedEvent(state.eventSelection, action), eventDrag: reduceEventDrag(state.eventDrag, action, eventSources, calendar), eventResize: reduceEventResize(state.eventResize, action, eventSources, calendar), eventSourceLoadingLevel: computeLoadingLevel(eventSources), loadingLevel: computeLoadingLevel(eventSources) }); - for (var _i = 0, _a = calendar.pluginSystem.hooks.reducers; _i < _a.length; _i++) { - var reducerFunc = _a[_i]; - nextState = reducerFunc(nextState, action, calendar); - } - // console.log(action.type, nextState) - return nextState; -} -function reduceViewType(currentViewType, action) { - switch (action.type) { - case 'SET_VIEW_TYPE': - return action.viewType; - default: - return currentViewType; - } -} -function reduceDateProfile(currentDateProfile, action, currentDate, viewType, calendar) { - var newDateProfile; - switch (action.type) { - case 'PREV': - newDateProfile = calendar.dateProfileGenerators[viewType].buildPrev(currentDateProfile, currentDate); - break; - case 'NEXT': - newDateProfile = calendar.dateProfileGenerators[viewType].buildNext(currentDateProfile, currentDate); - break; - case 'SET_DATE': - if (!currentDateProfile.activeRange || - !rangeContainsMarker(currentDateProfile.currentRange, action.dateMarker)) { - newDateProfile = calendar.dateProfileGenerators[viewType].build(action.dateMarker, undefined, true // forceToValid - ); - } - break; - case 'SET_VIEW_TYPE': - var generator = calendar.dateProfileGenerators[viewType]; - if (!generator) { - throw new Error(viewType ? - 'The FullCalendar view "' + viewType + '" does not exist. Make sure your plugins are loaded correctly.' : - 'No available FullCalendar view plugins.'); - } - newDateProfile = generator.build(action.dateMarker || currentDate, undefined, true // forceToValid - ); - break; - } - if (newDateProfile && - newDateProfile.isValid && - !(currentDateProfile && isDateProfilesEqual(currentDateProfile, newDateProfile))) { - return newDateProfile; - } - else { - return currentDateProfile; - } -} -function reduceCurrentDate(currentDate, action, dateProfile) { - switch (action.type) { - case 'PREV': - case 'NEXT': - if (!rangeContainsMarker(dateProfile.currentRange, currentDate)) { - return dateProfile.currentRange.start; - } - else { - return currentDate; - } - case 'SET_DATE': - case 'SET_VIEW_TYPE': - var newDate = action.dateMarker || currentDate; - if (dateProfile.activeRange && !rangeContainsMarker(dateProfile.activeRange, newDate)) { - return dateProfile.currentRange.start; - } - else { - return newDate; - } - default: - return currentDate; - } -} -function reduceDateSelection(currentSelection, action, calendar) { - switch (action.type) { - case 'SELECT_DATES': - return action.selection; - case 'UNSELECT_DATES': - return null; - default: - return currentSelection; - } -} -function reduceSelectedEvent(currentInstanceId, action) { - switch (action.type) { - case 'SELECT_EVENT': - return action.eventInstanceId; - case 'UNSELECT_EVENT': - return ''; - default: - return currentInstanceId; - } -} -function reduceEventDrag(currentDrag, action, sources, calendar) { - switch (action.type) { - case 'SET_EVENT_DRAG': - var newDrag = action.state; - return { - affectedEvents: newDrag.affectedEvents, - mutatedEvents: newDrag.mutatedEvents, - isEvent: newDrag.isEvent, - origSeg: newDrag.origSeg - }; - case 'UNSET_EVENT_DRAG': - return null; - default: - return currentDrag; - } -} -function reduceEventResize(currentResize, action, sources, calendar) { - switch (action.type) { - case 'SET_EVENT_RESIZE': - var newResize = action.state; - return { - affectedEvents: newResize.affectedEvents, - mutatedEvents: newResize.mutatedEvents, - isEvent: newResize.isEvent, - origSeg: newResize.origSeg - }; - case 'UNSET_EVENT_RESIZE': - return null; - default: - return currentResize; - } -} -function computeLoadingLevel(eventSources) { - var cnt = 0; - for (var sourceId in eventSources) { - if (eventSources[sourceId].isFetching) { - cnt++; - } - } - return cnt; -} - -var STANDARD_PROPS = { - start: null, - end: null, - allDay: Boolean -}; -function parseDateSpan(raw, dateEnv, defaultDuration) { - var span = parseOpenDateSpan(raw, dateEnv); - var range = span.range; - if (!range.start) { - return null; - } - if (!range.end) { - if (defaultDuration == null) { - return null; - } - else { - range.end = dateEnv.add(range.start, defaultDuration); - } - } - return span; -} -/* -TODO: somehow combine with parseRange? -Will return null if the start/end props were present but parsed invalidly. -*/ -function parseOpenDateSpan(raw, dateEnv) { - var leftovers = {}; - var standardProps = refineProps(raw, STANDARD_PROPS, {}, leftovers); - var startMeta = standardProps.start ? dateEnv.createMarkerMeta(standardProps.start) : null; - var endMeta = standardProps.end ? dateEnv.createMarkerMeta(standardProps.end) : null; - var allDay = standardProps.allDay; - if (allDay == null) { - allDay = (startMeta && startMeta.isTimeUnspecified) && - (!endMeta || endMeta.isTimeUnspecified); - } - // use this leftover object as the selection object - leftovers.range = { - start: startMeta ? startMeta.marker : null, - end: endMeta ? endMeta.marker : null - }; - leftovers.allDay = allDay; - return leftovers; -} -function isDateSpansEqual(span0, span1) { - return rangesEqual(span0.range, span1.range) && - span0.allDay === span1.allDay && - isSpanPropsEqual(span0, span1); -} -// the NON-DATE-RELATED props -function isSpanPropsEqual(span0, span1) { - for (var propName in span1) { - if (propName !== 'range' && propName !== 'allDay') { - if (span0[propName] !== span1[propName]) { - return false; - } - } - } - // are there any props that span0 has that span1 DOESN'T have? - // both have range/allDay, so no need to special-case. - for (var propName in span0) { - if (!(propName in span1)) { - return false; - } - } - return true; -} -function buildDateSpanApi(span, dateEnv) { - return { - start: dateEnv.toDate(span.range.start), - end: dateEnv.toDate(span.range.end), - startStr: dateEnv.formatIso(span.range.start, { omitTime: span.allDay }), - endStr: dateEnv.formatIso(span.range.end, { omitTime: span.allDay }), - allDay: span.allDay - }; -} -function buildDatePointApi(span, dateEnv) { - return { - date: dateEnv.toDate(span.range.start), - dateStr: dateEnv.formatIso(span.range.start, { omitTime: span.allDay }), - allDay: span.allDay - }; -} -function fabricateEventRange(dateSpan, eventUiBases, calendar) { - var def = parseEventDef({ editable: false }, '', // sourceId - dateSpan.allDay, true, // hasEnd - calendar); - return { - def: def, - ui: compileEventUi(def, eventUiBases), - instance: createEventInstance(def.defId, dateSpan.range), - range: dateSpan.range, - isStart: true, - isEnd: true - }; -} - -function compileViewDefs(defaultConfigs, overrideConfigs) { - var hash = {}; - var viewType; - for (viewType in defaultConfigs) { - ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs); - } - for (viewType in overrideConfigs) { - ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs); - } - return hash; -} -function ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs) { - if (hash[viewType]) { - return hash[viewType]; - } - var viewDef = buildViewDef(viewType, hash, defaultConfigs, overrideConfigs); - if (viewDef) { - hash[viewType] = viewDef; - } - return viewDef; -} -function buildViewDef(viewType, hash, defaultConfigs, overrideConfigs) { - var defaultConfig = defaultConfigs[viewType]; - var overrideConfig = overrideConfigs[viewType]; - var queryProp = function (name) { - return (defaultConfig && defaultConfig[name] !== null) ? defaultConfig[name] : - ((overrideConfig && overrideConfig[name] !== null) ? overrideConfig[name] : null); - }; - var theClass = queryProp('class'); - var superType = queryProp('superType'); - if (!superType && theClass) { - superType = - findViewNameBySubclass(theClass, overrideConfigs) || - findViewNameBySubclass(theClass, defaultConfigs); - } - var superDef = null; - if (superType) { - if (superType === viewType) { - throw new Error('Can\'t have a custom view type that references itself'); - } - superDef = ensureViewDef(superType, hash, defaultConfigs, overrideConfigs); - } - if (!theClass && superDef) { - theClass = superDef.class; - } - if (!theClass) { - return null; // don't throw a warning, might be settings for a single-unit view - } - return { - type: viewType, - class: theClass, - defaults: __assign({}, (superDef ? superDef.defaults : {}), (defaultConfig ? defaultConfig.options : {})), - overrides: __assign({}, (superDef ? superDef.overrides : {}), (overrideConfig ? overrideConfig.options : {})) - }; -} -function findViewNameBySubclass(viewSubclass, configs) { - var superProto = Object.getPrototypeOf(viewSubclass.prototype); - for (var viewType in configs) { - var parsed = configs[viewType]; - // need DIRECT subclass, so instanceof won't do it - if (parsed.class && parsed.class.prototype === superProto) { - return viewType; - } - } - return ''; -} - -function parseViewConfigs(inputs) { - return mapHash(inputs, parseViewConfig); -} -var VIEW_DEF_PROPS = { - type: String, - class: null -}; -function parseViewConfig(input) { - if (typeof input === 'function') { - input = { class: input }; - } - var options = {}; - var props = refineProps(input, VIEW_DEF_PROPS, {}, options); - return { - superType: props.type, - class: props.class, - options: options - }; -} - -function buildViewSpecs(defaultInputs, optionsManager) { - var defaultConfigs = parseViewConfigs(defaultInputs); - var overrideConfigs = parseViewConfigs(optionsManager.overrides.views); - var viewDefs = compileViewDefs(defaultConfigs, overrideConfigs); - return mapHash(viewDefs, function (viewDef) { - return buildViewSpec(viewDef, overrideConfigs, optionsManager); - }); -} -function buildViewSpec(viewDef, overrideConfigs, optionsManager) { - var durationInput = viewDef.overrides.duration || - viewDef.defaults.duration || - optionsManager.dynamicOverrides.duration || - optionsManager.overrides.duration; - var duration = null; - var durationUnit = ''; - var singleUnit = ''; - var singleUnitOverrides = {}; - if (durationInput) { - duration = createDuration(durationInput); - if (duration) { // valid? - var denom = greatestDurationDenominator(duration, !getWeeksFromInput(durationInput)); - durationUnit = denom.unit; - if (denom.value === 1) { - singleUnit = durationUnit; - singleUnitOverrides = overrideConfigs[durationUnit] ? overrideConfigs[durationUnit].options : {}; - } - } - } - var queryButtonText = function (options) { - var buttonTextMap = options.buttonText || {}; - var buttonTextKey = viewDef.defaults.buttonTextKey; - if (buttonTextKey != null && buttonTextMap[buttonTextKey] != null) { - return buttonTextMap[buttonTextKey]; - } - if (buttonTextMap[viewDef.type] != null) { - return buttonTextMap[viewDef.type]; - } - if (buttonTextMap[singleUnit] != null) { - return buttonTextMap[singleUnit]; - } - }; - return { - type: viewDef.type, - class: viewDef.class, - duration: duration, - durationUnit: durationUnit, - singleUnit: singleUnit, - options: __assign({}, globalDefaults, viewDef.defaults, optionsManager.dirDefaults, optionsManager.localeDefaults, optionsManager.overrides, singleUnitOverrides, viewDef.overrides, optionsManager.dynamicOverrides), - buttonTextOverride: queryButtonText(optionsManager.dynamicOverrides) || - queryButtonText(optionsManager.overrides) || // constructor-specified buttonText lookup hash takes precedence - viewDef.overrides.buttonText, - buttonTextDefault: queryButtonText(optionsManager.localeDefaults) || - queryButtonText(optionsManager.dirDefaults) || - viewDef.defaults.buttonText || - queryButtonText(globalDefaults) || - viewDef.type // fall back to given view name - }; -} - -var Toolbar = /** @class */ (function (_super) { - __extends(Toolbar, _super); - function Toolbar(context, extraClassName) { - var _this = _super.call(this, context) || this; - _this._renderLayout = memoizeRendering(_this.renderLayout, _this.unrenderLayout); - _this._updateTitle = memoizeRendering(_this.updateTitle, null, [_this._renderLayout]); - _this._updateActiveButton = memoizeRendering(_this.updateActiveButton, null, [_this._renderLayout]); - _this._updateToday = memoizeRendering(_this.updateToday, null, [_this._renderLayout]); - _this._updatePrev = memoizeRendering(_this.updatePrev, null, [_this._renderLayout]); - _this._updateNext = memoizeRendering(_this.updateNext, null, [_this._renderLayout]); - _this.el = createElement('div', { className: 'fc-toolbar ' + extraClassName }); - return _this; - } - Toolbar.prototype.destroy = function () { - _super.prototype.destroy.call(this); - this._renderLayout.unrender(); // should unrender everything else - removeElement(this.el); - }; - Toolbar.prototype.render = function (props) { - this._renderLayout(props.layout); - this._updateTitle(props.title); - this._updateActiveButton(props.activeButton); - this._updateToday(props.isTodayEnabled); - this._updatePrev(props.isPrevEnabled); - this._updateNext(props.isNextEnabled); - }; - Toolbar.prototype.renderLayout = function (layout) { - var el = this.el; - this.viewsWithButtons = []; - appendToElement(el, this.renderSection('left', layout.left)); - appendToElement(el, this.renderSection('center', layout.center)); - appendToElement(el, this.renderSection('right', layout.right)); - }; - Toolbar.prototype.unrenderLayout = function () { - this.el.innerHTML = ''; - }; - Toolbar.prototype.renderSection = function (position, buttonStr) { - var _this = this; - var _a = this, theme = _a.theme, calendar = _a.calendar; - var optionsManager = calendar.optionsManager; - var viewSpecs = calendar.viewSpecs; - var sectionEl = createElement('div', { className: 'fc-' + position }); - var calendarCustomButtons = optionsManager.computed.customButtons || {}; - var calendarButtonTextOverrides = optionsManager.overrides.buttonText || {}; - var calendarButtonText = optionsManager.computed.buttonText || {}; - if (buttonStr) { - buttonStr.split(' ').forEach(function (buttonGroupStr, i) { - var groupChildren = []; - var isOnlyButtons = true; - var groupEl; - buttonGroupStr.split(',').forEach(function (buttonName, j) { - var customButtonProps; - var viewSpec; - var buttonClick; - var buttonIcon; // only one of these will be set - var buttonText; // " - var buttonInnerHtml; - var buttonClasses; - var buttonEl; - var buttonAriaAttr; - if (buttonName === 'title') { - groupChildren.push(htmlToElement('

 

')); // we always want it to take up height - isOnlyButtons = false; - } - else { - if ((customButtonProps = calendarCustomButtons[buttonName])) { - buttonClick = function (ev) { - if (customButtonProps.click) { - customButtonProps.click.call(buttonEl, ev); - } - }; - (buttonIcon = theme.getCustomButtonIconClass(customButtonProps)) || - (buttonIcon = theme.getIconClass(buttonName)) || - (buttonText = customButtonProps.text); - } - else if ((viewSpec = viewSpecs[buttonName])) { - _this.viewsWithButtons.push(buttonName); - buttonClick = function () { - calendar.changeView(buttonName); - }; - (buttonText = viewSpec.buttonTextOverride) || - (buttonIcon = theme.getIconClass(buttonName)) || - (buttonText = viewSpec.buttonTextDefault); - } - else if (calendar[buttonName]) { // a calendar method - buttonClick = function () { - calendar[buttonName](); - }; - (buttonText = calendarButtonTextOverrides[buttonName]) || - (buttonIcon = theme.getIconClass(buttonName)) || - (buttonText = calendarButtonText[buttonName]); - // ^ everything else is considered default - } - if (buttonClick) { - buttonClasses = [ - 'fc-' + buttonName + '-button', - theme.getClass('button') - ]; - if (buttonText) { - buttonInnerHtml = htmlEscape(buttonText); - buttonAriaAttr = ''; - } - else if (buttonIcon) { - buttonInnerHtml = ""; - buttonAriaAttr = ' aria-label="' + buttonName + '"'; - } - buttonEl = htmlToElement(// type="button" so that it doesn't submit a form - ''); - buttonEl.addEventListener('click', buttonClick); - groupChildren.push(buttonEl); - } - } - }); - if (groupChildren.length > 1) { - groupEl = document.createElement('div'); - var buttonGroupClassName = theme.getClass('buttonGroup'); - if (isOnlyButtons && buttonGroupClassName) { - groupEl.classList.add(buttonGroupClassName); - } - appendToElement(groupEl, groupChildren); - sectionEl.appendChild(groupEl); - } - else { - appendToElement(sectionEl, groupChildren); // 1 or 0 children - } - }); - } - return sectionEl; - }; - Toolbar.prototype.updateToday = function (isTodayEnabled) { - this.toggleButtonEnabled('today', isTodayEnabled); - }; - Toolbar.prototype.updatePrev = function (isPrevEnabled) { - this.toggleButtonEnabled('prev', isPrevEnabled); - }; - Toolbar.prototype.updateNext = function (isNextEnabled) { - this.toggleButtonEnabled('next', isNextEnabled); - }; - Toolbar.prototype.updateTitle = function (text) { - findElements(this.el, 'h2').forEach(function (titleEl) { - titleEl.innerText = text; - }); - }; - Toolbar.prototype.updateActiveButton = function (buttonName) { - var className = this.theme.getClass('buttonActive'); - findElements(this.el, 'button').forEach(function (buttonEl) { - if (buttonName && buttonEl.classList.contains('fc-' + buttonName + '-button')) { - buttonEl.classList.add(className); - } - else { - buttonEl.classList.remove(className); - } - }); - }; - Toolbar.prototype.toggleButtonEnabled = function (buttonName, bool) { - findElements(this.el, '.fc-' + buttonName + '-button').forEach(function (buttonEl) { - buttonEl.disabled = !bool; - }); - }; - return Toolbar; -}(Component)); - -var CalendarComponent = /** @class */ (function (_super) { - __extends(CalendarComponent, _super); - function CalendarComponent(context, el) { - var _this = _super.call(this, context) || this; - _this._renderToolbars = memoizeRendering(_this.renderToolbars); - _this.buildViewPropTransformers = memoize(buildViewPropTransformers); - _this.el = el; - prependToElement(el, _this.contentEl = createElement('div', { className: 'fc-view-container' })); - var calendar = _this.calendar; - for (var _i = 0, _a = calendar.pluginSystem.hooks.viewContainerModifiers; _i < _a.length; _i++) { - var modifyViewContainer = _a[_i]; - modifyViewContainer(_this.contentEl, calendar); - } - _this.toggleElClassNames(true); - _this.computeTitle = memoize(computeTitle); - _this.parseBusinessHours = memoize(function (input) { - return parseBusinessHours(input, _this.calendar); - }); - return _this; - } - CalendarComponent.prototype.destroy = function () { - if (this.header) { - this.header.destroy(); - } - if (this.footer) { - this.footer.destroy(); - } - if (this.view) { - this.view.destroy(); - } - removeElement(this.contentEl); - this.toggleElClassNames(false); - _super.prototype.destroy.call(this); - }; - CalendarComponent.prototype.toggleElClassNames = function (bool) { - var classList = this.el.classList; - var dirClassName = 'fc-' + this.opt('dir'); - var themeClassName = this.theme.getClass('widget'); - if (bool) { - classList.add('fc'); - classList.add(dirClassName); - classList.add(themeClassName); - } - else { - classList.remove('fc'); - classList.remove(dirClassName); - classList.remove(themeClassName); - } - }; - CalendarComponent.prototype.render = function (props) { - this.freezeHeight(); - var title = this.computeTitle(props.dateProfile, props.viewSpec.options); - this._renderToolbars(props.viewSpec, props.dateProfile, props.currentDate, props.dateProfileGenerator, title); - this.renderView(props, title); - this.updateSize(); - this.thawHeight(); - }; - CalendarComponent.prototype.renderToolbars = function (viewSpec, dateProfile, currentDate, dateProfileGenerator, title) { - var headerLayout = this.opt('header'); - var footerLayout = this.opt('footer'); - var now = this.calendar.getNow(); - var todayInfo = dateProfileGenerator.build(now); - var prevInfo = dateProfileGenerator.buildPrev(dateProfile, currentDate); - var nextInfo = dateProfileGenerator.buildNext(dateProfile, currentDate); - var toolbarProps = { - title: title, - activeButton: viewSpec.type, - isTodayEnabled: todayInfo.isValid && !rangeContainsMarker(dateProfile.currentRange, now), - isPrevEnabled: prevInfo.isValid, - isNextEnabled: nextInfo.isValid - }; - if (headerLayout) { - if (!this.header) { - this.header = new Toolbar(this.context, 'fc-header-toolbar'); - prependToElement(this.el, this.header.el); - } - this.header.receiveProps(__assign({ layout: headerLayout }, toolbarProps)); - } - else if (this.header) { - this.header.destroy(); - this.header = null; - } - if (footerLayout) { - if (!this.footer) { - this.footer = new Toolbar(this.context, 'fc-footer-toolbar'); - appendToElement(this.el, this.footer.el); - } - this.footer.receiveProps(__assign({ layout: footerLayout }, toolbarProps)); - } - else if (this.footer) { - this.footer.destroy(); - this.footer = null; - } - }; - CalendarComponent.prototype.renderView = function (props, title) { - var view = this.view; - var viewSpec = props.viewSpec, dateProfileGenerator = props.dateProfileGenerator; - if (!view || view.viewSpec !== viewSpec) { - if (view) { - view.destroy(); - } - view = this.view = new viewSpec['class']({ - calendar: this.calendar, - view: null, - dateEnv: this.dateEnv, - theme: this.theme, - options: viewSpec.options - }, viewSpec, dateProfileGenerator, this.contentEl); - } - else { - view.addScroll(view.queryScroll()); - } - view.title = title; // for the API - var viewProps = { - dateProfile: props.dateProfile, - businessHours: this.parseBusinessHours(viewSpec.options.businessHours), - eventStore: props.eventStore, - eventUiBases: props.eventUiBases, - dateSelection: props.dateSelection, - eventSelection: props.eventSelection, - eventDrag: props.eventDrag, - eventResize: props.eventResize - }; - var transformers = this.buildViewPropTransformers(this.calendar.pluginSystem.hooks.viewPropsTransformers); - for (var _i = 0, transformers_1 = transformers; _i < transformers_1.length; _i++) { - var transformer = transformers_1[_i]; - __assign(viewProps, transformer.transform(viewProps, viewSpec, props, view)); - } - view.receiveProps(viewProps); - }; - // Sizing - // ----------------------------------------------------------------------------------------------------------------- - CalendarComponent.prototype.updateSize = function (isResize) { - if (isResize === void 0) { isResize = false; } - var view = this.view; - if (isResize) { - view.addScroll(view.queryScroll()); - } - if (isResize || this.isHeightAuto == null) { - this.computeHeightVars(); - } - view.updateSize(isResize, this.viewHeight, this.isHeightAuto); - view.updateNowIndicator(); // we need to guarantee this will run after updateSize - view.popScroll(isResize); - }; - CalendarComponent.prototype.computeHeightVars = function () { - var calendar = this.calendar; // yuck. need to handle dynamic options - var heightInput = calendar.opt('height'); - var contentHeightInput = calendar.opt('contentHeight'); - this.isHeightAuto = heightInput === 'auto' || contentHeightInput === 'auto'; - if (typeof contentHeightInput === 'number') { // exists and not 'auto' - this.viewHeight = contentHeightInput; - } - else if (typeof contentHeightInput === 'function') { // exists and is a function - this.viewHeight = contentHeightInput(); - } - else if (typeof heightInput === 'number') { // exists and not 'auto' - this.viewHeight = heightInput - this.queryToolbarsHeight(); - } - else if (typeof heightInput === 'function') { // exists and is a function - this.viewHeight = heightInput() - this.queryToolbarsHeight(); - } - else if (heightInput === 'parent') { // set to height of parent element - var parentEl = this.el.parentNode; - this.viewHeight = parentEl.getBoundingClientRect().height - this.queryToolbarsHeight(); - } - else { - this.viewHeight = Math.round(this.contentEl.getBoundingClientRect().width / - Math.max(calendar.opt('aspectRatio'), .5)); - } - }; - CalendarComponent.prototype.queryToolbarsHeight = function () { - var height = 0; - if (this.header) { - height += computeHeightAndMargins(this.header.el); - } - if (this.footer) { - height += computeHeightAndMargins(this.footer.el); - } - return height; - }; - // Height "Freezing" - // ----------------------------------------------------------------------------------------------------------------- - CalendarComponent.prototype.freezeHeight = function () { - applyStyle(this.el, { - height: this.el.getBoundingClientRect().height, - overflow: 'hidden' - }); - }; - CalendarComponent.prototype.thawHeight = function () { - applyStyle(this.el, { - height: '', - overflow: '' - }); - }; - return CalendarComponent; -}(Component)); -// Title and Date Formatting -// ----------------------------------------------------------------------------------------------------------------- -// Computes what the title at the top of the calendar should be for this view -function computeTitle(dateProfile, viewOptions) { - var range; - // for views that span a large unit of time, show the proper interval, ignoring stray days before and after - if (/^(year|month)$/.test(dateProfile.currentRangeUnit)) { - range = dateProfile.currentRange; - } - else { // for day units or smaller, use the actual day range - range = dateProfile.activeRange; - } - return this.dateEnv.formatRange(range.start, range.end, createFormatter(viewOptions.titleFormat || computeTitleFormat(dateProfile), viewOptions.titleRangeSeparator), { isEndExclusive: dateProfile.isRangeAllDay }); -} -// Generates the format string that should be used to generate the title for the current date range. -// Attempts to compute the most appropriate format if not explicitly specified with `titleFormat`. -function computeTitleFormat(dateProfile) { - var currentRangeUnit = dateProfile.currentRangeUnit; - if (currentRangeUnit === 'year') { - return { year: 'numeric' }; - } - else if (currentRangeUnit === 'month') { - return { year: 'numeric', month: 'long' }; // like "September 2014" - } - else { - var days = diffWholeDays(dateProfile.currentRange.start, dateProfile.currentRange.end); - if (days !== null && days > 1) { - // multi-day range. shorter, like "Sep 9 - 10 2014" - return { year: 'numeric', month: 'short', day: 'numeric' }; - } - else { - // one day. longer, like "September 9 2014" - return { year: 'numeric', month: 'long', day: 'numeric' }; - } - } -} -// Plugin -// ----------------------------------------------------------------------------------------------------------------- -function buildViewPropTransformers(theClasses) { - return theClasses.map(function (theClass) { - return new theClass(); - }); -} - -var Interaction = /** @class */ (function () { - function Interaction(settings) { - this.component = settings.component; - } - Interaction.prototype.destroy = function () { - }; - return Interaction; -}()); -function parseInteractionSettings(component, input) { - return { - component: component, - el: input.el, - useEventCenter: input.useEventCenter != null ? input.useEventCenter : true - }; -} -function interactionSettingsToStore(settings) { - var _a; - return _a = {}, - _a[settings.component.uid] = settings, - _a; -} -// global state -var interactionSettingsStore = {}; - -/* -Detects when the user clicks on an event within a DateComponent -*/ -var EventClicking = /** @class */ (function (_super) { - __extends(EventClicking, _super); - function EventClicking(settings) { - var _this = _super.call(this, settings) || this; - _this.handleSegClick = function (ev, segEl) { - var component = _this.component; - var seg = getElSeg(segEl); - if (seg && // might be the
surrounding the more link - component.isValidSegDownEl(ev.target)) { - // our way to simulate a link click for elements that can't be tags - // grab before trigger fired in case trigger trashes DOM thru rerendering - var hasUrlContainer = elementClosest(ev.target, '.fc-has-url'); - var url = hasUrlContainer ? hasUrlContainer.querySelector('a[href]').href : ''; - component.publiclyTrigger('eventClick', [ - { - el: segEl, - event: new EventApi(component.calendar, seg.eventRange.def, seg.eventRange.instance), - jsEvent: ev, - view: component.view - } - ]); - if (url && !ev.defaultPrevented) { - window.location.href = url; - } - } - }; - var component = settings.component; - _this.destroy = listenBySelector(component.el, 'click', component.fgSegSelector + ',' + component.bgSegSelector, _this.handleSegClick); - return _this; - } - return EventClicking; -}(Interaction)); - -/* -Triggers events and adds/removes core classNames when the user's pointer -enters/leaves event-elements of a component. -*/ -var EventHovering = /** @class */ (function (_super) { - __extends(EventHovering, _super); - function EventHovering(settings) { - var _this = _super.call(this, settings) || this; - // for simulating an eventMouseLeave when the event el is destroyed while mouse is over it - _this.handleEventElRemove = function (el) { - if (el === _this.currentSegEl) { - _this.handleSegLeave(null, _this.currentSegEl); - } - }; - _this.handleSegEnter = function (ev, segEl) { - if (getElSeg(segEl)) { // TODO: better way to make sure not hovering over more+ link or its wrapper - segEl.classList.add('fc-allow-mouse-resize'); - _this.currentSegEl = segEl; - _this.triggerEvent('eventMouseEnter', ev, segEl); - } - }; - _this.handleSegLeave = function (ev, segEl) { - if (_this.currentSegEl) { - segEl.classList.remove('fc-allow-mouse-resize'); - _this.currentSegEl = null; - _this.triggerEvent('eventMouseLeave', ev, segEl); - } - }; - var component = settings.component; - _this.removeHoverListeners = listenToHoverBySelector(component.el, component.fgSegSelector + ',' + component.bgSegSelector, _this.handleSegEnter, _this.handleSegLeave); - component.calendar.on('eventElRemove', _this.handleEventElRemove); - return _this; - } - EventHovering.prototype.destroy = function () { - this.removeHoverListeners(); - this.component.calendar.off('eventElRemove', this.handleEventElRemove); - }; - EventHovering.prototype.triggerEvent = function (publicEvName, ev, segEl) { - var component = this.component; - var seg = getElSeg(segEl); - if (!ev || component.isValidSegDownEl(ev.target)) { - component.publiclyTrigger(publicEvName, [ - { - el: segEl, - event: new EventApi(this.component.calendar, seg.eventRange.def, seg.eventRange.instance), - jsEvent: ev, - view: component.view - } - ]); - } - }; - return EventHovering; -}(Interaction)); - -var StandardTheme = /** @class */ (function (_super) { - __extends(StandardTheme, _super); - function StandardTheme() { - return _super !== null && _super.apply(this, arguments) || this; - } - return StandardTheme; -}(Theme)); -StandardTheme.prototype.classes = { - widget: 'fc-unthemed', - widgetHeader: 'fc-widget-header', - widgetContent: 'fc-widget-content', - buttonGroup: 'fc-button-group', - button: 'fc-button fc-button-primary', - buttonActive: 'fc-button-active', - popoverHeader: 'fc-widget-header', - popoverContent: 'fc-widget-content', - // day grid - headerRow: 'fc-widget-header', - dayRow: 'fc-widget-content', - // list view - listView: 'fc-widget-content' -}; -StandardTheme.prototype.baseIconClass = 'fc-icon'; -StandardTheme.prototype.iconClasses = { - close: 'fc-icon-x', - prev: 'fc-icon-chevron-left', - next: 'fc-icon-chevron-right', - prevYear: 'fc-icon-chevrons-left', - nextYear: 'fc-icon-chevrons-right' -}; -StandardTheme.prototype.iconOverrideOption = 'buttonIcons'; -StandardTheme.prototype.iconOverrideCustomButtonOption = 'icon'; -StandardTheme.prototype.iconOverridePrefix = 'fc-icon-'; - -var Calendar = /** @class */ (function () { - function Calendar(el, overrides) { - var _this = this; - this.parseRawLocales = memoize(parseRawLocales); - this.buildLocale = memoize(buildLocale); - this.buildDateEnv = memoize(buildDateEnv); - this.buildTheme = memoize(buildTheme); - this.buildEventUiSingleBase = memoize(this._buildEventUiSingleBase); - this.buildSelectionConfig = memoize(this._buildSelectionConfig); - this.buildEventUiBySource = memoizeOutput(buildEventUiBySource, isPropsEqual); - this.buildEventUiBases = memoize(buildEventUiBases); - this.interactionsStore = {}; - this.actionQueue = []; - this.isReducing = false; - // isDisplaying: boolean = false // installed in DOM? accepting renders? - this.needsRerender = false; // needs a render? - this.needsFullRerender = false; - this.isRendering = false; // currently in the executeRender function? - this.renderingPauseDepth = 0; - this.buildDelayedRerender = memoize(buildDelayedRerender); - this.afterSizingTriggers = {}; - this.isViewUpdated = false; - this.isDatesUpdated = false; - this.isEventsUpdated = false; - this.el = el; - this.optionsManager = new OptionsManager(overrides || {}); - this.pluginSystem = new PluginSystem(); - // only do once. don't do in handleOptions. because can't remove plugins - this.addPluginInputs(this.optionsManager.computed.plugins || []); - this.handleOptions(this.optionsManager.computed); - this.publiclyTrigger('_init'); // for tests - this.hydrate(); - this.calendarInteractions = this.pluginSystem.hooks.calendarInteractions - .map(function (calendarInteractionClass) { - return new calendarInteractionClass(_this); - }); - } - Calendar.prototype.addPluginInputs = function (pluginInputs) { - var pluginDefs = refinePluginDefs(pluginInputs); - for (var _i = 0, pluginDefs_1 = pluginDefs; _i < pluginDefs_1.length; _i++) { - var pluginDef = pluginDefs_1[_i]; - this.pluginSystem.add(pluginDef); - } - }; - Object.defineProperty(Calendar.prototype, "view", { - // public API - get: function () { - return this.component ? this.component.view : null; - }, - enumerable: true, - configurable: true - }); - // Public API for rendering - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.render = function () { - if (!this.component) { - this.renderableEventStore = createEmptyEventStore(); - this.bindHandlers(); - this.executeRender(); - } - else { - this.requestRerender(true); - } - }; - Calendar.prototype.destroy = function () { - if (this.component) { - this.unbindHandlers(); - this.component.destroy(); // don't null-out. in case API needs access - this.component = null; // umm ??? - for (var _i = 0, _a = this.calendarInteractions; _i < _a.length; _i++) { - var interaction = _a[_i]; - interaction.destroy(); - } - this.publiclyTrigger('_destroyed'); - } - }; - // Handlers - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.bindHandlers = function () { - var _this = this; - // event delegation for nav links - this.removeNavLinkListener = listenBySelector(this.el, 'click', 'a[data-goto]', function (ev, anchorEl) { - var gotoOptions = anchorEl.getAttribute('data-goto'); - gotoOptions = gotoOptions ? JSON.parse(gotoOptions) : {}; - var dateEnv = _this.dateEnv; - var dateMarker = dateEnv.createMarker(gotoOptions.date); - var viewType = gotoOptions.type; - // property like "navLinkDayClick". might be a string or a function - var customAction = _this.viewOpt('navLink' + capitaliseFirstLetter(viewType) + 'Click'); - if (typeof customAction === 'function') { - customAction(dateEnv.toDate(dateMarker), ev); - } - else { - if (typeof customAction === 'string') { - viewType = customAction; - } - _this.zoomTo(dateMarker, viewType); - } - }); - if (this.opt('handleWindowResize')) { - window.addEventListener('resize', this.windowResizeProxy = debounce(// prevents rapid calls - this.windowResize.bind(this), this.opt('windowResizeDelay'))); - } - }; - Calendar.prototype.unbindHandlers = function () { - this.removeNavLinkListener(); - if (this.windowResizeProxy) { - window.removeEventListener('resize', this.windowResizeProxy); - this.windowResizeProxy = null; - } - }; - // Dispatcher - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.hydrate = function () { - var _this = this; - this.state = this.buildInitialState(); - var rawSources = this.opt('eventSources') || []; - var singleRawSource = this.opt('events'); - var sources = []; // parsed - if (singleRawSource) { - rawSources.unshift(singleRawSource); - } - for (var _i = 0, rawSources_1 = rawSources; _i < rawSources_1.length; _i++) { - var rawSource = rawSources_1[_i]; - var source = parseEventSource(rawSource, this); - if (source) { - sources.push(source); - } - } - this.batchRendering(function () { - _this.dispatch({ type: 'INIT' }); // pass in sources here? - _this.dispatch({ type: 'ADD_EVENT_SOURCES', sources: sources }); - _this.dispatch({ - type: 'SET_VIEW_TYPE', - viewType: _this.opt('defaultView') || _this.pluginSystem.hooks.defaultView - }); - }); - }; - Calendar.prototype.buildInitialState = function () { - return { - viewType: null, - loadingLevel: 0, - eventSourceLoadingLevel: 0, - currentDate: this.getInitialDate(), - dateProfile: null, - eventSources: {}, - eventStore: createEmptyEventStore(), - dateSelection: null, - eventSelection: '', - eventDrag: null, - eventResize: null - }; - }; - Calendar.prototype.dispatch = function (action) { - this.actionQueue.push(action); - if (!this.isReducing) { - this.isReducing = true; - var oldState = this.state; - while (this.actionQueue.length) { - this.state = this.reduce(this.state, this.actionQueue.shift(), this); - } - var newState = this.state; - this.isReducing = false; - if (!oldState.loadingLevel && newState.loadingLevel) { - this.publiclyTrigger('loading', [true]); - } - else if (oldState.loadingLevel && !newState.loadingLevel) { - this.publiclyTrigger('loading', [false]); - } - var view = this.component && this.component.view; - if (oldState.eventStore !== newState.eventStore || this.needsFullRerender) { - if (oldState.eventStore) { - this.isEventsUpdated = true; - } - } - if (oldState.dateProfile !== newState.dateProfile || this.needsFullRerender) { - if (oldState.dateProfile && view) { // why would view be null!? - this.publiclyTrigger('datesDestroy', [ - { - view: view, - el: view.el - } - ]); - } - this.isDatesUpdated = true; - } - if (oldState.viewType !== newState.viewType || this.needsFullRerender) { - if (oldState.viewType && view) { // why would view be null!? - this.publiclyTrigger('viewSkeletonDestroy', [ - { - view: view, - el: view.el - } - ]); - } - this.isViewUpdated = true; - } - this.requestRerender(); - } - }; - Calendar.prototype.reduce = function (state, action, calendar) { - return reduce(state, action, calendar); - }; - // Render Queue - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.requestRerender = function (needsFull) { - if (needsFull === void 0) { needsFull = false; } - this.needsRerender = true; - this.needsFullRerender = this.needsFullRerender || needsFull; - this.delayedRerender(); // will call a debounced-version of tryRerender - }; - Calendar.prototype.tryRerender = function () { - if (this.component && // must be accepting renders - this.needsRerender && // indicates that a rerender was requested - !this.renderingPauseDepth && // not paused - !this.isRendering // not currently in the render loop - ) { - this.executeRender(); - } - }; - Calendar.prototype.batchRendering = function (func) { - this.renderingPauseDepth++; - func(); - this.renderingPauseDepth--; - if (this.needsRerender) { - this.requestRerender(); - } - }; - // Rendering - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.executeRender = function () { - var needsFullRerender = this.needsFullRerender; // save before clearing - // clear these BEFORE the render so that new values will accumulate during render - this.needsRerender = false; - this.needsFullRerender = false; - this.isRendering = true; - this.renderComponent(needsFullRerender); - this.isRendering = false; - // received a rerender request while rendering - if (this.needsRerender) { - this.delayedRerender(); - } - }; - /* - don't call this directly. use executeRender instead - */ - Calendar.prototype.renderComponent = function (needsFull) { - var _a = this, state = _a.state, component = _a.component; - var viewType = state.viewType; - var viewSpec = this.viewSpecs[viewType]; - var savedScroll = (needsFull && component) ? component.view.queryScroll() : null; - if (!viewSpec) { - throw new Error("View type \"" + viewType + "\" is not valid"); - } - // if event sources are still loading and progressive rendering hasn't been enabled, - // keep rendering the last fully loaded set of events - var renderableEventStore = this.renderableEventStore = - (state.eventSourceLoadingLevel && !this.opt('progressiveEventRendering')) ? - this.renderableEventStore : - state.eventStore; - var eventUiSingleBase = this.buildEventUiSingleBase(viewSpec.options); - var eventUiBySource = this.buildEventUiBySource(state.eventSources); - var eventUiBases = this.eventUiBases = this.buildEventUiBases(renderableEventStore.defs, eventUiSingleBase, eventUiBySource); - if (needsFull || !component) { - if (component) { - component.freezeHeight(); // next component will unfreeze it - component.destroy(); - } - component = this.component = new CalendarComponent({ - calendar: this, - view: null, - dateEnv: this.dateEnv, - theme: this.theme, - options: this.optionsManager.computed - }, this.el); - this.isViewUpdated = true; - this.isDatesUpdated = true; - this.isEventsUpdated = true; - } - component.receiveProps(__assign({}, state, { viewSpec: viewSpec, dateProfile: state.dateProfile, dateProfileGenerator: this.dateProfileGenerators[viewType], eventStore: renderableEventStore, eventUiBases: eventUiBases, dateSelection: state.dateSelection, eventSelection: state.eventSelection, eventDrag: state.eventDrag, eventResize: state.eventResize })); - if (savedScroll) { - component.view.applyScroll(savedScroll, false); - } - if (this.isViewUpdated) { - this.isViewUpdated = false; - this.publiclyTrigger('viewSkeletonRender', [ - { - view: component.view, - el: component.view.el - } - ]); - } - if (this.isDatesUpdated) { - this.isDatesUpdated = false; - this.publiclyTrigger('datesRender', [ - { - view: component.view, - el: component.view.el - } - ]); - } - if (this.isEventsUpdated) { - this.isEventsUpdated = false; - } - this.releaseAfterSizingTriggers(); - }; - // Options - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.setOption = function (name, val) { - var _a; - this.mutateOptions((_a = {}, _a[name] = val, _a), [], true); - }; - Calendar.prototype.getOption = function (name) { - return this.optionsManager.computed[name]; - }; - Calendar.prototype.opt = function (name) { - return this.optionsManager.computed[name]; - }; - Calendar.prototype.viewOpt = function (name) { - return this.viewOpts()[name]; - }; - Calendar.prototype.viewOpts = function () { - return this.viewSpecs[this.state.viewType].options; - }; - /* - handles option changes (like a diff) - */ - Calendar.prototype.mutateOptions = function (updates, removals, isDynamic, deepEqual) { - var _this = this; - var changeHandlers = this.pluginSystem.hooks.optionChangeHandlers; - var normalUpdates = {}; - var specialUpdates = {}; - var oldDateEnv = this.dateEnv; // do this before handleOptions - var isTimeZoneDirty = false; - var isSizeDirty = false; - var anyDifficultOptions = Boolean(removals.length); - for (var name_1 in updates) { - if (changeHandlers[name_1]) { - specialUpdates[name_1] = updates[name_1]; - } - else { - normalUpdates[name_1] = updates[name_1]; - } - } - for (var name_2 in normalUpdates) { - if (/^(height|contentHeight|aspectRatio)$/.test(name_2)) { - isSizeDirty = true; - } - else if (/^(defaultDate|defaultView)$/.test(name_2)) ; - else { - anyDifficultOptions = true; - if (name_2 === 'timeZone') { - isTimeZoneDirty = true; - } - } - } - this.optionsManager.mutate(normalUpdates, removals, isDynamic); - if (anyDifficultOptions) { - this.handleOptions(this.optionsManager.computed); - this.needsFullRerender = true; - } - this.batchRendering(function () { - if (anyDifficultOptions) { - if (isTimeZoneDirty) { - _this.dispatch({ - type: 'CHANGE_TIMEZONE', - oldDateEnv: oldDateEnv - }); - } - /* HACK - has the same effect as calling this.requestRerender(true) - but recomputes the state's dateProfile - */ - _this.dispatch({ - type: 'SET_VIEW_TYPE', - viewType: _this.state.viewType - }); - } - else if (isSizeDirty) { - _this.updateSize(); - } - // special updates - if (deepEqual) { - for (var name_3 in specialUpdates) { - changeHandlers[name_3](specialUpdates[name_3], _this, deepEqual); - } - } - }); - }; - /* - rebuilds things based off of a complete set of refined options - */ - Calendar.prototype.handleOptions = function (options) { - var _this = this; - var pluginHooks = this.pluginSystem.hooks; - this.defaultAllDayEventDuration = createDuration(options.defaultAllDayEventDuration); - this.defaultTimedEventDuration = createDuration(options.defaultTimedEventDuration); - this.delayedRerender = this.buildDelayedRerender(options.rerenderDelay); - this.theme = this.buildTheme(options); - var available = this.parseRawLocales(options.locales); - this.availableRawLocales = available.map; - var locale = this.buildLocale(options.locale || available.defaultCode, available.map); - this.dateEnv = this.buildDateEnv(locale, options.timeZone, pluginHooks.namedTimeZonedImpl, options.firstDay, options.weekNumberCalculation, options.weekLabel, pluginHooks.cmdFormatter); - this.selectionConfig = this.buildSelectionConfig(options); // needs dateEnv. do after :( - // ineffecient to do every time? - this.viewSpecs = buildViewSpecs(pluginHooks.views, this.optionsManager); - // ineffecient to do every time? - this.dateProfileGenerators = mapHash(this.viewSpecs, function (viewSpec) { - return new viewSpec.class.prototype.dateProfileGeneratorClass(viewSpec, _this); - }); - }; - Calendar.prototype.getAvailableLocaleCodes = function () { - return Object.keys(this.availableRawLocales); - }; - Calendar.prototype._buildSelectionConfig = function (rawOpts) { - return processScopedUiProps('select', rawOpts, this); - }; - Calendar.prototype._buildEventUiSingleBase = function (rawOpts) { - if (rawOpts.editable) { // so 'editable' affected events - rawOpts = __assign({}, rawOpts, { eventEditable: true }); - } - return processScopedUiProps('event', rawOpts, this); - }; - // Trigger - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.hasPublicHandlers = function (name) { - return this.hasHandlers(name) || - this.opt(name); // handler specified in options - }; - Calendar.prototype.publiclyTrigger = function (name, args) { - var optHandler = this.opt(name); - this.triggerWith(name, this, args); - if (optHandler) { - return optHandler.apply(this, args); - } - }; - Calendar.prototype.publiclyTriggerAfterSizing = function (name, args) { - var afterSizingTriggers = this.afterSizingTriggers; - (afterSizingTriggers[name] || (afterSizingTriggers[name] = [])).push(args); - }; - Calendar.prototype.releaseAfterSizingTriggers = function () { - var afterSizingTriggers = this.afterSizingTriggers; - for (var name_4 in afterSizingTriggers) { - for (var _i = 0, _a = afterSizingTriggers[name_4]; _i < _a.length; _i++) { - var args = _a[_i]; - this.publiclyTrigger(name_4, args); - } - } - this.afterSizingTriggers = {}; - }; - // View - // ----------------------------------------------------------------------------------------------------------------- - // Returns a boolean about whether the view is okay to instantiate at some point - Calendar.prototype.isValidViewType = function (viewType) { - return Boolean(this.viewSpecs[viewType]); - }; - Calendar.prototype.changeView = function (viewType, dateOrRange) { - var dateMarker = null; - if (dateOrRange) { - if (dateOrRange.start && dateOrRange.end) { // a range - this.optionsManager.mutate({ visibleRange: dateOrRange }, []); // will not rerender - this.handleOptions(this.optionsManager.computed); // ...but yuck - } - else { // a date - dateMarker = this.dateEnv.createMarker(dateOrRange); // just like gotoDate - } - } - this.unselect(); - this.dispatch({ - type: 'SET_VIEW_TYPE', - viewType: viewType, - dateMarker: dateMarker - }); - }; - // Forces navigation to a view for the given date. - // `viewType` can be a specific view name or a generic one like "week" or "day". - // needs to change - Calendar.prototype.zoomTo = function (dateMarker, viewType) { - var spec; - viewType = viewType || 'day'; // day is default zoom - spec = this.viewSpecs[viewType] || - this.getUnitViewSpec(viewType); - this.unselect(); - if (spec) { - this.dispatch({ - type: 'SET_VIEW_TYPE', - viewType: spec.type, - dateMarker: dateMarker - }); - } - else { - this.dispatch({ - type: 'SET_DATE', - dateMarker: dateMarker - }); - } - }; - // Given a duration singular unit, like "week" or "day", finds a matching view spec. - // Preference is given to views that have corresponding buttons. - Calendar.prototype.getUnitViewSpec = function (unit) { - var component = this.component; - var viewTypes = []; - var i; - var spec; - // put views that have buttons first. there will be duplicates, but oh - if (component.header) { - viewTypes.push.apply(viewTypes, component.header.viewsWithButtons); - } - if (component.footer) { - viewTypes.push.apply(viewTypes, component.footer.viewsWithButtons); - } - for (var viewType in this.viewSpecs) { - viewTypes.push(viewType); - } - for (i = 0; i < viewTypes.length; i++) { - spec = this.viewSpecs[viewTypes[i]]; - if (spec) { - if (spec.singleUnit === unit) { - return spec; - } - } - } - }; - // Current Date - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.getInitialDate = function () { - var defaultDateInput = this.opt('defaultDate'); - // compute the initial ambig-timezone date - if (defaultDateInput != null) { - return this.dateEnv.createMarker(defaultDateInput); - } - else { - return this.getNow(); // getNow already returns unzoned - } - }; - Calendar.prototype.prev = function () { - this.unselect(); - this.dispatch({ type: 'PREV' }); - }; - Calendar.prototype.next = function () { - this.unselect(); - this.dispatch({ type: 'NEXT' }); - }; - Calendar.prototype.prevYear = function () { - this.unselect(); - this.dispatch({ - type: 'SET_DATE', - dateMarker: this.dateEnv.addYears(this.state.currentDate, -1) - }); - }; - Calendar.prototype.nextYear = function () { - this.unselect(); - this.dispatch({ - type: 'SET_DATE', - dateMarker: this.dateEnv.addYears(this.state.currentDate, 1) - }); - }; - Calendar.prototype.today = function () { - this.unselect(); - this.dispatch({ - type: 'SET_DATE', - dateMarker: this.getNow() - }); - }; - Calendar.prototype.gotoDate = function (zonedDateInput) { - this.unselect(); - this.dispatch({ - type: 'SET_DATE', - dateMarker: this.dateEnv.createMarker(zonedDateInput) - }); - }; - Calendar.prototype.incrementDate = function (deltaInput) { - var delta = createDuration(deltaInput); - if (delta) { // else, warn about invalid input? - this.unselect(); - this.dispatch({ - type: 'SET_DATE', - dateMarker: this.dateEnv.add(this.state.currentDate, delta) - }); - } - }; - // for external API - Calendar.prototype.getDate = function () { - return this.dateEnv.toDate(this.state.currentDate); - }; - // Date Formatting Utils - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.formatDate = function (d, formatter) { - var dateEnv = this.dateEnv; - return dateEnv.format(dateEnv.createMarker(d), createFormatter(formatter)); - }; - // `settings` is for formatter AND isEndExclusive - Calendar.prototype.formatRange = function (d0, d1, settings) { - var dateEnv = this.dateEnv; - return dateEnv.formatRange(dateEnv.createMarker(d0), dateEnv.createMarker(d1), createFormatter(settings, this.opt('defaultRangeSeparator')), settings); - }; - Calendar.prototype.formatIso = function (d, omitTime) { - var dateEnv = this.dateEnv; - return dateEnv.formatIso(dateEnv.createMarker(d), { omitTime: omitTime }); - }; - // Sizing - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.windowResize = function (ev) { - if (!this.isHandlingWindowResize && - this.component && // why? - ev.target === window // not a jqui resize event - ) { - this.isHandlingWindowResize = true; - this.updateSize(); - this.publiclyTrigger('windowResize', [this.view]); - this.isHandlingWindowResize = false; - } - }; - Calendar.prototype.updateSize = function () { - if (this.component) { // when? - this.component.updateSize(true); - } - }; - // Component Registration - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.registerInteractiveComponent = function (component, settingsInput) { - var settings = parseInteractionSettings(component, settingsInput); - var DEFAULT_INTERACTIONS = [ - EventClicking, - EventHovering - ]; - var interactionClasses = DEFAULT_INTERACTIONS.concat(this.pluginSystem.hooks.componentInteractions); - var interactions = interactionClasses.map(function (interactionClass) { - return new interactionClass(settings); - }); - this.interactionsStore[component.uid] = interactions; - interactionSettingsStore[component.uid] = settings; - }; - Calendar.prototype.unregisterInteractiveComponent = function (component) { - for (var _i = 0, _a = this.interactionsStore[component.uid]; _i < _a.length; _i++) { - var listener = _a[_i]; - listener.destroy(); - } - delete this.interactionsStore[component.uid]; - delete interactionSettingsStore[component.uid]; - }; - // Date Selection / Event Selection / DayClick - // ----------------------------------------------------------------------------------------------------------------- - // this public method receives start/end dates in any format, with any timezone - // NOTE: args were changed from v3 - Calendar.prototype.select = function (dateOrObj, endDate) { - var selectionInput; - if (endDate == null) { - if (dateOrObj.start != null) { - selectionInput = dateOrObj; - } - else { - selectionInput = { - start: dateOrObj, - end: null - }; - } - } - else { - selectionInput = { - start: dateOrObj, - end: endDate - }; - } - var selection = parseDateSpan(selectionInput, this.dateEnv, createDuration({ days: 1 }) // TODO: cache this? - ); - if (selection) { // throw parse error otherwise? - this.dispatch({ type: 'SELECT_DATES', selection: selection }); - this.triggerDateSelect(selection); - } - }; - // public method - Calendar.prototype.unselect = function (pev) { - if (this.state.dateSelection) { - this.dispatch({ type: 'UNSELECT_DATES' }); - this.triggerDateUnselect(pev); - } - }; - Calendar.prototype.triggerDateSelect = function (selection, pev) { - var arg = __assign({}, this.buildDateSpanApi(selection), { jsEvent: pev ? pev.origEvent : null, view: this.view }); - this.publiclyTrigger('select', [arg]); - }; - Calendar.prototype.triggerDateUnselect = function (pev) { - this.publiclyTrigger('unselect', [ - { - jsEvent: pev ? pev.origEvent : null, - view: this.view - } - ]); - }; - // TODO: receive pev? - Calendar.prototype.triggerDateClick = function (dateSpan, dayEl, view, ev) { - var arg = __assign({}, this.buildDatePointApi(dateSpan), { dayEl: dayEl, jsEvent: ev, // Is this always a mouse event? See #4655 - view: view }); - this.publiclyTrigger('dateClick', [arg]); - }; - Calendar.prototype.buildDatePointApi = function (dateSpan) { - var props = {}; - for (var _i = 0, _a = this.pluginSystem.hooks.datePointTransforms; _i < _a.length; _i++) { - var transform = _a[_i]; - __assign(props, transform(dateSpan, this)); - } - __assign(props, buildDatePointApi(dateSpan, this.dateEnv)); - return props; - }; - Calendar.prototype.buildDateSpanApi = function (dateSpan) { - var props = {}; - for (var _i = 0, _a = this.pluginSystem.hooks.dateSpanTransforms; _i < _a.length; _i++) { - var transform = _a[_i]; - __assign(props, transform(dateSpan, this)); - } - __assign(props, buildDateSpanApi(dateSpan, this.dateEnv)); - return props; - }; - // Date Utils - // ----------------------------------------------------------------------------------------------------------------- - // Returns a DateMarker for the current date, as defined by the client's computer or from the `now` option - Calendar.prototype.getNow = function () { - var now = this.opt('now'); - if (typeof now === 'function') { - now = now(); - } - if (now == null) { - return this.dateEnv.createNowMarker(); - } - return this.dateEnv.createMarker(now); - }; - // Event-Date Utilities - // ----------------------------------------------------------------------------------------------------------------- - // Given an event's allDay status and start date, return what its fallback end date should be. - // TODO: rename to computeDefaultEventEnd - Calendar.prototype.getDefaultEventEnd = function (allDay, marker) { - var end = marker; - if (allDay) { - end = startOfDay(end); - end = this.dateEnv.add(end, this.defaultAllDayEventDuration); - } - else { - end = this.dateEnv.add(end, this.defaultTimedEventDuration); - } - return end; - }; - // Public Events API - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.addEvent = function (eventInput, sourceInput) { - if (eventInput instanceof EventApi) { - var def = eventInput._def; - var instance = eventInput._instance; - // not already present? don't want to add an old snapshot - if (!this.state.eventStore.defs[def.defId]) { - this.dispatch({ - type: 'ADD_EVENTS', - eventStore: eventTupleToStore({ def: def, instance: instance }) // TODO: better util for two args? - }); - } - return eventInput; - } - var sourceId; - if (sourceInput instanceof EventSourceApi) { - sourceId = sourceInput.internalEventSource.sourceId; - } - else if (sourceInput != null) { - var sourceApi = this.getEventSourceById(sourceInput); // TODO: use an internal function - if (!sourceApi) { - console.warn('Could not find an event source with ID "' + sourceInput + '"'); // TODO: test - return null; - } - else { - sourceId = sourceApi.internalEventSource.sourceId; - } - } - var tuple = parseEvent(eventInput, sourceId, this); - if (tuple) { - this.dispatch({ - type: 'ADD_EVENTS', - eventStore: eventTupleToStore(tuple) - }); - return new EventApi(this, tuple.def, tuple.def.recurringDef ? null : tuple.instance); - } - return null; - }; - // TODO: optimize - Calendar.prototype.getEventById = function (id) { - var _a = this.state.eventStore, defs = _a.defs, instances = _a.instances; - id = String(id); - for (var defId in defs) { - var def = defs[defId]; - if (def.publicId === id) { - if (def.recurringDef) { - return new EventApi(this, def, null); - } - else { - for (var instanceId in instances) { - var instance = instances[instanceId]; - if (instance.defId === def.defId) { - return new EventApi(this, def, instance); - } - } - } - } - } - return null; - }; - Calendar.prototype.getEvents = function () { - var _a = this.state.eventStore, defs = _a.defs, instances = _a.instances; - var eventApis = []; - for (var id in instances) { - var instance = instances[id]; - var def = defs[instance.defId]; - eventApis.push(new EventApi(this, def, instance)); - } - return eventApis; - }; - Calendar.prototype.removeAllEvents = function () { - this.dispatch({ type: 'REMOVE_ALL_EVENTS' }); - }; - Calendar.prototype.rerenderEvents = function () { - this.dispatch({ type: 'RESET_EVENTS' }); - }; - // Public Event Sources API - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.getEventSources = function () { - var sourceHash = this.state.eventSources; - var sourceApis = []; - for (var internalId in sourceHash) { - sourceApis.push(new EventSourceApi(this, sourceHash[internalId])); - } - return sourceApis; - }; - Calendar.prototype.getEventSourceById = function (id) { - var sourceHash = this.state.eventSources; - id = String(id); - for (var sourceId in sourceHash) { - if (sourceHash[sourceId].publicId === id) { - return new EventSourceApi(this, sourceHash[sourceId]); - } - } - return null; - }; - Calendar.prototype.addEventSource = function (sourceInput) { - if (sourceInput instanceof EventSourceApi) { - // not already present? don't want to add an old snapshot - if (!this.state.eventSources[sourceInput.internalEventSource.sourceId]) { - this.dispatch({ - type: 'ADD_EVENT_SOURCES', - sources: [sourceInput.internalEventSource] - }); - } - return sourceInput; - } - var eventSource = parseEventSource(sourceInput, this); - if (eventSource) { // TODO: error otherwise? - this.dispatch({ type: 'ADD_EVENT_SOURCES', sources: [eventSource] }); - return new EventSourceApi(this, eventSource); - } - return null; - }; - Calendar.prototype.removeAllEventSources = function () { - this.dispatch({ type: 'REMOVE_ALL_EVENT_SOURCES' }); - }; - Calendar.prototype.refetchEvents = function () { - this.dispatch({ type: 'FETCH_EVENT_SOURCES' }); - }; - // Scroll - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.scrollToTime = function (timeInput) { - var duration = createDuration(timeInput); - if (duration) { - this.component.view.scrollToDuration(duration); - } - }; - return Calendar; -}()); -EmitterMixin.mixInto(Calendar); -// for memoizers -// ----------------------------------------------------------------------------------------------------------------- -function buildDateEnv(locale, timeZone, namedTimeZoneImpl, firstDay, weekNumberCalculation, weekLabel, cmdFormatter) { - return new DateEnv({ - calendarSystem: 'gregory', - timeZone: timeZone, - namedTimeZoneImpl: namedTimeZoneImpl, - locale: locale, - weekNumberCalculation: weekNumberCalculation, - firstDay: firstDay, - weekLabel: weekLabel, - cmdFormatter: cmdFormatter - }); -} -function buildTheme(calendarOptions) { - var themeClass = this.pluginSystem.hooks.themeClasses[calendarOptions.themeSystem] || StandardTheme; - return new themeClass(calendarOptions); -} -function buildDelayedRerender(wait) { - var func = this.tryRerender.bind(this); - if (wait != null) { - func = debounce(func, wait); - } - return func; -} -function buildEventUiBySource(eventSources) { - return mapHash(eventSources, function (eventSource) { - return eventSource.ui; - }); -} -function buildEventUiBases(eventDefs, eventUiSingleBase, eventUiBySource) { - var eventUiBases = { '': eventUiSingleBase }; - for (var defId in eventDefs) { - var def = eventDefs[defId]; - if (def.sourceId && eventUiBySource[def.sourceId]) { - eventUiBases[defId] = eventUiBySource[def.sourceId]; - } - } - return eventUiBases; -} - -var View = /** @class */ (function (_super) { - __extends(View, _super); - function View(context, viewSpec, dateProfileGenerator, parentEl) { - var _this = _super.call(this, context, createElement('div', { className: 'fc-view fc-' + viewSpec.type + '-view' }), true // isView (HACK) - ) || this; - _this.renderDatesMem = memoizeRendering(_this.renderDatesWrap, _this.unrenderDatesWrap); - _this.renderBusinessHoursMem = memoizeRendering(_this.renderBusinessHours, _this.unrenderBusinessHours, [_this.renderDatesMem]); - _this.renderDateSelectionMem = memoizeRendering(_this.renderDateSelectionWrap, _this.unrenderDateSelectionWrap, [_this.renderDatesMem]); - _this.renderEventsMem = memoizeRendering(_this.renderEvents, _this.unrenderEvents, [_this.renderDatesMem]); - _this.renderEventSelectionMem = memoizeRendering(_this.renderEventSelectionWrap, _this.unrenderEventSelectionWrap, [_this.renderEventsMem]); - _this.renderEventDragMem = memoizeRendering(_this.renderEventDragWrap, _this.unrenderEventDragWrap, [_this.renderDatesMem]); - _this.renderEventResizeMem = memoizeRendering(_this.renderEventResizeWrap, _this.unrenderEventResizeWrap, [_this.renderDatesMem]); - _this.viewSpec = viewSpec; - _this.dateProfileGenerator = dateProfileGenerator; - _this.type = viewSpec.type; - _this.eventOrderSpecs = parseFieldSpecs(_this.opt('eventOrder')); - _this.nextDayThreshold = createDuration(_this.opt('nextDayThreshold')); - parentEl.appendChild(_this.el); - _this.initialize(); - return _this; - } - View.prototype.initialize = function () { - }; - Object.defineProperty(View.prototype, "activeStart", { - // Date Setting/Unsetting - // ----------------------------------------------------------------------------------------------------------------- - get: function () { - return this.dateEnv.toDate(this.props.dateProfile.activeRange.start); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(View.prototype, "activeEnd", { - get: function () { - return this.dateEnv.toDate(this.props.dateProfile.activeRange.end); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(View.prototype, "currentStart", { - get: function () { - return this.dateEnv.toDate(this.props.dateProfile.currentRange.start); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(View.prototype, "currentEnd", { - get: function () { - return this.dateEnv.toDate(this.props.dateProfile.currentRange.end); - }, - enumerable: true, - configurable: true - }); - // General Rendering - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.render = function (props) { - this.renderDatesMem(props.dateProfile); - this.renderBusinessHoursMem(props.businessHours); - this.renderDateSelectionMem(props.dateSelection); - this.renderEventsMem(props.eventStore); - this.renderEventSelectionMem(props.eventSelection); - this.renderEventDragMem(props.eventDrag); - this.renderEventResizeMem(props.eventResize); - }; - View.prototype.destroy = function () { - _super.prototype.destroy.call(this); - this.renderDatesMem.unrender(); // should unrender everything else - }; - // Sizing - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.updateSize = function (isResize, viewHeight, isAuto) { - var calendar = this.calendar; - if (isResize || // HACKS... - calendar.isViewUpdated || - calendar.isDatesUpdated || - calendar.isEventsUpdated) { - // sort of the catch-all sizing - // anything that might cause dimension changes - this.updateBaseSize(isResize, viewHeight, isAuto); - } - }; - View.prototype.updateBaseSize = function (isResize, viewHeight, isAuto) { - }; - // Date Rendering - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderDatesWrap = function (dateProfile) { - this.renderDates(dateProfile); - this.addScroll({ - duration: createDuration(this.opt('scrollTime')) - }); - this.startNowIndicator(dateProfile); // shouldn't render yet because updateSize will be called soon - }; - View.prototype.unrenderDatesWrap = function () { - this.stopNowIndicator(); - this.unrenderDates(); - }; - View.prototype.renderDates = function (dateProfile) { }; - View.prototype.unrenderDates = function () { }; - // Business Hours - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderBusinessHours = function (businessHours) { }; - View.prototype.unrenderBusinessHours = function () { }; - // Date Selection - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderDateSelectionWrap = function (selection) { - if (selection) { - this.renderDateSelection(selection); - } - }; - View.prototype.unrenderDateSelectionWrap = function (selection) { - if (selection) { - this.unrenderDateSelection(selection); - } - }; - View.prototype.renderDateSelection = function (selection) { }; - View.prototype.unrenderDateSelection = function (selection) { }; - // Event Rendering - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderEvents = function (eventStore) { }; - View.prototype.unrenderEvents = function () { }; - // util for subclasses - View.prototype.sliceEvents = function (eventStore, allDay) { - var props = this.props; - return sliceEventStore(eventStore, props.eventUiBases, props.dateProfile.activeRange, allDay ? this.nextDayThreshold : null).fg; - }; - View.prototype.computeEventDraggable = function (eventDef, eventUi) { - var transformers = this.calendar.pluginSystem.hooks.isDraggableTransformers; - var val = eventUi.startEditable; - for (var _i = 0, transformers_1 = transformers; _i < transformers_1.length; _i++) { - var transformer = transformers_1[_i]; - val = transformer(val, eventDef, eventUi, this); - } - return val; - }; - View.prototype.computeEventStartResizable = function (eventDef, eventUi) { - return eventUi.durationEditable && this.opt('eventResizableFromStart'); - }; - View.prototype.computeEventEndResizable = function (eventDef, eventUi) { - return eventUi.durationEditable; - }; - // Event Selection - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderEventSelectionWrap = function (instanceId) { - if (instanceId) { - this.renderEventSelection(instanceId); - } - }; - View.prototype.unrenderEventSelectionWrap = function (instanceId) { - if (instanceId) { - this.unrenderEventSelection(instanceId); - } - }; - View.prototype.renderEventSelection = function (instanceId) { }; - View.prototype.unrenderEventSelection = function (instanceId) { }; - // Event Drag - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderEventDragWrap = function (state) { - if (state) { - this.renderEventDrag(state); - } - }; - View.prototype.unrenderEventDragWrap = function (state) { - if (state) { - this.unrenderEventDrag(state); - } - }; - View.prototype.renderEventDrag = function (state) { }; - View.prototype.unrenderEventDrag = function (state) { }; - // Event Resize - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderEventResizeWrap = function (state) { - if (state) { - this.renderEventResize(state); - } - }; - View.prototype.unrenderEventResizeWrap = function (state) { - if (state) { - this.unrenderEventResize(state); - } - }; - View.prototype.renderEventResize = function (state) { }; - View.prototype.unrenderEventResize = function (state) { }; - /* Now Indicator - ------------------------------------------------------------------------------------------------------------------*/ - // Immediately render the current time indicator and begins re-rendering it at an interval, - // which is defined by this.getNowIndicatorUnit(). - // TODO: somehow do this for the current whole day's background too - View.prototype.startNowIndicator = function (dateProfile) { - var _this = this; - var dateEnv = this.dateEnv; - var unit; - var update; - var delay; // ms wait value - if (this.opt('nowIndicator')) { - unit = this.getNowIndicatorUnit(dateProfile); - if (unit) { - update = this.updateNowIndicator.bind(this); - this.initialNowDate = this.calendar.getNow(); - this.initialNowQueriedMs = new Date().valueOf(); - // wait until the beginning of the next interval - delay = dateEnv.add(dateEnv.startOf(this.initialNowDate, unit), createDuration(1, unit)).valueOf() - this.initialNowDate.valueOf(); - // TODO: maybe always use setTimeout, waiting until start of next unit - this.nowIndicatorTimeoutID = setTimeout(function () { - _this.nowIndicatorTimeoutID = null; - update(); - if (unit === 'second') { - delay = 1000; // every second - } - else { - delay = 1000 * 60; // otherwise, every minute - } - _this.nowIndicatorIntervalID = setInterval(update, delay); // update every interval - }, delay); - } - // rendering will be initiated in updateSize - } - }; - // rerenders the now indicator, computing the new current time from the amount of time that has passed - // since the initial getNow call. - View.prototype.updateNowIndicator = function () { - if (this.props.dateProfile && // a way to determine if dates were rendered yet - this.initialNowDate // activated before? - ) { - this.unrenderNowIndicator(); // won't unrender if unnecessary - this.renderNowIndicator(addMs(this.initialNowDate, new Date().valueOf() - this.initialNowQueriedMs)); - this.isNowIndicatorRendered = true; - } - }; - // Immediately unrenders the view's current time indicator and stops any re-rendering timers. - // Won't cause side effects if indicator isn't rendered. - View.prototype.stopNowIndicator = function () { - if (this.isNowIndicatorRendered) { - if (this.nowIndicatorTimeoutID) { - clearTimeout(this.nowIndicatorTimeoutID); - this.nowIndicatorTimeoutID = null; - } - if (this.nowIndicatorIntervalID) { - clearInterval(this.nowIndicatorIntervalID); - this.nowIndicatorIntervalID = null; - } - this.unrenderNowIndicator(); - this.isNowIndicatorRendered = false; - } - }; - View.prototype.getNowIndicatorUnit = function (dateProfile) { - // subclasses should implement - }; - // Renders a current time indicator at the given datetime - View.prototype.renderNowIndicator = function (date) { - // SUBCLASSES MUST PASS TO CHILDREN! - }; - // Undoes the rendering actions from renderNowIndicator - View.prototype.unrenderNowIndicator = function () { - // SUBCLASSES MUST PASS TO CHILDREN! - }; - /* Scroller - ------------------------------------------------------------------------------------------------------------------*/ - View.prototype.addScroll = function (scroll) { - var queuedScroll = this.queuedScroll || (this.queuedScroll = {}); - __assign(queuedScroll, scroll); - }; - View.prototype.popScroll = function (isResize) { - this.applyQueuedScroll(isResize); - this.queuedScroll = null; - }; - View.prototype.applyQueuedScroll = function (isResize) { - this.applyScroll(this.queuedScroll || {}, isResize); - }; - View.prototype.queryScroll = function () { - var scroll = {}; - if (this.props.dateProfile) { // dates rendered yet? - __assign(scroll, this.queryDateScroll()); - } - return scroll; - }; - View.prototype.applyScroll = function (scroll, isResize) { - var duration = scroll.duration; - if (duration != null) { - delete scroll.duration; - if (this.props.dateProfile) { // dates rendered yet? - __assign(scroll, this.computeDateScroll(duration)); - } - } - if (this.props.dateProfile) { // dates rendered yet? - this.applyDateScroll(scroll); - } - }; - View.prototype.computeDateScroll = function (duration) { - return {}; // subclasses must implement - }; - View.prototype.queryDateScroll = function () { - return {}; // subclasses must implement - }; - View.prototype.applyDateScroll = function (scroll) { - // subclasses must implement - }; - // for API - View.prototype.scrollToDuration = function (duration) { - this.applyScroll({ duration: duration }, false); - }; - return View; -}(DateComponent)); -EmitterMixin.mixInto(View); -View.prototype.usesMinMaxTime = false; -View.prototype.dateProfileGeneratorClass = DateProfileGenerator; - -var FgEventRenderer = /** @class */ (function () { - function FgEventRenderer(context) { - this.segs = []; - this.isSizeDirty = false; - this.context = context; - } - FgEventRenderer.prototype.renderSegs = function (segs, mirrorInfo) { - this.rangeUpdated(); // called too frequently :( - // render an `.el` on each seg - // returns a subset of the segs. segs that were actually rendered - segs = this.renderSegEls(segs, mirrorInfo); - this.segs = segs; - this.attachSegs(segs, mirrorInfo); - this.isSizeDirty = true; - this.context.view.triggerRenderedSegs(this.segs, Boolean(mirrorInfo)); - }; - FgEventRenderer.prototype.unrender = function (_segs, mirrorInfo) { - this.context.view.triggerWillRemoveSegs(this.segs, Boolean(mirrorInfo)); - this.detachSegs(this.segs); - this.segs = []; - }; - // Updates values that rely on options and also relate to range - FgEventRenderer.prototype.rangeUpdated = function () { - var options = this.context.options; - var displayEventTime; - var displayEventEnd; - this.eventTimeFormat = createFormatter(options.eventTimeFormat || this.computeEventTimeFormat(), options.defaultRangeSeparator); - displayEventTime = options.displayEventTime; - if (displayEventTime == null) { - displayEventTime = this.computeDisplayEventTime(); // might be based off of range - } - displayEventEnd = options.displayEventEnd; - if (displayEventEnd == null) { - displayEventEnd = this.computeDisplayEventEnd(); // might be based off of range - } - this.displayEventTime = displayEventTime; - this.displayEventEnd = displayEventEnd; - }; - // Renders and assigns an `el` property for each foreground event segment. - // Only returns segments that successfully rendered. - FgEventRenderer.prototype.renderSegEls = function (segs, mirrorInfo) { - var html = ''; - var i; - if (segs.length) { // don't build an empty html string - // build a large concatenation of event segment HTML - for (i = 0; i < segs.length; i++) { - html += this.renderSegHtml(segs[i], mirrorInfo); - } - // Grab individual elements from the combined HTML string. Use each as the default rendering. - // Then, compute the 'el' for each segment. An el might be null if the eventRender callback returned false. - htmlToElements(html).forEach(function (el, i) { - var seg = segs[i]; - if (el) { - seg.el = el; - } - }); - segs = filterSegsViaEls(this.context.view, segs, Boolean(mirrorInfo)); - } - return segs; - }; - // Generic utility for generating the HTML classNames for an event segment's element - FgEventRenderer.prototype.getSegClasses = function (seg, isDraggable, isResizable, mirrorInfo) { - var classes = [ - 'fc-event', - seg.isStart ? 'fc-start' : 'fc-not-start', - seg.isEnd ? 'fc-end' : 'fc-not-end' - ].concat(seg.eventRange.ui.classNames); - if (isDraggable) { - classes.push('fc-draggable'); - } - if (isResizable) { - classes.push('fc-resizable'); - } - if (mirrorInfo) { - classes.push('fc-mirror'); - if (mirrorInfo.isDragging) { - classes.push('fc-dragging'); - } - if (mirrorInfo.isResizing) { - classes.push('fc-resizing'); - } - } - return classes; - }; - // Compute the text that should be displayed on an event's element. - // `range` can be the Event object itself, or something range-like, with at least a `start`. - // If event times are disabled, or the event has no time, will return a blank string. - // If not specified, formatter will default to the eventTimeFormat setting, - // and displayEnd will default to the displayEventEnd setting. - FgEventRenderer.prototype.getTimeText = function (eventRange, formatter, displayEnd) { - var def = eventRange.def, instance = eventRange.instance; - return this._getTimeText(instance.range.start, def.hasEnd ? instance.range.end : null, def.allDay, formatter, displayEnd, instance.forcedStartTzo, instance.forcedEndTzo); - }; - FgEventRenderer.prototype._getTimeText = function (start, end, allDay, formatter, displayEnd, forcedStartTzo, forcedEndTzo) { - var dateEnv = this.context.dateEnv; - if (formatter == null) { - formatter = this.eventTimeFormat; - } - if (displayEnd == null) { - displayEnd = this.displayEventEnd; - } - if (this.displayEventTime && !allDay) { - if (displayEnd && end) { - return dateEnv.formatRange(start, end, formatter, { - forcedStartTzo: forcedStartTzo, - forcedEndTzo: forcedEndTzo - }); - } - else { - return dateEnv.format(start, formatter, { - forcedTzo: forcedStartTzo - }); - } - } - return ''; - }; - FgEventRenderer.prototype.computeEventTimeFormat = function () { - return { - hour: 'numeric', - minute: '2-digit', - omitZeroMinute: true - }; - }; - FgEventRenderer.prototype.computeDisplayEventTime = function () { - return true; - }; - FgEventRenderer.prototype.computeDisplayEventEnd = function () { - return true; - }; - // Utility for generating event skin-related CSS properties - FgEventRenderer.prototype.getSkinCss = function (ui) { - return { - 'background-color': ui.backgroundColor, - 'border-color': ui.borderColor, - color: ui.textColor - }; - }; - FgEventRenderer.prototype.sortEventSegs = function (segs) { - var specs = this.context.view.eventOrderSpecs; - var objs = segs.map(buildSegCompareObj); - objs.sort(function (obj0, obj1) { - return compareByFieldSpecs(obj0, obj1, specs); - }); - return objs.map(function (c) { - return c._seg; - }); - }; - FgEventRenderer.prototype.computeSizes = function (force) { - if (force || this.isSizeDirty) { - this.computeSegSizes(this.segs); - } - }; - FgEventRenderer.prototype.assignSizes = function (force) { - if (force || this.isSizeDirty) { - this.assignSegSizes(this.segs); - this.isSizeDirty = false; - } - }; - FgEventRenderer.prototype.computeSegSizes = function (segs) { - }; - FgEventRenderer.prototype.assignSegSizes = function (segs) { - }; - // Manipulation on rendered segs - FgEventRenderer.prototype.hideByHash = function (hash) { - if (hash) { - for (var _i = 0, _a = this.segs; _i < _a.length; _i++) { - var seg = _a[_i]; - if (hash[seg.eventRange.instance.instanceId]) { - seg.el.style.visibility = 'hidden'; - } - } - } - }; - FgEventRenderer.prototype.showByHash = function (hash) { - if (hash) { - for (var _i = 0, _a = this.segs; _i < _a.length; _i++) { - var seg = _a[_i]; - if (hash[seg.eventRange.instance.instanceId]) { - seg.el.style.visibility = ''; - } - } - } - }; - FgEventRenderer.prototype.selectByInstanceId = function (instanceId) { - if (instanceId) { - for (var _i = 0, _a = this.segs; _i < _a.length; _i++) { - var seg = _a[_i]; - var eventInstance = seg.eventRange.instance; - if (eventInstance && eventInstance.instanceId === instanceId && - seg.el // necessary? - ) { - seg.el.classList.add('fc-selected'); - } - } - } - }; - FgEventRenderer.prototype.unselectByInstanceId = function (instanceId) { - if (instanceId) { - for (var _i = 0, _a = this.segs; _i < _a.length; _i++) { - var seg = _a[_i]; - if (seg.el) { // necessary? - seg.el.classList.remove('fc-selected'); - } - } - } - }; - return FgEventRenderer; -}()); -// returns a object with all primitive props that can be compared -function buildSegCompareObj(seg) { - var eventDef = seg.eventRange.def; - var range = seg.eventRange.instance.range; - var start = range.start ? range.start.valueOf() : 0; // TODO: better support for open-range events - var end = range.end ? range.end.valueOf() : 0; // " - return __assign({}, eventDef.extendedProps, eventDef, { id: eventDef.publicId, start: start, - end: end, duration: end - start, allDay: Number(eventDef.allDay), _seg: seg // for later retrieval - }); -} - -var FillRenderer = /** @class */ (function () { - function FillRenderer(context) { - this.fillSegTag = 'div'; - this.dirtySizeFlags = {}; - this.context = context; - this.containerElsByType = {}; - this.segsByType = {}; - } - FillRenderer.prototype.getSegsByType = function (type) { - return this.segsByType[type] || []; - }; - FillRenderer.prototype.renderSegs = function (type, segs) { - var _a; - var renderedSegs = this.renderSegEls(type, segs); // assignes `.el` to each seg. returns successfully rendered segs - var containerEls = this.attachSegs(type, renderedSegs); - if (containerEls) { - (_a = (this.containerElsByType[type] || (this.containerElsByType[type] = []))).push.apply(_a, containerEls); - } - this.segsByType[type] = renderedSegs; - if (type === 'bgEvent') { - this.context.view.triggerRenderedSegs(renderedSegs, false); // isMirror=false - } - this.dirtySizeFlags[type] = true; - }; - // Unrenders a specific type of fill that is currently rendered on the grid - FillRenderer.prototype.unrender = function (type) { - var segs = this.segsByType[type]; - if (segs) { - if (type === 'bgEvent') { - this.context.view.triggerWillRemoveSegs(segs, false); // isMirror=false - } - this.detachSegs(type, segs); - } - }; - // Renders and assigns an `el` property for each fill segment. Generic enough to work with different types. - // Only returns segments that successfully rendered. - FillRenderer.prototype.renderSegEls = function (type, segs) { - var _this = this; - var html = ''; - var i; - if (segs.length) { - // build a large concatenation of segment HTML - for (i = 0; i < segs.length; i++) { - html += this.renderSegHtml(type, segs[i]); - } - // Grab individual elements from the combined HTML string. Use each as the default rendering. - // Then, compute the 'el' for each segment. - htmlToElements(html).forEach(function (el, i) { - var seg = segs[i]; - if (el) { - seg.el = el; - } - }); - if (type === 'bgEvent') { - segs = filterSegsViaEls(this.context.view, segs, false // isMirror. background events can never be mirror elements - ); - } - // correct element type? (would be bad if a non-TD were inserted into a table for example) - segs = segs.filter(function (seg) { - return elementMatches(seg.el, _this.fillSegTag); - }); - } - return segs; - }; - // Builds the HTML needed for one fill segment. Generic enough to work with different types. - FillRenderer.prototype.renderSegHtml = function (type, seg) { - var css = null; - var classNames = []; - if (type !== 'highlight' && type !== 'businessHours') { - css = { - 'background-color': seg.eventRange.ui.backgroundColor - }; - } - if (type !== 'highlight') { - classNames = classNames.concat(seg.eventRange.ui.classNames); - } - if (type === 'businessHours') { - classNames.push('fc-bgevent'); - } - else { - classNames.push('fc-' + type.toLowerCase()); - } - return '<' + this.fillSegTag + - (classNames.length ? ' class="' + classNames.join(' ') + '"' : '') + - (css ? ' style="' + cssToStr(css) + '"' : '') + - '>'; - }; - FillRenderer.prototype.detachSegs = function (type, segs) { - var containerEls = this.containerElsByType[type]; - if (containerEls) { - containerEls.forEach(removeElement); - delete this.containerElsByType[type]; - } - }; - FillRenderer.prototype.computeSizes = function (force) { - for (var type in this.segsByType) { - if (force || this.dirtySizeFlags[type]) { - this.computeSegSizes(this.segsByType[type]); - } - } - }; - FillRenderer.prototype.assignSizes = function (force) { - for (var type in this.segsByType) { - if (force || this.dirtySizeFlags[type]) { - this.assignSegSizes(this.segsByType[type]); - } - } - this.dirtySizeFlags = {}; - }; - FillRenderer.prototype.computeSegSizes = function (segs) { - }; - FillRenderer.prototype.assignSegSizes = function (segs) { - }; - return FillRenderer; -}()); - -var NamedTimeZoneImpl = /** @class */ (function () { - function NamedTimeZoneImpl(timeZoneName) { - this.timeZoneName = timeZoneName; - } - return NamedTimeZoneImpl; -}()); - -/* -An abstraction for a dragging interaction originating on an event. -Does higher-level things than PointerDragger, such as possibly: -- a "mirror" that moves with the pointer -- a minimum number of pixels or other criteria for a true drag to begin - -subclasses must emit: -- pointerdown -- dragstart -- dragmove -- pointerup -- dragend -*/ -var ElementDragging = /** @class */ (function () { - function ElementDragging(el) { - this.emitter = new EmitterMixin(); - } - ElementDragging.prototype.destroy = function () { - }; - ElementDragging.prototype.setMirrorIsVisible = function (bool) { - // optional if subclass doesn't want to support a mirror - }; - ElementDragging.prototype.setMirrorNeedsRevert = function (bool) { - // optional if subclass doesn't want to support a mirror - }; - ElementDragging.prototype.setAutoScrollEnabled = function (bool) { - // optional - }; - return ElementDragging; -}()); - -function formatDate(dateInput, settings) { - if (settings === void 0) { settings = {}; } - var dateEnv = buildDateEnv$1(settings); - var formatter = createFormatter(settings); - var dateMeta = dateEnv.createMarkerMeta(dateInput); - if (!dateMeta) { // TODO: warning? - return ''; - } - return dateEnv.format(dateMeta.marker, formatter, { - forcedTzo: dateMeta.forcedTzo - }); -} -function formatRange(startInput, endInput, settings // mixture of env and formatter settings -) { - var dateEnv = buildDateEnv$1(typeof settings === 'object' && settings ? settings : {}); // pass in if non-null object - var formatter = createFormatter(settings, globalDefaults.defaultRangeSeparator); - var startMeta = dateEnv.createMarkerMeta(startInput); - var endMeta = dateEnv.createMarkerMeta(endInput); - if (!startMeta || !endMeta) { // TODO: warning? - return ''; - } - return dateEnv.formatRange(startMeta.marker, endMeta.marker, formatter, { - forcedStartTzo: startMeta.forcedTzo, - forcedEndTzo: endMeta.forcedTzo, - isEndExclusive: settings.isEndExclusive - }); -} -// TODO: more DRY and optimized -function buildDateEnv$1(settings) { - var locale = buildLocale(settings.locale || 'en', parseRawLocales([]).map); // TODO: don't hardcode 'en' everywhere - // ensure required settings - settings = __assign({ timeZone: globalDefaults.timeZone, calendarSystem: 'gregory' }, settings, { locale: locale }); - return new DateEnv(settings); -} - -var DRAG_META_PROPS = { - startTime: createDuration, - duration: createDuration, - create: Boolean, - sourceId: String -}; -var DRAG_META_DEFAULTS = { - create: true -}; -function parseDragMeta(raw) { - var leftoverProps = {}; - var refined = refineProps(raw, DRAG_META_PROPS, DRAG_META_DEFAULTS, leftoverProps); - refined.leftoverProps = leftoverProps; - return refined; -} - -// Computes a default column header formatting string if `colFormat` is not explicitly defined -function computeFallbackHeaderFormat(datesRepDistinctDays, dayCnt) { - // if more than one week row, or if there are a lot of columns with not much space, - // put just the day numbers will be in each cell - if (!datesRepDistinctDays || dayCnt > 10) { - return { weekday: 'short' }; // "Sat" - } - else if (dayCnt > 1) { - return { weekday: 'short', month: 'numeric', day: 'numeric', omitCommas: true }; // "Sat 11/12" - } - else { - return { weekday: 'long' }; // "Saturday" - } -} -function renderDateCell(dateMarker, dateProfile, datesRepDistinctDays, colCnt, colHeadFormat, context, colspan, otherAttrs) { - var view = context.view, dateEnv = context.dateEnv, theme = context.theme, options = context.options; - var isDateValid = rangeContainsMarker(dateProfile.activeRange, dateMarker); // TODO: called too frequently. cache somehow. - var classNames = [ - 'fc-day-header', - theme.getClass('widgetHeader') - ]; - var innerHtml; - if (typeof options.columnHeaderHtml === 'function') { - innerHtml = options.columnHeaderHtml(dateEnv.toDate(dateMarker)); - } - else if (typeof options.columnHeaderText === 'function') { - innerHtml = htmlEscape(options.columnHeaderText(dateEnv.toDate(dateMarker))); - } - else { - innerHtml = htmlEscape(dateEnv.format(dateMarker, colHeadFormat)); - } - // if only one row of days, the classNames on the header can represent the specific days beneath - if (datesRepDistinctDays) { - classNames = classNames.concat( - // includes the day-of-week class - // noThemeHighlight=true (don't highlight the header) - getDayClasses(dateMarker, dateProfile, context, true)); - } - else { - classNames.push('fc-' + DAY_IDS[dateMarker.getUTCDay()]); // only add the day-of-week class - } - return '' + - ' 1 ? - ' colspan="' + colspan + '"' : - '') + - (otherAttrs ? - ' ' + otherAttrs : - '') + - '>' + - (isDateValid ? - // don't make a link if the heading could represent multiple days, or if there's only one day (forceOff) - buildGotoAnchorHtml(view, { date: dateMarker, forceOff: !datesRepDistinctDays || colCnt === 1 }, innerHtml) : - // if not valid, display text, but no link - innerHtml) + - ''; -} - -var DayHeader = /** @class */ (function (_super) { - __extends(DayHeader, _super); - function DayHeader(context, parentEl) { - var _this = _super.call(this, context) || this; - parentEl.innerHTML = ''; // because might be nbsp - parentEl.appendChild(_this.el = htmlToElement('
' + - '' + - '' + - '
' + - '
')); - _this.thead = _this.el.querySelector('thead'); - return _this; - } - DayHeader.prototype.destroy = function () { - removeElement(this.el); - }; - DayHeader.prototype.render = function (props) { - var dates = props.dates, datesRepDistinctDays = props.datesRepDistinctDays; - var parts = []; - if (props.renderIntroHtml) { - parts.push(props.renderIntroHtml()); - } - var colHeadFormat = createFormatter(this.opt('columnHeaderFormat') || - computeFallbackHeaderFormat(datesRepDistinctDays, dates.length)); - for (var _i = 0, dates_1 = dates; _i < dates_1.length; _i++) { - var date = dates_1[_i]; - parts.push(renderDateCell(date, props.dateProfile, datesRepDistinctDays, dates.length, colHeadFormat, this.context)); - } - if (this.isRtl) { - parts.reverse(); - } - this.thead.innerHTML = '' + parts.join('') + ''; - }; - return DayHeader; -}(Component)); - -var DaySeries = /** @class */ (function () { - function DaySeries(range, dateProfileGenerator) { - var date = range.start; - var end = range.end; - var indices = []; - var dates = []; - var dayIndex = -1; - while (date < end) { // loop each day from start to end - if (dateProfileGenerator.isHiddenDay(date)) { - indices.push(dayIndex + 0.5); // mark that it's between indices - } - else { - dayIndex++; - indices.push(dayIndex); - dates.push(date); - } - date = addDays(date, 1); - } - this.dates = dates; - this.indices = indices; - this.cnt = dates.length; - } - DaySeries.prototype.sliceRange = function (range) { - var firstIndex = this.getDateDayIndex(range.start); // inclusive first index - var lastIndex = this.getDateDayIndex(addDays(range.end, -1)); // inclusive last index - var clippedFirstIndex = Math.max(0, firstIndex); - var clippedLastIndex = Math.min(this.cnt - 1, lastIndex); - // deal with in-between indices - clippedFirstIndex = Math.ceil(clippedFirstIndex); // in-between starts round to next cell - clippedLastIndex = Math.floor(clippedLastIndex); // in-between ends round to prev cell - if (clippedFirstIndex <= clippedLastIndex) { - return { - firstIndex: clippedFirstIndex, - lastIndex: clippedLastIndex, - isStart: firstIndex === clippedFirstIndex, - isEnd: lastIndex === clippedLastIndex - }; - } - else { - return null; - } - }; - // Given a date, returns its chronolocial cell-index from the first cell of the grid. - // If the date lies between cells (because of hiddenDays), returns a floating-point value between offsets. - // If before the first offset, returns a negative number. - // If after the last offset, returns an offset past the last cell offset. - // Only works for *start* dates of cells. Will not work for exclusive end dates for cells. - DaySeries.prototype.getDateDayIndex = function (date) { - var indices = this.indices; - var dayOffset = Math.floor(diffDays(this.dates[0], date)); - if (dayOffset < 0) { - return indices[0] - 1; - } - else if (dayOffset >= indices.length) { - return indices[indices.length - 1] + 1; - } - else { - return indices[dayOffset]; - } - }; - return DaySeries; -}()); - -var DayTable = /** @class */ (function () { - function DayTable(daySeries, breakOnWeeks) { - var dates = daySeries.dates; - var daysPerRow; - var firstDay; - var rowCnt; - if (breakOnWeeks) { - // count columns until the day-of-week repeats - firstDay = dates[0].getUTCDay(); - for (daysPerRow = 1; daysPerRow < dates.length; daysPerRow++) { - if (dates[daysPerRow].getUTCDay() === firstDay) { - break; - } - } - rowCnt = Math.ceil(dates.length / daysPerRow); - } - else { - rowCnt = 1; - daysPerRow = dates.length; - } - this.rowCnt = rowCnt; - this.colCnt = daysPerRow; - this.daySeries = daySeries; - this.cells = this.buildCells(); - this.headerDates = this.buildHeaderDates(); - } - DayTable.prototype.buildCells = function () { - var rows = []; - for (var row = 0; row < this.rowCnt; row++) { - var cells = []; - for (var col = 0; col < this.colCnt; col++) { - cells.push(this.buildCell(row, col)); - } - rows.push(cells); - } - return rows; - }; - DayTable.prototype.buildCell = function (row, col) { - return { - date: this.daySeries.dates[row * this.colCnt + col] - }; - }; - DayTable.prototype.buildHeaderDates = function () { - var dates = []; - for (var col = 0; col < this.colCnt; col++) { - dates.push(this.cells[0][col].date); - } - return dates; - }; - DayTable.prototype.sliceRange = function (range) { - var colCnt = this.colCnt; - var seriesSeg = this.daySeries.sliceRange(range); - var segs = []; - if (seriesSeg) { - var firstIndex = seriesSeg.firstIndex, lastIndex = seriesSeg.lastIndex; - var index = firstIndex; - while (index <= lastIndex) { - var row = Math.floor(index / colCnt); - var nextIndex = Math.min((row + 1) * colCnt, lastIndex + 1); - segs.push({ - row: row, - firstCol: index % colCnt, - lastCol: (nextIndex - 1) % colCnt, - isStart: seriesSeg.isStart && index === firstIndex, - isEnd: seriesSeg.isEnd && (nextIndex - 1) === lastIndex - }); - index = nextIndex; - } - } - return segs; - }; - return DayTable; -}()); - -var Slicer = /** @class */ (function () { - function Slicer() { - this.sliceBusinessHours = memoize(this._sliceBusinessHours); - this.sliceDateSelection = memoize(this._sliceDateSpan); - this.sliceEventStore = memoize(this._sliceEventStore); - this.sliceEventDrag = memoize(this._sliceInteraction); - this.sliceEventResize = memoize(this._sliceInteraction); - } - Slicer.prototype.sliceProps = function (props, dateProfile, nextDayThreshold, component) { - var extraArgs = []; - for (var _i = 4; _i < arguments.length; _i++) { - extraArgs[_i - 4] = arguments[_i]; - } - var eventUiBases = props.eventUiBases; - var eventSegs = this.sliceEventStore.apply(this, [props.eventStore, eventUiBases, dateProfile, nextDayThreshold, component].concat(extraArgs)); - return { - dateSelectionSegs: this.sliceDateSelection.apply(this, [props.dateSelection, eventUiBases, component].concat(extraArgs)), - businessHourSegs: this.sliceBusinessHours.apply(this, [props.businessHours, dateProfile, nextDayThreshold, component].concat(extraArgs)), - fgEventSegs: eventSegs.fg, - bgEventSegs: eventSegs.bg, - eventDrag: this.sliceEventDrag.apply(this, [props.eventDrag, eventUiBases, dateProfile, nextDayThreshold, component].concat(extraArgs)), - eventResize: this.sliceEventResize.apply(this, [props.eventResize, eventUiBases, dateProfile, nextDayThreshold, component].concat(extraArgs)), - eventSelection: props.eventSelection - }; // TODO: give interactionSegs? - }; - Slicer.prototype.sliceNowDate = function (// does not memoize - date, component) { - var extraArgs = []; - for (var _i = 2; _i < arguments.length; _i++) { - extraArgs[_i - 2] = arguments[_i]; - } - return this._sliceDateSpan.apply(this, [{ range: { start: date, end: addMs(date, 1) }, allDay: false }, - {}, - component].concat(extraArgs)); - }; - Slicer.prototype._sliceBusinessHours = function (businessHours, dateProfile, nextDayThreshold, component) { - var extraArgs = []; - for (var _i = 4; _i < arguments.length; _i++) { - extraArgs[_i - 4] = arguments[_i]; - } - if (!businessHours) { - return []; - } - return this._sliceEventStore.apply(this, [expandRecurring(businessHours, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), component.calendar), - {}, - dateProfile, - nextDayThreshold, - component].concat(extraArgs)).bg; - }; - Slicer.prototype._sliceEventStore = function (eventStore, eventUiBases, dateProfile, nextDayThreshold, component) { - var extraArgs = []; - for (var _i = 5; _i < arguments.length; _i++) { - extraArgs[_i - 5] = arguments[_i]; - } - if (eventStore) { - var rangeRes = sliceEventStore(eventStore, eventUiBases, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), nextDayThreshold); - return { - bg: this.sliceEventRanges(rangeRes.bg, component, extraArgs), - fg: this.sliceEventRanges(rangeRes.fg, component, extraArgs) - }; - } - else { - return { bg: [], fg: [] }; - } - }; - Slicer.prototype._sliceInteraction = function (interaction, eventUiBases, dateProfile, nextDayThreshold, component) { - var extraArgs = []; - for (var _i = 5; _i < arguments.length; _i++) { - extraArgs[_i - 5] = arguments[_i]; - } - if (!interaction) { - return null; - } - var rangeRes = sliceEventStore(interaction.mutatedEvents, eventUiBases, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), nextDayThreshold); - return { - segs: this.sliceEventRanges(rangeRes.fg, component, extraArgs), - affectedInstances: interaction.affectedEvents.instances, - isEvent: interaction.isEvent, - sourceSeg: interaction.origSeg - }; - }; - Slicer.prototype._sliceDateSpan = function (dateSpan, eventUiBases, component) { - var extraArgs = []; - for (var _i = 3; _i < arguments.length; _i++) { - extraArgs[_i - 3] = arguments[_i]; - } - if (!dateSpan) { - return []; - } - var eventRange = fabricateEventRange(dateSpan, eventUiBases, component.calendar); - var segs = this.sliceRange.apply(this, [dateSpan.range].concat(extraArgs)); - for (var _a = 0, segs_1 = segs; _a < segs_1.length; _a++) { - var seg = segs_1[_a]; - seg.component = component; - seg.eventRange = eventRange; - } - return segs; - }; - /* - "complete" seg means it has component and eventRange - */ - Slicer.prototype.sliceEventRanges = function (eventRanges, component, // TODO: kill - extraArgs) { - var segs = []; - for (var _i = 0, eventRanges_1 = eventRanges; _i < eventRanges_1.length; _i++) { - var eventRange = eventRanges_1[_i]; - segs.push.apply(segs, this.sliceEventRange(eventRange, component, extraArgs)); - } - return segs; - }; - /* - "complete" seg means it has component and eventRange - */ - Slicer.prototype.sliceEventRange = function (eventRange, component, // TODO: kill - extraArgs) { - var segs = this.sliceRange.apply(this, [eventRange.range].concat(extraArgs)); - for (var _i = 0, segs_2 = segs; _i < segs_2.length; _i++) { - var seg = segs_2[_i]; - seg.component = component; - seg.eventRange = eventRange; - seg.isStart = eventRange.isStart && seg.isStart; - seg.isEnd = eventRange.isEnd && seg.isEnd; - } - return segs; - }; - return Slicer; -}()); -/* -for incorporating minTime/maxTime if appropriate -TODO: should be part of DateProfile! -TimelineDateProfile already does this btw -*/ -function computeActiveRange(dateProfile, isComponentAllDay) { - var range = dateProfile.activeRange; - if (isComponentAllDay) { - return range; - } - return { - start: addMs(range.start, dateProfile.minTime.milliseconds), - end: addMs(range.end, dateProfile.maxTime.milliseconds - 864e5) // 864e5 = ms in a day - }; -} - -// exports -// -------------------------------------------------------------------------------------------------- -var version = '4.3.1'; - -export { Calendar, Component, DateComponent, DateEnv, DateProfileGenerator, DayHeader, DaySeries, DayTable, ElementDragging, ElementScrollController, EmitterMixin, EventApi, FgEventRenderer, FillRenderer, Interaction, Mixin, NamedTimeZoneImpl, PositionCache, ScrollComponent, ScrollController, Slicer, Splitter, Theme, View, WindowScrollController, addDays, addDurations, addMs, addWeeks, allowContextMenu, allowSelection, appendToElement, applyAll, applyMutationToEventStore, applyStyle, applyStyleProp, asRoughMinutes, asRoughMs, asRoughSeconds, buildGotoAnchorHtml, buildSegCompareObj, capitaliseFirstLetter, combineEventUis, compareByFieldSpec, compareByFieldSpecs, compareNumbers, compensateScroll, computeClippingRect, computeEdges, computeFallbackHeaderFormat, computeHeightAndMargins, computeInnerRect, computeRect, computeVisibleDayRange, config, constrainPoint, createDuration, createElement, createEmptyEventStore, createEventInstance, createFormatter, createPlugin, cssToStr, debounce, diffDates, diffDayAndTime, diffDays, diffPoints, diffWeeks, diffWholeDays, diffWholeWeeks, disableCursor, distributeHeight, elementClosest, elementMatches, enableCursor, eventTupleToStore, filterEventStoreDefs, filterHash, findChildren, findElements, flexibleCompare, forceClassName, formatDate, formatIsoTimeString, formatRange, getAllDayHtml, getClippingParents, getDayClasses, getElSeg, getRectCenter, getRelevantEvents, globalDefaults, greatestDurationDenominator, hasBgRendering, htmlEscape, htmlToElement, insertAfterElement, interactionSettingsStore, interactionSettingsToStore, intersectRanges, intersectRects, isArraysEqual, isDateSpansEqual, isInt, isInteractionValid, isMultiDayRange, isPropsEqual, isPropsValid, isSingleDay, isValidDate, listenBySelector, mapHash, matchCellWidths, memoize, memoizeOutput, memoizeRendering, mergeEventStores, multiplyDuration, padStart, parseBusinessHours, parseDragMeta, parseEventDef, parseFieldSpecs, parse as parseMarker, pointInsideRect, prependToElement, preventContextMenu, preventDefault, preventSelection, processScopedUiProps, rangeContainsMarker, rangeContainsRange, rangesEqual, rangesIntersect, refineProps, removeElement, removeExact, renderDateCell, requestJson, sliceEventStore, startOfDay, subtractInnerElHeight, translateRect, uncompensateScroll, undistributeHeight, unpromisify, version, whenTransitionDone, wholeDivideDurations }; diff --git a/htdocs/public/high/plugins/fullcalendar/main.js b/htdocs/public/high/plugins/fullcalendar/main.js deleted file mode 100644 index ec0808d0..00000000 --- a/htdocs/public/high/plugins/fullcalendar/main.js +++ /dev/null @@ -1,8717 +0,0 @@ -/*! -FullCalendar Core Package v4.3.1 -Docs & License: https://fullcalendar.io/ -(c) 2019 Adam Shaw -*/ - -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : - typeof define === 'function' && define.amd ? define(['exports'], factory) : - (global = global || self, factory(global.FullCalendar = {})); -}(this, function (exports) { 'use strict'; - - // Creating - // ---------------------------------------------------------------------------------------------------------------- - var elementPropHash = { - className: true, - colSpan: true, - rowSpan: true - }; - var containerTagHash = { - '= rect.left && - point.left < rect.right && - point.top >= rect.top && - point.top < rect.bottom; - } - // Returns a new rectangle that is the intersection of the two rectangles. If they don't intersect, returns false - function intersectRects(rect1, rect2) { - var res = { - left: Math.max(rect1.left, rect2.left), - right: Math.min(rect1.right, rect2.right), - top: Math.max(rect1.top, rect2.top), - bottom: Math.min(rect1.bottom, rect2.bottom) - }; - if (res.left < res.right && res.top < res.bottom) { - return res; - } - return false; - } - function translateRect(rect, deltaX, deltaY) { - return { - left: rect.left + deltaX, - right: rect.right + deltaX, - top: rect.top + deltaY, - bottom: rect.bottom + deltaY - }; - } - // Returns a new point that will have been moved to reside within the given rectangle - function constrainPoint(point, rect) { - return { - left: Math.min(Math.max(point.left, rect.left), rect.right), - top: Math.min(Math.max(point.top, rect.top), rect.bottom) - }; - } - // Returns a point that is the center of the given rectangle - function getRectCenter(rect) { - return { - left: (rect.left + rect.right) / 2, - top: (rect.top + rect.bottom) / 2 - }; - } - // Subtracts point2's coordinates from point1's coordinates, returning a delta - function diffPoints(point1, point2) { - return { - left: point1.left - point2.left, - top: point1.top - point2.top - }; - } - - // Logic for determining if, when the element is right-to-left, the scrollbar appears on the left side - var isRtlScrollbarOnLeft = null; - function getIsRtlScrollbarOnLeft() { - if (isRtlScrollbarOnLeft === null) { - isRtlScrollbarOnLeft = computeIsRtlScrollbarOnLeft(); - } - return isRtlScrollbarOnLeft; - } - function computeIsRtlScrollbarOnLeft() { - var outerEl = createElement('div', { - style: { - position: 'absolute', - top: -1000, - left: 0, - border: 0, - padding: 0, - overflow: 'scroll', - direction: 'rtl' - } - }, '
'); - document.body.appendChild(outerEl); - var innerEl = outerEl.firstChild; - var res = innerEl.getBoundingClientRect().left > outerEl.getBoundingClientRect().left; - removeElement(outerEl); - return res; - } - // The scrollbar width computations in computeEdges are sometimes flawed when it comes to - // retina displays, rounding, and IE11. Massage them into a usable value. - function sanitizeScrollbarWidth(width) { - width = Math.max(0, width); // no negatives - width = Math.round(width); - return width; - } - - function computeEdges(el, getPadding) { - if (getPadding === void 0) { getPadding = false; } - var computedStyle = window.getComputedStyle(el); - var borderLeft = parseInt(computedStyle.borderLeftWidth, 10) || 0; - var borderRight = parseInt(computedStyle.borderRightWidth, 10) || 0; - var borderTop = parseInt(computedStyle.borderTopWidth, 10) || 0; - var borderBottom = parseInt(computedStyle.borderBottomWidth, 10) || 0; - // must use offset(Width|Height) because compatible with client(Width|Height) - var scrollbarLeftRight = sanitizeScrollbarWidth(el.offsetWidth - el.clientWidth - borderLeft - borderRight); - var scrollbarBottom = sanitizeScrollbarWidth(el.offsetHeight - el.clientHeight - borderTop - borderBottom); - var res = { - borderLeft: borderLeft, - borderRight: borderRight, - borderTop: borderTop, - borderBottom: borderBottom, - scrollbarBottom: scrollbarBottom, - scrollbarLeft: 0, - scrollbarRight: 0 - }; - if (getIsRtlScrollbarOnLeft() && computedStyle.direction === 'rtl') { // is the scrollbar on the left side? - res.scrollbarLeft = scrollbarLeftRight; - } - else { - res.scrollbarRight = scrollbarLeftRight; - } - if (getPadding) { - res.paddingLeft = parseInt(computedStyle.paddingLeft, 10) || 0; - res.paddingRight = parseInt(computedStyle.paddingRight, 10) || 0; - res.paddingTop = parseInt(computedStyle.paddingTop, 10) || 0; - res.paddingBottom = parseInt(computedStyle.paddingBottom, 10) || 0; - } - return res; - } - function computeInnerRect(el, goWithinPadding) { - if (goWithinPadding === void 0) { goWithinPadding = false; } - var outerRect = computeRect(el); - var edges = computeEdges(el, goWithinPadding); - var res = { - left: outerRect.left + edges.borderLeft + edges.scrollbarLeft, - right: outerRect.right - edges.borderRight - edges.scrollbarRight, - top: outerRect.top + edges.borderTop, - bottom: outerRect.bottom - edges.borderBottom - edges.scrollbarBottom - }; - if (goWithinPadding) { - res.left += edges.paddingLeft; - res.right -= edges.paddingRight; - res.top += edges.paddingTop; - res.bottom -= edges.paddingBottom; - } - return res; - } - function computeRect(el) { - var rect = el.getBoundingClientRect(); - return { - left: rect.left + window.pageXOffset, - top: rect.top + window.pageYOffset, - right: rect.right + window.pageXOffset, - bottom: rect.bottom + window.pageYOffset - }; - } - function computeViewportRect() { - return { - left: window.pageXOffset, - right: window.pageXOffset + document.documentElement.clientWidth, - top: window.pageYOffset, - bottom: window.pageYOffset + document.documentElement.clientHeight - }; - } - function computeHeightAndMargins(el) { - return el.getBoundingClientRect().height + computeVMargins(el); - } - function computeVMargins(el) { - var computed = window.getComputedStyle(el); - return parseInt(computed.marginTop, 10) + - parseInt(computed.marginBottom, 10); - } - // does not return window - function getClippingParents(el) { - var parents = []; - while (el instanceof HTMLElement) { // will stop when gets to document or null - var computedStyle = window.getComputedStyle(el); - if (computedStyle.position === 'fixed') { - break; - } - if ((/(auto|scroll)/).test(computedStyle.overflow + computedStyle.overflowY + computedStyle.overflowX)) { - parents.push(el); - } - el = el.parentNode; - } - return parents; - } - function computeClippingRect(el) { - return getClippingParents(el) - .map(function (el) { - return computeInnerRect(el); - }) - .concat(computeViewportRect()) - .reduce(function (rect0, rect1) { - return intersectRects(rect0, rect1) || rect1; // should always intersect - }); - } - - // Stops a mouse/touch event from doing it's native browser action - function preventDefault(ev) { - ev.preventDefault(); - } - // Event Delegation - // ---------------------------------------------------------------------------------------------------------------- - function listenBySelector(container, eventType, selector, handler) { - function realHandler(ev) { - var matchedChild = elementClosest(ev.target, selector); - if (matchedChild) { - handler.call(matchedChild, ev, matchedChild); - } - } - container.addEventListener(eventType, realHandler); - return function () { - container.removeEventListener(eventType, realHandler); - }; - } - function listenToHoverBySelector(container, selector, onMouseEnter, onMouseLeave) { - var currentMatchedChild; - return listenBySelector(container, 'mouseover', selector, function (ev, matchedChild) { - if (matchedChild !== currentMatchedChild) { - currentMatchedChild = matchedChild; - onMouseEnter(ev, matchedChild); - var realOnMouseLeave_1 = function (ev) { - currentMatchedChild = null; - onMouseLeave(ev, matchedChild); - matchedChild.removeEventListener('mouseleave', realOnMouseLeave_1); - }; - // listen to the next mouseleave, and then unattach - matchedChild.addEventListener('mouseleave', realOnMouseLeave_1); - } - }); - } - // Animation - // ---------------------------------------------------------------------------------------------------------------- - var transitionEventNames = [ - 'webkitTransitionEnd', - 'otransitionend', - 'oTransitionEnd', - 'msTransitionEnd', - 'transitionend' - ]; - // triggered only when the next single subsequent transition finishes - function whenTransitionDone(el, callback) { - var realCallback = function (ev) { - callback(ev); - transitionEventNames.forEach(function (eventName) { - el.removeEventListener(eventName, realCallback); - }); - }; - transitionEventNames.forEach(function (eventName) { - el.addEventListener(eventName, realCallback); // cross-browser way to determine when the transition finishes - }); - } - - var DAY_IDS = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat']; - // Adding - function addWeeks(m, n) { - var a = dateToUtcArray(m); - a[2] += n * 7; - return arrayToUtcDate(a); - } - function addDays(m, n) { - var a = dateToUtcArray(m); - a[2] += n; - return arrayToUtcDate(a); - } - function addMs(m, n) { - var a = dateToUtcArray(m); - a[6] += n; - return arrayToUtcDate(a); - } - // Diffing (all return floats) - function diffWeeks(m0, m1) { - return diffDays(m0, m1) / 7; - } - function diffDays(m0, m1) { - return (m1.valueOf() - m0.valueOf()) / (1000 * 60 * 60 * 24); - } - function diffHours(m0, m1) { - return (m1.valueOf() - m0.valueOf()) / (1000 * 60 * 60); - } - function diffMinutes(m0, m1) { - return (m1.valueOf() - m0.valueOf()) / (1000 * 60); - } - function diffSeconds(m0, m1) { - return (m1.valueOf() - m0.valueOf()) / 1000; - } - function diffDayAndTime(m0, m1) { - var m0day = startOfDay(m0); - var m1day = startOfDay(m1); - return { - years: 0, - months: 0, - days: Math.round(diffDays(m0day, m1day)), - milliseconds: (m1.valueOf() - m1day.valueOf()) - (m0.valueOf() - m0day.valueOf()) - }; - } - // Diffing Whole Units - function diffWholeWeeks(m0, m1) { - var d = diffWholeDays(m0, m1); - if (d !== null && d % 7 === 0) { - return d / 7; - } - return null; - } - function diffWholeDays(m0, m1) { - if (timeAsMs(m0) === timeAsMs(m1)) { - return Math.round(diffDays(m0, m1)); - } - return null; - } - // Start-Of - function startOfDay(m) { - return arrayToUtcDate([ - m.getUTCFullYear(), - m.getUTCMonth(), - m.getUTCDate() - ]); - } - function startOfHour(m) { - return arrayToUtcDate([ - m.getUTCFullYear(), - m.getUTCMonth(), - m.getUTCDate(), - m.getUTCHours() - ]); - } - function startOfMinute(m) { - return arrayToUtcDate([ - m.getUTCFullYear(), - m.getUTCMonth(), - m.getUTCDate(), - m.getUTCHours(), - m.getUTCMinutes() - ]); - } - function startOfSecond(m) { - return arrayToUtcDate([ - m.getUTCFullYear(), - m.getUTCMonth(), - m.getUTCDate(), - m.getUTCHours(), - m.getUTCMinutes(), - m.getUTCSeconds() - ]); - } - // Week Computation - function weekOfYear(marker, dow, doy) { - var y = marker.getUTCFullYear(); - var w = weekOfGivenYear(marker, y, dow, doy); - if (w < 1) { - return weekOfGivenYear(marker, y - 1, dow, doy); - } - var nextW = weekOfGivenYear(marker, y + 1, dow, doy); - if (nextW >= 1) { - return Math.min(w, nextW); - } - return w; - } - function weekOfGivenYear(marker, year, dow, doy) { - var firstWeekStart = arrayToUtcDate([year, 0, 1 + firstWeekOffset(year, dow, doy)]); - var dayStart = startOfDay(marker); - var days = Math.round(diffDays(firstWeekStart, dayStart)); - return Math.floor(days / 7) + 1; // zero-indexed - } - // start-of-first-week - start-of-year - function firstWeekOffset(year, dow, doy) { - // first-week day -- which january is always in the first week (4 for iso, 1 for other) - var fwd = 7 + dow - doy; - // first-week day local weekday -- which local weekday is fwd - var fwdlw = (7 + arrayToUtcDate([year, 0, fwd]).getUTCDay() - dow) % 7; - return -fwdlw + fwd - 1; - } - // Array Conversion - function dateToLocalArray(date) { - return [ - date.getFullYear(), - date.getMonth(), - date.getDate(), - date.getHours(), - date.getMinutes(), - date.getSeconds(), - date.getMilliseconds() - ]; - } - function arrayToLocalDate(a) { - return new Date(a[0], a[1] || 0, a[2] == null ? 1 : a[2], // day of month - a[3] || 0, a[4] || 0, a[5] || 0); - } - function dateToUtcArray(date) { - return [ - date.getUTCFullYear(), - date.getUTCMonth(), - date.getUTCDate(), - date.getUTCHours(), - date.getUTCMinutes(), - date.getUTCSeconds(), - date.getUTCMilliseconds() - ]; - } - function arrayToUtcDate(a) { - // according to web standards (and Safari), a month index is required. - // massage if only given a year. - if (a.length === 1) { - a = a.concat([0]); - } - return new Date(Date.UTC.apply(Date, a)); - } - // Other Utils - function isValidDate(m) { - return !isNaN(m.valueOf()); - } - function timeAsMs(m) { - return m.getUTCHours() * 1000 * 60 * 60 + - m.getUTCMinutes() * 1000 * 60 + - m.getUTCSeconds() * 1000 + - m.getUTCMilliseconds(); - } - - var INTERNAL_UNITS = ['years', 'months', 'days', 'milliseconds']; - var PARSE_RE = /^(-?)(?:(\d+)\.)?(\d+):(\d\d)(?::(\d\d)(?:\.(\d\d\d))?)?/; - // Parsing and Creation - function createDuration(input, unit) { - var _a; - if (typeof input === 'string') { - return parseString(input); - } - else if (typeof input === 'object' && input) { // non-null object - return normalizeObject(input); - } - else if (typeof input === 'number') { - return normalizeObject((_a = {}, _a[unit || 'milliseconds'] = input, _a)); - } - else { - return null; - } - } - function parseString(s) { - var m = PARSE_RE.exec(s); - if (m) { - var sign = m[1] ? -1 : 1; - return { - years: 0, - months: 0, - days: sign * (m[2] ? parseInt(m[2], 10) : 0), - milliseconds: sign * ((m[3] ? parseInt(m[3], 10) : 0) * 60 * 60 * 1000 + // hours - (m[4] ? parseInt(m[4], 10) : 0) * 60 * 1000 + // minutes - (m[5] ? parseInt(m[5], 10) : 0) * 1000 + // seconds - (m[6] ? parseInt(m[6], 10) : 0) // ms - ) - }; - } - return null; - } - function normalizeObject(obj) { - return { - years: obj.years || obj.year || 0, - months: obj.months || obj.month || 0, - days: (obj.days || obj.day || 0) + - getWeeksFromInput(obj) * 7, - milliseconds: (obj.hours || obj.hour || 0) * 60 * 60 * 1000 + // hours - (obj.minutes || obj.minute || 0) * 60 * 1000 + // minutes - (obj.seconds || obj.second || 0) * 1000 + // seconds - (obj.milliseconds || obj.millisecond || obj.ms || 0) // ms - }; - } - function getWeeksFromInput(obj) { - return obj.weeks || obj.week || 0; - } - // Equality - function durationsEqual(d0, d1) { - return d0.years === d1.years && - d0.months === d1.months && - d0.days === d1.days && - d0.milliseconds === d1.milliseconds; - } - function isSingleDay(dur) { - return dur.years === 0 && dur.months === 0 && dur.days === 1 && dur.milliseconds === 0; - } - // Simple Math - function addDurations(d0, d1) { - return { - years: d0.years + d1.years, - months: d0.months + d1.months, - days: d0.days + d1.days, - milliseconds: d0.milliseconds + d1.milliseconds - }; - } - function subtractDurations(d1, d0) { - return { - years: d1.years - d0.years, - months: d1.months - d0.months, - days: d1.days - d0.days, - milliseconds: d1.milliseconds - d0.milliseconds - }; - } - function multiplyDuration(d, n) { - return { - years: d.years * n, - months: d.months * n, - days: d.days * n, - milliseconds: d.milliseconds * n - }; - } - // Conversions - // "Rough" because they are based on average-case Gregorian months/years - function asRoughYears(dur) { - return asRoughDays(dur) / 365; - } - function asRoughMonths(dur) { - return asRoughDays(dur) / 30; - } - function asRoughDays(dur) { - return asRoughMs(dur) / 864e5; - } - function asRoughMinutes(dur) { - return asRoughMs(dur) / (1000 * 60); - } - function asRoughSeconds(dur) { - return asRoughMs(dur) / 1000; - } - function asRoughMs(dur) { - return dur.years * (365 * 864e5) + - dur.months * (30 * 864e5) + - dur.days * 864e5 + - dur.milliseconds; - } - // Advanced Math - function wholeDivideDurations(numerator, denominator) { - var res = null; - for (var i = 0; i < INTERNAL_UNITS.length; i++) { - var unit = INTERNAL_UNITS[i]; - if (denominator[unit]) { - var localRes = numerator[unit] / denominator[unit]; - if (!isInt(localRes) || (res !== null && res !== localRes)) { - return null; - } - res = localRes; - } - else if (numerator[unit]) { - // needs to divide by something but can't! - return null; - } - } - return res; - } - function greatestDurationDenominator(dur, dontReturnWeeks) { - var ms = dur.milliseconds; - if (ms) { - if (ms % 1000 !== 0) { - return { unit: 'millisecond', value: ms }; - } - if (ms % (1000 * 60) !== 0) { - return { unit: 'second', value: ms / 1000 }; - } - if (ms % (1000 * 60 * 60) !== 0) { - return { unit: 'minute', value: ms / (1000 * 60) }; - } - if (ms) { - return { unit: 'hour', value: ms / (1000 * 60 * 60) }; - } - } - if (dur.days) { - if (!dontReturnWeeks && dur.days % 7 === 0) { - return { unit: 'week', value: dur.days / 7 }; - } - return { unit: 'day', value: dur.days }; - } - if (dur.months) { - return { unit: 'month', value: dur.months }; - } - if (dur.years) { - return { unit: 'year', value: dur.years }; - } - return { unit: 'millisecond', value: 0 }; - } - - /* FullCalendar-specific DOM Utilities - ----------------------------------------------------------------------------------------------------------------------*/ - // Given the scrollbar widths of some other container, create borders/margins on rowEls in order to match the left - // and right space that was offset by the scrollbars. A 1-pixel border first, then margin beyond that. - function compensateScroll(rowEl, scrollbarWidths) { - if (scrollbarWidths.left) { - applyStyle(rowEl, { - borderLeftWidth: 1, - marginLeft: scrollbarWidths.left - 1 - }); - } - if (scrollbarWidths.right) { - applyStyle(rowEl, { - borderRightWidth: 1, - marginRight: scrollbarWidths.right - 1 - }); - } - } - // Undoes compensateScroll and restores all borders/margins - function uncompensateScroll(rowEl) { - applyStyle(rowEl, { - marginLeft: '', - marginRight: '', - borderLeftWidth: '', - borderRightWidth: '' - }); - } - // Make the mouse cursor express that an event is not allowed in the current area - function disableCursor() { - document.body.classList.add('fc-not-allowed'); - } - // Returns the mouse cursor to its original look - function enableCursor() { - document.body.classList.remove('fc-not-allowed'); - } - // Given a total available height to fill, have `els` (essentially child rows) expand to accomodate. - // By default, all elements that are shorter than the recommended height are expanded uniformly, not considering - // any other els that are already too tall. if `shouldRedistribute` is on, it considers these tall rows and - // reduces the available height. - function distributeHeight(els, availableHeight, shouldRedistribute) { - // *FLOORING NOTE*: we floor in certain places because zoom can give inaccurate floating-point dimensions, - // and it is better to be shorter than taller, to avoid creating unnecessary scrollbars. - var minOffset1 = Math.floor(availableHeight / els.length); // for non-last element - var minOffset2 = Math.floor(availableHeight - minOffset1 * (els.length - 1)); // for last element *FLOORING NOTE* - var flexEls = []; // elements that are allowed to expand. array of DOM nodes - var flexOffsets = []; // amount of vertical space it takes up - var flexHeights = []; // actual css height - var usedHeight = 0; - undistributeHeight(els); // give all elements their natural height - // find elements that are below the recommended height (expandable). - // important to query for heights in a single first pass (to avoid reflow oscillation). - els.forEach(function (el, i) { - var minOffset = i === els.length - 1 ? minOffset2 : minOffset1; - var naturalHeight = el.getBoundingClientRect().height; - var naturalOffset = naturalHeight + computeVMargins(el); - if (naturalOffset < minOffset) { - flexEls.push(el); - flexOffsets.push(naturalOffset); - flexHeights.push(naturalHeight); - } - else { - // this element stretches past recommended height (non-expandable). mark the space as occupied. - usedHeight += naturalOffset; - } - }); - // readjust the recommended height to only consider the height available to non-maxed-out rows. - if (shouldRedistribute) { - availableHeight -= usedHeight; - minOffset1 = Math.floor(availableHeight / flexEls.length); - minOffset2 = Math.floor(availableHeight - minOffset1 * (flexEls.length - 1)); // *FLOORING NOTE* - } - // assign heights to all expandable elements - flexEls.forEach(function (el, i) { - var minOffset = i === flexEls.length - 1 ? minOffset2 : minOffset1; - var naturalOffset = flexOffsets[i]; - var naturalHeight = flexHeights[i]; - var newHeight = minOffset - (naturalOffset - naturalHeight); // subtract the margin/padding - if (naturalOffset < minOffset) { // we check this again because redistribution might have changed things - el.style.height = newHeight + 'px'; - } - }); - } - // Undoes distrubuteHeight, restoring all els to their natural height - function undistributeHeight(els) { - els.forEach(function (el) { - el.style.height = ''; - }); - } - // Given `els`, a set of cells, find the cell with the largest natural width and set the widths of all the - // cells to be that width. - // PREREQUISITE: if you want a cell to take up width, it needs to have a single inner element w/ display:inline - function matchCellWidths(els) { - var maxInnerWidth = 0; - els.forEach(function (el) { - var innerEl = el.firstChild; // hopefully an element - if (innerEl instanceof HTMLElement) { - var innerWidth_1 = innerEl.getBoundingClientRect().width; - if (innerWidth_1 > maxInnerWidth) { - maxInnerWidth = innerWidth_1; - } - } - }); - maxInnerWidth++; // sometimes not accurate of width the text needs to stay on one line. insurance - els.forEach(function (el) { - el.style.width = maxInnerWidth + 'px'; - }); - return maxInnerWidth; - } - // Given one element that resides inside another, - // Subtracts the height of the inner element from the outer element. - function subtractInnerElHeight(outerEl, innerEl) { - // effin' IE8/9/10/11 sometimes returns 0 for dimensions. this weird hack was the only thing that worked - var reflowStyleProps = { - position: 'relative', - left: -1 // ensure reflow in case the el was already relative. negative is less likely to cause new scroll - }; - applyStyle(outerEl, reflowStyleProps); - applyStyle(innerEl, reflowStyleProps); - var diff = // grab the dimensions - outerEl.getBoundingClientRect().height - - innerEl.getBoundingClientRect().height; - // undo hack - var resetStyleProps = { position: '', left: '' }; - applyStyle(outerEl, resetStyleProps); - applyStyle(innerEl, resetStyleProps); - return diff; - } - /* Selection - ----------------------------------------------------------------------------------------------------------------------*/ - function preventSelection(el) { - el.classList.add('fc-unselectable'); - el.addEventListener('selectstart', preventDefault); - } - function allowSelection(el) { - el.classList.remove('fc-unselectable'); - el.removeEventListener('selectstart', preventDefault); - } - /* Context Menu - ----------------------------------------------------------------------------------------------------------------------*/ - function preventContextMenu(el) { - el.addEventListener('contextmenu', preventDefault); - } - function allowContextMenu(el) { - el.removeEventListener('contextmenu', preventDefault); - } - /* Object Ordering by Field - ----------------------------------------------------------------------------------------------------------------------*/ - function parseFieldSpecs(input) { - var specs = []; - var tokens = []; - var i; - var token; - if (typeof input === 'string') { - tokens = input.split(/\s*,\s*/); - } - else if (typeof input === 'function') { - tokens = [input]; - } - else if (Array.isArray(input)) { - tokens = input; - } - for (i = 0; i < tokens.length; i++) { - token = tokens[i]; - if (typeof token === 'string') { - specs.push(token.charAt(0) === '-' ? - { field: token.substring(1), order: -1 } : - { field: token, order: 1 }); - } - else if (typeof token === 'function') { - specs.push({ func: token }); - } - } - return specs; - } - function compareByFieldSpecs(obj0, obj1, fieldSpecs) { - var i; - var cmp; - for (i = 0; i < fieldSpecs.length; i++) { - cmp = compareByFieldSpec(obj0, obj1, fieldSpecs[i]); - if (cmp) { - return cmp; - } - } - return 0; - } - function compareByFieldSpec(obj0, obj1, fieldSpec) { - if (fieldSpec.func) { - return fieldSpec.func(obj0, obj1); - } - return flexibleCompare(obj0[fieldSpec.field], obj1[fieldSpec.field]) - * (fieldSpec.order || 1); - } - function flexibleCompare(a, b) { - if (!a && !b) { - return 0; - } - if (b == null) { - return -1; - } - if (a == null) { - return 1; - } - if (typeof a === 'string' || typeof b === 'string') { - return String(a).localeCompare(String(b)); - } - return a - b; - } - /* String Utilities - ----------------------------------------------------------------------------------------------------------------------*/ - function capitaliseFirstLetter(str) { - return str.charAt(0).toUpperCase() + str.slice(1); - } - function padStart(val, len) { - var s = String(val); - return '000'.substr(0, len - s.length) + s; - } - /* Number Utilities - ----------------------------------------------------------------------------------------------------------------------*/ - function compareNumbers(a, b) { - return a - b; - } - function isInt(n) { - return n % 1 === 0; - } - /* Weird Utilities - ----------------------------------------------------------------------------------------------------------------------*/ - function applyAll(functions, thisObj, args) { - if (typeof functions === 'function') { // supplied a single function - functions = [functions]; - } - if (functions) { - var i = void 0; - var ret = void 0; - for (i = 0; i < functions.length; i++) { - ret = functions[i].apply(thisObj, args) || ret; - } - return ret; - } - } - function firstDefined() { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - for (var i = 0; i < args.length; i++) { - if (args[i] !== undefined) { - return args[i]; - } - } - } - // Returns a function, that, as long as it continues to be invoked, will not - // be triggered. The function will be called after it stops being called for - // N milliseconds. If `immediate` is passed, trigger the function on the - // leading edge, instead of the trailing. - // https://github.com/jashkenas/underscore/blob/1.6.0/underscore.js#L714 - function debounce(func, wait) { - var timeout; - var args; - var context; - var timestamp; - var result; - var later = function () { - var last = new Date().valueOf() - timestamp; - if (last < wait) { - timeout = setTimeout(later, wait - last); - } - else { - timeout = null; - result = func.apply(context, args); - context = args = null; - } - }; - return function () { - context = this; - args = arguments; - timestamp = new Date().valueOf(); - if (!timeout) { - timeout = setTimeout(later, wait); - } - return result; - }; - } - // Number and Boolean are only types that defaults or not computed for - // TODO: write more comments - function refineProps(rawProps, processors, defaults, leftoverProps) { - if (defaults === void 0) { defaults = {}; } - var refined = {}; - for (var key in processors) { - var processor = processors[key]; - if (rawProps[key] !== undefined) { - // found - if (processor === Function) { - refined[key] = typeof rawProps[key] === 'function' ? rawProps[key] : null; - } - else if (processor) { // a refining function? - refined[key] = processor(rawProps[key]); - } - else { - refined[key] = rawProps[key]; - } - } - else if (defaults[key] !== undefined) { - // there's an explicit default - refined[key] = defaults[key]; - } - else { - // must compute a default - if (processor === String) { - refined[key] = ''; // empty string is default for String - } - else if (!processor || processor === Number || processor === Boolean || processor === Function) { - refined[key] = null; // assign null for other non-custom processor funcs - } - else { - refined[key] = processor(null); // run the custom processor func - } - } - } - if (leftoverProps) { - for (var key in rawProps) { - if (processors[key] === undefined) { - leftoverProps[key] = rawProps[key]; - } - } - } - return refined; - } - /* Date stuff that doesn't belong in datelib core - ----------------------------------------------------------------------------------------------------------------------*/ - // given a timed range, computes an all-day range that has the same exact duration, - // but whose start time is aligned with the start of the day. - function computeAlignedDayRange(timedRange) { - var dayCnt = Math.floor(diffDays(timedRange.start, timedRange.end)) || 1; - var start = startOfDay(timedRange.start); - var end = addDays(start, dayCnt); - return { start: start, end: end }; - } - // given a timed range, computes an all-day range based on how for the end date bleeds into the next day - // TODO: give nextDayThreshold a default arg - function computeVisibleDayRange(timedRange, nextDayThreshold) { - if (nextDayThreshold === void 0) { nextDayThreshold = createDuration(0); } - var startDay = null; - var endDay = null; - if (timedRange.end) { - endDay = startOfDay(timedRange.end); - var endTimeMS = timedRange.end.valueOf() - endDay.valueOf(); // # of milliseconds into `endDay` - // If the end time is actually inclusively part of the next day and is equal to or - // beyond the next day threshold, adjust the end to be the exclusive end of `endDay`. - // Otherwise, leaving it as inclusive will cause it to exclude `endDay`. - if (endTimeMS && endTimeMS >= asRoughMs(nextDayThreshold)) { - endDay = addDays(endDay, 1); - } - } - if (timedRange.start) { - startDay = startOfDay(timedRange.start); // the beginning of the day the range starts - // If end is within `startDay` but not past nextDayThreshold, assign the default duration of one day. - if (endDay && endDay <= startDay) { - endDay = addDays(startDay, 1); - } - } - return { start: startDay, end: endDay }; - } - // spans from one day into another? - function isMultiDayRange(range) { - var visibleRange = computeVisibleDayRange(range); - return diffDays(visibleRange.start, visibleRange.end) > 1; - } - function diffDates(date0, date1, dateEnv, largeUnit) { - if (largeUnit === 'year') { - return createDuration(dateEnv.diffWholeYears(date0, date1), 'year'); - } - else if (largeUnit === 'month') { - return createDuration(dateEnv.diffWholeMonths(date0, date1), 'month'); - } - else { - return diffDayAndTime(date0, date1); // returns a duration - } - } - - /*! ***************************************************************************** - Copyright (c) Microsoft Corporation. All rights reserved. - Licensed under the Apache License, Version 2.0 (the "License"); you may not use - this file except in compliance with the License. You may obtain a copy of the - License at http://www.apache.org/licenses/LICENSE-2.0 - - THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED - WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, - MERCHANTABLITY OR NON-INFRINGEMENT. - - See the Apache Version 2.0 License for specific language governing permissions - and limitations under the License. - ***************************************************************************** */ - /* global Reflect, Promise */ - - var extendStatics = function(d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - - function __extends(d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - } - - var __assign = function() { - __assign = Object.assign || function __assign(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); - }; - - function parseRecurring(eventInput, allDayDefault, dateEnv, recurringTypes, leftovers) { - for (var i = 0; i < recurringTypes.length; i++) { - var localLeftovers = {}; - var parsed = recurringTypes[i].parse(eventInput, localLeftovers, dateEnv); - if (parsed) { - var allDay = localLeftovers.allDay; - delete localLeftovers.allDay; // remove from leftovers - if (allDay == null) { - allDay = allDayDefault; - if (allDay == null) { - allDay = parsed.allDayGuess; - if (allDay == null) { - allDay = false; - } - } - } - __assign(leftovers, localLeftovers); - return { - allDay: allDay, - duration: parsed.duration, - typeData: parsed.typeData, - typeId: i - }; - } - } - return null; - } - /* - Event MUST have a recurringDef - */ - function expandRecurringRanges(eventDef, duration, framingRange, dateEnv, recurringTypes) { - var typeDef = recurringTypes[eventDef.recurringDef.typeId]; - var markers = typeDef.expand(eventDef.recurringDef.typeData, { - start: dateEnv.subtract(framingRange.start, duration), - end: framingRange.end - }, dateEnv); - // the recurrence plugins don't guarantee that all-day events are start-of-day, so we have to - if (eventDef.allDay) { - markers = markers.map(startOfDay); - } - return markers; - } - - var hasOwnProperty = Object.prototype.hasOwnProperty; - // Merges an array of objects into a single object. - // The second argument allows for an array of property names who's object values will be merged together. - function mergeProps(propObjs, complexProps) { - var dest = {}; - var i; - var name; - var complexObjs; - var j; - var val; - var props; - if (complexProps) { - for (i = 0; i < complexProps.length; i++) { - name = complexProps[i]; - complexObjs = []; - // collect the trailing object values, stopping when a non-object is discovered - for (j = propObjs.length - 1; j >= 0; j--) { - val = propObjs[j][name]; - if (typeof val === 'object' && val) { // non-null object - complexObjs.unshift(val); - } - else if (val !== undefined) { - dest[name] = val; // if there were no objects, this value will be used - break; - } - } - // if the trailing values were objects, use the merged value - if (complexObjs.length) { - dest[name] = mergeProps(complexObjs); - } - } - } - // copy values into the destination, going from last to first - for (i = propObjs.length - 1; i >= 0; i--) { - props = propObjs[i]; - for (name in props) { - if (!(name in dest)) { // if already assigned by previous props or complex props, don't reassign - dest[name] = props[name]; - } - } - } - return dest; - } - function filterHash(hash, func) { - var filtered = {}; - for (var key in hash) { - if (func(hash[key], key)) { - filtered[key] = hash[key]; - } - } - return filtered; - } - function mapHash(hash, func) { - var newHash = {}; - for (var key in hash) { - newHash[key] = func(hash[key], key); - } - return newHash; - } - function arrayToHash(a) { - var hash = {}; - for (var _i = 0, a_1 = a; _i < a_1.length; _i++) { - var item = a_1[_i]; - hash[item] = true; - } - return hash; - } - function hashValuesToArray(obj) { - var a = []; - for (var key in obj) { - a.push(obj[key]); - } - return a; - } - function isPropsEqual(obj0, obj1) { - for (var key in obj0) { - if (hasOwnProperty.call(obj0, key)) { - if (!(key in obj1)) { - return false; - } - } - } - for (var key in obj1) { - if (hasOwnProperty.call(obj1, key)) { - if (obj0[key] !== obj1[key]) { - return false; - } - } - } - return true; - } - - function parseEvents(rawEvents, sourceId, calendar, allowOpenRange) { - var eventStore = createEmptyEventStore(); - for (var _i = 0, rawEvents_1 = rawEvents; _i < rawEvents_1.length; _i++) { - var rawEvent = rawEvents_1[_i]; - var tuple = parseEvent(rawEvent, sourceId, calendar, allowOpenRange); - if (tuple) { - eventTupleToStore(tuple, eventStore); - } - } - return eventStore; - } - function eventTupleToStore(tuple, eventStore) { - if (eventStore === void 0) { eventStore = createEmptyEventStore(); } - eventStore.defs[tuple.def.defId] = tuple.def; - if (tuple.instance) { - eventStore.instances[tuple.instance.instanceId] = tuple.instance; - } - return eventStore; - } - function expandRecurring(eventStore, framingRange, calendar) { - var dateEnv = calendar.dateEnv; - var defs = eventStore.defs, instances = eventStore.instances; - // remove existing recurring instances - instances = filterHash(instances, function (instance) { - return !defs[instance.defId].recurringDef; - }); - for (var defId in defs) { - var def = defs[defId]; - if (def.recurringDef) { - var duration = def.recurringDef.duration; - if (!duration) { - duration = def.allDay ? - calendar.defaultAllDayEventDuration : - calendar.defaultTimedEventDuration; - } - var starts = expandRecurringRanges(def, duration, framingRange, calendar.dateEnv, calendar.pluginSystem.hooks.recurringTypes); - for (var _i = 0, starts_1 = starts; _i < starts_1.length; _i++) { - var start = starts_1[_i]; - var instance = createEventInstance(defId, { - start: start, - end: dateEnv.add(start, duration) - }); - instances[instance.instanceId] = instance; - } - } - } - return { defs: defs, instances: instances }; - } - // retrieves events that have the same groupId as the instance specified by `instanceId` - // or they are the same as the instance. - // why might instanceId not be in the store? an event from another calendar? - function getRelevantEvents(eventStore, instanceId) { - var instance = eventStore.instances[instanceId]; - if (instance) { - var def_1 = eventStore.defs[instance.defId]; - // get events/instances with same group - var newStore = filterEventStoreDefs(eventStore, function (lookDef) { - return isEventDefsGrouped(def_1, lookDef); - }); - // add the original - // TODO: wish we could use eventTupleToStore or something like it - newStore.defs[def_1.defId] = def_1; - newStore.instances[instance.instanceId] = instance; - return newStore; - } - return createEmptyEventStore(); - } - function isEventDefsGrouped(def0, def1) { - return Boolean(def0.groupId && def0.groupId === def1.groupId); - } - function transformRawEvents(rawEvents, eventSource, calendar) { - var calEachTransform = calendar.opt('eventDataTransform'); - var sourceEachTransform = eventSource ? eventSource.eventDataTransform : null; - if (sourceEachTransform) { - rawEvents = transformEachRawEvent(rawEvents, sourceEachTransform); - } - if (calEachTransform) { - rawEvents = transformEachRawEvent(rawEvents, calEachTransform); - } - return rawEvents; - } - function transformEachRawEvent(rawEvents, func) { - var refinedEvents; - if (!func) { - refinedEvents = rawEvents; - } - else { - refinedEvents = []; - for (var _i = 0, rawEvents_2 = rawEvents; _i < rawEvents_2.length; _i++) { - var rawEvent = rawEvents_2[_i]; - var refinedEvent = func(rawEvent); - if (refinedEvent) { - refinedEvents.push(refinedEvent); - } - else if (refinedEvent == null) { - refinedEvents.push(rawEvent); - } // if a different falsy value, do nothing - } - } - return refinedEvents; - } - function createEmptyEventStore() { - return { defs: {}, instances: {} }; - } - function mergeEventStores(store0, store1) { - return { - defs: __assign({}, store0.defs, store1.defs), - instances: __assign({}, store0.instances, store1.instances) - }; - } - function filterEventStoreDefs(eventStore, filterFunc) { - var defs = filterHash(eventStore.defs, filterFunc); - var instances = filterHash(eventStore.instances, function (instance) { - return defs[instance.defId]; // still exists? - }); - return { defs: defs, instances: instances }; - } - - function parseRange(input, dateEnv) { - var start = null; - var end = null; - if (input.start) { - start = dateEnv.createMarker(input.start); - } - if (input.end) { - end = dateEnv.createMarker(input.end); - } - if (!start && !end) { - return null; - } - if (start && end && end < start) { - return null; - } - return { start: start, end: end }; - } - // SIDE-EFFECT: will mutate ranges. - // Will return a new array result. - function invertRanges(ranges, constraintRange) { - var invertedRanges = []; - var start = constraintRange.start; // the end of the previous range. the start of the new range - var i; - var dateRange; - // ranges need to be in order. required for our date-walking algorithm - ranges.sort(compareRanges); - for (i = 0; i < ranges.length; i++) { - dateRange = ranges[i]; - // add the span of time before the event (if there is any) - if (dateRange.start > start) { // compare millisecond time (skip any ambig logic) - invertedRanges.push({ start: start, end: dateRange.start }); - } - if (dateRange.end > start) { - start = dateRange.end; - } - } - // add the span of time after the last event (if there is any) - if (start < constraintRange.end) { // compare millisecond time (skip any ambig logic) - invertedRanges.push({ start: start, end: constraintRange.end }); - } - return invertedRanges; - } - function compareRanges(range0, range1) { - return range0.start.valueOf() - range1.start.valueOf(); // earlier ranges go first - } - function intersectRanges(range0, range1) { - var start = range0.start; - var end = range0.end; - var newRange = null; - if (range1.start !== null) { - if (start === null) { - start = range1.start; - } - else { - start = new Date(Math.max(start.valueOf(), range1.start.valueOf())); - } - } - if (range1.end != null) { - if (end === null) { - end = range1.end; - } - else { - end = new Date(Math.min(end.valueOf(), range1.end.valueOf())); - } - } - if (start === null || end === null || start < end) { - newRange = { start: start, end: end }; - } - return newRange; - } - function rangesEqual(range0, range1) { - return (range0.start === null ? null : range0.start.valueOf()) === (range1.start === null ? null : range1.start.valueOf()) && - (range0.end === null ? null : range0.end.valueOf()) === (range1.end === null ? null : range1.end.valueOf()); - } - function rangesIntersect(range0, range1) { - return (range0.end === null || range1.start === null || range0.end > range1.start) && - (range0.start === null || range1.end === null || range0.start < range1.end); - } - function rangeContainsRange(outerRange, innerRange) { - return (outerRange.start === null || (innerRange.start !== null && innerRange.start >= outerRange.start)) && - (outerRange.end === null || (innerRange.end !== null && innerRange.end <= outerRange.end)); - } - function rangeContainsMarker(range, date) { - return (range.start === null || date >= range.start) && - (range.end === null || date < range.end); - } - // If the given date is not within the given range, move it inside. - // (If it's past the end, make it one millisecond before the end). - function constrainMarkerToRange(date, range) { - if (range.start != null && date < range.start) { - return range.start; - } - if (range.end != null && date >= range.end) { - return new Date(range.end.valueOf() - 1); - } - return date; - } - - function removeExact(array, exactVal) { - var removeCnt = 0; - var i = 0; - while (i < array.length) { - if (array[i] === exactVal) { - array.splice(i, 1); - removeCnt++; - } - else { - i++; - } - } - return removeCnt; - } - function isArraysEqual(a0, a1) { - var len = a0.length; - var i; - if (len !== a1.length) { // not array? or not same length? - return false; - } - for (i = 0; i < len; i++) { - if (a0[i] !== a1[i]) { - return false; - } - } - return true; - } - - function memoize(workerFunc) { - var args; - var res; - return function () { - if (!args || !isArraysEqual(args, arguments)) { - args = arguments; - res = workerFunc.apply(this, arguments); - } - return res; - }; - } - /* - always executes the workerFunc, but if the result is equal to the previous result, - return the previous result instead. - */ - function memoizeOutput(workerFunc, equalityFunc) { - var cachedRes = null; - return function () { - var newRes = workerFunc.apply(this, arguments); - if (cachedRes === null || !(cachedRes === newRes || equalityFunc(cachedRes, newRes))) { - cachedRes = newRes; - } - return cachedRes; - }; - } - - var EXTENDED_SETTINGS_AND_SEVERITIES = { - week: 3, - separator: 0, - omitZeroMinute: 0, - meridiem: 0, - omitCommas: 0 - }; - var STANDARD_DATE_PROP_SEVERITIES = { - timeZoneName: 7, - era: 6, - year: 5, - month: 4, - day: 2, - weekday: 2, - hour: 1, - minute: 1, - second: 1 - }; - var MERIDIEM_RE = /\s*([ap])\.?m\.?/i; // eats up leading spaces too - var COMMA_RE = /,/g; // we need re for globalness - var MULTI_SPACE_RE = /\s+/g; - var LTR_RE = /\u200e/g; // control character - var UTC_RE = /UTC|GMT/; - var NativeFormatter = /** @class */ (function () { - function NativeFormatter(formatSettings) { - var standardDateProps = {}; - var extendedSettings = {}; - var severity = 0; - for (var name_1 in formatSettings) { - if (name_1 in EXTENDED_SETTINGS_AND_SEVERITIES) { - extendedSettings[name_1] = formatSettings[name_1]; - severity = Math.max(EXTENDED_SETTINGS_AND_SEVERITIES[name_1], severity); - } - else { - standardDateProps[name_1] = formatSettings[name_1]; - if (name_1 in STANDARD_DATE_PROP_SEVERITIES) { - severity = Math.max(STANDARD_DATE_PROP_SEVERITIES[name_1], severity); - } - } - } - this.standardDateProps = standardDateProps; - this.extendedSettings = extendedSettings; - this.severity = severity; - this.buildFormattingFunc = memoize(buildFormattingFunc); - } - NativeFormatter.prototype.format = function (date, context) { - return this.buildFormattingFunc(this.standardDateProps, this.extendedSettings, context)(date); - }; - NativeFormatter.prototype.formatRange = function (start, end, context) { - var _a = this, standardDateProps = _a.standardDateProps, extendedSettings = _a.extendedSettings; - var diffSeverity = computeMarkerDiffSeverity(start.marker, end.marker, context.calendarSystem); - if (!diffSeverity) { - return this.format(start, context); - } - var biggestUnitForPartial = diffSeverity; - if (biggestUnitForPartial > 1 && // the two dates are different in a way that's larger scale than time - (standardDateProps.year === 'numeric' || standardDateProps.year === '2-digit') && - (standardDateProps.month === 'numeric' || standardDateProps.month === '2-digit') && - (standardDateProps.day === 'numeric' || standardDateProps.day === '2-digit')) { - biggestUnitForPartial = 1; // make it look like the dates are only different in terms of time - } - var full0 = this.format(start, context); - var full1 = this.format(end, context); - if (full0 === full1) { - return full0; - } - var partialDateProps = computePartialFormattingOptions(standardDateProps, biggestUnitForPartial); - var partialFormattingFunc = buildFormattingFunc(partialDateProps, extendedSettings, context); - var partial0 = partialFormattingFunc(start); - var partial1 = partialFormattingFunc(end); - var insertion = findCommonInsertion(full0, partial0, full1, partial1); - var separator = extendedSettings.separator || ''; - if (insertion) { - return insertion.before + partial0 + separator + partial1 + insertion.after; - } - return full0 + separator + full1; - }; - NativeFormatter.prototype.getLargestUnit = function () { - switch (this.severity) { - case 7: - case 6: - case 5: - return 'year'; - case 4: - return 'month'; - case 3: - return 'week'; - default: - return 'day'; - } - }; - return NativeFormatter; - }()); - function buildFormattingFunc(standardDateProps, extendedSettings, context) { - var standardDatePropCnt = Object.keys(standardDateProps).length; - if (standardDatePropCnt === 1 && standardDateProps.timeZoneName === 'short') { - return function (date) { - return formatTimeZoneOffset(date.timeZoneOffset); - }; - } - if (standardDatePropCnt === 0 && extendedSettings.week) { - return function (date) { - return formatWeekNumber(context.computeWeekNumber(date.marker), context.weekLabel, context.locale, extendedSettings.week); - }; - } - return buildNativeFormattingFunc(standardDateProps, extendedSettings, context); - } - function buildNativeFormattingFunc(standardDateProps, extendedSettings, context) { - standardDateProps = __assign({}, standardDateProps); // copy - extendedSettings = __assign({}, extendedSettings); // copy - sanitizeSettings(standardDateProps, extendedSettings); - standardDateProps.timeZone = 'UTC'; // we leverage the only guaranteed timeZone for our UTC markers - var normalFormat = new Intl.DateTimeFormat(context.locale.codes, standardDateProps); - var zeroFormat; // needed? - if (extendedSettings.omitZeroMinute) { - var zeroProps = __assign({}, standardDateProps); - delete zeroProps.minute; // seconds and ms were already considered in sanitizeSettings - zeroFormat = new Intl.DateTimeFormat(context.locale.codes, zeroProps); - } - return function (date) { - var marker = date.marker; - var format; - if (zeroFormat && !marker.getUTCMinutes()) { - format = zeroFormat; - } - else { - format = normalFormat; - } - var s = format.format(marker); - return postProcess(s, date, standardDateProps, extendedSettings, context); - }; - } - function sanitizeSettings(standardDateProps, extendedSettings) { - // deal with a browser inconsistency where formatting the timezone - // requires that the hour/minute be present. - if (standardDateProps.timeZoneName) { - if (!standardDateProps.hour) { - standardDateProps.hour = '2-digit'; - } - if (!standardDateProps.minute) { - standardDateProps.minute = '2-digit'; - } - } - // only support short timezone names - if (standardDateProps.timeZoneName === 'long') { - standardDateProps.timeZoneName = 'short'; - } - // if requesting to display seconds, MUST display minutes - if (extendedSettings.omitZeroMinute && (standardDateProps.second || standardDateProps.millisecond)) { - delete extendedSettings.omitZeroMinute; - } - } - function postProcess(s, date, standardDateProps, extendedSettings, context) { - s = s.replace(LTR_RE, ''); // remove left-to-right control chars. do first. good for other regexes - if (standardDateProps.timeZoneName === 'short') { - s = injectTzoStr(s, (context.timeZone === 'UTC' || date.timeZoneOffset == null) ? - 'UTC' : // important to normalize for IE, which does "GMT" - formatTimeZoneOffset(date.timeZoneOffset)); - } - if (extendedSettings.omitCommas) { - s = s.replace(COMMA_RE, '').trim(); - } - if (extendedSettings.omitZeroMinute) { - s = s.replace(':00', ''); // zeroFormat doesn't always achieve this - } - // ^ do anything that might create adjacent spaces before this point, - // because MERIDIEM_RE likes to eat up loading spaces - if (extendedSettings.meridiem === false) { - s = s.replace(MERIDIEM_RE, '').trim(); - } - else if (extendedSettings.meridiem === 'narrow') { // a/p - s = s.replace(MERIDIEM_RE, function (m0, m1) { - return m1.toLocaleLowerCase(); - }); - } - else if (extendedSettings.meridiem === 'short') { // am/pm - s = s.replace(MERIDIEM_RE, function (m0, m1) { - return m1.toLocaleLowerCase() + 'm'; - }); - } - else if (extendedSettings.meridiem === 'lowercase') { // other meridiem transformers already converted to lowercase - s = s.replace(MERIDIEM_RE, function (m0) { - return m0.toLocaleLowerCase(); - }); - } - s = s.replace(MULTI_SPACE_RE, ' '); - s = s.trim(); - return s; - } - function injectTzoStr(s, tzoStr) { - var replaced = false; - s = s.replace(UTC_RE, function () { - replaced = true; - return tzoStr; - }); - // IE11 doesn't include UTC/GMT in the original string, so append to end - if (!replaced) { - s += ' ' + tzoStr; - } - return s; - } - function formatWeekNumber(num, weekLabel, locale, display) { - var parts = []; - if (display === 'narrow') { - parts.push(weekLabel); - } - else if (display === 'short') { - parts.push(weekLabel, ' '); - } - // otherwise, considered 'numeric' - parts.push(locale.simpleNumberFormat.format(num)); - if (locale.options.isRtl) { // TODO: use control characters instead? - parts.reverse(); - } - return parts.join(''); - } - // Range Formatting Utils - // 0 = exactly the same - // 1 = different by time - // and bigger - function computeMarkerDiffSeverity(d0, d1, ca) { - if (ca.getMarkerYear(d0) !== ca.getMarkerYear(d1)) { - return 5; - } - if (ca.getMarkerMonth(d0) !== ca.getMarkerMonth(d1)) { - return 4; - } - if (ca.getMarkerDay(d0) !== ca.getMarkerDay(d1)) { - return 2; - } - if (timeAsMs(d0) !== timeAsMs(d1)) { - return 1; - } - return 0; - } - function computePartialFormattingOptions(options, biggestUnit) { - var partialOptions = {}; - for (var name_2 in options) { - if (!(name_2 in STANDARD_DATE_PROP_SEVERITIES) || // not a date part prop (like timeZone) - STANDARD_DATE_PROP_SEVERITIES[name_2] <= biggestUnit) { - partialOptions[name_2] = options[name_2]; - } - } - return partialOptions; - } - function findCommonInsertion(full0, partial0, full1, partial1) { - var i0 = 0; - while (i0 < full0.length) { - var found0 = full0.indexOf(partial0, i0); - if (found0 === -1) { - break; - } - var before0 = full0.substr(0, found0); - i0 = found0 + partial0.length; - var after0 = full0.substr(i0); - var i1 = 0; - while (i1 < full1.length) { - var found1 = full1.indexOf(partial1, i1); - if (found1 === -1) { - break; - } - var before1 = full1.substr(0, found1); - i1 = found1 + partial1.length; - var after1 = full1.substr(i1); - if (before0 === before1 && after0 === after1) { - return { - before: before0, - after: after0 - }; - } - } - } - return null; - } - - /* - TODO: fix the terminology of "formatter" vs "formatting func" - */ - /* - At the time of instantiation, this object does not know which cmd-formatting system it will use. - It receives this at the time of formatting, as a setting. - */ - var CmdFormatter = /** @class */ (function () { - function CmdFormatter(cmdStr, separator) { - this.cmdStr = cmdStr; - this.separator = separator; - } - CmdFormatter.prototype.format = function (date, context) { - return context.cmdFormatter(this.cmdStr, createVerboseFormattingArg(date, null, context, this.separator)); - }; - CmdFormatter.prototype.formatRange = function (start, end, context) { - return context.cmdFormatter(this.cmdStr, createVerboseFormattingArg(start, end, context, this.separator)); - }; - return CmdFormatter; - }()); - - var FuncFormatter = /** @class */ (function () { - function FuncFormatter(func) { - this.func = func; - } - FuncFormatter.prototype.format = function (date, context) { - return this.func(createVerboseFormattingArg(date, null, context)); - }; - FuncFormatter.prototype.formatRange = function (start, end, context) { - return this.func(createVerboseFormattingArg(start, end, context)); - }; - return FuncFormatter; - }()); - - // Formatter Object Creation - function createFormatter(input, defaultSeparator) { - if (typeof input === 'object' && input) { // non-null object - if (typeof defaultSeparator === 'string') { - input = __assign({ separator: defaultSeparator }, input); - } - return new NativeFormatter(input); - } - else if (typeof input === 'string') { - return new CmdFormatter(input, defaultSeparator); - } - else if (typeof input === 'function') { - return new FuncFormatter(input); - } - } - // String Utils - // timeZoneOffset is in minutes - function buildIsoString(marker, timeZoneOffset, stripZeroTime) { - if (stripZeroTime === void 0) { stripZeroTime = false; } - var s = marker.toISOString(); - s = s.replace('.000', ''); - if (stripZeroTime) { - s = s.replace('T00:00:00Z', ''); - } - if (s.length > 10) { // time part wasn't stripped, can add timezone info - if (timeZoneOffset == null) { - s = s.replace('Z', ''); - } - else if (timeZoneOffset !== 0) { - s = s.replace('Z', formatTimeZoneOffset(timeZoneOffset, true)); - } - // otherwise, its UTC-0 and we want to keep the Z - } - return s; - } - function formatIsoTimeString(marker) { - return padStart(marker.getUTCHours(), 2) + ':' + - padStart(marker.getUTCMinutes(), 2) + ':' + - padStart(marker.getUTCSeconds(), 2); - } - function formatTimeZoneOffset(minutes, doIso) { - if (doIso === void 0) { doIso = false; } - var sign = minutes < 0 ? '-' : '+'; - var abs = Math.abs(minutes); - var hours = Math.floor(abs / 60); - var mins = Math.round(abs % 60); - if (doIso) { - return sign + padStart(hours, 2) + ':' + padStart(mins, 2); - } - else { - return 'GMT' + sign + hours + (mins ? ':' + padStart(mins, 2) : ''); - } - } - // Arg Utils - function createVerboseFormattingArg(start, end, context, separator) { - var startInfo = expandZonedMarker(start, context.calendarSystem); - var endInfo = end ? expandZonedMarker(end, context.calendarSystem) : null; - return { - date: startInfo, - start: startInfo, - end: endInfo, - timeZone: context.timeZone, - localeCodes: context.locale.codes, - separator: separator - }; - } - function expandZonedMarker(dateInfo, calendarSystem) { - var a = calendarSystem.markerToArray(dateInfo.marker); - return { - marker: dateInfo.marker, - timeZoneOffset: dateInfo.timeZoneOffset, - array: a, - year: a[0], - month: a[1], - day: a[2], - hour: a[3], - minute: a[4], - second: a[5], - millisecond: a[6] - }; - } - - var EventSourceApi = /** @class */ (function () { - function EventSourceApi(calendar, internalEventSource) { - this.calendar = calendar; - this.internalEventSource = internalEventSource; - } - EventSourceApi.prototype.remove = function () { - this.calendar.dispatch({ - type: 'REMOVE_EVENT_SOURCE', - sourceId: this.internalEventSource.sourceId - }); - }; - EventSourceApi.prototype.refetch = function () { - this.calendar.dispatch({ - type: 'FETCH_EVENT_SOURCES', - sourceIds: [this.internalEventSource.sourceId] - }); - }; - Object.defineProperty(EventSourceApi.prototype, "id", { - get: function () { - return this.internalEventSource.publicId; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventSourceApi.prototype, "url", { - // only relevant to json-feed event sources - get: function () { - return this.internalEventSource.meta.url; - }, - enumerable: true, - configurable: true - }); - return EventSourceApi; - }()); - - var EventApi = /** @class */ (function () { - function EventApi(calendar, def, instance) { - this._calendar = calendar; - this._def = def; - this._instance = instance || null; - } - /* - TODO: make event struct more responsible for this - */ - EventApi.prototype.setProp = function (name, val) { - var _a, _b; - if (name in DATE_PROPS) ; - else if (name in NON_DATE_PROPS) { - if (typeof NON_DATE_PROPS[name] === 'function') { - val = NON_DATE_PROPS[name](val); - } - this.mutate({ - standardProps: (_a = {}, _a[name] = val, _a) - }); - } - else if (name in UNSCOPED_EVENT_UI_PROPS) { - var ui = void 0; - if (typeof UNSCOPED_EVENT_UI_PROPS[name] === 'function') { - val = UNSCOPED_EVENT_UI_PROPS[name](val); - } - if (name === 'color') { - ui = { backgroundColor: val, borderColor: val }; - } - else if (name === 'editable') { - ui = { startEditable: val, durationEditable: val }; - } - else { - ui = (_b = {}, _b[name] = val, _b); - } - this.mutate({ - standardProps: { ui: ui } - }); - } - }; - EventApi.prototype.setExtendedProp = function (name, val) { - var _a; - this.mutate({ - extendedProps: (_a = {}, _a[name] = val, _a) - }); - }; - EventApi.prototype.setStart = function (startInput, options) { - if (options === void 0) { options = {}; } - var dateEnv = this._calendar.dateEnv; - var start = dateEnv.createMarker(startInput); - if (start && this._instance) { // TODO: warning if parsed bad - var instanceRange = this._instance.range; - var startDelta = diffDates(instanceRange.start, start, dateEnv, options.granularity); // what if parsed bad!? - if (options.maintainDuration) { - this.mutate({ datesDelta: startDelta }); - } - else { - this.mutate({ startDelta: startDelta }); - } - } - }; - EventApi.prototype.setEnd = function (endInput, options) { - if (options === void 0) { options = {}; } - var dateEnv = this._calendar.dateEnv; - var end; - if (endInput != null) { - end = dateEnv.createMarker(endInput); - if (!end) { - return; // TODO: warning if parsed bad - } - } - if (this._instance) { - if (end) { - var endDelta = diffDates(this._instance.range.end, end, dateEnv, options.granularity); - this.mutate({ endDelta: endDelta }); - } - else { - this.mutate({ standardProps: { hasEnd: false } }); - } - } - }; - EventApi.prototype.setDates = function (startInput, endInput, options) { - if (options === void 0) { options = {}; } - var dateEnv = this._calendar.dateEnv; - var standardProps = { allDay: options.allDay }; - var start = dateEnv.createMarker(startInput); - var end; - if (!start) { - return; // TODO: warning if parsed bad - } - if (endInput != null) { - end = dateEnv.createMarker(endInput); - if (!end) { // TODO: warning if parsed bad - return; - } - } - if (this._instance) { - var instanceRange = this._instance.range; - // when computing the diff for an event being converted to all-day, - // compute diff off of the all-day values the way event-mutation does. - if (options.allDay === true) { - instanceRange = computeAlignedDayRange(instanceRange); - } - var startDelta = diffDates(instanceRange.start, start, dateEnv, options.granularity); - if (end) { - var endDelta = diffDates(instanceRange.end, end, dateEnv, options.granularity); - if (durationsEqual(startDelta, endDelta)) { - this.mutate({ datesDelta: startDelta, standardProps: standardProps }); - } - else { - this.mutate({ startDelta: startDelta, endDelta: endDelta, standardProps: standardProps }); - } - } - else { // means "clear the end" - standardProps.hasEnd = false; - this.mutate({ datesDelta: startDelta, standardProps: standardProps }); - } - } - }; - EventApi.prototype.moveStart = function (deltaInput) { - var delta = createDuration(deltaInput); - if (delta) { // TODO: warning if parsed bad - this.mutate({ startDelta: delta }); - } - }; - EventApi.prototype.moveEnd = function (deltaInput) { - var delta = createDuration(deltaInput); - if (delta) { // TODO: warning if parsed bad - this.mutate({ endDelta: delta }); - } - }; - EventApi.prototype.moveDates = function (deltaInput) { - var delta = createDuration(deltaInput); - if (delta) { // TODO: warning if parsed bad - this.mutate({ datesDelta: delta }); - } - }; - EventApi.prototype.setAllDay = function (allDay, options) { - if (options === void 0) { options = {}; } - var standardProps = { allDay: allDay }; - var maintainDuration = options.maintainDuration; - if (maintainDuration == null) { - maintainDuration = this._calendar.opt('allDayMaintainDuration'); - } - if (this._def.allDay !== allDay) { - standardProps.hasEnd = maintainDuration; - } - this.mutate({ standardProps: standardProps }); - }; - EventApi.prototype.formatRange = function (formatInput) { - var dateEnv = this._calendar.dateEnv; - var instance = this._instance; - var formatter = createFormatter(formatInput, this._calendar.opt('defaultRangeSeparator')); - if (this._def.hasEnd) { - return dateEnv.formatRange(instance.range.start, instance.range.end, formatter, { - forcedStartTzo: instance.forcedStartTzo, - forcedEndTzo: instance.forcedEndTzo - }); - } - else { - return dateEnv.format(instance.range.start, formatter, { - forcedTzo: instance.forcedStartTzo - }); - } - }; - EventApi.prototype.mutate = function (mutation) { - var def = this._def; - var instance = this._instance; - if (instance) { - this._calendar.dispatch({ - type: 'MUTATE_EVENTS', - instanceId: instance.instanceId, - mutation: mutation, - fromApi: true - }); - var eventStore = this._calendar.state.eventStore; - this._def = eventStore.defs[def.defId]; - this._instance = eventStore.instances[instance.instanceId]; - } - }; - EventApi.prototype.remove = function () { - this._calendar.dispatch({ - type: 'REMOVE_EVENT_DEF', - defId: this._def.defId - }); - }; - Object.defineProperty(EventApi.prototype, "source", { - get: function () { - var sourceId = this._def.sourceId; - if (sourceId) { - return new EventSourceApi(this._calendar, this._calendar.state.eventSources[sourceId]); - } - return null; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "start", { - get: function () { - return this._instance ? - this._calendar.dateEnv.toDate(this._instance.range.start) : - null; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "end", { - get: function () { - return (this._instance && this._def.hasEnd) ? - this._calendar.dateEnv.toDate(this._instance.range.end) : - null; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "id", { - // computable props that all access the def - // TODO: find a TypeScript-compatible way to do this at scale - get: function () { return this._def.publicId; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "groupId", { - get: function () { return this._def.groupId; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "allDay", { - get: function () { return this._def.allDay; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "title", { - get: function () { return this._def.title; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "url", { - get: function () { return this._def.url; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "rendering", { - get: function () { return this._def.rendering; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "startEditable", { - get: function () { return this._def.ui.startEditable; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "durationEditable", { - get: function () { return this._def.ui.durationEditable; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "constraint", { - get: function () { return this._def.ui.constraints[0] || null; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "overlap", { - get: function () { return this._def.ui.overlap; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "allow", { - get: function () { return this._def.ui.allows[0] || null; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "backgroundColor", { - get: function () { return this._def.ui.backgroundColor; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "borderColor", { - get: function () { return this._def.ui.borderColor; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "textColor", { - get: function () { return this._def.ui.textColor; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "classNames", { - // NOTE: user can't modify these because Object.freeze was called in event-def parsing - get: function () { return this._def.ui.classNames; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "extendedProps", { - get: function () { return this._def.extendedProps; }, - enumerable: true, - configurable: true - }); - return EventApi; - }()); - - /* - Specifying nextDayThreshold signals that all-day ranges should be sliced. - */ - function sliceEventStore(eventStore, eventUiBases, framingRange, nextDayThreshold) { - var inverseBgByGroupId = {}; - var inverseBgByDefId = {}; - var defByGroupId = {}; - var bgRanges = []; - var fgRanges = []; - var eventUis = compileEventUis(eventStore.defs, eventUiBases); - for (var defId in eventStore.defs) { - var def = eventStore.defs[defId]; - if (def.rendering === 'inverse-background') { - if (def.groupId) { - inverseBgByGroupId[def.groupId] = []; - if (!defByGroupId[def.groupId]) { - defByGroupId[def.groupId] = def; - } - } - else { - inverseBgByDefId[defId] = []; - } - } - } - for (var instanceId in eventStore.instances) { - var instance = eventStore.instances[instanceId]; - var def = eventStore.defs[instance.defId]; - var ui = eventUis[def.defId]; - var origRange = instance.range; - var normalRange = (!def.allDay && nextDayThreshold) ? - computeVisibleDayRange(origRange, nextDayThreshold) : - origRange; - var slicedRange = intersectRanges(normalRange, framingRange); - if (slicedRange) { - if (def.rendering === 'inverse-background') { - if (def.groupId) { - inverseBgByGroupId[def.groupId].push(slicedRange); - } - else { - inverseBgByDefId[instance.defId].push(slicedRange); - } - } - else { - (def.rendering === 'background' ? bgRanges : fgRanges).push({ - def: def, - ui: ui, - instance: instance, - range: slicedRange, - isStart: normalRange.start && normalRange.start.valueOf() === slicedRange.start.valueOf(), - isEnd: normalRange.end && normalRange.end.valueOf() === slicedRange.end.valueOf() - }); - } - } - } - for (var groupId in inverseBgByGroupId) { // BY GROUP - var ranges = inverseBgByGroupId[groupId]; - var invertedRanges = invertRanges(ranges, framingRange); - for (var _i = 0, invertedRanges_1 = invertedRanges; _i < invertedRanges_1.length; _i++) { - var invertedRange = invertedRanges_1[_i]; - var def = defByGroupId[groupId]; - var ui = eventUis[def.defId]; - bgRanges.push({ - def: def, - ui: ui, - instance: null, - range: invertedRange, - isStart: false, - isEnd: false - }); - } - } - for (var defId in inverseBgByDefId) { - var ranges = inverseBgByDefId[defId]; - var invertedRanges = invertRanges(ranges, framingRange); - for (var _a = 0, invertedRanges_2 = invertedRanges; _a < invertedRanges_2.length; _a++) { - var invertedRange = invertedRanges_2[_a]; - bgRanges.push({ - def: eventStore.defs[defId], - ui: eventUis[defId], - instance: null, - range: invertedRange, - isStart: false, - isEnd: false - }); - } - } - return { bg: bgRanges, fg: fgRanges }; - } - function hasBgRendering(def) { - return def.rendering === 'background' || def.rendering === 'inverse-background'; - } - function filterSegsViaEls(view, segs, isMirror) { - if (view.hasPublicHandlers('eventRender')) { - segs = segs.filter(function (seg) { - var custom = view.publiclyTrigger('eventRender', [ - { - event: new EventApi(view.calendar, seg.eventRange.def, seg.eventRange.instance), - isMirror: isMirror, - isStart: seg.isStart, - isEnd: seg.isEnd, - // TODO: include seg.range once all components consistently generate it - el: seg.el, - view: view - } - ]); - if (custom === false) { // means don't render at all - return false; - } - else if (custom && custom !== true) { - seg.el = custom; - } - return true; - }); - } - for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) { - var seg = segs_1[_i]; - setElSeg(seg.el, seg); - } - return segs; - } - function setElSeg(el, seg) { - el.fcSeg = seg; - } - function getElSeg(el) { - return el.fcSeg || null; - } - // event ui computation - function compileEventUis(eventDefs, eventUiBases) { - return mapHash(eventDefs, function (eventDef) { - return compileEventUi(eventDef, eventUiBases); - }); - } - function compileEventUi(eventDef, eventUiBases) { - var uis = []; - if (eventUiBases['']) { - uis.push(eventUiBases['']); - } - if (eventUiBases[eventDef.defId]) { - uis.push(eventUiBases[eventDef.defId]); - } - uis.push(eventDef.ui); - return combineEventUis(uis); - } - - // applies the mutation to ALL defs/instances within the event store - function applyMutationToEventStore(eventStore, eventConfigBase, mutation, calendar) { - var eventConfigs = compileEventUis(eventStore.defs, eventConfigBase); - var dest = createEmptyEventStore(); - for (var defId in eventStore.defs) { - var def = eventStore.defs[defId]; - dest.defs[defId] = applyMutationToEventDef(def, eventConfigs[defId], mutation, calendar.pluginSystem.hooks.eventDefMutationAppliers, calendar); - } - for (var instanceId in eventStore.instances) { - var instance = eventStore.instances[instanceId]; - var def = dest.defs[instance.defId]; // important to grab the newly modified def - dest.instances[instanceId] = applyMutationToEventInstance(instance, def, eventConfigs[instance.defId], mutation, calendar); - } - return dest; - } - function applyMutationToEventDef(eventDef, eventConfig, mutation, appliers, calendar) { - var standardProps = mutation.standardProps || {}; - // if hasEnd has not been specified, guess a good value based on deltas. - // if duration will change, there's no way the default duration will persist, - // and thus, we need to mark the event as having a real end - if (standardProps.hasEnd == null && - eventConfig.durationEditable && - (mutation.startDelta || mutation.endDelta)) { - standardProps.hasEnd = true; // TODO: is this mutation okay? - } - var copy = __assign({}, eventDef, standardProps, { ui: __assign({}, eventDef.ui, standardProps.ui) }); - if (mutation.extendedProps) { - copy.extendedProps = __assign({}, copy.extendedProps, mutation.extendedProps); - } - for (var _i = 0, appliers_1 = appliers; _i < appliers_1.length; _i++) { - var applier = appliers_1[_i]; - applier(copy, mutation, calendar); - } - if (!copy.hasEnd && calendar.opt('forceEventDuration')) { - copy.hasEnd = true; - } - return copy; - } - function applyMutationToEventInstance(eventInstance, eventDef, // must first be modified by applyMutationToEventDef - eventConfig, mutation, calendar) { - var dateEnv = calendar.dateEnv; - var forceAllDay = mutation.standardProps && mutation.standardProps.allDay === true; - var clearEnd = mutation.standardProps && mutation.standardProps.hasEnd === false; - var copy = __assign({}, eventInstance); - if (forceAllDay) { - copy.range = computeAlignedDayRange(copy.range); - } - if (mutation.datesDelta && eventConfig.startEditable) { - copy.range = { - start: dateEnv.add(copy.range.start, mutation.datesDelta), - end: dateEnv.add(copy.range.end, mutation.datesDelta) - }; - } - if (mutation.startDelta && eventConfig.durationEditable) { - copy.range = { - start: dateEnv.add(copy.range.start, mutation.startDelta), - end: copy.range.end - }; - } - if (mutation.endDelta && eventConfig.durationEditable) { - copy.range = { - start: copy.range.start, - end: dateEnv.add(copy.range.end, mutation.endDelta) - }; - } - if (clearEnd) { - copy.range = { - start: copy.range.start, - end: calendar.getDefaultEventEnd(eventDef.allDay, copy.range.start) - }; - } - // in case event was all-day but the supplied deltas were not - // better util for this? - if (eventDef.allDay) { - copy.range = { - start: startOfDay(copy.range.start), - end: startOfDay(copy.range.end) - }; - } - // handle invalid durations - if (copy.range.end < copy.range.start) { - copy.range.end = calendar.getDefaultEventEnd(eventDef.allDay, copy.range.start); - } - return copy; - } - - function reduceEventStore (eventStore, action, eventSources, dateProfile, calendar) { - switch (action.type) { - case 'RECEIVE_EVENTS': // raw - return receiveRawEvents(eventStore, eventSources[action.sourceId], action.fetchId, action.fetchRange, action.rawEvents, calendar); - case 'ADD_EVENTS': // already parsed, but not expanded - return addEvent(eventStore, action.eventStore, // new ones - dateProfile ? dateProfile.activeRange : null, calendar); - case 'MERGE_EVENTS': // already parsed and expanded - return mergeEventStores(eventStore, action.eventStore); - case 'PREV': // TODO: how do we track all actions that affect dateProfile :( - case 'NEXT': - case 'SET_DATE': - case 'SET_VIEW_TYPE': - if (dateProfile) { - return expandRecurring(eventStore, dateProfile.activeRange, calendar); - } - else { - return eventStore; - } - case 'CHANGE_TIMEZONE': - return rezoneDates(eventStore, action.oldDateEnv, calendar.dateEnv); - case 'MUTATE_EVENTS': - return applyMutationToRelated(eventStore, action.instanceId, action.mutation, action.fromApi, calendar); - case 'REMOVE_EVENT_INSTANCES': - return excludeInstances(eventStore, action.instances); - case 'REMOVE_EVENT_DEF': - return filterEventStoreDefs(eventStore, function (eventDef) { - return eventDef.defId !== action.defId; - }); - case 'REMOVE_EVENT_SOURCE': - return excludeEventsBySourceId(eventStore, action.sourceId); - case 'REMOVE_ALL_EVENT_SOURCES': - return filterEventStoreDefs(eventStore, function (eventDef) { - return !eventDef.sourceId; // only keep events with no source id - }); - case 'REMOVE_ALL_EVENTS': - return createEmptyEventStore(); - case 'RESET_EVENTS': - return { - defs: eventStore.defs, - instances: eventStore.instances - }; - default: - return eventStore; - } - } - function receiveRawEvents(eventStore, eventSource, fetchId, fetchRange, rawEvents, calendar) { - if (eventSource && // not already removed - fetchId === eventSource.latestFetchId // TODO: wish this logic was always in event-sources - ) { - var subset = parseEvents(transformRawEvents(rawEvents, eventSource, calendar), eventSource.sourceId, calendar); - if (fetchRange) { - subset = expandRecurring(subset, fetchRange, calendar); - } - return mergeEventStores(excludeEventsBySourceId(eventStore, eventSource.sourceId), subset); - } - return eventStore; - } - function addEvent(eventStore, subset, expandRange, calendar) { - if (expandRange) { - subset = expandRecurring(subset, expandRange, calendar); - } - return mergeEventStores(eventStore, subset); - } - function rezoneDates(eventStore, oldDateEnv, newDateEnv) { - var defs = eventStore.defs; - var instances = mapHash(eventStore.instances, function (instance) { - var def = defs[instance.defId]; - if (def.allDay || def.recurringDef) { - return instance; // isn't dependent on timezone - } - else { - return __assign({}, instance, { range: { - start: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.start, instance.forcedStartTzo)), - end: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.end, instance.forcedEndTzo)) - }, forcedStartTzo: newDateEnv.canComputeOffset ? null : instance.forcedStartTzo, forcedEndTzo: newDateEnv.canComputeOffset ? null : instance.forcedEndTzo }); - } - }); - return { defs: defs, instances: instances }; - } - function applyMutationToRelated(eventStore, instanceId, mutation, fromApi, calendar) { - var relevant = getRelevantEvents(eventStore, instanceId); - var eventConfigBase = fromApi ? - { '': { - startEditable: true, - durationEditable: true, - constraints: [], - overlap: null, - allows: [], - backgroundColor: '', - borderColor: '', - textColor: '', - classNames: [] - } } : - calendar.eventUiBases; - relevant = applyMutationToEventStore(relevant, eventConfigBase, mutation, calendar); - return mergeEventStores(eventStore, relevant); - } - function excludeEventsBySourceId(eventStore, sourceId) { - return filterEventStoreDefs(eventStore, function (eventDef) { - return eventDef.sourceId !== sourceId; - }); - } - // QUESTION: why not just return instances? do a general object-property-exclusion util - function excludeInstances(eventStore, removals) { - return { - defs: eventStore.defs, - instances: filterHash(eventStore.instances, function (instance) { - return !removals[instance.instanceId]; - }) - }; - } - - // high-level segmenting-aware tester functions - // ------------------------------------------------------------------------------------------------------------------------ - function isInteractionValid(interaction, calendar) { - return isNewPropsValid({ eventDrag: interaction }, calendar); // HACK: the eventDrag props is used for ALL interactions - } - function isDateSelectionValid(dateSelection, calendar) { - return isNewPropsValid({ dateSelection: dateSelection }, calendar); - } - function isNewPropsValid(newProps, calendar) { - var view = calendar.view; - var props = __assign({ businessHours: view ? view.props.businessHours : createEmptyEventStore(), dateSelection: '', eventStore: calendar.state.eventStore, eventUiBases: calendar.eventUiBases, eventSelection: '', eventDrag: null, eventResize: null }, newProps); - return (calendar.pluginSystem.hooks.isPropsValid || isPropsValid)(props, calendar); - } - function isPropsValid(state, calendar, dateSpanMeta, filterConfig) { - if (dateSpanMeta === void 0) { dateSpanMeta = {}; } - if (state.eventDrag && !isInteractionPropsValid(state, calendar, dateSpanMeta, filterConfig)) { - return false; - } - if (state.dateSelection && !isDateSelectionPropsValid(state, calendar, dateSpanMeta, filterConfig)) { - return false; - } - return true; - } - // Moving Event Validation - // ------------------------------------------------------------------------------------------------------------------------ - function isInteractionPropsValid(state, calendar, dateSpanMeta, filterConfig) { - var interaction = state.eventDrag; // HACK: the eventDrag props is used for ALL interactions - var subjectEventStore = interaction.mutatedEvents; - var subjectDefs = subjectEventStore.defs; - var subjectInstances = subjectEventStore.instances; - var subjectConfigs = compileEventUis(subjectDefs, interaction.isEvent ? - state.eventUiBases : - { '': calendar.selectionConfig } // if not a real event, validate as a selection - ); - if (filterConfig) { - subjectConfigs = mapHash(subjectConfigs, filterConfig); - } - var otherEventStore = excludeInstances(state.eventStore, interaction.affectedEvents.instances); // exclude the subject events. TODO: exclude defs too? - var otherDefs = otherEventStore.defs; - var otherInstances = otherEventStore.instances; - var otherConfigs = compileEventUis(otherDefs, state.eventUiBases); - for (var subjectInstanceId in subjectInstances) { - var subjectInstance = subjectInstances[subjectInstanceId]; - var subjectRange = subjectInstance.range; - var subjectConfig = subjectConfigs[subjectInstance.defId]; - var subjectDef = subjectDefs[subjectInstance.defId]; - // constraint - if (!allConstraintsPass(subjectConfig.constraints, subjectRange, otherEventStore, state.businessHours, calendar)) { - return false; - } - // overlap - var overlapFunc = calendar.opt('eventOverlap'); - if (typeof overlapFunc !== 'function') { - overlapFunc = null; - } - for (var otherInstanceId in otherInstances) { - var otherInstance = otherInstances[otherInstanceId]; - // intersect! evaluate - if (rangesIntersect(subjectRange, otherInstance.range)) { - var otherOverlap = otherConfigs[otherInstance.defId].overlap; - // consider the other event's overlap. only do this if the subject event is a "real" event - if (otherOverlap === false && interaction.isEvent) { - return false; - } - if (subjectConfig.overlap === false) { - return false; - } - if (overlapFunc && !overlapFunc(new EventApi(calendar, otherDefs[otherInstance.defId], otherInstance), // still event - new EventApi(calendar, subjectDef, subjectInstance) // moving event - )) { - return false; - } - } - } - // allow (a function) - var calendarEventStore = calendar.state.eventStore; // need global-to-calendar, not local to component (splittable)state - for (var _i = 0, _a = subjectConfig.allows; _i < _a.length; _i++) { - var subjectAllow = _a[_i]; - var subjectDateSpan = __assign({}, dateSpanMeta, { range: subjectInstance.range, allDay: subjectDef.allDay }); - var origDef = calendarEventStore.defs[subjectDef.defId]; - var origInstance = calendarEventStore.instances[subjectInstanceId]; - var eventApi = void 0; - if (origDef) { // was previously in the calendar - eventApi = new EventApi(calendar, origDef, origInstance); - } - else { // was an external event - eventApi = new EventApi(calendar, subjectDef); // no instance, because had no dates - } - if (!subjectAllow(calendar.buildDateSpanApi(subjectDateSpan), eventApi)) { - return false; - } - } - } - return true; - } - // Date Selection Validation - // ------------------------------------------------------------------------------------------------------------------------ - function isDateSelectionPropsValid(state, calendar, dateSpanMeta, filterConfig) { - var relevantEventStore = state.eventStore; - var relevantDefs = relevantEventStore.defs; - var relevantInstances = relevantEventStore.instances; - var selection = state.dateSelection; - var selectionRange = selection.range; - var selectionConfig = calendar.selectionConfig; - if (filterConfig) { - selectionConfig = filterConfig(selectionConfig); - } - // constraint - if (!allConstraintsPass(selectionConfig.constraints, selectionRange, relevantEventStore, state.businessHours, calendar)) { - return false; - } - // overlap - var overlapFunc = calendar.opt('selectOverlap'); - if (typeof overlapFunc !== 'function') { - overlapFunc = null; - } - for (var relevantInstanceId in relevantInstances) { - var relevantInstance = relevantInstances[relevantInstanceId]; - // intersect! evaluate - if (rangesIntersect(selectionRange, relevantInstance.range)) { - if (selectionConfig.overlap === false) { - return false; - } - if (overlapFunc && !overlapFunc(new EventApi(calendar, relevantDefs[relevantInstance.defId], relevantInstance))) { - return false; - } - } - } - // allow (a function) - for (var _i = 0, _a = selectionConfig.allows; _i < _a.length; _i++) { - var selectionAllow = _a[_i]; - var fullDateSpan = __assign({}, dateSpanMeta, selection); - if (!selectionAllow(calendar.buildDateSpanApi(fullDateSpan), null)) { - return false; - } - } - return true; - } - // Constraint Utils - // ------------------------------------------------------------------------------------------------------------------------ - function allConstraintsPass(constraints, subjectRange, otherEventStore, businessHoursUnexpanded, calendar) { - for (var _i = 0, constraints_1 = constraints; _i < constraints_1.length; _i++) { - var constraint = constraints_1[_i]; - if (!anyRangesContainRange(constraintToRanges(constraint, subjectRange, otherEventStore, businessHoursUnexpanded, calendar), subjectRange)) { - return false; - } - } - return true; - } - function constraintToRanges(constraint, subjectRange, // for expanding a recurring constraint, or expanding business hours - otherEventStore, // for if constraint is an even group ID - businessHoursUnexpanded, // for if constraint is 'businessHours' - calendar // for expanding businesshours - ) { - if (constraint === 'businessHours') { - return eventStoreToRanges(expandRecurring(businessHoursUnexpanded, subjectRange, calendar)); - } - else if (typeof constraint === 'string') { // an group ID - return eventStoreToRanges(filterEventStoreDefs(otherEventStore, function (eventDef) { - return eventDef.groupId === constraint; - })); - } - else if (typeof constraint === 'object' && constraint) { // non-null object - return eventStoreToRanges(expandRecurring(constraint, subjectRange, calendar)); - } - return []; // if it's false - } - // TODO: move to event-store file? - function eventStoreToRanges(eventStore) { - var instances = eventStore.instances; - var ranges = []; - for (var instanceId in instances) { - ranges.push(instances[instanceId].range); - } - return ranges; - } - // TODO: move to geom file? - function anyRangesContainRange(outerRanges, innerRange) { - for (var _i = 0, outerRanges_1 = outerRanges; _i < outerRanges_1.length; _i++) { - var outerRange = outerRanges_1[_i]; - if (rangeContainsRange(outerRange, innerRange)) { - return true; - } - } - return false; - } - // Parsing - // ------------------------------------------------------------------------------------------------------------------------ - function normalizeConstraint(input, calendar) { - if (Array.isArray(input)) { - return parseEvents(input, '', calendar, true); // allowOpenRange=true - } - else if (typeof input === 'object' && input) { // non-null object - return parseEvents([input], '', calendar, true); // allowOpenRange=true - } - else if (input != null) { - return String(input); - } - else { - return null; - } - } - - function htmlEscape(s) { - return (s + '').replace(/&/g, '&') - .replace(//g, '>') - .replace(/'/g, ''') - .replace(/"/g, '"') - .replace(/\n/g, '
'); - } - // Given a hash of CSS properties, returns a string of CSS. - // Uses property names as-is (no camel-case conversion). Will not make statements for null/undefined values. - function cssToStr(cssProps) { - var statements = []; - for (var name_1 in cssProps) { - var val = cssProps[name_1]; - if (val != null && val !== '') { - statements.push(name_1 + ':' + val); - } - } - return statements.join(';'); - } - // Given an object hash of HTML attribute names to values, - // generates a string that can be injected between < > in HTML - function attrsToStr(attrs) { - var parts = []; - for (var name_2 in attrs) { - var val = attrs[name_2]; - if (val != null) { - parts.push(name_2 + '="' + htmlEscape(val) + '"'); - } - } - return parts.join(' '); - } - function parseClassName(raw) { - if (Array.isArray(raw)) { - return raw; - } - else if (typeof raw === 'string') { - return raw.split(/\s+/); - } - else { - return []; - } - } - - var UNSCOPED_EVENT_UI_PROPS = { - editable: Boolean, - startEditable: Boolean, - durationEditable: Boolean, - constraint: null, - overlap: null, - allow: null, - className: parseClassName, - classNames: parseClassName, - color: String, - backgroundColor: String, - borderColor: String, - textColor: String - }; - function processUnscopedUiProps(rawProps, calendar, leftovers) { - var props = refineProps(rawProps, UNSCOPED_EVENT_UI_PROPS, {}, leftovers); - var constraint = normalizeConstraint(props.constraint, calendar); - return { - startEditable: props.startEditable != null ? props.startEditable : props.editable, - durationEditable: props.durationEditable != null ? props.durationEditable : props.editable, - constraints: constraint != null ? [constraint] : [], - overlap: props.overlap, - allows: props.allow != null ? [props.allow] : [], - backgroundColor: props.backgroundColor || props.color, - borderColor: props.borderColor || props.color, - textColor: props.textColor, - classNames: props.classNames.concat(props.className) - }; - } - function processScopedUiProps(prefix, rawScoped, calendar, leftovers) { - var rawUnscoped = {}; - var wasFound = {}; - for (var key in UNSCOPED_EVENT_UI_PROPS) { - var scopedKey = prefix + capitaliseFirstLetter(key); - rawUnscoped[key] = rawScoped[scopedKey]; - wasFound[scopedKey] = true; - } - if (prefix === 'event') { - rawUnscoped.editable = rawScoped.editable; // special case. there is no 'eventEditable', just 'editable' - } - if (leftovers) { - for (var key in rawScoped) { - if (!wasFound[key]) { - leftovers[key] = rawScoped[key]; - } - } - } - return processUnscopedUiProps(rawUnscoped, calendar); - } - var EMPTY_EVENT_UI = { - startEditable: null, - durationEditable: null, - constraints: [], - overlap: null, - allows: [], - backgroundColor: '', - borderColor: '', - textColor: '', - classNames: [] - }; - // prevent against problems with <2 args! - function combineEventUis(uis) { - return uis.reduce(combineTwoEventUis, EMPTY_EVENT_UI); - } - function combineTwoEventUis(item0, item1) { - return { - startEditable: item1.startEditable != null ? item1.startEditable : item0.startEditable, - durationEditable: item1.durationEditable != null ? item1.durationEditable : item0.durationEditable, - constraints: item0.constraints.concat(item1.constraints), - overlap: typeof item1.overlap === 'boolean' ? item1.overlap : item0.overlap, - allows: item0.allows.concat(item1.allows), - backgroundColor: item1.backgroundColor || item0.backgroundColor, - borderColor: item1.borderColor || item0.borderColor, - textColor: item1.textColor || item0.textColor, - classNames: item0.classNames.concat(item1.classNames) - }; - } - - var NON_DATE_PROPS = { - id: String, - groupId: String, - title: String, - url: String, - rendering: String, - extendedProps: null - }; - var DATE_PROPS = { - start: null, - date: null, - end: null, - allDay: null - }; - var uid = 0; - function parseEvent(raw, sourceId, calendar, allowOpenRange) { - var allDayDefault = computeIsAllDayDefault(sourceId, calendar); - var leftovers0 = {}; - var recurringRes = parseRecurring(raw, // raw, but with single-event stuff stripped out - allDayDefault, calendar.dateEnv, calendar.pluginSystem.hooks.recurringTypes, leftovers0 // will populate with non-recurring props - ); - if (recurringRes) { - var def = parseEventDef(leftovers0, sourceId, recurringRes.allDay, Boolean(recurringRes.duration), calendar); - def.recurringDef = { - typeId: recurringRes.typeId, - typeData: recurringRes.typeData, - duration: recurringRes.duration - }; - return { def: def, instance: null }; - } - else { - var leftovers1 = {}; - var singleRes = parseSingle(raw, allDayDefault, calendar, leftovers1, allowOpenRange); - if (singleRes) { - var def = parseEventDef(leftovers1, sourceId, singleRes.allDay, singleRes.hasEnd, calendar); - var instance = createEventInstance(def.defId, singleRes.range, singleRes.forcedStartTzo, singleRes.forcedEndTzo); - return { def: def, instance: instance }; - } - } - return null; - } - /* - Will NOT populate extendedProps with the leftover properties. - Will NOT populate date-related props. - The EventNonDateInput has been normalized (id => publicId, etc). - */ - function parseEventDef(raw, sourceId, allDay, hasEnd, calendar) { - var leftovers = {}; - var def = pluckNonDateProps(raw, calendar, leftovers); - def.defId = String(uid++); - def.sourceId = sourceId; - def.allDay = allDay; - def.hasEnd = hasEnd; - for (var _i = 0, _a = calendar.pluginSystem.hooks.eventDefParsers; _i < _a.length; _i++) { - var eventDefParser = _a[_i]; - var newLeftovers = {}; - eventDefParser(def, leftovers, newLeftovers); - leftovers = newLeftovers; - } - def.extendedProps = __assign(leftovers, def.extendedProps || {}); - // help out EventApi from having user modify props - Object.freeze(def.ui.classNames); - Object.freeze(def.extendedProps); - return def; - } - function createEventInstance(defId, range, forcedStartTzo, forcedEndTzo) { - return { - instanceId: String(uid++), - defId: defId, - range: range, - forcedStartTzo: forcedStartTzo == null ? null : forcedStartTzo, - forcedEndTzo: forcedEndTzo == null ? null : forcedEndTzo - }; - } - function parseSingle(raw, allDayDefault, calendar, leftovers, allowOpenRange) { - var props = pluckDateProps(raw, leftovers); - var allDay = props.allDay; - var startMeta; - var startMarker = null; - var hasEnd = false; - var endMeta; - var endMarker = null; - startMeta = calendar.dateEnv.createMarkerMeta(props.start); - if (startMeta) { - startMarker = startMeta.marker; - } - else if (!allowOpenRange) { - return null; - } - if (props.end != null) { - endMeta = calendar.dateEnv.createMarkerMeta(props.end); - } - if (allDay == null) { - if (allDayDefault != null) { - allDay = allDayDefault; - } - else { - // fall back to the date props LAST - allDay = (!startMeta || startMeta.isTimeUnspecified) && - (!endMeta || endMeta.isTimeUnspecified); - } - } - if (allDay && startMarker) { - startMarker = startOfDay(startMarker); - } - if (endMeta) { - endMarker = endMeta.marker; - if (allDay) { - endMarker = startOfDay(endMarker); - } - if (startMarker && endMarker <= startMarker) { - endMarker = null; - } - } - if (endMarker) { - hasEnd = true; - } - else if (!allowOpenRange) { - hasEnd = calendar.opt('forceEventDuration') || false; - endMarker = calendar.dateEnv.add(startMarker, allDay ? - calendar.defaultAllDayEventDuration : - calendar.defaultTimedEventDuration); - } - return { - allDay: allDay, - hasEnd: hasEnd, - range: { start: startMarker, end: endMarker }, - forcedStartTzo: startMeta ? startMeta.forcedTzo : null, - forcedEndTzo: endMeta ? endMeta.forcedTzo : null - }; - } - function pluckDateProps(raw, leftovers) { - var props = refineProps(raw, DATE_PROPS, {}, leftovers); - props.start = (props.start !== null) ? props.start : props.date; - delete props.date; - return props; - } - function pluckNonDateProps(raw, calendar, leftovers) { - var preLeftovers = {}; - var props = refineProps(raw, NON_DATE_PROPS, {}, preLeftovers); - var ui = processUnscopedUiProps(preLeftovers, calendar, leftovers); - props.publicId = props.id; - delete props.id; - props.ui = ui; - return props; - } - function computeIsAllDayDefault(sourceId, calendar) { - var res = null; - if (sourceId) { - var source = calendar.state.eventSources[sourceId]; - res = source.allDayDefault; - } - if (res == null) { - res = calendar.opt('allDayDefault'); - } - return res; - } - - var DEF_DEFAULTS = { - startTime: '09:00', - endTime: '17:00', - daysOfWeek: [1, 2, 3, 4, 5], - rendering: 'inverse-background', - classNames: 'fc-nonbusiness', - groupId: '_businessHours' // so multiple defs get grouped - }; - /* - TODO: pass around as EventDefHash!!! - */ - function parseBusinessHours(input, calendar) { - return parseEvents(refineInputs(input), '', calendar); - } - function refineInputs(input) { - var rawDefs; - if (input === true) { - rawDefs = [{}]; // will get DEF_DEFAULTS verbatim - } - else if (Array.isArray(input)) { - // if specifying an array, every sub-definition NEEDS a day-of-week - rawDefs = input.filter(function (rawDef) { - return rawDef.daysOfWeek; - }); - } - else if (typeof input === 'object' && input) { // non-null object - rawDefs = [input]; - } - else { // is probably false - rawDefs = []; - } - rawDefs = rawDefs.map(function (rawDef) { - return __assign({}, DEF_DEFAULTS, rawDef); - }); - return rawDefs; - } - - function memoizeRendering(renderFunc, unrenderFunc, dependencies) { - if (dependencies === void 0) { dependencies = []; } - var dependents = []; - var thisContext; - var prevArgs; - function unrender() { - if (prevArgs) { - for (var _i = 0, dependents_1 = dependents; _i < dependents_1.length; _i++) { - var dependent = dependents_1[_i]; - dependent.unrender(); - } - if (unrenderFunc) { - unrenderFunc.apply(thisContext, prevArgs); - } - prevArgs = null; - } - } - function res() { - if (!prevArgs || !isArraysEqual(prevArgs, arguments)) { - unrender(); - thisContext = this; - prevArgs = arguments; - renderFunc.apply(this, arguments); - } - } - res.dependents = dependents; - res.unrender = unrender; - for (var _i = 0, dependencies_1 = dependencies; _i < dependencies_1.length; _i++) { - var dependency = dependencies_1[_i]; - dependency.dependents.push(res); - } - return res; - } - - var EMPTY_EVENT_STORE = createEmptyEventStore(); // for purecomponents. TODO: keep elsewhere - var Splitter = /** @class */ (function () { - function Splitter() { - this.getKeysForEventDefs = memoize(this._getKeysForEventDefs); - this.splitDateSelection = memoize(this._splitDateSpan); - this.splitEventStore = memoize(this._splitEventStore); - this.splitIndividualUi = memoize(this._splitIndividualUi); - this.splitEventDrag = memoize(this._splitInteraction); - this.splitEventResize = memoize(this._splitInteraction); - this.eventUiBuilders = {}; // TODO: typescript protection - } - Splitter.prototype.splitProps = function (props) { - var _this = this; - var keyInfos = this.getKeyInfo(props); - var defKeys = this.getKeysForEventDefs(props.eventStore); - var dateSelections = this.splitDateSelection(props.dateSelection); - var individualUi = this.splitIndividualUi(props.eventUiBases, defKeys); // the individual *bases* - var eventStores = this.splitEventStore(props.eventStore, defKeys); - var eventDrags = this.splitEventDrag(props.eventDrag); - var eventResizes = this.splitEventResize(props.eventResize); - var splitProps = {}; - this.eventUiBuilders = mapHash(keyInfos, function (info, key) { - return _this.eventUiBuilders[key] || memoize(buildEventUiForKey); - }); - for (var key in keyInfos) { - var keyInfo = keyInfos[key]; - var eventStore = eventStores[key] || EMPTY_EVENT_STORE; - var buildEventUi = this.eventUiBuilders[key]; - splitProps[key] = { - businessHours: keyInfo.businessHours || props.businessHours, - dateSelection: dateSelections[key] || null, - eventStore: eventStore, - eventUiBases: buildEventUi(props.eventUiBases[''], keyInfo.ui, individualUi[key]), - eventSelection: eventStore.instances[props.eventSelection] ? props.eventSelection : '', - eventDrag: eventDrags[key] || null, - eventResize: eventResizes[key] || null - }; - } - return splitProps; - }; - Splitter.prototype._splitDateSpan = function (dateSpan) { - var dateSpans = {}; - if (dateSpan) { - var keys = this.getKeysForDateSpan(dateSpan); - for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) { - var key = keys_1[_i]; - dateSpans[key] = dateSpan; - } - } - return dateSpans; - }; - Splitter.prototype._getKeysForEventDefs = function (eventStore) { - var _this = this; - return mapHash(eventStore.defs, function (eventDef) { - return _this.getKeysForEventDef(eventDef); - }); - }; - Splitter.prototype._splitEventStore = function (eventStore, defKeys) { - var defs = eventStore.defs, instances = eventStore.instances; - var splitStores = {}; - for (var defId in defs) { - for (var _i = 0, _a = defKeys[defId]; _i < _a.length; _i++) { - var key = _a[_i]; - if (!splitStores[key]) { - splitStores[key] = createEmptyEventStore(); - } - splitStores[key].defs[defId] = defs[defId]; - } - } - for (var instanceId in instances) { - var instance = instances[instanceId]; - for (var _b = 0, _c = defKeys[instance.defId]; _b < _c.length; _b++) { - var key = _c[_b]; - if (splitStores[key]) { // must have already been created - splitStores[key].instances[instanceId] = instance; - } - } - } - return splitStores; - }; - Splitter.prototype._splitIndividualUi = function (eventUiBases, defKeys) { - var splitHashes = {}; - for (var defId in eventUiBases) { - if (defId) { // not the '' key - for (var _i = 0, _a = defKeys[defId]; _i < _a.length; _i++) { - var key = _a[_i]; - if (!splitHashes[key]) { - splitHashes[key] = {}; - } - splitHashes[key][defId] = eventUiBases[defId]; - } - } - } - return splitHashes; - }; - Splitter.prototype._splitInteraction = function (interaction) { - var splitStates = {}; - if (interaction) { - var affectedStores_1 = this._splitEventStore(interaction.affectedEvents, this._getKeysForEventDefs(interaction.affectedEvents) // can't use cached. might be events from other calendar - ); - // can't rely on defKeys because event data is mutated - var mutatedKeysByDefId = this._getKeysForEventDefs(interaction.mutatedEvents); - var mutatedStores_1 = this._splitEventStore(interaction.mutatedEvents, mutatedKeysByDefId); - var populate = function (key) { - if (!splitStates[key]) { - splitStates[key] = { - affectedEvents: affectedStores_1[key] || EMPTY_EVENT_STORE, - mutatedEvents: mutatedStores_1[key] || EMPTY_EVENT_STORE, - isEvent: interaction.isEvent, - origSeg: interaction.origSeg - }; - } - }; - for (var key in affectedStores_1) { - populate(key); - } - for (var key in mutatedStores_1) { - populate(key); - } - } - return splitStates; - }; - return Splitter; - }()); - function buildEventUiForKey(allUi, eventUiForKey, individualUi) { - var baseParts = []; - if (allUi) { - baseParts.push(allUi); - } - if (eventUiForKey) { - baseParts.push(eventUiForKey); - } - var stuff = { - '': combineEventUis(baseParts) - }; - if (individualUi) { - __assign(stuff, individualUi); - } - return stuff; - } - - // Generates HTML for an anchor to another view into the calendar. - // Will either generate an
tag or a non-clickable tag, depending on enabled settings. - // `gotoOptions` can either be a DateMarker, or an object with the form: - // { date, type, forceOff } - // `type` is a view-type like "day" or "week". default value is "day". - // `attrs` and `innerHtml` are use to generate the rest of the HTML tag. - function buildGotoAnchorHtml(component, gotoOptions, attrs, innerHtml) { - var dateEnv = component.dateEnv; - var date; - var type; - var forceOff; - var finalOptions; - if (gotoOptions instanceof Date) { - date = gotoOptions; // a single date-like input - } - else { - date = gotoOptions.date; - type = gotoOptions.type; - forceOff = gotoOptions.forceOff; - } - finalOptions = { - date: dateEnv.formatIso(date, { omitTime: true }), - type: type || 'day' - }; - if (typeof attrs === 'string') { - innerHtml = attrs; - attrs = null; - } - attrs = attrs ? ' ' + attrsToStr(attrs) : ''; // will have a leading space - innerHtml = innerHtml || ''; - if (!forceOff && component.opt('navLinks')) { - return '' + - innerHtml + - ''; - } - else { - return '' + - innerHtml + - ''; - } - } - function getAllDayHtml(component) { - return component.opt('allDayHtml') || htmlEscape(component.opt('allDayText')); - } - // Computes HTML classNames for a single-day element - function getDayClasses(date, dateProfile, context, noThemeHighlight) { - var calendar = context.calendar, view = context.view, theme = context.theme, dateEnv = context.dateEnv; - var classes = []; - var todayStart; - var todayEnd; - if (!rangeContainsMarker(dateProfile.activeRange, date)) { - classes.push('fc-disabled-day'); - } - else { - classes.push('fc-' + DAY_IDS[date.getUTCDay()]); - if (view.opt('monthMode') && - dateEnv.getMonth(date) !== dateEnv.getMonth(dateProfile.currentRange.start)) { - classes.push('fc-other-month'); - } - todayStart = startOfDay(calendar.getNow()); - todayEnd = addDays(todayStart, 1); - if (date < todayStart) { - classes.push('fc-past'); - } - else if (date >= todayEnd) { - classes.push('fc-future'); - } - else { - classes.push('fc-today'); - if (noThemeHighlight !== true) { - classes.push(theme.getClass('today')); - } - } - } - return classes; - } - - // given a function that resolves a result asynchronously. - // the function can either call passed-in success and failure callbacks, - // or it can return a promise. - // if you need to pass additional params to func, bind them first. - function unpromisify(func, success, failure) { - // guard against success/failure callbacks being called more than once - // and guard against a promise AND callback being used together. - var isResolved = false; - var wrappedSuccess = function () { - if (!isResolved) { - isResolved = true; - success.apply(this, arguments); - } - }; - var wrappedFailure = function () { - if (!isResolved) { - isResolved = true; - if (failure) { - failure.apply(this, arguments); - } - } - }; - var res = func(wrappedSuccess, wrappedFailure); - if (res && typeof res.then === 'function') { - res.then(wrappedSuccess, wrappedFailure); - } - } - - var Mixin = /** @class */ (function () { - function Mixin() { - } - // mix into a CLASS - Mixin.mixInto = function (destClass) { - this.mixIntoObj(destClass.prototype); - }; - // mix into ANY object - Mixin.mixIntoObj = function (destObj) { - var _this = this; - Object.getOwnPropertyNames(this.prototype).forEach(function (name) { - if (!destObj[name]) { // if destination doesn't already define it - destObj[name] = _this.prototype[name]; - } - }); - }; - /* - will override existing methods - TODO: remove! not used anymore - */ - Mixin.mixOver = function (destClass) { - var _this = this; - Object.getOwnPropertyNames(this.prototype).forEach(function (name) { - destClass.prototype[name] = _this.prototype[name]; - }); - }; - return Mixin; - }()); - - /* - USAGE: - import { default as EmitterMixin, EmitterInterface } from './EmitterMixin' - in class: - on: EmitterInterface['on'] - one: EmitterInterface['one'] - off: EmitterInterface['off'] - trigger: EmitterInterface['trigger'] - triggerWith: EmitterInterface['triggerWith'] - hasHandlers: EmitterInterface['hasHandlers'] - after class: - EmitterMixin.mixInto(TheClass) - */ - var EmitterMixin = /** @class */ (function (_super) { - __extends(EmitterMixin, _super); - function EmitterMixin() { - return _super !== null && _super.apply(this, arguments) || this; - } - EmitterMixin.prototype.on = function (type, handler) { - addToHash(this._handlers || (this._handlers = {}), type, handler); - return this; // for chaining - }; - // todo: add comments - EmitterMixin.prototype.one = function (type, handler) { - addToHash(this._oneHandlers || (this._oneHandlers = {}), type, handler); - return this; // for chaining - }; - EmitterMixin.prototype.off = function (type, handler) { - if (this._handlers) { - removeFromHash(this._handlers, type, handler); - } - if (this._oneHandlers) { - removeFromHash(this._oneHandlers, type, handler); - } - return this; // for chaining - }; - EmitterMixin.prototype.trigger = function (type) { - var args = []; - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; - } - this.triggerWith(type, this, args); - return this; // for chaining - }; - EmitterMixin.prototype.triggerWith = function (type, context, args) { - if (this._handlers) { - applyAll(this._handlers[type], context, args); - } - if (this._oneHandlers) { - applyAll(this._oneHandlers[type], context, args); - delete this._oneHandlers[type]; // will never fire again - } - return this; // for chaining - }; - EmitterMixin.prototype.hasHandlers = function (type) { - return (this._handlers && this._handlers[type] && this._handlers[type].length) || - (this._oneHandlers && this._oneHandlers[type] && this._oneHandlers[type].length); - }; - return EmitterMixin; - }(Mixin)); - function addToHash(hash, type, handler) { - (hash[type] || (hash[type] = [])) - .push(handler); - } - function removeFromHash(hash, type, handler) { - if (handler) { - if (hash[type]) { - hash[type] = hash[type].filter(function (func) { - return func !== handler; - }); - } - } - else { - delete hash[type]; // remove all handler funcs for this type - } - } - - /* - Records offset information for a set of elements, relative to an origin element. - Can record the left/right OR the top/bottom OR both. - Provides methods for querying the cache by position. - */ - var PositionCache = /** @class */ (function () { - function PositionCache(originEl, els, isHorizontal, isVertical) { - this.originEl = originEl; - this.els = els; - this.isHorizontal = isHorizontal; - this.isVertical = isVertical; - } - // Queries the els for coordinates and stores them. - // Call this method before using and of the get* methods below. - PositionCache.prototype.build = function () { - var originEl = this.originEl; - var originClientRect = this.originClientRect = - originEl.getBoundingClientRect(); // relative to viewport top-left - if (this.isHorizontal) { - this.buildElHorizontals(originClientRect.left); - } - if (this.isVertical) { - this.buildElVerticals(originClientRect.top); - } - }; - // Populates the left/right internal coordinate arrays - PositionCache.prototype.buildElHorizontals = function (originClientLeft) { - var lefts = []; - var rights = []; - for (var _i = 0, _a = this.els; _i < _a.length; _i++) { - var el = _a[_i]; - var rect = el.getBoundingClientRect(); - lefts.push(rect.left - originClientLeft); - rights.push(rect.right - originClientLeft); - } - this.lefts = lefts; - this.rights = rights; - }; - // Populates the top/bottom internal coordinate arrays - PositionCache.prototype.buildElVerticals = function (originClientTop) { - var tops = []; - var bottoms = []; - for (var _i = 0, _a = this.els; _i < _a.length; _i++) { - var el = _a[_i]; - var rect = el.getBoundingClientRect(); - tops.push(rect.top - originClientTop); - bottoms.push(rect.bottom - originClientTop); - } - this.tops = tops; - this.bottoms = bottoms; - }; - // Given a left offset (from document left), returns the index of the el that it horizontally intersects. - // If no intersection is made, returns undefined. - PositionCache.prototype.leftToIndex = function (leftPosition) { - var lefts = this.lefts; - var rights = this.rights; - var len = lefts.length; - var i; - for (i = 0; i < len; i++) { - if (leftPosition >= lefts[i] && leftPosition < rights[i]) { - return i; - } - } - }; - // Given a top offset (from document top), returns the index of the el that it vertically intersects. - // If no intersection is made, returns undefined. - PositionCache.prototype.topToIndex = function (topPosition) { - var tops = this.tops; - var bottoms = this.bottoms; - var len = tops.length; - var i; - for (i = 0; i < len; i++) { - if (topPosition >= tops[i] && topPosition < bottoms[i]) { - return i; - } - } - }; - // Gets the width of the element at the given index - PositionCache.prototype.getWidth = function (leftIndex) { - return this.rights[leftIndex] - this.lefts[leftIndex]; - }; - // Gets the height of the element at the given index - PositionCache.prototype.getHeight = function (topIndex) { - return this.bottoms[topIndex] - this.tops[topIndex]; - }; - return PositionCache; - }()); - - /* - An object for getting/setting scroll-related information for an element. - Internally, this is done very differently for window versus DOM element, - so this object serves as a common interface. - */ - var ScrollController = /** @class */ (function () { - function ScrollController() { - } - ScrollController.prototype.getMaxScrollTop = function () { - return this.getScrollHeight() - this.getClientHeight(); - }; - ScrollController.prototype.getMaxScrollLeft = function () { - return this.getScrollWidth() - this.getClientWidth(); - }; - ScrollController.prototype.canScrollVertically = function () { - return this.getMaxScrollTop() > 0; - }; - ScrollController.prototype.canScrollHorizontally = function () { - return this.getMaxScrollLeft() > 0; - }; - ScrollController.prototype.canScrollUp = function () { - return this.getScrollTop() > 0; - }; - ScrollController.prototype.canScrollDown = function () { - return this.getScrollTop() < this.getMaxScrollTop(); - }; - ScrollController.prototype.canScrollLeft = function () { - return this.getScrollLeft() > 0; - }; - ScrollController.prototype.canScrollRight = function () { - return this.getScrollLeft() < this.getMaxScrollLeft(); - }; - return ScrollController; - }()); - var ElementScrollController = /** @class */ (function (_super) { - __extends(ElementScrollController, _super); - function ElementScrollController(el) { - var _this = _super.call(this) || this; - _this.el = el; - return _this; - } - ElementScrollController.prototype.getScrollTop = function () { - return this.el.scrollTop; - }; - ElementScrollController.prototype.getScrollLeft = function () { - return this.el.scrollLeft; - }; - ElementScrollController.prototype.setScrollTop = function (top) { - this.el.scrollTop = top; - }; - ElementScrollController.prototype.setScrollLeft = function (left) { - this.el.scrollLeft = left; - }; - ElementScrollController.prototype.getScrollWidth = function () { - return this.el.scrollWidth; - }; - ElementScrollController.prototype.getScrollHeight = function () { - return this.el.scrollHeight; - }; - ElementScrollController.prototype.getClientHeight = function () { - return this.el.clientHeight; - }; - ElementScrollController.prototype.getClientWidth = function () { - return this.el.clientWidth; - }; - return ElementScrollController; - }(ScrollController)); - var WindowScrollController = /** @class */ (function (_super) { - __extends(WindowScrollController, _super); - function WindowScrollController() { - return _super !== null && _super.apply(this, arguments) || this; - } - WindowScrollController.prototype.getScrollTop = function () { - return window.pageYOffset; - }; - WindowScrollController.prototype.getScrollLeft = function () { - return window.pageXOffset; - }; - WindowScrollController.prototype.setScrollTop = function (n) { - window.scroll(window.pageXOffset, n); - }; - WindowScrollController.prototype.setScrollLeft = function (n) { - window.scroll(n, window.pageYOffset); - }; - WindowScrollController.prototype.getScrollWidth = function () { - return document.documentElement.scrollWidth; - }; - WindowScrollController.prototype.getScrollHeight = function () { - return document.documentElement.scrollHeight; - }; - WindowScrollController.prototype.getClientHeight = function () { - return document.documentElement.clientHeight; - }; - WindowScrollController.prototype.getClientWidth = function () { - return document.documentElement.clientWidth; - }; - return WindowScrollController; - }(ScrollController)); - - /* - Embodies a div that has potential scrollbars - */ - var ScrollComponent = /** @class */ (function (_super) { - __extends(ScrollComponent, _super); - function ScrollComponent(overflowX, overflowY) { - var _this = _super.call(this, createElement('div', { - className: 'fc-scroller' - })) || this; - _this.overflowX = overflowX; - _this.overflowY = overflowY; - _this.applyOverflow(); - return _this; - } - // sets to natural height, unlocks overflow - ScrollComponent.prototype.clear = function () { - this.setHeight('auto'); - this.applyOverflow(); - }; - ScrollComponent.prototype.destroy = function () { - removeElement(this.el); - }; - // Overflow - // ----------------------------------------------------------------------------------------------------------------- - ScrollComponent.prototype.applyOverflow = function () { - applyStyle(this.el, { - overflowX: this.overflowX, - overflowY: this.overflowY - }); - }; - // Causes any 'auto' overflow values to resolves to 'scroll' or 'hidden'. - // Useful for preserving scrollbar widths regardless of future resizes. - // Can pass in scrollbarWidths for optimization. - ScrollComponent.prototype.lockOverflow = function (scrollbarWidths) { - var overflowX = this.overflowX; - var overflowY = this.overflowY; - scrollbarWidths = scrollbarWidths || this.getScrollbarWidths(); - if (overflowX === 'auto') { - overflowX = (scrollbarWidths.bottom || // horizontal scrollbars? - this.canScrollHorizontally() // OR scrolling pane with massless scrollbars? - ) ? 'scroll' : 'hidden'; - } - if (overflowY === 'auto') { - overflowY = (scrollbarWidths.left || scrollbarWidths.right || // horizontal scrollbars? - this.canScrollVertically() // OR scrolling pane with massless scrollbars? - ) ? 'scroll' : 'hidden'; - } - applyStyle(this.el, { overflowX: overflowX, overflowY: overflowY }); - }; - ScrollComponent.prototype.setHeight = function (height) { - applyStyleProp(this.el, 'height', height); - }; - ScrollComponent.prototype.getScrollbarWidths = function () { - var edges = computeEdges(this.el); - return { - left: edges.scrollbarLeft, - right: edges.scrollbarRight, - bottom: edges.scrollbarBottom - }; - }; - return ScrollComponent; - }(ElementScrollController)); - - var Theme = /** @class */ (function () { - function Theme(calendarOptions) { - this.calendarOptions = calendarOptions; - this.processIconOverride(); - } - Theme.prototype.processIconOverride = function () { - if (this.iconOverrideOption) { - this.setIconOverride(this.calendarOptions[this.iconOverrideOption]); - } - }; - Theme.prototype.setIconOverride = function (iconOverrideHash) { - var iconClassesCopy; - var buttonName; - if (typeof iconOverrideHash === 'object' && iconOverrideHash) { // non-null object - iconClassesCopy = __assign({}, this.iconClasses); - for (buttonName in iconOverrideHash) { - iconClassesCopy[buttonName] = this.applyIconOverridePrefix(iconOverrideHash[buttonName]); - } - this.iconClasses = iconClassesCopy; - } - else if (iconOverrideHash === false) { - this.iconClasses = {}; - } - }; - Theme.prototype.applyIconOverridePrefix = function (className) { - var prefix = this.iconOverridePrefix; - if (prefix && className.indexOf(prefix) !== 0) { // if not already present - className = prefix + className; - } - return className; - }; - Theme.prototype.getClass = function (key) { - return this.classes[key] || ''; - }; - Theme.prototype.getIconClass = function (buttonName) { - var className = this.iconClasses[buttonName]; - if (className) { - return this.baseIconClass + ' ' + className; - } - return ''; - }; - Theme.prototype.getCustomButtonIconClass = function (customButtonProps) { - var className; - if (this.iconOverrideCustomButtonOption) { - className = customButtonProps[this.iconOverrideCustomButtonOption]; - if (className) { - return this.baseIconClass + ' ' + this.applyIconOverridePrefix(className); - } - } - return ''; - }; - return Theme; - }()); - Theme.prototype.classes = {}; - Theme.prototype.iconClasses = {}; - Theme.prototype.baseIconClass = ''; - Theme.prototype.iconOverridePrefix = ''; - - var guid = 0; - var Component = /** @class */ (function () { - function Component(context, isView) { - // HACK to populate view at top of component instantiation call chain - if (isView) { - context.view = this; - } - this.uid = String(guid++); - this.context = context; - this.dateEnv = context.dateEnv; - this.theme = context.theme; - this.view = context.view; - this.calendar = context.calendar; - this.isRtl = this.opt('dir') === 'rtl'; - } - Component.addEqualityFuncs = function (newFuncs) { - this.prototype.equalityFuncs = __assign({}, this.prototype.equalityFuncs, newFuncs); - }; - Component.prototype.opt = function (name) { - return this.context.options[name]; - }; - Component.prototype.receiveProps = function (props) { - var _a = recycleProps(this.props || {}, props, this.equalityFuncs), anyChanges = _a.anyChanges, comboProps = _a.comboProps; - this.props = comboProps; - if (anyChanges) { - this.render(comboProps); - } - }; - Component.prototype.render = function (props) { - }; - // after destroy is called, this component won't ever be used again - Component.prototype.destroy = function () { - }; - return Component; - }()); - Component.prototype.equalityFuncs = {}; - /* - Reuses old values when equal. If anything is unequal, returns newProps as-is. - Great for PureComponent, but won't be feasible with React, so just eliminate and use React's DOM diffing. - */ - function recycleProps(oldProps, newProps, equalityFuncs) { - var comboProps = {}; // some old, some new - var anyChanges = false; - for (var key in newProps) { - if (key in oldProps && (oldProps[key] === newProps[key] || - (equalityFuncs[key] && equalityFuncs[key](oldProps[key], newProps[key])))) { - // equal to old? use old prop - comboProps[key] = oldProps[key]; - } - else { - comboProps[key] = newProps[key]; - anyChanges = true; - } - } - for (var key in oldProps) { - if (!(key in newProps)) { - anyChanges = true; - break; - } - } - return { anyChanges: anyChanges, comboProps: comboProps }; - } - - /* - PURPOSES: - - hook up to fg, fill, and mirror renderers - - interface for dragging and hits - */ - var DateComponent = /** @class */ (function (_super) { - __extends(DateComponent, _super); - function DateComponent(context, el, isView) { - var _this = _super.call(this, context, isView) || this; - _this.el = el; - return _this; - } - DateComponent.prototype.destroy = function () { - _super.prototype.destroy.call(this); - removeElement(this.el); - }; - // TODO: WHAT ABOUT (sourceSeg && sourceSeg.component.doesDragMirror) - // - // Event Drag-n-Drop Rendering (for both events and external elements) - // --------------------------------------------------------------------------------------------------------------- - /* - renderEventDragSegs(state: EventSegUiInteractionState) { - if (state) { - let { isEvent, segs, sourceSeg } = state - - if (this.eventRenderer) { - this.eventRenderer.hideByHash(state.affectedInstances) - } - - // if the user is dragging something that is considered an event with real event data, - // and this component likes to do drag mirrors OR the component where the seg came from - // likes to do drag mirrors, then render a drag mirror. - if (isEvent && (this.doesDragMirror || sourceSeg && sourceSeg.component.doesDragMirror)) { - if (this.mirrorRenderer) { - this.mirrorRenderer.renderSegs(segs, { isDragging: true, sourceSeg }) - } - } - - // if it would be impossible to render a drag mirror OR this component likes to render - // highlights, then render a highlight. - if (!isEvent || this.doesDragHighlight) { - if (this.fillRenderer) { - this.fillRenderer.renderSegs('highlight', segs) - } - } - } - } - */ - // Hit System - // ----------------------------------------------------------------------------------------------------------------- - DateComponent.prototype.buildPositionCaches = function () { - }; - DateComponent.prototype.queryHit = function (positionLeft, positionTop, elWidth, elHeight) { - return null; // this should be abstract - }; - // Validation - // ----------------------------------------------------------------------------------------------------------------- - DateComponent.prototype.isInteractionValid = function (interaction) { - var calendar = this.calendar; - var dateProfile = this.props.dateProfile; // HACK - var instances = interaction.mutatedEvents.instances; - if (dateProfile) { // HACK for DayTile - for (var instanceId in instances) { - if (!rangeContainsRange(dateProfile.validRange, instances[instanceId].range)) { - return false; - } - } - } - return isInteractionValid(interaction, calendar); - }; - DateComponent.prototype.isDateSelectionValid = function (selection) { - var dateProfile = this.props.dateProfile; // HACK - if (dateProfile && // HACK for DayTile - !rangeContainsRange(dateProfile.validRange, selection.range)) { - return false; - } - return isDateSelectionValid(selection, this.calendar); - }; - // Triggering - // ----------------------------------------------------------------------------------------------------------------- - // TODO: move to Calendar - DateComponent.prototype.publiclyTrigger = function (name, args) { - var calendar = this.calendar; - return calendar.publiclyTrigger(name, args); - }; - DateComponent.prototype.publiclyTriggerAfterSizing = function (name, args) { - var calendar = this.calendar; - return calendar.publiclyTriggerAfterSizing(name, args); - }; - DateComponent.prototype.hasPublicHandlers = function (name) { - var calendar = this.calendar; - return calendar.hasPublicHandlers(name); - }; - DateComponent.prototype.triggerRenderedSegs = function (segs, isMirrors) { - var calendar = this.calendar; - if (this.hasPublicHandlers('eventPositioned')) { - for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) { - var seg = segs_1[_i]; - this.publiclyTriggerAfterSizing('eventPositioned', [ - { - event: new EventApi(calendar, seg.eventRange.def, seg.eventRange.instance), - isMirror: isMirrors, - isStart: seg.isStart, - isEnd: seg.isEnd, - el: seg.el, - view: this // safe to cast because this method is only called on context.view - } - ]); - } - } - if (!calendar.state.loadingLevel) { // avoid initial empty state while pending - calendar.afterSizingTriggers._eventsPositioned = [null]; // fire once - } - }; - DateComponent.prototype.triggerWillRemoveSegs = function (segs, isMirrors) { - var calendar = this.calendar; - for (var _i = 0, segs_2 = segs; _i < segs_2.length; _i++) { - var seg = segs_2[_i]; - calendar.trigger('eventElRemove', seg.el); - } - if (this.hasPublicHandlers('eventDestroy')) { - for (var _a = 0, segs_3 = segs; _a < segs_3.length; _a++) { - var seg = segs_3[_a]; - this.publiclyTrigger('eventDestroy', [ - { - event: new EventApi(calendar, seg.eventRange.def, seg.eventRange.instance), - isMirror: isMirrors, - el: seg.el, - view: this // safe to cast because this method is only called on context.view - } - ]); - } - } - }; - // Pointer Interaction Utils - // ----------------------------------------------------------------------------------------------------------------- - DateComponent.prototype.isValidSegDownEl = function (el) { - return !this.props.eventDrag && // HACK - !this.props.eventResize && // HACK - !elementClosest(el, '.fc-mirror') && - (this.isPopover() || !this.isInPopover(el)); - // ^above line ensures we don't detect a seg interaction within a nested component. - // it's a HACK because it only supports a popover as the nested component. - }; - DateComponent.prototype.isValidDateDownEl = function (el) { - var segEl = elementClosest(el, this.fgSegSelector); - return (!segEl || segEl.classList.contains('fc-mirror')) && - !elementClosest(el, '.fc-more') && // a "more.." link - !elementClosest(el, 'a[data-goto]') && // a clickable nav link - !this.isInPopover(el); - }; - DateComponent.prototype.isPopover = function () { - return this.el.classList.contains('fc-popover'); - }; - DateComponent.prototype.isInPopover = function (el) { - return Boolean(elementClosest(el, '.fc-popover')); - }; - return DateComponent; - }(Component)); - DateComponent.prototype.fgSegSelector = '.fc-event-container > *'; - DateComponent.prototype.bgSegSelector = '.fc-bgevent:not(.fc-nonbusiness)'; - - var uid$1 = 0; - function createPlugin(input) { - return { - id: String(uid$1++), - deps: input.deps || [], - reducers: input.reducers || [], - eventDefParsers: input.eventDefParsers || [], - isDraggableTransformers: input.isDraggableTransformers || [], - eventDragMutationMassagers: input.eventDragMutationMassagers || [], - eventDefMutationAppliers: input.eventDefMutationAppliers || [], - dateSelectionTransformers: input.dateSelectionTransformers || [], - datePointTransforms: input.datePointTransforms || [], - dateSpanTransforms: input.dateSpanTransforms || [], - views: input.views || {}, - viewPropsTransformers: input.viewPropsTransformers || [], - isPropsValid: input.isPropsValid || null, - externalDefTransforms: input.externalDefTransforms || [], - eventResizeJoinTransforms: input.eventResizeJoinTransforms || [], - viewContainerModifiers: input.viewContainerModifiers || [], - eventDropTransformers: input.eventDropTransformers || [], - componentInteractions: input.componentInteractions || [], - calendarInteractions: input.calendarInteractions || [], - themeClasses: input.themeClasses || {}, - eventSourceDefs: input.eventSourceDefs || [], - cmdFormatter: input.cmdFormatter, - recurringTypes: input.recurringTypes || [], - namedTimeZonedImpl: input.namedTimeZonedImpl, - defaultView: input.defaultView || '', - elementDraggingImpl: input.elementDraggingImpl, - optionChangeHandlers: input.optionChangeHandlers || {} - }; - } - var PluginSystem = /** @class */ (function () { - function PluginSystem() { - this.hooks = { - reducers: [], - eventDefParsers: [], - isDraggableTransformers: [], - eventDragMutationMassagers: [], - eventDefMutationAppliers: [], - dateSelectionTransformers: [], - datePointTransforms: [], - dateSpanTransforms: [], - views: {}, - viewPropsTransformers: [], - isPropsValid: null, - externalDefTransforms: [], - eventResizeJoinTransforms: [], - viewContainerModifiers: [], - eventDropTransformers: [], - componentInteractions: [], - calendarInteractions: [], - themeClasses: {}, - eventSourceDefs: [], - cmdFormatter: null, - recurringTypes: [], - namedTimeZonedImpl: null, - defaultView: '', - elementDraggingImpl: null, - optionChangeHandlers: {} - }; - this.addedHash = {}; - } - PluginSystem.prototype.add = function (plugin) { - if (!this.addedHash[plugin.id]) { - this.addedHash[plugin.id] = true; - for (var _i = 0, _a = plugin.deps; _i < _a.length; _i++) { - var dep = _a[_i]; - this.add(dep); - } - this.hooks = combineHooks(this.hooks, plugin); - } - }; - return PluginSystem; - }()); - function combineHooks(hooks0, hooks1) { - return { - reducers: hooks0.reducers.concat(hooks1.reducers), - eventDefParsers: hooks0.eventDefParsers.concat(hooks1.eventDefParsers), - isDraggableTransformers: hooks0.isDraggableTransformers.concat(hooks1.isDraggableTransformers), - eventDragMutationMassagers: hooks0.eventDragMutationMassagers.concat(hooks1.eventDragMutationMassagers), - eventDefMutationAppliers: hooks0.eventDefMutationAppliers.concat(hooks1.eventDefMutationAppliers), - dateSelectionTransformers: hooks0.dateSelectionTransformers.concat(hooks1.dateSelectionTransformers), - datePointTransforms: hooks0.datePointTransforms.concat(hooks1.datePointTransforms), - dateSpanTransforms: hooks0.dateSpanTransforms.concat(hooks1.dateSpanTransforms), - views: __assign({}, hooks0.views, hooks1.views), - viewPropsTransformers: hooks0.viewPropsTransformers.concat(hooks1.viewPropsTransformers), - isPropsValid: hooks1.isPropsValid || hooks0.isPropsValid, - externalDefTransforms: hooks0.externalDefTransforms.concat(hooks1.externalDefTransforms), - eventResizeJoinTransforms: hooks0.eventResizeJoinTransforms.concat(hooks1.eventResizeJoinTransforms), - viewContainerModifiers: hooks0.viewContainerModifiers.concat(hooks1.viewContainerModifiers), - eventDropTransformers: hooks0.eventDropTransformers.concat(hooks1.eventDropTransformers), - calendarInteractions: hooks0.calendarInteractions.concat(hooks1.calendarInteractions), - componentInteractions: hooks0.componentInteractions.concat(hooks1.componentInteractions), - themeClasses: __assign({}, hooks0.themeClasses, hooks1.themeClasses), - eventSourceDefs: hooks0.eventSourceDefs.concat(hooks1.eventSourceDefs), - cmdFormatter: hooks1.cmdFormatter || hooks0.cmdFormatter, - recurringTypes: hooks0.recurringTypes.concat(hooks1.recurringTypes), - namedTimeZonedImpl: hooks1.namedTimeZonedImpl || hooks0.namedTimeZonedImpl, - defaultView: hooks0.defaultView || hooks1.defaultView, - elementDraggingImpl: hooks0.elementDraggingImpl || hooks1.elementDraggingImpl, - optionChangeHandlers: __assign({}, hooks0.optionChangeHandlers, hooks1.optionChangeHandlers) - }; - } - - var eventSourceDef = { - ignoreRange: true, - parseMeta: function (raw) { - if (Array.isArray(raw)) { // short form - return raw; - } - else if (Array.isArray(raw.events)) { - return raw.events; - } - return null; - }, - fetch: function (arg, success) { - success({ - rawEvents: arg.eventSource.meta - }); - } - }; - var ArrayEventSourcePlugin = createPlugin({ - eventSourceDefs: [eventSourceDef] - }); - - var eventSourceDef$1 = { - parseMeta: function (raw) { - if (typeof raw === 'function') { // short form - return raw; - } - else if (typeof raw.events === 'function') { - return raw.events; - } - return null; - }, - fetch: function (arg, success, failure) { - var dateEnv = arg.calendar.dateEnv; - var func = arg.eventSource.meta; - unpromisify(func.bind(null, { - start: dateEnv.toDate(arg.range.start), - end: dateEnv.toDate(arg.range.end), - startStr: dateEnv.formatIso(arg.range.start), - endStr: dateEnv.formatIso(arg.range.end), - timeZone: dateEnv.timeZone - }), function (rawEvents) { - success({ rawEvents: rawEvents }); // needs an object response - }, failure // send errorObj directly to failure callback - ); - } - }; - var FuncEventSourcePlugin = createPlugin({ - eventSourceDefs: [eventSourceDef$1] - }); - - function requestJson(method, url, params, successCallback, failureCallback) { - method = method.toUpperCase(); - var body = null; - if (method === 'GET') { - url = injectQueryStringParams(url, params); - } - else { - body = encodeParams(params); - } - var xhr = new XMLHttpRequest(); - xhr.open(method, url, true); - if (method !== 'GET') { - xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); - } - xhr.onload = function () { - if (xhr.status >= 200 && xhr.status < 400) { - try { - var res = JSON.parse(xhr.responseText); - successCallback(res, xhr); - } - catch (err) { - failureCallback('Failure parsing JSON', xhr); - } - } - else { - failureCallback('Request failed', xhr); - } - }; - xhr.onerror = function () { - failureCallback('Request failed', xhr); - }; - xhr.send(body); - } - function injectQueryStringParams(url, params) { - return url + - (url.indexOf('?') === -1 ? '?' : '&') + - encodeParams(params); - } - function encodeParams(params) { - var parts = []; - for (var key in params) { - parts.push(encodeURIComponent(key) + '=' + encodeURIComponent(params[key])); - } - return parts.join('&'); - } - - var eventSourceDef$2 = { - parseMeta: function (raw) { - if (typeof raw === 'string') { // short form - raw = { url: raw }; - } - else if (!raw || typeof raw !== 'object' || !raw.url) { - return null; - } - return { - url: raw.url, - method: (raw.method || 'GET').toUpperCase(), - extraParams: raw.extraParams, - startParam: raw.startParam, - endParam: raw.endParam, - timeZoneParam: raw.timeZoneParam - }; - }, - fetch: function (arg, success, failure) { - var meta = arg.eventSource.meta; - var requestParams = buildRequestParams(meta, arg.range, arg.calendar); - requestJson(meta.method, meta.url, requestParams, function (rawEvents, xhr) { - success({ rawEvents: rawEvents, xhr: xhr }); - }, function (errorMessage, xhr) { - failure({ message: errorMessage, xhr: xhr }); - }); - } - }; - var JsonFeedEventSourcePlugin = createPlugin({ - eventSourceDefs: [eventSourceDef$2] - }); - function buildRequestParams(meta, range, calendar) { - var dateEnv = calendar.dateEnv; - var startParam; - var endParam; - var timeZoneParam; - var customRequestParams; - var params = {}; - startParam = meta.startParam; - if (startParam == null) { - startParam = calendar.opt('startParam'); - } - endParam = meta.endParam; - if (endParam == null) { - endParam = calendar.opt('endParam'); - } - timeZoneParam = meta.timeZoneParam; - if (timeZoneParam == null) { - timeZoneParam = calendar.opt('timeZoneParam'); - } - // retrieve any outbound GET/POST data from the options - if (typeof meta.extraParams === 'function') { - // supplied as a function that returns a key/value object - customRequestParams = meta.extraParams(); - } - else { - // probably supplied as a straight key/value object - customRequestParams = meta.extraParams || {}; - } - __assign(params, customRequestParams); - params[startParam] = dateEnv.formatIso(range.start); - params[endParam] = dateEnv.formatIso(range.end); - if (dateEnv.timeZone !== 'local') { - params[timeZoneParam] = dateEnv.timeZone; - } - return params; - } - - var recurring = { - parse: function (rawEvent, leftoverProps, dateEnv) { - var createMarker = dateEnv.createMarker.bind(dateEnv); - var processors = { - daysOfWeek: null, - startTime: createDuration, - endTime: createDuration, - startRecur: createMarker, - endRecur: createMarker - }; - var props = refineProps(rawEvent, processors, {}, leftoverProps); - var anyValid = false; - for (var propName in props) { - if (props[propName] != null) { - anyValid = true; - break; - } - } - if (anyValid) { - var duration = null; - if ('duration' in leftoverProps) { - duration = createDuration(leftoverProps.duration); - delete leftoverProps.duration; - } - if (!duration && props.startTime && props.endTime) { - duration = subtractDurations(props.endTime, props.startTime); - } - return { - allDayGuess: Boolean(!props.startTime && !props.endTime), - duration: duration, - typeData: props // doesn't need endTime anymore but oh well - }; - } - return null; - }, - expand: function (typeData, framingRange, dateEnv) { - var clippedFramingRange = intersectRanges(framingRange, { start: typeData.startRecur, end: typeData.endRecur }); - if (clippedFramingRange) { - return expandRanges(typeData.daysOfWeek, typeData.startTime, clippedFramingRange, dateEnv); - } - else { - return []; - } - } - }; - var SimpleRecurrencePlugin = createPlugin({ - recurringTypes: [recurring] - }); - function expandRanges(daysOfWeek, startTime, framingRange, dateEnv) { - var dowHash = daysOfWeek ? arrayToHash(daysOfWeek) : null; - var dayMarker = startOfDay(framingRange.start); - var endMarker = framingRange.end; - var instanceStarts = []; - while (dayMarker < endMarker) { - var instanceStart - // if everyday, or this particular day-of-week - = void 0; - // if everyday, or this particular day-of-week - if (!dowHash || dowHash[dayMarker.getUTCDay()]) { - if (startTime) { - instanceStart = dateEnv.add(dayMarker, startTime); - } - else { - instanceStart = dayMarker; - } - instanceStarts.push(instanceStart); - } - dayMarker = addDays(dayMarker, 1); - } - return instanceStarts; - } - - var DefaultOptionChangeHandlers = createPlugin({ - optionChangeHandlers: { - events: function (events, calendar, deepEqual) { - handleEventSources([events], calendar, deepEqual); - }, - eventSources: handleEventSources, - plugins: handlePlugins - } - }); - function handleEventSources(inputs, calendar, deepEqual) { - var unfoundSources = hashValuesToArray(calendar.state.eventSources); - var newInputs = []; - for (var _i = 0, inputs_1 = inputs; _i < inputs_1.length; _i++) { - var input = inputs_1[_i]; - var inputFound = false; - for (var i = 0; i < unfoundSources.length; i++) { - if (deepEqual(unfoundSources[i]._raw, input)) { - unfoundSources.splice(i, 1); // delete - inputFound = true; - break; - } - } - if (!inputFound) { - newInputs.push(input); - } - } - for (var _a = 0, unfoundSources_1 = unfoundSources; _a < unfoundSources_1.length; _a++) { - var unfoundSource = unfoundSources_1[_a]; - calendar.dispatch({ - type: 'REMOVE_EVENT_SOURCE', - sourceId: unfoundSource.sourceId - }); - } - for (var _b = 0, newInputs_1 = newInputs; _b < newInputs_1.length; _b++) { - var newInput = newInputs_1[_b]; - calendar.addEventSource(newInput); - } - } - // shortcoming: won't remove plugins - function handlePlugins(inputs, calendar) { - calendar.addPluginInputs(inputs); // will gracefully handle duplicates - } - - var config = {}; // TODO: make these options - var globalDefaults = { - defaultRangeSeparator: ' - ', - titleRangeSeparator: ' \u2013 ', - defaultTimedEventDuration: '01:00:00', - defaultAllDayEventDuration: { day: 1 }, - forceEventDuration: false, - nextDayThreshold: '00:00:00', - // display - columnHeader: true, - defaultView: '', - aspectRatio: 1.35, - header: { - left: 'title', - center: '', - right: 'today prev,next' - }, - weekends: true, - weekNumbers: false, - weekNumberCalculation: 'local', - editable: false, - // nowIndicator: false, - scrollTime: '06:00:00', - minTime: '00:00:00', - maxTime: '24:00:00', - showNonCurrentDates: true, - // event ajax - lazyFetching: true, - startParam: 'start', - endParam: 'end', - timeZoneParam: 'timeZone', - timeZone: 'local', - // allDayDefault: undefined, - // locale - locales: [], - locale: '', - // dir: will get this from the default locale - // buttonIcons: null, - // allows setting a min-height to the event segment to prevent short events overlapping each other - timeGridEventMinHeight: 0, - themeSystem: 'standard', - // eventResizableFromStart: false, - dragRevertDuration: 500, - dragScroll: true, - allDayMaintainDuration: false, - // selectable: false, - unselectAuto: true, - // selectMinDistance: 0, - dropAccept: '*', - eventOrder: 'start,-duration,allDay,title', - // ^ if start tie, longer events go before shorter. final tie-breaker is title text - // rerenderDelay: null, - eventLimit: false, - eventLimitClick: 'popover', - dayPopoverFormat: { month: 'long', day: 'numeric', year: 'numeric' }, - handleWindowResize: true, - windowResizeDelay: 100, - longPressDelay: 1000, - eventDragMinDistance: 5 // only applies to mouse - }; - var rtlDefaults = { - header: { - left: 'next,prev today', - center: '', - right: 'title' - }, - buttonIcons: { - // TODO: make RTL support the responibility of the theme - prev: 'fc-icon-chevron-right', - next: 'fc-icon-chevron-left', - prevYear: 'fc-icon-chevrons-right', - nextYear: 'fc-icon-chevrons-left' - } - }; - var complexOptions = [ - 'header', - 'footer', - 'buttonText', - 'buttonIcons' - ]; - // Merges an array of option objects into a single object - function mergeOptions(optionObjs) { - return mergeProps(optionObjs, complexOptions); - } - // TODO: move this stuff to a "plugin"-related file... - var INTERNAL_PLUGINS = [ - ArrayEventSourcePlugin, - FuncEventSourcePlugin, - JsonFeedEventSourcePlugin, - SimpleRecurrencePlugin, - DefaultOptionChangeHandlers - ]; - function refinePluginDefs(pluginInputs) { - var plugins = []; - for (var _i = 0, pluginInputs_1 = pluginInputs; _i < pluginInputs_1.length; _i++) { - var pluginInput = pluginInputs_1[_i]; - if (typeof pluginInput === 'string') { - var globalName = 'FullCalendar' + capitaliseFirstLetter(pluginInput); - if (!window[globalName]) { - console.warn('Plugin file not loaded for ' + pluginInput); - } - else { - plugins.push(window[globalName].default); // is an ES6 module - } - } - else { - plugins.push(pluginInput); - } - } - return INTERNAL_PLUGINS.concat(plugins); - } - - var RAW_EN_LOCALE = { - code: 'en', - week: { - dow: 0, - doy: 4 // 4 days need to be within the year to be considered the first week - }, - dir: 'ltr', - buttonText: { - prev: 'prev', - next: 'next', - prevYear: 'prev year', - nextYear: 'next year', - year: 'year', - today: 'today', - month: 'month', - week: 'week', - day: 'day', - list: 'list' - }, - weekLabel: 'W', - allDayText: 'all-day', - eventLimitText: 'more', - noEventsMessage: 'No events to display' - }; - function parseRawLocales(explicitRawLocales) { - var defaultCode = explicitRawLocales.length > 0 ? explicitRawLocales[0].code : 'en'; - var globalArray = window['FullCalendarLocalesAll'] || []; // from locales-all.js - var globalObject = window['FullCalendarLocales'] || {}; // from locales/*.js. keys are meaningless - var allRawLocales = globalArray.concat(// globalArray is low prio - hashValuesToArray(globalObject), // medium prio - explicitRawLocales // highest prio - ); - var rawLocaleMap = { - en: RAW_EN_LOCALE // necessary? - }; - for (var _i = 0, allRawLocales_1 = allRawLocales; _i < allRawLocales_1.length; _i++) { - var rawLocale = allRawLocales_1[_i]; - rawLocaleMap[rawLocale.code] = rawLocale; - } - return { - map: rawLocaleMap, - defaultCode: defaultCode - }; - } - function buildLocale(inputSingular, available) { - if (typeof inputSingular === 'object' && !Array.isArray(inputSingular)) { - return parseLocale(inputSingular.code, [inputSingular.code], inputSingular); - } - else { - return queryLocale(inputSingular, available); - } - } - function queryLocale(codeArg, available) { - var codes = [].concat(codeArg || []); // will convert to array - var raw = queryRawLocale(codes, available) || RAW_EN_LOCALE; - return parseLocale(codeArg, codes, raw); - } - function queryRawLocale(codes, available) { - for (var i = 0; i < codes.length; i++) { - var parts = codes[i].toLocaleLowerCase().split('-'); - for (var j = parts.length; j > 0; j--) { - var simpleId = parts.slice(0, j).join('-'); - if (available[simpleId]) { - return available[simpleId]; - } - } - } - return null; - } - function parseLocale(codeArg, codes, raw) { - var merged = mergeProps([RAW_EN_LOCALE, raw], ['buttonText']); - delete merged.code; // don't want this part of the options - var week = merged.week; - delete merged.week; - return { - codeArg: codeArg, - codes: codes, - week: week, - simpleNumberFormat: new Intl.NumberFormat(codeArg), - options: merged - }; - } - - var OptionsManager = /** @class */ (function () { - function OptionsManager(overrides) { - this.overrides = __assign({}, overrides); // make a copy - this.dynamicOverrides = {}; - this.compute(); - } - OptionsManager.prototype.mutate = function (updates, removals, isDynamic) { - var overrideHash = isDynamic ? this.dynamicOverrides : this.overrides; - __assign(overrideHash, updates); - for (var _i = 0, removals_1 = removals; _i < removals_1.length; _i++) { - var propName = removals_1[_i]; - delete overrideHash[propName]; - } - this.compute(); - }; - // Computes the flattened options hash for the calendar and assigns to `this.options`. - // Assumes this.overrides and this.dynamicOverrides have already been initialized. - OptionsManager.prototype.compute = function () { - // TODO: not a very efficient system - var locales = firstDefined(// explicit locale option given? - this.dynamicOverrides.locales, this.overrides.locales, globalDefaults.locales); - var locale = firstDefined(// explicit locales option given? - this.dynamicOverrides.locale, this.overrides.locale, globalDefaults.locale); - var available = parseRawLocales(locales); - var localeDefaults = buildLocale(locale || available.defaultCode, available.map).options; - var dir = firstDefined(// based on options computed so far, is direction RTL? - this.dynamicOverrides.dir, this.overrides.dir, localeDefaults.dir); - var dirDefaults = dir === 'rtl' ? rtlDefaults : {}; - this.dirDefaults = dirDefaults; - this.localeDefaults = localeDefaults; - this.computed = mergeOptions([ - globalDefaults, - dirDefaults, - localeDefaults, - this.overrides, - this.dynamicOverrides - ]); - }; - return OptionsManager; - }()); - - var calendarSystemClassMap = {}; - function registerCalendarSystem(name, theClass) { - calendarSystemClassMap[name] = theClass; - } - function createCalendarSystem(name) { - return new calendarSystemClassMap[name](); - } - var GregorianCalendarSystem = /** @class */ (function () { - function GregorianCalendarSystem() { - } - GregorianCalendarSystem.prototype.getMarkerYear = function (d) { - return d.getUTCFullYear(); - }; - GregorianCalendarSystem.prototype.getMarkerMonth = function (d) { - return d.getUTCMonth(); - }; - GregorianCalendarSystem.prototype.getMarkerDay = function (d) { - return d.getUTCDate(); - }; - GregorianCalendarSystem.prototype.arrayToMarker = function (arr) { - return arrayToUtcDate(arr); - }; - GregorianCalendarSystem.prototype.markerToArray = function (marker) { - return dateToUtcArray(marker); - }; - return GregorianCalendarSystem; - }()); - registerCalendarSystem('gregory', GregorianCalendarSystem); - - var ISO_RE = /^\s*(\d{4})(-(\d{2})(-(\d{2})([T ](\d{2}):(\d{2})(:(\d{2})(\.(\d+))?)?(Z|(([-+])(\d{2})(:?(\d{2}))?))?)?)?)?$/; - function parse(str) { - var m = ISO_RE.exec(str); - if (m) { - var marker = new Date(Date.UTC(Number(m[1]), m[3] ? Number(m[3]) - 1 : 0, Number(m[5] || 1), Number(m[7] || 0), Number(m[8] || 0), Number(m[10] || 0), m[12] ? Number('0.' + m[12]) * 1000 : 0)); - if (isValidDate(marker)) { - var timeZoneOffset = null; - if (m[13]) { - timeZoneOffset = (m[15] === '-' ? -1 : 1) * (Number(m[16] || 0) * 60 + - Number(m[18] || 0)); - } - return { - marker: marker, - isTimeUnspecified: !m[6], - timeZoneOffset: timeZoneOffset - }; - } - } - return null; - } - - var DateEnv = /** @class */ (function () { - function DateEnv(settings) { - var timeZone = this.timeZone = settings.timeZone; - var isNamedTimeZone = timeZone !== 'local' && timeZone !== 'UTC'; - if (settings.namedTimeZoneImpl && isNamedTimeZone) { - this.namedTimeZoneImpl = new settings.namedTimeZoneImpl(timeZone); - } - this.canComputeOffset = Boolean(!isNamedTimeZone || this.namedTimeZoneImpl); - this.calendarSystem = createCalendarSystem(settings.calendarSystem); - this.locale = settings.locale; - this.weekDow = settings.locale.week.dow; - this.weekDoy = settings.locale.week.doy; - if (settings.weekNumberCalculation === 'ISO') { - this.weekDow = 1; - this.weekDoy = 4; - } - if (typeof settings.firstDay === 'number') { - this.weekDow = settings.firstDay; - } - if (typeof settings.weekNumberCalculation === 'function') { - this.weekNumberFunc = settings.weekNumberCalculation; - } - this.weekLabel = settings.weekLabel != null ? settings.weekLabel : settings.locale.options.weekLabel; - this.cmdFormatter = settings.cmdFormatter; - } - // Creating / Parsing - DateEnv.prototype.createMarker = function (input) { - var meta = this.createMarkerMeta(input); - if (meta === null) { - return null; - } - return meta.marker; - }; - DateEnv.prototype.createNowMarker = function () { - if (this.canComputeOffset) { - return this.timestampToMarker(new Date().valueOf()); - } - else { - // if we can't compute the current date val for a timezone, - // better to give the current local date vals than UTC - return arrayToUtcDate(dateToLocalArray(new Date())); - } - }; - DateEnv.prototype.createMarkerMeta = function (input) { - if (typeof input === 'string') { - return this.parse(input); - } - var marker = null; - if (typeof input === 'number') { - marker = this.timestampToMarker(input); - } - else if (input instanceof Date) { - input = input.valueOf(); - if (!isNaN(input)) { - marker = this.timestampToMarker(input); - } - } - else if (Array.isArray(input)) { - marker = arrayToUtcDate(input); - } - if (marker === null || !isValidDate(marker)) { - return null; - } - return { marker: marker, isTimeUnspecified: false, forcedTzo: null }; - }; - DateEnv.prototype.parse = function (s) { - var parts = parse(s); - if (parts === null) { - return null; - } - var marker = parts.marker; - var forcedTzo = null; - if (parts.timeZoneOffset !== null) { - if (this.canComputeOffset) { - marker = this.timestampToMarker(marker.valueOf() - parts.timeZoneOffset * 60 * 1000); - } - else { - forcedTzo = parts.timeZoneOffset; - } - } - return { marker: marker, isTimeUnspecified: parts.isTimeUnspecified, forcedTzo: forcedTzo }; - }; - // Accessors - DateEnv.prototype.getYear = function (marker) { - return this.calendarSystem.getMarkerYear(marker); - }; - DateEnv.prototype.getMonth = function (marker) { - return this.calendarSystem.getMarkerMonth(marker); - }; - // Adding / Subtracting - DateEnv.prototype.add = function (marker, dur) { - var a = this.calendarSystem.markerToArray(marker); - a[0] += dur.years; - a[1] += dur.months; - a[2] += dur.days; - a[6] += dur.milliseconds; - return this.calendarSystem.arrayToMarker(a); - }; - DateEnv.prototype.subtract = function (marker, dur) { - var a = this.calendarSystem.markerToArray(marker); - a[0] -= dur.years; - a[1] -= dur.months; - a[2] -= dur.days; - a[6] -= dur.milliseconds; - return this.calendarSystem.arrayToMarker(a); - }; - DateEnv.prototype.addYears = function (marker, n) { - var a = this.calendarSystem.markerToArray(marker); - a[0] += n; - return this.calendarSystem.arrayToMarker(a); - }; - DateEnv.prototype.addMonths = function (marker, n) { - var a = this.calendarSystem.markerToArray(marker); - a[1] += n; - return this.calendarSystem.arrayToMarker(a); - }; - // Diffing Whole Units - DateEnv.prototype.diffWholeYears = function (m0, m1) { - var calendarSystem = this.calendarSystem; - if (timeAsMs(m0) === timeAsMs(m1) && - calendarSystem.getMarkerDay(m0) === calendarSystem.getMarkerDay(m1) && - calendarSystem.getMarkerMonth(m0) === calendarSystem.getMarkerMonth(m1)) { - return calendarSystem.getMarkerYear(m1) - calendarSystem.getMarkerYear(m0); - } - return null; - }; - DateEnv.prototype.diffWholeMonths = function (m0, m1) { - var calendarSystem = this.calendarSystem; - if (timeAsMs(m0) === timeAsMs(m1) && - calendarSystem.getMarkerDay(m0) === calendarSystem.getMarkerDay(m1)) { - return (calendarSystem.getMarkerMonth(m1) - calendarSystem.getMarkerMonth(m0)) + - (calendarSystem.getMarkerYear(m1) - calendarSystem.getMarkerYear(m0)) * 12; - } - return null; - }; - // Range / Duration - DateEnv.prototype.greatestWholeUnit = function (m0, m1) { - var n = this.diffWholeYears(m0, m1); - if (n !== null) { - return { unit: 'year', value: n }; - } - n = this.diffWholeMonths(m0, m1); - if (n !== null) { - return { unit: 'month', value: n }; - } - n = diffWholeWeeks(m0, m1); - if (n !== null) { - return { unit: 'week', value: n }; - } - n = diffWholeDays(m0, m1); - if (n !== null) { - return { unit: 'day', value: n }; - } - n = diffHours(m0, m1); - if (isInt(n)) { - return { unit: 'hour', value: n }; - } - n = diffMinutes(m0, m1); - if (isInt(n)) { - return { unit: 'minute', value: n }; - } - n = diffSeconds(m0, m1); - if (isInt(n)) { - return { unit: 'second', value: n }; - } - return { unit: 'millisecond', value: m1.valueOf() - m0.valueOf() }; - }; - DateEnv.prototype.countDurationsBetween = function (m0, m1, d) { - // TODO: can use greatestWholeUnit - var diff; - if (d.years) { - diff = this.diffWholeYears(m0, m1); - if (diff !== null) { - return diff / asRoughYears(d); - } - } - if (d.months) { - diff = this.diffWholeMonths(m0, m1); - if (diff !== null) { - return diff / asRoughMonths(d); - } - } - if (d.days) { - diff = diffWholeDays(m0, m1); - if (diff !== null) { - return diff / asRoughDays(d); - } - } - return (m1.valueOf() - m0.valueOf()) / asRoughMs(d); - }; - // Start-Of - DateEnv.prototype.startOf = function (m, unit) { - if (unit === 'year') { - return this.startOfYear(m); - } - else if (unit === 'month') { - return this.startOfMonth(m); - } - else if (unit === 'week') { - return this.startOfWeek(m); - } - else if (unit === 'day') { - return startOfDay(m); - } - else if (unit === 'hour') { - return startOfHour(m); - } - else if (unit === 'minute') { - return startOfMinute(m); - } - else if (unit === 'second') { - return startOfSecond(m); - } - }; - DateEnv.prototype.startOfYear = function (m) { - return this.calendarSystem.arrayToMarker([ - this.calendarSystem.getMarkerYear(m) - ]); - }; - DateEnv.prototype.startOfMonth = function (m) { - return this.calendarSystem.arrayToMarker([ - this.calendarSystem.getMarkerYear(m), - this.calendarSystem.getMarkerMonth(m) - ]); - }; - DateEnv.prototype.startOfWeek = function (m) { - return this.calendarSystem.arrayToMarker([ - this.calendarSystem.getMarkerYear(m), - this.calendarSystem.getMarkerMonth(m), - m.getUTCDate() - ((m.getUTCDay() - this.weekDow + 7) % 7) - ]); - }; - // Week Number - DateEnv.prototype.computeWeekNumber = function (marker) { - if (this.weekNumberFunc) { - return this.weekNumberFunc(this.toDate(marker)); - } - else { - return weekOfYear(marker, this.weekDow, this.weekDoy); - } - }; - // TODO: choke on timeZoneName: long - DateEnv.prototype.format = function (marker, formatter, dateOptions) { - if (dateOptions === void 0) { dateOptions = {}; } - return formatter.format({ - marker: marker, - timeZoneOffset: dateOptions.forcedTzo != null ? - dateOptions.forcedTzo : - this.offsetForMarker(marker) - }, this); - }; - DateEnv.prototype.formatRange = function (start, end, formatter, dateOptions) { - if (dateOptions === void 0) { dateOptions = {}; } - if (dateOptions.isEndExclusive) { - end = addMs(end, -1); - } - return formatter.formatRange({ - marker: start, - timeZoneOffset: dateOptions.forcedStartTzo != null ? - dateOptions.forcedStartTzo : - this.offsetForMarker(start) - }, { - marker: end, - timeZoneOffset: dateOptions.forcedEndTzo != null ? - dateOptions.forcedEndTzo : - this.offsetForMarker(end) - }, this); - }; - DateEnv.prototype.formatIso = function (marker, extraOptions) { - if (extraOptions === void 0) { extraOptions = {}; } - var timeZoneOffset = null; - if (!extraOptions.omitTimeZoneOffset) { - if (extraOptions.forcedTzo != null) { - timeZoneOffset = extraOptions.forcedTzo; - } - else { - timeZoneOffset = this.offsetForMarker(marker); - } - } - return buildIsoString(marker, timeZoneOffset, extraOptions.omitTime); - }; - // TimeZone - DateEnv.prototype.timestampToMarker = function (ms) { - if (this.timeZone === 'local') { - return arrayToUtcDate(dateToLocalArray(new Date(ms))); - } - else if (this.timeZone === 'UTC' || !this.namedTimeZoneImpl) { - return new Date(ms); - } - else { - return arrayToUtcDate(this.namedTimeZoneImpl.timestampToArray(ms)); - } - }; - DateEnv.prototype.offsetForMarker = function (m) { - if (this.timeZone === 'local') { - return -arrayToLocalDate(dateToUtcArray(m)).getTimezoneOffset(); // convert "inverse" offset to "normal" offset - } - else if (this.timeZone === 'UTC') { - return 0; - } - else if (this.namedTimeZoneImpl) { - return this.namedTimeZoneImpl.offsetForArray(dateToUtcArray(m)); - } - return null; - }; - // Conversion - DateEnv.prototype.toDate = function (m, forcedTzo) { - if (this.timeZone === 'local') { - return arrayToLocalDate(dateToUtcArray(m)); - } - else if (this.timeZone === 'UTC') { - return new Date(m.valueOf()); // make sure it's a copy - } - else if (!this.namedTimeZoneImpl) { - return new Date(m.valueOf() - (forcedTzo || 0)); - } - else { - return new Date(m.valueOf() - - this.namedTimeZoneImpl.offsetForArray(dateToUtcArray(m)) * 1000 * 60 // convert minutes -> ms - ); - } - }; - return DateEnv; - }()); - - var SIMPLE_SOURCE_PROPS = { - id: String, - allDayDefault: Boolean, - eventDataTransform: Function, - success: Function, - failure: Function - }; - var uid$2 = 0; - function doesSourceNeedRange(eventSource, calendar) { - var defs = calendar.pluginSystem.hooks.eventSourceDefs; - return !defs[eventSource.sourceDefId].ignoreRange; - } - function parseEventSource(raw, calendar) { - var defs = calendar.pluginSystem.hooks.eventSourceDefs; - for (var i = defs.length - 1; i >= 0; i--) { // later-added plugins take precedence - var def = defs[i]; - var meta = def.parseMeta(raw); - if (meta) { - var res = parseEventSourceProps(typeof raw === 'object' ? raw : {}, meta, i, calendar); - res._raw = raw; - return res; - } - } - return null; - } - function parseEventSourceProps(raw, meta, sourceDefId, calendar) { - var leftovers0 = {}; - var props = refineProps(raw, SIMPLE_SOURCE_PROPS, {}, leftovers0); - var leftovers1 = {}; - var ui = processUnscopedUiProps(leftovers0, calendar, leftovers1); - props.isFetching = false; - props.latestFetchId = ''; - props.fetchRange = null; - props.publicId = String(raw.id || ''); - props.sourceId = String(uid$2++); - props.sourceDefId = sourceDefId; - props.meta = meta; - props.ui = ui; - props.extendedProps = leftovers1; - return props; - } - - function reduceEventSources (eventSources, action, dateProfile, calendar) { - switch (action.type) { - case 'ADD_EVENT_SOURCES': // already parsed - return addSources(eventSources, action.sources, dateProfile ? dateProfile.activeRange : null, calendar); - case 'REMOVE_EVENT_SOURCE': - return removeSource(eventSources, action.sourceId); - case 'PREV': // TODO: how do we track all actions that affect dateProfile :( - case 'NEXT': - case 'SET_DATE': - case 'SET_VIEW_TYPE': - if (dateProfile) { - return fetchDirtySources(eventSources, dateProfile.activeRange, calendar); - } - else { - return eventSources; - } - case 'FETCH_EVENT_SOURCES': - case 'CHANGE_TIMEZONE': - return fetchSourcesByIds(eventSources, action.sourceIds ? - arrayToHash(action.sourceIds) : - excludeStaticSources(eventSources, calendar), dateProfile ? dateProfile.activeRange : null, calendar); - case 'RECEIVE_EVENTS': - case 'RECEIVE_EVENT_ERROR': - return receiveResponse(eventSources, action.sourceId, action.fetchId, action.fetchRange); - case 'REMOVE_ALL_EVENT_SOURCES': - return {}; - default: - return eventSources; - } - } - var uid$3 = 0; - function addSources(eventSourceHash, sources, fetchRange, calendar) { - var hash = {}; - for (var _i = 0, sources_1 = sources; _i < sources_1.length; _i++) { - var source = sources_1[_i]; - hash[source.sourceId] = source; - } - if (fetchRange) { - hash = fetchDirtySources(hash, fetchRange, calendar); - } - return __assign({}, eventSourceHash, hash); - } - function removeSource(eventSourceHash, sourceId) { - return filterHash(eventSourceHash, function (eventSource) { - return eventSource.sourceId !== sourceId; - }); - } - function fetchDirtySources(sourceHash, fetchRange, calendar) { - return fetchSourcesByIds(sourceHash, filterHash(sourceHash, function (eventSource) { - return isSourceDirty(eventSource, fetchRange, calendar); - }), fetchRange, calendar); - } - function isSourceDirty(eventSource, fetchRange, calendar) { - if (!doesSourceNeedRange(eventSource, calendar)) { - return !eventSource.latestFetchId; - } - else { - return !calendar.opt('lazyFetching') || - !eventSource.fetchRange || - fetchRange.start < eventSource.fetchRange.start || - fetchRange.end > eventSource.fetchRange.end; - } - } - function fetchSourcesByIds(prevSources, sourceIdHash, fetchRange, calendar) { - var nextSources = {}; - for (var sourceId in prevSources) { - var source = prevSources[sourceId]; - if (sourceIdHash[sourceId]) { - nextSources[sourceId] = fetchSource(source, fetchRange, calendar); - } - else { - nextSources[sourceId] = source; - } - } - return nextSources; - } - function fetchSource(eventSource, fetchRange, calendar) { - var sourceDef = calendar.pluginSystem.hooks.eventSourceDefs[eventSource.sourceDefId]; - var fetchId = String(uid$3++); - sourceDef.fetch({ - eventSource: eventSource, - calendar: calendar, - range: fetchRange - }, function (res) { - var rawEvents = res.rawEvents; - var calSuccess = calendar.opt('eventSourceSuccess'); - var calSuccessRes; - var sourceSuccessRes; - if (eventSource.success) { - sourceSuccessRes = eventSource.success(rawEvents, res.xhr); - } - if (calSuccess) { - calSuccessRes = calSuccess(rawEvents, res.xhr); - } - rawEvents = sourceSuccessRes || calSuccessRes || rawEvents; - calendar.dispatch({ - type: 'RECEIVE_EVENTS', - sourceId: eventSource.sourceId, - fetchId: fetchId, - fetchRange: fetchRange, - rawEvents: rawEvents - }); - }, function (error) { - var callFailure = calendar.opt('eventSourceFailure'); - console.warn(error.message, error); - if (eventSource.failure) { - eventSource.failure(error); - } - if (callFailure) { - callFailure(error); - } - calendar.dispatch({ - type: 'RECEIVE_EVENT_ERROR', - sourceId: eventSource.sourceId, - fetchId: fetchId, - fetchRange: fetchRange, - error: error - }); - }); - return __assign({}, eventSource, { isFetching: true, latestFetchId: fetchId }); - } - function receiveResponse(sourceHash, sourceId, fetchId, fetchRange) { - var _a; - var eventSource = sourceHash[sourceId]; - if (eventSource && // not already removed - fetchId === eventSource.latestFetchId) { - return __assign({}, sourceHash, (_a = {}, _a[sourceId] = __assign({}, eventSource, { isFetching: false, fetchRange: fetchRange }), _a)); - } - return sourceHash; - } - function excludeStaticSources(eventSources, calendar) { - return filterHash(eventSources, function (eventSource) { - return doesSourceNeedRange(eventSource, calendar); - }); - } - - var DateProfileGenerator = /** @class */ (function () { - function DateProfileGenerator(viewSpec, calendar) { - this.viewSpec = viewSpec; - this.options = viewSpec.options; - this.dateEnv = calendar.dateEnv; - this.calendar = calendar; - this.initHiddenDays(); - } - /* Date Range Computation - ------------------------------------------------------------------------------------------------------------------*/ - // Builds a structure with info about what the dates/ranges will be for the "prev" view. - DateProfileGenerator.prototype.buildPrev = function (currentDateProfile, currentDate) { - var dateEnv = this.dateEnv; - var prevDate = dateEnv.subtract(dateEnv.startOf(currentDate, currentDateProfile.currentRangeUnit), // important for start-of-month - currentDateProfile.dateIncrement); - return this.build(prevDate, -1); - }; - // Builds a structure with info about what the dates/ranges will be for the "next" view. - DateProfileGenerator.prototype.buildNext = function (currentDateProfile, currentDate) { - var dateEnv = this.dateEnv; - var nextDate = dateEnv.add(dateEnv.startOf(currentDate, currentDateProfile.currentRangeUnit), // important for start-of-month - currentDateProfile.dateIncrement); - return this.build(nextDate, 1); - }; - // Builds a structure holding dates/ranges for rendering around the given date. - // Optional direction param indicates whether the date is being incremented/decremented - // from its previous value. decremented = -1, incremented = 1 (default). - DateProfileGenerator.prototype.build = function (currentDate, direction, forceToValid) { - if (forceToValid === void 0) { forceToValid = false; } - var validRange; - var minTime = null; - var maxTime = null; - var currentInfo; - var isRangeAllDay; - var renderRange; - var activeRange; - var isValid; - validRange = this.buildValidRange(); - validRange = this.trimHiddenDays(validRange); - if (forceToValid) { - currentDate = constrainMarkerToRange(currentDate, validRange); - } - currentInfo = this.buildCurrentRangeInfo(currentDate, direction); - isRangeAllDay = /^(year|month|week|day)$/.test(currentInfo.unit); - renderRange = this.buildRenderRange(this.trimHiddenDays(currentInfo.range), currentInfo.unit, isRangeAllDay); - renderRange = this.trimHiddenDays(renderRange); - activeRange = renderRange; - if (!this.options.showNonCurrentDates) { - activeRange = intersectRanges(activeRange, currentInfo.range); - } - minTime = createDuration(this.options.minTime); - maxTime = createDuration(this.options.maxTime); - activeRange = this.adjustActiveRange(activeRange, minTime, maxTime); - activeRange = intersectRanges(activeRange, validRange); // might return null - // it's invalid if the originally requested date is not contained, - // or if the range is completely outside of the valid range. - isValid = rangesIntersect(currentInfo.range, validRange); - return { - // constraint for where prev/next operations can go and where events can be dragged/resized to. - // an object with optional start and end properties. - validRange: validRange, - // range the view is formally responsible for. - // for example, a month view might have 1st-31st, excluding padded dates - currentRange: currentInfo.range, - // name of largest unit being displayed, like "month" or "week" - currentRangeUnit: currentInfo.unit, - isRangeAllDay: isRangeAllDay, - // dates that display events and accept drag-n-drop - // will be `null` if no dates accept events - activeRange: activeRange, - // date range with a rendered skeleton - // includes not-active days that need some sort of DOM - renderRange: renderRange, - // Duration object that denotes the first visible time of any given day - minTime: minTime, - // Duration object that denotes the exclusive visible end time of any given day - maxTime: maxTime, - isValid: isValid, - // how far the current date will move for a prev/next operation - dateIncrement: this.buildDateIncrement(currentInfo.duration) - // pass a fallback (might be null) ^ - }; - }; - // Builds an object with optional start/end properties. - // Indicates the minimum/maximum dates to display. - // not responsible for trimming hidden days. - DateProfileGenerator.prototype.buildValidRange = function () { - return this.getRangeOption('validRange', this.calendar.getNow()) || - { start: null, end: null }; // completely open-ended - }; - // Builds a structure with info about the "current" range, the range that is - // highlighted as being the current month for example. - // See build() for a description of `direction`. - // Guaranteed to have `range` and `unit` properties. `duration` is optional. - DateProfileGenerator.prototype.buildCurrentRangeInfo = function (date, direction) { - var _a = this, viewSpec = _a.viewSpec, dateEnv = _a.dateEnv; - var duration = null; - var unit = null; - var range = null; - var dayCount; - if (viewSpec.duration) { - duration = viewSpec.duration; - unit = viewSpec.durationUnit; - range = this.buildRangeFromDuration(date, direction, duration, unit); - } - else if ((dayCount = this.options.dayCount)) { - unit = 'day'; - range = this.buildRangeFromDayCount(date, direction, dayCount); - } - else if ((range = this.buildCustomVisibleRange(date))) { - unit = dateEnv.greatestWholeUnit(range.start, range.end).unit; - } - else { - duration = this.getFallbackDuration(); - unit = greatestDurationDenominator(duration).unit; - range = this.buildRangeFromDuration(date, direction, duration, unit); - } - return { duration: duration, unit: unit, range: range }; - }; - DateProfileGenerator.prototype.getFallbackDuration = function () { - return createDuration({ day: 1 }); - }; - // Returns a new activeRange to have time values (un-ambiguate) - // minTime or maxTime causes the range to expand. - DateProfileGenerator.prototype.adjustActiveRange = function (range, minTime, maxTime) { - var dateEnv = this.dateEnv; - var start = range.start; - var end = range.end; - if (this.viewSpec.class.prototype.usesMinMaxTime) { - // expand active range if minTime is negative (why not when positive?) - if (asRoughDays(minTime) < 0) { - start = startOfDay(start); // necessary? - start = dateEnv.add(start, minTime); - } - // expand active range if maxTime is beyond one day (why not when positive?) - if (asRoughDays(maxTime) > 1) { - end = startOfDay(end); // necessary? - end = addDays(end, -1); - end = dateEnv.add(end, maxTime); - } - } - return { start: start, end: end }; - }; - // Builds the "current" range when it is specified as an explicit duration. - // `unit` is the already-computed greatestDurationDenominator unit of duration. - DateProfileGenerator.prototype.buildRangeFromDuration = function (date, direction, duration, unit) { - var dateEnv = this.dateEnv; - var alignment = this.options.dateAlignment; - var dateIncrementInput; - var dateIncrementDuration; - var start; - var end; - var res; - // compute what the alignment should be - if (!alignment) { - dateIncrementInput = this.options.dateIncrement; - if (dateIncrementInput) { - dateIncrementDuration = createDuration(dateIncrementInput); - // use the smaller of the two units - if (asRoughMs(dateIncrementDuration) < asRoughMs(duration)) { - alignment = greatestDurationDenominator(dateIncrementDuration, !getWeeksFromInput(dateIncrementInput)).unit; - } - else { - alignment = unit; - } - } - else { - alignment = unit; - } - } - // if the view displays a single day or smaller - if (asRoughDays(duration) <= 1) { - if (this.isHiddenDay(start)) { - start = this.skipHiddenDays(start, direction); - start = startOfDay(start); - } - } - function computeRes() { - start = dateEnv.startOf(date, alignment); - end = dateEnv.add(start, duration); - res = { start: start, end: end }; - } - computeRes(); - // if range is completely enveloped by hidden days, go past the hidden days - if (!this.trimHiddenDays(res)) { - date = this.skipHiddenDays(date, direction); - computeRes(); - } - return res; - }; - // Builds the "current" range when a dayCount is specified. - DateProfileGenerator.prototype.buildRangeFromDayCount = function (date, direction, dayCount) { - var dateEnv = this.dateEnv; - var customAlignment = this.options.dateAlignment; - var runningCount = 0; - var start = date; - var end; - if (customAlignment) { - start = dateEnv.startOf(start, customAlignment); - } - start = startOfDay(start); - start = this.skipHiddenDays(start, direction); - end = start; - do { - end = addDays(end, 1); - if (!this.isHiddenDay(end)) { - runningCount++; - } - } while (runningCount < dayCount); - return { start: start, end: end }; - }; - // Builds a normalized range object for the "visible" range, - // which is a way to define the currentRange and activeRange at the same time. - DateProfileGenerator.prototype.buildCustomVisibleRange = function (date) { - var dateEnv = this.dateEnv; - var visibleRange = this.getRangeOption('visibleRange', dateEnv.toDate(date)); - if (visibleRange && (visibleRange.start == null || visibleRange.end == null)) { - return null; - } - return visibleRange; - }; - // Computes the range that will represent the element/cells for *rendering*, - // but which may have voided days/times. - // not responsible for trimming hidden days. - DateProfileGenerator.prototype.buildRenderRange = function (currentRange, currentRangeUnit, isRangeAllDay) { - return currentRange; - }; - // Compute the duration value that should be added/substracted to the current date - // when a prev/next operation happens. - DateProfileGenerator.prototype.buildDateIncrement = function (fallback) { - var dateIncrementInput = this.options.dateIncrement; - var customAlignment; - if (dateIncrementInput) { - return createDuration(dateIncrementInput); - } - else if ((customAlignment = this.options.dateAlignment)) { - return createDuration(1, customAlignment); - } - else if (fallback) { - return fallback; - } - else { - return createDuration({ days: 1 }); - } - }; - // Arguments after name will be forwarded to a hypothetical function value - // WARNING: passed-in arguments will be given to generator functions as-is and can cause side-effects. - // Always clone your objects if you fear mutation. - DateProfileGenerator.prototype.getRangeOption = function (name) { - var otherArgs = []; - for (var _i = 1; _i < arguments.length; _i++) { - otherArgs[_i - 1] = arguments[_i]; - } - var val = this.options[name]; - if (typeof val === 'function') { - val = val.apply(null, otherArgs); - } - if (val) { - val = parseRange(val, this.dateEnv); - } - if (val) { - val = computeVisibleDayRange(val); - } - return val; - }; - /* Hidden Days - ------------------------------------------------------------------------------------------------------------------*/ - // Initializes internal variables related to calculating hidden days-of-week - DateProfileGenerator.prototype.initHiddenDays = function () { - var hiddenDays = this.options.hiddenDays || []; // array of day-of-week indices that are hidden - var isHiddenDayHash = []; // is the day-of-week hidden? (hash with day-of-week-index -> bool) - var dayCnt = 0; - var i; - if (this.options.weekends === false) { - hiddenDays.push(0, 6); // 0=sunday, 6=saturday - } - for (i = 0; i < 7; i++) { - if (!(isHiddenDayHash[i] = hiddenDays.indexOf(i) !== -1)) { - dayCnt++; - } - } - if (!dayCnt) { - throw new Error('invalid hiddenDays'); // all days were hidden? bad. - } - this.isHiddenDayHash = isHiddenDayHash; - }; - // Remove days from the beginning and end of the range that are computed as hidden. - // If the whole range is trimmed off, returns null - DateProfileGenerator.prototype.trimHiddenDays = function (range) { - var start = range.start; - var end = range.end; - if (start) { - start = this.skipHiddenDays(start); - } - if (end) { - end = this.skipHiddenDays(end, -1, true); - } - if (start == null || end == null || start < end) { - return { start: start, end: end }; - } - return null; - }; - // Is the current day hidden? - // `day` is a day-of-week index (0-6), or a Date (used for UTC) - DateProfileGenerator.prototype.isHiddenDay = function (day) { - if (day instanceof Date) { - day = day.getUTCDay(); - } - return this.isHiddenDayHash[day]; - }; - // Incrementing the current day until it is no longer a hidden day, returning a copy. - // DOES NOT CONSIDER validRange! - // If the initial value of `date` is not a hidden day, don't do anything. - // Pass `isExclusive` as `true` if you are dealing with an end date. - // `inc` defaults to `1` (increment one day forward each time) - DateProfileGenerator.prototype.skipHiddenDays = function (date, inc, isExclusive) { - if (inc === void 0) { inc = 1; } - if (isExclusive === void 0) { isExclusive = false; } - while (this.isHiddenDayHash[(date.getUTCDay() + (isExclusive ? inc : 0) + 7) % 7]) { - date = addDays(date, inc); - } - return date; - }; - return DateProfileGenerator; - }()); - // TODO: find a way to avoid comparing DateProfiles. it's tedious - function isDateProfilesEqual(p0, p1) { - return rangesEqual(p0.validRange, p1.validRange) && - rangesEqual(p0.activeRange, p1.activeRange) && - rangesEqual(p0.renderRange, p1.renderRange) && - durationsEqual(p0.minTime, p1.minTime) && - durationsEqual(p0.maxTime, p1.maxTime); - /* - TODO: compare more? - currentRange: DateRange - currentRangeUnit: string - isRangeAllDay: boolean - isValid: boolean - dateIncrement: Duration - */ - } - - function reduce (state, action, calendar) { - var viewType = reduceViewType(state.viewType, action); - var dateProfile = reduceDateProfile(state.dateProfile, action, state.currentDate, viewType, calendar); - var eventSources = reduceEventSources(state.eventSources, action, dateProfile, calendar); - var nextState = __assign({}, state, { viewType: viewType, - dateProfile: dateProfile, currentDate: reduceCurrentDate(state.currentDate, action, dateProfile), eventSources: eventSources, eventStore: reduceEventStore(state.eventStore, action, eventSources, dateProfile, calendar), dateSelection: reduceDateSelection(state.dateSelection, action, calendar), eventSelection: reduceSelectedEvent(state.eventSelection, action), eventDrag: reduceEventDrag(state.eventDrag, action, eventSources, calendar), eventResize: reduceEventResize(state.eventResize, action, eventSources, calendar), eventSourceLoadingLevel: computeLoadingLevel(eventSources), loadingLevel: computeLoadingLevel(eventSources) }); - for (var _i = 0, _a = calendar.pluginSystem.hooks.reducers; _i < _a.length; _i++) { - var reducerFunc = _a[_i]; - nextState = reducerFunc(nextState, action, calendar); - } - // console.log(action.type, nextState) - return nextState; - } - function reduceViewType(currentViewType, action) { - switch (action.type) { - case 'SET_VIEW_TYPE': - return action.viewType; - default: - return currentViewType; - } - } - function reduceDateProfile(currentDateProfile, action, currentDate, viewType, calendar) { - var newDateProfile; - switch (action.type) { - case 'PREV': - newDateProfile = calendar.dateProfileGenerators[viewType].buildPrev(currentDateProfile, currentDate); - break; - case 'NEXT': - newDateProfile = calendar.dateProfileGenerators[viewType].buildNext(currentDateProfile, currentDate); - break; - case 'SET_DATE': - if (!currentDateProfile.activeRange || - !rangeContainsMarker(currentDateProfile.currentRange, action.dateMarker)) { - newDateProfile = calendar.dateProfileGenerators[viewType].build(action.dateMarker, undefined, true // forceToValid - ); - } - break; - case 'SET_VIEW_TYPE': - var generator = calendar.dateProfileGenerators[viewType]; - if (!generator) { - throw new Error(viewType ? - 'The FullCalendar view "' + viewType + '" does not exist. Make sure your plugins are loaded correctly.' : - 'No available FullCalendar view plugins.'); - } - newDateProfile = generator.build(action.dateMarker || currentDate, undefined, true // forceToValid - ); - break; - } - if (newDateProfile && - newDateProfile.isValid && - !(currentDateProfile && isDateProfilesEqual(currentDateProfile, newDateProfile))) { - return newDateProfile; - } - else { - return currentDateProfile; - } - } - function reduceCurrentDate(currentDate, action, dateProfile) { - switch (action.type) { - case 'PREV': - case 'NEXT': - if (!rangeContainsMarker(dateProfile.currentRange, currentDate)) { - return dateProfile.currentRange.start; - } - else { - return currentDate; - } - case 'SET_DATE': - case 'SET_VIEW_TYPE': - var newDate = action.dateMarker || currentDate; - if (dateProfile.activeRange && !rangeContainsMarker(dateProfile.activeRange, newDate)) { - return dateProfile.currentRange.start; - } - else { - return newDate; - } - default: - return currentDate; - } - } - function reduceDateSelection(currentSelection, action, calendar) { - switch (action.type) { - case 'SELECT_DATES': - return action.selection; - case 'UNSELECT_DATES': - return null; - default: - return currentSelection; - } - } - function reduceSelectedEvent(currentInstanceId, action) { - switch (action.type) { - case 'SELECT_EVENT': - return action.eventInstanceId; - case 'UNSELECT_EVENT': - return ''; - default: - return currentInstanceId; - } - } - function reduceEventDrag(currentDrag, action, sources, calendar) { - switch (action.type) { - case 'SET_EVENT_DRAG': - var newDrag = action.state; - return { - affectedEvents: newDrag.affectedEvents, - mutatedEvents: newDrag.mutatedEvents, - isEvent: newDrag.isEvent, - origSeg: newDrag.origSeg - }; - case 'UNSET_EVENT_DRAG': - return null; - default: - return currentDrag; - } - } - function reduceEventResize(currentResize, action, sources, calendar) { - switch (action.type) { - case 'SET_EVENT_RESIZE': - var newResize = action.state; - return { - affectedEvents: newResize.affectedEvents, - mutatedEvents: newResize.mutatedEvents, - isEvent: newResize.isEvent, - origSeg: newResize.origSeg - }; - case 'UNSET_EVENT_RESIZE': - return null; - default: - return currentResize; - } - } - function computeLoadingLevel(eventSources) { - var cnt = 0; - for (var sourceId in eventSources) { - if (eventSources[sourceId].isFetching) { - cnt++; - } - } - return cnt; - } - - var STANDARD_PROPS = { - start: null, - end: null, - allDay: Boolean - }; - function parseDateSpan(raw, dateEnv, defaultDuration) { - var span = parseOpenDateSpan(raw, dateEnv); - var range = span.range; - if (!range.start) { - return null; - } - if (!range.end) { - if (defaultDuration == null) { - return null; - } - else { - range.end = dateEnv.add(range.start, defaultDuration); - } - } - return span; - } - /* - TODO: somehow combine with parseRange? - Will return null if the start/end props were present but parsed invalidly. - */ - function parseOpenDateSpan(raw, dateEnv) { - var leftovers = {}; - var standardProps = refineProps(raw, STANDARD_PROPS, {}, leftovers); - var startMeta = standardProps.start ? dateEnv.createMarkerMeta(standardProps.start) : null; - var endMeta = standardProps.end ? dateEnv.createMarkerMeta(standardProps.end) : null; - var allDay = standardProps.allDay; - if (allDay == null) { - allDay = (startMeta && startMeta.isTimeUnspecified) && - (!endMeta || endMeta.isTimeUnspecified); - } - // use this leftover object as the selection object - leftovers.range = { - start: startMeta ? startMeta.marker : null, - end: endMeta ? endMeta.marker : null - }; - leftovers.allDay = allDay; - return leftovers; - } - function isDateSpansEqual(span0, span1) { - return rangesEqual(span0.range, span1.range) && - span0.allDay === span1.allDay && - isSpanPropsEqual(span0, span1); - } - // the NON-DATE-RELATED props - function isSpanPropsEqual(span0, span1) { - for (var propName in span1) { - if (propName !== 'range' && propName !== 'allDay') { - if (span0[propName] !== span1[propName]) { - return false; - } - } - } - // are there any props that span0 has that span1 DOESN'T have? - // both have range/allDay, so no need to special-case. - for (var propName in span0) { - if (!(propName in span1)) { - return false; - } - } - return true; - } - function buildDateSpanApi(span, dateEnv) { - return { - start: dateEnv.toDate(span.range.start), - end: dateEnv.toDate(span.range.end), - startStr: dateEnv.formatIso(span.range.start, { omitTime: span.allDay }), - endStr: dateEnv.formatIso(span.range.end, { omitTime: span.allDay }), - allDay: span.allDay - }; - } - function buildDatePointApi(span, dateEnv) { - return { - date: dateEnv.toDate(span.range.start), - dateStr: dateEnv.formatIso(span.range.start, { omitTime: span.allDay }), - allDay: span.allDay - }; - } - function fabricateEventRange(dateSpan, eventUiBases, calendar) { - var def = parseEventDef({ editable: false }, '', // sourceId - dateSpan.allDay, true, // hasEnd - calendar); - return { - def: def, - ui: compileEventUi(def, eventUiBases), - instance: createEventInstance(def.defId, dateSpan.range), - range: dateSpan.range, - isStart: true, - isEnd: true - }; - } - - function compileViewDefs(defaultConfigs, overrideConfigs) { - var hash = {}; - var viewType; - for (viewType in defaultConfigs) { - ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs); - } - for (viewType in overrideConfigs) { - ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs); - } - return hash; - } - function ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs) { - if (hash[viewType]) { - return hash[viewType]; - } - var viewDef = buildViewDef(viewType, hash, defaultConfigs, overrideConfigs); - if (viewDef) { - hash[viewType] = viewDef; - } - return viewDef; - } - function buildViewDef(viewType, hash, defaultConfigs, overrideConfigs) { - var defaultConfig = defaultConfigs[viewType]; - var overrideConfig = overrideConfigs[viewType]; - var queryProp = function (name) { - return (defaultConfig && defaultConfig[name] !== null) ? defaultConfig[name] : - ((overrideConfig && overrideConfig[name] !== null) ? overrideConfig[name] : null); - }; - var theClass = queryProp('class'); - var superType = queryProp('superType'); - if (!superType && theClass) { - superType = - findViewNameBySubclass(theClass, overrideConfigs) || - findViewNameBySubclass(theClass, defaultConfigs); - } - var superDef = null; - if (superType) { - if (superType === viewType) { - throw new Error('Can\'t have a custom view type that references itself'); - } - superDef = ensureViewDef(superType, hash, defaultConfigs, overrideConfigs); - } - if (!theClass && superDef) { - theClass = superDef.class; - } - if (!theClass) { - return null; // don't throw a warning, might be settings for a single-unit view - } - return { - type: viewType, - class: theClass, - defaults: __assign({}, (superDef ? superDef.defaults : {}), (defaultConfig ? defaultConfig.options : {})), - overrides: __assign({}, (superDef ? superDef.overrides : {}), (overrideConfig ? overrideConfig.options : {})) - }; - } - function findViewNameBySubclass(viewSubclass, configs) { - var superProto = Object.getPrototypeOf(viewSubclass.prototype); - for (var viewType in configs) { - var parsed = configs[viewType]; - // need DIRECT subclass, so instanceof won't do it - if (parsed.class && parsed.class.prototype === superProto) { - return viewType; - } - } - return ''; - } - - function parseViewConfigs(inputs) { - return mapHash(inputs, parseViewConfig); - } - var VIEW_DEF_PROPS = { - type: String, - class: null - }; - function parseViewConfig(input) { - if (typeof input === 'function') { - input = { class: input }; - } - var options = {}; - var props = refineProps(input, VIEW_DEF_PROPS, {}, options); - return { - superType: props.type, - class: props.class, - options: options - }; - } - - function buildViewSpecs(defaultInputs, optionsManager) { - var defaultConfigs = parseViewConfigs(defaultInputs); - var overrideConfigs = parseViewConfigs(optionsManager.overrides.views); - var viewDefs = compileViewDefs(defaultConfigs, overrideConfigs); - return mapHash(viewDefs, function (viewDef) { - return buildViewSpec(viewDef, overrideConfigs, optionsManager); - }); - } - function buildViewSpec(viewDef, overrideConfigs, optionsManager) { - var durationInput = viewDef.overrides.duration || - viewDef.defaults.duration || - optionsManager.dynamicOverrides.duration || - optionsManager.overrides.duration; - var duration = null; - var durationUnit = ''; - var singleUnit = ''; - var singleUnitOverrides = {}; - if (durationInput) { - duration = createDuration(durationInput); - if (duration) { // valid? - var denom = greatestDurationDenominator(duration, !getWeeksFromInput(durationInput)); - durationUnit = denom.unit; - if (denom.value === 1) { - singleUnit = durationUnit; - singleUnitOverrides = overrideConfigs[durationUnit] ? overrideConfigs[durationUnit].options : {}; - } - } - } - var queryButtonText = function (options) { - var buttonTextMap = options.buttonText || {}; - var buttonTextKey = viewDef.defaults.buttonTextKey; - if (buttonTextKey != null && buttonTextMap[buttonTextKey] != null) { - return buttonTextMap[buttonTextKey]; - } - if (buttonTextMap[viewDef.type] != null) { - return buttonTextMap[viewDef.type]; - } - if (buttonTextMap[singleUnit] != null) { - return buttonTextMap[singleUnit]; - } - }; - return { - type: viewDef.type, - class: viewDef.class, - duration: duration, - durationUnit: durationUnit, - singleUnit: singleUnit, - options: __assign({}, globalDefaults, viewDef.defaults, optionsManager.dirDefaults, optionsManager.localeDefaults, optionsManager.overrides, singleUnitOverrides, viewDef.overrides, optionsManager.dynamicOverrides), - buttonTextOverride: queryButtonText(optionsManager.dynamicOverrides) || - queryButtonText(optionsManager.overrides) || // constructor-specified buttonText lookup hash takes precedence - viewDef.overrides.buttonText, - buttonTextDefault: queryButtonText(optionsManager.localeDefaults) || - queryButtonText(optionsManager.dirDefaults) || - viewDef.defaults.buttonText || - queryButtonText(globalDefaults) || - viewDef.type // fall back to given view name - }; - } - - var Toolbar = /** @class */ (function (_super) { - __extends(Toolbar, _super); - function Toolbar(context, extraClassName) { - var _this = _super.call(this, context) || this; - _this._renderLayout = memoizeRendering(_this.renderLayout, _this.unrenderLayout); - _this._updateTitle = memoizeRendering(_this.updateTitle, null, [_this._renderLayout]); - _this._updateActiveButton = memoizeRendering(_this.updateActiveButton, null, [_this._renderLayout]); - _this._updateToday = memoizeRendering(_this.updateToday, null, [_this._renderLayout]); - _this._updatePrev = memoizeRendering(_this.updatePrev, null, [_this._renderLayout]); - _this._updateNext = memoizeRendering(_this.updateNext, null, [_this._renderLayout]); - _this.el = createElement('div', { className: 'fc-toolbar ' + extraClassName }); - return _this; - } - Toolbar.prototype.destroy = function () { - _super.prototype.destroy.call(this); - this._renderLayout.unrender(); // should unrender everything else - removeElement(this.el); - }; - Toolbar.prototype.render = function (props) { - this._renderLayout(props.layout); - this._updateTitle(props.title); - this._updateActiveButton(props.activeButton); - this._updateToday(props.isTodayEnabled); - this._updatePrev(props.isPrevEnabled); - this._updateNext(props.isNextEnabled); - }; - Toolbar.prototype.renderLayout = function (layout) { - var el = this.el; - this.viewsWithButtons = []; - appendToElement(el, this.renderSection('left', layout.left)); - appendToElement(el, this.renderSection('center', layout.center)); - appendToElement(el, this.renderSection('right', layout.right)); - }; - Toolbar.prototype.unrenderLayout = function () { - this.el.innerHTML = ''; - }; - Toolbar.prototype.renderSection = function (position, buttonStr) { - var _this = this; - var _a = this, theme = _a.theme, calendar = _a.calendar; - var optionsManager = calendar.optionsManager; - var viewSpecs = calendar.viewSpecs; - var sectionEl = createElement('div', { className: 'fc-' + position }); - var calendarCustomButtons = optionsManager.computed.customButtons || {}; - var calendarButtonTextOverrides = optionsManager.overrides.buttonText || {}; - var calendarButtonText = optionsManager.computed.buttonText || {}; - if (buttonStr) { - buttonStr.split(' ').forEach(function (buttonGroupStr, i) { - var groupChildren = []; - var isOnlyButtons = true; - var groupEl; - buttonGroupStr.split(',').forEach(function (buttonName, j) { - var customButtonProps; - var viewSpec; - var buttonClick; - var buttonIcon; // only one of these will be set - var buttonText; // " - var buttonInnerHtml; - var buttonClasses; - var buttonEl; - var buttonAriaAttr; - if (buttonName === 'title') { - groupChildren.push(htmlToElement('

 

')); // we always want it to take up height - isOnlyButtons = false; - } - else { - if ((customButtonProps = calendarCustomButtons[buttonName])) { - buttonClick = function (ev) { - if (customButtonProps.click) { - customButtonProps.click.call(buttonEl, ev); - } - }; - (buttonIcon = theme.getCustomButtonIconClass(customButtonProps)) || - (buttonIcon = theme.getIconClass(buttonName)) || - (buttonText = customButtonProps.text); - } - else if ((viewSpec = viewSpecs[buttonName])) { - _this.viewsWithButtons.push(buttonName); - buttonClick = function () { - calendar.changeView(buttonName); - }; - (buttonText = viewSpec.buttonTextOverride) || - (buttonIcon = theme.getIconClass(buttonName)) || - (buttonText = viewSpec.buttonTextDefault); - } - else if (calendar[buttonName]) { // a calendar method - buttonClick = function () { - calendar[buttonName](); - }; - (buttonText = calendarButtonTextOverrides[buttonName]) || - (buttonIcon = theme.getIconClass(buttonName)) || - (buttonText = calendarButtonText[buttonName]); - // ^ everything else is considered default - } - if (buttonClick) { - buttonClasses = [ - 'fc-' + buttonName + '-button', - theme.getClass('button') - ]; - if (buttonText) { - buttonInnerHtml = htmlEscape(buttonText); - buttonAriaAttr = ''; - } - else if (buttonIcon) { - buttonInnerHtml = ""; - buttonAriaAttr = ' aria-label="' + buttonName + '"'; - } - buttonEl = htmlToElement(// type="button" so that it doesn't submit a form - ''); - buttonEl.addEventListener('click', buttonClick); - groupChildren.push(buttonEl); - } - } - }); - if (groupChildren.length > 1) { - groupEl = document.createElement('div'); - var buttonGroupClassName = theme.getClass('buttonGroup'); - if (isOnlyButtons && buttonGroupClassName) { - groupEl.classList.add(buttonGroupClassName); - } - appendToElement(groupEl, groupChildren); - sectionEl.appendChild(groupEl); - } - else { - appendToElement(sectionEl, groupChildren); // 1 or 0 children - } - }); - } - return sectionEl; - }; - Toolbar.prototype.updateToday = function (isTodayEnabled) { - this.toggleButtonEnabled('today', isTodayEnabled); - }; - Toolbar.prototype.updatePrev = function (isPrevEnabled) { - this.toggleButtonEnabled('prev', isPrevEnabled); - }; - Toolbar.prototype.updateNext = function (isNextEnabled) { - this.toggleButtonEnabled('next', isNextEnabled); - }; - Toolbar.prototype.updateTitle = function (text) { - findElements(this.el, 'h2').forEach(function (titleEl) { - titleEl.innerText = text; - }); - }; - Toolbar.prototype.updateActiveButton = function (buttonName) { - var className = this.theme.getClass('buttonActive'); - findElements(this.el, 'button').forEach(function (buttonEl) { - if (buttonName && buttonEl.classList.contains('fc-' + buttonName + '-button')) { - buttonEl.classList.add(className); - } - else { - buttonEl.classList.remove(className); - } - }); - }; - Toolbar.prototype.toggleButtonEnabled = function (buttonName, bool) { - findElements(this.el, '.fc-' + buttonName + '-button').forEach(function (buttonEl) { - buttonEl.disabled = !bool; - }); - }; - return Toolbar; - }(Component)); - - var CalendarComponent = /** @class */ (function (_super) { - __extends(CalendarComponent, _super); - function CalendarComponent(context, el) { - var _this = _super.call(this, context) || this; - _this._renderToolbars = memoizeRendering(_this.renderToolbars); - _this.buildViewPropTransformers = memoize(buildViewPropTransformers); - _this.el = el; - prependToElement(el, _this.contentEl = createElement('div', { className: 'fc-view-container' })); - var calendar = _this.calendar; - for (var _i = 0, _a = calendar.pluginSystem.hooks.viewContainerModifiers; _i < _a.length; _i++) { - var modifyViewContainer = _a[_i]; - modifyViewContainer(_this.contentEl, calendar); - } - _this.toggleElClassNames(true); - _this.computeTitle = memoize(computeTitle); - _this.parseBusinessHours = memoize(function (input) { - return parseBusinessHours(input, _this.calendar); - }); - return _this; - } - CalendarComponent.prototype.destroy = function () { - if (this.header) { - this.header.destroy(); - } - if (this.footer) { - this.footer.destroy(); - } - if (this.view) { - this.view.destroy(); - } - removeElement(this.contentEl); - this.toggleElClassNames(false); - _super.prototype.destroy.call(this); - }; - CalendarComponent.prototype.toggleElClassNames = function (bool) { - var classList = this.el.classList; - var dirClassName = 'fc-' + this.opt('dir'); - var themeClassName = this.theme.getClass('widget'); - if (bool) { - classList.add('fc'); - classList.add(dirClassName); - classList.add(themeClassName); - } - else { - classList.remove('fc'); - classList.remove(dirClassName); - classList.remove(themeClassName); - } - }; - CalendarComponent.prototype.render = function (props) { - this.freezeHeight(); - var title = this.computeTitle(props.dateProfile, props.viewSpec.options); - this._renderToolbars(props.viewSpec, props.dateProfile, props.currentDate, props.dateProfileGenerator, title); - this.renderView(props, title); - this.updateSize(); - this.thawHeight(); - }; - CalendarComponent.prototype.renderToolbars = function (viewSpec, dateProfile, currentDate, dateProfileGenerator, title) { - var headerLayout = this.opt('header'); - var footerLayout = this.opt('footer'); - var now = this.calendar.getNow(); - var todayInfo = dateProfileGenerator.build(now); - var prevInfo = dateProfileGenerator.buildPrev(dateProfile, currentDate); - var nextInfo = dateProfileGenerator.buildNext(dateProfile, currentDate); - var toolbarProps = { - title: title, - activeButton: viewSpec.type, - isTodayEnabled: todayInfo.isValid && !rangeContainsMarker(dateProfile.currentRange, now), - isPrevEnabled: prevInfo.isValid, - isNextEnabled: nextInfo.isValid - }; - if (headerLayout) { - if (!this.header) { - this.header = new Toolbar(this.context, 'fc-header-toolbar'); - prependToElement(this.el, this.header.el); - } - this.header.receiveProps(__assign({ layout: headerLayout }, toolbarProps)); - } - else if (this.header) { - this.header.destroy(); - this.header = null; - } - if (footerLayout) { - if (!this.footer) { - this.footer = new Toolbar(this.context, 'fc-footer-toolbar'); - appendToElement(this.el, this.footer.el); - } - this.footer.receiveProps(__assign({ layout: footerLayout }, toolbarProps)); - } - else if (this.footer) { - this.footer.destroy(); - this.footer = null; - } - }; - CalendarComponent.prototype.renderView = function (props, title) { - var view = this.view; - var viewSpec = props.viewSpec, dateProfileGenerator = props.dateProfileGenerator; - if (!view || view.viewSpec !== viewSpec) { - if (view) { - view.destroy(); - } - view = this.view = new viewSpec['class']({ - calendar: this.calendar, - view: null, - dateEnv: this.dateEnv, - theme: this.theme, - options: viewSpec.options - }, viewSpec, dateProfileGenerator, this.contentEl); - } - else { - view.addScroll(view.queryScroll()); - } - view.title = title; // for the API - var viewProps = { - dateProfile: props.dateProfile, - businessHours: this.parseBusinessHours(viewSpec.options.businessHours), - eventStore: props.eventStore, - eventUiBases: props.eventUiBases, - dateSelection: props.dateSelection, - eventSelection: props.eventSelection, - eventDrag: props.eventDrag, - eventResize: props.eventResize - }; - var transformers = this.buildViewPropTransformers(this.calendar.pluginSystem.hooks.viewPropsTransformers); - for (var _i = 0, transformers_1 = transformers; _i < transformers_1.length; _i++) { - var transformer = transformers_1[_i]; - __assign(viewProps, transformer.transform(viewProps, viewSpec, props, view)); - } - view.receiveProps(viewProps); - }; - // Sizing - // ----------------------------------------------------------------------------------------------------------------- - CalendarComponent.prototype.updateSize = function (isResize) { - if (isResize === void 0) { isResize = false; } - var view = this.view; - if (isResize) { - view.addScroll(view.queryScroll()); - } - if (isResize || this.isHeightAuto == null) { - this.computeHeightVars(); - } - view.updateSize(isResize, this.viewHeight, this.isHeightAuto); - view.updateNowIndicator(); // we need to guarantee this will run after updateSize - view.popScroll(isResize); - }; - CalendarComponent.prototype.computeHeightVars = function () { - var calendar = this.calendar; // yuck. need to handle dynamic options - var heightInput = calendar.opt('height'); - var contentHeightInput = calendar.opt('contentHeight'); - this.isHeightAuto = heightInput === 'auto' || contentHeightInput === 'auto'; - if (typeof contentHeightInput === 'number') { // exists and not 'auto' - this.viewHeight = contentHeightInput; - } - else if (typeof contentHeightInput === 'function') { // exists and is a function - this.viewHeight = contentHeightInput(); - } - else if (typeof heightInput === 'number') { // exists and not 'auto' - this.viewHeight = heightInput - this.queryToolbarsHeight(); - } - else if (typeof heightInput === 'function') { // exists and is a function - this.viewHeight = heightInput() - this.queryToolbarsHeight(); - } - else if (heightInput === 'parent') { // set to height of parent element - var parentEl = this.el.parentNode; - this.viewHeight = parentEl.getBoundingClientRect().height - this.queryToolbarsHeight(); - } - else { - this.viewHeight = Math.round(this.contentEl.getBoundingClientRect().width / - Math.max(calendar.opt('aspectRatio'), .5)); - } - }; - CalendarComponent.prototype.queryToolbarsHeight = function () { - var height = 0; - if (this.header) { - height += computeHeightAndMargins(this.header.el); - } - if (this.footer) { - height += computeHeightAndMargins(this.footer.el); - } - return height; - }; - // Height "Freezing" - // ----------------------------------------------------------------------------------------------------------------- - CalendarComponent.prototype.freezeHeight = function () { - applyStyle(this.el, { - height: this.el.getBoundingClientRect().height, - overflow: 'hidden' - }); - }; - CalendarComponent.prototype.thawHeight = function () { - applyStyle(this.el, { - height: '', - overflow: '' - }); - }; - return CalendarComponent; - }(Component)); - // Title and Date Formatting - // ----------------------------------------------------------------------------------------------------------------- - // Computes what the title at the top of the calendar should be for this view - function computeTitle(dateProfile, viewOptions) { - var range; - // for views that span a large unit of time, show the proper interval, ignoring stray days before and after - if (/^(year|month)$/.test(dateProfile.currentRangeUnit)) { - range = dateProfile.currentRange; - } - else { // for day units or smaller, use the actual day range - range = dateProfile.activeRange; - } - return this.dateEnv.formatRange(range.start, range.end, createFormatter(viewOptions.titleFormat || computeTitleFormat(dateProfile), viewOptions.titleRangeSeparator), { isEndExclusive: dateProfile.isRangeAllDay }); - } - // Generates the format string that should be used to generate the title for the current date range. - // Attempts to compute the most appropriate format if not explicitly specified with `titleFormat`. - function computeTitleFormat(dateProfile) { - var currentRangeUnit = dateProfile.currentRangeUnit; - if (currentRangeUnit === 'year') { - return { year: 'numeric' }; - } - else if (currentRangeUnit === 'month') { - return { year: 'numeric', month: 'long' }; // like "September 2014" - } - else { - var days = diffWholeDays(dateProfile.currentRange.start, dateProfile.currentRange.end); - if (days !== null && days > 1) { - // multi-day range. shorter, like "Sep 9 - 10 2014" - return { year: 'numeric', month: 'short', day: 'numeric' }; - } - else { - // one day. longer, like "September 9 2014" - return { year: 'numeric', month: 'long', day: 'numeric' }; - } - } - } - // Plugin - // ----------------------------------------------------------------------------------------------------------------- - function buildViewPropTransformers(theClasses) { - return theClasses.map(function (theClass) { - return new theClass(); - }); - } - - var Interaction = /** @class */ (function () { - function Interaction(settings) { - this.component = settings.component; - } - Interaction.prototype.destroy = function () { - }; - return Interaction; - }()); - function parseInteractionSettings(component, input) { - return { - component: component, - el: input.el, - useEventCenter: input.useEventCenter != null ? input.useEventCenter : true - }; - } - function interactionSettingsToStore(settings) { - var _a; - return _a = {}, - _a[settings.component.uid] = settings, - _a; - } - // global state - var interactionSettingsStore = {}; - - /* - Detects when the user clicks on an event within a DateComponent - */ - var EventClicking = /** @class */ (function (_super) { - __extends(EventClicking, _super); - function EventClicking(settings) { - var _this = _super.call(this, settings) || this; - _this.handleSegClick = function (ev, segEl) { - var component = _this.component; - var seg = getElSeg(segEl); - if (seg && // might be the
surrounding the more link - component.isValidSegDownEl(ev.target)) { - // our way to simulate a link click for elements that can't be tags - // grab before trigger fired in case trigger trashes DOM thru rerendering - var hasUrlContainer = elementClosest(ev.target, '.fc-has-url'); - var url = hasUrlContainer ? hasUrlContainer.querySelector('a[href]').href : ''; - component.publiclyTrigger('eventClick', [ - { - el: segEl, - event: new EventApi(component.calendar, seg.eventRange.def, seg.eventRange.instance), - jsEvent: ev, - view: component.view - } - ]); - if (url && !ev.defaultPrevented) { - window.location.href = url; - } - } - }; - var component = settings.component; - _this.destroy = listenBySelector(component.el, 'click', component.fgSegSelector + ',' + component.bgSegSelector, _this.handleSegClick); - return _this; - } - return EventClicking; - }(Interaction)); - - /* - Triggers events and adds/removes core classNames when the user's pointer - enters/leaves event-elements of a component. - */ - var EventHovering = /** @class */ (function (_super) { - __extends(EventHovering, _super); - function EventHovering(settings) { - var _this = _super.call(this, settings) || this; - // for simulating an eventMouseLeave when the event el is destroyed while mouse is over it - _this.handleEventElRemove = function (el) { - if (el === _this.currentSegEl) { - _this.handleSegLeave(null, _this.currentSegEl); - } - }; - _this.handleSegEnter = function (ev, segEl) { - if (getElSeg(segEl)) { // TODO: better way to make sure not hovering over more+ link or its wrapper - segEl.classList.add('fc-allow-mouse-resize'); - _this.currentSegEl = segEl; - _this.triggerEvent('eventMouseEnter', ev, segEl); - } - }; - _this.handleSegLeave = function (ev, segEl) { - if (_this.currentSegEl) { - segEl.classList.remove('fc-allow-mouse-resize'); - _this.currentSegEl = null; - _this.triggerEvent('eventMouseLeave', ev, segEl); - } - }; - var component = settings.component; - _this.removeHoverListeners = listenToHoverBySelector(component.el, component.fgSegSelector + ',' + component.bgSegSelector, _this.handleSegEnter, _this.handleSegLeave); - component.calendar.on('eventElRemove', _this.handleEventElRemove); - return _this; - } - EventHovering.prototype.destroy = function () { - this.removeHoverListeners(); - this.component.calendar.off('eventElRemove', this.handleEventElRemove); - }; - EventHovering.prototype.triggerEvent = function (publicEvName, ev, segEl) { - var component = this.component; - var seg = getElSeg(segEl); - if (!ev || component.isValidSegDownEl(ev.target)) { - component.publiclyTrigger(publicEvName, [ - { - el: segEl, - event: new EventApi(this.component.calendar, seg.eventRange.def, seg.eventRange.instance), - jsEvent: ev, - view: component.view - } - ]); - } - }; - return EventHovering; - }(Interaction)); - - var StandardTheme = /** @class */ (function (_super) { - __extends(StandardTheme, _super); - function StandardTheme() { - return _super !== null && _super.apply(this, arguments) || this; - } - return StandardTheme; - }(Theme)); - StandardTheme.prototype.classes = { - widget: 'fc-unthemed', - widgetHeader: 'fc-widget-header', - widgetContent: 'fc-widget-content', - buttonGroup: 'fc-button-group', - button: 'fc-button fc-button-primary', - buttonActive: 'fc-button-active', - popoverHeader: 'fc-widget-header', - popoverContent: 'fc-widget-content', - // day grid - headerRow: 'fc-widget-header', - dayRow: 'fc-widget-content', - // list view - listView: 'fc-widget-content' - }; - StandardTheme.prototype.baseIconClass = 'fc-icon'; - StandardTheme.prototype.iconClasses = { - close: 'fc-icon-x', - prev: 'fc-icon-chevron-left', - next: 'fc-icon-chevron-right', - prevYear: 'fc-icon-chevrons-left', - nextYear: 'fc-icon-chevrons-right' - }; - StandardTheme.prototype.iconOverrideOption = 'buttonIcons'; - StandardTheme.prototype.iconOverrideCustomButtonOption = 'icon'; - StandardTheme.prototype.iconOverridePrefix = 'fc-icon-'; - - var Calendar = /** @class */ (function () { - function Calendar(el, overrides) { - var _this = this; - this.parseRawLocales = memoize(parseRawLocales); - this.buildLocale = memoize(buildLocale); - this.buildDateEnv = memoize(buildDateEnv); - this.buildTheme = memoize(buildTheme); - this.buildEventUiSingleBase = memoize(this._buildEventUiSingleBase); - this.buildSelectionConfig = memoize(this._buildSelectionConfig); - this.buildEventUiBySource = memoizeOutput(buildEventUiBySource, isPropsEqual); - this.buildEventUiBases = memoize(buildEventUiBases); - this.interactionsStore = {}; - this.actionQueue = []; - this.isReducing = false; - // isDisplaying: boolean = false // installed in DOM? accepting renders? - this.needsRerender = false; // needs a render? - this.needsFullRerender = false; - this.isRendering = false; // currently in the executeRender function? - this.renderingPauseDepth = 0; - this.buildDelayedRerender = memoize(buildDelayedRerender); - this.afterSizingTriggers = {}; - this.isViewUpdated = false; - this.isDatesUpdated = false; - this.isEventsUpdated = false; - this.el = el; - this.optionsManager = new OptionsManager(overrides || {}); - this.pluginSystem = new PluginSystem(); - // only do once. don't do in handleOptions. because can't remove plugins - this.addPluginInputs(this.optionsManager.computed.plugins || []); - this.handleOptions(this.optionsManager.computed); - this.publiclyTrigger('_init'); // for tests - this.hydrate(); - this.calendarInteractions = this.pluginSystem.hooks.calendarInteractions - .map(function (calendarInteractionClass) { - return new calendarInteractionClass(_this); - }); - } - Calendar.prototype.addPluginInputs = function (pluginInputs) { - var pluginDefs = refinePluginDefs(pluginInputs); - for (var _i = 0, pluginDefs_1 = pluginDefs; _i < pluginDefs_1.length; _i++) { - var pluginDef = pluginDefs_1[_i]; - this.pluginSystem.add(pluginDef); - } - }; - Object.defineProperty(Calendar.prototype, "view", { - // public API - get: function () { - return this.component ? this.component.view : null; - }, - enumerable: true, - configurable: true - }); - // Public API for rendering - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.render = function () { - if (!this.component) { - this.renderableEventStore = createEmptyEventStore(); - this.bindHandlers(); - this.executeRender(); - } - else { - this.requestRerender(true); - } - }; - Calendar.prototype.destroy = function () { - if (this.component) { - this.unbindHandlers(); - this.component.destroy(); // don't null-out. in case API needs access - this.component = null; // umm ??? - for (var _i = 0, _a = this.calendarInteractions; _i < _a.length; _i++) { - var interaction = _a[_i]; - interaction.destroy(); - } - this.publiclyTrigger('_destroyed'); - } - }; - // Handlers - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.bindHandlers = function () { - var _this = this; - // event delegation for nav links - this.removeNavLinkListener = listenBySelector(this.el, 'click', 'a[data-goto]', function (ev, anchorEl) { - var gotoOptions = anchorEl.getAttribute('data-goto'); - gotoOptions = gotoOptions ? JSON.parse(gotoOptions) : {}; - var dateEnv = _this.dateEnv; - var dateMarker = dateEnv.createMarker(gotoOptions.date); - var viewType = gotoOptions.type; - // property like "navLinkDayClick". might be a string or a function - var customAction = _this.viewOpt('navLink' + capitaliseFirstLetter(viewType) + 'Click'); - if (typeof customAction === 'function') { - customAction(dateEnv.toDate(dateMarker), ev); - } - else { - if (typeof customAction === 'string') { - viewType = customAction; - } - _this.zoomTo(dateMarker, viewType); - } - }); - if (this.opt('handleWindowResize')) { - window.addEventListener('resize', this.windowResizeProxy = debounce(// prevents rapid calls - this.windowResize.bind(this), this.opt('windowResizeDelay'))); - } - }; - Calendar.prototype.unbindHandlers = function () { - this.removeNavLinkListener(); - if (this.windowResizeProxy) { - window.removeEventListener('resize', this.windowResizeProxy); - this.windowResizeProxy = null; - } - }; - // Dispatcher - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.hydrate = function () { - var _this = this; - this.state = this.buildInitialState(); - var rawSources = this.opt('eventSources') || []; - var singleRawSource = this.opt('events'); - var sources = []; // parsed - if (singleRawSource) { - rawSources.unshift(singleRawSource); - } - for (var _i = 0, rawSources_1 = rawSources; _i < rawSources_1.length; _i++) { - var rawSource = rawSources_1[_i]; - var source = parseEventSource(rawSource, this); - if (source) { - sources.push(source); - } - } - this.batchRendering(function () { - _this.dispatch({ type: 'INIT' }); // pass in sources here? - _this.dispatch({ type: 'ADD_EVENT_SOURCES', sources: sources }); - _this.dispatch({ - type: 'SET_VIEW_TYPE', - viewType: _this.opt('defaultView') || _this.pluginSystem.hooks.defaultView - }); - }); - }; - Calendar.prototype.buildInitialState = function () { - return { - viewType: null, - loadingLevel: 0, - eventSourceLoadingLevel: 0, - currentDate: this.getInitialDate(), - dateProfile: null, - eventSources: {}, - eventStore: createEmptyEventStore(), - dateSelection: null, - eventSelection: '', - eventDrag: null, - eventResize: null - }; - }; - Calendar.prototype.dispatch = function (action) { - this.actionQueue.push(action); - if (!this.isReducing) { - this.isReducing = true; - var oldState = this.state; - while (this.actionQueue.length) { - this.state = this.reduce(this.state, this.actionQueue.shift(), this); - } - var newState = this.state; - this.isReducing = false; - if (!oldState.loadingLevel && newState.loadingLevel) { - this.publiclyTrigger('loading', [true]); - } - else if (oldState.loadingLevel && !newState.loadingLevel) { - this.publiclyTrigger('loading', [false]); - } - var view = this.component && this.component.view; - if (oldState.eventStore !== newState.eventStore || this.needsFullRerender) { - if (oldState.eventStore) { - this.isEventsUpdated = true; - } - } - if (oldState.dateProfile !== newState.dateProfile || this.needsFullRerender) { - if (oldState.dateProfile && view) { // why would view be null!? - this.publiclyTrigger('datesDestroy', [ - { - view: view, - el: view.el - } - ]); - } - this.isDatesUpdated = true; - } - if (oldState.viewType !== newState.viewType || this.needsFullRerender) { - if (oldState.viewType && view) { // why would view be null!? - this.publiclyTrigger('viewSkeletonDestroy', [ - { - view: view, - el: view.el - } - ]); - } - this.isViewUpdated = true; - } - this.requestRerender(); - } - }; - Calendar.prototype.reduce = function (state, action, calendar) { - return reduce(state, action, calendar); - }; - // Render Queue - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.requestRerender = function (needsFull) { - if (needsFull === void 0) { needsFull = false; } - this.needsRerender = true; - this.needsFullRerender = this.needsFullRerender || needsFull; - this.delayedRerender(); // will call a debounced-version of tryRerender - }; - Calendar.prototype.tryRerender = function () { - if (this.component && // must be accepting renders - this.needsRerender && // indicates that a rerender was requested - !this.renderingPauseDepth && // not paused - !this.isRendering // not currently in the render loop - ) { - this.executeRender(); - } - }; - Calendar.prototype.batchRendering = function (func) { - this.renderingPauseDepth++; - func(); - this.renderingPauseDepth--; - if (this.needsRerender) { - this.requestRerender(); - } - }; - // Rendering - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.executeRender = function () { - var needsFullRerender = this.needsFullRerender; // save before clearing - // clear these BEFORE the render so that new values will accumulate during render - this.needsRerender = false; - this.needsFullRerender = false; - this.isRendering = true; - this.renderComponent(needsFullRerender); - this.isRendering = false; - // received a rerender request while rendering - if (this.needsRerender) { - this.delayedRerender(); - } - }; - /* - don't call this directly. use executeRender instead - */ - Calendar.prototype.renderComponent = function (needsFull) { - var _a = this, state = _a.state, component = _a.component; - var viewType = state.viewType; - var viewSpec = this.viewSpecs[viewType]; - var savedScroll = (needsFull && component) ? component.view.queryScroll() : null; - if (!viewSpec) { - throw new Error("View type \"" + viewType + "\" is not valid"); - } - // if event sources are still loading and progressive rendering hasn't been enabled, - // keep rendering the last fully loaded set of events - var renderableEventStore = this.renderableEventStore = - (state.eventSourceLoadingLevel && !this.opt('progressiveEventRendering')) ? - this.renderableEventStore : - state.eventStore; - var eventUiSingleBase = this.buildEventUiSingleBase(viewSpec.options); - var eventUiBySource = this.buildEventUiBySource(state.eventSources); - var eventUiBases = this.eventUiBases = this.buildEventUiBases(renderableEventStore.defs, eventUiSingleBase, eventUiBySource); - if (needsFull || !component) { - if (component) { - component.freezeHeight(); // next component will unfreeze it - component.destroy(); - } - component = this.component = new CalendarComponent({ - calendar: this, - view: null, - dateEnv: this.dateEnv, - theme: this.theme, - options: this.optionsManager.computed - }, this.el); - this.isViewUpdated = true; - this.isDatesUpdated = true; - this.isEventsUpdated = true; - } - component.receiveProps(__assign({}, state, { viewSpec: viewSpec, dateProfile: state.dateProfile, dateProfileGenerator: this.dateProfileGenerators[viewType], eventStore: renderableEventStore, eventUiBases: eventUiBases, dateSelection: state.dateSelection, eventSelection: state.eventSelection, eventDrag: state.eventDrag, eventResize: state.eventResize })); - if (savedScroll) { - component.view.applyScroll(savedScroll, false); - } - if (this.isViewUpdated) { - this.isViewUpdated = false; - this.publiclyTrigger('viewSkeletonRender', [ - { - view: component.view, - el: component.view.el - } - ]); - } - if (this.isDatesUpdated) { - this.isDatesUpdated = false; - this.publiclyTrigger('datesRender', [ - { - view: component.view, - el: component.view.el - } - ]); - } - if (this.isEventsUpdated) { - this.isEventsUpdated = false; - } - this.releaseAfterSizingTriggers(); - }; - // Options - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.setOption = function (name, val) { - var _a; - this.mutateOptions((_a = {}, _a[name] = val, _a), [], true); - }; - Calendar.prototype.getOption = function (name) { - return this.optionsManager.computed[name]; - }; - Calendar.prototype.opt = function (name) { - return this.optionsManager.computed[name]; - }; - Calendar.prototype.viewOpt = function (name) { - return this.viewOpts()[name]; - }; - Calendar.prototype.viewOpts = function () { - return this.viewSpecs[this.state.viewType].options; - }; - /* - handles option changes (like a diff) - */ - Calendar.prototype.mutateOptions = function (updates, removals, isDynamic, deepEqual) { - var _this = this; - var changeHandlers = this.pluginSystem.hooks.optionChangeHandlers; - var normalUpdates = {}; - var specialUpdates = {}; - var oldDateEnv = this.dateEnv; // do this before handleOptions - var isTimeZoneDirty = false; - var isSizeDirty = false; - var anyDifficultOptions = Boolean(removals.length); - for (var name_1 in updates) { - if (changeHandlers[name_1]) { - specialUpdates[name_1] = updates[name_1]; - } - else { - normalUpdates[name_1] = updates[name_1]; - } - } - for (var name_2 in normalUpdates) { - if (/^(height|contentHeight|aspectRatio)$/.test(name_2)) { - isSizeDirty = true; - } - else if (/^(defaultDate|defaultView)$/.test(name_2)) ; - else { - anyDifficultOptions = true; - if (name_2 === 'timeZone') { - isTimeZoneDirty = true; - } - } - } - this.optionsManager.mutate(normalUpdates, removals, isDynamic); - if (anyDifficultOptions) { - this.handleOptions(this.optionsManager.computed); - this.needsFullRerender = true; - } - this.batchRendering(function () { - if (anyDifficultOptions) { - if (isTimeZoneDirty) { - _this.dispatch({ - type: 'CHANGE_TIMEZONE', - oldDateEnv: oldDateEnv - }); - } - /* HACK - has the same effect as calling this.requestRerender(true) - but recomputes the state's dateProfile - */ - _this.dispatch({ - type: 'SET_VIEW_TYPE', - viewType: _this.state.viewType - }); - } - else if (isSizeDirty) { - _this.updateSize(); - } - // special updates - if (deepEqual) { - for (var name_3 in specialUpdates) { - changeHandlers[name_3](specialUpdates[name_3], _this, deepEqual); - } - } - }); - }; - /* - rebuilds things based off of a complete set of refined options - */ - Calendar.prototype.handleOptions = function (options) { - var _this = this; - var pluginHooks = this.pluginSystem.hooks; - this.defaultAllDayEventDuration = createDuration(options.defaultAllDayEventDuration); - this.defaultTimedEventDuration = createDuration(options.defaultTimedEventDuration); - this.delayedRerender = this.buildDelayedRerender(options.rerenderDelay); - this.theme = this.buildTheme(options); - var available = this.parseRawLocales(options.locales); - this.availableRawLocales = available.map; - var locale = this.buildLocale(options.locale || available.defaultCode, available.map); - this.dateEnv = this.buildDateEnv(locale, options.timeZone, pluginHooks.namedTimeZonedImpl, options.firstDay, options.weekNumberCalculation, options.weekLabel, pluginHooks.cmdFormatter); - this.selectionConfig = this.buildSelectionConfig(options); // needs dateEnv. do after :( - // ineffecient to do every time? - this.viewSpecs = buildViewSpecs(pluginHooks.views, this.optionsManager); - // ineffecient to do every time? - this.dateProfileGenerators = mapHash(this.viewSpecs, function (viewSpec) { - return new viewSpec.class.prototype.dateProfileGeneratorClass(viewSpec, _this); - }); - }; - Calendar.prototype.getAvailableLocaleCodes = function () { - return Object.keys(this.availableRawLocales); - }; - Calendar.prototype._buildSelectionConfig = function (rawOpts) { - return processScopedUiProps('select', rawOpts, this); - }; - Calendar.prototype._buildEventUiSingleBase = function (rawOpts) { - if (rawOpts.editable) { // so 'editable' affected events - rawOpts = __assign({}, rawOpts, { eventEditable: true }); - } - return processScopedUiProps('event', rawOpts, this); - }; - // Trigger - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.hasPublicHandlers = function (name) { - return this.hasHandlers(name) || - this.opt(name); // handler specified in options - }; - Calendar.prototype.publiclyTrigger = function (name, args) { - var optHandler = this.opt(name); - this.triggerWith(name, this, args); - if (optHandler) { - return optHandler.apply(this, args); - } - }; - Calendar.prototype.publiclyTriggerAfterSizing = function (name, args) { - var afterSizingTriggers = this.afterSizingTriggers; - (afterSizingTriggers[name] || (afterSizingTriggers[name] = [])).push(args); - }; - Calendar.prototype.releaseAfterSizingTriggers = function () { - var afterSizingTriggers = this.afterSizingTriggers; - for (var name_4 in afterSizingTriggers) { - for (var _i = 0, _a = afterSizingTriggers[name_4]; _i < _a.length; _i++) { - var args = _a[_i]; - this.publiclyTrigger(name_4, args); - } - } - this.afterSizingTriggers = {}; - }; - // View - // ----------------------------------------------------------------------------------------------------------------- - // Returns a boolean about whether the view is okay to instantiate at some point - Calendar.prototype.isValidViewType = function (viewType) { - return Boolean(this.viewSpecs[viewType]); - }; - Calendar.prototype.changeView = function (viewType, dateOrRange) { - var dateMarker = null; - if (dateOrRange) { - if (dateOrRange.start && dateOrRange.end) { // a range - this.optionsManager.mutate({ visibleRange: dateOrRange }, []); // will not rerender - this.handleOptions(this.optionsManager.computed); // ...but yuck - } - else { // a date - dateMarker = this.dateEnv.createMarker(dateOrRange); // just like gotoDate - } - } - this.unselect(); - this.dispatch({ - type: 'SET_VIEW_TYPE', - viewType: viewType, - dateMarker: dateMarker - }); - }; - // Forces navigation to a view for the given date. - // `viewType` can be a specific view name or a generic one like "week" or "day". - // needs to change - Calendar.prototype.zoomTo = function (dateMarker, viewType) { - var spec; - viewType = viewType || 'day'; // day is default zoom - spec = this.viewSpecs[viewType] || - this.getUnitViewSpec(viewType); - this.unselect(); - if (spec) { - this.dispatch({ - type: 'SET_VIEW_TYPE', - viewType: spec.type, - dateMarker: dateMarker - }); - } - else { - this.dispatch({ - type: 'SET_DATE', - dateMarker: dateMarker - }); - } - }; - // Given a duration singular unit, like "week" or "day", finds a matching view spec. - // Preference is given to views that have corresponding buttons. - Calendar.prototype.getUnitViewSpec = function (unit) { - var component = this.component; - var viewTypes = []; - var i; - var spec; - // put views that have buttons first. there will be duplicates, but oh - if (component.header) { - viewTypes.push.apply(viewTypes, component.header.viewsWithButtons); - } - if (component.footer) { - viewTypes.push.apply(viewTypes, component.footer.viewsWithButtons); - } - for (var viewType in this.viewSpecs) { - viewTypes.push(viewType); - } - for (i = 0; i < viewTypes.length; i++) { - spec = this.viewSpecs[viewTypes[i]]; - if (spec) { - if (spec.singleUnit === unit) { - return spec; - } - } - } - }; - // Current Date - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.getInitialDate = function () { - var defaultDateInput = this.opt('defaultDate'); - // compute the initial ambig-timezone date - if (defaultDateInput != null) { - return this.dateEnv.createMarker(defaultDateInput); - } - else { - return this.getNow(); // getNow already returns unzoned - } - }; - Calendar.prototype.prev = function () { - this.unselect(); - this.dispatch({ type: 'PREV' }); - }; - Calendar.prototype.next = function () { - this.unselect(); - this.dispatch({ type: 'NEXT' }); - }; - Calendar.prototype.prevYear = function () { - this.unselect(); - this.dispatch({ - type: 'SET_DATE', - dateMarker: this.dateEnv.addYears(this.state.currentDate, -1) - }); - }; - Calendar.prototype.nextYear = function () { - this.unselect(); - this.dispatch({ - type: 'SET_DATE', - dateMarker: this.dateEnv.addYears(this.state.currentDate, 1) - }); - }; - Calendar.prototype.today = function () { - this.unselect(); - this.dispatch({ - type: 'SET_DATE', - dateMarker: this.getNow() - }); - }; - Calendar.prototype.gotoDate = function (zonedDateInput) { - this.unselect(); - this.dispatch({ - type: 'SET_DATE', - dateMarker: this.dateEnv.createMarker(zonedDateInput) - }); - }; - Calendar.prototype.incrementDate = function (deltaInput) { - var delta = createDuration(deltaInput); - if (delta) { // else, warn about invalid input? - this.unselect(); - this.dispatch({ - type: 'SET_DATE', - dateMarker: this.dateEnv.add(this.state.currentDate, delta) - }); - } - }; - // for external API - Calendar.prototype.getDate = function () { - return this.dateEnv.toDate(this.state.currentDate); - }; - // Date Formatting Utils - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.formatDate = function (d, formatter) { - var dateEnv = this.dateEnv; - return dateEnv.format(dateEnv.createMarker(d), createFormatter(formatter)); - }; - // `settings` is for formatter AND isEndExclusive - Calendar.prototype.formatRange = function (d0, d1, settings) { - var dateEnv = this.dateEnv; - return dateEnv.formatRange(dateEnv.createMarker(d0), dateEnv.createMarker(d1), createFormatter(settings, this.opt('defaultRangeSeparator')), settings); - }; - Calendar.prototype.formatIso = function (d, omitTime) { - var dateEnv = this.dateEnv; - return dateEnv.formatIso(dateEnv.createMarker(d), { omitTime: omitTime }); - }; - // Sizing - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.windowResize = function (ev) { - if (!this.isHandlingWindowResize && - this.component && // why? - ev.target === window // not a jqui resize event - ) { - this.isHandlingWindowResize = true; - this.updateSize(); - this.publiclyTrigger('windowResize', [this.view]); - this.isHandlingWindowResize = false; - } - }; - Calendar.prototype.updateSize = function () { - if (this.component) { // when? - this.component.updateSize(true); - } - }; - // Component Registration - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.registerInteractiveComponent = function (component, settingsInput) { - var settings = parseInteractionSettings(component, settingsInput); - var DEFAULT_INTERACTIONS = [ - EventClicking, - EventHovering - ]; - var interactionClasses = DEFAULT_INTERACTIONS.concat(this.pluginSystem.hooks.componentInteractions); - var interactions = interactionClasses.map(function (interactionClass) { - return new interactionClass(settings); - }); - this.interactionsStore[component.uid] = interactions; - interactionSettingsStore[component.uid] = settings; - }; - Calendar.prototype.unregisterInteractiveComponent = function (component) { - for (var _i = 0, _a = this.interactionsStore[component.uid]; _i < _a.length; _i++) { - var listener = _a[_i]; - listener.destroy(); - } - delete this.interactionsStore[component.uid]; - delete interactionSettingsStore[component.uid]; - }; - // Date Selection / Event Selection / DayClick - // ----------------------------------------------------------------------------------------------------------------- - // this public method receives start/end dates in any format, with any timezone - // NOTE: args were changed from v3 - Calendar.prototype.select = function (dateOrObj, endDate) { - var selectionInput; - if (endDate == null) { - if (dateOrObj.start != null) { - selectionInput = dateOrObj; - } - else { - selectionInput = { - start: dateOrObj, - end: null - }; - } - } - else { - selectionInput = { - start: dateOrObj, - end: endDate - }; - } - var selection = parseDateSpan(selectionInput, this.dateEnv, createDuration({ days: 1 }) // TODO: cache this? - ); - if (selection) { // throw parse error otherwise? - this.dispatch({ type: 'SELECT_DATES', selection: selection }); - this.triggerDateSelect(selection); - } - }; - // public method - Calendar.prototype.unselect = function (pev) { - if (this.state.dateSelection) { - this.dispatch({ type: 'UNSELECT_DATES' }); - this.triggerDateUnselect(pev); - } - }; - Calendar.prototype.triggerDateSelect = function (selection, pev) { - var arg = __assign({}, this.buildDateSpanApi(selection), { jsEvent: pev ? pev.origEvent : null, view: this.view }); - this.publiclyTrigger('select', [arg]); - }; - Calendar.prototype.triggerDateUnselect = function (pev) { - this.publiclyTrigger('unselect', [ - { - jsEvent: pev ? pev.origEvent : null, - view: this.view - } - ]); - }; - // TODO: receive pev? - Calendar.prototype.triggerDateClick = function (dateSpan, dayEl, view, ev) { - var arg = __assign({}, this.buildDatePointApi(dateSpan), { dayEl: dayEl, jsEvent: ev, // Is this always a mouse event? See #4655 - view: view }); - this.publiclyTrigger('dateClick', [arg]); - }; - Calendar.prototype.buildDatePointApi = function (dateSpan) { - var props = {}; - for (var _i = 0, _a = this.pluginSystem.hooks.datePointTransforms; _i < _a.length; _i++) { - var transform = _a[_i]; - __assign(props, transform(dateSpan, this)); - } - __assign(props, buildDatePointApi(dateSpan, this.dateEnv)); - return props; - }; - Calendar.prototype.buildDateSpanApi = function (dateSpan) { - var props = {}; - for (var _i = 0, _a = this.pluginSystem.hooks.dateSpanTransforms; _i < _a.length; _i++) { - var transform = _a[_i]; - __assign(props, transform(dateSpan, this)); - } - __assign(props, buildDateSpanApi(dateSpan, this.dateEnv)); - return props; - }; - // Date Utils - // ----------------------------------------------------------------------------------------------------------------- - // Returns a DateMarker for the current date, as defined by the client's computer or from the `now` option - Calendar.prototype.getNow = function () { - var now = this.opt('now'); - if (typeof now === 'function') { - now = now(); - } - if (now == null) { - return this.dateEnv.createNowMarker(); - } - return this.dateEnv.createMarker(now); - }; - // Event-Date Utilities - // ----------------------------------------------------------------------------------------------------------------- - // Given an event's allDay status and start date, return what its fallback end date should be. - // TODO: rename to computeDefaultEventEnd - Calendar.prototype.getDefaultEventEnd = function (allDay, marker) { - var end = marker; - if (allDay) { - end = startOfDay(end); - end = this.dateEnv.add(end, this.defaultAllDayEventDuration); - } - else { - end = this.dateEnv.add(end, this.defaultTimedEventDuration); - } - return end; - }; - // Public Events API - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.addEvent = function (eventInput, sourceInput) { - if (eventInput instanceof EventApi) { - var def = eventInput._def; - var instance = eventInput._instance; - // not already present? don't want to add an old snapshot - if (!this.state.eventStore.defs[def.defId]) { - this.dispatch({ - type: 'ADD_EVENTS', - eventStore: eventTupleToStore({ def: def, instance: instance }) // TODO: better util for two args? - }); - } - return eventInput; - } - var sourceId; - if (sourceInput instanceof EventSourceApi) { - sourceId = sourceInput.internalEventSource.sourceId; - } - else if (sourceInput != null) { - var sourceApi = this.getEventSourceById(sourceInput); // TODO: use an internal function - if (!sourceApi) { - console.warn('Could not find an event source with ID "' + sourceInput + '"'); // TODO: test - return null; - } - else { - sourceId = sourceApi.internalEventSource.sourceId; - } - } - var tuple = parseEvent(eventInput, sourceId, this); - if (tuple) { - this.dispatch({ - type: 'ADD_EVENTS', - eventStore: eventTupleToStore(tuple) - }); - return new EventApi(this, tuple.def, tuple.def.recurringDef ? null : tuple.instance); - } - return null; - }; - // TODO: optimize - Calendar.prototype.getEventById = function (id) { - var _a = this.state.eventStore, defs = _a.defs, instances = _a.instances; - id = String(id); - for (var defId in defs) { - var def = defs[defId]; - if (def.publicId === id) { - if (def.recurringDef) { - return new EventApi(this, def, null); - } - else { - for (var instanceId in instances) { - var instance = instances[instanceId]; - if (instance.defId === def.defId) { - return new EventApi(this, def, instance); - } - } - } - } - } - return null; - }; - Calendar.prototype.getEvents = function () { - var _a = this.state.eventStore, defs = _a.defs, instances = _a.instances; - var eventApis = []; - for (var id in instances) { - var instance = instances[id]; - var def = defs[instance.defId]; - eventApis.push(new EventApi(this, def, instance)); - } - return eventApis; - }; - Calendar.prototype.removeAllEvents = function () { - this.dispatch({ type: 'REMOVE_ALL_EVENTS' }); - }; - Calendar.prototype.rerenderEvents = function () { - this.dispatch({ type: 'RESET_EVENTS' }); - }; - // Public Event Sources API - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.getEventSources = function () { - var sourceHash = this.state.eventSources; - var sourceApis = []; - for (var internalId in sourceHash) { - sourceApis.push(new EventSourceApi(this, sourceHash[internalId])); - } - return sourceApis; - }; - Calendar.prototype.getEventSourceById = function (id) { - var sourceHash = this.state.eventSources; - id = String(id); - for (var sourceId in sourceHash) { - if (sourceHash[sourceId].publicId === id) { - return new EventSourceApi(this, sourceHash[sourceId]); - } - } - return null; - }; - Calendar.prototype.addEventSource = function (sourceInput) { - if (sourceInput instanceof EventSourceApi) { - // not already present? don't want to add an old snapshot - if (!this.state.eventSources[sourceInput.internalEventSource.sourceId]) { - this.dispatch({ - type: 'ADD_EVENT_SOURCES', - sources: [sourceInput.internalEventSource] - }); - } - return sourceInput; - } - var eventSource = parseEventSource(sourceInput, this); - if (eventSource) { // TODO: error otherwise? - this.dispatch({ type: 'ADD_EVENT_SOURCES', sources: [eventSource] }); - return new EventSourceApi(this, eventSource); - } - return null; - }; - Calendar.prototype.removeAllEventSources = function () { - this.dispatch({ type: 'REMOVE_ALL_EVENT_SOURCES' }); - }; - Calendar.prototype.refetchEvents = function () { - this.dispatch({ type: 'FETCH_EVENT_SOURCES' }); - }; - // Scroll - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.scrollToTime = function (timeInput) { - var duration = createDuration(timeInput); - if (duration) { - this.component.view.scrollToDuration(duration); - } - }; - return Calendar; - }()); - EmitterMixin.mixInto(Calendar); - // for memoizers - // ----------------------------------------------------------------------------------------------------------------- - function buildDateEnv(locale, timeZone, namedTimeZoneImpl, firstDay, weekNumberCalculation, weekLabel, cmdFormatter) { - return new DateEnv({ - calendarSystem: 'gregory', - timeZone: timeZone, - namedTimeZoneImpl: namedTimeZoneImpl, - locale: locale, - weekNumberCalculation: weekNumberCalculation, - firstDay: firstDay, - weekLabel: weekLabel, - cmdFormatter: cmdFormatter - }); - } - function buildTheme(calendarOptions) { - var themeClass = this.pluginSystem.hooks.themeClasses[calendarOptions.themeSystem] || StandardTheme; - return new themeClass(calendarOptions); - } - function buildDelayedRerender(wait) { - var func = this.tryRerender.bind(this); - if (wait != null) { - func = debounce(func, wait); - } - return func; - } - function buildEventUiBySource(eventSources) { - return mapHash(eventSources, function (eventSource) { - return eventSource.ui; - }); - } - function buildEventUiBases(eventDefs, eventUiSingleBase, eventUiBySource) { - var eventUiBases = { '': eventUiSingleBase }; - for (var defId in eventDefs) { - var def = eventDefs[defId]; - if (def.sourceId && eventUiBySource[def.sourceId]) { - eventUiBases[defId] = eventUiBySource[def.sourceId]; - } - } - return eventUiBases; - } - - var View = /** @class */ (function (_super) { - __extends(View, _super); - function View(context, viewSpec, dateProfileGenerator, parentEl) { - var _this = _super.call(this, context, createElement('div', { className: 'fc-view fc-' + viewSpec.type + '-view' }), true // isView (HACK) - ) || this; - _this.renderDatesMem = memoizeRendering(_this.renderDatesWrap, _this.unrenderDatesWrap); - _this.renderBusinessHoursMem = memoizeRendering(_this.renderBusinessHours, _this.unrenderBusinessHours, [_this.renderDatesMem]); - _this.renderDateSelectionMem = memoizeRendering(_this.renderDateSelectionWrap, _this.unrenderDateSelectionWrap, [_this.renderDatesMem]); - _this.renderEventsMem = memoizeRendering(_this.renderEvents, _this.unrenderEvents, [_this.renderDatesMem]); - _this.renderEventSelectionMem = memoizeRendering(_this.renderEventSelectionWrap, _this.unrenderEventSelectionWrap, [_this.renderEventsMem]); - _this.renderEventDragMem = memoizeRendering(_this.renderEventDragWrap, _this.unrenderEventDragWrap, [_this.renderDatesMem]); - _this.renderEventResizeMem = memoizeRendering(_this.renderEventResizeWrap, _this.unrenderEventResizeWrap, [_this.renderDatesMem]); - _this.viewSpec = viewSpec; - _this.dateProfileGenerator = dateProfileGenerator; - _this.type = viewSpec.type; - _this.eventOrderSpecs = parseFieldSpecs(_this.opt('eventOrder')); - _this.nextDayThreshold = createDuration(_this.opt('nextDayThreshold')); - parentEl.appendChild(_this.el); - _this.initialize(); - return _this; - } - View.prototype.initialize = function () { - }; - Object.defineProperty(View.prototype, "activeStart", { - // Date Setting/Unsetting - // ----------------------------------------------------------------------------------------------------------------- - get: function () { - return this.dateEnv.toDate(this.props.dateProfile.activeRange.start); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(View.prototype, "activeEnd", { - get: function () { - return this.dateEnv.toDate(this.props.dateProfile.activeRange.end); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(View.prototype, "currentStart", { - get: function () { - return this.dateEnv.toDate(this.props.dateProfile.currentRange.start); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(View.prototype, "currentEnd", { - get: function () { - return this.dateEnv.toDate(this.props.dateProfile.currentRange.end); - }, - enumerable: true, - configurable: true - }); - // General Rendering - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.render = function (props) { - this.renderDatesMem(props.dateProfile); - this.renderBusinessHoursMem(props.businessHours); - this.renderDateSelectionMem(props.dateSelection); - this.renderEventsMem(props.eventStore); - this.renderEventSelectionMem(props.eventSelection); - this.renderEventDragMem(props.eventDrag); - this.renderEventResizeMem(props.eventResize); - }; - View.prototype.destroy = function () { - _super.prototype.destroy.call(this); - this.renderDatesMem.unrender(); // should unrender everything else - }; - // Sizing - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.updateSize = function (isResize, viewHeight, isAuto) { - var calendar = this.calendar; - if (isResize || // HACKS... - calendar.isViewUpdated || - calendar.isDatesUpdated || - calendar.isEventsUpdated) { - // sort of the catch-all sizing - // anything that might cause dimension changes - this.updateBaseSize(isResize, viewHeight, isAuto); - } - }; - View.prototype.updateBaseSize = function (isResize, viewHeight, isAuto) { - }; - // Date Rendering - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderDatesWrap = function (dateProfile) { - this.renderDates(dateProfile); - this.addScroll({ - duration: createDuration(this.opt('scrollTime')) - }); - this.startNowIndicator(dateProfile); // shouldn't render yet because updateSize will be called soon - }; - View.prototype.unrenderDatesWrap = function () { - this.stopNowIndicator(); - this.unrenderDates(); - }; - View.prototype.renderDates = function (dateProfile) { }; - View.prototype.unrenderDates = function () { }; - // Business Hours - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderBusinessHours = function (businessHours) { }; - View.prototype.unrenderBusinessHours = function () { }; - // Date Selection - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderDateSelectionWrap = function (selection) { - if (selection) { - this.renderDateSelection(selection); - } - }; - View.prototype.unrenderDateSelectionWrap = function (selection) { - if (selection) { - this.unrenderDateSelection(selection); - } - }; - View.prototype.renderDateSelection = function (selection) { }; - View.prototype.unrenderDateSelection = function (selection) { }; - // Event Rendering - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderEvents = function (eventStore) { }; - View.prototype.unrenderEvents = function () { }; - // util for subclasses - View.prototype.sliceEvents = function (eventStore, allDay) { - var props = this.props; - return sliceEventStore(eventStore, props.eventUiBases, props.dateProfile.activeRange, allDay ? this.nextDayThreshold : null).fg; - }; - View.prototype.computeEventDraggable = function (eventDef, eventUi) { - var transformers = this.calendar.pluginSystem.hooks.isDraggableTransformers; - var val = eventUi.startEditable; - for (var _i = 0, transformers_1 = transformers; _i < transformers_1.length; _i++) { - var transformer = transformers_1[_i]; - val = transformer(val, eventDef, eventUi, this); - } - return val; - }; - View.prototype.computeEventStartResizable = function (eventDef, eventUi) { - return eventUi.durationEditable && this.opt('eventResizableFromStart'); - }; - View.prototype.computeEventEndResizable = function (eventDef, eventUi) { - return eventUi.durationEditable; - }; - // Event Selection - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderEventSelectionWrap = function (instanceId) { - if (instanceId) { - this.renderEventSelection(instanceId); - } - }; - View.prototype.unrenderEventSelectionWrap = function (instanceId) { - if (instanceId) { - this.unrenderEventSelection(instanceId); - } - }; - View.prototype.renderEventSelection = function (instanceId) { }; - View.prototype.unrenderEventSelection = function (instanceId) { }; - // Event Drag - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderEventDragWrap = function (state) { - if (state) { - this.renderEventDrag(state); - } - }; - View.prototype.unrenderEventDragWrap = function (state) { - if (state) { - this.unrenderEventDrag(state); - } - }; - View.prototype.renderEventDrag = function (state) { }; - View.prototype.unrenderEventDrag = function (state) { }; - // Event Resize - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderEventResizeWrap = function (state) { - if (state) { - this.renderEventResize(state); - } - }; - View.prototype.unrenderEventResizeWrap = function (state) { - if (state) { - this.unrenderEventResize(state); - } - }; - View.prototype.renderEventResize = function (state) { }; - View.prototype.unrenderEventResize = function (state) { }; - /* Now Indicator - ------------------------------------------------------------------------------------------------------------------*/ - // Immediately render the current time indicator and begins re-rendering it at an interval, - // which is defined by this.getNowIndicatorUnit(). - // TODO: somehow do this for the current whole day's background too - View.prototype.startNowIndicator = function (dateProfile) { - var _this = this; - var dateEnv = this.dateEnv; - var unit; - var update; - var delay; // ms wait value - if (this.opt('nowIndicator')) { - unit = this.getNowIndicatorUnit(dateProfile); - if (unit) { - update = this.updateNowIndicator.bind(this); - this.initialNowDate = this.calendar.getNow(); - this.initialNowQueriedMs = new Date().valueOf(); - // wait until the beginning of the next interval - delay = dateEnv.add(dateEnv.startOf(this.initialNowDate, unit), createDuration(1, unit)).valueOf() - this.initialNowDate.valueOf(); - // TODO: maybe always use setTimeout, waiting until start of next unit - this.nowIndicatorTimeoutID = setTimeout(function () { - _this.nowIndicatorTimeoutID = null; - update(); - if (unit === 'second') { - delay = 1000; // every second - } - else { - delay = 1000 * 60; // otherwise, every minute - } - _this.nowIndicatorIntervalID = setInterval(update, delay); // update every interval - }, delay); - } - // rendering will be initiated in updateSize - } - }; - // rerenders the now indicator, computing the new current time from the amount of time that has passed - // since the initial getNow call. - View.prototype.updateNowIndicator = function () { - if (this.props.dateProfile && // a way to determine if dates were rendered yet - this.initialNowDate // activated before? - ) { - this.unrenderNowIndicator(); // won't unrender if unnecessary - this.renderNowIndicator(addMs(this.initialNowDate, new Date().valueOf() - this.initialNowQueriedMs)); - this.isNowIndicatorRendered = true; - } - }; - // Immediately unrenders the view's current time indicator and stops any re-rendering timers. - // Won't cause side effects if indicator isn't rendered. - View.prototype.stopNowIndicator = function () { - if (this.isNowIndicatorRendered) { - if (this.nowIndicatorTimeoutID) { - clearTimeout(this.nowIndicatorTimeoutID); - this.nowIndicatorTimeoutID = null; - } - if (this.nowIndicatorIntervalID) { - clearInterval(this.nowIndicatorIntervalID); - this.nowIndicatorIntervalID = null; - } - this.unrenderNowIndicator(); - this.isNowIndicatorRendered = false; - } - }; - View.prototype.getNowIndicatorUnit = function (dateProfile) { - // subclasses should implement - }; - // Renders a current time indicator at the given datetime - View.prototype.renderNowIndicator = function (date) { - // SUBCLASSES MUST PASS TO CHILDREN! - }; - // Undoes the rendering actions from renderNowIndicator - View.prototype.unrenderNowIndicator = function () { - // SUBCLASSES MUST PASS TO CHILDREN! - }; - /* Scroller - ------------------------------------------------------------------------------------------------------------------*/ - View.prototype.addScroll = function (scroll) { - var queuedScroll = this.queuedScroll || (this.queuedScroll = {}); - __assign(queuedScroll, scroll); - }; - View.prototype.popScroll = function (isResize) { - this.applyQueuedScroll(isResize); - this.queuedScroll = null; - }; - View.prototype.applyQueuedScroll = function (isResize) { - this.applyScroll(this.queuedScroll || {}, isResize); - }; - View.prototype.queryScroll = function () { - var scroll = {}; - if (this.props.dateProfile) { // dates rendered yet? - __assign(scroll, this.queryDateScroll()); - } - return scroll; - }; - View.prototype.applyScroll = function (scroll, isResize) { - var duration = scroll.duration; - if (duration != null) { - delete scroll.duration; - if (this.props.dateProfile) { // dates rendered yet? - __assign(scroll, this.computeDateScroll(duration)); - } - } - if (this.props.dateProfile) { // dates rendered yet? - this.applyDateScroll(scroll); - } - }; - View.prototype.computeDateScroll = function (duration) { - return {}; // subclasses must implement - }; - View.prototype.queryDateScroll = function () { - return {}; // subclasses must implement - }; - View.prototype.applyDateScroll = function (scroll) { - // subclasses must implement - }; - // for API - View.prototype.scrollToDuration = function (duration) { - this.applyScroll({ duration: duration }, false); - }; - return View; - }(DateComponent)); - EmitterMixin.mixInto(View); - View.prototype.usesMinMaxTime = false; - View.prototype.dateProfileGeneratorClass = DateProfileGenerator; - - var FgEventRenderer = /** @class */ (function () { - function FgEventRenderer(context) { - this.segs = []; - this.isSizeDirty = false; - this.context = context; - } - FgEventRenderer.prototype.renderSegs = function (segs, mirrorInfo) { - this.rangeUpdated(); // called too frequently :( - // render an `.el` on each seg - // returns a subset of the segs. segs that were actually rendered - segs = this.renderSegEls(segs, mirrorInfo); - this.segs = segs; - this.attachSegs(segs, mirrorInfo); - this.isSizeDirty = true; - this.context.view.triggerRenderedSegs(this.segs, Boolean(mirrorInfo)); - }; - FgEventRenderer.prototype.unrender = function (_segs, mirrorInfo) { - this.context.view.triggerWillRemoveSegs(this.segs, Boolean(mirrorInfo)); - this.detachSegs(this.segs); - this.segs = []; - }; - // Updates values that rely on options and also relate to range - FgEventRenderer.prototype.rangeUpdated = function () { - var options = this.context.options; - var displayEventTime; - var displayEventEnd; - this.eventTimeFormat = createFormatter(options.eventTimeFormat || this.computeEventTimeFormat(), options.defaultRangeSeparator); - displayEventTime = options.displayEventTime; - if (displayEventTime == null) { - displayEventTime = this.computeDisplayEventTime(); // might be based off of range - } - displayEventEnd = options.displayEventEnd; - if (displayEventEnd == null) { - displayEventEnd = this.computeDisplayEventEnd(); // might be based off of range - } - this.displayEventTime = displayEventTime; - this.displayEventEnd = displayEventEnd; - }; - // Renders and assigns an `el` property for each foreground event segment. - // Only returns segments that successfully rendered. - FgEventRenderer.prototype.renderSegEls = function (segs, mirrorInfo) { - var html = ''; - var i; - if (segs.length) { // don't build an empty html string - // build a large concatenation of event segment HTML - for (i = 0; i < segs.length; i++) { - html += this.renderSegHtml(segs[i], mirrorInfo); - } - // Grab individual elements from the combined HTML string. Use each as the default rendering. - // Then, compute the 'el' for each segment. An el might be null if the eventRender callback returned false. - htmlToElements(html).forEach(function (el, i) { - var seg = segs[i]; - if (el) { - seg.el = el; - } - }); - segs = filterSegsViaEls(this.context.view, segs, Boolean(mirrorInfo)); - } - return segs; - }; - // Generic utility for generating the HTML classNames for an event segment's element - FgEventRenderer.prototype.getSegClasses = function (seg, isDraggable, isResizable, mirrorInfo) { - var classes = [ - 'fc-event', - seg.isStart ? 'fc-start' : 'fc-not-start', - seg.isEnd ? 'fc-end' : 'fc-not-end' - ].concat(seg.eventRange.ui.classNames); - if (isDraggable) { - classes.push('fc-draggable'); - } - if (isResizable) { - classes.push('fc-resizable'); - } - if (mirrorInfo) { - classes.push('fc-mirror'); - if (mirrorInfo.isDragging) { - classes.push('fc-dragging'); - } - if (mirrorInfo.isResizing) { - classes.push('fc-resizing'); - } - } - return classes; - }; - // Compute the text that should be displayed on an event's element. - // `range` can be the Event object itself, or something range-like, with at least a `start`. - // If event times are disabled, or the event has no time, will return a blank string. - // If not specified, formatter will default to the eventTimeFormat setting, - // and displayEnd will default to the displayEventEnd setting. - FgEventRenderer.prototype.getTimeText = function (eventRange, formatter, displayEnd) { - var def = eventRange.def, instance = eventRange.instance; - return this._getTimeText(instance.range.start, def.hasEnd ? instance.range.end : null, def.allDay, formatter, displayEnd, instance.forcedStartTzo, instance.forcedEndTzo); - }; - FgEventRenderer.prototype._getTimeText = function (start, end, allDay, formatter, displayEnd, forcedStartTzo, forcedEndTzo) { - var dateEnv = this.context.dateEnv; - if (formatter == null) { - formatter = this.eventTimeFormat; - } - if (displayEnd == null) { - displayEnd = this.displayEventEnd; - } - if (this.displayEventTime && !allDay) { - if (displayEnd && end) { - return dateEnv.formatRange(start, end, formatter, { - forcedStartTzo: forcedStartTzo, - forcedEndTzo: forcedEndTzo - }); - } - else { - return dateEnv.format(start, formatter, { - forcedTzo: forcedStartTzo - }); - } - } - return ''; - }; - FgEventRenderer.prototype.computeEventTimeFormat = function () { - return { - hour: 'numeric', - minute: '2-digit', - omitZeroMinute: true - }; - }; - FgEventRenderer.prototype.computeDisplayEventTime = function () { - return true; - }; - FgEventRenderer.prototype.computeDisplayEventEnd = function () { - return true; - }; - // Utility for generating event skin-related CSS properties - FgEventRenderer.prototype.getSkinCss = function (ui) { - return { - 'background-color': ui.backgroundColor, - 'border-color': ui.borderColor, - color: ui.textColor - }; - }; - FgEventRenderer.prototype.sortEventSegs = function (segs) { - var specs = this.context.view.eventOrderSpecs; - var objs = segs.map(buildSegCompareObj); - objs.sort(function (obj0, obj1) { - return compareByFieldSpecs(obj0, obj1, specs); - }); - return objs.map(function (c) { - return c._seg; - }); - }; - FgEventRenderer.prototype.computeSizes = function (force) { - if (force || this.isSizeDirty) { - this.computeSegSizes(this.segs); - } - }; - FgEventRenderer.prototype.assignSizes = function (force) { - if (force || this.isSizeDirty) { - this.assignSegSizes(this.segs); - this.isSizeDirty = false; - } - }; - FgEventRenderer.prototype.computeSegSizes = function (segs) { - }; - FgEventRenderer.prototype.assignSegSizes = function (segs) { - }; - // Manipulation on rendered segs - FgEventRenderer.prototype.hideByHash = function (hash) { - if (hash) { - for (var _i = 0, _a = this.segs; _i < _a.length; _i++) { - var seg = _a[_i]; - if (hash[seg.eventRange.instance.instanceId]) { - seg.el.style.visibility = 'hidden'; - } - } - } - }; - FgEventRenderer.prototype.showByHash = function (hash) { - if (hash) { - for (var _i = 0, _a = this.segs; _i < _a.length; _i++) { - var seg = _a[_i]; - if (hash[seg.eventRange.instance.instanceId]) { - seg.el.style.visibility = ''; - } - } - } - }; - FgEventRenderer.prototype.selectByInstanceId = function (instanceId) { - if (instanceId) { - for (var _i = 0, _a = this.segs; _i < _a.length; _i++) { - var seg = _a[_i]; - var eventInstance = seg.eventRange.instance; - if (eventInstance && eventInstance.instanceId === instanceId && - seg.el // necessary? - ) { - seg.el.classList.add('fc-selected'); - } - } - } - }; - FgEventRenderer.prototype.unselectByInstanceId = function (instanceId) { - if (instanceId) { - for (var _i = 0, _a = this.segs; _i < _a.length; _i++) { - var seg = _a[_i]; - if (seg.el) { // necessary? - seg.el.classList.remove('fc-selected'); - } - } - } - }; - return FgEventRenderer; - }()); - // returns a object with all primitive props that can be compared - function buildSegCompareObj(seg) { - var eventDef = seg.eventRange.def; - var range = seg.eventRange.instance.range; - var start = range.start ? range.start.valueOf() : 0; // TODO: better support for open-range events - var end = range.end ? range.end.valueOf() : 0; // " - return __assign({}, eventDef.extendedProps, eventDef, { id: eventDef.publicId, start: start, - end: end, duration: end - start, allDay: Number(eventDef.allDay), _seg: seg // for later retrieval - }); - } - - var FillRenderer = /** @class */ (function () { - function FillRenderer(context) { - this.fillSegTag = 'div'; - this.dirtySizeFlags = {}; - this.context = context; - this.containerElsByType = {}; - this.segsByType = {}; - } - FillRenderer.prototype.getSegsByType = function (type) { - return this.segsByType[type] || []; - }; - FillRenderer.prototype.renderSegs = function (type, segs) { - var _a; - var renderedSegs = this.renderSegEls(type, segs); // assignes `.el` to each seg. returns successfully rendered segs - var containerEls = this.attachSegs(type, renderedSegs); - if (containerEls) { - (_a = (this.containerElsByType[type] || (this.containerElsByType[type] = []))).push.apply(_a, containerEls); - } - this.segsByType[type] = renderedSegs; - if (type === 'bgEvent') { - this.context.view.triggerRenderedSegs(renderedSegs, false); // isMirror=false - } - this.dirtySizeFlags[type] = true; - }; - // Unrenders a specific type of fill that is currently rendered on the grid - FillRenderer.prototype.unrender = function (type) { - var segs = this.segsByType[type]; - if (segs) { - if (type === 'bgEvent') { - this.context.view.triggerWillRemoveSegs(segs, false); // isMirror=false - } - this.detachSegs(type, segs); - } - }; - // Renders and assigns an `el` property for each fill segment. Generic enough to work with different types. - // Only returns segments that successfully rendered. - FillRenderer.prototype.renderSegEls = function (type, segs) { - var _this = this; - var html = ''; - var i; - if (segs.length) { - // build a large concatenation of segment HTML - for (i = 0; i < segs.length; i++) { - html += this.renderSegHtml(type, segs[i]); - } - // Grab individual elements from the combined HTML string. Use each as the default rendering. - // Then, compute the 'el' for each segment. - htmlToElements(html).forEach(function (el, i) { - var seg = segs[i]; - if (el) { - seg.el = el; - } - }); - if (type === 'bgEvent') { - segs = filterSegsViaEls(this.context.view, segs, false // isMirror. background events can never be mirror elements - ); - } - // correct element type? (would be bad if a non-TD were inserted into a table for example) - segs = segs.filter(function (seg) { - return elementMatches(seg.el, _this.fillSegTag); - }); - } - return segs; - }; - // Builds the HTML needed for one fill segment. Generic enough to work with different types. - FillRenderer.prototype.renderSegHtml = function (type, seg) { - var css = null; - var classNames = []; - if (type !== 'highlight' && type !== 'businessHours') { - css = { - 'background-color': seg.eventRange.ui.backgroundColor - }; - } - if (type !== 'highlight') { - classNames = classNames.concat(seg.eventRange.ui.classNames); - } - if (type === 'businessHours') { - classNames.push('fc-bgevent'); - } - else { - classNames.push('fc-' + type.toLowerCase()); - } - return '<' + this.fillSegTag + - (classNames.length ? ' class="' + classNames.join(' ') + '"' : '') + - (css ? ' style="' + cssToStr(css) + '"' : '') + - '>'; - }; - FillRenderer.prototype.detachSegs = function (type, segs) { - var containerEls = this.containerElsByType[type]; - if (containerEls) { - containerEls.forEach(removeElement); - delete this.containerElsByType[type]; - } - }; - FillRenderer.prototype.computeSizes = function (force) { - for (var type in this.segsByType) { - if (force || this.dirtySizeFlags[type]) { - this.computeSegSizes(this.segsByType[type]); - } - } - }; - FillRenderer.prototype.assignSizes = function (force) { - for (var type in this.segsByType) { - if (force || this.dirtySizeFlags[type]) { - this.assignSegSizes(this.segsByType[type]); - } - } - this.dirtySizeFlags = {}; - }; - FillRenderer.prototype.computeSegSizes = function (segs) { - }; - FillRenderer.prototype.assignSegSizes = function (segs) { - }; - return FillRenderer; - }()); - - var NamedTimeZoneImpl = /** @class */ (function () { - function NamedTimeZoneImpl(timeZoneName) { - this.timeZoneName = timeZoneName; - } - return NamedTimeZoneImpl; - }()); - - /* - An abstraction for a dragging interaction originating on an event. - Does higher-level things than PointerDragger, such as possibly: - - a "mirror" that moves with the pointer - - a minimum number of pixels or other criteria for a true drag to begin - - subclasses must emit: - - pointerdown - - dragstart - - dragmove - - pointerup - - dragend - */ - var ElementDragging = /** @class */ (function () { - function ElementDragging(el) { - this.emitter = new EmitterMixin(); - } - ElementDragging.prototype.destroy = function () { - }; - ElementDragging.prototype.setMirrorIsVisible = function (bool) { - // optional if subclass doesn't want to support a mirror - }; - ElementDragging.prototype.setMirrorNeedsRevert = function (bool) { - // optional if subclass doesn't want to support a mirror - }; - ElementDragging.prototype.setAutoScrollEnabled = function (bool) { - // optional - }; - return ElementDragging; - }()); - - function formatDate(dateInput, settings) { - if (settings === void 0) { settings = {}; } - var dateEnv = buildDateEnv$1(settings); - var formatter = createFormatter(settings); - var dateMeta = dateEnv.createMarkerMeta(dateInput); - if (!dateMeta) { // TODO: warning? - return ''; - } - return dateEnv.format(dateMeta.marker, formatter, { - forcedTzo: dateMeta.forcedTzo - }); - } - function formatRange(startInput, endInput, settings // mixture of env and formatter settings - ) { - var dateEnv = buildDateEnv$1(typeof settings === 'object' && settings ? settings : {}); // pass in if non-null object - var formatter = createFormatter(settings, globalDefaults.defaultRangeSeparator); - var startMeta = dateEnv.createMarkerMeta(startInput); - var endMeta = dateEnv.createMarkerMeta(endInput); - if (!startMeta || !endMeta) { // TODO: warning? - return ''; - } - return dateEnv.formatRange(startMeta.marker, endMeta.marker, formatter, { - forcedStartTzo: startMeta.forcedTzo, - forcedEndTzo: endMeta.forcedTzo, - isEndExclusive: settings.isEndExclusive - }); - } - // TODO: more DRY and optimized - function buildDateEnv$1(settings) { - var locale = buildLocale(settings.locale || 'en', parseRawLocales([]).map); // TODO: don't hardcode 'en' everywhere - // ensure required settings - settings = __assign({ timeZone: globalDefaults.timeZone, calendarSystem: 'gregory' }, settings, { locale: locale }); - return new DateEnv(settings); - } - - var DRAG_META_PROPS = { - startTime: createDuration, - duration: createDuration, - create: Boolean, - sourceId: String - }; - var DRAG_META_DEFAULTS = { - create: true - }; - function parseDragMeta(raw) { - var leftoverProps = {}; - var refined = refineProps(raw, DRAG_META_PROPS, DRAG_META_DEFAULTS, leftoverProps); - refined.leftoverProps = leftoverProps; - return refined; - } - - // Computes a default column header formatting string if `colFormat` is not explicitly defined - function computeFallbackHeaderFormat(datesRepDistinctDays, dayCnt) { - // if more than one week row, or if there are a lot of columns with not much space, - // put just the day numbers will be in each cell - if (!datesRepDistinctDays || dayCnt > 10) { - return { weekday: 'short' }; // "Sat" - } - else if (dayCnt > 1) { - return { weekday: 'short', month: 'numeric', day: 'numeric', omitCommas: true }; // "Sat 11/12" - } - else { - return { weekday: 'long' }; // "Saturday" - } - } - function renderDateCell(dateMarker, dateProfile, datesRepDistinctDays, colCnt, colHeadFormat, context, colspan, otherAttrs) { - var view = context.view, dateEnv = context.dateEnv, theme = context.theme, options = context.options; - var isDateValid = rangeContainsMarker(dateProfile.activeRange, dateMarker); // TODO: called too frequently. cache somehow. - var classNames = [ - 'fc-day-header', - theme.getClass('widgetHeader') - ]; - var innerHtml; - if (typeof options.columnHeaderHtml === 'function') { - innerHtml = options.columnHeaderHtml(dateEnv.toDate(dateMarker)); - } - else if (typeof options.columnHeaderText === 'function') { - innerHtml = htmlEscape(options.columnHeaderText(dateEnv.toDate(dateMarker))); - } - else { - innerHtml = htmlEscape(dateEnv.format(dateMarker, colHeadFormat)); - } - // if only one row of days, the classNames on the header can represent the specific days beneath - if (datesRepDistinctDays) { - classNames = classNames.concat( - // includes the day-of-week class - // noThemeHighlight=true (don't highlight the header) - getDayClasses(dateMarker, dateProfile, context, true)); - } - else { - classNames.push('fc-' + DAY_IDS[dateMarker.getUTCDay()]); // only add the day-of-week class - } - return '' + - ' 1 ? - ' colspan="' + colspan + '"' : - '') + - (otherAttrs ? - ' ' + otherAttrs : - '') + - '>' + - (isDateValid ? - // don't make a link if the heading could represent multiple days, or if there's only one day (forceOff) - buildGotoAnchorHtml(view, { date: dateMarker, forceOff: !datesRepDistinctDays || colCnt === 1 }, innerHtml) : - // if not valid, display text, but no link - innerHtml) + - ''; - } - - var DayHeader = /** @class */ (function (_super) { - __extends(DayHeader, _super); - function DayHeader(context, parentEl) { - var _this = _super.call(this, context) || this; - parentEl.innerHTML = ''; // because might be nbsp - parentEl.appendChild(_this.el = htmlToElement('
' + - '' + - '' + - '
' + - '
')); - _this.thead = _this.el.querySelector('thead'); - return _this; - } - DayHeader.prototype.destroy = function () { - removeElement(this.el); - }; - DayHeader.prototype.render = function (props) { - var dates = props.dates, datesRepDistinctDays = props.datesRepDistinctDays; - var parts = []; - if (props.renderIntroHtml) { - parts.push(props.renderIntroHtml()); - } - var colHeadFormat = createFormatter(this.opt('columnHeaderFormat') || - computeFallbackHeaderFormat(datesRepDistinctDays, dates.length)); - for (var _i = 0, dates_1 = dates; _i < dates_1.length; _i++) { - var date = dates_1[_i]; - parts.push(renderDateCell(date, props.dateProfile, datesRepDistinctDays, dates.length, colHeadFormat, this.context)); - } - if (this.isRtl) { - parts.reverse(); - } - this.thead.innerHTML = '' + parts.join('') + ''; - }; - return DayHeader; - }(Component)); - - var DaySeries = /** @class */ (function () { - function DaySeries(range, dateProfileGenerator) { - var date = range.start; - var end = range.end; - var indices = []; - var dates = []; - var dayIndex = -1; - while (date < end) { // loop each day from start to end - if (dateProfileGenerator.isHiddenDay(date)) { - indices.push(dayIndex + 0.5); // mark that it's between indices - } - else { - dayIndex++; - indices.push(dayIndex); - dates.push(date); - } - date = addDays(date, 1); - } - this.dates = dates; - this.indices = indices; - this.cnt = dates.length; - } - DaySeries.prototype.sliceRange = function (range) { - var firstIndex = this.getDateDayIndex(range.start); // inclusive first index - var lastIndex = this.getDateDayIndex(addDays(range.end, -1)); // inclusive last index - var clippedFirstIndex = Math.max(0, firstIndex); - var clippedLastIndex = Math.min(this.cnt - 1, lastIndex); - // deal with in-between indices - clippedFirstIndex = Math.ceil(clippedFirstIndex); // in-between starts round to next cell - clippedLastIndex = Math.floor(clippedLastIndex); // in-between ends round to prev cell - if (clippedFirstIndex <= clippedLastIndex) { - return { - firstIndex: clippedFirstIndex, - lastIndex: clippedLastIndex, - isStart: firstIndex === clippedFirstIndex, - isEnd: lastIndex === clippedLastIndex - }; - } - else { - return null; - } - }; - // Given a date, returns its chronolocial cell-index from the first cell of the grid. - // If the date lies between cells (because of hiddenDays), returns a floating-point value between offsets. - // If before the first offset, returns a negative number. - // If after the last offset, returns an offset past the last cell offset. - // Only works for *start* dates of cells. Will not work for exclusive end dates for cells. - DaySeries.prototype.getDateDayIndex = function (date) { - var indices = this.indices; - var dayOffset = Math.floor(diffDays(this.dates[0], date)); - if (dayOffset < 0) { - return indices[0] - 1; - } - else if (dayOffset >= indices.length) { - return indices[indices.length - 1] + 1; - } - else { - return indices[dayOffset]; - } - }; - return DaySeries; - }()); - - var DayTable = /** @class */ (function () { - function DayTable(daySeries, breakOnWeeks) { - var dates = daySeries.dates; - var daysPerRow; - var firstDay; - var rowCnt; - if (breakOnWeeks) { - // count columns until the day-of-week repeats - firstDay = dates[0].getUTCDay(); - for (daysPerRow = 1; daysPerRow < dates.length; daysPerRow++) { - if (dates[daysPerRow].getUTCDay() === firstDay) { - break; - } - } - rowCnt = Math.ceil(dates.length / daysPerRow); - } - else { - rowCnt = 1; - daysPerRow = dates.length; - } - this.rowCnt = rowCnt; - this.colCnt = daysPerRow; - this.daySeries = daySeries; - this.cells = this.buildCells(); - this.headerDates = this.buildHeaderDates(); - } - DayTable.prototype.buildCells = function () { - var rows = []; - for (var row = 0; row < this.rowCnt; row++) { - var cells = []; - for (var col = 0; col < this.colCnt; col++) { - cells.push(this.buildCell(row, col)); - } - rows.push(cells); - } - return rows; - }; - DayTable.prototype.buildCell = function (row, col) { - return { - date: this.daySeries.dates[row * this.colCnt + col] - }; - }; - DayTable.prototype.buildHeaderDates = function () { - var dates = []; - for (var col = 0; col < this.colCnt; col++) { - dates.push(this.cells[0][col].date); - } - return dates; - }; - DayTable.prototype.sliceRange = function (range) { - var colCnt = this.colCnt; - var seriesSeg = this.daySeries.sliceRange(range); - var segs = []; - if (seriesSeg) { - var firstIndex = seriesSeg.firstIndex, lastIndex = seriesSeg.lastIndex; - var index = firstIndex; - while (index <= lastIndex) { - var row = Math.floor(index / colCnt); - var nextIndex = Math.min((row + 1) * colCnt, lastIndex + 1); - segs.push({ - row: row, - firstCol: index % colCnt, - lastCol: (nextIndex - 1) % colCnt, - isStart: seriesSeg.isStart && index === firstIndex, - isEnd: seriesSeg.isEnd && (nextIndex - 1) === lastIndex - }); - index = nextIndex; - } - } - return segs; - }; - return DayTable; - }()); - - var Slicer = /** @class */ (function () { - function Slicer() { - this.sliceBusinessHours = memoize(this._sliceBusinessHours); - this.sliceDateSelection = memoize(this._sliceDateSpan); - this.sliceEventStore = memoize(this._sliceEventStore); - this.sliceEventDrag = memoize(this._sliceInteraction); - this.sliceEventResize = memoize(this._sliceInteraction); - } - Slicer.prototype.sliceProps = function (props, dateProfile, nextDayThreshold, component) { - var extraArgs = []; - for (var _i = 4; _i < arguments.length; _i++) { - extraArgs[_i - 4] = arguments[_i]; - } - var eventUiBases = props.eventUiBases; - var eventSegs = this.sliceEventStore.apply(this, [props.eventStore, eventUiBases, dateProfile, nextDayThreshold, component].concat(extraArgs)); - return { - dateSelectionSegs: this.sliceDateSelection.apply(this, [props.dateSelection, eventUiBases, component].concat(extraArgs)), - businessHourSegs: this.sliceBusinessHours.apply(this, [props.businessHours, dateProfile, nextDayThreshold, component].concat(extraArgs)), - fgEventSegs: eventSegs.fg, - bgEventSegs: eventSegs.bg, - eventDrag: this.sliceEventDrag.apply(this, [props.eventDrag, eventUiBases, dateProfile, nextDayThreshold, component].concat(extraArgs)), - eventResize: this.sliceEventResize.apply(this, [props.eventResize, eventUiBases, dateProfile, nextDayThreshold, component].concat(extraArgs)), - eventSelection: props.eventSelection - }; // TODO: give interactionSegs? - }; - Slicer.prototype.sliceNowDate = function (// does not memoize - date, component) { - var extraArgs = []; - for (var _i = 2; _i < arguments.length; _i++) { - extraArgs[_i - 2] = arguments[_i]; - } - return this._sliceDateSpan.apply(this, [{ range: { start: date, end: addMs(date, 1) }, allDay: false }, - {}, - component].concat(extraArgs)); - }; - Slicer.prototype._sliceBusinessHours = function (businessHours, dateProfile, nextDayThreshold, component) { - var extraArgs = []; - for (var _i = 4; _i < arguments.length; _i++) { - extraArgs[_i - 4] = arguments[_i]; - } - if (!businessHours) { - return []; - } - return this._sliceEventStore.apply(this, [expandRecurring(businessHours, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), component.calendar), - {}, - dateProfile, - nextDayThreshold, - component].concat(extraArgs)).bg; - }; - Slicer.prototype._sliceEventStore = function (eventStore, eventUiBases, dateProfile, nextDayThreshold, component) { - var extraArgs = []; - for (var _i = 5; _i < arguments.length; _i++) { - extraArgs[_i - 5] = arguments[_i]; - } - if (eventStore) { - var rangeRes = sliceEventStore(eventStore, eventUiBases, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), nextDayThreshold); - return { - bg: this.sliceEventRanges(rangeRes.bg, component, extraArgs), - fg: this.sliceEventRanges(rangeRes.fg, component, extraArgs) - }; - } - else { - return { bg: [], fg: [] }; - } - }; - Slicer.prototype._sliceInteraction = function (interaction, eventUiBases, dateProfile, nextDayThreshold, component) { - var extraArgs = []; - for (var _i = 5; _i < arguments.length; _i++) { - extraArgs[_i - 5] = arguments[_i]; - } - if (!interaction) { - return null; - } - var rangeRes = sliceEventStore(interaction.mutatedEvents, eventUiBases, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), nextDayThreshold); - return { - segs: this.sliceEventRanges(rangeRes.fg, component, extraArgs), - affectedInstances: interaction.affectedEvents.instances, - isEvent: interaction.isEvent, - sourceSeg: interaction.origSeg - }; - }; - Slicer.prototype._sliceDateSpan = function (dateSpan, eventUiBases, component) { - var extraArgs = []; - for (var _i = 3; _i < arguments.length; _i++) { - extraArgs[_i - 3] = arguments[_i]; - } - if (!dateSpan) { - return []; - } - var eventRange = fabricateEventRange(dateSpan, eventUiBases, component.calendar); - var segs = this.sliceRange.apply(this, [dateSpan.range].concat(extraArgs)); - for (var _a = 0, segs_1 = segs; _a < segs_1.length; _a++) { - var seg = segs_1[_a]; - seg.component = component; - seg.eventRange = eventRange; - } - return segs; - }; - /* - "complete" seg means it has component and eventRange - */ - Slicer.prototype.sliceEventRanges = function (eventRanges, component, // TODO: kill - extraArgs) { - var segs = []; - for (var _i = 0, eventRanges_1 = eventRanges; _i < eventRanges_1.length; _i++) { - var eventRange = eventRanges_1[_i]; - segs.push.apply(segs, this.sliceEventRange(eventRange, component, extraArgs)); - } - return segs; - }; - /* - "complete" seg means it has component and eventRange - */ - Slicer.prototype.sliceEventRange = function (eventRange, component, // TODO: kill - extraArgs) { - var segs = this.sliceRange.apply(this, [eventRange.range].concat(extraArgs)); - for (var _i = 0, segs_2 = segs; _i < segs_2.length; _i++) { - var seg = segs_2[_i]; - seg.component = component; - seg.eventRange = eventRange; - seg.isStart = eventRange.isStart && seg.isStart; - seg.isEnd = eventRange.isEnd && seg.isEnd; - } - return segs; - }; - return Slicer; - }()); - /* - for incorporating minTime/maxTime if appropriate - TODO: should be part of DateProfile! - TimelineDateProfile already does this btw - */ - function computeActiveRange(dateProfile, isComponentAllDay) { - var range = dateProfile.activeRange; - if (isComponentAllDay) { - return range; - } - return { - start: addMs(range.start, dateProfile.minTime.milliseconds), - end: addMs(range.end, dateProfile.maxTime.milliseconds - 864e5) // 864e5 = ms in a day - }; - } - - // exports - // -------------------------------------------------------------------------------------------------- - var version = '4.3.1'; - - exports.Calendar = Calendar; - exports.Component = Component; - exports.DateComponent = DateComponent; - exports.DateEnv = DateEnv; - exports.DateProfileGenerator = DateProfileGenerator; - exports.DayHeader = DayHeader; - exports.DaySeries = DaySeries; - exports.DayTable = DayTable; - exports.ElementDragging = ElementDragging; - exports.ElementScrollController = ElementScrollController; - exports.EmitterMixin = EmitterMixin; - exports.EventApi = EventApi; - exports.FgEventRenderer = FgEventRenderer; - exports.FillRenderer = FillRenderer; - exports.Interaction = Interaction; - exports.Mixin = Mixin; - exports.NamedTimeZoneImpl = NamedTimeZoneImpl; - exports.PositionCache = PositionCache; - exports.ScrollComponent = ScrollComponent; - exports.ScrollController = ScrollController; - exports.Slicer = Slicer; - exports.Splitter = Splitter; - exports.Theme = Theme; - exports.View = View; - exports.WindowScrollController = WindowScrollController; - exports.addDays = addDays; - exports.addDurations = addDurations; - exports.addMs = addMs; - exports.addWeeks = addWeeks; - exports.allowContextMenu = allowContextMenu; - exports.allowSelection = allowSelection; - exports.appendToElement = appendToElement; - exports.applyAll = applyAll; - exports.applyMutationToEventStore = applyMutationToEventStore; - exports.applyStyle = applyStyle; - exports.applyStyleProp = applyStyleProp; - exports.asRoughMinutes = asRoughMinutes; - exports.asRoughMs = asRoughMs; - exports.asRoughSeconds = asRoughSeconds; - exports.buildGotoAnchorHtml = buildGotoAnchorHtml; - exports.buildSegCompareObj = buildSegCompareObj; - exports.capitaliseFirstLetter = capitaliseFirstLetter; - exports.combineEventUis = combineEventUis; - exports.compareByFieldSpec = compareByFieldSpec; - exports.compareByFieldSpecs = compareByFieldSpecs; - exports.compareNumbers = compareNumbers; - exports.compensateScroll = compensateScroll; - exports.computeClippingRect = computeClippingRect; - exports.computeEdges = computeEdges; - exports.computeFallbackHeaderFormat = computeFallbackHeaderFormat; - exports.computeHeightAndMargins = computeHeightAndMargins; - exports.computeInnerRect = computeInnerRect; - exports.computeRect = computeRect; - exports.computeVisibleDayRange = computeVisibleDayRange; - exports.config = config; - exports.constrainPoint = constrainPoint; - exports.createDuration = createDuration; - exports.createElement = createElement; - exports.createEmptyEventStore = createEmptyEventStore; - exports.createEventInstance = createEventInstance; - exports.createFormatter = createFormatter; - exports.createPlugin = createPlugin; - exports.cssToStr = cssToStr; - exports.debounce = debounce; - exports.diffDates = diffDates; - exports.diffDayAndTime = diffDayAndTime; - exports.diffDays = diffDays; - exports.diffPoints = diffPoints; - exports.diffWeeks = diffWeeks; - exports.diffWholeDays = diffWholeDays; - exports.diffWholeWeeks = diffWholeWeeks; - exports.disableCursor = disableCursor; - exports.distributeHeight = distributeHeight; - exports.elementClosest = elementClosest; - exports.elementMatches = elementMatches; - exports.enableCursor = enableCursor; - exports.eventTupleToStore = eventTupleToStore; - exports.filterEventStoreDefs = filterEventStoreDefs; - exports.filterHash = filterHash; - exports.findChildren = findChildren; - exports.findElements = findElements; - exports.flexibleCompare = flexibleCompare; - exports.forceClassName = forceClassName; - exports.formatDate = formatDate; - exports.formatIsoTimeString = formatIsoTimeString; - exports.formatRange = formatRange; - exports.getAllDayHtml = getAllDayHtml; - exports.getClippingParents = getClippingParents; - exports.getDayClasses = getDayClasses; - exports.getElSeg = getElSeg; - exports.getRectCenter = getRectCenter; - exports.getRelevantEvents = getRelevantEvents; - exports.globalDefaults = globalDefaults; - exports.greatestDurationDenominator = greatestDurationDenominator; - exports.hasBgRendering = hasBgRendering; - exports.htmlEscape = htmlEscape; - exports.htmlToElement = htmlToElement; - exports.insertAfterElement = insertAfterElement; - exports.interactionSettingsStore = interactionSettingsStore; - exports.interactionSettingsToStore = interactionSettingsToStore; - exports.intersectRanges = intersectRanges; - exports.intersectRects = intersectRects; - exports.isArraysEqual = isArraysEqual; - exports.isDateSpansEqual = isDateSpansEqual; - exports.isInt = isInt; - exports.isInteractionValid = isInteractionValid; - exports.isMultiDayRange = isMultiDayRange; - exports.isPropsEqual = isPropsEqual; - exports.isPropsValid = isPropsValid; - exports.isSingleDay = isSingleDay; - exports.isValidDate = isValidDate; - exports.listenBySelector = listenBySelector; - exports.mapHash = mapHash; - exports.matchCellWidths = matchCellWidths; - exports.memoize = memoize; - exports.memoizeOutput = memoizeOutput; - exports.memoizeRendering = memoizeRendering; - exports.mergeEventStores = mergeEventStores; - exports.multiplyDuration = multiplyDuration; - exports.padStart = padStart; - exports.parseBusinessHours = parseBusinessHours; - exports.parseDragMeta = parseDragMeta; - exports.parseEventDef = parseEventDef; - exports.parseFieldSpecs = parseFieldSpecs; - exports.parseMarker = parse; - exports.pointInsideRect = pointInsideRect; - exports.prependToElement = prependToElement; - exports.preventContextMenu = preventContextMenu; - exports.preventDefault = preventDefault; - exports.preventSelection = preventSelection; - exports.processScopedUiProps = processScopedUiProps; - exports.rangeContainsMarker = rangeContainsMarker; - exports.rangeContainsRange = rangeContainsRange; - exports.rangesEqual = rangesEqual; - exports.rangesIntersect = rangesIntersect; - exports.refineProps = refineProps; - exports.removeElement = removeElement; - exports.removeExact = removeExact; - exports.renderDateCell = renderDateCell; - exports.requestJson = requestJson; - exports.sliceEventStore = sliceEventStore; - exports.startOfDay = startOfDay; - exports.subtractInnerElHeight = subtractInnerElHeight; - exports.translateRect = translateRect; - exports.uncompensateScroll = uncompensateScroll; - exports.undistributeHeight = undistributeHeight; - exports.unpromisify = unpromisify; - exports.version = version; - exports.whenTransitionDone = whenTransitionDone; - exports.wholeDivideDurations = wholeDivideDurations; - - Object.defineProperty(exports, '__esModule', { value: true }); - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/main.min.css b/htdocs/public/high/plugins/fullcalendar/main.min.css deleted file mode 100644 index 8948b534..00000000 --- a/htdocs/public/high/plugins/fullcalendar/main.min.css +++ /dev/null @@ -1 +0,0 @@ -@charset "UTF-8";.fc-button:not(:disabled),.fc-event.fc-draggable,.fc-event[href],.fc-popover .fc-header .fc-close,a.fc-more,a[data-goto]{cursor:pointer}.fc-bg,.fc-row .fc-bgevent-skeleton,.fc-row .fc-highlight-skeleton{bottom:0}.fc{direction:ltr;text-align:left}.fc-rtl{text-align:right}body .fc{font-size:1em}.fc-highlight{background:#bce8f1;opacity:.3}.fc-bgevent{background:#8fdf82;opacity:.3}.fc-nonbusiness{background:#d7d7d7}.fc-popover{position:absolute;box-shadow:0 2px 6px rgba(0,0,0,.15)}.fc-popover .fc-header{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:2px 4px}.fc-rtl .fc-popover .fc-header{flex-direction:row-reverse}.fc-popover .fc-header .fc-title{margin:0 2px}.fc-popover .fc-header .fc-close{opacity:.65;font-size:1.1em}.fc-divider{border-style:solid;border-width:1px}hr.fc-divider{height:0;margin:0;padding:0 0 2px;border-width:1px 0}.fc-bg table,.fc-row .fc-bgevent-skeleton table,.fc-row .fc-highlight-skeleton table{height:100%}.fc-bg,.fc-bgevent-skeleton,.fc-highlight-skeleton,.fc-mirror-skeleton{position:absolute;top:0;left:0;right:0}.fc table{width:100%;box-sizing:border-box;table-layout:fixed;border-collapse:collapse;border-spacing:0;font-size:1em}.fc th{text-align:center}.fc td,.fc th{border-style:solid;border-width:1px;padding:0;vertical-align:top}.fc td.fc-today{border-style:double}a[data-goto]:hover{text-decoration:underline}.fc .fc-row{border-style:solid;border-width:0}.fc-row table{border-left:0 hidden transparent;border-right:0 hidden transparent;border-bottom:0 hidden transparent}.fc-row:first-child table{border-top:0 hidden transparent}.fc-row{position:relative}.fc-row .fc-bg{z-index:1}.fc-row .fc-bgevent-skeleton td,.fc-row .fc-highlight-skeleton td{border-color:transparent}.fc-row .fc-bgevent-skeleton{z-index:2}.fc-row .fc-highlight-skeleton{z-index:3}.fc-row .fc-content-skeleton{position:relative;z-index:4;padding-bottom:2px}.fc-row .fc-mirror-skeleton{z-index:5}.fc .fc-row .fc-content-skeleton table,.fc .fc-row .fc-content-skeleton td,.fc .fc-row .fc-mirror-skeleton td{background:0 0;border-color:transparent}.fc-row .fc-content-skeleton td,.fc-row .fc-mirror-skeleton td{border-bottom:0}.fc-row .fc-content-skeleton tbody td,.fc-row .fc-mirror-skeleton tbody td{border-top:0}.fc-scroller{-webkit-overflow-scrolling:touch}.fc-scroller>.fc-day-grid,.fc-scroller>.fc-time-grid{position:relative;width:100%}.fc-event{position:relative;display:block;font-size:.85em;line-height:1.4;border-radius:3px;border:1px solid #3788d8}.fc-event,.fc-event-dot{background-color:#3788d8}.fc-event,.fc-event:hover{color:#fff;text-decoration:none}.fc-not-allowed,.fc-not-allowed .fc-event{cursor:not-allowed}.fc-event .fc-content{position:relative;z-index:2}.fc-event .fc-resizer{position:absolute;z-index:4;display:none}.fc-event.fc-allow-mouse-resize .fc-resizer,.fc-event.fc-selected .fc-resizer{display:block}.fc-event.fc-selected .fc-resizer:before{content:"";position:absolute;z-index:9999;top:50%;left:50%;width:40px;height:40px;margin-left:-20px;margin-top:-20px}.fc-event.fc-selected{z-index:9999!important;box-shadow:0 2px 5px rgba(0,0,0,.2)}.fc-event.fc-selected:after{content:"";position:absolute;z-index:1;top:-1px;right:-1px;bottom:-1px;left:-1px;background:#000;opacity:.25}.fc-event.fc-dragging.fc-selected{box-shadow:0 2px 7px rgba(0,0,0,.3)}.fc-event.fc-dragging:not(.fc-selected){opacity:.75}.fc-h-event.fc-selected:before{content:"";position:absolute;z-index:3;top:-10px;bottom:-10px;left:0;right:0}.fc-ltr .fc-h-event.fc-not-start,.fc-rtl .fc-h-event.fc-not-end{margin-left:0;border-left-width:0;padding-left:1px;border-top-left-radius:0;border-bottom-left-radius:0}.fc-ltr .fc-h-event.fc-not-end,.fc-rtl .fc-h-event.fc-not-start{margin-right:0;border-right-width:0;padding-right:1px;border-top-right-radius:0;border-bottom-right-radius:0}.fc-ltr .fc-h-event .fc-start-resizer,.fc-rtl .fc-h-event .fc-end-resizer{cursor:w-resize;left:-1px}.fc-ltr .fc-h-event .fc-end-resizer,.fc-rtl .fc-h-event .fc-start-resizer{cursor:e-resize;right:-1px}.fc-h-event.fc-allow-mouse-resize .fc-resizer{width:7px;top:-1px;bottom:-1px}.fc-h-event.fc-selected .fc-resizer{border-radius:4px;border-width:1px;width:6px;height:6px;border-style:solid;border-color:inherit;background:#fff;top:50%;margin-top:-4px}.fc-ltr .fc-h-event.fc-selected .fc-start-resizer,.fc-rtl .fc-h-event.fc-selected .fc-end-resizer{margin-left:-4px}.fc-ltr .fc-h-event.fc-selected .fc-end-resizer,.fc-rtl .fc-h-event.fc-selected .fc-start-resizer{margin-right:-4px}.fc-day-grid-event{margin:1px 2px 0;padding:0 1px}tr:first-child>td>.fc-day-grid-event{margin-top:2px}.fc-mirror-skeleton tr:first-child>td>.fc-day-grid-event{margin-top:0}.fc-day-grid-event .fc-content{white-space:nowrap;overflow:hidden}.fc-day-grid-event .fc-time{font-weight:700}.fc-ltr .fc-day-grid-event.fc-allow-mouse-resize .fc-start-resizer,.fc-rtl .fc-day-grid-event.fc-allow-mouse-resize .fc-end-resizer{margin-left:-2px}.fc-ltr .fc-day-grid-event.fc-allow-mouse-resize .fc-end-resizer,.fc-rtl .fc-day-grid-event.fc-allow-mouse-resize .fc-start-resizer{margin-right:-2px}a.fc-more{margin:1px 3px;font-size:.85em;text-decoration:none}a.fc-more:hover{text-decoration:underline}.fc-limited{display:none}.fc-button,.fc-icon{display:inline-block;font-weight:400;text-align:center}.fc-day-grid .fc-row{z-index:1}.fc-more-popover{z-index:2;width:220px}.fc-more-popover .fc-event-container{padding:10px}.fc-now-indicator{position:absolute;border:0 solid red}.fc-unselectable{-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.fc-unthemed .fc-content,.fc-unthemed .fc-divider,.fc-unthemed .fc-list-heading td,.fc-unthemed .fc-list-view,.fc-unthemed .fc-popover,.fc-unthemed .fc-row,.fc-unthemed tbody,.fc-unthemed td,.fc-unthemed th,.fc-unthemed thead{border-color:#ddd}.fc-unthemed .fc-popover{background-color:#fff}.fc-unthemed .fc-divider,.fc-unthemed .fc-list-heading td,.fc-unthemed .fc-popover .fc-header{background:#eee}.fc-unthemed td.fc-today{background:#fcf8e3}.fc-unthemed .fc-disabled-day{background:#d7d7d7;opacity:.3}@font-face{font-family:fcicons;src:url("data:application/x-font-ttf;charset=utf-8;base64,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") format("truetype");font-weight:400;font-style:normal}.fc-icon{font-family:fcicons!important;speak:none;font-style:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:1em;height:1em}.fc-icon-chevron-left:before{content:""}.fc-icon-chevron-right:before{content:""}.fc-icon-chevrons-left:before{content:""}.fc-icon-chevrons-right:before{content:""}.fc-icon-minus-square:before{content:""}.fc-icon-plus-square:before{content:""}.fc-icon-x:before{content:""}.fc-button{overflow:visible;text-transform:none;margin:0;font-family:inherit}.fc-button::-moz-focus-inner{padding:0;border-style:none}.fc-button{-webkit-appearance:button;color:#212529;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.4em .65em;font-size:1em;line-height:1.5;border-radius:.25em}.fc-button:hover{color:#212529;text-decoration:none}.fc-button:focus{outline:0;-webkit-box-shadow:0 0 0 .2rem rgba(44,62,80,.25);box-shadow:0 0 0 .2rem rgba(44,62,80,.25)}.fc-button:disabled{opacity:.65}.fc-button-primary{color:#fff;background-color:#2C3E50;border-color:#2C3E50}.fc-button-primary:hover{color:#fff;background-color:#1e2b37;border-color:#1a252f}.fc-button-primary:focus{-webkit-box-shadow:0 0 0 .2rem rgba(76,91,106,.5);box-shadow:0 0 0 .2rem rgba(76,91,106,.5)}.fc-button-primary:disabled{color:#fff;background-color:#2C3E50;border-color:#2C3E50}.fc-button-primary:not(:disabled).fc-button-active,.fc-button-primary:not(:disabled):active{color:#fff;background-color:#1a252f;border-color:#151e27}.fc-button-primary:not(:disabled).fc-button-active:focus,.fc-button-primary:not(:disabled):active:focus{-webkit-box-shadow:0 0 0 .2rem rgba(76,91,106,.5);box-shadow:0 0 0 .2rem rgba(76,91,106,.5)}.fc-button .fc-icon{vertical-align:middle;font-size:1.5em}.fc-button-group{position:relative;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.fc-button-group>.fc-button{position:relative;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.fc-button-group>.fc-button.fc-button-active,.fc-button-group>.fc-button:active,.fc-button-group>.fc-button:focus,.fc-button-group>.fc-button:hover{z-index:1}.fc-button-group>.fc-button:not(:first-child){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.fc-button-group>.fc-button:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.fc-unthemed .fc-popover{border-width:1px;border-style:solid}.fc-unthemed .fc-list-item:hover td{background-color:#f5f5f5}.fc-toolbar{display:flex;justify-content:space-between;align-items:center}.fc-toolbar.fc-header-toolbar{margin-bottom:1.5em}.fc-toolbar.fc-footer-toolbar{margin-top:1.5em}.fc-toolbar>*>:not(:first-child){margin-left:.75em}.fc-toolbar h2{font-size:1.75em;margin:0}.fc-view-container{position:relative}.fc-view-container *,.fc-view-container :after,.fc-view-container :before{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.fc-view,.fc-view>table{position:relative;z-index:1}@media print{.fc-bg,.fc-bgevent-container,.fc-bgevent-skeleton,.fc-business-container,.fc-event .fc-resizer,.fc-highlight-container,.fc-highlight-skeleton,.fc-mirror-container,.fc-mirror-skeleton{display:none}.fc tbody .fc-row,.fc-time-grid{min-height:0!important}.fc-time-grid .fc-event.fc-not-end:after,.fc-time-grid .fc-event.fc-not-start:before{content:"..."}.fc{max-width:100%!important}.fc-event{background:#fff!important;color:#000!important;page-break-inside:avoid}.fc hr,.fc tbody,.fc td,.fc th,.fc thead,.fc-row{border-color:#ccc!important;background:#fff!important}.fc tbody .fc-row{height:auto!important}.fc tbody .fc-row .fc-content-skeleton{position:static;padding-bottom:0!important}.fc tbody .fc-row .fc-content-skeleton tbody tr:last-child td{padding-bottom:1em}.fc tbody .fc-row .fc-content-skeleton table{height:1em}.fc-more,.fc-more-cell{display:none!important}.fc tr.fc-limited{display:table-row!important}.fc td.fc-limited{display:table-cell!important}.fc-popover,.fc-timeGrid-view .fc-axis{display:none}.fc-slats,.fc-time-grid hr{display:none!important}.fc button,.fc-button-group,.fc-time-grid .fc-event .fc-time span{display:none}.fc-time-grid .fc-content-skeleton{position:static}.fc-time-grid .fc-content-skeleton table{height:4em}.fc-time-grid .fc-event-container{margin:0!important}.fc-time-grid .fc-event{position:static!important;margin:3px 2px!important}.fc-time-grid .fc-event.fc-not-end{border-bottom-width:1px!important}.fc-time-grid .fc-event.fc-not-start{border-top-width:1px!important}.fc-time-grid .fc-event .fc-time{white-space:normal!important}.fc-time-grid .fc-event .fc-time:after{content:attr(data-full)}.fc-day-grid-container,.fc-scroller,.fc-time-grid-container{overflow:visible!important;height:auto!important}.fc-row{border:0!important;margin:0!important}} \ No newline at end of file diff --git a/htdocs/public/high/plugins/fullcalendar/main.min.js b/htdocs/public/high/plugins/fullcalendar/main.min.js deleted file mode 100644 index 6b72fff6..00000000 --- a/htdocs/public/high/plugins/fullcalendar/main.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/*! -FullCalendar Core Package v4.3.1 -Docs & License: https://fullcalendar.io/ -(c) 2019 Adam Shaw -*/ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self).FullCalendar={})}(this,function(e){"use strict";var t={className:!0,colSpan:!0,rowSpan:!0},n={"
");document.body.appendChild(e);var t=e.firstChild.getBoundingClientRect().left>e.getBoundingClientRect().left;return c(e),t}()),S}function D(e){return e=Math.max(0,e),e=Math.round(e)}function T(e,t){void 0===t&&(t=!1);var n=window.getComputedStyle(e),r=parseInt(n.borderLeftWidth,10)||0,i=parseInt(n.borderRightWidth,10)||0,o=parseInt(n.borderTopWidth,10)||0,a=parseInt(n.borderBottomWidth,10)||0,s=D(e.offsetWidth-e.clientWidth-r-i),u={borderLeft:r,borderRight:i,borderTop:o,borderBottom:a,scrollbarBottom:D(e.offsetHeight-e.clientHeight-o-a),scrollbarLeft:0,scrollbarRight:0};return b()&&"rtl"===n.direction?u.scrollbarLeft=s:u.scrollbarRight=s,t&&(u.paddingLeft=parseInt(n.paddingLeft,10)||0,u.paddingRight=parseInt(n.paddingRight,10)||0,u.paddingTop=parseInt(n.paddingTop,10)||0,u.paddingBottom=parseInt(n.paddingBottom,10)||0),u}function w(e,t){void 0===t&&(t=!1);var n=R(e),r=T(e,t),i={left:n.left+r.borderLeft+r.scrollbarLeft,right:n.right-r.borderRight-r.scrollbarRight,top:n.top+r.borderTop,bottom:n.bottom-r.borderBottom-r.scrollbarBottom};return t&&(i.left+=r.paddingLeft,i.right-=r.paddingRight,i.top+=r.paddingTop,i.bottom-=r.paddingBottom),i}function R(e){var t=e.getBoundingClientRect();return{left:t.left+window.pageXOffset,top:t.top+window.pageYOffset,right:t.right+window.pageXOffset,bottom:t.bottom+window.pageYOffset}}function I(e){return e.getBoundingClientRect().height+C(e)}function C(e){var t=window.getComputedStyle(e);return parseInt(t.marginTop,10)+parseInt(t.marginBottom,10)}function M(e){for(var t=[];e instanceof HTMLElement;){var n=window.getComputedStyle(e);if("fixed"===n.position)break;/(auto|scroll)/.test(n.overflow+n.overflowY+n.overflowX)&&t.push(e),e=e.parentNode}return t}function k(e){e.preventDefault()}function O(e,t,n,r){function i(e){var t=p(e.target,n);t&&r.call(t,e,t)}return e.addEventListener(t,i),function(){e.removeEventListener(t,i)}}var _=["webkitTransitionEnd","otransitionend","oTransitionEnd","msTransitionEnd","transitionend"];var P=["sun","mon","tue","wed","thu","fri","sat"];function x(e,t){var n=Z(e);return n[2]+=t,j(n)}function H(e,t){var n=Z(e);return n[6]+=t,j(n)}function N(e,t){return(t.valueOf()-e.valueOf())/864e5}function z(e,t){var n=B(e),r=B(t);return{years:0,months:0,days:Math.round(N(n,r)),milliseconds:t.valueOf()-r.valueOf()-(e.valueOf()-n.valueOf())}}function U(e,t){var n=L(e,t);return null!==n&&n%7==0?n/7:null}function L(e,t){return q(e)===q(t)?Math.round(N(e,t)):null}function B(e){return j([e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()])}function V(e,t,n,r){var i=j([t,0,1+A(t,n,r)]),o=B(e),a=Math.round(N(i,o));return Math.floor(a/7)+1}function A(e,t,n){var r=7+t-n;return-((7+j([e,0,r]).getUTCDay()-t)%7)+r-1}function F(e){return[e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()]}function W(e){return new Date(e[0],e[1]||0,null==e[2]?1:e[2],e[3]||0,e[4]||0,e[5]||0)}function Z(e){return[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds()]}function j(e){return 1===e.length&&(e=e.concat([0])),new Date(Date.UTC.apply(Date,e))}function Y(e){return!isNaN(e.valueOf())}function q(e){return 1e3*e.getUTCHours()*60*60+1e3*e.getUTCMinutes()*60+1e3*e.getUTCSeconds()+e.getUTCMilliseconds()}var G=["years","months","days","milliseconds"],X=/^(-?)(?:(\d+)\.)?(\d+):(\d\d)(?::(\d\d)(?:\.(\d\d\d))?)?/;function J(e,t){var n;return"string"==typeof e?function(e){var t=X.exec(e);if(t){var n=t[1]?-1:1;return{years:0,months:0,days:n*(t[2]?parseInt(t[2],10):0),milliseconds:n*(60*(t[3]?parseInt(t[3],10):0)*60*1e3+60*(t[4]?parseInt(t[4],10):0)*1e3+1e3*(t[5]?parseInt(t[5],10):0)+(t[6]?parseInt(t[6],10):0))}}return null}(e):"object"==typeof e&&e?K(e):"number"==typeof e?K(((n={})[t||"milliseconds"]=e,n)):null}function K(e){return{years:e.years||e.year||0,months:e.months||e.month||0,days:(e.days||e.day||0)+7*Q(e),milliseconds:60*(e.hours||e.hour||0)*60*1e3+60*(e.minutes||e.minute||0)*1e3+1e3*(e.seconds||e.second||0)+(e.milliseconds||e.millisecond||e.ms||0)}}function Q(e){return e.weeks||e.week||0}function $(e,t){return e.years===t.years&&e.months===t.months&&e.days===t.days&&e.milliseconds===t.milliseconds}function ee(e){return te(e)/864e5}function te(e){return 31536e6*e.years+2592e6*e.months+864e5*e.days+e.milliseconds}function ne(e,t){var n=e.milliseconds;if(n){if(n%1e3!=0)return{unit:"millisecond",value:n};if(n%6e4!=0)return{unit:"second",value:n/1e3};if(n%36e5!=0)return{unit:"minute",value:n/6e4};if(n)return{unit:"hour",value:n/36e5}}return e.days?t||e.days%7!=0?{unit:"day",value:e.days}:{unit:"week",value:e.days/7}:e.months?{unit:"month",value:e.months}:e.years?{unit:"year",value:e.years}:{unit:"millisecond",value:0}}function re(e){e.forEach(function(e){e.style.height=""})}function ie(e){var t,n,r=[],i=[];for("string"==typeof e?i=e.split(/\s*,\s*/):"function"==typeof e?i=[e]:Array.isArray(e)&&(i=e),t=0;t=te(t)&&(r=x(r,1))}return e.start&&(n=B(e.start),r&&r<=n&&(r=x(n,1))),{start:n,end:r}}function ye(e,t,n,r){return"year"===r?J(n.diffWholeYears(e,t),"year"):"month"===r?J(n.diffWholeMonths(e,t),"month"):z(e,t)}var me=function(e,t){return(me=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function Ee(e,t){function n(){this.constructor=e}me(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var Se=function(){return(Se=Object.assign||function(e){for(var t,n=1,r=arguments.length;n=0;o--)if("object"==typeof(a=e[o][r])&&a)i.unshift(a);else if(void 0!==a){u[r]=a;break}i.length&&(u[r]=Te(i))}for(n=e.length-1;n>=0;n--)for(r in s=e[n])r in u||(u[r]=s[r]);return u}function we(e,t){var n={};for(var r in e)t(e[r],r)&&(n[r]=e[r]);return n}function Re(e,t){var n={};for(var r in e)n[r]=t(e[r],r);return n}function Ie(e){for(var t={},n=0,r=e;no&&i.push({start:o,end:r.start}),r.end>o&&(o=r.end);return ot.start)&&(null===e.start||null===t.end||e.start=e.start)&&(null===e.end||null!==t.end&&t.end<=e.end)}function Ze(e,t){return(null===e.start||t>=e.start)&&(null===e.end||t1)||"numeric"!==r.year&&"2-digit"!==r.year||"numeric"!==r.month&&"2-digit"!==r.month||"numeric"!==r.day&&"2-digit"!==r.day||(a=1);var s=this.format(e,n),u=this.format(t,n);if(s===u)return s;var l=nt(function(e,t){var n={};for(var r in e)r in Xe&&!(Xe[r]<=t)||(n[r]=e[r]);return n}(r,a),i,n),c=l(e),d=l(t),f=function(e,t,n,r){var i=0;for(;i/g,">").replace(/'/g,"'").replace(/"/g,""").replace(/\n/g,"
")}function _t(e){var t=[];for(var n in e){var r=e[n];null!=r&&""!==r&&t.push(n+":"+r)}return t.join(";")}function Pt(e){return Array.isArray(e)?e:"string"==typeof e?e.split(/\s+/):[]}var xt={editable:Boolean,startEditable:Boolean,durationEditable:Boolean,constraint:null,overlap:null,allow:null,className:Pt,classNames:Pt,color:String,backgroundColor:String,borderColor:String,textColor:String};function Ht(e,t,n){var r=he(e,xt,{},n),i=function(e,t){return Array.isArray(e)?ke(e,"",t,!0):"object"==typeof e&&e?ke([e],"",t,!0):null!=e?String(e):null}(r.constraint,t);return{startEditable:null!=r.startEditable?r.startEditable:r.editable,durationEditable:null!=r.durationEditable?r.durationEditable:r.editable,constraints:null!=i?[i]:[],overlap:r.overlap,allows:null!=r.allow?[r.allow]:[],backgroundColor:r.backgroundColor||r.color,borderColor:r.borderColor||r.color,textColor:r.textColor,classNames:r.classNames.concat(r.className)}}function Nt(e,t,n,r){var i={},o={};for(var a in xt){var s=e+ue(a);i[a]=t[s],o[s]=!0}if("event"===e&&(i.editable=t.editable),r)for(var a in t)o[a]||(r[a]=t[a]);return Ht(i,n)}var zt={startEditable:null,durationEditable:null,constraints:[],overlap:null,allows:[],backgroundColor:"",borderColor:"",textColor:"",classNames:[]};function Ut(e){return e.reduce(Lt,zt)}function Lt(e,t){return{startEditable:null!=t.startEditable?t.startEditable:e.startEditable,durationEditable:null!=t.durationEditable?t.durationEditable:e.durationEditable,constraints:e.constraints.concat(t.constraints),overlap:"boolean"==typeof t.overlap?t.overlap:e.overlap,allows:e.allows.concat(t.allows),backgroundColor:t.backgroundColor||e.backgroundColor,borderColor:t.borderColor||e.borderColor,textColor:t.textColor||e.textColor,classNames:e.classNames.concat(t.classNames)}}var Bt={id:String,groupId:String,title:String,url:String,rendering:String,extendedProps:null},Vt={start:null,date:null,end:null,allDay:null},At=0;function Ft(e,t,n,r){var i=function(e,t){var n=null;if(e){var r=t.state.eventSources[e];n=r.allDayDefault}null==n&&(n=t.opt("allDayDefault"));return n}(t,n),o={},a=function(e,t,n,r,i){for(var o=0;o'+r+"
":""+r+""}function Qt(e,t,n,r){var i,o,a=n.calendar,s=n.view,u=n.theme,l=n.dateEnv,c=[];return Ze(t.activeRange,e)?(c.push("fc-"+P[e.getUTCDay()]),s.opt("monthMode")&&l.getMonth(e)!==l.getMonth(t.currentRange.start)&&c.push("fc-other-month"),o=x(i=B(a.getNow()),1),e=o?c.push("fc-future"):(c.push("fc-today"),!0!==r&&c.push(u.getClass("today")))):c.push("fc-disabled-day"),c}function $t(e,t,n){var r=!1,i=function(){r||(r=!0,t.apply(this,arguments))},o=function(){r||(r=!0,n&&n.apply(this,arguments))},a=e(i,o);a&&"function"==typeof a.then&&a.then(i,o)}var en=function(){function e(){}return e.mixInto=function(e){this.mixIntoObj(e.prototype)},e.mixIntoObj=function(e){var t=this;Object.getOwnPropertyNames(this.prototype).forEach(function(n){e[n]||(e[n]=t.prototype[n])})},e.mixOver=function(e){var t=this;Object.getOwnPropertyNames(this.prototype).forEach(function(n){e.prototype[n]=t.prototype[n]})},e}(),tn=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Ee(t,e),t.prototype.on=function(e,t){return nn(this._handlers||(this._handlers={}),e,t),this},t.prototype.one=function(e,t){return nn(this._oneHandlers||(this._oneHandlers={}),e,t),this},t.prototype.off=function(e,t){return this._handlers&&rn(this._handlers,e,t),this._oneHandlers&&rn(this._oneHandlers,e,t),this},t.prototype.trigger=function(e){for(var t=[],n=1;n=n[t]&&e=n[t]&&e0},e.prototype.canScrollHorizontally=function(){return this.getMaxScrollLeft()>0},e.prototype.canScrollUp=function(){return this.getScrollTop()>0},e.prototype.canScrollDown=function(){return this.getScrollTop()0},e.prototype.canScrollRight=function(){return this.getScrollLeft()=200&&a.status<400)try{var e=JSON.parse(a.responseText);r(e,a)}catch(e){i("Failure parsing JSON",a)}else i("Request failed",a)},a.onerror=function(){i("Request failed",a)},a.send(o)}function Sn(e){var t=[];for(var n in e)t.push(encodeURIComponent(n)+"="+encodeURIComponent(e[n]));return t.join("&")}var bn=vn({eventSourceDefs:[{parseMeta:function(e){if("string"==typeof e)e={url:e};else if(!e||"object"!=typeof e||!e.url)return null;return{url:e.url,method:(e.method||"GET").toUpperCase(),extraParams:e.extraParams,startParam:e.startParam,endParam:e.endParam,timeZoneParam:e.timeZoneParam}},fetch:function(e,t,n){var r=e.eventSource.meta,i=function(e,t,n){var r,i,o,a,s=n.dateEnv,u={};null==(r=e.startParam)&&(r=n.opt("startParam"));null==(i=e.endParam)&&(i=n.opt("endParam"));null==(o=e.timeZoneParam)&&(o=n.opt("timeZoneParam"));a="function"==typeof e.extraParams?e.extraParams():e.extraParams||{};Se(u,a),u[r]=s.formatIso(t.start),u[i]=s.formatIso(t.end),"local"!==s.timeZone&&(u[o]=s.timeZone);return u}(r,e.range,e.calendar);En(r.method,r.url,i,function(e,n){t({rawEvents:e,xhr:n})},function(e,t){n({message:e,xhr:t})})}}]});var Dn=vn({recurringTypes:[{parse:function(e,t,n){var r,i,o=n.createMarker.bind(n),a=he(e,{daysOfWeek:null,startTime:J,endTime:J,startRecur:o,endRecur:o},{},t),s=!1;for(var u in a)if(null!=a[u]){s=!0;break}if(s){var l=null;return"duration"in t&&(l=J(t.duration),delete t.duration),!l&&a.startTime&&a.endTime&&(r=a.endTime,i=a.startTime,l={years:r.years-i.years,months:r.months-i.months,days:r.days-i.days,milliseconds:r.milliseconds-i.milliseconds}),{allDayGuess:Boolean(!a.startTime&&!a.endTime),duration:l,typeData:a}}return null},expand:function(e,t,n){var r=Ve(t,{start:e.startRecur,end:e.endRecur});return r?function(e,t,n,r){var i=e?Ie(e):null,o=B(n.start),a=n.end,s=[];for(;o0?e[0].code:"en",n=window.FullCalendarLocalesAll||[],r=window.FullCalendarLocales||{},i=n.concat(Ce(r),e),o={en:kn},a=0,s=i;a0;i--){var o=r.slice(0,i).join("-");if(t[o])return t[o]}return null}(n,t)||kn;return Pn(e,n,r)}(e,t):Pn(e.code,[e.code],e)}function Pn(e,t,n){var r=Te([kn,n],["buttonText"]);delete r.code;var i=r.week;return delete r.week,{codeArg:e,codes:t,week:i,simpleNumberFormat:new Intl.NumberFormat(e),options:r}}var xn=function(){function e(e){this.overrides=Se({},e),this.dynamicOverrides={},this.compute()}return e.prototype.mutate=function(e,t,n){var r=n?this.dynamicOverrides:this.overrides;Se(r,e);for(var i=0,o=t;i=1?Math.min(i,o):i}(e,this.weekDow,this.weekDoy)},e.prototype.format=function(e,t,n){return void 0===n&&(n={}),t.format({marker:e,timeZoneOffset:null!=n.forcedTzo?n.forcedTzo:this.offsetForMarker(e)},this)},e.prototype.formatRange=function(e,t,n,r){return void 0===r&&(r={}),r.isEndExclusive&&(t=H(t,-1)),n.formatRange({marker:e,timeZoneOffset:null!=r.forcedStartTzo?r.forcedStartTzo:this.offsetForMarker(e)},{marker:t,timeZoneOffset:null!=r.forcedEndTzo?r.forcedEndTzo:this.offsetForMarker(t)},this)},e.prototype.formatIso=function(e,t){void 0===t&&(t={});var n=null;return t.omitTimeZoneOffset||(n=null!=t.forcedTzo?t.forcedTzo:this.offsetForMarker(e)),function(e,t,n){void 0===n&&(n=!1);var r=e.toISOString();return r=r.replace(".000",""),n&&(r=r.replace("T00:00:00Z","")),r.length>10&&(null==t?r=r.replace("Z",""):0!==t&&(r=r.replace("Z",at(t,!0)))),r}(e,n,t.omitTime)},e.prototype.timestampToMarker=function(e){return"local"===this.timeZone?j(F(new Date(e))):"UTC"!==this.timeZone&&this.namedTimeZoneImpl?j(this.namedTimeZoneImpl.timestampToArray(e)):new Date(e)},e.prototype.offsetForMarker=function(e){return"local"===this.timeZone?-W(Z(e)).getTimezoneOffset():"UTC"===this.timeZone?0:this.namedTimeZoneImpl?this.namedTimeZoneImpl.offsetForArray(Z(e)):null},e.prototype.toDate=function(e,t){return"local"===this.timeZone?W(Z(e)):"UTC"===this.timeZone?new Date(e.valueOf()):this.namedTimeZoneImpl?new Date(e.valueOf()-1e3*this.namedTimeZoneImpl.offsetForArray(Z(e))*60):new Date(e.valueOf()-(t||0))},e}(),Vn={id:String,allDayDefault:Boolean,eventDataTransform:Function,success:Function,failure:Function},An=0;function Fn(e,t){return!t.pluginSystem.hooks.eventSourceDefs[e.sourceDefId].ignoreRange}function Wn(e,t){for(var n=t.pluginSystem.hooks.eventSourceDefs,r=n.length-1;r>=0;r--){var i=n[r].parseMeta(e);if(i){var o=Zn("object"==typeof e?e:{},i,r,t);return o._raw=e,o}}return null}function Zn(e,t,n,r){var i={},o=he(e,Vn,{},i),a={},s=Ht(i,r,a);return o.isFetching=!1,o.latestFetchId="",o.fetchRange=null,o.publicId=String(e.id||""),o.sourceId=String(An++),o.sourceDefId=n,o.meta=t,o.ui=s,o.extendedProps=a,o}function jn(e,t,n,r){switch(t.type){case"ADD_EVENT_SOURCES":return function(e,t,n,r){for(var i={},o=0,a=t;oe.fetchRange.end:!e.latestFetchId}(e,t,n)}),t,n)}function Gn(e,t,n,r){var i={};for(var o in e){var a=e[o];t[o]?i[o]=Xn(a,n,r):i[o]=a}return i}function Xn(e,t,n){var r=n.pluginSystem.hooks.eventSourceDefs[e.sourceDefId],i=String(Yn++);return r.fetch({eventSource:e,calendar:n,range:t},function(r){var o,a,s=r.rawEvents,u=n.opt("eventSourceSuccess");e.success&&(a=e.success(s,r.xhr)),u&&(o=u(s,r.xhr)),s=a||o||s,n.dispatch({type:"RECEIVE_EVENTS",sourceId:e.sourceId,fetchId:i,fetchRange:t,rawEvents:s})},function(r){var o=n.opt("eventSourceFailure");console.warn(r.message,r),e.failure&&e.failure(r),o&&o(r),n.dispatch({type:"RECEIVE_EVENT_ERROR",sourceId:e.sourceId,fetchId:i,fetchRange:t,error:r})}),Se({},e,{isFetching:!0,latestFetchId:i})}var Jn=function(){function e(e,t){this.viewSpec=e,this.options=e.options,this.dateEnv=t.dateEnv,this.calendar=t,this.initHiddenDays()}return e.prototype.buildPrev=function(e,t){var n=this.dateEnv,r=n.subtract(n.startOf(t,e.currentRangeUnit),e.dateIncrement);return this.build(r,-1)},e.prototype.buildNext=function(e,t){var n=this.dateEnv,r=n.add(n.startOf(t,e.currentRangeUnit),e.dateIncrement);return this.build(r,1)},e.prototype.build=function(e,t,n){var r;void 0===n&&(n=!1);var i,o,a,s,u,l,c,d,f;return r=this.buildValidRange(),r=this.trimHiddenDays(r),n&&(d=e,e=null!=(f=r).start&&d=f.end?new Date(f.end.valueOf()-1):d),a=this.buildCurrentRangeInfo(e,t),s=/^(year|month|week|day)$/.test(a.unit),u=this.buildRenderRange(this.trimHiddenDays(a.range),a.unit,s),l=u=this.trimHiddenDays(u),this.options.showNonCurrentDates||(l=Ve(l,a.range)),i=J(this.options.minTime),o=J(this.options.maxTime),l=Ve(l=this.adjustActiveRange(l,i,o),r),c=Fe(a.range,r),{validRange:r,currentRange:a.range,currentRangeUnit:a.unit,isRangeAllDay:s,activeRange:l,renderRange:u,minTime:i,maxTime:o,isValid:c,dateIncrement:this.buildDateIncrement(a.duration)}},e.prototype.buildValidRange=function(){return this.getRangeOption("validRange",this.calendar.getNow())||{start:null,end:null}},e.prototype.buildCurrentRangeInfo=function(e,t){var n,r=this.viewSpec,i=this.dateEnv,o=null,a=null,s=null;return r.duration?(o=r.duration,a=r.durationUnit,s=this.buildRangeFromDuration(e,t,o,a)):(n=this.options.dayCount)?(a="day",s=this.buildRangeFromDayCount(e,t,n)):(s=this.buildCustomVisibleRange(e))?a=i.greatestWholeUnit(s.start,s.end).unit:(a=ne(o=this.getFallbackDuration()).unit,s=this.buildRangeFromDuration(e,t,o,a)),{duration:o,unit:a,range:s}},e.prototype.getFallbackDuration=function(){return J({day:1})},e.prototype.adjustActiveRange=function(e,t,n){var r=this.dateEnv,i=e.start,o=e.end;return this.viewSpec.class.prototype.usesMinMaxTime&&(ee(t)<0&&(i=B(i),i=r.add(i,t)),ee(n)>1&&(o=x(o=B(o),-1),o=r.add(o,n))),{start:i,end:o}},e.prototype.buildRangeFromDuration=function(e,t,n,r){var i,o,a,s,u,l=this.dateEnv,c=this.options.dateAlignment;function d(){a=l.startOf(e,c),s=l.add(a,n),u={start:a,end:s}}return c||((i=this.options.dateIncrement)?(o=J(i),c=te(o) ")),h=!1):((r=d[e])?(c=function(e){r.click&&r.click.call(E,e)},(v=o.getCustomButtonIconClass(r))||(v=o.getIconClass(e))||(g=r.text)):(s=l[e])?(n.viewsWithButtons.push(e),c=function(){a.changeView(e)},(g=s.buttonTextOverride)||(v=o.getIconClass(e))||(g=s.buttonTextDefault)):a[e]&&(c=function(){a[e]()},(g=f[e])||(v=o.getIconClass(e))||(g=p[e])),c&&(m=["fc-"+e+"-button",o.getClass("button")],g?(y=Ot(g),S=""):v&&(y="",S=' aria-label="'+e+'"'),(E=i('")).addEventListener("click",c),u.push(E)))}),u.length>1){r=document.createElement("div");var v=o.getClass("buttonGroup");h&&v&&r.classList.add(v),s(r,u),c.appendChild(r)}else s(c,u)}),c},t.prototype.updateToday=function(e){this.toggleButtonEnabled("today",e)},t.prototype.updatePrev=function(e){this.toggleButtonEnabled("prev",e)},t.prototype.updateNext=function(e){this.toggleButtonEnabled("next",e)},t.prototype.updateTitle=function(e){v(this.el,"h2").forEach(function(t){t.innerText=e})},t.prototype.updateActiveButton=function(e){var t=this.theme.getClass("buttonActive");v(this.el,"button").forEach(function(n){e&&n.classList.contains("fc-"+e+"-button")?n.classList.add(t):n.classList.remove(t)})},t.prototype.toggleButtonEnabled=function(e,t){v(this.el,".fc-"+e+"-button").forEach(function(e){e.disabled=!t})},t}(fn),hr=function(e){function t(t,n){var i=e.call(this,t)||this;i._renderToolbars=qt(i.renderToolbars),i.buildViewPropTransformers=Ye(gr),i.el=n,u(n,i.contentEl=r("div",{className:"fc-view-container"}));for(var o=i.calendar,a=0,s=o.pluginSystem.hooks.viewContainerModifiers;a1?{year:"numeric",month:"short",day:"numeric"}:{year:"numeric",month:"long",day:"numeric"}}(e),t.titleRangeSeparator),{isEndExclusive:e.isRangeAllDay})}function gr(e){return e.map(function(e){return new e})}var yr=function(){function e(e){this.component=e.component}return e.prototype.destroy=function(){},e}();var mr={},Er=function(e){function t(t){var n=e.call(this,t)||this;n.handleSegClick=function(e,t){var r=n.component,i=ht(t);if(i&&r.isValidSegDownEl(e.target)){var o=p(e.target,".fc-has-url"),a=o?o.querySelector("a[href]").href:"";r.publiclyTrigger("eventClick",[{el:t,event:new ct(r.calendar,i.eventRange.def,i.eventRange.instance),jsEvent:e,view:r.view}]),a&&!e.defaultPrevented&&(window.location.href=a)}};var r=t.component;return n.destroy=O(r.el,"click",r.fgSegSelector+","+r.bgSegSelector,n.handleSegClick),n}return Ee(t,e),t}(yr),Sr=function(e){function t(t){var n=e.call(this,t)||this;n.handleEventElRemove=function(e){e===n.currentSegEl&&n.handleSegLeave(null,n.currentSegEl)},n.handleSegEnter=function(e,t){ht(t)&&(t.classList.add("fc-allow-mouse-resize"),n.currentSegEl=t,n.triggerEvent("eventMouseEnter",e,t))},n.handleSegLeave=function(e,t){n.currentSegEl&&(t.classList.remove("fc-allow-mouse-resize"),n.currentSegEl=null,n.triggerEvent("eventMouseLeave",e,t))};var r,i,o,a,s,u=t.component;return n.removeHoverListeners=(r=u.el,i=u.fgSegSelector+","+u.bgSegSelector,o=n.handleSegEnter,a=n.handleSegLeave,O(r,"mouseover",i,function(e,t){if(t!==s){s=t,o(e,t);var n=function(e){s=null,a(e,t),t.removeEventListener("mouseleave",n)};t.addEventListener("mouseleave",n)}})),u.calendar.on("eventElRemove",n.handleEventElRemove),n}return Ee(t,e),t.prototype.destroy=function(){this.removeHoverListeners(),this.component.calendar.off("eventElRemove",this.handleEventElRemove)},t.prototype.triggerEvent=function(e,t,n){var r=this.component,i=ht(n);t&&!r.isValidSegDownEl(t.target)||r.publiclyTrigger(e,[{el:n,event:new ct(this.component.calendar,i.eventRange.def,i.eventRange.instance),jsEvent:t,view:r.view}])},t}(yr),br=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Ee(t,e),t}(cn);br.prototype.classes={widget:"fc-unthemed",widgetHeader:"fc-widget-header",widgetContent:"fc-widget-content",buttonGroup:"fc-button-group",button:"fc-button fc-button-primary",buttonActive:"fc-button-active",popoverHeader:"fc-widget-header",popoverContent:"fc-widget-content",headerRow:"fc-widget-header",dayRow:"fc-widget-content",listView:"fc-widget-content"},br.prototype.baseIconClass="fc-icon",br.prototype.iconClasses={close:"fc-icon-x",prev:"fc-icon-chevron-left",next:"fc-icon-chevron-right",prevYear:"fc-icon-chevrons-left",nextYear:"fc-icon-chevrons-right"},br.prototype.iconOverrideOption="buttonIcons",br.prototype.iconOverrideCustomButtonOption="icon",br.prototype.iconOverridePrefix="fc-icon-";var Dr=function(){function e(e,t){var n=this;this.parseRawLocales=Ye(On),this.buildLocale=Ye(_n),this.buildDateEnv=Ye(Tr),this.buildTheme=Ye(wr),this.buildEventUiSingleBase=Ye(this._buildEventUiSingleBase),this.buildSelectionConfig=Ye(this._buildSelectionConfig),this.buildEventUiBySource=qe(Ir,Me),this.buildEventUiBases=Ye(Cr),this.interactionsStore={},this.actionQueue=[],this.isReducing=!1,this.needsRerender=!1,this.needsFullRerender=!1,this.isRendering=!1,this.renderingPauseDepth=0,this.buildDelayedRerender=Ye(Rr),this.afterSizingTriggers={},this.isViewUpdated=!1,this.isDatesUpdated=!1,this.isEventsUpdated=!1,this.el=e,this.optionsManager=new xn(t||{}),this.pluginSystem=new gn,this.addPluginInputs(this.optionsManager.computed.plugins||[]),this.handleOptions(this.optionsManager.computed),this.publiclyTrigger("_init"),this.hydrate(),this.calendarInteractions=this.pluginSystem.hooks.calendarInteractions.map(function(e){return new e(n)})}return e.prototype.addPluginInputs=function(e){for(var t=function(e){for(var t=[],n=0,r=e;n"},e.prototype.detachSegs=function(e,t){var n=this.containerElsByType[e];n&&(n.forEach(c),delete this.containerElsByType[e])},e.prototype.computeSizes=function(e){for(var t in this.segsByType)(e||this.dirtySizeFlags[t])&&this.computeSegSizes(this.segsByType[t])},e.prototype.assignSizes=function(e){for(var t in this.segsByType)(e||this.dirtySizeFlags[t])&&this.assignSegSizes(this.segsByType[t]);this.dirtySizeFlags={}},e.prototype.computeSegSizes=function(e){},e.prototype.assignSegSizes=function(e){},e}(),Pr=function(e){this.timeZoneName=e},xr=function(){function e(e){this.emitter=new tn}return e.prototype.destroy=function(){},e.prototype.setMirrorIsVisible=function(e){},e.prototype.setMirrorNeedsRevert=function(e){},e.prototype.setAutoScrollEnabled=function(e){},e}();function Hr(e){var t=_n(e.locale||"en",On([]).map);return e=Se({timeZone:Rn.timeZone,calendarSystem:"gregory"},e,{locale:t}),new Bn(e)}var Nr={startTime:J,duration:J,create:Boolean,sourceId:String},zr={create:!0};function Ur(e,t){return!e||t>10?{weekday:"short"}:t>1?{weekday:"short",month:"numeric",day:"numeric",omitCommas:!0}:{weekday:"long"}}function Lr(e,t,n,r,i,o,a,s){var u,l=o.view,c=o.dateEnv,d=o.theme,f=o.options,p=Ze(t.activeRange,e),h=["fc-day-header",d.getClass("widgetHeader")];return u="function"==typeof f.columnHeaderHtml?f.columnHeaderHtml(c.toDate(e)):"function"==typeof f.columnHeaderText?Ot(f.columnHeaderText(c.toDate(e))):Ot(c.format(e,i)),n?h=h.concat(Qt(e,t,o,!0)):h.push("fc-"+P[e.getUTCDay()]),'1?' colspan="'+a+'"':"")+(s?" "+s:"")+">"+(p?Kt(l,{date:e,forceOff:!n||1===r},u):u)+""}var Br=function(e){function t(t,n){var r=e.call(this,t)||this;return n.innerHTML="",n.appendChild(r.el=i('
')),r.thead=r.el.querySelector("thead"),r}return Ee(t,e),t.prototype.destroy=function(){c(this.el)},t.prototype.render=function(e){var t=e.dates,n=e.datesRepDistinctDays,r=[];e.renderIntroHtml&&r.push(e.renderIntroHtml());for(var i=ot(this.opt("columnHeaderFormat")||Ur(n,t.length)),o=0,a=t;o"+r.join("")+""},t}(fn),Vr=function(){function e(e,t){for(var n=e.start,r=e.end,i=[],o=[],a=-1;n=t.length?t[t.length-1]+1:t[n]},e}(),Ar=function(){function e(e,t){var n,r,i,o=e.dates;if(t){for(r=o[0].getUTCDay(),n=1;n1},e.isPropsEqual=Me,e.isPropsValid=Rt,e.isSingleDay=function(e){return 0===e.years&&0===e.months&&1===e.days&&0===e.milliseconds},e.isValidDate=Y,e.listenBySelector=O,e.mapHash=Re,e.matchCellWidths=function(e){var t=0;return e.forEach(function(e){var n=e.firstChild;if(n instanceof HTMLElement){var r=n.getBoundingClientRect().width;r>t&&(t=r)}}),t++,e.forEach(function(e){e.style.width=t+"px"}),t},e.memoize=Ye,e.memoizeOutput=qe,e.memoizeRendering=qt,e.mergeEventStores=Ne,e.multiplyDuration=function(e,t){return{years:e.years*t,months:e.months*t,days:e.days*t,milliseconds:e.milliseconds*t}},e.padStart=le,e.parseBusinessHours=Yt,e.parseDragMeta=function(e){var t={},n=he(e,Nr,zr,t);return n.leftoverProps=t,n},e.parseEventDef=Wt,e.parseFieldSpecs=ie,e.parseMarker=Ln,e.pointInsideRect=function(e,t){return e.left>=t.left&&e.left=t.top&&e.topel día", - eventLimitText: "más", - noEventsMessage: "No hay eventos para mostrar" - }; - - var _m19 = { - code: "es", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Ant", - next: "Sig", - today: "Hoy", - month: "Mes", - week: "Semana", - day: "Día", - list: "Agenda" - }, - weekLabel: "Sm", - allDayHtml: "Todo
el día", - eventLimitText: "más", - noEventsMessage: "No hay eventos para mostrar" - }; - - var _m20 = { - code: "et", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Eelnev", - next: "Järgnev", - today: "Täna", - month: "Kuu", - week: "Nädal", - day: "Päev", - list: "Päevakord" - }, - weekLabel: "näd", - allDayText: "Kogu päev", - eventLimitText: function (n) { - return "+ veel " + n; - }, - noEventsMessage: "Kuvamiseks puuduvad sündmused" - }; - - var _m21 = { - code: "eu", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Aur", - next: "Hur", - today: "Gaur", - month: "Hilabetea", - week: "Astea", - day: "Eguna", - list: "Agenda" - }, - weekLabel: "As", - allDayHtml: "Egun
osoa", - eventLimitText: "gehiago", - noEventsMessage: "Ez dago ekitaldirik erakusteko" - }; - - var _m22 = { - code: "fa", - week: { - dow: 6, - doy: 12 // The week that contains Jan 1st is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "قبلی", - next: "بعدی", - today: "امروز", - month: "ماه", - week: "هفته", - day: "روز", - list: "برنامه" - }, - weekLabel: "هف", - allDayText: "تمام روز", - eventLimitText: function (n) { - return "بیش از " + n; - }, - noEventsMessage: "هیچ رویدادی به نمایش" - }; - - var _m23 = { - code: "fi", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Edellinen", - next: "Seuraava", - today: "Tänään", - month: "Kuukausi", - week: "Viikko", - day: "Päivä", - list: "Tapahtumat" - }, - weekLabel: "Vk", - allDayText: "Koko päivä", - eventLimitText: "lisää", - noEventsMessage: "Ei näytettäviä tapahtumia" - }; - - var _m24 = { - code: "fr", - buttonText: { - prev: "Précédent", - next: "Suivant", - today: "Aujourd'hui", - year: "Année", - month: "Mois", - week: "Semaine", - day: "Jour", - list: "Mon planning" - }, - weekLabel: "Sem.", - allDayHtml: "Toute la
journée", - eventLimitText: "en plus", - noEventsMessage: "Aucun événement à afficher" - }; - - var _m25 = { - code: "fr-ch", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Précédent", - next: "Suivant", - today: "Courant", - year: "Année", - month: "Mois", - week: "Semaine", - day: "Jour", - list: "Mon planning" - }, - weekLabel: "Sm", - allDayHtml: "Toute la
journée", - eventLimitText: "en plus", - noEventsMessage: "Aucun événement à afficher" - }; - - var _m26 = { - code: "fr", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Précédent", - next: "Suivant", - today: "Aujourd'hui", - year: "Année", - month: "Mois", - week: "Semaine", - day: "Jour", - list: "Mon planning" - }, - weekLabel: "Sem.", - allDayHtml: "Toute la
journée", - eventLimitText: "en plus", - noEventsMessage: "Aucun événement à afficher" - }; - - var _m27 = { - code: "gl", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Ant", - next: "Seg", - today: "Hoxe", - month: "Mes", - week: "Semana", - day: "Día", - list: "Axenda" - }, - weekLabel: "Sm", - allDayHtml: "Todo
o día", - eventLimitText: "máis", - noEventsMessage: "Non hai eventos para amosar" - }; - - var _m28 = { - code: "he", - dir: 'rtl', - buttonText: { - prev: "הקודם", - next: "הבא", - today: "היום", - month: "חודש", - week: "שבוע", - day: "יום", - list: "סדר יום" - }, - allDayText: "כל היום", - eventLimitText: "אחר", - noEventsMessage: "אין אירועים להצגה", - weekLabel: "שבוע" - }; - - var _m29 = { - code: "hi", - week: { - dow: 0, - doy: 6 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "पिछला", - next: "अगला", - today: "आज", - month: "महीना", - week: "सप्ताह", - day: "दिन", - list: "कार्यसूची" - }, - weekLabel: "हफ्ता", - allDayText: "सभी दिन", - eventLimitText: function (n) { - return "+अधिक " + n; - }, - noEventsMessage: "कोई घटनाओं को प्रदर्शित करने के लिए" - }; - - var _m30 = { - code: "hr", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Prijašnji", - next: "Sljedeći", - today: "Danas", - month: "Mjesec", - week: "Tjedan", - day: "Dan", - list: "Raspored" - }, - weekLabel: "Tje", - allDayText: "Cijeli dan", - eventLimitText: function (n) { - return "+ još " + n; - }, - noEventsMessage: "Nema događaja za prikaz" - }; - - var _m31 = { - code: "hu", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "vissza", - next: "előre", - today: "ma", - month: "Hónap", - week: "Hét", - day: "Nap", - list: "Napló" - }, - weekLabel: "Hét", - allDayText: "Egész nap", - eventLimitText: "további", - noEventsMessage: "Nincs megjeleníthető esemény" - }; - - var _m32 = { - code: "id", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "mundur", - next: "maju", - today: "hari ini", - month: "Bulan", - week: "Minggu", - day: "Hari", - list: "Agenda" - }, - weekLabel: "Mg", - allDayHtml: "Sehari
penuh", - eventLimitText: "lebih", - noEventsMessage: "Tidak ada acara untuk ditampilkan" - }; - - var _m33 = { - code: "is", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Fyrri", - next: "Næsti", - today: "Í dag", - month: "Mánuður", - week: "Vika", - day: "Dagur", - list: "Dagskrá" - }, - weekLabel: "Vika", - allDayHtml: "Allan
daginn", - eventLimitText: "meira", - noEventsMessage: "Engir viðburðir til að sýna" - }; - - var _m34 = { - code: "it", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Prec", - next: "Succ", - today: "Oggi", - month: "Mese", - week: "Settimana", - day: "Giorno", - list: "Agenda" - }, - weekLabel: "Sm", - allDayHtml: "Tutto il
giorno", - eventLimitText: function (n) { - return "+altri " + n; - }, - noEventsMessage: "Non ci sono eventi da visualizzare" - }; - - var _m35 = { - code: "ja", - buttonText: { - prev: "前", - next: "次", - today: "今日", - month: "月", - week: "週", - day: "日", - list: "予定リスト" - }, - weekLabel: "週", - allDayText: "終日", - eventLimitText: function (n) { - return "他 " + n + " 件"; - }, - noEventsMessage: "表示する予定はありません" - }; - - var _m36 = { - code: "ka", - week: { - dow: 1, - doy: 7 - }, - buttonText: { - prev: "წინა", - next: "შემდეგი", - today: "დღეს", - month: "თვე", - week: "კვირა", - day: "დღე", - list: "დღის წესრიგი" - }, - weekLabel: "კვ", - allDayText: "მთელი დღე", - eventLimitText: function (n) { - return "+ კიდევ " + n; - }, - noEventsMessage: "ღონისძიებები არ არის" - }; - - var _m37 = { - code: "kk", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Алдыңғы", - next: "Келесі", - today: "Бүгін", - month: "Ай", - week: "Апта", - day: "Күн", - list: "Күн тәртібі" - }, - weekLabel: "Не", - allDayText: "Күні бойы", - eventLimitText: function (n) { - return "+ тағы " + n; - }, - noEventsMessage: "Көрсету үшін оқиғалар жоқ" - }; - - var _m38 = { - code: "ko", - buttonText: { - prev: "이전달", - next: "다음달", - today: "오늘", - month: "월", - week: "주", - day: "일", - list: "일정목록" - }, - weekLabel: "주", - allDayText: "종일", - eventLimitText: "개", - noEventsMessage: "일정이 없습니다" - }; - - var _m39 = { - code: "lb", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Zréck", - next: "Weider", - today: "Haut", - month: "Mount", - week: "Woch", - day: "Dag", - list: "Terminiwwersiicht" - }, - weekLabel: "W", - allDayText: "Ganzen Dag", - eventLimitText: "méi", - noEventsMessage: "Nee Evenementer ze affichéieren" - }; - - var _m40 = { - code: "lt", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Atgal", - next: "Pirmyn", - today: "Šiandien", - month: "Mėnuo", - week: "Savaitė", - day: "Diena", - list: "Darbotvarkė" - }, - weekLabel: "SAV", - allDayText: "Visą dieną", - eventLimitText: "daugiau", - noEventsMessage: "Nėra įvykių rodyti" - }; - - var _m41 = { - code: "lv", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Iepr.", - next: "Nāk.", - today: "Šodien", - month: "Mēnesis", - week: "Nedēļa", - day: "Diena", - list: "Dienas kārtība" - }, - weekLabel: "Ned.", - allDayText: "Visu dienu", - eventLimitText: function (n) { - return "+vēl " + n; - }, - noEventsMessage: "Nav notikumu" - }; - - var _m42 = { - code: "mk", - buttonText: { - prev: "претходно", - next: "следно", - today: "Денес", - month: "Месец", - week: "Недела", - day: "Ден", - list: "График" - }, - weekLabel: "Сед", - allDayText: "Цел ден", - eventLimitText: function (n) { - return "+повеќе " + n; - }, - noEventsMessage: "Нема настани за прикажување" - }; - - var _m43 = { - code: "ms", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Sebelum", - next: "Selepas", - today: "hari ini", - month: "Bulan", - week: "Minggu", - day: "Hari", - list: "Agenda" - }, - weekLabel: "Mg", - allDayText: "Sepanjang hari", - eventLimitText: function (n) { - return "masih ada " + n + " acara"; - }, - noEventsMessage: "Tiada peristiwa untuk dipaparkan" - }; - - var _m44 = { - code: "nb", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Forrige", - next: "Neste", - today: "I dag", - month: "Måned", - week: "Uke", - day: "Dag", - list: "Agenda" - }, - weekLabel: "Uke", - allDayText: "Hele dagen", - eventLimitText: "til", - noEventsMessage: "Ingen hendelser å vise" - }; - - var _m45 = { - code: "nl", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Voorgaand", - next: "Volgende", - today: "Vandaag", - year: "Jaar", - month: "Maand", - week: "Week", - day: "Dag", - list: "Agenda" - }, - allDayText: "Hele dag", - eventLimitText: "extra", - noEventsMessage: "Geen evenementen om te laten zien" - }; - - var _m46 = { - code: "nn", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Førre", - next: "Neste", - today: "I dag", - month: "Månad", - week: "Veke", - day: "Dag", - list: "Agenda" - }, - weekLabel: "Veke", - allDayText: "Heile dagen", - eventLimitText: "til", - noEventsMessage: "Ingen hendelser å vise" - }; - - var _m47 = { - code: "pl", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Poprzedni", - next: "Następny", - today: "Dziś", - month: "Miesiąc", - week: "Tydzień", - day: "Dzień", - list: "Plan dnia" - }, - weekLabel: "Tydz", - allDayText: "Cały dzień", - eventLimitText: "więcej", - noEventsMessage: "Brak wydarzeń do wyświetlenia" - }; - - var _m48 = { - code: "pt-br", - buttonText: { - prev: "Anterior", - next: "Próximo", - today: "Hoje", - month: "Mês", - week: "Semana", - day: "Dia", - list: "Compromissos" - }, - weekLabel: "Sm", - allDayText: "dia inteiro", - eventLimitText: function (n) { - return "mais +" + n; - }, - noEventsMessage: "Não há eventos para mostrar" - }; - - var _m49 = { - code: "pt", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Anterior", - next: "Seguinte", - today: "Hoje", - month: "Mês", - week: "Semana", - day: "Dia", - list: "Agenda" - }, - weekLabel: "Sem", - allDayText: "Todo o dia", - eventLimitText: "mais", - noEventsMessage: "Não há eventos para mostrar" - }; - - var _m50 = { - code: "ro", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "precedentă", - next: "următoare", - today: "Azi", - month: "Lună", - week: "Săptămână", - day: "Zi", - list: "Agendă" - }, - weekLabel: "Săpt", - allDayText: "Toată ziua", - eventLimitText: function (n) { - return "+alte " + n; - }, - noEventsMessage: "Nu există evenimente de afișat" - }; - - var _m51 = { - code: "ru", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Пред", - next: "След", - today: "Сегодня", - month: "Месяц", - week: "Неделя", - day: "День", - list: "Повестка дня" - }, - weekLabel: "Нед", - allDayText: "Весь день", - eventLimitText: function (n) { - return "+ ещё " + n; - }, - noEventsMessage: "Нет событий для отображения" - }; - - var _m52 = { - code: "sk", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Predchádzajúci", - next: "Nasledujúci", - today: "Dnes", - month: "Mesiac", - week: "Týždeň", - day: "Deň", - list: "Rozvrh" - }, - weekLabel: "Ty", - allDayText: "Celý deň", - eventLimitText: function (n) { - return "+ďalšie: " + n; - }, - noEventsMessage: "Žiadne akcie na zobrazenie" - }; - - var _m53 = { - code: "sl", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Prejšnji", - next: "Naslednji", - today: "Trenutni", - month: "Mesec", - week: "Teden", - day: "Dan", - list: "Dnevni red" - }, - weekLabel: "Teden", - allDayText: "Ves dan", - eventLimitText: "več", - noEventsMessage: "Ni dogodkov za prikaz" - }; - - var _m54 = { - code: "sq", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "mbrapa", - next: "Përpara", - today: "sot", - month: "Muaj", - week: "Javë", - day: "Ditë", - list: "Listë" - }, - weekLabel: "Ja", - allDayHtml: "Gjithë
ditën", - eventLimitText: function (n) { - return "+më tepër " + n; - }, - noEventsMessage: "Nuk ka evente për të shfaqur" - }; - - var _m55 = { - code: "sr-cyrl", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Претходна", - next: "следећи", - today: "Данас", - month: "Месец", - week: "Недеља", - day: "Дан", - list: "Планер" - }, - weekLabel: "Сед", - allDayText: "Цео дан", - eventLimitText: function (n) { - return "+ још " + n; - }, - noEventsMessage: "Нема догађаја за приказ" - }; - - var _m56 = { - code: "sr", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Prethodna", - next: "Sledeći", - today: "Danas", - month: "Mеsеc", - week: "Nеdеlja", - day: "Dan", - list: "Planеr" - }, - weekLabel: "Sed", - allDayText: "Cеo dan", - eventLimitText: function (n) { - return "+ još " + n; - }, - noEventsMessage: "Nеma događaja za prikaz" - }; - - var _m57 = { - code: "sv", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Förra", - next: "Nästa", - today: "Idag", - month: "Månad", - week: "Vecka", - day: "Dag", - list: "Program" - }, - weekLabel: "v.", - allDayText: "Heldag", - eventLimitText: "till", - noEventsMessage: "Inga händelser att visa" - }; - - var _m58 = { - code: "th", - buttonText: { - prev: "ย้อน", - next: "ถัดไป", - today: "วันนี้", - month: "เดือน", - week: "สัปดาห์", - day: "วัน", - list: "แผนงาน" - }, - allDayText: "ตลอดวัน", - eventLimitText: "เพิ่มเติม", - noEventsMessage: "ไม่มีกิจกรรมที่จะแสดง" - }; - - var _m59 = { - code: "tr", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "geri", - next: "ileri", - today: "bugün", - month: "Ay", - week: "Hafta", - day: "Gün", - list: "Ajanda" - }, - weekLabel: "Hf", - allDayText: "Tüm gün", - eventLimitText: "daha fazla", - noEventsMessage: "Gösterilecek etkinlik yok" - }; - - var _m60 = { - code: "uk", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Попередній", - next: "далі", - today: "Сьогодні", - month: "Місяць", - week: "Тиждень", - day: "День", - list: "Порядок денний" - }, - weekLabel: "Тиж", - allDayText: "Увесь день", - eventLimitText: function (n) { - return "+ще " + n + "..."; - }, - noEventsMessage: "Немає подій для відображення" - }; - - var _m61 = { - code: "vi", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Trước", - next: "Tiếp", - today: "Hôm nay", - month: "Tháng", - week: "Tuần", - day: "Ngày", - list: "Lịch biểu" - }, - weekLabel: "Tu", - allDayText: "Cả ngày", - eventLimitText: function (n) { - return "+ thêm " + n; - }, - noEventsMessage: "Không có sự kiện để hiển thị" - }; - - var _m62 = { - code: "zh-cn", - week: { - // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效 - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "上月", - next: "下月", - today: "今天", - month: "月", - week: "周", - day: "日", - list: "日程" - }, - weekLabel: "周", - allDayText: "全天", - eventLimitText: function (n) { - return "另外 " + n + " 个"; - }, - noEventsMessage: "没有事件显示" - }; - - var _m63 = { - code: "zh-tw", - buttonText: { - prev: "上月", - next: "下月", - today: "今天", - month: "月", - week: "週", - day: "天", - list: "活動列表" - }, - weekLabel: "周", - allDayText: "整天", - eventLimitText: '顯示更多', - noEventsMessage: "没有任何活動" - }; - - var _rollupPluginMultiEntry_entryPoint = [ - _m0, _m1, _m2, _m3, _m4, _m5, _m6, _m7, _m8, _m9, _m10, _m11, _m12, _m13, _m14, _m15, _m16, _m17, _m18, _m19, _m20, _m21, _m22, _m23, _m24, _m25, _m26, _m27, _m28, _m29, _m30, _m31, _m32, _m33, _m34, _m35, _m36, _m37, _m38, _m39, _m40, _m41, _m42, _m43, _m44, _m45, _m46, _m47, _m48, _m49, _m50, _m51, _m52, _m53, _m54, _m55, _m56, _m57, _m58, _m59, _m60, _m61, _m62, _m63 - ]; - - return _rollupPluginMultiEntry_entryPoint; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales-all.min.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales-all.min.js deleted file mode 100644 index 810d6dea..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales-all.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).FullCalendarLocalesAll=t()}(this,function(){"use strict";return[{code:"af",week:{dow:1,doy:4},buttonText:{prev:"Vorige",next:"Volgende",today:"Vandag",year:"Jaar",month:"Maand",week:"Week",day:"Dag",list:"Agenda"},allDayHtml:"Heeldag",eventLimitText:"Addisionele",noEventsMessage:"Daar is geen gebeurtenisse nie"},{code:"ar-dz",week:{dow:0,doy:4},dir:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekLabel:"أسبوع",allDayText:"اليوم كله",eventLimitText:"أخرى",noEventsMessage:"أي أحداث لعرض"},{code:"ar-kw",week:{dow:0,doy:12},dir:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekLabel:"أسبوع",allDayText:"اليوم كله",eventLimitText:"أخرى",noEventsMessage:"أي أحداث لعرض"},{code:"ar-ly",week:{dow:6,doy:12},dir:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekLabel:"أسبوع",allDayText:"اليوم كله",eventLimitText:"أخرى",noEventsMessage:"أي أحداث لعرض"},{code:"ar-ma",week:{dow:6,doy:12},dir:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekLabel:"أسبوع",allDayText:"اليوم كله",eventLimitText:"أخرى",noEventsMessage:"أي أحداث لعرض"},{code:"ar-sa",week:{dow:0,doy:6},dir:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekLabel:"أسبوع",allDayText:"اليوم كله",eventLimitText:"أخرى",noEventsMessage:"أي أحداث لعرض"},{code:"ar-tn",week:{dow:1,doy:4},dir:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekLabel:"أسبوع",allDayText:"اليوم كله",eventLimitText:"أخرى",noEventsMessage:"أي أحداث لعرض"},{code:"ar",week:{dow:6,doy:12},dir:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekLabel:"أسبوع",allDayText:"اليوم كله",eventLimitText:"أخرى",noEventsMessage:"أي أحداث لعرض"},{code:"bg",week:{dow:1,doy:7},buttonText:{prev:"назад",next:"напред",today:"днес",month:"Месец",week:"Седмица",day:"Ден",list:"График"},allDayText:"Цял ден",eventLimitText:function(e){return"+още "+e},noEventsMessage:"Няма събития за показване"},{code:"bs",week:{dow:1,doy:7},buttonText:{prev:"Prošli",next:"Sljedeći",today:"Danas",month:"Mjesec",week:"Sedmica",day:"Dan",list:"Raspored"},weekLabel:"Sed",allDayText:"Cijeli dan",eventLimitText:function(e){return"+ još "+e},noEventsMessage:"Nema događaja za prikazivanje"},{code:"ca",week:{dow:1,doy:4},buttonText:{prev:"Anterior",next:"Següent",today:"Avui",month:"Mes",week:"Setmana",day:"Dia",list:"Agenda"},weekLabel:"Set",allDayText:"Tot el dia",eventLimitText:"més",noEventsMessage:"No hi ha esdeveniments per mostrar"},{code:"cs",week:{dow:1,doy:4},buttonText:{prev:"Dříve",next:"Později",today:"Nyní",month:"Měsíc",week:"Týden",day:"Den",list:"Agenda"},weekLabel:"Týd",allDayText:"Celý den",eventLimitText:function(e){return"+další: "+e},noEventsMessage:"Žádné akce k zobrazení"},{code:"da",week:{dow:1,doy:4},buttonText:{prev:"Forrige",next:"Næste",today:"I dag",month:"Måned",week:"Uge",day:"Dag",list:"Agenda"},weekLabel:"Uge",allDayText:"Hele dagen",eventLimitText:"flere",noEventsMessage:"Ingen arrangementer at vise"},{code:"de",week:{dow:1,doy:4},buttonText:{prev:"Zurück",next:"Vor",today:"Heute",year:"Jahr",month:"Monat",week:"Woche",day:"Tag",list:"Terminübersicht"},weekLabel:"KW",allDayText:"Ganztägig",eventLimitText:function(e){return"+ weitere "+e},noEventsMessage:"Keine Ereignisse anzuzeigen"},{code:"el",week:{dow:1,doy:4},buttonText:{prev:"Προηγούμενος",next:"Επόμενος",today:"Σήμερα",month:"Μήνας",week:"Εβδομάδα",day:"Ημέρα",list:"Ατζέντα"},weekLabel:"Εβδ",allDayText:"Ολοήμερο",eventLimitText:"περισσότερα",noEventsMessage:"Δεν υπάρχουν γεγονότα για να εμφανιστεί"},{code:"en-au",week:{dow:1,doy:4}},{code:"en-gb",week:{dow:1,doy:4}},{code:"en-nz",week:{dow:1,doy:4}},{code:"es",week:{dow:0,doy:6},buttonText:{prev:"Ant",next:"Sig",today:"Hoy",month:"Mes",week:"Semana",day:"Día",list:"Agenda"},weekLabel:"Sm",allDayHtml:"Todo
el día",eventLimitText:"más",noEventsMessage:"No hay eventos para mostrar"},{code:"es",week:{dow:1,doy:4},buttonText:{prev:"Ant",next:"Sig",today:"Hoy",month:"Mes",week:"Semana",day:"Día",list:"Agenda"},weekLabel:"Sm",allDayHtml:"Todo
el día",eventLimitText:"más",noEventsMessage:"No hay eventos para mostrar"},{code:"et",week:{dow:1,doy:4},buttonText:{prev:"Eelnev",next:"Järgnev",today:"Täna",month:"Kuu",week:"Nädal",day:"Päev",list:"Päevakord"},weekLabel:"näd",allDayText:"Kogu päev",eventLimitText:function(e){return"+ veel "+e},noEventsMessage:"Kuvamiseks puuduvad sündmused"},{code:"eu",week:{dow:1,doy:7},buttonText:{prev:"Aur",next:"Hur",today:"Gaur",month:"Hilabetea",week:"Astea",day:"Eguna",list:"Agenda"},weekLabel:"As",allDayHtml:"Egun
osoa",eventLimitText:"gehiago",noEventsMessage:"Ez dago ekitaldirik erakusteko"},{code:"fa",week:{dow:6,doy:12},dir:"rtl",buttonText:{prev:"قبلی",next:"بعدی",today:"امروز",month:"ماه",week:"هفته",day:"روز",list:"برنامه"},weekLabel:"هف",allDayText:"تمام روز",eventLimitText:function(e){return"بیش از "+e},noEventsMessage:"هیچ رویدادی به نمایش"},{code:"fi",week:{dow:1,doy:4},buttonText:{prev:"Edellinen",next:"Seuraava",today:"Tänään",month:"Kuukausi",week:"Viikko",day:"Päivä",list:"Tapahtumat"},weekLabel:"Vk",allDayText:"Koko päivä",eventLimitText:"lisää",noEventsMessage:"Ei näytettäviä tapahtumia"},{code:"fr",buttonText:{prev:"Précédent",next:"Suivant",today:"Aujourd'hui",year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Mon planning"},weekLabel:"Sem.",allDayHtml:"Toute la
journée",eventLimitText:"en plus",noEventsMessage:"Aucun événement à afficher"},{code:"fr-ch",week:{dow:1,doy:4},buttonText:{prev:"Précédent",next:"Suivant",today:"Courant",year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Mon planning"},weekLabel:"Sm",allDayHtml:"Toute la
journée",eventLimitText:"en plus",noEventsMessage:"Aucun événement à afficher"},{code:"fr",week:{dow:1,doy:4},buttonText:{prev:"Précédent",next:"Suivant",today:"Aujourd'hui",year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Mon planning"},weekLabel:"Sem.",allDayHtml:"Toute la
journée",eventLimitText:"en plus",noEventsMessage:"Aucun événement à afficher"},{code:"gl",week:{dow:1,doy:4},buttonText:{prev:"Ant",next:"Seg",today:"Hoxe",month:"Mes",week:"Semana",day:"Día",list:"Axenda"},weekLabel:"Sm",allDayHtml:"Todo
o día",eventLimitText:"máis",noEventsMessage:"Non hai eventos para amosar"},{code:"he",dir:"rtl",buttonText:{prev:"הקודם",next:"הבא",today:"היום",month:"חודש",week:"שבוע",day:"יום",list:"סדר יום"},allDayText:"כל היום",eventLimitText:"אחר",noEventsMessage:"אין אירועים להצגה",weekLabel:"שבוע"},{code:"hi",week:{dow:0,doy:6},buttonText:{prev:"पिछला",next:"अगला",today:"आज",month:"महीना",week:"सप्ताह",day:"दिन",list:"कार्यसूची"},weekLabel:"हफ्ता",allDayText:"सभी दिन",eventLimitText:function(e){return"+अधिक "+e},noEventsMessage:"कोई घटनाओं को प्रदर्शित करने के लिए"},{code:"hr",week:{dow:1,doy:7},buttonText:{prev:"Prijašnji",next:"Sljedeći",today:"Danas",month:"Mjesec",week:"Tjedan",day:"Dan",list:"Raspored"},weekLabel:"Tje",allDayText:"Cijeli dan",eventLimitText:function(e){return"+ još "+e},noEventsMessage:"Nema događaja za prikaz"},{code:"hu",week:{dow:1,doy:4},buttonText:{prev:"vissza",next:"előre",today:"ma",month:"Hónap",week:"Hét",day:"Nap",list:"Napló"},weekLabel:"Hét",allDayText:"Egész nap",eventLimitText:"további",noEventsMessage:"Nincs megjeleníthető esemény"},{code:"id",week:{dow:1,doy:7},buttonText:{prev:"mundur",next:"maju",today:"hari ini",month:"Bulan",week:"Minggu",day:"Hari",list:"Agenda"},weekLabel:"Mg",allDayHtml:"Sehari
penuh",eventLimitText:"lebih",noEventsMessage:"Tidak ada acara untuk ditampilkan"},{code:"is",week:{dow:1,doy:4},buttonText:{prev:"Fyrri",next:"Næsti",today:"Í dag",month:"Mánuður",week:"Vika",day:"Dagur",list:"Dagskrá"},weekLabel:"Vika",allDayHtml:"Allan
daginn",eventLimitText:"meira",noEventsMessage:"Engir viðburðir til að sýna"},{code:"it",week:{dow:1,doy:4},buttonText:{prev:"Prec",next:"Succ",today:"Oggi",month:"Mese",week:"Settimana",day:"Giorno",list:"Agenda"},weekLabel:"Sm",allDayHtml:"Tutto il
giorno",eventLimitText:function(e){return"+altri "+e},noEventsMessage:"Non ci sono eventi da visualizzare"},{code:"ja",buttonText:{prev:"前",next:"次",today:"今日",month:"月",week:"週",day:"日",list:"予定リスト"},weekLabel:"週",allDayText:"終日",eventLimitText:function(e){return"他 "+e+" 件"},noEventsMessage:"表示する予定はありません"},{code:"ka",week:{dow:1,doy:7},buttonText:{prev:"წინა",next:"შემდეგი",today:"დღეს",month:"თვე",week:"კვირა",day:"დღე",list:"დღის წესრიგი"},weekLabel:"კვ",allDayText:"მთელი დღე",eventLimitText:function(e){return"+ კიდევ "+e},noEventsMessage:"ღონისძიებები არ არის"},{code:"kk",week:{dow:1,doy:7},buttonText:{prev:"Алдыңғы",next:"Келесі",today:"Бүгін",month:"Ай",week:"Апта",day:"Күн",list:"Күн тәртібі"},weekLabel:"Не",allDayText:"Күні бойы",eventLimitText:function(e){return"+ тағы "+e},noEventsMessage:"Көрсету үшін оқиғалар жоқ"},{code:"ko",buttonText:{prev:"이전달",next:"다음달",today:"오늘",month:"월",week:"주",day:"일",list:"일정목록"},weekLabel:"주",allDayText:"종일",eventLimitText:"개",noEventsMessage:"일정이 없습니다"},{code:"lb",week:{dow:1,doy:4},buttonText:{prev:"Zréck",next:"Weider",today:"Haut",month:"Mount",week:"Woch",day:"Dag",list:"Terminiwwersiicht"},weekLabel:"W",allDayText:"Ganzen Dag",eventLimitText:"méi",noEventsMessage:"Nee Evenementer ze affichéieren"},{code:"lt",week:{dow:1,doy:4},buttonText:{prev:"Atgal",next:"Pirmyn",today:"Šiandien",month:"Mėnuo",week:"Savaitė",day:"Diena",list:"Darbotvarkė"},weekLabel:"SAV",allDayText:"Visą dieną",eventLimitText:"daugiau",noEventsMessage:"Nėra įvykių rodyti"},{code:"lv",week:{dow:1,doy:4},buttonText:{prev:"Iepr.",next:"Nāk.",today:"Šodien",month:"Mēnesis",week:"Nedēļa",day:"Diena",list:"Dienas kārtība"},weekLabel:"Ned.",allDayText:"Visu dienu",eventLimitText:function(e){return"+vēl "+e},noEventsMessage:"Nav notikumu"},{code:"mk",buttonText:{prev:"претходно",next:"следно",today:"Денес",month:"Месец",week:"Недела",day:"Ден",list:"График"},weekLabel:"Сед",allDayText:"Цел ден",eventLimitText:function(e){return"+повеќе "+e},noEventsMessage:"Нема настани за прикажување"},{code:"ms",week:{dow:1,doy:7},buttonText:{prev:"Sebelum",next:"Selepas",today:"hari ini",month:"Bulan",week:"Minggu",day:"Hari",list:"Agenda"},weekLabel:"Mg",allDayText:"Sepanjang hari",eventLimitText:function(e){return"masih ada "+e+" acara"},noEventsMessage:"Tiada peristiwa untuk dipaparkan"},{code:"nb",week:{dow:1,doy:4},buttonText:{prev:"Forrige",next:"Neste",today:"I dag",month:"Måned",week:"Uke",day:"Dag",list:"Agenda"},weekLabel:"Uke",allDayText:"Hele dagen",eventLimitText:"til",noEventsMessage:"Ingen hendelser å vise"},{code:"nl",week:{dow:1,doy:4},buttonText:{prev:"Voorgaand",next:"Volgende",today:"Vandaag",year:"Jaar",month:"Maand",week:"Week",day:"Dag",list:"Agenda"},allDayText:"Hele dag",eventLimitText:"extra",noEventsMessage:"Geen evenementen om te laten zien"},{code:"nn",week:{dow:1,doy:4},buttonText:{prev:"Førre",next:"Neste",today:"I dag",month:"Månad",week:"Veke",day:"Dag",list:"Agenda"},weekLabel:"Veke",allDayText:"Heile dagen",eventLimitText:"til",noEventsMessage:"Ingen hendelser å vise"},{code:"pl",week:{dow:1,doy:4},buttonText:{prev:"Poprzedni",next:"Następny",today:"Dziś",month:"Miesiąc",week:"Tydzień",day:"Dzień",list:"Plan dnia"},weekLabel:"Tydz",allDayText:"Cały dzień",eventLimitText:"więcej",noEventsMessage:"Brak wydarzeń do wyświetlenia"},{code:"pt-br",buttonText:{prev:"Anterior",next:"Próximo",today:"Hoje",month:"Mês",week:"Semana",day:"Dia",list:"Compromissos"},weekLabel:"Sm",allDayText:"dia inteiro",eventLimitText:function(e){return"mais +"+e},noEventsMessage:"Não há eventos para mostrar"},{code:"pt",week:{dow:1,doy:4},buttonText:{prev:"Anterior",next:"Seguinte",today:"Hoje",month:"Mês",week:"Semana",day:"Dia",list:"Agenda"},weekLabel:"Sem",allDayText:"Todo o dia",eventLimitText:"mais",noEventsMessage:"Não há eventos para mostrar"},{code:"ro",week:{dow:1,doy:7},buttonText:{prev:"precedentă",next:"următoare",today:"Azi",month:"Lună",week:"Săptămână",day:"Zi",list:"Agendă"},weekLabel:"Săpt",allDayText:"Toată ziua",eventLimitText:function(e){return"+alte "+e},noEventsMessage:"Nu există evenimente de afișat"},{code:"ru",week:{dow:1,doy:4},buttonText:{prev:"Пред",next:"След",today:"Сегодня",month:"Месяц",week:"Неделя",day:"День",list:"Повестка дня"},weekLabel:"Нед",allDayText:"Весь день",eventLimitText:function(e){return"+ ещё "+e},noEventsMessage:"Нет событий для отображения"},{code:"sk",week:{dow:1,doy:4},buttonText:{prev:"Predchádzajúci",next:"Nasledujúci",today:"Dnes",month:"Mesiac",week:"Týždeň",day:"Deň",list:"Rozvrh"},weekLabel:"Ty",allDayText:"Celý deň",eventLimitText:function(e){return"+ďalšie: "+e},noEventsMessage:"Žiadne akcie na zobrazenie"},{code:"sl",week:{dow:1,doy:7},buttonText:{prev:"Prejšnji",next:"Naslednji",today:"Trenutni",month:"Mesec",week:"Teden",day:"Dan",list:"Dnevni red"},weekLabel:"Teden",allDayText:"Ves dan",eventLimitText:"več",noEventsMessage:"Ni dogodkov za prikaz"},{code:"sq",week:{dow:1,doy:4},buttonText:{prev:"mbrapa",next:"Përpara",today:"sot",month:"Muaj",week:"Javë",day:"Ditë",list:"Listë"},weekLabel:"Ja",allDayHtml:"Gjithë
ditën",eventLimitText:function(e){return"+më tepër "+e},noEventsMessage:"Nuk ka evente për të shfaqur"},{code:"sr-cyrl",week:{dow:1,doy:7},buttonText:{prev:"Претходна",next:"следећи",today:"Данас",month:"Месец",week:"Недеља",day:"Дан",list:"Планер"},weekLabel:"Сед",allDayText:"Цео дан",eventLimitText:function(e){return"+ још "+e},noEventsMessage:"Нема догађаја за приказ"},{code:"sr",week:{dow:1,doy:7},buttonText:{prev:"Prethodna",next:"Sledeći",today:"Danas",month:"Mеsеc",week:"Nеdеlja",day:"Dan",list:"Planеr"},weekLabel:"Sed",allDayText:"Cеo dan",eventLimitText:function(e){return"+ još "+e},noEventsMessage:"Nеma događaja za prikaz"},{code:"sv",week:{dow:1,doy:4},buttonText:{prev:"Förra",next:"Nästa",today:"Idag",month:"Månad",week:"Vecka",day:"Dag",list:"Program"},weekLabel:"v.",allDayText:"Heldag",eventLimitText:"till",noEventsMessage:"Inga händelser att visa"},{code:"th",buttonText:{prev:"ย้อน",next:"ถัดไป",today:"วันนี้",month:"เดือน",week:"สัปดาห์",day:"วัน",list:"แผนงาน"},allDayText:"ตลอดวัน",eventLimitText:"เพิ่มเติม",noEventsMessage:"ไม่มีกิจกรรมที่จะแสดง"},{code:"tr",week:{dow:1,doy:7},buttonText:{prev:"geri",next:"ileri",today:"bugün",month:"Ay",week:"Hafta",day:"Gün",list:"Ajanda"},weekLabel:"Hf",allDayText:"Tüm gün",eventLimitText:"daha fazla",noEventsMessage:"Gösterilecek etkinlik yok"},{code:"uk",week:{dow:1,doy:7},buttonText:{prev:"Попередній",next:"далі",today:"Сьогодні",month:"Місяць",week:"Тиждень",day:"День",list:"Порядок денний"},weekLabel:"Тиж",allDayText:"Увесь день",eventLimitText:function(e){return"+ще "+e+"..."},noEventsMessage:"Немає подій для відображення"},{code:"vi",week:{dow:1,doy:4},buttonText:{prev:"Trước",next:"Tiếp",today:"Hôm nay",month:"Tháng",week:"Tuần",day:"Ngày",list:"Lịch biểu"},weekLabel:"Tu",allDayText:"Cả ngày",eventLimitText:function(e){return"+ thêm "+e},noEventsMessage:"Không có sự kiện để hiển thị"},{code:"zh-cn",week:{dow:1,doy:4},buttonText:{prev:"上月",next:"下月",today:"今天",month:"月",week:"周",day:"日",list:"日程"},weekLabel:"周",allDayText:"全天",eventLimitText:function(e){return"另外 "+e+" 个"},noEventsMessage:"没有事件显示"},{code:"zh-tw",buttonText:{prev:"上月",next:"下月",today:"今天",month:"月",week:"週",day:"天",list:"活動列表"},weekLabel:"周",allDayText:"整天",eventLimitText:"顯示更多",noEventsMessage:"没有任何活動"}]}); \ No newline at end of file diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/af.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/af.js deleted file mode 100644 index ee9f9f74..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/af.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.af = factory())); -}(this, function () { 'use strict'; - - var af = { - code: "af", - week: { - dow: 1, - doy: 4 // Die week wat die 4de Januarie bevat is die eerste week van die jaar. - }, - buttonText: { - prev: "Vorige", - next: "Volgende", - today: "Vandag", - year: "Jaar", - month: "Maand", - week: "Week", - day: "Dag", - list: "Agenda" - }, - allDayHtml: "Heeldag", - eventLimitText: "Addisionele", - noEventsMessage: "Daar is geen gebeurtenisse nie" - }; - - return af; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar-dz.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar-dz.js deleted file mode 100644 index 201eb171..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar-dz.js +++ /dev/null @@ -1,31 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['ar-dz'] = factory())); -}(this, function () { 'use strict'; - - var arDz = { - code: "ar-dz", - week: { - dow: 0, - doy: 4 // The week that contains Jan 1st is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "السابق", - next: "التالي", - today: "اليوم", - month: "شهر", - week: "أسبوع", - day: "يوم", - list: "أجندة" - }, - weekLabel: "أسبوع", - allDayText: "اليوم كله", - eventLimitText: "أخرى", - noEventsMessage: "أي أحداث لعرض" - }; - - return arDz; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar-kw.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar-kw.js deleted file mode 100644 index 94c69001..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar-kw.js +++ /dev/null @@ -1,31 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['ar-kw'] = factory())); -}(this, function () { 'use strict'; - - var arKw = { - code: "ar-kw", - week: { - dow: 0, - doy: 12 // The week that contains Jan 1st is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "السابق", - next: "التالي", - today: "اليوم", - month: "شهر", - week: "أسبوع", - day: "يوم", - list: "أجندة" - }, - weekLabel: "أسبوع", - allDayText: "اليوم كله", - eventLimitText: "أخرى", - noEventsMessage: "أي أحداث لعرض" - }; - - return arKw; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar-ly.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar-ly.js deleted file mode 100644 index e1c8aeb0..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar-ly.js +++ /dev/null @@ -1,31 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['ar-ly'] = factory())); -}(this, function () { 'use strict'; - - var arLy = { - code: "ar-ly", - week: { - dow: 6, - doy: 12 // The week that contains Jan 1st is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "السابق", - next: "التالي", - today: "اليوم", - month: "شهر", - week: "أسبوع", - day: "يوم", - list: "أجندة" - }, - weekLabel: "أسبوع", - allDayText: "اليوم كله", - eventLimitText: "أخرى", - noEventsMessage: "أي أحداث لعرض" - }; - - return arLy; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar-ma.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar-ma.js deleted file mode 100644 index 00cc7c67..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar-ma.js +++ /dev/null @@ -1,31 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['ar-ma'] = factory())); -}(this, function () { 'use strict'; - - var arMa = { - code: "ar-ma", - week: { - dow: 6, - doy: 12 // The week that contains Jan 1st is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "السابق", - next: "التالي", - today: "اليوم", - month: "شهر", - week: "أسبوع", - day: "يوم", - list: "أجندة" - }, - weekLabel: "أسبوع", - allDayText: "اليوم كله", - eventLimitText: "أخرى", - noEventsMessage: "أي أحداث لعرض" - }; - - return arMa; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar-sa.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar-sa.js deleted file mode 100644 index 0361f6d8..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar-sa.js +++ /dev/null @@ -1,31 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['ar-sa'] = factory())); -}(this, function () { 'use strict'; - - var arSa = { - code: "ar-sa", - week: { - dow: 0, - doy: 6 // The week that contains Jan 1st is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "السابق", - next: "التالي", - today: "اليوم", - month: "شهر", - week: "أسبوع", - day: "يوم", - list: "أجندة" - }, - weekLabel: "أسبوع", - allDayText: "اليوم كله", - eventLimitText: "أخرى", - noEventsMessage: "أي أحداث لعرض" - }; - - return arSa; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar-tn.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar-tn.js deleted file mode 100644 index 57a07f8f..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar-tn.js +++ /dev/null @@ -1,31 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['ar-tn'] = factory())); -}(this, function () { 'use strict'; - - var arTn = { - code: "ar-tn", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "السابق", - next: "التالي", - today: "اليوم", - month: "شهر", - week: "أسبوع", - day: "يوم", - list: "أجندة" - }, - weekLabel: "أسبوع", - allDayText: "اليوم كله", - eventLimitText: "أخرى", - noEventsMessage: "أي أحداث لعرض" - }; - - return arTn; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar.js deleted file mode 100644 index f789afd1..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ar.js +++ /dev/null @@ -1,31 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ar = factory())); -}(this, function () { 'use strict'; - - var ar = { - code: "ar", - week: { - dow: 6, - doy: 12 // The week that contains Jan 1st is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "السابق", - next: "التالي", - today: "اليوم", - month: "شهر", - week: "أسبوع", - day: "يوم", - list: "أجندة" - }, - weekLabel: "أسبوع", - allDayText: "اليوم كله", - eventLimitText: "أخرى", - noEventsMessage: "أي أحداث لعرض" - }; - - return ar; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/bg.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/bg.js deleted file mode 100644 index e7343a6c..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/bg.js +++ /dev/null @@ -1,31 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.bg = factory())); -}(this, function () { 'use strict'; - - var bg = { - code: "bg", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "назад", - next: "напред", - today: "днес", - month: "Месец", - week: "Седмица", - day: "Ден", - list: "График" - }, - allDayText: "Цял ден", - eventLimitText: function (n) { - return "+още " + n; - }, - noEventsMessage: "Няма събития за показване" - }; - - return bg; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/bs.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/bs.js deleted file mode 100644 index d96b8adb..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/bs.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.bs = factory())); -}(this, function () { 'use strict'; - - var bs = { - code: "bs", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Prošli", - next: "Sljedeći", - today: "Danas", - month: "Mjesec", - week: "Sedmica", - day: "Dan", - list: "Raspored" - }, - weekLabel: "Sed", - allDayText: "Cijeli dan", - eventLimitText: function (n) { - return "+ još " + n; - }, - noEventsMessage: "Nema događaja za prikazivanje" - }; - - return bs; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ca.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ca.js deleted file mode 100644 index d2d3e2aa..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ca.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ca = factory())); -}(this, function () { 'use strict'; - - var ca = { - code: "ca", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Anterior", - next: "Següent", - today: "Avui", - month: "Mes", - week: "Setmana", - day: "Dia", - list: "Agenda" - }, - weekLabel: "Set", - allDayText: "Tot el dia", - eventLimitText: "més", - noEventsMessage: "No hi ha esdeveniments per mostrar" - }; - - return ca; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/cs.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/cs.js deleted file mode 100644 index 2624e360..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/cs.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.cs = factory())); -}(this, function () { 'use strict'; - - var cs = { - code: "cs", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Dříve", - next: "Později", - today: "Nyní", - month: "Měsíc", - week: "Týden", - day: "Den", - list: "Agenda" - }, - weekLabel: "Týd", - allDayText: "Celý den", - eventLimitText: function (n) { - return "+další: " + n; - }, - noEventsMessage: "Žádné akce k zobrazení" - }; - - return cs; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/da.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/da.js deleted file mode 100644 index 73d15592..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/da.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.da = factory())); -}(this, function () { 'use strict'; - - var da = { - code: "da", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Forrige", - next: "Næste", - today: "I dag", - month: "Måned", - week: "Uge", - day: "Dag", - list: "Agenda" - }, - weekLabel: "Uge", - allDayText: "Hele dagen", - eventLimitText: "flere", - noEventsMessage: "Ingen arrangementer at vise" - }; - - return da; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/de.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/de.js deleted file mode 100644 index ab5a815a..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/de.js +++ /dev/null @@ -1,33 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.de = factory())); -}(this, function () { 'use strict'; - - var de = { - code: "de", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Zurück", - next: "Vor", - today: "Heute", - year: "Jahr", - month: "Monat", - week: "Woche", - day: "Tag", - list: "Terminübersicht" - }, - weekLabel: "KW", - allDayText: "Ganztägig", - eventLimitText: function (n) { - return "+ weitere " + n; - }, - noEventsMessage: "Keine Ereignisse anzuzeigen" - }; - - return de; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/el.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/el.js deleted file mode 100644 index 9f59e365..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/el.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.el = factory())); -}(this, function () { 'use strict'; - - var el = { - code: "el", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4st is the first week of the year. - }, - buttonText: { - prev: "Προηγούμενος", - next: "Επόμενος", - today: "Σήμερα", - month: "Μήνας", - week: "Εβδομάδα", - day: "Ημέρα", - list: "Ατζέντα" - }, - weekLabel: "Εβδ", - allDayText: "Ολοήμερο", - eventLimitText: "περισσότερα", - noEventsMessage: "Δεν υπάρχουν γεγονότα για να εμφανιστεί" - }; - - return el; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/en-au.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/en-au.js deleted file mode 100644 index be10bfb6..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/en-au.js +++ /dev/null @@ -1,17 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['en-au'] = factory())); -}(this, function () { 'use strict'; - - var enAu = { - code: "en-au", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - } - }; - - return enAu; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/en-gb.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/en-gb.js deleted file mode 100644 index 8a4a84e6..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/en-gb.js +++ /dev/null @@ -1,17 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['en-gb'] = factory())); -}(this, function () { 'use strict'; - - var enGb = { - code: "en-gb", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - } - }; - - return enGb; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/en-nz.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/en-nz.js deleted file mode 100644 index df56c145..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/en-nz.js +++ /dev/null @@ -1,17 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['en-nz'] = factory())); -}(this, function () { 'use strict'; - - var enNz = { - code: "en-nz", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - } - }; - - return enNz; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/es-us.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/es-us.js deleted file mode 100644 index 1efa89a4..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/es-us.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['es-us'] = factory())); -}(this, function () { 'use strict'; - - var esUs = { - code: "es", - week: { - dow: 0, - doy: 6 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Ant", - next: "Sig", - today: "Hoy", - month: "Mes", - week: "Semana", - day: "Día", - list: "Agenda" - }, - weekLabel: "Sm", - allDayHtml: "Todo
el día", - eventLimitText: "más", - noEventsMessage: "No hay eventos para mostrar" - }; - - return esUs; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/es.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/es.js deleted file mode 100644 index bfd9af4c..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/es.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.es = factory())); -}(this, function () { 'use strict'; - - var es = { - code: "es", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Ant", - next: "Sig", - today: "Hoy", - month: "Mes", - week: "Semana", - day: "Día", - list: "Agenda" - }, - weekLabel: "Sm", - allDayHtml: "Todo
el día", - eventLimitText: "más", - noEventsMessage: "No hay eventos para mostrar" - }; - - return es; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/et.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/et.js deleted file mode 100644 index c44fcaec..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/et.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.et = factory())); -}(this, function () { 'use strict'; - - var et = { - code: "et", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Eelnev", - next: "Järgnev", - today: "Täna", - month: "Kuu", - week: "Nädal", - day: "Päev", - list: "Päevakord" - }, - weekLabel: "näd", - allDayText: "Kogu päev", - eventLimitText: function (n) { - return "+ veel " + n; - }, - noEventsMessage: "Kuvamiseks puuduvad sündmused" - }; - - return et; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/eu.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/eu.js deleted file mode 100644 index 91903aaa..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/eu.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.eu = factory())); -}(this, function () { 'use strict'; - - var eu = { - code: "eu", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Aur", - next: "Hur", - today: "Gaur", - month: "Hilabetea", - week: "Astea", - day: "Eguna", - list: "Agenda" - }, - weekLabel: "As", - allDayHtml: "Egun
osoa", - eventLimitText: "gehiago", - noEventsMessage: "Ez dago ekitaldirik erakusteko" - }; - - return eu; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/fa.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/fa.js deleted file mode 100644 index 031fc7b3..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/fa.js +++ /dev/null @@ -1,33 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.fa = factory())); -}(this, function () { 'use strict'; - - var fa = { - code: "fa", - week: { - dow: 6, - doy: 12 // The week that contains Jan 1st is the first week of the year. - }, - dir: 'rtl', - buttonText: { - prev: "قبلی", - next: "بعدی", - today: "امروز", - month: "ماه", - week: "هفته", - day: "روز", - list: "برنامه" - }, - weekLabel: "هف", - allDayText: "تمام روز", - eventLimitText: function (n) { - return "بیش از " + n; - }, - noEventsMessage: "هیچ رویدادی به نمایش" - }; - - return fa; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/fi.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/fi.js deleted file mode 100644 index 3912845c..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/fi.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.fi = factory())); -}(this, function () { 'use strict'; - - var fi = { - code: "fi", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Edellinen", - next: "Seuraava", - today: "Tänään", - month: "Kuukausi", - week: "Viikko", - day: "Päivä", - list: "Tapahtumat" - }, - weekLabel: "Vk", - allDayText: "Koko päivä", - eventLimitText: "lisää", - noEventsMessage: "Ei näytettäviä tapahtumia" - }; - - return fi; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/fr-ca.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/fr-ca.js deleted file mode 100644 index d554c140..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/fr-ca.js +++ /dev/null @@ -1,27 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['fr-ca'] = factory())); -}(this, function () { 'use strict'; - - var frCa = { - code: "fr", - buttonText: { - prev: "Précédent", - next: "Suivant", - today: "Aujourd'hui", - year: "Année", - month: "Mois", - week: "Semaine", - day: "Jour", - list: "Mon planning" - }, - weekLabel: "Sem.", - allDayHtml: "Toute la
journée", - eventLimitText: "en plus", - noEventsMessage: "Aucun événement à afficher" - }; - - return frCa; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/fr-ch.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/fr-ch.js deleted file mode 100644 index 358b8bf3..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/fr-ch.js +++ /dev/null @@ -1,31 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['fr-ch'] = factory())); -}(this, function () { 'use strict'; - - var frCh = { - code: "fr-ch", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Précédent", - next: "Suivant", - today: "Courant", - year: "Année", - month: "Mois", - week: "Semaine", - day: "Jour", - list: "Mon planning" - }, - weekLabel: "Sm", - allDayHtml: "Toute la
journée", - eventLimitText: "en plus", - noEventsMessage: "Aucun événement à afficher" - }; - - return frCh; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/fr.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/fr.js deleted file mode 100644 index b679ceff..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/fr.js +++ /dev/null @@ -1,31 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.fr = factory())); -}(this, function () { 'use strict'; - - var fr = { - code: "fr", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Précédent", - next: "Suivant", - today: "Aujourd'hui", - year: "Année", - month: "Mois", - week: "Semaine", - day: "Jour", - list: "Mon planning" - }, - weekLabel: "Sem.", - allDayHtml: "Toute la
journée", - eventLimitText: "en plus", - noEventsMessage: "Aucun événement à afficher" - }; - - return fr; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/gl.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/gl.js deleted file mode 100644 index 721a6a89..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/gl.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.gl = factory())); -}(this, function () { 'use strict'; - - var gl = { - code: "gl", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Ant", - next: "Seg", - today: "Hoxe", - month: "Mes", - week: "Semana", - day: "Día", - list: "Axenda" - }, - weekLabel: "Sm", - allDayHtml: "Todo
o día", - eventLimitText: "máis", - noEventsMessage: "Non hai eventos para amosar" - }; - - return gl; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/he.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/he.js deleted file mode 100644 index 3521d9e3..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/he.js +++ /dev/null @@ -1,27 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.he = factory())); -}(this, function () { 'use strict'; - - var he = { - code: "he", - dir: 'rtl', - buttonText: { - prev: "הקודם", - next: "הבא", - today: "היום", - month: "חודש", - week: "שבוע", - day: "יום", - list: "סדר יום" - }, - allDayText: "כל היום", - eventLimitText: "אחר", - noEventsMessage: "אין אירועים להצגה", - weekLabel: "שבוע" - }; - - return he; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/hi.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/hi.js deleted file mode 100644 index 15348e69..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/hi.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.hi = factory())); -}(this, function () { 'use strict'; - - var hi = { - code: "hi", - week: { - dow: 0, - doy: 6 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "पिछला", - next: "अगला", - today: "आज", - month: "महीना", - week: "सप्ताह", - day: "दिन", - list: "कार्यसूची" - }, - weekLabel: "हफ्ता", - allDayText: "सभी दिन", - eventLimitText: function (n) { - return "+अधिक " + n; - }, - noEventsMessage: "कोई घटनाओं को प्रदर्शित करने के लिए" - }; - - return hi; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/hr.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/hr.js deleted file mode 100644 index 295b4856..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/hr.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.hr = factory())); -}(this, function () { 'use strict'; - - var hr = { - code: "hr", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Prijašnji", - next: "Sljedeći", - today: "Danas", - month: "Mjesec", - week: "Tjedan", - day: "Dan", - list: "Raspored" - }, - weekLabel: "Tje", - allDayText: "Cijeli dan", - eventLimitText: function (n) { - return "+ još " + n; - }, - noEventsMessage: "Nema događaja za prikaz" - }; - - return hr; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/hu.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/hu.js deleted file mode 100644 index 2f0fe8ac..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/hu.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.hu = factory())); -}(this, function () { 'use strict'; - - var hu = { - code: "hu", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "vissza", - next: "előre", - today: "ma", - month: "Hónap", - week: "Hét", - day: "Nap", - list: "Napló" - }, - weekLabel: "Hét", - allDayText: "Egész nap", - eventLimitText: "további", - noEventsMessage: "Nincs megjeleníthető esemény" - }; - - return hu; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/id.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/id.js deleted file mode 100644 index b742e80d..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/id.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.id = factory())); -}(this, function () { 'use strict'; - - var id = { - code: "id", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "mundur", - next: "maju", - today: "hari ini", - month: "Bulan", - week: "Minggu", - day: "Hari", - list: "Agenda" - }, - weekLabel: "Mg", - allDayHtml: "Sehari
penuh", - eventLimitText: "lebih", - noEventsMessage: "Tidak ada acara untuk ditampilkan" - }; - - return id; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/is.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/is.js deleted file mode 100644 index dd569bce..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/is.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.is = factory())); -}(this, function () { 'use strict'; - - var is = { - code: "is", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Fyrri", - next: "Næsti", - today: "Í dag", - month: "Mánuður", - week: "Vika", - day: "Dagur", - list: "Dagskrá" - }, - weekLabel: "Vika", - allDayHtml: "Allan
daginn", - eventLimitText: "meira", - noEventsMessage: "Engir viðburðir til að sýna" - }; - - return is; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/it.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/it.js deleted file mode 100644 index 39a2829e..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/it.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.it = factory())); -}(this, function () { 'use strict'; - - var it = { - code: "it", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Prec", - next: "Succ", - today: "Oggi", - month: "Mese", - week: "Settimana", - day: "Giorno", - list: "Agenda" - }, - weekLabel: "Sm", - allDayHtml: "Tutto il
giorno", - eventLimitText: function (n) { - return "+altri " + n; - }, - noEventsMessage: "Non ci sono eventi da visualizzare" - }; - - return it; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ja.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ja.js deleted file mode 100644 index eb4245b2..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ja.js +++ /dev/null @@ -1,28 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ja = factory())); -}(this, function () { 'use strict'; - - var ja = { - code: "ja", - buttonText: { - prev: "前", - next: "次", - today: "今日", - month: "月", - week: "週", - day: "日", - list: "予定リスト" - }, - weekLabel: "週", - allDayText: "終日", - eventLimitText: function (n) { - return "他 " + n + " 件"; - }, - noEventsMessage: "表示する予定はありません" - }; - - return ja; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ka.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ka.js deleted file mode 100644 index b971c033..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ka.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ka = factory())); -}(this, function () { 'use strict'; - - var ka = { - code: "ka", - week: { - dow: 1, - doy: 7 - }, - buttonText: { - prev: "წინა", - next: "შემდეგი", - today: "დღეს", - month: "თვე", - week: "კვირა", - day: "დღე", - list: "დღის წესრიგი" - }, - weekLabel: "კვ", - allDayText: "მთელი დღე", - eventLimitText: function (n) { - return "+ კიდევ " + n; - }, - noEventsMessage: "ღონისძიებები არ არის" - }; - - return ka; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/kk.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/kk.js deleted file mode 100644 index 5b19b99d..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/kk.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.kk = factory())); -}(this, function () { 'use strict'; - - var kk = { - code: "kk", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Алдыңғы", - next: "Келесі", - today: "Бүгін", - month: "Ай", - week: "Апта", - day: "Күн", - list: "Күн тәртібі" - }, - weekLabel: "Не", - allDayText: "Күні бойы", - eventLimitText: function (n) { - return "+ тағы " + n; - }, - noEventsMessage: "Көрсету үшін оқиғалар жоқ" - }; - - return kk; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ko.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ko.js deleted file mode 100644 index ffe985d6..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ko.js +++ /dev/null @@ -1,26 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ko = factory())); -}(this, function () { 'use strict'; - - var ko = { - code: "ko", - buttonText: { - prev: "이전달", - next: "다음달", - today: "오늘", - month: "월", - week: "주", - day: "일", - list: "일정목록" - }, - weekLabel: "주", - allDayText: "종일", - eventLimitText: "개", - noEventsMessage: "일정이 없습니다" - }; - - return ko; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/lb.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/lb.js deleted file mode 100644 index b9b17e3e..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/lb.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.lb = factory())); -}(this, function () { 'use strict'; - - var lb = { - code: "lb", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Zréck", - next: "Weider", - today: "Haut", - month: "Mount", - week: "Woch", - day: "Dag", - list: "Terminiwwersiicht" - }, - weekLabel: "W", - allDayText: "Ganzen Dag", - eventLimitText: "méi", - noEventsMessage: "Nee Evenementer ze affichéieren" - }; - - return lb; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/lt.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/lt.js deleted file mode 100644 index ec641b75..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/lt.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.lt = factory())); -}(this, function () { 'use strict'; - - var lt = { - code: "lt", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Atgal", - next: "Pirmyn", - today: "Šiandien", - month: "Mėnuo", - week: "Savaitė", - day: "Diena", - list: "Darbotvarkė" - }, - weekLabel: "SAV", - allDayText: "Visą dieną", - eventLimitText: "daugiau", - noEventsMessage: "Nėra įvykių rodyti" - }; - - return lt; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/lv.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/lv.js deleted file mode 100644 index 5453630d..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/lv.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.lv = factory())); -}(this, function () { 'use strict'; - - var lv = { - code: "lv", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Iepr.", - next: "Nāk.", - today: "Šodien", - month: "Mēnesis", - week: "Nedēļa", - day: "Diena", - list: "Dienas kārtība" - }, - weekLabel: "Ned.", - allDayText: "Visu dienu", - eventLimitText: function (n) { - return "+vēl " + n; - }, - noEventsMessage: "Nav notikumu" - }; - - return lv; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/mk.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/mk.js deleted file mode 100644 index 6729fa63..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/mk.js +++ /dev/null @@ -1,28 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.mk = factory())); -}(this, function () { 'use strict'; - - var mk = { - code: "mk", - buttonText: { - prev: "претходно", - next: "следно", - today: "Денес", - month: "Месец", - week: "Недела", - day: "Ден", - list: "График" - }, - weekLabel: "Сед", - allDayText: "Цел ден", - eventLimitText: function (n) { - return "+повеќе " + n; - }, - noEventsMessage: "Нема настани за прикажување" - }; - - return mk; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ms.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ms.js deleted file mode 100644 index 7205ecc7..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ms.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ms = factory())); -}(this, function () { 'use strict'; - - var ms = { - code: "ms", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Sebelum", - next: "Selepas", - today: "hari ini", - month: "Bulan", - week: "Minggu", - day: "Hari", - list: "Agenda" - }, - weekLabel: "Mg", - allDayText: "Sepanjang hari", - eventLimitText: function (n) { - return "masih ada " + n + " acara"; - }, - noEventsMessage: "Tiada peristiwa untuk dipaparkan" - }; - - return ms; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/nb.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/nb.js deleted file mode 100644 index 6464461c..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/nb.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.nb = factory())); -}(this, function () { 'use strict'; - - var nb = { - code: "nb", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Forrige", - next: "Neste", - today: "I dag", - month: "Måned", - week: "Uke", - day: "Dag", - list: "Agenda" - }, - weekLabel: "Uke", - allDayText: "Hele dagen", - eventLimitText: "til", - noEventsMessage: "Ingen hendelser å vise" - }; - - return nb; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/nl.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/nl.js deleted file mode 100644 index c91b5e55..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/nl.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.nl = factory())); -}(this, function () { 'use strict'; - - var nl = { - code: "nl", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Voorgaand", - next: "Volgende", - today: "Vandaag", - year: "Jaar", - month: "Maand", - week: "Week", - day: "Dag", - list: "Agenda" - }, - allDayText: "Hele dag", - eventLimitText: "extra", - noEventsMessage: "Geen evenementen om te laten zien" - }; - - return nl; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/nn.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/nn.js deleted file mode 100644 index a5cdd162..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/nn.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.nn = factory())); -}(this, function () { 'use strict'; - - var nn = { - code: "nn", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Førre", - next: "Neste", - today: "I dag", - month: "Månad", - week: "Veke", - day: "Dag", - list: "Agenda" - }, - weekLabel: "Veke", - allDayText: "Heile dagen", - eventLimitText: "til", - noEventsMessage: "Ingen hendelser å vise" - }; - - return nn; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/pl.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/pl.js deleted file mode 100644 index 0a22e69c..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/pl.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.pl = factory())); -}(this, function () { 'use strict'; - - var pl = { - code: "pl", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Poprzedni", - next: "Następny", - today: "Dziś", - month: "Miesiąc", - week: "Tydzień", - day: "Dzień", - list: "Plan dnia" - }, - weekLabel: "Tydz", - allDayText: "Cały dzień", - eventLimitText: "więcej", - noEventsMessage: "Brak wydarzeń do wyświetlenia" - }; - - return pl; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/pt-br.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/pt-br.js deleted file mode 100644 index 0133cd6b..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/pt-br.js +++ /dev/null @@ -1,28 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['pt-br'] = factory())); -}(this, function () { 'use strict'; - - var ptBr = { - code: "pt-br", - buttonText: { - prev: "Anterior", - next: "Próximo", - today: "Hoje", - month: "Mês", - week: "Semana", - day: "Dia", - list: "Compromissos" - }, - weekLabel: "Sm", - allDayText: "dia inteiro", - eventLimitText: function (n) { - return "mais +" + n; - }, - noEventsMessage: "Não há eventos para mostrar" - }; - - return ptBr; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/pt.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/pt.js deleted file mode 100644 index 5c54d8d4..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/pt.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.pt = factory())); -}(this, function () { 'use strict'; - - var pt = { - code: "pt", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Anterior", - next: "Seguinte", - today: "Hoje", - month: "Mês", - week: "Semana", - day: "Dia", - list: "Agenda" - }, - weekLabel: "Sem", - allDayText: "Todo o dia", - eventLimitText: "mais", - noEventsMessage: "Não há eventos para mostrar" - }; - - return pt; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ro.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ro.js deleted file mode 100644 index e8992f27..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ro.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ro = factory())); -}(this, function () { 'use strict'; - - var ro = { - code: "ro", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "precedentă", - next: "următoare", - today: "Azi", - month: "Lună", - week: "Săptămână", - day: "Zi", - list: "Agendă" - }, - weekLabel: "Săpt", - allDayText: "Toată ziua", - eventLimitText: function (n) { - return "+alte " + n; - }, - noEventsMessage: "Nu există evenimente de afișat" - }; - - return ro; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ru.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ru.js deleted file mode 100644 index 77e0308e..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/ru.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ru = factory())); -}(this, function () { 'use strict'; - - var ru = { - code: "ru", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Пред", - next: "След", - today: "Сегодня", - month: "Месяц", - week: "Неделя", - day: "День", - list: "Повестка дня" - }, - weekLabel: "Нед", - allDayText: "Весь день", - eventLimitText: function (n) { - return "+ ещё " + n; - }, - noEventsMessage: "Нет событий для отображения" - }; - - return ru; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/sk.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/sk.js deleted file mode 100644 index 3513a64a..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/sk.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.sk = factory())); -}(this, function () { 'use strict'; - - var sk = { - code: "sk", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Predchádzajúci", - next: "Nasledujúci", - today: "Dnes", - month: "Mesiac", - week: "Týždeň", - day: "Deň", - list: "Rozvrh" - }, - weekLabel: "Ty", - allDayText: "Celý deň", - eventLimitText: function (n) { - return "+ďalšie: " + n; - }, - noEventsMessage: "Žiadne akcie na zobrazenie" - }; - - return sk; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/sl.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/sl.js deleted file mode 100644 index 32335535..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/sl.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.sl = factory())); -}(this, function () { 'use strict'; - - var sl = { - code: "sl", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Prejšnji", - next: "Naslednji", - today: "Trenutni", - month: "Mesec", - week: "Teden", - day: "Dan", - list: "Dnevni red" - }, - weekLabel: "Teden", - allDayText: "Ves dan", - eventLimitText: "več", - noEventsMessage: "Ni dogodkov za prikaz" - }; - - return sl; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/sq.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/sq.js deleted file mode 100644 index 0d43a522..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/sq.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.sq = factory())); -}(this, function () { 'use strict'; - - var sq = { - code: "sq", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "mbrapa", - next: "Përpara", - today: "sot", - month: "Muaj", - week: "Javë", - day: "Ditë", - list: "Listë" - }, - weekLabel: "Ja", - allDayHtml: "Gjithë
ditën", - eventLimitText: function (n) { - return "+më tepër " + n; - }, - noEventsMessage: "Nuk ka evente për të shfaqur" - }; - - return sq; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/sr-cyrl.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/sr-cyrl.js deleted file mode 100644 index ba0d0dfa..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/sr-cyrl.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['sr-cyrl'] = factory())); -}(this, function () { 'use strict'; - - var srCyrl = { - code: "sr-cyrl", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Претходна", - next: "следећи", - today: "Данас", - month: "Месец", - week: "Недеља", - day: "Дан", - list: "Планер" - }, - weekLabel: "Сед", - allDayText: "Цео дан", - eventLimitText: function (n) { - return "+ још " + n; - }, - noEventsMessage: "Нема догађаја за приказ" - }; - - return srCyrl; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/sr.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/sr.js deleted file mode 100644 index 23e5c9b2..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/sr.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.sr = factory())); -}(this, function () { 'use strict'; - - var sr = { - code: "sr", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Prethodna", - next: "Sledeći", - today: "Danas", - month: "Mеsеc", - week: "Nеdеlja", - day: "Dan", - list: "Planеr" - }, - weekLabel: "Sed", - allDayText: "Cеo dan", - eventLimitText: function (n) { - return "+ još " + n; - }, - noEventsMessage: "Nеma događaja za prikaz" - }; - - return sr; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/sv.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/sv.js deleted file mode 100644 index a887060b..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/sv.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.sv = factory())); -}(this, function () { 'use strict'; - - var sv = { - code: "sv", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Förra", - next: "Nästa", - today: "Idag", - month: "Månad", - week: "Vecka", - day: "Dag", - list: "Program" - }, - weekLabel: "v.", - allDayText: "Heldag", - eventLimitText: "till", - noEventsMessage: "Inga händelser att visa" - }; - - return sv; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/th.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/th.js deleted file mode 100644 index caa3fe9a..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/th.js +++ /dev/null @@ -1,25 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.th = factory())); -}(this, function () { 'use strict'; - - var th = { - code: "th", - buttonText: { - prev: "ย้อน", - next: "ถัดไป", - today: "วันนี้", - month: "เดือน", - week: "สัปดาห์", - day: "วัน", - list: "แผนงาน" - }, - allDayText: "ตลอดวัน", - eventLimitText: "เพิ่มเติม", - noEventsMessage: "ไม่มีกิจกรรมที่จะแสดง" - }; - - return th; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/tr.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/tr.js deleted file mode 100644 index 48458982..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/tr.js +++ /dev/null @@ -1,30 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.tr = factory())); -}(this, function () { 'use strict'; - - var tr = { - code: "tr", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "geri", - next: "ileri", - today: "bugün", - month: "Ay", - week: "Hafta", - day: "Gün", - list: "Ajanda" - }, - weekLabel: "Hf", - allDayText: "Tüm gün", - eventLimitText: "daha fazla", - noEventsMessage: "Gösterilecek etkinlik yok" - }; - - return tr; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/uk.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/uk.js deleted file mode 100644 index de33f250..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/uk.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.uk = factory())); -}(this, function () { 'use strict'; - - var uk = { - code: "uk", - week: { - dow: 1, - doy: 7 // The week that contains Jan 1st is the first week of the year. - }, - buttonText: { - prev: "Попередній", - next: "далі", - today: "Сьогодні", - month: "Місяць", - week: "Тиждень", - day: "День", - list: "Порядок денний" - }, - weekLabel: "Тиж", - allDayText: "Увесь день", - eventLimitText: function (n) { - return "+ще " + n + "..."; - }, - noEventsMessage: "Немає подій для відображення" - }; - - return uk; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/vi.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/vi.js deleted file mode 100644 index 167ce11d..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/vi.js +++ /dev/null @@ -1,32 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.vi = factory())); -}(this, function () { 'use strict'; - - var vi = { - code: "vi", - week: { - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "Trước", - next: "Tiếp", - today: "Hôm nay", - month: "Tháng", - week: "Tuần", - day: "Ngày", - list: "Lịch biểu" - }, - weekLabel: "Tu", - allDayText: "Cả ngày", - eventLimitText: function (n) { - return "+ thêm " + n; - }, - noEventsMessage: "Không có sự kiện để hiển thị" - }; - - return vi; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/zh-cn.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/zh-cn.js deleted file mode 100644 index 4debbb9e..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/zh-cn.js +++ /dev/null @@ -1,33 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['zh-cn'] = factory())); -}(this, function () { 'use strict'; - - var zhCn = { - code: "zh-cn", - week: { - // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效 - dow: 1, - doy: 4 // The week that contains Jan 4th is the first week of the year. - }, - buttonText: { - prev: "上月", - next: "下月", - today: "今天", - month: "月", - week: "周", - day: "日", - list: "日程" - }, - weekLabel: "周", - allDayText: "全天", - eventLimitText: function (n) { - return "另外 " + n + " 个"; - }, - noEventsMessage: "没有事件显示" - }; - - return zhCn; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/zh-tw.js b/htdocs/public/high/plugins/fullcalendar/packages/core/locales/zh-tw.js deleted file mode 100644 index bc14dcd4..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/locales/zh-tw.js +++ /dev/null @@ -1,26 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['zh-tw'] = factory())); -}(this, function () { 'use strict'; - - var zhTw = { - code: "zh-tw", - buttonText: { - prev: "上月", - next: "下月", - today: "今天", - month: "月", - week: "週", - day: "天", - list: "活動列表" - }, - weekLabel: "周", - allDayText: "整天", - eventLimitText: '顯示更多', - noEventsMessage: "没有任何活動" - }; - - return zhTw; - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/main.css b/htdocs/public/high/plugins/fullcalendar/packages/core/main.css deleted file mode 100644 index 4412a185..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/main.css +++ /dev/null @@ -1,1052 +0,0 @@ -@charset "UTF-8"; -.fc { - direction: ltr; - text-align: left; -} - -.fc-rtl { - text-align: right; -} - -body .fc { - /* extra precedence to overcome jqui */ - font-size: 1em; -} - -/* Colors ---------------------------------------------------------------------------------------------------*/ -.fc-highlight { - /* when user is selecting cells */ - background: #bce8f1; - opacity: 0.3; -} - -.fc-bgevent { - /* default look for background events */ - background: #8fdf82; - opacity: 0.3; -} - -.fc-nonbusiness { - /* default look for non-business-hours areas */ - /* will inherit .fc-bgevent's styles */ - background: #d7d7d7; -} - -/* Popover ---------------------------------------------------------------------------------------------------*/ -.fc-popover { - position: absolute; - box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15); -} - -.fc-popover .fc-header { - /* TODO: be more consistent with fc-head/fc-body */ - display: flex; - flex-direction: row; - justify-content: space-between; - align-items: center; - padding: 2px 4px; -} - -.fc-rtl .fc-popover .fc-header { - flex-direction: row-reverse; -} - -.fc-popover .fc-header .fc-title { - margin: 0 2px; -} - -.fc-popover .fc-header .fc-close { - cursor: pointer; - opacity: 0.65; - font-size: 1.1em; -} - -/* Misc Reusable Components ---------------------------------------------------------------------------------------------------*/ -.fc-divider { - border-style: solid; - border-width: 1px; -} - -hr.fc-divider { - height: 0; - margin: 0; - padding: 0 0 2px; - /* height is unreliable across browsers, so use padding */ - border-width: 1px 0; -} - -.fc-bg, -.fc-bgevent-skeleton, -.fc-highlight-skeleton, -.fc-mirror-skeleton { - /* these element should always cling to top-left/right corners */ - position: absolute; - top: 0; - left: 0; - right: 0; -} - -.fc-bg { - bottom: 0; - /* strech bg to bottom edge */ -} - -.fc-bg table { - height: 100%; - /* strech bg to bottom edge */ -} - -/* Tables ---------------------------------------------------------------------------------------------------*/ -.fc table { - width: 100%; - box-sizing: border-box; - /* fix scrollbar issue in firefox */ - table-layout: fixed; - border-collapse: collapse; - border-spacing: 0; - font-size: 1em; - /* normalize cross-browser */ -} - -.fc th { - text-align: center; -} - -.fc th, -.fc td { - border-style: solid; - border-width: 1px; - padding: 0; - vertical-align: top; -} - -.fc td.fc-today { - border-style: double; - /* overcome neighboring borders */ -} - -/* Internal Nav Links ---------------------------------------------------------------------------------------------------*/ -a[data-goto] { - cursor: pointer; -} - -a[data-goto]:hover { - text-decoration: underline; -} - -/* Fake Table Rows ---------------------------------------------------------------------------------------------------*/ -.fc .fc-row { - /* extra precedence to overcome themes forcing a 1px border */ - /* no visible border by default. but make available if need be (scrollbar width compensation) */ - border-style: solid; - border-width: 0; -} - -.fc-row table { - /* don't put left/right border on anything within a fake row. - the outer tbody will worry about this */ - border-left: 0 hidden transparent; - border-right: 0 hidden transparent; - /* no bottom borders on rows */ - border-bottom: 0 hidden transparent; -} - -.fc-row:first-child table { - border-top: 0 hidden transparent; - /* no top border on first row */ -} - -/* Day Row (used within the header and the DayGrid) ---------------------------------------------------------------------------------------------------*/ -.fc-row { - position: relative; -} - -.fc-row .fc-bg { - z-index: 1; -} - -/* highlighting cells & background event skeleton */ -.fc-row .fc-bgevent-skeleton, -.fc-row .fc-highlight-skeleton { - bottom: 0; - /* stretch skeleton to bottom of row */ -} - -.fc-row .fc-bgevent-skeleton table, -.fc-row .fc-highlight-skeleton table { - height: 100%; - /* stretch skeleton to bottom of row */ -} - -.fc-row .fc-highlight-skeleton td, -.fc-row .fc-bgevent-skeleton td { - border-color: transparent; -} - -.fc-row .fc-bgevent-skeleton { - z-index: 2; -} - -.fc-row .fc-highlight-skeleton { - z-index: 3; -} - -/* -row content (which contains day/week numbers and events) as well as "mirror" (which contains -temporary rendered events). -*/ -.fc-row .fc-content-skeleton { - position: relative; - z-index: 4; - padding-bottom: 2px; - /* matches the space above the events */ -} - -.fc-row .fc-mirror-skeleton { - z-index: 5; -} - -.fc .fc-row .fc-content-skeleton table, -.fc .fc-row .fc-content-skeleton td, -.fc .fc-row .fc-mirror-skeleton td { - /* see-through to the background below */ - /* extra precedence to prevent theme-provided backgrounds */ - background: none; - /* in case s are globally styled */ - border-color: transparent; -} - -.fc-row .fc-content-skeleton td, -.fc-row .fc-mirror-skeleton td { - /* don't put a border between events and/or the day number */ - border-bottom: 0; -} - -.fc-row .fc-content-skeleton tbody td, -.fc-row .fc-mirror-skeleton tbody td { - /* don't put a border between event cells */ - border-top: 0; -} - -/* Scrolling Container ---------------------------------------------------------------------------------------------------*/ -.fc-scroller { - -webkit-overflow-scrolling: touch; -} - -/* TODO: move to timegrid/daygrid */ -.fc-scroller > .fc-day-grid, -.fc-scroller > .fc-time-grid { - position: relative; - /* re-scope all positions */ - width: 100%; - /* hack to force re-sizing this inner element when scrollbars appear/disappear */ -} - -/* Global Event Styles ---------------------------------------------------------------------------------------------------*/ -.fc-event { - position: relative; - /* for resize handle and other inner positioning */ - display: block; - /* make the tag block */ - font-size: 0.85em; - line-height: 1.4; - border-radius: 3px; - border: 1px solid #3788d8; -} - -.fc-event, -.fc-event-dot { - background-color: #3788d8; - /* default BACKGROUND color */ -} - -.fc-event, -.fc-event:hover { - color: #fff; - /* default TEXT color */ - text-decoration: none; - /* if has an href */ -} - -.fc-event[href], -.fc-event.fc-draggable { - cursor: pointer; - /* give events with links and draggable events a hand mouse pointer */ -} - -.fc-not-allowed, -.fc-not-allowed .fc-event { - /* to override an event's custom cursor */ - cursor: not-allowed; -} - -.fc-event .fc-content { - position: relative; - z-index: 2; -} - -/* resizer (cursor AND touch devices) */ -.fc-event .fc-resizer { - position: absolute; - z-index: 4; -} - -/* resizer (touch devices) */ -.fc-event .fc-resizer { - display: none; -} - -.fc-event.fc-allow-mouse-resize .fc-resizer, -.fc-event.fc-selected .fc-resizer { - /* only show when hovering or selected (with touch) */ - display: block; -} - -/* hit area */ -.fc-event.fc-selected .fc-resizer:before { - /* 40x40 touch area */ - content: ""; - position: absolute; - z-index: 9999; - /* user of this util can scope within a lower z-index */ - top: 50%; - left: 50%; - width: 40px; - height: 40px; - margin-left: -20px; - margin-top: -20px; -} - -/* Event Selection (only for touch devices) ---------------------------------------------------------------------------------------------------*/ -.fc-event.fc-selected { - z-index: 9999 !important; - /* overcomes inline z-index */ - box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2); -} - -.fc-event.fc-selected:after { - content: ""; - position: absolute; - z-index: 1; - /* same z-index as fc-bg, behind text */ - /* overcome the borders */ - top: -1px; - right: -1px; - bottom: -1px; - left: -1px; - /* darkening effect */ - background: #000; - opacity: 0.25; -} - -/* Event Dragging ---------------------------------------------------------------------------------------------------*/ -.fc-event.fc-dragging.fc-selected { - box-shadow: 0 2px 7px rgba(0, 0, 0, 0.3); -} - -.fc-event.fc-dragging:not(.fc-selected) { - opacity: 0.75; -} - -/* Horizontal Events ---------------------------------------------------------------------------------------------------*/ -/* bigger touch area when selected */ -.fc-h-event.fc-selected:before { - content: ""; - position: absolute; - z-index: 3; - /* below resizers */ - top: -10px; - bottom: -10px; - left: 0; - right: 0; -} - -/* events that are continuing to/from another week. kill rounded corners and butt up against edge */ -.fc-ltr .fc-h-event.fc-not-start, -.fc-rtl .fc-h-event.fc-not-end { - margin-left: 0; - border-left-width: 0; - padding-left: 1px; - /* replace the border with padding */ - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} - -.fc-ltr .fc-h-event.fc-not-end, -.fc-rtl .fc-h-event.fc-not-start { - margin-right: 0; - border-right-width: 0; - padding-right: 1px; - /* replace the border with padding */ - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} - -/* resizer (cursor AND touch devices) */ -/* left resizer */ -.fc-ltr .fc-h-event .fc-start-resizer, -.fc-rtl .fc-h-event .fc-end-resizer { - cursor: w-resize; - left: -1px; - /* overcome border */ -} - -/* right resizer */ -.fc-ltr .fc-h-event .fc-end-resizer, -.fc-rtl .fc-h-event .fc-start-resizer { - cursor: e-resize; - right: -1px; - /* overcome border */ -} - -/* resizer (mouse devices) */ -.fc-h-event.fc-allow-mouse-resize .fc-resizer { - width: 7px; - top: -1px; - /* overcome top border */ - bottom: -1px; - /* overcome bottom border */ -} - -/* resizer (touch devices) */ -.fc-h-event.fc-selected .fc-resizer { - /* 8x8 little dot */ - border-radius: 4px; - border-width: 1px; - width: 6px; - height: 6px; - border-style: solid; - border-color: inherit; - background: #fff; - /* vertically center */ - top: 50%; - margin-top: -4px; -} - -/* left resizer */ -.fc-ltr .fc-h-event.fc-selected .fc-start-resizer, -.fc-rtl .fc-h-event.fc-selected .fc-end-resizer { - margin-left: -4px; - /* centers the 8x8 dot on the left edge */ -} - -/* right resizer */ -.fc-ltr .fc-h-event.fc-selected .fc-end-resizer, -.fc-rtl .fc-h-event.fc-selected .fc-start-resizer { - margin-right: -4px; - /* centers the 8x8 dot on the right edge */ -} - -/* DayGrid events ----------------------------------------------------------------------------------------------------- -We use the full "fc-day-grid-event" class instead of using descendants because the event won't -be a descendant of the grid when it is being dragged. -*/ -.fc-day-grid-event { - margin: 1px 2px 0; - /* spacing between events and edges */ - padding: 0 1px; -} - -tr:first-child > td > .fc-day-grid-event { - margin-top: 2px; - /* a little bit more space before the first event */ -} - -.fc-mirror-skeleton tr:first-child > td > .fc-day-grid-event { - margin-top: 0; - /* except for mirror skeleton */ -} - -.fc-day-grid-event .fc-content { - /* force events to be one-line tall */ - white-space: nowrap; - overflow: hidden; -} - -.fc-day-grid-event .fc-time { - font-weight: bold; -} - -/* resizer (cursor devices) */ -/* left resizer */ -.fc-ltr .fc-day-grid-event.fc-allow-mouse-resize .fc-start-resizer, -.fc-rtl .fc-day-grid-event.fc-allow-mouse-resize .fc-end-resizer { - margin-left: -2px; - /* to the day cell's edge */ -} - -/* right resizer */ -.fc-ltr .fc-day-grid-event.fc-allow-mouse-resize .fc-end-resizer, -.fc-rtl .fc-day-grid-event.fc-allow-mouse-resize .fc-start-resizer { - margin-right: -2px; - /* to the day cell's edge */ -} - -/* Event Limiting ---------------------------------------------------------------------------------------------------*/ -/* "more" link that represents hidden events */ -a.fc-more { - margin: 1px 3px; - font-size: 0.85em; - cursor: pointer; - text-decoration: none; -} - -a.fc-more:hover { - text-decoration: underline; -} - -.fc-limited { - /* rows and cells that are hidden because of a "more" link */ - display: none; -} - -/* popover that appears when "more" link is clicked */ -.fc-day-grid .fc-row { - z-index: 1; - /* make the "more" popover one higher than this */ -} - -.fc-more-popover { - z-index: 2; - width: 220px; -} - -.fc-more-popover .fc-event-container { - padding: 10px; -} - -/* Now Indicator ---------------------------------------------------------------------------------------------------*/ -.fc-now-indicator { - position: absolute; - border: 0 solid red; -} - -/* Utilities ---------------------------------------------------------------------------------------------------*/ -.fc-unselectable { - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - -webkit-touch-callout: none; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -} - -/* -TODO: more distinction between this file and common.css -*/ -/* Colors ---------------------------------------------------------------------------------------------------*/ -.fc-unthemed th, -.fc-unthemed td, -.fc-unthemed thead, -.fc-unthemed tbody, -.fc-unthemed .fc-divider, -.fc-unthemed .fc-row, -.fc-unthemed .fc-content, -.fc-unthemed .fc-popover, -.fc-unthemed .fc-list-view, -.fc-unthemed .fc-list-heading td { - border-color: #ddd; -} - -.fc-unthemed .fc-popover { - background-color: #fff; -} - -.fc-unthemed .fc-divider, -.fc-unthemed .fc-popover .fc-header, -.fc-unthemed .fc-list-heading td { - background: #eee; -} - -.fc-unthemed td.fc-today { - background: #fcf8e3; -} - -.fc-unthemed .fc-disabled-day { - background: #d7d7d7; - opacity: 0.3; -} - -/* Icons --------------------------------------------------------------------------------------------------- -from https://feathericons.com/ and built with IcoMoon -*/ -@font-face { - font-family: "fcicons"; - src: url("data:application/x-font-ttf;charset=utf-8;base64,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") format("truetype"); - font-weight: normal; - font-style: normal; -} -.fc-icon { - /* use !important to prevent issues with browser extensions that change fonts */ - font-family: "fcicons" !important; - speak: none; - font-style: normal; - font-weight: normal; - font-variant: normal; - text-transform: none; - line-height: 1; - /* Better Font Rendering =========== */ - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -.fc-icon-chevron-left:before { - content: ""; -} - -.fc-icon-chevron-right:before { - content: ""; -} - -.fc-icon-chevrons-left:before { - content: ""; -} - -.fc-icon-chevrons-right:before { - content: ""; -} - -.fc-icon-minus-square:before { - content: ""; -} - -.fc-icon-plus-square:before { - content: ""; -} - -.fc-icon-x:before { - content: ""; -} - -.fc-icon { - display: inline-block; - width: 1em; - height: 1em; - text-align: center; -} - -/* Buttons --------------------------------------------------------------------------------------------------- -Lots taken from Flatly (MIT): https://bootswatch.com/4/flatly/bootstrap.css -*/ -/* reset */ -.fc-button { - border-radius: 0; - overflow: visible; - text-transform: none; - margin: 0; - font-family: inherit; - font-size: inherit; - line-height: inherit; -} - -.fc-button:focus { - outline: 1px dotted; - outline: 5px auto -webkit-focus-ring-color; -} - -.fc-button { - -webkit-appearance: button; -} - -.fc-button:not(:disabled) { - cursor: pointer; -} - -.fc-button::-moz-focus-inner { - padding: 0; - border-style: none; -} - -/* theme */ -.fc-button { - display: inline-block; - font-weight: 400; - color: #212529; - text-align: center; - vertical-align: middle; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - background-color: transparent; - border: 1px solid transparent; - padding: 0.4em 0.65em; - font-size: 1em; - line-height: 1.5; - border-radius: 0.25em; -} - -.fc-button:hover { - color: #212529; - text-decoration: none; -} - -.fc-button:focus { - outline: 0; - -webkit-box-shadow: 0 0 0 0.2rem rgba(44, 62, 80, 0.25); - box-shadow: 0 0 0 0.2rem rgba(44, 62, 80, 0.25); -} - -.fc-button:disabled { - opacity: 0.65; -} - -/* "primary" coloring */ -.fc-button-primary { - color: #fff; - background-color: #2C3E50; - border-color: #2C3E50; -} - -.fc-button-primary:hover { - color: #fff; - background-color: #1e2b37; - border-color: #1a252f; -} - -.fc-button-primary:focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(76, 91, 106, 0.5); - box-shadow: 0 0 0 0.2rem rgba(76, 91, 106, 0.5); -} - -.fc-button-primary:disabled { - color: #fff; - background-color: #2C3E50; - border-color: #2C3E50; -} - -.fc-button-primary:not(:disabled):active, -.fc-button-primary:not(:disabled).fc-button-active { - color: #fff; - background-color: #1a252f; - border-color: #151e27; -} - -.fc-button-primary:not(:disabled):active:focus, -.fc-button-primary:not(:disabled).fc-button-active:focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(76, 91, 106, 0.5); - box-shadow: 0 0 0 0.2rem rgba(76, 91, 106, 0.5); -} - -/* icons within buttons */ -.fc-button .fc-icon { - vertical-align: middle; - font-size: 1.5em; -} - -/* Buttons Groups ---------------------------------------------------------------------------------------------------*/ -.fc-button-group { - position: relative; - display: -webkit-inline-box; - display: -ms-inline-flexbox; - display: inline-flex; - vertical-align: middle; -} - -.fc-button-group > .fc-button { - position: relative; - -webkit-box-flex: 1; - -ms-flex: 1 1 auto; - flex: 1 1 auto; -} - -.fc-button-group > .fc-button:hover { - z-index: 1; -} - -.fc-button-group > .fc-button:focus, -.fc-button-group > .fc-button:active, -.fc-button-group > .fc-button.fc-button-active { - z-index: 1; -} - -.fc-button-group > .fc-button:not(:first-child) { - margin-left: -1px; -} - -.fc-button-group > .fc-button:not(:last-child) { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} - -.fc-button-group > .fc-button:not(:first-child) { - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} - -/* Popover ---------------------------------------------------------------------------------------------------*/ -.fc-unthemed .fc-popover { - border-width: 1px; - border-style: solid; -} - -/* List View ---------------------------------------------------------------------------------------------------*/ -.fc-unthemed .fc-list-item:hover td { - background-color: #f5f5f5; -} - -/* Toolbar ---------------------------------------------------------------------------------------------------*/ -.fc-toolbar { - display: flex; - justify-content: space-between; - align-items: center; -} - -.fc-toolbar.fc-header-toolbar { - margin-bottom: 1.5em; -} - -.fc-toolbar.fc-footer-toolbar { - margin-top: 1.5em; -} - -/* inner content */ -.fc-toolbar > * > :not(:first-child) { - margin-left: 0.75em; -} - -.fc-toolbar h2 { - font-size: 1.75em; - margin: 0; -} - -/* View Structure ---------------------------------------------------------------------------------------------------*/ -.fc-view-container { - position: relative; -} - -/* undo twitter bootstrap's box-sizing rules. normalizes positioning techniques */ -/* don't do this for the toolbar because we'll want bootstrap to style those buttons as some pt */ -.fc-view-container *, -.fc-view-container *:before, -.fc-view-container *:after { - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; -} - -.fc-view, -.fc-view > table { - /* so dragged elements can be above the view's main element */ - position: relative; - z-index: 1; -} - -@media print { - .fc { - max-width: 100% !important; - } - - /* Global Event Restyling - --------------------------------------------------------------------------------------------------*/ - .fc-event { - background: #fff !important; - color: #000 !important; - page-break-inside: avoid; - } - - .fc-event .fc-resizer { - display: none; - } - - /* Table & Day-Row Restyling - --------------------------------------------------------------------------------------------------*/ - .fc th, -.fc td, -.fc hr, -.fc thead, -.fc tbody, -.fc-row { - border-color: #ccc !important; - background: #fff !important; - } - - /* kill the overlaid, absolutely-positioned components */ - /* common... */ - .fc-bg, -.fc-bgevent-skeleton, -.fc-highlight-skeleton, -.fc-mirror-skeleton, -.fc-bgevent-container, -.fc-business-container, -.fc-highlight-container, -.fc-mirror-container { - display: none; - } - - /* don't force a min-height on rows (for DayGrid) */ - .fc tbody .fc-row { - height: auto !important; - /* undo height that JS set in distributeHeight */ - min-height: 0 !important; - /* undo the min-height from each view's specific stylesheet */ - } - - .fc tbody .fc-row .fc-content-skeleton { - position: static; - /* undo .fc-rigid */ - padding-bottom: 0 !important; - /* use a more border-friendly method for this... */ - } - - .fc tbody .fc-row .fc-content-skeleton tbody tr:last-child td { - /* only works in newer browsers */ - padding-bottom: 1em; - /* ...gives space within the skeleton. also ensures min height in a way */ - } - - .fc tbody .fc-row .fc-content-skeleton table { - /* provides a min-height for the row, but only effective for IE, which exaggerates this value, - making it look more like 3em. for other browers, it will already be this tall */ - height: 1em; - } - - /* Undo month-view event limiting. Display all events and hide the "more" links - --------------------------------------------------------------------------------------------------*/ - .fc-more-cell, -.fc-more { - display: none !important; - } - - .fc tr.fc-limited { - display: table-row !important; - } - - .fc td.fc-limited { - display: table-cell !important; - } - - .fc-popover { - display: none; - /* never display the "more.." popover in print mode */ - } - - /* TimeGrid Restyling - --------------------------------------------------------------------------------------------------*/ - /* undo the min-height 100% trick used to fill the container's height */ - .fc-time-grid { - min-height: 0 !important; - } - - /* don't display the side axis at all ("all-day" and time cells) */ - .fc-timeGrid-view .fc-axis { - display: none; - } - - /* don't display the horizontal lines */ - .fc-slats, -.fc-time-grid hr { - /* this hr is used when height is underused and needs to be filled */ - display: none !important; - /* important overrides inline declaration */ - } - - /* let the container that holds the events be naturally positioned and create real height */ - .fc-time-grid .fc-content-skeleton { - position: static; - } - - /* in case there are no events, we still want some height */ - .fc-time-grid .fc-content-skeleton table { - height: 4em; - } - - /* kill the horizontal spacing made by the event container. event margins will be done below */ - .fc-time-grid .fc-event-container { - margin: 0 !important; - } - - /* TimeGrid *Event* Restyling - --------------------------------------------------------------------------------------------------*/ - /* naturally position events, vertically stacking them */ - .fc-time-grid .fc-event { - position: static !important; - margin: 3px 2px !important; - } - - /* for events that continue to a future day, give the bottom border back */ - .fc-time-grid .fc-event.fc-not-end { - border-bottom-width: 1px !important; - } - - /* indicate the event continues via "..." text */ - .fc-time-grid .fc-event.fc-not-end:after { - content: "..."; - } - - /* for events that are continuations from previous days, give the top border back */ - .fc-time-grid .fc-event.fc-not-start { - border-top-width: 1px !important; - } - - /* indicate the event is a continuation via "..." text */ - .fc-time-grid .fc-event.fc-not-start:before { - content: "..."; - } - - /* time */ - /* undo a previous declaration and let the time text span to a second line */ - .fc-time-grid .fc-event .fc-time { - white-space: normal !important; - } - - /* hide the the time that is normally displayed... */ - .fc-time-grid .fc-event .fc-time span { - display: none; - } - - /* ...replace it with a more verbose version (includes AM/PM) stored in an html attribute */ - .fc-time-grid .fc-event .fc-time:after { - content: attr(data-full); - } - - /* Vertical Scroller & Containers - --------------------------------------------------------------------------------------------------*/ - /* kill the scrollbars and allow natural height */ - .fc-scroller, -.fc-day-grid-container, -.fc-time-grid-container { - /* */ - overflow: visible !important; - height: auto !important; - } - - /* kill the horizontal border/padding used to compensate for scrollbars */ - .fc-row { - border: 0 !important; - margin: 0 !important; - } - - /* Button Controls - --------------------------------------------------------------------------------------------------*/ - .fc-button-group, -.fc button { - display: none; - /* don't display any button-related controls */ - } -} diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/main.d.ts b/htdocs/public/high/plugins/fullcalendar/packages/core/main.d.ts deleted file mode 100644 index cfd23435..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/main.d.ts +++ /dev/null @@ -1,2730 +0,0 @@ -// Generated by dts-bundle v0.7.3-fork.1 -// Dependencies for this module: -// ../../../../../@fullcalendar/core - -declare module '@fullcalendar/core' { - export const version = "<%= version %>"; - export { OptionsInput } from '@fullcalendar/core/types/input-types'; - export { EventInput, EventDef, EventDefHash, EventInstance, EventInstanceHash, parseEventDef, createEventInstance, EventTuple } from '@fullcalendar/core/structs/event'; - export { BusinessHoursInput, parseBusinessHours } from '@fullcalendar/core/structs/business-hours'; - export { applyAll, debounce, padStart, isInt, capitaliseFirstLetter, parseFieldSpecs, compareByFieldSpecs, compareByFieldSpec, flexibleCompare, computeVisibleDayRange, refineProps, matchCellWidths, uncompensateScroll, compensateScroll, subtractInnerElHeight, isMultiDayRange, distributeHeight, undistributeHeight, preventSelection, allowSelection, preventContextMenu, allowContextMenu, compareNumbers, enableCursor, disableCursor, diffDates } from '@fullcalendar/core/util/misc'; - export { htmlEscape, cssToStr } from '@fullcalendar/core/util/html'; - export { removeExact, isArraysEqual } from '@fullcalendar/core/util/array'; - export { memoize, memoizeOutput } from '@fullcalendar/core/util/memoize'; - export { memoizeRendering, MemoizedRendering } from '@fullcalendar/core/component/memoized-rendering'; - export { intersectRects, Rect, pointInsideRect, constrainPoint, getRectCenter, diffPoints, Point, translateRect } from '@fullcalendar/core/util/geom'; - export { mapHash, filterHash, isPropsEqual } from '@fullcalendar/core/util/object'; - export { findElements, findChildren, htmlToElement, createElement, insertAfterElement, prependToElement, removeElement, appendToElement, applyStyle, applyStyleProp, elementMatches, elementClosest, forceClassName } from '@fullcalendar/core/util/dom-manip'; - export { EventStore, filterEventStoreDefs, createEmptyEventStore, mergeEventStores, getRelevantEvents, eventTupleToStore } from '@fullcalendar/core/structs/event-store'; - export { EventUiHash, EventUi, processScopedUiProps, combineEventUis } from '@fullcalendar/core/component/event-ui'; - export { default as Splitter, SplittableProps } from '@fullcalendar/core/component/event-splitting'; - export { buildGotoAnchorHtml, getAllDayHtml, getDayClasses } from '@fullcalendar/core/component/date-rendering'; - export { preventDefault, listenBySelector, whenTransitionDone } from '@fullcalendar/core/util/dom-event'; - export { computeInnerRect, computeEdges, computeHeightAndMargins, getClippingParents, computeClippingRect, computeRect } from '@fullcalendar/core/util/dom-geom'; - export { unpromisify } from '@fullcalendar/core/util/promise'; - export { default as EmitterMixin, EmitterInterface } from '@fullcalendar/core/common/EmitterMixin'; - export { DateRange, rangeContainsMarker, intersectRanges, rangesEqual, rangesIntersect, rangeContainsRange } from '@fullcalendar/core/datelib/date-range'; - export { default as Mixin } from '@fullcalendar/core/common/Mixin'; - export { default as PositionCache } from '@fullcalendar/core/common/PositionCache'; - export { default as ScrollComponent, ScrollbarWidths } from '@fullcalendar/core/common/ScrollComponent'; - export { ScrollController, ElementScrollController, WindowScrollController } from '@fullcalendar/core/common/scroll-controller'; - export { default as Theme } from '@fullcalendar/core/theme/Theme'; - export { default as Component, ComponentContext } from '@fullcalendar/core/component/Component'; - export { default as DateComponent, Seg, EventSegUiInteractionState } from '@fullcalendar/core/component/DateComponent'; - export { default as Calendar, DatePointTransform, DateSpanTransform, DateSelectionApi } from '@fullcalendar/core/Calendar'; - export { default as View, ViewProps } from '@fullcalendar/core/View'; - export { default as FgEventRenderer, buildSegCompareObj } from '@fullcalendar/core/component/renderers/FgEventRenderer'; - export { default as FillRenderer } from '@fullcalendar/core/component/renderers/FillRenderer'; - export { default as DateProfileGenerator, DateProfile } from '@fullcalendar/core/DateProfileGenerator'; - export { ViewDef } from '@fullcalendar/core/structs/view-def'; - export { ViewSpec } from '@fullcalendar/core/structs/view-spec'; - export { DateSpan, DateSpanApi, DatePointApi, isDateSpansEqual } from '@fullcalendar/core/structs/date-span'; - export { DateMarker, addDays, startOfDay, addMs, addWeeks, diffWeeks, diffWholeWeeks, diffWholeDays, diffDayAndTime, diffDays, isValidDate } from '@fullcalendar/core/datelib/marker'; - export { Duration, createDuration, isSingleDay, multiplyDuration, addDurations, asRoughMinutes, asRoughSeconds, asRoughMs, wholeDivideDurations, greatestDurationDenominator } from '@fullcalendar/core/datelib/duration'; - export { DateEnv, DateMarkerMeta } from '@fullcalendar/core/datelib/env'; - export { DateFormatter, createFormatter, VerboseFormattingArg, formatIsoTimeString } from '@fullcalendar/core/datelib/formatting'; - export { NamedTimeZoneImpl } from '@fullcalendar/core/datelib/timezone'; - export { parse as parseMarker } from '@fullcalendar/core/datelib/parsing'; - export { EventSourceDef, EventSource, EventSourceHash } from '@fullcalendar/core/structs/event-source'; - export { Interaction, InteractionSettings, interactionSettingsToStore, interactionSettingsStore, InteractionSettingsStore } from '@fullcalendar/core/interactions/interaction'; - export { PointerDragEvent } from '@fullcalendar/core/interactions/pointer'; - export { Hit } from '@fullcalendar/core/interactions/hit'; - export { dateSelectionJoinTransformer } from '@fullcalendar/core/interactions/date-selecting'; - export { eventDragMutationMassager, EventDropTransformers } from '@fullcalendar/core/interactions/event-dragging'; - export { EventResizeJoinTransforms } from '@fullcalendar/core/interactions/event-resizing'; - export { default as ElementDragging } from '@fullcalendar/core/interactions/ElementDragging'; - export { formatDate, formatRange } from '@fullcalendar/core/formatting-api'; - export { globalDefaults, config } from '@fullcalendar/core/options'; - export { RecurringType, ParsedRecurring } from '@fullcalendar/core/structs/recurring-event'; - export { DragMetaInput, DragMeta, parseDragMeta } from '@fullcalendar/core/structs/drag-meta'; - export { createPlugin, PluginDef, PluginDefInput, ViewPropsTransformer, ViewContainerModifier } from '@fullcalendar/core/plugin-system'; - export { reducerFunc, Action, CalendarState } from '@fullcalendar/core/reducers/types'; - export { CalendarComponentProps } from '@fullcalendar/core/CalendarComponent'; - export { default as DayHeader } from '@fullcalendar/core/common/DayHeader'; - export { computeFallbackHeaderFormat, renderDateCell } from '@fullcalendar/core/common/table-utils'; - export { default as DaySeries } from '@fullcalendar/core/common/DaySeries'; - export { EventInteractionState } from '@fullcalendar/core/interactions/event-interaction-state'; - export { EventRenderRange, sliceEventStore, hasBgRendering, getElSeg } from '@fullcalendar/core/component/event-rendering'; - export { default as DayTable, DayTableSeg, DayTableCell } from '@fullcalendar/core/common/DayTable'; - export { default as Slicer, SlicedProps } from '@fullcalendar/core/common/slicing-utils'; - export { EventMutation, applyMutationToEventStore } from '@fullcalendar/core/structs/event-mutation'; - export { Constraint, ConstraintInput, AllowFunc, isPropsValid, isInteractionValid } from '@fullcalendar/core/validation'; - export { default as EventApi } from '@fullcalendar/core/api/EventApi'; - export { default as requestJson } from '@fullcalendar/core/util/requestJson'; -} - -declare module '@fullcalendar/core/types/input-types' { - import View from '@fullcalendar/core/View'; - import { EventSourceInput, EventInputTransformer } from '@fullcalendar/core/structs/event-source'; - import { Duration, DurationInput } from '@fullcalendar/core/datelib/duration'; - import { DateInput } from '@fullcalendar/core/datelib/env'; - import { FormatterInput } from '@fullcalendar/core/datelib/formatting'; - import { DateRangeInput } from '@fullcalendar/core/datelib/date-range'; - import { BusinessHoursInput } from '@fullcalendar/core/structs/business-hours'; - import EventApi from '@fullcalendar/core/api/EventApi'; - import { AllowFunc, ConstraintInput, OverlapFunc } from '@fullcalendar/core/validation'; - import { PluginDef } from '@fullcalendar/core/plugin-system'; - import { LocaleSingularArg, RawLocale } from '@fullcalendar/core/datelib/locale'; - export interface ToolbarInput { - left?: string; - center?: string; - right?: string; - } - export interface CustomButtonInput { - text: string; - icon?: string; - themeIcon?: string; - bootstrapFontAwesome?: string; - click(element: HTMLElement): void; - } - export interface ButtonIconsInput { - prev?: string; - next?: string; - prevYear?: string; - nextYear?: string; - } - export interface ButtonTextCompoundInput { - prev?: string; - next?: string; - prevYear?: string; - nextYear?: string; - today?: string; - month?: string; - week?: string; - day?: string; - [viewId: string]: string | undefined; - } - export interface EventSegment { - event: EventApi; - start: Date; - end: Date; - isStart: boolean; - isEnd: boolean; - } - export interface CellInfo { - date: Date; - dayEl: HTMLElement; - moreEl: HTMLElement; - segs: EventSegment[]; - hiddenSegs: EventSegment[]; - } - export interface DropInfo { - start: Date; - end: Date; - } - export type EventHandlerName = '_init' | 'selectAllow' | 'eventAllow' | 'eventDataTransform' | 'datesRender' | 'datesDestroy' | 'dayRender' | 'windowResize' | 'dateClick' | 'eventClick' | 'eventMouseEnter' | 'eventMouseLeave' | 'select' | 'unselect' | 'loading' | 'eventRender' | 'eventPositioned' | '_eventsPositioned' | 'eventDestroy' | 'eventDragStart' | 'eventDragStop' | 'eventDrop' | '_destroyed' | 'drop' | 'eventResizeStart' | 'eventResizeStop' | 'eventResize' | 'eventReceive' | 'eventLeave' | 'viewSkeletonRender' | 'viewSkeletonDestroy' | '_noEventDrop' | '_noEventResize' | 'eventLimitClick' | 'resourceRender'; - export type EventHandlerArgs = Parameters any>>; - export type EventHandlerArg = EventHandlerArgs[0]; - export interface OptionsInputBase { - header?: boolean | ToolbarInput; - footer?: boolean | ToolbarInput; - customButtons?: { - [name: string]: CustomButtonInput; - }; - buttonIcons?: boolean | ButtonIconsInput; - themeSystem?: 'standard' | string; - bootstrapFontAwesome?: boolean | ButtonIconsInput; - firstDay?: number; - dir?: 'ltr' | 'rtl' | 'auto'; - weekends?: boolean; - hiddenDays?: number[]; - fixedWeekCount?: boolean; - weekNumbers?: boolean; - weekNumbersWithinDays?: boolean; - weekNumberCalculation?: 'local' | 'ISO' | ((m: Date) => number); - businessHours?: BusinessHoursInput; - showNonCurrentDates?: boolean; - height?: number | 'auto' | 'parent' | (() => number); - contentHeight?: number | 'auto' | (() => number); - aspectRatio?: number; - handleWindowResize?: boolean; - windowResizeDelay?: number; - eventLimit?: boolean | number; - eventLimitClick?: 'popover' | 'week' | 'day' | 'timeGridWeek' | 'timeGridDay' | string | ((arg: { - date: Date; - allDay: boolean; - dayEl: HTMLElement; - moreEl: HTMLElement; - segs: any[]; - hiddenSegs: any[]; - jsEvent: MouseEvent; - view: View; - }) => void); - timeZone?: string | boolean; - now?: DateInput | (() => DateInput); - defaultView?: string; - allDaySlot?: boolean; - allDayText?: string; - slotDuration?: DurationInput; - slotLabelFormat?: FormatterInput; - slotLabelInterval?: DurationInput; - snapDuration?: DurationInput; - scrollTime?: DurationInput; - minTime?: DurationInput; - maxTime?: DurationInput; - slotEventOverlap?: boolean; - listDayFormat?: FormatterInput | boolean; - listDayAltFormat?: FormatterInput | boolean; - noEventsMessage?: string; - defaultDate?: DateInput; - nowIndicator?: boolean; - visibleRange?: ((currentDate: Date) => DateRangeInput) | DateRangeInput; - validRange?: DateRangeInput; - dateIncrement?: DurationInput; - dateAlignment?: string; - duration?: DurationInput; - dayCount?: number; - locales?: RawLocale[]; - locale?: LocaleSingularArg; - eventTimeFormat?: FormatterInput; - columnHeader?: boolean; - columnHeaderFormat?: FormatterInput; - columnHeaderText?: string | ((date: DateInput) => string); - columnHeaderHtml?: string | ((date: DateInput) => string); - titleFormat?: FormatterInput; - weekLabel?: string; - displayEventTime?: boolean; - displayEventEnd?: boolean; - eventLimitText?: string | ((eventCnt: number) => string); - dayPopoverFormat?: FormatterInput; - navLinks?: boolean; - navLinkDayClick?: string | ((date: Date, jsEvent: Event) => void); - navLinkWeekClick?: string | ((weekStart: any, jsEvent: Event) => void); - selectable?: boolean; - selectMirror?: boolean; - unselectAuto?: boolean; - unselectCancel?: string; - defaultAllDayEventDuration?: DurationInput; - defaultTimedEventDuration?: DurationInput; - cmdFormatter?: string; - defaultRangeSeparator?: string; - selectConstraint?: ConstraintInput; - selectOverlap?: boolean | OverlapFunc; - selectAllow?: AllowFunc; - editable?: boolean; - eventStartEditable?: boolean; - eventDurationEditable?: boolean; - eventConstraint?: ConstraintInput; - eventOverlap?: boolean | OverlapFunc; - eventAllow?: AllowFunc; - eventClassName?: string[] | string; - eventClassNames?: string[] | string; - eventBackgroundColor?: string; - eventBorderColor?: string; - eventTextColor?: string; - eventColor?: string; - events?: EventSourceInput; - eventSources?: EventSourceInput[]; - allDayDefault?: boolean; - startParam?: string; - endParam?: string; - lazyFetching?: boolean; - nextDayThreshold?: DurationInput; - eventOrder?: string | Array<((a: EventApi, b: EventApi) => number) | (string | ((a: EventApi, b: EventApi) => number))>; - rerenderDelay?: number | null; - dragRevertDuration?: number; - dragScroll?: boolean; - longPressDelay?: number; - eventLongPressDelay?: number; - droppable?: boolean; - dropAccept?: string | ((draggable: any) => boolean); - eventDataTransform?: EventInputTransformer; - allDayMaintainDuration?: boolean; - eventResizableFromStart?: boolean; - timeGridEventMinHeight?: number; - allDayHtml?: string; - eventDragMinDistance?: number; - eventSourceFailure?: any; - eventSourceSuccess?: any; - forceEventDuration?: boolean; - progressiveEventRendering?: boolean; - selectLongPressDelay?: number; - selectMinDistance?: number; - timeZoneParam?: string; - titleRangeSeparator?: string; - datesRender?(arg: { - view: View; - el: HTMLElement; - }): void; - datesDestroy?(arg: { - view: View; - el: HTMLElement; - }): void; - dayRender?(arg: { - view: View; - date: Date; - allDay?: boolean; - el: HTMLElement; - }): void; - windowResize?(view: View): void; - dateClick?(arg: { - date: Date; - dateStr: string; - allDay: boolean; - resource?: any; - dayEl: HTMLElement; - jsEvent: MouseEvent; - view: View; - }): void; - eventClick?(arg: { - el: HTMLElement; - event: EventApi; - jsEvent: MouseEvent; - view: View; - }): boolean | void; - eventMouseEnter?(arg: { - el: HTMLElement; - event: EventApi; - jsEvent: MouseEvent; - view: View; - }): void; - eventMouseLeave?(arg: { - el: HTMLElement; - event: EventApi; - jsEvent: MouseEvent; - view: View; - }): void; - select?(arg: { - start: Date; - end: Date; - startStr: string; - endStr: string; - allDay: boolean; - resource?: any; - jsEvent: MouseEvent; - view: View; - }): void; - unselect?(arg: { - view: View; - jsEvent: Event; - }): void; - loading?(isLoading: boolean): void; - eventRender?(arg: { - isMirror: boolean; - isStart: boolean; - isEnd: boolean; - event: EventApi; - el: HTMLElement; - view: View; - }): void; - eventPositioned?(arg: { - isMirror: boolean; - isStart: boolean; - isEnd: boolean; - event: EventApi; - el: HTMLElement; - view: View; - }): void; - _eventsPositioned?(arg: { - view: View; - }): void; - eventDestroy?(arg: { - isMirror: boolean; - event: EventApi; - el: HTMLElement; - view: View; - }): void; - eventDragStart?(arg: { - event: EventApi; - el: HTMLElement; - jsEvent: MouseEvent; - view: View; - }): void; - eventDragStop?(arg: { - event: EventApi; - el: HTMLElement; - jsEvent: MouseEvent; - view: View; - }): void; - eventDrop?(arg: { - el: HTMLElement; - event: EventApi; - oldEvent: EventApi; - delta: Duration; - revert: () => void; - jsEvent: Event; - view: View; - }): void; - eventResizeStart?(arg: { - el: HTMLElement; - event: EventApi; - jsEvent: MouseEvent; - view: View; - }): void; - eventResizeStop?(arg: { - el: HTMLElement; - event: EventApi; - jsEvent: MouseEvent; - view: View; - }): void; - eventResize?(arg: { - el: HTMLElement; - startDelta: Duration; - endDelta: Duration; - prevEvent: EventApi; - event: EventApi; - revert: () => void; - jsEvent: Event; - view: View; - }): void; - drop?(arg: { - date: Date; - dateStr: string; - allDay: boolean; - draggedEl: HTMLElement; - jsEvent: MouseEvent; - view: View; - }): void; - eventReceive?(arg: { - event: EventApi; - draggedEl: HTMLElement; - view: View; - }): void; - eventLeave?(arg: { - draggedEl: HTMLElement; - event: EventApi; - view: View; - }): void; - viewSkeletonRender?(arg: { - el: HTMLElement; - view: View; - }): void; - viewSkeletonDestroy?(arg: { - el: HTMLElement; - view: View; - }): void; - _destroyed?(): void; - _init?(): void; - _noEventDrop?(): void; - _noEventResize?(): void; - resourceRender?(arg: { - resource: any; - el: HTMLElement; - view: View; - }): void; - } - export interface ViewOptionsInput extends OptionsInputBase { - type?: string; - buttonText?: string; - } - export interface OptionsInput extends OptionsInputBase { - buttonText?: ButtonTextCompoundInput; - views?: { - [viewId: string]: ViewOptionsInput; - }; - plugins?: (PluginDef | string)[]; - } -} - -declare module '@fullcalendar/core/structs/event' { - import { DateInput } from '@fullcalendar/core/datelib/env'; - import Calendar from '@fullcalendar/core/Calendar'; - import { DateRange } from '@fullcalendar/core/datelib/date-range'; - import { Duration } from '@fullcalendar/core/datelib/duration'; - import { UnscopedEventUiInput, EventUi } from '@fullcalendar/core/component/event-ui'; - export type EventRenderingChoice = '' | 'background' | 'inverse-background' | 'none'; - export interface EventNonDateInput extends UnscopedEventUiInput { - id?: string | number; - groupId?: string | number; - title?: string; - url?: string; - rendering?: EventRenderingChoice; - extendedProps?: object; - [extendedProp: string]: any; - } - export interface EventDateInput { - start?: DateInput; - end?: DateInput; - date?: DateInput; - allDay?: boolean; - } - export type EventInput = EventNonDateInput & EventDateInput; - export interface EventDef { - defId: string; - sourceId: string; - publicId: string; - groupId: string; - allDay: boolean; - hasEnd: boolean; - recurringDef: { - typeId: number; - typeData: any; - duration: Duration | null; - } | null; - title: string; - url: string; - rendering: EventRenderingChoice; - ui: EventUi; - extendedProps: any; - } - export interface EventInstance { - instanceId: string; - defId: string; - range: DateRange; - forcedStartTzo: number | null; - forcedEndTzo: number | null; - } - export interface EventTuple { - def: EventDef; - instance: EventInstance | null; - } - export type EventInstanceHash = { - [instanceId: string]: EventInstance; - }; - export type EventDefHash = { - [defId: string]: EventDef; - }; - export const NON_DATE_PROPS: { - id: StringConstructor; - groupId: StringConstructor; - title: StringConstructor; - url: StringConstructor; - rendering: StringConstructor; - extendedProps: any; - }; - export const DATE_PROPS: { - start: any; - date: any; - end: any; - allDay: any; - }; - export function parseEvent(raw: EventInput, sourceId: string, calendar: Calendar, allowOpenRange?: boolean): EventTuple | null; - export function parseEventDef(raw: EventNonDateInput, sourceId: string, allDay: boolean, hasEnd: boolean, calendar: Calendar): EventDef; - export type eventDefParserFunc = (def: EventDef, props: any, leftovers: any) => void; - export function createEventInstance(defId: string, range: DateRange, forcedStartTzo?: number, forcedEndTzo?: number): EventInstance; -} - -declare module '@fullcalendar/core/structs/business-hours' { - import Calendar from '@fullcalendar/core/Calendar'; - import { EventInput } from '@fullcalendar/core/structs/event'; - import { EventStore } from '@fullcalendar/core/structs/event-store'; - export type BusinessHoursInput = boolean | EventInput | EventInput[]; - export function parseBusinessHours(input: BusinessHoursInput, calendar: Calendar): EventStore; -} - -declare module '@fullcalendar/core/util/misc' { - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { Duration } from '@fullcalendar/core/datelib/duration'; - import { DateEnv } from '@fullcalendar/core/datelib/env'; - import { DateRange, OpenDateRange } from '@fullcalendar/core/datelib/date-range'; - export function compensateScroll(rowEl: HTMLElement, scrollbarWidths: any): void; - export function uncompensateScroll(rowEl: HTMLElement): void; - export function disableCursor(): void; - export function enableCursor(): void; - export function distributeHeight(els: HTMLElement[], availableHeight: any, shouldRedistribute: any): void; - export function undistributeHeight(els: HTMLElement[]): void; - export function matchCellWidths(els: HTMLElement[]): number; - export function subtractInnerElHeight(outerEl: HTMLElement, innerEl: HTMLElement): number; - export function preventSelection(el: HTMLElement): void; - export function allowSelection(el: HTMLElement): void; - export function preventContextMenu(el: HTMLElement): void; - export function allowContextMenu(el: HTMLElement): void; - export function parseFieldSpecs(input: any): any[]; - export function compareByFieldSpecs(obj0: any, obj1: any, fieldSpecs: any): any; - export function compareByFieldSpec(obj0: any, obj1: any, fieldSpec: any): any; - export function flexibleCompare(a: any, b: any): number; - export function capitaliseFirstLetter(str: any): any; - export function padStart(val: any, len: any): string; - export function compareNumbers(a: any, b: any): number; - export function isInt(n: any): boolean; - export function applyAll(functions: any, thisObj: any, args: any): any; - export function firstDefined(...args: any[]): any; - export function debounce(func: any, wait: any): () => any; - export type GenericHash = { - [key: string]: any; - }; - export function refineProps(rawProps: GenericHash, processors: GenericHash, defaults?: GenericHash, leftoverProps?: GenericHash): GenericHash; - export function computeAlignedDayRange(timedRange: DateRange): DateRange; - export function computeVisibleDayRange(timedRange: OpenDateRange, nextDayThreshold?: Duration): OpenDateRange; - export function isMultiDayRange(range: DateRange): boolean; - export function diffDates(date0: DateMarker, date1: DateMarker, dateEnv: DateEnv, largeUnit?: string): Duration; -} - -declare module '@fullcalendar/core/util/html' { - export function htmlEscape(s: any): string; - export function cssToStr(cssProps: any): string; - export function attrsToStr(attrs: any): string; - export type ClassNameInput = string | string[]; - export function parseClassName(raw: ClassNameInput): string[]; -} - -declare module '@fullcalendar/core/util/array' { - export function removeMatching(array: any, testFunc: any): number; - export function removeExact(array: any, exactVal: any): number; - export function isArraysEqual(a0: any, a1: any): boolean; -} - -declare module '@fullcalendar/core/util/memoize' { - export function memoize(workerFunc: T): T; - export function memoizeOutput(workerFunc: T, equalityFunc: (output0: any, output1: any) => boolean): T; -} - -declare module '@fullcalendar/core/component/memoized-rendering' { - export interface MemoizedRendering { - (...args: ArgsType): void; - unrender: () => void; - dependents: MemoizedRendering[]; - } - export function memoizeRendering(renderFunc: (...args: ArgsType) => void, unrenderFunc?: (...args: ArgsType) => void, dependencies?: MemoizedRendering[]): MemoizedRendering; -} - -declare module '@fullcalendar/core/util/geom' { - export interface Point { - left: number; - top: number; - } - export interface Rect { - left: number; - right: number; - top: number; - bottom: number; - } - export function pointInsideRect(point: Point, rect: Rect): boolean; - export function intersectRects(rect1: Rect, rect2: Rect): Rect | false; - export function translateRect(rect: Rect, deltaX: number, deltaY: number): Rect; - export function constrainPoint(point: Point, rect: Rect): Point; - export function getRectCenter(rect: Rect): Point; - export function diffPoints(point1: Point, point2: Point): Point; -} - -declare module '@fullcalendar/core/util/object' { - export function mergeProps(propObjs: any, complexProps?: any): any; - export function filterHash(hash: any, func: any): {}; - export function mapHash(hash: { - [key: string]: InputItem; - }, func: (input: InputItem, key: string) => OutputItem): { - [key: string]: OutputItem; - }; - export function arrayToHash(a: any): { - [key: string]: true; - }; - export function hashValuesToArray(obj: any): any[]; - export function isPropsEqual(obj0: any, obj1: any): boolean; -} - -declare module '@fullcalendar/core/util/dom-manip' { - export function createElement(tagName: string, attrs: object | null, content?: ElementContent): HTMLElement; - export function htmlToElement(html: string): HTMLElement; - export function htmlToElements(html: string): HTMLElement[]; - export type ElementContent = string | Node | Node[] | NodeList; - export function appendToElement(el: HTMLElement, content: ElementContent): void; - export function prependToElement(parent: HTMLElement, content: ElementContent): void; - export function insertAfterElement(refEl: HTMLElement, content: ElementContent): void; - export function removeElement(el: HTMLElement): void; - export function elementClosest(el: HTMLElement, selector: string): HTMLElement; - export function elementMatches(el: HTMLElement, selector: string): HTMLElement; - export function findElements(container: HTMLElement[] | HTMLElement | NodeListOf, selector: string): HTMLElement[]; - export function findChildren(parent: HTMLElement[] | HTMLElement, selector?: string): HTMLElement[]; - export function forceClassName(el: HTMLElement, className: string, bool: any): void; - export function applyStyle(el: HTMLElement, props: object): void; - export function applyStyleProp(el: HTMLElement, name: string, val: any): void; -} - -declare module '@fullcalendar/core/structs/event-store' { - import { EventInput, EventDef, EventDefHash, EventInstanceHash, EventTuple } from '@fullcalendar/core/structs/event'; - import { EventSource } from '@fullcalendar/core/structs/event-source'; - import Calendar from '@fullcalendar/core/Calendar'; - import { DateRange } from '@fullcalendar/core/datelib/date-range'; - export interface EventStore { - defs: EventDefHash; - instances: EventInstanceHash; - } - export function parseEvents(rawEvents: EventInput[], sourceId: string, calendar: Calendar, allowOpenRange?: boolean): EventStore; - export function eventTupleToStore(tuple: EventTuple, eventStore?: EventStore): EventStore; - export function expandRecurring(eventStore: EventStore, framingRange: DateRange, calendar: Calendar): EventStore; - export function getRelevantEvents(eventStore: EventStore, instanceId: string): EventStore; - export function transformRawEvents(rawEvents: any, eventSource: EventSource, calendar: Calendar): any; - export function createEmptyEventStore(): EventStore; - export function mergeEventStores(store0: EventStore, store1: EventStore): EventStore; - export function filterEventStoreDefs(eventStore: EventStore, filterFunc: (eventDef: EventDef) => boolean): EventStore; -} - -declare module '@fullcalendar/core/component/event-ui' { - import { Constraint, AllowFunc, ConstraintInput } from '@fullcalendar/core/validation'; - import { parseClassName } from '@fullcalendar/core/util/html'; - import Calendar from '@fullcalendar/core/Calendar'; - export interface UnscopedEventUiInput { - editable?: boolean; - startEditable?: boolean; - durationEditable?: boolean; - constraint?: ConstraintInput; - overlap?: boolean; - allow?: AllowFunc; - className?: string[] | string; - classNames?: string[] | string; - backgroundColor?: string; - borderColor?: string; - textColor?: string; - color?: string; - } - export interface EventUi { - startEditable: boolean | null; - durationEditable: boolean | null; - constraints: Constraint[]; - overlap: boolean | null; - allows: AllowFunc[]; - backgroundColor: string; - borderColor: string; - textColor: string; - classNames: string[]; - } - export type EventUiHash = { - [defId: string]: EventUi; - }; - export const UNSCOPED_EVENT_UI_PROPS: { - editable: BooleanConstructor; - startEditable: BooleanConstructor; - durationEditable: BooleanConstructor; - constraint: any; - overlap: any; - allow: any; - className: typeof parseClassName; - classNames: typeof parseClassName; - color: StringConstructor; - backgroundColor: StringConstructor; - borderColor: StringConstructor; - textColor: StringConstructor; - }; - export function processUnscopedUiProps(rawProps: UnscopedEventUiInput, calendar: Calendar, leftovers?: any): EventUi; - export function processScopedUiProps(prefix: string, rawScoped: any, calendar: Calendar, leftovers?: any): EventUi; - export function combineEventUis(uis: EventUi[]): EventUi; -} - -declare module '@fullcalendar/core/component/event-splitting' { - import { EventStore } from '@fullcalendar/core/structs/event-store'; - import { EventDef } from '@fullcalendar/core/structs/event'; - import { EventInteractionState } from '@fullcalendar/core/interactions/event-interaction-state'; - import { EventUiHash, EventUi } from '@fullcalendar/core/component/event-ui'; - import { DateSpan } from '@fullcalendar/core/structs/date-span'; - export interface SplittableProps { - businessHours: EventStore | null; - dateSelection: DateSpan | null; - eventStore: EventStore; - eventUiBases: EventUiHash; - eventSelection: string; - eventDrag: EventInteractionState | null; - eventResize: EventInteractionState | null; - } - export { Splitter as default, Splitter }; - abstract class Splitter { - abstract getKeyInfo(props: PropsType): { - [key: string]: { - ui?: EventUi; - businessHours?: EventStore; - }; - }; - abstract getKeysForDateSpan(dateSpan: DateSpan): string[]; - abstract getKeysForEventDef(eventDef: EventDef): string[]; - splitProps(props: PropsType): { - [key: string]: SplittableProps; - }; - } -} - -declare module '@fullcalendar/core/component/date-rendering' { - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import Component, { ComponentContext } from '@fullcalendar/core/component/Component'; - import { DateProfile } from '@fullcalendar/core/DateProfileGenerator'; - export function buildGotoAnchorHtml(component: Component, gotoOptions: any, attrs: any, innerHtml?: any): string; - export function getAllDayHtml(component: Component): any; - export function getDayClasses(date: DateMarker, dateProfile: DateProfile, context: ComponentContext, noThemeHighlight?: any): any[]; -} - -declare module '@fullcalendar/core/util/dom-event' { - export function preventDefault(ev: any): void; - export function listenBySelector(container: HTMLElement, eventType: string, selector: string, handler: (ev: Event, matchedTarget: HTMLElement) => void): () => void; - export function listenToHoverBySelector(container: HTMLElement, selector: string, onMouseEnter: (ev: Event, matchedTarget: HTMLElement) => void, onMouseLeave: (ev: Event, matchedTarget: HTMLElement) => void): () => void; - export function whenTransitionDone(el: HTMLElement, callback: (ev: Event) => void): void; -} - -declare module '@fullcalendar/core/util/dom-geom' { - import { Rect } from '@fullcalendar/core/util/geom'; - export interface EdgeInfo { - borderLeft: number; - borderRight: number; - borderTop: number; - borderBottom: number; - scrollbarLeft: number; - scrollbarRight: number; - scrollbarBottom: number; - paddingLeft?: number; - paddingRight?: number; - paddingTop?: number; - paddingBottom?: number; - } - export function computeEdges(el: any, getPadding?: boolean): EdgeInfo; - export function computeInnerRect(el: any, goWithinPadding?: boolean): { - left: number; - right: number; - top: number; - bottom: number; - }; - export function computeRect(el: any): Rect; - export function computeHeightAndMargins(el: HTMLElement): number; - export function computeVMargins(el: HTMLElement): number; - export function getClippingParents(el: HTMLElement): HTMLElement[]; - export function computeClippingRect(el: HTMLElement): Rect; -} - -declare module '@fullcalendar/core/util/promise' { - export function unpromisify(func: any, success: any, failure?: any): void; -} - -declare module '@fullcalendar/core/common/EmitterMixin' { - import Mixin from '@fullcalendar/core/common/Mixin'; - export interface EmitterInterface { - on(types: any, handler: any): any; - one(types: any, handler: any): any; - off(types: any, handler: any): any; - trigger(type: any, ...args: any[]): any; - triggerWith(type: any, context: any, args: any): any; - hasHandlers(type: any): any; - } - export { EmitterMixin as default, EmitterMixin }; - class EmitterMixin extends Mixin implements EmitterInterface { - _handlers: any; - _oneHandlers: any; - on(type: any, handler: any): this; - one(type: any, handler: any): this; - off(type: any, handler?: any): this; - trigger(type: any, ...args: any[]): this; - triggerWith(type: any, context: any, args: any): this; - hasHandlers(type: any): any; - } -} - -declare module '@fullcalendar/core/datelib/date-range' { - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { DateEnv, DateInput } from '@fullcalendar/core/datelib/env'; - export interface DateRangeInput { - start?: DateInput; - end?: DateInput; - } - export interface OpenDateRange { - start: DateMarker | null; - end: DateMarker | null; - } - export interface DateRange { - start: DateMarker; - end: DateMarker; - } - export function parseRange(input: DateRangeInput, dateEnv: DateEnv): OpenDateRange; - export function invertRanges(ranges: DateRange[], constraintRange: DateRange): DateRange[]; - export function intersectRanges(range0: OpenDateRange, range1: OpenDateRange): OpenDateRange; - export function rangesEqual(range0: OpenDateRange, range1: OpenDateRange): boolean; - export function rangesIntersect(range0: OpenDateRange, range1: OpenDateRange): boolean; - export function rangeContainsRange(outerRange: OpenDateRange, innerRange: OpenDateRange): boolean; - export function rangeContainsMarker(range: OpenDateRange, date: DateMarker | number): boolean; - export function constrainMarkerToRange(date: DateMarker, range: DateRange): DateMarker; -} - -declare module '@fullcalendar/core/common/Mixin' { - export { Mixin as default, Mixin }; - class Mixin { - static mixInto(destClass: any): void; - static mixIntoObj(destObj: any): void; - static mixOver(destClass: any): void; - } -} - -declare module '@fullcalendar/core/common/PositionCache' { - export { PositionCache as default, PositionCache }; - class PositionCache { - originClientRect: ClientRect; - els: HTMLElement[]; - originEl: HTMLElement; - isHorizontal: boolean; - isVertical: boolean; - lefts: any; - rights: any; - tops: any; - bottoms: any; - constructor(originEl: HTMLElement, els: HTMLElement[], isHorizontal: boolean, isVertical: boolean); - build(): void; - buildElHorizontals(originClientLeft: number): void; - buildElVerticals(originClientTop: number): void; - leftToIndex(leftPosition: number): any; - topToIndex(topPosition: number): any; - getWidth(leftIndex: number): number; - getHeight(topIndex: number): number; - } -} - -declare module '@fullcalendar/core/common/ScrollComponent' { - import { ElementScrollController } from '@fullcalendar/core/common/scroll-controller'; - export interface ScrollbarWidths { - left: number; - right: number; - bottom: number; - } - export { ScrollComponent as default, ScrollComponent }; - class ScrollComponent extends ElementScrollController { - overflowX: string; - overflowY: string; - constructor(overflowX: string, overflowY: string); - clear(): void; - destroy(): void; - applyOverflow(): void; - lockOverflow(scrollbarWidths: ScrollbarWidths): void; - setHeight(height: number | string): void; - getScrollbarWidths(): ScrollbarWidths; - } -} - -declare module '@fullcalendar/core/common/scroll-controller' { - export abstract class ScrollController { - abstract getScrollTop(): number; - abstract getScrollLeft(): number; - abstract setScrollTop(top: number): void; - abstract setScrollLeft(left: number): void; - abstract getClientWidth(): number; - abstract getClientHeight(): number; - abstract getScrollWidth(): number; - abstract getScrollHeight(): number; - getMaxScrollTop(): number; - getMaxScrollLeft(): number; - canScrollVertically(): boolean; - canScrollHorizontally(): boolean; - canScrollUp(): boolean; - canScrollDown(): boolean; - canScrollLeft(): boolean; - canScrollRight(): boolean; - } - export class ElementScrollController extends ScrollController { - el: HTMLElement; - constructor(el: HTMLElement); - getScrollTop(): number; - getScrollLeft(): number; - setScrollTop(top: number): void; - setScrollLeft(left: number): void; - getScrollWidth(): number; - getScrollHeight(): number; - getClientHeight(): number; - getClientWidth(): number; - } - export class WindowScrollController extends ScrollController { - getScrollTop(): number; - getScrollLeft(): number; - setScrollTop(n: number): void; - setScrollLeft(n: number): void; - getScrollWidth(): number; - getScrollHeight(): number; - getClientHeight(): number; - getClientWidth(): number; - } -} - -declare module '@fullcalendar/core/theme/Theme' { - export { Theme as default, Theme }; - class Theme { - calendarOptions: any; - classes: any; - iconClasses: any; - baseIconClass: string; - iconOverrideOption: any; - iconOverrideCustomButtonOption: any; - iconOverridePrefix: string; - constructor(calendarOptions: any); - processIconOverride(): void; - setIconOverride(iconOverrideHash: any): void; - applyIconOverridePrefix(className: any): any; - getClass(key: any): any; - getIconClass(buttonName: any): string; - getCustomButtonIconClass(customButtonProps: any): string; - } - export type ThemeClass = { - new (calendarOptions: any): Theme; - }; -} - -declare module '@fullcalendar/core/component/Component' { - import Calendar from '@fullcalendar/core/Calendar'; - import View from '@fullcalendar/core/View'; - import Theme from '@fullcalendar/core/theme/Theme'; - import { DateEnv } from '@fullcalendar/core/datelib/env'; - export interface ComponentContext { - options: any; - dateEnv: DateEnv; - theme: Theme; - calendar: Calendar; - view: View; - } - export type EqualityFuncHash = { - [propName: string]: (obj0: any, obj1: any) => boolean; - }; - export { Component as default, Component }; - class Component { - equalityFuncs: EqualityFuncHash; - uid: string; - props: PropsType | null; - context: ComponentContext; - dateEnv: DateEnv; - theme: Theme; - view: View; - calendar: Calendar; - isRtl: boolean; - constructor(context: ComponentContext, isView?: boolean); - static addEqualityFuncs(newFuncs: EqualityFuncHash): void; - opt(name: any): any; - receiveProps(props: PropsType): void; - protected render(props: PropsType): void; - destroy(): void; - } -} - -declare module '@fullcalendar/core/component/DateComponent' { - import Component, { ComponentContext } from '@fullcalendar/core/component/Component'; - import { EventRenderRange } from '@fullcalendar/core/component/event-rendering'; - import { DateSpan } from '@fullcalendar/core/structs/date-span'; - import { EventInstanceHash } from '@fullcalendar/core/structs/event'; - import { Hit } from '@fullcalendar/core/interactions/hit'; - import FgEventRenderer from '@fullcalendar/core/component/renderers/FgEventRenderer'; - import FillRenderer from '@fullcalendar/core/component/renderers/FillRenderer'; - import { EventInteractionState } from '@fullcalendar/core/interactions/event-interaction-state'; - import { EventHandlerName, EventHandlerArgs } from '@fullcalendar/core/types/input-types'; - export type DateComponentHash = { - [uid: string]: DateComponent; - }; - export interface Seg { - component?: DateComponent; - isStart: boolean; - isEnd: boolean; - eventRange?: EventRenderRange; - el?: HTMLElement; - [otherProp: string]: any; - } - export interface EventSegUiInteractionState { - affectedInstances: EventInstanceHash; - segs: Seg[]; - isEvent: boolean; - sourceSeg: any; - } - export { DateComponent as default, DateComponent }; - class DateComponent extends Component { - fgSegSelector: string; - bgSegSelector: string; - largeUnit: any; - eventRenderer: FgEventRenderer; - mirrorRenderer: FgEventRenderer; - fillRenderer: FillRenderer; - el: HTMLElement; - constructor(context: ComponentContext, el: HTMLElement, isView?: boolean); - destroy(): void; - buildPositionCaches(): void; - queryHit(positionLeft: number, positionTop: number, elWidth: number, elHeight: number): Hit | null; - isInteractionValid(interaction: EventInteractionState): boolean; - isDateSelectionValid(selection: DateSpan): boolean; - publiclyTrigger(name: T, args?: EventHandlerArgs): any; - publiclyTriggerAfterSizing(name: T, args: EventHandlerArgs): void; - hasPublicHandlers(name: T): boolean; - triggerRenderedSegs(segs: Seg[], isMirrors: boolean): void; - triggerWillRemoveSegs(segs: Seg[], isMirrors: boolean): void; - isValidSegDownEl(el: HTMLElement): boolean; - isValidDateDownEl(el: HTMLElement): boolean; - isPopover(): boolean; - isInPopover(el: HTMLElement): boolean; - } -} - -declare module '@fullcalendar/core/Calendar' { - import { EmitterInterface } from '@fullcalendar/core/common/EmitterMixin'; - import OptionsManager from '@fullcalendar/core/OptionsManager'; - import View from '@fullcalendar/core/View'; - import Theme from '@fullcalendar/core/theme/Theme'; - import { OptionsInput, EventHandlerName, EventHandlerArgs } from '@fullcalendar/core/types/input-types'; - import { RawLocaleMap } from '@fullcalendar/core/datelib/locale'; - import { DateEnv, DateInput } from '@fullcalendar/core/datelib/env'; - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { Duration, DurationInput } from '@fullcalendar/core/datelib/duration'; - import { DateSpan, DateSpanApi, DatePointApi } from '@fullcalendar/core/structs/date-span'; - import { DateRangeInput } from '@fullcalendar/core/datelib/date-range'; - import DateProfileGenerator from '@fullcalendar/core/DateProfileGenerator'; - import { EventSourceInput } from '@fullcalendar/core/structs/event-source'; - import { EventInput } from '@fullcalendar/core/structs/event'; - import { CalendarState, Action } from '@fullcalendar/core/reducers/types'; - import EventSourceApi from '@fullcalendar/core/api/EventSourceApi'; - import EventApi from '@fullcalendar/core/api/EventApi'; - import { EventStore } from '@fullcalendar/core/structs/event-store'; - import { EventUiHash, EventUi } from '@fullcalendar/core/component/event-ui'; - import { ViewSpecHash, ViewSpec } from '@fullcalendar/core/structs/view-spec'; - import { PluginSystem } from '@fullcalendar/core/plugin-system'; - import CalendarComponent from '@fullcalendar/core/CalendarComponent'; - import DateComponent from '@fullcalendar/core/component/DateComponent'; - import { PointerDragEvent } from '@fullcalendar/core/interactions/pointer'; - import { InteractionSettingsInput, Interaction } from '@fullcalendar/core/interactions/interaction'; - export interface DateClickApi extends DatePointApi { - dayEl: HTMLElement; - jsEvent: UIEvent; - view: View; - } - export interface DateSelectionApi extends DateSpanApi { - jsEvent: UIEvent; - view: View; - } - export type DatePointTransform = (dateSpan: DateSpan, calendar: Calendar) => any; - export type DateSpanTransform = (dateSpan: DateSpan, calendar: Calendar) => any; - export type CalendarInteraction = { - destroy(): any; - }; - export type CalendarInteractionClass = { - new (calendar: Calendar): CalendarInteraction; - }; - export type OptionChangeHandler = (propValue: any, calendar: Calendar, deepEqual: any) => void; - export type OptionChangeHandlerMap = { - [propName: string]: OptionChangeHandler; - }; - export { Calendar as default, Calendar }; - class Calendar { - static on: EmitterInterface['on']; - static off: EmitterInterface['off']; - static trigger: EmitterInterface['trigger']; - on: EmitterInterface['on']; - one: EmitterInterface['one']; - off: EmitterInterface['off']; - trigger: EmitterInterface['trigger']; - triggerWith: EmitterInterface['triggerWith']; - hasHandlers: EmitterInterface['hasHandlers']; - eventUiBases: EventUiHash; - selectionConfig: EventUi; - optionsManager: OptionsManager; - viewSpecs: ViewSpecHash; - dateProfileGenerators: { - [viewName: string]: DateProfileGenerator; - }; - theme: Theme; - dateEnv: DateEnv; - availableRawLocales: RawLocaleMap; - pluginSystem: PluginSystem; - defaultAllDayEventDuration: Duration; - defaultTimedEventDuration: Duration; - calendarInteractions: CalendarInteraction[]; - interactionsStore: { - [componentUid: string]: Interaction[]; - }; - removeNavLinkListener: any; - windowResizeProxy: any; - isHandlingWindowResize: boolean; - state: CalendarState; - actionQueue: any[]; - isReducing: boolean; - needsRerender: boolean; - needsFullRerender: boolean; - isRendering: boolean; - renderingPauseDepth: number; - renderableEventStore: EventStore; - buildDelayedRerender: typeof buildDelayedRerender; - delayedRerender: any; - afterSizingTriggers: any; - isViewUpdated: boolean; - isDatesUpdated: boolean; - isEventsUpdated: boolean; - el: HTMLElement; - component: CalendarComponent; - constructor(el: HTMLElement, overrides?: OptionsInput); - addPluginInputs(pluginInputs: any): void; - readonly view: View; - render(): void; - destroy(): void; - bindHandlers(): void; - unbindHandlers(): void; - hydrate(): void; - buildInitialState(): CalendarState; - reduce(state: CalendarState, action: Action, calendar: Calendar): CalendarState; - requestRerender(needsFull?: boolean): void; - tryRerender(): void; - batchRendering(func: any): void; - executeRender(): void; - renderComponent(needsFull: any): void; - setOption(name: string, val: any): void; - getOption(name: string): any; - opt(name: string): any; - viewOpt(name: string): any; - viewOpts(): any; - mutateOptions(updates: any, removals: string[], isDynamic?: boolean, deepEqual?: any): void; - handleOptions(options: any): void; - getAvailableLocaleCodes(): string[]; - _buildSelectionConfig(rawOpts: any): EventUi; - _buildEventUiSingleBase(rawOpts: any): EventUi; - hasPublicHandlers(name: T): boolean; - publiclyTrigger(name: T, args?: EventHandlerArgs): any; - publiclyTriggerAfterSizing(name: T, args: EventHandlerArgs): void; - releaseAfterSizingTriggers(): void; - isValidViewType(viewType: string): boolean; - changeView(viewType: string, dateOrRange?: DateRangeInput | DateInput): void; - zoomTo(dateMarker: DateMarker, viewType?: string): void; - getUnitViewSpec(unit: string): ViewSpec | null; - getInitialDate(): Date; - prev(): void; - next(): void; - prevYear(): void; - nextYear(): void; - today(): void; - gotoDate(zonedDateInput: any): void; - incrementDate(deltaInput: any): void; - getDate(): Date; - formatDate(d: DateInput, formatter: any): string; - formatRange(d0: DateInput, d1: DateInput, settings: any): any; - formatIso(d: DateInput, omitTime?: boolean): string; - windowResize(ev: Event): void; - updateSize(): void; - registerInteractiveComponent(component: DateComponent, settingsInput: InteractionSettingsInput): void; - unregisterInteractiveComponent(component: DateComponent): void; - select(dateOrObj: DateInput | any, endDate?: DateInput): void; - unselect(pev?: PointerDragEvent): void; - triggerDateSelect(selection: DateSpan, pev?: PointerDragEvent): void; - triggerDateUnselect(pev?: PointerDragEvent): void; - triggerDateClick(dateSpan: DateSpan, dayEl: HTMLElement, view: View, ev: UIEvent): void; - buildDatePointApi(dateSpan: DateSpan): import("@fullcalendar/core/structs/date-span").DatePointApi; - buildDateSpanApi(dateSpan: DateSpan): import("@fullcalendar/core/structs/date-span").DateSpanApi; - getNow(): DateMarker; - getDefaultEventEnd(allDay: boolean, marker: DateMarker): DateMarker; - addEvent(eventInput: EventInput, sourceInput?: EventSourceApi | string | number): EventApi | null; - getEventById(id: string): EventApi | null; - getEvents(): EventApi[]; - removeAllEvents(): void; - rerenderEvents(): void; - getEventSources(): EventSourceApi[]; - getEventSourceById(id: string | number): EventSourceApi | null; - addEventSource(sourceInput: EventSourceInput): EventSourceApi; - removeAllEventSources(): void; - refetchEvents(): void; - scrollToTime(timeInput: DurationInput): void; - } - function buildDelayedRerender(this: Calendar, wait: any): any; - export {}; -} - -declare module '@fullcalendar/core/View' { - import DateProfileGenerator, { DateProfile } from '@fullcalendar/core/DateProfileGenerator'; - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { Duration } from '@fullcalendar/core/datelib/duration'; - import { EmitterInterface } from '@fullcalendar/core/common/EmitterMixin'; - import { ViewSpec } from '@fullcalendar/core/structs/view-spec'; - import { ComponentContext } from '@fullcalendar/core/component/Component'; - import DateComponent from '@fullcalendar/core/component/DateComponent'; - import { EventStore } from '@fullcalendar/core/structs/event-store'; - import { EventUiHash, EventUi } from '@fullcalendar/core/component/event-ui'; - import { EventRenderRange } from '@fullcalendar/core/component/event-rendering'; - import { DateSpan } from '@fullcalendar/core/structs/date-span'; - import { EventInteractionState } from '@fullcalendar/core/interactions/event-interaction-state'; - import { EventDef } from '@fullcalendar/core/structs/event'; - export interface ViewProps { - dateProfile: DateProfile; - businessHours: EventStore; - eventStore: EventStore; - eventUiBases: EventUiHash; - dateSelection: DateSpan | null; - eventSelection: string; - eventDrag: EventInteractionState | null; - eventResize: EventInteractionState | null; - } - export { View as default, View }; - abstract class View extends DateComponent { - usesMinMaxTime: boolean; - dateProfileGeneratorClass: any; - on: EmitterInterface['on']; - one: EmitterInterface['one']; - off: EmitterInterface['off']; - trigger: EmitterInterface['trigger']; - triggerWith: EmitterInterface['triggerWith']; - hasHandlers: EmitterInterface['hasHandlers']; - viewSpec: ViewSpec; - dateProfileGenerator: DateProfileGenerator; - type: string; - title: string; - queuedScroll: any; - eventOrderSpecs: any; - nextDayThreshold: Duration; - isNowIndicatorRendered: boolean; - initialNowDate: DateMarker; - initialNowQueriedMs: number; - nowIndicatorTimeoutID: any; - nowIndicatorIntervalID: any; - constructor(context: ComponentContext, viewSpec: ViewSpec, dateProfileGenerator: DateProfileGenerator, parentEl: HTMLElement); - initialize(): void; - readonly activeStart: Date; - readonly activeEnd: Date; - readonly currentStart: Date; - readonly currentEnd: Date; - render(props: ViewProps): void; - destroy(): void; - updateSize(isResize: boolean, viewHeight: number, isAuto: boolean): void; - updateBaseSize(isResize: boolean, viewHeight: number, isAuto: boolean): void; - renderDatesWrap(dateProfile: DateProfile): void; - unrenderDatesWrap(): void; - renderDates(dateProfile: DateProfile): void; - unrenderDates(): void; - renderBusinessHours(businessHours: EventStore): void; - unrenderBusinessHours(): void; - renderDateSelectionWrap(selection: DateSpan): void; - unrenderDateSelectionWrap(selection: DateSpan): void; - renderDateSelection(selection: DateSpan): void; - unrenderDateSelection(selection: DateSpan): void; - renderEvents(eventStore: EventStore): void; - unrenderEvents(): void; - sliceEvents(eventStore: EventStore, allDay: boolean): EventRenderRange[]; - computeEventDraggable(eventDef: EventDef, eventUi: EventUi): boolean; - computeEventStartResizable(eventDef: EventDef, eventUi: EventUi): any; - computeEventEndResizable(eventDef: EventDef, eventUi: EventUi): boolean; - renderEventSelectionWrap(instanceId: string): void; - unrenderEventSelectionWrap(instanceId: string): void; - renderEventSelection(instanceId: string): void; - unrenderEventSelection(instanceId: string): void; - renderEventDragWrap(state: EventInteractionState): void; - unrenderEventDragWrap(state: EventInteractionState): void; - renderEventDrag(state: EventInteractionState): void; - unrenderEventDrag(state: EventInteractionState): void; - renderEventResizeWrap(state: EventInteractionState): void; - unrenderEventResizeWrap(state: EventInteractionState): void; - renderEventResize(state: EventInteractionState): void; - unrenderEventResize(state: EventInteractionState): void; - startNowIndicator(dateProfile: DateProfile): void; - updateNowIndicator(): void; - stopNowIndicator(): void; - getNowIndicatorUnit(dateProfile: DateProfile): void; - renderNowIndicator(date: any): void; - unrenderNowIndicator(): void; - addScroll(scroll: any): void; - popScroll(isResize: boolean): void; - applyQueuedScroll(isResize: boolean): void; - queryScroll(): any; - applyScroll(scroll: any, isResize: boolean): void; - computeDateScroll(duration: Duration): {}; - queryDateScroll(): {}; - applyDateScroll(scroll: any): void; - scrollToDuration(duration: Duration): void; - } -} - -declare module '@fullcalendar/core/component/renderers/FgEventRenderer' { - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { DateFormatter } from '@fullcalendar/core/datelib/formatting'; - import { EventUi } from '@fullcalendar/core/component/event-ui'; - import { EventRenderRange } from '@fullcalendar/core/component/event-rendering'; - import { Seg } from '@fullcalendar/core/component/DateComponent'; - import { ComponentContext } from '@fullcalendar/core/component/Component'; - export { FgEventRenderer as default, FgEventRenderer }; - abstract class FgEventRenderer { - context: ComponentContext; - eventTimeFormat: DateFormatter; - displayEventTime: boolean; - displayEventEnd: boolean; - segs: Seg[]; - isSizeDirty: boolean; - constructor(context: ComponentContext); - renderSegs(segs: Seg[], mirrorInfo?: any): void; - unrender(_segs: Seg[], mirrorInfo?: any): void; - abstract renderSegHtml(seg: Seg, mirrorInfo: any): string; - abstract attachSegs(segs: Seg[], mirrorInfo: any): any; - abstract detachSegs(segs: Seg[]): any; - rangeUpdated(): void; - renderSegEls(segs: Seg[], mirrorInfo: any): Seg[]; - getSegClasses(seg: Seg, isDraggable: any, isResizable: any, mirrorInfo: any): string[]; - getTimeText(eventRange: EventRenderRange, formatter?: any, displayEnd?: any): any; - _getTimeText(start: DateMarker, end: DateMarker, allDay: any, formatter?: any, displayEnd?: any, forcedStartTzo?: number, forcedEndTzo?: number): any; - computeEventTimeFormat(): any; - computeDisplayEventTime(): boolean; - computeDisplayEventEnd(): boolean; - getSkinCss(ui: EventUi): { - 'background-color': string; - 'border-color': string; - color: string; - }; - sortEventSegs(segs: any): Seg[]; - computeSizes(force: boolean): void; - assignSizes(force: boolean): void; - computeSegSizes(segs: Seg[]): void; - assignSegSizes(segs: Seg[]): void; - hideByHash(hash: any): void; - showByHash(hash: any): void; - selectByInstanceId(instanceId: string): void; - unselectByInstanceId(instanceId: string): void; - } - export function buildSegCompareObj(seg: Seg): any; -} - -declare module '@fullcalendar/core/component/renderers/FillRenderer' { - import { Seg } from '@fullcalendar/core/component/DateComponent'; - import { ComponentContext } from '@fullcalendar/core/component/Component'; - export { FillRenderer as default, FillRenderer }; - abstract class FillRenderer { - context: ComponentContext; - fillSegTag: string; - containerElsByType: any; - segsByType: any; - dirtySizeFlags: any; - constructor(context: ComponentContext); - getSegsByType(type: string): any; - renderSegs(type: any, segs: Seg[]): void; - unrender(type: any): void; - renderSegEls(type: any, segs: Seg[]): Seg[]; - renderSegHtml(type: any, seg: Seg): string; - abstract attachSegs(type: any, segs: Seg[]): HTMLElement[] | void; - detachSegs(type: any, segs: Seg[]): void; - computeSizes(force: boolean): void; - assignSizes(force: boolean): void; - computeSegSizes(segs: Seg[]): void; - assignSegSizes(segs: Seg[]): void; - } -} - -declare module '@fullcalendar/core/DateProfileGenerator' { - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { Duration } from '@fullcalendar/core/datelib/duration'; - import { DateRange, OpenDateRange } from '@fullcalendar/core/datelib/date-range'; - import { ViewSpec } from '@fullcalendar/core/structs/view-spec'; - import { DateEnv } from '@fullcalendar/core/datelib/env'; - import Calendar from '@fullcalendar/core/Calendar'; - export interface DateProfile { - currentRange: DateRange; - currentRangeUnit: string; - isRangeAllDay: boolean; - validRange: OpenDateRange; - activeRange: DateRange; - renderRange: DateRange; - minTime: Duration; - maxTime: Duration; - isValid: boolean; - dateIncrement: Duration; - } - export { DateProfileGenerator as default, DateProfileGenerator }; - class DateProfileGenerator { - viewSpec: ViewSpec; - options: any; - dateEnv: DateEnv; - calendar: Calendar; - isHiddenDayHash: boolean[]; - constructor(viewSpec: ViewSpec, calendar: Calendar); - buildPrev(currentDateProfile: DateProfile, currentDate: DateMarker): DateProfile; - buildNext(currentDateProfile: DateProfile, currentDate: DateMarker): DateProfile; - build(currentDate: DateMarker, direction?: any, forceToValid?: boolean): DateProfile; - buildValidRange(): OpenDateRange; - buildCurrentRangeInfo(date: DateMarker, direction: any): { - duration: any; - unit: any; - range: any; - }; - getFallbackDuration(): Duration; - adjustActiveRange(range: DateRange, minTime: Duration, maxTime: Duration): { - start: Date; - end: Date; - }; - buildRangeFromDuration(date: DateMarker, direction: any, duration: Duration, unit: any): any; - buildRangeFromDayCount(date: DateMarker, direction: any, dayCount: any): { - start: Date; - end: Date; - }; - buildCustomVisibleRange(date: DateMarker): OpenDateRange; - buildRenderRange(currentRange: DateRange, currentRangeUnit: any, isRangeAllDay: any): DateRange; - buildDateIncrement(fallback: any): Duration; - getRangeOption(name: any, ...otherArgs: any[]): OpenDateRange; - initHiddenDays(): void; - trimHiddenDays(range: DateRange): DateRange | null; - isHiddenDay(day: any): boolean; - skipHiddenDays(date: DateMarker, inc?: number, isExclusive?: boolean): Date; - } - export function isDateProfilesEqual(p0: DateProfile, p1: DateProfile): boolean; -} - -declare module '@fullcalendar/core/structs/view-def' { - import { ViewClass, ViewConfigHash } from '@fullcalendar/core/structs/view-config'; - export interface ViewDef { - type: string; - class: ViewClass; - overrides: any; - defaults: any; - } - export type ViewDefHash = { - [viewType: string]: ViewDef; - }; - export function compileViewDefs(defaultConfigs: ViewConfigHash, overrideConfigs: ViewConfigHash): ViewDefHash; -} - -declare module '@fullcalendar/core/structs/view-spec' { - import { Duration } from '@fullcalendar/core/datelib/duration'; - import OptionsManager from '@fullcalendar/core/OptionsManager'; - import { ViewConfigInputHash, ViewClass } from '@fullcalendar/core/structs/view-config'; - export interface ViewSpec { - type: string; - class: ViewClass; - duration: Duration; - durationUnit: string; - singleUnit: string; - options: any; - buttonTextOverride: string; - buttonTextDefault: string; - } - export type ViewSpecHash = { - [viewType: string]: ViewSpec; - }; - export function buildViewSpecs(defaultInputs: ViewConfigInputHash, optionsManager: OptionsManager): ViewSpecHash; -} - -declare module '@fullcalendar/core/structs/date-span' { - import { DateRange, OpenDateRange } from '@fullcalendar/core/datelib/date-range'; - import { DateInput, DateEnv } from '@fullcalendar/core/datelib/env'; - import { Duration } from '@fullcalendar/core/datelib/duration'; - import { EventRenderRange } from '@fullcalendar/core/component/event-rendering'; - import { EventUiHash } from '@fullcalendar/core/component/event-ui'; - import Calendar from '@fullcalendar/core/Calendar'; - export interface OpenDateSpanInput { - start?: DateInput; - end?: DateInput; - allDay?: boolean; - [otherProp: string]: any; - } - export interface DateSpanInput extends OpenDateSpanInput { - start: DateInput; - end: DateInput; - } - export interface OpenDateSpan { - range: OpenDateRange; - allDay: boolean; - [otherProp: string]: any; - } - export interface DateSpan extends OpenDateSpan { - range: DateRange; - } - export interface DateSpanApi { - start: Date; - end: Date; - startStr: string; - endStr: string; - allDay: boolean; - } - export interface DatePointApi { - date: Date; - dateStr: string; - allDay: boolean; - } - export function parseDateSpan(raw: DateSpanInput, dateEnv: DateEnv, defaultDuration?: Duration): DateSpan | null; - export function parseOpenDateSpan(raw: OpenDateSpanInput, dateEnv: DateEnv): OpenDateSpan | null; - export function isDateSpansEqual(span0: DateSpan, span1: DateSpan): boolean; - export function buildDateSpanApi(span: DateSpan, dateEnv: DateEnv): DateSpanApi; - export function buildDatePointApi(span: DateSpan, dateEnv: DateEnv): DatePointApi; - export function fabricateEventRange(dateSpan: DateSpan, eventUiBases: EventUiHash, calendar: Calendar): EventRenderRange; -} - -declare module '@fullcalendar/core/datelib/marker' { - import { Duration } from '@fullcalendar/core/datelib/duration'; - export type DateMarker = Date; - export const DAY_IDS: string[]; - export function addWeeks(m: DateMarker, n: number): Date; - export function addDays(m: DateMarker, n: number): Date; - export function addMs(m: DateMarker, n: number): Date; - export function diffWeeks(m0: any, m1: any): number; - export function diffDays(m0: any, m1: any): number; - export function diffHours(m0: any, m1: any): number; - export function diffMinutes(m0: any, m1: any): number; - export function diffSeconds(m0: any, m1: any): number; - export function diffDayAndTime(m0: DateMarker, m1: DateMarker): Duration; - export function diffWholeWeeks(m0: DateMarker, m1: DateMarker): number; - export function diffWholeDays(m0: DateMarker, m1: DateMarker): number; - export function startOfDay(m: DateMarker): DateMarker; - export function startOfHour(m: DateMarker): Date; - export function startOfMinute(m: DateMarker): Date; - export function startOfSecond(m: DateMarker): Date; - export function weekOfYear(marker: any, dow: any, doy: any): number; - export function dateToLocalArray(date: any): any[]; - export function arrayToLocalDate(a: any): Date; - export function dateToUtcArray(date: any): any[]; - export function arrayToUtcDate(a: any): Date; - export function isValidDate(m: DateMarker): boolean; - export function timeAsMs(m: DateMarker): number; -} - -declare module '@fullcalendar/core/datelib/duration' { - export type DurationInput = DurationObjectInput | string | number; - export interface DurationObjectInput { - years?: number; - year?: number; - months?: number; - month?: number; - weeks?: number; - week?: number; - days?: number; - day?: number; - hours?: number; - hour?: number; - minutes?: number; - minute?: number; - seconds?: number; - second?: number; - milliseconds?: number; - millisecond?: number; - ms?: number; - } - export interface Duration { - years: number; - months: number; - days: number; - milliseconds: number; - } - export function createDuration(input: DurationInput, unit?: string): Duration | null; - export function getWeeksFromInput(obj: DurationObjectInput): number; - export function durationsEqual(d0: Duration, d1: Duration): boolean; - export function isSingleDay(dur: Duration): boolean; - export function addDurations(d0: Duration, d1: Duration): { - years: number; - months: number; - days: number; - milliseconds: number; - }; - export function subtractDurations(d1: Duration, d0: Duration): Duration; - export function multiplyDuration(d: Duration, n: number): { - years: number; - months: number; - days: number; - milliseconds: number; - }; - export function asRoughYears(dur: Duration): number; - export function asRoughMonths(dur: Duration): number; - export function asRoughDays(dur: Duration): number; - export function asRoughHours(dur: Duration): number; - export function asRoughMinutes(dur: Duration): number; - export function asRoughSeconds(dur: Duration): number; - export function asRoughMs(dur: Duration): number; - export function wholeDivideDurations(numerator: Duration, denominator: Duration): number; - export function greatestDurationDenominator(dur: Duration, dontReturnWeeks?: boolean): { - unit: string; - value: number; - }; -} - -declare module '@fullcalendar/core/datelib/env' { - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { CalendarSystem } from '@fullcalendar/core/datelib/calendar-system'; - import { Locale } from '@fullcalendar/core/datelib/locale'; - import { NamedTimeZoneImpl, NamedTimeZoneImplClass } from '@fullcalendar/core/datelib/timezone'; - import { Duration } from '@fullcalendar/core/datelib/duration'; - import { DateFormatter } from '@fullcalendar/core/datelib/formatting'; - import { CmdFormatterFunc } from '@fullcalendar/core/datelib/formatting-cmd'; - export interface DateEnvSettings { - timeZone: string; - namedTimeZoneImpl?: NamedTimeZoneImplClass; - calendarSystem: string; - locale: Locale; - weekNumberCalculation?: any; - firstDay?: any; - weekLabel?: string; - cmdFormatter?: CmdFormatterFunc; - } - export type DateInput = Date | string | number | number[]; - export interface DateMarkerMeta { - marker: DateMarker; - isTimeUnspecified: boolean; - forcedTzo: number | null; - } - export class DateEnv { - timeZone: string; - namedTimeZoneImpl: NamedTimeZoneImpl; - canComputeOffset: boolean; - calendarSystem: CalendarSystem; - locale: Locale; - weekDow: number; - weekDoy: number; - weekNumberFunc: any; - weekLabel: string; - cmdFormatter?: CmdFormatterFunc; - constructor(settings: DateEnvSettings); - createMarker(input: DateInput): DateMarker; - createNowMarker(): DateMarker; - createMarkerMeta(input: DateInput): DateMarkerMeta; - parse(s: string): { - marker: Date; - isTimeUnspecified: boolean; - forcedTzo: any; - }; - getYear(marker: DateMarker): number; - getMonth(marker: DateMarker): number; - add(marker: DateMarker, dur: Duration): DateMarker; - subtract(marker: DateMarker, dur: Duration): DateMarker; - addYears(marker: DateMarker, n: number): Date; - addMonths(marker: DateMarker, n: number): Date; - diffWholeYears(m0: DateMarker, m1: DateMarker): number; - diffWholeMonths(m0: DateMarker, m1: DateMarker): number; - greatestWholeUnit(m0: DateMarker, m1: DateMarker): { - unit: string; - value: number; - }; - countDurationsBetween(m0: DateMarker, m1: DateMarker, d: Duration): number; - startOf(m: DateMarker, unit: string): Date; - startOfYear(m: DateMarker): DateMarker; - startOfMonth(m: DateMarker): DateMarker; - startOfWeek(m: DateMarker): DateMarker; - computeWeekNumber(marker: DateMarker): number; - format(marker: DateMarker, formatter: DateFormatter, dateOptions?: { - forcedTzo?: number; - }): any; - formatRange(start: DateMarker, end: DateMarker, formatter: DateFormatter, dateOptions?: { - forcedStartTzo?: number; - forcedEndTzo?: number; - isEndExclusive?: boolean; - }): any; - formatIso(marker: DateMarker, extraOptions?: any): string; - timestampToMarker(ms: number): Date; - offsetForMarker(m: DateMarker): number; - toDate(m: DateMarker, forcedTzo?: number): Date; - } -} - -declare module '@fullcalendar/core/datelib/formatting' { - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { CalendarSystem } from '@fullcalendar/core/datelib/calendar-system'; - import { Locale } from '@fullcalendar/core/datelib/locale'; - import { CmdFormatterFunc } from '@fullcalendar/core/datelib/formatting-cmd'; - import { FuncFormatterFunc } from '@fullcalendar/core/datelib/formatting-func'; - export interface ZonedMarker { - marker: DateMarker; - timeZoneOffset: number; - } - export interface ExpandedZonedMarker extends ZonedMarker { - array: number[]; - year: number; - month: number; - day: number; - hour: number; - minute: number; - second: number; - millisecond: number; - } - export interface VerboseFormattingArg { - date: ExpandedZonedMarker; - start: ExpandedZonedMarker; - end?: ExpandedZonedMarker; - timeZone: string; - localeCodes: string[]; - separator: string; - } - export interface DateFormattingContext { - timeZone: string; - locale: Locale; - calendarSystem: CalendarSystem; - computeWeekNumber: (d: DateMarker) => number; - weekLabel: string; - cmdFormatter?: CmdFormatterFunc; - } - export interface DateFormatter { - format(date: ZonedMarker, context: DateFormattingContext): any; - formatRange(start: ZonedMarker, end: ZonedMarker, context: DateFormattingContext): any; - } - export type FormatterInput = object | string | FuncFormatterFunc; - export function createFormatter(input: FormatterInput, defaultSeparator?: string): DateFormatter; - export function buildIsoString(marker: DateMarker, timeZoneOffset?: number, stripZeroTime?: boolean): string; - export function formatIsoTimeString(marker: DateMarker): string; - export function formatTimeZoneOffset(minutes: number, doIso?: boolean): string; - export function createVerboseFormattingArg(start: ZonedMarker, end: ZonedMarker, context: DateFormattingContext, separator?: string): VerboseFormattingArg; -} - -declare module '@fullcalendar/core/datelib/timezone' { - export abstract class NamedTimeZoneImpl { - timeZoneName: string; - constructor(timeZoneName: string); - abstract offsetForArray(a: number[]): number; - abstract timestampToArray(ms: number): number[]; - } - export type NamedTimeZoneImplClass = { - new (timeZoneName: string): NamedTimeZoneImpl; - }; -} - -declare module '@fullcalendar/core/datelib/parsing' { - export function parse(str: any): { - marker: Date; - isTimeUnspecified: boolean; - timeZoneOffset: any; - }; -} - -declare module '@fullcalendar/core/structs/event-source' { - import { EventInput } from '@fullcalendar/core/structs/event'; - import Calendar from '@fullcalendar/core/Calendar'; - import { DateRange } from '@fullcalendar/core/datelib/date-range'; - import { EventSourceFunc } from '@fullcalendar/core/event-sources/func-event-source'; - import { EventUi } from '@fullcalendar/core/component/event-ui'; - import { ConstraintInput, AllowFunc } from '@fullcalendar/core/validation'; - export type EventSourceError = { - message: string; - response?: any; - [otherProp: string]: any; - }; - export type EventInputTransformer = (eventInput: EventInput) => EventInput | null; - export type EventSourceSuccessResponseHandler = (rawData: any, response: any) => EventInput[] | void; - export type EventSourceErrorResponseHandler = (error: EventSourceError) => void; - export interface ExtendedEventSourceInput { - id?: string | number; - allDayDefault?: boolean; - eventDataTransform?: EventInputTransformer; - events?: EventInput[] | EventSourceFunc; - url?: string; - method?: string; - extraParams?: object | (() => object); - startParam?: string; - endParam?: string; - timeZoneParam?: string; - success?: EventSourceSuccessResponseHandler; - failure?: EventSourceErrorResponseHandler; - editable?: boolean; - startEditable?: boolean; - durationEditable?: boolean; - constraint?: ConstraintInput; - overlap?: boolean; - allow?: AllowFunc; - className?: string[] | string; - classNames?: string[] | string; - backgroundColor?: string; - borderColor?: string; - textColor?: string; - color?: string; - [otherProp: string]: any; - } - export type EventSourceInput = ExtendedEventSourceInput | // object in extended form - EventSourceFunc | // just a function - string; - export interface EventSource { - _raw: any; - sourceId: string; - sourceDefId: number; - meta: any; - publicId: string; - isFetching: boolean; - latestFetchId: string; - fetchRange: DateRange | null; - allDayDefault: boolean | null; - eventDataTransform: EventInputTransformer; - ui: EventUi; - success: EventSourceSuccessResponseHandler | null; - failure: EventSourceErrorResponseHandler | null; - extendedProps: any; - } - export type EventSourceHash = { - [sourceId: string]: EventSource; - }; - export type EventSourceFetcher = (arg: { - eventSource: EventSource; - calendar: Calendar; - range: DateRange; - }, success: (res: { - rawEvents: EventInput[]; - xhr?: XMLHttpRequest; - }) => void, failure: (error: EventSourceError) => void) => (void | PromiseLike); - export interface EventSourceDef { - ignoreRange?: boolean; - parseMeta: (raw: EventSourceInput) => object | null; - fetch: EventSourceFetcher; - } - export function doesSourceNeedRange(eventSource: EventSource, calendar: Calendar): boolean; - export function parseEventSource(raw: EventSourceInput, calendar: Calendar): EventSource | null; -} - -declare module '@fullcalendar/core/interactions/interaction' { - import DateComponent from '@fullcalendar/core/component/DateComponent'; - export abstract class Interaction { - component: DateComponent; - constructor(settings: InteractionSettings); - destroy(): void; - } - export type InteractionClass = { - new (settings: InteractionSettings): Interaction; - }; - export interface InteractionSettingsInput { - el: HTMLElement; - useEventCenter?: boolean; - } - export interface InteractionSettings { - component: DateComponent; - el: HTMLElement; - useEventCenter: boolean; - } - export type InteractionSettingsStore = { - [componenUid: string]: InteractionSettings; - }; - export function parseInteractionSettings(component: DateComponent, input: InteractionSettingsInput): InteractionSettings; - export function interactionSettingsToStore(settings: InteractionSettings): { - [x: string]: InteractionSettings; - }; - export let interactionSettingsStore: InteractionSettingsStore; -} - -declare module '@fullcalendar/core/interactions/pointer' { - export interface PointerDragEvent { - origEvent: UIEvent; - isTouch: boolean; - subjectEl: EventTarget; - pageX: number; - pageY: number; - deltaX: number; - deltaY: number; - } -} - -declare module '@fullcalendar/core/interactions/hit' { - import DateComponent from '@fullcalendar/core/component/DateComponent'; - import { DateSpan } from '@fullcalendar/core/structs/date-span'; - import { Rect } from '@fullcalendar/core/util/geom'; - export interface Hit { - component: DateComponent; - dateSpan: DateSpan; - dayEl: HTMLElement; - rect: Rect; - layer: number; - } -} - -declare module '@fullcalendar/core/interactions/date-selecting' { - import { Hit } from '@fullcalendar/core/interactions/hit'; - export type dateSelectionJoinTransformer = (hit0: Hit, hit1: Hit) => any; -} - -declare module '@fullcalendar/core/interactions/event-dragging' { - import Calendar from '@fullcalendar/core/Calendar'; - import { EventMutation } from '@fullcalendar/core/structs/event-mutation'; - import { Hit } from '@fullcalendar/core/interactions/hit'; - import { EventDef } from '@fullcalendar/core/structs/event'; - import { EventUi } from '@fullcalendar/core/component/event-ui'; - import { View } from '@fullcalendar/core'; - export type eventDragMutationMassager = (mutation: EventMutation, hit0: Hit, hit1: Hit) => void; - export type EventDropTransformers = (mutation: EventMutation, calendar: Calendar) => any; - export type eventIsDraggableTransformer = (val: boolean, eventDef: EventDef, eventUi: EventUi, view: View) => boolean; -} - -declare module '@fullcalendar/core/interactions/event-resizing' { - import { Hit } from '@fullcalendar/core/interactions/hit'; - export type EventResizeJoinTransforms = (hit0: Hit, hit1: Hit) => false | object; -} - -declare module '@fullcalendar/core/interactions/ElementDragging' { - import EmitterMixin from '@fullcalendar/core/common/EmitterMixin'; - export { ElementDragging as default, ElementDragging }; - abstract class ElementDragging { - emitter: EmitterMixin; - constructor(el: HTMLElement); - destroy(): void; - abstract setIgnoreMove(bool: boolean): void; - setMirrorIsVisible(bool: boolean): void; - setMirrorNeedsRevert(bool: boolean): void; - setAutoScrollEnabled(bool: boolean): void; - } - export type ElementDraggingClass = { - new (el: HTMLElement): ElementDragging; - }; -} - -declare module '@fullcalendar/core/formatting-api' { - import { DateInput } from '@fullcalendar/core/datelib/env'; - export function formatDate(dateInput: DateInput, settings?: {}): any; - export function formatRange(startInput: DateInput, endInput: DateInput, settings: any): any; -} - -declare module '@fullcalendar/core/options' { - import { PluginDef } from '@fullcalendar/core/plugin-system'; - export const config: any; - export const globalDefaults: { - defaultRangeSeparator: string; - titleRangeSeparator: string; - defaultTimedEventDuration: string; - defaultAllDayEventDuration: { - day: number; - }; - forceEventDuration: boolean; - nextDayThreshold: string; - columnHeader: boolean; - defaultView: string; - aspectRatio: number; - header: { - left: string; - center: string; - right: string; - }; - weekends: boolean; - weekNumbers: boolean; - weekNumberCalculation: string; - editable: boolean; - scrollTime: string; - minTime: string; - maxTime: string; - showNonCurrentDates: boolean; - lazyFetching: boolean; - startParam: string; - endParam: string; - timeZoneParam: string; - timeZone: string; - locales: any[]; - locale: string; - timeGridEventMinHeight: number; - themeSystem: string; - dragRevertDuration: number; - dragScroll: boolean; - allDayMaintainDuration: boolean; - unselectAuto: boolean; - dropAccept: string; - eventOrder: string; - eventLimit: boolean; - eventLimitClick: string; - dayPopoverFormat: { - month: string; - day: string; - year: string; - }; - handleWindowResize: boolean; - windowResizeDelay: number; - longPressDelay: number; - eventDragMinDistance: number; - }; - export const rtlDefaults: { - header: { - left: string; - center: string; - right: string; - }; - buttonIcons: { - prev: string; - next: string; - prevYear: string; - nextYear: string; - }; - }; - export function mergeOptions(optionObjs: any): any; - export function refinePluginDefs(pluginInputs: any[]): PluginDef[]; -} - -declare module '@fullcalendar/core/structs/recurring-event' { - import { EventInput, EventDef } from '@fullcalendar/core/structs/event'; - import { DateRange } from '@fullcalendar/core/datelib/date-range'; - import { DateEnv } from '@fullcalendar/core/datelib/env'; - import { Duration } from '@fullcalendar/core/datelib/duration'; - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - export interface ParsedRecurring { - typeData: any; - allDayGuess: boolean | null; - duration: Duration | null; - } - export interface RecurringType { - parse: (rawEvent: EventInput, leftoverProps: any, dateEnv: DateEnv) => ParsedRecurring | null; - expand: (typeData: any, framingRange: DateRange, dateEnv: DateEnv) => DateMarker[]; - } - export function parseRecurring(eventInput: EventInput, allDayDefault: boolean | null, dateEnv: DateEnv, recurringTypes: RecurringType[], leftovers: any): { - allDay: any; - duration: Duration; - typeData: any; - typeId: number; - }; - export function expandRecurringRanges(eventDef: EventDef, duration: Duration, framingRange: DateRange, dateEnv: DateEnv, recurringTypes: RecurringType[]): DateMarker[]; -} - -declare module '@fullcalendar/core/structs/drag-meta' { - import { Duration, DurationInput } from '@fullcalendar/core/datelib/duration'; - import { EventNonDateInput } from '@fullcalendar/core/structs/event'; - export interface DragMetaInput extends EventNonDateInput { - startTime?: DurationInput; - duration?: DurationInput; - create?: boolean; - sourceId?: string; - } - export interface DragMeta { - startTime: Duration | null; - duration: Duration | null; - create: boolean; - sourceId: string; - leftoverProps: object; - } - export function parseDragMeta(raw: DragMetaInput): DragMeta; -} - -declare module '@fullcalendar/core/plugin-system' { - import { reducerFunc } from '@fullcalendar/core/reducers/types'; - import { eventDefParserFunc } from '@fullcalendar/core/structs/event'; - import { eventDefMutationApplier } from '@fullcalendar/core/structs/event-mutation'; - import Calendar, { DatePointTransform, DateSpanTransform, CalendarInteractionClass, OptionChangeHandlerMap } from '@fullcalendar/core/Calendar'; - import { ViewConfigInputHash } from '@fullcalendar/core/structs/view-config'; - import { ViewSpec } from '@fullcalendar/core/structs/view-spec'; - import View, { ViewProps } from '@fullcalendar/core/View'; - import { CalendarComponentProps } from '@fullcalendar/core/CalendarComponent'; - import { isPropsValidTester } from '@fullcalendar/core/validation'; - import { eventDragMutationMassager, eventIsDraggableTransformer, EventDropTransformers } from '@fullcalendar/core/interactions/event-dragging'; - import { dateSelectionJoinTransformer } from '@fullcalendar/core/interactions/date-selecting'; - import { EventResizeJoinTransforms } from '@fullcalendar/core/interactions/event-resizing'; - import { ExternalDefTransform } from '@fullcalendar/core/interactions/external-element-dragging'; - import { InteractionClass } from '@fullcalendar/core/interactions/interaction'; - import { ThemeClass } from '@fullcalendar/core/theme/Theme'; - import { EventSourceDef } from '@fullcalendar/core/structs/event-source'; - import { CmdFormatterFunc } from '@fullcalendar/core/datelib/formatting-cmd'; - import { RecurringType } from '@fullcalendar/core/structs/recurring-event'; - import { NamedTimeZoneImplClass } from '@fullcalendar/core/datelib/timezone'; - import { ElementDraggingClass } from '@fullcalendar/core/interactions/ElementDragging'; - export interface PluginDefInput { - deps?: PluginDef[]; - reducers?: reducerFunc[]; - eventDefParsers?: eventDefParserFunc[]; - isDraggableTransformers?: eventIsDraggableTransformer[]; - eventDragMutationMassagers?: eventDragMutationMassager[]; - eventDefMutationAppliers?: eventDefMutationApplier[]; - dateSelectionTransformers?: dateSelectionJoinTransformer[]; - datePointTransforms?: DatePointTransform[]; - dateSpanTransforms?: DateSpanTransform[]; - views?: ViewConfigInputHash; - viewPropsTransformers?: ViewPropsTransformerClass[]; - isPropsValid?: isPropsValidTester; - externalDefTransforms?: ExternalDefTransform[]; - eventResizeJoinTransforms?: EventResizeJoinTransforms[]; - viewContainerModifiers?: ViewContainerModifier[]; - eventDropTransformers?: EventDropTransformers[]; - componentInteractions?: InteractionClass[]; - calendarInteractions?: CalendarInteractionClass[]; - themeClasses?: { - [themeSystemName: string]: ThemeClass; - }; - eventSourceDefs?: EventSourceDef[]; - cmdFormatter?: CmdFormatterFunc; - recurringTypes?: RecurringType[]; - namedTimeZonedImpl?: NamedTimeZoneImplClass; - defaultView?: string; - elementDraggingImpl?: ElementDraggingClass; - optionChangeHandlers?: OptionChangeHandlerMap; - } - export interface PluginHooks { - reducers: reducerFunc[]; - eventDefParsers: eventDefParserFunc[]; - isDraggableTransformers: eventIsDraggableTransformer[]; - eventDragMutationMassagers: eventDragMutationMassager[]; - eventDefMutationAppliers: eventDefMutationApplier[]; - dateSelectionTransformers: dateSelectionJoinTransformer[]; - datePointTransforms: DatePointTransform[]; - dateSpanTransforms: DateSpanTransform[]; - views: ViewConfigInputHash; - viewPropsTransformers: ViewPropsTransformerClass[]; - isPropsValid: isPropsValidTester | null; - externalDefTransforms: ExternalDefTransform[]; - eventResizeJoinTransforms: EventResizeJoinTransforms[]; - viewContainerModifiers: ViewContainerModifier[]; - eventDropTransformers: EventDropTransformers[]; - componentInteractions: InteractionClass[]; - calendarInteractions: CalendarInteractionClass[]; - themeClasses: { - [themeSystemName: string]: ThemeClass; - }; - eventSourceDefs: EventSourceDef[]; - cmdFormatter?: CmdFormatterFunc; - recurringTypes: RecurringType[]; - namedTimeZonedImpl?: NamedTimeZoneImplClass; - defaultView: string; - elementDraggingImpl?: ElementDraggingClass; - optionChangeHandlers: OptionChangeHandlerMap; - } - export interface PluginDef extends PluginHooks { - id: string; - deps: PluginDef[]; - } - export type ViewPropsTransformerClass = new () => ViewPropsTransformer; - export interface ViewPropsTransformer { - transform(viewProps: ViewProps, viewSpec: ViewSpec, calendarProps: CalendarComponentProps, view: View): any; - } - export type ViewContainerModifier = (contentEl: HTMLElement, calendar: Calendar) => void; - export function createPlugin(input: PluginDefInput): PluginDef; - export class PluginSystem { - hooks: PluginHooks; - addedHash: { - [pluginId: string]: true; - }; - constructor(); - add(plugin: PluginDef): void; - } -} - -declare module '@fullcalendar/core/reducers/types' { - import { EventInput, EventInstanceHash } from '@fullcalendar/core/structs/event'; - import { DateRange } from '@fullcalendar/core/datelib/date-range'; - import { EventStore } from '@fullcalendar/core/structs/event-store'; - import { EventMutation } from '@fullcalendar/core/structs/event-mutation'; - import { EventSource, EventSourceHash, EventSourceError } from '@fullcalendar/core/structs/event-source'; - import { DateProfile } from '@fullcalendar/core/DateProfileGenerator'; - import { EventInteractionState } from '@fullcalendar/core/interactions/event-interaction-state'; - import { DateSpan } from '@fullcalendar/core/structs/date-span'; - import { DateEnv } from '@fullcalendar/core/datelib/env'; - import Calendar from '@fullcalendar/core/Calendar'; - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - export interface CalendarState { - eventSources: EventSourceHash; - eventSourceLoadingLevel: number; - loadingLevel: number; - viewType: string; - currentDate: DateMarker; - dateProfile: DateProfile | null; - eventStore: EventStore; - dateSelection: DateSpan | null; - eventSelection: string; - eventDrag: EventInteractionState | null; - eventResize: EventInteractionState | null; - } - export type reducerFunc = (state: CalendarState, action: Action, calendar: Calendar) => CalendarState; - export type Action = { - type: 'INIT'; - } | // wont it create another rerender? - { - type: 'PREV'; - } | { - type: 'NEXT'; - } | { - type: 'SET_DATE'; - dateMarker: DateMarker; - } | { - type: 'SET_VIEW_TYPE'; - viewType: string; - dateMarker?: DateMarker; - } | { - type: 'SELECT_DATES'; - selection: DateSpan; - } | { - type: 'UNSELECT_DATES'; - } | { - type: 'SELECT_EVENT'; - eventInstanceId: string; - } | { - type: 'UNSELECT_EVENT'; - } | { - type: 'SET_EVENT_DRAG'; - state: EventInteractionState; - } | { - type: 'UNSET_EVENT_DRAG'; - } | { - type: 'SET_EVENT_RESIZE'; - state: EventInteractionState; - } | { - type: 'UNSET_EVENT_RESIZE'; - } | { - type: 'ADD_EVENT_SOURCES'; - sources: EventSource[]; - } | { - type: 'REMOVE_EVENT_SOURCE'; - sourceId: string; - } | { - type: 'REMOVE_ALL_EVENT_SOURCES'; - } | { - type: 'FETCH_EVENT_SOURCES'; - sourceIds?: string[]; - } | // if no sourceIds, fetch all - { - type: 'CHANGE_TIMEZONE'; - oldDateEnv: DateEnv; - } | { - type: 'RECEIVE_EVENTS'; - sourceId: string; - fetchId: string; - fetchRange: DateRange | null; - rawEvents: EventInput[]; - } | { - type: 'RECEIVE_EVENT_ERROR'; - sourceId: string; - fetchId: string; - fetchRange: DateRange | null; - error: EventSourceError; - } | // need all these? - { - type: 'ADD_EVENTS'; - eventStore: EventStore; - } | { - type: 'MERGE_EVENTS'; - eventStore: EventStore; - } | { - type: 'MUTATE_EVENTS'; - instanceId: string; - mutation: EventMutation; - fromApi?: boolean; - } | { - type: 'REMOVE_EVENT_DEF'; - defId: string; - } | { - type: 'REMOVE_EVENT_INSTANCES'; - instances: EventInstanceHash; - } | { - type: 'REMOVE_ALL_EVENTS'; - } | { - type: 'RESET_EVENTS'; - }; -} - -declare module '@fullcalendar/core/CalendarComponent' { - import Component, { ComponentContext } from '@fullcalendar/core/component/Component'; - import { ViewSpec } from '@fullcalendar/core/structs/view-spec'; - import View from '@fullcalendar/core/View'; - import Toolbar from '@fullcalendar/core/Toolbar'; - import DateProfileGenerator, { DateProfile } from '@fullcalendar/core/DateProfileGenerator'; - import { EventStore } from '@fullcalendar/core/structs/event-store'; - import { EventUiHash } from '@fullcalendar/core/component/event-ui'; - import { BusinessHoursInput } from '@fullcalendar/core/structs/business-hours'; - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { CalendarState } from '@fullcalendar/core/reducers/types'; - export interface CalendarComponentProps extends CalendarState { - viewSpec: ViewSpec; - dateProfileGenerator: DateProfileGenerator; - eventUiBases: EventUiHash; - } - export { CalendarComponent as default, CalendarComponent }; - class CalendarComponent extends Component { - view: View; - header: Toolbar; - footer: Toolbar; - computeTitle: (dateProfile: any, viewOptions: any) => string; - parseBusinessHours: (input: BusinessHoursInput) => EventStore; - el: HTMLElement; - contentEl: HTMLElement; - isHeightAuto: boolean; - viewHeight: number; - constructor(context: ComponentContext, el: HTMLElement); - destroy(): void; - toggleElClassNames(bool: boolean): void; - render(props: CalendarComponentProps): void; - renderToolbars(viewSpec: ViewSpec, dateProfile: DateProfile, currentDate: DateMarker, dateProfileGenerator: DateProfileGenerator, title: string): void; - renderView(props: CalendarComponentProps, title: string): void; - updateSize(isResize?: boolean): void; - computeHeightVars(): void; - queryToolbarsHeight(): number; - freezeHeight(): void; - thawHeight(): void; - } -} - -declare module '@fullcalendar/core/common/DayHeader' { - import Component, { ComponentContext } from '@fullcalendar/core/component/Component'; - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { DateProfile } from '@fullcalendar/core/DateProfileGenerator'; - export interface DayTableHeaderProps { - dates: DateMarker[]; - dateProfile: DateProfile; - datesRepDistinctDays: boolean; - renderIntroHtml?: () => string; - } - export { DayHeader as default, DayHeader }; - class DayHeader extends Component { - el: HTMLElement; - thead: HTMLElement; - constructor(context: ComponentContext, parentEl: HTMLElement); - destroy(): void; - render(props: DayTableHeaderProps): void; - } -} - -declare module '@fullcalendar/core/common/table-utils' { - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { DateProfile } from '@fullcalendar/core/DateProfileGenerator'; - import { ComponentContext } from '@fullcalendar/core/component/Component'; - export function computeFallbackHeaderFormat(datesRepDistinctDays: boolean, dayCnt: number): { - weekday: string; - month?: undefined; - day?: undefined; - omitCommas?: undefined; - } | { - weekday: string; - month: string; - day: string; - omitCommas: boolean; - }; - export function renderDateCell(dateMarker: DateMarker, dateProfile: DateProfile, datesRepDistinctDays: any, colCnt: any, colHeadFormat: any, context: ComponentContext, colspan?: any, otherAttrs?: any): string; -} - -declare module '@fullcalendar/core/common/DaySeries' { - import DateProfileGenerator from '@fullcalendar/core/DateProfileGenerator'; - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { DateRange } from '@fullcalendar/core/datelib/date-range'; - export interface DaySeriesSeg { - firstIndex: number; - lastIndex: number; - isStart: boolean; - isEnd: boolean; - } - export { DaySeries as default, DaySeries }; - class DaySeries { - cnt: number; - dates: DateMarker[]; - indices: number[]; - constructor(range: DateRange, dateProfileGenerator: DateProfileGenerator); - sliceRange(range: DateRange): DaySeriesSeg | null; - } -} - -declare module '@fullcalendar/core/interactions/event-interaction-state' { - import { EventStore } from '@fullcalendar/core/structs/event-store'; - import { Seg } from '@fullcalendar/core/component/DateComponent'; - export interface EventInteractionState { - affectedEvents: EventStore; - mutatedEvents: EventStore; - isEvent: boolean; - origSeg: Seg | null; - } -} - -declare module '@fullcalendar/core/component/event-rendering' { - import { EventDef, EventTuple, EventDefHash } from '@fullcalendar/core/structs/event'; - import { EventStore } from '@fullcalendar/core/structs/event-store'; - import { DateRange } from '@fullcalendar/core/datelib/date-range'; - import { Duration } from '@fullcalendar/core/datelib/duration'; - import { Seg } from '@fullcalendar/core/component/DateComponent'; - import View from '@fullcalendar/core/View'; - import { EventUi, EventUiHash } from '@fullcalendar/core/component/event-ui'; - export interface EventRenderRange extends EventTuple { - ui: EventUi; - range: DateRange; - isStart: boolean; - isEnd: boolean; - } - export function sliceEventStore(eventStore: EventStore, eventUiBases: EventUiHash, framingRange: DateRange, nextDayThreshold?: Duration): { - bg: EventRenderRange[]; - fg: EventRenderRange[]; - }; - export function hasBgRendering(def: EventDef): boolean; - export function filterSegsViaEls(view: View, segs: Seg[], isMirror: boolean): Seg[]; - export function getElSeg(el: HTMLElement): Seg | null; - export function compileEventUis(eventDefs: EventDefHash, eventUiBases: EventUiHash): { - [key: string]: EventUi; - }; - export function compileEventUi(eventDef: EventDef, eventUiBases: EventUiHash): EventUi; -} - -declare module '@fullcalendar/core/common/DayTable' { - import DaySeries from '@fullcalendar/core/common/DaySeries'; - import { DateRange } from '@fullcalendar/core/datelib/date-range'; - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - import { Seg } from '@fullcalendar/core/component/DateComponent'; - export interface DayTableSeg extends Seg { - row: number; - firstCol: number; - lastCol: number; - } - export interface DayTableCell { - date: DateMarker; - htmlAttrs?: string; - } - export { DayTable as default, DayTable }; - class DayTable { - rowCnt: number; - colCnt: number; - cells: DayTableCell[][]; - headerDates: DateMarker[]; - constructor(daySeries: DaySeries, breakOnWeeks: boolean); - sliceRange(range: DateRange): DayTableSeg[]; - } -} - -declare module '@fullcalendar/core/common/slicing-utils' { - import { DateRange } from '@fullcalendar/core/datelib/date-range'; - import { EventStore } from '@fullcalendar/core/structs/event-store'; - import { EventUiHash } from '@fullcalendar/core/component/event-ui'; - import { DateProfile } from '@fullcalendar/core/DateProfileGenerator'; - import DateComponent, { Seg, EventSegUiInteractionState } from '@fullcalendar/core/component/DateComponent'; - import { DateSpan } from '@fullcalendar/core/structs/date-span'; - import { EventInteractionState } from '@fullcalendar/core/interactions/event-interaction-state'; - import { Duration } from '@fullcalendar/core/datelib/duration'; - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - export interface SliceableProps { - dateSelection: DateSpan; - businessHours: EventStore; - eventStore: EventStore; - eventDrag: EventInteractionState | null; - eventResize: EventInteractionState | null; - eventSelection: string; - eventUiBases: EventUiHash; - } - export interface SlicedProps { - dateSelectionSegs: SegType[]; - businessHourSegs: SegType[]; - fgEventSegs: SegType[]; - bgEventSegs: SegType[]; - eventDrag: EventSegUiInteractionState | null; - eventResize: EventSegUiInteractionState | null; - eventSelection: string; - } - export { Slicer as default, Slicer }; - abstract class Slicer { - abstract sliceRange(dateRange: DateRange, ...extraArgs: ExtraArgs): SegType[]; - sliceProps(props: SliceableProps, dateProfile: DateProfile, nextDayThreshold: Duration | null, component: DateComponent, // TODO: kill - ...extraArgs: ExtraArgs): SlicedProps; - sliceNowDate(// does not memoize - date: DateMarker, component: DateComponent, // TODO: kill - ...extraArgs: ExtraArgs): SegType[]; - } -} - -declare module '@fullcalendar/core/structs/event-mutation' { - import { Duration } from '@fullcalendar/core/datelib/duration'; - import { EventStore } from '@fullcalendar/core/structs/event-store'; - import { EventDef } from '@fullcalendar/core/structs/event'; - import Calendar from '@fullcalendar/core/Calendar'; - import { EventUiHash } from '@fullcalendar/core/component/event-ui'; - export interface EventMutation { - datesDelta?: Duration; - startDelta?: Duration; - endDelta?: Duration; - standardProps?: any; - extendedProps?: any; - } - export function applyMutationToEventStore(eventStore: EventStore, eventConfigBase: EventUiHash, mutation: EventMutation, calendar: Calendar): EventStore; - export type eventDefMutationApplier = (eventDef: EventDef, mutation: EventMutation, calendar: Calendar) => void; -} - -declare module '@fullcalendar/core/validation' { - import { EventStore } from '@fullcalendar/core/structs/event-store'; - import Calendar from '@fullcalendar/core/Calendar'; - import { DateSpan, DateSpanApi } from '@fullcalendar/core/structs/date-span'; - import EventApi from '@fullcalendar/core/api/EventApi'; - import { EventInput } from '@fullcalendar/core/structs/event'; - import { EventInteractionState } from '@fullcalendar/core/interactions/event-interaction-state'; - import { SplittableProps } from '@fullcalendar/core/component/event-splitting'; - export type ConstraintInput = 'businessHours' | string | EventInput | EventInput[]; - export type Constraint = 'businessHours' | string | EventStore | false; - export type OverlapFunc = ((stillEvent: EventApi, movingEvent: EventApi | null) => boolean); - export type AllowFunc = (span: DateSpanApi, movingEvent: EventApi | null) => boolean; - export type isPropsValidTester = (props: SplittableProps, calendar: Calendar) => boolean; - export function isInteractionValid(interaction: EventInteractionState, calendar: Calendar): boolean; - export function isDateSelectionValid(dateSelection: DateSpan, calendar: Calendar): boolean; - export function isPropsValid(state: SplittableProps, calendar: Calendar, dateSpanMeta?: {}, filterConfig?: any): boolean; - export function normalizeConstraint(input: ConstraintInput, calendar: Calendar): Constraint | null; -} - -declare module '@fullcalendar/core/api/EventApi' { - import Calendar from '@fullcalendar/core/Calendar'; - import { EventDef, EventInstance } from '@fullcalendar/core/structs/event'; - import { EventMutation } from '@fullcalendar/core/structs/event-mutation'; - import { DateInput } from '@fullcalendar/core/datelib/env'; - import { DurationInput } from '@fullcalendar/core/datelib/duration'; - import { FormatterInput } from '@fullcalendar/core/datelib/formatting'; - import EventSourceApi from '@fullcalendar/core/api/EventSourceApi'; - export { EventApi as default, EventApi }; - class EventApi { - _calendar: Calendar; - _def: EventDef; - _instance: EventInstance | null; - constructor(calendar: Calendar, def: EventDef, instance?: EventInstance); - setProp(name: string, val: string): void; - setExtendedProp(name: string, val: any): void; - setStart(startInput: DateInput, options?: { - granularity?: string; - maintainDuration?: boolean; - }): void; - setEnd(endInput: DateInput | null, options?: { - granularity?: string; - }): void; - setDates(startInput: DateInput, endInput: DateInput | null, options?: { - allDay?: boolean; - granularity?: string; - }): void; - moveStart(deltaInput: DurationInput): void; - moveEnd(deltaInput: DurationInput): void; - moveDates(deltaInput: DurationInput): void; - setAllDay(allDay: boolean, options?: { - maintainDuration?: boolean; - }): void; - formatRange(formatInput: FormatterInput): any; - mutate(mutation: EventMutation): void; - remove(): void; - readonly source: EventSourceApi | null; - readonly start: Date | null; - readonly end: Date | null; - readonly id: string; - readonly groupId: string; - readonly allDay: boolean; - readonly title: string; - readonly url: string; - readonly rendering: string; - readonly startEditable: boolean; - readonly durationEditable: boolean; - readonly constraint: any; - readonly overlap: any; - readonly allow: any; - readonly backgroundColor: string; - readonly borderColor: string; - readonly textColor: string; - readonly classNames: string[]; - readonly extendedProps: any; - } -} - -declare module '@fullcalendar/core/util/requestJson' { - export default function requestJson(method: string, url: string, params: object, successCallback: any, failureCallback: any): void; -} - -declare module '@fullcalendar/core/datelib/locale' { - export type LocaleCodeArg = string | string[]; - export type LocaleSingularArg = LocaleCodeArg | RawLocale; - export interface Locale { - codeArg: LocaleCodeArg; - codes: string[]; - week: { - dow: number; - doy: number; - }; - simpleNumberFormat: Intl.NumberFormat; - options: any; - } - export interface RawLocale { - code: string; - [otherProp: string]: any; - } - export type RawLocaleMap = { - [code: string]: RawLocale; - }; - export interface RawLocaleInfo { - map: RawLocaleMap; - defaultCode: string; - } - export function parseRawLocales(explicitRawLocales: RawLocale[]): RawLocaleInfo; - export function buildLocale(inputSingular: LocaleSingularArg, available: RawLocaleMap): Locale; -} - -declare module '@fullcalendar/core/OptionsManager' { - export { OptionsManager as default, OptionsManager }; - class OptionsManager { - dirDefaults: any; - localeDefaults: any; - overrides: any; - dynamicOverrides: any; - computed: any; - constructor(overrides: any); - mutate(updates: any, removals: string[], isDynamic?: boolean): void; - compute(): void; - } -} - -declare module '@fullcalendar/core/api/EventSourceApi' { - import Calendar from '@fullcalendar/core/Calendar'; - import { EventSource } from '@fullcalendar/core/structs/event-source'; - export { EventSourceApi as default, EventSourceApi }; - class EventSourceApi { - calendar: Calendar; - internalEventSource: EventSource; - constructor(calendar: Calendar, internalEventSource: EventSource); - remove(): void; - refetch(): void; - readonly id: string; - readonly url: string; - } -} - -declare module '@fullcalendar/core/structs/view-config' { - import View from '@fullcalendar/core/View'; - import { ViewSpec } from '@fullcalendar/core/structs/view-spec'; - import { ComponentContext } from '@fullcalendar/core/component/Component'; - import DateProfileGenerator from '@fullcalendar/core/DateProfileGenerator'; - export type ViewClass = new (context: ComponentContext, viewSpec: ViewSpec, dateProfileGenerator: DateProfileGenerator, parentEl: HTMLElement) => View; - export interface ViewConfigObjectInput { - type?: string; - class?: ViewClass; - [optionName: string]: any; - } - export type ViewConfigInput = ViewClass | ViewConfigObjectInput; - export type ViewConfigInputHash = { - [viewType: string]: ViewConfigInput; - }; - export interface ViewConfig { - superType: string; - class: ViewClass | null; - options: any; - } - export type ViewConfigHash = { - [viewType: string]: ViewConfig; - }; - export function parseViewConfigs(inputs: ViewConfigInputHash): ViewConfigHash; -} - -declare module '@fullcalendar/core/datelib/calendar-system' { - import { DateMarker } from '@fullcalendar/core/datelib/marker'; - export interface CalendarSystem { - getMarkerYear(d: DateMarker): number; - getMarkerMonth(d: DateMarker): number; - getMarkerDay(d: DateMarker): number; - arrayToMarker(arr: number[]): DateMarker; - markerToArray(d: DateMarker): number[]; - } - export function registerCalendarSystem(name: any, theClass: any): void; - export function createCalendarSystem(name: any): any; -} - -declare module '@fullcalendar/core/datelib/formatting-cmd' { - import { DateFormatter, DateFormattingContext, ZonedMarker, VerboseFormattingArg } from '@fullcalendar/core/datelib/formatting'; - export type CmdFormatterFunc = (cmd: string, arg: VerboseFormattingArg) => string; - export class CmdFormatter implements DateFormatter { - cmdStr: string; - separator: string; - constructor(cmdStr: string, separator?: string); - format(date: ZonedMarker, context: DateFormattingContext): string; - formatRange(start: ZonedMarker, end: ZonedMarker, context: DateFormattingContext): string; - } -} - -declare module '@fullcalendar/core/datelib/formatting-func' { - import { DateFormatter, DateFormattingContext, ZonedMarker, VerboseFormattingArg } from '@fullcalendar/core/datelib/formatting'; - export type FuncFormatterFunc = (arg: VerboseFormattingArg) => string; - export class FuncFormatter implements DateFormatter { - func: FuncFormatterFunc; - constructor(func: FuncFormatterFunc); - format(date: ZonedMarker, context: DateFormattingContext): string; - formatRange(start: ZonedMarker, end: ZonedMarker, context: DateFormattingContext): string; - } -} - -declare module '@fullcalendar/core/event-sources/func-event-source' { - import { EventSourceError } from '@fullcalendar/core/structs/event-source'; - import { EventInput } from '@fullcalendar/core/structs/event'; - export type EventSourceFunc = (arg: { - start: Date; - end: Date; - timeZone: string; - }, successCallback: (events: EventInput[]) => void, failureCallback: (error: EventSourceError) => void) => (void | PromiseLike); - const _default: import("@fullcalendar/core/plugin-system").PluginDef; - export default _default; -} - -declare module '@fullcalendar/core/interactions/external-element-dragging' { - import { DateSpan } from '@fullcalendar/core/structs/date-span'; - import { DragMeta } from '@fullcalendar/core/structs/drag-meta'; - export type ExternalDefTransform = (dateSpan: DateSpan, dragMeta: DragMeta) => any; -} - -declare module '@fullcalendar/core/Toolbar' { - import Component, { ComponentContext } from '@fullcalendar/core/component/Component'; - export interface ToolbarRenderProps { - layout: any; - title: string; - activeButton: string; - isTodayEnabled: boolean; - isPrevEnabled: boolean; - isNextEnabled: boolean; - } - export { Toolbar as default, Toolbar }; - class Toolbar extends Component { - el: HTMLElement; - viewsWithButtons: any; - constructor(context: ComponentContext, extraClassName: any); - destroy(): void; - render(props: ToolbarRenderProps): void; - renderLayout(layout: any): void; - unrenderLayout(): void; - renderSection(position: any, buttonStr: any): HTMLElement; - updateToday(isTodayEnabled: any): void; - updatePrev(isPrevEnabled: any): void; - updateNext(isNextEnabled: any): void; - updateTitle(text: any): void; - updateActiveButton(buttonName?: any): void; - toggleButtonEnabled(buttonName: any, bool: any): void; - } -} - diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/main.esm.js b/htdocs/public/high/plugins/fullcalendar/packages/core/main.esm.js deleted file mode 100644 index b3d27d75..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/main.esm.js +++ /dev/null @@ -1,8558 +0,0 @@ -/*! -FullCalendar Core Package v4.3.1 -Docs & License: https://fullcalendar.io/ -(c) 2019 Adam Shaw -*/ - -// Creating -// ---------------------------------------------------------------------------------------------------------------- -var elementPropHash = { - className: true, - colSpan: true, - rowSpan: true -}; -var containerTagHash = { - '= rect.left && - point.left < rect.right && - point.top >= rect.top && - point.top < rect.bottom; -} -// Returns a new rectangle that is the intersection of the two rectangles. If they don't intersect, returns false -function intersectRects(rect1, rect2) { - var res = { - left: Math.max(rect1.left, rect2.left), - right: Math.min(rect1.right, rect2.right), - top: Math.max(rect1.top, rect2.top), - bottom: Math.min(rect1.bottom, rect2.bottom) - }; - if (res.left < res.right && res.top < res.bottom) { - return res; - } - return false; -} -function translateRect(rect, deltaX, deltaY) { - return { - left: rect.left + deltaX, - right: rect.right + deltaX, - top: rect.top + deltaY, - bottom: rect.bottom + deltaY - }; -} -// Returns a new point that will have been moved to reside within the given rectangle -function constrainPoint(point, rect) { - return { - left: Math.min(Math.max(point.left, rect.left), rect.right), - top: Math.min(Math.max(point.top, rect.top), rect.bottom) - }; -} -// Returns a point that is the center of the given rectangle -function getRectCenter(rect) { - return { - left: (rect.left + rect.right) / 2, - top: (rect.top + rect.bottom) / 2 - }; -} -// Subtracts point2's coordinates from point1's coordinates, returning a delta -function diffPoints(point1, point2) { - return { - left: point1.left - point2.left, - top: point1.top - point2.top - }; -} - -// Logic for determining if, when the element is right-to-left, the scrollbar appears on the left side -var isRtlScrollbarOnLeft = null; -function getIsRtlScrollbarOnLeft() { - if (isRtlScrollbarOnLeft === null) { - isRtlScrollbarOnLeft = computeIsRtlScrollbarOnLeft(); - } - return isRtlScrollbarOnLeft; -} -function computeIsRtlScrollbarOnLeft() { - var outerEl = createElement('div', { - style: { - position: 'absolute', - top: -1000, - left: 0, - border: 0, - padding: 0, - overflow: 'scroll', - direction: 'rtl' - } - }, '
'); - document.body.appendChild(outerEl); - var innerEl = outerEl.firstChild; - var res = innerEl.getBoundingClientRect().left > outerEl.getBoundingClientRect().left; - removeElement(outerEl); - return res; -} -// The scrollbar width computations in computeEdges are sometimes flawed when it comes to -// retina displays, rounding, and IE11. Massage them into a usable value. -function sanitizeScrollbarWidth(width) { - width = Math.max(0, width); // no negatives - width = Math.round(width); - return width; -} - -function computeEdges(el, getPadding) { - if (getPadding === void 0) { getPadding = false; } - var computedStyle = window.getComputedStyle(el); - var borderLeft = parseInt(computedStyle.borderLeftWidth, 10) || 0; - var borderRight = parseInt(computedStyle.borderRightWidth, 10) || 0; - var borderTop = parseInt(computedStyle.borderTopWidth, 10) || 0; - var borderBottom = parseInt(computedStyle.borderBottomWidth, 10) || 0; - // must use offset(Width|Height) because compatible with client(Width|Height) - var scrollbarLeftRight = sanitizeScrollbarWidth(el.offsetWidth - el.clientWidth - borderLeft - borderRight); - var scrollbarBottom = sanitizeScrollbarWidth(el.offsetHeight - el.clientHeight - borderTop - borderBottom); - var res = { - borderLeft: borderLeft, - borderRight: borderRight, - borderTop: borderTop, - borderBottom: borderBottom, - scrollbarBottom: scrollbarBottom, - scrollbarLeft: 0, - scrollbarRight: 0 - }; - if (getIsRtlScrollbarOnLeft() && computedStyle.direction === 'rtl') { // is the scrollbar on the left side? - res.scrollbarLeft = scrollbarLeftRight; - } - else { - res.scrollbarRight = scrollbarLeftRight; - } - if (getPadding) { - res.paddingLeft = parseInt(computedStyle.paddingLeft, 10) || 0; - res.paddingRight = parseInt(computedStyle.paddingRight, 10) || 0; - res.paddingTop = parseInt(computedStyle.paddingTop, 10) || 0; - res.paddingBottom = parseInt(computedStyle.paddingBottom, 10) || 0; - } - return res; -} -function computeInnerRect(el, goWithinPadding) { - if (goWithinPadding === void 0) { goWithinPadding = false; } - var outerRect = computeRect(el); - var edges = computeEdges(el, goWithinPadding); - var res = { - left: outerRect.left + edges.borderLeft + edges.scrollbarLeft, - right: outerRect.right - edges.borderRight - edges.scrollbarRight, - top: outerRect.top + edges.borderTop, - bottom: outerRect.bottom - edges.borderBottom - edges.scrollbarBottom - }; - if (goWithinPadding) { - res.left += edges.paddingLeft; - res.right -= edges.paddingRight; - res.top += edges.paddingTop; - res.bottom -= edges.paddingBottom; - } - return res; -} -function computeRect(el) { - var rect = el.getBoundingClientRect(); - return { - left: rect.left + window.pageXOffset, - top: rect.top + window.pageYOffset, - right: rect.right + window.pageXOffset, - bottom: rect.bottom + window.pageYOffset - }; -} -function computeViewportRect() { - return { - left: window.pageXOffset, - right: window.pageXOffset + document.documentElement.clientWidth, - top: window.pageYOffset, - bottom: window.pageYOffset + document.documentElement.clientHeight - }; -} -function computeHeightAndMargins(el) { - return el.getBoundingClientRect().height + computeVMargins(el); -} -function computeVMargins(el) { - var computed = window.getComputedStyle(el); - return parseInt(computed.marginTop, 10) + - parseInt(computed.marginBottom, 10); -} -// does not return window -function getClippingParents(el) { - var parents = []; - while (el instanceof HTMLElement) { // will stop when gets to document or null - var computedStyle = window.getComputedStyle(el); - if (computedStyle.position === 'fixed') { - break; - } - if ((/(auto|scroll)/).test(computedStyle.overflow + computedStyle.overflowY + computedStyle.overflowX)) { - parents.push(el); - } - el = el.parentNode; - } - return parents; -} -function computeClippingRect(el) { - return getClippingParents(el) - .map(function (el) { - return computeInnerRect(el); - }) - .concat(computeViewportRect()) - .reduce(function (rect0, rect1) { - return intersectRects(rect0, rect1) || rect1; // should always intersect - }); -} - -// Stops a mouse/touch event from doing it's native browser action -function preventDefault(ev) { - ev.preventDefault(); -} -// Event Delegation -// ---------------------------------------------------------------------------------------------------------------- -function listenBySelector(container, eventType, selector, handler) { - function realHandler(ev) { - var matchedChild = elementClosest(ev.target, selector); - if (matchedChild) { - handler.call(matchedChild, ev, matchedChild); - } - } - container.addEventListener(eventType, realHandler); - return function () { - container.removeEventListener(eventType, realHandler); - }; -} -function listenToHoverBySelector(container, selector, onMouseEnter, onMouseLeave) { - var currentMatchedChild; - return listenBySelector(container, 'mouseover', selector, function (ev, matchedChild) { - if (matchedChild !== currentMatchedChild) { - currentMatchedChild = matchedChild; - onMouseEnter(ev, matchedChild); - var realOnMouseLeave_1 = function (ev) { - currentMatchedChild = null; - onMouseLeave(ev, matchedChild); - matchedChild.removeEventListener('mouseleave', realOnMouseLeave_1); - }; - // listen to the next mouseleave, and then unattach - matchedChild.addEventListener('mouseleave', realOnMouseLeave_1); - } - }); -} -// Animation -// ---------------------------------------------------------------------------------------------------------------- -var transitionEventNames = [ - 'webkitTransitionEnd', - 'otransitionend', - 'oTransitionEnd', - 'msTransitionEnd', - 'transitionend' -]; -// triggered only when the next single subsequent transition finishes -function whenTransitionDone(el, callback) { - var realCallback = function (ev) { - callback(ev); - transitionEventNames.forEach(function (eventName) { - el.removeEventListener(eventName, realCallback); - }); - }; - transitionEventNames.forEach(function (eventName) { - el.addEventListener(eventName, realCallback); // cross-browser way to determine when the transition finishes - }); -} - -var DAY_IDS = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat']; -// Adding -function addWeeks(m, n) { - var a = dateToUtcArray(m); - a[2] += n * 7; - return arrayToUtcDate(a); -} -function addDays(m, n) { - var a = dateToUtcArray(m); - a[2] += n; - return arrayToUtcDate(a); -} -function addMs(m, n) { - var a = dateToUtcArray(m); - a[6] += n; - return arrayToUtcDate(a); -} -// Diffing (all return floats) -function diffWeeks(m0, m1) { - return diffDays(m0, m1) / 7; -} -function diffDays(m0, m1) { - return (m1.valueOf() - m0.valueOf()) / (1000 * 60 * 60 * 24); -} -function diffHours(m0, m1) { - return (m1.valueOf() - m0.valueOf()) / (1000 * 60 * 60); -} -function diffMinutes(m0, m1) { - return (m1.valueOf() - m0.valueOf()) / (1000 * 60); -} -function diffSeconds(m0, m1) { - return (m1.valueOf() - m0.valueOf()) / 1000; -} -function diffDayAndTime(m0, m1) { - var m0day = startOfDay(m0); - var m1day = startOfDay(m1); - return { - years: 0, - months: 0, - days: Math.round(diffDays(m0day, m1day)), - milliseconds: (m1.valueOf() - m1day.valueOf()) - (m0.valueOf() - m0day.valueOf()) - }; -} -// Diffing Whole Units -function diffWholeWeeks(m0, m1) { - var d = diffWholeDays(m0, m1); - if (d !== null && d % 7 === 0) { - return d / 7; - } - return null; -} -function diffWholeDays(m0, m1) { - if (timeAsMs(m0) === timeAsMs(m1)) { - return Math.round(diffDays(m0, m1)); - } - return null; -} -// Start-Of -function startOfDay(m) { - return arrayToUtcDate([ - m.getUTCFullYear(), - m.getUTCMonth(), - m.getUTCDate() - ]); -} -function startOfHour(m) { - return arrayToUtcDate([ - m.getUTCFullYear(), - m.getUTCMonth(), - m.getUTCDate(), - m.getUTCHours() - ]); -} -function startOfMinute(m) { - return arrayToUtcDate([ - m.getUTCFullYear(), - m.getUTCMonth(), - m.getUTCDate(), - m.getUTCHours(), - m.getUTCMinutes() - ]); -} -function startOfSecond(m) { - return arrayToUtcDate([ - m.getUTCFullYear(), - m.getUTCMonth(), - m.getUTCDate(), - m.getUTCHours(), - m.getUTCMinutes(), - m.getUTCSeconds() - ]); -} -// Week Computation -function weekOfYear(marker, dow, doy) { - var y = marker.getUTCFullYear(); - var w = weekOfGivenYear(marker, y, dow, doy); - if (w < 1) { - return weekOfGivenYear(marker, y - 1, dow, doy); - } - var nextW = weekOfGivenYear(marker, y + 1, dow, doy); - if (nextW >= 1) { - return Math.min(w, nextW); - } - return w; -} -function weekOfGivenYear(marker, year, dow, doy) { - var firstWeekStart = arrayToUtcDate([year, 0, 1 + firstWeekOffset(year, dow, doy)]); - var dayStart = startOfDay(marker); - var days = Math.round(diffDays(firstWeekStart, dayStart)); - return Math.floor(days / 7) + 1; // zero-indexed -} -// start-of-first-week - start-of-year -function firstWeekOffset(year, dow, doy) { - // first-week day -- which january is always in the first week (4 for iso, 1 for other) - var fwd = 7 + dow - doy; - // first-week day local weekday -- which local weekday is fwd - var fwdlw = (7 + arrayToUtcDate([year, 0, fwd]).getUTCDay() - dow) % 7; - return -fwdlw + fwd - 1; -} -// Array Conversion -function dateToLocalArray(date) { - return [ - date.getFullYear(), - date.getMonth(), - date.getDate(), - date.getHours(), - date.getMinutes(), - date.getSeconds(), - date.getMilliseconds() - ]; -} -function arrayToLocalDate(a) { - return new Date(a[0], a[1] || 0, a[2] == null ? 1 : a[2], // day of month - a[3] || 0, a[4] || 0, a[5] || 0); -} -function dateToUtcArray(date) { - return [ - date.getUTCFullYear(), - date.getUTCMonth(), - date.getUTCDate(), - date.getUTCHours(), - date.getUTCMinutes(), - date.getUTCSeconds(), - date.getUTCMilliseconds() - ]; -} -function arrayToUtcDate(a) { - // according to web standards (and Safari), a month index is required. - // massage if only given a year. - if (a.length === 1) { - a = a.concat([0]); - } - return new Date(Date.UTC.apply(Date, a)); -} -// Other Utils -function isValidDate(m) { - return !isNaN(m.valueOf()); -} -function timeAsMs(m) { - return m.getUTCHours() * 1000 * 60 * 60 + - m.getUTCMinutes() * 1000 * 60 + - m.getUTCSeconds() * 1000 + - m.getUTCMilliseconds(); -} - -var INTERNAL_UNITS = ['years', 'months', 'days', 'milliseconds']; -var PARSE_RE = /^(-?)(?:(\d+)\.)?(\d+):(\d\d)(?::(\d\d)(?:\.(\d\d\d))?)?/; -// Parsing and Creation -function createDuration(input, unit) { - var _a; - if (typeof input === 'string') { - return parseString(input); - } - else if (typeof input === 'object' && input) { // non-null object - return normalizeObject(input); - } - else if (typeof input === 'number') { - return normalizeObject((_a = {}, _a[unit || 'milliseconds'] = input, _a)); - } - else { - return null; - } -} -function parseString(s) { - var m = PARSE_RE.exec(s); - if (m) { - var sign = m[1] ? -1 : 1; - return { - years: 0, - months: 0, - days: sign * (m[2] ? parseInt(m[2], 10) : 0), - milliseconds: sign * ((m[3] ? parseInt(m[3], 10) : 0) * 60 * 60 * 1000 + // hours - (m[4] ? parseInt(m[4], 10) : 0) * 60 * 1000 + // minutes - (m[5] ? parseInt(m[5], 10) : 0) * 1000 + // seconds - (m[6] ? parseInt(m[6], 10) : 0) // ms - ) - }; - } - return null; -} -function normalizeObject(obj) { - return { - years: obj.years || obj.year || 0, - months: obj.months || obj.month || 0, - days: (obj.days || obj.day || 0) + - getWeeksFromInput(obj) * 7, - milliseconds: (obj.hours || obj.hour || 0) * 60 * 60 * 1000 + // hours - (obj.minutes || obj.minute || 0) * 60 * 1000 + // minutes - (obj.seconds || obj.second || 0) * 1000 + // seconds - (obj.milliseconds || obj.millisecond || obj.ms || 0) // ms - }; -} -function getWeeksFromInput(obj) { - return obj.weeks || obj.week || 0; -} -// Equality -function durationsEqual(d0, d1) { - return d0.years === d1.years && - d0.months === d1.months && - d0.days === d1.days && - d0.milliseconds === d1.milliseconds; -} -function isSingleDay(dur) { - return dur.years === 0 && dur.months === 0 && dur.days === 1 && dur.milliseconds === 0; -} -// Simple Math -function addDurations(d0, d1) { - return { - years: d0.years + d1.years, - months: d0.months + d1.months, - days: d0.days + d1.days, - milliseconds: d0.milliseconds + d1.milliseconds - }; -} -function subtractDurations(d1, d0) { - return { - years: d1.years - d0.years, - months: d1.months - d0.months, - days: d1.days - d0.days, - milliseconds: d1.milliseconds - d0.milliseconds - }; -} -function multiplyDuration(d, n) { - return { - years: d.years * n, - months: d.months * n, - days: d.days * n, - milliseconds: d.milliseconds * n - }; -} -// Conversions -// "Rough" because they are based on average-case Gregorian months/years -function asRoughYears(dur) { - return asRoughDays(dur) / 365; -} -function asRoughMonths(dur) { - return asRoughDays(dur) / 30; -} -function asRoughDays(dur) { - return asRoughMs(dur) / 864e5; -} -function asRoughMinutes(dur) { - return asRoughMs(dur) / (1000 * 60); -} -function asRoughSeconds(dur) { - return asRoughMs(dur) / 1000; -} -function asRoughMs(dur) { - return dur.years * (365 * 864e5) + - dur.months * (30 * 864e5) + - dur.days * 864e5 + - dur.milliseconds; -} -// Advanced Math -function wholeDivideDurations(numerator, denominator) { - var res = null; - for (var i = 0; i < INTERNAL_UNITS.length; i++) { - var unit = INTERNAL_UNITS[i]; - if (denominator[unit]) { - var localRes = numerator[unit] / denominator[unit]; - if (!isInt(localRes) || (res !== null && res !== localRes)) { - return null; - } - res = localRes; - } - else if (numerator[unit]) { - // needs to divide by something but can't! - return null; - } - } - return res; -} -function greatestDurationDenominator(dur, dontReturnWeeks) { - var ms = dur.milliseconds; - if (ms) { - if (ms % 1000 !== 0) { - return { unit: 'millisecond', value: ms }; - } - if (ms % (1000 * 60) !== 0) { - return { unit: 'second', value: ms / 1000 }; - } - if (ms % (1000 * 60 * 60) !== 0) { - return { unit: 'minute', value: ms / (1000 * 60) }; - } - if (ms) { - return { unit: 'hour', value: ms / (1000 * 60 * 60) }; - } - } - if (dur.days) { - if (!dontReturnWeeks && dur.days % 7 === 0) { - return { unit: 'week', value: dur.days / 7 }; - } - return { unit: 'day', value: dur.days }; - } - if (dur.months) { - return { unit: 'month', value: dur.months }; - } - if (dur.years) { - return { unit: 'year', value: dur.years }; - } - return { unit: 'millisecond', value: 0 }; -} - -/* FullCalendar-specific DOM Utilities -----------------------------------------------------------------------------------------------------------------------*/ -// Given the scrollbar widths of some other container, create borders/margins on rowEls in order to match the left -// and right space that was offset by the scrollbars. A 1-pixel border first, then margin beyond that. -function compensateScroll(rowEl, scrollbarWidths) { - if (scrollbarWidths.left) { - applyStyle(rowEl, { - borderLeftWidth: 1, - marginLeft: scrollbarWidths.left - 1 - }); - } - if (scrollbarWidths.right) { - applyStyle(rowEl, { - borderRightWidth: 1, - marginRight: scrollbarWidths.right - 1 - }); - } -} -// Undoes compensateScroll and restores all borders/margins -function uncompensateScroll(rowEl) { - applyStyle(rowEl, { - marginLeft: '', - marginRight: '', - borderLeftWidth: '', - borderRightWidth: '' - }); -} -// Make the mouse cursor express that an event is not allowed in the current area -function disableCursor() { - document.body.classList.add('fc-not-allowed'); -} -// Returns the mouse cursor to its original look -function enableCursor() { - document.body.classList.remove('fc-not-allowed'); -} -// Given a total available height to fill, have `els` (essentially child rows) expand to accomodate. -// By default, all elements that are shorter than the recommended height are expanded uniformly, not considering -// any other els that are already too tall. if `shouldRedistribute` is on, it considers these tall rows and -// reduces the available height. -function distributeHeight(els, availableHeight, shouldRedistribute) { - // *FLOORING NOTE*: we floor in certain places because zoom can give inaccurate floating-point dimensions, - // and it is better to be shorter than taller, to avoid creating unnecessary scrollbars. - var minOffset1 = Math.floor(availableHeight / els.length); // for non-last element - var minOffset2 = Math.floor(availableHeight - minOffset1 * (els.length - 1)); // for last element *FLOORING NOTE* - var flexEls = []; // elements that are allowed to expand. array of DOM nodes - var flexOffsets = []; // amount of vertical space it takes up - var flexHeights = []; // actual css height - var usedHeight = 0; - undistributeHeight(els); // give all elements their natural height - // find elements that are below the recommended height (expandable). - // important to query for heights in a single first pass (to avoid reflow oscillation). - els.forEach(function (el, i) { - var minOffset = i === els.length - 1 ? minOffset2 : minOffset1; - var naturalHeight = el.getBoundingClientRect().height; - var naturalOffset = naturalHeight + computeVMargins(el); - if (naturalOffset < minOffset) { - flexEls.push(el); - flexOffsets.push(naturalOffset); - flexHeights.push(naturalHeight); - } - else { - // this element stretches past recommended height (non-expandable). mark the space as occupied. - usedHeight += naturalOffset; - } - }); - // readjust the recommended height to only consider the height available to non-maxed-out rows. - if (shouldRedistribute) { - availableHeight -= usedHeight; - minOffset1 = Math.floor(availableHeight / flexEls.length); - minOffset2 = Math.floor(availableHeight - minOffset1 * (flexEls.length - 1)); // *FLOORING NOTE* - } - // assign heights to all expandable elements - flexEls.forEach(function (el, i) { - var minOffset = i === flexEls.length - 1 ? minOffset2 : minOffset1; - var naturalOffset = flexOffsets[i]; - var naturalHeight = flexHeights[i]; - var newHeight = minOffset - (naturalOffset - naturalHeight); // subtract the margin/padding - if (naturalOffset < minOffset) { // we check this again because redistribution might have changed things - el.style.height = newHeight + 'px'; - } - }); -} -// Undoes distrubuteHeight, restoring all els to their natural height -function undistributeHeight(els) { - els.forEach(function (el) { - el.style.height = ''; - }); -} -// Given `els`, a set of cells, find the cell with the largest natural width and set the widths of all the -// cells to be that width. -// PREREQUISITE: if you want a cell to take up width, it needs to have a single inner element w/ display:inline -function matchCellWidths(els) { - var maxInnerWidth = 0; - els.forEach(function (el) { - var innerEl = el.firstChild; // hopefully an element - if (innerEl instanceof HTMLElement) { - var innerWidth_1 = innerEl.getBoundingClientRect().width; - if (innerWidth_1 > maxInnerWidth) { - maxInnerWidth = innerWidth_1; - } - } - }); - maxInnerWidth++; // sometimes not accurate of width the text needs to stay on one line. insurance - els.forEach(function (el) { - el.style.width = maxInnerWidth + 'px'; - }); - return maxInnerWidth; -} -// Given one element that resides inside another, -// Subtracts the height of the inner element from the outer element. -function subtractInnerElHeight(outerEl, innerEl) { - // effin' IE8/9/10/11 sometimes returns 0 for dimensions. this weird hack was the only thing that worked - var reflowStyleProps = { - position: 'relative', - left: -1 // ensure reflow in case the el was already relative. negative is less likely to cause new scroll - }; - applyStyle(outerEl, reflowStyleProps); - applyStyle(innerEl, reflowStyleProps); - var diff = // grab the dimensions - outerEl.getBoundingClientRect().height - - innerEl.getBoundingClientRect().height; - // undo hack - var resetStyleProps = { position: '', left: '' }; - applyStyle(outerEl, resetStyleProps); - applyStyle(innerEl, resetStyleProps); - return diff; -} -/* Selection -----------------------------------------------------------------------------------------------------------------------*/ -function preventSelection(el) { - el.classList.add('fc-unselectable'); - el.addEventListener('selectstart', preventDefault); -} -function allowSelection(el) { - el.classList.remove('fc-unselectable'); - el.removeEventListener('selectstart', preventDefault); -} -/* Context Menu -----------------------------------------------------------------------------------------------------------------------*/ -function preventContextMenu(el) { - el.addEventListener('contextmenu', preventDefault); -} -function allowContextMenu(el) { - el.removeEventListener('contextmenu', preventDefault); -} -/* Object Ordering by Field -----------------------------------------------------------------------------------------------------------------------*/ -function parseFieldSpecs(input) { - var specs = []; - var tokens = []; - var i; - var token; - if (typeof input === 'string') { - tokens = input.split(/\s*,\s*/); - } - else if (typeof input === 'function') { - tokens = [input]; - } - else if (Array.isArray(input)) { - tokens = input; - } - for (i = 0; i < tokens.length; i++) { - token = tokens[i]; - if (typeof token === 'string') { - specs.push(token.charAt(0) === '-' ? - { field: token.substring(1), order: -1 } : - { field: token, order: 1 }); - } - else if (typeof token === 'function') { - specs.push({ func: token }); - } - } - return specs; -} -function compareByFieldSpecs(obj0, obj1, fieldSpecs) { - var i; - var cmp; - for (i = 0; i < fieldSpecs.length; i++) { - cmp = compareByFieldSpec(obj0, obj1, fieldSpecs[i]); - if (cmp) { - return cmp; - } - } - return 0; -} -function compareByFieldSpec(obj0, obj1, fieldSpec) { - if (fieldSpec.func) { - return fieldSpec.func(obj0, obj1); - } - return flexibleCompare(obj0[fieldSpec.field], obj1[fieldSpec.field]) - * (fieldSpec.order || 1); -} -function flexibleCompare(a, b) { - if (!a && !b) { - return 0; - } - if (b == null) { - return -1; - } - if (a == null) { - return 1; - } - if (typeof a === 'string' || typeof b === 'string') { - return String(a).localeCompare(String(b)); - } - return a - b; -} -/* String Utilities -----------------------------------------------------------------------------------------------------------------------*/ -function capitaliseFirstLetter(str) { - return str.charAt(0).toUpperCase() + str.slice(1); -} -function padStart(val, len) { - var s = String(val); - return '000'.substr(0, len - s.length) + s; -} -/* Number Utilities -----------------------------------------------------------------------------------------------------------------------*/ -function compareNumbers(a, b) { - return a - b; -} -function isInt(n) { - return n % 1 === 0; -} -/* Weird Utilities -----------------------------------------------------------------------------------------------------------------------*/ -function applyAll(functions, thisObj, args) { - if (typeof functions === 'function') { // supplied a single function - functions = [functions]; - } - if (functions) { - var i = void 0; - var ret = void 0; - for (i = 0; i < functions.length; i++) { - ret = functions[i].apply(thisObj, args) || ret; - } - return ret; - } -} -function firstDefined() { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - for (var i = 0; i < args.length; i++) { - if (args[i] !== undefined) { - return args[i]; - } - } -} -// Returns a function, that, as long as it continues to be invoked, will not -// be triggered. The function will be called after it stops being called for -// N milliseconds. If `immediate` is passed, trigger the function on the -// leading edge, instead of the trailing. -// https://github.com/jashkenas/underscore/blob/1.6.0/underscore.js#L714 -function debounce(func, wait) { - var timeout; - var args; - var context; - var timestamp; - var result; - var later = function () { - var last = new Date().valueOf() - timestamp; - if (last < wait) { - timeout = setTimeout(later, wait - last); - } - else { - timeout = null; - result = func.apply(context, args); - context = args = null; - } - }; - return function () { - context = this; - args = arguments; - timestamp = new Date().valueOf(); - if (!timeout) { - timeout = setTimeout(later, wait); - } - return result; - }; -} -// Number and Boolean are only types that defaults or not computed for -// TODO: write more comments -function refineProps(rawProps, processors, defaults, leftoverProps) { - if (defaults === void 0) { defaults = {}; } - var refined = {}; - for (var key in processors) { - var processor = processors[key]; - if (rawProps[key] !== undefined) { - // found - if (processor === Function) { - refined[key] = typeof rawProps[key] === 'function' ? rawProps[key] : null; - } - else if (processor) { // a refining function? - refined[key] = processor(rawProps[key]); - } - else { - refined[key] = rawProps[key]; - } - } - else if (defaults[key] !== undefined) { - // there's an explicit default - refined[key] = defaults[key]; - } - else { - // must compute a default - if (processor === String) { - refined[key] = ''; // empty string is default for String - } - else if (!processor || processor === Number || processor === Boolean || processor === Function) { - refined[key] = null; // assign null for other non-custom processor funcs - } - else { - refined[key] = processor(null); // run the custom processor func - } - } - } - if (leftoverProps) { - for (var key in rawProps) { - if (processors[key] === undefined) { - leftoverProps[key] = rawProps[key]; - } - } - } - return refined; -} -/* Date stuff that doesn't belong in datelib core -----------------------------------------------------------------------------------------------------------------------*/ -// given a timed range, computes an all-day range that has the same exact duration, -// but whose start time is aligned with the start of the day. -function computeAlignedDayRange(timedRange) { - var dayCnt = Math.floor(diffDays(timedRange.start, timedRange.end)) || 1; - var start = startOfDay(timedRange.start); - var end = addDays(start, dayCnt); - return { start: start, end: end }; -} -// given a timed range, computes an all-day range based on how for the end date bleeds into the next day -// TODO: give nextDayThreshold a default arg -function computeVisibleDayRange(timedRange, nextDayThreshold) { - if (nextDayThreshold === void 0) { nextDayThreshold = createDuration(0); } - var startDay = null; - var endDay = null; - if (timedRange.end) { - endDay = startOfDay(timedRange.end); - var endTimeMS = timedRange.end.valueOf() - endDay.valueOf(); // # of milliseconds into `endDay` - // If the end time is actually inclusively part of the next day and is equal to or - // beyond the next day threshold, adjust the end to be the exclusive end of `endDay`. - // Otherwise, leaving it as inclusive will cause it to exclude `endDay`. - if (endTimeMS && endTimeMS >= asRoughMs(nextDayThreshold)) { - endDay = addDays(endDay, 1); - } - } - if (timedRange.start) { - startDay = startOfDay(timedRange.start); // the beginning of the day the range starts - // If end is within `startDay` but not past nextDayThreshold, assign the default duration of one day. - if (endDay && endDay <= startDay) { - endDay = addDays(startDay, 1); - } - } - return { start: startDay, end: endDay }; -} -// spans from one day into another? -function isMultiDayRange(range) { - var visibleRange = computeVisibleDayRange(range); - return diffDays(visibleRange.start, visibleRange.end) > 1; -} -function diffDates(date0, date1, dateEnv, largeUnit) { - if (largeUnit === 'year') { - return createDuration(dateEnv.diffWholeYears(date0, date1), 'year'); - } - else if (largeUnit === 'month') { - return createDuration(dateEnv.diffWholeMonths(date0, date1), 'month'); - } - else { - return diffDayAndTime(date0, date1); // returns a duration - } -} - -/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. All rights reserved. -Licensed under the Apache License, Version 2.0 (the "License"); you may not use -this file except in compliance with the License. You may obtain a copy of the -License at http://www.apache.org/licenses/LICENSE-2.0 - -THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED -WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, -MERCHANTABLITY OR NON-INFRINGEMENT. - -See the Apache Version 2.0 License for specific language governing permissions -and limitations under the License. -***************************************************************************** */ -/* global Reflect, Promise */ - -var extendStatics = function(d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return extendStatics(d, b); -}; - -function __extends(d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -} - -var __assign = function() { - __assign = Object.assign || function __assign(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); -}; - -function parseRecurring(eventInput, allDayDefault, dateEnv, recurringTypes, leftovers) { - for (var i = 0; i < recurringTypes.length; i++) { - var localLeftovers = {}; - var parsed = recurringTypes[i].parse(eventInput, localLeftovers, dateEnv); - if (parsed) { - var allDay = localLeftovers.allDay; - delete localLeftovers.allDay; // remove from leftovers - if (allDay == null) { - allDay = allDayDefault; - if (allDay == null) { - allDay = parsed.allDayGuess; - if (allDay == null) { - allDay = false; - } - } - } - __assign(leftovers, localLeftovers); - return { - allDay: allDay, - duration: parsed.duration, - typeData: parsed.typeData, - typeId: i - }; - } - } - return null; -} -/* -Event MUST have a recurringDef -*/ -function expandRecurringRanges(eventDef, duration, framingRange, dateEnv, recurringTypes) { - var typeDef = recurringTypes[eventDef.recurringDef.typeId]; - var markers = typeDef.expand(eventDef.recurringDef.typeData, { - start: dateEnv.subtract(framingRange.start, duration), - end: framingRange.end - }, dateEnv); - // the recurrence plugins don't guarantee that all-day events are start-of-day, so we have to - if (eventDef.allDay) { - markers = markers.map(startOfDay); - } - return markers; -} - -var hasOwnProperty = Object.prototype.hasOwnProperty; -// Merges an array of objects into a single object. -// The second argument allows for an array of property names who's object values will be merged together. -function mergeProps(propObjs, complexProps) { - var dest = {}; - var i; - var name; - var complexObjs; - var j; - var val; - var props; - if (complexProps) { - for (i = 0; i < complexProps.length; i++) { - name = complexProps[i]; - complexObjs = []; - // collect the trailing object values, stopping when a non-object is discovered - for (j = propObjs.length - 1; j >= 0; j--) { - val = propObjs[j][name]; - if (typeof val === 'object' && val) { // non-null object - complexObjs.unshift(val); - } - else if (val !== undefined) { - dest[name] = val; // if there were no objects, this value will be used - break; - } - } - // if the trailing values were objects, use the merged value - if (complexObjs.length) { - dest[name] = mergeProps(complexObjs); - } - } - } - // copy values into the destination, going from last to first - for (i = propObjs.length - 1; i >= 0; i--) { - props = propObjs[i]; - for (name in props) { - if (!(name in dest)) { // if already assigned by previous props or complex props, don't reassign - dest[name] = props[name]; - } - } - } - return dest; -} -function filterHash(hash, func) { - var filtered = {}; - for (var key in hash) { - if (func(hash[key], key)) { - filtered[key] = hash[key]; - } - } - return filtered; -} -function mapHash(hash, func) { - var newHash = {}; - for (var key in hash) { - newHash[key] = func(hash[key], key); - } - return newHash; -} -function arrayToHash(a) { - var hash = {}; - for (var _i = 0, a_1 = a; _i < a_1.length; _i++) { - var item = a_1[_i]; - hash[item] = true; - } - return hash; -} -function hashValuesToArray(obj) { - var a = []; - for (var key in obj) { - a.push(obj[key]); - } - return a; -} -function isPropsEqual(obj0, obj1) { - for (var key in obj0) { - if (hasOwnProperty.call(obj0, key)) { - if (!(key in obj1)) { - return false; - } - } - } - for (var key in obj1) { - if (hasOwnProperty.call(obj1, key)) { - if (obj0[key] !== obj1[key]) { - return false; - } - } - } - return true; -} - -function parseEvents(rawEvents, sourceId, calendar, allowOpenRange) { - var eventStore = createEmptyEventStore(); - for (var _i = 0, rawEvents_1 = rawEvents; _i < rawEvents_1.length; _i++) { - var rawEvent = rawEvents_1[_i]; - var tuple = parseEvent(rawEvent, sourceId, calendar, allowOpenRange); - if (tuple) { - eventTupleToStore(tuple, eventStore); - } - } - return eventStore; -} -function eventTupleToStore(tuple, eventStore) { - if (eventStore === void 0) { eventStore = createEmptyEventStore(); } - eventStore.defs[tuple.def.defId] = tuple.def; - if (tuple.instance) { - eventStore.instances[tuple.instance.instanceId] = tuple.instance; - } - return eventStore; -} -function expandRecurring(eventStore, framingRange, calendar) { - var dateEnv = calendar.dateEnv; - var defs = eventStore.defs, instances = eventStore.instances; - // remove existing recurring instances - instances = filterHash(instances, function (instance) { - return !defs[instance.defId].recurringDef; - }); - for (var defId in defs) { - var def = defs[defId]; - if (def.recurringDef) { - var duration = def.recurringDef.duration; - if (!duration) { - duration = def.allDay ? - calendar.defaultAllDayEventDuration : - calendar.defaultTimedEventDuration; - } - var starts = expandRecurringRanges(def, duration, framingRange, calendar.dateEnv, calendar.pluginSystem.hooks.recurringTypes); - for (var _i = 0, starts_1 = starts; _i < starts_1.length; _i++) { - var start = starts_1[_i]; - var instance = createEventInstance(defId, { - start: start, - end: dateEnv.add(start, duration) - }); - instances[instance.instanceId] = instance; - } - } - } - return { defs: defs, instances: instances }; -} -// retrieves events that have the same groupId as the instance specified by `instanceId` -// or they are the same as the instance. -// why might instanceId not be in the store? an event from another calendar? -function getRelevantEvents(eventStore, instanceId) { - var instance = eventStore.instances[instanceId]; - if (instance) { - var def_1 = eventStore.defs[instance.defId]; - // get events/instances with same group - var newStore = filterEventStoreDefs(eventStore, function (lookDef) { - return isEventDefsGrouped(def_1, lookDef); - }); - // add the original - // TODO: wish we could use eventTupleToStore or something like it - newStore.defs[def_1.defId] = def_1; - newStore.instances[instance.instanceId] = instance; - return newStore; - } - return createEmptyEventStore(); -} -function isEventDefsGrouped(def0, def1) { - return Boolean(def0.groupId && def0.groupId === def1.groupId); -} -function transformRawEvents(rawEvents, eventSource, calendar) { - var calEachTransform = calendar.opt('eventDataTransform'); - var sourceEachTransform = eventSource ? eventSource.eventDataTransform : null; - if (sourceEachTransform) { - rawEvents = transformEachRawEvent(rawEvents, sourceEachTransform); - } - if (calEachTransform) { - rawEvents = transformEachRawEvent(rawEvents, calEachTransform); - } - return rawEvents; -} -function transformEachRawEvent(rawEvents, func) { - var refinedEvents; - if (!func) { - refinedEvents = rawEvents; - } - else { - refinedEvents = []; - for (var _i = 0, rawEvents_2 = rawEvents; _i < rawEvents_2.length; _i++) { - var rawEvent = rawEvents_2[_i]; - var refinedEvent = func(rawEvent); - if (refinedEvent) { - refinedEvents.push(refinedEvent); - } - else if (refinedEvent == null) { - refinedEvents.push(rawEvent); - } // if a different falsy value, do nothing - } - } - return refinedEvents; -} -function createEmptyEventStore() { - return { defs: {}, instances: {} }; -} -function mergeEventStores(store0, store1) { - return { - defs: __assign({}, store0.defs, store1.defs), - instances: __assign({}, store0.instances, store1.instances) - }; -} -function filterEventStoreDefs(eventStore, filterFunc) { - var defs = filterHash(eventStore.defs, filterFunc); - var instances = filterHash(eventStore.instances, function (instance) { - return defs[instance.defId]; // still exists? - }); - return { defs: defs, instances: instances }; -} - -function parseRange(input, dateEnv) { - var start = null; - var end = null; - if (input.start) { - start = dateEnv.createMarker(input.start); - } - if (input.end) { - end = dateEnv.createMarker(input.end); - } - if (!start && !end) { - return null; - } - if (start && end && end < start) { - return null; - } - return { start: start, end: end }; -} -// SIDE-EFFECT: will mutate ranges. -// Will return a new array result. -function invertRanges(ranges, constraintRange) { - var invertedRanges = []; - var start = constraintRange.start; // the end of the previous range. the start of the new range - var i; - var dateRange; - // ranges need to be in order. required for our date-walking algorithm - ranges.sort(compareRanges); - for (i = 0; i < ranges.length; i++) { - dateRange = ranges[i]; - // add the span of time before the event (if there is any) - if (dateRange.start > start) { // compare millisecond time (skip any ambig logic) - invertedRanges.push({ start: start, end: dateRange.start }); - } - if (dateRange.end > start) { - start = dateRange.end; - } - } - // add the span of time after the last event (if there is any) - if (start < constraintRange.end) { // compare millisecond time (skip any ambig logic) - invertedRanges.push({ start: start, end: constraintRange.end }); - } - return invertedRanges; -} -function compareRanges(range0, range1) { - return range0.start.valueOf() - range1.start.valueOf(); // earlier ranges go first -} -function intersectRanges(range0, range1) { - var start = range0.start; - var end = range0.end; - var newRange = null; - if (range1.start !== null) { - if (start === null) { - start = range1.start; - } - else { - start = new Date(Math.max(start.valueOf(), range1.start.valueOf())); - } - } - if (range1.end != null) { - if (end === null) { - end = range1.end; - } - else { - end = new Date(Math.min(end.valueOf(), range1.end.valueOf())); - } - } - if (start === null || end === null || start < end) { - newRange = { start: start, end: end }; - } - return newRange; -} -function rangesEqual(range0, range1) { - return (range0.start === null ? null : range0.start.valueOf()) === (range1.start === null ? null : range1.start.valueOf()) && - (range0.end === null ? null : range0.end.valueOf()) === (range1.end === null ? null : range1.end.valueOf()); -} -function rangesIntersect(range0, range1) { - return (range0.end === null || range1.start === null || range0.end > range1.start) && - (range0.start === null || range1.end === null || range0.start < range1.end); -} -function rangeContainsRange(outerRange, innerRange) { - return (outerRange.start === null || (innerRange.start !== null && innerRange.start >= outerRange.start)) && - (outerRange.end === null || (innerRange.end !== null && innerRange.end <= outerRange.end)); -} -function rangeContainsMarker(range, date) { - return (range.start === null || date >= range.start) && - (range.end === null || date < range.end); -} -// If the given date is not within the given range, move it inside. -// (If it's past the end, make it one millisecond before the end). -function constrainMarkerToRange(date, range) { - if (range.start != null && date < range.start) { - return range.start; - } - if (range.end != null && date >= range.end) { - return new Date(range.end.valueOf() - 1); - } - return date; -} - -function removeExact(array, exactVal) { - var removeCnt = 0; - var i = 0; - while (i < array.length) { - if (array[i] === exactVal) { - array.splice(i, 1); - removeCnt++; - } - else { - i++; - } - } - return removeCnt; -} -function isArraysEqual(a0, a1) { - var len = a0.length; - var i; - if (len !== a1.length) { // not array? or not same length? - return false; - } - for (i = 0; i < len; i++) { - if (a0[i] !== a1[i]) { - return false; - } - } - return true; -} - -function memoize(workerFunc) { - var args; - var res; - return function () { - if (!args || !isArraysEqual(args, arguments)) { - args = arguments; - res = workerFunc.apply(this, arguments); - } - return res; - }; -} -/* -always executes the workerFunc, but if the result is equal to the previous result, -return the previous result instead. -*/ -function memoizeOutput(workerFunc, equalityFunc) { - var cachedRes = null; - return function () { - var newRes = workerFunc.apply(this, arguments); - if (cachedRes === null || !(cachedRes === newRes || equalityFunc(cachedRes, newRes))) { - cachedRes = newRes; - } - return cachedRes; - }; -} - -var EXTENDED_SETTINGS_AND_SEVERITIES = { - week: 3, - separator: 0, - omitZeroMinute: 0, - meridiem: 0, - omitCommas: 0 -}; -var STANDARD_DATE_PROP_SEVERITIES = { - timeZoneName: 7, - era: 6, - year: 5, - month: 4, - day: 2, - weekday: 2, - hour: 1, - minute: 1, - second: 1 -}; -var MERIDIEM_RE = /\s*([ap])\.?m\.?/i; // eats up leading spaces too -var COMMA_RE = /,/g; // we need re for globalness -var MULTI_SPACE_RE = /\s+/g; -var LTR_RE = /\u200e/g; // control character -var UTC_RE = /UTC|GMT/; -var NativeFormatter = /** @class */ (function () { - function NativeFormatter(formatSettings) { - var standardDateProps = {}; - var extendedSettings = {}; - var severity = 0; - for (var name_1 in formatSettings) { - if (name_1 in EXTENDED_SETTINGS_AND_SEVERITIES) { - extendedSettings[name_1] = formatSettings[name_1]; - severity = Math.max(EXTENDED_SETTINGS_AND_SEVERITIES[name_1], severity); - } - else { - standardDateProps[name_1] = formatSettings[name_1]; - if (name_1 in STANDARD_DATE_PROP_SEVERITIES) { - severity = Math.max(STANDARD_DATE_PROP_SEVERITIES[name_1], severity); - } - } - } - this.standardDateProps = standardDateProps; - this.extendedSettings = extendedSettings; - this.severity = severity; - this.buildFormattingFunc = memoize(buildFormattingFunc); - } - NativeFormatter.prototype.format = function (date, context) { - return this.buildFormattingFunc(this.standardDateProps, this.extendedSettings, context)(date); - }; - NativeFormatter.prototype.formatRange = function (start, end, context) { - var _a = this, standardDateProps = _a.standardDateProps, extendedSettings = _a.extendedSettings; - var diffSeverity = computeMarkerDiffSeverity(start.marker, end.marker, context.calendarSystem); - if (!diffSeverity) { - return this.format(start, context); - } - var biggestUnitForPartial = diffSeverity; - if (biggestUnitForPartial > 1 && // the two dates are different in a way that's larger scale than time - (standardDateProps.year === 'numeric' || standardDateProps.year === '2-digit') && - (standardDateProps.month === 'numeric' || standardDateProps.month === '2-digit') && - (standardDateProps.day === 'numeric' || standardDateProps.day === '2-digit')) { - biggestUnitForPartial = 1; // make it look like the dates are only different in terms of time - } - var full0 = this.format(start, context); - var full1 = this.format(end, context); - if (full0 === full1) { - return full0; - } - var partialDateProps = computePartialFormattingOptions(standardDateProps, biggestUnitForPartial); - var partialFormattingFunc = buildFormattingFunc(partialDateProps, extendedSettings, context); - var partial0 = partialFormattingFunc(start); - var partial1 = partialFormattingFunc(end); - var insertion = findCommonInsertion(full0, partial0, full1, partial1); - var separator = extendedSettings.separator || ''; - if (insertion) { - return insertion.before + partial0 + separator + partial1 + insertion.after; - } - return full0 + separator + full1; - }; - NativeFormatter.prototype.getLargestUnit = function () { - switch (this.severity) { - case 7: - case 6: - case 5: - return 'year'; - case 4: - return 'month'; - case 3: - return 'week'; - default: - return 'day'; - } - }; - return NativeFormatter; -}()); -function buildFormattingFunc(standardDateProps, extendedSettings, context) { - var standardDatePropCnt = Object.keys(standardDateProps).length; - if (standardDatePropCnt === 1 && standardDateProps.timeZoneName === 'short') { - return function (date) { - return formatTimeZoneOffset(date.timeZoneOffset); - }; - } - if (standardDatePropCnt === 0 && extendedSettings.week) { - return function (date) { - return formatWeekNumber(context.computeWeekNumber(date.marker), context.weekLabel, context.locale, extendedSettings.week); - }; - } - return buildNativeFormattingFunc(standardDateProps, extendedSettings, context); -} -function buildNativeFormattingFunc(standardDateProps, extendedSettings, context) { - standardDateProps = __assign({}, standardDateProps); // copy - extendedSettings = __assign({}, extendedSettings); // copy - sanitizeSettings(standardDateProps, extendedSettings); - standardDateProps.timeZone = 'UTC'; // we leverage the only guaranteed timeZone for our UTC markers - var normalFormat = new Intl.DateTimeFormat(context.locale.codes, standardDateProps); - var zeroFormat; // needed? - if (extendedSettings.omitZeroMinute) { - var zeroProps = __assign({}, standardDateProps); - delete zeroProps.minute; // seconds and ms were already considered in sanitizeSettings - zeroFormat = new Intl.DateTimeFormat(context.locale.codes, zeroProps); - } - return function (date) { - var marker = date.marker; - var format; - if (zeroFormat && !marker.getUTCMinutes()) { - format = zeroFormat; - } - else { - format = normalFormat; - } - var s = format.format(marker); - return postProcess(s, date, standardDateProps, extendedSettings, context); - }; -} -function sanitizeSettings(standardDateProps, extendedSettings) { - // deal with a browser inconsistency where formatting the timezone - // requires that the hour/minute be present. - if (standardDateProps.timeZoneName) { - if (!standardDateProps.hour) { - standardDateProps.hour = '2-digit'; - } - if (!standardDateProps.minute) { - standardDateProps.minute = '2-digit'; - } - } - // only support short timezone names - if (standardDateProps.timeZoneName === 'long') { - standardDateProps.timeZoneName = 'short'; - } - // if requesting to display seconds, MUST display minutes - if (extendedSettings.omitZeroMinute && (standardDateProps.second || standardDateProps.millisecond)) { - delete extendedSettings.omitZeroMinute; - } -} -function postProcess(s, date, standardDateProps, extendedSettings, context) { - s = s.replace(LTR_RE, ''); // remove left-to-right control chars. do first. good for other regexes - if (standardDateProps.timeZoneName === 'short') { - s = injectTzoStr(s, (context.timeZone === 'UTC' || date.timeZoneOffset == null) ? - 'UTC' : // important to normalize for IE, which does "GMT" - formatTimeZoneOffset(date.timeZoneOffset)); - } - if (extendedSettings.omitCommas) { - s = s.replace(COMMA_RE, '').trim(); - } - if (extendedSettings.omitZeroMinute) { - s = s.replace(':00', ''); // zeroFormat doesn't always achieve this - } - // ^ do anything that might create adjacent spaces before this point, - // because MERIDIEM_RE likes to eat up loading spaces - if (extendedSettings.meridiem === false) { - s = s.replace(MERIDIEM_RE, '').trim(); - } - else if (extendedSettings.meridiem === 'narrow') { // a/p - s = s.replace(MERIDIEM_RE, function (m0, m1) { - return m1.toLocaleLowerCase(); - }); - } - else if (extendedSettings.meridiem === 'short') { // am/pm - s = s.replace(MERIDIEM_RE, function (m0, m1) { - return m1.toLocaleLowerCase() + 'm'; - }); - } - else if (extendedSettings.meridiem === 'lowercase') { // other meridiem transformers already converted to lowercase - s = s.replace(MERIDIEM_RE, function (m0) { - return m0.toLocaleLowerCase(); - }); - } - s = s.replace(MULTI_SPACE_RE, ' '); - s = s.trim(); - return s; -} -function injectTzoStr(s, tzoStr) { - var replaced = false; - s = s.replace(UTC_RE, function () { - replaced = true; - return tzoStr; - }); - // IE11 doesn't include UTC/GMT in the original string, so append to end - if (!replaced) { - s += ' ' + tzoStr; - } - return s; -} -function formatWeekNumber(num, weekLabel, locale, display) { - var parts = []; - if (display === 'narrow') { - parts.push(weekLabel); - } - else if (display === 'short') { - parts.push(weekLabel, ' '); - } - // otherwise, considered 'numeric' - parts.push(locale.simpleNumberFormat.format(num)); - if (locale.options.isRtl) { // TODO: use control characters instead? - parts.reverse(); - } - return parts.join(''); -} -// Range Formatting Utils -// 0 = exactly the same -// 1 = different by time -// and bigger -function computeMarkerDiffSeverity(d0, d1, ca) { - if (ca.getMarkerYear(d0) !== ca.getMarkerYear(d1)) { - return 5; - } - if (ca.getMarkerMonth(d0) !== ca.getMarkerMonth(d1)) { - return 4; - } - if (ca.getMarkerDay(d0) !== ca.getMarkerDay(d1)) { - return 2; - } - if (timeAsMs(d0) !== timeAsMs(d1)) { - return 1; - } - return 0; -} -function computePartialFormattingOptions(options, biggestUnit) { - var partialOptions = {}; - for (var name_2 in options) { - if (!(name_2 in STANDARD_DATE_PROP_SEVERITIES) || // not a date part prop (like timeZone) - STANDARD_DATE_PROP_SEVERITIES[name_2] <= biggestUnit) { - partialOptions[name_2] = options[name_2]; - } - } - return partialOptions; -} -function findCommonInsertion(full0, partial0, full1, partial1) { - var i0 = 0; - while (i0 < full0.length) { - var found0 = full0.indexOf(partial0, i0); - if (found0 === -1) { - break; - } - var before0 = full0.substr(0, found0); - i0 = found0 + partial0.length; - var after0 = full0.substr(i0); - var i1 = 0; - while (i1 < full1.length) { - var found1 = full1.indexOf(partial1, i1); - if (found1 === -1) { - break; - } - var before1 = full1.substr(0, found1); - i1 = found1 + partial1.length; - var after1 = full1.substr(i1); - if (before0 === before1 && after0 === after1) { - return { - before: before0, - after: after0 - }; - } - } - } - return null; -} - -/* -TODO: fix the terminology of "formatter" vs "formatting func" -*/ -/* -At the time of instantiation, this object does not know which cmd-formatting system it will use. -It receives this at the time of formatting, as a setting. -*/ -var CmdFormatter = /** @class */ (function () { - function CmdFormatter(cmdStr, separator) { - this.cmdStr = cmdStr; - this.separator = separator; - } - CmdFormatter.prototype.format = function (date, context) { - return context.cmdFormatter(this.cmdStr, createVerboseFormattingArg(date, null, context, this.separator)); - }; - CmdFormatter.prototype.formatRange = function (start, end, context) { - return context.cmdFormatter(this.cmdStr, createVerboseFormattingArg(start, end, context, this.separator)); - }; - return CmdFormatter; -}()); - -var FuncFormatter = /** @class */ (function () { - function FuncFormatter(func) { - this.func = func; - } - FuncFormatter.prototype.format = function (date, context) { - return this.func(createVerboseFormattingArg(date, null, context)); - }; - FuncFormatter.prototype.formatRange = function (start, end, context) { - return this.func(createVerboseFormattingArg(start, end, context)); - }; - return FuncFormatter; -}()); - -// Formatter Object Creation -function createFormatter(input, defaultSeparator) { - if (typeof input === 'object' && input) { // non-null object - if (typeof defaultSeparator === 'string') { - input = __assign({ separator: defaultSeparator }, input); - } - return new NativeFormatter(input); - } - else if (typeof input === 'string') { - return new CmdFormatter(input, defaultSeparator); - } - else if (typeof input === 'function') { - return new FuncFormatter(input); - } -} -// String Utils -// timeZoneOffset is in minutes -function buildIsoString(marker, timeZoneOffset, stripZeroTime) { - if (stripZeroTime === void 0) { stripZeroTime = false; } - var s = marker.toISOString(); - s = s.replace('.000', ''); - if (stripZeroTime) { - s = s.replace('T00:00:00Z', ''); - } - if (s.length > 10) { // time part wasn't stripped, can add timezone info - if (timeZoneOffset == null) { - s = s.replace('Z', ''); - } - else if (timeZoneOffset !== 0) { - s = s.replace('Z', formatTimeZoneOffset(timeZoneOffset, true)); - } - // otherwise, its UTC-0 and we want to keep the Z - } - return s; -} -function formatIsoTimeString(marker) { - return padStart(marker.getUTCHours(), 2) + ':' + - padStart(marker.getUTCMinutes(), 2) + ':' + - padStart(marker.getUTCSeconds(), 2); -} -function formatTimeZoneOffset(minutes, doIso) { - if (doIso === void 0) { doIso = false; } - var sign = minutes < 0 ? '-' : '+'; - var abs = Math.abs(minutes); - var hours = Math.floor(abs / 60); - var mins = Math.round(abs % 60); - if (doIso) { - return sign + padStart(hours, 2) + ':' + padStart(mins, 2); - } - else { - return 'GMT' + sign + hours + (mins ? ':' + padStart(mins, 2) : ''); - } -} -// Arg Utils -function createVerboseFormattingArg(start, end, context, separator) { - var startInfo = expandZonedMarker(start, context.calendarSystem); - var endInfo = end ? expandZonedMarker(end, context.calendarSystem) : null; - return { - date: startInfo, - start: startInfo, - end: endInfo, - timeZone: context.timeZone, - localeCodes: context.locale.codes, - separator: separator - }; -} -function expandZonedMarker(dateInfo, calendarSystem) { - var a = calendarSystem.markerToArray(dateInfo.marker); - return { - marker: dateInfo.marker, - timeZoneOffset: dateInfo.timeZoneOffset, - array: a, - year: a[0], - month: a[1], - day: a[2], - hour: a[3], - minute: a[4], - second: a[5], - millisecond: a[6] - }; -} - -var EventSourceApi = /** @class */ (function () { - function EventSourceApi(calendar, internalEventSource) { - this.calendar = calendar; - this.internalEventSource = internalEventSource; - } - EventSourceApi.prototype.remove = function () { - this.calendar.dispatch({ - type: 'REMOVE_EVENT_SOURCE', - sourceId: this.internalEventSource.sourceId - }); - }; - EventSourceApi.prototype.refetch = function () { - this.calendar.dispatch({ - type: 'FETCH_EVENT_SOURCES', - sourceIds: [this.internalEventSource.sourceId] - }); - }; - Object.defineProperty(EventSourceApi.prototype, "id", { - get: function () { - return this.internalEventSource.publicId; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventSourceApi.prototype, "url", { - // only relevant to json-feed event sources - get: function () { - return this.internalEventSource.meta.url; - }, - enumerable: true, - configurable: true - }); - return EventSourceApi; -}()); - -var EventApi = /** @class */ (function () { - function EventApi(calendar, def, instance) { - this._calendar = calendar; - this._def = def; - this._instance = instance || null; - } - /* - TODO: make event struct more responsible for this - */ - EventApi.prototype.setProp = function (name, val) { - var _a, _b; - if (name in DATE_PROPS) ; - else if (name in NON_DATE_PROPS) { - if (typeof NON_DATE_PROPS[name] === 'function') { - val = NON_DATE_PROPS[name](val); - } - this.mutate({ - standardProps: (_a = {}, _a[name] = val, _a) - }); - } - else if (name in UNSCOPED_EVENT_UI_PROPS) { - var ui = void 0; - if (typeof UNSCOPED_EVENT_UI_PROPS[name] === 'function') { - val = UNSCOPED_EVENT_UI_PROPS[name](val); - } - if (name === 'color') { - ui = { backgroundColor: val, borderColor: val }; - } - else if (name === 'editable') { - ui = { startEditable: val, durationEditable: val }; - } - else { - ui = (_b = {}, _b[name] = val, _b); - } - this.mutate({ - standardProps: { ui: ui } - }); - } - }; - EventApi.prototype.setExtendedProp = function (name, val) { - var _a; - this.mutate({ - extendedProps: (_a = {}, _a[name] = val, _a) - }); - }; - EventApi.prototype.setStart = function (startInput, options) { - if (options === void 0) { options = {}; } - var dateEnv = this._calendar.dateEnv; - var start = dateEnv.createMarker(startInput); - if (start && this._instance) { // TODO: warning if parsed bad - var instanceRange = this._instance.range; - var startDelta = diffDates(instanceRange.start, start, dateEnv, options.granularity); // what if parsed bad!? - if (options.maintainDuration) { - this.mutate({ datesDelta: startDelta }); - } - else { - this.mutate({ startDelta: startDelta }); - } - } - }; - EventApi.prototype.setEnd = function (endInput, options) { - if (options === void 0) { options = {}; } - var dateEnv = this._calendar.dateEnv; - var end; - if (endInput != null) { - end = dateEnv.createMarker(endInput); - if (!end) { - return; // TODO: warning if parsed bad - } - } - if (this._instance) { - if (end) { - var endDelta = diffDates(this._instance.range.end, end, dateEnv, options.granularity); - this.mutate({ endDelta: endDelta }); - } - else { - this.mutate({ standardProps: { hasEnd: false } }); - } - } - }; - EventApi.prototype.setDates = function (startInput, endInput, options) { - if (options === void 0) { options = {}; } - var dateEnv = this._calendar.dateEnv; - var standardProps = { allDay: options.allDay }; - var start = dateEnv.createMarker(startInput); - var end; - if (!start) { - return; // TODO: warning if parsed bad - } - if (endInput != null) { - end = dateEnv.createMarker(endInput); - if (!end) { // TODO: warning if parsed bad - return; - } - } - if (this._instance) { - var instanceRange = this._instance.range; - // when computing the diff for an event being converted to all-day, - // compute diff off of the all-day values the way event-mutation does. - if (options.allDay === true) { - instanceRange = computeAlignedDayRange(instanceRange); - } - var startDelta = diffDates(instanceRange.start, start, dateEnv, options.granularity); - if (end) { - var endDelta = diffDates(instanceRange.end, end, dateEnv, options.granularity); - if (durationsEqual(startDelta, endDelta)) { - this.mutate({ datesDelta: startDelta, standardProps: standardProps }); - } - else { - this.mutate({ startDelta: startDelta, endDelta: endDelta, standardProps: standardProps }); - } - } - else { // means "clear the end" - standardProps.hasEnd = false; - this.mutate({ datesDelta: startDelta, standardProps: standardProps }); - } - } - }; - EventApi.prototype.moveStart = function (deltaInput) { - var delta = createDuration(deltaInput); - if (delta) { // TODO: warning if parsed bad - this.mutate({ startDelta: delta }); - } - }; - EventApi.prototype.moveEnd = function (deltaInput) { - var delta = createDuration(deltaInput); - if (delta) { // TODO: warning if parsed bad - this.mutate({ endDelta: delta }); - } - }; - EventApi.prototype.moveDates = function (deltaInput) { - var delta = createDuration(deltaInput); - if (delta) { // TODO: warning if parsed bad - this.mutate({ datesDelta: delta }); - } - }; - EventApi.prototype.setAllDay = function (allDay, options) { - if (options === void 0) { options = {}; } - var standardProps = { allDay: allDay }; - var maintainDuration = options.maintainDuration; - if (maintainDuration == null) { - maintainDuration = this._calendar.opt('allDayMaintainDuration'); - } - if (this._def.allDay !== allDay) { - standardProps.hasEnd = maintainDuration; - } - this.mutate({ standardProps: standardProps }); - }; - EventApi.prototype.formatRange = function (formatInput) { - var dateEnv = this._calendar.dateEnv; - var instance = this._instance; - var formatter = createFormatter(formatInput, this._calendar.opt('defaultRangeSeparator')); - if (this._def.hasEnd) { - return dateEnv.formatRange(instance.range.start, instance.range.end, formatter, { - forcedStartTzo: instance.forcedStartTzo, - forcedEndTzo: instance.forcedEndTzo - }); - } - else { - return dateEnv.format(instance.range.start, formatter, { - forcedTzo: instance.forcedStartTzo - }); - } - }; - EventApi.prototype.mutate = function (mutation) { - var def = this._def; - var instance = this._instance; - if (instance) { - this._calendar.dispatch({ - type: 'MUTATE_EVENTS', - instanceId: instance.instanceId, - mutation: mutation, - fromApi: true - }); - var eventStore = this._calendar.state.eventStore; - this._def = eventStore.defs[def.defId]; - this._instance = eventStore.instances[instance.instanceId]; - } - }; - EventApi.prototype.remove = function () { - this._calendar.dispatch({ - type: 'REMOVE_EVENT_DEF', - defId: this._def.defId - }); - }; - Object.defineProperty(EventApi.prototype, "source", { - get: function () { - var sourceId = this._def.sourceId; - if (sourceId) { - return new EventSourceApi(this._calendar, this._calendar.state.eventSources[sourceId]); - } - return null; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "start", { - get: function () { - return this._instance ? - this._calendar.dateEnv.toDate(this._instance.range.start) : - null; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "end", { - get: function () { - return (this._instance && this._def.hasEnd) ? - this._calendar.dateEnv.toDate(this._instance.range.end) : - null; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "id", { - // computable props that all access the def - // TODO: find a TypeScript-compatible way to do this at scale - get: function () { return this._def.publicId; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "groupId", { - get: function () { return this._def.groupId; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "allDay", { - get: function () { return this._def.allDay; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "title", { - get: function () { return this._def.title; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "url", { - get: function () { return this._def.url; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "rendering", { - get: function () { return this._def.rendering; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "startEditable", { - get: function () { return this._def.ui.startEditable; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "durationEditable", { - get: function () { return this._def.ui.durationEditable; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "constraint", { - get: function () { return this._def.ui.constraints[0] || null; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "overlap", { - get: function () { return this._def.ui.overlap; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "allow", { - get: function () { return this._def.ui.allows[0] || null; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "backgroundColor", { - get: function () { return this._def.ui.backgroundColor; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "borderColor", { - get: function () { return this._def.ui.borderColor; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "textColor", { - get: function () { return this._def.ui.textColor; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "classNames", { - // NOTE: user can't modify these because Object.freeze was called in event-def parsing - get: function () { return this._def.ui.classNames; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "extendedProps", { - get: function () { return this._def.extendedProps; }, - enumerable: true, - configurable: true - }); - return EventApi; -}()); - -/* -Specifying nextDayThreshold signals that all-day ranges should be sliced. -*/ -function sliceEventStore(eventStore, eventUiBases, framingRange, nextDayThreshold) { - var inverseBgByGroupId = {}; - var inverseBgByDefId = {}; - var defByGroupId = {}; - var bgRanges = []; - var fgRanges = []; - var eventUis = compileEventUis(eventStore.defs, eventUiBases); - for (var defId in eventStore.defs) { - var def = eventStore.defs[defId]; - if (def.rendering === 'inverse-background') { - if (def.groupId) { - inverseBgByGroupId[def.groupId] = []; - if (!defByGroupId[def.groupId]) { - defByGroupId[def.groupId] = def; - } - } - else { - inverseBgByDefId[defId] = []; - } - } - } - for (var instanceId in eventStore.instances) { - var instance = eventStore.instances[instanceId]; - var def = eventStore.defs[instance.defId]; - var ui = eventUis[def.defId]; - var origRange = instance.range; - var normalRange = (!def.allDay && nextDayThreshold) ? - computeVisibleDayRange(origRange, nextDayThreshold) : - origRange; - var slicedRange = intersectRanges(normalRange, framingRange); - if (slicedRange) { - if (def.rendering === 'inverse-background') { - if (def.groupId) { - inverseBgByGroupId[def.groupId].push(slicedRange); - } - else { - inverseBgByDefId[instance.defId].push(slicedRange); - } - } - else { - (def.rendering === 'background' ? bgRanges : fgRanges).push({ - def: def, - ui: ui, - instance: instance, - range: slicedRange, - isStart: normalRange.start && normalRange.start.valueOf() === slicedRange.start.valueOf(), - isEnd: normalRange.end && normalRange.end.valueOf() === slicedRange.end.valueOf() - }); - } - } - } - for (var groupId in inverseBgByGroupId) { // BY GROUP - var ranges = inverseBgByGroupId[groupId]; - var invertedRanges = invertRanges(ranges, framingRange); - for (var _i = 0, invertedRanges_1 = invertedRanges; _i < invertedRanges_1.length; _i++) { - var invertedRange = invertedRanges_1[_i]; - var def = defByGroupId[groupId]; - var ui = eventUis[def.defId]; - bgRanges.push({ - def: def, - ui: ui, - instance: null, - range: invertedRange, - isStart: false, - isEnd: false - }); - } - } - for (var defId in inverseBgByDefId) { - var ranges = inverseBgByDefId[defId]; - var invertedRanges = invertRanges(ranges, framingRange); - for (var _a = 0, invertedRanges_2 = invertedRanges; _a < invertedRanges_2.length; _a++) { - var invertedRange = invertedRanges_2[_a]; - bgRanges.push({ - def: eventStore.defs[defId], - ui: eventUis[defId], - instance: null, - range: invertedRange, - isStart: false, - isEnd: false - }); - } - } - return { bg: bgRanges, fg: fgRanges }; -} -function hasBgRendering(def) { - return def.rendering === 'background' || def.rendering === 'inverse-background'; -} -function filterSegsViaEls(view, segs, isMirror) { - if (view.hasPublicHandlers('eventRender')) { - segs = segs.filter(function (seg) { - var custom = view.publiclyTrigger('eventRender', [ - { - event: new EventApi(view.calendar, seg.eventRange.def, seg.eventRange.instance), - isMirror: isMirror, - isStart: seg.isStart, - isEnd: seg.isEnd, - // TODO: include seg.range once all components consistently generate it - el: seg.el, - view: view - } - ]); - if (custom === false) { // means don't render at all - return false; - } - else if (custom && custom !== true) { - seg.el = custom; - } - return true; - }); - } - for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) { - var seg = segs_1[_i]; - setElSeg(seg.el, seg); - } - return segs; -} -function setElSeg(el, seg) { - el.fcSeg = seg; -} -function getElSeg(el) { - return el.fcSeg || null; -} -// event ui computation -function compileEventUis(eventDefs, eventUiBases) { - return mapHash(eventDefs, function (eventDef) { - return compileEventUi(eventDef, eventUiBases); - }); -} -function compileEventUi(eventDef, eventUiBases) { - var uis = []; - if (eventUiBases['']) { - uis.push(eventUiBases['']); - } - if (eventUiBases[eventDef.defId]) { - uis.push(eventUiBases[eventDef.defId]); - } - uis.push(eventDef.ui); - return combineEventUis(uis); -} - -// applies the mutation to ALL defs/instances within the event store -function applyMutationToEventStore(eventStore, eventConfigBase, mutation, calendar) { - var eventConfigs = compileEventUis(eventStore.defs, eventConfigBase); - var dest = createEmptyEventStore(); - for (var defId in eventStore.defs) { - var def = eventStore.defs[defId]; - dest.defs[defId] = applyMutationToEventDef(def, eventConfigs[defId], mutation, calendar.pluginSystem.hooks.eventDefMutationAppliers, calendar); - } - for (var instanceId in eventStore.instances) { - var instance = eventStore.instances[instanceId]; - var def = dest.defs[instance.defId]; // important to grab the newly modified def - dest.instances[instanceId] = applyMutationToEventInstance(instance, def, eventConfigs[instance.defId], mutation, calendar); - } - return dest; -} -function applyMutationToEventDef(eventDef, eventConfig, mutation, appliers, calendar) { - var standardProps = mutation.standardProps || {}; - // if hasEnd has not been specified, guess a good value based on deltas. - // if duration will change, there's no way the default duration will persist, - // and thus, we need to mark the event as having a real end - if (standardProps.hasEnd == null && - eventConfig.durationEditable && - (mutation.startDelta || mutation.endDelta)) { - standardProps.hasEnd = true; // TODO: is this mutation okay? - } - var copy = __assign({}, eventDef, standardProps, { ui: __assign({}, eventDef.ui, standardProps.ui) }); - if (mutation.extendedProps) { - copy.extendedProps = __assign({}, copy.extendedProps, mutation.extendedProps); - } - for (var _i = 0, appliers_1 = appliers; _i < appliers_1.length; _i++) { - var applier = appliers_1[_i]; - applier(copy, mutation, calendar); - } - if (!copy.hasEnd && calendar.opt('forceEventDuration')) { - copy.hasEnd = true; - } - return copy; -} -function applyMutationToEventInstance(eventInstance, eventDef, // must first be modified by applyMutationToEventDef -eventConfig, mutation, calendar) { - var dateEnv = calendar.dateEnv; - var forceAllDay = mutation.standardProps && mutation.standardProps.allDay === true; - var clearEnd = mutation.standardProps && mutation.standardProps.hasEnd === false; - var copy = __assign({}, eventInstance); - if (forceAllDay) { - copy.range = computeAlignedDayRange(copy.range); - } - if (mutation.datesDelta && eventConfig.startEditable) { - copy.range = { - start: dateEnv.add(copy.range.start, mutation.datesDelta), - end: dateEnv.add(copy.range.end, mutation.datesDelta) - }; - } - if (mutation.startDelta && eventConfig.durationEditable) { - copy.range = { - start: dateEnv.add(copy.range.start, mutation.startDelta), - end: copy.range.end - }; - } - if (mutation.endDelta && eventConfig.durationEditable) { - copy.range = { - start: copy.range.start, - end: dateEnv.add(copy.range.end, mutation.endDelta) - }; - } - if (clearEnd) { - copy.range = { - start: copy.range.start, - end: calendar.getDefaultEventEnd(eventDef.allDay, copy.range.start) - }; - } - // in case event was all-day but the supplied deltas were not - // better util for this? - if (eventDef.allDay) { - copy.range = { - start: startOfDay(copy.range.start), - end: startOfDay(copy.range.end) - }; - } - // handle invalid durations - if (copy.range.end < copy.range.start) { - copy.range.end = calendar.getDefaultEventEnd(eventDef.allDay, copy.range.start); - } - return copy; -} - -function reduceEventStore (eventStore, action, eventSources, dateProfile, calendar) { - switch (action.type) { - case 'RECEIVE_EVENTS': // raw - return receiveRawEvents(eventStore, eventSources[action.sourceId], action.fetchId, action.fetchRange, action.rawEvents, calendar); - case 'ADD_EVENTS': // already parsed, but not expanded - return addEvent(eventStore, action.eventStore, // new ones - dateProfile ? dateProfile.activeRange : null, calendar); - case 'MERGE_EVENTS': // already parsed and expanded - return mergeEventStores(eventStore, action.eventStore); - case 'PREV': // TODO: how do we track all actions that affect dateProfile :( - case 'NEXT': - case 'SET_DATE': - case 'SET_VIEW_TYPE': - if (dateProfile) { - return expandRecurring(eventStore, dateProfile.activeRange, calendar); - } - else { - return eventStore; - } - case 'CHANGE_TIMEZONE': - return rezoneDates(eventStore, action.oldDateEnv, calendar.dateEnv); - case 'MUTATE_EVENTS': - return applyMutationToRelated(eventStore, action.instanceId, action.mutation, action.fromApi, calendar); - case 'REMOVE_EVENT_INSTANCES': - return excludeInstances(eventStore, action.instances); - case 'REMOVE_EVENT_DEF': - return filterEventStoreDefs(eventStore, function (eventDef) { - return eventDef.defId !== action.defId; - }); - case 'REMOVE_EVENT_SOURCE': - return excludeEventsBySourceId(eventStore, action.sourceId); - case 'REMOVE_ALL_EVENT_SOURCES': - return filterEventStoreDefs(eventStore, function (eventDef) { - return !eventDef.sourceId; // only keep events with no source id - }); - case 'REMOVE_ALL_EVENTS': - return createEmptyEventStore(); - case 'RESET_EVENTS': - return { - defs: eventStore.defs, - instances: eventStore.instances - }; - default: - return eventStore; - } -} -function receiveRawEvents(eventStore, eventSource, fetchId, fetchRange, rawEvents, calendar) { - if (eventSource && // not already removed - fetchId === eventSource.latestFetchId // TODO: wish this logic was always in event-sources - ) { - var subset = parseEvents(transformRawEvents(rawEvents, eventSource, calendar), eventSource.sourceId, calendar); - if (fetchRange) { - subset = expandRecurring(subset, fetchRange, calendar); - } - return mergeEventStores(excludeEventsBySourceId(eventStore, eventSource.sourceId), subset); - } - return eventStore; -} -function addEvent(eventStore, subset, expandRange, calendar) { - if (expandRange) { - subset = expandRecurring(subset, expandRange, calendar); - } - return mergeEventStores(eventStore, subset); -} -function rezoneDates(eventStore, oldDateEnv, newDateEnv) { - var defs = eventStore.defs; - var instances = mapHash(eventStore.instances, function (instance) { - var def = defs[instance.defId]; - if (def.allDay || def.recurringDef) { - return instance; // isn't dependent on timezone - } - else { - return __assign({}, instance, { range: { - start: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.start, instance.forcedStartTzo)), - end: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.end, instance.forcedEndTzo)) - }, forcedStartTzo: newDateEnv.canComputeOffset ? null : instance.forcedStartTzo, forcedEndTzo: newDateEnv.canComputeOffset ? null : instance.forcedEndTzo }); - } - }); - return { defs: defs, instances: instances }; -} -function applyMutationToRelated(eventStore, instanceId, mutation, fromApi, calendar) { - var relevant = getRelevantEvents(eventStore, instanceId); - var eventConfigBase = fromApi ? - { '': { - startEditable: true, - durationEditable: true, - constraints: [], - overlap: null, - allows: [], - backgroundColor: '', - borderColor: '', - textColor: '', - classNames: [] - } } : - calendar.eventUiBases; - relevant = applyMutationToEventStore(relevant, eventConfigBase, mutation, calendar); - return mergeEventStores(eventStore, relevant); -} -function excludeEventsBySourceId(eventStore, sourceId) { - return filterEventStoreDefs(eventStore, function (eventDef) { - return eventDef.sourceId !== sourceId; - }); -} -// QUESTION: why not just return instances? do a general object-property-exclusion util -function excludeInstances(eventStore, removals) { - return { - defs: eventStore.defs, - instances: filterHash(eventStore.instances, function (instance) { - return !removals[instance.instanceId]; - }) - }; -} - -// high-level segmenting-aware tester functions -// ------------------------------------------------------------------------------------------------------------------------ -function isInteractionValid(interaction, calendar) { - return isNewPropsValid({ eventDrag: interaction }, calendar); // HACK: the eventDrag props is used for ALL interactions -} -function isDateSelectionValid(dateSelection, calendar) { - return isNewPropsValid({ dateSelection: dateSelection }, calendar); -} -function isNewPropsValid(newProps, calendar) { - var view = calendar.view; - var props = __assign({ businessHours: view ? view.props.businessHours : createEmptyEventStore(), dateSelection: '', eventStore: calendar.state.eventStore, eventUiBases: calendar.eventUiBases, eventSelection: '', eventDrag: null, eventResize: null }, newProps); - return (calendar.pluginSystem.hooks.isPropsValid || isPropsValid)(props, calendar); -} -function isPropsValid(state, calendar, dateSpanMeta, filterConfig) { - if (dateSpanMeta === void 0) { dateSpanMeta = {}; } - if (state.eventDrag && !isInteractionPropsValid(state, calendar, dateSpanMeta, filterConfig)) { - return false; - } - if (state.dateSelection && !isDateSelectionPropsValid(state, calendar, dateSpanMeta, filterConfig)) { - return false; - } - return true; -} -// Moving Event Validation -// ------------------------------------------------------------------------------------------------------------------------ -function isInteractionPropsValid(state, calendar, dateSpanMeta, filterConfig) { - var interaction = state.eventDrag; // HACK: the eventDrag props is used for ALL interactions - var subjectEventStore = interaction.mutatedEvents; - var subjectDefs = subjectEventStore.defs; - var subjectInstances = subjectEventStore.instances; - var subjectConfigs = compileEventUis(subjectDefs, interaction.isEvent ? - state.eventUiBases : - { '': calendar.selectionConfig } // if not a real event, validate as a selection - ); - if (filterConfig) { - subjectConfigs = mapHash(subjectConfigs, filterConfig); - } - var otherEventStore = excludeInstances(state.eventStore, interaction.affectedEvents.instances); // exclude the subject events. TODO: exclude defs too? - var otherDefs = otherEventStore.defs; - var otherInstances = otherEventStore.instances; - var otherConfigs = compileEventUis(otherDefs, state.eventUiBases); - for (var subjectInstanceId in subjectInstances) { - var subjectInstance = subjectInstances[subjectInstanceId]; - var subjectRange = subjectInstance.range; - var subjectConfig = subjectConfigs[subjectInstance.defId]; - var subjectDef = subjectDefs[subjectInstance.defId]; - // constraint - if (!allConstraintsPass(subjectConfig.constraints, subjectRange, otherEventStore, state.businessHours, calendar)) { - return false; - } - // overlap - var overlapFunc = calendar.opt('eventOverlap'); - if (typeof overlapFunc !== 'function') { - overlapFunc = null; - } - for (var otherInstanceId in otherInstances) { - var otherInstance = otherInstances[otherInstanceId]; - // intersect! evaluate - if (rangesIntersect(subjectRange, otherInstance.range)) { - var otherOverlap = otherConfigs[otherInstance.defId].overlap; - // consider the other event's overlap. only do this if the subject event is a "real" event - if (otherOverlap === false && interaction.isEvent) { - return false; - } - if (subjectConfig.overlap === false) { - return false; - } - if (overlapFunc && !overlapFunc(new EventApi(calendar, otherDefs[otherInstance.defId], otherInstance), // still event - new EventApi(calendar, subjectDef, subjectInstance) // moving event - )) { - return false; - } - } - } - // allow (a function) - var calendarEventStore = calendar.state.eventStore; // need global-to-calendar, not local to component (splittable)state - for (var _i = 0, _a = subjectConfig.allows; _i < _a.length; _i++) { - var subjectAllow = _a[_i]; - var subjectDateSpan = __assign({}, dateSpanMeta, { range: subjectInstance.range, allDay: subjectDef.allDay }); - var origDef = calendarEventStore.defs[subjectDef.defId]; - var origInstance = calendarEventStore.instances[subjectInstanceId]; - var eventApi = void 0; - if (origDef) { // was previously in the calendar - eventApi = new EventApi(calendar, origDef, origInstance); - } - else { // was an external event - eventApi = new EventApi(calendar, subjectDef); // no instance, because had no dates - } - if (!subjectAllow(calendar.buildDateSpanApi(subjectDateSpan), eventApi)) { - return false; - } - } - } - return true; -} -// Date Selection Validation -// ------------------------------------------------------------------------------------------------------------------------ -function isDateSelectionPropsValid(state, calendar, dateSpanMeta, filterConfig) { - var relevantEventStore = state.eventStore; - var relevantDefs = relevantEventStore.defs; - var relevantInstances = relevantEventStore.instances; - var selection = state.dateSelection; - var selectionRange = selection.range; - var selectionConfig = calendar.selectionConfig; - if (filterConfig) { - selectionConfig = filterConfig(selectionConfig); - } - // constraint - if (!allConstraintsPass(selectionConfig.constraints, selectionRange, relevantEventStore, state.businessHours, calendar)) { - return false; - } - // overlap - var overlapFunc = calendar.opt('selectOverlap'); - if (typeof overlapFunc !== 'function') { - overlapFunc = null; - } - for (var relevantInstanceId in relevantInstances) { - var relevantInstance = relevantInstances[relevantInstanceId]; - // intersect! evaluate - if (rangesIntersect(selectionRange, relevantInstance.range)) { - if (selectionConfig.overlap === false) { - return false; - } - if (overlapFunc && !overlapFunc(new EventApi(calendar, relevantDefs[relevantInstance.defId], relevantInstance))) { - return false; - } - } - } - // allow (a function) - for (var _i = 0, _a = selectionConfig.allows; _i < _a.length; _i++) { - var selectionAllow = _a[_i]; - var fullDateSpan = __assign({}, dateSpanMeta, selection); - if (!selectionAllow(calendar.buildDateSpanApi(fullDateSpan), null)) { - return false; - } - } - return true; -} -// Constraint Utils -// ------------------------------------------------------------------------------------------------------------------------ -function allConstraintsPass(constraints, subjectRange, otherEventStore, businessHoursUnexpanded, calendar) { - for (var _i = 0, constraints_1 = constraints; _i < constraints_1.length; _i++) { - var constraint = constraints_1[_i]; - if (!anyRangesContainRange(constraintToRanges(constraint, subjectRange, otherEventStore, businessHoursUnexpanded, calendar), subjectRange)) { - return false; - } - } - return true; -} -function constraintToRanges(constraint, subjectRange, // for expanding a recurring constraint, or expanding business hours -otherEventStore, // for if constraint is an even group ID -businessHoursUnexpanded, // for if constraint is 'businessHours' -calendar // for expanding businesshours -) { - if (constraint === 'businessHours') { - return eventStoreToRanges(expandRecurring(businessHoursUnexpanded, subjectRange, calendar)); - } - else if (typeof constraint === 'string') { // an group ID - return eventStoreToRanges(filterEventStoreDefs(otherEventStore, function (eventDef) { - return eventDef.groupId === constraint; - })); - } - else if (typeof constraint === 'object' && constraint) { // non-null object - return eventStoreToRanges(expandRecurring(constraint, subjectRange, calendar)); - } - return []; // if it's false -} -// TODO: move to event-store file? -function eventStoreToRanges(eventStore) { - var instances = eventStore.instances; - var ranges = []; - for (var instanceId in instances) { - ranges.push(instances[instanceId].range); - } - return ranges; -} -// TODO: move to geom file? -function anyRangesContainRange(outerRanges, innerRange) { - for (var _i = 0, outerRanges_1 = outerRanges; _i < outerRanges_1.length; _i++) { - var outerRange = outerRanges_1[_i]; - if (rangeContainsRange(outerRange, innerRange)) { - return true; - } - } - return false; -} -// Parsing -// ------------------------------------------------------------------------------------------------------------------------ -function normalizeConstraint(input, calendar) { - if (Array.isArray(input)) { - return parseEvents(input, '', calendar, true); // allowOpenRange=true - } - else if (typeof input === 'object' && input) { // non-null object - return parseEvents([input], '', calendar, true); // allowOpenRange=true - } - else if (input != null) { - return String(input); - } - else { - return null; - } -} - -function htmlEscape(s) { - return (s + '').replace(/&/g, '&') - .replace(//g, '>') - .replace(/'/g, ''') - .replace(/"/g, '"') - .replace(/\n/g, '
'); -} -// Given a hash of CSS properties, returns a string of CSS. -// Uses property names as-is (no camel-case conversion). Will not make statements for null/undefined values. -function cssToStr(cssProps) { - var statements = []; - for (var name_1 in cssProps) { - var val = cssProps[name_1]; - if (val != null && val !== '') { - statements.push(name_1 + ':' + val); - } - } - return statements.join(';'); -} -// Given an object hash of HTML attribute names to values, -// generates a string that can be injected between < > in HTML -function attrsToStr(attrs) { - var parts = []; - for (var name_2 in attrs) { - var val = attrs[name_2]; - if (val != null) { - parts.push(name_2 + '="' + htmlEscape(val) + '"'); - } - } - return parts.join(' '); -} -function parseClassName(raw) { - if (Array.isArray(raw)) { - return raw; - } - else if (typeof raw === 'string') { - return raw.split(/\s+/); - } - else { - return []; - } -} - -var UNSCOPED_EVENT_UI_PROPS = { - editable: Boolean, - startEditable: Boolean, - durationEditable: Boolean, - constraint: null, - overlap: null, - allow: null, - className: parseClassName, - classNames: parseClassName, - color: String, - backgroundColor: String, - borderColor: String, - textColor: String -}; -function processUnscopedUiProps(rawProps, calendar, leftovers) { - var props = refineProps(rawProps, UNSCOPED_EVENT_UI_PROPS, {}, leftovers); - var constraint = normalizeConstraint(props.constraint, calendar); - return { - startEditable: props.startEditable != null ? props.startEditable : props.editable, - durationEditable: props.durationEditable != null ? props.durationEditable : props.editable, - constraints: constraint != null ? [constraint] : [], - overlap: props.overlap, - allows: props.allow != null ? [props.allow] : [], - backgroundColor: props.backgroundColor || props.color, - borderColor: props.borderColor || props.color, - textColor: props.textColor, - classNames: props.classNames.concat(props.className) - }; -} -function processScopedUiProps(prefix, rawScoped, calendar, leftovers) { - var rawUnscoped = {}; - var wasFound = {}; - for (var key in UNSCOPED_EVENT_UI_PROPS) { - var scopedKey = prefix + capitaliseFirstLetter(key); - rawUnscoped[key] = rawScoped[scopedKey]; - wasFound[scopedKey] = true; - } - if (prefix === 'event') { - rawUnscoped.editable = rawScoped.editable; // special case. there is no 'eventEditable', just 'editable' - } - if (leftovers) { - for (var key in rawScoped) { - if (!wasFound[key]) { - leftovers[key] = rawScoped[key]; - } - } - } - return processUnscopedUiProps(rawUnscoped, calendar); -} -var EMPTY_EVENT_UI = { - startEditable: null, - durationEditable: null, - constraints: [], - overlap: null, - allows: [], - backgroundColor: '', - borderColor: '', - textColor: '', - classNames: [] -}; -// prevent against problems with <2 args! -function combineEventUis(uis) { - return uis.reduce(combineTwoEventUis, EMPTY_EVENT_UI); -} -function combineTwoEventUis(item0, item1) { - return { - startEditable: item1.startEditable != null ? item1.startEditable : item0.startEditable, - durationEditable: item1.durationEditable != null ? item1.durationEditable : item0.durationEditable, - constraints: item0.constraints.concat(item1.constraints), - overlap: typeof item1.overlap === 'boolean' ? item1.overlap : item0.overlap, - allows: item0.allows.concat(item1.allows), - backgroundColor: item1.backgroundColor || item0.backgroundColor, - borderColor: item1.borderColor || item0.borderColor, - textColor: item1.textColor || item0.textColor, - classNames: item0.classNames.concat(item1.classNames) - }; -} - -var NON_DATE_PROPS = { - id: String, - groupId: String, - title: String, - url: String, - rendering: String, - extendedProps: null -}; -var DATE_PROPS = { - start: null, - date: null, - end: null, - allDay: null -}; -var uid = 0; -function parseEvent(raw, sourceId, calendar, allowOpenRange) { - var allDayDefault = computeIsAllDayDefault(sourceId, calendar); - var leftovers0 = {}; - var recurringRes = parseRecurring(raw, // raw, but with single-event stuff stripped out - allDayDefault, calendar.dateEnv, calendar.pluginSystem.hooks.recurringTypes, leftovers0 // will populate with non-recurring props - ); - if (recurringRes) { - var def = parseEventDef(leftovers0, sourceId, recurringRes.allDay, Boolean(recurringRes.duration), calendar); - def.recurringDef = { - typeId: recurringRes.typeId, - typeData: recurringRes.typeData, - duration: recurringRes.duration - }; - return { def: def, instance: null }; - } - else { - var leftovers1 = {}; - var singleRes = parseSingle(raw, allDayDefault, calendar, leftovers1, allowOpenRange); - if (singleRes) { - var def = parseEventDef(leftovers1, sourceId, singleRes.allDay, singleRes.hasEnd, calendar); - var instance = createEventInstance(def.defId, singleRes.range, singleRes.forcedStartTzo, singleRes.forcedEndTzo); - return { def: def, instance: instance }; - } - } - return null; -} -/* -Will NOT populate extendedProps with the leftover properties. -Will NOT populate date-related props. -The EventNonDateInput has been normalized (id => publicId, etc). -*/ -function parseEventDef(raw, sourceId, allDay, hasEnd, calendar) { - var leftovers = {}; - var def = pluckNonDateProps(raw, calendar, leftovers); - def.defId = String(uid++); - def.sourceId = sourceId; - def.allDay = allDay; - def.hasEnd = hasEnd; - for (var _i = 0, _a = calendar.pluginSystem.hooks.eventDefParsers; _i < _a.length; _i++) { - var eventDefParser = _a[_i]; - var newLeftovers = {}; - eventDefParser(def, leftovers, newLeftovers); - leftovers = newLeftovers; - } - def.extendedProps = __assign(leftovers, def.extendedProps || {}); - // help out EventApi from having user modify props - Object.freeze(def.ui.classNames); - Object.freeze(def.extendedProps); - return def; -} -function createEventInstance(defId, range, forcedStartTzo, forcedEndTzo) { - return { - instanceId: String(uid++), - defId: defId, - range: range, - forcedStartTzo: forcedStartTzo == null ? null : forcedStartTzo, - forcedEndTzo: forcedEndTzo == null ? null : forcedEndTzo - }; -} -function parseSingle(raw, allDayDefault, calendar, leftovers, allowOpenRange) { - var props = pluckDateProps(raw, leftovers); - var allDay = props.allDay; - var startMeta; - var startMarker = null; - var hasEnd = false; - var endMeta; - var endMarker = null; - startMeta = calendar.dateEnv.createMarkerMeta(props.start); - if (startMeta) { - startMarker = startMeta.marker; - } - else if (!allowOpenRange) { - return null; - } - if (props.end != null) { - endMeta = calendar.dateEnv.createMarkerMeta(props.end); - } - if (allDay == null) { - if (allDayDefault != null) { - allDay = allDayDefault; - } - else { - // fall back to the date props LAST - allDay = (!startMeta || startMeta.isTimeUnspecified) && - (!endMeta || endMeta.isTimeUnspecified); - } - } - if (allDay && startMarker) { - startMarker = startOfDay(startMarker); - } - if (endMeta) { - endMarker = endMeta.marker; - if (allDay) { - endMarker = startOfDay(endMarker); - } - if (startMarker && endMarker <= startMarker) { - endMarker = null; - } - } - if (endMarker) { - hasEnd = true; - } - else if (!allowOpenRange) { - hasEnd = calendar.opt('forceEventDuration') || false; - endMarker = calendar.dateEnv.add(startMarker, allDay ? - calendar.defaultAllDayEventDuration : - calendar.defaultTimedEventDuration); - } - return { - allDay: allDay, - hasEnd: hasEnd, - range: { start: startMarker, end: endMarker }, - forcedStartTzo: startMeta ? startMeta.forcedTzo : null, - forcedEndTzo: endMeta ? endMeta.forcedTzo : null - }; -} -function pluckDateProps(raw, leftovers) { - var props = refineProps(raw, DATE_PROPS, {}, leftovers); - props.start = (props.start !== null) ? props.start : props.date; - delete props.date; - return props; -} -function pluckNonDateProps(raw, calendar, leftovers) { - var preLeftovers = {}; - var props = refineProps(raw, NON_DATE_PROPS, {}, preLeftovers); - var ui = processUnscopedUiProps(preLeftovers, calendar, leftovers); - props.publicId = props.id; - delete props.id; - props.ui = ui; - return props; -} -function computeIsAllDayDefault(sourceId, calendar) { - var res = null; - if (sourceId) { - var source = calendar.state.eventSources[sourceId]; - res = source.allDayDefault; - } - if (res == null) { - res = calendar.opt('allDayDefault'); - } - return res; -} - -var DEF_DEFAULTS = { - startTime: '09:00', - endTime: '17:00', - daysOfWeek: [1, 2, 3, 4, 5], - rendering: 'inverse-background', - classNames: 'fc-nonbusiness', - groupId: '_businessHours' // so multiple defs get grouped -}; -/* -TODO: pass around as EventDefHash!!! -*/ -function parseBusinessHours(input, calendar) { - return parseEvents(refineInputs(input), '', calendar); -} -function refineInputs(input) { - var rawDefs; - if (input === true) { - rawDefs = [{}]; // will get DEF_DEFAULTS verbatim - } - else if (Array.isArray(input)) { - // if specifying an array, every sub-definition NEEDS a day-of-week - rawDefs = input.filter(function (rawDef) { - return rawDef.daysOfWeek; - }); - } - else if (typeof input === 'object' && input) { // non-null object - rawDefs = [input]; - } - else { // is probably false - rawDefs = []; - } - rawDefs = rawDefs.map(function (rawDef) { - return __assign({}, DEF_DEFAULTS, rawDef); - }); - return rawDefs; -} - -function memoizeRendering(renderFunc, unrenderFunc, dependencies) { - if (dependencies === void 0) { dependencies = []; } - var dependents = []; - var thisContext; - var prevArgs; - function unrender() { - if (prevArgs) { - for (var _i = 0, dependents_1 = dependents; _i < dependents_1.length; _i++) { - var dependent = dependents_1[_i]; - dependent.unrender(); - } - if (unrenderFunc) { - unrenderFunc.apply(thisContext, prevArgs); - } - prevArgs = null; - } - } - function res() { - if (!prevArgs || !isArraysEqual(prevArgs, arguments)) { - unrender(); - thisContext = this; - prevArgs = arguments; - renderFunc.apply(this, arguments); - } - } - res.dependents = dependents; - res.unrender = unrender; - for (var _i = 0, dependencies_1 = dependencies; _i < dependencies_1.length; _i++) { - var dependency = dependencies_1[_i]; - dependency.dependents.push(res); - } - return res; -} - -var EMPTY_EVENT_STORE = createEmptyEventStore(); // for purecomponents. TODO: keep elsewhere -var Splitter = /** @class */ (function () { - function Splitter() { - this.getKeysForEventDefs = memoize(this._getKeysForEventDefs); - this.splitDateSelection = memoize(this._splitDateSpan); - this.splitEventStore = memoize(this._splitEventStore); - this.splitIndividualUi = memoize(this._splitIndividualUi); - this.splitEventDrag = memoize(this._splitInteraction); - this.splitEventResize = memoize(this._splitInteraction); - this.eventUiBuilders = {}; // TODO: typescript protection - } - Splitter.prototype.splitProps = function (props) { - var _this = this; - var keyInfos = this.getKeyInfo(props); - var defKeys = this.getKeysForEventDefs(props.eventStore); - var dateSelections = this.splitDateSelection(props.dateSelection); - var individualUi = this.splitIndividualUi(props.eventUiBases, defKeys); // the individual *bases* - var eventStores = this.splitEventStore(props.eventStore, defKeys); - var eventDrags = this.splitEventDrag(props.eventDrag); - var eventResizes = this.splitEventResize(props.eventResize); - var splitProps = {}; - this.eventUiBuilders = mapHash(keyInfos, function (info, key) { - return _this.eventUiBuilders[key] || memoize(buildEventUiForKey); - }); - for (var key in keyInfos) { - var keyInfo = keyInfos[key]; - var eventStore = eventStores[key] || EMPTY_EVENT_STORE; - var buildEventUi = this.eventUiBuilders[key]; - splitProps[key] = { - businessHours: keyInfo.businessHours || props.businessHours, - dateSelection: dateSelections[key] || null, - eventStore: eventStore, - eventUiBases: buildEventUi(props.eventUiBases[''], keyInfo.ui, individualUi[key]), - eventSelection: eventStore.instances[props.eventSelection] ? props.eventSelection : '', - eventDrag: eventDrags[key] || null, - eventResize: eventResizes[key] || null - }; - } - return splitProps; - }; - Splitter.prototype._splitDateSpan = function (dateSpan) { - var dateSpans = {}; - if (dateSpan) { - var keys = this.getKeysForDateSpan(dateSpan); - for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) { - var key = keys_1[_i]; - dateSpans[key] = dateSpan; - } - } - return dateSpans; - }; - Splitter.prototype._getKeysForEventDefs = function (eventStore) { - var _this = this; - return mapHash(eventStore.defs, function (eventDef) { - return _this.getKeysForEventDef(eventDef); - }); - }; - Splitter.prototype._splitEventStore = function (eventStore, defKeys) { - var defs = eventStore.defs, instances = eventStore.instances; - var splitStores = {}; - for (var defId in defs) { - for (var _i = 0, _a = defKeys[defId]; _i < _a.length; _i++) { - var key = _a[_i]; - if (!splitStores[key]) { - splitStores[key] = createEmptyEventStore(); - } - splitStores[key].defs[defId] = defs[defId]; - } - } - for (var instanceId in instances) { - var instance = instances[instanceId]; - for (var _b = 0, _c = defKeys[instance.defId]; _b < _c.length; _b++) { - var key = _c[_b]; - if (splitStores[key]) { // must have already been created - splitStores[key].instances[instanceId] = instance; - } - } - } - return splitStores; - }; - Splitter.prototype._splitIndividualUi = function (eventUiBases, defKeys) { - var splitHashes = {}; - for (var defId in eventUiBases) { - if (defId) { // not the '' key - for (var _i = 0, _a = defKeys[defId]; _i < _a.length; _i++) { - var key = _a[_i]; - if (!splitHashes[key]) { - splitHashes[key] = {}; - } - splitHashes[key][defId] = eventUiBases[defId]; - } - } - } - return splitHashes; - }; - Splitter.prototype._splitInteraction = function (interaction) { - var splitStates = {}; - if (interaction) { - var affectedStores_1 = this._splitEventStore(interaction.affectedEvents, this._getKeysForEventDefs(interaction.affectedEvents) // can't use cached. might be events from other calendar - ); - // can't rely on defKeys because event data is mutated - var mutatedKeysByDefId = this._getKeysForEventDefs(interaction.mutatedEvents); - var mutatedStores_1 = this._splitEventStore(interaction.mutatedEvents, mutatedKeysByDefId); - var populate = function (key) { - if (!splitStates[key]) { - splitStates[key] = { - affectedEvents: affectedStores_1[key] || EMPTY_EVENT_STORE, - mutatedEvents: mutatedStores_1[key] || EMPTY_EVENT_STORE, - isEvent: interaction.isEvent, - origSeg: interaction.origSeg - }; - } - }; - for (var key in affectedStores_1) { - populate(key); - } - for (var key in mutatedStores_1) { - populate(key); - } - } - return splitStates; - }; - return Splitter; -}()); -function buildEventUiForKey(allUi, eventUiForKey, individualUi) { - var baseParts = []; - if (allUi) { - baseParts.push(allUi); - } - if (eventUiForKey) { - baseParts.push(eventUiForKey); - } - var stuff = { - '': combineEventUis(baseParts) - }; - if (individualUi) { - __assign(stuff, individualUi); - } - return stuff; -} - -// Generates HTML for an anchor to another view into the calendar. -// Will either generate an
tag or a non-clickable tag, depending on enabled settings. -// `gotoOptions` can either be a DateMarker, or an object with the form: -// { date, type, forceOff } -// `type` is a view-type like "day" or "week". default value is "day". -// `attrs` and `innerHtml` are use to generate the rest of the HTML tag. -function buildGotoAnchorHtml(component, gotoOptions, attrs, innerHtml) { - var dateEnv = component.dateEnv; - var date; - var type; - var forceOff; - var finalOptions; - if (gotoOptions instanceof Date) { - date = gotoOptions; // a single date-like input - } - else { - date = gotoOptions.date; - type = gotoOptions.type; - forceOff = gotoOptions.forceOff; - } - finalOptions = { - date: dateEnv.formatIso(date, { omitTime: true }), - type: type || 'day' - }; - if (typeof attrs === 'string') { - innerHtml = attrs; - attrs = null; - } - attrs = attrs ? ' ' + attrsToStr(attrs) : ''; // will have a leading space - innerHtml = innerHtml || ''; - if (!forceOff && component.opt('navLinks')) { - return '' + - innerHtml + - ''; - } - else { - return '' + - innerHtml + - ''; - } -} -function getAllDayHtml(component) { - return component.opt('allDayHtml') || htmlEscape(component.opt('allDayText')); -} -// Computes HTML classNames for a single-day element -function getDayClasses(date, dateProfile, context, noThemeHighlight) { - var calendar = context.calendar, view = context.view, theme = context.theme, dateEnv = context.dateEnv; - var classes = []; - var todayStart; - var todayEnd; - if (!rangeContainsMarker(dateProfile.activeRange, date)) { - classes.push('fc-disabled-day'); - } - else { - classes.push('fc-' + DAY_IDS[date.getUTCDay()]); - if (view.opt('monthMode') && - dateEnv.getMonth(date) !== dateEnv.getMonth(dateProfile.currentRange.start)) { - classes.push('fc-other-month'); - } - todayStart = startOfDay(calendar.getNow()); - todayEnd = addDays(todayStart, 1); - if (date < todayStart) { - classes.push('fc-past'); - } - else if (date >= todayEnd) { - classes.push('fc-future'); - } - else { - classes.push('fc-today'); - if (noThemeHighlight !== true) { - classes.push(theme.getClass('today')); - } - } - } - return classes; -} - -// given a function that resolves a result asynchronously. -// the function can either call passed-in success and failure callbacks, -// or it can return a promise. -// if you need to pass additional params to func, bind them first. -function unpromisify(func, success, failure) { - // guard against success/failure callbacks being called more than once - // and guard against a promise AND callback being used together. - var isResolved = false; - var wrappedSuccess = function () { - if (!isResolved) { - isResolved = true; - success.apply(this, arguments); - } - }; - var wrappedFailure = function () { - if (!isResolved) { - isResolved = true; - if (failure) { - failure.apply(this, arguments); - } - } - }; - var res = func(wrappedSuccess, wrappedFailure); - if (res && typeof res.then === 'function') { - res.then(wrappedSuccess, wrappedFailure); - } -} - -var Mixin = /** @class */ (function () { - function Mixin() { - } - // mix into a CLASS - Mixin.mixInto = function (destClass) { - this.mixIntoObj(destClass.prototype); - }; - // mix into ANY object - Mixin.mixIntoObj = function (destObj) { - var _this = this; - Object.getOwnPropertyNames(this.prototype).forEach(function (name) { - if (!destObj[name]) { // if destination doesn't already define it - destObj[name] = _this.prototype[name]; - } - }); - }; - /* - will override existing methods - TODO: remove! not used anymore - */ - Mixin.mixOver = function (destClass) { - var _this = this; - Object.getOwnPropertyNames(this.prototype).forEach(function (name) { - destClass.prototype[name] = _this.prototype[name]; - }); - }; - return Mixin; -}()); - -/* -USAGE: - import { default as EmitterMixin, EmitterInterface } from './EmitterMixin' -in class: - on: EmitterInterface['on'] - one: EmitterInterface['one'] - off: EmitterInterface['off'] - trigger: EmitterInterface['trigger'] - triggerWith: EmitterInterface['triggerWith'] - hasHandlers: EmitterInterface['hasHandlers'] -after class: - EmitterMixin.mixInto(TheClass) -*/ -var EmitterMixin = /** @class */ (function (_super) { - __extends(EmitterMixin, _super); - function EmitterMixin() { - return _super !== null && _super.apply(this, arguments) || this; - } - EmitterMixin.prototype.on = function (type, handler) { - addToHash(this._handlers || (this._handlers = {}), type, handler); - return this; // for chaining - }; - // todo: add comments - EmitterMixin.prototype.one = function (type, handler) { - addToHash(this._oneHandlers || (this._oneHandlers = {}), type, handler); - return this; // for chaining - }; - EmitterMixin.prototype.off = function (type, handler) { - if (this._handlers) { - removeFromHash(this._handlers, type, handler); - } - if (this._oneHandlers) { - removeFromHash(this._oneHandlers, type, handler); - } - return this; // for chaining - }; - EmitterMixin.prototype.trigger = function (type) { - var args = []; - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; - } - this.triggerWith(type, this, args); - return this; // for chaining - }; - EmitterMixin.prototype.triggerWith = function (type, context, args) { - if (this._handlers) { - applyAll(this._handlers[type], context, args); - } - if (this._oneHandlers) { - applyAll(this._oneHandlers[type], context, args); - delete this._oneHandlers[type]; // will never fire again - } - return this; // for chaining - }; - EmitterMixin.prototype.hasHandlers = function (type) { - return (this._handlers && this._handlers[type] && this._handlers[type].length) || - (this._oneHandlers && this._oneHandlers[type] && this._oneHandlers[type].length); - }; - return EmitterMixin; -}(Mixin)); -function addToHash(hash, type, handler) { - (hash[type] || (hash[type] = [])) - .push(handler); -} -function removeFromHash(hash, type, handler) { - if (handler) { - if (hash[type]) { - hash[type] = hash[type].filter(function (func) { - return func !== handler; - }); - } - } - else { - delete hash[type]; // remove all handler funcs for this type - } -} - -/* -Records offset information for a set of elements, relative to an origin element. -Can record the left/right OR the top/bottom OR both. -Provides methods for querying the cache by position. -*/ -var PositionCache = /** @class */ (function () { - function PositionCache(originEl, els, isHorizontal, isVertical) { - this.originEl = originEl; - this.els = els; - this.isHorizontal = isHorizontal; - this.isVertical = isVertical; - } - // Queries the els for coordinates and stores them. - // Call this method before using and of the get* methods below. - PositionCache.prototype.build = function () { - var originEl = this.originEl; - var originClientRect = this.originClientRect = - originEl.getBoundingClientRect(); // relative to viewport top-left - if (this.isHorizontal) { - this.buildElHorizontals(originClientRect.left); - } - if (this.isVertical) { - this.buildElVerticals(originClientRect.top); - } - }; - // Populates the left/right internal coordinate arrays - PositionCache.prototype.buildElHorizontals = function (originClientLeft) { - var lefts = []; - var rights = []; - for (var _i = 0, _a = this.els; _i < _a.length; _i++) { - var el = _a[_i]; - var rect = el.getBoundingClientRect(); - lefts.push(rect.left - originClientLeft); - rights.push(rect.right - originClientLeft); - } - this.lefts = lefts; - this.rights = rights; - }; - // Populates the top/bottom internal coordinate arrays - PositionCache.prototype.buildElVerticals = function (originClientTop) { - var tops = []; - var bottoms = []; - for (var _i = 0, _a = this.els; _i < _a.length; _i++) { - var el = _a[_i]; - var rect = el.getBoundingClientRect(); - tops.push(rect.top - originClientTop); - bottoms.push(rect.bottom - originClientTop); - } - this.tops = tops; - this.bottoms = bottoms; - }; - // Given a left offset (from document left), returns the index of the el that it horizontally intersects. - // If no intersection is made, returns undefined. - PositionCache.prototype.leftToIndex = function (leftPosition) { - var lefts = this.lefts; - var rights = this.rights; - var len = lefts.length; - var i; - for (i = 0; i < len; i++) { - if (leftPosition >= lefts[i] && leftPosition < rights[i]) { - return i; - } - } - }; - // Given a top offset (from document top), returns the index of the el that it vertically intersects. - // If no intersection is made, returns undefined. - PositionCache.prototype.topToIndex = function (topPosition) { - var tops = this.tops; - var bottoms = this.bottoms; - var len = tops.length; - var i; - for (i = 0; i < len; i++) { - if (topPosition >= tops[i] && topPosition < bottoms[i]) { - return i; - } - } - }; - // Gets the width of the element at the given index - PositionCache.prototype.getWidth = function (leftIndex) { - return this.rights[leftIndex] - this.lefts[leftIndex]; - }; - // Gets the height of the element at the given index - PositionCache.prototype.getHeight = function (topIndex) { - return this.bottoms[topIndex] - this.tops[topIndex]; - }; - return PositionCache; -}()); - -/* -An object for getting/setting scroll-related information for an element. -Internally, this is done very differently for window versus DOM element, -so this object serves as a common interface. -*/ -var ScrollController = /** @class */ (function () { - function ScrollController() { - } - ScrollController.prototype.getMaxScrollTop = function () { - return this.getScrollHeight() - this.getClientHeight(); - }; - ScrollController.prototype.getMaxScrollLeft = function () { - return this.getScrollWidth() - this.getClientWidth(); - }; - ScrollController.prototype.canScrollVertically = function () { - return this.getMaxScrollTop() > 0; - }; - ScrollController.prototype.canScrollHorizontally = function () { - return this.getMaxScrollLeft() > 0; - }; - ScrollController.prototype.canScrollUp = function () { - return this.getScrollTop() > 0; - }; - ScrollController.prototype.canScrollDown = function () { - return this.getScrollTop() < this.getMaxScrollTop(); - }; - ScrollController.prototype.canScrollLeft = function () { - return this.getScrollLeft() > 0; - }; - ScrollController.prototype.canScrollRight = function () { - return this.getScrollLeft() < this.getMaxScrollLeft(); - }; - return ScrollController; -}()); -var ElementScrollController = /** @class */ (function (_super) { - __extends(ElementScrollController, _super); - function ElementScrollController(el) { - var _this = _super.call(this) || this; - _this.el = el; - return _this; - } - ElementScrollController.prototype.getScrollTop = function () { - return this.el.scrollTop; - }; - ElementScrollController.prototype.getScrollLeft = function () { - return this.el.scrollLeft; - }; - ElementScrollController.prototype.setScrollTop = function (top) { - this.el.scrollTop = top; - }; - ElementScrollController.prototype.setScrollLeft = function (left) { - this.el.scrollLeft = left; - }; - ElementScrollController.prototype.getScrollWidth = function () { - return this.el.scrollWidth; - }; - ElementScrollController.prototype.getScrollHeight = function () { - return this.el.scrollHeight; - }; - ElementScrollController.prototype.getClientHeight = function () { - return this.el.clientHeight; - }; - ElementScrollController.prototype.getClientWidth = function () { - return this.el.clientWidth; - }; - return ElementScrollController; -}(ScrollController)); -var WindowScrollController = /** @class */ (function (_super) { - __extends(WindowScrollController, _super); - function WindowScrollController() { - return _super !== null && _super.apply(this, arguments) || this; - } - WindowScrollController.prototype.getScrollTop = function () { - return window.pageYOffset; - }; - WindowScrollController.prototype.getScrollLeft = function () { - return window.pageXOffset; - }; - WindowScrollController.prototype.setScrollTop = function (n) { - window.scroll(window.pageXOffset, n); - }; - WindowScrollController.prototype.setScrollLeft = function (n) { - window.scroll(n, window.pageYOffset); - }; - WindowScrollController.prototype.getScrollWidth = function () { - return document.documentElement.scrollWidth; - }; - WindowScrollController.prototype.getScrollHeight = function () { - return document.documentElement.scrollHeight; - }; - WindowScrollController.prototype.getClientHeight = function () { - return document.documentElement.clientHeight; - }; - WindowScrollController.prototype.getClientWidth = function () { - return document.documentElement.clientWidth; - }; - return WindowScrollController; -}(ScrollController)); - -/* -Embodies a div that has potential scrollbars -*/ -var ScrollComponent = /** @class */ (function (_super) { - __extends(ScrollComponent, _super); - function ScrollComponent(overflowX, overflowY) { - var _this = _super.call(this, createElement('div', { - className: 'fc-scroller' - })) || this; - _this.overflowX = overflowX; - _this.overflowY = overflowY; - _this.applyOverflow(); - return _this; - } - // sets to natural height, unlocks overflow - ScrollComponent.prototype.clear = function () { - this.setHeight('auto'); - this.applyOverflow(); - }; - ScrollComponent.prototype.destroy = function () { - removeElement(this.el); - }; - // Overflow - // ----------------------------------------------------------------------------------------------------------------- - ScrollComponent.prototype.applyOverflow = function () { - applyStyle(this.el, { - overflowX: this.overflowX, - overflowY: this.overflowY - }); - }; - // Causes any 'auto' overflow values to resolves to 'scroll' or 'hidden'. - // Useful for preserving scrollbar widths regardless of future resizes. - // Can pass in scrollbarWidths for optimization. - ScrollComponent.prototype.lockOverflow = function (scrollbarWidths) { - var overflowX = this.overflowX; - var overflowY = this.overflowY; - scrollbarWidths = scrollbarWidths || this.getScrollbarWidths(); - if (overflowX === 'auto') { - overflowX = (scrollbarWidths.bottom || // horizontal scrollbars? - this.canScrollHorizontally() // OR scrolling pane with massless scrollbars? - ) ? 'scroll' : 'hidden'; - } - if (overflowY === 'auto') { - overflowY = (scrollbarWidths.left || scrollbarWidths.right || // horizontal scrollbars? - this.canScrollVertically() // OR scrolling pane with massless scrollbars? - ) ? 'scroll' : 'hidden'; - } - applyStyle(this.el, { overflowX: overflowX, overflowY: overflowY }); - }; - ScrollComponent.prototype.setHeight = function (height) { - applyStyleProp(this.el, 'height', height); - }; - ScrollComponent.prototype.getScrollbarWidths = function () { - var edges = computeEdges(this.el); - return { - left: edges.scrollbarLeft, - right: edges.scrollbarRight, - bottom: edges.scrollbarBottom - }; - }; - return ScrollComponent; -}(ElementScrollController)); - -var Theme = /** @class */ (function () { - function Theme(calendarOptions) { - this.calendarOptions = calendarOptions; - this.processIconOverride(); - } - Theme.prototype.processIconOverride = function () { - if (this.iconOverrideOption) { - this.setIconOverride(this.calendarOptions[this.iconOverrideOption]); - } - }; - Theme.prototype.setIconOverride = function (iconOverrideHash) { - var iconClassesCopy; - var buttonName; - if (typeof iconOverrideHash === 'object' && iconOverrideHash) { // non-null object - iconClassesCopy = __assign({}, this.iconClasses); - for (buttonName in iconOverrideHash) { - iconClassesCopy[buttonName] = this.applyIconOverridePrefix(iconOverrideHash[buttonName]); - } - this.iconClasses = iconClassesCopy; - } - else if (iconOverrideHash === false) { - this.iconClasses = {}; - } - }; - Theme.prototype.applyIconOverridePrefix = function (className) { - var prefix = this.iconOverridePrefix; - if (prefix && className.indexOf(prefix) !== 0) { // if not already present - className = prefix + className; - } - return className; - }; - Theme.prototype.getClass = function (key) { - return this.classes[key] || ''; - }; - Theme.prototype.getIconClass = function (buttonName) { - var className = this.iconClasses[buttonName]; - if (className) { - return this.baseIconClass + ' ' + className; - } - return ''; - }; - Theme.prototype.getCustomButtonIconClass = function (customButtonProps) { - var className; - if (this.iconOverrideCustomButtonOption) { - className = customButtonProps[this.iconOverrideCustomButtonOption]; - if (className) { - return this.baseIconClass + ' ' + this.applyIconOverridePrefix(className); - } - } - return ''; - }; - return Theme; -}()); -Theme.prototype.classes = {}; -Theme.prototype.iconClasses = {}; -Theme.prototype.baseIconClass = ''; -Theme.prototype.iconOverridePrefix = ''; - -var guid = 0; -var Component = /** @class */ (function () { - function Component(context, isView) { - // HACK to populate view at top of component instantiation call chain - if (isView) { - context.view = this; - } - this.uid = String(guid++); - this.context = context; - this.dateEnv = context.dateEnv; - this.theme = context.theme; - this.view = context.view; - this.calendar = context.calendar; - this.isRtl = this.opt('dir') === 'rtl'; - } - Component.addEqualityFuncs = function (newFuncs) { - this.prototype.equalityFuncs = __assign({}, this.prototype.equalityFuncs, newFuncs); - }; - Component.prototype.opt = function (name) { - return this.context.options[name]; - }; - Component.prototype.receiveProps = function (props) { - var _a = recycleProps(this.props || {}, props, this.equalityFuncs), anyChanges = _a.anyChanges, comboProps = _a.comboProps; - this.props = comboProps; - if (anyChanges) { - this.render(comboProps); - } - }; - Component.prototype.render = function (props) { - }; - // after destroy is called, this component won't ever be used again - Component.prototype.destroy = function () { - }; - return Component; -}()); -Component.prototype.equalityFuncs = {}; -/* -Reuses old values when equal. If anything is unequal, returns newProps as-is. -Great for PureComponent, but won't be feasible with React, so just eliminate and use React's DOM diffing. -*/ -function recycleProps(oldProps, newProps, equalityFuncs) { - var comboProps = {}; // some old, some new - var anyChanges = false; - for (var key in newProps) { - if (key in oldProps && (oldProps[key] === newProps[key] || - (equalityFuncs[key] && equalityFuncs[key](oldProps[key], newProps[key])))) { - // equal to old? use old prop - comboProps[key] = oldProps[key]; - } - else { - comboProps[key] = newProps[key]; - anyChanges = true; - } - } - for (var key in oldProps) { - if (!(key in newProps)) { - anyChanges = true; - break; - } - } - return { anyChanges: anyChanges, comboProps: comboProps }; -} - -/* -PURPOSES: -- hook up to fg, fill, and mirror renderers -- interface for dragging and hits -*/ -var DateComponent = /** @class */ (function (_super) { - __extends(DateComponent, _super); - function DateComponent(context, el, isView) { - var _this = _super.call(this, context, isView) || this; - _this.el = el; - return _this; - } - DateComponent.prototype.destroy = function () { - _super.prototype.destroy.call(this); - removeElement(this.el); - }; - // TODO: WHAT ABOUT (sourceSeg && sourceSeg.component.doesDragMirror) - // - // Event Drag-n-Drop Rendering (for both events and external elements) - // --------------------------------------------------------------------------------------------------------------- - /* - renderEventDragSegs(state: EventSegUiInteractionState) { - if (state) { - let { isEvent, segs, sourceSeg } = state - - if (this.eventRenderer) { - this.eventRenderer.hideByHash(state.affectedInstances) - } - - // if the user is dragging something that is considered an event with real event data, - // and this component likes to do drag mirrors OR the component where the seg came from - // likes to do drag mirrors, then render a drag mirror. - if (isEvent && (this.doesDragMirror || sourceSeg && sourceSeg.component.doesDragMirror)) { - if (this.mirrorRenderer) { - this.mirrorRenderer.renderSegs(segs, { isDragging: true, sourceSeg }) - } - } - - // if it would be impossible to render a drag mirror OR this component likes to render - // highlights, then render a highlight. - if (!isEvent || this.doesDragHighlight) { - if (this.fillRenderer) { - this.fillRenderer.renderSegs('highlight', segs) - } - } - } - } - */ - // Hit System - // ----------------------------------------------------------------------------------------------------------------- - DateComponent.prototype.buildPositionCaches = function () { - }; - DateComponent.prototype.queryHit = function (positionLeft, positionTop, elWidth, elHeight) { - return null; // this should be abstract - }; - // Validation - // ----------------------------------------------------------------------------------------------------------------- - DateComponent.prototype.isInteractionValid = function (interaction) { - var calendar = this.calendar; - var dateProfile = this.props.dateProfile; // HACK - var instances = interaction.mutatedEvents.instances; - if (dateProfile) { // HACK for DayTile - for (var instanceId in instances) { - if (!rangeContainsRange(dateProfile.validRange, instances[instanceId].range)) { - return false; - } - } - } - return isInteractionValid(interaction, calendar); - }; - DateComponent.prototype.isDateSelectionValid = function (selection) { - var dateProfile = this.props.dateProfile; // HACK - if (dateProfile && // HACK for DayTile - !rangeContainsRange(dateProfile.validRange, selection.range)) { - return false; - } - return isDateSelectionValid(selection, this.calendar); - }; - // Triggering - // ----------------------------------------------------------------------------------------------------------------- - // TODO: move to Calendar - DateComponent.prototype.publiclyTrigger = function (name, args) { - var calendar = this.calendar; - return calendar.publiclyTrigger(name, args); - }; - DateComponent.prototype.publiclyTriggerAfterSizing = function (name, args) { - var calendar = this.calendar; - return calendar.publiclyTriggerAfterSizing(name, args); - }; - DateComponent.prototype.hasPublicHandlers = function (name) { - var calendar = this.calendar; - return calendar.hasPublicHandlers(name); - }; - DateComponent.prototype.triggerRenderedSegs = function (segs, isMirrors) { - var calendar = this.calendar; - if (this.hasPublicHandlers('eventPositioned')) { - for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) { - var seg = segs_1[_i]; - this.publiclyTriggerAfterSizing('eventPositioned', [ - { - event: new EventApi(calendar, seg.eventRange.def, seg.eventRange.instance), - isMirror: isMirrors, - isStart: seg.isStart, - isEnd: seg.isEnd, - el: seg.el, - view: this // safe to cast because this method is only called on context.view - } - ]); - } - } - if (!calendar.state.loadingLevel) { // avoid initial empty state while pending - calendar.afterSizingTriggers._eventsPositioned = [null]; // fire once - } - }; - DateComponent.prototype.triggerWillRemoveSegs = function (segs, isMirrors) { - var calendar = this.calendar; - for (var _i = 0, segs_2 = segs; _i < segs_2.length; _i++) { - var seg = segs_2[_i]; - calendar.trigger('eventElRemove', seg.el); - } - if (this.hasPublicHandlers('eventDestroy')) { - for (var _a = 0, segs_3 = segs; _a < segs_3.length; _a++) { - var seg = segs_3[_a]; - this.publiclyTrigger('eventDestroy', [ - { - event: new EventApi(calendar, seg.eventRange.def, seg.eventRange.instance), - isMirror: isMirrors, - el: seg.el, - view: this // safe to cast because this method is only called on context.view - } - ]); - } - } - }; - // Pointer Interaction Utils - // ----------------------------------------------------------------------------------------------------------------- - DateComponent.prototype.isValidSegDownEl = function (el) { - return !this.props.eventDrag && // HACK - !this.props.eventResize && // HACK - !elementClosest(el, '.fc-mirror') && - (this.isPopover() || !this.isInPopover(el)); - // ^above line ensures we don't detect a seg interaction within a nested component. - // it's a HACK because it only supports a popover as the nested component. - }; - DateComponent.prototype.isValidDateDownEl = function (el) { - var segEl = elementClosest(el, this.fgSegSelector); - return (!segEl || segEl.classList.contains('fc-mirror')) && - !elementClosest(el, '.fc-more') && // a "more.." link - !elementClosest(el, 'a[data-goto]') && // a clickable nav link - !this.isInPopover(el); - }; - DateComponent.prototype.isPopover = function () { - return this.el.classList.contains('fc-popover'); - }; - DateComponent.prototype.isInPopover = function (el) { - return Boolean(elementClosest(el, '.fc-popover')); - }; - return DateComponent; -}(Component)); -DateComponent.prototype.fgSegSelector = '.fc-event-container > *'; -DateComponent.prototype.bgSegSelector = '.fc-bgevent:not(.fc-nonbusiness)'; - -var uid$1 = 0; -function createPlugin(input) { - return { - id: String(uid$1++), - deps: input.deps || [], - reducers: input.reducers || [], - eventDefParsers: input.eventDefParsers || [], - isDraggableTransformers: input.isDraggableTransformers || [], - eventDragMutationMassagers: input.eventDragMutationMassagers || [], - eventDefMutationAppliers: input.eventDefMutationAppliers || [], - dateSelectionTransformers: input.dateSelectionTransformers || [], - datePointTransforms: input.datePointTransforms || [], - dateSpanTransforms: input.dateSpanTransforms || [], - views: input.views || {}, - viewPropsTransformers: input.viewPropsTransformers || [], - isPropsValid: input.isPropsValid || null, - externalDefTransforms: input.externalDefTransforms || [], - eventResizeJoinTransforms: input.eventResizeJoinTransforms || [], - viewContainerModifiers: input.viewContainerModifiers || [], - eventDropTransformers: input.eventDropTransformers || [], - componentInteractions: input.componentInteractions || [], - calendarInteractions: input.calendarInteractions || [], - themeClasses: input.themeClasses || {}, - eventSourceDefs: input.eventSourceDefs || [], - cmdFormatter: input.cmdFormatter, - recurringTypes: input.recurringTypes || [], - namedTimeZonedImpl: input.namedTimeZonedImpl, - defaultView: input.defaultView || '', - elementDraggingImpl: input.elementDraggingImpl, - optionChangeHandlers: input.optionChangeHandlers || {} - }; -} -var PluginSystem = /** @class */ (function () { - function PluginSystem() { - this.hooks = { - reducers: [], - eventDefParsers: [], - isDraggableTransformers: [], - eventDragMutationMassagers: [], - eventDefMutationAppliers: [], - dateSelectionTransformers: [], - datePointTransforms: [], - dateSpanTransforms: [], - views: {}, - viewPropsTransformers: [], - isPropsValid: null, - externalDefTransforms: [], - eventResizeJoinTransforms: [], - viewContainerModifiers: [], - eventDropTransformers: [], - componentInteractions: [], - calendarInteractions: [], - themeClasses: {}, - eventSourceDefs: [], - cmdFormatter: null, - recurringTypes: [], - namedTimeZonedImpl: null, - defaultView: '', - elementDraggingImpl: null, - optionChangeHandlers: {} - }; - this.addedHash = {}; - } - PluginSystem.prototype.add = function (plugin) { - if (!this.addedHash[plugin.id]) { - this.addedHash[plugin.id] = true; - for (var _i = 0, _a = plugin.deps; _i < _a.length; _i++) { - var dep = _a[_i]; - this.add(dep); - } - this.hooks = combineHooks(this.hooks, plugin); - } - }; - return PluginSystem; -}()); -function combineHooks(hooks0, hooks1) { - return { - reducers: hooks0.reducers.concat(hooks1.reducers), - eventDefParsers: hooks0.eventDefParsers.concat(hooks1.eventDefParsers), - isDraggableTransformers: hooks0.isDraggableTransformers.concat(hooks1.isDraggableTransformers), - eventDragMutationMassagers: hooks0.eventDragMutationMassagers.concat(hooks1.eventDragMutationMassagers), - eventDefMutationAppliers: hooks0.eventDefMutationAppliers.concat(hooks1.eventDefMutationAppliers), - dateSelectionTransformers: hooks0.dateSelectionTransformers.concat(hooks1.dateSelectionTransformers), - datePointTransforms: hooks0.datePointTransforms.concat(hooks1.datePointTransforms), - dateSpanTransforms: hooks0.dateSpanTransforms.concat(hooks1.dateSpanTransforms), - views: __assign({}, hooks0.views, hooks1.views), - viewPropsTransformers: hooks0.viewPropsTransformers.concat(hooks1.viewPropsTransformers), - isPropsValid: hooks1.isPropsValid || hooks0.isPropsValid, - externalDefTransforms: hooks0.externalDefTransforms.concat(hooks1.externalDefTransforms), - eventResizeJoinTransforms: hooks0.eventResizeJoinTransforms.concat(hooks1.eventResizeJoinTransforms), - viewContainerModifiers: hooks0.viewContainerModifiers.concat(hooks1.viewContainerModifiers), - eventDropTransformers: hooks0.eventDropTransformers.concat(hooks1.eventDropTransformers), - calendarInteractions: hooks0.calendarInteractions.concat(hooks1.calendarInteractions), - componentInteractions: hooks0.componentInteractions.concat(hooks1.componentInteractions), - themeClasses: __assign({}, hooks0.themeClasses, hooks1.themeClasses), - eventSourceDefs: hooks0.eventSourceDefs.concat(hooks1.eventSourceDefs), - cmdFormatter: hooks1.cmdFormatter || hooks0.cmdFormatter, - recurringTypes: hooks0.recurringTypes.concat(hooks1.recurringTypes), - namedTimeZonedImpl: hooks1.namedTimeZonedImpl || hooks0.namedTimeZonedImpl, - defaultView: hooks0.defaultView || hooks1.defaultView, - elementDraggingImpl: hooks0.elementDraggingImpl || hooks1.elementDraggingImpl, - optionChangeHandlers: __assign({}, hooks0.optionChangeHandlers, hooks1.optionChangeHandlers) - }; -} - -var eventSourceDef = { - ignoreRange: true, - parseMeta: function (raw) { - if (Array.isArray(raw)) { // short form - return raw; - } - else if (Array.isArray(raw.events)) { - return raw.events; - } - return null; - }, - fetch: function (arg, success) { - success({ - rawEvents: arg.eventSource.meta - }); - } -}; -var ArrayEventSourcePlugin = createPlugin({ - eventSourceDefs: [eventSourceDef] -}); - -var eventSourceDef$1 = { - parseMeta: function (raw) { - if (typeof raw === 'function') { // short form - return raw; - } - else if (typeof raw.events === 'function') { - return raw.events; - } - return null; - }, - fetch: function (arg, success, failure) { - var dateEnv = arg.calendar.dateEnv; - var func = arg.eventSource.meta; - unpromisify(func.bind(null, { - start: dateEnv.toDate(arg.range.start), - end: dateEnv.toDate(arg.range.end), - startStr: dateEnv.formatIso(arg.range.start), - endStr: dateEnv.formatIso(arg.range.end), - timeZone: dateEnv.timeZone - }), function (rawEvents) { - success({ rawEvents: rawEvents }); // needs an object response - }, failure // send errorObj directly to failure callback - ); - } -}; -var FuncEventSourcePlugin = createPlugin({ - eventSourceDefs: [eventSourceDef$1] -}); - -function requestJson(method, url, params, successCallback, failureCallback) { - method = method.toUpperCase(); - var body = null; - if (method === 'GET') { - url = injectQueryStringParams(url, params); - } - else { - body = encodeParams(params); - } - var xhr = new XMLHttpRequest(); - xhr.open(method, url, true); - if (method !== 'GET') { - xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); - } - xhr.onload = function () { - if (xhr.status >= 200 && xhr.status < 400) { - try { - var res = JSON.parse(xhr.responseText); - successCallback(res, xhr); - } - catch (err) { - failureCallback('Failure parsing JSON', xhr); - } - } - else { - failureCallback('Request failed', xhr); - } - }; - xhr.onerror = function () { - failureCallback('Request failed', xhr); - }; - xhr.send(body); -} -function injectQueryStringParams(url, params) { - return url + - (url.indexOf('?') === -1 ? '?' : '&') + - encodeParams(params); -} -function encodeParams(params) { - var parts = []; - for (var key in params) { - parts.push(encodeURIComponent(key) + '=' + encodeURIComponent(params[key])); - } - return parts.join('&'); -} - -var eventSourceDef$2 = { - parseMeta: function (raw) { - if (typeof raw === 'string') { // short form - raw = { url: raw }; - } - else if (!raw || typeof raw !== 'object' || !raw.url) { - return null; - } - return { - url: raw.url, - method: (raw.method || 'GET').toUpperCase(), - extraParams: raw.extraParams, - startParam: raw.startParam, - endParam: raw.endParam, - timeZoneParam: raw.timeZoneParam - }; - }, - fetch: function (arg, success, failure) { - var meta = arg.eventSource.meta; - var requestParams = buildRequestParams(meta, arg.range, arg.calendar); - requestJson(meta.method, meta.url, requestParams, function (rawEvents, xhr) { - success({ rawEvents: rawEvents, xhr: xhr }); - }, function (errorMessage, xhr) { - failure({ message: errorMessage, xhr: xhr }); - }); - } -}; -var JsonFeedEventSourcePlugin = createPlugin({ - eventSourceDefs: [eventSourceDef$2] -}); -function buildRequestParams(meta, range, calendar) { - var dateEnv = calendar.dateEnv; - var startParam; - var endParam; - var timeZoneParam; - var customRequestParams; - var params = {}; - startParam = meta.startParam; - if (startParam == null) { - startParam = calendar.opt('startParam'); - } - endParam = meta.endParam; - if (endParam == null) { - endParam = calendar.opt('endParam'); - } - timeZoneParam = meta.timeZoneParam; - if (timeZoneParam == null) { - timeZoneParam = calendar.opt('timeZoneParam'); - } - // retrieve any outbound GET/POST data from the options - if (typeof meta.extraParams === 'function') { - // supplied as a function that returns a key/value object - customRequestParams = meta.extraParams(); - } - else { - // probably supplied as a straight key/value object - customRequestParams = meta.extraParams || {}; - } - __assign(params, customRequestParams); - params[startParam] = dateEnv.formatIso(range.start); - params[endParam] = dateEnv.formatIso(range.end); - if (dateEnv.timeZone !== 'local') { - params[timeZoneParam] = dateEnv.timeZone; - } - return params; -} - -var recurring = { - parse: function (rawEvent, leftoverProps, dateEnv) { - var createMarker = dateEnv.createMarker.bind(dateEnv); - var processors = { - daysOfWeek: null, - startTime: createDuration, - endTime: createDuration, - startRecur: createMarker, - endRecur: createMarker - }; - var props = refineProps(rawEvent, processors, {}, leftoverProps); - var anyValid = false; - for (var propName in props) { - if (props[propName] != null) { - anyValid = true; - break; - } - } - if (anyValid) { - var duration = null; - if ('duration' in leftoverProps) { - duration = createDuration(leftoverProps.duration); - delete leftoverProps.duration; - } - if (!duration && props.startTime && props.endTime) { - duration = subtractDurations(props.endTime, props.startTime); - } - return { - allDayGuess: Boolean(!props.startTime && !props.endTime), - duration: duration, - typeData: props // doesn't need endTime anymore but oh well - }; - } - return null; - }, - expand: function (typeData, framingRange, dateEnv) { - var clippedFramingRange = intersectRanges(framingRange, { start: typeData.startRecur, end: typeData.endRecur }); - if (clippedFramingRange) { - return expandRanges(typeData.daysOfWeek, typeData.startTime, clippedFramingRange, dateEnv); - } - else { - return []; - } - } -}; -var SimpleRecurrencePlugin = createPlugin({ - recurringTypes: [recurring] -}); -function expandRanges(daysOfWeek, startTime, framingRange, dateEnv) { - var dowHash = daysOfWeek ? arrayToHash(daysOfWeek) : null; - var dayMarker = startOfDay(framingRange.start); - var endMarker = framingRange.end; - var instanceStarts = []; - while (dayMarker < endMarker) { - var instanceStart - // if everyday, or this particular day-of-week - = void 0; - // if everyday, or this particular day-of-week - if (!dowHash || dowHash[dayMarker.getUTCDay()]) { - if (startTime) { - instanceStart = dateEnv.add(dayMarker, startTime); - } - else { - instanceStart = dayMarker; - } - instanceStarts.push(instanceStart); - } - dayMarker = addDays(dayMarker, 1); - } - return instanceStarts; -} - -var DefaultOptionChangeHandlers = createPlugin({ - optionChangeHandlers: { - events: function (events, calendar, deepEqual) { - handleEventSources([events], calendar, deepEqual); - }, - eventSources: handleEventSources, - plugins: handlePlugins - } -}); -function handleEventSources(inputs, calendar, deepEqual) { - var unfoundSources = hashValuesToArray(calendar.state.eventSources); - var newInputs = []; - for (var _i = 0, inputs_1 = inputs; _i < inputs_1.length; _i++) { - var input = inputs_1[_i]; - var inputFound = false; - for (var i = 0; i < unfoundSources.length; i++) { - if (deepEqual(unfoundSources[i]._raw, input)) { - unfoundSources.splice(i, 1); // delete - inputFound = true; - break; - } - } - if (!inputFound) { - newInputs.push(input); - } - } - for (var _a = 0, unfoundSources_1 = unfoundSources; _a < unfoundSources_1.length; _a++) { - var unfoundSource = unfoundSources_1[_a]; - calendar.dispatch({ - type: 'REMOVE_EVENT_SOURCE', - sourceId: unfoundSource.sourceId - }); - } - for (var _b = 0, newInputs_1 = newInputs; _b < newInputs_1.length; _b++) { - var newInput = newInputs_1[_b]; - calendar.addEventSource(newInput); - } -} -// shortcoming: won't remove plugins -function handlePlugins(inputs, calendar) { - calendar.addPluginInputs(inputs); // will gracefully handle duplicates -} - -var config = {}; // TODO: make these options -var globalDefaults = { - defaultRangeSeparator: ' - ', - titleRangeSeparator: ' \u2013 ', - defaultTimedEventDuration: '01:00:00', - defaultAllDayEventDuration: { day: 1 }, - forceEventDuration: false, - nextDayThreshold: '00:00:00', - // display - columnHeader: true, - defaultView: '', - aspectRatio: 1.35, - header: { - left: 'title', - center: '', - right: 'today prev,next' - }, - weekends: true, - weekNumbers: false, - weekNumberCalculation: 'local', - editable: false, - // nowIndicator: false, - scrollTime: '06:00:00', - minTime: '00:00:00', - maxTime: '24:00:00', - showNonCurrentDates: true, - // event ajax - lazyFetching: true, - startParam: 'start', - endParam: 'end', - timeZoneParam: 'timeZone', - timeZone: 'local', - // allDayDefault: undefined, - // locale - locales: [], - locale: '', - // dir: will get this from the default locale - // buttonIcons: null, - // allows setting a min-height to the event segment to prevent short events overlapping each other - timeGridEventMinHeight: 0, - themeSystem: 'standard', - // eventResizableFromStart: false, - dragRevertDuration: 500, - dragScroll: true, - allDayMaintainDuration: false, - // selectable: false, - unselectAuto: true, - // selectMinDistance: 0, - dropAccept: '*', - eventOrder: 'start,-duration,allDay,title', - // ^ if start tie, longer events go before shorter. final tie-breaker is title text - // rerenderDelay: null, - eventLimit: false, - eventLimitClick: 'popover', - dayPopoverFormat: { month: 'long', day: 'numeric', year: 'numeric' }, - handleWindowResize: true, - windowResizeDelay: 100, - longPressDelay: 1000, - eventDragMinDistance: 5 // only applies to mouse -}; -var rtlDefaults = { - header: { - left: 'next,prev today', - center: '', - right: 'title' - }, - buttonIcons: { - // TODO: make RTL support the responibility of the theme - prev: 'fc-icon-chevron-right', - next: 'fc-icon-chevron-left', - prevYear: 'fc-icon-chevrons-right', - nextYear: 'fc-icon-chevrons-left' - } -}; -var complexOptions = [ - 'header', - 'footer', - 'buttonText', - 'buttonIcons' -]; -// Merges an array of option objects into a single object -function mergeOptions(optionObjs) { - return mergeProps(optionObjs, complexOptions); -} -// TODO: move this stuff to a "plugin"-related file... -var INTERNAL_PLUGINS = [ - ArrayEventSourcePlugin, - FuncEventSourcePlugin, - JsonFeedEventSourcePlugin, - SimpleRecurrencePlugin, - DefaultOptionChangeHandlers -]; -function refinePluginDefs(pluginInputs) { - var plugins = []; - for (var _i = 0, pluginInputs_1 = pluginInputs; _i < pluginInputs_1.length; _i++) { - var pluginInput = pluginInputs_1[_i]; - if (typeof pluginInput === 'string') { - var globalName = 'FullCalendar' + capitaliseFirstLetter(pluginInput); - if (!window[globalName]) { - console.warn('Plugin file not loaded for ' + pluginInput); - } - else { - plugins.push(window[globalName].default); // is an ES6 module - } - } - else { - plugins.push(pluginInput); - } - } - return INTERNAL_PLUGINS.concat(plugins); -} - -var RAW_EN_LOCALE = { - code: 'en', - week: { - dow: 0, - doy: 4 // 4 days need to be within the year to be considered the first week - }, - dir: 'ltr', - buttonText: { - prev: 'prev', - next: 'next', - prevYear: 'prev year', - nextYear: 'next year', - year: 'year', - today: 'today', - month: 'month', - week: 'week', - day: 'day', - list: 'list' - }, - weekLabel: 'W', - allDayText: 'all-day', - eventLimitText: 'more', - noEventsMessage: 'No events to display' -}; -function parseRawLocales(explicitRawLocales) { - var defaultCode = explicitRawLocales.length > 0 ? explicitRawLocales[0].code : 'en'; - var globalArray = window['FullCalendarLocalesAll'] || []; // from locales-all.js - var globalObject = window['FullCalendarLocales'] || {}; // from locales/*.js. keys are meaningless - var allRawLocales = globalArray.concat(// globalArray is low prio - hashValuesToArray(globalObject), // medium prio - explicitRawLocales // highest prio - ); - var rawLocaleMap = { - en: RAW_EN_LOCALE // necessary? - }; - for (var _i = 0, allRawLocales_1 = allRawLocales; _i < allRawLocales_1.length; _i++) { - var rawLocale = allRawLocales_1[_i]; - rawLocaleMap[rawLocale.code] = rawLocale; - } - return { - map: rawLocaleMap, - defaultCode: defaultCode - }; -} -function buildLocale(inputSingular, available) { - if (typeof inputSingular === 'object' && !Array.isArray(inputSingular)) { - return parseLocale(inputSingular.code, [inputSingular.code], inputSingular); - } - else { - return queryLocale(inputSingular, available); - } -} -function queryLocale(codeArg, available) { - var codes = [].concat(codeArg || []); // will convert to array - var raw = queryRawLocale(codes, available) || RAW_EN_LOCALE; - return parseLocale(codeArg, codes, raw); -} -function queryRawLocale(codes, available) { - for (var i = 0; i < codes.length; i++) { - var parts = codes[i].toLocaleLowerCase().split('-'); - for (var j = parts.length; j > 0; j--) { - var simpleId = parts.slice(0, j).join('-'); - if (available[simpleId]) { - return available[simpleId]; - } - } - } - return null; -} -function parseLocale(codeArg, codes, raw) { - var merged = mergeProps([RAW_EN_LOCALE, raw], ['buttonText']); - delete merged.code; // don't want this part of the options - var week = merged.week; - delete merged.week; - return { - codeArg: codeArg, - codes: codes, - week: week, - simpleNumberFormat: new Intl.NumberFormat(codeArg), - options: merged - }; -} - -var OptionsManager = /** @class */ (function () { - function OptionsManager(overrides) { - this.overrides = __assign({}, overrides); // make a copy - this.dynamicOverrides = {}; - this.compute(); - } - OptionsManager.prototype.mutate = function (updates, removals, isDynamic) { - var overrideHash = isDynamic ? this.dynamicOverrides : this.overrides; - __assign(overrideHash, updates); - for (var _i = 0, removals_1 = removals; _i < removals_1.length; _i++) { - var propName = removals_1[_i]; - delete overrideHash[propName]; - } - this.compute(); - }; - // Computes the flattened options hash for the calendar and assigns to `this.options`. - // Assumes this.overrides and this.dynamicOverrides have already been initialized. - OptionsManager.prototype.compute = function () { - // TODO: not a very efficient system - var locales = firstDefined(// explicit locale option given? - this.dynamicOverrides.locales, this.overrides.locales, globalDefaults.locales); - var locale = firstDefined(// explicit locales option given? - this.dynamicOverrides.locale, this.overrides.locale, globalDefaults.locale); - var available = parseRawLocales(locales); - var localeDefaults = buildLocale(locale || available.defaultCode, available.map).options; - var dir = firstDefined(// based on options computed so far, is direction RTL? - this.dynamicOverrides.dir, this.overrides.dir, localeDefaults.dir); - var dirDefaults = dir === 'rtl' ? rtlDefaults : {}; - this.dirDefaults = dirDefaults; - this.localeDefaults = localeDefaults; - this.computed = mergeOptions([ - globalDefaults, - dirDefaults, - localeDefaults, - this.overrides, - this.dynamicOverrides - ]); - }; - return OptionsManager; -}()); - -var calendarSystemClassMap = {}; -function registerCalendarSystem(name, theClass) { - calendarSystemClassMap[name] = theClass; -} -function createCalendarSystem(name) { - return new calendarSystemClassMap[name](); -} -var GregorianCalendarSystem = /** @class */ (function () { - function GregorianCalendarSystem() { - } - GregorianCalendarSystem.prototype.getMarkerYear = function (d) { - return d.getUTCFullYear(); - }; - GregorianCalendarSystem.prototype.getMarkerMonth = function (d) { - return d.getUTCMonth(); - }; - GregorianCalendarSystem.prototype.getMarkerDay = function (d) { - return d.getUTCDate(); - }; - GregorianCalendarSystem.prototype.arrayToMarker = function (arr) { - return arrayToUtcDate(arr); - }; - GregorianCalendarSystem.prototype.markerToArray = function (marker) { - return dateToUtcArray(marker); - }; - return GregorianCalendarSystem; -}()); -registerCalendarSystem('gregory', GregorianCalendarSystem); - -var ISO_RE = /^\s*(\d{4})(-(\d{2})(-(\d{2})([T ](\d{2}):(\d{2})(:(\d{2})(\.(\d+))?)?(Z|(([-+])(\d{2})(:?(\d{2}))?))?)?)?)?$/; -function parse(str) { - var m = ISO_RE.exec(str); - if (m) { - var marker = new Date(Date.UTC(Number(m[1]), m[3] ? Number(m[3]) - 1 : 0, Number(m[5] || 1), Number(m[7] || 0), Number(m[8] || 0), Number(m[10] || 0), m[12] ? Number('0.' + m[12]) * 1000 : 0)); - if (isValidDate(marker)) { - var timeZoneOffset = null; - if (m[13]) { - timeZoneOffset = (m[15] === '-' ? -1 : 1) * (Number(m[16] || 0) * 60 + - Number(m[18] || 0)); - } - return { - marker: marker, - isTimeUnspecified: !m[6], - timeZoneOffset: timeZoneOffset - }; - } - } - return null; -} - -var DateEnv = /** @class */ (function () { - function DateEnv(settings) { - var timeZone = this.timeZone = settings.timeZone; - var isNamedTimeZone = timeZone !== 'local' && timeZone !== 'UTC'; - if (settings.namedTimeZoneImpl && isNamedTimeZone) { - this.namedTimeZoneImpl = new settings.namedTimeZoneImpl(timeZone); - } - this.canComputeOffset = Boolean(!isNamedTimeZone || this.namedTimeZoneImpl); - this.calendarSystem = createCalendarSystem(settings.calendarSystem); - this.locale = settings.locale; - this.weekDow = settings.locale.week.dow; - this.weekDoy = settings.locale.week.doy; - if (settings.weekNumberCalculation === 'ISO') { - this.weekDow = 1; - this.weekDoy = 4; - } - if (typeof settings.firstDay === 'number') { - this.weekDow = settings.firstDay; - } - if (typeof settings.weekNumberCalculation === 'function') { - this.weekNumberFunc = settings.weekNumberCalculation; - } - this.weekLabel = settings.weekLabel != null ? settings.weekLabel : settings.locale.options.weekLabel; - this.cmdFormatter = settings.cmdFormatter; - } - // Creating / Parsing - DateEnv.prototype.createMarker = function (input) { - var meta = this.createMarkerMeta(input); - if (meta === null) { - return null; - } - return meta.marker; - }; - DateEnv.prototype.createNowMarker = function () { - if (this.canComputeOffset) { - return this.timestampToMarker(new Date().valueOf()); - } - else { - // if we can't compute the current date val for a timezone, - // better to give the current local date vals than UTC - return arrayToUtcDate(dateToLocalArray(new Date())); - } - }; - DateEnv.prototype.createMarkerMeta = function (input) { - if (typeof input === 'string') { - return this.parse(input); - } - var marker = null; - if (typeof input === 'number') { - marker = this.timestampToMarker(input); - } - else if (input instanceof Date) { - input = input.valueOf(); - if (!isNaN(input)) { - marker = this.timestampToMarker(input); - } - } - else if (Array.isArray(input)) { - marker = arrayToUtcDate(input); - } - if (marker === null || !isValidDate(marker)) { - return null; - } - return { marker: marker, isTimeUnspecified: false, forcedTzo: null }; - }; - DateEnv.prototype.parse = function (s) { - var parts = parse(s); - if (parts === null) { - return null; - } - var marker = parts.marker; - var forcedTzo = null; - if (parts.timeZoneOffset !== null) { - if (this.canComputeOffset) { - marker = this.timestampToMarker(marker.valueOf() - parts.timeZoneOffset * 60 * 1000); - } - else { - forcedTzo = parts.timeZoneOffset; - } - } - return { marker: marker, isTimeUnspecified: parts.isTimeUnspecified, forcedTzo: forcedTzo }; - }; - // Accessors - DateEnv.prototype.getYear = function (marker) { - return this.calendarSystem.getMarkerYear(marker); - }; - DateEnv.prototype.getMonth = function (marker) { - return this.calendarSystem.getMarkerMonth(marker); - }; - // Adding / Subtracting - DateEnv.prototype.add = function (marker, dur) { - var a = this.calendarSystem.markerToArray(marker); - a[0] += dur.years; - a[1] += dur.months; - a[2] += dur.days; - a[6] += dur.milliseconds; - return this.calendarSystem.arrayToMarker(a); - }; - DateEnv.prototype.subtract = function (marker, dur) { - var a = this.calendarSystem.markerToArray(marker); - a[0] -= dur.years; - a[1] -= dur.months; - a[2] -= dur.days; - a[6] -= dur.milliseconds; - return this.calendarSystem.arrayToMarker(a); - }; - DateEnv.prototype.addYears = function (marker, n) { - var a = this.calendarSystem.markerToArray(marker); - a[0] += n; - return this.calendarSystem.arrayToMarker(a); - }; - DateEnv.prototype.addMonths = function (marker, n) { - var a = this.calendarSystem.markerToArray(marker); - a[1] += n; - return this.calendarSystem.arrayToMarker(a); - }; - // Diffing Whole Units - DateEnv.prototype.diffWholeYears = function (m0, m1) { - var calendarSystem = this.calendarSystem; - if (timeAsMs(m0) === timeAsMs(m1) && - calendarSystem.getMarkerDay(m0) === calendarSystem.getMarkerDay(m1) && - calendarSystem.getMarkerMonth(m0) === calendarSystem.getMarkerMonth(m1)) { - return calendarSystem.getMarkerYear(m1) - calendarSystem.getMarkerYear(m0); - } - return null; - }; - DateEnv.prototype.diffWholeMonths = function (m0, m1) { - var calendarSystem = this.calendarSystem; - if (timeAsMs(m0) === timeAsMs(m1) && - calendarSystem.getMarkerDay(m0) === calendarSystem.getMarkerDay(m1)) { - return (calendarSystem.getMarkerMonth(m1) - calendarSystem.getMarkerMonth(m0)) + - (calendarSystem.getMarkerYear(m1) - calendarSystem.getMarkerYear(m0)) * 12; - } - return null; - }; - // Range / Duration - DateEnv.prototype.greatestWholeUnit = function (m0, m1) { - var n = this.diffWholeYears(m0, m1); - if (n !== null) { - return { unit: 'year', value: n }; - } - n = this.diffWholeMonths(m0, m1); - if (n !== null) { - return { unit: 'month', value: n }; - } - n = diffWholeWeeks(m0, m1); - if (n !== null) { - return { unit: 'week', value: n }; - } - n = diffWholeDays(m0, m1); - if (n !== null) { - return { unit: 'day', value: n }; - } - n = diffHours(m0, m1); - if (isInt(n)) { - return { unit: 'hour', value: n }; - } - n = diffMinutes(m0, m1); - if (isInt(n)) { - return { unit: 'minute', value: n }; - } - n = diffSeconds(m0, m1); - if (isInt(n)) { - return { unit: 'second', value: n }; - } - return { unit: 'millisecond', value: m1.valueOf() - m0.valueOf() }; - }; - DateEnv.prototype.countDurationsBetween = function (m0, m1, d) { - // TODO: can use greatestWholeUnit - var diff; - if (d.years) { - diff = this.diffWholeYears(m0, m1); - if (diff !== null) { - return diff / asRoughYears(d); - } - } - if (d.months) { - diff = this.diffWholeMonths(m0, m1); - if (diff !== null) { - return diff / asRoughMonths(d); - } - } - if (d.days) { - diff = diffWholeDays(m0, m1); - if (diff !== null) { - return diff / asRoughDays(d); - } - } - return (m1.valueOf() - m0.valueOf()) / asRoughMs(d); - }; - // Start-Of - DateEnv.prototype.startOf = function (m, unit) { - if (unit === 'year') { - return this.startOfYear(m); - } - else if (unit === 'month') { - return this.startOfMonth(m); - } - else if (unit === 'week') { - return this.startOfWeek(m); - } - else if (unit === 'day') { - return startOfDay(m); - } - else if (unit === 'hour') { - return startOfHour(m); - } - else if (unit === 'minute') { - return startOfMinute(m); - } - else if (unit === 'second') { - return startOfSecond(m); - } - }; - DateEnv.prototype.startOfYear = function (m) { - return this.calendarSystem.arrayToMarker([ - this.calendarSystem.getMarkerYear(m) - ]); - }; - DateEnv.prototype.startOfMonth = function (m) { - return this.calendarSystem.arrayToMarker([ - this.calendarSystem.getMarkerYear(m), - this.calendarSystem.getMarkerMonth(m) - ]); - }; - DateEnv.prototype.startOfWeek = function (m) { - return this.calendarSystem.arrayToMarker([ - this.calendarSystem.getMarkerYear(m), - this.calendarSystem.getMarkerMonth(m), - m.getUTCDate() - ((m.getUTCDay() - this.weekDow + 7) % 7) - ]); - }; - // Week Number - DateEnv.prototype.computeWeekNumber = function (marker) { - if (this.weekNumberFunc) { - return this.weekNumberFunc(this.toDate(marker)); - } - else { - return weekOfYear(marker, this.weekDow, this.weekDoy); - } - }; - // TODO: choke on timeZoneName: long - DateEnv.prototype.format = function (marker, formatter, dateOptions) { - if (dateOptions === void 0) { dateOptions = {}; } - return formatter.format({ - marker: marker, - timeZoneOffset: dateOptions.forcedTzo != null ? - dateOptions.forcedTzo : - this.offsetForMarker(marker) - }, this); - }; - DateEnv.prototype.formatRange = function (start, end, formatter, dateOptions) { - if (dateOptions === void 0) { dateOptions = {}; } - if (dateOptions.isEndExclusive) { - end = addMs(end, -1); - } - return formatter.formatRange({ - marker: start, - timeZoneOffset: dateOptions.forcedStartTzo != null ? - dateOptions.forcedStartTzo : - this.offsetForMarker(start) - }, { - marker: end, - timeZoneOffset: dateOptions.forcedEndTzo != null ? - dateOptions.forcedEndTzo : - this.offsetForMarker(end) - }, this); - }; - DateEnv.prototype.formatIso = function (marker, extraOptions) { - if (extraOptions === void 0) { extraOptions = {}; } - var timeZoneOffset = null; - if (!extraOptions.omitTimeZoneOffset) { - if (extraOptions.forcedTzo != null) { - timeZoneOffset = extraOptions.forcedTzo; - } - else { - timeZoneOffset = this.offsetForMarker(marker); - } - } - return buildIsoString(marker, timeZoneOffset, extraOptions.omitTime); - }; - // TimeZone - DateEnv.prototype.timestampToMarker = function (ms) { - if (this.timeZone === 'local') { - return arrayToUtcDate(dateToLocalArray(new Date(ms))); - } - else if (this.timeZone === 'UTC' || !this.namedTimeZoneImpl) { - return new Date(ms); - } - else { - return arrayToUtcDate(this.namedTimeZoneImpl.timestampToArray(ms)); - } - }; - DateEnv.prototype.offsetForMarker = function (m) { - if (this.timeZone === 'local') { - return -arrayToLocalDate(dateToUtcArray(m)).getTimezoneOffset(); // convert "inverse" offset to "normal" offset - } - else if (this.timeZone === 'UTC') { - return 0; - } - else if (this.namedTimeZoneImpl) { - return this.namedTimeZoneImpl.offsetForArray(dateToUtcArray(m)); - } - return null; - }; - // Conversion - DateEnv.prototype.toDate = function (m, forcedTzo) { - if (this.timeZone === 'local') { - return arrayToLocalDate(dateToUtcArray(m)); - } - else if (this.timeZone === 'UTC') { - return new Date(m.valueOf()); // make sure it's a copy - } - else if (!this.namedTimeZoneImpl) { - return new Date(m.valueOf() - (forcedTzo || 0)); - } - else { - return new Date(m.valueOf() - - this.namedTimeZoneImpl.offsetForArray(dateToUtcArray(m)) * 1000 * 60 // convert minutes -> ms - ); - } - }; - return DateEnv; -}()); - -var SIMPLE_SOURCE_PROPS = { - id: String, - allDayDefault: Boolean, - eventDataTransform: Function, - success: Function, - failure: Function -}; -var uid$2 = 0; -function doesSourceNeedRange(eventSource, calendar) { - var defs = calendar.pluginSystem.hooks.eventSourceDefs; - return !defs[eventSource.sourceDefId].ignoreRange; -} -function parseEventSource(raw, calendar) { - var defs = calendar.pluginSystem.hooks.eventSourceDefs; - for (var i = defs.length - 1; i >= 0; i--) { // later-added plugins take precedence - var def = defs[i]; - var meta = def.parseMeta(raw); - if (meta) { - var res = parseEventSourceProps(typeof raw === 'object' ? raw : {}, meta, i, calendar); - res._raw = raw; - return res; - } - } - return null; -} -function parseEventSourceProps(raw, meta, sourceDefId, calendar) { - var leftovers0 = {}; - var props = refineProps(raw, SIMPLE_SOURCE_PROPS, {}, leftovers0); - var leftovers1 = {}; - var ui = processUnscopedUiProps(leftovers0, calendar, leftovers1); - props.isFetching = false; - props.latestFetchId = ''; - props.fetchRange = null; - props.publicId = String(raw.id || ''); - props.sourceId = String(uid$2++); - props.sourceDefId = sourceDefId; - props.meta = meta; - props.ui = ui; - props.extendedProps = leftovers1; - return props; -} - -function reduceEventSources (eventSources, action, dateProfile, calendar) { - switch (action.type) { - case 'ADD_EVENT_SOURCES': // already parsed - return addSources(eventSources, action.sources, dateProfile ? dateProfile.activeRange : null, calendar); - case 'REMOVE_EVENT_SOURCE': - return removeSource(eventSources, action.sourceId); - case 'PREV': // TODO: how do we track all actions that affect dateProfile :( - case 'NEXT': - case 'SET_DATE': - case 'SET_VIEW_TYPE': - if (dateProfile) { - return fetchDirtySources(eventSources, dateProfile.activeRange, calendar); - } - else { - return eventSources; - } - case 'FETCH_EVENT_SOURCES': - case 'CHANGE_TIMEZONE': - return fetchSourcesByIds(eventSources, action.sourceIds ? - arrayToHash(action.sourceIds) : - excludeStaticSources(eventSources, calendar), dateProfile ? dateProfile.activeRange : null, calendar); - case 'RECEIVE_EVENTS': - case 'RECEIVE_EVENT_ERROR': - return receiveResponse(eventSources, action.sourceId, action.fetchId, action.fetchRange); - case 'REMOVE_ALL_EVENT_SOURCES': - return {}; - default: - return eventSources; - } -} -var uid$3 = 0; -function addSources(eventSourceHash, sources, fetchRange, calendar) { - var hash = {}; - for (var _i = 0, sources_1 = sources; _i < sources_1.length; _i++) { - var source = sources_1[_i]; - hash[source.sourceId] = source; - } - if (fetchRange) { - hash = fetchDirtySources(hash, fetchRange, calendar); - } - return __assign({}, eventSourceHash, hash); -} -function removeSource(eventSourceHash, sourceId) { - return filterHash(eventSourceHash, function (eventSource) { - return eventSource.sourceId !== sourceId; - }); -} -function fetchDirtySources(sourceHash, fetchRange, calendar) { - return fetchSourcesByIds(sourceHash, filterHash(sourceHash, function (eventSource) { - return isSourceDirty(eventSource, fetchRange, calendar); - }), fetchRange, calendar); -} -function isSourceDirty(eventSource, fetchRange, calendar) { - if (!doesSourceNeedRange(eventSource, calendar)) { - return !eventSource.latestFetchId; - } - else { - return !calendar.opt('lazyFetching') || - !eventSource.fetchRange || - fetchRange.start < eventSource.fetchRange.start || - fetchRange.end > eventSource.fetchRange.end; - } -} -function fetchSourcesByIds(prevSources, sourceIdHash, fetchRange, calendar) { - var nextSources = {}; - for (var sourceId in prevSources) { - var source = prevSources[sourceId]; - if (sourceIdHash[sourceId]) { - nextSources[sourceId] = fetchSource(source, fetchRange, calendar); - } - else { - nextSources[sourceId] = source; - } - } - return nextSources; -} -function fetchSource(eventSource, fetchRange, calendar) { - var sourceDef = calendar.pluginSystem.hooks.eventSourceDefs[eventSource.sourceDefId]; - var fetchId = String(uid$3++); - sourceDef.fetch({ - eventSource: eventSource, - calendar: calendar, - range: fetchRange - }, function (res) { - var rawEvents = res.rawEvents; - var calSuccess = calendar.opt('eventSourceSuccess'); - var calSuccessRes; - var sourceSuccessRes; - if (eventSource.success) { - sourceSuccessRes = eventSource.success(rawEvents, res.xhr); - } - if (calSuccess) { - calSuccessRes = calSuccess(rawEvents, res.xhr); - } - rawEvents = sourceSuccessRes || calSuccessRes || rawEvents; - calendar.dispatch({ - type: 'RECEIVE_EVENTS', - sourceId: eventSource.sourceId, - fetchId: fetchId, - fetchRange: fetchRange, - rawEvents: rawEvents - }); - }, function (error) { - var callFailure = calendar.opt('eventSourceFailure'); - console.warn(error.message, error); - if (eventSource.failure) { - eventSource.failure(error); - } - if (callFailure) { - callFailure(error); - } - calendar.dispatch({ - type: 'RECEIVE_EVENT_ERROR', - sourceId: eventSource.sourceId, - fetchId: fetchId, - fetchRange: fetchRange, - error: error - }); - }); - return __assign({}, eventSource, { isFetching: true, latestFetchId: fetchId }); -} -function receiveResponse(sourceHash, sourceId, fetchId, fetchRange) { - var _a; - var eventSource = sourceHash[sourceId]; - if (eventSource && // not already removed - fetchId === eventSource.latestFetchId) { - return __assign({}, sourceHash, (_a = {}, _a[sourceId] = __assign({}, eventSource, { isFetching: false, fetchRange: fetchRange }), _a)); - } - return sourceHash; -} -function excludeStaticSources(eventSources, calendar) { - return filterHash(eventSources, function (eventSource) { - return doesSourceNeedRange(eventSource, calendar); - }); -} - -var DateProfileGenerator = /** @class */ (function () { - function DateProfileGenerator(viewSpec, calendar) { - this.viewSpec = viewSpec; - this.options = viewSpec.options; - this.dateEnv = calendar.dateEnv; - this.calendar = calendar; - this.initHiddenDays(); - } - /* Date Range Computation - ------------------------------------------------------------------------------------------------------------------*/ - // Builds a structure with info about what the dates/ranges will be for the "prev" view. - DateProfileGenerator.prototype.buildPrev = function (currentDateProfile, currentDate) { - var dateEnv = this.dateEnv; - var prevDate = dateEnv.subtract(dateEnv.startOf(currentDate, currentDateProfile.currentRangeUnit), // important for start-of-month - currentDateProfile.dateIncrement); - return this.build(prevDate, -1); - }; - // Builds a structure with info about what the dates/ranges will be for the "next" view. - DateProfileGenerator.prototype.buildNext = function (currentDateProfile, currentDate) { - var dateEnv = this.dateEnv; - var nextDate = dateEnv.add(dateEnv.startOf(currentDate, currentDateProfile.currentRangeUnit), // important for start-of-month - currentDateProfile.dateIncrement); - return this.build(nextDate, 1); - }; - // Builds a structure holding dates/ranges for rendering around the given date. - // Optional direction param indicates whether the date is being incremented/decremented - // from its previous value. decremented = -1, incremented = 1 (default). - DateProfileGenerator.prototype.build = function (currentDate, direction, forceToValid) { - if (forceToValid === void 0) { forceToValid = false; } - var validRange; - var minTime = null; - var maxTime = null; - var currentInfo; - var isRangeAllDay; - var renderRange; - var activeRange; - var isValid; - validRange = this.buildValidRange(); - validRange = this.trimHiddenDays(validRange); - if (forceToValid) { - currentDate = constrainMarkerToRange(currentDate, validRange); - } - currentInfo = this.buildCurrentRangeInfo(currentDate, direction); - isRangeAllDay = /^(year|month|week|day)$/.test(currentInfo.unit); - renderRange = this.buildRenderRange(this.trimHiddenDays(currentInfo.range), currentInfo.unit, isRangeAllDay); - renderRange = this.trimHiddenDays(renderRange); - activeRange = renderRange; - if (!this.options.showNonCurrentDates) { - activeRange = intersectRanges(activeRange, currentInfo.range); - } - minTime = createDuration(this.options.minTime); - maxTime = createDuration(this.options.maxTime); - activeRange = this.adjustActiveRange(activeRange, minTime, maxTime); - activeRange = intersectRanges(activeRange, validRange); // might return null - // it's invalid if the originally requested date is not contained, - // or if the range is completely outside of the valid range. - isValid = rangesIntersect(currentInfo.range, validRange); - return { - // constraint for where prev/next operations can go and where events can be dragged/resized to. - // an object with optional start and end properties. - validRange: validRange, - // range the view is formally responsible for. - // for example, a month view might have 1st-31st, excluding padded dates - currentRange: currentInfo.range, - // name of largest unit being displayed, like "month" or "week" - currentRangeUnit: currentInfo.unit, - isRangeAllDay: isRangeAllDay, - // dates that display events and accept drag-n-drop - // will be `null` if no dates accept events - activeRange: activeRange, - // date range with a rendered skeleton - // includes not-active days that need some sort of DOM - renderRange: renderRange, - // Duration object that denotes the first visible time of any given day - minTime: minTime, - // Duration object that denotes the exclusive visible end time of any given day - maxTime: maxTime, - isValid: isValid, - // how far the current date will move for a prev/next operation - dateIncrement: this.buildDateIncrement(currentInfo.duration) - // pass a fallback (might be null) ^ - }; - }; - // Builds an object with optional start/end properties. - // Indicates the minimum/maximum dates to display. - // not responsible for trimming hidden days. - DateProfileGenerator.prototype.buildValidRange = function () { - return this.getRangeOption('validRange', this.calendar.getNow()) || - { start: null, end: null }; // completely open-ended - }; - // Builds a structure with info about the "current" range, the range that is - // highlighted as being the current month for example. - // See build() for a description of `direction`. - // Guaranteed to have `range` and `unit` properties. `duration` is optional. - DateProfileGenerator.prototype.buildCurrentRangeInfo = function (date, direction) { - var _a = this, viewSpec = _a.viewSpec, dateEnv = _a.dateEnv; - var duration = null; - var unit = null; - var range = null; - var dayCount; - if (viewSpec.duration) { - duration = viewSpec.duration; - unit = viewSpec.durationUnit; - range = this.buildRangeFromDuration(date, direction, duration, unit); - } - else if ((dayCount = this.options.dayCount)) { - unit = 'day'; - range = this.buildRangeFromDayCount(date, direction, dayCount); - } - else if ((range = this.buildCustomVisibleRange(date))) { - unit = dateEnv.greatestWholeUnit(range.start, range.end).unit; - } - else { - duration = this.getFallbackDuration(); - unit = greatestDurationDenominator(duration).unit; - range = this.buildRangeFromDuration(date, direction, duration, unit); - } - return { duration: duration, unit: unit, range: range }; - }; - DateProfileGenerator.prototype.getFallbackDuration = function () { - return createDuration({ day: 1 }); - }; - // Returns a new activeRange to have time values (un-ambiguate) - // minTime or maxTime causes the range to expand. - DateProfileGenerator.prototype.adjustActiveRange = function (range, minTime, maxTime) { - var dateEnv = this.dateEnv; - var start = range.start; - var end = range.end; - if (this.viewSpec.class.prototype.usesMinMaxTime) { - // expand active range if minTime is negative (why not when positive?) - if (asRoughDays(minTime) < 0) { - start = startOfDay(start); // necessary? - start = dateEnv.add(start, minTime); - } - // expand active range if maxTime is beyond one day (why not when positive?) - if (asRoughDays(maxTime) > 1) { - end = startOfDay(end); // necessary? - end = addDays(end, -1); - end = dateEnv.add(end, maxTime); - } - } - return { start: start, end: end }; - }; - // Builds the "current" range when it is specified as an explicit duration. - // `unit` is the already-computed greatestDurationDenominator unit of duration. - DateProfileGenerator.prototype.buildRangeFromDuration = function (date, direction, duration, unit) { - var dateEnv = this.dateEnv; - var alignment = this.options.dateAlignment; - var dateIncrementInput; - var dateIncrementDuration; - var start; - var end; - var res; - // compute what the alignment should be - if (!alignment) { - dateIncrementInput = this.options.dateIncrement; - if (dateIncrementInput) { - dateIncrementDuration = createDuration(dateIncrementInput); - // use the smaller of the two units - if (asRoughMs(dateIncrementDuration) < asRoughMs(duration)) { - alignment = greatestDurationDenominator(dateIncrementDuration, !getWeeksFromInput(dateIncrementInput)).unit; - } - else { - alignment = unit; - } - } - else { - alignment = unit; - } - } - // if the view displays a single day or smaller - if (asRoughDays(duration) <= 1) { - if (this.isHiddenDay(start)) { - start = this.skipHiddenDays(start, direction); - start = startOfDay(start); - } - } - function computeRes() { - start = dateEnv.startOf(date, alignment); - end = dateEnv.add(start, duration); - res = { start: start, end: end }; - } - computeRes(); - // if range is completely enveloped by hidden days, go past the hidden days - if (!this.trimHiddenDays(res)) { - date = this.skipHiddenDays(date, direction); - computeRes(); - } - return res; - }; - // Builds the "current" range when a dayCount is specified. - DateProfileGenerator.prototype.buildRangeFromDayCount = function (date, direction, dayCount) { - var dateEnv = this.dateEnv; - var customAlignment = this.options.dateAlignment; - var runningCount = 0; - var start = date; - var end; - if (customAlignment) { - start = dateEnv.startOf(start, customAlignment); - } - start = startOfDay(start); - start = this.skipHiddenDays(start, direction); - end = start; - do { - end = addDays(end, 1); - if (!this.isHiddenDay(end)) { - runningCount++; - } - } while (runningCount < dayCount); - return { start: start, end: end }; - }; - // Builds a normalized range object for the "visible" range, - // which is a way to define the currentRange and activeRange at the same time. - DateProfileGenerator.prototype.buildCustomVisibleRange = function (date) { - var dateEnv = this.dateEnv; - var visibleRange = this.getRangeOption('visibleRange', dateEnv.toDate(date)); - if (visibleRange && (visibleRange.start == null || visibleRange.end == null)) { - return null; - } - return visibleRange; - }; - // Computes the range that will represent the element/cells for *rendering*, - // but which may have voided days/times. - // not responsible for trimming hidden days. - DateProfileGenerator.prototype.buildRenderRange = function (currentRange, currentRangeUnit, isRangeAllDay) { - return currentRange; - }; - // Compute the duration value that should be added/substracted to the current date - // when a prev/next operation happens. - DateProfileGenerator.prototype.buildDateIncrement = function (fallback) { - var dateIncrementInput = this.options.dateIncrement; - var customAlignment; - if (dateIncrementInput) { - return createDuration(dateIncrementInput); - } - else if ((customAlignment = this.options.dateAlignment)) { - return createDuration(1, customAlignment); - } - else if (fallback) { - return fallback; - } - else { - return createDuration({ days: 1 }); - } - }; - // Arguments after name will be forwarded to a hypothetical function value - // WARNING: passed-in arguments will be given to generator functions as-is and can cause side-effects. - // Always clone your objects if you fear mutation. - DateProfileGenerator.prototype.getRangeOption = function (name) { - var otherArgs = []; - for (var _i = 1; _i < arguments.length; _i++) { - otherArgs[_i - 1] = arguments[_i]; - } - var val = this.options[name]; - if (typeof val === 'function') { - val = val.apply(null, otherArgs); - } - if (val) { - val = parseRange(val, this.dateEnv); - } - if (val) { - val = computeVisibleDayRange(val); - } - return val; - }; - /* Hidden Days - ------------------------------------------------------------------------------------------------------------------*/ - // Initializes internal variables related to calculating hidden days-of-week - DateProfileGenerator.prototype.initHiddenDays = function () { - var hiddenDays = this.options.hiddenDays || []; // array of day-of-week indices that are hidden - var isHiddenDayHash = []; // is the day-of-week hidden? (hash with day-of-week-index -> bool) - var dayCnt = 0; - var i; - if (this.options.weekends === false) { - hiddenDays.push(0, 6); // 0=sunday, 6=saturday - } - for (i = 0; i < 7; i++) { - if (!(isHiddenDayHash[i] = hiddenDays.indexOf(i) !== -1)) { - dayCnt++; - } - } - if (!dayCnt) { - throw new Error('invalid hiddenDays'); // all days were hidden? bad. - } - this.isHiddenDayHash = isHiddenDayHash; - }; - // Remove days from the beginning and end of the range that are computed as hidden. - // If the whole range is trimmed off, returns null - DateProfileGenerator.prototype.trimHiddenDays = function (range) { - var start = range.start; - var end = range.end; - if (start) { - start = this.skipHiddenDays(start); - } - if (end) { - end = this.skipHiddenDays(end, -1, true); - } - if (start == null || end == null || start < end) { - return { start: start, end: end }; - } - return null; - }; - // Is the current day hidden? - // `day` is a day-of-week index (0-6), or a Date (used for UTC) - DateProfileGenerator.prototype.isHiddenDay = function (day) { - if (day instanceof Date) { - day = day.getUTCDay(); - } - return this.isHiddenDayHash[day]; - }; - // Incrementing the current day until it is no longer a hidden day, returning a copy. - // DOES NOT CONSIDER validRange! - // If the initial value of `date` is not a hidden day, don't do anything. - // Pass `isExclusive` as `true` if you are dealing with an end date. - // `inc` defaults to `1` (increment one day forward each time) - DateProfileGenerator.prototype.skipHiddenDays = function (date, inc, isExclusive) { - if (inc === void 0) { inc = 1; } - if (isExclusive === void 0) { isExclusive = false; } - while (this.isHiddenDayHash[(date.getUTCDay() + (isExclusive ? inc : 0) + 7) % 7]) { - date = addDays(date, inc); - } - return date; - }; - return DateProfileGenerator; -}()); -// TODO: find a way to avoid comparing DateProfiles. it's tedious -function isDateProfilesEqual(p0, p1) { - return rangesEqual(p0.validRange, p1.validRange) && - rangesEqual(p0.activeRange, p1.activeRange) && - rangesEqual(p0.renderRange, p1.renderRange) && - durationsEqual(p0.minTime, p1.minTime) && - durationsEqual(p0.maxTime, p1.maxTime); - /* - TODO: compare more? - currentRange: DateRange - currentRangeUnit: string - isRangeAllDay: boolean - isValid: boolean - dateIncrement: Duration - */ -} - -function reduce (state, action, calendar) { - var viewType = reduceViewType(state.viewType, action); - var dateProfile = reduceDateProfile(state.dateProfile, action, state.currentDate, viewType, calendar); - var eventSources = reduceEventSources(state.eventSources, action, dateProfile, calendar); - var nextState = __assign({}, state, { viewType: viewType, - dateProfile: dateProfile, currentDate: reduceCurrentDate(state.currentDate, action, dateProfile), eventSources: eventSources, eventStore: reduceEventStore(state.eventStore, action, eventSources, dateProfile, calendar), dateSelection: reduceDateSelection(state.dateSelection, action, calendar), eventSelection: reduceSelectedEvent(state.eventSelection, action), eventDrag: reduceEventDrag(state.eventDrag, action, eventSources, calendar), eventResize: reduceEventResize(state.eventResize, action, eventSources, calendar), eventSourceLoadingLevel: computeLoadingLevel(eventSources), loadingLevel: computeLoadingLevel(eventSources) }); - for (var _i = 0, _a = calendar.pluginSystem.hooks.reducers; _i < _a.length; _i++) { - var reducerFunc = _a[_i]; - nextState = reducerFunc(nextState, action, calendar); - } - // console.log(action.type, nextState) - return nextState; -} -function reduceViewType(currentViewType, action) { - switch (action.type) { - case 'SET_VIEW_TYPE': - return action.viewType; - default: - return currentViewType; - } -} -function reduceDateProfile(currentDateProfile, action, currentDate, viewType, calendar) { - var newDateProfile; - switch (action.type) { - case 'PREV': - newDateProfile = calendar.dateProfileGenerators[viewType].buildPrev(currentDateProfile, currentDate); - break; - case 'NEXT': - newDateProfile = calendar.dateProfileGenerators[viewType].buildNext(currentDateProfile, currentDate); - break; - case 'SET_DATE': - if (!currentDateProfile.activeRange || - !rangeContainsMarker(currentDateProfile.currentRange, action.dateMarker)) { - newDateProfile = calendar.dateProfileGenerators[viewType].build(action.dateMarker, undefined, true // forceToValid - ); - } - break; - case 'SET_VIEW_TYPE': - var generator = calendar.dateProfileGenerators[viewType]; - if (!generator) { - throw new Error(viewType ? - 'The FullCalendar view "' + viewType + '" does not exist. Make sure your plugins are loaded correctly.' : - 'No available FullCalendar view plugins.'); - } - newDateProfile = generator.build(action.dateMarker || currentDate, undefined, true // forceToValid - ); - break; - } - if (newDateProfile && - newDateProfile.isValid && - !(currentDateProfile && isDateProfilesEqual(currentDateProfile, newDateProfile))) { - return newDateProfile; - } - else { - return currentDateProfile; - } -} -function reduceCurrentDate(currentDate, action, dateProfile) { - switch (action.type) { - case 'PREV': - case 'NEXT': - if (!rangeContainsMarker(dateProfile.currentRange, currentDate)) { - return dateProfile.currentRange.start; - } - else { - return currentDate; - } - case 'SET_DATE': - case 'SET_VIEW_TYPE': - var newDate = action.dateMarker || currentDate; - if (dateProfile.activeRange && !rangeContainsMarker(dateProfile.activeRange, newDate)) { - return dateProfile.currentRange.start; - } - else { - return newDate; - } - default: - return currentDate; - } -} -function reduceDateSelection(currentSelection, action, calendar) { - switch (action.type) { - case 'SELECT_DATES': - return action.selection; - case 'UNSELECT_DATES': - return null; - default: - return currentSelection; - } -} -function reduceSelectedEvent(currentInstanceId, action) { - switch (action.type) { - case 'SELECT_EVENT': - return action.eventInstanceId; - case 'UNSELECT_EVENT': - return ''; - default: - return currentInstanceId; - } -} -function reduceEventDrag(currentDrag, action, sources, calendar) { - switch (action.type) { - case 'SET_EVENT_DRAG': - var newDrag = action.state; - return { - affectedEvents: newDrag.affectedEvents, - mutatedEvents: newDrag.mutatedEvents, - isEvent: newDrag.isEvent, - origSeg: newDrag.origSeg - }; - case 'UNSET_EVENT_DRAG': - return null; - default: - return currentDrag; - } -} -function reduceEventResize(currentResize, action, sources, calendar) { - switch (action.type) { - case 'SET_EVENT_RESIZE': - var newResize = action.state; - return { - affectedEvents: newResize.affectedEvents, - mutatedEvents: newResize.mutatedEvents, - isEvent: newResize.isEvent, - origSeg: newResize.origSeg - }; - case 'UNSET_EVENT_RESIZE': - return null; - default: - return currentResize; - } -} -function computeLoadingLevel(eventSources) { - var cnt = 0; - for (var sourceId in eventSources) { - if (eventSources[sourceId].isFetching) { - cnt++; - } - } - return cnt; -} - -var STANDARD_PROPS = { - start: null, - end: null, - allDay: Boolean -}; -function parseDateSpan(raw, dateEnv, defaultDuration) { - var span = parseOpenDateSpan(raw, dateEnv); - var range = span.range; - if (!range.start) { - return null; - } - if (!range.end) { - if (defaultDuration == null) { - return null; - } - else { - range.end = dateEnv.add(range.start, defaultDuration); - } - } - return span; -} -/* -TODO: somehow combine with parseRange? -Will return null if the start/end props were present but parsed invalidly. -*/ -function parseOpenDateSpan(raw, dateEnv) { - var leftovers = {}; - var standardProps = refineProps(raw, STANDARD_PROPS, {}, leftovers); - var startMeta = standardProps.start ? dateEnv.createMarkerMeta(standardProps.start) : null; - var endMeta = standardProps.end ? dateEnv.createMarkerMeta(standardProps.end) : null; - var allDay = standardProps.allDay; - if (allDay == null) { - allDay = (startMeta && startMeta.isTimeUnspecified) && - (!endMeta || endMeta.isTimeUnspecified); - } - // use this leftover object as the selection object - leftovers.range = { - start: startMeta ? startMeta.marker : null, - end: endMeta ? endMeta.marker : null - }; - leftovers.allDay = allDay; - return leftovers; -} -function isDateSpansEqual(span0, span1) { - return rangesEqual(span0.range, span1.range) && - span0.allDay === span1.allDay && - isSpanPropsEqual(span0, span1); -} -// the NON-DATE-RELATED props -function isSpanPropsEqual(span0, span1) { - for (var propName in span1) { - if (propName !== 'range' && propName !== 'allDay') { - if (span0[propName] !== span1[propName]) { - return false; - } - } - } - // are there any props that span0 has that span1 DOESN'T have? - // both have range/allDay, so no need to special-case. - for (var propName in span0) { - if (!(propName in span1)) { - return false; - } - } - return true; -} -function buildDateSpanApi(span, dateEnv) { - return { - start: dateEnv.toDate(span.range.start), - end: dateEnv.toDate(span.range.end), - startStr: dateEnv.formatIso(span.range.start, { omitTime: span.allDay }), - endStr: dateEnv.formatIso(span.range.end, { omitTime: span.allDay }), - allDay: span.allDay - }; -} -function buildDatePointApi(span, dateEnv) { - return { - date: dateEnv.toDate(span.range.start), - dateStr: dateEnv.formatIso(span.range.start, { omitTime: span.allDay }), - allDay: span.allDay - }; -} -function fabricateEventRange(dateSpan, eventUiBases, calendar) { - var def = parseEventDef({ editable: false }, '', // sourceId - dateSpan.allDay, true, // hasEnd - calendar); - return { - def: def, - ui: compileEventUi(def, eventUiBases), - instance: createEventInstance(def.defId, dateSpan.range), - range: dateSpan.range, - isStart: true, - isEnd: true - }; -} - -function compileViewDefs(defaultConfigs, overrideConfigs) { - var hash = {}; - var viewType; - for (viewType in defaultConfigs) { - ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs); - } - for (viewType in overrideConfigs) { - ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs); - } - return hash; -} -function ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs) { - if (hash[viewType]) { - return hash[viewType]; - } - var viewDef = buildViewDef(viewType, hash, defaultConfigs, overrideConfigs); - if (viewDef) { - hash[viewType] = viewDef; - } - return viewDef; -} -function buildViewDef(viewType, hash, defaultConfigs, overrideConfigs) { - var defaultConfig = defaultConfigs[viewType]; - var overrideConfig = overrideConfigs[viewType]; - var queryProp = function (name) { - return (defaultConfig && defaultConfig[name] !== null) ? defaultConfig[name] : - ((overrideConfig && overrideConfig[name] !== null) ? overrideConfig[name] : null); - }; - var theClass = queryProp('class'); - var superType = queryProp('superType'); - if (!superType && theClass) { - superType = - findViewNameBySubclass(theClass, overrideConfigs) || - findViewNameBySubclass(theClass, defaultConfigs); - } - var superDef = null; - if (superType) { - if (superType === viewType) { - throw new Error('Can\'t have a custom view type that references itself'); - } - superDef = ensureViewDef(superType, hash, defaultConfigs, overrideConfigs); - } - if (!theClass && superDef) { - theClass = superDef.class; - } - if (!theClass) { - return null; // don't throw a warning, might be settings for a single-unit view - } - return { - type: viewType, - class: theClass, - defaults: __assign({}, (superDef ? superDef.defaults : {}), (defaultConfig ? defaultConfig.options : {})), - overrides: __assign({}, (superDef ? superDef.overrides : {}), (overrideConfig ? overrideConfig.options : {})) - }; -} -function findViewNameBySubclass(viewSubclass, configs) { - var superProto = Object.getPrototypeOf(viewSubclass.prototype); - for (var viewType in configs) { - var parsed = configs[viewType]; - // need DIRECT subclass, so instanceof won't do it - if (parsed.class && parsed.class.prototype === superProto) { - return viewType; - } - } - return ''; -} - -function parseViewConfigs(inputs) { - return mapHash(inputs, parseViewConfig); -} -var VIEW_DEF_PROPS = { - type: String, - class: null -}; -function parseViewConfig(input) { - if (typeof input === 'function') { - input = { class: input }; - } - var options = {}; - var props = refineProps(input, VIEW_DEF_PROPS, {}, options); - return { - superType: props.type, - class: props.class, - options: options - }; -} - -function buildViewSpecs(defaultInputs, optionsManager) { - var defaultConfigs = parseViewConfigs(defaultInputs); - var overrideConfigs = parseViewConfigs(optionsManager.overrides.views); - var viewDefs = compileViewDefs(defaultConfigs, overrideConfigs); - return mapHash(viewDefs, function (viewDef) { - return buildViewSpec(viewDef, overrideConfigs, optionsManager); - }); -} -function buildViewSpec(viewDef, overrideConfigs, optionsManager) { - var durationInput = viewDef.overrides.duration || - viewDef.defaults.duration || - optionsManager.dynamicOverrides.duration || - optionsManager.overrides.duration; - var duration = null; - var durationUnit = ''; - var singleUnit = ''; - var singleUnitOverrides = {}; - if (durationInput) { - duration = createDuration(durationInput); - if (duration) { // valid? - var denom = greatestDurationDenominator(duration, !getWeeksFromInput(durationInput)); - durationUnit = denom.unit; - if (denom.value === 1) { - singleUnit = durationUnit; - singleUnitOverrides = overrideConfigs[durationUnit] ? overrideConfigs[durationUnit].options : {}; - } - } - } - var queryButtonText = function (options) { - var buttonTextMap = options.buttonText || {}; - var buttonTextKey = viewDef.defaults.buttonTextKey; - if (buttonTextKey != null && buttonTextMap[buttonTextKey] != null) { - return buttonTextMap[buttonTextKey]; - } - if (buttonTextMap[viewDef.type] != null) { - return buttonTextMap[viewDef.type]; - } - if (buttonTextMap[singleUnit] != null) { - return buttonTextMap[singleUnit]; - } - }; - return { - type: viewDef.type, - class: viewDef.class, - duration: duration, - durationUnit: durationUnit, - singleUnit: singleUnit, - options: __assign({}, globalDefaults, viewDef.defaults, optionsManager.dirDefaults, optionsManager.localeDefaults, optionsManager.overrides, singleUnitOverrides, viewDef.overrides, optionsManager.dynamicOverrides), - buttonTextOverride: queryButtonText(optionsManager.dynamicOverrides) || - queryButtonText(optionsManager.overrides) || // constructor-specified buttonText lookup hash takes precedence - viewDef.overrides.buttonText, - buttonTextDefault: queryButtonText(optionsManager.localeDefaults) || - queryButtonText(optionsManager.dirDefaults) || - viewDef.defaults.buttonText || - queryButtonText(globalDefaults) || - viewDef.type // fall back to given view name - }; -} - -var Toolbar = /** @class */ (function (_super) { - __extends(Toolbar, _super); - function Toolbar(context, extraClassName) { - var _this = _super.call(this, context) || this; - _this._renderLayout = memoizeRendering(_this.renderLayout, _this.unrenderLayout); - _this._updateTitle = memoizeRendering(_this.updateTitle, null, [_this._renderLayout]); - _this._updateActiveButton = memoizeRendering(_this.updateActiveButton, null, [_this._renderLayout]); - _this._updateToday = memoizeRendering(_this.updateToday, null, [_this._renderLayout]); - _this._updatePrev = memoizeRendering(_this.updatePrev, null, [_this._renderLayout]); - _this._updateNext = memoizeRendering(_this.updateNext, null, [_this._renderLayout]); - _this.el = createElement('div', { className: 'fc-toolbar ' + extraClassName }); - return _this; - } - Toolbar.prototype.destroy = function () { - _super.prototype.destroy.call(this); - this._renderLayout.unrender(); // should unrender everything else - removeElement(this.el); - }; - Toolbar.prototype.render = function (props) { - this._renderLayout(props.layout); - this._updateTitle(props.title); - this._updateActiveButton(props.activeButton); - this._updateToday(props.isTodayEnabled); - this._updatePrev(props.isPrevEnabled); - this._updateNext(props.isNextEnabled); - }; - Toolbar.prototype.renderLayout = function (layout) { - var el = this.el; - this.viewsWithButtons = []; - appendToElement(el, this.renderSection('left', layout.left)); - appendToElement(el, this.renderSection('center', layout.center)); - appendToElement(el, this.renderSection('right', layout.right)); - }; - Toolbar.prototype.unrenderLayout = function () { - this.el.innerHTML = ''; - }; - Toolbar.prototype.renderSection = function (position, buttonStr) { - var _this = this; - var _a = this, theme = _a.theme, calendar = _a.calendar; - var optionsManager = calendar.optionsManager; - var viewSpecs = calendar.viewSpecs; - var sectionEl = createElement('div', { className: 'fc-' + position }); - var calendarCustomButtons = optionsManager.computed.customButtons || {}; - var calendarButtonTextOverrides = optionsManager.overrides.buttonText || {}; - var calendarButtonText = optionsManager.computed.buttonText || {}; - if (buttonStr) { - buttonStr.split(' ').forEach(function (buttonGroupStr, i) { - var groupChildren = []; - var isOnlyButtons = true; - var groupEl; - buttonGroupStr.split(',').forEach(function (buttonName, j) { - var customButtonProps; - var viewSpec; - var buttonClick; - var buttonIcon; // only one of these will be set - var buttonText; // " - var buttonInnerHtml; - var buttonClasses; - var buttonEl; - var buttonAriaAttr; - if (buttonName === 'title') { - groupChildren.push(htmlToElement('

 

')); // we always want it to take up height - isOnlyButtons = false; - } - else { - if ((customButtonProps = calendarCustomButtons[buttonName])) { - buttonClick = function (ev) { - if (customButtonProps.click) { - customButtonProps.click.call(buttonEl, ev); - } - }; - (buttonIcon = theme.getCustomButtonIconClass(customButtonProps)) || - (buttonIcon = theme.getIconClass(buttonName)) || - (buttonText = customButtonProps.text); - } - else if ((viewSpec = viewSpecs[buttonName])) { - _this.viewsWithButtons.push(buttonName); - buttonClick = function () { - calendar.changeView(buttonName); - }; - (buttonText = viewSpec.buttonTextOverride) || - (buttonIcon = theme.getIconClass(buttonName)) || - (buttonText = viewSpec.buttonTextDefault); - } - else if (calendar[buttonName]) { // a calendar method - buttonClick = function () { - calendar[buttonName](); - }; - (buttonText = calendarButtonTextOverrides[buttonName]) || - (buttonIcon = theme.getIconClass(buttonName)) || - (buttonText = calendarButtonText[buttonName]); - // ^ everything else is considered default - } - if (buttonClick) { - buttonClasses = [ - 'fc-' + buttonName + '-button', - theme.getClass('button') - ]; - if (buttonText) { - buttonInnerHtml = htmlEscape(buttonText); - buttonAriaAttr = ''; - } - else if (buttonIcon) { - buttonInnerHtml = ""; - buttonAriaAttr = ' aria-label="' + buttonName + '"'; - } - buttonEl = htmlToElement(// type="button" so that it doesn't submit a form - ''); - buttonEl.addEventListener('click', buttonClick); - groupChildren.push(buttonEl); - } - } - }); - if (groupChildren.length > 1) { - groupEl = document.createElement('div'); - var buttonGroupClassName = theme.getClass('buttonGroup'); - if (isOnlyButtons && buttonGroupClassName) { - groupEl.classList.add(buttonGroupClassName); - } - appendToElement(groupEl, groupChildren); - sectionEl.appendChild(groupEl); - } - else { - appendToElement(sectionEl, groupChildren); // 1 or 0 children - } - }); - } - return sectionEl; - }; - Toolbar.prototype.updateToday = function (isTodayEnabled) { - this.toggleButtonEnabled('today', isTodayEnabled); - }; - Toolbar.prototype.updatePrev = function (isPrevEnabled) { - this.toggleButtonEnabled('prev', isPrevEnabled); - }; - Toolbar.prototype.updateNext = function (isNextEnabled) { - this.toggleButtonEnabled('next', isNextEnabled); - }; - Toolbar.prototype.updateTitle = function (text) { - findElements(this.el, 'h2').forEach(function (titleEl) { - titleEl.innerText = text; - }); - }; - Toolbar.prototype.updateActiveButton = function (buttonName) { - var className = this.theme.getClass('buttonActive'); - findElements(this.el, 'button').forEach(function (buttonEl) { - if (buttonName && buttonEl.classList.contains('fc-' + buttonName + '-button')) { - buttonEl.classList.add(className); - } - else { - buttonEl.classList.remove(className); - } - }); - }; - Toolbar.prototype.toggleButtonEnabled = function (buttonName, bool) { - findElements(this.el, '.fc-' + buttonName + '-button').forEach(function (buttonEl) { - buttonEl.disabled = !bool; - }); - }; - return Toolbar; -}(Component)); - -var CalendarComponent = /** @class */ (function (_super) { - __extends(CalendarComponent, _super); - function CalendarComponent(context, el) { - var _this = _super.call(this, context) || this; - _this._renderToolbars = memoizeRendering(_this.renderToolbars); - _this.buildViewPropTransformers = memoize(buildViewPropTransformers); - _this.el = el; - prependToElement(el, _this.contentEl = createElement('div', { className: 'fc-view-container' })); - var calendar = _this.calendar; - for (var _i = 0, _a = calendar.pluginSystem.hooks.viewContainerModifiers; _i < _a.length; _i++) { - var modifyViewContainer = _a[_i]; - modifyViewContainer(_this.contentEl, calendar); - } - _this.toggleElClassNames(true); - _this.computeTitle = memoize(computeTitle); - _this.parseBusinessHours = memoize(function (input) { - return parseBusinessHours(input, _this.calendar); - }); - return _this; - } - CalendarComponent.prototype.destroy = function () { - if (this.header) { - this.header.destroy(); - } - if (this.footer) { - this.footer.destroy(); - } - if (this.view) { - this.view.destroy(); - } - removeElement(this.contentEl); - this.toggleElClassNames(false); - _super.prototype.destroy.call(this); - }; - CalendarComponent.prototype.toggleElClassNames = function (bool) { - var classList = this.el.classList; - var dirClassName = 'fc-' + this.opt('dir'); - var themeClassName = this.theme.getClass('widget'); - if (bool) { - classList.add('fc'); - classList.add(dirClassName); - classList.add(themeClassName); - } - else { - classList.remove('fc'); - classList.remove(dirClassName); - classList.remove(themeClassName); - } - }; - CalendarComponent.prototype.render = function (props) { - this.freezeHeight(); - var title = this.computeTitle(props.dateProfile, props.viewSpec.options); - this._renderToolbars(props.viewSpec, props.dateProfile, props.currentDate, props.dateProfileGenerator, title); - this.renderView(props, title); - this.updateSize(); - this.thawHeight(); - }; - CalendarComponent.prototype.renderToolbars = function (viewSpec, dateProfile, currentDate, dateProfileGenerator, title) { - var headerLayout = this.opt('header'); - var footerLayout = this.opt('footer'); - var now = this.calendar.getNow(); - var todayInfo = dateProfileGenerator.build(now); - var prevInfo = dateProfileGenerator.buildPrev(dateProfile, currentDate); - var nextInfo = dateProfileGenerator.buildNext(dateProfile, currentDate); - var toolbarProps = { - title: title, - activeButton: viewSpec.type, - isTodayEnabled: todayInfo.isValid && !rangeContainsMarker(dateProfile.currentRange, now), - isPrevEnabled: prevInfo.isValid, - isNextEnabled: nextInfo.isValid - }; - if (headerLayout) { - if (!this.header) { - this.header = new Toolbar(this.context, 'fc-header-toolbar'); - prependToElement(this.el, this.header.el); - } - this.header.receiveProps(__assign({ layout: headerLayout }, toolbarProps)); - } - else if (this.header) { - this.header.destroy(); - this.header = null; - } - if (footerLayout) { - if (!this.footer) { - this.footer = new Toolbar(this.context, 'fc-footer-toolbar'); - appendToElement(this.el, this.footer.el); - } - this.footer.receiveProps(__assign({ layout: footerLayout }, toolbarProps)); - } - else if (this.footer) { - this.footer.destroy(); - this.footer = null; - } - }; - CalendarComponent.prototype.renderView = function (props, title) { - var view = this.view; - var viewSpec = props.viewSpec, dateProfileGenerator = props.dateProfileGenerator; - if (!view || view.viewSpec !== viewSpec) { - if (view) { - view.destroy(); - } - view = this.view = new viewSpec['class']({ - calendar: this.calendar, - view: null, - dateEnv: this.dateEnv, - theme: this.theme, - options: viewSpec.options - }, viewSpec, dateProfileGenerator, this.contentEl); - } - else { - view.addScroll(view.queryScroll()); - } - view.title = title; // for the API - var viewProps = { - dateProfile: props.dateProfile, - businessHours: this.parseBusinessHours(viewSpec.options.businessHours), - eventStore: props.eventStore, - eventUiBases: props.eventUiBases, - dateSelection: props.dateSelection, - eventSelection: props.eventSelection, - eventDrag: props.eventDrag, - eventResize: props.eventResize - }; - var transformers = this.buildViewPropTransformers(this.calendar.pluginSystem.hooks.viewPropsTransformers); - for (var _i = 0, transformers_1 = transformers; _i < transformers_1.length; _i++) { - var transformer = transformers_1[_i]; - __assign(viewProps, transformer.transform(viewProps, viewSpec, props, view)); - } - view.receiveProps(viewProps); - }; - // Sizing - // ----------------------------------------------------------------------------------------------------------------- - CalendarComponent.prototype.updateSize = function (isResize) { - if (isResize === void 0) { isResize = false; } - var view = this.view; - if (isResize) { - view.addScroll(view.queryScroll()); - } - if (isResize || this.isHeightAuto == null) { - this.computeHeightVars(); - } - view.updateSize(isResize, this.viewHeight, this.isHeightAuto); - view.updateNowIndicator(); // we need to guarantee this will run after updateSize - view.popScroll(isResize); - }; - CalendarComponent.prototype.computeHeightVars = function () { - var calendar = this.calendar; // yuck. need to handle dynamic options - var heightInput = calendar.opt('height'); - var contentHeightInput = calendar.opt('contentHeight'); - this.isHeightAuto = heightInput === 'auto' || contentHeightInput === 'auto'; - if (typeof contentHeightInput === 'number') { // exists and not 'auto' - this.viewHeight = contentHeightInput; - } - else if (typeof contentHeightInput === 'function') { // exists and is a function - this.viewHeight = contentHeightInput(); - } - else if (typeof heightInput === 'number') { // exists and not 'auto' - this.viewHeight = heightInput - this.queryToolbarsHeight(); - } - else if (typeof heightInput === 'function') { // exists and is a function - this.viewHeight = heightInput() - this.queryToolbarsHeight(); - } - else if (heightInput === 'parent') { // set to height of parent element - var parentEl = this.el.parentNode; - this.viewHeight = parentEl.getBoundingClientRect().height - this.queryToolbarsHeight(); - } - else { - this.viewHeight = Math.round(this.contentEl.getBoundingClientRect().width / - Math.max(calendar.opt('aspectRatio'), .5)); - } - }; - CalendarComponent.prototype.queryToolbarsHeight = function () { - var height = 0; - if (this.header) { - height += computeHeightAndMargins(this.header.el); - } - if (this.footer) { - height += computeHeightAndMargins(this.footer.el); - } - return height; - }; - // Height "Freezing" - // ----------------------------------------------------------------------------------------------------------------- - CalendarComponent.prototype.freezeHeight = function () { - applyStyle(this.el, { - height: this.el.getBoundingClientRect().height, - overflow: 'hidden' - }); - }; - CalendarComponent.prototype.thawHeight = function () { - applyStyle(this.el, { - height: '', - overflow: '' - }); - }; - return CalendarComponent; -}(Component)); -// Title and Date Formatting -// ----------------------------------------------------------------------------------------------------------------- -// Computes what the title at the top of the calendar should be for this view -function computeTitle(dateProfile, viewOptions) { - var range; - // for views that span a large unit of time, show the proper interval, ignoring stray days before and after - if (/^(year|month)$/.test(dateProfile.currentRangeUnit)) { - range = dateProfile.currentRange; - } - else { // for day units or smaller, use the actual day range - range = dateProfile.activeRange; - } - return this.dateEnv.formatRange(range.start, range.end, createFormatter(viewOptions.titleFormat || computeTitleFormat(dateProfile), viewOptions.titleRangeSeparator), { isEndExclusive: dateProfile.isRangeAllDay }); -} -// Generates the format string that should be used to generate the title for the current date range. -// Attempts to compute the most appropriate format if not explicitly specified with `titleFormat`. -function computeTitleFormat(dateProfile) { - var currentRangeUnit = dateProfile.currentRangeUnit; - if (currentRangeUnit === 'year') { - return { year: 'numeric' }; - } - else if (currentRangeUnit === 'month') { - return { year: 'numeric', month: 'long' }; // like "September 2014" - } - else { - var days = diffWholeDays(dateProfile.currentRange.start, dateProfile.currentRange.end); - if (days !== null && days > 1) { - // multi-day range. shorter, like "Sep 9 - 10 2014" - return { year: 'numeric', month: 'short', day: 'numeric' }; - } - else { - // one day. longer, like "September 9 2014" - return { year: 'numeric', month: 'long', day: 'numeric' }; - } - } -} -// Plugin -// ----------------------------------------------------------------------------------------------------------------- -function buildViewPropTransformers(theClasses) { - return theClasses.map(function (theClass) { - return new theClass(); - }); -} - -var Interaction = /** @class */ (function () { - function Interaction(settings) { - this.component = settings.component; - } - Interaction.prototype.destroy = function () { - }; - return Interaction; -}()); -function parseInteractionSettings(component, input) { - return { - component: component, - el: input.el, - useEventCenter: input.useEventCenter != null ? input.useEventCenter : true - }; -} -function interactionSettingsToStore(settings) { - var _a; - return _a = {}, - _a[settings.component.uid] = settings, - _a; -} -// global state -var interactionSettingsStore = {}; - -/* -Detects when the user clicks on an event within a DateComponent -*/ -var EventClicking = /** @class */ (function (_super) { - __extends(EventClicking, _super); - function EventClicking(settings) { - var _this = _super.call(this, settings) || this; - _this.handleSegClick = function (ev, segEl) { - var component = _this.component; - var seg = getElSeg(segEl); - if (seg && // might be the
surrounding the more link - component.isValidSegDownEl(ev.target)) { - // our way to simulate a link click for elements that can't be tags - // grab before trigger fired in case trigger trashes DOM thru rerendering - var hasUrlContainer = elementClosest(ev.target, '.fc-has-url'); - var url = hasUrlContainer ? hasUrlContainer.querySelector('a[href]').href : ''; - component.publiclyTrigger('eventClick', [ - { - el: segEl, - event: new EventApi(component.calendar, seg.eventRange.def, seg.eventRange.instance), - jsEvent: ev, - view: component.view - } - ]); - if (url && !ev.defaultPrevented) { - window.location.href = url; - } - } - }; - var component = settings.component; - _this.destroy = listenBySelector(component.el, 'click', component.fgSegSelector + ',' + component.bgSegSelector, _this.handleSegClick); - return _this; - } - return EventClicking; -}(Interaction)); - -/* -Triggers events and adds/removes core classNames when the user's pointer -enters/leaves event-elements of a component. -*/ -var EventHovering = /** @class */ (function (_super) { - __extends(EventHovering, _super); - function EventHovering(settings) { - var _this = _super.call(this, settings) || this; - // for simulating an eventMouseLeave when the event el is destroyed while mouse is over it - _this.handleEventElRemove = function (el) { - if (el === _this.currentSegEl) { - _this.handleSegLeave(null, _this.currentSegEl); - } - }; - _this.handleSegEnter = function (ev, segEl) { - if (getElSeg(segEl)) { // TODO: better way to make sure not hovering over more+ link or its wrapper - segEl.classList.add('fc-allow-mouse-resize'); - _this.currentSegEl = segEl; - _this.triggerEvent('eventMouseEnter', ev, segEl); - } - }; - _this.handleSegLeave = function (ev, segEl) { - if (_this.currentSegEl) { - segEl.classList.remove('fc-allow-mouse-resize'); - _this.currentSegEl = null; - _this.triggerEvent('eventMouseLeave', ev, segEl); - } - }; - var component = settings.component; - _this.removeHoverListeners = listenToHoverBySelector(component.el, component.fgSegSelector + ',' + component.bgSegSelector, _this.handleSegEnter, _this.handleSegLeave); - component.calendar.on('eventElRemove', _this.handleEventElRemove); - return _this; - } - EventHovering.prototype.destroy = function () { - this.removeHoverListeners(); - this.component.calendar.off('eventElRemove', this.handleEventElRemove); - }; - EventHovering.prototype.triggerEvent = function (publicEvName, ev, segEl) { - var component = this.component; - var seg = getElSeg(segEl); - if (!ev || component.isValidSegDownEl(ev.target)) { - component.publiclyTrigger(publicEvName, [ - { - el: segEl, - event: new EventApi(this.component.calendar, seg.eventRange.def, seg.eventRange.instance), - jsEvent: ev, - view: component.view - } - ]); - } - }; - return EventHovering; -}(Interaction)); - -var StandardTheme = /** @class */ (function (_super) { - __extends(StandardTheme, _super); - function StandardTheme() { - return _super !== null && _super.apply(this, arguments) || this; - } - return StandardTheme; -}(Theme)); -StandardTheme.prototype.classes = { - widget: 'fc-unthemed', - widgetHeader: 'fc-widget-header', - widgetContent: 'fc-widget-content', - buttonGroup: 'fc-button-group', - button: 'fc-button fc-button-primary', - buttonActive: 'fc-button-active', - popoverHeader: 'fc-widget-header', - popoverContent: 'fc-widget-content', - // day grid - headerRow: 'fc-widget-header', - dayRow: 'fc-widget-content', - // list view - listView: 'fc-widget-content' -}; -StandardTheme.prototype.baseIconClass = 'fc-icon'; -StandardTheme.prototype.iconClasses = { - close: 'fc-icon-x', - prev: 'fc-icon-chevron-left', - next: 'fc-icon-chevron-right', - prevYear: 'fc-icon-chevrons-left', - nextYear: 'fc-icon-chevrons-right' -}; -StandardTheme.prototype.iconOverrideOption = 'buttonIcons'; -StandardTheme.prototype.iconOverrideCustomButtonOption = 'icon'; -StandardTheme.prototype.iconOverridePrefix = 'fc-icon-'; - -var Calendar = /** @class */ (function () { - function Calendar(el, overrides) { - var _this = this; - this.parseRawLocales = memoize(parseRawLocales); - this.buildLocale = memoize(buildLocale); - this.buildDateEnv = memoize(buildDateEnv); - this.buildTheme = memoize(buildTheme); - this.buildEventUiSingleBase = memoize(this._buildEventUiSingleBase); - this.buildSelectionConfig = memoize(this._buildSelectionConfig); - this.buildEventUiBySource = memoizeOutput(buildEventUiBySource, isPropsEqual); - this.buildEventUiBases = memoize(buildEventUiBases); - this.interactionsStore = {}; - this.actionQueue = []; - this.isReducing = false; - // isDisplaying: boolean = false // installed in DOM? accepting renders? - this.needsRerender = false; // needs a render? - this.needsFullRerender = false; - this.isRendering = false; // currently in the executeRender function? - this.renderingPauseDepth = 0; - this.buildDelayedRerender = memoize(buildDelayedRerender); - this.afterSizingTriggers = {}; - this.isViewUpdated = false; - this.isDatesUpdated = false; - this.isEventsUpdated = false; - this.el = el; - this.optionsManager = new OptionsManager(overrides || {}); - this.pluginSystem = new PluginSystem(); - // only do once. don't do in handleOptions. because can't remove plugins - this.addPluginInputs(this.optionsManager.computed.plugins || []); - this.handleOptions(this.optionsManager.computed); - this.publiclyTrigger('_init'); // for tests - this.hydrate(); - this.calendarInteractions = this.pluginSystem.hooks.calendarInteractions - .map(function (calendarInteractionClass) { - return new calendarInteractionClass(_this); - }); - } - Calendar.prototype.addPluginInputs = function (pluginInputs) { - var pluginDefs = refinePluginDefs(pluginInputs); - for (var _i = 0, pluginDefs_1 = pluginDefs; _i < pluginDefs_1.length; _i++) { - var pluginDef = pluginDefs_1[_i]; - this.pluginSystem.add(pluginDef); - } - }; - Object.defineProperty(Calendar.prototype, "view", { - // public API - get: function () { - return this.component ? this.component.view : null; - }, - enumerable: true, - configurable: true - }); - // Public API for rendering - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.render = function () { - if (!this.component) { - this.renderableEventStore = createEmptyEventStore(); - this.bindHandlers(); - this.executeRender(); - } - else { - this.requestRerender(true); - } - }; - Calendar.prototype.destroy = function () { - if (this.component) { - this.unbindHandlers(); - this.component.destroy(); // don't null-out. in case API needs access - this.component = null; // umm ??? - for (var _i = 0, _a = this.calendarInteractions; _i < _a.length; _i++) { - var interaction = _a[_i]; - interaction.destroy(); - } - this.publiclyTrigger('_destroyed'); - } - }; - // Handlers - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.bindHandlers = function () { - var _this = this; - // event delegation for nav links - this.removeNavLinkListener = listenBySelector(this.el, 'click', 'a[data-goto]', function (ev, anchorEl) { - var gotoOptions = anchorEl.getAttribute('data-goto'); - gotoOptions = gotoOptions ? JSON.parse(gotoOptions) : {}; - var dateEnv = _this.dateEnv; - var dateMarker = dateEnv.createMarker(gotoOptions.date); - var viewType = gotoOptions.type; - // property like "navLinkDayClick". might be a string or a function - var customAction = _this.viewOpt('navLink' + capitaliseFirstLetter(viewType) + 'Click'); - if (typeof customAction === 'function') { - customAction(dateEnv.toDate(dateMarker), ev); - } - else { - if (typeof customAction === 'string') { - viewType = customAction; - } - _this.zoomTo(dateMarker, viewType); - } - }); - if (this.opt('handleWindowResize')) { - window.addEventListener('resize', this.windowResizeProxy = debounce(// prevents rapid calls - this.windowResize.bind(this), this.opt('windowResizeDelay'))); - } - }; - Calendar.prototype.unbindHandlers = function () { - this.removeNavLinkListener(); - if (this.windowResizeProxy) { - window.removeEventListener('resize', this.windowResizeProxy); - this.windowResizeProxy = null; - } - }; - // Dispatcher - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.hydrate = function () { - var _this = this; - this.state = this.buildInitialState(); - var rawSources = this.opt('eventSources') || []; - var singleRawSource = this.opt('events'); - var sources = []; // parsed - if (singleRawSource) { - rawSources.unshift(singleRawSource); - } - for (var _i = 0, rawSources_1 = rawSources; _i < rawSources_1.length; _i++) { - var rawSource = rawSources_1[_i]; - var source = parseEventSource(rawSource, this); - if (source) { - sources.push(source); - } - } - this.batchRendering(function () { - _this.dispatch({ type: 'INIT' }); // pass in sources here? - _this.dispatch({ type: 'ADD_EVENT_SOURCES', sources: sources }); - _this.dispatch({ - type: 'SET_VIEW_TYPE', - viewType: _this.opt('defaultView') || _this.pluginSystem.hooks.defaultView - }); - }); - }; - Calendar.prototype.buildInitialState = function () { - return { - viewType: null, - loadingLevel: 0, - eventSourceLoadingLevel: 0, - currentDate: this.getInitialDate(), - dateProfile: null, - eventSources: {}, - eventStore: createEmptyEventStore(), - dateSelection: null, - eventSelection: '', - eventDrag: null, - eventResize: null - }; - }; - Calendar.prototype.dispatch = function (action) { - this.actionQueue.push(action); - if (!this.isReducing) { - this.isReducing = true; - var oldState = this.state; - while (this.actionQueue.length) { - this.state = this.reduce(this.state, this.actionQueue.shift(), this); - } - var newState = this.state; - this.isReducing = false; - if (!oldState.loadingLevel && newState.loadingLevel) { - this.publiclyTrigger('loading', [true]); - } - else if (oldState.loadingLevel && !newState.loadingLevel) { - this.publiclyTrigger('loading', [false]); - } - var view = this.component && this.component.view; - if (oldState.eventStore !== newState.eventStore || this.needsFullRerender) { - if (oldState.eventStore) { - this.isEventsUpdated = true; - } - } - if (oldState.dateProfile !== newState.dateProfile || this.needsFullRerender) { - if (oldState.dateProfile && view) { // why would view be null!? - this.publiclyTrigger('datesDestroy', [ - { - view: view, - el: view.el - } - ]); - } - this.isDatesUpdated = true; - } - if (oldState.viewType !== newState.viewType || this.needsFullRerender) { - if (oldState.viewType && view) { // why would view be null!? - this.publiclyTrigger('viewSkeletonDestroy', [ - { - view: view, - el: view.el - } - ]); - } - this.isViewUpdated = true; - } - this.requestRerender(); - } - }; - Calendar.prototype.reduce = function (state, action, calendar) { - return reduce(state, action, calendar); - }; - // Render Queue - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.requestRerender = function (needsFull) { - if (needsFull === void 0) { needsFull = false; } - this.needsRerender = true; - this.needsFullRerender = this.needsFullRerender || needsFull; - this.delayedRerender(); // will call a debounced-version of tryRerender - }; - Calendar.prototype.tryRerender = function () { - if (this.component && // must be accepting renders - this.needsRerender && // indicates that a rerender was requested - !this.renderingPauseDepth && // not paused - !this.isRendering // not currently in the render loop - ) { - this.executeRender(); - } - }; - Calendar.prototype.batchRendering = function (func) { - this.renderingPauseDepth++; - func(); - this.renderingPauseDepth--; - if (this.needsRerender) { - this.requestRerender(); - } - }; - // Rendering - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.executeRender = function () { - var needsFullRerender = this.needsFullRerender; // save before clearing - // clear these BEFORE the render so that new values will accumulate during render - this.needsRerender = false; - this.needsFullRerender = false; - this.isRendering = true; - this.renderComponent(needsFullRerender); - this.isRendering = false; - // received a rerender request while rendering - if (this.needsRerender) { - this.delayedRerender(); - } - }; - /* - don't call this directly. use executeRender instead - */ - Calendar.prototype.renderComponent = function (needsFull) { - var _a = this, state = _a.state, component = _a.component; - var viewType = state.viewType; - var viewSpec = this.viewSpecs[viewType]; - var savedScroll = (needsFull && component) ? component.view.queryScroll() : null; - if (!viewSpec) { - throw new Error("View type \"" + viewType + "\" is not valid"); - } - // if event sources are still loading and progressive rendering hasn't been enabled, - // keep rendering the last fully loaded set of events - var renderableEventStore = this.renderableEventStore = - (state.eventSourceLoadingLevel && !this.opt('progressiveEventRendering')) ? - this.renderableEventStore : - state.eventStore; - var eventUiSingleBase = this.buildEventUiSingleBase(viewSpec.options); - var eventUiBySource = this.buildEventUiBySource(state.eventSources); - var eventUiBases = this.eventUiBases = this.buildEventUiBases(renderableEventStore.defs, eventUiSingleBase, eventUiBySource); - if (needsFull || !component) { - if (component) { - component.freezeHeight(); // next component will unfreeze it - component.destroy(); - } - component = this.component = new CalendarComponent({ - calendar: this, - view: null, - dateEnv: this.dateEnv, - theme: this.theme, - options: this.optionsManager.computed - }, this.el); - this.isViewUpdated = true; - this.isDatesUpdated = true; - this.isEventsUpdated = true; - } - component.receiveProps(__assign({}, state, { viewSpec: viewSpec, dateProfile: state.dateProfile, dateProfileGenerator: this.dateProfileGenerators[viewType], eventStore: renderableEventStore, eventUiBases: eventUiBases, dateSelection: state.dateSelection, eventSelection: state.eventSelection, eventDrag: state.eventDrag, eventResize: state.eventResize })); - if (savedScroll) { - component.view.applyScroll(savedScroll, false); - } - if (this.isViewUpdated) { - this.isViewUpdated = false; - this.publiclyTrigger('viewSkeletonRender', [ - { - view: component.view, - el: component.view.el - } - ]); - } - if (this.isDatesUpdated) { - this.isDatesUpdated = false; - this.publiclyTrigger('datesRender', [ - { - view: component.view, - el: component.view.el - } - ]); - } - if (this.isEventsUpdated) { - this.isEventsUpdated = false; - } - this.releaseAfterSizingTriggers(); - }; - // Options - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.setOption = function (name, val) { - var _a; - this.mutateOptions((_a = {}, _a[name] = val, _a), [], true); - }; - Calendar.prototype.getOption = function (name) { - return this.optionsManager.computed[name]; - }; - Calendar.prototype.opt = function (name) { - return this.optionsManager.computed[name]; - }; - Calendar.prototype.viewOpt = function (name) { - return this.viewOpts()[name]; - }; - Calendar.prototype.viewOpts = function () { - return this.viewSpecs[this.state.viewType].options; - }; - /* - handles option changes (like a diff) - */ - Calendar.prototype.mutateOptions = function (updates, removals, isDynamic, deepEqual) { - var _this = this; - var changeHandlers = this.pluginSystem.hooks.optionChangeHandlers; - var normalUpdates = {}; - var specialUpdates = {}; - var oldDateEnv = this.dateEnv; // do this before handleOptions - var isTimeZoneDirty = false; - var isSizeDirty = false; - var anyDifficultOptions = Boolean(removals.length); - for (var name_1 in updates) { - if (changeHandlers[name_1]) { - specialUpdates[name_1] = updates[name_1]; - } - else { - normalUpdates[name_1] = updates[name_1]; - } - } - for (var name_2 in normalUpdates) { - if (/^(height|contentHeight|aspectRatio)$/.test(name_2)) { - isSizeDirty = true; - } - else if (/^(defaultDate|defaultView)$/.test(name_2)) ; - else { - anyDifficultOptions = true; - if (name_2 === 'timeZone') { - isTimeZoneDirty = true; - } - } - } - this.optionsManager.mutate(normalUpdates, removals, isDynamic); - if (anyDifficultOptions) { - this.handleOptions(this.optionsManager.computed); - this.needsFullRerender = true; - } - this.batchRendering(function () { - if (anyDifficultOptions) { - if (isTimeZoneDirty) { - _this.dispatch({ - type: 'CHANGE_TIMEZONE', - oldDateEnv: oldDateEnv - }); - } - /* HACK - has the same effect as calling this.requestRerender(true) - but recomputes the state's dateProfile - */ - _this.dispatch({ - type: 'SET_VIEW_TYPE', - viewType: _this.state.viewType - }); - } - else if (isSizeDirty) { - _this.updateSize(); - } - // special updates - if (deepEqual) { - for (var name_3 in specialUpdates) { - changeHandlers[name_3](specialUpdates[name_3], _this, deepEqual); - } - } - }); - }; - /* - rebuilds things based off of a complete set of refined options - */ - Calendar.prototype.handleOptions = function (options) { - var _this = this; - var pluginHooks = this.pluginSystem.hooks; - this.defaultAllDayEventDuration = createDuration(options.defaultAllDayEventDuration); - this.defaultTimedEventDuration = createDuration(options.defaultTimedEventDuration); - this.delayedRerender = this.buildDelayedRerender(options.rerenderDelay); - this.theme = this.buildTheme(options); - var available = this.parseRawLocales(options.locales); - this.availableRawLocales = available.map; - var locale = this.buildLocale(options.locale || available.defaultCode, available.map); - this.dateEnv = this.buildDateEnv(locale, options.timeZone, pluginHooks.namedTimeZonedImpl, options.firstDay, options.weekNumberCalculation, options.weekLabel, pluginHooks.cmdFormatter); - this.selectionConfig = this.buildSelectionConfig(options); // needs dateEnv. do after :( - // ineffecient to do every time? - this.viewSpecs = buildViewSpecs(pluginHooks.views, this.optionsManager); - // ineffecient to do every time? - this.dateProfileGenerators = mapHash(this.viewSpecs, function (viewSpec) { - return new viewSpec.class.prototype.dateProfileGeneratorClass(viewSpec, _this); - }); - }; - Calendar.prototype.getAvailableLocaleCodes = function () { - return Object.keys(this.availableRawLocales); - }; - Calendar.prototype._buildSelectionConfig = function (rawOpts) { - return processScopedUiProps('select', rawOpts, this); - }; - Calendar.prototype._buildEventUiSingleBase = function (rawOpts) { - if (rawOpts.editable) { // so 'editable' affected events - rawOpts = __assign({}, rawOpts, { eventEditable: true }); - } - return processScopedUiProps('event', rawOpts, this); - }; - // Trigger - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.hasPublicHandlers = function (name) { - return this.hasHandlers(name) || - this.opt(name); // handler specified in options - }; - Calendar.prototype.publiclyTrigger = function (name, args) { - var optHandler = this.opt(name); - this.triggerWith(name, this, args); - if (optHandler) { - return optHandler.apply(this, args); - } - }; - Calendar.prototype.publiclyTriggerAfterSizing = function (name, args) { - var afterSizingTriggers = this.afterSizingTriggers; - (afterSizingTriggers[name] || (afterSizingTriggers[name] = [])).push(args); - }; - Calendar.prototype.releaseAfterSizingTriggers = function () { - var afterSizingTriggers = this.afterSizingTriggers; - for (var name_4 in afterSizingTriggers) { - for (var _i = 0, _a = afterSizingTriggers[name_4]; _i < _a.length; _i++) { - var args = _a[_i]; - this.publiclyTrigger(name_4, args); - } - } - this.afterSizingTriggers = {}; - }; - // View - // ----------------------------------------------------------------------------------------------------------------- - // Returns a boolean about whether the view is okay to instantiate at some point - Calendar.prototype.isValidViewType = function (viewType) { - return Boolean(this.viewSpecs[viewType]); - }; - Calendar.prototype.changeView = function (viewType, dateOrRange) { - var dateMarker = null; - if (dateOrRange) { - if (dateOrRange.start && dateOrRange.end) { // a range - this.optionsManager.mutate({ visibleRange: dateOrRange }, []); // will not rerender - this.handleOptions(this.optionsManager.computed); // ...but yuck - } - else { // a date - dateMarker = this.dateEnv.createMarker(dateOrRange); // just like gotoDate - } - } - this.unselect(); - this.dispatch({ - type: 'SET_VIEW_TYPE', - viewType: viewType, - dateMarker: dateMarker - }); - }; - // Forces navigation to a view for the given date. - // `viewType` can be a specific view name or a generic one like "week" or "day". - // needs to change - Calendar.prototype.zoomTo = function (dateMarker, viewType) { - var spec; - viewType = viewType || 'day'; // day is default zoom - spec = this.viewSpecs[viewType] || - this.getUnitViewSpec(viewType); - this.unselect(); - if (spec) { - this.dispatch({ - type: 'SET_VIEW_TYPE', - viewType: spec.type, - dateMarker: dateMarker - }); - } - else { - this.dispatch({ - type: 'SET_DATE', - dateMarker: dateMarker - }); - } - }; - // Given a duration singular unit, like "week" or "day", finds a matching view spec. - // Preference is given to views that have corresponding buttons. - Calendar.prototype.getUnitViewSpec = function (unit) { - var component = this.component; - var viewTypes = []; - var i; - var spec; - // put views that have buttons first. there will be duplicates, but oh - if (component.header) { - viewTypes.push.apply(viewTypes, component.header.viewsWithButtons); - } - if (component.footer) { - viewTypes.push.apply(viewTypes, component.footer.viewsWithButtons); - } - for (var viewType in this.viewSpecs) { - viewTypes.push(viewType); - } - for (i = 0; i < viewTypes.length; i++) { - spec = this.viewSpecs[viewTypes[i]]; - if (spec) { - if (spec.singleUnit === unit) { - return spec; - } - } - } - }; - // Current Date - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.getInitialDate = function () { - var defaultDateInput = this.opt('defaultDate'); - // compute the initial ambig-timezone date - if (defaultDateInput != null) { - return this.dateEnv.createMarker(defaultDateInput); - } - else { - return this.getNow(); // getNow already returns unzoned - } - }; - Calendar.prototype.prev = function () { - this.unselect(); - this.dispatch({ type: 'PREV' }); - }; - Calendar.prototype.next = function () { - this.unselect(); - this.dispatch({ type: 'NEXT' }); - }; - Calendar.prototype.prevYear = function () { - this.unselect(); - this.dispatch({ - type: 'SET_DATE', - dateMarker: this.dateEnv.addYears(this.state.currentDate, -1) - }); - }; - Calendar.prototype.nextYear = function () { - this.unselect(); - this.dispatch({ - type: 'SET_DATE', - dateMarker: this.dateEnv.addYears(this.state.currentDate, 1) - }); - }; - Calendar.prototype.today = function () { - this.unselect(); - this.dispatch({ - type: 'SET_DATE', - dateMarker: this.getNow() - }); - }; - Calendar.prototype.gotoDate = function (zonedDateInput) { - this.unselect(); - this.dispatch({ - type: 'SET_DATE', - dateMarker: this.dateEnv.createMarker(zonedDateInput) - }); - }; - Calendar.prototype.incrementDate = function (deltaInput) { - var delta = createDuration(deltaInput); - if (delta) { // else, warn about invalid input? - this.unselect(); - this.dispatch({ - type: 'SET_DATE', - dateMarker: this.dateEnv.add(this.state.currentDate, delta) - }); - } - }; - // for external API - Calendar.prototype.getDate = function () { - return this.dateEnv.toDate(this.state.currentDate); - }; - // Date Formatting Utils - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.formatDate = function (d, formatter) { - var dateEnv = this.dateEnv; - return dateEnv.format(dateEnv.createMarker(d), createFormatter(formatter)); - }; - // `settings` is for formatter AND isEndExclusive - Calendar.prototype.formatRange = function (d0, d1, settings) { - var dateEnv = this.dateEnv; - return dateEnv.formatRange(dateEnv.createMarker(d0), dateEnv.createMarker(d1), createFormatter(settings, this.opt('defaultRangeSeparator')), settings); - }; - Calendar.prototype.formatIso = function (d, omitTime) { - var dateEnv = this.dateEnv; - return dateEnv.formatIso(dateEnv.createMarker(d), { omitTime: omitTime }); - }; - // Sizing - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.windowResize = function (ev) { - if (!this.isHandlingWindowResize && - this.component && // why? - ev.target === window // not a jqui resize event - ) { - this.isHandlingWindowResize = true; - this.updateSize(); - this.publiclyTrigger('windowResize', [this.view]); - this.isHandlingWindowResize = false; - } - }; - Calendar.prototype.updateSize = function () { - if (this.component) { // when? - this.component.updateSize(true); - } - }; - // Component Registration - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.registerInteractiveComponent = function (component, settingsInput) { - var settings = parseInteractionSettings(component, settingsInput); - var DEFAULT_INTERACTIONS = [ - EventClicking, - EventHovering - ]; - var interactionClasses = DEFAULT_INTERACTIONS.concat(this.pluginSystem.hooks.componentInteractions); - var interactions = interactionClasses.map(function (interactionClass) { - return new interactionClass(settings); - }); - this.interactionsStore[component.uid] = interactions; - interactionSettingsStore[component.uid] = settings; - }; - Calendar.prototype.unregisterInteractiveComponent = function (component) { - for (var _i = 0, _a = this.interactionsStore[component.uid]; _i < _a.length; _i++) { - var listener = _a[_i]; - listener.destroy(); - } - delete this.interactionsStore[component.uid]; - delete interactionSettingsStore[component.uid]; - }; - // Date Selection / Event Selection / DayClick - // ----------------------------------------------------------------------------------------------------------------- - // this public method receives start/end dates in any format, with any timezone - // NOTE: args were changed from v3 - Calendar.prototype.select = function (dateOrObj, endDate) { - var selectionInput; - if (endDate == null) { - if (dateOrObj.start != null) { - selectionInput = dateOrObj; - } - else { - selectionInput = { - start: dateOrObj, - end: null - }; - } - } - else { - selectionInput = { - start: dateOrObj, - end: endDate - }; - } - var selection = parseDateSpan(selectionInput, this.dateEnv, createDuration({ days: 1 }) // TODO: cache this? - ); - if (selection) { // throw parse error otherwise? - this.dispatch({ type: 'SELECT_DATES', selection: selection }); - this.triggerDateSelect(selection); - } - }; - // public method - Calendar.prototype.unselect = function (pev) { - if (this.state.dateSelection) { - this.dispatch({ type: 'UNSELECT_DATES' }); - this.triggerDateUnselect(pev); - } - }; - Calendar.prototype.triggerDateSelect = function (selection, pev) { - var arg = __assign({}, this.buildDateSpanApi(selection), { jsEvent: pev ? pev.origEvent : null, view: this.view }); - this.publiclyTrigger('select', [arg]); - }; - Calendar.prototype.triggerDateUnselect = function (pev) { - this.publiclyTrigger('unselect', [ - { - jsEvent: pev ? pev.origEvent : null, - view: this.view - } - ]); - }; - // TODO: receive pev? - Calendar.prototype.triggerDateClick = function (dateSpan, dayEl, view, ev) { - var arg = __assign({}, this.buildDatePointApi(dateSpan), { dayEl: dayEl, jsEvent: ev, // Is this always a mouse event? See #4655 - view: view }); - this.publiclyTrigger('dateClick', [arg]); - }; - Calendar.prototype.buildDatePointApi = function (dateSpan) { - var props = {}; - for (var _i = 0, _a = this.pluginSystem.hooks.datePointTransforms; _i < _a.length; _i++) { - var transform = _a[_i]; - __assign(props, transform(dateSpan, this)); - } - __assign(props, buildDatePointApi(dateSpan, this.dateEnv)); - return props; - }; - Calendar.prototype.buildDateSpanApi = function (dateSpan) { - var props = {}; - for (var _i = 0, _a = this.pluginSystem.hooks.dateSpanTransforms; _i < _a.length; _i++) { - var transform = _a[_i]; - __assign(props, transform(dateSpan, this)); - } - __assign(props, buildDateSpanApi(dateSpan, this.dateEnv)); - return props; - }; - // Date Utils - // ----------------------------------------------------------------------------------------------------------------- - // Returns a DateMarker for the current date, as defined by the client's computer or from the `now` option - Calendar.prototype.getNow = function () { - var now = this.opt('now'); - if (typeof now === 'function') { - now = now(); - } - if (now == null) { - return this.dateEnv.createNowMarker(); - } - return this.dateEnv.createMarker(now); - }; - // Event-Date Utilities - // ----------------------------------------------------------------------------------------------------------------- - // Given an event's allDay status and start date, return what its fallback end date should be. - // TODO: rename to computeDefaultEventEnd - Calendar.prototype.getDefaultEventEnd = function (allDay, marker) { - var end = marker; - if (allDay) { - end = startOfDay(end); - end = this.dateEnv.add(end, this.defaultAllDayEventDuration); - } - else { - end = this.dateEnv.add(end, this.defaultTimedEventDuration); - } - return end; - }; - // Public Events API - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.addEvent = function (eventInput, sourceInput) { - if (eventInput instanceof EventApi) { - var def = eventInput._def; - var instance = eventInput._instance; - // not already present? don't want to add an old snapshot - if (!this.state.eventStore.defs[def.defId]) { - this.dispatch({ - type: 'ADD_EVENTS', - eventStore: eventTupleToStore({ def: def, instance: instance }) // TODO: better util for two args? - }); - } - return eventInput; - } - var sourceId; - if (sourceInput instanceof EventSourceApi) { - sourceId = sourceInput.internalEventSource.sourceId; - } - else if (sourceInput != null) { - var sourceApi = this.getEventSourceById(sourceInput); // TODO: use an internal function - if (!sourceApi) { - console.warn('Could not find an event source with ID "' + sourceInput + '"'); // TODO: test - return null; - } - else { - sourceId = sourceApi.internalEventSource.sourceId; - } - } - var tuple = parseEvent(eventInput, sourceId, this); - if (tuple) { - this.dispatch({ - type: 'ADD_EVENTS', - eventStore: eventTupleToStore(tuple) - }); - return new EventApi(this, tuple.def, tuple.def.recurringDef ? null : tuple.instance); - } - return null; - }; - // TODO: optimize - Calendar.prototype.getEventById = function (id) { - var _a = this.state.eventStore, defs = _a.defs, instances = _a.instances; - id = String(id); - for (var defId in defs) { - var def = defs[defId]; - if (def.publicId === id) { - if (def.recurringDef) { - return new EventApi(this, def, null); - } - else { - for (var instanceId in instances) { - var instance = instances[instanceId]; - if (instance.defId === def.defId) { - return new EventApi(this, def, instance); - } - } - } - } - } - return null; - }; - Calendar.prototype.getEvents = function () { - var _a = this.state.eventStore, defs = _a.defs, instances = _a.instances; - var eventApis = []; - for (var id in instances) { - var instance = instances[id]; - var def = defs[instance.defId]; - eventApis.push(new EventApi(this, def, instance)); - } - return eventApis; - }; - Calendar.prototype.removeAllEvents = function () { - this.dispatch({ type: 'REMOVE_ALL_EVENTS' }); - }; - Calendar.prototype.rerenderEvents = function () { - this.dispatch({ type: 'RESET_EVENTS' }); - }; - // Public Event Sources API - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.getEventSources = function () { - var sourceHash = this.state.eventSources; - var sourceApis = []; - for (var internalId in sourceHash) { - sourceApis.push(new EventSourceApi(this, sourceHash[internalId])); - } - return sourceApis; - }; - Calendar.prototype.getEventSourceById = function (id) { - var sourceHash = this.state.eventSources; - id = String(id); - for (var sourceId in sourceHash) { - if (sourceHash[sourceId].publicId === id) { - return new EventSourceApi(this, sourceHash[sourceId]); - } - } - return null; - }; - Calendar.prototype.addEventSource = function (sourceInput) { - if (sourceInput instanceof EventSourceApi) { - // not already present? don't want to add an old snapshot - if (!this.state.eventSources[sourceInput.internalEventSource.sourceId]) { - this.dispatch({ - type: 'ADD_EVENT_SOURCES', - sources: [sourceInput.internalEventSource] - }); - } - return sourceInput; - } - var eventSource = parseEventSource(sourceInput, this); - if (eventSource) { // TODO: error otherwise? - this.dispatch({ type: 'ADD_EVENT_SOURCES', sources: [eventSource] }); - return new EventSourceApi(this, eventSource); - } - return null; - }; - Calendar.prototype.removeAllEventSources = function () { - this.dispatch({ type: 'REMOVE_ALL_EVENT_SOURCES' }); - }; - Calendar.prototype.refetchEvents = function () { - this.dispatch({ type: 'FETCH_EVENT_SOURCES' }); - }; - // Scroll - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.scrollToTime = function (timeInput) { - var duration = createDuration(timeInput); - if (duration) { - this.component.view.scrollToDuration(duration); - } - }; - return Calendar; -}()); -EmitterMixin.mixInto(Calendar); -// for memoizers -// ----------------------------------------------------------------------------------------------------------------- -function buildDateEnv(locale, timeZone, namedTimeZoneImpl, firstDay, weekNumberCalculation, weekLabel, cmdFormatter) { - return new DateEnv({ - calendarSystem: 'gregory', - timeZone: timeZone, - namedTimeZoneImpl: namedTimeZoneImpl, - locale: locale, - weekNumberCalculation: weekNumberCalculation, - firstDay: firstDay, - weekLabel: weekLabel, - cmdFormatter: cmdFormatter - }); -} -function buildTheme(calendarOptions) { - var themeClass = this.pluginSystem.hooks.themeClasses[calendarOptions.themeSystem] || StandardTheme; - return new themeClass(calendarOptions); -} -function buildDelayedRerender(wait) { - var func = this.tryRerender.bind(this); - if (wait != null) { - func = debounce(func, wait); - } - return func; -} -function buildEventUiBySource(eventSources) { - return mapHash(eventSources, function (eventSource) { - return eventSource.ui; - }); -} -function buildEventUiBases(eventDefs, eventUiSingleBase, eventUiBySource) { - var eventUiBases = { '': eventUiSingleBase }; - for (var defId in eventDefs) { - var def = eventDefs[defId]; - if (def.sourceId && eventUiBySource[def.sourceId]) { - eventUiBases[defId] = eventUiBySource[def.sourceId]; - } - } - return eventUiBases; -} - -var View = /** @class */ (function (_super) { - __extends(View, _super); - function View(context, viewSpec, dateProfileGenerator, parentEl) { - var _this = _super.call(this, context, createElement('div', { className: 'fc-view fc-' + viewSpec.type + '-view' }), true // isView (HACK) - ) || this; - _this.renderDatesMem = memoizeRendering(_this.renderDatesWrap, _this.unrenderDatesWrap); - _this.renderBusinessHoursMem = memoizeRendering(_this.renderBusinessHours, _this.unrenderBusinessHours, [_this.renderDatesMem]); - _this.renderDateSelectionMem = memoizeRendering(_this.renderDateSelectionWrap, _this.unrenderDateSelectionWrap, [_this.renderDatesMem]); - _this.renderEventsMem = memoizeRendering(_this.renderEvents, _this.unrenderEvents, [_this.renderDatesMem]); - _this.renderEventSelectionMem = memoizeRendering(_this.renderEventSelectionWrap, _this.unrenderEventSelectionWrap, [_this.renderEventsMem]); - _this.renderEventDragMem = memoizeRendering(_this.renderEventDragWrap, _this.unrenderEventDragWrap, [_this.renderDatesMem]); - _this.renderEventResizeMem = memoizeRendering(_this.renderEventResizeWrap, _this.unrenderEventResizeWrap, [_this.renderDatesMem]); - _this.viewSpec = viewSpec; - _this.dateProfileGenerator = dateProfileGenerator; - _this.type = viewSpec.type; - _this.eventOrderSpecs = parseFieldSpecs(_this.opt('eventOrder')); - _this.nextDayThreshold = createDuration(_this.opt('nextDayThreshold')); - parentEl.appendChild(_this.el); - _this.initialize(); - return _this; - } - View.prototype.initialize = function () { - }; - Object.defineProperty(View.prototype, "activeStart", { - // Date Setting/Unsetting - // ----------------------------------------------------------------------------------------------------------------- - get: function () { - return this.dateEnv.toDate(this.props.dateProfile.activeRange.start); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(View.prototype, "activeEnd", { - get: function () { - return this.dateEnv.toDate(this.props.dateProfile.activeRange.end); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(View.prototype, "currentStart", { - get: function () { - return this.dateEnv.toDate(this.props.dateProfile.currentRange.start); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(View.prototype, "currentEnd", { - get: function () { - return this.dateEnv.toDate(this.props.dateProfile.currentRange.end); - }, - enumerable: true, - configurable: true - }); - // General Rendering - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.render = function (props) { - this.renderDatesMem(props.dateProfile); - this.renderBusinessHoursMem(props.businessHours); - this.renderDateSelectionMem(props.dateSelection); - this.renderEventsMem(props.eventStore); - this.renderEventSelectionMem(props.eventSelection); - this.renderEventDragMem(props.eventDrag); - this.renderEventResizeMem(props.eventResize); - }; - View.prototype.destroy = function () { - _super.prototype.destroy.call(this); - this.renderDatesMem.unrender(); // should unrender everything else - }; - // Sizing - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.updateSize = function (isResize, viewHeight, isAuto) { - var calendar = this.calendar; - if (isResize || // HACKS... - calendar.isViewUpdated || - calendar.isDatesUpdated || - calendar.isEventsUpdated) { - // sort of the catch-all sizing - // anything that might cause dimension changes - this.updateBaseSize(isResize, viewHeight, isAuto); - } - }; - View.prototype.updateBaseSize = function (isResize, viewHeight, isAuto) { - }; - // Date Rendering - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderDatesWrap = function (dateProfile) { - this.renderDates(dateProfile); - this.addScroll({ - duration: createDuration(this.opt('scrollTime')) - }); - this.startNowIndicator(dateProfile); // shouldn't render yet because updateSize will be called soon - }; - View.prototype.unrenderDatesWrap = function () { - this.stopNowIndicator(); - this.unrenderDates(); - }; - View.prototype.renderDates = function (dateProfile) { }; - View.prototype.unrenderDates = function () { }; - // Business Hours - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderBusinessHours = function (businessHours) { }; - View.prototype.unrenderBusinessHours = function () { }; - // Date Selection - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderDateSelectionWrap = function (selection) { - if (selection) { - this.renderDateSelection(selection); - } - }; - View.prototype.unrenderDateSelectionWrap = function (selection) { - if (selection) { - this.unrenderDateSelection(selection); - } - }; - View.prototype.renderDateSelection = function (selection) { }; - View.prototype.unrenderDateSelection = function (selection) { }; - // Event Rendering - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderEvents = function (eventStore) { }; - View.prototype.unrenderEvents = function () { }; - // util for subclasses - View.prototype.sliceEvents = function (eventStore, allDay) { - var props = this.props; - return sliceEventStore(eventStore, props.eventUiBases, props.dateProfile.activeRange, allDay ? this.nextDayThreshold : null).fg; - }; - View.prototype.computeEventDraggable = function (eventDef, eventUi) { - var transformers = this.calendar.pluginSystem.hooks.isDraggableTransformers; - var val = eventUi.startEditable; - for (var _i = 0, transformers_1 = transformers; _i < transformers_1.length; _i++) { - var transformer = transformers_1[_i]; - val = transformer(val, eventDef, eventUi, this); - } - return val; - }; - View.prototype.computeEventStartResizable = function (eventDef, eventUi) { - return eventUi.durationEditable && this.opt('eventResizableFromStart'); - }; - View.prototype.computeEventEndResizable = function (eventDef, eventUi) { - return eventUi.durationEditable; - }; - // Event Selection - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderEventSelectionWrap = function (instanceId) { - if (instanceId) { - this.renderEventSelection(instanceId); - } - }; - View.prototype.unrenderEventSelectionWrap = function (instanceId) { - if (instanceId) { - this.unrenderEventSelection(instanceId); - } - }; - View.prototype.renderEventSelection = function (instanceId) { }; - View.prototype.unrenderEventSelection = function (instanceId) { }; - // Event Drag - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderEventDragWrap = function (state) { - if (state) { - this.renderEventDrag(state); - } - }; - View.prototype.unrenderEventDragWrap = function (state) { - if (state) { - this.unrenderEventDrag(state); - } - }; - View.prototype.renderEventDrag = function (state) { }; - View.prototype.unrenderEventDrag = function (state) { }; - // Event Resize - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderEventResizeWrap = function (state) { - if (state) { - this.renderEventResize(state); - } - }; - View.prototype.unrenderEventResizeWrap = function (state) { - if (state) { - this.unrenderEventResize(state); - } - }; - View.prototype.renderEventResize = function (state) { }; - View.prototype.unrenderEventResize = function (state) { }; - /* Now Indicator - ------------------------------------------------------------------------------------------------------------------*/ - // Immediately render the current time indicator and begins re-rendering it at an interval, - // which is defined by this.getNowIndicatorUnit(). - // TODO: somehow do this for the current whole day's background too - View.prototype.startNowIndicator = function (dateProfile) { - var _this = this; - var dateEnv = this.dateEnv; - var unit; - var update; - var delay; // ms wait value - if (this.opt('nowIndicator')) { - unit = this.getNowIndicatorUnit(dateProfile); - if (unit) { - update = this.updateNowIndicator.bind(this); - this.initialNowDate = this.calendar.getNow(); - this.initialNowQueriedMs = new Date().valueOf(); - // wait until the beginning of the next interval - delay = dateEnv.add(dateEnv.startOf(this.initialNowDate, unit), createDuration(1, unit)).valueOf() - this.initialNowDate.valueOf(); - // TODO: maybe always use setTimeout, waiting until start of next unit - this.nowIndicatorTimeoutID = setTimeout(function () { - _this.nowIndicatorTimeoutID = null; - update(); - if (unit === 'second') { - delay = 1000; // every second - } - else { - delay = 1000 * 60; // otherwise, every minute - } - _this.nowIndicatorIntervalID = setInterval(update, delay); // update every interval - }, delay); - } - // rendering will be initiated in updateSize - } - }; - // rerenders the now indicator, computing the new current time from the amount of time that has passed - // since the initial getNow call. - View.prototype.updateNowIndicator = function () { - if (this.props.dateProfile && // a way to determine if dates were rendered yet - this.initialNowDate // activated before? - ) { - this.unrenderNowIndicator(); // won't unrender if unnecessary - this.renderNowIndicator(addMs(this.initialNowDate, new Date().valueOf() - this.initialNowQueriedMs)); - this.isNowIndicatorRendered = true; - } - }; - // Immediately unrenders the view's current time indicator and stops any re-rendering timers. - // Won't cause side effects if indicator isn't rendered. - View.prototype.stopNowIndicator = function () { - if (this.isNowIndicatorRendered) { - if (this.nowIndicatorTimeoutID) { - clearTimeout(this.nowIndicatorTimeoutID); - this.nowIndicatorTimeoutID = null; - } - if (this.nowIndicatorIntervalID) { - clearInterval(this.nowIndicatorIntervalID); - this.nowIndicatorIntervalID = null; - } - this.unrenderNowIndicator(); - this.isNowIndicatorRendered = false; - } - }; - View.prototype.getNowIndicatorUnit = function (dateProfile) { - // subclasses should implement - }; - // Renders a current time indicator at the given datetime - View.prototype.renderNowIndicator = function (date) { - // SUBCLASSES MUST PASS TO CHILDREN! - }; - // Undoes the rendering actions from renderNowIndicator - View.prototype.unrenderNowIndicator = function () { - // SUBCLASSES MUST PASS TO CHILDREN! - }; - /* Scroller - ------------------------------------------------------------------------------------------------------------------*/ - View.prototype.addScroll = function (scroll) { - var queuedScroll = this.queuedScroll || (this.queuedScroll = {}); - __assign(queuedScroll, scroll); - }; - View.prototype.popScroll = function (isResize) { - this.applyQueuedScroll(isResize); - this.queuedScroll = null; - }; - View.prototype.applyQueuedScroll = function (isResize) { - this.applyScroll(this.queuedScroll || {}, isResize); - }; - View.prototype.queryScroll = function () { - var scroll = {}; - if (this.props.dateProfile) { // dates rendered yet? - __assign(scroll, this.queryDateScroll()); - } - return scroll; - }; - View.prototype.applyScroll = function (scroll, isResize) { - var duration = scroll.duration; - if (duration != null) { - delete scroll.duration; - if (this.props.dateProfile) { // dates rendered yet? - __assign(scroll, this.computeDateScroll(duration)); - } - } - if (this.props.dateProfile) { // dates rendered yet? - this.applyDateScroll(scroll); - } - }; - View.prototype.computeDateScroll = function (duration) { - return {}; // subclasses must implement - }; - View.prototype.queryDateScroll = function () { - return {}; // subclasses must implement - }; - View.prototype.applyDateScroll = function (scroll) { - // subclasses must implement - }; - // for API - View.prototype.scrollToDuration = function (duration) { - this.applyScroll({ duration: duration }, false); - }; - return View; -}(DateComponent)); -EmitterMixin.mixInto(View); -View.prototype.usesMinMaxTime = false; -View.prototype.dateProfileGeneratorClass = DateProfileGenerator; - -var FgEventRenderer = /** @class */ (function () { - function FgEventRenderer(context) { - this.segs = []; - this.isSizeDirty = false; - this.context = context; - } - FgEventRenderer.prototype.renderSegs = function (segs, mirrorInfo) { - this.rangeUpdated(); // called too frequently :( - // render an `.el` on each seg - // returns a subset of the segs. segs that were actually rendered - segs = this.renderSegEls(segs, mirrorInfo); - this.segs = segs; - this.attachSegs(segs, mirrorInfo); - this.isSizeDirty = true; - this.context.view.triggerRenderedSegs(this.segs, Boolean(mirrorInfo)); - }; - FgEventRenderer.prototype.unrender = function (_segs, mirrorInfo) { - this.context.view.triggerWillRemoveSegs(this.segs, Boolean(mirrorInfo)); - this.detachSegs(this.segs); - this.segs = []; - }; - // Updates values that rely on options and also relate to range - FgEventRenderer.prototype.rangeUpdated = function () { - var options = this.context.options; - var displayEventTime; - var displayEventEnd; - this.eventTimeFormat = createFormatter(options.eventTimeFormat || this.computeEventTimeFormat(), options.defaultRangeSeparator); - displayEventTime = options.displayEventTime; - if (displayEventTime == null) { - displayEventTime = this.computeDisplayEventTime(); // might be based off of range - } - displayEventEnd = options.displayEventEnd; - if (displayEventEnd == null) { - displayEventEnd = this.computeDisplayEventEnd(); // might be based off of range - } - this.displayEventTime = displayEventTime; - this.displayEventEnd = displayEventEnd; - }; - // Renders and assigns an `el` property for each foreground event segment. - // Only returns segments that successfully rendered. - FgEventRenderer.prototype.renderSegEls = function (segs, mirrorInfo) { - var html = ''; - var i; - if (segs.length) { // don't build an empty html string - // build a large concatenation of event segment HTML - for (i = 0; i < segs.length; i++) { - html += this.renderSegHtml(segs[i], mirrorInfo); - } - // Grab individual elements from the combined HTML string. Use each as the default rendering. - // Then, compute the 'el' for each segment. An el might be null if the eventRender callback returned false. - htmlToElements(html).forEach(function (el, i) { - var seg = segs[i]; - if (el) { - seg.el = el; - } - }); - segs = filterSegsViaEls(this.context.view, segs, Boolean(mirrorInfo)); - } - return segs; - }; - // Generic utility for generating the HTML classNames for an event segment's element - FgEventRenderer.prototype.getSegClasses = function (seg, isDraggable, isResizable, mirrorInfo) { - var classes = [ - 'fc-event', - seg.isStart ? 'fc-start' : 'fc-not-start', - seg.isEnd ? 'fc-end' : 'fc-not-end' - ].concat(seg.eventRange.ui.classNames); - if (isDraggable) { - classes.push('fc-draggable'); - } - if (isResizable) { - classes.push('fc-resizable'); - } - if (mirrorInfo) { - classes.push('fc-mirror'); - if (mirrorInfo.isDragging) { - classes.push('fc-dragging'); - } - if (mirrorInfo.isResizing) { - classes.push('fc-resizing'); - } - } - return classes; - }; - // Compute the text that should be displayed on an event's element. - // `range` can be the Event object itself, or something range-like, with at least a `start`. - // If event times are disabled, or the event has no time, will return a blank string. - // If not specified, formatter will default to the eventTimeFormat setting, - // and displayEnd will default to the displayEventEnd setting. - FgEventRenderer.prototype.getTimeText = function (eventRange, formatter, displayEnd) { - var def = eventRange.def, instance = eventRange.instance; - return this._getTimeText(instance.range.start, def.hasEnd ? instance.range.end : null, def.allDay, formatter, displayEnd, instance.forcedStartTzo, instance.forcedEndTzo); - }; - FgEventRenderer.prototype._getTimeText = function (start, end, allDay, formatter, displayEnd, forcedStartTzo, forcedEndTzo) { - var dateEnv = this.context.dateEnv; - if (formatter == null) { - formatter = this.eventTimeFormat; - } - if (displayEnd == null) { - displayEnd = this.displayEventEnd; - } - if (this.displayEventTime && !allDay) { - if (displayEnd && end) { - return dateEnv.formatRange(start, end, formatter, { - forcedStartTzo: forcedStartTzo, - forcedEndTzo: forcedEndTzo - }); - } - else { - return dateEnv.format(start, formatter, { - forcedTzo: forcedStartTzo - }); - } - } - return ''; - }; - FgEventRenderer.prototype.computeEventTimeFormat = function () { - return { - hour: 'numeric', - minute: '2-digit', - omitZeroMinute: true - }; - }; - FgEventRenderer.prototype.computeDisplayEventTime = function () { - return true; - }; - FgEventRenderer.prototype.computeDisplayEventEnd = function () { - return true; - }; - // Utility for generating event skin-related CSS properties - FgEventRenderer.prototype.getSkinCss = function (ui) { - return { - 'background-color': ui.backgroundColor, - 'border-color': ui.borderColor, - color: ui.textColor - }; - }; - FgEventRenderer.prototype.sortEventSegs = function (segs) { - var specs = this.context.view.eventOrderSpecs; - var objs = segs.map(buildSegCompareObj); - objs.sort(function (obj0, obj1) { - return compareByFieldSpecs(obj0, obj1, specs); - }); - return objs.map(function (c) { - return c._seg; - }); - }; - FgEventRenderer.prototype.computeSizes = function (force) { - if (force || this.isSizeDirty) { - this.computeSegSizes(this.segs); - } - }; - FgEventRenderer.prototype.assignSizes = function (force) { - if (force || this.isSizeDirty) { - this.assignSegSizes(this.segs); - this.isSizeDirty = false; - } - }; - FgEventRenderer.prototype.computeSegSizes = function (segs) { - }; - FgEventRenderer.prototype.assignSegSizes = function (segs) { - }; - // Manipulation on rendered segs - FgEventRenderer.prototype.hideByHash = function (hash) { - if (hash) { - for (var _i = 0, _a = this.segs; _i < _a.length; _i++) { - var seg = _a[_i]; - if (hash[seg.eventRange.instance.instanceId]) { - seg.el.style.visibility = 'hidden'; - } - } - } - }; - FgEventRenderer.prototype.showByHash = function (hash) { - if (hash) { - for (var _i = 0, _a = this.segs; _i < _a.length; _i++) { - var seg = _a[_i]; - if (hash[seg.eventRange.instance.instanceId]) { - seg.el.style.visibility = ''; - } - } - } - }; - FgEventRenderer.prototype.selectByInstanceId = function (instanceId) { - if (instanceId) { - for (var _i = 0, _a = this.segs; _i < _a.length; _i++) { - var seg = _a[_i]; - var eventInstance = seg.eventRange.instance; - if (eventInstance && eventInstance.instanceId === instanceId && - seg.el // necessary? - ) { - seg.el.classList.add('fc-selected'); - } - } - } - }; - FgEventRenderer.prototype.unselectByInstanceId = function (instanceId) { - if (instanceId) { - for (var _i = 0, _a = this.segs; _i < _a.length; _i++) { - var seg = _a[_i]; - if (seg.el) { // necessary? - seg.el.classList.remove('fc-selected'); - } - } - } - }; - return FgEventRenderer; -}()); -// returns a object with all primitive props that can be compared -function buildSegCompareObj(seg) { - var eventDef = seg.eventRange.def; - var range = seg.eventRange.instance.range; - var start = range.start ? range.start.valueOf() : 0; // TODO: better support for open-range events - var end = range.end ? range.end.valueOf() : 0; // " - return __assign({}, eventDef.extendedProps, eventDef, { id: eventDef.publicId, start: start, - end: end, duration: end - start, allDay: Number(eventDef.allDay), _seg: seg // for later retrieval - }); -} - -var FillRenderer = /** @class */ (function () { - function FillRenderer(context) { - this.fillSegTag = 'div'; - this.dirtySizeFlags = {}; - this.context = context; - this.containerElsByType = {}; - this.segsByType = {}; - } - FillRenderer.prototype.getSegsByType = function (type) { - return this.segsByType[type] || []; - }; - FillRenderer.prototype.renderSegs = function (type, segs) { - var _a; - var renderedSegs = this.renderSegEls(type, segs); // assignes `.el` to each seg. returns successfully rendered segs - var containerEls = this.attachSegs(type, renderedSegs); - if (containerEls) { - (_a = (this.containerElsByType[type] || (this.containerElsByType[type] = []))).push.apply(_a, containerEls); - } - this.segsByType[type] = renderedSegs; - if (type === 'bgEvent') { - this.context.view.triggerRenderedSegs(renderedSegs, false); // isMirror=false - } - this.dirtySizeFlags[type] = true; - }; - // Unrenders a specific type of fill that is currently rendered on the grid - FillRenderer.prototype.unrender = function (type) { - var segs = this.segsByType[type]; - if (segs) { - if (type === 'bgEvent') { - this.context.view.triggerWillRemoveSegs(segs, false); // isMirror=false - } - this.detachSegs(type, segs); - } - }; - // Renders and assigns an `el` property for each fill segment. Generic enough to work with different types. - // Only returns segments that successfully rendered. - FillRenderer.prototype.renderSegEls = function (type, segs) { - var _this = this; - var html = ''; - var i; - if (segs.length) { - // build a large concatenation of segment HTML - for (i = 0; i < segs.length; i++) { - html += this.renderSegHtml(type, segs[i]); - } - // Grab individual elements from the combined HTML string. Use each as the default rendering. - // Then, compute the 'el' for each segment. - htmlToElements(html).forEach(function (el, i) { - var seg = segs[i]; - if (el) { - seg.el = el; - } - }); - if (type === 'bgEvent') { - segs = filterSegsViaEls(this.context.view, segs, false // isMirror. background events can never be mirror elements - ); - } - // correct element type? (would be bad if a non-TD were inserted into a table for example) - segs = segs.filter(function (seg) { - return elementMatches(seg.el, _this.fillSegTag); - }); - } - return segs; - }; - // Builds the HTML needed for one fill segment. Generic enough to work with different types. - FillRenderer.prototype.renderSegHtml = function (type, seg) { - var css = null; - var classNames = []; - if (type !== 'highlight' && type !== 'businessHours') { - css = { - 'background-color': seg.eventRange.ui.backgroundColor - }; - } - if (type !== 'highlight') { - classNames = classNames.concat(seg.eventRange.ui.classNames); - } - if (type === 'businessHours') { - classNames.push('fc-bgevent'); - } - else { - classNames.push('fc-' + type.toLowerCase()); - } - return '<' + this.fillSegTag + - (classNames.length ? ' class="' + classNames.join(' ') + '"' : '') + - (css ? ' style="' + cssToStr(css) + '"' : '') + - '>'; - }; - FillRenderer.prototype.detachSegs = function (type, segs) { - var containerEls = this.containerElsByType[type]; - if (containerEls) { - containerEls.forEach(removeElement); - delete this.containerElsByType[type]; - } - }; - FillRenderer.prototype.computeSizes = function (force) { - for (var type in this.segsByType) { - if (force || this.dirtySizeFlags[type]) { - this.computeSegSizes(this.segsByType[type]); - } - } - }; - FillRenderer.prototype.assignSizes = function (force) { - for (var type in this.segsByType) { - if (force || this.dirtySizeFlags[type]) { - this.assignSegSizes(this.segsByType[type]); - } - } - this.dirtySizeFlags = {}; - }; - FillRenderer.prototype.computeSegSizes = function (segs) { - }; - FillRenderer.prototype.assignSegSizes = function (segs) { - }; - return FillRenderer; -}()); - -var NamedTimeZoneImpl = /** @class */ (function () { - function NamedTimeZoneImpl(timeZoneName) { - this.timeZoneName = timeZoneName; - } - return NamedTimeZoneImpl; -}()); - -/* -An abstraction for a dragging interaction originating on an event. -Does higher-level things than PointerDragger, such as possibly: -- a "mirror" that moves with the pointer -- a minimum number of pixels or other criteria for a true drag to begin - -subclasses must emit: -- pointerdown -- dragstart -- dragmove -- pointerup -- dragend -*/ -var ElementDragging = /** @class */ (function () { - function ElementDragging(el) { - this.emitter = new EmitterMixin(); - } - ElementDragging.prototype.destroy = function () { - }; - ElementDragging.prototype.setMirrorIsVisible = function (bool) { - // optional if subclass doesn't want to support a mirror - }; - ElementDragging.prototype.setMirrorNeedsRevert = function (bool) { - // optional if subclass doesn't want to support a mirror - }; - ElementDragging.prototype.setAutoScrollEnabled = function (bool) { - // optional - }; - return ElementDragging; -}()); - -function formatDate(dateInput, settings) { - if (settings === void 0) { settings = {}; } - var dateEnv = buildDateEnv$1(settings); - var formatter = createFormatter(settings); - var dateMeta = dateEnv.createMarkerMeta(dateInput); - if (!dateMeta) { // TODO: warning? - return ''; - } - return dateEnv.format(dateMeta.marker, formatter, { - forcedTzo: dateMeta.forcedTzo - }); -} -function formatRange(startInput, endInput, settings // mixture of env and formatter settings -) { - var dateEnv = buildDateEnv$1(typeof settings === 'object' && settings ? settings : {}); // pass in if non-null object - var formatter = createFormatter(settings, globalDefaults.defaultRangeSeparator); - var startMeta = dateEnv.createMarkerMeta(startInput); - var endMeta = dateEnv.createMarkerMeta(endInput); - if (!startMeta || !endMeta) { // TODO: warning? - return ''; - } - return dateEnv.formatRange(startMeta.marker, endMeta.marker, formatter, { - forcedStartTzo: startMeta.forcedTzo, - forcedEndTzo: endMeta.forcedTzo, - isEndExclusive: settings.isEndExclusive - }); -} -// TODO: more DRY and optimized -function buildDateEnv$1(settings) { - var locale = buildLocale(settings.locale || 'en', parseRawLocales([]).map); // TODO: don't hardcode 'en' everywhere - // ensure required settings - settings = __assign({ timeZone: globalDefaults.timeZone, calendarSystem: 'gregory' }, settings, { locale: locale }); - return new DateEnv(settings); -} - -var DRAG_META_PROPS = { - startTime: createDuration, - duration: createDuration, - create: Boolean, - sourceId: String -}; -var DRAG_META_DEFAULTS = { - create: true -}; -function parseDragMeta(raw) { - var leftoverProps = {}; - var refined = refineProps(raw, DRAG_META_PROPS, DRAG_META_DEFAULTS, leftoverProps); - refined.leftoverProps = leftoverProps; - return refined; -} - -// Computes a default column header formatting string if `colFormat` is not explicitly defined -function computeFallbackHeaderFormat(datesRepDistinctDays, dayCnt) { - // if more than one week row, or if there are a lot of columns with not much space, - // put just the day numbers will be in each cell - if (!datesRepDistinctDays || dayCnt > 10) { - return { weekday: 'short' }; // "Sat" - } - else if (dayCnt > 1) { - return { weekday: 'short', month: 'numeric', day: 'numeric', omitCommas: true }; // "Sat 11/12" - } - else { - return { weekday: 'long' }; // "Saturday" - } -} -function renderDateCell(dateMarker, dateProfile, datesRepDistinctDays, colCnt, colHeadFormat, context, colspan, otherAttrs) { - var view = context.view, dateEnv = context.dateEnv, theme = context.theme, options = context.options; - var isDateValid = rangeContainsMarker(dateProfile.activeRange, dateMarker); // TODO: called too frequently. cache somehow. - var classNames = [ - 'fc-day-header', - theme.getClass('widgetHeader') - ]; - var innerHtml; - if (typeof options.columnHeaderHtml === 'function') { - innerHtml = options.columnHeaderHtml(dateEnv.toDate(dateMarker)); - } - else if (typeof options.columnHeaderText === 'function') { - innerHtml = htmlEscape(options.columnHeaderText(dateEnv.toDate(dateMarker))); - } - else { - innerHtml = htmlEscape(dateEnv.format(dateMarker, colHeadFormat)); - } - // if only one row of days, the classNames on the header can represent the specific days beneath - if (datesRepDistinctDays) { - classNames = classNames.concat( - // includes the day-of-week class - // noThemeHighlight=true (don't highlight the header) - getDayClasses(dateMarker, dateProfile, context, true)); - } - else { - classNames.push('fc-' + DAY_IDS[dateMarker.getUTCDay()]); // only add the day-of-week class - } - return '' + - ' 1 ? - ' colspan="' + colspan + '"' : - '') + - (otherAttrs ? - ' ' + otherAttrs : - '') + - '>' + - (isDateValid ? - // don't make a link if the heading could represent multiple days, or if there's only one day (forceOff) - buildGotoAnchorHtml(view, { date: dateMarker, forceOff: !datesRepDistinctDays || colCnt === 1 }, innerHtml) : - // if not valid, display text, but no link - innerHtml) + - ''; -} - -var DayHeader = /** @class */ (function (_super) { - __extends(DayHeader, _super); - function DayHeader(context, parentEl) { - var _this = _super.call(this, context) || this; - parentEl.innerHTML = ''; // because might be nbsp - parentEl.appendChild(_this.el = htmlToElement('
' + - '' + - '' + - '
' + - '
')); - _this.thead = _this.el.querySelector('thead'); - return _this; - } - DayHeader.prototype.destroy = function () { - removeElement(this.el); - }; - DayHeader.prototype.render = function (props) { - var dates = props.dates, datesRepDistinctDays = props.datesRepDistinctDays; - var parts = []; - if (props.renderIntroHtml) { - parts.push(props.renderIntroHtml()); - } - var colHeadFormat = createFormatter(this.opt('columnHeaderFormat') || - computeFallbackHeaderFormat(datesRepDistinctDays, dates.length)); - for (var _i = 0, dates_1 = dates; _i < dates_1.length; _i++) { - var date = dates_1[_i]; - parts.push(renderDateCell(date, props.dateProfile, datesRepDistinctDays, dates.length, colHeadFormat, this.context)); - } - if (this.isRtl) { - parts.reverse(); - } - this.thead.innerHTML = '' + parts.join('') + ''; - }; - return DayHeader; -}(Component)); - -var DaySeries = /** @class */ (function () { - function DaySeries(range, dateProfileGenerator) { - var date = range.start; - var end = range.end; - var indices = []; - var dates = []; - var dayIndex = -1; - while (date < end) { // loop each day from start to end - if (dateProfileGenerator.isHiddenDay(date)) { - indices.push(dayIndex + 0.5); // mark that it's between indices - } - else { - dayIndex++; - indices.push(dayIndex); - dates.push(date); - } - date = addDays(date, 1); - } - this.dates = dates; - this.indices = indices; - this.cnt = dates.length; - } - DaySeries.prototype.sliceRange = function (range) { - var firstIndex = this.getDateDayIndex(range.start); // inclusive first index - var lastIndex = this.getDateDayIndex(addDays(range.end, -1)); // inclusive last index - var clippedFirstIndex = Math.max(0, firstIndex); - var clippedLastIndex = Math.min(this.cnt - 1, lastIndex); - // deal with in-between indices - clippedFirstIndex = Math.ceil(clippedFirstIndex); // in-between starts round to next cell - clippedLastIndex = Math.floor(clippedLastIndex); // in-between ends round to prev cell - if (clippedFirstIndex <= clippedLastIndex) { - return { - firstIndex: clippedFirstIndex, - lastIndex: clippedLastIndex, - isStart: firstIndex === clippedFirstIndex, - isEnd: lastIndex === clippedLastIndex - }; - } - else { - return null; - } - }; - // Given a date, returns its chronolocial cell-index from the first cell of the grid. - // If the date lies between cells (because of hiddenDays), returns a floating-point value between offsets. - // If before the first offset, returns a negative number. - // If after the last offset, returns an offset past the last cell offset. - // Only works for *start* dates of cells. Will not work for exclusive end dates for cells. - DaySeries.prototype.getDateDayIndex = function (date) { - var indices = this.indices; - var dayOffset = Math.floor(diffDays(this.dates[0], date)); - if (dayOffset < 0) { - return indices[0] - 1; - } - else if (dayOffset >= indices.length) { - return indices[indices.length - 1] + 1; - } - else { - return indices[dayOffset]; - } - }; - return DaySeries; -}()); - -var DayTable = /** @class */ (function () { - function DayTable(daySeries, breakOnWeeks) { - var dates = daySeries.dates; - var daysPerRow; - var firstDay; - var rowCnt; - if (breakOnWeeks) { - // count columns until the day-of-week repeats - firstDay = dates[0].getUTCDay(); - for (daysPerRow = 1; daysPerRow < dates.length; daysPerRow++) { - if (dates[daysPerRow].getUTCDay() === firstDay) { - break; - } - } - rowCnt = Math.ceil(dates.length / daysPerRow); - } - else { - rowCnt = 1; - daysPerRow = dates.length; - } - this.rowCnt = rowCnt; - this.colCnt = daysPerRow; - this.daySeries = daySeries; - this.cells = this.buildCells(); - this.headerDates = this.buildHeaderDates(); - } - DayTable.prototype.buildCells = function () { - var rows = []; - for (var row = 0; row < this.rowCnt; row++) { - var cells = []; - for (var col = 0; col < this.colCnt; col++) { - cells.push(this.buildCell(row, col)); - } - rows.push(cells); - } - return rows; - }; - DayTable.prototype.buildCell = function (row, col) { - return { - date: this.daySeries.dates[row * this.colCnt + col] - }; - }; - DayTable.prototype.buildHeaderDates = function () { - var dates = []; - for (var col = 0; col < this.colCnt; col++) { - dates.push(this.cells[0][col].date); - } - return dates; - }; - DayTable.prototype.sliceRange = function (range) { - var colCnt = this.colCnt; - var seriesSeg = this.daySeries.sliceRange(range); - var segs = []; - if (seriesSeg) { - var firstIndex = seriesSeg.firstIndex, lastIndex = seriesSeg.lastIndex; - var index = firstIndex; - while (index <= lastIndex) { - var row = Math.floor(index / colCnt); - var nextIndex = Math.min((row + 1) * colCnt, lastIndex + 1); - segs.push({ - row: row, - firstCol: index % colCnt, - lastCol: (nextIndex - 1) % colCnt, - isStart: seriesSeg.isStart && index === firstIndex, - isEnd: seriesSeg.isEnd && (nextIndex - 1) === lastIndex - }); - index = nextIndex; - } - } - return segs; - }; - return DayTable; -}()); - -var Slicer = /** @class */ (function () { - function Slicer() { - this.sliceBusinessHours = memoize(this._sliceBusinessHours); - this.sliceDateSelection = memoize(this._sliceDateSpan); - this.sliceEventStore = memoize(this._sliceEventStore); - this.sliceEventDrag = memoize(this._sliceInteraction); - this.sliceEventResize = memoize(this._sliceInteraction); - } - Slicer.prototype.sliceProps = function (props, dateProfile, nextDayThreshold, component) { - var extraArgs = []; - for (var _i = 4; _i < arguments.length; _i++) { - extraArgs[_i - 4] = arguments[_i]; - } - var eventUiBases = props.eventUiBases; - var eventSegs = this.sliceEventStore.apply(this, [props.eventStore, eventUiBases, dateProfile, nextDayThreshold, component].concat(extraArgs)); - return { - dateSelectionSegs: this.sliceDateSelection.apply(this, [props.dateSelection, eventUiBases, component].concat(extraArgs)), - businessHourSegs: this.sliceBusinessHours.apply(this, [props.businessHours, dateProfile, nextDayThreshold, component].concat(extraArgs)), - fgEventSegs: eventSegs.fg, - bgEventSegs: eventSegs.bg, - eventDrag: this.sliceEventDrag.apply(this, [props.eventDrag, eventUiBases, dateProfile, nextDayThreshold, component].concat(extraArgs)), - eventResize: this.sliceEventResize.apply(this, [props.eventResize, eventUiBases, dateProfile, nextDayThreshold, component].concat(extraArgs)), - eventSelection: props.eventSelection - }; // TODO: give interactionSegs? - }; - Slicer.prototype.sliceNowDate = function (// does not memoize - date, component) { - var extraArgs = []; - for (var _i = 2; _i < arguments.length; _i++) { - extraArgs[_i - 2] = arguments[_i]; - } - return this._sliceDateSpan.apply(this, [{ range: { start: date, end: addMs(date, 1) }, allDay: false }, - {}, - component].concat(extraArgs)); - }; - Slicer.prototype._sliceBusinessHours = function (businessHours, dateProfile, nextDayThreshold, component) { - var extraArgs = []; - for (var _i = 4; _i < arguments.length; _i++) { - extraArgs[_i - 4] = arguments[_i]; - } - if (!businessHours) { - return []; - } - return this._sliceEventStore.apply(this, [expandRecurring(businessHours, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), component.calendar), - {}, - dateProfile, - nextDayThreshold, - component].concat(extraArgs)).bg; - }; - Slicer.prototype._sliceEventStore = function (eventStore, eventUiBases, dateProfile, nextDayThreshold, component) { - var extraArgs = []; - for (var _i = 5; _i < arguments.length; _i++) { - extraArgs[_i - 5] = arguments[_i]; - } - if (eventStore) { - var rangeRes = sliceEventStore(eventStore, eventUiBases, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), nextDayThreshold); - return { - bg: this.sliceEventRanges(rangeRes.bg, component, extraArgs), - fg: this.sliceEventRanges(rangeRes.fg, component, extraArgs) - }; - } - else { - return { bg: [], fg: [] }; - } - }; - Slicer.prototype._sliceInteraction = function (interaction, eventUiBases, dateProfile, nextDayThreshold, component) { - var extraArgs = []; - for (var _i = 5; _i < arguments.length; _i++) { - extraArgs[_i - 5] = arguments[_i]; - } - if (!interaction) { - return null; - } - var rangeRes = sliceEventStore(interaction.mutatedEvents, eventUiBases, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), nextDayThreshold); - return { - segs: this.sliceEventRanges(rangeRes.fg, component, extraArgs), - affectedInstances: interaction.affectedEvents.instances, - isEvent: interaction.isEvent, - sourceSeg: interaction.origSeg - }; - }; - Slicer.prototype._sliceDateSpan = function (dateSpan, eventUiBases, component) { - var extraArgs = []; - for (var _i = 3; _i < arguments.length; _i++) { - extraArgs[_i - 3] = arguments[_i]; - } - if (!dateSpan) { - return []; - } - var eventRange = fabricateEventRange(dateSpan, eventUiBases, component.calendar); - var segs = this.sliceRange.apply(this, [dateSpan.range].concat(extraArgs)); - for (var _a = 0, segs_1 = segs; _a < segs_1.length; _a++) { - var seg = segs_1[_a]; - seg.component = component; - seg.eventRange = eventRange; - } - return segs; - }; - /* - "complete" seg means it has component and eventRange - */ - Slicer.prototype.sliceEventRanges = function (eventRanges, component, // TODO: kill - extraArgs) { - var segs = []; - for (var _i = 0, eventRanges_1 = eventRanges; _i < eventRanges_1.length; _i++) { - var eventRange = eventRanges_1[_i]; - segs.push.apply(segs, this.sliceEventRange(eventRange, component, extraArgs)); - } - return segs; - }; - /* - "complete" seg means it has component and eventRange - */ - Slicer.prototype.sliceEventRange = function (eventRange, component, // TODO: kill - extraArgs) { - var segs = this.sliceRange.apply(this, [eventRange.range].concat(extraArgs)); - for (var _i = 0, segs_2 = segs; _i < segs_2.length; _i++) { - var seg = segs_2[_i]; - seg.component = component; - seg.eventRange = eventRange; - seg.isStart = eventRange.isStart && seg.isStart; - seg.isEnd = eventRange.isEnd && seg.isEnd; - } - return segs; - }; - return Slicer; -}()); -/* -for incorporating minTime/maxTime if appropriate -TODO: should be part of DateProfile! -TimelineDateProfile already does this btw -*/ -function computeActiveRange(dateProfile, isComponentAllDay) { - var range = dateProfile.activeRange; - if (isComponentAllDay) { - return range; - } - return { - start: addMs(range.start, dateProfile.minTime.milliseconds), - end: addMs(range.end, dateProfile.maxTime.milliseconds - 864e5) // 864e5 = ms in a day - }; -} - -// exports -// -------------------------------------------------------------------------------------------------- -var version = '4.3.1'; - -export { Calendar, Component, DateComponent, DateEnv, DateProfileGenerator, DayHeader, DaySeries, DayTable, ElementDragging, ElementScrollController, EmitterMixin, EventApi, FgEventRenderer, FillRenderer, Interaction, Mixin, NamedTimeZoneImpl, PositionCache, ScrollComponent, ScrollController, Slicer, Splitter, Theme, View, WindowScrollController, addDays, addDurations, addMs, addWeeks, allowContextMenu, allowSelection, appendToElement, applyAll, applyMutationToEventStore, applyStyle, applyStyleProp, asRoughMinutes, asRoughMs, asRoughSeconds, buildGotoAnchorHtml, buildSegCompareObj, capitaliseFirstLetter, combineEventUis, compareByFieldSpec, compareByFieldSpecs, compareNumbers, compensateScroll, computeClippingRect, computeEdges, computeFallbackHeaderFormat, computeHeightAndMargins, computeInnerRect, computeRect, computeVisibleDayRange, config, constrainPoint, createDuration, createElement, createEmptyEventStore, createEventInstance, createFormatter, createPlugin, cssToStr, debounce, diffDates, diffDayAndTime, diffDays, diffPoints, diffWeeks, diffWholeDays, diffWholeWeeks, disableCursor, distributeHeight, elementClosest, elementMatches, enableCursor, eventTupleToStore, filterEventStoreDefs, filterHash, findChildren, findElements, flexibleCompare, forceClassName, formatDate, formatIsoTimeString, formatRange, getAllDayHtml, getClippingParents, getDayClasses, getElSeg, getRectCenter, getRelevantEvents, globalDefaults, greatestDurationDenominator, hasBgRendering, htmlEscape, htmlToElement, insertAfterElement, interactionSettingsStore, interactionSettingsToStore, intersectRanges, intersectRects, isArraysEqual, isDateSpansEqual, isInt, isInteractionValid, isMultiDayRange, isPropsEqual, isPropsValid, isSingleDay, isValidDate, listenBySelector, mapHash, matchCellWidths, memoize, memoizeOutput, memoizeRendering, mergeEventStores, multiplyDuration, padStart, parseBusinessHours, parseDragMeta, parseEventDef, parseFieldSpecs, parse as parseMarker, pointInsideRect, prependToElement, preventContextMenu, preventDefault, preventSelection, processScopedUiProps, rangeContainsMarker, rangeContainsRange, rangesEqual, rangesIntersect, refineProps, removeElement, removeExact, renderDateCell, requestJson, sliceEventStore, startOfDay, subtractInnerElHeight, translateRect, uncompensateScroll, undistributeHeight, unpromisify, version, whenTransitionDone, wholeDivideDurations }; diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/main.js b/htdocs/public/high/plugins/fullcalendar/packages/core/main.js deleted file mode 100644 index ec0808d0..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/main.js +++ /dev/null @@ -1,8717 +0,0 @@ -/*! -FullCalendar Core Package v4.3.1 -Docs & License: https://fullcalendar.io/ -(c) 2019 Adam Shaw -*/ - -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : - typeof define === 'function' && define.amd ? define(['exports'], factory) : - (global = global || self, factory(global.FullCalendar = {})); -}(this, function (exports) { 'use strict'; - - // Creating - // ---------------------------------------------------------------------------------------------------------------- - var elementPropHash = { - className: true, - colSpan: true, - rowSpan: true - }; - var containerTagHash = { - '= rect.left && - point.left < rect.right && - point.top >= rect.top && - point.top < rect.bottom; - } - // Returns a new rectangle that is the intersection of the two rectangles. If they don't intersect, returns false - function intersectRects(rect1, rect2) { - var res = { - left: Math.max(rect1.left, rect2.left), - right: Math.min(rect1.right, rect2.right), - top: Math.max(rect1.top, rect2.top), - bottom: Math.min(rect1.bottom, rect2.bottom) - }; - if (res.left < res.right && res.top < res.bottom) { - return res; - } - return false; - } - function translateRect(rect, deltaX, deltaY) { - return { - left: rect.left + deltaX, - right: rect.right + deltaX, - top: rect.top + deltaY, - bottom: rect.bottom + deltaY - }; - } - // Returns a new point that will have been moved to reside within the given rectangle - function constrainPoint(point, rect) { - return { - left: Math.min(Math.max(point.left, rect.left), rect.right), - top: Math.min(Math.max(point.top, rect.top), rect.bottom) - }; - } - // Returns a point that is the center of the given rectangle - function getRectCenter(rect) { - return { - left: (rect.left + rect.right) / 2, - top: (rect.top + rect.bottom) / 2 - }; - } - // Subtracts point2's coordinates from point1's coordinates, returning a delta - function diffPoints(point1, point2) { - return { - left: point1.left - point2.left, - top: point1.top - point2.top - }; - } - - // Logic for determining if, when the element is right-to-left, the scrollbar appears on the left side - var isRtlScrollbarOnLeft = null; - function getIsRtlScrollbarOnLeft() { - if (isRtlScrollbarOnLeft === null) { - isRtlScrollbarOnLeft = computeIsRtlScrollbarOnLeft(); - } - return isRtlScrollbarOnLeft; - } - function computeIsRtlScrollbarOnLeft() { - var outerEl = createElement('div', { - style: { - position: 'absolute', - top: -1000, - left: 0, - border: 0, - padding: 0, - overflow: 'scroll', - direction: 'rtl' - } - }, '
'); - document.body.appendChild(outerEl); - var innerEl = outerEl.firstChild; - var res = innerEl.getBoundingClientRect().left > outerEl.getBoundingClientRect().left; - removeElement(outerEl); - return res; - } - // The scrollbar width computations in computeEdges are sometimes flawed when it comes to - // retina displays, rounding, and IE11. Massage them into a usable value. - function sanitizeScrollbarWidth(width) { - width = Math.max(0, width); // no negatives - width = Math.round(width); - return width; - } - - function computeEdges(el, getPadding) { - if (getPadding === void 0) { getPadding = false; } - var computedStyle = window.getComputedStyle(el); - var borderLeft = parseInt(computedStyle.borderLeftWidth, 10) || 0; - var borderRight = parseInt(computedStyle.borderRightWidth, 10) || 0; - var borderTop = parseInt(computedStyle.borderTopWidth, 10) || 0; - var borderBottom = parseInt(computedStyle.borderBottomWidth, 10) || 0; - // must use offset(Width|Height) because compatible with client(Width|Height) - var scrollbarLeftRight = sanitizeScrollbarWidth(el.offsetWidth - el.clientWidth - borderLeft - borderRight); - var scrollbarBottom = sanitizeScrollbarWidth(el.offsetHeight - el.clientHeight - borderTop - borderBottom); - var res = { - borderLeft: borderLeft, - borderRight: borderRight, - borderTop: borderTop, - borderBottom: borderBottom, - scrollbarBottom: scrollbarBottom, - scrollbarLeft: 0, - scrollbarRight: 0 - }; - if (getIsRtlScrollbarOnLeft() && computedStyle.direction === 'rtl') { // is the scrollbar on the left side? - res.scrollbarLeft = scrollbarLeftRight; - } - else { - res.scrollbarRight = scrollbarLeftRight; - } - if (getPadding) { - res.paddingLeft = parseInt(computedStyle.paddingLeft, 10) || 0; - res.paddingRight = parseInt(computedStyle.paddingRight, 10) || 0; - res.paddingTop = parseInt(computedStyle.paddingTop, 10) || 0; - res.paddingBottom = parseInt(computedStyle.paddingBottom, 10) || 0; - } - return res; - } - function computeInnerRect(el, goWithinPadding) { - if (goWithinPadding === void 0) { goWithinPadding = false; } - var outerRect = computeRect(el); - var edges = computeEdges(el, goWithinPadding); - var res = { - left: outerRect.left + edges.borderLeft + edges.scrollbarLeft, - right: outerRect.right - edges.borderRight - edges.scrollbarRight, - top: outerRect.top + edges.borderTop, - bottom: outerRect.bottom - edges.borderBottom - edges.scrollbarBottom - }; - if (goWithinPadding) { - res.left += edges.paddingLeft; - res.right -= edges.paddingRight; - res.top += edges.paddingTop; - res.bottom -= edges.paddingBottom; - } - return res; - } - function computeRect(el) { - var rect = el.getBoundingClientRect(); - return { - left: rect.left + window.pageXOffset, - top: rect.top + window.pageYOffset, - right: rect.right + window.pageXOffset, - bottom: rect.bottom + window.pageYOffset - }; - } - function computeViewportRect() { - return { - left: window.pageXOffset, - right: window.pageXOffset + document.documentElement.clientWidth, - top: window.pageYOffset, - bottom: window.pageYOffset + document.documentElement.clientHeight - }; - } - function computeHeightAndMargins(el) { - return el.getBoundingClientRect().height + computeVMargins(el); - } - function computeVMargins(el) { - var computed = window.getComputedStyle(el); - return parseInt(computed.marginTop, 10) + - parseInt(computed.marginBottom, 10); - } - // does not return window - function getClippingParents(el) { - var parents = []; - while (el instanceof HTMLElement) { // will stop when gets to document or null - var computedStyle = window.getComputedStyle(el); - if (computedStyle.position === 'fixed') { - break; - } - if ((/(auto|scroll)/).test(computedStyle.overflow + computedStyle.overflowY + computedStyle.overflowX)) { - parents.push(el); - } - el = el.parentNode; - } - return parents; - } - function computeClippingRect(el) { - return getClippingParents(el) - .map(function (el) { - return computeInnerRect(el); - }) - .concat(computeViewportRect()) - .reduce(function (rect0, rect1) { - return intersectRects(rect0, rect1) || rect1; // should always intersect - }); - } - - // Stops a mouse/touch event from doing it's native browser action - function preventDefault(ev) { - ev.preventDefault(); - } - // Event Delegation - // ---------------------------------------------------------------------------------------------------------------- - function listenBySelector(container, eventType, selector, handler) { - function realHandler(ev) { - var matchedChild = elementClosest(ev.target, selector); - if (matchedChild) { - handler.call(matchedChild, ev, matchedChild); - } - } - container.addEventListener(eventType, realHandler); - return function () { - container.removeEventListener(eventType, realHandler); - }; - } - function listenToHoverBySelector(container, selector, onMouseEnter, onMouseLeave) { - var currentMatchedChild; - return listenBySelector(container, 'mouseover', selector, function (ev, matchedChild) { - if (matchedChild !== currentMatchedChild) { - currentMatchedChild = matchedChild; - onMouseEnter(ev, matchedChild); - var realOnMouseLeave_1 = function (ev) { - currentMatchedChild = null; - onMouseLeave(ev, matchedChild); - matchedChild.removeEventListener('mouseleave', realOnMouseLeave_1); - }; - // listen to the next mouseleave, and then unattach - matchedChild.addEventListener('mouseleave', realOnMouseLeave_1); - } - }); - } - // Animation - // ---------------------------------------------------------------------------------------------------------------- - var transitionEventNames = [ - 'webkitTransitionEnd', - 'otransitionend', - 'oTransitionEnd', - 'msTransitionEnd', - 'transitionend' - ]; - // triggered only when the next single subsequent transition finishes - function whenTransitionDone(el, callback) { - var realCallback = function (ev) { - callback(ev); - transitionEventNames.forEach(function (eventName) { - el.removeEventListener(eventName, realCallback); - }); - }; - transitionEventNames.forEach(function (eventName) { - el.addEventListener(eventName, realCallback); // cross-browser way to determine when the transition finishes - }); - } - - var DAY_IDS = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat']; - // Adding - function addWeeks(m, n) { - var a = dateToUtcArray(m); - a[2] += n * 7; - return arrayToUtcDate(a); - } - function addDays(m, n) { - var a = dateToUtcArray(m); - a[2] += n; - return arrayToUtcDate(a); - } - function addMs(m, n) { - var a = dateToUtcArray(m); - a[6] += n; - return arrayToUtcDate(a); - } - // Diffing (all return floats) - function diffWeeks(m0, m1) { - return diffDays(m0, m1) / 7; - } - function diffDays(m0, m1) { - return (m1.valueOf() - m0.valueOf()) / (1000 * 60 * 60 * 24); - } - function diffHours(m0, m1) { - return (m1.valueOf() - m0.valueOf()) / (1000 * 60 * 60); - } - function diffMinutes(m0, m1) { - return (m1.valueOf() - m0.valueOf()) / (1000 * 60); - } - function diffSeconds(m0, m1) { - return (m1.valueOf() - m0.valueOf()) / 1000; - } - function diffDayAndTime(m0, m1) { - var m0day = startOfDay(m0); - var m1day = startOfDay(m1); - return { - years: 0, - months: 0, - days: Math.round(diffDays(m0day, m1day)), - milliseconds: (m1.valueOf() - m1day.valueOf()) - (m0.valueOf() - m0day.valueOf()) - }; - } - // Diffing Whole Units - function diffWholeWeeks(m0, m1) { - var d = diffWholeDays(m0, m1); - if (d !== null && d % 7 === 0) { - return d / 7; - } - return null; - } - function diffWholeDays(m0, m1) { - if (timeAsMs(m0) === timeAsMs(m1)) { - return Math.round(diffDays(m0, m1)); - } - return null; - } - // Start-Of - function startOfDay(m) { - return arrayToUtcDate([ - m.getUTCFullYear(), - m.getUTCMonth(), - m.getUTCDate() - ]); - } - function startOfHour(m) { - return arrayToUtcDate([ - m.getUTCFullYear(), - m.getUTCMonth(), - m.getUTCDate(), - m.getUTCHours() - ]); - } - function startOfMinute(m) { - return arrayToUtcDate([ - m.getUTCFullYear(), - m.getUTCMonth(), - m.getUTCDate(), - m.getUTCHours(), - m.getUTCMinutes() - ]); - } - function startOfSecond(m) { - return arrayToUtcDate([ - m.getUTCFullYear(), - m.getUTCMonth(), - m.getUTCDate(), - m.getUTCHours(), - m.getUTCMinutes(), - m.getUTCSeconds() - ]); - } - // Week Computation - function weekOfYear(marker, dow, doy) { - var y = marker.getUTCFullYear(); - var w = weekOfGivenYear(marker, y, dow, doy); - if (w < 1) { - return weekOfGivenYear(marker, y - 1, dow, doy); - } - var nextW = weekOfGivenYear(marker, y + 1, dow, doy); - if (nextW >= 1) { - return Math.min(w, nextW); - } - return w; - } - function weekOfGivenYear(marker, year, dow, doy) { - var firstWeekStart = arrayToUtcDate([year, 0, 1 + firstWeekOffset(year, dow, doy)]); - var dayStart = startOfDay(marker); - var days = Math.round(diffDays(firstWeekStart, dayStart)); - return Math.floor(days / 7) + 1; // zero-indexed - } - // start-of-first-week - start-of-year - function firstWeekOffset(year, dow, doy) { - // first-week day -- which january is always in the first week (4 for iso, 1 for other) - var fwd = 7 + dow - doy; - // first-week day local weekday -- which local weekday is fwd - var fwdlw = (7 + arrayToUtcDate([year, 0, fwd]).getUTCDay() - dow) % 7; - return -fwdlw + fwd - 1; - } - // Array Conversion - function dateToLocalArray(date) { - return [ - date.getFullYear(), - date.getMonth(), - date.getDate(), - date.getHours(), - date.getMinutes(), - date.getSeconds(), - date.getMilliseconds() - ]; - } - function arrayToLocalDate(a) { - return new Date(a[0], a[1] || 0, a[2] == null ? 1 : a[2], // day of month - a[3] || 0, a[4] || 0, a[5] || 0); - } - function dateToUtcArray(date) { - return [ - date.getUTCFullYear(), - date.getUTCMonth(), - date.getUTCDate(), - date.getUTCHours(), - date.getUTCMinutes(), - date.getUTCSeconds(), - date.getUTCMilliseconds() - ]; - } - function arrayToUtcDate(a) { - // according to web standards (and Safari), a month index is required. - // massage if only given a year. - if (a.length === 1) { - a = a.concat([0]); - } - return new Date(Date.UTC.apply(Date, a)); - } - // Other Utils - function isValidDate(m) { - return !isNaN(m.valueOf()); - } - function timeAsMs(m) { - return m.getUTCHours() * 1000 * 60 * 60 + - m.getUTCMinutes() * 1000 * 60 + - m.getUTCSeconds() * 1000 + - m.getUTCMilliseconds(); - } - - var INTERNAL_UNITS = ['years', 'months', 'days', 'milliseconds']; - var PARSE_RE = /^(-?)(?:(\d+)\.)?(\d+):(\d\d)(?::(\d\d)(?:\.(\d\d\d))?)?/; - // Parsing and Creation - function createDuration(input, unit) { - var _a; - if (typeof input === 'string') { - return parseString(input); - } - else if (typeof input === 'object' && input) { // non-null object - return normalizeObject(input); - } - else if (typeof input === 'number') { - return normalizeObject((_a = {}, _a[unit || 'milliseconds'] = input, _a)); - } - else { - return null; - } - } - function parseString(s) { - var m = PARSE_RE.exec(s); - if (m) { - var sign = m[1] ? -1 : 1; - return { - years: 0, - months: 0, - days: sign * (m[2] ? parseInt(m[2], 10) : 0), - milliseconds: sign * ((m[3] ? parseInt(m[3], 10) : 0) * 60 * 60 * 1000 + // hours - (m[4] ? parseInt(m[4], 10) : 0) * 60 * 1000 + // minutes - (m[5] ? parseInt(m[5], 10) : 0) * 1000 + // seconds - (m[6] ? parseInt(m[6], 10) : 0) // ms - ) - }; - } - return null; - } - function normalizeObject(obj) { - return { - years: obj.years || obj.year || 0, - months: obj.months || obj.month || 0, - days: (obj.days || obj.day || 0) + - getWeeksFromInput(obj) * 7, - milliseconds: (obj.hours || obj.hour || 0) * 60 * 60 * 1000 + // hours - (obj.minutes || obj.minute || 0) * 60 * 1000 + // minutes - (obj.seconds || obj.second || 0) * 1000 + // seconds - (obj.milliseconds || obj.millisecond || obj.ms || 0) // ms - }; - } - function getWeeksFromInput(obj) { - return obj.weeks || obj.week || 0; - } - // Equality - function durationsEqual(d0, d1) { - return d0.years === d1.years && - d0.months === d1.months && - d0.days === d1.days && - d0.milliseconds === d1.milliseconds; - } - function isSingleDay(dur) { - return dur.years === 0 && dur.months === 0 && dur.days === 1 && dur.milliseconds === 0; - } - // Simple Math - function addDurations(d0, d1) { - return { - years: d0.years + d1.years, - months: d0.months + d1.months, - days: d0.days + d1.days, - milliseconds: d0.milliseconds + d1.milliseconds - }; - } - function subtractDurations(d1, d0) { - return { - years: d1.years - d0.years, - months: d1.months - d0.months, - days: d1.days - d0.days, - milliseconds: d1.milliseconds - d0.milliseconds - }; - } - function multiplyDuration(d, n) { - return { - years: d.years * n, - months: d.months * n, - days: d.days * n, - milliseconds: d.milliseconds * n - }; - } - // Conversions - // "Rough" because they are based on average-case Gregorian months/years - function asRoughYears(dur) { - return asRoughDays(dur) / 365; - } - function asRoughMonths(dur) { - return asRoughDays(dur) / 30; - } - function asRoughDays(dur) { - return asRoughMs(dur) / 864e5; - } - function asRoughMinutes(dur) { - return asRoughMs(dur) / (1000 * 60); - } - function asRoughSeconds(dur) { - return asRoughMs(dur) / 1000; - } - function asRoughMs(dur) { - return dur.years * (365 * 864e5) + - dur.months * (30 * 864e5) + - dur.days * 864e5 + - dur.milliseconds; - } - // Advanced Math - function wholeDivideDurations(numerator, denominator) { - var res = null; - for (var i = 0; i < INTERNAL_UNITS.length; i++) { - var unit = INTERNAL_UNITS[i]; - if (denominator[unit]) { - var localRes = numerator[unit] / denominator[unit]; - if (!isInt(localRes) || (res !== null && res !== localRes)) { - return null; - } - res = localRes; - } - else if (numerator[unit]) { - // needs to divide by something but can't! - return null; - } - } - return res; - } - function greatestDurationDenominator(dur, dontReturnWeeks) { - var ms = dur.milliseconds; - if (ms) { - if (ms % 1000 !== 0) { - return { unit: 'millisecond', value: ms }; - } - if (ms % (1000 * 60) !== 0) { - return { unit: 'second', value: ms / 1000 }; - } - if (ms % (1000 * 60 * 60) !== 0) { - return { unit: 'minute', value: ms / (1000 * 60) }; - } - if (ms) { - return { unit: 'hour', value: ms / (1000 * 60 * 60) }; - } - } - if (dur.days) { - if (!dontReturnWeeks && dur.days % 7 === 0) { - return { unit: 'week', value: dur.days / 7 }; - } - return { unit: 'day', value: dur.days }; - } - if (dur.months) { - return { unit: 'month', value: dur.months }; - } - if (dur.years) { - return { unit: 'year', value: dur.years }; - } - return { unit: 'millisecond', value: 0 }; - } - - /* FullCalendar-specific DOM Utilities - ----------------------------------------------------------------------------------------------------------------------*/ - // Given the scrollbar widths of some other container, create borders/margins on rowEls in order to match the left - // and right space that was offset by the scrollbars. A 1-pixel border first, then margin beyond that. - function compensateScroll(rowEl, scrollbarWidths) { - if (scrollbarWidths.left) { - applyStyle(rowEl, { - borderLeftWidth: 1, - marginLeft: scrollbarWidths.left - 1 - }); - } - if (scrollbarWidths.right) { - applyStyle(rowEl, { - borderRightWidth: 1, - marginRight: scrollbarWidths.right - 1 - }); - } - } - // Undoes compensateScroll and restores all borders/margins - function uncompensateScroll(rowEl) { - applyStyle(rowEl, { - marginLeft: '', - marginRight: '', - borderLeftWidth: '', - borderRightWidth: '' - }); - } - // Make the mouse cursor express that an event is not allowed in the current area - function disableCursor() { - document.body.classList.add('fc-not-allowed'); - } - // Returns the mouse cursor to its original look - function enableCursor() { - document.body.classList.remove('fc-not-allowed'); - } - // Given a total available height to fill, have `els` (essentially child rows) expand to accomodate. - // By default, all elements that are shorter than the recommended height are expanded uniformly, not considering - // any other els that are already too tall. if `shouldRedistribute` is on, it considers these tall rows and - // reduces the available height. - function distributeHeight(els, availableHeight, shouldRedistribute) { - // *FLOORING NOTE*: we floor in certain places because zoom can give inaccurate floating-point dimensions, - // and it is better to be shorter than taller, to avoid creating unnecessary scrollbars. - var minOffset1 = Math.floor(availableHeight / els.length); // for non-last element - var minOffset2 = Math.floor(availableHeight - minOffset1 * (els.length - 1)); // for last element *FLOORING NOTE* - var flexEls = []; // elements that are allowed to expand. array of DOM nodes - var flexOffsets = []; // amount of vertical space it takes up - var flexHeights = []; // actual css height - var usedHeight = 0; - undistributeHeight(els); // give all elements their natural height - // find elements that are below the recommended height (expandable). - // important to query for heights in a single first pass (to avoid reflow oscillation). - els.forEach(function (el, i) { - var minOffset = i === els.length - 1 ? minOffset2 : minOffset1; - var naturalHeight = el.getBoundingClientRect().height; - var naturalOffset = naturalHeight + computeVMargins(el); - if (naturalOffset < minOffset) { - flexEls.push(el); - flexOffsets.push(naturalOffset); - flexHeights.push(naturalHeight); - } - else { - // this element stretches past recommended height (non-expandable). mark the space as occupied. - usedHeight += naturalOffset; - } - }); - // readjust the recommended height to only consider the height available to non-maxed-out rows. - if (shouldRedistribute) { - availableHeight -= usedHeight; - minOffset1 = Math.floor(availableHeight / flexEls.length); - minOffset2 = Math.floor(availableHeight - minOffset1 * (flexEls.length - 1)); // *FLOORING NOTE* - } - // assign heights to all expandable elements - flexEls.forEach(function (el, i) { - var minOffset = i === flexEls.length - 1 ? minOffset2 : minOffset1; - var naturalOffset = flexOffsets[i]; - var naturalHeight = flexHeights[i]; - var newHeight = minOffset - (naturalOffset - naturalHeight); // subtract the margin/padding - if (naturalOffset < minOffset) { // we check this again because redistribution might have changed things - el.style.height = newHeight + 'px'; - } - }); - } - // Undoes distrubuteHeight, restoring all els to their natural height - function undistributeHeight(els) { - els.forEach(function (el) { - el.style.height = ''; - }); - } - // Given `els`, a set of cells, find the cell with the largest natural width and set the widths of all the - // cells to be that width. - // PREREQUISITE: if you want a cell to take up width, it needs to have a single inner element w/ display:inline - function matchCellWidths(els) { - var maxInnerWidth = 0; - els.forEach(function (el) { - var innerEl = el.firstChild; // hopefully an element - if (innerEl instanceof HTMLElement) { - var innerWidth_1 = innerEl.getBoundingClientRect().width; - if (innerWidth_1 > maxInnerWidth) { - maxInnerWidth = innerWidth_1; - } - } - }); - maxInnerWidth++; // sometimes not accurate of width the text needs to stay on one line. insurance - els.forEach(function (el) { - el.style.width = maxInnerWidth + 'px'; - }); - return maxInnerWidth; - } - // Given one element that resides inside another, - // Subtracts the height of the inner element from the outer element. - function subtractInnerElHeight(outerEl, innerEl) { - // effin' IE8/9/10/11 sometimes returns 0 for dimensions. this weird hack was the only thing that worked - var reflowStyleProps = { - position: 'relative', - left: -1 // ensure reflow in case the el was already relative. negative is less likely to cause new scroll - }; - applyStyle(outerEl, reflowStyleProps); - applyStyle(innerEl, reflowStyleProps); - var diff = // grab the dimensions - outerEl.getBoundingClientRect().height - - innerEl.getBoundingClientRect().height; - // undo hack - var resetStyleProps = { position: '', left: '' }; - applyStyle(outerEl, resetStyleProps); - applyStyle(innerEl, resetStyleProps); - return diff; - } - /* Selection - ----------------------------------------------------------------------------------------------------------------------*/ - function preventSelection(el) { - el.classList.add('fc-unselectable'); - el.addEventListener('selectstart', preventDefault); - } - function allowSelection(el) { - el.classList.remove('fc-unselectable'); - el.removeEventListener('selectstart', preventDefault); - } - /* Context Menu - ----------------------------------------------------------------------------------------------------------------------*/ - function preventContextMenu(el) { - el.addEventListener('contextmenu', preventDefault); - } - function allowContextMenu(el) { - el.removeEventListener('contextmenu', preventDefault); - } - /* Object Ordering by Field - ----------------------------------------------------------------------------------------------------------------------*/ - function parseFieldSpecs(input) { - var specs = []; - var tokens = []; - var i; - var token; - if (typeof input === 'string') { - tokens = input.split(/\s*,\s*/); - } - else if (typeof input === 'function') { - tokens = [input]; - } - else if (Array.isArray(input)) { - tokens = input; - } - for (i = 0; i < tokens.length; i++) { - token = tokens[i]; - if (typeof token === 'string') { - specs.push(token.charAt(0) === '-' ? - { field: token.substring(1), order: -1 } : - { field: token, order: 1 }); - } - else if (typeof token === 'function') { - specs.push({ func: token }); - } - } - return specs; - } - function compareByFieldSpecs(obj0, obj1, fieldSpecs) { - var i; - var cmp; - for (i = 0; i < fieldSpecs.length; i++) { - cmp = compareByFieldSpec(obj0, obj1, fieldSpecs[i]); - if (cmp) { - return cmp; - } - } - return 0; - } - function compareByFieldSpec(obj0, obj1, fieldSpec) { - if (fieldSpec.func) { - return fieldSpec.func(obj0, obj1); - } - return flexibleCompare(obj0[fieldSpec.field], obj1[fieldSpec.field]) - * (fieldSpec.order || 1); - } - function flexibleCompare(a, b) { - if (!a && !b) { - return 0; - } - if (b == null) { - return -1; - } - if (a == null) { - return 1; - } - if (typeof a === 'string' || typeof b === 'string') { - return String(a).localeCompare(String(b)); - } - return a - b; - } - /* String Utilities - ----------------------------------------------------------------------------------------------------------------------*/ - function capitaliseFirstLetter(str) { - return str.charAt(0).toUpperCase() + str.slice(1); - } - function padStart(val, len) { - var s = String(val); - return '000'.substr(0, len - s.length) + s; - } - /* Number Utilities - ----------------------------------------------------------------------------------------------------------------------*/ - function compareNumbers(a, b) { - return a - b; - } - function isInt(n) { - return n % 1 === 0; - } - /* Weird Utilities - ----------------------------------------------------------------------------------------------------------------------*/ - function applyAll(functions, thisObj, args) { - if (typeof functions === 'function') { // supplied a single function - functions = [functions]; - } - if (functions) { - var i = void 0; - var ret = void 0; - for (i = 0; i < functions.length; i++) { - ret = functions[i].apply(thisObj, args) || ret; - } - return ret; - } - } - function firstDefined() { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - for (var i = 0; i < args.length; i++) { - if (args[i] !== undefined) { - return args[i]; - } - } - } - // Returns a function, that, as long as it continues to be invoked, will not - // be triggered. The function will be called after it stops being called for - // N milliseconds. If `immediate` is passed, trigger the function on the - // leading edge, instead of the trailing. - // https://github.com/jashkenas/underscore/blob/1.6.0/underscore.js#L714 - function debounce(func, wait) { - var timeout; - var args; - var context; - var timestamp; - var result; - var later = function () { - var last = new Date().valueOf() - timestamp; - if (last < wait) { - timeout = setTimeout(later, wait - last); - } - else { - timeout = null; - result = func.apply(context, args); - context = args = null; - } - }; - return function () { - context = this; - args = arguments; - timestamp = new Date().valueOf(); - if (!timeout) { - timeout = setTimeout(later, wait); - } - return result; - }; - } - // Number and Boolean are only types that defaults or not computed for - // TODO: write more comments - function refineProps(rawProps, processors, defaults, leftoverProps) { - if (defaults === void 0) { defaults = {}; } - var refined = {}; - for (var key in processors) { - var processor = processors[key]; - if (rawProps[key] !== undefined) { - // found - if (processor === Function) { - refined[key] = typeof rawProps[key] === 'function' ? rawProps[key] : null; - } - else if (processor) { // a refining function? - refined[key] = processor(rawProps[key]); - } - else { - refined[key] = rawProps[key]; - } - } - else if (defaults[key] !== undefined) { - // there's an explicit default - refined[key] = defaults[key]; - } - else { - // must compute a default - if (processor === String) { - refined[key] = ''; // empty string is default for String - } - else if (!processor || processor === Number || processor === Boolean || processor === Function) { - refined[key] = null; // assign null for other non-custom processor funcs - } - else { - refined[key] = processor(null); // run the custom processor func - } - } - } - if (leftoverProps) { - for (var key in rawProps) { - if (processors[key] === undefined) { - leftoverProps[key] = rawProps[key]; - } - } - } - return refined; - } - /* Date stuff that doesn't belong in datelib core - ----------------------------------------------------------------------------------------------------------------------*/ - // given a timed range, computes an all-day range that has the same exact duration, - // but whose start time is aligned with the start of the day. - function computeAlignedDayRange(timedRange) { - var dayCnt = Math.floor(diffDays(timedRange.start, timedRange.end)) || 1; - var start = startOfDay(timedRange.start); - var end = addDays(start, dayCnt); - return { start: start, end: end }; - } - // given a timed range, computes an all-day range based on how for the end date bleeds into the next day - // TODO: give nextDayThreshold a default arg - function computeVisibleDayRange(timedRange, nextDayThreshold) { - if (nextDayThreshold === void 0) { nextDayThreshold = createDuration(0); } - var startDay = null; - var endDay = null; - if (timedRange.end) { - endDay = startOfDay(timedRange.end); - var endTimeMS = timedRange.end.valueOf() - endDay.valueOf(); // # of milliseconds into `endDay` - // If the end time is actually inclusively part of the next day and is equal to or - // beyond the next day threshold, adjust the end to be the exclusive end of `endDay`. - // Otherwise, leaving it as inclusive will cause it to exclude `endDay`. - if (endTimeMS && endTimeMS >= asRoughMs(nextDayThreshold)) { - endDay = addDays(endDay, 1); - } - } - if (timedRange.start) { - startDay = startOfDay(timedRange.start); // the beginning of the day the range starts - // If end is within `startDay` but not past nextDayThreshold, assign the default duration of one day. - if (endDay && endDay <= startDay) { - endDay = addDays(startDay, 1); - } - } - return { start: startDay, end: endDay }; - } - // spans from one day into another? - function isMultiDayRange(range) { - var visibleRange = computeVisibleDayRange(range); - return diffDays(visibleRange.start, visibleRange.end) > 1; - } - function diffDates(date0, date1, dateEnv, largeUnit) { - if (largeUnit === 'year') { - return createDuration(dateEnv.diffWholeYears(date0, date1), 'year'); - } - else if (largeUnit === 'month') { - return createDuration(dateEnv.diffWholeMonths(date0, date1), 'month'); - } - else { - return diffDayAndTime(date0, date1); // returns a duration - } - } - - /*! ***************************************************************************** - Copyright (c) Microsoft Corporation. All rights reserved. - Licensed under the Apache License, Version 2.0 (the "License"); you may not use - this file except in compliance with the License. You may obtain a copy of the - License at http://www.apache.org/licenses/LICENSE-2.0 - - THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED - WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, - MERCHANTABLITY OR NON-INFRINGEMENT. - - See the Apache Version 2.0 License for specific language governing permissions - and limitations under the License. - ***************************************************************************** */ - /* global Reflect, Promise */ - - var extendStatics = function(d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - - function __extends(d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - } - - var __assign = function() { - __assign = Object.assign || function __assign(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); - }; - - function parseRecurring(eventInput, allDayDefault, dateEnv, recurringTypes, leftovers) { - for (var i = 0; i < recurringTypes.length; i++) { - var localLeftovers = {}; - var parsed = recurringTypes[i].parse(eventInput, localLeftovers, dateEnv); - if (parsed) { - var allDay = localLeftovers.allDay; - delete localLeftovers.allDay; // remove from leftovers - if (allDay == null) { - allDay = allDayDefault; - if (allDay == null) { - allDay = parsed.allDayGuess; - if (allDay == null) { - allDay = false; - } - } - } - __assign(leftovers, localLeftovers); - return { - allDay: allDay, - duration: parsed.duration, - typeData: parsed.typeData, - typeId: i - }; - } - } - return null; - } - /* - Event MUST have a recurringDef - */ - function expandRecurringRanges(eventDef, duration, framingRange, dateEnv, recurringTypes) { - var typeDef = recurringTypes[eventDef.recurringDef.typeId]; - var markers = typeDef.expand(eventDef.recurringDef.typeData, { - start: dateEnv.subtract(framingRange.start, duration), - end: framingRange.end - }, dateEnv); - // the recurrence plugins don't guarantee that all-day events are start-of-day, so we have to - if (eventDef.allDay) { - markers = markers.map(startOfDay); - } - return markers; - } - - var hasOwnProperty = Object.prototype.hasOwnProperty; - // Merges an array of objects into a single object. - // The second argument allows for an array of property names who's object values will be merged together. - function mergeProps(propObjs, complexProps) { - var dest = {}; - var i; - var name; - var complexObjs; - var j; - var val; - var props; - if (complexProps) { - for (i = 0; i < complexProps.length; i++) { - name = complexProps[i]; - complexObjs = []; - // collect the trailing object values, stopping when a non-object is discovered - for (j = propObjs.length - 1; j >= 0; j--) { - val = propObjs[j][name]; - if (typeof val === 'object' && val) { // non-null object - complexObjs.unshift(val); - } - else if (val !== undefined) { - dest[name] = val; // if there were no objects, this value will be used - break; - } - } - // if the trailing values were objects, use the merged value - if (complexObjs.length) { - dest[name] = mergeProps(complexObjs); - } - } - } - // copy values into the destination, going from last to first - for (i = propObjs.length - 1; i >= 0; i--) { - props = propObjs[i]; - for (name in props) { - if (!(name in dest)) { // if already assigned by previous props or complex props, don't reassign - dest[name] = props[name]; - } - } - } - return dest; - } - function filterHash(hash, func) { - var filtered = {}; - for (var key in hash) { - if (func(hash[key], key)) { - filtered[key] = hash[key]; - } - } - return filtered; - } - function mapHash(hash, func) { - var newHash = {}; - for (var key in hash) { - newHash[key] = func(hash[key], key); - } - return newHash; - } - function arrayToHash(a) { - var hash = {}; - for (var _i = 0, a_1 = a; _i < a_1.length; _i++) { - var item = a_1[_i]; - hash[item] = true; - } - return hash; - } - function hashValuesToArray(obj) { - var a = []; - for (var key in obj) { - a.push(obj[key]); - } - return a; - } - function isPropsEqual(obj0, obj1) { - for (var key in obj0) { - if (hasOwnProperty.call(obj0, key)) { - if (!(key in obj1)) { - return false; - } - } - } - for (var key in obj1) { - if (hasOwnProperty.call(obj1, key)) { - if (obj0[key] !== obj1[key]) { - return false; - } - } - } - return true; - } - - function parseEvents(rawEvents, sourceId, calendar, allowOpenRange) { - var eventStore = createEmptyEventStore(); - for (var _i = 0, rawEvents_1 = rawEvents; _i < rawEvents_1.length; _i++) { - var rawEvent = rawEvents_1[_i]; - var tuple = parseEvent(rawEvent, sourceId, calendar, allowOpenRange); - if (tuple) { - eventTupleToStore(tuple, eventStore); - } - } - return eventStore; - } - function eventTupleToStore(tuple, eventStore) { - if (eventStore === void 0) { eventStore = createEmptyEventStore(); } - eventStore.defs[tuple.def.defId] = tuple.def; - if (tuple.instance) { - eventStore.instances[tuple.instance.instanceId] = tuple.instance; - } - return eventStore; - } - function expandRecurring(eventStore, framingRange, calendar) { - var dateEnv = calendar.dateEnv; - var defs = eventStore.defs, instances = eventStore.instances; - // remove existing recurring instances - instances = filterHash(instances, function (instance) { - return !defs[instance.defId].recurringDef; - }); - for (var defId in defs) { - var def = defs[defId]; - if (def.recurringDef) { - var duration = def.recurringDef.duration; - if (!duration) { - duration = def.allDay ? - calendar.defaultAllDayEventDuration : - calendar.defaultTimedEventDuration; - } - var starts = expandRecurringRanges(def, duration, framingRange, calendar.dateEnv, calendar.pluginSystem.hooks.recurringTypes); - for (var _i = 0, starts_1 = starts; _i < starts_1.length; _i++) { - var start = starts_1[_i]; - var instance = createEventInstance(defId, { - start: start, - end: dateEnv.add(start, duration) - }); - instances[instance.instanceId] = instance; - } - } - } - return { defs: defs, instances: instances }; - } - // retrieves events that have the same groupId as the instance specified by `instanceId` - // or they are the same as the instance. - // why might instanceId not be in the store? an event from another calendar? - function getRelevantEvents(eventStore, instanceId) { - var instance = eventStore.instances[instanceId]; - if (instance) { - var def_1 = eventStore.defs[instance.defId]; - // get events/instances with same group - var newStore = filterEventStoreDefs(eventStore, function (lookDef) { - return isEventDefsGrouped(def_1, lookDef); - }); - // add the original - // TODO: wish we could use eventTupleToStore or something like it - newStore.defs[def_1.defId] = def_1; - newStore.instances[instance.instanceId] = instance; - return newStore; - } - return createEmptyEventStore(); - } - function isEventDefsGrouped(def0, def1) { - return Boolean(def0.groupId && def0.groupId === def1.groupId); - } - function transformRawEvents(rawEvents, eventSource, calendar) { - var calEachTransform = calendar.opt('eventDataTransform'); - var sourceEachTransform = eventSource ? eventSource.eventDataTransform : null; - if (sourceEachTransform) { - rawEvents = transformEachRawEvent(rawEvents, sourceEachTransform); - } - if (calEachTransform) { - rawEvents = transformEachRawEvent(rawEvents, calEachTransform); - } - return rawEvents; - } - function transformEachRawEvent(rawEvents, func) { - var refinedEvents; - if (!func) { - refinedEvents = rawEvents; - } - else { - refinedEvents = []; - for (var _i = 0, rawEvents_2 = rawEvents; _i < rawEvents_2.length; _i++) { - var rawEvent = rawEvents_2[_i]; - var refinedEvent = func(rawEvent); - if (refinedEvent) { - refinedEvents.push(refinedEvent); - } - else if (refinedEvent == null) { - refinedEvents.push(rawEvent); - } // if a different falsy value, do nothing - } - } - return refinedEvents; - } - function createEmptyEventStore() { - return { defs: {}, instances: {} }; - } - function mergeEventStores(store0, store1) { - return { - defs: __assign({}, store0.defs, store1.defs), - instances: __assign({}, store0.instances, store1.instances) - }; - } - function filterEventStoreDefs(eventStore, filterFunc) { - var defs = filterHash(eventStore.defs, filterFunc); - var instances = filterHash(eventStore.instances, function (instance) { - return defs[instance.defId]; // still exists? - }); - return { defs: defs, instances: instances }; - } - - function parseRange(input, dateEnv) { - var start = null; - var end = null; - if (input.start) { - start = dateEnv.createMarker(input.start); - } - if (input.end) { - end = dateEnv.createMarker(input.end); - } - if (!start && !end) { - return null; - } - if (start && end && end < start) { - return null; - } - return { start: start, end: end }; - } - // SIDE-EFFECT: will mutate ranges. - // Will return a new array result. - function invertRanges(ranges, constraintRange) { - var invertedRanges = []; - var start = constraintRange.start; // the end of the previous range. the start of the new range - var i; - var dateRange; - // ranges need to be in order. required for our date-walking algorithm - ranges.sort(compareRanges); - for (i = 0; i < ranges.length; i++) { - dateRange = ranges[i]; - // add the span of time before the event (if there is any) - if (dateRange.start > start) { // compare millisecond time (skip any ambig logic) - invertedRanges.push({ start: start, end: dateRange.start }); - } - if (dateRange.end > start) { - start = dateRange.end; - } - } - // add the span of time after the last event (if there is any) - if (start < constraintRange.end) { // compare millisecond time (skip any ambig logic) - invertedRanges.push({ start: start, end: constraintRange.end }); - } - return invertedRanges; - } - function compareRanges(range0, range1) { - return range0.start.valueOf() - range1.start.valueOf(); // earlier ranges go first - } - function intersectRanges(range0, range1) { - var start = range0.start; - var end = range0.end; - var newRange = null; - if (range1.start !== null) { - if (start === null) { - start = range1.start; - } - else { - start = new Date(Math.max(start.valueOf(), range1.start.valueOf())); - } - } - if (range1.end != null) { - if (end === null) { - end = range1.end; - } - else { - end = new Date(Math.min(end.valueOf(), range1.end.valueOf())); - } - } - if (start === null || end === null || start < end) { - newRange = { start: start, end: end }; - } - return newRange; - } - function rangesEqual(range0, range1) { - return (range0.start === null ? null : range0.start.valueOf()) === (range1.start === null ? null : range1.start.valueOf()) && - (range0.end === null ? null : range0.end.valueOf()) === (range1.end === null ? null : range1.end.valueOf()); - } - function rangesIntersect(range0, range1) { - return (range0.end === null || range1.start === null || range0.end > range1.start) && - (range0.start === null || range1.end === null || range0.start < range1.end); - } - function rangeContainsRange(outerRange, innerRange) { - return (outerRange.start === null || (innerRange.start !== null && innerRange.start >= outerRange.start)) && - (outerRange.end === null || (innerRange.end !== null && innerRange.end <= outerRange.end)); - } - function rangeContainsMarker(range, date) { - return (range.start === null || date >= range.start) && - (range.end === null || date < range.end); - } - // If the given date is not within the given range, move it inside. - // (If it's past the end, make it one millisecond before the end). - function constrainMarkerToRange(date, range) { - if (range.start != null && date < range.start) { - return range.start; - } - if (range.end != null && date >= range.end) { - return new Date(range.end.valueOf() - 1); - } - return date; - } - - function removeExact(array, exactVal) { - var removeCnt = 0; - var i = 0; - while (i < array.length) { - if (array[i] === exactVal) { - array.splice(i, 1); - removeCnt++; - } - else { - i++; - } - } - return removeCnt; - } - function isArraysEqual(a0, a1) { - var len = a0.length; - var i; - if (len !== a1.length) { // not array? or not same length? - return false; - } - for (i = 0; i < len; i++) { - if (a0[i] !== a1[i]) { - return false; - } - } - return true; - } - - function memoize(workerFunc) { - var args; - var res; - return function () { - if (!args || !isArraysEqual(args, arguments)) { - args = arguments; - res = workerFunc.apply(this, arguments); - } - return res; - }; - } - /* - always executes the workerFunc, but if the result is equal to the previous result, - return the previous result instead. - */ - function memoizeOutput(workerFunc, equalityFunc) { - var cachedRes = null; - return function () { - var newRes = workerFunc.apply(this, arguments); - if (cachedRes === null || !(cachedRes === newRes || equalityFunc(cachedRes, newRes))) { - cachedRes = newRes; - } - return cachedRes; - }; - } - - var EXTENDED_SETTINGS_AND_SEVERITIES = { - week: 3, - separator: 0, - omitZeroMinute: 0, - meridiem: 0, - omitCommas: 0 - }; - var STANDARD_DATE_PROP_SEVERITIES = { - timeZoneName: 7, - era: 6, - year: 5, - month: 4, - day: 2, - weekday: 2, - hour: 1, - minute: 1, - second: 1 - }; - var MERIDIEM_RE = /\s*([ap])\.?m\.?/i; // eats up leading spaces too - var COMMA_RE = /,/g; // we need re for globalness - var MULTI_SPACE_RE = /\s+/g; - var LTR_RE = /\u200e/g; // control character - var UTC_RE = /UTC|GMT/; - var NativeFormatter = /** @class */ (function () { - function NativeFormatter(formatSettings) { - var standardDateProps = {}; - var extendedSettings = {}; - var severity = 0; - for (var name_1 in formatSettings) { - if (name_1 in EXTENDED_SETTINGS_AND_SEVERITIES) { - extendedSettings[name_1] = formatSettings[name_1]; - severity = Math.max(EXTENDED_SETTINGS_AND_SEVERITIES[name_1], severity); - } - else { - standardDateProps[name_1] = formatSettings[name_1]; - if (name_1 in STANDARD_DATE_PROP_SEVERITIES) { - severity = Math.max(STANDARD_DATE_PROP_SEVERITIES[name_1], severity); - } - } - } - this.standardDateProps = standardDateProps; - this.extendedSettings = extendedSettings; - this.severity = severity; - this.buildFormattingFunc = memoize(buildFormattingFunc); - } - NativeFormatter.prototype.format = function (date, context) { - return this.buildFormattingFunc(this.standardDateProps, this.extendedSettings, context)(date); - }; - NativeFormatter.prototype.formatRange = function (start, end, context) { - var _a = this, standardDateProps = _a.standardDateProps, extendedSettings = _a.extendedSettings; - var diffSeverity = computeMarkerDiffSeverity(start.marker, end.marker, context.calendarSystem); - if (!diffSeverity) { - return this.format(start, context); - } - var biggestUnitForPartial = diffSeverity; - if (biggestUnitForPartial > 1 && // the two dates are different in a way that's larger scale than time - (standardDateProps.year === 'numeric' || standardDateProps.year === '2-digit') && - (standardDateProps.month === 'numeric' || standardDateProps.month === '2-digit') && - (standardDateProps.day === 'numeric' || standardDateProps.day === '2-digit')) { - biggestUnitForPartial = 1; // make it look like the dates are only different in terms of time - } - var full0 = this.format(start, context); - var full1 = this.format(end, context); - if (full0 === full1) { - return full0; - } - var partialDateProps = computePartialFormattingOptions(standardDateProps, biggestUnitForPartial); - var partialFormattingFunc = buildFormattingFunc(partialDateProps, extendedSettings, context); - var partial0 = partialFormattingFunc(start); - var partial1 = partialFormattingFunc(end); - var insertion = findCommonInsertion(full0, partial0, full1, partial1); - var separator = extendedSettings.separator || ''; - if (insertion) { - return insertion.before + partial0 + separator + partial1 + insertion.after; - } - return full0 + separator + full1; - }; - NativeFormatter.prototype.getLargestUnit = function () { - switch (this.severity) { - case 7: - case 6: - case 5: - return 'year'; - case 4: - return 'month'; - case 3: - return 'week'; - default: - return 'day'; - } - }; - return NativeFormatter; - }()); - function buildFormattingFunc(standardDateProps, extendedSettings, context) { - var standardDatePropCnt = Object.keys(standardDateProps).length; - if (standardDatePropCnt === 1 && standardDateProps.timeZoneName === 'short') { - return function (date) { - return formatTimeZoneOffset(date.timeZoneOffset); - }; - } - if (standardDatePropCnt === 0 && extendedSettings.week) { - return function (date) { - return formatWeekNumber(context.computeWeekNumber(date.marker), context.weekLabel, context.locale, extendedSettings.week); - }; - } - return buildNativeFormattingFunc(standardDateProps, extendedSettings, context); - } - function buildNativeFormattingFunc(standardDateProps, extendedSettings, context) { - standardDateProps = __assign({}, standardDateProps); // copy - extendedSettings = __assign({}, extendedSettings); // copy - sanitizeSettings(standardDateProps, extendedSettings); - standardDateProps.timeZone = 'UTC'; // we leverage the only guaranteed timeZone for our UTC markers - var normalFormat = new Intl.DateTimeFormat(context.locale.codes, standardDateProps); - var zeroFormat; // needed? - if (extendedSettings.omitZeroMinute) { - var zeroProps = __assign({}, standardDateProps); - delete zeroProps.minute; // seconds and ms were already considered in sanitizeSettings - zeroFormat = new Intl.DateTimeFormat(context.locale.codes, zeroProps); - } - return function (date) { - var marker = date.marker; - var format; - if (zeroFormat && !marker.getUTCMinutes()) { - format = zeroFormat; - } - else { - format = normalFormat; - } - var s = format.format(marker); - return postProcess(s, date, standardDateProps, extendedSettings, context); - }; - } - function sanitizeSettings(standardDateProps, extendedSettings) { - // deal with a browser inconsistency where formatting the timezone - // requires that the hour/minute be present. - if (standardDateProps.timeZoneName) { - if (!standardDateProps.hour) { - standardDateProps.hour = '2-digit'; - } - if (!standardDateProps.minute) { - standardDateProps.minute = '2-digit'; - } - } - // only support short timezone names - if (standardDateProps.timeZoneName === 'long') { - standardDateProps.timeZoneName = 'short'; - } - // if requesting to display seconds, MUST display minutes - if (extendedSettings.omitZeroMinute && (standardDateProps.second || standardDateProps.millisecond)) { - delete extendedSettings.omitZeroMinute; - } - } - function postProcess(s, date, standardDateProps, extendedSettings, context) { - s = s.replace(LTR_RE, ''); // remove left-to-right control chars. do first. good for other regexes - if (standardDateProps.timeZoneName === 'short') { - s = injectTzoStr(s, (context.timeZone === 'UTC' || date.timeZoneOffset == null) ? - 'UTC' : // important to normalize for IE, which does "GMT" - formatTimeZoneOffset(date.timeZoneOffset)); - } - if (extendedSettings.omitCommas) { - s = s.replace(COMMA_RE, '').trim(); - } - if (extendedSettings.omitZeroMinute) { - s = s.replace(':00', ''); // zeroFormat doesn't always achieve this - } - // ^ do anything that might create adjacent spaces before this point, - // because MERIDIEM_RE likes to eat up loading spaces - if (extendedSettings.meridiem === false) { - s = s.replace(MERIDIEM_RE, '').trim(); - } - else if (extendedSettings.meridiem === 'narrow') { // a/p - s = s.replace(MERIDIEM_RE, function (m0, m1) { - return m1.toLocaleLowerCase(); - }); - } - else if (extendedSettings.meridiem === 'short') { // am/pm - s = s.replace(MERIDIEM_RE, function (m0, m1) { - return m1.toLocaleLowerCase() + 'm'; - }); - } - else if (extendedSettings.meridiem === 'lowercase') { // other meridiem transformers already converted to lowercase - s = s.replace(MERIDIEM_RE, function (m0) { - return m0.toLocaleLowerCase(); - }); - } - s = s.replace(MULTI_SPACE_RE, ' '); - s = s.trim(); - return s; - } - function injectTzoStr(s, tzoStr) { - var replaced = false; - s = s.replace(UTC_RE, function () { - replaced = true; - return tzoStr; - }); - // IE11 doesn't include UTC/GMT in the original string, so append to end - if (!replaced) { - s += ' ' + tzoStr; - } - return s; - } - function formatWeekNumber(num, weekLabel, locale, display) { - var parts = []; - if (display === 'narrow') { - parts.push(weekLabel); - } - else if (display === 'short') { - parts.push(weekLabel, ' '); - } - // otherwise, considered 'numeric' - parts.push(locale.simpleNumberFormat.format(num)); - if (locale.options.isRtl) { // TODO: use control characters instead? - parts.reverse(); - } - return parts.join(''); - } - // Range Formatting Utils - // 0 = exactly the same - // 1 = different by time - // and bigger - function computeMarkerDiffSeverity(d0, d1, ca) { - if (ca.getMarkerYear(d0) !== ca.getMarkerYear(d1)) { - return 5; - } - if (ca.getMarkerMonth(d0) !== ca.getMarkerMonth(d1)) { - return 4; - } - if (ca.getMarkerDay(d0) !== ca.getMarkerDay(d1)) { - return 2; - } - if (timeAsMs(d0) !== timeAsMs(d1)) { - return 1; - } - return 0; - } - function computePartialFormattingOptions(options, biggestUnit) { - var partialOptions = {}; - for (var name_2 in options) { - if (!(name_2 in STANDARD_DATE_PROP_SEVERITIES) || // not a date part prop (like timeZone) - STANDARD_DATE_PROP_SEVERITIES[name_2] <= biggestUnit) { - partialOptions[name_2] = options[name_2]; - } - } - return partialOptions; - } - function findCommonInsertion(full0, partial0, full1, partial1) { - var i0 = 0; - while (i0 < full0.length) { - var found0 = full0.indexOf(partial0, i0); - if (found0 === -1) { - break; - } - var before0 = full0.substr(0, found0); - i0 = found0 + partial0.length; - var after0 = full0.substr(i0); - var i1 = 0; - while (i1 < full1.length) { - var found1 = full1.indexOf(partial1, i1); - if (found1 === -1) { - break; - } - var before1 = full1.substr(0, found1); - i1 = found1 + partial1.length; - var after1 = full1.substr(i1); - if (before0 === before1 && after0 === after1) { - return { - before: before0, - after: after0 - }; - } - } - } - return null; - } - - /* - TODO: fix the terminology of "formatter" vs "formatting func" - */ - /* - At the time of instantiation, this object does not know which cmd-formatting system it will use. - It receives this at the time of formatting, as a setting. - */ - var CmdFormatter = /** @class */ (function () { - function CmdFormatter(cmdStr, separator) { - this.cmdStr = cmdStr; - this.separator = separator; - } - CmdFormatter.prototype.format = function (date, context) { - return context.cmdFormatter(this.cmdStr, createVerboseFormattingArg(date, null, context, this.separator)); - }; - CmdFormatter.prototype.formatRange = function (start, end, context) { - return context.cmdFormatter(this.cmdStr, createVerboseFormattingArg(start, end, context, this.separator)); - }; - return CmdFormatter; - }()); - - var FuncFormatter = /** @class */ (function () { - function FuncFormatter(func) { - this.func = func; - } - FuncFormatter.prototype.format = function (date, context) { - return this.func(createVerboseFormattingArg(date, null, context)); - }; - FuncFormatter.prototype.formatRange = function (start, end, context) { - return this.func(createVerboseFormattingArg(start, end, context)); - }; - return FuncFormatter; - }()); - - // Formatter Object Creation - function createFormatter(input, defaultSeparator) { - if (typeof input === 'object' && input) { // non-null object - if (typeof defaultSeparator === 'string') { - input = __assign({ separator: defaultSeparator }, input); - } - return new NativeFormatter(input); - } - else if (typeof input === 'string') { - return new CmdFormatter(input, defaultSeparator); - } - else if (typeof input === 'function') { - return new FuncFormatter(input); - } - } - // String Utils - // timeZoneOffset is in minutes - function buildIsoString(marker, timeZoneOffset, stripZeroTime) { - if (stripZeroTime === void 0) { stripZeroTime = false; } - var s = marker.toISOString(); - s = s.replace('.000', ''); - if (stripZeroTime) { - s = s.replace('T00:00:00Z', ''); - } - if (s.length > 10) { // time part wasn't stripped, can add timezone info - if (timeZoneOffset == null) { - s = s.replace('Z', ''); - } - else if (timeZoneOffset !== 0) { - s = s.replace('Z', formatTimeZoneOffset(timeZoneOffset, true)); - } - // otherwise, its UTC-0 and we want to keep the Z - } - return s; - } - function formatIsoTimeString(marker) { - return padStart(marker.getUTCHours(), 2) + ':' + - padStart(marker.getUTCMinutes(), 2) + ':' + - padStart(marker.getUTCSeconds(), 2); - } - function formatTimeZoneOffset(minutes, doIso) { - if (doIso === void 0) { doIso = false; } - var sign = minutes < 0 ? '-' : '+'; - var abs = Math.abs(minutes); - var hours = Math.floor(abs / 60); - var mins = Math.round(abs % 60); - if (doIso) { - return sign + padStart(hours, 2) + ':' + padStart(mins, 2); - } - else { - return 'GMT' + sign + hours + (mins ? ':' + padStart(mins, 2) : ''); - } - } - // Arg Utils - function createVerboseFormattingArg(start, end, context, separator) { - var startInfo = expandZonedMarker(start, context.calendarSystem); - var endInfo = end ? expandZonedMarker(end, context.calendarSystem) : null; - return { - date: startInfo, - start: startInfo, - end: endInfo, - timeZone: context.timeZone, - localeCodes: context.locale.codes, - separator: separator - }; - } - function expandZonedMarker(dateInfo, calendarSystem) { - var a = calendarSystem.markerToArray(dateInfo.marker); - return { - marker: dateInfo.marker, - timeZoneOffset: dateInfo.timeZoneOffset, - array: a, - year: a[0], - month: a[1], - day: a[2], - hour: a[3], - minute: a[4], - second: a[5], - millisecond: a[6] - }; - } - - var EventSourceApi = /** @class */ (function () { - function EventSourceApi(calendar, internalEventSource) { - this.calendar = calendar; - this.internalEventSource = internalEventSource; - } - EventSourceApi.prototype.remove = function () { - this.calendar.dispatch({ - type: 'REMOVE_EVENT_SOURCE', - sourceId: this.internalEventSource.sourceId - }); - }; - EventSourceApi.prototype.refetch = function () { - this.calendar.dispatch({ - type: 'FETCH_EVENT_SOURCES', - sourceIds: [this.internalEventSource.sourceId] - }); - }; - Object.defineProperty(EventSourceApi.prototype, "id", { - get: function () { - return this.internalEventSource.publicId; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventSourceApi.prototype, "url", { - // only relevant to json-feed event sources - get: function () { - return this.internalEventSource.meta.url; - }, - enumerable: true, - configurable: true - }); - return EventSourceApi; - }()); - - var EventApi = /** @class */ (function () { - function EventApi(calendar, def, instance) { - this._calendar = calendar; - this._def = def; - this._instance = instance || null; - } - /* - TODO: make event struct more responsible for this - */ - EventApi.prototype.setProp = function (name, val) { - var _a, _b; - if (name in DATE_PROPS) ; - else if (name in NON_DATE_PROPS) { - if (typeof NON_DATE_PROPS[name] === 'function') { - val = NON_DATE_PROPS[name](val); - } - this.mutate({ - standardProps: (_a = {}, _a[name] = val, _a) - }); - } - else if (name in UNSCOPED_EVENT_UI_PROPS) { - var ui = void 0; - if (typeof UNSCOPED_EVENT_UI_PROPS[name] === 'function') { - val = UNSCOPED_EVENT_UI_PROPS[name](val); - } - if (name === 'color') { - ui = { backgroundColor: val, borderColor: val }; - } - else if (name === 'editable') { - ui = { startEditable: val, durationEditable: val }; - } - else { - ui = (_b = {}, _b[name] = val, _b); - } - this.mutate({ - standardProps: { ui: ui } - }); - } - }; - EventApi.prototype.setExtendedProp = function (name, val) { - var _a; - this.mutate({ - extendedProps: (_a = {}, _a[name] = val, _a) - }); - }; - EventApi.prototype.setStart = function (startInput, options) { - if (options === void 0) { options = {}; } - var dateEnv = this._calendar.dateEnv; - var start = dateEnv.createMarker(startInput); - if (start && this._instance) { // TODO: warning if parsed bad - var instanceRange = this._instance.range; - var startDelta = diffDates(instanceRange.start, start, dateEnv, options.granularity); // what if parsed bad!? - if (options.maintainDuration) { - this.mutate({ datesDelta: startDelta }); - } - else { - this.mutate({ startDelta: startDelta }); - } - } - }; - EventApi.prototype.setEnd = function (endInput, options) { - if (options === void 0) { options = {}; } - var dateEnv = this._calendar.dateEnv; - var end; - if (endInput != null) { - end = dateEnv.createMarker(endInput); - if (!end) { - return; // TODO: warning if parsed bad - } - } - if (this._instance) { - if (end) { - var endDelta = diffDates(this._instance.range.end, end, dateEnv, options.granularity); - this.mutate({ endDelta: endDelta }); - } - else { - this.mutate({ standardProps: { hasEnd: false } }); - } - } - }; - EventApi.prototype.setDates = function (startInput, endInput, options) { - if (options === void 0) { options = {}; } - var dateEnv = this._calendar.dateEnv; - var standardProps = { allDay: options.allDay }; - var start = dateEnv.createMarker(startInput); - var end; - if (!start) { - return; // TODO: warning if parsed bad - } - if (endInput != null) { - end = dateEnv.createMarker(endInput); - if (!end) { // TODO: warning if parsed bad - return; - } - } - if (this._instance) { - var instanceRange = this._instance.range; - // when computing the diff for an event being converted to all-day, - // compute diff off of the all-day values the way event-mutation does. - if (options.allDay === true) { - instanceRange = computeAlignedDayRange(instanceRange); - } - var startDelta = diffDates(instanceRange.start, start, dateEnv, options.granularity); - if (end) { - var endDelta = diffDates(instanceRange.end, end, dateEnv, options.granularity); - if (durationsEqual(startDelta, endDelta)) { - this.mutate({ datesDelta: startDelta, standardProps: standardProps }); - } - else { - this.mutate({ startDelta: startDelta, endDelta: endDelta, standardProps: standardProps }); - } - } - else { // means "clear the end" - standardProps.hasEnd = false; - this.mutate({ datesDelta: startDelta, standardProps: standardProps }); - } - } - }; - EventApi.prototype.moveStart = function (deltaInput) { - var delta = createDuration(deltaInput); - if (delta) { // TODO: warning if parsed bad - this.mutate({ startDelta: delta }); - } - }; - EventApi.prototype.moveEnd = function (deltaInput) { - var delta = createDuration(deltaInput); - if (delta) { // TODO: warning if parsed bad - this.mutate({ endDelta: delta }); - } - }; - EventApi.prototype.moveDates = function (deltaInput) { - var delta = createDuration(deltaInput); - if (delta) { // TODO: warning if parsed bad - this.mutate({ datesDelta: delta }); - } - }; - EventApi.prototype.setAllDay = function (allDay, options) { - if (options === void 0) { options = {}; } - var standardProps = { allDay: allDay }; - var maintainDuration = options.maintainDuration; - if (maintainDuration == null) { - maintainDuration = this._calendar.opt('allDayMaintainDuration'); - } - if (this._def.allDay !== allDay) { - standardProps.hasEnd = maintainDuration; - } - this.mutate({ standardProps: standardProps }); - }; - EventApi.prototype.formatRange = function (formatInput) { - var dateEnv = this._calendar.dateEnv; - var instance = this._instance; - var formatter = createFormatter(formatInput, this._calendar.opt('defaultRangeSeparator')); - if (this._def.hasEnd) { - return dateEnv.formatRange(instance.range.start, instance.range.end, formatter, { - forcedStartTzo: instance.forcedStartTzo, - forcedEndTzo: instance.forcedEndTzo - }); - } - else { - return dateEnv.format(instance.range.start, formatter, { - forcedTzo: instance.forcedStartTzo - }); - } - }; - EventApi.prototype.mutate = function (mutation) { - var def = this._def; - var instance = this._instance; - if (instance) { - this._calendar.dispatch({ - type: 'MUTATE_EVENTS', - instanceId: instance.instanceId, - mutation: mutation, - fromApi: true - }); - var eventStore = this._calendar.state.eventStore; - this._def = eventStore.defs[def.defId]; - this._instance = eventStore.instances[instance.instanceId]; - } - }; - EventApi.prototype.remove = function () { - this._calendar.dispatch({ - type: 'REMOVE_EVENT_DEF', - defId: this._def.defId - }); - }; - Object.defineProperty(EventApi.prototype, "source", { - get: function () { - var sourceId = this._def.sourceId; - if (sourceId) { - return new EventSourceApi(this._calendar, this._calendar.state.eventSources[sourceId]); - } - return null; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "start", { - get: function () { - return this._instance ? - this._calendar.dateEnv.toDate(this._instance.range.start) : - null; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "end", { - get: function () { - return (this._instance && this._def.hasEnd) ? - this._calendar.dateEnv.toDate(this._instance.range.end) : - null; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "id", { - // computable props that all access the def - // TODO: find a TypeScript-compatible way to do this at scale - get: function () { return this._def.publicId; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "groupId", { - get: function () { return this._def.groupId; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "allDay", { - get: function () { return this._def.allDay; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "title", { - get: function () { return this._def.title; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "url", { - get: function () { return this._def.url; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "rendering", { - get: function () { return this._def.rendering; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "startEditable", { - get: function () { return this._def.ui.startEditable; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "durationEditable", { - get: function () { return this._def.ui.durationEditable; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "constraint", { - get: function () { return this._def.ui.constraints[0] || null; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "overlap", { - get: function () { return this._def.ui.overlap; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "allow", { - get: function () { return this._def.ui.allows[0] || null; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "backgroundColor", { - get: function () { return this._def.ui.backgroundColor; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "borderColor", { - get: function () { return this._def.ui.borderColor; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "textColor", { - get: function () { return this._def.ui.textColor; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "classNames", { - // NOTE: user can't modify these because Object.freeze was called in event-def parsing - get: function () { return this._def.ui.classNames; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventApi.prototype, "extendedProps", { - get: function () { return this._def.extendedProps; }, - enumerable: true, - configurable: true - }); - return EventApi; - }()); - - /* - Specifying nextDayThreshold signals that all-day ranges should be sliced. - */ - function sliceEventStore(eventStore, eventUiBases, framingRange, nextDayThreshold) { - var inverseBgByGroupId = {}; - var inverseBgByDefId = {}; - var defByGroupId = {}; - var bgRanges = []; - var fgRanges = []; - var eventUis = compileEventUis(eventStore.defs, eventUiBases); - for (var defId in eventStore.defs) { - var def = eventStore.defs[defId]; - if (def.rendering === 'inverse-background') { - if (def.groupId) { - inverseBgByGroupId[def.groupId] = []; - if (!defByGroupId[def.groupId]) { - defByGroupId[def.groupId] = def; - } - } - else { - inverseBgByDefId[defId] = []; - } - } - } - for (var instanceId in eventStore.instances) { - var instance = eventStore.instances[instanceId]; - var def = eventStore.defs[instance.defId]; - var ui = eventUis[def.defId]; - var origRange = instance.range; - var normalRange = (!def.allDay && nextDayThreshold) ? - computeVisibleDayRange(origRange, nextDayThreshold) : - origRange; - var slicedRange = intersectRanges(normalRange, framingRange); - if (slicedRange) { - if (def.rendering === 'inverse-background') { - if (def.groupId) { - inverseBgByGroupId[def.groupId].push(slicedRange); - } - else { - inverseBgByDefId[instance.defId].push(slicedRange); - } - } - else { - (def.rendering === 'background' ? bgRanges : fgRanges).push({ - def: def, - ui: ui, - instance: instance, - range: slicedRange, - isStart: normalRange.start && normalRange.start.valueOf() === slicedRange.start.valueOf(), - isEnd: normalRange.end && normalRange.end.valueOf() === slicedRange.end.valueOf() - }); - } - } - } - for (var groupId in inverseBgByGroupId) { // BY GROUP - var ranges = inverseBgByGroupId[groupId]; - var invertedRanges = invertRanges(ranges, framingRange); - for (var _i = 0, invertedRanges_1 = invertedRanges; _i < invertedRanges_1.length; _i++) { - var invertedRange = invertedRanges_1[_i]; - var def = defByGroupId[groupId]; - var ui = eventUis[def.defId]; - bgRanges.push({ - def: def, - ui: ui, - instance: null, - range: invertedRange, - isStart: false, - isEnd: false - }); - } - } - for (var defId in inverseBgByDefId) { - var ranges = inverseBgByDefId[defId]; - var invertedRanges = invertRanges(ranges, framingRange); - for (var _a = 0, invertedRanges_2 = invertedRanges; _a < invertedRanges_2.length; _a++) { - var invertedRange = invertedRanges_2[_a]; - bgRanges.push({ - def: eventStore.defs[defId], - ui: eventUis[defId], - instance: null, - range: invertedRange, - isStart: false, - isEnd: false - }); - } - } - return { bg: bgRanges, fg: fgRanges }; - } - function hasBgRendering(def) { - return def.rendering === 'background' || def.rendering === 'inverse-background'; - } - function filterSegsViaEls(view, segs, isMirror) { - if (view.hasPublicHandlers('eventRender')) { - segs = segs.filter(function (seg) { - var custom = view.publiclyTrigger('eventRender', [ - { - event: new EventApi(view.calendar, seg.eventRange.def, seg.eventRange.instance), - isMirror: isMirror, - isStart: seg.isStart, - isEnd: seg.isEnd, - // TODO: include seg.range once all components consistently generate it - el: seg.el, - view: view - } - ]); - if (custom === false) { // means don't render at all - return false; - } - else if (custom && custom !== true) { - seg.el = custom; - } - return true; - }); - } - for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) { - var seg = segs_1[_i]; - setElSeg(seg.el, seg); - } - return segs; - } - function setElSeg(el, seg) { - el.fcSeg = seg; - } - function getElSeg(el) { - return el.fcSeg || null; - } - // event ui computation - function compileEventUis(eventDefs, eventUiBases) { - return mapHash(eventDefs, function (eventDef) { - return compileEventUi(eventDef, eventUiBases); - }); - } - function compileEventUi(eventDef, eventUiBases) { - var uis = []; - if (eventUiBases['']) { - uis.push(eventUiBases['']); - } - if (eventUiBases[eventDef.defId]) { - uis.push(eventUiBases[eventDef.defId]); - } - uis.push(eventDef.ui); - return combineEventUis(uis); - } - - // applies the mutation to ALL defs/instances within the event store - function applyMutationToEventStore(eventStore, eventConfigBase, mutation, calendar) { - var eventConfigs = compileEventUis(eventStore.defs, eventConfigBase); - var dest = createEmptyEventStore(); - for (var defId in eventStore.defs) { - var def = eventStore.defs[defId]; - dest.defs[defId] = applyMutationToEventDef(def, eventConfigs[defId], mutation, calendar.pluginSystem.hooks.eventDefMutationAppliers, calendar); - } - for (var instanceId in eventStore.instances) { - var instance = eventStore.instances[instanceId]; - var def = dest.defs[instance.defId]; // important to grab the newly modified def - dest.instances[instanceId] = applyMutationToEventInstance(instance, def, eventConfigs[instance.defId], mutation, calendar); - } - return dest; - } - function applyMutationToEventDef(eventDef, eventConfig, mutation, appliers, calendar) { - var standardProps = mutation.standardProps || {}; - // if hasEnd has not been specified, guess a good value based on deltas. - // if duration will change, there's no way the default duration will persist, - // and thus, we need to mark the event as having a real end - if (standardProps.hasEnd == null && - eventConfig.durationEditable && - (mutation.startDelta || mutation.endDelta)) { - standardProps.hasEnd = true; // TODO: is this mutation okay? - } - var copy = __assign({}, eventDef, standardProps, { ui: __assign({}, eventDef.ui, standardProps.ui) }); - if (mutation.extendedProps) { - copy.extendedProps = __assign({}, copy.extendedProps, mutation.extendedProps); - } - for (var _i = 0, appliers_1 = appliers; _i < appliers_1.length; _i++) { - var applier = appliers_1[_i]; - applier(copy, mutation, calendar); - } - if (!copy.hasEnd && calendar.opt('forceEventDuration')) { - copy.hasEnd = true; - } - return copy; - } - function applyMutationToEventInstance(eventInstance, eventDef, // must first be modified by applyMutationToEventDef - eventConfig, mutation, calendar) { - var dateEnv = calendar.dateEnv; - var forceAllDay = mutation.standardProps && mutation.standardProps.allDay === true; - var clearEnd = mutation.standardProps && mutation.standardProps.hasEnd === false; - var copy = __assign({}, eventInstance); - if (forceAllDay) { - copy.range = computeAlignedDayRange(copy.range); - } - if (mutation.datesDelta && eventConfig.startEditable) { - copy.range = { - start: dateEnv.add(copy.range.start, mutation.datesDelta), - end: dateEnv.add(copy.range.end, mutation.datesDelta) - }; - } - if (mutation.startDelta && eventConfig.durationEditable) { - copy.range = { - start: dateEnv.add(copy.range.start, mutation.startDelta), - end: copy.range.end - }; - } - if (mutation.endDelta && eventConfig.durationEditable) { - copy.range = { - start: copy.range.start, - end: dateEnv.add(copy.range.end, mutation.endDelta) - }; - } - if (clearEnd) { - copy.range = { - start: copy.range.start, - end: calendar.getDefaultEventEnd(eventDef.allDay, copy.range.start) - }; - } - // in case event was all-day but the supplied deltas were not - // better util for this? - if (eventDef.allDay) { - copy.range = { - start: startOfDay(copy.range.start), - end: startOfDay(copy.range.end) - }; - } - // handle invalid durations - if (copy.range.end < copy.range.start) { - copy.range.end = calendar.getDefaultEventEnd(eventDef.allDay, copy.range.start); - } - return copy; - } - - function reduceEventStore (eventStore, action, eventSources, dateProfile, calendar) { - switch (action.type) { - case 'RECEIVE_EVENTS': // raw - return receiveRawEvents(eventStore, eventSources[action.sourceId], action.fetchId, action.fetchRange, action.rawEvents, calendar); - case 'ADD_EVENTS': // already parsed, but not expanded - return addEvent(eventStore, action.eventStore, // new ones - dateProfile ? dateProfile.activeRange : null, calendar); - case 'MERGE_EVENTS': // already parsed and expanded - return mergeEventStores(eventStore, action.eventStore); - case 'PREV': // TODO: how do we track all actions that affect dateProfile :( - case 'NEXT': - case 'SET_DATE': - case 'SET_VIEW_TYPE': - if (dateProfile) { - return expandRecurring(eventStore, dateProfile.activeRange, calendar); - } - else { - return eventStore; - } - case 'CHANGE_TIMEZONE': - return rezoneDates(eventStore, action.oldDateEnv, calendar.dateEnv); - case 'MUTATE_EVENTS': - return applyMutationToRelated(eventStore, action.instanceId, action.mutation, action.fromApi, calendar); - case 'REMOVE_EVENT_INSTANCES': - return excludeInstances(eventStore, action.instances); - case 'REMOVE_EVENT_DEF': - return filterEventStoreDefs(eventStore, function (eventDef) { - return eventDef.defId !== action.defId; - }); - case 'REMOVE_EVENT_SOURCE': - return excludeEventsBySourceId(eventStore, action.sourceId); - case 'REMOVE_ALL_EVENT_SOURCES': - return filterEventStoreDefs(eventStore, function (eventDef) { - return !eventDef.sourceId; // only keep events with no source id - }); - case 'REMOVE_ALL_EVENTS': - return createEmptyEventStore(); - case 'RESET_EVENTS': - return { - defs: eventStore.defs, - instances: eventStore.instances - }; - default: - return eventStore; - } - } - function receiveRawEvents(eventStore, eventSource, fetchId, fetchRange, rawEvents, calendar) { - if (eventSource && // not already removed - fetchId === eventSource.latestFetchId // TODO: wish this logic was always in event-sources - ) { - var subset = parseEvents(transformRawEvents(rawEvents, eventSource, calendar), eventSource.sourceId, calendar); - if (fetchRange) { - subset = expandRecurring(subset, fetchRange, calendar); - } - return mergeEventStores(excludeEventsBySourceId(eventStore, eventSource.sourceId), subset); - } - return eventStore; - } - function addEvent(eventStore, subset, expandRange, calendar) { - if (expandRange) { - subset = expandRecurring(subset, expandRange, calendar); - } - return mergeEventStores(eventStore, subset); - } - function rezoneDates(eventStore, oldDateEnv, newDateEnv) { - var defs = eventStore.defs; - var instances = mapHash(eventStore.instances, function (instance) { - var def = defs[instance.defId]; - if (def.allDay || def.recurringDef) { - return instance; // isn't dependent on timezone - } - else { - return __assign({}, instance, { range: { - start: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.start, instance.forcedStartTzo)), - end: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.end, instance.forcedEndTzo)) - }, forcedStartTzo: newDateEnv.canComputeOffset ? null : instance.forcedStartTzo, forcedEndTzo: newDateEnv.canComputeOffset ? null : instance.forcedEndTzo }); - } - }); - return { defs: defs, instances: instances }; - } - function applyMutationToRelated(eventStore, instanceId, mutation, fromApi, calendar) { - var relevant = getRelevantEvents(eventStore, instanceId); - var eventConfigBase = fromApi ? - { '': { - startEditable: true, - durationEditable: true, - constraints: [], - overlap: null, - allows: [], - backgroundColor: '', - borderColor: '', - textColor: '', - classNames: [] - } } : - calendar.eventUiBases; - relevant = applyMutationToEventStore(relevant, eventConfigBase, mutation, calendar); - return mergeEventStores(eventStore, relevant); - } - function excludeEventsBySourceId(eventStore, sourceId) { - return filterEventStoreDefs(eventStore, function (eventDef) { - return eventDef.sourceId !== sourceId; - }); - } - // QUESTION: why not just return instances? do a general object-property-exclusion util - function excludeInstances(eventStore, removals) { - return { - defs: eventStore.defs, - instances: filterHash(eventStore.instances, function (instance) { - return !removals[instance.instanceId]; - }) - }; - } - - // high-level segmenting-aware tester functions - // ------------------------------------------------------------------------------------------------------------------------ - function isInteractionValid(interaction, calendar) { - return isNewPropsValid({ eventDrag: interaction }, calendar); // HACK: the eventDrag props is used for ALL interactions - } - function isDateSelectionValid(dateSelection, calendar) { - return isNewPropsValid({ dateSelection: dateSelection }, calendar); - } - function isNewPropsValid(newProps, calendar) { - var view = calendar.view; - var props = __assign({ businessHours: view ? view.props.businessHours : createEmptyEventStore(), dateSelection: '', eventStore: calendar.state.eventStore, eventUiBases: calendar.eventUiBases, eventSelection: '', eventDrag: null, eventResize: null }, newProps); - return (calendar.pluginSystem.hooks.isPropsValid || isPropsValid)(props, calendar); - } - function isPropsValid(state, calendar, dateSpanMeta, filterConfig) { - if (dateSpanMeta === void 0) { dateSpanMeta = {}; } - if (state.eventDrag && !isInteractionPropsValid(state, calendar, dateSpanMeta, filterConfig)) { - return false; - } - if (state.dateSelection && !isDateSelectionPropsValid(state, calendar, dateSpanMeta, filterConfig)) { - return false; - } - return true; - } - // Moving Event Validation - // ------------------------------------------------------------------------------------------------------------------------ - function isInteractionPropsValid(state, calendar, dateSpanMeta, filterConfig) { - var interaction = state.eventDrag; // HACK: the eventDrag props is used for ALL interactions - var subjectEventStore = interaction.mutatedEvents; - var subjectDefs = subjectEventStore.defs; - var subjectInstances = subjectEventStore.instances; - var subjectConfigs = compileEventUis(subjectDefs, interaction.isEvent ? - state.eventUiBases : - { '': calendar.selectionConfig } // if not a real event, validate as a selection - ); - if (filterConfig) { - subjectConfigs = mapHash(subjectConfigs, filterConfig); - } - var otherEventStore = excludeInstances(state.eventStore, interaction.affectedEvents.instances); // exclude the subject events. TODO: exclude defs too? - var otherDefs = otherEventStore.defs; - var otherInstances = otherEventStore.instances; - var otherConfigs = compileEventUis(otherDefs, state.eventUiBases); - for (var subjectInstanceId in subjectInstances) { - var subjectInstance = subjectInstances[subjectInstanceId]; - var subjectRange = subjectInstance.range; - var subjectConfig = subjectConfigs[subjectInstance.defId]; - var subjectDef = subjectDefs[subjectInstance.defId]; - // constraint - if (!allConstraintsPass(subjectConfig.constraints, subjectRange, otherEventStore, state.businessHours, calendar)) { - return false; - } - // overlap - var overlapFunc = calendar.opt('eventOverlap'); - if (typeof overlapFunc !== 'function') { - overlapFunc = null; - } - for (var otherInstanceId in otherInstances) { - var otherInstance = otherInstances[otherInstanceId]; - // intersect! evaluate - if (rangesIntersect(subjectRange, otherInstance.range)) { - var otherOverlap = otherConfigs[otherInstance.defId].overlap; - // consider the other event's overlap. only do this if the subject event is a "real" event - if (otherOverlap === false && interaction.isEvent) { - return false; - } - if (subjectConfig.overlap === false) { - return false; - } - if (overlapFunc && !overlapFunc(new EventApi(calendar, otherDefs[otherInstance.defId], otherInstance), // still event - new EventApi(calendar, subjectDef, subjectInstance) // moving event - )) { - return false; - } - } - } - // allow (a function) - var calendarEventStore = calendar.state.eventStore; // need global-to-calendar, not local to component (splittable)state - for (var _i = 0, _a = subjectConfig.allows; _i < _a.length; _i++) { - var subjectAllow = _a[_i]; - var subjectDateSpan = __assign({}, dateSpanMeta, { range: subjectInstance.range, allDay: subjectDef.allDay }); - var origDef = calendarEventStore.defs[subjectDef.defId]; - var origInstance = calendarEventStore.instances[subjectInstanceId]; - var eventApi = void 0; - if (origDef) { // was previously in the calendar - eventApi = new EventApi(calendar, origDef, origInstance); - } - else { // was an external event - eventApi = new EventApi(calendar, subjectDef); // no instance, because had no dates - } - if (!subjectAllow(calendar.buildDateSpanApi(subjectDateSpan), eventApi)) { - return false; - } - } - } - return true; - } - // Date Selection Validation - // ------------------------------------------------------------------------------------------------------------------------ - function isDateSelectionPropsValid(state, calendar, dateSpanMeta, filterConfig) { - var relevantEventStore = state.eventStore; - var relevantDefs = relevantEventStore.defs; - var relevantInstances = relevantEventStore.instances; - var selection = state.dateSelection; - var selectionRange = selection.range; - var selectionConfig = calendar.selectionConfig; - if (filterConfig) { - selectionConfig = filterConfig(selectionConfig); - } - // constraint - if (!allConstraintsPass(selectionConfig.constraints, selectionRange, relevantEventStore, state.businessHours, calendar)) { - return false; - } - // overlap - var overlapFunc = calendar.opt('selectOverlap'); - if (typeof overlapFunc !== 'function') { - overlapFunc = null; - } - for (var relevantInstanceId in relevantInstances) { - var relevantInstance = relevantInstances[relevantInstanceId]; - // intersect! evaluate - if (rangesIntersect(selectionRange, relevantInstance.range)) { - if (selectionConfig.overlap === false) { - return false; - } - if (overlapFunc && !overlapFunc(new EventApi(calendar, relevantDefs[relevantInstance.defId], relevantInstance))) { - return false; - } - } - } - // allow (a function) - for (var _i = 0, _a = selectionConfig.allows; _i < _a.length; _i++) { - var selectionAllow = _a[_i]; - var fullDateSpan = __assign({}, dateSpanMeta, selection); - if (!selectionAllow(calendar.buildDateSpanApi(fullDateSpan), null)) { - return false; - } - } - return true; - } - // Constraint Utils - // ------------------------------------------------------------------------------------------------------------------------ - function allConstraintsPass(constraints, subjectRange, otherEventStore, businessHoursUnexpanded, calendar) { - for (var _i = 0, constraints_1 = constraints; _i < constraints_1.length; _i++) { - var constraint = constraints_1[_i]; - if (!anyRangesContainRange(constraintToRanges(constraint, subjectRange, otherEventStore, businessHoursUnexpanded, calendar), subjectRange)) { - return false; - } - } - return true; - } - function constraintToRanges(constraint, subjectRange, // for expanding a recurring constraint, or expanding business hours - otherEventStore, // for if constraint is an even group ID - businessHoursUnexpanded, // for if constraint is 'businessHours' - calendar // for expanding businesshours - ) { - if (constraint === 'businessHours') { - return eventStoreToRanges(expandRecurring(businessHoursUnexpanded, subjectRange, calendar)); - } - else if (typeof constraint === 'string') { // an group ID - return eventStoreToRanges(filterEventStoreDefs(otherEventStore, function (eventDef) { - return eventDef.groupId === constraint; - })); - } - else if (typeof constraint === 'object' && constraint) { // non-null object - return eventStoreToRanges(expandRecurring(constraint, subjectRange, calendar)); - } - return []; // if it's false - } - // TODO: move to event-store file? - function eventStoreToRanges(eventStore) { - var instances = eventStore.instances; - var ranges = []; - for (var instanceId in instances) { - ranges.push(instances[instanceId].range); - } - return ranges; - } - // TODO: move to geom file? - function anyRangesContainRange(outerRanges, innerRange) { - for (var _i = 0, outerRanges_1 = outerRanges; _i < outerRanges_1.length; _i++) { - var outerRange = outerRanges_1[_i]; - if (rangeContainsRange(outerRange, innerRange)) { - return true; - } - } - return false; - } - // Parsing - // ------------------------------------------------------------------------------------------------------------------------ - function normalizeConstraint(input, calendar) { - if (Array.isArray(input)) { - return parseEvents(input, '', calendar, true); // allowOpenRange=true - } - else if (typeof input === 'object' && input) { // non-null object - return parseEvents([input], '', calendar, true); // allowOpenRange=true - } - else if (input != null) { - return String(input); - } - else { - return null; - } - } - - function htmlEscape(s) { - return (s + '').replace(/&/g, '&') - .replace(//g, '>') - .replace(/'/g, ''') - .replace(/"/g, '"') - .replace(/\n/g, '
'); - } - // Given a hash of CSS properties, returns a string of CSS. - // Uses property names as-is (no camel-case conversion). Will not make statements for null/undefined values. - function cssToStr(cssProps) { - var statements = []; - for (var name_1 in cssProps) { - var val = cssProps[name_1]; - if (val != null && val !== '') { - statements.push(name_1 + ':' + val); - } - } - return statements.join(';'); - } - // Given an object hash of HTML attribute names to values, - // generates a string that can be injected between < > in HTML - function attrsToStr(attrs) { - var parts = []; - for (var name_2 in attrs) { - var val = attrs[name_2]; - if (val != null) { - parts.push(name_2 + '="' + htmlEscape(val) + '"'); - } - } - return parts.join(' '); - } - function parseClassName(raw) { - if (Array.isArray(raw)) { - return raw; - } - else if (typeof raw === 'string') { - return raw.split(/\s+/); - } - else { - return []; - } - } - - var UNSCOPED_EVENT_UI_PROPS = { - editable: Boolean, - startEditable: Boolean, - durationEditable: Boolean, - constraint: null, - overlap: null, - allow: null, - className: parseClassName, - classNames: parseClassName, - color: String, - backgroundColor: String, - borderColor: String, - textColor: String - }; - function processUnscopedUiProps(rawProps, calendar, leftovers) { - var props = refineProps(rawProps, UNSCOPED_EVENT_UI_PROPS, {}, leftovers); - var constraint = normalizeConstraint(props.constraint, calendar); - return { - startEditable: props.startEditable != null ? props.startEditable : props.editable, - durationEditable: props.durationEditable != null ? props.durationEditable : props.editable, - constraints: constraint != null ? [constraint] : [], - overlap: props.overlap, - allows: props.allow != null ? [props.allow] : [], - backgroundColor: props.backgroundColor || props.color, - borderColor: props.borderColor || props.color, - textColor: props.textColor, - classNames: props.classNames.concat(props.className) - }; - } - function processScopedUiProps(prefix, rawScoped, calendar, leftovers) { - var rawUnscoped = {}; - var wasFound = {}; - for (var key in UNSCOPED_EVENT_UI_PROPS) { - var scopedKey = prefix + capitaliseFirstLetter(key); - rawUnscoped[key] = rawScoped[scopedKey]; - wasFound[scopedKey] = true; - } - if (prefix === 'event') { - rawUnscoped.editable = rawScoped.editable; // special case. there is no 'eventEditable', just 'editable' - } - if (leftovers) { - for (var key in rawScoped) { - if (!wasFound[key]) { - leftovers[key] = rawScoped[key]; - } - } - } - return processUnscopedUiProps(rawUnscoped, calendar); - } - var EMPTY_EVENT_UI = { - startEditable: null, - durationEditable: null, - constraints: [], - overlap: null, - allows: [], - backgroundColor: '', - borderColor: '', - textColor: '', - classNames: [] - }; - // prevent against problems with <2 args! - function combineEventUis(uis) { - return uis.reduce(combineTwoEventUis, EMPTY_EVENT_UI); - } - function combineTwoEventUis(item0, item1) { - return { - startEditable: item1.startEditable != null ? item1.startEditable : item0.startEditable, - durationEditable: item1.durationEditable != null ? item1.durationEditable : item0.durationEditable, - constraints: item0.constraints.concat(item1.constraints), - overlap: typeof item1.overlap === 'boolean' ? item1.overlap : item0.overlap, - allows: item0.allows.concat(item1.allows), - backgroundColor: item1.backgroundColor || item0.backgroundColor, - borderColor: item1.borderColor || item0.borderColor, - textColor: item1.textColor || item0.textColor, - classNames: item0.classNames.concat(item1.classNames) - }; - } - - var NON_DATE_PROPS = { - id: String, - groupId: String, - title: String, - url: String, - rendering: String, - extendedProps: null - }; - var DATE_PROPS = { - start: null, - date: null, - end: null, - allDay: null - }; - var uid = 0; - function parseEvent(raw, sourceId, calendar, allowOpenRange) { - var allDayDefault = computeIsAllDayDefault(sourceId, calendar); - var leftovers0 = {}; - var recurringRes = parseRecurring(raw, // raw, but with single-event stuff stripped out - allDayDefault, calendar.dateEnv, calendar.pluginSystem.hooks.recurringTypes, leftovers0 // will populate with non-recurring props - ); - if (recurringRes) { - var def = parseEventDef(leftovers0, sourceId, recurringRes.allDay, Boolean(recurringRes.duration), calendar); - def.recurringDef = { - typeId: recurringRes.typeId, - typeData: recurringRes.typeData, - duration: recurringRes.duration - }; - return { def: def, instance: null }; - } - else { - var leftovers1 = {}; - var singleRes = parseSingle(raw, allDayDefault, calendar, leftovers1, allowOpenRange); - if (singleRes) { - var def = parseEventDef(leftovers1, sourceId, singleRes.allDay, singleRes.hasEnd, calendar); - var instance = createEventInstance(def.defId, singleRes.range, singleRes.forcedStartTzo, singleRes.forcedEndTzo); - return { def: def, instance: instance }; - } - } - return null; - } - /* - Will NOT populate extendedProps with the leftover properties. - Will NOT populate date-related props. - The EventNonDateInput has been normalized (id => publicId, etc). - */ - function parseEventDef(raw, sourceId, allDay, hasEnd, calendar) { - var leftovers = {}; - var def = pluckNonDateProps(raw, calendar, leftovers); - def.defId = String(uid++); - def.sourceId = sourceId; - def.allDay = allDay; - def.hasEnd = hasEnd; - for (var _i = 0, _a = calendar.pluginSystem.hooks.eventDefParsers; _i < _a.length; _i++) { - var eventDefParser = _a[_i]; - var newLeftovers = {}; - eventDefParser(def, leftovers, newLeftovers); - leftovers = newLeftovers; - } - def.extendedProps = __assign(leftovers, def.extendedProps || {}); - // help out EventApi from having user modify props - Object.freeze(def.ui.classNames); - Object.freeze(def.extendedProps); - return def; - } - function createEventInstance(defId, range, forcedStartTzo, forcedEndTzo) { - return { - instanceId: String(uid++), - defId: defId, - range: range, - forcedStartTzo: forcedStartTzo == null ? null : forcedStartTzo, - forcedEndTzo: forcedEndTzo == null ? null : forcedEndTzo - }; - } - function parseSingle(raw, allDayDefault, calendar, leftovers, allowOpenRange) { - var props = pluckDateProps(raw, leftovers); - var allDay = props.allDay; - var startMeta; - var startMarker = null; - var hasEnd = false; - var endMeta; - var endMarker = null; - startMeta = calendar.dateEnv.createMarkerMeta(props.start); - if (startMeta) { - startMarker = startMeta.marker; - } - else if (!allowOpenRange) { - return null; - } - if (props.end != null) { - endMeta = calendar.dateEnv.createMarkerMeta(props.end); - } - if (allDay == null) { - if (allDayDefault != null) { - allDay = allDayDefault; - } - else { - // fall back to the date props LAST - allDay = (!startMeta || startMeta.isTimeUnspecified) && - (!endMeta || endMeta.isTimeUnspecified); - } - } - if (allDay && startMarker) { - startMarker = startOfDay(startMarker); - } - if (endMeta) { - endMarker = endMeta.marker; - if (allDay) { - endMarker = startOfDay(endMarker); - } - if (startMarker && endMarker <= startMarker) { - endMarker = null; - } - } - if (endMarker) { - hasEnd = true; - } - else if (!allowOpenRange) { - hasEnd = calendar.opt('forceEventDuration') || false; - endMarker = calendar.dateEnv.add(startMarker, allDay ? - calendar.defaultAllDayEventDuration : - calendar.defaultTimedEventDuration); - } - return { - allDay: allDay, - hasEnd: hasEnd, - range: { start: startMarker, end: endMarker }, - forcedStartTzo: startMeta ? startMeta.forcedTzo : null, - forcedEndTzo: endMeta ? endMeta.forcedTzo : null - }; - } - function pluckDateProps(raw, leftovers) { - var props = refineProps(raw, DATE_PROPS, {}, leftovers); - props.start = (props.start !== null) ? props.start : props.date; - delete props.date; - return props; - } - function pluckNonDateProps(raw, calendar, leftovers) { - var preLeftovers = {}; - var props = refineProps(raw, NON_DATE_PROPS, {}, preLeftovers); - var ui = processUnscopedUiProps(preLeftovers, calendar, leftovers); - props.publicId = props.id; - delete props.id; - props.ui = ui; - return props; - } - function computeIsAllDayDefault(sourceId, calendar) { - var res = null; - if (sourceId) { - var source = calendar.state.eventSources[sourceId]; - res = source.allDayDefault; - } - if (res == null) { - res = calendar.opt('allDayDefault'); - } - return res; - } - - var DEF_DEFAULTS = { - startTime: '09:00', - endTime: '17:00', - daysOfWeek: [1, 2, 3, 4, 5], - rendering: 'inverse-background', - classNames: 'fc-nonbusiness', - groupId: '_businessHours' // so multiple defs get grouped - }; - /* - TODO: pass around as EventDefHash!!! - */ - function parseBusinessHours(input, calendar) { - return parseEvents(refineInputs(input), '', calendar); - } - function refineInputs(input) { - var rawDefs; - if (input === true) { - rawDefs = [{}]; // will get DEF_DEFAULTS verbatim - } - else if (Array.isArray(input)) { - // if specifying an array, every sub-definition NEEDS a day-of-week - rawDefs = input.filter(function (rawDef) { - return rawDef.daysOfWeek; - }); - } - else if (typeof input === 'object' && input) { // non-null object - rawDefs = [input]; - } - else { // is probably false - rawDefs = []; - } - rawDefs = rawDefs.map(function (rawDef) { - return __assign({}, DEF_DEFAULTS, rawDef); - }); - return rawDefs; - } - - function memoizeRendering(renderFunc, unrenderFunc, dependencies) { - if (dependencies === void 0) { dependencies = []; } - var dependents = []; - var thisContext; - var prevArgs; - function unrender() { - if (prevArgs) { - for (var _i = 0, dependents_1 = dependents; _i < dependents_1.length; _i++) { - var dependent = dependents_1[_i]; - dependent.unrender(); - } - if (unrenderFunc) { - unrenderFunc.apply(thisContext, prevArgs); - } - prevArgs = null; - } - } - function res() { - if (!prevArgs || !isArraysEqual(prevArgs, arguments)) { - unrender(); - thisContext = this; - prevArgs = arguments; - renderFunc.apply(this, arguments); - } - } - res.dependents = dependents; - res.unrender = unrender; - for (var _i = 0, dependencies_1 = dependencies; _i < dependencies_1.length; _i++) { - var dependency = dependencies_1[_i]; - dependency.dependents.push(res); - } - return res; - } - - var EMPTY_EVENT_STORE = createEmptyEventStore(); // for purecomponents. TODO: keep elsewhere - var Splitter = /** @class */ (function () { - function Splitter() { - this.getKeysForEventDefs = memoize(this._getKeysForEventDefs); - this.splitDateSelection = memoize(this._splitDateSpan); - this.splitEventStore = memoize(this._splitEventStore); - this.splitIndividualUi = memoize(this._splitIndividualUi); - this.splitEventDrag = memoize(this._splitInteraction); - this.splitEventResize = memoize(this._splitInteraction); - this.eventUiBuilders = {}; // TODO: typescript protection - } - Splitter.prototype.splitProps = function (props) { - var _this = this; - var keyInfos = this.getKeyInfo(props); - var defKeys = this.getKeysForEventDefs(props.eventStore); - var dateSelections = this.splitDateSelection(props.dateSelection); - var individualUi = this.splitIndividualUi(props.eventUiBases, defKeys); // the individual *bases* - var eventStores = this.splitEventStore(props.eventStore, defKeys); - var eventDrags = this.splitEventDrag(props.eventDrag); - var eventResizes = this.splitEventResize(props.eventResize); - var splitProps = {}; - this.eventUiBuilders = mapHash(keyInfos, function (info, key) { - return _this.eventUiBuilders[key] || memoize(buildEventUiForKey); - }); - for (var key in keyInfos) { - var keyInfo = keyInfos[key]; - var eventStore = eventStores[key] || EMPTY_EVENT_STORE; - var buildEventUi = this.eventUiBuilders[key]; - splitProps[key] = { - businessHours: keyInfo.businessHours || props.businessHours, - dateSelection: dateSelections[key] || null, - eventStore: eventStore, - eventUiBases: buildEventUi(props.eventUiBases[''], keyInfo.ui, individualUi[key]), - eventSelection: eventStore.instances[props.eventSelection] ? props.eventSelection : '', - eventDrag: eventDrags[key] || null, - eventResize: eventResizes[key] || null - }; - } - return splitProps; - }; - Splitter.prototype._splitDateSpan = function (dateSpan) { - var dateSpans = {}; - if (dateSpan) { - var keys = this.getKeysForDateSpan(dateSpan); - for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) { - var key = keys_1[_i]; - dateSpans[key] = dateSpan; - } - } - return dateSpans; - }; - Splitter.prototype._getKeysForEventDefs = function (eventStore) { - var _this = this; - return mapHash(eventStore.defs, function (eventDef) { - return _this.getKeysForEventDef(eventDef); - }); - }; - Splitter.prototype._splitEventStore = function (eventStore, defKeys) { - var defs = eventStore.defs, instances = eventStore.instances; - var splitStores = {}; - for (var defId in defs) { - for (var _i = 0, _a = defKeys[defId]; _i < _a.length; _i++) { - var key = _a[_i]; - if (!splitStores[key]) { - splitStores[key] = createEmptyEventStore(); - } - splitStores[key].defs[defId] = defs[defId]; - } - } - for (var instanceId in instances) { - var instance = instances[instanceId]; - for (var _b = 0, _c = defKeys[instance.defId]; _b < _c.length; _b++) { - var key = _c[_b]; - if (splitStores[key]) { // must have already been created - splitStores[key].instances[instanceId] = instance; - } - } - } - return splitStores; - }; - Splitter.prototype._splitIndividualUi = function (eventUiBases, defKeys) { - var splitHashes = {}; - for (var defId in eventUiBases) { - if (defId) { // not the '' key - for (var _i = 0, _a = defKeys[defId]; _i < _a.length; _i++) { - var key = _a[_i]; - if (!splitHashes[key]) { - splitHashes[key] = {}; - } - splitHashes[key][defId] = eventUiBases[defId]; - } - } - } - return splitHashes; - }; - Splitter.prototype._splitInteraction = function (interaction) { - var splitStates = {}; - if (interaction) { - var affectedStores_1 = this._splitEventStore(interaction.affectedEvents, this._getKeysForEventDefs(interaction.affectedEvents) // can't use cached. might be events from other calendar - ); - // can't rely on defKeys because event data is mutated - var mutatedKeysByDefId = this._getKeysForEventDefs(interaction.mutatedEvents); - var mutatedStores_1 = this._splitEventStore(interaction.mutatedEvents, mutatedKeysByDefId); - var populate = function (key) { - if (!splitStates[key]) { - splitStates[key] = { - affectedEvents: affectedStores_1[key] || EMPTY_EVENT_STORE, - mutatedEvents: mutatedStores_1[key] || EMPTY_EVENT_STORE, - isEvent: interaction.isEvent, - origSeg: interaction.origSeg - }; - } - }; - for (var key in affectedStores_1) { - populate(key); - } - for (var key in mutatedStores_1) { - populate(key); - } - } - return splitStates; - }; - return Splitter; - }()); - function buildEventUiForKey(allUi, eventUiForKey, individualUi) { - var baseParts = []; - if (allUi) { - baseParts.push(allUi); - } - if (eventUiForKey) { - baseParts.push(eventUiForKey); - } - var stuff = { - '': combineEventUis(baseParts) - }; - if (individualUi) { - __assign(stuff, individualUi); - } - return stuff; - } - - // Generates HTML for an anchor to another view into the calendar. - // Will either generate an
tag or a non-clickable tag, depending on enabled settings. - // `gotoOptions` can either be a DateMarker, or an object with the form: - // { date, type, forceOff } - // `type` is a view-type like "day" or "week". default value is "day". - // `attrs` and `innerHtml` are use to generate the rest of the HTML tag. - function buildGotoAnchorHtml(component, gotoOptions, attrs, innerHtml) { - var dateEnv = component.dateEnv; - var date; - var type; - var forceOff; - var finalOptions; - if (gotoOptions instanceof Date) { - date = gotoOptions; // a single date-like input - } - else { - date = gotoOptions.date; - type = gotoOptions.type; - forceOff = gotoOptions.forceOff; - } - finalOptions = { - date: dateEnv.formatIso(date, { omitTime: true }), - type: type || 'day' - }; - if (typeof attrs === 'string') { - innerHtml = attrs; - attrs = null; - } - attrs = attrs ? ' ' + attrsToStr(attrs) : ''; // will have a leading space - innerHtml = innerHtml || ''; - if (!forceOff && component.opt('navLinks')) { - return '' + - innerHtml + - ''; - } - else { - return '' + - innerHtml + - ''; - } - } - function getAllDayHtml(component) { - return component.opt('allDayHtml') || htmlEscape(component.opt('allDayText')); - } - // Computes HTML classNames for a single-day element - function getDayClasses(date, dateProfile, context, noThemeHighlight) { - var calendar = context.calendar, view = context.view, theme = context.theme, dateEnv = context.dateEnv; - var classes = []; - var todayStart; - var todayEnd; - if (!rangeContainsMarker(dateProfile.activeRange, date)) { - classes.push('fc-disabled-day'); - } - else { - classes.push('fc-' + DAY_IDS[date.getUTCDay()]); - if (view.opt('monthMode') && - dateEnv.getMonth(date) !== dateEnv.getMonth(dateProfile.currentRange.start)) { - classes.push('fc-other-month'); - } - todayStart = startOfDay(calendar.getNow()); - todayEnd = addDays(todayStart, 1); - if (date < todayStart) { - classes.push('fc-past'); - } - else if (date >= todayEnd) { - classes.push('fc-future'); - } - else { - classes.push('fc-today'); - if (noThemeHighlight !== true) { - classes.push(theme.getClass('today')); - } - } - } - return classes; - } - - // given a function that resolves a result asynchronously. - // the function can either call passed-in success and failure callbacks, - // or it can return a promise. - // if you need to pass additional params to func, bind them first. - function unpromisify(func, success, failure) { - // guard against success/failure callbacks being called more than once - // and guard against a promise AND callback being used together. - var isResolved = false; - var wrappedSuccess = function () { - if (!isResolved) { - isResolved = true; - success.apply(this, arguments); - } - }; - var wrappedFailure = function () { - if (!isResolved) { - isResolved = true; - if (failure) { - failure.apply(this, arguments); - } - } - }; - var res = func(wrappedSuccess, wrappedFailure); - if (res && typeof res.then === 'function') { - res.then(wrappedSuccess, wrappedFailure); - } - } - - var Mixin = /** @class */ (function () { - function Mixin() { - } - // mix into a CLASS - Mixin.mixInto = function (destClass) { - this.mixIntoObj(destClass.prototype); - }; - // mix into ANY object - Mixin.mixIntoObj = function (destObj) { - var _this = this; - Object.getOwnPropertyNames(this.prototype).forEach(function (name) { - if (!destObj[name]) { // if destination doesn't already define it - destObj[name] = _this.prototype[name]; - } - }); - }; - /* - will override existing methods - TODO: remove! not used anymore - */ - Mixin.mixOver = function (destClass) { - var _this = this; - Object.getOwnPropertyNames(this.prototype).forEach(function (name) { - destClass.prototype[name] = _this.prototype[name]; - }); - }; - return Mixin; - }()); - - /* - USAGE: - import { default as EmitterMixin, EmitterInterface } from './EmitterMixin' - in class: - on: EmitterInterface['on'] - one: EmitterInterface['one'] - off: EmitterInterface['off'] - trigger: EmitterInterface['trigger'] - triggerWith: EmitterInterface['triggerWith'] - hasHandlers: EmitterInterface['hasHandlers'] - after class: - EmitterMixin.mixInto(TheClass) - */ - var EmitterMixin = /** @class */ (function (_super) { - __extends(EmitterMixin, _super); - function EmitterMixin() { - return _super !== null && _super.apply(this, arguments) || this; - } - EmitterMixin.prototype.on = function (type, handler) { - addToHash(this._handlers || (this._handlers = {}), type, handler); - return this; // for chaining - }; - // todo: add comments - EmitterMixin.prototype.one = function (type, handler) { - addToHash(this._oneHandlers || (this._oneHandlers = {}), type, handler); - return this; // for chaining - }; - EmitterMixin.prototype.off = function (type, handler) { - if (this._handlers) { - removeFromHash(this._handlers, type, handler); - } - if (this._oneHandlers) { - removeFromHash(this._oneHandlers, type, handler); - } - return this; // for chaining - }; - EmitterMixin.prototype.trigger = function (type) { - var args = []; - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; - } - this.triggerWith(type, this, args); - return this; // for chaining - }; - EmitterMixin.prototype.triggerWith = function (type, context, args) { - if (this._handlers) { - applyAll(this._handlers[type], context, args); - } - if (this._oneHandlers) { - applyAll(this._oneHandlers[type], context, args); - delete this._oneHandlers[type]; // will never fire again - } - return this; // for chaining - }; - EmitterMixin.prototype.hasHandlers = function (type) { - return (this._handlers && this._handlers[type] && this._handlers[type].length) || - (this._oneHandlers && this._oneHandlers[type] && this._oneHandlers[type].length); - }; - return EmitterMixin; - }(Mixin)); - function addToHash(hash, type, handler) { - (hash[type] || (hash[type] = [])) - .push(handler); - } - function removeFromHash(hash, type, handler) { - if (handler) { - if (hash[type]) { - hash[type] = hash[type].filter(function (func) { - return func !== handler; - }); - } - } - else { - delete hash[type]; // remove all handler funcs for this type - } - } - - /* - Records offset information for a set of elements, relative to an origin element. - Can record the left/right OR the top/bottom OR both. - Provides methods for querying the cache by position. - */ - var PositionCache = /** @class */ (function () { - function PositionCache(originEl, els, isHorizontal, isVertical) { - this.originEl = originEl; - this.els = els; - this.isHorizontal = isHorizontal; - this.isVertical = isVertical; - } - // Queries the els for coordinates and stores them. - // Call this method before using and of the get* methods below. - PositionCache.prototype.build = function () { - var originEl = this.originEl; - var originClientRect = this.originClientRect = - originEl.getBoundingClientRect(); // relative to viewport top-left - if (this.isHorizontal) { - this.buildElHorizontals(originClientRect.left); - } - if (this.isVertical) { - this.buildElVerticals(originClientRect.top); - } - }; - // Populates the left/right internal coordinate arrays - PositionCache.prototype.buildElHorizontals = function (originClientLeft) { - var lefts = []; - var rights = []; - for (var _i = 0, _a = this.els; _i < _a.length; _i++) { - var el = _a[_i]; - var rect = el.getBoundingClientRect(); - lefts.push(rect.left - originClientLeft); - rights.push(rect.right - originClientLeft); - } - this.lefts = lefts; - this.rights = rights; - }; - // Populates the top/bottom internal coordinate arrays - PositionCache.prototype.buildElVerticals = function (originClientTop) { - var tops = []; - var bottoms = []; - for (var _i = 0, _a = this.els; _i < _a.length; _i++) { - var el = _a[_i]; - var rect = el.getBoundingClientRect(); - tops.push(rect.top - originClientTop); - bottoms.push(rect.bottom - originClientTop); - } - this.tops = tops; - this.bottoms = bottoms; - }; - // Given a left offset (from document left), returns the index of the el that it horizontally intersects. - // If no intersection is made, returns undefined. - PositionCache.prototype.leftToIndex = function (leftPosition) { - var lefts = this.lefts; - var rights = this.rights; - var len = lefts.length; - var i; - for (i = 0; i < len; i++) { - if (leftPosition >= lefts[i] && leftPosition < rights[i]) { - return i; - } - } - }; - // Given a top offset (from document top), returns the index of the el that it vertically intersects. - // If no intersection is made, returns undefined. - PositionCache.prototype.topToIndex = function (topPosition) { - var tops = this.tops; - var bottoms = this.bottoms; - var len = tops.length; - var i; - for (i = 0; i < len; i++) { - if (topPosition >= tops[i] && topPosition < bottoms[i]) { - return i; - } - } - }; - // Gets the width of the element at the given index - PositionCache.prototype.getWidth = function (leftIndex) { - return this.rights[leftIndex] - this.lefts[leftIndex]; - }; - // Gets the height of the element at the given index - PositionCache.prototype.getHeight = function (topIndex) { - return this.bottoms[topIndex] - this.tops[topIndex]; - }; - return PositionCache; - }()); - - /* - An object for getting/setting scroll-related information for an element. - Internally, this is done very differently for window versus DOM element, - so this object serves as a common interface. - */ - var ScrollController = /** @class */ (function () { - function ScrollController() { - } - ScrollController.prototype.getMaxScrollTop = function () { - return this.getScrollHeight() - this.getClientHeight(); - }; - ScrollController.prototype.getMaxScrollLeft = function () { - return this.getScrollWidth() - this.getClientWidth(); - }; - ScrollController.prototype.canScrollVertically = function () { - return this.getMaxScrollTop() > 0; - }; - ScrollController.prototype.canScrollHorizontally = function () { - return this.getMaxScrollLeft() > 0; - }; - ScrollController.prototype.canScrollUp = function () { - return this.getScrollTop() > 0; - }; - ScrollController.prototype.canScrollDown = function () { - return this.getScrollTop() < this.getMaxScrollTop(); - }; - ScrollController.prototype.canScrollLeft = function () { - return this.getScrollLeft() > 0; - }; - ScrollController.prototype.canScrollRight = function () { - return this.getScrollLeft() < this.getMaxScrollLeft(); - }; - return ScrollController; - }()); - var ElementScrollController = /** @class */ (function (_super) { - __extends(ElementScrollController, _super); - function ElementScrollController(el) { - var _this = _super.call(this) || this; - _this.el = el; - return _this; - } - ElementScrollController.prototype.getScrollTop = function () { - return this.el.scrollTop; - }; - ElementScrollController.prototype.getScrollLeft = function () { - return this.el.scrollLeft; - }; - ElementScrollController.prototype.setScrollTop = function (top) { - this.el.scrollTop = top; - }; - ElementScrollController.prototype.setScrollLeft = function (left) { - this.el.scrollLeft = left; - }; - ElementScrollController.prototype.getScrollWidth = function () { - return this.el.scrollWidth; - }; - ElementScrollController.prototype.getScrollHeight = function () { - return this.el.scrollHeight; - }; - ElementScrollController.prototype.getClientHeight = function () { - return this.el.clientHeight; - }; - ElementScrollController.prototype.getClientWidth = function () { - return this.el.clientWidth; - }; - return ElementScrollController; - }(ScrollController)); - var WindowScrollController = /** @class */ (function (_super) { - __extends(WindowScrollController, _super); - function WindowScrollController() { - return _super !== null && _super.apply(this, arguments) || this; - } - WindowScrollController.prototype.getScrollTop = function () { - return window.pageYOffset; - }; - WindowScrollController.prototype.getScrollLeft = function () { - return window.pageXOffset; - }; - WindowScrollController.prototype.setScrollTop = function (n) { - window.scroll(window.pageXOffset, n); - }; - WindowScrollController.prototype.setScrollLeft = function (n) { - window.scroll(n, window.pageYOffset); - }; - WindowScrollController.prototype.getScrollWidth = function () { - return document.documentElement.scrollWidth; - }; - WindowScrollController.prototype.getScrollHeight = function () { - return document.documentElement.scrollHeight; - }; - WindowScrollController.prototype.getClientHeight = function () { - return document.documentElement.clientHeight; - }; - WindowScrollController.prototype.getClientWidth = function () { - return document.documentElement.clientWidth; - }; - return WindowScrollController; - }(ScrollController)); - - /* - Embodies a div that has potential scrollbars - */ - var ScrollComponent = /** @class */ (function (_super) { - __extends(ScrollComponent, _super); - function ScrollComponent(overflowX, overflowY) { - var _this = _super.call(this, createElement('div', { - className: 'fc-scroller' - })) || this; - _this.overflowX = overflowX; - _this.overflowY = overflowY; - _this.applyOverflow(); - return _this; - } - // sets to natural height, unlocks overflow - ScrollComponent.prototype.clear = function () { - this.setHeight('auto'); - this.applyOverflow(); - }; - ScrollComponent.prototype.destroy = function () { - removeElement(this.el); - }; - // Overflow - // ----------------------------------------------------------------------------------------------------------------- - ScrollComponent.prototype.applyOverflow = function () { - applyStyle(this.el, { - overflowX: this.overflowX, - overflowY: this.overflowY - }); - }; - // Causes any 'auto' overflow values to resolves to 'scroll' or 'hidden'. - // Useful for preserving scrollbar widths regardless of future resizes. - // Can pass in scrollbarWidths for optimization. - ScrollComponent.prototype.lockOverflow = function (scrollbarWidths) { - var overflowX = this.overflowX; - var overflowY = this.overflowY; - scrollbarWidths = scrollbarWidths || this.getScrollbarWidths(); - if (overflowX === 'auto') { - overflowX = (scrollbarWidths.bottom || // horizontal scrollbars? - this.canScrollHorizontally() // OR scrolling pane with massless scrollbars? - ) ? 'scroll' : 'hidden'; - } - if (overflowY === 'auto') { - overflowY = (scrollbarWidths.left || scrollbarWidths.right || // horizontal scrollbars? - this.canScrollVertically() // OR scrolling pane with massless scrollbars? - ) ? 'scroll' : 'hidden'; - } - applyStyle(this.el, { overflowX: overflowX, overflowY: overflowY }); - }; - ScrollComponent.prototype.setHeight = function (height) { - applyStyleProp(this.el, 'height', height); - }; - ScrollComponent.prototype.getScrollbarWidths = function () { - var edges = computeEdges(this.el); - return { - left: edges.scrollbarLeft, - right: edges.scrollbarRight, - bottom: edges.scrollbarBottom - }; - }; - return ScrollComponent; - }(ElementScrollController)); - - var Theme = /** @class */ (function () { - function Theme(calendarOptions) { - this.calendarOptions = calendarOptions; - this.processIconOverride(); - } - Theme.prototype.processIconOverride = function () { - if (this.iconOverrideOption) { - this.setIconOverride(this.calendarOptions[this.iconOverrideOption]); - } - }; - Theme.prototype.setIconOverride = function (iconOverrideHash) { - var iconClassesCopy; - var buttonName; - if (typeof iconOverrideHash === 'object' && iconOverrideHash) { // non-null object - iconClassesCopy = __assign({}, this.iconClasses); - for (buttonName in iconOverrideHash) { - iconClassesCopy[buttonName] = this.applyIconOverridePrefix(iconOverrideHash[buttonName]); - } - this.iconClasses = iconClassesCopy; - } - else if (iconOverrideHash === false) { - this.iconClasses = {}; - } - }; - Theme.prototype.applyIconOverridePrefix = function (className) { - var prefix = this.iconOverridePrefix; - if (prefix && className.indexOf(prefix) !== 0) { // if not already present - className = prefix + className; - } - return className; - }; - Theme.prototype.getClass = function (key) { - return this.classes[key] || ''; - }; - Theme.prototype.getIconClass = function (buttonName) { - var className = this.iconClasses[buttonName]; - if (className) { - return this.baseIconClass + ' ' + className; - } - return ''; - }; - Theme.prototype.getCustomButtonIconClass = function (customButtonProps) { - var className; - if (this.iconOverrideCustomButtonOption) { - className = customButtonProps[this.iconOverrideCustomButtonOption]; - if (className) { - return this.baseIconClass + ' ' + this.applyIconOverridePrefix(className); - } - } - return ''; - }; - return Theme; - }()); - Theme.prototype.classes = {}; - Theme.prototype.iconClasses = {}; - Theme.prototype.baseIconClass = ''; - Theme.prototype.iconOverridePrefix = ''; - - var guid = 0; - var Component = /** @class */ (function () { - function Component(context, isView) { - // HACK to populate view at top of component instantiation call chain - if (isView) { - context.view = this; - } - this.uid = String(guid++); - this.context = context; - this.dateEnv = context.dateEnv; - this.theme = context.theme; - this.view = context.view; - this.calendar = context.calendar; - this.isRtl = this.opt('dir') === 'rtl'; - } - Component.addEqualityFuncs = function (newFuncs) { - this.prototype.equalityFuncs = __assign({}, this.prototype.equalityFuncs, newFuncs); - }; - Component.prototype.opt = function (name) { - return this.context.options[name]; - }; - Component.prototype.receiveProps = function (props) { - var _a = recycleProps(this.props || {}, props, this.equalityFuncs), anyChanges = _a.anyChanges, comboProps = _a.comboProps; - this.props = comboProps; - if (anyChanges) { - this.render(comboProps); - } - }; - Component.prototype.render = function (props) { - }; - // after destroy is called, this component won't ever be used again - Component.prototype.destroy = function () { - }; - return Component; - }()); - Component.prototype.equalityFuncs = {}; - /* - Reuses old values when equal. If anything is unequal, returns newProps as-is. - Great for PureComponent, but won't be feasible with React, so just eliminate and use React's DOM diffing. - */ - function recycleProps(oldProps, newProps, equalityFuncs) { - var comboProps = {}; // some old, some new - var anyChanges = false; - for (var key in newProps) { - if (key in oldProps && (oldProps[key] === newProps[key] || - (equalityFuncs[key] && equalityFuncs[key](oldProps[key], newProps[key])))) { - // equal to old? use old prop - comboProps[key] = oldProps[key]; - } - else { - comboProps[key] = newProps[key]; - anyChanges = true; - } - } - for (var key in oldProps) { - if (!(key in newProps)) { - anyChanges = true; - break; - } - } - return { anyChanges: anyChanges, comboProps: comboProps }; - } - - /* - PURPOSES: - - hook up to fg, fill, and mirror renderers - - interface for dragging and hits - */ - var DateComponent = /** @class */ (function (_super) { - __extends(DateComponent, _super); - function DateComponent(context, el, isView) { - var _this = _super.call(this, context, isView) || this; - _this.el = el; - return _this; - } - DateComponent.prototype.destroy = function () { - _super.prototype.destroy.call(this); - removeElement(this.el); - }; - // TODO: WHAT ABOUT (sourceSeg && sourceSeg.component.doesDragMirror) - // - // Event Drag-n-Drop Rendering (for both events and external elements) - // --------------------------------------------------------------------------------------------------------------- - /* - renderEventDragSegs(state: EventSegUiInteractionState) { - if (state) { - let { isEvent, segs, sourceSeg } = state - - if (this.eventRenderer) { - this.eventRenderer.hideByHash(state.affectedInstances) - } - - // if the user is dragging something that is considered an event with real event data, - // and this component likes to do drag mirrors OR the component where the seg came from - // likes to do drag mirrors, then render a drag mirror. - if (isEvent && (this.doesDragMirror || sourceSeg && sourceSeg.component.doesDragMirror)) { - if (this.mirrorRenderer) { - this.mirrorRenderer.renderSegs(segs, { isDragging: true, sourceSeg }) - } - } - - // if it would be impossible to render a drag mirror OR this component likes to render - // highlights, then render a highlight. - if (!isEvent || this.doesDragHighlight) { - if (this.fillRenderer) { - this.fillRenderer.renderSegs('highlight', segs) - } - } - } - } - */ - // Hit System - // ----------------------------------------------------------------------------------------------------------------- - DateComponent.prototype.buildPositionCaches = function () { - }; - DateComponent.prototype.queryHit = function (positionLeft, positionTop, elWidth, elHeight) { - return null; // this should be abstract - }; - // Validation - // ----------------------------------------------------------------------------------------------------------------- - DateComponent.prototype.isInteractionValid = function (interaction) { - var calendar = this.calendar; - var dateProfile = this.props.dateProfile; // HACK - var instances = interaction.mutatedEvents.instances; - if (dateProfile) { // HACK for DayTile - for (var instanceId in instances) { - if (!rangeContainsRange(dateProfile.validRange, instances[instanceId].range)) { - return false; - } - } - } - return isInteractionValid(interaction, calendar); - }; - DateComponent.prototype.isDateSelectionValid = function (selection) { - var dateProfile = this.props.dateProfile; // HACK - if (dateProfile && // HACK for DayTile - !rangeContainsRange(dateProfile.validRange, selection.range)) { - return false; - } - return isDateSelectionValid(selection, this.calendar); - }; - // Triggering - // ----------------------------------------------------------------------------------------------------------------- - // TODO: move to Calendar - DateComponent.prototype.publiclyTrigger = function (name, args) { - var calendar = this.calendar; - return calendar.publiclyTrigger(name, args); - }; - DateComponent.prototype.publiclyTriggerAfterSizing = function (name, args) { - var calendar = this.calendar; - return calendar.publiclyTriggerAfterSizing(name, args); - }; - DateComponent.prototype.hasPublicHandlers = function (name) { - var calendar = this.calendar; - return calendar.hasPublicHandlers(name); - }; - DateComponent.prototype.triggerRenderedSegs = function (segs, isMirrors) { - var calendar = this.calendar; - if (this.hasPublicHandlers('eventPositioned')) { - for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) { - var seg = segs_1[_i]; - this.publiclyTriggerAfterSizing('eventPositioned', [ - { - event: new EventApi(calendar, seg.eventRange.def, seg.eventRange.instance), - isMirror: isMirrors, - isStart: seg.isStart, - isEnd: seg.isEnd, - el: seg.el, - view: this // safe to cast because this method is only called on context.view - } - ]); - } - } - if (!calendar.state.loadingLevel) { // avoid initial empty state while pending - calendar.afterSizingTriggers._eventsPositioned = [null]; // fire once - } - }; - DateComponent.prototype.triggerWillRemoveSegs = function (segs, isMirrors) { - var calendar = this.calendar; - for (var _i = 0, segs_2 = segs; _i < segs_2.length; _i++) { - var seg = segs_2[_i]; - calendar.trigger('eventElRemove', seg.el); - } - if (this.hasPublicHandlers('eventDestroy')) { - for (var _a = 0, segs_3 = segs; _a < segs_3.length; _a++) { - var seg = segs_3[_a]; - this.publiclyTrigger('eventDestroy', [ - { - event: new EventApi(calendar, seg.eventRange.def, seg.eventRange.instance), - isMirror: isMirrors, - el: seg.el, - view: this // safe to cast because this method is only called on context.view - } - ]); - } - } - }; - // Pointer Interaction Utils - // ----------------------------------------------------------------------------------------------------------------- - DateComponent.prototype.isValidSegDownEl = function (el) { - return !this.props.eventDrag && // HACK - !this.props.eventResize && // HACK - !elementClosest(el, '.fc-mirror') && - (this.isPopover() || !this.isInPopover(el)); - // ^above line ensures we don't detect a seg interaction within a nested component. - // it's a HACK because it only supports a popover as the nested component. - }; - DateComponent.prototype.isValidDateDownEl = function (el) { - var segEl = elementClosest(el, this.fgSegSelector); - return (!segEl || segEl.classList.contains('fc-mirror')) && - !elementClosest(el, '.fc-more') && // a "more.." link - !elementClosest(el, 'a[data-goto]') && // a clickable nav link - !this.isInPopover(el); - }; - DateComponent.prototype.isPopover = function () { - return this.el.classList.contains('fc-popover'); - }; - DateComponent.prototype.isInPopover = function (el) { - return Boolean(elementClosest(el, '.fc-popover')); - }; - return DateComponent; - }(Component)); - DateComponent.prototype.fgSegSelector = '.fc-event-container > *'; - DateComponent.prototype.bgSegSelector = '.fc-bgevent:not(.fc-nonbusiness)'; - - var uid$1 = 0; - function createPlugin(input) { - return { - id: String(uid$1++), - deps: input.deps || [], - reducers: input.reducers || [], - eventDefParsers: input.eventDefParsers || [], - isDraggableTransformers: input.isDraggableTransformers || [], - eventDragMutationMassagers: input.eventDragMutationMassagers || [], - eventDefMutationAppliers: input.eventDefMutationAppliers || [], - dateSelectionTransformers: input.dateSelectionTransformers || [], - datePointTransforms: input.datePointTransforms || [], - dateSpanTransforms: input.dateSpanTransforms || [], - views: input.views || {}, - viewPropsTransformers: input.viewPropsTransformers || [], - isPropsValid: input.isPropsValid || null, - externalDefTransforms: input.externalDefTransforms || [], - eventResizeJoinTransforms: input.eventResizeJoinTransforms || [], - viewContainerModifiers: input.viewContainerModifiers || [], - eventDropTransformers: input.eventDropTransformers || [], - componentInteractions: input.componentInteractions || [], - calendarInteractions: input.calendarInteractions || [], - themeClasses: input.themeClasses || {}, - eventSourceDefs: input.eventSourceDefs || [], - cmdFormatter: input.cmdFormatter, - recurringTypes: input.recurringTypes || [], - namedTimeZonedImpl: input.namedTimeZonedImpl, - defaultView: input.defaultView || '', - elementDraggingImpl: input.elementDraggingImpl, - optionChangeHandlers: input.optionChangeHandlers || {} - }; - } - var PluginSystem = /** @class */ (function () { - function PluginSystem() { - this.hooks = { - reducers: [], - eventDefParsers: [], - isDraggableTransformers: [], - eventDragMutationMassagers: [], - eventDefMutationAppliers: [], - dateSelectionTransformers: [], - datePointTransforms: [], - dateSpanTransforms: [], - views: {}, - viewPropsTransformers: [], - isPropsValid: null, - externalDefTransforms: [], - eventResizeJoinTransforms: [], - viewContainerModifiers: [], - eventDropTransformers: [], - componentInteractions: [], - calendarInteractions: [], - themeClasses: {}, - eventSourceDefs: [], - cmdFormatter: null, - recurringTypes: [], - namedTimeZonedImpl: null, - defaultView: '', - elementDraggingImpl: null, - optionChangeHandlers: {} - }; - this.addedHash = {}; - } - PluginSystem.prototype.add = function (plugin) { - if (!this.addedHash[plugin.id]) { - this.addedHash[plugin.id] = true; - for (var _i = 0, _a = plugin.deps; _i < _a.length; _i++) { - var dep = _a[_i]; - this.add(dep); - } - this.hooks = combineHooks(this.hooks, plugin); - } - }; - return PluginSystem; - }()); - function combineHooks(hooks0, hooks1) { - return { - reducers: hooks0.reducers.concat(hooks1.reducers), - eventDefParsers: hooks0.eventDefParsers.concat(hooks1.eventDefParsers), - isDraggableTransformers: hooks0.isDraggableTransformers.concat(hooks1.isDraggableTransformers), - eventDragMutationMassagers: hooks0.eventDragMutationMassagers.concat(hooks1.eventDragMutationMassagers), - eventDefMutationAppliers: hooks0.eventDefMutationAppliers.concat(hooks1.eventDefMutationAppliers), - dateSelectionTransformers: hooks0.dateSelectionTransformers.concat(hooks1.dateSelectionTransformers), - datePointTransforms: hooks0.datePointTransforms.concat(hooks1.datePointTransforms), - dateSpanTransforms: hooks0.dateSpanTransforms.concat(hooks1.dateSpanTransforms), - views: __assign({}, hooks0.views, hooks1.views), - viewPropsTransformers: hooks0.viewPropsTransformers.concat(hooks1.viewPropsTransformers), - isPropsValid: hooks1.isPropsValid || hooks0.isPropsValid, - externalDefTransforms: hooks0.externalDefTransforms.concat(hooks1.externalDefTransforms), - eventResizeJoinTransforms: hooks0.eventResizeJoinTransforms.concat(hooks1.eventResizeJoinTransforms), - viewContainerModifiers: hooks0.viewContainerModifiers.concat(hooks1.viewContainerModifiers), - eventDropTransformers: hooks0.eventDropTransformers.concat(hooks1.eventDropTransformers), - calendarInteractions: hooks0.calendarInteractions.concat(hooks1.calendarInteractions), - componentInteractions: hooks0.componentInteractions.concat(hooks1.componentInteractions), - themeClasses: __assign({}, hooks0.themeClasses, hooks1.themeClasses), - eventSourceDefs: hooks0.eventSourceDefs.concat(hooks1.eventSourceDefs), - cmdFormatter: hooks1.cmdFormatter || hooks0.cmdFormatter, - recurringTypes: hooks0.recurringTypes.concat(hooks1.recurringTypes), - namedTimeZonedImpl: hooks1.namedTimeZonedImpl || hooks0.namedTimeZonedImpl, - defaultView: hooks0.defaultView || hooks1.defaultView, - elementDraggingImpl: hooks0.elementDraggingImpl || hooks1.elementDraggingImpl, - optionChangeHandlers: __assign({}, hooks0.optionChangeHandlers, hooks1.optionChangeHandlers) - }; - } - - var eventSourceDef = { - ignoreRange: true, - parseMeta: function (raw) { - if (Array.isArray(raw)) { // short form - return raw; - } - else if (Array.isArray(raw.events)) { - return raw.events; - } - return null; - }, - fetch: function (arg, success) { - success({ - rawEvents: arg.eventSource.meta - }); - } - }; - var ArrayEventSourcePlugin = createPlugin({ - eventSourceDefs: [eventSourceDef] - }); - - var eventSourceDef$1 = { - parseMeta: function (raw) { - if (typeof raw === 'function') { // short form - return raw; - } - else if (typeof raw.events === 'function') { - return raw.events; - } - return null; - }, - fetch: function (arg, success, failure) { - var dateEnv = arg.calendar.dateEnv; - var func = arg.eventSource.meta; - unpromisify(func.bind(null, { - start: dateEnv.toDate(arg.range.start), - end: dateEnv.toDate(arg.range.end), - startStr: dateEnv.formatIso(arg.range.start), - endStr: dateEnv.formatIso(arg.range.end), - timeZone: dateEnv.timeZone - }), function (rawEvents) { - success({ rawEvents: rawEvents }); // needs an object response - }, failure // send errorObj directly to failure callback - ); - } - }; - var FuncEventSourcePlugin = createPlugin({ - eventSourceDefs: [eventSourceDef$1] - }); - - function requestJson(method, url, params, successCallback, failureCallback) { - method = method.toUpperCase(); - var body = null; - if (method === 'GET') { - url = injectQueryStringParams(url, params); - } - else { - body = encodeParams(params); - } - var xhr = new XMLHttpRequest(); - xhr.open(method, url, true); - if (method !== 'GET') { - xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); - } - xhr.onload = function () { - if (xhr.status >= 200 && xhr.status < 400) { - try { - var res = JSON.parse(xhr.responseText); - successCallback(res, xhr); - } - catch (err) { - failureCallback('Failure parsing JSON', xhr); - } - } - else { - failureCallback('Request failed', xhr); - } - }; - xhr.onerror = function () { - failureCallback('Request failed', xhr); - }; - xhr.send(body); - } - function injectQueryStringParams(url, params) { - return url + - (url.indexOf('?') === -1 ? '?' : '&') + - encodeParams(params); - } - function encodeParams(params) { - var parts = []; - for (var key in params) { - parts.push(encodeURIComponent(key) + '=' + encodeURIComponent(params[key])); - } - return parts.join('&'); - } - - var eventSourceDef$2 = { - parseMeta: function (raw) { - if (typeof raw === 'string') { // short form - raw = { url: raw }; - } - else if (!raw || typeof raw !== 'object' || !raw.url) { - return null; - } - return { - url: raw.url, - method: (raw.method || 'GET').toUpperCase(), - extraParams: raw.extraParams, - startParam: raw.startParam, - endParam: raw.endParam, - timeZoneParam: raw.timeZoneParam - }; - }, - fetch: function (arg, success, failure) { - var meta = arg.eventSource.meta; - var requestParams = buildRequestParams(meta, arg.range, arg.calendar); - requestJson(meta.method, meta.url, requestParams, function (rawEvents, xhr) { - success({ rawEvents: rawEvents, xhr: xhr }); - }, function (errorMessage, xhr) { - failure({ message: errorMessage, xhr: xhr }); - }); - } - }; - var JsonFeedEventSourcePlugin = createPlugin({ - eventSourceDefs: [eventSourceDef$2] - }); - function buildRequestParams(meta, range, calendar) { - var dateEnv = calendar.dateEnv; - var startParam; - var endParam; - var timeZoneParam; - var customRequestParams; - var params = {}; - startParam = meta.startParam; - if (startParam == null) { - startParam = calendar.opt('startParam'); - } - endParam = meta.endParam; - if (endParam == null) { - endParam = calendar.opt('endParam'); - } - timeZoneParam = meta.timeZoneParam; - if (timeZoneParam == null) { - timeZoneParam = calendar.opt('timeZoneParam'); - } - // retrieve any outbound GET/POST data from the options - if (typeof meta.extraParams === 'function') { - // supplied as a function that returns a key/value object - customRequestParams = meta.extraParams(); - } - else { - // probably supplied as a straight key/value object - customRequestParams = meta.extraParams || {}; - } - __assign(params, customRequestParams); - params[startParam] = dateEnv.formatIso(range.start); - params[endParam] = dateEnv.formatIso(range.end); - if (dateEnv.timeZone !== 'local') { - params[timeZoneParam] = dateEnv.timeZone; - } - return params; - } - - var recurring = { - parse: function (rawEvent, leftoverProps, dateEnv) { - var createMarker = dateEnv.createMarker.bind(dateEnv); - var processors = { - daysOfWeek: null, - startTime: createDuration, - endTime: createDuration, - startRecur: createMarker, - endRecur: createMarker - }; - var props = refineProps(rawEvent, processors, {}, leftoverProps); - var anyValid = false; - for (var propName in props) { - if (props[propName] != null) { - anyValid = true; - break; - } - } - if (anyValid) { - var duration = null; - if ('duration' in leftoverProps) { - duration = createDuration(leftoverProps.duration); - delete leftoverProps.duration; - } - if (!duration && props.startTime && props.endTime) { - duration = subtractDurations(props.endTime, props.startTime); - } - return { - allDayGuess: Boolean(!props.startTime && !props.endTime), - duration: duration, - typeData: props // doesn't need endTime anymore but oh well - }; - } - return null; - }, - expand: function (typeData, framingRange, dateEnv) { - var clippedFramingRange = intersectRanges(framingRange, { start: typeData.startRecur, end: typeData.endRecur }); - if (clippedFramingRange) { - return expandRanges(typeData.daysOfWeek, typeData.startTime, clippedFramingRange, dateEnv); - } - else { - return []; - } - } - }; - var SimpleRecurrencePlugin = createPlugin({ - recurringTypes: [recurring] - }); - function expandRanges(daysOfWeek, startTime, framingRange, dateEnv) { - var dowHash = daysOfWeek ? arrayToHash(daysOfWeek) : null; - var dayMarker = startOfDay(framingRange.start); - var endMarker = framingRange.end; - var instanceStarts = []; - while (dayMarker < endMarker) { - var instanceStart - // if everyday, or this particular day-of-week - = void 0; - // if everyday, or this particular day-of-week - if (!dowHash || dowHash[dayMarker.getUTCDay()]) { - if (startTime) { - instanceStart = dateEnv.add(dayMarker, startTime); - } - else { - instanceStart = dayMarker; - } - instanceStarts.push(instanceStart); - } - dayMarker = addDays(dayMarker, 1); - } - return instanceStarts; - } - - var DefaultOptionChangeHandlers = createPlugin({ - optionChangeHandlers: { - events: function (events, calendar, deepEqual) { - handleEventSources([events], calendar, deepEqual); - }, - eventSources: handleEventSources, - plugins: handlePlugins - } - }); - function handleEventSources(inputs, calendar, deepEqual) { - var unfoundSources = hashValuesToArray(calendar.state.eventSources); - var newInputs = []; - for (var _i = 0, inputs_1 = inputs; _i < inputs_1.length; _i++) { - var input = inputs_1[_i]; - var inputFound = false; - for (var i = 0; i < unfoundSources.length; i++) { - if (deepEqual(unfoundSources[i]._raw, input)) { - unfoundSources.splice(i, 1); // delete - inputFound = true; - break; - } - } - if (!inputFound) { - newInputs.push(input); - } - } - for (var _a = 0, unfoundSources_1 = unfoundSources; _a < unfoundSources_1.length; _a++) { - var unfoundSource = unfoundSources_1[_a]; - calendar.dispatch({ - type: 'REMOVE_EVENT_SOURCE', - sourceId: unfoundSource.sourceId - }); - } - for (var _b = 0, newInputs_1 = newInputs; _b < newInputs_1.length; _b++) { - var newInput = newInputs_1[_b]; - calendar.addEventSource(newInput); - } - } - // shortcoming: won't remove plugins - function handlePlugins(inputs, calendar) { - calendar.addPluginInputs(inputs); // will gracefully handle duplicates - } - - var config = {}; // TODO: make these options - var globalDefaults = { - defaultRangeSeparator: ' - ', - titleRangeSeparator: ' \u2013 ', - defaultTimedEventDuration: '01:00:00', - defaultAllDayEventDuration: { day: 1 }, - forceEventDuration: false, - nextDayThreshold: '00:00:00', - // display - columnHeader: true, - defaultView: '', - aspectRatio: 1.35, - header: { - left: 'title', - center: '', - right: 'today prev,next' - }, - weekends: true, - weekNumbers: false, - weekNumberCalculation: 'local', - editable: false, - // nowIndicator: false, - scrollTime: '06:00:00', - minTime: '00:00:00', - maxTime: '24:00:00', - showNonCurrentDates: true, - // event ajax - lazyFetching: true, - startParam: 'start', - endParam: 'end', - timeZoneParam: 'timeZone', - timeZone: 'local', - // allDayDefault: undefined, - // locale - locales: [], - locale: '', - // dir: will get this from the default locale - // buttonIcons: null, - // allows setting a min-height to the event segment to prevent short events overlapping each other - timeGridEventMinHeight: 0, - themeSystem: 'standard', - // eventResizableFromStart: false, - dragRevertDuration: 500, - dragScroll: true, - allDayMaintainDuration: false, - // selectable: false, - unselectAuto: true, - // selectMinDistance: 0, - dropAccept: '*', - eventOrder: 'start,-duration,allDay,title', - // ^ if start tie, longer events go before shorter. final tie-breaker is title text - // rerenderDelay: null, - eventLimit: false, - eventLimitClick: 'popover', - dayPopoverFormat: { month: 'long', day: 'numeric', year: 'numeric' }, - handleWindowResize: true, - windowResizeDelay: 100, - longPressDelay: 1000, - eventDragMinDistance: 5 // only applies to mouse - }; - var rtlDefaults = { - header: { - left: 'next,prev today', - center: '', - right: 'title' - }, - buttonIcons: { - // TODO: make RTL support the responibility of the theme - prev: 'fc-icon-chevron-right', - next: 'fc-icon-chevron-left', - prevYear: 'fc-icon-chevrons-right', - nextYear: 'fc-icon-chevrons-left' - } - }; - var complexOptions = [ - 'header', - 'footer', - 'buttonText', - 'buttonIcons' - ]; - // Merges an array of option objects into a single object - function mergeOptions(optionObjs) { - return mergeProps(optionObjs, complexOptions); - } - // TODO: move this stuff to a "plugin"-related file... - var INTERNAL_PLUGINS = [ - ArrayEventSourcePlugin, - FuncEventSourcePlugin, - JsonFeedEventSourcePlugin, - SimpleRecurrencePlugin, - DefaultOptionChangeHandlers - ]; - function refinePluginDefs(pluginInputs) { - var plugins = []; - for (var _i = 0, pluginInputs_1 = pluginInputs; _i < pluginInputs_1.length; _i++) { - var pluginInput = pluginInputs_1[_i]; - if (typeof pluginInput === 'string') { - var globalName = 'FullCalendar' + capitaliseFirstLetter(pluginInput); - if (!window[globalName]) { - console.warn('Plugin file not loaded for ' + pluginInput); - } - else { - plugins.push(window[globalName].default); // is an ES6 module - } - } - else { - plugins.push(pluginInput); - } - } - return INTERNAL_PLUGINS.concat(plugins); - } - - var RAW_EN_LOCALE = { - code: 'en', - week: { - dow: 0, - doy: 4 // 4 days need to be within the year to be considered the first week - }, - dir: 'ltr', - buttonText: { - prev: 'prev', - next: 'next', - prevYear: 'prev year', - nextYear: 'next year', - year: 'year', - today: 'today', - month: 'month', - week: 'week', - day: 'day', - list: 'list' - }, - weekLabel: 'W', - allDayText: 'all-day', - eventLimitText: 'more', - noEventsMessage: 'No events to display' - }; - function parseRawLocales(explicitRawLocales) { - var defaultCode = explicitRawLocales.length > 0 ? explicitRawLocales[0].code : 'en'; - var globalArray = window['FullCalendarLocalesAll'] || []; // from locales-all.js - var globalObject = window['FullCalendarLocales'] || {}; // from locales/*.js. keys are meaningless - var allRawLocales = globalArray.concat(// globalArray is low prio - hashValuesToArray(globalObject), // medium prio - explicitRawLocales // highest prio - ); - var rawLocaleMap = { - en: RAW_EN_LOCALE // necessary? - }; - for (var _i = 0, allRawLocales_1 = allRawLocales; _i < allRawLocales_1.length; _i++) { - var rawLocale = allRawLocales_1[_i]; - rawLocaleMap[rawLocale.code] = rawLocale; - } - return { - map: rawLocaleMap, - defaultCode: defaultCode - }; - } - function buildLocale(inputSingular, available) { - if (typeof inputSingular === 'object' && !Array.isArray(inputSingular)) { - return parseLocale(inputSingular.code, [inputSingular.code], inputSingular); - } - else { - return queryLocale(inputSingular, available); - } - } - function queryLocale(codeArg, available) { - var codes = [].concat(codeArg || []); // will convert to array - var raw = queryRawLocale(codes, available) || RAW_EN_LOCALE; - return parseLocale(codeArg, codes, raw); - } - function queryRawLocale(codes, available) { - for (var i = 0; i < codes.length; i++) { - var parts = codes[i].toLocaleLowerCase().split('-'); - for (var j = parts.length; j > 0; j--) { - var simpleId = parts.slice(0, j).join('-'); - if (available[simpleId]) { - return available[simpleId]; - } - } - } - return null; - } - function parseLocale(codeArg, codes, raw) { - var merged = mergeProps([RAW_EN_LOCALE, raw], ['buttonText']); - delete merged.code; // don't want this part of the options - var week = merged.week; - delete merged.week; - return { - codeArg: codeArg, - codes: codes, - week: week, - simpleNumberFormat: new Intl.NumberFormat(codeArg), - options: merged - }; - } - - var OptionsManager = /** @class */ (function () { - function OptionsManager(overrides) { - this.overrides = __assign({}, overrides); // make a copy - this.dynamicOverrides = {}; - this.compute(); - } - OptionsManager.prototype.mutate = function (updates, removals, isDynamic) { - var overrideHash = isDynamic ? this.dynamicOverrides : this.overrides; - __assign(overrideHash, updates); - for (var _i = 0, removals_1 = removals; _i < removals_1.length; _i++) { - var propName = removals_1[_i]; - delete overrideHash[propName]; - } - this.compute(); - }; - // Computes the flattened options hash for the calendar and assigns to `this.options`. - // Assumes this.overrides and this.dynamicOverrides have already been initialized. - OptionsManager.prototype.compute = function () { - // TODO: not a very efficient system - var locales = firstDefined(// explicit locale option given? - this.dynamicOverrides.locales, this.overrides.locales, globalDefaults.locales); - var locale = firstDefined(// explicit locales option given? - this.dynamicOverrides.locale, this.overrides.locale, globalDefaults.locale); - var available = parseRawLocales(locales); - var localeDefaults = buildLocale(locale || available.defaultCode, available.map).options; - var dir = firstDefined(// based on options computed so far, is direction RTL? - this.dynamicOverrides.dir, this.overrides.dir, localeDefaults.dir); - var dirDefaults = dir === 'rtl' ? rtlDefaults : {}; - this.dirDefaults = dirDefaults; - this.localeDefaults = localeDefaults; - this.computed = mergeOptions([ - globalDefaults, - dirDefaults, - localeDefaults, - this.overrides, - this.dynamicOverrides - ]); - }; - return OptionsManager; - }()); - - var calendarSystemClassMap = {}; - function registerCalendarSystem(name, theClass) { - calendarSystemClassMap[name] = theClass; - } - function createCalendarSystem(name) { - return new calendarSystemClassMap[name](); - } - var GregorianCalendarSystem = /** @class */ (function () { - function GregorianCalendarSystem() { - } - GregorianCalendarSystem.prototype.getMarkerYear = function (d) { - return d.getUTCFullYear(); - }; - GregorianCalendarSystem.prototype.getMarkerMonth = function (d) { - return d.getUTCMonth(); - }; - GregorianCalendarSystem.prototype.getMarkerDay = function (d) { - return d.getUTCDate(); - }; - GregorianCalendarSystem.prototype.arrayToMarker = function (arr) { - return arrayToUtcDate(arr); - }; - GregorianCalendarSystem.prototype.markerToArray = function (marker) { - return dateToUtcArray(marker); - }; - return GregorianCalendarSystem; - }()); - registerCalendarSystem('gregory', GregorianCalendarSystem); - - var ISO_RE = /^\s*(\d{4})(-(\d{2})(-(\d{2})([T ](\d{2}):(\d{2})(:(\d{2})(\.(\d+))?)?(Z|(([-+])(\d{2})(:?(\d{2}))?))?)?)?)?$/; - function parse(str) { - var m = ISO_RE.exec(str); - if (m) { - var marker = new Date(Date.UTC(Number(m[1]), m[3] ? Number(m[3]) - 1 : 0, Number(m[5] || 1), Number(m[7] || 0), Number(m[8] || 0), Number(m[10] || 0), m[12] ? Number('0.' + m[12]) * 1000 : 0)); - if (isValidDate(marker)) { - var timeZoneOffset = null; - if (m[13]) { - timeZoneOffset = (m[15] === '-' ? -1 : 1) * (Number(m[16] || 0) * 60 + - Number(m[18] || 0)); - } - return { - marker: marker, - isTimeUnspecified: !m[6], - timeZoneOffset: timeZoneOffset - }; - } - } - return null; - } - - var DateEnv = /** @class */ (function () { - function DateEnv(settings) { - var timeZone = this.timeZone = settings.timeZone; - var isNamedTimeZone = timeZone !== 'local' && timeZone !== 'UTC'; - if (settings.namedTimeZoneImpl && isNamedTimeZone) { - this.namedTimeZoneImpl = new settings.namedTimeZoneImpl(timeZone); - } - this.canComputeOffset = Boolean(!isNamedTimeZone || this.namedTimeZoneImpl); - this.calendarSystem = createCalendarSystem(settings.calendarSystem); - this.locale = settings.locale; - this.weekDow = settings.locale.week.dow; - this.weekDoy = settings.locale.week.doy; - if (settings.weekNumberCalculation === 'ISO') { - this.weekDow = 1; - this.weekDoy = 4; - } - if (typeof settings.firstDay === 'number') { - this.weekDow = settings.firstDay; - } - if (typeof settings.weekNumberCalculation === 'function') { - this.weekNumberFunc = settings.weekNumberCalculation; - } - this.weekLabel = settings.weekLabel != null ? settings.weekLabel : settings.locale.options.weekLabel; - this.cmdFormatter = settings.cmdFormatter; - } - // Creating / Parsing - DateEnv.prototype.createMarker = function (input) { - var meta = this.createMarkerMeta(input); - if (meta === null) { - return null; - } - return meta.marker; - }; - DateEnv.prototype.createNowMarker = function () { - if (this.canComputeOffset) { - return this.timestampToMarker(new Date().valueOf()); - } - else { - // if we can't compute the current date val for a timezone, - // better to give the current local date vals than UTC - return arrayToUtcDate(dateToLocalArray(new Date())); - } - }; - DateEnv.prototype.createMarkerMeta = function (input) { - if (typeof input === 'string') { - return this.parse(input); - } - var marker = null; - if (typeof input === 'number') { - marker = this.timestampToMarker(input); - } - else if (input instanceof Date) { - input = input.valueOf(); - if (!isNaN(input)) { - marker = this.timestampToMarker(input); - } - } - else if (Array.isArray(input)) { - marker = arrayToUtcDate(input); - } - if (marker === null || !isValidDate(marker)) { - return null; - } - return { marker: marker, isTimeUnspecified: false, forcedTzo: null }; - }; - DateEnv.prototype.parse = function (s) { - var parts = parse(s); - if (parts === null) { - return null; - } - var marker = parts.marker; - var forcedTzo = null; - if (parts.timeZoneOffset !== null) { - if (this.canComputeOffset) { - marker = this.timestampToMarker(marker.valueOf() - parts.timeZoneOffset * 60 * 1000); - } - else { - forcedTzo = parts.timeZoneOffset; - } - } - return { marker: marker, isTimeUnspecified: parts.isTimeUnspecified, forcedTzo: forcedTzo }; - }; - // Accessors - DateEnv.prototype.getYear = function (marker) { - return this.calendarSystem.getMarkerYear(marker); - }; - DateEnv.prototype.getMonth = function (marker) { - return this.calendarSystem.getMarkerMonth(marker); - }; - // Adding / Subtracting - DateEnv.prototype.add = function (marker, dur) { - var a = this.calendarSystem.markerToArray(marker); - a[0] += dur.years; - a[1] += dur.months; - a[2] += dur.days; - a[6] += dur.milliseconds; - return this.calendarSystem.arrayToMarker(a); - }; - DateEnv.prototype.subtract = function (marker, dur) { - var a = this.calendarSystem.markerToArray(marker); - a[0] -= dur.years; - a[1] -= dur.months; - a[2] -= dur.days; - a[6] -= dur.milliseconds; - return this.calendarSystem.arrayToMarker(a); - }; - DateEnv.prototype.addYears = function (marker, n) { - var a = this.calendarSystem.markerToArray(marker); - a[0] += n; - return this.calendarSystem.arrayToMarker(a); - }; - DateEnv.prototype.addMonths = function (marker, n) { - var a = this.calendarSystem.markerToArray(marker); - a[1] += n; - return this.calendarSystem.arrayToMarker(a); - }; - // Diffing Whole Units - DateEnv.prototype.diffWholeYears = function (m0, m1) { - var calendarSystem = this.calendarSystem; - if (timeAsMs(m0) === timeAsMs(m1) && - calendarSystem.getMarkerDay(m0) === calendarSystem.getMarkerDay(m1) && - calendarSystem.getMarkerMonth(m0) === calendarSystem.getMarkerMonth(m1)) { - return calendarSystem.getMarkerYear(m1) - calendarSystem.getMarkerYear(m0); - } - return null; - }; - DateEnv.prototype.diffWholeMonths = function (m0, m1) { - var calendarSystem = this.calendarSystem; - if (timeAsMs(m0) === timeAsMs(m1) && - calendarSystem.getMarkerDay(m0) === calendarSystem.getMarkerDay(m1)) { - return (calendarSystem.getMarkerMonth(m1) - calendarSystem.getMarkerMonth(m0)) + - (calendarSystem.getMarkerYear(m1) - calendarSystem.getMarkerYear(m0)) * 12; - } - return null; - }; - // Range / Duration - DateEnv.prototype.greatestWholeUnit = function (m0, m1) { - var n = this.diffWholeYears(m0, m1); - if (n !== null) { - return { unit: 'year', value: n }; - } - n = this.diffWholeMonths(m0, m1); - if (n !== null) { - return { unit: 'month', value: n }; - } - n = diffWholeWeeks(m0, m1); - if (n !== null) { - return { unit: 'week', value: n }; - } - n = diffWholeDays(m0, m1); - if (n !== null) { - return { unit: 'day', value: n }; - } - n = diffHours(m0, m1); - if (isInt(n)) { - return { unit: 'hour', value: n }; - } - n = diffMinutes(m0, m1); - if (isInt(n)) { - return { unit: 'minute', value: n }; - } - n = diffSeconds(m0, m1); - if (isInt(n)) { - return { unit: 'second', value: n }; - } - return { unit: 'millisecond', value: m1.valueOf() - m0.valueOf() }; - }; - DateEnv.prototype.countDurationsBetween = function (m0, m1, d) { - // TODO: can use greatestWholeUnit - var diff; - if (d.years) { - diff = this.diffWholeYears(m0, m1); - if (diff !== null) { - return diff / asRoughYears(d); - } - } - if (d.months) { - diff = this.diffWholeMonths(m0, m1); - if (diff !== null) { - return diff / asRoughMonths(d); - } - } - if (d.days) { - diff = diffWholeDays(m0, m1); - if (diff !== null) { - return diff / asRoughDays(d); - } - } - return (m1.valueOf() - m0.valueOf()) / asRoughMs(d); - }; - // Start-Of - DateEnv.prototype.startOf = function (m, unit) { - if (unit === 'year') { - return this.startOfYear(m); - } - else if (unit === 'month') { - return this.startOfMonth(m); - } - else if (unit === 'week') { - return this.startOfWeek(m); - } - else if (unit === 'day') { - return startOfDay(m); - } - else if (unit === 'hour') { - return startOfHour(m); - } - else if (unit === 'minute') { - return startOfMinute(m); - } - else if (unit === 'second') { - return startOfSecond(m); - } - }; - DateEnv.prototype.startOfYear = function (m) { - return this.calendarSystem.arrayToMarker([ - this.calendarSystem.getMarkerYear(m) - ]); - }; - DateEnv.prototype.startOfMonth = function (m) { - return this.calendarSystem.arrayToMarker([ - this.calendarSystem.getMarkerYear(m), - this.calendarSystem.getMarkerMonth(m) - ]); - }; - DateEnv.prototype.startOfWeek = function (m) { - return this.calendarSystem.arrayToMarker([ - this.calendarSystem.getMarkerYear(m), - this.calendarSystem.getMarkerMonth(m), - m.getUTCDate() - ((m.getUTCDay() - this.weekDow + 7) % 7) - ]); - }; - // Week Number - DateEnv.prototype.computeWeekNumber = function (marker) { - if (this.weekNumberFunc) { - return this.weekNumberFunc(this.toDate(marker)); - } - else { - return weekOfYear(marker, this.weekDow, this.weekDoy); - } - }; - // TODO: choke on timeZoneName: long - DateEnv.prototype.format = function (marker, formatter, dateOptions) { - if (dateOptions === void 0) { dateOptions = {}; } - return formatter.format({ - marker: marker, - timeZoneOffset: dateOptions.forcedTzo != null ? - dateOptions.forcedTzo : - this.offsetForMarker(marker) - }, this); - }; - DateEnv.prototype.formatRange = function (start, end, formatter, dateOptions) { - if (dateOptions === void 0) { dateOptions = {}; } - if (dateOptions.isEndExclusive) { - end = addMs(end, -1); - } - return formatter.formatRange({ - marker: start, - timeZoneOffset: dateOptions.forcedStartTzo != null ? - dateOptions.forcedStartTzo : - this.offsetForMarker(start) - }, { - marker: end, - timeZoneOffset: dateOptions.forcedEndTzo != null ? - dateOptions.forcedEndTzo : - this.offsetForMarker(end) - }, this); - }; - DateEnv.prototype.formatIso = function (marker, extraOptions) { - if (extraOptions === void 0) { extraOptions = {}; } - var timeZoneOffset = null; - if (!extraOptions.omitTimeZoneOffset) { - if (extraOptions.forcedTzo != null) { - timeZoneOffset = extraOptions.forcedTzo; - } - else { - timeZoneOffset = this.offsetForMarker(marker); - } - } - return buildIsoString(marker, timeZoneOffset, extraOptions.omitTime); - }; - // TimeZone - DateEnv.prototype.timestampToMarker = function (ms) { - if (this.timeZone === 'local') { - return arrayToUtcDate(dateToLocalArray(new Date(ms))); - } - else if (this.timeZone === 'UTC' || !this.namedTimeZoneImpl) { - return new Date(ms); - } - else { - return arrayToUtcDate(this.namedTimeZoneImpl.timestampToArray(ms)); - } - }; - DateEnv.prototype.offsetForMarker = function (m) { - if (this.timeZone === 'local') { - return -arrayToLocalDate(dateToUtcArray(m)).getTimezoneOffset(); // convert "inverse" offset to "normal" offset - } - else if (this.timeZone === 'UTC') { - return 0; - } - else if (this.namedTimeZoneImpl) { - return this.namedTimeZoneImpl.offsetForArray(dateToUtcArray(m)); - } - return null; - }; - // Conversion - DateEnv.prototype.toDate = function (m, forcedTzo) { - if (this.timeZone === 'local') { - return arrayToLocalDate(dateToUtcArray(m)); - } - else if (this.timeZone === 'UTC') { - return new Date(m.valueOf()); // make sure it's a copy - } - else if (!this.namedTimeZoneImpl) { - return new Date(m.valueOf() - (forcedTzo || 0)); - } - else { - return new Date(m.valueOf() - - this.namedTimeZoneImpl.offsetForArray(dateToUtcArray(m)) * 1000 * 60 // convert minutes -> ms - ); - } - }; - return DateEnv; - }()); - - var SIMPLE_SOURCE_PROPS = { - id: String, - allDayDefault: Boolean, - eventDataTransform: Function, - success: Function, - failure: Function - }; - var uid$2 = 0; - function doesSourceNeedRange(eventSource, calendar) { - var defs = calendar.pluginSystem.hooks.eventSourceDefs; - return !defs[eventSource.sourceDefId].ignoreRange; - } - function parseEventSource(raw, calendar) { - var defs = calendar.pluginSystem.hooks.eventSourceDefs; - for (var i = defs.length - 1; i >= 0; i--) { // later-added plugins take precedence - var def = defs[i]; - var meta = def.parseMeta(raw); - if (meta) { - var res = parseEventSourceProps(typeof raw === 'object' ? raw : {}, meta, i, calendar); - res._raw = raw; - return res; - } - } - return null; - } - function parseEventSourceProps(raw, meta, sourceDefId, calendar) { - var leftovers0 = {}; - var props = refineProps(raw, SIMPLE_SOURCE_PROPS, {}, leftovers0); - var leftovers1 = {}; - var ui = processUnscopedUiProps(leftovers0, calendar, leftovers1); - props.isFetching = false; - props.latestFetchId = ''; - props.fetchRange = null; - props.publicId = String(raw.id || ''); - props.sourceId = String(uid$2++); - props.sourceDefId = sourceDefId; - props.meta = meta; - props.ui = ui; - props.extendedProps = leftovers1; - return props; - } - - function reduceEventSources (eventSources, action, dateProfile, calendar) { - switch (action.type) { - case 'ADD_EVENT_SOURCES': // already parsed - return addSources(eventSources, action.sources, dateProfile ? dateProfile.activeRange : null, calendar); - case 'REMOVE_EVENT_SOURCE': - return removeSource(eventSources, action.sourceId); - case 'PREV': // TODO: how do we track all actions that affect dateProfile :( - case 'NEXT': - case 'SET_DATE': - case 'SET_VIEW_TYPE': - if (dateProfile) { - return fetchDirtySources(eventSources, dateProfile.activeRange, calendar); - } - else { - return eventSources; - } - case 'FETCH_EVENT_SOURCES': - case 'CHANGE_TIMEZONE': - return fetchSourcesByIds(eventSources, action.sourceIds ? - arrayToHash(action.sourceIds) : - excludeStaticSources(eventSources, calendar), dateProfile ? dateProfile.activeRange : null, calendar); - case 'RECEIVE_EVENTS': - case 'RECEIVE_EVENT_ERROR': - return receiveResponse(eventSources, action.sourceId, action.fetchId, action.fetchRange); - case 'REMOVE_ALL_EVENT_SOURCES': - return {}; - default: - return eventSources; - } - } - var uid$3 = 0; - function addSources(eventSourceHash, sources, fetchRange, calendar) { - var hash = {}; - for (var _i = 0, sources_1 = sources; _i < sources_1.length; _i++) { - var source = sources_1[_i]; - hash[source.sourceId] = source; - } - if (fetchRange) { - hash = fetchDirtySources(hash, fetchRange, calendar); - } - return __assign({}, eventSourceHash, hash); - } - function removeSource(eventSourceHash, sourceId) { - return filterHash(eventSourceHash, function (eventSource) { - return eventSource.sourceId !== sourceId; - }); - } - function fetchDirtySources(sourceHash, fetchRange, calendar) { - return fetchSourcesByIds(sourceHash, filterHash(sourceHash, function (eventSource) { - return isSourceDirty(eventSource, fetchRange, calendar); - }), fetchRange, calendar); - } - function isSourceDirty(eventSource, fetchRange, calendar) { - if (!doesSourceNeedRange(eventSource, calendar)) { - return !eventSource.latestFetchId; - } - else { - return !calendar.opt('lazyFetching') || - !eventSource.fetchRange || - fetchRange.start < eventSource.fetchRange.start || - fetchRange.end > eventSource.fetchRange.end; - } - } - function fetchSourcesByIds(prevSources, sourceIdHash, fetchRange, calendar) { - var nextSources = {}; - for (var sourceId in prevSources) { - var source = prevSources[sourceId]; - if (sourceIdHash[sourceId]) { - nextSources[sourceId] = fetchSource(source, fetchRange, calendar); - } - else { - nextSources[sourceId] = source; - } - } - return nextSources; - } - function fetchSource(eventSource, fetchRange, calendar) { - var sourceDef = calendar.pluginSystem.hooks.eventSourceDefs[eventSource.sourceDefId]; - var fetchId = String(uid$3++); - sourceDef.fetch({ - eventSource: eventSource, - calendar: calendar, - range: fetchRange - }, function (res) { - var rawEvents = res.rawEvents; - var calSuccess = calendar.opt('eventSourceSuccess'); - var calSuccessRes; - var sourceSuccessRes; - if (eventSource.success) { - sourceSuccessRes = eventSource.success(rawEvents, res.xhr); - } - if (calSuccess) { - calSuccessRes = calSuccess(rawEvents, res.xhr); - } - rawEvents = sourceSuccessRes || calSuccessRes || rawEvents; - calendar.dispatch({ - type: 'RECEIVE_EVENTS', - sourceId: eventSource.sourceId, - fetchId: fetchId, - fetchRange: fetchRange, - rawEvents: rawEvents - }); - }, function (error) { - var callFailure = calendar.opt('eventSourceFailure'); - console.warn(error.message, error); - if (eventSource.failure) { - eventSource.failure(error); - } - if (callFailure) { - callFailure(error); - } - calendar.dispatch({ - type: 'RECEIVE_EVENT_ERROR', - sourceId: eventSource.sourceId, - fetchId: fetchId, - fetchRange: fetchRange, - error: error - }); - }); - return __assign({}, eventSource, { isFetching: true, latestFetchId: fetchId }); - } - function receiveResponse(sourceHash, sourceId, fetchId, fetchRange) { - var _a; - var eventSource = sourceHash[sourceId]; - if (eventSource && // not already removed - fetchId === eventSource.latestFetchId) { - return __assign({}, sourceHash, (_a = {}, _a[sourceId] = __assign({}, eventSource, { isFetching: false, fetchRange: fetchRange }), _a)); - } - return sourceHash; - } - function excludeStaticSources(eventSources, calendar) { - return filterHash(eventSources, function (eventSource) { - return doesSourceNeedRange(eventSource, calendar); - }); - } - - var DateProfileGenerator = /** @class */ (function () { - function DateProfileGenerator(viewSpec, calendar) { - this.viewSpec = viewSpec; - this.options = viewSpec.options; - this.dateEnv = calendar.dateEnv; - this.calendar = calendar; - this.initHiddenDays(); - } - /* Date Range Computation - ------------------------------------------------------------------------------------------------------------------*/ - // Builds a structure with info about what the dates/ranges will be for the "prev" view. - DateProfileGenerator.prototype.buildPrev = function (currentDateProfile, currentDate) { - var dateEnv = this.dateEnv; - var prevDate = dateEnv.subtract(dateEnv.startOf(currentDate, currentDateProfile.currentRangeUnit), // important for start-of-month - currentDateProfile.dateIncrement); - return this.build(prevDate, -1); - }; - // Builds a structure with info about what the dates/ranges will be for the "next" view. - DateProfileGenerator.prototype.buildNext = function (currentDateProfile, currentDate) { - var dateEnv = this.dateEnv; - var nextDate = dateEnv.add(dateEnv.startOf(currentDate, currentDateProfile.currentRangeUnit), // important for start-of-month - currentDateProfile.dateIncrement); - return this.build(nextDate, 1); - }; - // Builds a structure holding dates/ranges for rendering around the given date. - // Optional direction param indicates whether the date is being incremented/decremented - // from its previous value. decremented = -1, incremented = 1 (default). - DateProfileGenerator.prototype.build = function (currentDate, direction, forceToValid) { - if (forceToValid === void 0) { forceToValid = false; } - var validRange; - var minTime = null; - var maxTime = null; - var currentInfo; - var isRangeAllDay; - var renderRange; - var activeRange; - var isValid; - validRange = this.buildValidRange(); - validRange = this.trimHiddenDays(validRange); - if (forceToValid) { - currentDate = constrainMarkerToRange(currentDate, validRange); - } - currentInfo = this.buildCurrentRangeInfo(currentDate, direction); - isRangeAllDay = /^(year|month|week|day)$/.test(currentInfo.unit); - renderRange = this.buildRenderRange(this.trimHiddenDays(currentInfo.range), currentInfo.unit, isRangeAllDay); - renderRange = this.trimHiddenDays(renderRange); - activeRange = renderRange; - if (!this.options.showNonCurrentDates) { - activeRange = intersectRanges(activeRange, currentInfo.range); - } - minTime = createDuration(this.options.minTime); - maxTime = createDuration(this.options.maxTime); - activeRange = this.adjustActiveRange(activeRange, minTime, maxTime); - activeRange = intersectRanges(activeRange, validRange); // might return null - // it's invalid if the originally requested date is not contained, - // or if the range is completely outside of the valid range. - isValid = rangesIntersect(currentInfo.range, validRange); - return { - // constraint for where prev/next operations can go and where events can be dragged/resized to. - // an object with optional start and end properties. - validRange: validRange, - // range the view is formally responsible for. - // for example, a month view might have 1st-31st, excluding padded dates - currentRange: currentInfo.range, - // name of largest unit being displayed, like "month" or "week" - currentRangeUnit: currentInfo.unit, - isRangeAllDay: isRangeAllDay, - // dates that display events and accept drag-n-drop - // will be `null` if no dates accept events - activeRange: activeRange, - // date range with a rendered skeleton - // includes not-active days that need some sort of DOM - renderRange: renderRange, - // Duration object that denotes the first visible time of any given day - minTime: minTime, - // Duration object that denotes the exclusive visible end time of any given day - maxTime: maxTime, - isValid: isValid, - // how far the current date will move for a prev/next operation - dateIncrement: this.buildDateIncrement(currentInfo.duration) - // pass a fallback (might be null) ^ - }; - }; - // Builds an object with optional start/end properties. - // Indicates the minimum/maximum dates to display. - // not responsible for trimming hidden days. - DateProfileGenerator.prototype.buildValidRange = function () { - return this.getRangeOption('validRange', this.calendar.getNow()) || - { start: null, end: null }; // completely open-ended - }; - // Builds a structure with info about the "current" range, the range that is - // highlighted as being the current month for example. - // See build() for a description of `direction`. - // Guaranteed to have `range` and `unit` properties. `duration` is optional. - DateProfileGenerator.prototype.buildCurrentRangeInfo = function (date, direction) { - var _a = this, viewSpec = _a.viewSpec, dateEnv = _a.dateEnv; - var duration = null; - var unit = null; - var range = null; - var dayCount; - if (viewSpec.duration) { - duration = viewSpec.duration; - unit = viewSpec.durationUnit; - range = this.buildRangeFromDuration(date, direction, duration, unit); - } - else if ((dayCount = this.options.dayCount)) { - unit = 'day'; - range = this.buildRangeFromDayCount(date, direction, dayCount); - } - else if ((range = this.buildCustomVisibleRange(date))) { - unit = dateEnv.greatestWholeUnit(range.start, range.end).unit; - } - else { - duration = this.getFallbackDuration(); - unit = greatestDurationDenominator(duration).unit; - range = this.buildRangeFromDuration(date, direction, duration, unit); - } - return { duration: duration, unit: unit, range: range }; - }; - DateProfileGenerator.prototype.getFallbackDuration = function () { - return createDuration({ day: 1 }); - }; - // Returns a new activeRange to have time values (un-ambiguate) - // minTime or maxTime causes the range to expand. - DateProfileGenerator.prototype.adjustActiveRange = function (range, minTime, maxTime) { - var dateEnv = this.dateEnv; - var start = range.start; - var end = range.end; - if (this.viewSpec.class.prototype.usesMinMaxTime) { - // expand active range if minTime is negative (why not when positive?) - if (asRoughDays(minTime) < 0) { - start = startOfDay(start); // necessary? - start = dateEnv.add(start, minTime); - } - // expand active range if maxTime is beyond one day (why not when positive?) - if (asRoughDays(maxTime) > 1) { - end = startOfDay(end); // necessary? - end = addDays(end, -1); - end = dateEnv.add(end, maxTime); - } - } - return { start: start, end: end }; - }; - // Builds the "current" range when it is specified as an explicit duration. - // `unit` is the already-computed greatestDurationDenominator unit of duration. - DateProfileGenerator.prototype.buildRangeFromDuration = function (date, direction, duration, unit) { - var dateEnv = this.dateEnv; - var alignment = this.options.dateAlignment; - var dateIncrementInput; - var dateIncrementDuration; - var start; - var end; - var res; - // compute what the alignment should be - if (!alignment) { - dateIncrementInput = this.options.dateIncrement; - if (dateIncrementInput) { - dateIncrementDuration = createDuration(dateIncrementInput); - // use the smaller of the two units - if (asRoughMs(dateIncrementDuration) < asRoughMs(duration)) { - alignment = greatestDurationDenominator(dateIncrementDuration, !getWeeksFromInput(dateIncrementInput)).unit; - } - else { - alignment = unit; - } - } - else { - alignment = unit; - } - } - // if the view displays a single day or smaller - if (asRoughDays(duration) <= 1) { - if (this.isHiddenDay(start)) { - start = this.skipHiddenDays(start, direction); - start = startOfDay(start); - } - } - function computeRes() { - start = dateEnv.startOf(date, alignment); - end = dateEnv.add(start, duration); - res = { start: start, end: end }; - } - computeRes(); - // if range is completely enveloped by hidden days, go past the hidden days - if (!this.trimHiddenDays(res)) { - date = this.skipHiddenDays(date, direction); - computeRes(); - } - return res; - }; - // Builds the "current" range when a dayCount is specified. - DateProfileGenerator.prototype.buildRangeFromDayCount = function (date, direction, dayCount) { - var dateEnv = this.dateEnv; - var customAlignment = this.options.dateAlignment; - var runningCount = 0; - var start = date; - var end; - if (customAlignment) { - start = dateEnv.startOf(start, customAlignment); - } - start = startOfDay(start); - start = this.skipHiddenDays(start, direction); - end = start; - do { - end = addDays(end, 1); - if (!this.isHiddenDay(end)) { - runningCount++; - } - } while (runningCount < dayCount); - return { start: start, end: end }; - }; - // Builds a normalized range object for the "visible" range, - // which is a way to define the currentRange and activeRange at the same time. - DateProfileGenerator.prototype.buildCustomVisibleRange = function (date) { - var dateEnv = this.dateEnv; - var visibleRange = this.getRangeOption('visibleRange', dateEnv.toDate(date)); - if (visibleRange && (visibleRange.start == null || visibleRange.end == null)) { - return null; - } - return visibleRange; - }; - // Computes the range that will represent the element/cells for *rendering*, - // but which may have voided days/times. - // not responsible for trimming hidden days. - DateProfileGenerator.prototype.buildRenderRange = function (currentRange, currentRangeUnit, isRangeAllDay) { - return currentRange; - }; - // Compute the duration value that should be added/substracted to the current date - // when a prev/next operation happens. - DateProfileGenerator.prototype.buildDateIncrement = function (fallback) { - var dateIncrementInput = this.options.dateIncrement; - var customAlignment; - if (dateIncrementInput) { - return createDuration(dateIncrementInput); - } - else if ((customAlignment = this.options.dateAlignment)) { - return createDuration(1, customAlignment); - } - else if (fallback) { - return fallback; - } - else { - return createDuration({ days: 1 }); - } - }; - // Arguments after name will be forwarded to a hypothetical function value - // WARNING: passed-in arguments will be given to generator functions as-is and can cause side-effects. - // Always clone your objects if you fear mutation. - DateProfileGenerator.prototype.getRangeOption = function (name) { - var otherArgs = []; - for (var _i = 1; _i < arguments.length; _i++) { - otherArgs[_i - 1] = arguments[_i]; - } - var val = this.options[name]; - if (typeof val === 'function') { - val = val.apply(null, otherArgs); - } - if (val) { - val = parseRange(val, this.dateEnv); - } - if (val) { - val = computeVisibleDayRange(val); - } - return val; - }; - /* Hidden Days - ------------------------------------------------------------------------------------------------------------------*/ - // Initializes internal variables related to calculating hidden days-of-week - DateProfileGenerator.prototype.initHiddenDays = function () { - var hiddenDays = this.options.hiddenDays || []; // array of day-of-week indices that are hidden - var isHiddenDayHash = []; // is the day-of-week hidden? (hash with day-of-week-index -> bool) - var dayCnt = 0; - var i; - if (this.options.weekends === false) { - hiddenDays.push(0, 6); // 0=sunday, 6=saturday - } - for (i = 0; i < 7; i++) { - if (!(isHiddenDayHash[i] = hiddenDays.indexOf(i) !== -1)) { - dayCnt++; - } - } - if (!dayCnt) { - throw new Error('invalid hiddenDays'); // all days were hidden? bad. - } - this.isHiddenDayHash = isHiddenDayHash; - }; - // Remove days from the beginning and end of the range that are computed as hidden. - // If the whole range is trimmed off, returns null - DateProfileGenerator.prototype.trimHiddenDays = function (range) { - var start = range.start; - var end = range.end; - if (start) { - start = this.skipHiddenDays(start); - } - if (end) { - end = this.skipHiddenDays(end, -1, true); - } - if (start == null || end == null || start < end) { - return { start: start, end: end }; - } - return null; - }; - // Is the current day hidden? - // `day` is a day-of-week index (0-6), or a Date (used for UTC) - DateProfileGenerator.prototype.isHiddenDay = function (day) { - if (day instanceof Date) { - day = day.getUTCDay(); - } - return this.isHiddenDayHash[day]; - }; - // Incrementing the current day until it is no longer a hidden day, returning a copy. - // DOES NOT CONSIDER validRange! - // If the initial value of `date` is not a hidden day, don't do anything. - // Pass `isExclusive` as `true` if you are dealing with an end date. - // `inc` defaults to `1` (increment one day forward each time) - DateProfileGenerator.prototype.skipHiddenDays = function (date, inc, isExclusive) { - if (inc === void 0) { inc = 1; } - if (isExclusive === void 0) { isExclusive = false; } - while (this.isHiddenDayHash[(date.getUTCDay() + (isExclusive ? inc : 0) + 7) % 7]) { - date = addDays(date, inc); - } - return date; - }; - return DateProfileGenerator; - }()); - // TODO: find a way to avoid comparing DateProfiles. it's tedious - function isDateProfilesEqual(p0, p1) { - return rangesEqual(p0.validRange, p1.validRange) && - rangesEqual(p0.activeRange, p1.activeRange) && - rangesEqual(p0.renderRange, p1.renderRange) && - durationsEqual(p0.minTime, p1.minTime) && - durationsEqual(p0.maxTime, p1.maxTime); - /* - TODO: compare more? - currentRange: DateRange - currentRangeUnit: string - isRangeAllDay: boolean - isValid: boolean - dateIncrement: Duration - */ - } - - function reduce (state, action, calendar) { - var viewType = reduceViewType(state.viewType, action); - var dateProfile = reduceDateProfile(state.dateProfile, action, state.currentDate, viewType, calendar); - var eventSources = reduceEventSources(state.eventSources, action, dateProfile, calendar); - var nextState = __assign({}, state, { viewType: viewType, - dateProfile: dateProfile, currentDate: reduceCurrentDate(state.currentDate, action, dateProfile), eventSources: eventSources, eventStore: reduceEventStore(state.eventStore, action, eventSources, dateProfile, calendar), dateSelection: reduceDateSelection(state.dateSelection, action, calendar), eventSelection: reduceSelectedEvent(state.eventSelection, action), eventDrag: reduceEventDrag(state.eventDrag, action, eventSources, calendar), eventResize: reduceEventResize(state.eventResize, action, eventSources, calendar), eventSourceLoadingLevel: computeLoadingLevel(eventSources), loadingLevel: computeLoadingLevel(eventSources) }); - for (var _i = 0, _a = calendar.pluginSystem.hooks.reducers; _i < _a.length; _i++) { - var reducerFunc = _a[_i]; - nextState = reducerFunc(nextState, action, calendar); - } - // console.log(action.type, nextState) - return nextState; - } - function reduceViewType(currentViewType, action) { - switch (action.type) { - case 'SET_VIEW_TYPE': - return action.viewType; - default: - return currentViewType; - } - } - function reduceDateProfile(currentDateProfile, action, currentDate, viewType, calendar) { - var newDateProfile; - switch (action.type) { - case 'PREV': - newDateProfile = calendar.dateProfileGenerators[viewType].buildPrev(currentDateProfile, currentDate); - break; - case 'NEXT': - newDateProfile = calendar.dateProfileGenerators[viewType].buildNext(currentDateProfile, currentDate); - break; - case 'SET_DATE': - if (!currentDateProfile.activeRange || - !rangeContainsMarker(currentDateProfile.currentRange, action.dateMarker)) { - newDateProfile = calendar.dateProfileGenerators[viewType].build(action.dateMarker, undefined, true // forceToValid - ); - } - break; - case 'SET_VIEW_TYPE': - var generator = calendar.dateProfileGenerators[viewType]; - if (!generator) { - throw new Error(viewType ? - 'The FullCalendar view "' + viewType + '" does not exist. Make sure your plugins are loaded correctly.' : - 'No available FullCalendar view plugins.'); - } - newDateProfile = generator.build(action.dateMarker || currentDate, undefined, true // forceToValid - ); - break; - } - if (newDateProfile && - newDateProfile.isValid && - !(currentDateProfile && isDateProfilesEqual(currentDateProfile, newDateProfile))) { - return newDateProfile; - } - else { - return currentDateProfile; - } - } - function reduceCurrentDate(currentDate, action, dateProfile) { - switch (action.type) { - case 'PREV': - case 'NEXT': - if (!rangeContainsMarker(dateProfile.currentRange, currentDate)) { - return dateProfile.currentRange.start; - } - else { - return currentDate; - } - case 'SET_DATE': - case 'SET_VIEW_TYPE': - var newDate = action.dateMarker || currentDate; - if (dateProfile.activeRange && !rangeContainsMarker(dateProfile.activeRange, newDate)) { - return dateProfile.currentRange.start; - } - else { - return newDate; - } - default: - return currentDate; - } - } - function reduceDateSelection(currentSelection, action, calendar) { - switch (action.type) { - case 'SELECT_DATES': - return action.selection; - case 'UNSELECT_DATES': - return null; - default: - return currentSelection; - } - } - function reduceSelectedEvent(currentInstanceId, action) { - switch (action.type) { - case 'SELECT_EVENT': - return action.eventInstanceId; - case 'UNSELECT_EVENT': - return ''; - default: - return currentInstanceId; - } - } - function reduceEventDrag(currentDrag, action, sources, calendar) { - switch (action.type) { - case 'SET_EVENT_DRAG': - var newDrag = action.state; - return { - affectedEvents: newDrag.affectedEvents, - mutatedEvents: newDrag.mutatedEvents, - isEvent: newDrag.isEvent, - origSeg: newDrag.origSeg - }; - case 'UNSET_EVENT_DRAG': - return null; - default: - return currentDrag; - } - } - function reduceEventResize(currentResize, action, sources, calendar) { - switch (action.type) { - case 'SET_EVENT_RESIZE': - var newResize = action.state; - return { - affectedEvents: newResize.affectedEvents, - mutatedEvents: newResize.mutatedEvents, - isEvent: newResize.isEvent, - origSeg: newResize.origSeg - }; - case 'UNSET_EVENT_RESIZE': - return null; - default: - return currentResize; - } - } - function computeLoadingLevel(eventSources) { - var cnt = 0; - for (var sourceId in eventSources) { - if (eventSources[sourceId].isFetching) { - cnt++; - } - } - return cnt; - } - - var STANDARD_PROPS = { - start: null, - end: null, - allDay: Boolean - }; - function parseDateSpan(raw, dateEnv, defaultDuration) { - var span = parseOpenDateSpan(raw, dateEnv); - var range = span.range; - if (!range.start) { - return null; - } - if (!range.end) { - if (defaultDuration == null) { - return null; - } - else { - range.end = dateEnv.add(range.start, defaultDuration); - } - } - return span; - } - /* - TODO: somehow combine with parseRange? - Will return null if the start/end props were present but parsed invalidly. - */ - function parseOpenDateSpan(raw, dateEnv) { - var leftovers = {}; - var standardProps = refineProps(raw, STANDARD_PROPS, {}, leftovers); - var startMeta = standardProps.start ? dateEnv.createMarkerMeta(standardProps.start) : null; - var endMeta = standardProps.end ? dateEnv.createMarkerMeta(standardProps.end) : null; - var allDay = standardProps.allDay; - if (allDay == null) { - allDay = (startMeta && startMeta.isTimeUnspecified) && - (!endMeta || endMeta.isTimeUnspecified); - } - // use this leftover object as the selection object - leftovers.range = { - start: startMeta ? startMeta.marker : null, - end: endMeta ? endMeta.marker : null - }; - leftovers.allDay = allDay; - return leftovers; - } - function isDateSpansEqual(span0, span1) { - return rangesEqual(span0.range, span1.range) && - span0.allDay === span1.allDay && - isSpanPropsEqual(span0, span1); - } - // the NON-DATE-RELATED props - function isSpanPropsEqual(span0, span1) { - for (var propName in span1) { - if (propName !== 'range' && propName !== 'allDay') { - if (span0[propName] !== span1[propName]) { - return false; - } - } - } - // are there any props that span0 has that span1 DOESN'T have? - // both have range/allDay, so no need to special-case. - for (var propName in span0) { - if (!(propName in span1)) { - return false; - } - } - return true; - } - function buildDateSpanApi(span, dateEnv) { - return { - start: dateEnv.toDate(span.range.start), - end: dateEnv.toDate(span.range.end), - startStr: dateEnv.formatIso(span.range.start, { omitTime: span.allDay }), - endStr: dateEnv.formatIso(span.range.end, { omitTime: span.allDay }), - allDay: span.allDay - }; - } - function buildDatePointApi(span, dateEnv) { - return { - date: dateEnv.toDate(span.range.start), - dateStr: dateEnv.formatIso(span.range.start, { omitTime: span.allDay }), - allDay: span.allDay - }; - } - function fabricateEventRange(dateSpan, eventUiBases, calendar) { - var def = parseEventDef({ editable: false }, '', // sourceId - dateSpan.allDay, true, // hasEnd - calendar); - return { - def: def, - ui: compileEventUi(def, eventUiBases), - instance: createEventInstance(def.defId, dateSpan.range), - range: dateSpan.range, - isStart: true, - isEnd: true - }; - } - - function compileViewDefs(defaultConfigs, overrideConfigs) { - var hash = {}; - var viewType; - for (viewType in defaultConfigs) { - ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs); - } - for (viewType in overrideConfigs) { - ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs); - } - return hash; - } - function ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs) { - if (hash[viewType]) { - return hash[viewType]; - } - var viewDef = buildViewDef(viewType, hash, defaultConfigs, overrideConfigs); - if (viewDef) { - hash[viewType] = viewDef; - } - return viewDef; - } - function buildViewDef(viewType, hash, defaultConfigs, overrideConfigs) { - var defaultConfig = defaultConfigs[viewType]; - var overrideConfig = overrideConfigs[viewType]; - var queryProp = function (name) { - return (defaultConfig && defaultConfig[name] !== null) ? defaultConfig[name] : - ((overrideConfig && overrideConfig[name] !== null) ? overrideConfig[name] : null); - }; - var theClass = queryProp('class'); - var superType = queryProp('superType'); - if (!superType && theClass) { - superType = - findViewNameBySubclass(theClass, overrideConfigs) || - findViewNameBySubclass(theClass, defaultConfigs); - } - var superDef = null; - if (superType) { - if (superType === viewType) { - throw new Error('Can\'t have a custom view type that references itself'); - } - superDef = ensureViewDef(superType, hash, defaultConfigs, overrideConfigs); - } - if (!theClass && superDef) { - theClass = superDef.class; - } - if (!theClass) { - return null; // don't throw a warning, might be settings for a single-unit view - } - return { - type: viewType, - class: theClass, - defaults: __assign({}, (superDef ? superDef.defaults : {}), (defaultConfig ? defaultConfig.options : {})), - overrides: __assign({}, (superDef ? superDef.overrides : {}), (overrideConfig ? overrideConfig.options : {})) - }; - } - function findViewNameBySubclass(viewSubclass, configs) { - var superProto = Object.getPrototypeOf(viewSubclass.prototype); - for (var viewType in configs) { - var parsed = configs[viewType]; - // need DIRECT subclass, so instanceof won't do it - if (parsed.class && parsed.class.prototype === superProto) { - return viewType; - } - } - return ''; - } - - function parseViewConfigs(inputs) { - return mapHash(inputs, parseViewConfig); - } - var VIEW_DEF_PROPS = { - type: String, - class: null - }; - function parseViewConfig(input) { - if (typeof input === 'function') { - input = { class: input }; - } - var options = {}; - var props = refineProps(input, VIEW_DEF_PROPS, {}, options); - return { - superType: props.type, - class: props.class, - options: options - }; - } - - function buildViewSpecs(defaultInputs, optionsManager) { - var defaultConfigs = parseViewConfigs(defaultInputs); - var overrideConfigs = parseViewConfigs(optionsManager.overrides.views); - var viewDefs = compileViewDefs(defaultConfigs, overrideConfigs); - return mapHash(viewDefs, function (viewDef) { - return buildViewSpec(viewDef, overrideConfigs, optionsManager); - }); - } - function buildViewSpec(viewDef, overrideConfigs, optionsManager) { - var durationInput = viewDef.overrides.duration || - viewDef.defaults.duration || - optionsManager.dynamicOverrides.duration || - optionsManager.overrides.duration; - var duration = null; - var durationUnit = ''; - var singleUnit = ''; - var singleUnitOverrides = {}; - if (durationInput) { - duration = createDuration(durationInput); - if (duration) { // valid? - var denom = greatestDurationDenominator(duration, !getWeeksFromInput(durationInput)); - durationUnit = denom.unit; - if (denom.value === 1) { - singleUnit = durationUnit; - singleUnitOverrides = overrideConfigs[durationUnit] ? overrideConfigs[durationUnit].options : {}; - } - } - } - var queryButtonText = function (options) { - var buttonTextMap = options.buttonText || {}; - var buttonTextKey = viewDef.defaults.buttonTextKey; - if (buttonTextKey != null && buttonTextMap[buttonTextKey] != null) { - return buttonTextMap[buttonTextKey]; - } - if (buttonTextMap[viewDef.type] != null) { - return buttonTextMap[viewDef.type]; - } - if (buttonTextMap[singleUnit] != null) { - return buttonTextMap[singleUnit]; - } - }; - return { - type: viewDef.type, - class: viewDef.class, - duration: duration, - durationUnit: durationUnit, - singleUnit: singleUnit, - options: __assign({}, globalDefaults, viewDef.defaults, optionsManager.dirDefaults, optionsManager.localeDefaults, optionsManager.overrides, singleUnitOverrides, viewDef.overrides, optionsManager.dynamicOverrides), - buttonTextOverride: queryButtonText(optionsManager.dynamicOverrides) || - queryButtonText(optionsManager.overrides) || // constructor-specified buttonText lookup hash takes precedence - viewDef.overrides.buttonText, - buttonTextDefault: queryButtonText(optionsManager.localeDefaults) || - queryButtonText(optionsManager.dirDefaults) || - viewDef.defaults.buttonText || - queryButtonText(globalDefaults) || - viewDef.type // fall back to given view name - }; - } - - var Toolbar = /** @class */ (function (_super) { - __extends(Toolbar, _super); - function Toolbar(context, extraClassName) { - var _this = _super.call(this, context) || this; - _this._renderLayout = memoizeRendering(_this.renderLayout, _this.unrenderLayout); - _this._updateTitle = memoizeRendering(_this.updateTitle, null, [_this._renderLayout]); - _this._updateActiveButton = memoizeRendering(_this.updateActiveButton, null, [_this._renderLayout]); - _this._updateToday = memoizeRendering(_this.updateToday, null, [_this._renderLayout]); - _this._updatePrev = memoizeRendering(_this.updatePrev, null, [_this._renderLayout]); - _this._updateNext = memoizeRendering(_this.updateNext, null, [_this._renderLayout]); - _this.el = createElement('div', { className: 'fc-toolbar ' + extraClassName }); - return _this; - } - Toolbar.prototype.destroy = function () { - _super.prototype.destroy.call(this); - this._renderLayout.unrender(); // should unrender everything else - removeElement(this.el); - }; - Toolbar.prototype.render = function (props) { - this._renderLayout(props.layout); - this._updateTitle(props.title); - this._updateActiveButton(props.activeButton); - this._updateToday(props.isTodayEnabled); - this._updatePrev(props.isPrevEnabled); - this._updateNext(props.isNextEnabled); - }; - Toolbar.prototype.renderLayout = function (layout) { - var el = this.el; - this.viewsWithButtons = []; - appendToElement(el, this.renderSection('left', layout.left)); - appendToElement(el, this.renderSection('center', layout.center)); - appendToElement(el, this.renderSection('right', layout.right)); - }; - Toolbar.prototype.unrenderLayout = function () { - this.el.innerHTML = ''; - }; - Toolbar.prototype.renderSection = function (position, buttonStr) { - var _this = this; - var _a = this, theme = _a.theme, calendar = _a.calendar; - var optionsManager = calendar.optionsManager; - var viewSpecs = calendar.viewSpecs; - var sectionEl = createElement('div', { className: 'fc-' + position }); - var calendarCustomButtons = optionsManager.computed.customButtons || {}; - var calendarButtonTextOverrides = optionsManager.overrides.buttonText || {}; - var calendarButtonText = optionsManager.computed.buttonText || {}; - if (buttonStr) { - buttonStr.split(' ').forEach(function (buttonGroupStr, i) { - var groupChildren = []; - var isOnlyButtons = true; - var groupEl; - buttonGroupStr.split(',').forEach(function (buttonName, j) { - var customButtonProps; - var viewSpec; - var buttonClick; - var buttonIcon; // only one of these will be set - var buttonText; // " - var buttonInnerHtml; - var buttonClasses; - var buttonEl; - var buttonAriaAttr; - if (buttonName === 'title') { - groupChildren.push(htmlToElement('

 

')); // we always want it to take up height - isOnlyButtons = false; - } - else { - if ((customButtonProps = calendarCustomButtons[buttonName])) { - buttonClick = function (ev) { - if (customButtonProps.click) { - customButtonProps.click.call(buttonEl, ev); - } - }; - (buttonIcon = theme.getCustomButtonIconClass(customButtonProps)) || - (buttonIcon = theme.getIconClass(buttonName)) || - (buttonText = customButtonProps.text); - } - else if ((viewSpec = viewSpecs[buttonName])) { - _this.viewsWithButtons.push(buttonName); - buttonClick = function () { - calendar.changeView(buttonName); - }; - (buttonText = viewSpec.buttonTextOverride) || - (buttonIcon = theme.getIconClass(buttonName)) || - (buttonText = viewSpec.buttonTextDefault); - } - else if (calendar[buttonName]) { // a calendar method - buttonClick = function () { - calendar[buttonName](); - }; - (buttonText = calendarButtonTextOverrides[buttonName]) || - (buttonIcon = theme.getIconClass(buttonName)) || - (buttonText = calendarButtonText[buttonName]); - // ^ everything else is considered default - } - if (buttonClick) { - buttonClasses = [ - 'fc-' + buttonName + '-button', - theme.getClass('button') - ]; - if (buttonText) { - buttonInnerHtml = htmlEscape(buttonText); - buttonAriaAttr = ''; - } - else if (buttonIcon) { - buttonInnerHtml = ""; - buttonAriaAttr = ' aria-label="' + buttonName + '"'; - } - buttonEl = htmlToElement(// type="button" so that it doesn't submit a form - ''); - buttonEl.addEventListener('click', buttonClick); - groupChildren.push(buttonEl); - } - } - }); - if (groupChildren.length > 1) { - groupEl = document.createElement('div'); - var buttonGroupClassName = theme.getClass('buttonGroup'); - if (isOnlyButtons && buttonGroupClassName) { - groupEl.classList.add(buttonGroupClassName); - } - appendToElement(groupEl, groupChildren); - sectionEl.appendChild(groupEl); - } - else { - appendToElement(sectionEl, groupChildren); // 1 or 0 children - } - }); - } - return sectionEl; - }; - Toolbar.prototype.updateToday = function (isTodayEnabled) { - this.toggleButtonEnabled('today', isTodayEnabled); - }; - Toolbar.prototype.updatePrev = function (isPrevEnabled) { - this.toggleButtonEnabled('prev', isPrevEnabled); - }; - Toolbar.prototype.updateNext = function (isNextEnabled) { - this.toggleButtonEnabled('next', isNextEnabled); - }; - Toolbar.prototype.updateTitle = function (text) { - findElements(this.el, 'h2').forEach(function (titleEl) { - titleEl.innerText = text; - }); - }; - Toolbar.prototype.updateActiveButton = function (buttonName) { - var className = this.theme.getClass('buttonActive'); - findElements(this.el, 'button').forEach(function (buttonEl) { - if (buttonName && buttonEl.classList.contains('fc-' + buttonName + '-button')) { - buttonEl.classList.add(className); - } - else { - buttonEl.classList.remove(className); - } - }); - }; - Toolbar.prototype.toggleButtonEnabled = function (buttonName, bool) { - findElements(this.el, '.fc-' + buttonName + '-button').forEach(function (buttonEl) { - buttonEl.disabled = !bool; - }); - }; - return Toolbar; - }(Component)); - - var CalendarComponent = /** @class */ (function (_super) { - __extends(CalendarComponent, _super); - function CalendarComponent(context, el) { - var _this = _super.call(this, context) || this; - _this._renderToolbars = memoizeRendering(_this.renderToolbars); - _this.buildViewPropTransformers = memoize(buildViewPropTransformers); - _this.el = el; - prependToElement(el, _this.contentEl = createElement('div', { className: 'fc-view-container' })); - var calendar = _this.calendar; - for (var _i = 0, _a = calendar.pluginSystem.hooks.viewContainerModifiers; _i < _a.length; _i++) { - var modifyViewContainer = _a[_i]; - modifyViewContainer(_this.contentEl, calendar); - } - _this.toggleElClassNames(true); - _this.computeTitle = memoize(computeTitle); - _this.parseBusinessHours = memoize(function (input) { - return parseBusinessHours(input, _this.calendar); - }); - return _this; - } - CalendarComponent.prototype.destroy = function () { - if (this.header) { - this.header.destroy(); - } - if (this.footer) { - this.footer.destroy(); - } - if (this.view) { - this.view.destroy(); - } - removeElement(this.contentEl); - this.toggleElClassNames(false); - _super.prototype.destroy.call(this); - }; - CalendarComponent.prototype.toggleElClassNames = function (bool) { - var classList = this.el.classList; - var dirClassName = 'fc-' + this.opt('dir'); - var themeClassName = this.theme.getClass('widget'); - if (bool) { - classList.add('fc'); - classList.add(dirClassName); - classList.add(themeClassName); - } - else { - classList.remove('fc'); - classList.remove(dirClassName); - classList.remove(themeClassName); - } - }; - CalendarComponent.prototype.render = function (props) { - this.freezeHeight(); - var title = this.computeTitle(props.dateProfile, props.viewSpec.options); - this._renderToolbars(props.viewSpec, props.dateProfile, props.currentDate, props.dateProfileGenerator, title); - this.renderView(props, title); - this.updateSize(); - this.thawHeight(); - }; - CalendarComponent.prototype.renderToolbars = function (viewSpec, dateProfile, currentDate, dateProfileGenerator, title) { - var headerLayout = this.opt('header'); - var footerLayout = this.opt('footer'); - var now = this.calendar.getNow(); - var todayInfo = dateProfileGenerator.build(now); - var prevInfo = dateProfileGenerator.buildPrev(dateProfile, currentDate); - var nextInfo = dateProfileGenerator.buildNext(dateProfile, currentDate); - var toolbarProps = { - title: title, - activeButton: viewSpec.type, - isTodayEnabled: todayInfo.isValid && !rangeContainsMarker(dateProfile.currentRange, now), - isPrevEnabled: prevInfo.isValid, - isNextEnabled: nextInfo.isValid - }; - if (headerLayout) { - if (!this.header) { - this.header = new Toolbar(this.context, 'fc-header-toolbar'); - prependToElement(this.el, this.header.el); - } - this.header.receiveProps(__assign({ layout: headerLayout }, toolbarProps)); - } - else if (this.header) { - this.header.destroy(); - this.header = null; - } - if (footerLayout) { - if (!this.footer) { - this.footer = new Toolbar(this.context, 'fc-footer-toolbar'); - appendToElement(this.el, this.footer.el); - } - this.footer.receiveProps(__assign({ layout: footerLayout }, toolbarProps)); - } - else if (this.footer) { - this.footer.destroy(); - this.footer = null; - } - }; - CalendarComponent.prototype.renderView = function (props, title) { - var view = this.view; - var viewSpec = props.viewSpec, dateProfileGenerator = props.dateProfileGenerator; - if (!view || view.viewSpec !== viewSpec) { - if (view) { - view.destroy(); - } - view = this.view = new viewSpec['class']({ - calendar: this.calendar, - view: null, - dateEnv: this.dateEnv, - theme: this.theme, - options: viewSpec.options - }, viewSpec, dateProfileGenerator, this.contentEl); - } - else { - view.addScroll(view.queryScroll()); - } - view.title = title; // for the API - var viewProps = { - dateProfile: props.dateProfile, - businessHours: this.parseBusinessHours(viewSpec.options.businessHours), - eventStore: props.eventStore, - eventUiBases: props.eventUiBases, - dateSelection: props.dateSelection, - eventSelection: props.eventSelection, - eventDrag: props.eventDrag, - eventResize: props.eventResize - }; - var transformers = this.buildViewPropTransformers(this.calendar.pluginSystem.hooks.viewPropsTransformers); - for (var _i = 0, transformers_1 = transformers; _i < transformers_1.length; _i++) { - var transformer = transformers_1[_i]; - __assign(viewProps, transformer.transform(viewProps, viewSpec, props, view)); - } - view.receiveProps(viewProps); - }; - // Sizing - // ----------------------------------------------------------------------------------------------------------------- - CalendarComponent.prototype.updateSize = function (isResize) { - if (isResize === void 0) { isResize = false; } - var view = this.view; - if (isResize) { - view.addScroll(view.queryScroll()); - } - if (isResize || this.isHeightAuto == null) { - this.computeHeightVars(); - } - view.updateSize(isResize, this.viewHeight, this.isHeightAuto); - view.updateNowIndicator(); // we need to guarantee this will run after updateSize - view.popScroll(isResize); - }; - CalendarComponent.prototype.computeHeightVars = function () { - var calendar = this.calendar; // yuck. need to handle dynamic options - var heightInput = calendar.opt('height'); - var contentHeightInput = calendar.opt('contentHeight'); - this.isHeightAuto = heightInput === 'auto' || contentHeightInput === 'auto'; - if (typeof contentHeightInput === 'number') { // exists and not 'auto' - this.viewHeight = contentHeightInput; - } - else if (typeof contentHeightInput === 'function') { // exists and is a function - this.viewHeight = contentHeightInput(); - } - else if (typeof heightInput === 'number') { // exists and not 'auto' - this.viewHeight = heightInput - this.queryToolbarsHeight(); - } - else if (typeof heightInput === 'function') { // exists and is a function - this.viewHeight = heightInput() - this.queryToolbarsHeight(); - } - else if (heightInput === 'parent') { // set to height of parent element - var parentEl = this.el.parentNode; - this.viewHeight = parentEl.getBoundingClientRect().height - this.queryToolbarsHeight(); - } - else { - this.viewHeight = Math.round(this.contentEl.getBoundingClientRect().width / - Math.max(calendar.opt('aspectRatio'), .5)); - } - }; - CalendarComponent.prototype.queryToolbarsHeight = function () { - var height = 0; - if (this.header) { - height += computeHeightAndMargins(this.header.el); - } - if (this.footer) { - height += computeHeightAndMargins(this.footer.el); - } - return height; - }; - // Height "Freezing" - // ----------------------------------------------------------------------------------------------------------------- - CalendarComponent.prototype.freezeHeight = function () { - applyStyle(this.el, { - height: this.el.getBoundingClientRect().height, - overflow: 'hidden' - }); - }; - CalendarComponent.prototype.thawHeight = function () { - applyStyle(this.el, { - height: '', - overflow: '' - }); - }; - return CalendarComponent; - }(Component)); - // Title and Date Formatting - // ----------------------------------------------------------------------------------------------------------------- - // Computes what the title at the top of the calendar should be for this view - function computeTitle(dateProfile, viewOptions) { - var range; - // for views that span a large unit of time, show the proper interval, ignoring stray days before and after - if (/^(year|month)$/.test(dateProfile.currentRangeUnit)) { - range = dateProfile.currentRange; - } - else { // for day units or smaller, use the actual day range - range = dateProfile.activeRange; - } - return this.dateEnv.formatRange(range.start, range.end, createFormatter(viewOptions.titleFormat || computeTitleFormat(dateProfile), viewOptions.titleRangeSeparator), { isEndExclusive: dateProfile.isRangeAllDay }); - } - // Generates the format string that should be used to generate the title for the current date range. - // Attempts to compute the most appropriate format if not explicitly specified with `titleFormat`. - function computeTitleFormat(dateProfile) { - var currentRangeUnit = dateProfile.currentRangeUnit; - if (currentRangeUnit === 'year') { - return { year: 'numeric' }; - } - else if (currentRangeUnit === 'month') { - return { year: 'numeric', month: 'long' }; // like "September 2014" - } - else { - var days = diffWholeDays(dateProfile.currentRange.start, dateProfile.currentRange.end); - if (days !== null && days > 1) { - // multi-day range. shorter, like "Sep 9 - 10 2014" - return { year: 'numeric', month: 'short', day: 'numeric' }; - } - else { - // one day. longer, like "September 9 2014" - return { year: 'numeric', month: 'long', day: 'numeric' }; - } - } - } - // Plugin - // ----------------------------------------------------------------------------------------------------------------- - function buildViewPropTransformers(theClasses) { - return theClasses.map(function (theClass) { - return new theClass(); - }); - } - - var Interaction = /** @class */ (function () { - function Interaction(settings) { - this.component = settings.component; - } - Interaction.prototype.destroy = function () { - }; - return Interaction; - }()); - function parseInteractionSettings(component, input) { - return { - component: component, - el: input.el, - useEventCenter: input.useEventCenter != null ? input.useEventCenter : true - }; - } - function interactionSettingsToStore(settings) { - var _a; - return _a = {}, - _a[settings.component.uid] = settings, - _a; - } - // global state - var interactionSettingsStore = {}; - - /* - Detects when the user clicks on an event within a DateComponent - */ - var EventClicking = /** @class */ (function (_super) { - __extends(EventClicking, _super); - function EventClicking(settings) { - var _this = _super.call(this, settings) || this; - _this.handleSegClick = function (ev, segEl) { - var component = _this.component; - var seg = getElSeg(segEl); - if (seg && // might be the
surrounding the more link - component.isValidSegDownEl(ev.target)) { - // our way to simulate a link click for elements that can't be tags - // grab before trigger fired in case trigger trashes DOM thru rerendering - var hasUrlContainer = elementClosest(ev.target, '.fc-has-url'); - var url = hasUrlContainer ? hasUrlContainer.querySelector('a[href]').href : ''; - component.publiclyTrigger('eventClick', [ - { - el: segEl, - event: new EventApi(component.calendar, seg.eventRange.def, seg.eventRange.instance), - jsEvent: ev, - view: component.view - } - ]); - if (url && !ev.defaultPrevented) { - window.location.href = url; - } - } - }; - var component = settings.component; - _this.destroy = listenBySelector(component.el, 'click', component.fgSegSelector + ',' + component.bgSegSelector, _this.handleSegClick); - return _this; - } - return EventClicking; - }(Interaction)); - - /* - Triggers events and adds/removes core classNames when the user's pointer - enters/leaves event-elements of a component. - */ - var EventHovering = /** @class */ (function (_super) { - __extends(EventHovering, _super); - function EventHovering(settings) { - var _this = _super.call(this, settings) || this; - // for simulating an eventMouseLeave when the event el is destroyed while mouse is over it - _this.handleEventElRemove = function (el) { - if (el === _this.currentSegEl) { - _this.handleSegLeave(null, _this.currentSegEl); - } - }; - _this.handleSegEnter = function (ev, segEl) { - if (getElSeg(segEl)) { // TODO: better way to make sure not hovering over more+ link or its wrapper - segEl.classList.add('fc-allow-mouse-resize'); - _this.currentSegEl = segEl; - _this.triggerEvent('eventMouseEnter', ev, segEl); - } - }; - _this.handleSegLeave = function (ev, segEl) { - if (_this.currentSegEl) { - segEl.classList.remove('fc-allow-mouse-resize'); - _this.currentSegEl = null; - _this.triggerEvent('eventMouseLeave', ev, segEl); - } - }; - var component = settings.component; - _this.removeHoverListeners = listenToHoverBySelector(component.el, component.fgSegSelector + ',' + component.bgSegSelector, _this.handleSegEnter, _this.handleSegLeave); - component.calendar.on('eventElRemove', _this.handleEventElRemove); - return _this; - } - EventHovering.prototype.destroy = function () { - this.removeHoverListeners(); - this.component.calendar.off('eventElRemove', this.handleEventElRemove); - }; - EventHovering.prototype.triggerEvent = function (publicEvName, ev, segEl) { - var component = this.component; - var seg = getElSeg(segEl); - if (!ev || component.isValidSegDownEl(ev.target)) { - component.publiclyTrigger(publicEvName, [ - { - el: segEl, - event: new EventApi(this.component.calendar, seg.eventRange.def, seg.eventRange.instance), - jsEvent: ev, - view: component.view - } - ]); - } - }; - return EventHovering; - }(Interaction)); - - var StandardTheme = /** @class */ (function (_super) { - __extends(StandardTheme, _super); - function StandardTheme() { - return _super !== null && _super.apply(this, arguments) || this; - } - return StandardTheme; - }(Theme)); - StandardTheme.prototype.classes = { - widget: 'fc-unthemed', - widgetHeader: 'fc-widget-header', - widgetContent: 'fc-widget-content', - buttonGroup: 'fc-button-group', - button: 'fc-button fc-button-primary', - buttonActive: 'fc-button-active', - popoverHeader: 'fc-widget-header', - popoverContent: 'fc-widget-content', - // day grid - headerRow: 'fc-widget-header', - dayRow: 'fc-widget-content', - // list view - listView: 'fc-widget-content' - }; - StandardTheme.prototype.baseIconClass = 'fc-icon'; - StandardTheme.prototype.iconClasses = { - close: 'fc-icon-x', - prev: 'fc-icon-chevron-left', - next: 'fc-icon-chevron-right', - prevYear: 'fc-icon-chevrons-left', - nextYear: 'fc-icon-chevrons-right' - }; - StandardTheme.prototype.iconOverrideOption = 'buttonIcons'; - StandardTheme.prototype.iconOverrideCustomButtonOption = 'icon'; - StandardTheme.prototype.iconOverridePrefix = 'fc-icon-'; - - var Calendar = /** @class */ (function () { - function Calendar(el, overrides) { - var _this = this; - this.parseRawLocales = memoize(parseRawLocales); - this.buildLocale = memoize(buildLocale); - this.buildDateEnv = memoize(buildDateEnv); - this.buildTheme = memoize(buildTheme); - this.buildEventUiSingleBase = memoize(this._buildEventUiSingleBase); - this.buildSelectionConfig = memoize(this._buildSelectionConfig); - this.buildEventUiBySource = memoizeOutput(buildEventUiBySource, isPropsEqual); - this.buildEventUiBases = memoize(buildEventUiBases); - this.interactionsStore = {}; - this.actionQueue = []; - this.isReducing = false; - // isDisplaying: boolean = false // installed in DOM? accepting renders? - this.needsRerender = false; // needs a render? - this.needsFullRerender = false; - this.isRendering = false; // currently in the executeRender function? - this.renderingPauseDepth = 0; - this.buildDelayedRerender = memoize(buildDelayedRerender); - this.afterSizingTriggers = {}; - this.isViewUpdated = false; - this.isDatesUpdated = false; - this.isEventsUpdated = false; - this.el = el; - this.optionsManager = new OptionsManager(overrides || {}); - this.pluginSystem = new PluginSystem(); - // only do once. don't do in handleOptions. because can't remove plugins - this.addPluginInputs(this.optionsManager.computed.plugins || []); - this.handleOptions(this.optionsManager.computed); - this.publiclyTrigger('_init'); // for tests - this.hydrate(); - this.calendarInteractions = this.pluginSystem.hooks.calendarInteractions - .map(function (calendarInteractionClass) { - return new calendarInteractionClass(_this); - }); - } - Calendar.prototype.addPluginInputs = function (pluginInputs) { - var pluginDefs = refinePluginDefs(pluginInputs); - for (var _i = 0, pluginDefs_1 = pluginDefs; _i < pluginDefs_1.length; _i++) { - var pluginDef = pluginDefs_1[_i]; - this.pluginSystem.add(pluginDef); - } - }; - Object.defineProperty(Calendar.prototype, "view", { - // public API - get: function () { - return this.component ? this.component.view : null; - }, - enumerable: true, - configurable: true - }); - // Public API for rendering - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.render = function () { - if (!this.component) { - this.renderableEventStore = createEmptyEventStore(); - this.bindHandlers(); - this.executeRender(); - } - else { - this.requestRerender(true); - } - }; - Calendar.prototype.destroy = function () { - if (this.component) { - this.unbindHandlers(); - this.component.destroy(); // don't null-out. in case API needs access - this.component = null; // umm ??? - for (var _i = 0, _a = this.calendarInteractions; _i < _a.length; _i++) { - var interaction = _a[_i]; - interaction.destroy(); - } - this.publiclyTrigger('_destroyed'); - } - }; - // Handlers - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.bindHandlers = function () { - var _this = this; - // event delegation for nav links - this.removeNavLinkListener = listenBySelector(this.el, 'click', 'a[data-goto]', function (ev, anchorEl) { - var gotoOptions = anchorEl.getAttribute('data-goto'); - gotoOptions = gotoOptions ? JSON.parse(gotoOptions) : {}; - var dateEnv = _this.dateEnv; - var dateMarker = dateEnv.createMarker(gotoOptions.date); - var viewType = gotoOptions.type; - // property like "navLinkDayClick". might be a string or a function - var customAction = _this.viewOpt('navLink' + capitaliseFirstLetter(viewType) + 'Click'); - if (typeof customAction === 'function') { - customAction(dateEnv.toDate(dateMarker), ev); - } - else { - if (typeof customAction === 'string') { - viewType = customAction; - } - _this.zoomTo(dateMarker, viewType); - } - }); - if (this.opt('handleWindowResize')) { - window.addEventListener('resize', this.windowResizeProxy = debounce(// prevents rapid calls - this.windowResize.bind(this), this.opt('windowResizeDelay'))); - } - }; - Calendar.prototype.unbindHandlers = function () { - this.removeNavLinkListener(); - if (this.windowResizeProxy) { - window.removeEventListener('resize', this.windowResizeProxy); - this.windowResizeProxy = null; - } - }; - // Dispatcher - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.hydrate = function () { - var _this = this; - this.state = this.buildInitialState(); - var rawSources = this.opt('eventSources') || []; - var singleRawSource = this.opt('events'); - var sources = []; // parsed - if (singleRawSource) { - rawSources.unshift(singleRawSource); - } - for (var _i = 0, rawSources_1 = rawSources; _i < rawSources_1.length; _i++) { - var rawSource = rawSources_1[_i]; - var source = parseEventSource(rawSource, this); - if (source) { - sources.push(source); - } - } - this.batchRendering(function () { - _this.dispatch({ type: 'INIT' }); // pass in sources here? - _this.dispatch({ type: 'ADD_EVENT_SOURCES', sources: sources }); - _this.dispatch({ - type: 'SET_VIEW_TYPE', - viewType: _this.opt('defaultView') || _this.pluginSystem.hooks.defaultView - }); - }); - }; - Calendar.prototype.buildInitialState = function () { - return { - viewType: null, - loadingLevel: 0, - eventSourceLoadingLevel: 0, - currentDate: this.getInitialDate(), - dateProfile: null, - eventSources: {}, - eventStore: createEmptyEventStore(), - dateSelection: null, - eventSelection: '', - eventDrag: null, - eventResize: null - }; - }; - Calendar.prototype.dispatch = function (action) { - this.actionQueue.push(action); - if (!this.isReducing) { - this.isReducing = true; - var oldState = this.state; - while (this.actionQueue.length) { - this.state = this.reduce(this.state, this.actionQueue.shift(), this); - } - var newState = this.state; - this.isReducing = false; - if (!oldState.loadingLevel && newState.loadingLevel) { - this.publiclyTrigger('loading', [true]); - } - else if (oldState.loadingLevel && !newState.loadingLevel) { - this.publiclyTrigger('loading', [false]); - } - var view = this.component && this.component.view; - if (oldState.eventStore !== newState.eventStore || this.needsFullRerender) { - if (oldState.eventStore) { - this.isEventsUpdated = true; - } - } - if (oldState.dateProfile !== newState.dateProfile || this.needsFullRerender) { - if (oldState.dateProfile && view) { // why would view be null!? - this.publiclyTrigger('datesDestroy', [ - { - view: view, - el: view.el - } - ]); - } - this.isDatesUpdated = true; - } - if (oldState.viewType !== newState.viewType || this.needsFullRerender) { - if (oldState.viewType && view) { // why would view be null!? - this.publiclyTrigger('viewSkeletonDestroy', [ - { - view: view, - el: view.el - } - ]); - } - this.isViewUpdated = true; - } - this.requestRerender(); - } - }; - Calendar.prototype.reduce = function (state, action, calendar) { - return reduce(state, action, calendar); - }; - // Render Queue - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.requestRerender = function (needsFull) { - if (needsFull === void 0) { needsFull = false; } - this.needsRerender = true; - this.needsFullRerender = this.needsFullRerender || needsFull; - this.delayedRerender(); // will call a debounced-version of tryRerender - }; - Calendar.prototype.tryRerender = function () { - if (this.component && // must be accepting renders - this.needsRerender && // indicates that a rerender was requested - !this.renderingPauseDepth && // not paused - !this.isRendering // not currently in the render loop - ) { - this.executeRender(); - } - }; - Calendar.prototype.batchRendering = function (func) { - this.renderingPauseDepth++; - func(); - this.renderingPauseDepth--; - if (this.needsRerender) { - this.requestRerender(); - } - }; - // Rendering - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.executeRender = function () { - var needsFullRerender = this.needsFullRerender; // save before clearing - // clear these BEFORE the render so that new values will accumulate during render - this.needsRerender = false; - this.needsFullRerender = false; - this.isRendering = true; - this.renderComponent(needsFullRerender); - this.isRendering = false; - // received a rerender request while rendering - if (this.needsRerender) { - this.delayedRerender(); - } - }; - /* - don't call this directly. use executeRender instead - */ - Calendar.prototype.renderComponent = function (needsFull) { - var _a = this, state = _a.state, component = _a.component; - var viewType = state.viewType; - var viewSpec = this.viewSpecs[viewType]; - var savedScroll = (needsFull && component) ? component.view.queryScroll() : null; - if (!viewSpec) { - throw new Error("View type \"" + viewType + "\" is not valid"); - } - // if event sources are still loading and progressive rendering hasn't been enabled, - // keep rendering the last fully loaded set of events - var renderableEventStore = this.renderableEventStore = - (state.eventSourceLoadingLevel && !this.opt('progressiveEventRendering')) ? - this.renderableEventStore : - state.eventStore; - var eventUiSingleBase = this.buildEventUiSingleBase(viewSpec.options); - var eventUiBySource = this.buildEventUiBySource(state.eventSources); - var eventUiBases = this.eventUiBases = this.buildEventUiBases(renderableEventStore.defs, eventUiSingleBase, eventUiBySource); - if (needsFull || !component) { - if (component) { - component.freezeHeight(); // next component will unfreeze it - component.destroy(); - } - component = this.component = new CalendarComponent({ - calendar: this, - view: null, - dateEnv: this.dateEnv, - theme: this.theme, - options: this.optionsManager.computed - }, this.el); - this.isViewUpdated = true; - this.isDatesUpdated = true; - this.isEventsUpdated = true; - } - component.receiveProps(__assign({}, state, { viewSpec: viewSpec, dateProfile: state.dateProfile, dateProfileGenerator: this.dateProfileGenerators[viewType], eventStore: renderableEventStore, eventUiBases: eventUiBases, dateSelection: state.dateSelection, eventSelection: state.eventSelection, eventDrag: state.eventDrag, eventResize: state.eventResize })); - if (savedScroll) { - component.view.applyScroll(savedScroll, false); - } - if (this.isViewUpdated) { - this.isViewUpdated = false; - this.publiclyTrigger('viewSkeletonRender', [ - { - view: component.view, - el: component.view.el - } - ]); - } - if (this.isDatesUpdated) { - this.isDatesUpdated = false; - this.publiclyTrigger('datesRender', [ - { - view: component.view, - el: component.view.el - } - ]); - } - if (this.isEventsUpdated) { - this.isEventsUpdated = false; - } - this.releaseAfterSizingTriggers(); - }; - // Options - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.setOption = function (name, val) { - var _a; - this.mutateOptions((_a = {}, _a[name] = val, _a), [], true); - }; - Calendar.prototype.getOption = function (name) { - return this.optionsManager.computed[name]; - }; - Calendar.prototype.opt = function (name) { - return this.optionsManager.computed[name]; - }; - Calendar.prototype.viewOpt = function (name) { - return this.viewOpts()[name]; - }; - Calendar.prototype.viewOpts = function () { - return this.viewSpecs[this.state.viewType].options; - }; - /* - handles option changes (like a diff) - */ - Calendar.prototype.mutateOptions = function (updates, removals, isDynamic, deepEqual) { - var _this = this; - var changeHandlers = this.pluginSystem.hooks.optionChangeHandlers; - var normalUpdates = {}; - var specialUpdates = {}; - var oldDateEnv = this.dateEnv; // do this before handleOptions - var isTimeZoneDirty = false; - var isSizeDirty = false; - var anyDifficultOptions = Boolean(removals.length); - for (var name_1 in updates) { - if (changeHandlers[name_1]) { - specialUpdates[name_1] = updates[name_1]; - } - else { - normalUpdates[name_1] = updates[name_1]; - } - } - for (var name_2 in normalUpdates) { - if (/^(height|contentHeight|aspectRatio)$/.test(name_2)) { - isSizeDirty = true; - } - else if (/^(defaultDate|defaultView)$/.test(name_2)) ; - else { - anyDifficultOptions = true; - if (name_2 === 'timeZone') { - isTimeZoneDirty = true; - } - } - } - this.optionsManager.mutate(normalUpdates, removals, isDynamic); - if (anyDifficultOptions) { - this.handleOptions(this.optionsManager.computed); - this.needsFullRerender = true; - } - this.batchRendering(function () { - if (anyDifficultOptions) { - if (isTimeZoneDirty) { - _this.dispatch({ - type: 'CHANGE_TIMEZONE', - oldDateEnv: oldDateEnv - }); - } - /* HACK - has the same effect as calling this.requestRerender(true) - but recomputes the state's dateProfile - */ - _this.dispatch({ - type: 'SET_VIEW_TYPE', - viewType: _this.state.viewType - }); - } - else if (isSizeDirty) { - _this.updateSize(); - } - // special updates - if (deepEqual) { - for (var name_3 in specialUpdates) { - changeHandlers[name_3](specialUpdates[name_3], _this, deepEqual); - } - } - }); - }; - /* - rebuilds things based off of a complete set of refined options - */ - Calendar.prototype.handleOptions = function (options) { - var _this = this; - var pluginHooks = this.pluginSystem.hooks; - this.defaultAllDayEventDuration = createDuration(options.defaultAllDayEventDuration); - this.defaultTimedEventDuration = createDuration(options.defaultTimedEventDuration); - this.delayedRerender = this.buildDelayedRerender(options.rerenderDelay); - this.theme = this.buildTheme(options); - var available = this.parseRawLocales(options.locales); - this.availableRawLocales = available.map; - var locale = this.buildLocale(options.locale || available.defaultCode, available.map); - this.dateEnv = this.buildDateEnv(locale, options.timeZone, pluginHooks.namedTimeZonedImpl, options.firstDay, options.weekNumberCalculation, options.weekLabel, pluginHooks.cmdFormatter); - this.selectionConfig = this.buildSelectionConfig(options); // needs dateEnv. do after :( - // ineffecient to do every time? - this.viewSpecs = buildViewSpecs(pluginHooks.views, this.optionsManager); - // ineffecient to do every time? - this.dateProfileGenerators = mapHash(this.viewSpecs, function (viewSpec) { - return new viewSpec.class.prototype.dateProfileGeneratorClass(viewSpec, _this); - }); - }; - Calendar.prototype.getAvailableLocaleCodes = function () { - return Object.keys(this.availableRawLocales); - }; - Calendar.prototype._buildSelectionConfig = function (rawOpts) { - return processScopedUiProps('select', rawOpts, this); - }; - Calendar.prototype._buildEventUiSingleBase = function (rawOpts) { - if (rawOpts.editable) { // so 'editable' affected events - rawOpts = __assign({}, rawOpts, { eventEditable: true }); - } - return processScopedUiProps('event', rawOpts, this); - }; - // Trigger - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.hasPublicHandlers = function (name) { - return this.hasHandlers(name) || - this.opt(name); // handler specified in options - }; - Calendar.prototype.publiclyTrigger = function (name, args) { - var optHandler = this.opt(name); - this.triggerWith(name, this, args); - if (optHandler) { - return optHandler.apply(this, args); - } - }; - Calendar.prototype.publiclyTriggerAfterSizing = function (name, args) { - var afterSizingTriggers = this.afterSizingTriggers; - (afterSizingTriggers[name] || (afterSizingTriggers[name] = [])).push(args); - }; - Calendar.prototype.releaseAfterSizingTriggers = function () { - var afterSizingTriggers = this.afterSizingTriggers; - for (var name_4 in afterSizingTriggers) { - for (var _i = 0, _a = afterSizingTriggers[name_4]; _i < _a.length; _i++) { - var args = _a[_i]; - this.publiclyTrigger(name_4, args); - } - } - this.afterSizingTriggers = {}; - }; - // View - // ----------------------------------------------------------------------------------------------------------------- - // Returns a boolean about whether the view is okay to instantiate at some point - Calendar.prototype.isValidViewType = function (viewType) { - return Boolean(this.viewSpecs[viewType]); - }; - Calendar.prototype.changeView = function (viewType, dateOrRange) { - var dateMarker = null; - if (dateOrRange) { - if (dateOrRange.start && dateOrRange.end) { // a range - this.optionsManager.mutate({ visibleRange: dateOrRange }, []); // will not rerender - this.handleOptions(this.optionsManager.computed); // ...but yuck - } - else { // a date - dateMarker = this.dateEnv.createMarker(dateOrRange); // just like gotoDate - } - } - this.unselect(); - this.dispatch({ - type: 'SET_VIEW_TYPE', - viewType: viewType, - dateMarker: dateMarker - }); - }; - // Forces navigation to a view for the given date. - // `viewType` can be a specific view name or a generic one like "week" or "day". - // needs to change - Calendar.prototype.zoomTo = function (dateMarker, viewType) { - var spec; - viewType = viewType || 'day'; // day is default zoom - spec = this.viewSpecs[viewType] || - this.getUnitViewSpec(viewType); - this.unselect(); - if (spec) { - this.dispatch({ - type: 'SET_VIEW_TYPE', - viewType: spec.type, - dateMarker: dateMarker - }); - } - else { - this.dispatch({ - type: 'SET_DATE', - dateMarker: dateMarker - }); - } - }; - // Given a duration singular unit, like "week" or "day", finds a matching view spec. - // Preference is given to views that have corresponding buttons. - Calendar.prototype.getUnitViewSpec = function (unit) { - var component = this.component; - var viewTypes = []; - var i; - var spec; - // put views that have buttons first. there will be duplicates, but oh - if (component.header) { - viewTypes.push.apply(viewTypes, component.header.viewsWithButtons); - } - if (component.footer) { - viewTypes.push.apply(viewTypes, component.footer.viewsWithButtons); - } - for (var viewType in this.viewSpecs) { - viewTypes.push(viewType); - } - for (i = 0; i < viewTypes.length; i++) { - spec = this.viewSpecs[viewTypes[i]]; - if (spec) { - if (spec.singleUnit === unit) { - return spec; - } - } - } - }; - // Current Date - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.getInitialDate = function () { - var defaultDateInput = this.opt('defaultDate'); - // compute the initial ambig-timezone date - if (defaultDateInput != null) { - return this.dateEnv.createMarker(defaultDateInput); - } - else { - return this.getNow(); // getNow already returns unzoned - } - }; - Calendar.prototype.prev = function () { - this.unselect(); - this.dispatch({ type: 'PREV' }); - }; - Calendar.prototype.next = function () { - this.unselect(); - this.dispatch({ type: 'NEXT' }); - }; - Calendar.prototype.prevYear = function () { - this.unselect(); - this.dispatch({ - type: 'SET_DATE', - dateMarker: this.dateEnv.addYears(this.state.currentDate, -1) - }); - }; - Calendar.prototype.nextYear = function () { - this.unselect(); - this.dispatch({ - type: 'SET_DATE', - dateMarker: this.dateEnv.addYears(this.state.currentDate, 1) - }); - }; - Calendar.prototype.today = function () { - this.unselect(); - this.dispatch({ - type: 'SET_DATE', - dateMarker: this.getNow() - }); - }; - Calendar.prototype.gotoDate = function (zonedDateInput) { - this.unselect(); - this.dispatch({ - type: 'SET_DATE', - dateMarker: this.dateEnv.createMarker(zonedDateInput) - }); - }; - Calendar.prototype.incrementDate = function (deltaInput) { - var delta = createDuration(deltaInput); - if (delta) { // else, warn about invalid input? - this.unselect(); - this.dispatch({ - type: 'SET_DATE', - dateMarker: this.dateEnv.add(this.state.currentDate, delta) - }); - } - }; - // for external API - Calendar.prototype.getDate = function () { - return this.dateEnv.toDate(this.state.currentDate); - }; - // Date Formatting Utils - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.formatDate = function (d, formatter) { - var dateEnv = this.dateEnv; - return dateEnv.format(dateEnv.createMarker(d), createFormatter(formatter)); - }; - // `settings` is for formatter AND isEndExclusive - Calendar.prototype.formatRange = function (d0, d1, settings) { - var dateEnv = this.dateEnv; - return dateEnv.formatRange(dateEnv.createMarker(d0), dateEnv.createMarker(d1), createFormatter(settings, this.opt('defaultRangeSeparator')), settings); - }; - Calendar.prototype.formatIso = function (d, omitTime) { - var dateEnv = this.dateEnv; - return dateEnv.formatIso(dateEnv.createMarker(d), { omitTime: omitTime }); - }; - // Sizing - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.windowResize = function (ev) { - if (!this.isHandlingWindowResize && - this.component && // why? - ev.target === window // not a jqui resize event - ) { - this.isHandlingWindowResize = true; - this.updateSize(); - this.publiclyTrigger('windowResize', [this.view]); - this.isHandlingWindowResize = false; - } - }; - Calendar.prototype.updateSize = function () { - if (this.component) { // when? - this.component.updateSize(true); - } - }; - // Component Registration - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.registerInteractiveComponent = function (component, settingsInput) { - var settings = parseInteractionSettings(component, settingsInput); - var DEFAULT_INTERACTIONS = [ - EventClicking, - EventHovering - ]; - var interactionClasses = DEFAULT_INTERACTIONS.concat(this.pluginSystem.hooks.componentInteractions); - var interactions = interactionClasses.map(function (interactionClass) { - return new interactionClass(settings); - }); - this.interactionsStore[component.uid] = interactions; - interactionSettingsStore[component.uid] = settings; - }; - Calendar.prototype.unregisterInteractiveComponent = function (component) { - for (var _i = 0, _a = this.interactionsStore[component.uid]; _i < _a.length; _i++) { - var listener = _a[_i]; - listener.destroy(); - } - delete this.interactionsStore[component.uid]; - delete interactionSettingsStore[component.uid]; - }; - // Date Selection / Event Selection / DayClick - // ----------------------------------------------------------------------------------------------------------------- - // this public method receives start/end dates in any format, with any timezone - // NOTE: args were changed from v3 - Calendar.prototype.select = function (dateOrObj, endDate) { - var selectionInput; - if (endDate == null) { - if (dateOrObj.start != null) { - selectionInput = dateOrObj; - } - else { - selectionInput = { - start: dateOrObj, - end: null - }; - } - } - else { - selectionInput = { - start: dateOrObj, - end: endDate - }; - } - var selection = parseDateSpan(selectionInput, this.dateEnv, createDuration({ days: 1 }) // TODO: cache this? - ); - if (selection) { // throw parse error otherwise? - this.dispatch({ type: 'SELECT_DATES', selection: selection }); - this.triggerDateSelect(selection); - } - }; - // public method - Calendar.prototype.unselect = function (pev) { - if (this.state.dateSelection) { - this.dispatch({ type: 'UNSELECT_DATES' }); - this.triggerDateUnselect(pev); - } - }; - Calendar.prototype.triggerDateSelect = function (selection, pev) { - var arg = __assign({}, this.buildDateSpanApi(selection), { jsEvent: pev ? pev.origEvent : null, view: this.view }); - this.publiclyTrigger('select', [arg]); - }; - Calendar.prototype.triggerDateUnselect = function (pev) { - this.publiclyTrigger('unselect', [ - { - jsEvent: pev ? pev.origEvent : null, - view: this.view - } - ]); - }; - // TODO: receive pev? - Calendar.prototype.triggerDateClick = function (dateSpan, dayEl, view, ev) { - var arg = __assign({}, this.buildDatePointApi(dateSpan), { dayEl: dayEl, jsEvent: ev, // Is this always a mouse event? See #4655 - view: view }); - this.publiclyTrigger('dateClick', [arg]); - }; - Calendar.prototype.buildDatePointApi = function (dateSpan) { - var props = {}; - for (var _i = 0, _a = this.pluginSystem.hooks.datePointTransforms; _i < _a.length; _i++) { - var transform = _a[_i]; - __assign(props, transform(dateSpan, this)); - } - __assign(props, buildDatePointApi(dateSpan, this.dateEnv)); - return props; - }; - Calendar.prototype.buildDateSpanApi = function (dateSpan) { - var props = {}; - for (var _i = 0, _a = this.pluginSystem.hooks.dateSpanTransforms; _i < _a.length; _i++) { - var transform = _a[_i]; - __assign(props, transform(dateSpan, this)); - } - __assign(props, buildDateSpanApi(dateSpan, this.dateEnv)); - return props; - }; - // Date Utils - // ----------------------------------------------------------------------------------------------------------------- - // Returns a DateMarker for the current date, as defined by the client's computer or from the `now` option - Calendar.prototype.getNow = function () { - var now = this.opt('now'); - if (typeof now === 'function') { - now = now(); - } - if (now == null) { - return this.dateEnv.createNowMarker(); - } - return this.dateEnv.createMarker(now); - }; - // Event-Date Utilities - // ----------------------------------------------------------------------------------------------------------------- - // Given an event's allDay status and start date, return what its fallback end date should be. - // TODO: rename to computeDefaultEventEnd - Calendar.prototype.getDefaultEventEnd = function (allDay, marker) { - var end = marker; - if (allDay) { - end = startOfDay(end); - end = this.dateEnv.add(end, this.defaultAllDayEventDuration); - } - else { - end = this.dateEnv.add(end, this.defaultTimedEventDuration); - } - return end; - }; - // Public Events API - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.addEvent = function (eventInput, sourceInput) { - if (eventInput instanceof EventApi) { - var def = eventInput._def; - var instance = eventInput._instance; - // not already present? don't want to add an old snapshot - if (!this.state.eventStore.defs[def.defId]) { - this.dispatch({ - type: 'ADD_EVENTS', - eventStore: eventTupleToStore({ def: def, instance: instance }) // TODO: better util for two args? - }); - } - return eventInput; - } - var sourceId; - if (sourceInput instanceof EventSourceApi) { - sourceId = sourceInput.internalEventSource.sourceId; - } - else if (sourceInput != null) { - var sourceApi = this.getEventSourceById(sourceInput); // TODO: use an internal function - if (!sourceApi) { - console.warn('Could not find an event source with ID "' + sourceInput + '"'); // TODO: test - return null; - } - else { - sourceId = sourceApi.internalEventSource.sourceId; - } - } - var tuple = parseEvent(eventInput, sourceId, this); - if (tuple) { - this.dispatch({ - type: 'ADD_EVENTS', - eventStore: eventTupleToStore(tuple) - }); - return new EventApi(this, tuple.def, tuple.def.recurringDef ? null : tuple.instance); - } - return null; - }; - // TODO: optimize - Calendar.prototype.getEventById = function (id) { - var _a = this.state.eventStore, defs = _a.defs, instances = _a.instances; - id = String(id); - for (var defId in defs) { - var def = defs[defId]; - if (def.publicId === id) { - if (def.recurringDef) { - return new EventApi(this, def, null); - } - else { - for (var instanceId in instances) { - var instance = instances[instanceId]; - if (instance.defId === def.defId) { - return new EventApi(this, def, instance); - } - } - } - } - } - return null; - }; - Calendar.prototype.getEvents = function () { - var _a = this.state.eventStore, defs = _a.defs, instances = _a.instances; - var eventApis = []; - for (var id in instances) { - var instance = instances[id]; - var def = defs[instance.defId]; - eventApis.push(new EventApi(this, def, instance)); - } - return eventApis; - }; - Calendar.prototype.removeAllEvents = function () { - this.dispatch({ type: 'REMOVE_ALL_EVENTS' }); - }; - Calendar.prototype.rerenderEvents = function () { - this.dispatch({ type: 'RESET_EVENTS' }); - }; - // Public Event Sources API - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.getEventSources = function () { - var sourceHash = this.state.eventSources; - var sourceApis = []; - for (var internalId in sourceHash) { - sourceApis.push(new EventSourceApi(this, sourceHash[internalId])); - } - return sourceApis; - }; - Calendar.prototype.getEventSourceById = function (id) { - var sourceHash = this.state.eventSources; - id = String(id); - for (var sourceId in sourceHash) { - if (sourceHash[sourceId].publicId === id) { - return new EventSourceApi(this, sourceHash[sourceId]); - } - } - return null; - }; - Calendar.prototype.addEventSource = function (sourceInput) { - if (sourceInput instanceof EventSourceApi) { - // not already present? don't want to add an old snapshot - if (!this.state.eventSources[sourceInput.internalEventSource.sourceId]) { - this.dispatch({ - type: 'ADD_EVENT_SOURCES', - sources: [sourceInput.internalEventSource] - }); - } - return sourceInput; - } - var eventSource = parseEventSource(sourceInput, this); - if (eventSource) { // TODO: error otherwise? - this.dispatch({ type: 'ADD_EVENT_SOURCES', sources: [eventSource] }); - return new EventSourceApi(this, eventSource); - } - return null; - }; - Calendar.prototype.removeAllEventSources = function () { - this.dispatch({ type: 'REMOVE_ALL_EVENT_SOURCES' }); - }; - Calendar.prototype.refetchEvents = function () { - this.dispatch({ type: 'FETCH_EVENT_SOURCES' }); - }; - // Scroll - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.scrollToTime = function (timeInput) { - var duration = createDuration(timeInput); - if (duration) { - this.component.view.scrollToDuration(duration); - } - }; - return Calendar; - }()); - EmitterMixin.mixInto(Calendar); - // for memoizers - // ----------------------------------------------------------------------------------------------------------------- - function buildDateEnv(locale, timeZone, namedTimeZoneImpl, firstDay, weekNumberCalculation, weekLabel, cmdFormatter) { - return new DateEnv({ - calendarSystem: 'gregory', - timeZone: timeZone, - namedTimeZoneImpl: namedTimeZoneImpl, - locale: locale, - weekNumberCalculation: weekNumberCalculation, - firstDay: firstDay, - weekLabel: weekLabel, - cmdFormatter: cmdFormatter - }); - } - function buildTheme(calendarOptions) { - var themeClass = this.pluginSystem.hooks.themeClasses[calendarOptions.themeSystem] || StandardTheme; - return new themeClass(calendarOptions); - } - function buildDelayedRerender(wait) { - var func = this.tryRerender.bind(this); - if (wait != null) { - func = debounce(func, wait); - } - return func; - } - function buildEventUiBySource(eventSources) { - return mapHash(eventSources, function (eventSource) { - return eventSource.ui; - }); - } - function buildEventUiBases(eventDefs, eventUiSingleBase, eventUiBySource) { - var eventUiBases = { '': eventUiSingleBase }; - for (var defId in eventDefs) { - var def = eventDefs[defId]; - if (def.sourceId && eventUiBySource[def.sourceId]) { - eventUiBases[defId] = eventUiBySource[def.sourceId]; - } - } - return eventUiBases; - } - - var View = /** @class */ (function (_super) { - __extends(View, _super); - function View(context, viewSpec, dateProfileGenerator, parentEl) { - var _this = _super.call(this, context, createElement('div', { className: 'fc-view fc-' + viewSpec.type + '-view' }), true // isView (HACK) - ) || this; - _this.renderDatesMem = memoizeRendering(_this.renderDatesWrap, _this.unrenderDatesWrap); - _this.renderBusinessHoursMem = memoizeRendering(_this.renderBusinessHours, _this.unrenderBusinessHours, [_this.renderDatesMem]); - _this.renderDateSelectionMem = memoizeRendering(_this.renderDateSelectionWrap, _this.unrenderDateSelectionWrap, [_this.renderDatesMem]); - _this.renderEventsMem = memoizeRendering(_this.renderEvents, _this.unrenderEvents, [_this.renderDatesMem]); - _this.renderEventSelectionMem = memoizeRendering(_this.renderEventSelectionWrap, _this.unrenderEventSelectionWrap, [_this.renderEventsMem]); - _this.renderEventDragMem = memoizeRendering(_this.renderEventDragWrap, _this.unrenderEventDragWrap, [_this.renderDatesMem]); - _this.renderEventResizeMem = memoizeRendering(_this.renderEventResizeWrap, _this.unrenderEventResizeWrap, [_this.renderDatesMem]); - _this.viewSpec = viewSpec; - _this.dateProfileGenerator = dateProfileGenerator; - _this.type = viewSpec.type; - _this.eventOrderSpecs = parseFieldSpecs(_this.opt('eventOrder')); - _this.nextDayThreshold = createDuration(_this.opt('nextDayThreshold')); - parentEl.appendChild(_this.el); - _this.initialize(); - return _this; - } - View.prototype.initialize = function () { - }; - Object.defineProperty(View.prototype, "activeStart", { - // Date Setting/Unsetting - // ----------------------------------------------------------------------------------------------------------------- - get: function () { - return this.dateEnv.toDate(this.props.dateProfile.activeRange.start); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(View.prototype, "activeEnd", { - get: function () { - return this.dateEnv.toDate(this.props.dateProfile.activeRange.end); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(View.prototype, "currentStart", { - get: function () { - return this.dateEnv.toDate(this.props.dateProfile.currentRange.start); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(View.prototype, "currentEnd", { - get: function () { - return this.dateEnv.toDate(this.props.dateProfile.currentRange.end); - }, - enumerable: true, - configurable: true - }); - // General Rendering - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.render = function (props) { - this.renderDatesMem(props.dateProfile); - this.renderBusinessHoursMem(props.businessHours); - this.renderDateSelectionMem(props.dateSelection); - this.renderEventsMem(props.eventStore); - this.renderEventSelectionMem(props.eventSelection); - this.renderEventDragMem(props.eventDrag); - this.renderEventResizeMem(props.eventResize); - }; - View.prototype.destroy = function () { - _super.prototype.destroy.call(this); - this.renderDatesMem.unrender(); // should unrender everything else - }; - // Sizing - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.updateSize = function (isResize, viewHeight, isAuto) { - var calendar = this.calendar; - if (isResize || // HACKS... - calendar.isViewUpdated || - calendar.isDatesUpdated || - calendar.isEventsUpdated) { - // sort of the catch-all sizing - // anything that might cause dimension changes - this.updateBaseSize(isResize, viewHeight, isAuto); - } - }; - View.prototype.updateBaseSize = function (isResize, viewHeight, isAuto) { - }; - // Date Rendering - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderDatesWrap = function (dateProfile) { - this.renderDates(dateProfile); - this.addScroll({ - duration: createDuration(this.opt('scrollTime')) - }); - this.startNowIndicator(dateProfile); // shouldn't render yet because updateSize will be called soon - }; - View.prototype.unrenderDatesWrap = function () { - this.stopNowIndicator(); - this.unrenderDates(); - }; - View.prototype.renderDates = function (dateProfile) { }; - View.prototype.unrenderDates = function () { }; - // Business Hours - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderBusinessHours = function (businessHours) { }; - View.prototype.unrenderBusinessHours = function () { }; - // Date Selection - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderDateSelectionWrap = function (selection) { - if (selection) { - this.renderDateSelection(selection); - } - }; - View.prototype.unrenderDateSelectionWrap = function (selection) { - if (selection) { - this.unrenderDateSelection(selection); - } - }; - View.prototype.renderDateSelection = function (selection) { }; - View.prototype.unrenderDateSelection = function (selection) { }; - // Event Rendering - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderEvents = function (eventStore) { }; - View.prototype.unrenderEvents = function () { }; - // util for subclasses - View.prototype.sliceEvents = function (eventStore, allDay) { - var props = this.props; - return sliceEventStore(eventStore, props.eventUiBases, props.dateProfile.activeRange, allDay ? this.nextDayThreshold : null).fg; - }; - View.prototype.computeEventDraggable = function (eventDef, eventUi) { - var transformers = this.calendar.pluginSystem.hooks.isDraggableTransformers; - var val = eventUi.startEditable; - for (var _i = 0, transformers_1 = transformers; _i < transformers_1.length; _i++) { - var transformer = transformers_1[_i]; - val = transformer(val, eventDef, eventUi, this); - } - return val; - }; - View.prototype.computeEventStartResizable = function (eventDef, eventUi) { - return eventUi.durationEditable && this.opt('eventResizableFromStart'); - }; - View.prototype.computeEventEndResizable = function (eventDef, eventUi) { - return eventUi.durationEditable; - }; - // Event Selection - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderEventSelectionWrap = function (instanceId) { - if (instanceId) { - this.renderEventSelection(instanceId); - } - }; - View.prototype.unrenderEventSelectionWrap = function (instanceId) { - if (instanceId) { - this.unrenderEventSelection(instanceId); - } - }; - View.prototype.renderEventSelection = function (instanceId) { }; - View.prototype.unrenderEventSelection = function (instanceId) { }; - // Event Drag - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderEventDragWrap = function (state) { - if (state) { - this.renderEventDrag(state); - } - }; - View.prototype.unrenderEventDragWrap = function (state) { - if (state) { - this.unrenderEventDrag(state); - } - }; - View.prototype.renderEventDrag = function (state) { }; - View.prototype.unrenderEventDrag = function (state) { }; - // Event Resize - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.renderEventResizeWrap = function (state) { - if (state) { - this.renderEventResize(state); - } - }; - View.prototype.unrenderEventResizeWrap = function (state) { - if (state) { - this.unrenderEventResize(state); - } - }; - View.prototype.renderEventResize = function (state) { }; - View.prototype.unrenderEventResize = function (state) { }; - /* Now Indicator - ------------------------------------------------------------------------------------------------------------------*/ - // Immediately render the current time indicator and begins re-rendering it at an interval, - // which is defined by this.getNowIndicatorUnit(). - // TODO: somehow do this for the current whole day's background too - View.prototype.startNowIndicator = function (dateProfile) { - var _this = this; - var dateEnv = this.dateEnv; - var unit; - var update; - var delay; // ms wait value - if (this.opt('nowIndicator')) { - unit = this.getNowIndicatorUnit(dateProfile); - if (unit) { - update = this.updateNowIndicator.bind(this); - this.initialNowDate = this.calendar.getNow(); - this.initialNowQueriedMs = new Date().valueOf(); - // wait until the beginning of the next interval - delay = dateEnv.add(dateEnv.startOf(this.initialNowDate, unit), createDuration(1, unit)).valueOf() - this.initialNowDate.valueOf(); - // TODO: maybe always use setTimeout, waiting until start of next unit - this.nowIndicatorTimeoutID = setTimeout(function () { - _this.nowIndicatorTimeoutID = null; - update(); - if (unit === 'second') { - delay = 1000; // every second - } - else { - delay = 1000 * 60; // otherwise, every minute - } - _this.nowIndicatorIntervalID = setInterval(update, delay); // update every interval - }, delay); - } - // rendering will be initiated in updateSize - } - }; - // rerenders the now indicator, computing the new current time from the amount of time that has passed - // since the initial getNow call. - View.prototype.updateNowIndicator = function () { - if (this.props.dateProfile && // a way to determine if dates were rendered yet - this.initialNowDate // activated before? - ) { - this.unrenderNowIndicator(); // won't unrender if unnecessary - this.renderNowIndicator(addMs(this.initialNowDate, new Date().valueOf() - this.initialNowQueriedMs)); - this.isNowIndicatorRendered = true; - } - }; - // Immediately unrenders the view's current time indicator and stops any re-rendering timers. - // Won't cause side effects if indicator isn't rendered. - View.prototype.stopNowIndicator = function () { - if (this.isNowIndicatorRendered) { - if (this.nowIndicatorTimeoutID) { - clearTimeout(this.nowIndicatorTimeoutID); - this.nowIndicatorTimeoutID = null; - } - if (this.nowIndicatorIntervalID) { - clearInterval(this.nowIndicatorIntervalID); - this.nowIndicatorIntervalID = null; - } - this.unrenderNowIndicator(); - this.isNowIndicatorRendered = false; - } - }; - View.prototype.getNowIndicatorUnit = function (dateProfile) { - // subclasses should implement - }; - // Renders a current time indicator at the given datetime - View.prototype.renderNowIndicator = function (date) { - // SUBCLASSES MUST PASS TO CHILDREN! - }; - // Undoes the rendering actions from renderNowIndicator - View.prototype.unrenderNowIndicator = function () { - // SUBCLASSES MUST PASS TO CHILDREN! - }; - /* Scroller - ------------------------------------------------------------------------------------------------------------------*/ - View.prototype.addScroll = function (scroll) { - var queuedScroll = this.queuedScroll || (this.queuedScroll = {}); - __assign(queuedScroll, scroll); - }; - View.prototype.popScroll = function (isResize) { - this.applyQueuedScroll(isResize); - this.queuedScroll = null; - }; - View.prototype.applyQueuedScroll = function (isResize) { - this.applyScroll(this.queuedScroll || {}, isResize); - }; - View.prototype.queryScroll = function () { - var scroll = {}; - if (this.props.dateProfile) { // dates rendered yet? - __assign(scroll, this.queryDateScroll()); - } - return scroll; - }; - View.prototype.applyScroll = function (scroll, isResize) { - var duration = scroll.duration; - if (duration != null) { - delete scroll.duration; - if (this.props.dateProfile) { // dates rendered yet? - __assign(scroll, this.computeDateScroll(duration)); - } - } - if (this.props.dateProfile) { // dates rendered yet? - this.applyDateScroll(scroll); - } - }; - View.prototype.computeDateScroll = function (duration) { - return {}; // subclasses must implement - }; - View.prototype.queryDateScroll = function () { - return {}; // subclasses must implement - }; - View.prototype.applyDateScroll = function (scroll) { - // subclasses must implement - }; - // for API - View.prototype.scrollToDuration = function (duration) { - this.applyScroll({ duration: duration }, false); - }; - return View; - }(DateComponent)); - EmitterMixin.mixInto(View); - View.prototype.usesMinMaxTime = false; - View.prototype.dateProfileGeneratorClass = DateProfileGenerator; - - var FgEventRenderer = /** @class */ (function () { - function FgEventRenderer(context) { - this.segs = []; - this.isSizeDirty = false; - this.context = context; - } - FgEventRenderer.prototype.renderSegs = function (segs, mirrorInfo) { - this.rangeUpdated(); // called too frequently :( - // render an `.el` on each seg - // returns a subset of the segs. segs that were actually rendered - segs = this.renderSegEls(segs, mirrorInfo); - this.segs = segs; - this.attachSegs(segs, mirrorInfo); - this.isSizeDirty = true; - this.context.view.triggerRenderedSegs(this.segs, Boolean(mirrorInfo)); - }; - FgEventRenderer.prototype.unrender = function (_segs, mirrorInfo) { - this.context.view.triggerWillRemoveSegs(this.segs, Boolean(mirrorInfo)); - this.detachSegs(this.segs); - this.segs = []; - }; - // Updates values that rely on options and also relate to range - FgEventRenderer.prototype.rangeUpdated = function () { - var options = this.context.options; - var displayEventTime; - var displayEventEnd; - this.eventTimeFormat = createFormatter(options.eventTimeFormat || this.computeEventTimeFormat(), options.defaultRangeSeparator); - displayEventTime = options.displayEventTime; - if (displayEventTime == null) { - displayEventTime = this.computeDisplayEventTime(); // might be based off of range - } - displayEventEnd = options.displayEventEnd; - if (displayEventEnd == null) { - displayEventEnd = this.computeDisplayEventEnd(); // might be based off of range - } - this.displayEventTime = displayEventTime; - this.displayEventEnd = displayEventEnd; - }; - // Renders and assigns an `el` property for each foreground event segment. - // Only returns segments that successfully rendered. - FgEventRenderer.prototype.renderSegEls = function (segs, mirrorInfo) { - var html = ''; - var i; - if (segs.length) { // don't build an empty html string - // build a large concatenation of event segment HTML - for (i = 0; i < segs.length; i++) { - html += this.renderSegHtml(segs[i], mirrorInfo); - } - // Grab individual elements from the combined HTML string. Use each as the default rendering. - // Then, compute the 'el' for each segment. An el might be null if the eventRender callback returned false. - htmlToElements(html).forEach(function (el, i) { - var seg = segs[i]; - if (el) { - seg.el = el; - } - }); - segs = filterSegsViaEls(this.context.view, segs, Boolean(mirrorInfo)); - } - return segs; - }; - // Generic utility for generating the HTML classNames for an event segment's element - FgEventRenderer.prototype.getSegClasses = function (seg, isDraggable, isResizable, mirrorInfo) { - var classes = [ - 'fc-event', - seg.isStart ? 'fc-start' : 'fc-not-start', - seg.isEnd ? 'fc-end' : 'fc-not-end' - ].concat(seg.eventRange.ui.classNames); - if (isDraggable) { - classes.push('fc-draggable'); - } - if (isResizable) { - classes.push('fc-resizable'); - } - if (mirrorInfo) { - classes.push('fc-mirror'); - if (mirrorInfo.isDragging) { - classes.push('fc-dragging'); - } - if (mirrorInfo.isResizing) { - classes.push('fc-resizing'); - } - } - return classes; - }; - // Compute the text that should be displayed on an event's element. - // `range` can be the Event object itself, or something range-like, with at least a `start`. - // If event times are disabled, or the event has no time, will return a blank string. - // If not specified, formatter will default to the eventTimeFormat setting, - // and displayEnd will default to the displayEventEnd setting. - FgEventRenderer.prototype.getTimeText = function (eventRange, formatter, displayEnd) { - var def = eventRange.def, instance = eventRange.instance; - return this._getTimeText(instance.range.start, def.hasEnd ? instance.range.end : null, def.allDay, formatter, displayEnd, instance.forcedStartTzo, instance.forcedEndTzo); - }; - FgEventRenderer.prototype._getTimeText = function (start, end, allDay, formatter, displayEnd, forcedStartTzo, forcedEndTzo) { - var dateEnv = this.context.dateEnv; - if (formatter == null) { - formatter = this.eventTimeFormat; - } - if (displayEnd == null) { - displayEnd = this.displayEventEnd; - } - if (this.displayEventTime && !allDay) { - if (displayEnd && end) { - return dateEnv.formatRange(start, end, formatter, { - forcedStartTzo: forcedStartTzo, - forcedEndTzo: forcedEndTzo - }); - } - else { - return dateEnv.format(start, formatter, { - forcedTzo: forcedStartTzo - }); - } - } - return ''; - }; - FgEventRenderer.prototype.computeEventTimeFormat = function () { - return { - hour: 'numeric', - minute: '2-digit', - omitZeroMinute: true - }; - }; - FgEventRenderer.prototype.computeDisplayEventTime = function () { - return true; - }; - FgEventRenderer.prototype.computeDisplayEventEnd = function () { - return true; - }; - // Utility for generating event skin-related CSS properties - FgEventRenderer.prototype.getSkinCss = function (ui) { - return { - 'background-color': ui.backgroundColor, - 'border-color': ui.borderColor, - color: ui.textColor - }; - }; - FgEventRenderer.prototype.sortEventSegs = function (segs) { - var specs = this.context.view.eventOrderSpecs; - var objs = segs.map(buildSegCompareObj); - objs.sort(function (obj0, obj1) { - return compareByFieldSpecs(obj0, obj1, specs); - }); - return objs.map(function (c) { - return c._seg; - }); - }; - FgEventRenderer.prototype.computeSizes = function (force) { - if (force || this.isSizeDirty) { - this.computeSegSizes(this.segs); - } - }; - FgEventRenderer.prototype.assignSizes = function (force) { - if (force || this.isSizeDirty) { - this.assignSegSizes(this.segs); - this.isSizeDirty = false; - } - }; - FgEventRenderer.prototype.computeSegSizes = function (segs) { - }; - FgEventRenderer.prototype.assignSegSizes = function (segs) { - }; - // Manipulation on rendered segs - FgEventRenderer.prototype.hideByHash = function (hash) { - if (hash) { - for (var _i = 0, _a = this.segs; _i < _a.length; _i++) { - var seg = _a[_i]; - if (hash[seg.eventRange.instance.instanceId]) { - seg.el.style.visibility = 'hidden'; - } - } - } - }; - FgEventRenderer.prototype.showByHash = function (hash) { - if (hash) { - for (var _i = 0, _a = this.segs; _i < _a.length; _i++) { - var seg = _a[_i]; - if (hash[seg.eventRange.instance.instanceId]) { - seg.el.style.visibility = ''; - } - } - } - }; - FgEventRenderer.prototype.selectByInstanceId = function (instanceId) { - if (instanceId) { - for (var _i = 0, _a = this.segs; _i < _a.length; _i++) { - var seg = _a[_i]; - var eventInstance = seg.eventRange.instance; - if (eventInstance && eventInstance.instanceId === instanceId && - seg.el // necessary? - ) { - seg.el.classList.add('fc-selected'); - } - } - } - }; - FgEventRenderer.prototype.unselectByInstanceId = function (instanceId) { - if (instanceId) { - for (var _i = 0, _a = this.segs; _i < _a.length; _i++) { - var seg = _a[_i]; - if (seg.el) { // necessary? - seg.el.classList.remove('fc-selected'); - } - } - } - }; - return FgEventRenderer; - }()); - // returns a object with all primitive props that can be compared - function buildSegCompareObj(seg) { - var eventDef = seg.eventRange.def; - var range = seg.eventRange.instance.range; - var start = range.start ? range.start.valueOf() : 0; // TODO: better support for open-range events - var end = range.end ? range.end.valueOf() : 0; // " - return __assign({}, eventDef.extendedProps, eventDef, { id: eventDef.publicId, start: start, - end: end, duration: end - start, allDay: Number(eventDef.allDay), _seg: seg // for later retrieval - }); - } - - var FillRenderer = /** @class */ (function () { - function FillRenderer(context) { - this.fillSegTag = 'div'; - this.dirtySizeFlags = {}; - this.context = context; - this.containerElsByType = {}; - this.segsByType = {}; - } - FillRenderer.prototype.getSegsByType = function (type) { - return this.segsByType[type] || []; - }; - FillRenderer.prototype.renderSegs = function (type, segs) { - var _a; - var renderedSegs = this.renderSegEls(type, segs); // assignes `.el` to each seg. returns successfully rendered segs - var containerEls = this.attachSegs(type, renderedSegs); - if (containerEls) { - (_a = (this.containerElsByType[type] || (this.containerElsByType[type] = []))).push.apply(_a, containerEls); - } - this.segsByType[type] = renderedSegs; - if (type === 'bgEvent') { - this.context.view.triggerRenderedSegs(renderedSegs, false); // isMirror=false - } - this.dirtySizeFlags[type] = true; - }; - // Unrenders a specific type of fill that is currently rendered on the grid - FillRenderer.prototype.unrender = function (type) { - var segs = this.segsByType[type]; - if (segs) { - if (type === 'bgEvent') { - this.context.view.triggerWillRemoveSegs(segs, false); // isMirror=false - } - this.detachSegs(type, segs); - } - }; - // Renders and assigns an `el` property for each fill segment. Generic enough to work with different types. - // Only returns segments that successfully rendered. - FillRenderer.prototype.renderSegEls = function (type, segs) { - var _this = this; - var html = ''; - var i; - if (segs.length) { - // build a large concatenation of segment HTML - for (i = 0; i < segs.length; i++) { - html += this.renderSegHtml(type, segs[i]); - } - // Grab individual elements from the combined HTML string. Use each as the default rendering. - // Then, compute the 'el' for each segment. - htmlToElements(html).forEach(function (el, i) { - var seg = segs[i]; - if (el) { - seg.el = el; - } - }); - if (type === 'bgEvent') { - segs = filterSegsViaEls(this.context.view, segs, false // isMirror. background events can never be mirror elements - ); - } - // correct element type? (would be bad if a non-TD were inserted into a table for example) - segs = segs.filter(function (seg) { - return elementMatches(seg.el, _this.fillSegTag); - }); - } - return segs; - }; - // Builds the HTML needed for one fill segment. Generic enough to work with different types. - FillRenderer.prototype.renderSegHtml = function (type, seg) { - var css = null; - var classNames = []; - if (type !== 'highlight' && type !== 'businessHours') { - css = { - 'background-color': seg.eventRange.ui.backgroundColor - }; - } - if (type !== 'highlight') { - classNames = classNames.concat(seg.eventRange.ui.classNames); - } - if (type === 'businessHours') { - classNames.push('fc-bgevent'); - } - else { - classNames.push('fc-' + type.toLowerCase()); - } - return '<' + this.fillSegTag + - (classNames.length ? ' class="' + classNames.join(' ') + '"' : '') + - (css ? ' style="' + cssToStr(css) + '"' : '') + - '>'; - }; - FillRenderer.prototype.detachSegs = function (type, segs) { - var containerEls = this.containerElsByType[type]; - if (containerEls) { - containerEls.forEach(removeElement); - delete this.containerElsByType[type]; - } - }; - FillRenderer.prototype.computeSizes = function (force) { - for (var type in this.segsByType) { - if (force || this.dirtySizeFlags[type]) { - this.computeSegSizes(this.segsByType[type]); - } - } - }; - FillRenderer.prototype.assignSizes = function (force) { - for (var type in this.segsByType) { - if (force || this.dirtySizeFlags[type]) { - this.assignSegSizes(this.segsByType[type]); - } - } - this.dirtySizeFlags = {}; - }; - FillRenderer.prototype.computeSegSizes = function (segs) { - }; - FillRenderer.prototype.assignSegSizes = function (segs) { - }; - return FillRenderer; - }()); - - var NamedTimeZoneImpl = /** @class */ (function () { - function NamedTimeZoneImpl(timeZoneName) { - this.timeZoneName = timeZoneName; - } - return NamedTimeZoneImpl; - }()); - - /* - An abstraction for a dragging interaction originating on an event. - Does higher-level things than PointerDragger, such as possibly: - - a "mirror" that moves with the pointer - - a minimum number of pixels or other criteria for a true drag to begin - - subclasses must emit: - - pointerdown - - dragstart - - dragmove - - pointerup - - dragend - */ - var ElementDragging = /** @class */ (function () { - function ElementDragging(el) { - this.emitter = new EmitterMixin(); - } - ElementDragging.prototype.destroy = function () { - }; - ElementDragging.prototype.setMirrorIsVisible = function (bool) { - // optional if subclass doesn't want to support a mirror - }; - ElementDragging.prototype.setMirrorNeedsRevert = function (bool) { - // optional if subclass doesn't want to support a mirror - }; - ElementDragging.prototype.setAutoScrollEnabled = function (bool) { - // optional - }; - return ElementDragging; - }()); - - function formatDate(dateInput, settings) { - if (settings === void 0) { settings = {}; } - var dateEnv = buildDateEnv$1(settings); - var formatter = createFormatter(settings); - var dateMeta = dateEnv.createMarkerMeta(dateInput); - if (!dateMeta) { // TODO: warning? - return ''; - } - return dateEnv.format(dateMeta.marker, formatter, { - forcedTzo: dateMeta.forcedTzo - }); - } - function formatRange(startInput, endInput, settings // mixture of env and formatter settings - ) { - var dateEnv = buildDateEnv$1(typeof settings === 'object' && settings ? settings : {}); // pass in if non-null object - var formatter = createFormatter(settings, globalDefaults.defaultRangeSeparator); - var startMeta = dateEnv.createMarkerMeta(startInput); - var endMeta = dateEnv.createMarkerMeta(endInput); - if (!startMeta || !endMeta) { // TODO: warning? - return ''; - } - return dateEnv.formatRange(startMeta.marker, endMeta.marker, formatter, { - forcedStartTzo: startMeta.forcedTzo, - forcedEndTzo: endMeta.forcedTzo, - isEndExclusive: settings.isEndExclusive - }); - } - // TODO: more DRY and optimized - function buildDateEnv$1(settings) { - var locale = buildLocale(settings.locale || 'en', parseRawLocales([]).map); // TODO: don't hardcode 'en' everywhere - // ensure required settings - settings = __assign({ timeZone: globalDefaults.timeZone, calendarSystem: 'gregory' }, settings, { locale: locale }); - return new DateEnv(settings); - } - - var DRAG_META_PROPS = { - startTime: createDuration, - duration: createDuration, - create: Boolean, - sourceId: String - }; - var DRAG_META_DEFAULTS = { - create: true - }; - function parseDragMeta(raw) { - var leftoverProps = {}; - var refined = refineProps(raw, DRAG_META_PROPS, DRAG_META_DEFAULTS, leftoverProps); - refined.leftoverProps = leftoverProps; - return refined; - } - - // Computes a default column header formatting string if `colFormat` is not explicitly defined - function computeFallbackHeaderFormat(datesRepDistinctDays, dayCnt) { - // if more than one week row, or if there are a lot of columns with not much space, - // put just the day numbers will be in each cell - if (!datesRepDistinctDays || dayCnt > 10) { - return { weekday: 'short' }; // "Sat" - } - else if (dayCnt > 1) { - return { weekday: 'short', month: 'numeric', day: 'numeric', omitCommas: true }; // "Sat 11/12" - } - else { - return { weekday: 'long' }; // "Saturday" - } - } - function renderDateCell(dateMarker, dateProfile, datesRepDistinctDays, colCnt, colHeadFormat, context, colspan, otherAttrs) { - var view = context.view, dateEnv = context.dateEnv, theme = context.theme, options = context.options; - var isDateValid = rangeContainsMarker(dateProfile.activeRange, dateMarker); // TODO: called too frequently. cache somehow. - var classNames = [ - 'fc-day-header', - theme.getClass('widgetHeader') - ]; - var innerHtml; - if (typeof options.columnHeaderHtml === 'function') { - innerHtml = options.columnHeaderHtml(dateEnv.toDate(dateMarker)); - } - else if (typeof options.columnHeaderText === 'function') { - innerHtml = htmlEscape(options.columnHeaderText(dateEnv.toDate(dateMarker))); - } - else { - innerHtml = htmlEscape(dateEnv.format(dateMarker, colHeadFormat)); - } - // if only one row of days, the classNames on the header can represent the specific days beneath - if (datesRepDistinctDays) { - classNames = classNames.concat( - // includes the day-of-week class - // noThemeHighlight=true (don't highlight the header) - getDayClasses(dateMarker, dateProfile, context, true)); - } - else { - classNames.push('fc-' + DAY_IDS[dateMarker.getUTCDay()]); // only add the day-of-week class - } - return '' + - ' 1 ? - ' colspan="' + colspan + '"' : - '') + - (otherAttrs ? - ' ' + otherAttrs : - '') + - '>' + - (isDateValid ? - // don't make a link if the heading could represent multiple days, or if there's only one day (forceOff) - buildGotoAnchorHtml(view, { date: dateMarker, forceOff: !datesRepDistinctDays || colCnt === 1 }, innerHtml) : - // if not valid, display text, but no link - innerHtml) + - ''; - } - - var DayHeader = /** @class */ (function (_super) { - __extends(DayHeader, _super); - function DayHeader(context, parentEl) { - var _this = _super.call(this, context) || this; - parentEl.innerHTML = ''; // because might be nbsp - parentEl.appendChild(_this.el = htmlToElement('
' + - '' + - '' + - '
' + - '
')); - _this.thead = _this.el.querySelector('thead'); - return _this; - } - DayHeader.prototype.destroy = function () { - removeElement(this.el); - }; - DayHeader.prototype.render = function (props) { - var dates = props.dates, datesRepDistinctDays = props.datesRepDistinctDays; - var parts = []; - if (props.renderIntroHtml) { - parts.push(props.renderIntroHtml()); - } - var colHeadFormat = createFormatter(this.opt('columnHeaderFormat') || - computeFallbackHeaderFormat(datesRepDistinctDays, dates.length)); - for (var _i = 0, dates_1 = dates; _i < dates_1.length; _i++) { - var date = dates_1[_i]; - parts.push(renderDateCell(date, props.dateProfile, datesRepDistinctDays, dates.length, colHeadFormat, this.context)); - } - if (this.isRtl) { - parts.reverse(); - } - this.thead.innerHTML = '' + parts.join('') + ''; - }; - return DayHeader; - }(Component)); - - var DaySeries = /** @class */ (function () { - function DaySeries(range, dateProfileGenerator) { - var date = range.start; - var end = range.end; - var indices = []; - var dates = []; - var dayIndex = -1; - while (date < end) { // loop each day from start to end - if (dateProfileGenerator.isHiddenDay(date)) { - indices.push(dayIndex + 0.5); // mark that it's between indices - } - else { - dayIndex++; - indices.push(dayIndex); - dates.push(date); - } - date = addDays(date, 1); - } - this.dates = dates; - this.indices = indices; - this.cnt = dates.length; - } - DaySeries.prototype.sliceRange = function (range) { - var firstIndex = this.getDateDayIndex(range.start); // inclusive first index - var lastIndex = this.getDateDayIndex(addDays(range.end, -1)); // inclusive last index - var clippedFirstIndex = Math.max(0, firstIndex); - var clippedLastIndex = Math.min(this.cnt - 1, lastIndex); - // deal with in-between indices - clippedFirstIndex = Math.ceil(clippedFirstIndex); // in-between starts round to next cell - clippedLastIndex = Math.floor(clippedLastIndex); // in-between ends round to prev cell - if (clippedFirstIndex <= clippedLastIndex) { - return { - firstIndex: clippedFirstIndex, - lastIndex: clippedLastIndex, - isStart: firstIndex === clippedFirstIndex, - isEnd: lastIndex === clippedLastIndex - }; - } - else { - return null; - } - }; - // Given a date, returns its chronolocial cell-index from the first cell of the grid. - // If the date lies between cells (because of hiddenDays), returns a floating-point value between offsets. - // If before the first offset, returns a negative number. - // If after the last offset, returns an offset past the last cell offset. - // Only works for *start* dates of cells. Will not work for exclusive end dates for cells. - DaySeries.prototype.getDateDayIndex = function (date) { - var indices = this.indices; - var dayOffset = Math.floor(diffDays(this.dates[0], date)); - if (dayOffset < 0) { - return indices[0] - 1; - } - else if (dayOffset >= indices.length) { - return indices[indices.length - 1] + 1; - } - else { - return indices[dayOffset]; - } - }; - return DaySeries; - }()); - - var DayTable = /** @class */ (function () { - function DayTable(daySeries, breakOnWeeks) { - var dates = daySeries.dates; - var daysPerRow; - var firstDay; - var rowCnt; - if (breakOnWeeks) { - // count columns until the day-of-week repeats - firstDay = dates[0].getUTCDay(); - for (daysPerRow = 1; daysPerRow < dates.length; daysPerRow++) { - if (dates[daysPerRow].getUTCDay() === firstDay) { - break; - } - } - rowCnt = Math.ceil(dates.length / daysPerRow); - } - else { - rowCnt = 1; - daysPerRow = dates.length; - } - this.rowCnt = rowCnt; - this.colCnt = daysPerRow; - this.daySeries = daySeries; - this.cells = this.buildCells(); - this.headerDates = this.buildHeaderDates(); - } - DayTable.prototype.buildCells = function () { - var rows = []; - for (var row = 0; row < this.rowCnt; row++) { - var cells = []; - for (var col = 0; col < this.colCnt; col++) { - cells.push(this.buildCell(row, col)); - } - rows.push(cells); - } - return rows; - }; - DayTable.prototype.buildCell = function (row, col) { - return { - date: this.daySeries.dates[row * this.colCnt + col] - }; - }; - DayTable.prototype.buildHeaderDates = function () { - var dates = []; - for (var col = 0; col < this.colCnt; col++) { - dates.push(this.cells[0][col].date); - } - return dates; - }; - DayTable.prototype.sliceRange = function (range) { - var colCnt = this.colCnt; - var seriesSeg = this.daySeries.sliceRange(range); - var segs = []; - if (seriesSeg) { - var firstIndex = seriesSeg.firstIndex, lastIndex = seriesSeg.lastIndex; - var index = firstIndex; - while (index <= lastIndex) { - var row = Math.floor(index / colCnt); - var nextIndex = Math.min((row + 1) * colCnt, lastIndex + 1); - segs.push({ - row: row, - firstCol: index % colCnt, - lastCol: (nextIndex - 1) % colCnt, - isStart: seriesSeg.isStart && index === firstIndex, - isEnd: seriesSeg.isEnd && (nextIndex - 1) === lastIndex - }); - index = nextIndex; - } - } - return segs; - }; - return DayTable; - }()); - - var Slicer = /** @class */ (function () { - function Slicer() { - this.sliceBusinessHours = memoize(this._sliceBusinessHours); - this.sliceDateSelection = memoize(this._sliceDateSpan); - this.sliceEventStore = memoize(this._sliceEventStore); - this.sliceEventDrag = memoize(this._sliceInteraction); - this.sliceEventResize = memoize(this._sliceInteraction); - } - Slicer.prototype.sliceProps = function (props, dateProfile, nextDayThreshold, component) { - var extraArgs = []; - for (var _i = 4; _i < arguments.length; _i++) { - extraArgs[_i - 4] = arguments[_i]; - } - var eventUiBases = props.eventUiBases; - var eventSegs = this.sliceEventStore.apply(this, [props.eventStore, eventUiBases, dateProfile, nextDayThreshold, component].concat(extraArgs)); - return { - dateSelectionSegs: this.sliceDateSelection.apply(this, [props.dateSelection, eventUiBases, component].concat(extraArgs)), - businessHourSegs: this.sliceBusinessHours.apply(this, [props.businessHours, dateProfile, nextDayThreshold, component].concat(extraArgs)), - fgEventSegs: eventSegs.fg, - bgEventSegs: eventSegs.bg, - eventDrag: this.sliceEventDrag.apply(this, [props.eventDrag, eventUiBases, dateProfile, nextDayThreshold, component].concat(extraArgs)), - eventResize: this.sliceEventResize.apply(this, [props.eventResize, eventUiBases, dateProfile, nextDayThreshold, component].concat(extraArgs)), - eventSelection: props.eventSelection - }; // TODO: give interactionSegs? - }; - Slicer.prototype.sliceNowDate = function (// does not memoize - date, component) { - var extraArgs = []; - for (var _i = 2; _i < arguments.length; _i++) { - extraArgs[_i - 2] = arguments[_i]; - } - return this._sliceDateSpan.apply(this, [{ range: { start: date, end: addMs(date, 1) }, allDay: false }, - {}, - component].concat(extraArgs)); - }; - Slicer.prototype._sliceBusinessHours = function (businessHours, dateProfile, nextDayThreshold, component) { - var extraArgs = []; - for (var _i = 4; _i < arguments.length; _i++) { - extraArgs[_i - 4] = arguments[_i]; - } - if (!businessHours) { - return []; - } - return this._sliceEventStore.apply(this, [expandRecurring(businessHours, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), component.calendar), - {}, - dateProfile, - nextDayThreshold, - component].concat(extraArgs)).bg; - }; - Slicer.prototype._sliceEventStore = function (eventStore, eventUiBases, dateProfile, nextDayThreshold, component) { - var extraArgs = []; - for (var _i = 5; _i < arguments.length; _i++) { - extraArgs[_i - 5] = arguments[_i]; - } - if (eventStore) { - var rangeRes = sliceEventStore(eventStore, eventUiBases, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), nextDayThreshold); - return { - bg: this.sliceEventRanges(rangeRes.bg, component, extraArgs), - fg: this.sliceEventRanges(rangeRes.fg, component, extraArgs) - }; - } - else { - return { bg: [], fg: [] }; - } - }; - Slicer.prototype._sliceInteraction = function (interaction, eventUiBases, dateProfile, nextDayThreshold, component) { - var extraArgs = []; - for (var _i = 5; _i < arguments.length; _i++) { - extraArgs[_i - 5] = arguments[_i]; - } - if (!interaction) { - return null; - } - var rangeRes = sliceEventStore(interaction.mutatedEvents, eventUiBases, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), nextDayThreshold); - return { - segs: this.sliceEventRanges(rangeRes.fg, component, extraArgs), - affectedInstances: interaction.affectedEvents.instances, - isEvent: interaction.isEvent, - sourceSeg: interaction.origSeg - }; - }; - Slicer.prototype._sliceDateSpan = function (dateSpan, eventUiBases, component) { - var extraArgs = []; - for (var _i = 3; _i < arguments.length; _i++) { - extraArgs[_i - 3] = arguments[_i]; - } - if (!dateSpan) { - return []; - } - var eventRange = fabricateEventRange(dateSpan, eventUiBases, component.calendar); - var segs = this.sliceRange.apply(this, [dateSpan.range].concat(extraArgs)); - for (var _a = 0, segs_1 = segs; _a < segs_1.length; _a++) { - var seg = segs_1[_a]; - seg.component = component; - seg.eventRange = eventRange; - } - return segs; - }; - /* - "complete" seg means it has component and eventRange - */ - Slicer.prototype.sliceEventRanges = function (eventRanges, component, // TODO: kill - extraArgs) { - var segs = []; - for (var _i = 0, eventRanges_1 = eventRanges; _i < eventRanges_1.length; _i++) { - var eventRange = eventRanges_1[_i]; - segs.push.apply(segs, this.sliceEventRange(eventRange, component, extraArgs)); - } - return segs; - }; - /* - "complete" seg means it has component and eventRange - */ - Slicer.prototype.sliceEventRange = function (eventRange, component, // TODO: kill - extraArgs) { - var segs = this.sliceRange.apply(this, [eventRange.range].concat(extraArgs)); - for (var _i = 0, segs_2 = segs; _i < segs_2.length; _i++) { - var seg = segs_2[_i]; - seg.component = component; - seg.eventRange = eventRange; - seg.isStart = eventRange.isStart && seg.isStart; - seg.isEnd = eventRange.isEnd && seg.isEnd; - } - return segs; - }; - return Slicer; - }()); - /* - for incorporating minTime/maxTime if appropriate - TODO: should be part of DateProfile! - TimelineDateProfile already does this btw - */ - function computeActiveRange(dateProfile, isComponentAllDay) { - var range = dateProfile.activeRange; - if (isComponentAllDay) { - return range; - } - return { - start: addMs(range.start, dateProfile.minTime.milliseconds), - end: addMs(range.end, dateProfile.maxTime.milliseconds - 864e5) // 864e5 = ms in a day - }; - } - - // exports - // -------------------------------------------------------------------------------------------------- - var version = '4.3.1'; - - exports.Calendar = Calendar; - exports.Component = Component; - exports.DateComponent = DateComponent; - exports.DateEnv = DateEnv; - exports.DateProfileGenerator = DateProfileGenerator; - exports.DayHeader = DayHeader; - exports.DaySeries = DaySeries; - exports.DayTable = DayTable; - exports.ElementDragging = ElementDragging; - exports.ElementScrollController = ElementScrollController; - exports.EmitterMixin = EmitterMixin; - exports.EventApi = EventApi; - exports.FgEventRenderer = FgEventRenderer; - exports.FillRenderer = FillRenderer; - exports.Interaction = Interaction; - exports.Mixin = Mixin; - exports.NamedTimeZoneImpl = NamedTimeZoneImpl; - exports.PositionCache = PositionCache; - exports.ScrollComponent = ScrollComponent; - exports.ScrollController = ScrollController; - exports.Slicer = Slicer; - exports.Splitter = Splitter; - exports.Theme = Theme; - exports.View = View; - exports.WindowScrollController = WindowScrollController; - exports.addDays = addDays; - exports.addDurations = addDurations; - exports.addMs = addMs; - exports.addWeeks = addWeeks; - exports.allowContextMenu = allowContextMenu; - exports.allowSelection = allowSelection; - exports.appendToElement = appendToElement; - exports.applyAll = applyAll; - exports.applyMutationToEventStore = applyMutationToEventStore; - exports.applyStyle = applyStyle; - exports.applyStyleProp = applyStyleProp; - exports.asRoughMinutes = asRoughMinutes; - exports.asRoughMs = asRoughMs; - exports.asRoughSeconds = asRoughSeconds; - exports.buildGotoAnchorHtml = buildGotoAnchorHtml; - exports.buildSegCompareObj = buildSegCompareObj; - exports.capitaliseFirstLetter = capitaliseFirstLetter; - exports.combineEventUis = combineEventUis; - exports.compareByFieldSpec = compareByFieldSpec; - exports.compareByFieldSpecs = compareByFieldSpecs; - exports.compareNumbers = compareNumbers; - exports.compensateScroll = compensateScroll; - exports.computeClippingRect = computeClippingRect; - exports.computeEdges = computeEdges; - exports.computeFallbackHeaderFormat = computeFallbackHeaderFormat; - exports.computeHeightAndMargins = computeHeightAndMargins; - exports.computeInnerRect = computeInnerRect; - exports.computeRect = computeRect; - exports.computeVisibleDayRange = computeVisibleDayRange; - exports.config = config; - exports.constrainPoint = constrainPoint; - exports.createDuration = createDuration; - exports.createElement = createElement; - exports.createEmptyEventStore = createEmptyEventStore; - exports.createEventInstance = createEventInstance; - exports.createFormatter = createFormatter; - exports.createPlugin = createPlugin; - exports.cssToStr = cssToStr; - exports.debounce = debounce; - exports.diffDates = diffDates; - exports.diffDayAndTime = diffDayAndTime; - exports.diffDays = diffDays; - exports.diffPoints = diffPoints; - exports.diffWeeks = diffWeeks; - exports.diffWholeDays = diffWholeDays; - exports.diffWholeWeeks = diffWholeWeeks; - exports.disableCursor = disableCursor; - exports.distributeHeight = distributeHeight; - exports.elementClosest = elementClosest; - exports.elementMatches = elementMatches; - exports.enableCursor = enableCursor; - exports.eventTupleToStore = eventTupleToStore; - exports.filterEventStoreDefs = filterEventStoreDefs; - exports.filterHash = filterHash; - exports.findChildren = findChildren; - exports.findElements = findElements; - exports.flexibleCompare = flexibleCompare; - exports.forceClassName = forceClassName; - exports.formatDate = formatDate; - exports.formatIsoTimeString = formatIsoTimeString; - exports.formatRange = formatRange; - exports.getAllDayHtml = getAllDayHtml; - exports.getClippingParents = getClippingParents; - exports.getDayClasses = getDayClasses; - exports.getElSeg = getElSeg; - exports.getRectCenter = getRectCenter; - exports.getRelevantEvents = getRelevantEvents; - exports.globalDefaults = globalDefaults; - exports.greatestDurationDenominator = greatestDurationDenominator; - exports.hasBgRendering = hasBgRendering; - exports.htmlEscape = htmlEscape; - exports.htmlToElement = htmlToElement; - exports.insertAfterElement = insertAfterElement; - exports.interactionSettingsStore = interactionSettingsStore; - exports.interactionSettingsToStore = interactionSettingsToStore; - exports.intersectRanges = intersectRanges; - exports.intersectRects = intersectRects; - exports.isArraysEqual = isArraysEqual; - exports.isDateSpansEqual = isDateSpansEqual; - exports.isInt = isInt; - exports.isInteractionValid = isInteractionValid; - exports.isMultiDayRange = isMultiDayRange; - exports.isPropsEqual = isPropsEqual; - exports.isPropsValid = isPropsValid; - exports.isSingleDay = isSingleDay; - exports.isValidDate = isValidDate; - exports.listenBySelector = listenBySelector; - exports.mapHash = mapHash; - exports.matchCellWidths = matchCellWidths; - exports.memoize = memoize; - exports.memoizeOutput = memoizeOutput; - exports.memoizeRendering = memoizeRendering; - exports.mergeEventStores = mergeEventStores; - exports.multiplyDuration = multiplyDuration; - exports.padStart = padStart; - exports.parseBusinessHours = parseBusinessHours; - exports.parseDragMeta = parseDragMeta; - exports.parseEventDef = parseEventDef; - exports.parseFieldSpecs = parseFieldSpecs; - exports.parseMarker = parse; - exports.pointInsideRect = pointInsideRect; - exports.prependToElement = prependToElement; - exports.preventContextMenu = preventContextMenu; - exports.preventDefault = preventDefault; - exports.preventSelection = preventSelection; - exports.processScopedUiProps = processScopedUiProps; - exports.rangeContainsMarker = rangeContainsMarker; - exports.rangeContainsRange = rangeContainsRange; - exports.rangesEqual = rangesEqual; - exports.rangesIntersect = rangesIntersect; - exports.refineProps = refineProps; - exports.removeElement = removeElement; - exports.removeExact = removeExact; - exports.renderDateCell = renderDateCell; - exports.requestJson = requestJson; - exports.sliceEventStore = sliceEventStore; - exports.startOfDay = startOfDay; - exports.subtractInnerElHeight = subtractInnerElHeight; - exports.translateRect = translateRect; - exports.uncompensateScroll = uncompensateScroll; - exports.undistributeHeight = undistributeHeight; - exports.unpromisify = unpromisify; - exports.version = version; - exports.whenTransitionDone = whenTransitionDone; - exports.wholeDivideDurations = wholeDivideDurations; - - Object.defineProperty(exports, '__esModule', { value: true }); - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/main.min.css b/htdocs/public/high/plugins/fullcalendar/packages/core/main.min.css deleted file mode 100644 index 8948b534..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/main.min.css +++ /dev/null @@ -1 +0,0 @@ -@charset "UTF-8";.fc-button:not(:disabled),.fc-event.fc-draggable,.fc-event[href],.fc-popover .fc-header .fc-close,a.fc-more,a[data-goto]{cursor:pointer}.fc-bg,.fc-row .fc-bgevent-skeleton,.fc-row .fc-highlight-skeleton{bottom:0}.fc{direction:ltr;text-align:left}.fc-rtl{text-align:right}body .fc{font-size:1em}.fc-highlight{background:#bce8f1;opacity:.3}.fc-bgevent{background:#8fdf82;opacity:.3}.fc-nonbusiness{background:#d7d7d7}.fc-popover{position:absolute;box-shadow:0 2px 6px rgba(0,0,0,.15)}.fc-popover .fc-header{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:2px 4px}.fc-rtl .fc-popover .fc-header{flex-direction:row-reverse}.fc-popover .fc-header .fc-title{margin:0 2px}.fc-popover .fc-header .fc-close{opacity:.65;font-size:1.1em}.fc-divider{border-style:solid;border-width:1px}hr.fc-divider{height:0;margin:0;padding:0 0 2px;border-width:1px 0}.fc-bg table,.fc-row .fc-bgevent-skeleton table,.fc-row .fc-highlight-skeleton table{height:100%}.fc-bg,.fc-bgevent-skeleton,.fc-highlight-skeleton,.fc-mirror-skeleton{position:absolute;top:0;left:0;right:0}.fc table{width:100%;box-sizing:border-box;table-layout:fixed;border-collapse:collapse;border-spacing:0;font-size:1em}.fc th{text-align:center}.fc td,.fc th{border-style:solid;border-width:1px;padding:0;vertical-align:top}.fc td.fc-today{border-style:double}a[data-goto]:hover{text-decoration:underline}.fc .fc-row{border-style:solid;border-width:0}.fc-row table{border-left:0 hidden transparent;border-right:0 hidden transparent;border-bottom:0 hidden transparent}.fc-row:first-child table{border-top:0 hidden transparent}.fc-row{position:relative}.fc-row .fc-bg{z-index:1}.fc-row .fc-bgevent-skeleton td,.fc-row .fc-highlight-skeleton td{border-color:transparent}.fc-row .fc-bgevent-skeleton{z-index:2}.fc-row .fc-highlight-skeleton{z-index:3}.fc-row .fc-content-skeleton{position:relative;z-index:4;padding-bottom:2px}.fc-row .fc-mirror-skeleton{z-index:5}.fc .fc-row .fc-content-skeleton table,.fc .fc-row .fc-content-skeleton td,.fc .fc-row .fc-mirror-skeleton td{background:0 0;border-color:transparent}.fc-row .fc-content-skeleton td,.fc-row .fc-mirror-skeleton td{border-bottom:0}.fc-row .fc-content-skeleton tbody td,.fc-row .fc-mirror-skeleton tbody td{border-top:0}.fc-scroller{-webkit-overflow-scrolling:touch}.fc-scroller>.fc-day-grid,.fc-scroller>.fc-time-grid{position:relative;width:100%}.fc-event{position:relative;display:block;font-size:.85em;line-height:1.4;border-radius:3px;border:1px solid #3788d8}.fc-event,.fc-event-dot{background-color:#3788d8}.fc-event,.fc-event:hover{color:#fff;text-decoration:none}.fc-not-allowed,.fc-not-allowed .fc-event{cursor:not-allowed}.fc-event .fc-content{position:relative;z-index:2}.fc-event .fc-resizer{position:absolute;z-index:4;display:none}.fc-event.fc-allow-mouse-resize .fc-resizer,.fc-event.fc-selected .fc-resizer{display:block}.fc-event.fc-selected .fc-resizer:before{content:"";position:absolute;z-index:9999;top:50%;left:50%;width:40px;height:40px;margin-left:-20px;margin-top:-20px}.fc-event.fc-selected{z-index:9999!important;box-shadow:0 2px 5px rgba(0,0,0,.2)}.fc-event.fc-selected:after{content:"";position:absolute;z-index:1;top:-1px;right:-1px;bottom:-1px;left:-1px;background:#000;opacity:.25}.fc-event.fc-dragging.fc-selected{box-shadow:0 2px 7px rgba(0,0,0,.3)}.fc-event.fc-dragging:not(.fc-selected){opacity:.75}.fc-h-event.fc-selected:before{content:"";position:absolute;z-index:3;top:-10px;bottom:-10px;left:0;right:0}.fc-ltr .fc-h-event.fc-not-start,.fc-rtl .fc-h-event.fc-not-end{margin-left:0;border-left-width:0;padding-left:1px;border-top-left-radius:0;border-bottom-left-radius:0}.fc-ltr .fc-h-event.fc-not-end,.fc-rtl .fc-h-event.fc-not-start{margin-right:0;border-right-width:0;padding-right:1px;border-top-right-radius:0;border-bottom-right-radius:0}.fc-ltr .fc-h-event .fc-start-resizer,.fc-rtl .fc-h-event .fc-end-resizer{cursor:w-resize;left:-1px}.fc-ltr .fc-h-event .fc-end-resizer,.fc-rtl .fc-h-event .fc-start-resizer{cursor:e-resize;right:-1px}.fc-h-event.fc-allow-mouse-resize .fc-resizer{width:7px;top:-1px;bottom:-1px}.fc-h-event.fc-selected .fc-resizer{border-radius:4px;border-width:1px;width:6px;height:6px;border-style:solid;border-color:inherit;background:#fff;top:50%;margin-top:-4px}.fc-ltr .fc-h-event.fc-selected .fc-start-resizer,.fc-rtl .fc-h-event.fc-selected .fc-end-resizer{margin-left:-4px}.fc-ltr .fc-h-event.fc-selected .fc-end-resizer,.fc-rtl .fc-h-event.fc-selected .fc-start-resizer{margin-right:-4px}.fc-day-grid-event{margin:1px 2px 0;padding:0 1px}tr:first-child>td>.fc-day-grid-event{margin-top:2px}.fc-mirror-skeleton tr:first-child>td>.fc-day-grid-event{margin-top:0}.fc-day-grid-event .fc-content{white-space:nowrap;overflow:hidden}.fc-day-grid-event .fc-time{font-weight:700}.fc-ltr .fc-day-grid-event.fc-allow-mouse-resize .fc-start-resizer,.fc-rtl .fc-day-grid-event.fc-allow-mouse-resize .fc-end-resizer{margin-left:-2px}.fc-ltr .fc-day-grid-event.fc-allow-mouse-resize .fc-end-resizer,.fc-rtl .fc-day-grid-event.fc-allow-mouse-resize .fc-start-resizer{margin-right:-2px}a.fc-more{margin:1px 3px;font-size:.85em;text-decoration:none}a.fc-more:hover{text-decoration:underline}.fc-limited{display:none}.fc-button,.fc-icon{display:inline-block;font-weight:400;text-align:center}.fc-day-grid .fc-row{z-index:1}.fc-more-popover{z-index:2;width:220px}.fc-more-popover .fc-event-container{padding:10px}.fc-now-indicator{position:absolute;border:0 solid red}.fc-unselectable{-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.fc-unthemed .fc-content,.fc-unthemed .fc-divider,.fc-unthemed .fc-list-heading td,.fc-unthemed .fc-list-view,.fc-unthemed .fc-popover,.fc-unthemed .fc-row,.fc-unthemed tbody,.fc-unthemed td,.fc-unthemed th,.fc-unthemed thead{border-color:#ddd}.fc-unthemed .fc-popover{background-color:#fff}.fc-unthemed .fc-divider,.fc-unthemed .fc-list-heading td,.fc-unthemed .fc-popover .fc-header{background:#eee}.fc-unthemed td.fc-today{background:#fcf8e3}.fc-unthemed .fc-disabled-day{background:#d7d7d7;opacity:.3}@font-face{font-family:fcicons;src:url("data:application/x-font-ttf;charset=utf-8;base64,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") format("truetype");font-weight:400;font-style:normal}.fc-icon{font-family:fcicons!important;speak:none;font-style:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:1em;height:1em}.fc-icon-chevron-left:before{content:""}.fc-icon-chevron-right:before{content:""}.fc-icon-chevrons-left:before{content:""}.fc-icon-chevrons-right:before{content:""}.fc-icon-minus-square:before{content:""}.fc-icon-plus-square:before{content:""}.fc-icon-x:before{content:""}.fc-button{overflow:visible;text-transform:none;margin:0;font-family:inherit}.fc-button::-moz-focus-inner{padding:0;border-style:none}.fc-button{-webkit-appearance:button;color:#212529;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.4em .65em;font-size:1em;line-height:1.5;border-radius:.25em}.fc-button:hover{color:#212529;text-decoration:none}.fc-button:focus{outline:0;-webkit-box-shadow:0 0 0 .2rem rgba(44,62,80,.25);box-shadow:0 0 0 .2rem rgba(44,62,80,.25)}.fc-button:disabled{opacity:.65}.fc-button-primary{color:#fff;background-color:#2C3E50;border-color:#2C3E50}.fc-button-primary:hover{color:#fff;background-color:#1e2b37;border-color:#1a252f}.fc-button-primary:focus{-webkit-box-shadow:0 0 0 .2rem rgba(76,91,106,.5);box-shadow:0 0 0 .2rem rgba(76,91,106,.5)}.fc-button-primary:disabled{color:#fff;background-color:#2C3E50;border-color:#2C3E50}.fc-button-primary:not(:disabled).fc-button-active,.fc-button-primary:not(:disabled):active{color:#fff;background-color:#1a252f;border-color:#151e27}.fc-button-primary:not(:disabled).fc-button-active:focus,.fc-button-primary:not(:disabled):active:focus{-webkit-box-shadow:0 0 0 .2rem rgba(76,91,106,.5);box-shadow:0 0 0 .2rem rgba(76,91,106,.5)}.fc-button .fc-icon{vertical-align:middle;font-size:1.5em}.fc-button-group{position:relative;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.fc-button-group>.fc-button{position:relative;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.fc-button-group>.fc-button.fc-button-active,.fc-button-group>.fc-button:active,.fc-button-group>.fc-button:focus,.fc-button-group>.fc-button:hover{z-index:1}.fc-button-group>.fc-button:not(:first-child){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.fc-button-group>.fc-button:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.fc-unthemed .fc-popover{border-width:1px;border-style:solid}.fc-unthemed .fc-list-item:hover td{background-color:#f5f5f5}.fc-toolbar{display:flex;justify-content:space-between;align-items:center}.fc-toolbar.fc-header-toolbar{margin-bottom:1.5em}.fc-toolbar.fc-footer-toolbar{margin-top:1.5em}.fc-toolbar>*>:not(:first-child){margin-left:.75em}.fc-toolbar h2{font-size:1.75em;margin:0}.fc-view-container{position:relative}.fc-view-container *,.fc-view-container :after,.fc-view-container :before{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.fc-view,.fc-view>table{position:relative;z-index:1}@media print{.fc-bg,.fc-bgevent-container,.fc-bgevent-skeleton,.fc-business-container,.fc-event .fc-resizer,.fc-highlight-container,.fc-highlight-skeleton,.fc-mirror-container,.fc-mirror-skeleton{display:none}.fc tbody .fc-row,.fc-time-grid{min-height:0!important}.fc-time-grid .fc-event.fc-not-end:after,.fc-time-grid .fc-event.fc-not-start:before{content:"..."}.fc{max-width:100%!important}.fc-event{background:#fff!important;color:#000!important;page-break-inside:avoid}.fc hr,.fc tbody,.fc td,.fc th,.fc thead,.fc-row{border-color:#ccc!important;background:#fff!important}.fc tbody .fc-row{height:auto!important}.fc tbody .fc-row .fc-content-skeleton{position:static;padding-bottom:0!important}.fc tbody .fc-row .fc-content-skeleton tbody tr:last-child td{padding-bottom:1em}.fc tbody .fc-row .fc-content-skeleton table{height:1em}.fc-more,.fc-more-cell{display:none!important}.fc tr.fc-limited{display:table-row!important}.fc td.fc-limited{display:table-cell!important}.fc-popover,.fc-timeGrid-view .fc-axis{display:none}.fc-slats,.fc-time-grid hr{display:none!important}.fc button,.fc-button-group,.fc-time-grid .fc-event .fc-time span{display:none}.fc-time-grid .fc-content-skeleton{position:static}.fc-time-grid .fc-content-skeleton table{height:4em}.fc-time-grid .fc-event-container{margin:0!important}.fc-time-grid .fc-event{position:static!important;margin:3px 2px!important}.fc-time-grid .fc-event.fc-not-end{border-bottom-width:1px!important}.fc-time-grid .fc-event.fc-not-start{border-top-width:1px!important}.fc-time-grid .fc-event .fc-time{white-space:normal!important}.fc-time-grid .fc-event .fc-time:after{content:attr(data-full)}.fc-day-grid-container,.fc-scroller,.fc-time-grid-container{overflow:visible!important;height:auto!important}.fc-row{border:0!important;margin:0!important}} \ No newline at end of file diff --git a/htdocs/public/high/plugins/fullcalendar/packages/core/main.min.js b/htdocs/public/high/plugins/fullcalendar/packages/core/main.min.js deleted file mode 100644 index 6b72fff6..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/core/main.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/*! -FullCalendar Core Package v4.3.1 -Docs & License: https://fullcalendar.io/ -(c) 2019 Adam Shaw -*/ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self).FullCalendar={})}(this,function(e){"use strict";var t={className:!0,colSpan:!0,rowSpan:!0},n={"
");document.body.appendChild(e);var t=e.firstChild.getBoundingClientRect().left>e.getBoundingClientRect().left;return c(e),t}()),S}function D(e){return e=Math.max(0,e),e=Math.round(e)}function T(e,t){void 0===t&&(t=!1);var n=window.getComputedStyle(e),r=parseInt(n.borderLeftWidth,10)||0,i=parseInt(n.borderRightWidth,10)||0,o=parseInt(n.borderTopWidth,10)||0,a=parseInt(n.borderBottomWidth,10)||0,s=D(e.offsetWidth-e.clientWidth-r-i),u={borderLeft:r,borderRight:i,borderTop:o,borderBottom:a,scrollbarBottom:D(e.offsetHeight-e.clientHeight-o-a),scrollbarLeft:0,scrollbarRight:0};return b()&&"rtl"===n.direction?u.scrollbarLeft=s:u.scrollbarRight=s,t&&(u.paddingLeft=parseInt(n.paddingLeft,10)||0,u.paddingRight=parseInt(n.paddingRight,10)||0,u.paddingTop=parseInt(n.paddingTop,10)||0,u.paddingBottom=parseInt(n.paddingBottom,10)||0),u}function w(e,t){void 0===t&&(t=!1);var n=R(e),r=T(e,t),i={left:n.left+r.borderLeft+r.scrollbarLeft,right:n.right-r.borderRight-r.scrollbarRight,top:n.top+r.borderTop,bottom:n.bottom-r.borderBottom-r.scrollbarBottom};return t&&(i.left+=r.paddingLeft,i.right-=r.paddingRight,i.top+=r.paddingTop,i.bottom-=r.paddingBottom),i}function R(e){var t=e.getBoundingClientRect();return{left:t.left+window.pageXOffset,top:t.top+window.pageYOffset,right:t.right+window.pageXOffset,bottom:t.bottom+window.pageYOffset}}function I(e){return e.getBoundingClientRect().height+C(e)}function C(e){var t=window.getComputedStyle(e);return parseInt(t.marginTop,10)+parseInt(t.marginBottom,10)}function M(e){for(var t=[];e instanceof HTMLElement;){var n=window.getComputedStyle(e);if("fixed"===n.position)break;/(auto|scroll)/.test(n.overflow+n.overflowY+n.overflowX)&&t.push(e),e=e.parentNode}return t}function k(e){e.preventDefault()}function O(e,t,n,r){function i(e){var t=p(e.target,n);t&&r.call(t,e,t)}return e.addEventListener(t,i),function(){e.removeEventListener(t,i)}}var _=["webkitTransitionEnd","otransitionend","oTransitionEnd","msTransitionEnd","transitionend"];var P=["sun","mon","tue","wed","thu","fri","sat"];function x(e,t){var n=Z(e);return n[2]+=t,j(n)}function H(e,t){var n=Z(e);return n[6]+=t,j(n)}function N(e,t){return(t.valueOf()-e.valueOf())/864e5}function z(e,t){var n=B(e),r=B(t);return{years:0,months:0,days:Math.round(N(n,r)),milliseconds:t.valueOf()-r.valueOf()-(e.valueOf()-n.valueOf())}}function U(e,t){var n=L(e,t);return null!==n&&n%7==0?n/7:null}function L(e,t){return q(e)===q(t)?Math.round(N(e,t)):null}function B(e){return j([e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()])}function V(e,t,n,r){var i=j([t,0,1+A(t,n,r)]),o=B(e),a=Math.round(N(i,o));return Math.floor(a/7)+1}function A(e,t,n){var r=7+t-n;return-((7+j([e,0,r]).getUTCDay()-t)%7)+r-1}function F(e){return[e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()]}function W(e){return new Date(e[0],e[1]||0,null==e[2]?1:e[2],e[3]||0,e[4]||0,e[5]||0)}function Z(e){return[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds()]}function j(e){return 1===e.length&&(e=e.concat([0])),new Date(Date.UTC.apply(Date,e))}function Y(e){return!isNaN(e.valueOf())}function q(e){return 1e3*e.getUTCHours()*60*60+1e3*e.getUTCMinutes()*60+1e3*e.getUTCSeconds()+e.getUTCMilliseconds()}var G=["years","months","days","milliseconds"],X=/^(-?)(?:(\d+)\.)?(\d+):(\d\d)(?::(\d\d)(?:\.(\d\d\d))?)?/;function J(e,t){var n;return"string"==typeof e?function(e){var t=X.exec(e);if(t){var n=t[1]?-1:1;return{years:0,months:0,days:n*(t[2]?parseInt(t[2],10):0),milliseconds:n*(60*(t[3]?parseInt(t[3],10):0)*60*1e3+60*(t[4]?parseInt(t[4],10):0)*1e3+1e3*(t[5]?parseInt(t[5],10):0)+(t[6]?parseInt(t[6],10):0))}}return null}(e):"object"==typeof e&&e?K(e):"number"==typeof e?K(((n={})[t||"milliseconds"]=e,n)):null}function K(e){return{years:e.years||e.year||0,months:e.months||e.month||0,days:(e.days||e.day||0)+7*Q(e),milliseconds:60*(e.hours||e.hour||0)*60*1e3+60*(e.minutes||e.minute||0)*1e3+1e3*(e.seconds||e.second||0)+(e.milliseconds||e.millisecond||e.ms||0)}}function Q(e){return e.weeks||e.week||0}function $(e,t){return e.years===t.years&&e.months===t.months&&e.days===t.days&&e.milliseconds===t.milliseconds}function ee(e){return te(e)/864e5}function te(e){return 31536e6*e.years+2592e6*e.months+864e5*e.days+e.milliseconds}function ne(e,t){var n=e.milliseconds;if(n){if(n%1e3!=0)return{unit:"millisecond",value:n};if(n%6e4!=0)return{unit:"second",value:n/1e3};if(n%36e5!=0)return{unit:"minute",value:n/6e4};if(n)return{unit:"hour",value:n/36e5}}return e.days?t||e.days%7!=0?{unit:"day",value:e.days}:{unit:"week",value:e.days/7}:e.months?{unit:"month",value:e.months}:e.years?{unit:"year",value:e.years}:{unit:"millisecond",value:0}}function re(e){e.forEach(function(e){e.style.height=""})}function ie(e){var t,n,r=[],i=[];for("string"==typeof e?i=e.split(/\s*,\s*/):"function"==typeof e?i=[e]:Array.isArray(e)&&(i=e),t=0;t=te(t)&&(r=x(r,1))}return e.start&&(n=B(e.start),r&&r<=n&&(r=x(n,1))),{start:n,end:r}}function ye(e,t,n,r){return"year"===r?J(n.diffWholeYears(e,t),"year"):"month"===r?J(n.diffWholeMonths(e,t),"month"):z(e,t)}var me=function(e,t){return(me=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function Ee(e,t){function n(){this.constructor=e}me(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var Se=function(){return(Se=Object.assign||function(e){for(var t,n=1,r=arguments.length;n=0;o--)if("object"==typeof(a=e[o][r])&&a)i.unshift(a);else if(void 0!==a){u[r]=a;break}i.length&&(u[r]=Te(i))}for(n=e.length-1;n>=0;n--)for(r in s=e[n])r in u||(u[r]=s[r]);return u}function we(e,t){var n={};for(var r in e)t(e[r],r)&&(n[r]=e[r]);return n}function Re(e,t){var n={};for(var r in e)n[r]=t(e[r],r);return n}function Ie(e){for(var t={},n=0,r=e;no&&i.push({start:o,end:r.start}),r.end>o&&(o=r.end);return ot.start)&&(null===e.start||null===t.end||e.start=e.start)&&(null===e.end||null!==t.end&&t.end<=e.end)}function Ze(e,t){return(null===e.start||t>=e.start)&&(null===e.end||t1)||"numeric"!==r.year&&"2-digit"!==r.year||"numeric"!==r.month&&"2-digit"!==r.month||"numeric"!==r.day&&"2-digit"!==r.day||(a=1);var s=this.format(e,n),u=this.format(t,n);if(s===u)return s;var l=nt(function(e,t){var n={};for(var r in e)r in Xe&&!(Xe[r]<=t)||(n[r]=e[r]);return n}(r,a),i,n),c=l(e),d=l(t),f=function(e,t,n,r){var i=0;for(;i/g,">").replace(/'/g,"'").replace(/"/g,""").replace(/\n/g,"
")}function _t(e){var t=[];for(var n in e){var r=e[n];null!=r&&""!==r&&t.push(n+":"+r)}return t.join(";")}function Pt(e){return Array.isArray(e)?e:"string"==typeof e?e.split(/\s+/):[]}var xt={editable:Boolean,startEditable:Boolean,durationEditable:Boolean,constraint:null,overlap:null,allow:null,className:Pt,classNames:Pt,color:String,backgroundColor:String,borderColor:String,textColor:String};function Ht(e,t,n){var r=he(e,xt,{},n),i=function(e,t){return Array.isArray(e)?ke(e,"",t,!0):"object"==typeof e&&e?ke([e],"",t,!0):null!=e?String(e):null}(r.constraint,t);return{startEditable:null!=r.startEditable?r.startEditable:r.editable,durationEditable:null!=r.durationEditable?r.durationEditable:r.editable,constraints:null!=i?[i]:[],overlap:r.overlap,allows:null!=r.allow?[r.allow]:[],backgroundColor:r.backgroundColor||r.color,borderColor:r.borderColor||r.color,textColor:r.textColor,classNames:r.classNames.concat(r.className)}}function Nt(e,t,n,r){var i={},o={};for(var a in xt){var s=e+ue(a);i[a]=t[s],o[s]=!0}if("event"===e&&(i.editable=t.editable),r)for(var a in t)o[a]||(r[a]=t[a]);return Ht(i,n)}var zt={startEditable:null,durationEditable:null,constraints:[],overlap:null,allows:[],backgroundColor:"",borderColor:"",textColor:"",classNames:[]};function Ut(e){return e.reduce(Lt,zt)}function Lt(e,t){return{startEditable:null!=t.startEditable?t.startEditable:e.startEditable,durationEditable:null!=t.durationEditable?t.durationEditable:e.durationEditable,constraints:e.constraints.concat(t.constraints),overlap:"boolean"==typeof t.overlap?t.overlap:e.overlap,allows:e.allows.concat(t.allows),backgroundColor:t.backgroundColor||e.backgroundColor,borderColor:t.borderColor||e.borderColor,textColor:t.textColor||e.textColor,classNames:e.classNames.concat(t.classNames)}}var Bt={id:String,groupId:String,title:String,url:String,rendering:String,extendedProps:null},Vt={start:null,date:null,end:null,allDay:null},At=0;function Ft(e,t,n,r){var i=function(e,t){var n=null;if(e){var r=t.state.eventSources[e];n=r.allDayDefault}null==n&&(n=t.opt("allDayDefault"));return n}(t,n),o={},a=function(e,t,n,r,i){for(var o=0;o'+r+"
":""+r+""}function Qt(e,t,n,r){var i,o,a=n.calendar,s=n.view,u=n.theme,l=n.dateEnv,c=[];return Ze(t.activeRange,e)?(c.push("fc-"+P[e.getUTCDay()]),s.opt("monthMode")&&l.getMonth(e)!==l.getMonth(t.currentRange.start)&&c.push("fc-other-month"),o=x(i=B(a.getNow()),1),e=o?c.push("fc-future"):(c.push("fc-today"),!0!==r&&c.push(u.getClass("today")))):c.push("fc-disabled-day"),c}function $t(e,t,n){var r=!1,i=function(){r||(r=!0,t.apply(this,arguments))},o=function(){r||(r=!0,n&&n.apply(this,arguments))},a=e(i,o);a&&"function"==typeof a.then&&a.then(i,o)}var en=function(){function e(){}return e.mixInto=function(e){this.mixIntoObj(e.prototype)},e.mixIntoObj=function(e){var t=this;Object.getOwnPropertyNames(this.prototype).forEach(function(n){e[n]||(e[n]=t.prototype[n])})},e.mixOver=function(e){var t=this;Object.getOwnPropertyNames(this.prototype).forEach(function(n){e.prototype[n]=t.prototype[n]})},e}(),tn=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Ee(t,e),t.prototype.on=function(e,t){return nn(this._handlers||(this._handlers={}),e,t),this},t.prototype.one=function(e,t){return nn(this._oneHandlers||(this._oneHandlers={}),e,t),this},t.prototype.off=function(e,t){return this._handlers&&rn(this._handlers,e,t),this._oneHandlers&&rn(this._oneHandlers,e,t),this},t.prototype.trigger=function(e){for(var t=[],n=1;n=n[t]&&e=n[t]&&e0},e.prototype.canScrollHorizontally=function(){return this.getMaxScrollLeft()>0},e.prototype.canScrollUp=function(){return this.getScrollTop()>0},e.prototype.canScrollDown=function(){return this.getScrollTop()0},e.prototype.canScrollRight=function(){return this.getScrollLeft()=200&&a.status<400)try{var e=JSON.parse(a.responseText);r(e,a)}catch(e){i("Failure parsing JSON",a)}else i("Request failed",a)},a.onerror=function(){i("Request failed",a)},a.send(o)}function Sn(e){var t=[];for(var n in e)t.push(encodeURIComponent(n)+"="+encodeURIComponent(e[n]));return t.join("&")}var bn=vn({eventSourceDefs:[{parseMeta:function(e){if("string"==typeof e)e={url:e};else if(!e||"object"!=typeof e||!e.url)return null;return{url:e.url,method:(e.method||"GET").toUpperCase(),extraParams:e.extraParams,startParam:e.startParam,endParam:e.endParam,timeZoneParam:e.timeZoneParam}},fetch:function(e,t,n){var r=e.eventSource.meta,i=function(e,t,n){var r,i,o,a,s=n.dateEnv,u={};null==(r=e.startParam)&&(r=n.opt("startParam"));null==(i=e.endParam)&&(i=n.opt("endParam"));null==(o=e.timeZoneParam)&&(o=n.opt("timeZoneParam"));a="function"==typeof e.extraParams?e.extraParams():e.extraParams||{};Se(u,a),u[r]=s.formatIso(t.start),u[i]=s.formatIso(t.end),"local"!==s.timeZone&&(u[o]=s.timeZone);return u}(r,e.range,e.calendar);En(r.method,r.url,i,function(e,n){t({rawEvents:e,xhr:n})},function(e,t){n({message:e,xhr:t})})}}]});var Dn=vn({recurringTypes:[{parse:function(e,t,n){var r,i,o=n.createMarker.bind(n),a=he(e,{daysOfWeek:null,startTime:J,endTime:J,startRecur:o,endRecur:o},{},t),s=!1;for(var u in a)if(null!=a[u]){s=!0;break}if(s){var l=null;return"duration"in t&&(l=J(t.duration),delete t.duration),!l&&a.startTime&&a.endTime&&(r=a.endTime,i=a.startTime,l={years:r.years-i.years,months:r.months-i.months,days:r.days-i.days,milliseconds:r.milliseconds-i.milliseconds}),{allDayGuess:Boolean(!a.startTime&&!a.endTime),duration:l,typeData:a}}return null},expand:function(e,t,n){var r=Ve(t,{start:e.startRecur,end:e.endRecur});return r?function(e,t,n,r){var i=e?Ie(e):null,o=B(n.start),a=n.end,s=[];for(;o0?e[0].code:"en",n=window.FullCalendarLocalesAll||[],r=window.FullCalendarLocales||{},i=n.concat(Ce(r),e),o={en:kn},a=0,s=i;a0;i--){var o=r.slice(0,i).join("-");if(t[o])return t[o]}return null}(n,t)||kn;return Pn(e,n,r)}(e,t):Pn(e.code,[e.code],e)}function Pn(e,t,n){var r=Te([kn,n],["buttonText"]);delete r.code;var i=r.week;return delete r.week,{codeArg:e,codes:t,week:i,simpleNumberFormat:new Intl.NumberFormat(e),options:r}}var xn=function(){function e(e){this.overrides=Se({},e),this.dynamicOverrides={},this.compute()}return e.prototype.mutate=function(e,t,n){var r=n?this.dynamicOverrides:this.overrides;Se(r,e);for(var i=0,o=t;i=1?Math.min(i,o):i}(e,this.weekDow,this.weekDoy)},e.prototype.format=function(e,t,n){return void 0===n&&(n={}),t.format({marker:e,timeZoneOffset:null!=n.forcedTzo?n.forcedTzo:this.offsetForMarker(e)},this)},e.prototype.formatRange=function(e,t,n,r){return void 0===r&&(r={}),r.isEndExclusive&&(t=H(t,-1)),n.formatRange({marker:e,timeZoneOffset:null!=r.forcedStartTzo?r.forcedStartTzo:this.offsetForMarker(e)},{marker:t,timeZoneOffset:null!=r.forcedEndTzo?r.forcedEndTzo:this.offsetForMarker(t)},this)},e.prototype.formatIso=function(e,t){void 0===t&&(t={});var n=null;return t.omitTimeZoneOffset||(n=null!=t.forcedTzo?t.forcedTzo:this.offsetForMarker(e)),function(e,t,n){void 0===n&&(n=!1);var r=e.toISOString();return r=r.replace(".000",""),n&&(r=r.replace("T00:00:00Z","")),r.length>10&&(null==t?r=r.replace("Z",""):0!==t&&(r=r.replace("Z",at(t,!0)))),r}(e,n,t.omitTime)},e.prototype.timestampToMarker=function(e){return"local"===this.timeZone?j(F(new Date(e))):"UTC"!==this.timeZone&&this.namedTimeZoneImpl?j(this.namedTimeZoneImpl.timestampToArray(e)):new Date(e)},e.prototype.offsetForMarker=function(e){return"local"===this.timeZone?-W(Z(e)).getTimezoneOffset():"UTC"===this.timeZone?0:this.namedTimeZoneImpl?this.namedTimeZoneImpl.offsetForArray(Z(e)):null},e.prototype.toDate=function(e,t){return"local"===this.timeZone?W(Z(e)):"UTC"===this.timeZone?new Date(e.valueOf()):this.namedTimeZoneImpl?new Date(e.valueOf()-1e3*this.namedTimeZoneImpl.offsetForArray(Z(e))*60):new Date(e.valueOf()-(t||0))},e}(),Vn={id:String,allDayDefault:Boolean,eventDataTransform:Function,success:Function,failure:Function},An=0;function Fn(e,t){return!t.pluginSystem.hooks.eventSourceDefs[e.sourceDefId].ignoreRange}function Wn(e,t){for(var n=t.pluginSystem.hooks.eventSourceDefs,r=n.length-1;r>=0;r--){var i=n[r].parseMeta(e);if(i){var o=Zn("object"==typeof e?e:{},i,r,t);return o._raw=e,o}}return null}function Zn(e,t,n,r){var i={},o=he(e,Vn,{},i),a={},s=Ht(i,r,a);return o.isFetching=!1,o.latestFetchId="",o.fetchRange=null,o.publicId=String(e.id||""),o.sourceId=String(An++),o.sourceDefId=n,o.meta=t,o.ui=s,o.extendedProps=a,o}function jn(e,t,n,r){switch(t.type){case"ADD_EVENT_SOURCES":return function(e,t,n,r){for(var i={},o=0,a=t;oe.fetchRange.end:!e.latestFetchId}(e,t,n)}),t,n)}function Gn(e,t,n,r){var i={};for(var o in e){var a=e[o];t[o]?i[o]=Xn(a,n,r):i[o]=a}return i}function Xn(e,t,n){var r=n.pluginSystem.hooks.eventSourceDefs[e.sourceDefId],i=String(Yn++);return r.fetch({eventSource:e,calendar:n,range:t},function(r){var o,a,s=r.rawEvents,u=n.opt("eventSourceSuccess");e.success&&(a=e.success(s,r.xhr)),u&&(o=u(s,r.xhr)),s=a||o||s,n.dispatch({type:"RECEIVE_EVENTS",sourceId:e.sourceId,fetchId:i,fetchRange:t,rawEvents:s})},function(r){var o=n.opt("eventSourceFailure");console.warn(r.message,r),e.failure&&e.failure(r),o&&o(r),n.dispatch({type:"RECEIVE_EVENT_ERROR",sourceId:e.sourceId,fetchId:i,fetchRange:t,error:r})}),Se({},e,{isFetching:!0,latestFetchId:i})}var Jn=function(){function e(e,t){this.viewSpec=e,this.options=e.options,this.dateEnv=t.dateEnv,this.calendar=t,this.initHiddenDays()}return e.prototype.buildPrev=function(e,t){var n=this.dateEnv,r=n.subtract(n.startOf(t,e.currentRangeUnit),e.dateIncrement);return this.build(r,-1)},e.prototype.buildNext=function(e,t){var n=this.dateEnv,r=n.add(n.startOf(t,e.currentRangeUnit),e.dateIncrement);return this.build(r,1)},e.prototype.build=function(e,t,n){var r;void 0===n&&(n=!1);var i,o,a,s,u,l,c,d,f;return r=this.buildValidRange(),r=this.trimHiddenDays(r),n&&(d=e,e=null!=(f=r).start&&d=f.end?new Date(f.end.valueOf()-1):d),a=this.buildCurrentRangeInfo(e,t),s=/^(year|month|week|day)$/.test(a.unit),u=this.buildRenderRange(this.trimHiddenDays(a.range),a.unit,s),l=u=this.trimHiddenDays(u),this.options.showNonCurrentDates||(l=Ve(l,a.range)),i=J(this.options.minTime),o=J(this.options.maxTime),l=Ve(l=this.adjustActiveRange(l,i,o),r),c=Fe(a.range,r),{validRange:r,currentRange:a.range,currentRangeUnit:a.unit,isRangeAllDay:s,activeRange:l,renderRange:u,minTime:i,maxTime:o,isValid:c,dateIncrement:this.buildDateIncrement(a.duration)}},e.prototype.buildValidRange=function(){return this.getRangeOption("validRange",this.calendar.getNow())||{start:null,end:null}},e.prototype.buildCurrentRangeInfo=function(e,t){var n,r=this.viewSpec,i=this.dateEnv,o=null,a=null,s=null;return r.duration?(o=r.duration,a=r.durationUnit,s=this.buildRangeFromDuration(e,t,o,a)):(n=this.options.dayCount)?(a="day",s=this.buildRangeFromDayCount(e,t,n)):(s=this.buildCustomVisibleRange(e))?a=i.greatestWholeUnit(s.start,s.end).unit:(a=ne(o=this.getFallbackDuration()).unit,s=this.buildRangeFromDuration(e,t,o,a)),{duration:o,unit:a,range:s}},e.prototype.getFallbackDuration=function(){return J({day:1})},e.prototype.adjustActiveRange=function(e,t,n){var r=this.dateEnv,i=e.start,o=e.end;return this.viewSpec.class.prototype.usesMinMaxTime&&(ee(t)<0&&(i=B(i),i=r.add(i,t)),ee(n)>1&&(o=x(o=B(o),-1),o=r.add(o,n))),{start:i,end:o}},e.prototype.buildRangeFromDuration=function(e,t,n,r){var i,o,a,s,u,l=this.dateEnv,c=this.options.dateAlignment;function d(){a=l.startOf(e,c),s=l.add(a,n),u={start:a,end:s}}return c||((i=this.options.dateIncrement)?(o=J(i),c=te(o) ")),h=!1):((r=d[e])?(c=function(e){r.click&&r.click.call(E,e)},(v=o.getCustomButtonIconClass(r))||(v=o.getIconClass(e))||(g=r.text)):(s=l[e])?(n.viewsWithButtons.push(e),c=function(){a.changeView(e)},(g=s.buttonTextOverride)||(v=o.getIconClass(e))||(g=s.buttonTextDefault)):a[e]&&(c=function(){a[e]()},(g=f[e])||(v=o.getIconClass(e))||(g=p[e])),c&&(m=["fc-"+e+"-button",o.getClass("button")],g?(y=Ot(g),S=""):v&&(y="",S=' aria-label="'+e+'"'),(E=i('")).addEventListener("click",c),u.push(E)))}),u.length>1){r=document.createElement("div");var v=o.getClass("buttonGroup");h&&v&&r.classList.add(v),s(r,u),c.appendChild(r)}else s(c,u)}),c},t.prototype.updateToday=function(e){this.toggleButtonEnabled("today",e)},t.prototype.updatePrev=function(e){this.toggleButtonEnabled("prev",e)},t.prototype.updateNext=function(e){this.toggleButtonEnabled("next",e)},t.prototype.updateTitle=function(e){v(this.el,"h2").forEach(function(t){t.innerText=e})},t.prototype.updateActiveButton=function(e){var t=this.theme.getClass("buttonActive");v(this.el,"button").forEach(function(n){e&&n.classList.contains("fc-"+e+"-button")?n.classList.add(t):n.classList.remove(t)})},t.prototype.toggleButtonEnabled=function(e,t){v(this.el,".fc-"+e+"-button").forEach(function(e){e.disabled=!t})},t}(fn),hr=function(e){function t(t,n){var i=e.call(this,t)||this;i._renderToolbars=qt(i.renderToolbars),i.buildViewPropTransformers=Ye(gr),i.el=n,u(n,i.contentEl=r("div",{className:"fc-view-container"}));for(var o=i.calendar,a=0,s=o.pluginSystem.hooks.viewContainerModifiers;a1?{year:"numeric",month:"short",day:"numeric"}:{year:"numeric",month:"long",day:"numeric"}}(e),t.titleRangeSeparator),{isEndExclusive:e.isRangeAllDay})}function gr(e){return e.map(function(e){return new e})}var yr=function(){function e(e){this.component=e.component}return e.prototype.destroy=function(){},e}();var mr={},Er=function(e){function t(t){var n=e.call(this,t)||this;n.handleSegClick=function(e,t){var r=n.component,i=ht(t);if(i&&r.isValidSegDownEl(e.target)){var o=p(e.target,".fc-has-url"),a=o?o.querySelector("a[href]").href:"";r.publiclyTrigger("eventClick",[{el:t,event:new ct(r.calendar,i.eventRange.def,i.eventRange.instance),jsEvent:e,view:r.view}]),a&&!e.defaultPrevented&&(window.location.href=a)}};var r=t.component;return n.destroy=O(r.el,"click",r.fgSegSelector+","+r.bgSegSelector,n.handleSegClick),n}return Ee(t,e),t}(yr),Sr=function(e){function t(t){var n=e.call(this,t)||this;n.handleEventElRemove=function(e){e===n.currentSegEl&&n.handleSegLeave(null,n.currentSegEl)},n.handleSegEnter=function(e,t){ht(t)&&(t.classList.add("fc-allow-mouse-resize"),n.currentSegEl=t,n.triggerEvent("eventMouseEnter",e,t))},n.handleSegLeave=function(e,t){n.currentSegEl&&(t.classList.remove("fc-allow-mouse-resize"),n.currentSegEl=null,n.triggerEvent("eventMouseLeave",e,t))};var r,i,o,a,s,u=t.component;return n.removeHoverListeners=(r=u.el,i=u.fgSegSelector+","+u.bgSegSelector,o=n.handleSegEnter,a=n.handleSegLeave,O(r,"mouseover",i,function(e,t){if(t!==s){s=t,o(e,t);var n=function(e){s=null,a(e,t),t.removeEventListener("mouseleave",n)};t.addEventListener("mouseleave",n)}})),u.calendar.on("eventElRemove",n.handleEventElRemove),n}return Ee(t,e),t.prototype.destroy=function(){this.removeHoverListeners(),this.component.calendar.off("eventElRemove",this.handleEventElRemove)},t.prototype.triggerEvent=function(e,t,n){var r=this.component,i=ht(n);t&&!r.isValidSegDownEl(t.target)||r.publiclyTrigger(e,[{el:n,event:new ct(this.component.calendar,i.eventRange.def,i.eventRange.instance),jsEvent:t,view:r.view}])},t}(yr),br=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Ee(t,e),t}(cn);br.prototype.classes={widget:"fc-unthemed",widgetHeader:"fc-widget-header",widgetContent:"fc-widget-content",buttonGroup:"fc-button-group",button:"fc-button fc-button-primary",buttonActive:"fc-button-active",popoverHeader:"fc-widget-header",popoverContent:"fc-widget-content",headerRow:"fc-widget-header",dayRow:"fc-widget-content",listView:"fc-widget-content"},br.prototype.baseIconClass="fc-icon",br.prototype.iconClasses={close:"fc-icon-x",prev:"fc-icon-chevron-left",next:"fc-icon-chevron-right",prevYear:"fc-icon-chevrons-left",nextYear:"fc-icon-chevrons-right"},br.prototype.iconOverrideOption="buttonIcons",br.prototype.iconOverrideCustomButtonOption="icon",br.prototype.iconOverridePrefix="fc-icon-";var Dr=function(){function e(e,t){var n=this;this.parseRawLocales=Ye(On),this.buildLocale=Ye(_n),this.buildDateEnv=Ye(Tr),this.buildTheme=Ye(wr),this.buildEventUiSingleBase=Ye(this._buildEventUiSingleBase),this.buildSelectionConfig=Ye(this._buildSelectionConfig),this.buildEventUiBySource=qe(Ir,Me),this.buildEventUiBases=Ye(Cr),this.interactionsStore={},this.actionQueue=[],this.isReducing=!1,this.needsRerender=!1,this.needsFullRerender=!1,this.isRendering=!1,this.renderingPauseDepth=0,this.buildDelayedRerender=Ye(Rr),this.afterSizingTriggers={},this.isViewUpdated=!1,this.isDatesUpdated=!1,this.isEventsUpdated=!1,this.el=e,this.optionsManager=new xn(t||{}),this.pluginSystem=new gn,this.addPluginInputs(this.optionsManager.computed.plugins||[]),this.handleOptions(this.optionsManager.computed),this.publiclyTrigger("_init"),this.hydrate(),this.calendarInteractions=this.pluginSystem.hooks.calendarInteractions.map(function(e){return new e(n)})}return e.prototype.addPluginInputs=function(e){for(var t=function(e){for(var t=[],n=0,r=e;n"},e.prototype.detachSegs=function(e,t){var n=this.containerElsByType[e];n&&(n.forEach(c),delete this.containerElsByType[e])},e.prototype.computeSizes=function(e){for(var t in this.segsByType)(e||this.dirtySizeFlags[t])&&this.computeSegSizes(this.segsByType[t])},e.prototype.assignSizes=function(e){for(var t in this.segsByType)(e||this.dirtySizeFlags[t])&&this.assignSegSizes(this.segsByType[t]);this.dirtySizeFlags={}},e.prototype.computeSegSizes=function(e){},e.prototype.assignSegSizes=function(e){},e}(),Pr=function(e){this.timeZoneName=e},xr=function(){function e(e){this.emitter=new tn}return e.prototype.destroy=function(){},e.prototype.setMirrorIsVisible=function(e){},e.prototype.setMirrorNeedsRevert=function(e){},e.prototype.setAutoScrollEnabled=function(e){},e}();function Hr(e){var t=_n(e.locale||"en",On([]).map);return e=Se({timeZone:Rn.timeZone,calendarSystem:"gregory"},e,{locale:t}),new Bn(e)}var Nr={startTime:J,duration:J,create:Boolean,sourceId:String},zr={create:!0};function Ur(e,t){return!e||t>10?{weekday:"short"}:t>1?{weekday:"short",month:"numeric",day:"numeric",omitCommas:!0}:{weekday:"long"}}function Lr(e,t,n,r,i,o,a,s){var u,l=o.view,c=o.dateEnv,d=o.theme,f=o.options,p=Ze(t.activeRange,e),h=["fc-day-header",d.getClass("widgetHeader")];return u="function"==typeof f.columnHeaderHtml?f.columnHeaderHtml(c.toDate(e)):"function"==typeof f.columnHeaderText?Ot(f.columnHeaderText(c.toDate(e))):Ot(c.format(e,i)),n?h=h.concat(Qt(e,t,o,!0)):h.push("fc-"+P[e.getUTCDay()]),'1?' colspan="'+a+'"':"")+(s?" "+s:"")+">"+(p?Kt(l,{date:e,forceOff:!n||1===r},u):u)+""}var Br=function(e){function t(t,n){var r=e.call(this,t)||this;return n.innerHTML="",n.appendChild(r.el=i('
')),r.thead=r.el.querySelector("thead"),r}return Ee(t,e),t.prototype.destroy=function(){c(this.el)},t.prototype.render=function(e){var t=e.dates,n=e.datesRepDistinctDays,r=[];e.renderIntroHtml&&r.push(e.renderIntroHtml());for(var i=ot(this.opt("columnHeaderFormat")||Ur(n,t.length)),o=0,a=t;o"+r.join("")+""},t}(fn),Vr=function(){function e(e,t){for(var n=e.start,r=e.end,i=[],o=[],a=-1;n=t.length?t[t.length-1]+1:t[n]},e}(),Ar=function(){function e(e,t){var n,r,i,o=e.dates;if(t){for(r=o[0].getUTCDay(),n=1;n1},e.isPropsEqual=Me,e.isPropsValid=Rt,e.isSingleDay=function(e){return 0===e.years&&0===e.months&&1===e.days&&0===e.milliseconds},e.isValidDate=Y,e.listenBySelector=O,e.mapHash=Re,e.matchCellWidths=function(e){var t=0;return e.forEach(function(e){var n=e.firstChild;if(n instanceof HTMLElement){var r=n.getBoundingClientRect().width;r>t&&(t=r)}}),t++,e.forEach(function(e){e.style.width=t+"px"}),t},e.memoize=Ye,e.memoizeOutput=qe,e.memoizeRendering=qt,e.mergeEventStores=Ne,e.multiplyDuration=function(e,t){return{years:e.years*t,months:e.months*t,days:e.days*t,milliseconds:e.milliseconds*t}},e.padStart=le,e.parseBusinessHours=Yt,e.parseDragMeta=function(e){var t={},n=he(e,Nr,zr,t);return n.leftoverProps=t,n},e.parseEventDef=Wt,e.parseFieldSpecs=ie,e.parseMarker=Ln,e.pointInsideRect=function(e,t){return e.left>=t.left&&e.left=t.top&&e.top * { - /* work around the way we do column resizing and ensure a minimum width */ - display: inline-block; - min-width: 1.25em; -} diff --git a/htdocs/public/high/plugins/fullcalendar/packages/daygrid/main.d.ts b/htdocs/public/high/plugins/fullcalendar/packages/daygrid/main.d.ts deleted file mode 100644 index ed214f2d..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/daygrid/main.d.ts +++ /dev/null @@ -1,310 +0,0 @@ -// Generated by dts-bundle v0.7.3-fork.1 -// Dependencies for this module: -// ../../../../../@fullcalendar/core - -declare module '@fullcalendar/daygrid' { - export { default as SimpleDayGrid, DayGridSlicer } from '@fullcalendar/daygrid/SimpleDayGrid'; - export { default as DayGrid, DayGridSeg } from '@fullcalendar/daygrid/DayGrid'; - export { default as AbstractDayGridView } from '@fullcalendar/daygrid/AbstractDayGridView'; - export { default as DayGridView, buildDayTable as buildBasicDayTable } from '@fullcalendar/daygrid/DayGridView'; - export { default as DayBgRow } from '@fullcalendar/daygrid/DayBgRow'; - const _default: import("@fullcalendar/core").PluginDef; - export default _default; -} - -declare module '@fullcalendar/daygrid/SimpleDayGrid' { - import { DateProfile, EventStore, EventUiHash, DateSpan, EventInteractionState, DayTable, Duration, DateComponent, DateRange, Slicer, Hit, ComponentContext } from '@fullcalendar/core'; - import { default as DayGrid, DayGridSeg } from '@fullcalendar/daygrid/DayGrid'; - export interface SimpleDayGridProps { - dateProfile: DateProfile | null; - dayTable: DayTable; - nextDayThreshold: Duration; - businessHours: EventStore; - eventStore: EventStore; - eventUiBases: EventUiHash; - dateSelection: DateSpan | null; - eventSelection: string; - eventDrag: EventInteractionState | null; - eventResize: EventInteractionState | null; - isRigid: boolean; - } - export { SimpleDayGrid as default, SimpleDayGrid }; - class SimpleDayGrid extends DateComponent { - dayGrid: DayGrid; - constructor(context: ComponentContext, dayGrid: DayGrid); - destroy(): void; - render(props: SimpleDayGridProps): void; - buildPositionCaches(): void; - queryHit(positionLeft: number, positionTop: number): Hit; - } - export class DayGridSlicer extends Slicer { - sliceRange(dateRange: DateRange, dayTable: DayTable): DayGridSeg[]; - } -} - -declare module '@fullcalendar/daygrid/DayGrid' { - import { PositionCache, DateMarker, DateComponent, EventSegUiInteractionState, Seg, DateProfile } from '@fullcalendar/core'; - import Popover from '@fullcalendar/daygrid/Popover'; - import DayGridEventRenderer from '@fullcalendar/daygrid/DayGridEventRenderer'; - import DayTile from '@fullcalendar/daygrid/DayTile'; - export interface RenderProps { - renderNumberIntroHtml: (row: number, dayGrid: DayGrid) => string; - renderBgIntroHtml: () => string; - renderIntroHtml: () => string; - colWeekNumbersVisible: boolean; - cellWeekNumbersVisible: boolean; - } - export interface DayGridSeg extends Seg { - row: number; - firstCol: number; - lastCol: number; - } - export interface DayGridCell { - date: DateMarker; - htmlAttrs?: string; - } - export interface DayGridProps { - dateProfile: DateProfile; - cells: DayGridCell[][]; - businessHourSegs: DayGridSeg[]; - bgEventSegs: DayGridSeg[]; - fgEventSegs: DayGridSeg[]; - dateSelectionSegs: DayGridSeg[]; - eventSelection: string; - eventDrag: EventSegUiInteractionState | null; - eventResize: EventSegUiInteractionState | null; - isRigid: boolean; - } - export { DayGrid as default, DayGrid }; - class DayGrid extends DateComponent { - eventRenderer: DayGridEventRenderer; - renderProps: RenderProps; - rowCnt: number; - colCnt: number; - bottomCoordPadding: number; - rowEls: HTMLElement[]; - cellEls: HTMLElement[]; - isCellSizesDirty: boolean; - rowPositions: PositionCache; - colPositions: PositionCache; - segPopover: Popover; - segPopoverTile: DayTile; - constructor(context: any, el: any, renderProps: RenderProps); - render(props: DayGridProps): void; - destroy(): void; - getCellRange(row: any, col: any): { - start: Date; - end: Date; - }; - updateSegPopoverTile(date?: any, segs?: any): void; - _renderCells(cells: DayGridCell[][], isRigid: boolean): void; - _unrenderCells(): void; - renderDayRowHtml(row: any, isRigid: any): string; - getIsNumbersVisible(): boolean; - getIsDayNumbersVisible(): boolean; - renderNumberTrHtml(row: number): string; - renderNumberCellsHtml(row: any): string; - renderNumberCellHtml(date: any): string; - updateSize(isResize: boolean): void; - buildPositionCaches(): void; - buildColPositions(): void; - buildRowPositions(): void; - positionToHit(leftPosition: any, topPosition: any): { - row: any; - col: any; - dateSpan: { - range: { - start: Date; - end: Date; - }; - allDay: boolean; - }; - dayEl: HTMLElement; - relativeRect: { - left: any; - right: any; - top: any; - bottom: any; - }; - }; - getCellEl(row: any, col: any): HTMLElement; - _renderEventDrag(state: EventSegUiInteractionState): void; - _unrenderEventDrag(state: EventSegUiInteractionState): void; - _renderEventResize(state: EventSegUiInteractionState): void; - _unrenderEventResize(state: EventSegUiInteractionState): void; - removeSegPopover(): void; - limitRows(levelLimit: any): void; - computeRowLevelLimit(row: any): (number | false); - limitRow(row: any, levelLimit: any): void; - unlimitRow(row: any): void; - renderMoreLink(row: any, col: any, hiddenSegs: any): HTMLElement; - showSegPopover(row: any, col: any, moreLink: HTMLElement, segs: any): void; - resliceDaySegs(segs: any, dayDate: any): any[]; - getMoreLinkText(num: any): any; - getCellSegs(row: any, col: any, startLevel?: any): any[]; - } -} - -declare module '@fullcalendar/daygrid/AbstractDayGridView' { - import { ScrollComponent, View, ComponentContext, ViewSpec, DateProfileGenerator, Duration } from '@fullcalendar/core'; - import DayGrid from '@fullcalendar/daygrid/DayGrid'; - export { DayGridView as default, DayGridView }; - abstract class DayGridView extends View { - scroller: ScrollComponent; - dayGrid: DayGrid; - colWeekNumbersVisible: boolean; - weekNumberWidth: number; - constructor(context: ComponentContext, viewSpec: ViewSpec, dateProfileGenerator: DateProfileGenerator, parentEl: HTMLElement); - destroy(): void; - renderSkeletonHtml(): string; - weekNumberStyleAttr(): string; - hasRigidRows(): boolean; - updateSize(isResize: boolean, viewHeight: number, isAuto: boolean): void; - updateBaseSize(isResize: boolean, viewHeight: number, isAuto: boolean): void; - computeScrollerHeight(viewHeight: any): number; - setGridHeight(height: any, isAuto: any): void; - computeDateScroll(duration: Duration): { - top: number; - }; - queryDateScroll(): { - top: number; - }; - applyDateScroll(scroll: any): void; - renderHeadIntroHtml: () => string; - renderDayGridNumberIntroHtml: (row: number, dayGrid: DayGrid) => string; - renderDayGridBgIntroHtml: () => string; - renderDayGridIntroHtml: () => string; - } -} - -declare module '@fullcalendar/daygrid/DayGridView' { - import { DayHeader, ComponentContext, ViewSpec, DateProfileGenerator, DateProfile, ViewProps, DayTable } from '@fullcalendar/core'; - import AbstractDayGridView from '@fullcalendar/daygrid/AbstractDayGridView'; - import SimpleDayGrid from '@fullcalendar/daygrid/SimpleDayGrid'; - export { DayGridView as default, DayGridView }; - class DayGridView extends AbstractDayGridView { - header: DayHeader; - simpleDayGrid: SimpleDayGrid; - dayTable: DayTable; - constructor(_context: ComponentContext, viewSpec: ViewSpec, dateProfileGenerator: DateProfileGenerator, parentEl: HTMLElement); - destroy(): void; - render(props: ViewProps): void; - } - export function buildDayTable(dateProfile: DateProfile, dateProfileGenerator: DateProfileGenerator): DayTable; -} - -declare module '@fullcalendar/daygrid/DayBgRow' { - import { ComponentContext, DateMarker, DateProfile } from '@fullcalendar/core'; - export interface DayBgCell { - date: DateMarker; - htmlAttrs?: string; - } - export interface DayBgRowProps { - cells: DayBgCell[]; - dateProfile: DateProfile; - renderIntroHtml?: () => string; - } - export { DayBgRow as default, DayBgRow }; - class DayBgRow { - context: ComponentContext; - constructor(context: ComponentContext); - renderHtml(props: DayBgRowProps): string; - } -} - -declare module '@fullcalendar/daygrid/Popover' { - export interface PopoverOptions { - className?: string; - content?: (el: HTMLElement) => void; - parentEl: HTMLElement; - autoHide?: boolean; - top?: number; - left?: number; - right?: number; - viewportConstrain?: boolean; - } - export { Popover as default, Popover }; - class Popover { - isHidden: boolean; - options: PopoverOptions; - el: HTMLElement; - margin: number; - constructor(options: PopoverOptions); - show(): void; - hide(): void; - render(): void; - documentMousedown: (ev: any) => void; - destroy(): void; - position(): void; - trigger(name: any): void; - } -} - -declare module '@fullcalendar/daygrid/DayGridEventRenderer' { - import { Seg } from '@fullcalendar/core'; - import DayGrid from '@fullcalendar/daygrid/DayGrid'; - import SimpleDayGridEventRenderer from '@fullcalendar/daygrid/SimpleDayGridEventRenderer'; - export { DayGridEventRenderer as default, DayGridEventRenderer }; - class DayGridEventRenderer extends SimpleDayGridEventRenderer { - dayGrid: DayGrid; - rowStructs: any; - constructor(dayGrid: DayGrid); - attachSegs(segs: Seg[], mirrorInfo: any): void; - detachSegs(): void; - renderSegRows(segs: Seg[]): any[]; - renderSegRow(row: any, rowSegs: any): { - row: any; - tbodyEl: HTMLTableSectionElement; - cellMatrix: any[]; - segMatrix: any[]; - segLevels: any[]; - segs: any; - }; - buildSegLevels(segs: Seg[]): any[]; - groupSegRows(segs: Seg[]): any[]; - computeDisplayEventEnd(): boolean; - } -} - -declare module '@fullcalendar/daygrid/DayTile' { - import { DateComponent, Seg, Hit, DateMarker, ComponentContext, EventInstanceHash } from '@fullcalendar/core'; - import SimpleDayGridEventRenderer from '@fullcalendar/daygrid/SimpleDayGridEventRenderer'; - export interface DayTileProps { - date: DateMarker; - fgSegs: Seg[]; - eventSelection: string; - eventDragInstances: EventInstanceHash; - eventResizeInstances: EventInstanceHash; - } - export { DayTile as default, DayTile }; - class DayTile extends DateComponent { - segContainerEl: HTMLElement; - constructor(context: ComponentContext, el: HTMLElement); - render(props: DayTileProps): void; - destroy(): void; - _renderFrame(date: DateMarker): void; - queryHit(positionLeft: number, positionTop: number, elWidth: number, elHeight: number): Hit | null; - } - export class DayTileEventRenderer extends SimpleDayGridEventRenderer { - dayTile: DayTile; - constructor(dayTile: any); - attachSegs(segs: Seg[]): void; - detachSegs(segs: Seg[]): void; - } -} - -declare module '@fullcalendar/daygrid/SimpleDayGridEventRenderer' { - import { FgEventRenderer, Seg } from '@fullcalendar/core'; - export { SimpleDayGridEventRenderer as default, SimpleDayGridEventRenderer }; - abstract class SimpleDayGridEventRenderer extends FgEventRenderer { - renderSegHtml(seg: Seg, mirrorInfo: any): string; - computeEventTimeFormat(): { - hour: string; - minute: string; - omitZeroMinute: boolean; - meridiem: string; - }; - computeDisplayEventEnd(): boolean; - } -} - diff --git a/htdocs/public/high/plugins/fullcalendar/packages/daygrid/main.esm.js b/htdocs/public/high/plugins/fullcalendar/packages/daygrid/main.esm.js deleted file mode 100644 index 28c2a24c..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/daygrid/main.esm.js +++ /dev/null @@ -1,1627 +0,0 @@ -/*! -FullCalendar Day Grid Plugin v4.3.0 -Docs & License: https://fullcalendar.io/ -(c) 2019 Adam Shaw -*/ - -import { addWeeks, diffWeeks, DateProfileGenerator, createElement, listenBySelector, removeElement, computeRect, computeClippingRect, applyStyle, cssToStr, htmlEscape, FgEventRenderer, appendToElement, prependToElement, htmlToElement, FillRenderer, memoizeRendering, createFormatter, addDays, DateComponent, rangeContainsMarker, getDayClasses, findElements, PositionCache, buildGotoAnchorHtml, findChildren, insertAfterElement, intersectRanges, ScrollComponent, matchCellWidths, uncompensateScroll, compensateScroll, subtractInnerElHeight, distributeHeight, undistributeHeight, View, Slicer, memoize, DayHeader, DaySeries, DayTable, createPlugin } from '@fullcalendar/core'; - -/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. All rights reserved. -Licensed under the Apache License, Version 2.0 (the "License"); you may not use -this file except in compliance with the License. You may obtain a copy of the -License at http://www.apache.org/licenses/LICENSE-2.0 - -THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED -WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, -MERCHANTABLITY OR NON-INFRINGEMENT. - -See the Apache Version 2.0 License for specific language governing permissions -and limitations under the License. -***************************************************************************** */ -/* global Reflect, Promise */ - -var extendStatics = function(d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return extendStatics(d, b); -}; - -function __extends(d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -} - -var __assign = function() { - __assign = Object.assign || function __assign(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); -}; - -var DayGridDateProfileGenerator = /** @class */ (function (_super) { - __extends(DayGridDateProfileGenerator, _super); - function DayGridDateProfileGenerator() { - return _super !== null && _super.apply(this, arguments) || this; - } - // Computes the date range that will be rendered. - DayGridDateProfileGenerator.prototype.buildRenderRange = function (currentRange, currentRangeUnit, isRangeAllDay) { - var dateEnv = this.dateEnv; - var renderRange = _super.prototype.buildRenderRange.call(this, currentRange, currentRangeUnit, isRangeAllDay); - var start = renderRange.start; - var end = renderRange.end; - var endOfWeek; - // year and month views should be aligned with weeks. this is already done for week - if (/^(year|month)$/.test(currentRangeUnit)) { - start = dateEnv.startOfWeek(start); - // make end-of-week if not already - endOfWeek = dateEnv.startOfWeek(end); - if (endOfWeek.valueOf() !== end.valueOf()) { - end = addWeeks(endOfWeek, 1); - } - } - // ensure 6 weeks - if (this.options.monthMode && - this.options.fixedWeekCount) { - var rowCnt = Math.ceil(// could be partial weeks due to hiddenDays - diffWeeks(start, end)); - end = addWeeks(end, 6 - rowCnt); - } - return { start: start, end: end }; - }; - return DayGridDateProfileGenerator; -}(DateProfileGenerator)); - -/* A rectangular panel that is absolutely positioned over other content ------------------------------------------------------------------------------------------------------------------------- -Options: - - className (string) - - content (HTML string, element, or element array) - - parentEl - - top - - left - - right (the x coord of where the right edge should be. not a "CSS" right) - - autoHide (boolean) - - show (callback) - - hide (callback) -*/ -var Popover = /** @class */ (function () { - function Popover(options) { - var _this = this; - this.isHidden = true; - this.margin = 10; // the space required between the popover and the edges of the scroll container - // Triggered when the user clicks *anywhere* in the document, for the autoHide feature - this.documentMousedown = function (ev) { - // only hide the popover if the click happened outside the popover - if (_this.el && !_this.el.contains(ev.target)) { - _this.hide(); - } - }; - this.options = options; - } - // Shows the popover on the specified position. Renders it if not already - Popover.prototype.show = function () { - if (this.isHidden) { - if (!this.el) { - this.render(); - } - this.el.style.display = ''; - this.position(); - this.isHidden = false; - this.trigger('show'); - } - }; - // Hides the popover, through CSS, but does not remove it from the DOM - Popover.prototype.hide = function () { - if (!this.isHidden) { - this.el.style.display = 'none'; - this.isHidden = true; - this.trigger('hide'); - } - }; - // Creates `this.el` and renders content inside of it - Popover.prototype.render = function () { - var _this = this; - var options = this.options; - var el = this.el = createElement('div', { - className: 'fc-popover ' + (options.className || ''), - style: { - top: '0', - left: '0' - } - }); - if (typeof options.content === 'function') { - options.content(el); - } - options.parentEl.appendChild(el); - // when a click happens on anything inside with a 'fc-close' className, hide the popover - listenBySelector(el, 'click', '.fc-close', function (ev) { - _this.hide(); - }); - if (options.autoHide) { - document.addEventListener('mousedown', this.documentMousedown); - } - }; - // Hides and unregisters any handlers - Popover.prototype.destroy = function () { - this.hide(); - if (this.el) { - removeElement(this.el); - this.el = null; - } - document.removeEventListener('mousedown', this.documentMousedown); - }; - // Positions the popover optimally, using the top/left/right options - Popover.prototype.position = function () { - var options = this.options; - var el = this.el; - var elDims = el.getBoundingClientRect(); // only used for width,height - var origin = computeRect(el.offsetParent); - var clippingRect = computeClippingRect(options.parentEl); - var top; // the "position" (not "offset") values for the popover - var left; // - // compute top and left - top = options.top || 0; - if (options.left !== undefined) { - left = options.left; - } - else if (options.right !== undefined) { - left = options.right - elDims.width; // derive the left value from the right value - } - else { - left = 0; - } - // constrain to the view port. if constrained by two edges, give precedence to top/left - top = Math.min(top, clippingRect.bottom - elDims.height - this.margin); - top = Math.max(top, clippingRect.top + this.margin); - left = Math.min(left, clippingRect.right - elDims.width - this.margin); - left = Math.max(left, clippingRect.left + this.margin); - applyStyle(el, { - top: top - origin.top, - left: left - origin.left - }); - }; - // Triggers a callback. Calls a function in the option hash of the same name. - // Arguments beyond the first `name` are forwarded on. - // TODO: better code reuse for this. Repeat code - // can kill this??? - Popover.prototype.trigger = function (name) { - if (this.options[name]) { - this.options[name].apply(this, Array.prototype.slice.call(arguments, 1)); - } - }; - return Popover; -}()); - -/* Event-rendering methods for the DayGrid class -----------------------------------------------------------------------------------------------------------------------*/ -// "Simple" is bad a name. has nothing to do with SimpleDayGrid -var SimpleDayGridEventRenderer = /** @class */ (function (_super) { - __extends(SimpleDayGridEventRenderer, _super); - function SimpleDayGridEventRenderer() { - return _super !== null && _super.apply(this, arguments) || this; - } - // Builds the HTML to be used for the default element for an individual segment - SimpleDayGridEventRenderer.prototype.renderSegHtml = function (seg, mirrorInfo) { - var _a = this.context, view = _a.view, options = _a.options; - var eventRange = seg.eventRange; - var eventDef = eventRange.def; - var eventUi = eventRange.ui; - var allDay = eventDef.allDay; - var isDraggable = view.computeEventDraggable(eventDef, eventUi); - var isResizableFromStart = allDay && seg.isStart && view.computeEventStartResizable(eventDef, eventUi); - var isResizableFromEnd = allDay && seg.isEnd && view.computeEventEndResizable(eventDef, eventUi); - var classes = this.getSegClasses(seg, isDraggable, isResizableFromStart || isResizableFromEnd, mirrorInfo); - var skinCss = cssToStr(this.getSkinCss(eventUi)); - var timeHtml = ''; - var timeText; - var titleHtml; - classes.unshift('fc-day-grid-event', 'fc-h-event'); - // Only display a timed events time if it is the starting segment - if (seg.isStart) { - timeText = this.getTimeText(eventRange); - if (timeText) { - timeHtml = '' + htmlEscape(timeText) + ''; - } - } - titleHtml = - '' + - (htmlEscape(eventDef.title || '') || ' ') + // we always want one line of height - ''; - return '' + - '
' + - (options.dir === 'rtl' ? - titleHtml + ' ' + timeHtml : // put a natural space in between - timeHtml + ' ' + titleHtml // - ) + - '
' + - (isResizableFromStart ? - '
' : - '') + - (isResizableFromEnd ? - '
' : - '') + - '
'; - }; - // Computes a default event time formatting string if `eventTimeFormat` is not explicitly defined - SimpleDayGridEventRenderer.prototype.computeEventTimeFormat = function () { - return { - hour: 'numeric', - minute: '2-digit', - omitZeroMinute: true, - meridiem: 'narrow' - }; - }; - SimpleDayGridEventRenderer.prototype.computeDisplayEventEnd = function () { - return false; // TODO: somehow consider the originating DayGrid's column count - }; - return SimpleDayGridEventRenderer; -}(FgEventRenderer)); - -/* Event-rendering methods for the DayGrid class -----------------------------------------------------------------------------------------------------------------------*/ -var DayGridEventRenderer = /** @class */ (function (_super) { - __extends(DayGridEventRenderer, _super); - function DayGridEventRenderer(dayGrid) { - var _this = _super.call(this, dayGrid.context) || this; - _this.dayGrid = dayGrid; - return _this; - } - // Renders the given foreground event segments onto the grid - DayGridEventRenderer.prototype.attachSegs = function (segs, mirrorInfo) { - var rowStructs = this.rowStructs = this.renderSegRows(segs); - // append to each row's content skeleton - this.dayGrid.rowEls.forEach(function (rowNode, i) { - rowNode.querySelector('.fc-content-skeleton > table').appendChild(rowStructs[i].tbodyEl); - }); - // removes the "more.." events popover - if (!mirrorInfo) { - this.dayGrid.removeSegPopover(); - } - }; - // Unrenders all currently rendered foreground event segments - DayGridEventRenderer.prototype.detachSegs = function () { - var rowStructs = this.rowStructs || []; - var rowStruct; - while ((rowStruct = rowStructs.pop())) { - removeElement(rowStruct.tbodyEl); - } - this.rowStructs = null; - }; - // Uses the given events array to generate elements that should be appended to each row's content skeleton. - // Returns an array of rowStruct objects (see the bottom of `renderSegRow`). - // PRECONDITION: each segment shoud already have a rendered and assigned `.el` - DayGridEventRenderer.prototype.renderSegRows = function (segs) { - var rowStructs = []; - var segRows; - var row; - segRows = this.groupSegRows(segs); // group into nested arrays - // iterate each row of segment groupings - for (row = 0; row < segRows.length; row++) { - rowStructs.push(this.renderSegRow(row, segRows[row])); - } - return rowStructs; - }; - // Given a row # and an array of segments all in the same row, render a element, a skeleton that contains - // the segments. Returns object with a bunch of internal data about how the render was calculated. - // NOTE: modifies rowSegs - DayGridEventRenderer.prototype.renderSegRow = function (row, rowSegs) { - var dayGrid = this.dayGrid; - var colCnt = dayGrid.colCnt, isRtl = dayGrid.isRtl; - var segLevels = this.buildSegLevels(rowSegs); // group into sub-arrays of levels - var levelCnt = Math.max(1, segLevels.length); // ensure at least one level - var tbody = document.createElement('tbody'); - var segMatrix = []; // lookup for which segments are rendered into which level+col cells - var cellMatrix = []; // lookup for all elements of the level+col matrix - var loneCellMatrix = []; // lookup for elements that only take up a single column - var i; - var levelSegs; - var col; - var tr; - var j; - var seg; - var td; - // populates empty cells from the current column (`col`) to `endCol` - function emptyCellsUntil(endCol) { - while (col < endCol) { - // try to grab a cell from the level above and extend its rowspan. otherwise, create a fresh cell - td = (loneCellMatrix[i - 1] || [])[col]; - if (td) { - td.rowSpan = (td.rowSpan || 1) + 1; - } - else { - td = document.createElement('td'); - tr.appendChild(td); - } - cellMatrix[i][col] = td; - loneCellMatrix[i][col] = td; - col++; - } - } - for (i = 0; i < levelCnt; i++) { // iterate through all levels - levelSegs = segLevels[i]; - col = 0; - tr = document.createElement('tr'); - segMatrix.push([]); - cellMatrix.push([]); - loneCellMatrix.push([]); - // levelCnt might be 1 even though there are no actual levels. protect against this. - // this single empty row is useful for styling. - if (levelSegs) { - for (j = 0; j < levelSegs.length; j++) { // iterate through segments in level - seg = levelSegs[j]; - var leftCol = isRtl ? (colCnt - 1 - seg.lastCol) : seg.firstCol; - var rightCol = isRtl ? (colCnt - 1 - seg.firstCol) : seg.lastCol; - emptyCellsUntil(leftCol); - // create a container that occupies or more columns. append the event element. - td = createElement('td', { className: 'fc-event-container' }, seg.el); - if (leftCol !== rightCol) { - td.colSpan = rightCol - leftCol + 1; - } - else { // a single-column segment - loneCellMatrix[i][col] = td; - } - while (col <= rightCol) { - cellMatrix[i][col] = td; - segMatrix[i][col] = seg; - col++; - } - tr.appendChild(td); - } - } - emptyCellsUntil(colCnt); // finish off the row - var introHtml = dayGrid.renderProps.renderIntroHtml(); - if (introHtml) { - if (dayGrid.isRtl) { - appendToElement(tr, introHtml); - } - else { - prependToElement(tr, introHtml); - } - } - tbody.appendChild(tr); - } - return { - row: row, - tbodyEl: tbody, - cellMatrix: cellMatrix, - segMatrix: segMatrix, - segLevels: segLevels, - segs: rowSegs - }; - }; - // Stacks a flat array of segments, which are all assumed to be in the same row, into subarrays of vertical levels. - // NOTE: modifies segs - DayGridEventRenderer.prototype.buildSegLevels = function (segs) { - var _a = this.dayGrid, isRtl = _a.isRtl, colCnt = _a.colCnt; - var levels = []; - var i; - var seg; - var j; - // Give preference to elements with certain criteria, so they have - // a chance to be closer to the top. - segs = this.sortEventSegs(segs); - for (i = 0; i < segs.length; i++) { - seg = segs[i]; - // loop through levels, starting with the topmost, until the segment doesn't collide with other segments - for (j = 0; j < levels.length; j++) { - if (!isDaySegCollision(seg, levels[j])) { - break; - } - } - // `j` now holds the desired subrow index - seg.level = j; - seg.leftCol = isRtl ? (colCnt - 1 - seg.lastCol) : seg.firstCol; // for sorting only - seg.rightCol = isRtl ? (colCnt - 1 - seg.firstCol) : seg.lastCol // for sorting only - ; - (levels[j] || (levels[j] = [])).push(seg); - } - // order segments left-to-right. very important if calendar is RTL - for (j = 0; j < levels.length; j++) { - levels[j].sort(compareDaySegCols); - } - return levels; - }; - // Given a flat array of segments, return an array of sub-arrays, grouped by each segment's row - DayGridEventRenderer.prototype.groupSegRows = function (segs) { - var segRows = []; - var i; - for (i = 0; i < this.dayGrid.rowCnt; i++) { - segRows.push([]); - } - for (i = 0; i < segs.length; i++) { - segRows[segs[i].row].push(segs[i]); - } - return segRows; - }; - // Computes a default `displayEventEnd` value if one is not expliclty defined - DayGridEventRenderer.prototype.computeDisplayEventEnd = function () { - return this.dayGrid.colCnt === 1; // we'll likely have space if there's only one day - }; - return DayGridEventRenderer; -}(SimpleDayGridEventRenderer)); -// Computes whether two segments' columns collide. They are assumed to be in the same row. -function isDaySegCollision(seg, otherSegs) { - var i; - var otherSeg; - for (i = 0; i < otherSegs.length; i++) { - otherSeg = otherSegs[i]; - if (otherSeg.firstCol <= seg.lastCol && - otherSeg.lastCol >= seg.firstCol) { - return true; - } - } - return false; -} -// A cmp function for determining the leftmost event -function compareDaySegCols(a, b) { - return a.leftCol - b.leftCol; -} - -var DayGridMirrorRenderer = /** @class */ (function (_super) { - __extends(DayGridMirrorRenderer, _super); - function DayGridMirrorRenderer() { - return _super !== null && _super.apply(this, arguments) || this; - } - DayGridMirrorRenderer.prototype.attachSegs = function (segs, mirrorInfo) { - var sourceSeg = mirrorInfo.sourceSeg; - var rowStructs = this.rowStructs = this.renderSegRows(segs); - // inject each new event skeleton into each associated row - this.dayGrid.rowEls.forEach(function (rowNode, row) { - var skeletonEl = htmlToElement('
'); // will be absolutely positioned - var skeletonTopEl; - var skeletonTop; - // If there is an original segment, match the top position. Otherwise, put it at the row's top level - if (sourceSeg && sourceSeg.row === row) { - skeletonTopEl = sourceSeg.el; - } - else { - skeletonTopEl = rowNode.querySelector('.fc-content-skeleton tbody'); - if (!skeletonTopEl) { // when no events - skeletonTopEl = rowNode.querySelector('.fc-content-skeleton table'); - } - } - skeletonTop = skeletonTopEl.getBoundingClientRect().top - - rowNode.getBoundingClientRect().top; // the offsetParent origin - skeletonEl.style.top = skeletonTop + 'px'; - skeletonEl.querySelector('table').appendChild(rowStructs[row].tbodyEl); - rowNode.appendChild(skeletonEl); - }); - }; - return DayGridMirrorRenderer; -}(DayGridEventRenderer)); - -var EMPTY_CELL_HTML = ''; -var DayGridFillRenderer = /** @class */ (function (_super) { - __extends(DayGridFillRenderer, _super); - function DayGridFillRenderer(dayGrid) { - var _this = _super.call(this, dayGrid.context) || this; - _this.fillSegTag = 'td'; // override the default tag name - _this.dayGrid = dayGrid; - return _this; - } - DayGridFillRenderer.prototype.renderSegs = function (type, segs) { - // don't render timed background events - if (type === 'bgEvent') { - segs = segs.filter(function (seg) { - return seg.eventRange.def.allDay; - }); - } - _super.prototype.renderSegs.call(this, type, segs); - }; - DayGridFillRenderer.prototype.attachSegs = function (type, segs) { - var els = []; - var i; - var seg; - var skeletonEl; - for (i = 0; i < segs.length; i++) { - seg = segs[i]; - skeletonEl = this.renderFillRow(type, seg); - this.dayGrid.rowEls[seg.row].appendChild(skeletonEl); - els.push(skeletonEl); - } - return els; - }; - // Generates the HTML needed for one row of a fill. Requires the seg's el to be rendered. - DayGridFillRenderer.prototype.renderFillRow = function (type, seg) { - var dayGrid = this.dayGrid; - var colCnt = dayGrid.colCnt, isRtl = dayGrid.isRtl; - var leftCol = isRtl ? (colCnt - 1 - seg.lastCol) : seg.firstCol; - var rightCol = isRtl ? (colCnt - 1 - seg.firstCol) : seg.lastCol; - var startCol = leftCol; - var endCol = rightCol + 1; - var className; - var skeletonEl; - var trEl; - if (type === 'businessHours') { - className = 'bgevent'; - } - else { - className = type.toLowerCase(); - } - skeletonEl = htmlToElement('
' + - '
' + - '
'); - trEl = skeletonEl.getElementsByTagName('tr')[0]; - if (startCol > 0) { - appendToElement(trEl, - // will create (startCol + 1) td's - new Array(startCol + 1).join(EMPTY_CELL_HTML)); - } - seg.el.colSpan = endCol - startCol; - trEl.appendChild(seg.el); - if (endCol < colCnt) { - appendToElement(trEl, - // will create (colCnt - endCol) td's - new Array(colCnt - endCol + 1).join(EMPTY_CELL_HTML)); - } - var introHtml = dayGrid.renderProps.renderIntroHtml(); - if (introHtml) { - if (dayGrid.isRtl) { - appendToElement(trEl, introHtml); - } - else { - prependToElement(trEl, introHtml); - } - } - return skeletonEl; - }; - return DayGridFillRenderer; -}(FillRenderer)); - -var DayTile = /** @class */ (function (_super) { - __extends(DayTile, _super); - function DayTile(context, el) { - var _this = _super.call(this, context, el) || this; - var eventRenderer = _this.eventRenderer = new DayTileEventRenderer(_this); - var renderFrame = _this.renderFrame = memoizeRendering(_this._renderFrame); - _this.renderFgEvents = memoizeRendering(eventRenderer.renderSegs.bind(eventRenderer), eventRenderer.unrender.bind(eventRenderer), [renderFrame]); - _this.renderEventSelection = memoizeRendering(eventRenderer.selectByInstanceId.bind(eventRenderer), eventRenderer.unselectByInstanceId.bind(eventRenderer), [_this.renderFgEvents]); - _this.renderEventDrag = memoizeRendering(eventRenderer.hideByHash.bind(eventRenderer), eventRenderer.showByHash.bind(eventRenderer), [renderFrame]); - _this.renderEventResize = memoizeRendering(eventRenderer.hideByHash.bind(eventRenderer), eventRenderer.showByHash.bind(eventRenderer), [renderFrame]); - context.calendar.registerInteractiveComponent(_this, { - el: _this.el, - useEventCenter: false - }); - return _this; - } - DayTile.prototype.render = function (props) { - this.renderFrame(props.date); - this.renderFgEvents(props.fgSegs); - this.renderEventSelection(props.eventSelection); - this.renderEventDrag(props.eventDragInstances); - this.renderEventResize(props.eventResizeInstances); - }; - DayTile.prototype.destroy = function () { - _super.prototype.destroy.call(this); - this.renderFrame.unrender(); // should unrender everything else - this.calendar.unregisterInteractiveComponent(this); - }; - DayTile.prototype._renderFrame = function (date) { - var _a = this, theme = _a.theme, dateEnv = _a.dateEnv; - var title = dateEnv.format(date, createFormatter(this.opt('dayPopoverFormat')) // TODO: cache - ); - this.el.innerHTML = - '
' + - '' + - htmlEscape(title) + - '' + - '' + - '
' + - '
' + - '
' + - '
'; - this.segContainerEl = this.el.querySelector('.fc-event-container'); - }; - DayTile.prototype.queryHit = function (positionLeft, positionTop, elWidth, elHeight) { - var date = this.props.date; // HACK - if (positionLeft < elWidth && positionTop < elHeight) { - return { - component: this, - dateSpan: { - allDay: true, - range: { start: date, end: addDays(date, 1) } - }, - dayEl: this.el, - rect: { - left: 0, - top: 0, - right: elWidth, - bottom: elHeight - }, - layer: 1 - }; - } - }; - return DayTile; -}(DateComponent)); -var DayTileEventRenderer = /** @class */ (function (_super) { - __extends(DayTileEventRenderer, _super); - function DayTileEventRenderer(dayTile) { - var _this = _super.call(this, dayTile.context) || this; - _this.dayTile = dayTile; - return _this; - } - DayTileEventRenderer.prototype.attachSegs = function (segs) { - for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) { - var seg = segs_1[_i]; - this.dayTile.segContainerEl.appendChild(seg.el); - } - }; - DayTileEventRenderer.prototype.detachSegs = function (segs) { - for (var _i = 0, segs_2 = segs; _i < segs_2.length; _i++) { - var seg = segs_2[_i]; - removeElement(seg.el); - } - }; - return DayTileEventRenderer; -}(SimpleDayGridEventRenderer)); - -var DayBgRow = /** @class */ (function () { - function DayBgRow(context) { - this.context = context; - } - DayBgRow.prototype.renderHtml = function (props) { - var parts = []; - if (props.renderIntroHtml) { - parts.push(props.renderIntroHtml()); - } - for (var _i = 0, _a = props.cells; _i < _a.length; _i++) { - var cell = _a[_i]; - parts.push(renderCellHtml(cell.date, props.dateProfile, this.context, cell.htmlAttrs)); - } - if (!props.cells.length) { - parts.push(''); - } - if (this.context.options.dir === 'rtl') { - parts.reverse(); - } - return '' + parts.join('') + ''; - }; - return DayBgRow; -}()); -function renderCellHtml(date, dateProfile, context, otherAttrs) { - var dateEnv = context.dateEnv, theme = context.theme; - var isDateValid = rangeContainsMarker(dateProfile.activeRange, date); // TODO: called too frequently. cache somehow. - var classes = getDayClasses(date, dateProfile, context); - classes.unshift('fc-day', theme.getClass('widgetContent')); - return ''; -} - -var DAY_NUM_FORMAT = createFormatter({ day: 'numeric' }); -var WEEK_NUM_FORMAT = createFormatter({ week: 'numeric' }); -var DayGrid = /** @class */ (function (_super) { - __extends(DayGrid, _super); - function DayGrid(context, el, renderProps) { - var _this = _super.call(this, context, el) || this; - _this.bottomCoordPadding = 0; // hack for extending the hit area for the last row of the coordinate grid - _this.isCellSizesDirty = false; - var eventRenderer = _this.eventRenderer = new DayGridEventRenderer(_this); - var fillRenderer = _this.fillRenderer = new DayGridFillRenderer(_this); - _this.mirrorRenderer = new DayGridMirrorRenderer(_this); - var renderCells = _this.renderCells = memoizeRendering(_this._renderCells, _this._unrenderCells); - _this.renderBusinessHours = memoizeRendering(fillRenderer.renderSegs.bind(fillRenderer, 'businessHours'), fillRenderer.unrender.bind(fillRenderer, 'businessHours'), [renderCells]); - _this.renderDateSelection = memoizeRendering(fillRenderer.renderSegs.bind(fillRenderer, 'highlight'), fillRenderer.unrender.bind(fillRenderer, 'highlight'), [renderCells]); - _this.renderBgEvents = memoizeRendering(fillRenderer.renderSegs.bind(fillRenderer, 'bgEvent'), fillRenderer.unrender.bind(fillRenderer, 'bgEvent'), [renderCells]); - _this.renderFgEvents = memoizeRendering(eventRenderer.renderSegs.bind(eventRenderer), eventRenderer.unrender.bind(eventRenderer), [renderCells]); - _this.renderEventSelection = memoizeRendering(eventRenderer.selectByInstanceId.bind(eventRenderer), eventRenderer.unselectByInstanceId.bind(eventRenderer), [_this.renderFgEvents]); - _this.renderEventDrag = memoizeRendering(_this._renderEventDrag, _this._unrenderEventDrag, [renderCells]); - _this.renderEventResize = memoizeRendering(_this._renderEventResize, _this._unrenderEventResize, [renderCells]); - _this.renderProps = renderProps; - return _this; - } - DayGrid.prototype.render = function (props) { - var cells = props.cells; - this.rowCnt = cells.length; - this.colCnt = cells[0].length; - this.renderCells(cells, props.isRigid); - this.renderBusinessHours(props.businessHourSegs); - this.renderDateSelection(props.dateSelectionSegs); - this.renderBgEvents(props.bgEventSegs); - this.renderFgEvents(props.fgEventSegs); - this.renderEventSelection(props.eventSelection); - this.renderEventDrag(props.eventDrag); - this.renderEventResize(props.eventResize); - if (this.segPopoverTile) { - this.updateSegPopoverTile(); - } - }; - DayGrid.prototype.destroy = function () { - _super.prototype.destroy.call(this); - this.renderCells.unrender(); // will unrender everything else - }; - DayGrid.prototype.getCellRange = function (row, col) { - var start = this.props.cells[row][col].date; - var end = addDays(start, 1); - return { start: start, end: end }; - }; - DayGrid.prototype.updateSegPopoverTile = function (date, segs) { - var ownProps = this.props; - this.segPopoverTile.receiveProps({ - date: date || this.segPopoverTile.props.date, - fgSegs: segs || this.segPopoverTile.props.fgSegs, - eventSelection: ownProps.eventSelection, - eventDragInstances: ownProps.eventDrag ? ownProps.eventDrag.affectedInstances : null, - eventResizeInstances: ownProps.eventResize ? ownProps.eventResize.affectedInstances : null - }); - }; - /* Date Rendering - ------------------------------------------------------------------------------------------------------------------*/ - DayGrid.prototype._renderCells = function (cells, isRigid) { - var _a = this, view = _a.view, dateEnv = _a.dateEnv; - var _b = this, rowCnt = _b.rowCnt, colCnt = _b.colCnt; - var html = ''; - var row; - var col; - for (row = 0; row < rowCnt; row++) { - html += this.renderDayRowHtml(row, isRigid); - } - this.el.innerHTML = html; - this.rowEls = findElements(this.el, '.fc-row'); - this.cellEls = findElements(this.el, '.fc-day, .fc-disabled-day'); - if (this.isRtl) { - this.cellEls.reverse(); - } - this.rowPositions = new PositionCache(this.el, this.rowEls, false, true // vertical - ); - this.colPositions = new PositionCache(this.el, this.cellEls.slice(0, colCnt), // only the first row - true, false // horizontal - ); - // trigger dayRender with each cell's element - for (row = 0; row < rowCnt; row++) { - for (col = 0; col < colCnt; col++) { - this.publiclyTrigger('dayRender', [ - { - date: dateEnv.toDate(cells[row][col].date), - el: this.getCellEl(row, col), - view: view - } - ]); - } - } - this.isCellSizesDirty = true; - }; - DayGrid.prototype._unrenderCells = function () { - this.removeSegPopover(); - }; - // Generates the HTML for a single row, which is a div that wraps a table. - // `row` is the row number. - DayGrid.prototype.renderDayRowHtml = function (row, isRigid) { - var theme = this.theme; - var classes = ['fc-row', 'fc-week', theme.getClass('dayRow')]; - if (isRigid) { - classes.push('fc-rigid'); - } - var bgRow = new DayBgRow(this.context); - return '' + - '
' + - '
' + - '' + - bgRow.renderHtml({ - cells: this.props.cells[row], - dateProfile: this.props.dateProfile, - renderIntroHtml: this.renderProps.renderBgIntroHtml - }) + - '
' + - '
' + - '
' + - '' + - (this.getIsNumbersVisible() ? - '' + - this.renderNumberTrHtml(row) + - '' : - '') + - '
' + - '
' + - '
'; - }; - DayGrid.prototype.getIsNumbersVisible = function () { - return this.getIsDayNumbersVisible() || - this.renderProps.cellWeekNumbersVisible || - this.renderProps.colWeekNumbersVisible; - }; - DayGrid.prototype.getIsDayNumbersVisible = function () { - return this.rowCnt > 1; - }; - /* Grid Number Rendering - ------------------------------------------------------------------------------------------------------------------*/ - DayGrid.prototype.renderNumberTrHtml = function (row) { - var intro = this.renderProps.renderNumberIntroHtml(row, this); - return '' + - '' + - (this.isRtl ? '' : intro) + - this.renderNumberCellsHtml(row) + - (this.isRtl ? intro : '') + - ''; - }; - DayGrid.prototype.renderNumberCellsHtml = function (row) { - var htmls = []; - var col; - var date; - for (col = 0; col < this.colCnt; col++) { - date = this.props.cells[row][col].date; - htmls.push(this.renderNumberCellHtml(date)); - } - if (this.isRtl) { - htmls.reverse(); - } - return htmls.join(''); - }; - // Generates the HTML for the s of the "number" row in the DayGrid's content skeleton. - // The number row will only exist if either day numbers or week numbers are turned on. - DayGrid.prototype.renderNumberCellHtml = function (date) { - var _a = this, view = _a.view, dateEnv = _a.dateEnv; - var html = ''; - var isDateValid = rangeContainsMarker(this.props.dateProfile.activeRange, date); // TODO: called too frequently. cache somehow. - var isDayNumberVisible = this.getIsDayNumbersVisible() && isDateValid; - var classes; - var weekCalcFirstDow; - if (!isDayNumberVisible && !this.renderProps.cellWeekNumbersVisible) { - // no numbers in day cell (week number must be along the side) - return ''; // will create an empty space above events :( - } - classes = getDayClasses(date, this.props.dateProfile, this.context); - classes.unshift('fc-day-top'); - if (this.renderProps.cellWeekNumbersVisible) { - weekCalcFirstDow = dateEnv.weekDow; - } - html += ''; - if (this.renderProps.cellWeekNumbersVisible && (date.getUTCDay() === weekCalcFirstDow)) { - html += buildGotoAnchorHtml(view, { date: date, type: 'week' }, { 'class': 'fc-week-number' }, dateEnv.format(date, WEEK_NUM_FORMAT) // inner HTML - ); - } - if (isDayNumberVisible) { - html += buildGotoAnchorHtml(view, date, { 'class': 'fc-day-number' }, dateEnv.format(date, DAY_NUM_FORMAT) // inner HTML - ); - } - html += ''; - return html; - }; - /* Sizing - ------------------------------------------------------------------------------------------------------------------*/ - DayGrid.prototype.updateSize = function (isResize) { - var _a = this, fillRenderer = _a.fillRenderer, eventRenderer = _a.eventRenderer, mirrorRenderer = _a.mirrorRenderer; - if (isResize || - this.isCellSizesDirty || - this.view.calendar.isEventsUpdated // hack - ) { - this.buildPositionCaches(); - this.isCellSizesDirty = false; - } - fillRenderer.computeSizes(isResize); - eventRenderer.computeSizes(isResize); - mirrorRenderer.computeSizes(isResize); - fillRenderer.assignSizes(isResize); - eventRenderer.assignSizes(isResize); - mirrorRenderer.assignSizes(isResize); - }; - DayGrid.prototype.buildPositionCaches = function () { - this.buildColPositions(); - this.buildRowPositions(); - }; - DayGrid.prototype.buildColPositions = function () { - this.colPositions.build(); - }; - DayGrid.prototype.buildRowPositions = function () { - this.rowPositions.build(); - this.rowPositions.bottoms[this.rowCnt - 1] += this.bottomCoordPadding; // hack - }; - /* Hit System - ------------------------------------------------------------------------------------------------------------------*/ - DayGrid.prototype.positionToHit = function (leftPosition, topPosition) { - var _a = this, colPositions = _a.colPositions, rowPositions = _a.rowPositions; - var col = colPositions.leftToIndex(leftPosition); - var row = rowPositions.topToIndex(topPosition); - if (row != null && col != null) { - return { - row: row, - col: col, - dateSpan: { - range: this.getCellRange(row, col), - allDay: true - }, - dayEl: this.getCellEl(row, col), - relativeRect: { - left: colPositions.lefts[col], - right: colPositions.rights[col], - top: rowPositions.tops[row], - bottom: rowPositions.bottoms[row] - } - }; - } - }; - /* Cell System - ------------------------------------------------------------------------------------------------------------------*/ - // FYI: the first column is the leftmost column, regardless of date - DayGrid.prototype.getCellEl = function (row, col) { - return this.cellEls[row * this.colCnt + col]; - }; - /* Event Drag Visualization - ------------------------------------------------------------------------------------------------------------------*/ - DayGrid.prototype._renderEventDrag = function (state) { - if (state) { - this.eventRenderer.hideByHash(state.affectedInstances); - this.fillRenderer.renderSegs('highlight', state.segs); - } - }; - DayGrid.prototype._unrenderEventDrag = function (state) { - if (state) { - this.eventRenderer.showByHash(state.affectedInstances); - this.fillRenderer.unrender('highlight'); - } - }; - /* Event Resize Visualization - ------------------------------------------------------------------------------------------------------------------*/ - DayGrid.prototype._renderEventResize = function (state) { - if (state) { - this.eventRenderer.hideByHash(state.affectedInstances); - this.fillRenderer.renderSegs('highlight', state.segs); - this.mirrorRenderer.renderSegs(state.segs, { isResizing: true, sourceSeg: state.sourceSeg }); - } - }; - DayGrid.prototype._unrenderEventResize = function (state) { - if (state) { - this.eventRenderer.showByHash(state.affectedInstances); - this.fillRenderer.unrender('highlight'); - this.mirrorRenderer.unrender(state.segs, { isResizing: true, sourceSeg: state.sourceSeg }); - } - }; - /* More+ Link Popover - ------------------------------------------------------------------------------------------------------------------*/ - DayGrid.prototype.removeSegPopover = function () { - if (this.segPopover) { - this.segPopover.hide(); // in handler, will call segPopover's removeElement - } - }; - // Limits the number of "levels" (vertically stacking layers of events) for each row of the grid. - // `levelLimit` can be false (don't limit), a number, or true (should be computed). - DayGrid.prototype.limitRows = function (levelLimit) { - var rowStructs = this.eventRenderer.rowStructs || []; - var row; // row # - var rowLevelLimit; - for (row = 0; row < rowStructs.length; row++) { - this.unlimitRow(row); - if (!levelLimit) { - rowLevelLimit = false; - } - else if (typeof levelLimit === 'number') { - rowLevelLimit = levelLimit; - } - else { - rowLevelLimit = this.computeRowLevelLimit(row); - } - if (rowLevelLimit !== false) { - this.limitRow(row, rowLevelLimit); - } - } - }; - // Computes the number of levels a row will accomodate without going outside its bounds. - // Assumes the row is "rigid" (maintains a constant height regardless of what is inside). - // `row` is the row number. - DayGrid.prototype.computeRowLevelLimit = function (row) { - var rowEl = this.rowEls[row]; // the containing "fake" row div - var rowBottom = rowEl.getBoundingClientRect().bottom; // relative to viewport! - var trEls = findChildren(this.eventRenderer.rowStructs[row].tbodyEl); - var i; - var trEl; - // Reveal one level at a time and stop when we find one out of bounds - for (i = 0; i < trEls.length; i++) { - trEl = trEls[i]; - trEl.classList.remove('fc-limited'); // reset to original state (reveal) - if (trEl.getBoundingClientRect().bottom > rowBottom) { - return i; - } - } - return false; // should not limit at all - }; - // Limits the given grid row to the maximum number of levels and injects "more" links if necessary. - // `row` is the row number. - // `levelLimit` is a number for the maximum (inclusive) number of levels allowed. - DayGrid.prototype.limitRow = function (row, levelLimit) { - var _this = this; - var _a = this, colCnt = _a.colCnt, isRtl = _a.isRtl; - var rowStruct = this.eventRenderer.rowStructs[row]; - var moreNodes = []; // array of "more" links and DOM nodes - var col = 0; // col #, left-to-right (not chronologically) - var levelSegs; // array of segment objects in the last allowable level, ordered left-to-right - var cellMatrix; // a matrix (by level, then column) of all elements in the row - var limitedNodes; // array of temporarily hidden level and segment DOM nodes - var i; - var seg; - var segsBelow; // array of segment objects below `seg` in the current `col` - var totalSegsBelow; // total number of segments below `seg` in any of the columns `seg` occupies - var colSegsBelow; // array of segment arrays, below seg, one for each column (offset from segs's first column) - var td; - var rowSpan; - var segMoreNodes; // array of "more" cells that will stand-in for the current seg's cell - var j; - var moreTd; - var moreWrap; - var moreLink; - // Iterates through empty level cells and places "more" links inside if need be - var emptyCellsUntil = function (endCol) { - while (col < endCol) { - segsBelow = _this.getCellSegs(row, col, levelLimit); - if (segsBelow.length) { - td = cellMatrix[levelLimit - 1][col]; - moreLink = _this.renderMoreLink(row, col, segsBelow); - moreWrap = createElement('div', null, moreLink); - td.appendChild(moreWrap); - moreNodes.push(moreWrap); - } - col++; - } - }; - if (levelLimit && levelLimit < rowStruct.segLevels.length) { // is it actually over the limit? - levelSegs = rowStruct.segLevels[levelLimit - 1]; - cellMatrix = rowStruct.cellMatrix; - limitedNodes = findChildren(rowStruct.tbodyEl).slice(levelLimit); // get level elements past the limit - limitedNodes.forEach(function (node) { - node.classList.add('fc-limited'); // hide elements and get a simple DOM-nodes array - }); - // iterate though segments in the last allowable level - for (i = 0; i < levelSegs.length; i++) { - seg = levelSegs[i]; - var leftCol = isRtl ? (colCnt - 1 - seg.lastCol) : seg.firstCol; - var rightCol = isRtl ? (colCnt - 1 - seg.firstCol) : seg.lastCol; - emptyCellsUntil(leftCol); // process empty cells before the segment - // determine *all* segments below `seg` that occupy the same columns - colSegsBelow = []; - totalSegsBelow = 0; - while (col <= rightCol) { - segsBelow = this.getCellSegs(row, col, levelLimit); - colSegsBelow.push(segsBelow); - totalSegsBelow += segsBelow.length; - col++; - } - if (totalSegsBelow) { // do we need to replace this segment with one or many "more" links? - td = cellMatrix[levelLimit - 1][leftCol]; // the segment's parent cell - rowSpan = td.rowSpan || 1; - segMoreNodes = []; - // make a replacement for each column the segment occupies. will be one for each colspan - for (j = 0; j < colSegsBelow.length; j++) { - moreTd = createElement('td', { className: 'fc-more-cell', rowSpan: rowSpan }); - segsBelow = colSegsBelow[j]; - moreLink = this.renderMoreLink(row, leftCol + j, [seg].concat(segsBelow) // count seg as hidden too - ); - moreWrap = createElement('div', null, moreLink); - moreTd.appendChild(moreWrap); - segMoreNodes.push(moreTd); - moreNodes.push(moreTd); - } - td.classList.add('fc-limited'); - insertAfterElement(td, segMoreNodes); - limitedNodes.push(td); - } - } - emptyCellsUntil(this.colCnt); // finish off the level - rowStruct.moreEls = moreNodes; // for easy undoing later - rowStruct.limitedEls = limitedNodes; // for easy undoing later - } - }; - // Reveals all levels and removes all "more"-related elements for a grid's row. - // `row` is a row number. - DayGrid.prototype.unlimitRow = function (row) { - var rowStruct = this.eventRenderer.rowStructs[row]; - if (rowStruct.moreEls) { - rowStruct.moreEls.forEach(removeElement); - rowStruct.moreEls = null; - } - if (rowStruct.limitedEls) { - rowStruct.limitedEls.forEach(function (limitedEl) { - limitedEl.classList.remove('fc-limited'); - }); - rowStruct.limitedEls = null; - } - }; - // Renders an element that represents hidden event element for a cell. - // Responsible for attaching click handler as well. - DayGrid.prototype.renderMoreLink = function (row, col, hiddenSegs) { - var _this = this; - var _a = this, view = _a.view, dateEnv = _a.dateEnv; - var a = createElement('a', { className: 'fc-more' }); - a.innerText = this.getMoreLinkText(hiddenSegs.length); - a.addEventListener('click', function (ev) { - var clickOption = _this.opt('eventLimitClick'); - var _col = _this.isRtl ? _this.colCnt - col - 1 : col; // HACK: props.cells has different dir system? - var date = _this.props.cells[row][_col].date; - var moreEl = ev.currentTarget; - var dayEl = _this.getCellEl(row, col); - var allSegs = _this.getCellSegs(row, col); - // rescope the segments to be within the cell's date - var reslicedAllSegs = _this.resliceDaySegs(allSegs, date); - var reslicedHiddenSegs = _this.resliceDaySegs(hiddenSegs, date); - if (typeof clickOption === 'function') { - // the returned value can be an atomic option - clickOption = _this.publiclyTrigger('eventLimitClick', [ - { - date: dateEnv.toDate(date), - allDay: true, - dayEl: dayEl, - moreEl: moreEl, - segs: reslicedAllSegs, - hiddenSegs: reslicedHiddenSegs, - jsEvent: ev, - view: view - } - ]); - } - if (clickOption === 'popover') { - _this.showSegPopover(row, col, moreEl, reslicedAllSegs); - } - else if (typeof clickOption === 'string') { // a view name - view.calendar.zoomTo(date, clickOption); - } - }); - return a; - }; - // Reveals the popover that displays all events within a cell - DayGrid.prototype.showSegPopover = function (row, col, moreLink, segs) { - var _this = this; - var _a = this, calendar = _a.calendar, view = _a.view, theme = _a.theme; - var _col = this.isRtl ? this.colCnt - col - 1 : col; // HACK: props.cells has different dir system? - var moreWrap = moreLink.parentNode; // the
wrapper around the - var topEl; // the element we want to match the top coordinate of - var options; - if (this.rowCnt === 1) { - topEl = view.el; // will cause the popover to cover any sort of header - } - else { - topEl = this.rowEls[row]; // will align with top of row - } - options = { - className: 'fc-more-popover ' + theme.getClass('popover'), - parentEl: view.el, - top: computeRect(topEl).top, - autoHide: true, - content: function (el) { - _this.segPopoverTile = new DayTile(_this.context, el); - _this.updateSegPopoverTile(_this.props.cells[row][_col].date, segs); - }, - hide: function () { - _this.segPopoverTile.destroy(); - _this.segPopoverTile = null; - _this.segPopover.destroy(); - _this.segPopover = null; - } - }; - // Determine horizontal coordinate. - // We use the moreWrap instead of the to avoid border confusion. - if (this.isRtl) { - options.right = computeRect(moreWrap).right + 1; // +1 to be over cell border - } - else { - options.left = computeRect(moreWrap).left - 1; // -1 to be over cell border - } - this.segPopover = new Popover(options); - this.segPopover.show(); - calendar.releaseAfterSizingTriggers(); // hack for eventPositioned - }; - // Given the events within an array of segment objects, reslice them to be in a single day - DayGrid.prototype.resliceDaySegs = function (segs, dayDate) { - var dayStart = dayDate; - var dayEnd = addDays(dayStart, 1); - var dayRange = { start: dayStart, end: dayEnd }; - var newSegs = []; - for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) { - var seg = segs_1[_i]; - var eventRange = seg.eventRange; - var origRange = eventRange.range; - var slicedRange = intersectRanges(origRange, dayRange); - if (slicedRange) { - newSegs.push(__assign({}, seg, { eventRange: { - def: eventRange.def, - ui: __assign({}, eventRange.ui, { durationEditable: false }), - instance: eventRange.instance, - range: slicedRange - }, isStart: seg.isStart && slicedRange.start.valueOf() === origRange.start.valueOf(), isEnd: seg.isEnd && slicedRange.end.valueOf() === origRange.end.valueOf() })); - } - } - return newSegs; - }; - // Generates the text that should be inside a "more" link, given the number of events it represents - DayGrid.prototype.getMoreLinkText = function (num) { - var opt = this.opt('eventLimitText'); - if (typeof opt === 'function') { - return opt(num); - } - else { - return '+' + num + ' ' + opt; - } - }; - // Returns segments within a given cell. - // If `startLevel` is specified, returns only events including and below that level. Otherwise returns all segs. - DayGrid.prototype.getCellSegs = function (row, col, startLevel) { - var segMatrix = this.eventRenderer.rowStructs[row].segMatrix; - var level = startLevel || 0; - var segs = []; - var seg; - while (level < segMatrix.length) { - seg = segMatrix[level][col]; - if (seg) { - segs.push(seg); - } - level++; - } - return segs; - }; - return DayGrid; -}(DateComponent)); - -var WEEK_NUM_FORMAT$1 = createFormatter({ week: 'numeric' }); -/* An abstract class for the daygrid views, as well as month view. Renders one or more rows of day cells. -----------------------------------------------------------------------------------------------------------------------*/ -// It is a manager for a DayGrid subcomponent, which does most of the heavy lifting. -// It is responsible for managing width/height. -var DayGridView = /** @class */ (function (_super) { - __extends(DayGridView, _super); - function DayGridView(context, viewSpec, dateProfileGenerator, parentEl) { - var _this = _super.call(this, context, viewSpec, dateProfileGenerator, parentEl) || this; - /* Header Rendering - ------------------------------------------------------------------------------------------------------------------*/ - // Generates the HTML that will go before the day-of week header cells - _this.renderHeadIntroHtml = function () { - var theme = _this.theme; - if (_this.colWeekNumbersVisible) { - return '' + - '' + - '' + // needed for matchCellWidths - htmlEscape(_this.opt('weekLabel')) + - '' + - ''; - } - return ''; - }; - /* Day Grid Rendering - ------------------------------------------------------------------------------------------------------------------*/ - // Generates the HTML that will go before content-skeleton cells that display the day/week numbers - _this.renderDayGridNumberIntroHtml = function (row, dayGrid) { - var dateEnv = _this.dateEnv; - var weekStart = dayGrid.props.cells[row][0].date; - if (_this.colWeekNumbersVisible) { - return '' + - '' + - buildGotoAnchorHtml(// aside from link, important for matchCellWidths - _this, { date: weekStart, type: 'week', forceOff: dayGrid.colCnt === 1 }, dateEnv.format(weekStart, WEEK_NUM_FORMAT$1) // inner HTML - ) + - ''; - } - return ''; - }; - // Generates the HTML that goes before the day bg cells for each day-row - _this.renderDayGridBgIntroHtml = function () { - var theme = _this.theme; - if (_this.colWeekNumbersVisible) { - return ''; - } - return ''; - }; - // Generates the HTML that goes before every other type of row generated by DayGrid. - // Affects mirror-skeleton and highlight-skeleton rows. - _this.renderDayGridIntroHtml = function () { - if (_this.colWeekNumbersVisible) { - return ''; - } - return ''; - }; - _this.el.classList.add('fc-dayGrid-view'); - _this.el.innerHTML = _this.renderSkeletonHtml(); - _this.scroller = new ScrollComponent('hidden', // overflow x - 'auto' // overflow y - ); - var dayGridContainerEl = _this.scroller.el; - _this.el.querySelector('.fc-body > tr > td').appendChild(dayGridContainerEl); - dayGridContainerEl.classList.add('fc-day-grid-container'); - var dayGridEl = createElement('div', { className: 'fc-day-grid' }); - dayGridContainerEl.appendChild(dayGridEl); - var cellWeekNumbersVisible; - if (_this.opt('weekNumbers')) { - if (_this.opt('weekNumbersWithinDays')) { - cellWeekNumbersVisible = true; - _this.colWeekNumbersVisible = false; - } - else { - cellWeekNumbersVisible = false; - _this.colWeekNumbersVisible = true; - } - } - else { - _this.colWeekNumbersVisible = false; - cellWeekNumbersVisible = false; - } - _this.dayGrid = new DayGrid(_this.context, dayGridEl, { - renderNumberIntroHtml: _this.renderDayGridNumberIntroHtml, - renderBgIntroHtml: _this.renderDayGridBgIntroHtml, - renderIntroHtml: _this.renderDayGridIntroHtml, - colWeekNumbersVisible: _this.colWeekNumbersVisible, - cellWeekNumbersVisible: cellWeekNumbersVisible - }); - return _this; - } - DayGridView.prototype.destroy = function () { - _super.prototype.destroy.call(this); - this.dayGrid.destroy(); - this.scroller.destroy(); - }; - // Builds the HTML skeleton for the view. - // The day-grid component will render inside of a container defined by this HTML. - DayGridView.prototype.renderSkeletonHtml = function () { - var theme = this.theme; - return '' + - '' + - (this.opt('columnHeader') ? - '' + - '' + - '' + - '' + - '' : - '') + - '' + - '' + - '' + - '' + - '' + - '
 
'; - }; - // Generates an HTML attribute string for setting the width of the week number column, if it is known - DayGridView.prototype.weekNumberStyleAttr = function () { - if (this.weekNumberWidth != null) { - return 'style="width:' + this.weekNumberWidth + 'px"'; - } - return ''; - }; - // Determines whether each row should have a constant height - DayGridView.prototype.hasRigidRows = function () { - var eventLimit = this.opt('eventLimit'); - return eventLimit && typeof eventLimit !== 'number'; - }; - /* Dimensions - ------------------------------------------------------------------------------------------------------------------*/ - DayGridView.prototype.updateSize = function (isResize, viewHeight, isAuto) { - _super.prototype.updateSize.call(this, isResize, viewHeight, isAuto); // will call updateBaseSize. important that executes first - this.dayGrid.updateSize(isResize); - }; - // Refreshes the horizontal dimensions of the view - DayGridView.prototype.updateBaseSize = function (isResize, viewHeight, isAuto) { - var dayGrid = this.dayGrid; - var eventLimit = this.opt('eventLimit'); - var headRowEl = this.header ? this.header.el : null; // HACK - var scrollerHeight; - var scrollbarWidths; - // hack to give the view some height prior to dayGrid's columns being rendered - // TODO: separate setting height from scroller VS dayGrid. - if (!dayGrid.rowEls) { - if (!isAuto) { - scrollerHeight = this.computeScrollerHeight(viewHeight); - this.scroller.setHeight(scrollerHeight); - } - return; - } - if (this.colWeekNumbersVisible) { - // Make sure all week number cells running down the side have the same width. - this.weekNumberWidth = matchCellWidths(findElements(this.el, '.fc-week-number')); - } - // reset all heights to be natural - this.scroller.clear(); - if (headRowEl) { - uncompensateScroll(headRowEl); - } - dayGrid.removeSegPopover(); // kill the "more" popover if displayed - // is the event limit a constant level number? - if (eventLimit && typeof eventLimit === 'number') { - dayGrid.limitRows(eventLimit); // limit the levels first so the height can redistribute after - } - // distribute the height to the rows - // (viewHeight is a "recommended" value if isAuto) - scrollerHeight = this.computeScrollerHeight(viewHeight); - this.setGridHeight(scrollerHeight, isAuto); - // is the event limit dynamically calculated? - if (eventLimit && typeof eventLimit !== 'number') { - dayGrid.limitRows(eventLimit); // limit the levels after the grid's row heights have been set - } - if (!isAuto) { // should we force dimensions of the scroll container? - this.scroller.setHeight(scrollerHeight); - scrollbarWidths = this.scroller.getScrollbarWidths(); - if (scrollbarWidths.left || scrollbarWidths.right) { // using scrollbars? - if (headRowEl) { - compensateScroll(headRowEl, scrollbarWidths); - } - // doing the scrollbar compensation might have created text overflow which created more height. redo - scrollerHeight = this.computeScrollerHeight(viewHeight); - this.scroller.setHeight(scrollerHeight); - } - // guarantees the same scrollbar widths - this.scroller.lockOverflow(scrollbarWidths); - } - }; - // given a desired total height of the view, returns what the height of the scroller should be - DayGridView.prototype.computeScrollerHeight = function (viewHeight) { - return viewHeight - - subtractInnerElHeight(this.el, this.scroller.el); // everything that's NOT the scroller - }; - // Sets the height of just the DayGrid component in this view - DayGridView.prototype.setGridHeight = function (height, isAuto) { - if (this.opt('monthMode')) { - // if auto, make the height of each row the height that it would be if there were 6 weeks - if (isAuto) { - height *= this.dayGrid.rowCnt / 6; - } - distributeHeight(this.dayGrid.rowEls, height, !isAuto); // if auto, don't compensate for height-hogging rows - } - else { - if (isAuto) { - undistributeHeight(this.dayGrid.rowEls); // let the rows be their natural height with no expanding - } - else { - distributeHeight(this.dayGrid.rowEls, height, true); // true = compensate for height-hogging rows - } - } - }; - /* Scroll - ------------------------------------------------------------------------------------------------------------------*/ - DayGridView.prototype.computeDateScroll = function (duration) { - return { top: 0 }; - }; - DayGridView.prototype.queryDateScroll = function () { - return { top: this.scroller.getScrollTop() }; - }; - DayGridView.prototype.applyDateScroll = function (scroll) { - if (scroll.top !== undefined) { - this.scroller.setScrollTop(scroll.top); - } - }; - return DayGridView; -}(View)); -DayGridView.prototype.dateProfileGeneratorClass = DayGridDateProfileGenerator; - -var SimpleDayGrid = /** @class */ (function (_super) { - __extends(SimpleDayGrid, _super); - function SimpleDayGrid(context, dayGrid) { - var _this = _super.call(this, context, dayGrid.el) || this; - _this.slicer = new DayGridSlicer(); - _this.dayGrid = dayGrid; - context.calendar.registerInteractiveComponent(_this, { el: _this.dayGrid.el }); - return _this; - } - SimpleDayGrid.prototype.destroy = function () { - _super.prototype.destroy.call(this); - this.calendar.unregisterInteractiveComponent(this); - }; - SimpleDayGrid.prototype.render = function (props) { - var dayGrid = this.dayGrid; - var dateProfile = props.dateProfile, dayTable = props.dayTable; - dayGrid.receiveProps(__assign({}, this.slicer.sliceProps(props, dateProfile, props.nextDayThreshold, dayGrid, dayTable), { dateProfile: dateProfile, cells: dayTable.cells, isRigid: props.isRigid })); - }; - SimpleDayGrid.prototype.buildPositionCaches = function () { - this.dayGrid.buildPositionCaches(); - }; - SimpleDayGrid.prototype.queryHit = function (positionLeft, positionTop) { - var rawHit = this.dayGrid.positionToHit(positionLeft, positionTop); - if (rawHit) { - return { - component: this.dayGrid, - dateSpan: rawHit.dateSpan, - dayEl: rawHit.dayEl, - rect: { - left: rawHit.relativeRect.left, - right: rawHit.relativeRect.right, - top: rawHit.relativeRect.top, - bottom: rawHit.relativeRect.bottom - }, - layer: 0 - }; - } - }; - return SimpleDayGrid; -}(DateComponent)); -var DayGridSlicer = /** @class */ (function (_super) { - __extends(DayGridSlicer, _super); - function DayGridSlicer() { - return _super !== null && _super.apply(this, arguments) || this; - } - DayGridSlicer.prototype.sliceRange = function (dateRange, dayTable) { - return dayTable.sliceRange(dateRange); - }; - return DayGridSlicer; -}(Slicer)); - -var DayGridView$1 = /** @class */ (function (_super) { - __extends(DayGridView, _super); - function DayGridView(_context, viewSpec, dateProfileGenerator, parentEl) { - var _this = _super.call(this, _context, viewSpec, dateProfileGenerator, parentEl) || this; - _this.buildDayTable = memoize(buildDayTable); - if (_this.opt('columnHeader')) { - _this.header = new DayHeader(_this.context, _this.el.querySelector('.fc-head-container')); - } - _this.simpleDayGrid = new SimpleDayGrid(_this.context, _this.dayGrid); - return _this; - } - DayGridView.prototype.destroy = function () { - _super.prototype.destroy.call(this); - if (this.header) { - this.header.destroy(); - } - this.simpleDayGrid.destroy(); - }; - DayGridView.prototype.render = function (props) { - _super.prototype.render.call(this, props); - var dateProfile = this.props.dateProfile; - var dayTable = this.dayTable = - this.buildDayTable(dateProfile, this.dateProfileGenerator); - if (this.header) { - this.header.receiveProps({ - dateProfile: dateProfile, - dates: dayTable.headerDates, - datesRepDistinctDays: dayTable.rowCnt === 1, - renderIntroHtml: this.renderHeadIntroHtml - }); - } - this.simpleDayGrid.receiveProps({ - dateProfile: dateProfile, - dayTable: dayTable, - businessHours: props.businessHours, - dateSelection: props.dateSelection, - eventStore: props.eventStore, - eventUiBases: props.eventUiBases, - eventSelection: props.eventSelection, - eventDrag: props.eventDrag, - eventResize: props.eventResize, - isRigid: this.hasRigidRows(), - nextDayThreshold: this.nextDayThreshold - }); - }; - return DayGridView; -}(DayGridView)); -function buildDayTable(dateProfile, dateProfileGenerator) { - var daySeries = new DaySeries(dateProfile.renderRange, dateProfileGenerator); - return new DayTable(daySeries, /year|month|week/.test(dateProfile.currentRangeUnit)); -} - -var main = createPlugin({ - defaultView: 'dayGridMonth', - views: { - dayGrid: DayGridView$1, - dayGridDay: { - type: 'dayGrid', - duration: { days: 1 } - }, - dayGridWeek: { - type: 'dayGrid', - duration: { weeks: 1 } - }, - dayGridMonth: { - type: 'dayGrid', - duration: { months: 1 }, - monthMode: true, - fixedWeekCount: true - } - } -}); - -export default main; -export { DayGridView as AbstractDayGridView, DayBgRow, DayGrid, DayGridSlicer, DayGridView$1 as DayGridView, SimpleDayGrid, buildDayTable as buildBasicDayTable }; diff --git a/htdocs/public/high/plugins/fullcalendar/packages/daygrid/main.js b/htdocs/public/high/plugins/fullcalendar/packages/daygrid/main.js deleted file mode 100644 index d1cc407f..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/daygrid/main.js +++ /dev/null @@ -1,1641 +0,0 @@ -/*! -FullCalendar Day Grid Plugin v4.3.0 -Docs & License: https://fullcalendar.io/ -(c) 2019 Adam Shaw -*/ - -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@fullcalendar/core')) : - typeof define === 'function' && define.amd ? define(['exports', '@fullcalendar/core'], factory) : - (global = global || self, factory(global.FullCalendarDayGrid = {}, global.FullCalendar)); -}(this, function (exports, core) { 'use strict'; - - /*! ***************************************************************************** - Copyright (c) Microsoft Corporation. All rights reserved. - Licensed under the Apache License, Version 2.0 (the "License"); you may not use - this file except in compliance with the License. You may obtain a copy of the - License at http://www.apache.org/licenses/LICENSE-2.0 - - THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED - WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, - MERCHANTABLITY OR NON-INFRINGEMENT. - - See the Apache Version 2.0 License for specific language governing permissions - and limitations under the License. - ***************************************************************************** */ - /* global Reflect, Promise */ - - var extendStatics = function(d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - - function __extends(d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - } - - var __assign = function() { - __assign = Object.assign || function __assign(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); - }; - - var DayGridDateProfileGenerator = /** @class */ (function (_super) { - __extends(DayGridDateProfileGenerator, _super); - function DayGridDateProfileGenerator() { - return _super !== null && _super.apply(this, arguments) || this; - } - // Computes the date range that will be rendered. - DayGridDateProfileGenerator.prototype.buildRenderRange = function (currentRange, currentRangeUnit, isRangeAllDay) { - var dateEnv = this.dateEnv; - var renderRange = _super.prototype.buildRenderRange.call(this, currentRange, currentRangeUnit, isRangeAllDay); - var start = renderRange.start; - var end = renderRange.end; - var endOfWeek; - // year and month views should be aligned with weeks. this is already done for week - if (/^(year|month)$/.test(currentRangeUnit)) { - start = dateEnv.startOfWeek(start); - // make end-of-week if not already - endOfWeek = dateEnv.startOfWeek(end); - if (endOfWeek.valueOf() !== end.valueOf()) { - end = core.addWeeks(endOfWeek, 1); - } - } - // ensure 6 weeks - if (this.options.monthMode && - this.options.fixedWeekCount) { - var rowCnt = Math.ceil(// could be partial weeks due to hiddenDays - core.diffWeeks(start, end)); - end = core.addWeeks(end, 6 - rowCnt); - } - return { start: start, end: end }; - }; - return DayGridDateProfileGenerator; - }(core.DateProfileGenerator)); - - /* A rectangular panel that is absolutely positioned over other content - ------------------------------------------------------------------------------------------------------------------------ - Options: - - className (string) - - content (HTML string, element, or element array) - - parentEl - - top - - left - - right (the x coord of where the right edge should be. not a "CSS" right) - - autoHide (boolean) - - show (callback) - - hide (callback) - */ - var Popover = /** @class */ (function () { - function Popover(options) { - var _this = this; - this.isHidden = true; - this.margin = 10; // the space required between the popover and the edges of the scroll container - // Triggered when the user clicks *anywhere* in the document, for the autoHide feature - this.documentMousedown = function (ev) { - // only hide the popover if the click happened outside the popover - if (_this.el && !_this.el.contains(ev.target)) { - _this.hide(); - } - }; - this.options = options; - } - // Shows the popover on the specified position. Renders it if not already - Popover.prototype.show = function () { - if (this.isHidden) { - if (!this.el) { - this.render(); - } - this.el.style.display = ''; - this.position(); - this.isHidden = false; - this.trigger('show'); - } - }; - // Hides the popover, through CSS, but does not remove it from the DOM - Popover.prototype.hide = function () { - if (!this.isHidden) { - this.el.style.display = 'none'; - this.isHidden = true; - this.trigger('hide'); - } - }; - // Creates `this.el` and renders content inside of it - Popover.prototype.render = function () { - var _this = this; - var options = this.options; - var el = this.el = core.createElement('div', { - className: 'fc-popover ' + (options.className || ''), - style: { - top: '0', - left: '0' - } - }); - if (typeof options.content === 'function') { - options.content(el); - } - options.parentEl.appendChild(el); - // when a click happens on anything inside with a 'fc-close' className, hide the popover - core.listenBySelector(el, 'click', '.fc-close', function (ev) { - _this.hide(); - }); - if (options.autoHide) { - document.addEventListener('mousedown', this.documentMousedown); - } - }; - // Hides and unregisters any handlers - Popover.prototype.destroy = function () { - this.hide(); - if (this.el) { - core.removeElement(this.el); - this.el = null; - } - document.removeEventListener('mousedown', this.documentMousedown); - }; - // Positions the popover optimally, using the top/left/right options - Popover.prototype.position = function () { - var options = this.options; - var el = this.el; - var elDims = el.getBoundingClientRect(); // only used for width,height - var origin = core.computeRect(el.offsetParent); - var clippingRect = core.computeClippingRect(options.parentEl); - var top; // the "position" (not "offset") values for the popover - var left; // - // compute top and left - top = options.top || 0; - if (options.left !== undefined) { - left = options.left; - } - else if (options.right !== undefined) { - left = options.right - elDims.width; // derive the left value from the right value - } - else { - left = 0; - } - // constrain to the view port. if constrained by two edges, give precedence to top/left - top = Math.min(top, clippingRect.bottom - elDims.height - this.margin); - top = Math.max(top, clippingRect.top + this.margin); - left = Math.min(left, clippingRect.right - elDims.width - this.margin); - left = Math.max(left, clippingRect.left + this.margin); - core.applyStyle(el, { - top: top - origin.top, - left: left - origin.left - }); - }; - // Triggers a callback. Calls a function in the option hash of the same name. - // Arguments beyond the first `name` are forwarded on. - // TODO: better code reuse for this. Repeat code - // can kill this??? - Popover.prototype.trigger = function (name) { - if (this.options[name]) { - this.options[name].apply(this, Array.prototype.slice.call(arguments, 1)); - } - }; - return Popover; - }()); - - /* Event-rendering methods for the DayGrid class - ----------------------------------------------------------------------------------------------------------------------*/ - // "Simple" is bad a name. has nothing to do with SimpleDayGrid - var SimpleDayGridEventRenderer = /** @class */ (function (_super) { - __extends(SimpleDayGridEventRenderer, _super); - function SimpleDayGridEventRenderer() { - return _super !== null && _super.apply(this, arguments) || this; - } - // Builds the HTML to be used for the default element for an individual segment - SimpleDayGridEventRenderer.prototype.renderSegHtml = function (seg, mirrorInfo) { - var _a = this.context, view = _a.view, options = _a.options; - var eventRange = seg.eventRange; - var eventDef = eventRange.def; - var eventUi = eventRange.ui; - var allDay = eventDef.allDay; - var isDraggable = view.computeEventDraggable(eventDef, eventUi); - var isResizableFromStart = allDay && seg.isStart && view.computeEventStartResizable(eventDef, eventUi); - var isResizableFromEnd = allDay && seg.isEnd && view.computeEventEndResizable(eventDef, eventUi); - var classes = this.getSegClasses(seg, isDraggable, isResizableFromStart || isResizableFromEnd, mirrorInfo); - var skinCss = core.cssToStr(this.getSkinCss(eventUi)); - var timeHtml = ''; - var timeText; - var titleHtml; - classes.unshift('fc-day-grid-event', 'fc-h-event'); - // Only display a timed events time if it is the starting segment - if (seg.isStart) { - timeText = this.getTimeText(eventRange); - if (timeText) { - timeHtml = '' + core.htmlEscape(timeText) + ''; - } - } - titleHtml = - '' + - (core.htmlEscape(eventDef.title || '') || ' ') + // we always want one line of height - ''; - return '
' + - '
' + - (options.dir === 'rtl' ? - titleHtml + ' ' + timeHtml : // put a natural space in between - timeHtml + ' ' + titleHtml // - ) + - '
' + - (isResizableFromStart ? - '
' : - '') + - (isResizableFromEnd ? - '
' : - '') + - '
'; - }; - // Computes a default event time formatting string if `eventTimeFormat` is not explicitly defined - SimpleDayGridEventRenderer.prototype.computeEventTimeFormat = function () { - return { - hour: 'numeric', - minute: '2-digit', - omitZeroMinute: true, - meridiem: 'narrow' - }; - }; - SimpleDayGridEventRenderer.prototype.computeDisplayEventEnd = function () { - return false; // TODO: somehow consider the originating DayGrid's column count - }; - return SimpleDayGridEventRenderer; - }(core.FgEventRenderer)); - - /* Event-rendering methods for the DayGrid class - ----------------------------------------------------------------------------------------------------------------------*/ - var DayGridEventRenderer = /** @class */ (function (_super) { - __extends(DayGridEventRenderer, _super); - function DayGridEventRenderer(dayGrid) { - var _this = _super.call(this, dayGrid.context) || this; - _this.dayGrid = dayGrid; - return _this; - } - // Renders the given foreground event segments onto the grid - DayGridEventRenderer.prototype.attachSegs = function (segs, mirrorInfo) { - var rowStructs = this.rowStructs = this.renderSegRows(segs); - // append to each row's content skeleton - this.dayGrid.rowEls.forEach(function (rowNode, i) { - rowNode.querySelector('.fc-content-skeleton > table').appendChild(rowStructs[i].tbodyEl); - }); - // removes the "more.." events popover - if (!mirrorInfo) { - this.dayGrid.removeSegPopover(); - } - }; - // Unrenders all currently rendered foreground event segments - DayGridEventRenderer.prototype.detachSegs = function () { - var rowStructs = this.rowStructs || []; - var rowStruct; - while ((rowStruct = rowStructs.pop())) { - core.removeElement(rowStruct.tbodyEl); - } - this.rowStructs = null; - }; - // Uses the given events array to generate elements that should be appended to each row's content skeleton. - // Returns an array of rowStruct objects (see the bottom of `renderSegRow`). - // PRECONDITION: each segment shoud already have a rendered and assigned `.el` - DayGridEventRenderer.prototype.renderSegRows = function (segs) { - var rowStructs = []; - var segRows; - var row; - segRows = this.groupSegRows(segs); // group into nested arrays - // iterate each row of segment groupings - for (row = 0; row < segRows.length; row++) { - rowStructs.push(this.renderSegRow(row, segRows[row])); - } - return rowStructs; - }; - // Given a row # and an array of segments all in the same row, render a element, a skeleton that contains - // the segments. Returns object with a bunch of internal data about how the render was calculated. - // NOTE: modifies rowSegs - DayGridEventRenderer.prototype.renderSegRow = function (row, rowSegs) { - var dayGrid = this.dayGrid; - var colCnt = dayGrid.colCnt, isRtl = dayGrid.isRtl; - var segLevels = this.buildSegLevels(rowSegs); // group into sub-arrays of levels - var levelCnt = Math.max(1, segLevels.length); // ensure at least one level - var tbody = document.createElement('tbody'); - var segMatrix = []; // lookup for which segments are rendered into which level+col cells - var cellMatrix = []; // lookup for all elements of the level+col matrix - var loneCellMatrix = []; // lookup for elements that only take up a single column - var i; - var levelSegs; - var col; - var tr; - var j; - var seg; - var td; - // populates empty cells from the current column (`col`) to `endCol` - function emptyCellsUntil(endCol) { - while (col < endCol) { - // try to grab a cell from the level above and extend its rowspan. otherwise, create a fresh cell - td = (loneCellMatrix[i - 1] || [])[col]; - if (td) { - td.rowSpan = (td.rowSpan || 1) + 1; - } - else { - td = document.createElement('td'); - tr.appendChild(td); - } - cellMatrix[i][col] = td; - loneCellMatrix[i][col] = td; - col++; - } - } - for (i = 0; i < levelCnt; i++) { // iterate through all levels - levelSegs = segLevels[i]; - col = 0; - tr = document.createElement('tr'); - segMatrix.push([]); - cellMatrix.push([]); - loneCellMatrix.push([]); - // levelCnt might be 1 even though there are no actual levels. protect against this. - // this single empty row is useful for styling. - if (levelSegs) { - for (j = 0; j < levelSegs.length; j++) { // iterate through segments in level - seg = levelSegs[j]; - var leftCol = isRtl ? (colCnt - 1 - seg.lastCol) : seg.firstCol; - var rightCol = isRtl ? (colCnt - 1 - seg.firstCol) : seg.lastCol; - emptyCellsUntil(leftCol); - // create a container that occupies or more columns. append the event element. - td = core.createElement('td', { className: 'fc-event-container' }, seg.el); - if (leftCol !== rightCol) { - td.colSpan = rightCol - leftCol + 1; - } - else { // a single-column segment - loneCellMatrix[i][col] = td; - } - while (col <= rightCol) { - cellMatrix[i][col] = td; - segMatrix[i][col] = seg; - col++; - } - tr.appendChild(td); - } - } - emptyCellsUntil(colCnt); // finish off the row - var introHtml = dayGrid.renderProps.renderIntroHtml(); - if (introHtml) { - if (dayGrid.isRtl) { - core.appendToElement(tr, introHtml); - } - else { - core.prependToElement(tr, introHtml); - } - } - tbody.appendChild(tr); - } - return { - row: row, - tbodyEl: tbody, - cellMatrix: cellMatrix, - segMatrix: segMatrix, - segLevels: segLevels, - segs: rowSegs - }; - }; - // Stacks a flat array of segments, which are all assumed to be in the same row, into subarrays of vertical levels. - // NOTE: modifies segs - DayGridEventRenderer.prototype.buildSegLevels = function (segs) { - var _a = this.dayGrid, isRtl = _a.isRtl, colCnt = _a.colCnt; - var levels = []; - var i; - var seg; - var j; - // Give preference to elements with certain criteria, so they have - // a chance to be closer to the top. - segs = this.sortEventSegs(segs); - for (i = 0; i < segs.length; i++) { - seg = segs[i]; - // loop through levels, starting with the topmost, until the segment doesn't collide with other segments - for (j = 0; j < levels.length; j++) { - if (!isDaySegCollision(seg, levels[j])) { - break; - } - } - // `j` now holds the desired subrow index - seg.level = j; - seg.leftCol = isRtl ? (colCnt - 1 - seg.lastCol) : seg.firstCol; // for sorting only - seg.rightCol = isRtl ? (colCnt - 1 - seg.firstCol) : seg.lastCol // for sorting only - ; - (levels[j] || (levels[j] = [])).push(seg); - } - // order segments left-to-right. very important if calendar is RTL - for (j = 0; j < levels.length; j++) { - levels[j].sort(compareDaySegCols); - } - return levels; - }; - // Given a flat array of segments, return an array of sub-arrays, grouped by each segment's row - DayGridEventRenderer.prototype.groupSegRows = function (segs) { - var segRows = []; - var i; - for (i = 0; i < this.dayGrid.rowCnt; i++) { - segRows.push([]); - } - for (i = 0; i < segs.length; i++) { - segRows[segs[i].row].push(segs[i]); - } - return segRows; - }; - // Computes a default `displayEventEnd` value if one is not expliclty defined - DayGridEventRenderer.prototype.computeDisplayEventEnd = function () { - return this.dayGrid.colCnt === 1; // we'll likely have space if there's only one day - }; - return DayGridEventRenderer; - }(SimpleDayGridEventRenderer)); - // Computes whether two segments' columns collide. They are assumed to be in the same row. - function isDaySegCollision(seg, otherSegs) { - var i; - var otherSeg; - for (i = 0; i < otherSegs.length; i++) { - otherSeg = otherSegs[i]; - if (otherSeg.firstCol <= seg.lastCol && - otherSeg.lastCol >= seg.firstCol) { - return true; - } - } - return false; - } - // A cmp function for determining the leftmost event - function compareDaySegCols(a, b) { - return a.leftCol - b.leftCol; - } - - var DayGridMirrorRenderer = /** @class */ (function (_super) { - __extends(DayGridMirrorRenderer, _super); - function DayGridMirrorRenderer() { - return _super !== null && _super.apply(this, arguments) || this; - } - DayGridMirrorRenderer.prototype.attachSegs = function (segs, mirrorInfo) { - var sourceSeg = mirrorInfo.sourceSeg; - var rowStructs = this.rowStructs = this.renderSegRows(segs); - // inject each new event skeleton into each associated row - this.dayGrid.rowEls.forEach(function (rowNode, row) { - var skeletonEl = core.htmlToElement('
'); // will be absolutely positioned - var skeletonTopEl; - var skeletonTop; - // If there is an original segment, match the top position. Otherwise, put it at the row's top level - if (sourceSeg && sourceSeg.row === row) { - skeletonTopEl = sourceSeg.el; - } - else { - skeletonTopEl = rowNode.querySelector('.fc-content-skeleton tbody'); - if (!skeletonTopEl) { // when no events - skeletonTopEl = rowNode.querySelector('.fc-content-skeleton table'); - } - } - skeletonTop = skeletonTopEl.getBoundingClientRect().top - - rowNode.getBoundingClientRect().top; // the offsetParent origin - skeletonEl.style.top = skeletonTop + 'px'; - skeletonEl.querySelector('table').appendChild(rowStructs[row].tbodyEl); - rowNode.appendChild(skeletonEl); - }); - }; - return DayGridMirrorRenderer; - }(DayGridEventRenderer)); - - var EMPTY_CELL_HTML = ''; - var DayGridFillRenderer = /** @class */ (function (_super) { - __extends(DayGridFillRenderer, _super); - function DayGridFillRenderer(dayGrid) { - var _this = _super.call(this, dayGrid.context) || this; - _this.fillSegTag = 'td'; // override the default tag name - _this.dayGrid = dayGrid; - return _this; - } - DayGridFillRenderer.prototype.renderSegs = function (type, segs) { - // don't render timed background events - if (type === 'bgEvent') { - segs = segs.filter(function (seg) { - return seg.eventRange.def.allDay; - }); - } - _super.prototype.renderSegs.call(this, type, segs); - }; - DayGridFillRenderer.prototype.attachSegs = function (type, segs) { - var els = []; - var i; - var seg; - var skeletonEl; - for (i = 0; i < segs.length; i++) { - seg = segs[i]; - skeletonEl = this.renderFillRow(type, seg); - this.dayGrid.rowEls[seg.row].appendChild(skeletonEl); - els.push(skeletonEl); - } - return els; - }; - // Generates the HTML needed for one row of a fill. Requires the seg's el to be rendered. - DayGridFillRenderer.prototype.renderFillRow = function (type, seg) { - var dayGrid = this.dayGrid; - var colCnt = dayGrid.colCnt, isRtl = dayGrid.isRtl; - var leftCol = isRtl ? (colCnt - 1 - seg.lastCol) : seg.firstCol; - var rightCol = isRtl ? (colCnt - 1 - seg.firstCol) : seg.lastCol; - var startCol = leftCol; - var endCol = rightCol + 1; - var className; - var skeletonEl; - var trEl; - if (type === 'businessHours') { - className = 'bgevent'; - } - else { - className = type.toLowerCase(); - } - skeletonEl = core.htmlToElement('
' + - '
' + - '
'); - trEl = skeletonEl.getElementsByTagName('tr')[0]; - if (startCol > 0) { - core.appendToElement(trEl, - // will create (startCol + 1) td's - new Array(startCol + 1).join(EMPTY_CELL_HTML)); - } - seg.el.colSpan = endCol - startCol; - trEl.appendChild(seg.el); - if (endCol < colCnt) { - core.appendToElement(trEl, - // will create (colCnt - endCol) td's - new Array(colCnt - endCol + 1).join(EMPTY_CELL_HTML)); - } - var introHtml = dayGrid.renderProps.renderIntroHtml(); - if (introHtml) { - if (dayGrid.isRtl) { - core.appendToElement(trEl, introHtml); - } - else { - core.prependToElement(trEl, introHtml); - } - } - return skeletonEl; - }; - return DayGridFillRenderer; - }(core.FillRenderer)); - - var DayTile = /** @class */ (function (_super) { - __extends(DayTile, _super); - function DayTile(context, el) { - var _this = _super.call(this, context, el) || this; - var eventRenderer = _this.eventRenderer = new DayTileEventRenderer(_this); - var renderFrame = _this.renderFrame = core.memoizeRendering(_this._renderFrame); - _this.renderFgEvents = core.memoizeRendering(eventRenderer.renderSegs.bind(eventRenderer), eventRenderer.unrender.bind(eventRenderer), [renderFrame]); - _this.renderEventSelection = core.memoizeRendering(eventRenderer.selectByInstanceId.bind(eventRenderer), eventRenderer.unselectByInstanceId.bind(eventRenderer), [_this.renderFgEvents]); - _this.renderEventDrag = core.memoizeRendering(eventRenderer.hideByHash.bind(eventRenderer), eventRenderer.showByHash.bind(eventRenderer), [renderFrame]); - _this.renderEventResize = core.memoizeRendering(eventRenderer.hideByHash.bind(eventRenderer), eventRenderer.showByHash.bind(eventRenderer), [renderFrame]); - context.calendar.registerInteractiveComponent(_this, { - el: _this.el, - useEventCenter: false - }); - return _this; - } - DayTile.prototype.render = function (props) { - this.renderFrame(props.date); - this.renderFgEvents(props.fgSegs); - this.renderEventSelection(props.eventSelection); - this.renderEventDrag(props.eventDragInstances); - this.renderEventResize(props.eventResizeInstances); - }; - DayTile.prototype.destroy = function () { - _super.prototype.destroy.call(this); - this.renderFrame.unrender(); // should unrender everything else - this.calendar.unregisterInteractiveComponent(this); - }; - DayTile.prototype._renderFrame = function (date) { - var _a = this, theme = _a.theme, dateEnv = _a.dateEnv; - var title = dateEnv.format(date, core.createFormatter(this.opt('dayPopoverFormat')) // TODO: cache - ); - this.el.innerHTML = - '
' + - '' + - core.htmlEscape(title) + - '' + - '' + - '
' + - '
' + - '
' + - '
'; - this.segContainerEl = this.el.querySelector('.fc-event-container'); - }; - DayTile.prototype.queryHit = function (positionLeft, positionTop, elWidth, elHeight) { - var date = this.props.date; // HACK - if (positionLeft < elWidth && positionTop < elHeight) { - return { - component: this, - dateSpan: { - allDay: true, - range: { start: date, end: core.addDays(date, 1) } - }, - dayEl: this.el, - rect: { - left: 0, - top: 0, - right: elWidth, - bottom: elHeight - }, - layer: 1 - }; - } - }; - return DayTile; - }(core.DateComponent)); - var DayTileEventRenderer = /** @class */ (function (_super) { - __extends(DayTileEventRenderer, _super); - function DayTileEventRenderer(dayTile) { - var _this = _super.call(this, dayTile.context) || this; - _this.dayTile = dayTile; - return _this; - } - DayTileEventRenderer.prototype.attachSegs = function (segs) { - for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) { - var seg = segs_1[_i]; - this.dayTile.segContainerEl.appendChild(seg.el); - } - }; - DayTileEventRenderer.prototype.detachSegs = function (segs) { - for (var _i = 0, segs_2 = segs; _i < segs_2.length; _i++) { - var seg = segs_2[_i]; - core.removeElement(seg.el); - } - }; - return DayTileEventRenderer; - }(SimpleDayGridEventRenderer)); - - var DayBgRow = /** @class */ (function () { - function DayBgRow(context) { - this.context = context; - } - DayBgRow.prototype.renderHtml = function (props) { - var parts = []; - if (props.renderIntroHtml) { - parts.push(props.renderIntroHtml()); - } - for (var _i = 0, _a = props.cells; _i < _a.length; _i++) { - var cell = _a[_i]; - parts.push(renderCellHtml(cell.date, props.dateProfile, this.context, cell.htmlAttrs)); - } - if (!props.cells.length) { - parts.push(''); - } - if (this.context.options.dir === 'rtl') { - parts.reverse(); - } - return '' + parts.join('') + ''; - }; - return DayBgRow; - }()); - function renderCellHtml(date, dateProfile, context, otherAttrs) { - var dateEnv = context.dateEnv, theme = context.theme; - var isDateValid = core.rangeContainsMarker(dateProfile.activeRange, date); // TODO: called too frequently. cache somehow. - var classes = core.getDayClasses(date, dateProfile, context); - classes.unshift('fc-day', theme.getClass('widgetContent')); - return ''; - } - - var DAY_NUM_FORMAT = core.createFormatter({ day: 'numeric' }); - var WEEK_NUM_FORMAT = core.createFormatter({ week: 'numeric' }); - var DayGrid = /** @class */ (function (_super) { - __extends(DayGrid, _super); - function DayGrid(context, el, renderProps) { - var _this = _super.call(this, context, el) || this; - _this.bottomCoordPadding = 0; // hack for extending the hit area for the last row of the coordinate grid - _this.isCellSizesDirty = false; - var eventRenderer = _this.eventRenderer = new DayGridEventRenderer(_this); - var fillRenderer = _this.fillRenderer = new DayGridFillRenderer(_this); - _this.mirrorRenderer = new DayGridMirrorRenderer(_this); - var renderCells = _this.renderCells = core.memoizeRendering(_this._renderCells, _this._unrenderCells); - _this.renderBusinessHours = core.memoizeRendering(fillRenderer.renderSegs.bind(fillRenderer, 'businessHours'), fillRenderer.unrender.bind(fillRenderer, 'businessHours'), [renderCells]); - _this.renderDateSelection = core.memoizeRendering(fillRenderer.renderSegs.bind(fillRenderer, 'highlight'), fillRenderer.unrender.bind(fillRenderer, 'highlight'), [renderCells]); - _this.renderBgEvents = core.memoizeRendering(fillRenderer.renderSegs.bind(fillRenderer, 'bgEvent'), fillRenderer.unrender.bind(fillRenderer, 'bgEvent'), [renderCells]); - _this.renderFgEvents = core.memoizeRendering(eventRenderer.renderSegs.bind(eventRenderer), eventRenderer.unrender.bind(eventRenderer), [renderCells]); - _this.renderEventSelection = core.memoizeRendering(eventRenderer.selectByInstanceId.bind(eventRenderer), eventRenderer.unselectByInstanceId.bind(eventRenderer), [_this.renderFgEvents]); - _this.renderEventDrag = core.memoizeRendering(_this._renderEventDrag, _this._unrenderEventDrag, [renderCells]); - _this.renderEventResize = core.memoizeRendering(_this._renderEventResize, _this._unrenderEventResize, [renderCells]); - _this.renderProps = renderProps; - return _this; - } - DayGrid.prototype.render = function (props) { - var cells = props.cells; - this.rowCnt = cells.length; - this.colCnt = cells[0].length; - this.renderCells(cells, props.isRigid); - this.renderBusinessHours(props.businessHourSegs); - this.renderDateSelection(props.dateSelectionSegs); - this.renderBgEvents(props.bgEventSegs); - this.renderFgEvents(props.fgEventSegs); - this.renderEventSelection(props.eventSelection); - this.renderEventDrag(props.eventDrag); - this.renderEventResize(props.eventResize); - if (this.segPopoverTile) { - this.updateSegPopoverTile(); - } - }; - DayGrid.prototype.destroy = function () { - _super.prototype.destroy.call(this); - this.renderCells.unrender(); // will unrender everything else - }; - DayGrid.prototype.getCellRange = function (row, col) { - var start = this.props.cells[row][col].date; - var end = core.addDays(start, 1); - return { start: start, end: end }; - }; - DayGrid.prototype.updateSegPopoverTile = function (date, segs) { - var ownProps = this.props; - this.segPopoverTile.receiveProps({ - date: date || this.segPopoverTile.props.date, - fgSegs: segs || this.segPopoverTile.props.fgSegs, - eventSelection: ownProps.eventSelection, - eventDragInstances: ownProps.eventDrag ? ownProps.eventDrag.affectedInstances : null, - eventResizeInstances: ownProps.eventResize ? ownProps.eventResize.affectedInstances : null - }); - }; - /* Date Rendering - ------------------------------------------------------------------------------------------------------------------*/ - DayGrid.prototype._renderCells = function (cells, isRigid) { - var _a = this, view = _a.view, dateEnv = _a.dateEnv; - var _b = this, rowCnt = _b.rowCnt, colCnt = _b.colCnt; - var html = ''; - var row; - var col; - for (row = 0; row < rowCnt; row++) { - html += this.renderDayRowHtml(row, isRigid); - } - this.el.innerHTML = html; - this.rowEls = core.findElements(this.el, '.fc-row'); - this.cellEls = core.findElements(this.el, '.fc-day, .fc-disabled-day'); - if (this.isRtl) { - this.cellEls.reverse(); - } - this.rowPositions = new core.PositionCache(this.el, this.rowEls, false, true // vertical - ); - this.colPositions = new core.PositionCache(this.el, this.cellEls.slice(0, colCnt), // only the first row - true, false // horizontal - ); - // trigger dayRender with each cell's element - for (row = 0; row < rowCnt; row++) { - for (col = 0; col < colCnt; col++) { - this.publiclyTrigger('dayRender', [ - { - date: dateEnv.toDate(cells[row][col].date), - el: this.getCellEl(row, col), - view: view - } - ]); - } - } - this.isCellSizesDirty = true; - }; - DayGrid.prototype._unrenderCells = function () { - this.removeSegPopover(); - }; - // Generates the HTML for a single row, which is a div that wraps a table. - // `row` is the row number. - DayGrid.prototype.renderDayRowHtml = function (row, isRigid) { - var theme = this.theme; - var classes = ['fc-row', 'fc-week', theme.getClass('dayRow')]; - if (isRigid) { - classes.push('fc-rigid'); - } - var bgRow = new DayBgRow(this.context); - return '' + - '
' + - '
' + - '' + - bgRow.renderHtml({ - cells: this.props.cells[row], - dateProfile: this.props.dateProfile, - renderIntroHtml: this.renderProps.renderBgIntroHtml - }) + - '
' + - '
' + - '
' + - '' + - (this.getIsNumbersVisible() ? - '' + - this.renderNumberTrHtml(row) + - '' : - '') + - '
' + - '
' + - '
'; - }; - DayGrid.prototype.getIsNumbersVisible = function () { - return this.getIsDayNumbersVisible() || - this.renderProps.cellWeekNumbersVisible || - this.renderProps.colWeekNumbersVisible; - }; - DayGrid.prototype.getIsDayNumbersVisible = function () { - return this.rowCnt > 1; - }; - /* Grid Number Rendering - ------------------------------------------------------------------------------------------------------------------*/ - DayGrid.prototype.renderNumberTrHtml = function (row) { - var intro = this.renderProps.renderNumberIntroHtml(row, this); - return '' + - '' + - (this.isRtl ? '' : intro) + - this.renderNumberCellsHtml(row) + - (this.isRtl ? intro : '') + - ''; - }; - DayGrid.prototype.renderNumberCellsHtml = function (row) { - var htmls = []; - var col; - var date; - for (col = 0; col < this.colCnt; col++) { - date = this.props.cells[row][col].date; - htmls.push(this.renderNumberCellHtml(date)); - } - if (this.isRtl) { - htmls.reverse(); - } - return htmls.join(''); - }; - // Generates the HTML for the s of the "number" row in the DayGrid's content skeleton. - // The number row will only exist if either day numbers or week numbers are turned on. - DayGrid.prototype.renderNumberCellHtml = function (date) { - var _a = this, view = _a.view, dateEnv = _a.dateEnv; - var html = ''; - var isDateValid = core.rangeContainsMarker(this.props.dateProfile.activeRange, date); // TODO: called too frequently. cache somehow. - var isDayNumberVisible = this.getIsDayNumbersVisible() && isDateValid; - var classes; - var weekCalcFirstDow; - if (!isDayNumberVisible && !this.renderProps.cellWeekNumbersVisible) { - // no numbers in day cell (week number must be along the side) - return ''; // will create an empty space above events :( - } - classes = core.getDayClasses(date, this.props.dateProfile, this.context); - classes.unshift('fc-day-top'); - if (this.renderProps.cellWeekNumbersVisible) { - weekCalcFirstDow = dateEnv.weekDow; - } - html += ''; - if (this.renderProps.cellWeekNumbersVisible && (date.getUTCDay() === weekCalcFirstDow)) { - html += core.buildGotoAnchorHtml(view, { date: date, type: 'week' }, { 'class': 'fc-week-number' }, dateEnv.format(date, WEEK_NUM_FORMAT) // inner HTML - ); - } - if (isDayNumberVisible) { - html += core.buildGotoAnchorHtml(view, date, { 'class': 'fc-day-number' }, dateEnv.format(date, DAY_NUM_FORMAT) // inner HTML - ); - } - html += ''; - return html; - }; - /* Sizing - ------------------------------------------------------------------------------------------------------------------*/ - DayGrid.prototype.updateSize = function (isResize) { - var _a = this, fillRenderer = _a.fillRenderer, eventRenderer = _a.eventRenderer, mirrorRenderer = _a.mirrorRenderer; - if (isResize || - this.isCellSizesDirty || - this.view.calendar.isEventsUpdated // hack - ) { - this.buildPositionCaches(); - this.isCellSizesDirty = false; - } - fillRenderer.computeSizes(isResize); - eventRenderer.computeSizes(isResize); - mirrorRenderer.computeSizes(isResize); - fillRenderer.assignSizes(isResize); - eventRenderer.assignSizes(isResize); - mirrorRenderer.assignSizes(isResize); - }; - DayGrid.prototype.buildPositionCaches = function () { - this.buildColPositions(); - this.buildRowPositions(); - }; - DayGrid.prototype.buildColPositions = function () { - this.colPositions.build(); - }; - DayGrid.prototype.buildRowPositions = function () { - this.rowPositions.build(); - this.rowPositions.bottoms[this.rowCnt - 1] += this.bottomCoordPadding; // hack - }; - /* Hit System - ------------------------------------------------------------------------------------------------------------------*/ - DayGrid.prototype.positionToHit = function (leftPosition, topPosition) { - var _a = this, colPositions = _a.colPositions, rowPositions = _a.rowPositions; - var col = colPositions.leftToIndex(leftPosition); - var row = rowPositions.topToIndex(topPosition); - if (row != null && col != null) { - return { - row: row, - col: col, - dateSpan: { - range: this.getCellRange(row, col), - allDay: true - }, - dayEl: this.getCellEl(row, col), - relativeRect: { - left: colPositions.lefts[col], - right: colPositions.rights[col], - top: rowPositions.tops[row], - bottom: rowPositions.bottoms[row] - } - }; - } - }; - /* Cell System - ------------------------------------------------------------------------------------------------------------------*/ - // FYI: the first column is the leftmost column, regardless of date - DayGrid.prototype.getCellEl = function (row, col) { - return this.cellEls[row * this.colCnt + col]; - }; - /* Event Drag Visualization - ------------------------------------------------------------------------------------------------------------------*/ - DayGrid.prototype._renderEventDrag = function (state) { - if (state) { - this.eventRenderer.hideByHash(state.affectedInstances); - this.fillRenderer.renderSegs('highlight', state.segs); - } - }; - DayGrid.prototype._unrenderEventDrag = function (state) { - if (state) { - this.eventRenderer.showByHash(state.affectedInstances); - this.fillRenderer.unrender('highlight'); - } - }; - /* Event Resize Visualization - ------------------------------------------------------------------------------------------------------------------*/ - DayGrid.prototype._renderEventResize = function (state) { - if (state) { - this.eventRenderer.hideByHash(state.affectedInstances); - this.fillRenderer.renderSegs('highlight', state.segs); - this.mirrorRenderer.renderSegs(state.segs, { isResizing: true, sourceSeg: state.sourceSeg }); - } - }; - DayGrid.prototype._unrenderEventResize = function (state) { - if (state) { - this.eventRenderer.showByHash(state.affectedInstances); - this.fillRenderer.unrender('highlight'); - this.mirrorRenderer.unrender(state.segs, { isResizing: true, sourceSeg: state.sourceSeg }); - } - }; - /* More+ Link Popover - ------------------------------------------------------------------------------------------------------------------*/ - DayGrid.prototype.removeSegPopover = function () { - if (this.segPopover) { - this.segPopover.hide(); // in handler, will call segPopover's removeElement - } - }; - // Limits the number of "levels" (vertically stacking layers of events) for each row of the grid. - // `levelLimit` can be false (don't limit), a number, or true (should be computed). - DayGrid.prototype.limitRows = function (levelLimit) { - var rowStructs = this.eventRenderer.rowStructs || []; - var row; // row # - var rowLevelLimit; - for (row = 0; row < rowStructs.length; row++) { - this.unlimitRow(row); - if (!levelLimit) { - rowLevelLimit = false; - } - else if (typeof levelLimit === 'number') { - rowLevelLimit = levelLimit; - } - else { - rowLevelLimit = this.computeRowLevelLimit(row); - } - if (rowLevelLimit !== false) { - this.limitRow(row, rowLevelLimit); - } - } - }; - // Computes the number of levels a row will accomodate without going outside its bounds. - // Assumes the row is "rigid" (maintains a constant height regardless of what is inside). - // `row` is the row number. - DayGrid.prototype.computeRowLevelLimit = function (row) { - var rowEl = this.rowEls[row]; // the containing "fake" row div - var rowBottom = rowEl.getBoundingClientRect().bottom; // relative to viewport! - var trEls = core.findChildren(this.eventRenderer.rowStructs[row].tbodyEl); - var i; - var trEl; - // Reveal one level at a time and stop when we find one out of bounds - for (i = 0; i < trEls.length; i++) { - trEl = trEls[i]; - trEl.classList.remove('fc-limited'); // reset to original state (reveal) - if (trEl.getBoundingClientRect().bottom > rowBottom) { - return i; - } - } - return false; // should not limit at all - }; - // Limits the given grid row to the maximum number of levels and injects "more" links if necessary. - // `row` is the row number. - // `levelLimit` is a number for the maximum (inclusive) number of levels allowed. - DayGrid.prototype.limitRow = function (row, levelLimit) { - var _this = this; - var _a = this, colCnt = _a.colCnt, isRtl = _a.isRtl; - var rowStruct = this.eventRenderer.rowStructs[row]; - var moreNodes = []; // array of "more" links and DOM nodes - var col = 0; // col #, left-to-right (not chronologically) - var levelSegs; // array of segment objects in the last allowable level, ordered left-to-right - var cellMatrix; // a matrix (by level, then column) of all elements in the row - var limitedNodes; // array of temporarily hidden level and segment DOM nodes - var i; - var seg; - var segsBelow; // array of segment objects below `seg` in the current `col` - var totalSegsBelow; // total number of segments below `seg` in any of the columns `seg` occupies - var colSegsBelow; // array of segment arrays, below seg, one for each column (offset from segs's first column) - var td; - var rowSpan; - var segMoreNodes; // array of "more" cells that will stand-in for the current seg's cell - var j; - var moreTd; - var moreWrap; - var moreLink; - // Iterates through empty level cells and places "more" links inside if need be - var emptyCellsUntil = function (endCol) { - while (col < endCol) { - segsBelow = _this.getCellSegs(row, col, levelLimit); - if (segsBelow.length) { - td = cellMatrix[levelLimit - 1][col]; - moreLink = _this.renderMoreLink(row, col, segsBelow); - moreWrap = core.createElement('div', null, moreLink); - td.appendChild(moreWrap); - moreNodes.push(moreWrap); - } - col++; - } - }; - if (levelLimit && levelLimit < rowStruct.segLevels.length) { // is it actually over the limit? - levelSegs = rowStruct.segLevels[levelLimit - 1]; - cellMatrix = rowStruct.cellMatrix; - limitedNodes = core.findChildren(rowStruct.tbodyEl).slice(levelLimit); // get level elements past the limit - limitedNodes.forEach(function (node) { - node.classList.add('fc-limited'); // hide elements and get a simple DOM-nodes array - }); - // iterate though segments in the last allowable level - for (i = 0; i < levelSegs.length; i++) { - seg = levelSegs[i]; - var leftCol = isRtl ? (colCnt - 1 - seg.lastCol) : seg.firstCol; - var rightCol = isRtl ? (colCnt - 1 - seg.firstCol) : seg.lastCol; - emptyCellsUntil(leftCol); // process empty cells before the segment - // determine *all* segments below `seg` that occupy the same columns - colSegsBelow = []; - totalSegsBelow = 0; - while (col <= rightCol) { - segsBelow = this.getCellSegs(row, col, levelLimit); - colSegsBelow.push(segsBelow); - totalSegsBelow += segsBelow.length; - col++; - } - if (totalSegsBelow) { // do we need to replace this segment with one or many "more" links? - td = cellMatrix[levelLimit - 1][leftCol]; // the segment's parent cell - rowSpan = td.rowSpan || 1; - segMoreNodes = []; - // make a replacement for each column the segment occupies. will be one for each colspan - for (j = 0; j < colSegsBelow.length; j++) { - moreTd = core.createElement('td', { className: 'fc-more-cell', rowSpan: rowSpan }); - segsBelow = colSegsBelow[j]; - moreLink = this.renderMoreLink(row, leftCol + j, [seg].concat(segsBelow) // count seg as hidden too - ); - moreWrap = core.createElement('div', null, moreLink); - moreTd.appendChild(moreWrap); - segMoreNodes.push(moreTd); - moreNodes.push(moreTd); - } - td.classList.add('fc-limited'); - core.insertAfterElement(td, segMoreNodes); - limitedNodes.push(td); - } - } - emptyCellsUntil(this.colCnt); // finish off the level - rowStruct.moreEls = moreNodes; // for easy undoing later - rowStruct.limitedEls = limitedNodes; // for easy undoing later - } - }; - // Reveals all levels and removes all "more"-related elements for a grid's row. - // `row` is a row number. - DayGrid.prototype.unlimitRow = function (row) { - var rowStruct = this.eventRenderer.rowStructs[row]; - if (rowStruct.moreEls) { - rowStruct.moreEls.forEach(core.removeElement); - rowStruct.moreEls = null; - } - if (rowStruct.limitedEls) { - rowStruct.limitedEls.forEach(function (limitedEl) { - limitedEl.classList.remove('fc-limited'); - }); - rowStruct.limitedEls = null; - } - }; - // Renders an element that represents hidden event element for a cell. - // Responsible for attaching click handler as well. - DayGrid.prototype.renderMoreLink = function (row, col, hiddenSegs) { - var _this = this; - var _a = this, view = _a.view, dateEnv = _a.dateEnv; - var a = core.createElement('a', { className: 'fc-more' }); - a.innerText = this.getMoreLinkText(hiddenSegs.length); - a.addEventListener('click', function (ev) { - var clickOption = _this.opt('eventLimitClick'); - var _col = _this.isRtl ? _this.colCnt - col - 1 : col; // HACK: props.cells has different dir system? - var date = _this.props.cells[row][_col].date; - var moreEl = ev.currentTarget; - var dayEl = _this.getCellEl(row, col); - var allSegs = _this.getCellSegs(row, col); - // rescope the segments to be within the cell's date - var reslicedAllSegs = _this.resliceDaySegs(allSegs, date); - var reslicedHiddenSegs = _this.resliceDaySegs(hiddenSegs, date); - if (typeof clickOption === 'function') { - // the returned value can be an atomic option - clickOption = _this.publiclyTrigger('eventLimitClick', [ - { - date: dateEnv.toDate(date), - allDay: true, - dayEl: dayEl, - moreEl: moreEl, - segs: reslicedAllSegs, - hiddenSegs: reslicedHiddenSegs, - jsEvent: ev, - view: view - } - ]); - } - if (clickOption === 'popover') { - _this.showSegPopover(row, col, moreEl, reslicedAllSegs); - } - else if (typeof clickOption === 'string') { // a view name - view.calendar.zoomTo(date, clickOption); - } - }); - return a; - }; - // Reveals the popover that displays all events within a cell - DayGrid.prototype.showSegPopover = function (row, col, moreLink, segs) { - var _this = this; - var _a = this, calendar = _a.calendar, view = _a.view, theme = _a.theme; - var _col = this.isRtl ? this.colCnt - col - 1 : col; // HACK: props.cells has different dir system? - var moreWrap = moreLink.parentNode; // the
wrapper around the - var topEl; // the element we want to match the top coordinate of - var options; - if (this.rowCnt === 1) { - topEl = view.el; // will cause the popover to cover any sort of header - } - else { - topEl = this.rowEls[row]; // will align with top of row - } - options = { - className: 'fc-more-popover ' + theme.getClass('popover'), - parentEl: view.el, - top: core.computeRect(topEl).top, - autoHide: true, - content: function (el) { - _this.segPopoverTile = new DayTile(_this.context, el); - _this.updateSegPopoverTile(_this.props.cells[row][_col].date, segs); - }, - hide: function () { - _this.segPopoverTile.destroy(); - _this.segPopoverTile = null; - _this.segPopover.destroy(); - _this.segPopover = null; - } - }; - // Determine horizontal coordinate. - // We use the moreWrap instead of the to avoid border confusion. - if (this.isRtl) { - options.right = core.computeRect(moreWrap).right + 1; // +1 to be over cell border - } - else { - options.left = core.computeRect(moreWrap).left - 1; // -1 to be over cell border - } - this.segPopover = new Popover(options); - this.segPopover.show(); - calendar.releaseAfterSizingTriggers(); // hack for eventPositioned - }; - // Given the events within an array of segment objects, reslice them to be in a single day - DayGrid.prototype.resliceDaySegs = function (segs, dayDate) { - var dayStart = dayDate; - var dayEnd = core.addDays(dayStart, 1); - var dayRange = { start: dayStart, end: dayEnd }; - var newSegs = []; - for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) { - var seg = segs_1[_i]; - var eventRange = seg.eventRange; - var origRange = eventRange.range; - var slicedRange = core.intersectRanges(origRange, dayRange); - if (slicedRange) { - newSegs.push(__assign({}, seg, { eventRange: { - def: eventRange.def, - ui: __assign({}, eventRange.ui, { durationEditable: false }), - instance: eventRange.instance, - range: slicedRange - }, isStart: seg.isStart && slicedRange.start.valueOf() === origRange.start.valueOf(), isEnd: seg.isEnd && slicedRange.end.valueOf() === origRange.end.valueOf() })); - } - } - return newSegs; - }; - // Generates the text that should be inside a "more" link, given the number of events it represents - DayGrid.prototype.getMoreLinkText = function (num) { - var opt = this.opt('eventLimitText'); - if (typeof opt === 'function') { - return opt(num); - } - else { - return '+' + num + ' ' + opt; - } - }; - // Returns segments within a given cell. - // If `startLevel` is specified, returns only events including and below that level. Otherwise returns all segs. - DayGrid.prototype.getCellSegs = function (row, col, startLevel) { - var segMatrix = this.eventRenderer.rowStructs[row].segMatrix; - var level = startLevel || 0; - var segs = []; - var seg; - while (level < segMatrix.length) { - seg = segMatrix[level][col]; - if (seg) { - segs.push(seg); - } - level++; - } - return segs; - }; - return DayGrid; - }(core.DateComponent)); - - var WEEK_NUM_FORMAT$1 = core.createFormatter({ week: 'numeric' }); - /* An abstract class for the daygrid views, as well as month view. Renders one or more rows of day cells. - ----------------------------------------------------------------------------------------------------------------------*/ - // It is a manager for a DayGrid subcomponent, which does most of the heavy lifting. - // It is responsible for managing width/height. - var DayGridView = /** @class */ (function (_super) { - __extends(DayGridView, _super); - function DayGridView(context, viewSpec, dateProfileGenerator, parentEl) { - var _this = _super.call(this, context, viewSpec, dateProfileGenerator, parentEl) || this; - /* Header Rendering - ------------------------------------------------------------------------------------------------------------------*/ - // Generates the HTML that will go before the day-of week header cells - _this.renderHeadIntroHtml = function () { - var theme = _this.theme; - if (_this.colWeekNumbersVisible) { - return '' + - '' + - '' + // needed for matchCellWidths - core.htmlEscape(_this.opt('weekLabel')) + - '' + - ''; - } - return ''; - }; - /* Day Grid Rendering - ------------------------------------------------------------------------------------------------------------------*/ - // Generates the HTML that will go before content-skeleton cells that display the day/week numbers - _this.renderDayGridNumberIntroHtml = function (row, dayGrid) { - var dateEnv = _this.dateEnv; - var weekStart = dayGrid.props.cells[row][0].date; - if (_this.colWeekNumbersVisible) { - return '' + - '' + - core.buildGotoAnchorHtml(// aside from link, important for matchCellWidths - _this, { date: weekStart, type: 'week', forceOff: dayGrid.colCnt === 1 }, dateEnv.format(weekStart, WEEK_NUM_FORMAT$1) // inner HTML - ) + - ''; - } - return ''; - }; - // Generates the HTML that goes before the day bg cells for each day-row - _this.renderDayGridBgIntroHtml = function () { - var theme = _this.theme; - if (_this.colWeekNumbersVisible) { - return ''; - } - return ''; - }; - // Generates the HTML that goes before every other type of row generated by DayGrid. - // Affects mirror-skeleton and highlight-skeleton rows. - _this.renderDayGridIntroHtml = function () { - if (_this.colWeekNumbersVisible) { - return ''; - } - return ''; - }; - _this.el.classList.add('fc-dayGrid-view'); - _this.el.innerHTML = _this.renderSkeletonHtml(); - _this.scroller = new core.ScrollComponent('hidden', // overflow x - 'auto' // overflow y - ); - var dayGridContainerEl = _this.scroller.el; - _this.el.querySelector('.fc-body > tr > td').appendChild(dayGridContainerEl); - dayGridContainerEl.classList.add('fc-day-grid-container'); - var dayGridEl = core.createElement('div', { className: 'fc-day-grid' }); - dayGridContainerEl.appendChild(dayGridEl); - var cellWeekNumbersVisible; - if (_this.opt('weekNumbers')) { - if (_this.opt('weekNumbersWithinDays')) { - cellWeekNumbersVisible = true; - _this.colWeekNumbersVisible = false; - } - else { - cellWeekNumbersVisible = false; - _this.colWeekNumbersVisible = true; - } - } - else { - _this.colWeekNumbersVisible = false; - cellWeekNumbersVisible = false; - } - _this.dayGrid = new DayGrid(_this.context, dayGridEl, { - renderNumberIntroHtml: _this.renderDayGridNumberIntroHtml, - renderBgIntroHtml: _this.renderDayGridBgIntroHtml, - renderIntroHtml: _this.renderDayGridIntroHtml, - colWeekNumbersVisible: _this.colWeekNumbersVisible, - cellWeekNumbersVisible: cellWeekNumbersVisible - }); - return _this; - } - DayGridView.prototype.destroy = function () { - _super.prototype.destroy.call(this); - this.dayGrid.destroy(); - this.scroller.destroy(); - }; - // Builds the HTML skeleton for the view. - // The day-grid component will render inside of a container defined by this HTML. - DayGridView.prototype.renderSkeletonHtml = function () { - var theme = this.theme; - return '' + - '' + - (this.opt('columnHeader') ? - '' + - '' + - '' + - '' + - '' : - '') + - '' + - '' + - '' + - '' + - '' + - '
 
'; - }; - // Generates an HTML attribute string for setting the width of the week number column, if it is known - DayGridView.prototype.weekNumberStyleAttr = function () { - if (this.weekNumberWidth != null) { - return 'style="width:' + this.weekNumberWidth + 'px"'; - } - return ''; - }; - // Determines whether each row should have a constant height - DayGridView.prototype.hasRigidRows = function () { - var eventLimit = this.opt('eventLimit'); - return eventLimit && typeof eventLimit !== 'number'; - }; - /* Dimensions - ------------------------------------------------------------------------------------------------------------------*/ - DayGridView.prototype.updateSize = function (isResize, viewHeight, isAuto) { - _super.prototype.updateSize.call(this, isResize, viewHeight, isAuto); // will call updateBaseSize. important that executes first - this.dayGrid.updateSize(isResize); - }; - // Refreshes the horizontal dimensions of the view - DayGridView.prototype.updateBaseSize = function (isResize, viewHeight, isAuto) { - var dayGrid = this.dayGrid; - var eventLimit = this.opt('eventLimit'); - var headRowEl = this.header ? this.header.el : null; // HACK - var scrollerHeight; - var scrollbarWidths; - // hack to give the view some height prior to dayGrid's columns being rendered - // TODO: separate setting height from scroller VS dayGrid. - if (!dayGrid.rowEls) { - if (!isAuto) { - scrollerHeight = this.computeScrollerHeight(viewHeight); - this.scroller.setHeight(scrollerHeight); - } - return; - } - if (this.colWeekNumbersVisible) { - // Make sure all week number cells running down the side have the same width. - this.weekNumberWidth = core.matchCellWidths(core.findElements(this.el, '.fc-week-number')); - } - // reset all heights to be natural - this.scroller.clear(); - if (headRowEl) { - core.uncompensateScroll(headRowEl); - } - dayGrid.removeSegPopover(); // kill the "more" popover if displayed - // is the event limit a constant level number? - if (eventLimit && typeof eventLimit === 'number') { - dayGrid.limitRows(eventLimit); // limit the levels first so the height can redistribute after - } - // distribute the height to the rows - // (viewHeight is a "recommended" value if isAuto) - scrollerHeight = this.computeScrollerHeight(viewHeight); - this.setGridHeight(scrollerHeight, isAuto); - // is the event limit dynamically calculated? - if (eventLimit && typeof eventLimit !== 'number') { - dayGrid.limitRows(eventLimit); // limit the levels after the grid's row heights have been set - } - if (!isAuto) { // should we force dimensions of the scroll container? - this.scroller.setHeight(scrollerHeight); - scrollbarWidths = this.scroller.getScrollbarWidths(); - if (scrollbarWidths.left || scrollbarWidths.right) { // using scrollbars? - if (headRowEl) { - core.compensateScroll(headRowEl, scrollbarWidths); - } - // doing the scrollbar compensation might have created text overflow which created more height. redo - scrollerHeight = this.computeScrollerHeight(viewHeight); - this.scroller.setHeight(scrollerHeight); - } - // guarantees the same scrollbar widths - this.scroller.lockOverflow(scrollbarWidths); - } - }; - // given a desired total height of the view, returns what the height of the scroller should be - DayGridView.prototype.computeScrollerHeight = function (viewHeight) { - return viewHeight - - core.subtractInnerElHeight(this.el, this.scroller.el); // everything that's NOT the scroller - }; - // Sets the height of just the DayGrid component in this view - DayGridView.prototype.setGridHeight = function (height, isAuto) { - if (this.opt('monthMode')) { - // if auto, make the height of each row the height that it would be if there were 6 weeks - if (isAuto) { - height *= this.dayGrid.rowCnt / 6; - } - core.distributeHeight(this.dayGrid.rowEls, height, !isAuto); // if auto, don't compensate for height-hogging rows - } - else { - if (isAuto) { - core.undistributeHeight(this.dayGrid.rowEls); // let the rows be their natural height with no expanding - } - else { - core.distributeHeight(this.dayGrid.rowEls, height, true); // true = compensate for height-hogging rows - } - } - }; - /* Scroll - ------------------------------------------------------------------------------------------------------------------*/ - DayGridView.prototype.computeDateScroll = function (duration) { - return { top: 0 }; - }; - DayGridView.prototype.queryDateScroll = function () { - return { top: this.scroller.getScrollTop() }; - }; - DayGridView.prototype.applyDateScroll = function (scroll) { - if (scroll.top !== undefined) { - this.scroller.setScrollTop(scroll.top); - } - }; - return DayGridView; - }(core.View)); - DayGridView.prototype.dateProfileGeneratorClass = DayGridDateProfileGenerator; - - var SimpleDayGrid = /** @class */ (function (_super) { - __extends(SimpleDayGrid, _super); - function SimpleDayGrid(context, dayGrid) { - var _this = _super.call(this, context, dayGrid.el) || this; - _this.slicer = new DayGridSlicer(); - _this.dayGrid = dayGrid; - context.calendar.registerInteractiveComponent(_this, { el: _this.dayGrid.el }); - return _this; - } - SimpleDayGrid.prototype.destroy = function () { - _super.prototype.destroy.call(this); - this.calendar.unregisterInteractiveComponent(this); - }; - SimpleDayGrid.prototype.render = function (props) { - var dayGrid = this.dayGrid; - var dateProfile = props.dateProfile, dayTable = props.dayTable; - dayGrid.receiveProps(__assign({}, this.slicer.sliceProps(props, dateProfile, props.nextDayThreshold, dayGrid, dayTable), { dateProfile: dateProfile, cells: dayTable.cells, isRigid: props.isRigid })); - }; - SimpleDayGrid.prototype.buildPositionCaches = function () { - this.dayGrid.buildPositionCaches(); - }; - SimpleDayGrid.prototype.queryHit = function (positionLeft, positionTop) { - var rawHit = this.dayGrid.positionToHit(positionLeft, positionTop); - if (rawHit) { - return { - component: this.dayGrid, - dateSpan: rawHit.dateSpan, - dayEl: rawHit.dayEl, - rect: { - left: rawHit.relativeRect.left, - right: rawHit.relativeRect.right, - top: rawHit.relativeRect.top, - bottom: rawHit.relativeRect.bottom - }, - layer: 0 - }; - } - }; - return SimpleDayGrid; - }(core.DateComponent)); - var DayGridSlicer = /** @class */ (function (_super) { - __extends(DayGridSlicer, _super); - function DayGridSlicer() { - return _super !== null && _super.apply(this, arguments) || this; - } - DayGridSlicer.prototype.sliceRange = function (dateRange, dayTable) { - return dayTable.sliceRange(dateRange); - }; - return DayGridSlicer; - }(core.Slicer)); - - var DayGridView$1 = /** @class */ (function (_super) { - __extends(DayGridView, _super); - function DayGridView(_context, viewSpec, dateProfileGenerator, parentEl) { - var _this = _super.call(this, _context, viewSpec, dateProfileGenerator, parentEl) || this; - _this.buildDayTable = core.memoize(buildDayTable); - if (_this.opt('columnHeader')) { - _this.header = new core.DayHeader(_this.context, _this.el.querySelector('.fc-head-container')); - } - _this.simpleDayGrid = new SimpleDayGrid(_this.context, _this.dayGrid); - return _this; - } - DayGridView.prototype.destroy = function () { - _super.prototype.destroy.call(this); - if (this.header) { - this.header.destroy(); - } - this.simpleDayGrid.destroy(); - }; - DayGridView.prototype.render = function (props) { - _super.prototype.render.call(this, props); - var dateProfile = this.props.dateProfile; - var dayTable = this.dayTable = - this.buildDayTable(dateProfile, this.dateProfileGenerator); - if (this.header) { - this.header.receiveProps({ - dateProfile: dateProfile, - dates: dayTable.headerDates, - datesRepDistinctDays: dayTable.rowCnt === 1, - renderIntroHtml: this.renderHeadIntroHtml - }); - } - this.simpleDayGrid.receiveProps({ - dateProfile: dateProfile, - dayTable: dayTable, - businessHours: props.businessHours, - dateSelection: props.dateSelection, - eventStore: props.eventStore, - eventUiBases: props.eventUiBases, - eventSelection: props.eventSelection, - eventDrag: props.eventDrag, - eventResize: props.eventResize, - isRigid: this.hasRigidRows(), - nextDayThreshold: this.nextDayThreshold - }); - }; - return DayGridView; - }(DayGridView)); - function buildDayTable(dateProfile, dateProfileGenerator) { - var daySeries = new core.DaySeries(dateProfile.renderRange, dateProfileGenerator); - return new core.DayTable(daySeries, /year|month|week/.test(dateProfile.currentRangeUnit)); - } - - var main = core.createPlugin({ - defaultView: 'dayGridMonth', - views: { - dayGrid: DayGridView$1, - dayGridDay: { - type: 'dayGrid', - duration: { days: 1 } - }, - dayGridWeek: { - type: 'dayGrid', - duration: { weeks: 1 } - }, - dayGridMonth: { - type: 'dayGrid', - duration: { months: 1 }, - monthMode: true, - fixedWeekCount: true - } - } - }); - - exports.AbstractDayGridView = DayGridView; - exports.DayBgRow = DayBgRow; - exports.DayGrid = DayGrid; - exports.DayGridSlicer = DayGridSlicer; - exports.DayGridView = DayGridView$1; - exports.SimpleDayGrid = SimpleDayGrid; - exports.buildBasicDayTable = buildDayTable; - exports.default = main; - - Object.defineProperty(exports, '__esModule', { value: true }); - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/daygrid/main.min.css b/htdocs/public/high/plugins/fullcalendar/packages/daygrid/main.min.css deleted file mode 100644 index 55a57241..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/daygrid/main.min.css +++ /dev/null @@ -1 +0,0 @@ -.fc-dayGridDay-view .fc-content-skeleton,.fc-dayGridWeek-view .fc-content-skeleton{padding-bottom:1em}.fc-dayGrid-view .fc-body .fc-row{min-height:4em}.fc-row.fc-rigid{overflow:hidden}.fc-row.fc-rigid .fc-content-skeleton{position:absolute;top:0;left:0;right:0}.fc-day-top.fc-other-month{opacity:.3}.fc-dayGrid-view .fc-day-number,.fc-dayGrid-view .fc-week-number{padding:2px}.fc-dayGrid-view th.fc-day-number,.fc-dayGrid-view th.fc-week-number{padding:0 2px}.fc-ltr .fc-dayGrid-view .fc-day-top .fc-day-number{float:right}.fc-rtl .fc-dayGrid-view .fc-day-top .fc-day-number{float:left}.fc-ltr .fc-dayGrid-view .fc-day-top .fc-week-number{float:left;border-radius:0 0 3px}.fc-rtl .fc-dayGrid-view .fc-day-top .fc-week-number{float:right;border-radius:0 0 0 3px}.fc-dayGrid-view .fc-day-top .fc-week-number{min-width:1.5em;text-align:center;background-color:#f2f2f2;color:grey}.fc-dayGrid-view td.fc-week-number{text-align:center}.fc-dayGrid-view td.fc-week-number>*{display:inline-block;min-width:1.25em} \ No newline at end of file diff --git a/htdocs/public/high/plugins/fullcalendar/packages/daygrid/main.min.js b/htdocs/public/high/plugins/fullcalendar/packages/daygrid/main.min.js deleted file mode 100644 index 2f4c0d45..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/daygrid/main.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/*! -FullCalendar Day Grid Plugin v4.3.0 -Docs & License: https://fullcalendar.io/ -(c) 2019 Adam Shaw -*/ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@fullcalendar/core")):"function"==typeof define&&define.amd?define(["exports","@fullcalendar/core"],t):t((e=e||self).FullCalendarDayGrid={},e.FullCalendar)}(this,function(e,t){"use strict";var r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)};function n(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var i=function(){return(i=Object.assign||function(e){for(var t,r=1,n=arguments.length;r'+t.htmlEscape(n)+""),i=''+(t.htmlEscape(d.title||"")||" ")+"",'
'+("rtl"===l.dir?i+" "+y:y+" "+i)+"
"+(u?'
':"")+(f?'
':"")+"
"},r.prototype.computeEventTimeFormat=function(){return{hour:"numeric",minute:"2-digit",omitZeroMinute:!0,meridiem:"narrow"}},r.prototype.computeDisplayEventEnd=function(){return!1},r}(t.FgEventRenderer),a=function(e){function r(t){var r=e.call(this,t.context)||this;return r.dayGrid=t,r}return n(r,e),r.prototype.attachSegs=function(e,t){var r=this.rowStructs=this.renderSegRows(e);this.dayGrid.rowEls.forEach(function(e,t){e.querySelector(".fc-content-skeleton > table").appendChild(r[t].tbodyEl)}),t||this.dayGrid.removeSegPopover()},r.prototype.detachSegs=function(){for(var e,r=this.rowStructs||[];e=r.pop();)t.removeElement(e.tbodyEl);this.rowStructs=null},r.prototype.renderSegRows=function(e){var t,r,n=[];for(t=this.groupSegRows(e),r=0;r=e.firstCol)return!0;return!1}function c(e,t){return e.leftCol-t.leftCol}var h=function(e){function r(){return null!==e&&e.apply(this,arguments)||this}return n(r,e),r.prototype.attachSegs=function(e,r){var n=r.sourceSeg,i=this.rowStructs=this.renderSegRows(e);this.dayGrid.rowEls.forEach(function(e,r){var o,s,l=t.htmlToElement('
');n&&n.row===r?o=n.el:(o=e.querySelector(".fc-content-skeleton tbody"))||(o=e.querySelector(".fc-content-skeleton table")),s=o.getBoundingClientRect().top-e.getBoundingClientRect().top,l.style.top=s+"px",l.querySelector("table").appendChild(i[r].tbodyEl),e.appendChild(l)})},r}(a),p=function(e){function r(t){var r=e.call(this,t.context)||this;return r.fillSegTag="td",r.dayGrid=t,r}return n(r,e),r.prototype.renderSegs=function(t,r){"bgEvent"===t&&(r=r.filter(function(e){return e.eventRange.def.allDay})),e.prototype.renderSegs.call(this,t,r)},r.prototype.attachSegs=function(e,t){var r,n,i,o=[];for(r=0;r
')).getElementsByTagName("tr")[0],d>0&&t.appendToElement(o,new Array(d+1).join('')),r.el.colSpan=c-d,o.appendChild(r.el),c'));var h=s.renderProps.renderIntroHtml();return h&&(s.isRtl?t.appendToElement(o,h):t.prependToElement(o,h)),i},r}(t.FillRenderer),u=function(e){function r(r,n){var i=e.call(this,r,n)||this,o=i.eventRenderer=new f(i),s=i.renderFrame=t.memoizeRendering(i._renderFrame);return i.renderFgEvents=t.memoizeRendering(o.renderSegs.bind(o),o.unrender.bind(o),[s]),i.renderEventSelection=t.memoizeRendering(o.selectByInstanceId.bind(o),o.unselectByInstanceId.bind(o),[i.renderFgEvents]),i.renderEventDrag=t.memoizeRendering(o.hideByHash.bind(o),o.showByHash.bind(o),[s]),i.renderEventResize=t.memoizeRendering(o.hideByHash.bind(o),o.showByHash.bind(o),[s]),r.calendar.registerInteractiveComponent(i,{el:i.el,useEventCenter:!1}),i}return n(r,e),r.prototype.render=function(e){this.renderFrame(e.date),this.renderFgEvents(e.fgSegs),this.renderEventSelection(e.eventSelection),this.renderEventDrag(e.eventDragInstances),this.renderEventResize(e.eventResizeInstances)},r.prototype.destroy=function(){e.prototype.destroy.call(this),this.renderFrame.unrender(),this.calendar.unregisterInteractiveComponent(this)},r.prototype._renderFrame=function(e){var r=this.theme,n=this.dateEnv.format(e,t.createFormatter(this.opt("dayPopoverFormat")));this.el.innerHTML='
'+t.htmlEscape(n)+'
',this.segContainerEl=this.el.querySelector(".fc-event-container")},r.prototype.queryHit=function(e,r,n,i){var o=this.props.date;if(e'),"rtl"===this.context.options.dir&&t.reverse(),""+t.join("")+""},e}();function m(e,r,n,i){var o=n.dateEnv,s=n.theme,l=t.rangeContainsMarker(r.activeRange,e),a=t.getDayClasses(e,r,n);return a.unshift("fc-day",s.getClass("widgetContent")),'"}var y=t.createFormatter({day:"numeric"}),v=t.createFormatter({week:"numeric"}),b=function(e){function r(r,n,i){var o=e.call(this,r,n)||this;o.bottomCoordPadding=0,o.isCellSizesDirty=!1;var s=o.eventRenderer=new a(o),l=o.fillRenderer=new p(o);o.mirrorRenderer=new h(o);var d=o.renderCells=t.memoizeRendering(o._renderCells,o._unrenderCells);return o.renderBusinessHours=t.memoizeRendering(l.renderSegs.bind(l,"businessHours"),l.unrender.bind(l,"businessHours"),[d]),o.renderDateSelection=t.memoizeRendering(l.renderSegs.bind(l,"highlight"),l.unrender.bind(l,"highlight"),[d]),o.renderBgEvents=t.memoizeRendering(l.renderSegs.bind(l,"bgEvent"),l.unrender.bind(l,"bgEvent"),[d]),o.renderFgEvents=t.memoizeRendering(s.renderSegs.bind(s),s.unrender.bind(s),[d]),o.renderEventSelection=t.memoizeRendering(s.selectByInstanceId.bind(s),s.unselectByInstanceId.bind(s),[o.renderFgEvents]),o.renderEventDrag=t.memoizeRendering(o._renderEventDrag,o._unrenderEventDrag,[d]),o.renderEventResize=t.memoizeRendering(o._renderEventResize,o._unrenderEventResize,[d]),o.renderProps=i,o}return n(r,e),r.prototype.render=function(e){var t=e.cells;this.rowCnt=t.length,this.colCnt=t[0].length,this.renderCells(t,e.isRigid),this.renderBusinessHours(e.businessHourSegs),this.renderDateSelection(e.dateSelectionSegs),this.renderBgEvents(e.bgEventSegs),this.renderFgEvents(e.fgEventSegs),this.renderEventSelection(e.eventSelection),this.renderEventDrag(e.eventDrag),this.renderEventResize(e.eventResize),this.segPopoverTile&&this.updateSegPopoverTile()},r.prototype.destroy=function(){e.prototype.destroy.call(this),this.renderCells.unrender()},r.prototype.getCellRange=function(e,r){var n=this.props.cells[e][r].date;return{start:n,end:t.addDays(n,1)}},r.prototype.updateSegPopoverTile=function(e,t){var r=this.props;this.segPopoverTile.receiveProps({date:e||this.segPopoverTile.props.date,fgSegs:t||this.segPopoverTile.props.fgSegs,eventSelection:r.eventSelection,eventDragInstances:r.eventDrag?r.eventDrag.affectedInstances:null,eventResizeInstances:r.eventResize?r.eventResize.affectedInstances:null})},r.prototype._renderCells=function(e,r){var n,i,o=this.view,s=this.dateEnv,l=this.rowCnt,a=this.colCnt,d="";for(n=0;n
'+i.renderHtml({cells:this.props.cells[e],dateProfile:this.props.dateProfile,renderIntroHtml:this.renderProps.renderBgIntroHtml})+'
'+(this.getIsNumbersVisible()?""+this.renderNumberTrHtml(e)+"":"")+"
"},r.prototype.getIsNumbersVisible=function(){return this.getIsDayNumbersVisible()||this.renderProps.cellWeekNumbersVisible||this.renderProps.colWeekNumbersVisible},r.prototype.getIsDayNumbersVisible=function(){return this.rowCnt>1},r.prototype.renderNumberTrHtml=function(e){var t=this.renderProps.renderNumberIntroHtml(e,this);return""+(this.isRtl?"":t)+this.renderNumberCellsHtml(e)+(this.isRtl?t:"")+""},r.prototype.renderNumberCellsHtml=function(e){var t,r,n=[];for(t=0;t",this.renderProps.cellWeekNumbersVisible&&e.getUTCDay()===n&&(s+=t.buildGotoAnchorHtml(i,{date:e,type:"week"},{class:"fc-week-number"},o.format(e,v))),a&&(s+=t.buildGotoAnchorHtml(i,e,{class:"fc-day-number"},o.format(e,y))),s+=""):""},r.prototype.updateSize=function(e){var t=this.fillRenderer,r=this.eventRenderer,n=this.mirrorRenderer;(e||this.isCellSizesDirty||this.view.calendar.isEventsUpdated)&&(this.buildPositionCaches(),this.isCellSizesDirty=!1),t.computeSizes(e),r.computeSizes(e),n.computeSizes(e),t.assignSizes(e),r.assignSizes(e),n.assignSizes(e)},r.prototype.buildPositionCaches=function(){this.buildColPositions(),this.buildRowPositions()},r.prototype.buildColPositions=function(){this.colPositions.build()},r.prototype.buildRowPositions=function(){this.rowPositions.build(),this.rowPositions.bottoms[this.rowCnt-1]+=this.bottomCoordPadding},r.prototype.positionToHit=function(e,t){var r=this.colPositions,n=this.rowPositions,i=r.leftToIndex(e),o=n.topToIndex(t);if(null!=o&&null!=i)return{row:o,col:i,dateSpan:{range:this.getCellRange(o,i),allDay:!0},dayEl:this.getCellEl(o,i),relativeRect:{left:r.lefts[i],right:r.rights[i],top:n.tops[o],bottom:n.bottoms[o]}}},r.prototype.getCellEl=function(e,t){return this.cellEls[e*this.colCnt+t]},r.prototype._renderEventDrag=function(e){e&&(this.eventRenderer.hideByHash(e.affectedInstances),this.fillRenderer.renderSegs("highlight",e.segs))},r.prototype._unrenderEventDrag=function(e){e&&(this.eventRenderer.showByHash(e.affectedInstances),this.fillRenderer.unrender("highlight"))},r.prototype._renderEventResize=function(e){e&&(this.eventRenderer.hideByHash(e.affectedInstances),this.fillRenderer.renderSegs("highlight",e.segs),this.mirrorRenderer.renderSegs(e.segs,{isResizing:!0,sourceSeg:e.sourceSeg}))},r.prototype._unrenderEventResize=function(e){e&&(this.eventRenderer.showByHash(e.affectedInstances),this.fillRenderer.unrender("highlight"),this.mirrorRenderer.unrender(e.segs,{isResizing:!0,sourceSeg:e.sourceSeg}))},r.prototype.removeSegPopover=function(){this.segPopover&&this.segPopover.hide()},r.prototype.limitRows=function(e){var t,r,n=this.eventRenderer.rowStructs||[];for(t=0;ti)return r;return!1},r.prototype.limitRow=function(e,r){var n,i,o,s,l,a,d,c,h,p,u,f,g,m,y,v=this,b=this.colCnt,w=this.isRtl,S=this.eventRenderer.rowStructs[e],C=[],E=0,R=function(n){for(;E"+t.htmlEscape(s.opt("weekLabel"))+"":""},s.renderDayGridNumberIntroHtml=function(e,r){var n=s.dateEnv,i=r.props.cells[e][0].date;return s.colWeekNumbersVisible?'"+t.buildGotoAnchorHtml(s,{date:i,type:"week",forceOff:1===r.colCnt},n.format(i,w))+"":""},s.renderDayGridBgIntroHtml=function(){var e=s.theme;return s.colWeekNumbersVisible?'":""},s.renderDayGridIntroHtml=function(){return s.colWeekNumbersVisible?'":""},s.el.classList.add("fc-dayGrid-view"),s.el.innerHTML=s.renderSkeletonHtml(),s.scroller=new t.ScrollComponent("hidden","auto");var l=s.scroller.el;s.el.querySelector(".fc-body > tr > td").appendChild(l),l.classList.add("fc-day-grid-container");var a,d=t.createElement("div",{className:"fc-day-grid"});return l.appendChild(d),s.opt("weekNumbers")?s.opt("weekNumbersWithinDays")?(a=!0,s.colWeekNumbersVisible=!1):(a=!1,s.colWeekNumbersVisible=!0):(s.colWeekNumbersVisible=!1,a=!1),s.dayGrid=new b(s.context,d,{renderNumberIntroHtml:s.renderDayGridNumberIntroHtml,renderBgIntroHtml:s.renderDayGridBgIntroHtml,renderIntroHtml:s.renderDayGridIntroHtml,colWeekNumbersVisible:s.colWeekNumbersVisible,cellWeekNumbersVisible:a}),s}return n(r,e),r.prototype.destroy=function(){e.prototype.destroy.call(this),this.dayGrid.destroy(),this.scroller.destroy()},r.prototype.renderSkeletonHtml=function(){var e=this.theme;return''+(this.opt("columnHeader")?'':"")+'
 
'},r.prototype.weekNumberStyleAttr=function(){return null!=this.weekNumberWidth?'style="width:'+this.weekNumberWidth+'px"':""},r.prototype.hasRigidRows=function(){var e=this.opt("eventLimit");return e&&"number"!=typeof e},r.prototype.updateSize=function(t,r,n){e.prototype.updateSize.call(this,t,r,n),this.dayGrid.updateSize(t)},r.prototype.updateBaseSize=function(e,r,n){var i,o,s=this.dayGrid,l=this.opt("eventLimit"),a=this.header?this.header.el:null;s.rowEls?(this.colWeekNumbersVisible&&(this.weekNumberWidth=t.matchCellWidths(t.findElements(this.el,".fc-week-number"))),this.scroller.clear(),a&&t.uncompensateScroll(a),s.removeSegPopover(),l&&"number"==typeof l&&s.limitRows(l),i=this.computeScrollerHeight(r),this.setGridHeight(i,n),l&&"number"!=typeof l&&s.limitRows(l),n||(this.scroller.setHeight(i),((o=this.scroller.getScrollbarWidths()).left||o.right)&&(a&&t.compensateScroll(a,o),i=this.computeScrollerHeight(r),this.scroller.setHeight(i)),this.scroller.lockOverflow(o))):n||(i=this.computeScrollerHeight(r),this.scroller.setHeight(i))},r.prototype.computeScrollerHeight=function(e){return e-t.subtractInnerElHeight(this.el,this.scroller.el)},r.prototype.setGridHeight=function(e,r){this.opt("monthMode")?(r&&(e*=this.dayGrid.rowCnt/6),t.distributeHeight(this.dayGrid.rowEls,e,!r)):r?t.undistributeHeight(this.dayGrid.rowEls):t.distributeHeight(this.dayGrid.rowEls,e,!0)},r.prototype.computeDateScroll=function(e){return{top:0}},r.prototype.queryDateScroll=function(){return{top:this.scroller.getScrollTop()}},r.prototype.applyDateScroll=function(e){void 0!==e.top&&this.scroller.setScrollTop(e.top)},r}(t.View);S.prototype.dateProfileGeneratorClass=o;var C=function(e){function t(t,r){var n=e.call(this,t,r.el)||this;return n.slicer=new E,n.dayGrid=r,t.calendar.registerInteractiveComponent(n,{el:n.dayGrid.el}),n}return n(t,e),t.prototype.destroy=function(){e.prototype.destroy.call(this),this.calendar.unregisterInteractiveComponent(this)},t.prototype.render=function(e){var t=this.dayGrid,r=e.dateProfile,n=e.dayTable;t.receiveProps(i({},this.slicer.sliceProps(e,r,e.nextDayThreshold,t,n),{dateProfile:r,cells:n.cells,isRigid:e.isRigid}))},t.prototype.buildPositionCaches=function(){this.dayGrid.buildPositionCaches()},t.prototype.queryHit=function(e,t){var r=this.dayGrid.positionToHit(e,t);if(r)return{component:this.dayGrid,dateSpan:r.dateSpan,dayEl:r.dayEl,rect:{left:r.relativeRect.left,right:r.relativeRect.right,top:r.relativeRect.top,bottom:r.relativeRect.bottom},layer:0}},t}(t.DateComponent),E=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.prototype.sliceRange=function(e,t){return t.sliceRange(e)},t}(t.Slicer),R=function(e){function r(r,n,i,o){var s=e.call(this,r,n,i,o)||this;return s.buildDayTable=t.memoize(H),s.opt("columnHeader")&&(s.header=new t.DayHeader(s.context,s.el.querySelector(".fc-head-container"))),s.simpleDayGrid=new C(s.context,s.dayGrid),s}return n(r,e),r.prototype.destroy=function(){e.prototype.destroy.call(this),this.header&&this.header.destroy(),this.simpleDayGrid.destroy()},r.prototype.render=function(t){e.prototype.render.call(this,t);var r=this.props.dateProfile,n=this.dayTable=this.buildDayTable(r,this.dateProfileGenerator);this.header&&this.header.receiveProps({dateProfile:r,dates:n.headerDates,datesRepDistinctDays:1===n.rowCnt,renderIntroHtml:this.renderHeadIntroHtml}),this.simpleDayGrid.receiveProps({dateProfile:r,dayTable:n,businessHours:t.businessHours,dateSelection:t.dateSelection,eventStore:t.eventStore,eventUiBases:t.eventUiBases,eventSelection:t.eventSelection,eventDrag:t.eventDrag,eventResize:t.eventResize,isRigid:this.hasRigidRows(),nextDayThreshold:this.nextDayThreshold})},r}(S);function H(e,r){var n=new t.DaySeries(e.renderRange,r);return new t.DayTable(n,/year|month|week/.test(e.currentRangeUnit))}var D=t.createPlugin({defaultView:"dayGridMonth",views:{dayGrid:R,dayGridDay:{type:"dayGrid",duration:{days:1}},dayGridWeek:{type:"dayGrid",duration:{weeks:1}},dayGridMonth:{type:"dayGrid",duration:{months:1},monthMode:!0,fixedWeekCount:!0}}});e.AbstractDayGridView=S,e.DayBgRow=g,e.DayGrid=b,e.DayGridSlicer=E,e.DayGridView=R,e.SimpleDayGrid=C,e.buildBasicDayTable=H,e.default=D,Object.defineProperty(e,"__esModule",{value:!0})}); \ No newline at end of file diff --git a/htdocs/public/high/plugins/fullcalendar/packages/daygrid/package.json b/htdocs/public/high/plugins/fullcalendar/packages/daygrid/package.json deleted file mode 100644 index c6e16ce1..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/daygrid/package.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "name": "@fullcalendar/daygrid", - "version": "4.3.0", - "title": "FullCalendar Day Grid Plugin", - "description": "Display events on Month view or DayGrid view", - "keywords": [ - "calendar", - "event", - "full-sized" - ], - "homepage": "https://fullcalendar.io/", - "docs": "https://fullcalendar.io/docs/month-view", - "bugs": "https://fullcalendar.io/reporting-bugs", - "repository": { - "type": "git", - "url": "https://github.com/fullcalendar/fullcalendar.git", - "homepage": "https://github.com/fullcalendar/fullcalendar" - }, - "license": "MIT", - "author": { - "name": "Adam Shaw", - "email": "arshaw@arshaw.com", - "url": "http://arshaw.com/" - }, - "copyright": "2019 Adam Shaw", - "peerDependencies": { - "@fullcalendar/core": "~4.3.0" - }, - "main": "main.js", - "module": "main.esm.js", - "unpkg": "main.min.js", - "types": "main.d.ts" -} diff --git a/htdocs/public/high/plugins/fullcalendar/packages/google-calendar/LICENSE.txt b/htdocs/public/high/plugins/fullcalendar/packages/google-calendar/LICENSE.txt deleted file mode 100644 index 2149cfbe..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/google-calendar/LICENSE.txt +++ /dev/null @@ -1,20 +0,0 @@ -Copyright (c) 2019 Adam Shaw - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/htdocs/public/high/plugins/fullcalendar/packages/google-calendar/README.md b/htdocs/public/high/plugins/fullcalendar/packages/google-calendar/README.md deleted file mode 100644 index a4d6c5cc..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/google-calendar/README.md +++ /dev/null @@ -1,8 +0,0 @@ - -# FullCalendar Google Calendar Plugin - -Fetch events from a public Google Calendar feed - -[View the docs »](https://fullcalendar.io/docs/google-calendar) - -This package was created from the [FullCalendar monorepo »](https://github.com/fullcalendar/fullcalendar) diff --git a/htdocs/public/high/plugins/fullcalendar/packages/google-calendar/main.d.ts b/htdocs/public/high/plugins/fullcalendar/packages/google-calendar/main.d.ts deleted file mode 100644 index 105a6c6d..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/google-calendar/main.d.ts +++ /dev/null @@ -1,20 +0,0 @@ -// Generated by dts-bundle v0.7.3-fork.1 -// Dependencies for this module: -// main.d.ts - -declare module '@fullcalendar/google-calendar' { - module '@fullcalendar/core' { - interface OptionsInput { - googleCalendarApiKey?: string; - } - } - module '@fullcalendar/core/structs/event-source' { - interface ExtendedEventSourceInput { - googleCalendarApiKey?: string; - googleCalendarId?: string; - } - } - const _default: import("@fullcalendar/core").PluginDef; - export default _default; -} - diff --git a/htdocs/public/high/plugins/fullcalendar/packages/google-calendar/main.esm.js b/htdocs/public/high/plugins/fullcalendar/packages/google-calendar/main.esm.js deleted file mode 100644 index 274fc5df..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/google-calendar/main.esm.js +++ /dev/null @@ -1,162 +0,0 @@ -/*! -FullCalendar Google Calendar Plugin v4.3.0 -Docs & License: https://fullcalendar.io/ -(c) 2019 Adam Shaw -*/ - -import { createPlugin, refineProps, requestJson, addDays } from '@fullcalendar/core'; - -/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. All rights reserved. -Licensed under the Apache License, Version 2.0 (the "License"); you may not use -this file except in compliance with the License. You may obtain a copy of the -License at http://www.apache.org/licenses/LICENSE-2.0 - -THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED -WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, -MERCHANTABLITY OR NON-INFRINGEMENT. - -See the Apache Version 2.0 License for specific language governing permissions -and limitations under the License. -***************************************************************************** */ - -var __assign = function() { - __assign = Object.assign || function __assign(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); -}; - -// TODO: expose somehow -var API_BASE = 'https://www.googleapis.com/calendar/v3/calendars'; -var STANDARD_PROPS = { - url: String, - googleCalendarApiKey: String, - googleCalendarId: String, - data: null -}; -var eventSourceDef = { - parseMeta: function (raw) { - if (typeof raw === 'string') { - raw = { url: raw }; - } - if (typeof raw === 'object') { - var standardProps = refineProps(raw, STANDARD_PROPS); - if (!standardProps.googleCalendarId && standardProps.url) { - standardProps.googleCalendarId = parseGoogleCalendarId(standardProps.url); - } - delete standardProps.url; - if (standardProps.googleCalendarId) { - return standardProps; - } - } - return null; - }, - fetch: function (arg, onSuccess, onFailure) { - var calendar = arg.calendar; - var meta = arg.eventSource.meta; - var apiKey = meta.googleCalendarApiKey || calendar.opt('googleCalendarApiKey'); - if (!apiKey) { - onFailure({ - message: 'Specify a googleCalendarApiKey. See http://fullcalendar.io/docs/google_calendar/' - }); - } - else { - var url = buildUrl(meta); - var requestParams_1 = buildRequestParams(arg.range, apiKey, meta.data, calendar.dateEnv); - requestJson('GET', url, requestParams_1, function (body, xhr) { - if (body.error) { - onFailure({ - message: 'Google Calendar API: ' + body.error.message, - errors: body.error.errors, - xhr: xhr - }); - } - else { - onSuccess({ - rawEvents: gcalItemsToRawEventDefs(body.items, requestParams_1.timeZone), - xhr: xhr - }); - } - }, function (message, xhr) { - onFailure({ message: message, xhr: xhr }); - }); - } - } -}; -function parseGoogleCalendarId(url) { - var match; - // detect if the ID was specified as a single string. - // will match calendars like "asdf1234@calendar.google.com" in addition to person email calendars. - if (/^[^\/]+@([^\/\.]+\.)*(google|googlemail|gmail)\.com$/.test(url)) { - return url; - } - else if ((match = /^https:\/\/www.googleapis.com\/calendar\/v3\/calendars\/([^\/]*)/.exec(url)) || - (match = /^https?:\/\/www.google.com\/calendar\/feeds\/([^\/]*)/.exec(url))) { - return decodeURIComponent(match[1]); - } -} -function buildUrl(meta) { - return API_BASE + '/' + encodeURIComponent(meta.googleCalendarId) + '/events'; -} -function buildRequestParams(range, apiKey, extraParams, dateEnv) { - var params; - var startStr; - var endStr; - if (dateEnv.canComputeOffset) { - // strings will naturally have offsets, which GCal needs - startStr = dateEnv.formatIso(range.start); - endStr = dateEnv.formatIso(range.end); - } - else { - // when timezone isn't known, we don't know what the UTC offset should be, so ask for +/- 1 day - // from the UTC day-start to guarantee we're getting all the events - // (start/end will be UTC-coerced dates, so toISOString is okay) - startStr = addDays(range.start, -1).toISOString(); - endStr = addDays(range.end, 1).toISOString(); - } - params = __assign({}, (extraParams || {}), { key: apiKey, timeMin: startStr, timeMax: endStr, singleEvents: true, maxResults: 9999 }); - if (dateEnv.timeZone !== 'local') { - params.timeZone = dateEnv.timeZone; - } - return params; -} -function gcalItemsToRawEventDefs(items, gcalTimezone) { - return items.map(function (item) { - return gcalItemToRawEventDef(item, gcalTimezone); - }); -} -function gcalItemToRawEventDef(item, gcalTimezone) { - var url = item.htmlLink || null; - // make the URLs for each event show times in the correct timezone - if (url && gcalTimezone) { - url = injectQsComponent(url, 'ctz=' + gcalTimezone); - } - return { - id: item.id, - title: item.summary, - start: item.start.dateTime || item.start.date, - end: item.end.dateTime || item.end.date, - url: url, - location: item.location, - description: item.description - }; -} -// Injects a string like "arg=value" into the querystring of a URL -// TODO: move to a general util file? -function injectQsComponent(url, component) { - // inject it after the querystring but before the fragment - return url.replace(/(\?.*?)?(#|$)/, function (whole, qs, hash) { - return (qs ? qs + '&' : '?') + component + hash; - }); -} -var main = createPlugin({ - eventSourceDefs: [eventSourceDef] -}); - -export default main; diff --git a/htdocs/public/high/plugins/fullcalendar/packages/google-calendar/main.js b/htdocs/public/high/plugins/fullcalendar/packages/google-calendar/main.js deleted file mode 100644 index fca85d45..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/google-calendar/main.js +++ /dev/null @@ -1,170 +0,0 @@ -/*! -FullCalendar Google Calendar Plugin v4.3.0 -Docs & License: https://fullcalendar.io/ -(c) 2019 Adam Shaw -*/ - -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@fullcalendar/core')) : - typeof define === 'function' && define.amd ? define(['exports', '@fullcalendar/core'], factory) : - (global = global || self, factory(global.FullCalendarGoogleCalendar = {}, global.FullCalendar)); -}(this, function (exports, core) { 'use strict'; - - /*! ***************************************************************************** - Copyright (c) Microsoft Corporation. All rights reserved. - Licensed under the Apache License, Version 2.0 (the "License"); you may not use - this file except in compliance with the License. You may obtain a copy of the - License at http://www.apache.org/licenses/LICENSE-2.0 - - THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED - WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, - MERCHANTABLITY OR NON-INFRINGEMENT. - - See the Apache Version 2.0 License for specific language governing permissions - and limitations under the License. - ***************************************************************************** */ - - var __assign = function() { - __assign = Object.assign || function __assign(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); - }; - - // TODO: expose somehow - var API_BASE = 'https://www.googleapis.com/calendar/v3/calendars'; - var STANDARD_PROPS = { - url: String, - googleCalendarApiKey: String, - googleCalendarId: String, - data: null - }; - var eventSourceDef = { - parseMeta: function (raw) { - if (typeof raw === 'string') { - raw = { url: raw }; - } - if (typeof raw === 'object') { - var standardProps = core.refineProps(raw, STANDARD_PROPS); - if (!standardProps.googleCalendarId && standardProps.url) { - standardProps.googleCalendarId = parseGoogleCalendarId(standardProps.url); - } - delete standardProps.url; - if (standardProps.googleCalendarId) { - return standardProps; - } - } - return null; - }, - fetch: function (arg, onSuccess, onFailure) { - var calendar = arg.calendar; - var meta = arg.eventSource.meta; - var apiKey = meta.googleCalendarApiKey || calendar.opt('googleCalendarApiKey'); - if (!apiKey) { - onFailure({ - message: 'Specify a googleCalendarApiKey. See http://fullcalendar.io/docs/google_calendar/' - }); - } - else { - var url = buildUrl(meta); - var requestParams_1 = buildRequestParams(arg.range, apiKey, meta.data, calendar.dateEnv); - core.requestJson('GET', url, requestParams_1, function (body, xhr) { - if (body.error) { - onFailure({ - message: 'Google Calendar API: ' + body.error.message, - errors: body.error.errors, - xhr: xhr - }); - } - else { - onSuccess({ - rawEvents: gcalItemsToRawEventDefs(body.items, requestParams_1.timeZone), - xhr: xhr - }); - } - }, function (message, xhr) { - onFailure({ message: message, xhr: xhr }); - }); - } - } - }; - function parseGoogleCalendarId(url) { - var match; - // detect if the ID was specified as a single string. - // will match calendars like "asdf1234@calendar.google.com" in addition to person email calendars. - if (/^[^\/]+@([^\/\.]+\.)*(google|googlemail|gmail)\.com$/.test(url)) { - return url; - } - else if ((match = /^https:\/\/www.googleapis.com\/calendar\/v3\/calendars\/([^\/]*)/.exec(url)) || - (match = /^https?:\/\/www.google.com\/calendar\/feeds\/([^\/]*)/.exec(url))) { - return decodeURIComponent(match[1]); - } - } - function buildUrl(meta) { - return API_BASE + '/' + encodeURIComponent(meta.googleCalendarId) + '/events'; - } - function buildRequestParams(range, apiKey, extraParams, dateEnv) { - var params; - var startStr; - var endStr; - if (dateEnv.canComputeOffset) { - // strings will naturally have offsets, which GCal needs - startStr = dateEnv.formatIso(range.start); - endStr = dateEnv.formatIso(range.end); - } - else { - // when timezone isn't known, we don't know what the UTC offset should be, so ask for +/- 1 day - // from the UTC day-start to guarantee we're getting all the events - // (start/end will be UTC-coerced dates, so toISOString is okay) - startStr = core.addDays(range.start, -1).toISOString(); - endStr = core.addDays(range.end, 1).toISOString(); - } - params = __assign({}, (extraParams || {}), { key: apiKey, timeMin: startStr, timeMax: endStr, singleEvents: true, maxResults: 9999 }); - if (dateEnv.timeZone !== 'local') { - params.timeZone = dateEnv.timeZone; - } - return params; - } - function gcalItemsToRawEventDefs(items, gcalTimezone) { - return items.map(function (item) { - return gcalItemToRawEventDef(item, gcalTimezone); - }); - } - function gcalItemToRawEventDef(item, gcalTimezone) { - var url = item.htmlLink || null; - // make the URLs for each event show times in the correct timezone - if (url && gcalTimezone) { - url = injectQsComponent(url, 'ctz=' + gcalTimezone); - } - return { - id: item.id, - title: item.summary, - start: item.start.dateTime || item.start.date, - end: item.end.dateTime || item.end.date, - url: url, - location: item.location, - description: item.description - }; - } - // Injects a string like "arg=value" into the querystring of a URL - // TODO: move to a general util file? - function injectQsComponent(url, component) { - // inject it after the querystring but before the fragment - return url.replace(/(\?.*?)?(#|$)/, function (whole, qs, hash) { - return (qs ? qs + '&' : '?') + component + hash; - }); - } - var main = core.createPlugin({ - eventSourceDefs: [eventSourceDef] - }); - - exports.default = main; - - Object.defineProperty(exports, '__esModule', { value: true }); - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/google-calendar/main.min.js b/htdocs/public/high/plugins/fullcalendar/packages/google-calendar/main.min.js deleted file mode 100644 index e7626129..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/google-calendar/main.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/*! -FullCalendar Google Calendar Plugin v4.3.0 -Docs & License: https://fullcalendar.io/ -(c) 2019 Adam Shaw -*/ -!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("@fullcalendar/core")):"function"==typeof define&&define.amd?define(["exports","@fullcalendar/core"],r):r((e=e||self).FullCalendarGoogleCalendar={},e.FullCalendar)}(this,function(e,r){"use strict";var t=function(){return(t=Object.assign||function(e){for(var r,t=1,n=arguments.length;t void; - onPointerMove: (ev: PointerDragEvent) => void; - onPointerUp: (ev: PointerDragEvent) => void; - startDelay(ev: PointerDragEvent): void; - handleDelayEnd(ev: PointerDragEvent): void; - handleDistanceSurpassed(ev: PointerDragEvent): void; - tryStartDrag(ev: PointerDragEvent): void; - tryStopDrag(ev: PointerDragEvent): void; - stopDrag(ev: PointerDragEvent): void; - setIgnoreMove(bool: boolean): void; - setMirrorIsVisible(bool: boolean): void; - setMirrorNeedsRevert(bool: boolean): void; - setAutoScrollEnabled(bool: boolean): void; - } -} - -declare module '@fullcalendar/interaction/dnd/PointerDragging' { - import { EmitterMixin, PointerDragEvent } from '@fullcalendar/core'; - export { PointerDragging as default, PointerDragging }; - class PointerDragging { - containerEl: EventTarget; - subjectEl: HTMLElement | null; - downEl: HTMLElement | null; - emitter: EmitterMixin; - selector: string; - handleSelector: string; - shouldIgnoreMove: boolean; - shouldWatchScroll: boolean; - isDragging: boolean; - isTouchDragging: boolean; - wasTouchScroll: boolean; - origPageX: number; - origPageY: number; - prevPageX: number; - prevPageY: number; - prevScrollX: number; - prevScrollY: number; - constructor(containerEl: EventTarget); - destroy(): void; - tryStart(ev: UIEvent): boolean; - cleanup(): void; - querySubjectEl(ev: UIEvent): HTMLElement; - handleMouseDown: (ev: MouseEvent) => void; - handleMouseMove: (ev: MouseEvent) => void; - handleMouseUp: (ev: MouseEvent) => void; - shouldIgnoreMouse(): number | boolean; - handleTouchStart: (ev: TouchEvent) => void; - handleTouchMove: (ev: TouchEvent) => void; - handleTouchEnd: (ev: TouchEvent) => void; - handleTouchScroll: () => void; - cancelTouchScroll(): void; - initScrollWatch(ev: PointerDragEvent): void; - recordCoords(ev: PointerDragEvent): void; - handleScroll: (ev: UIEvent) => void; - destroyScrollWatch(): void; - createEventFromMouse(ev: MouseEvent, isFirst?: boolean): PointerDragEvent; - createEventFromTouch(ev: TouchEvent, isFirst?: boolean): PointerDragEvent; - } -} - -declare module '@fullcalendar/interaction/interactions-external/ExternalDraggable' { - import { PointerDragEvent } from '@fullcalendar/core'; - import FeaturefulElementDragging from '@fullcalendar/interaction/dnd/FeaturefulElementDragging'; - import { DragMetaGenerator } from '@fullcalendar/interaction/interactions-external/ExternalElementDragging'; - export interface ExternalDraggableSettings { - eventData?: DragMetaGenerator; - itemSelector?: string; - minDistance?: number; - longPressDelay?: number; - appendTo?: HTMLElement; - } - export { ExternalDraggable as default, ExternalDraggable }; - class ExternalDraggable { - dragging: FeaturefulElementDragging; - settings: ExternalDraggableSettings; - constructor(el: HTMLElement, settings?: ExternalDraggableSettings); - handlePointerDown: (ev: PointerDragEvent) => void; - handleDragStart: (ev: PointerDragEvent) => void; - destroy(): void; - } -} - -declare module '@fullcalendar/interaction/interactions-external/ThirdPartyDraggable' { - import { DragMetaGenerator } from '@fullcalendar/interaction/interactions-external/ExternalElementDragging'; - import InferredElementDragging from '@fullcalendar/interaction/interactions-external/InferredElementDragging'; - export interface ThirdPartyDraggableSettings { - eventData?: DragMetaGenerator; - itemSelector?: string; - mirrorSelector?: string; - } - export { ThirdPartyDraggable as default, ThirdPartyDraggable }; - class ThirdPartyDraggable { - dragging: InferredElementDragging; - constructor(containerOrSettings?: EventTarget | ThirdPartyDraggableSettings, settings?: ThirdPartyDraggableSettings); - destroy(): void; - } -} - -declare module '@fullcalendar/interaction/dnd/ElementMirror' { - import { Rect } from '@fullcalendar/core'; - export { ElementMirror as default, ElementMirror }; - class ElementMirror { - isVisible: boolean; - origScreenX?: number; - origScreenY?: number; - deltaX?: number; - deltaY?: number; - sourceEl: HTMLElement | null; - mirrorEl: HTMLElement | null; - sourceElRect: Rect | null; - parentNode: HTMLElement; - zIndex: number; - revertDuration: number; - start(sourceEl: HTMLElement, pageX: number, pageY: number): void; - handleMove(pageX: number, pageY: number): void; - setIsVisible(bool: boolean): void; - stop(needsRevertAnimation: boolean, callback: () => void): void; - doRevertAnimation(callback: () => void, revertDuration: number): void; - cleanup(): void; - updateElPosition(): void; - getMirrorEl(): HTMLElement; - } -} - -declare module '@fullcalendar/interaction/dnd/AutoScroller' { - import { ScrollGeomCache } from '@fullcalendar/interaction/scroll-geom-cache'; - export { AutoScroller as default, AutoScroller }; - class AutoScroller { - isEnabled: boolean; - scrollQuery: (Window | string)[]; - edgeThreshold: number; - maxVelocity: number; - pointerScreenX: number | null; - pointerScreenY: number | null; - isAnimating: boolean; - scrollCaches: ScrollGeomCache[] | null; - msSinceRequest?: number; - everMovedUp: boolean; - everMovedDown: boolean; - everMovedLeft: boolean; - everMovedRight: boolean; - start(pageX: number, pageY: number): void; - handleMove(pageX: number, pageY: number): void; - stop(): void; - requestAnimation(now: number): void; - } -} - -declare module '@fullcalendar/interaction/interactions-external/ExternalElementDragging' { - import { Hit, PointerDragEvent, EventTuple, DatePointApi, Calendar, EventInteractionState, DragMetaInput, DragMeta, View, ElementDragging } from '@fullcalendar/core'; - import HitDragging from '@fullcalendar/interaction/interactions/HitDragging'; - export type DragMetaGenerator = DragMetaInput | ((el: HTMLElement) => DragMetaInput); - export interface ExternalDropApi extends DatePointApi { - draggedEl: HTMLElement; - jsEvent: UIEvent; - view: View; - } - export { ExternalElementDragging as default, ExternalElementDragging }; - class ExternalElementDragging { - hitDragging: HitDragging; - receivingCalendar: Calendar | null; - droppableEvent: EventTuple | null; - suppliedDragMeta: DragMetaGenerator | null; - dragMeta: DragMeta | null; - constructor(dragging: ElementDragging, suppliedDragMeta?: DragMetaGenerator); - handleDragStart: (ev: PointerDragEvent) => void; - buildDragMeta(subjectEl: HTMLElement): DragMeta; - handleHitUpdate: (hit: Hit, isFinal: boolean, ev: PointerDragEvent) => void; - handleDragEnd: (pev: PointerDragEvent) => void; - displayDrag(nextCalendar: Calendar | null, state: EventInteractionState): void; - clearDrag(): void; - canDropElOnCalendar(el: HTMLElement, receivingCalendar: Calendar): boolean; - } -} - -declare module '@fullcalendar/interaction/interactions-external/InferredElementDragging' { - import { PointerDragEvent, ElementDragging } from '@fullcalendar/core'; - import PointerDragging from '@fullcalendar/interaction/dnd/PointerDragging'; - export { InferredElementDragging as default, InferredElementDragging }; - class InferredElementDragging extends ElementDragging { - pointer: PointerDragging; - shouldIgnoreMove: boolean; - mirrorSelector: string; - currentMirrorEl: HTMLElement | null; - constructor(containerEl: HTMLElement); - destroy(): void; - handlePointerDown: (ev: PointerDragEvent) => void; - handlePointerMove: (ev: PointerDragEvent) => void; - handlePointerUp: (ev: PointerDragEvent) => void; - setIgnoreMove(bool: boolean): void; - setMirrorIsVisible(bool: boolean): void; - } -} - -declare module '@fullcalendar/interaction/scroll-geom-cache' { - import { Rect, ScrollController } from '@fullcalendar/core'; - export abstract class ScrollGeomCache extends ScrollController { - clientRect: Rect; - origScrollTop: number; - origScrollLeft: number; - protected scrollController: ScrollController; - protected doesListening: boolean; - protected scrollTop: number; - protected scrollLeft: number; - protected scrollWidth: number; - protected scrollHeight: number; - protected clientWidth: number; - protected clientHeight: number; - constructor(scrollController: ScrollController, doesListening: boolean); - abstract getEventTarget(): EventTarget; - abstract computeClientRect(): Rect; - destroy(): void; - handleScroll: () => void; - getScrollTop(): number; - getScrollLeft(): number; - setScrollTop(top: number): void; - setScrollLeft(top: number): void; - getClientWidth(): number; - getClientHeight(): number; - getScrollWidth(): number; - getScrollHeight(): number; - handleScrollChange(): void; - } - export class ElementScrollGeomCache extends ScrollGeomCache { - constructor(el: HTMLElement, doesListening: boolean); - getEventTarget(): EventTarget; - computeClientRect(): { - left: number; - right: number; - top: number; - bottom: number; - }; - } - export class WindowScrollGeomCache extends ScrollGeomCache { - constructor(doesListening: boolean); - getEventTarget(): EventTarget; - computeClientRect(): Rect; - handleScrollChange(): void; - } -} - -declare module '@fullcalendar/interaction/interactions/HitDragging' { - import { EmitterMixin, PointerDragEvent, Point, Hit, InteractionSettingsStore, ElementDragging } from '@fullcalendar/core'; - import OffsetTracker from '@fullcalendar/interaction/OffsetTracker'; - export { HitDragging as default, HitDragging }; - class HitDragging { - droppableStore: InteractionSettingsStore; - dragging: ElementDragging; - emitter: EmitterMixin; - useSubjectCenter: boolean; - requireInitial: boolean; - offsetTrackers: { - [componentUid: string]: OffsetTracker; - }; - initialHit: Hit | null; - movingHit: Hit | null; - finalHit: Hit | null; - coordAdjust?: Point; - constructor(dragging: ElementDragging, droppableStore: InteractionSettingsStore); - handlePointerDown: (ev: PointerDragEvent) => void; - processFirstCoord(ev: PointerDragEvent): void; - handleDragStart: (ev: PointerDragEvent) => void; - handleDragMove: (ev: PointerDragEvent) => void; - handlePointerUp: (ev: PointerDragEvent) => void; - handleDragEnd: (ev: PointerDragEvent) => void; - handleMove(ev: PointerDragEvent, forceHandle?: boolean): void; - prepareHits(): void; - releaseHits(): void; - queryHitForOffset(offsetLeft: number, offsetTop: number): Hit | null; - } - export function isHitsEqual(hit0: Hit | null, hit1: Hit | null): boolean; -} - -declare module '@fullcalendar/interaction/OffsetTracker' { - import { Rect } from '@fullcalendar/core'; - import { ElementScrollGeomCache } from '@fullcalendar/interaction/scroll-geom-cache'; - export { OffsetTracker as default, OffsetTracker }; - class OffsetTracker { - scrollCaches: ElementScrollGeomCache[]; - origRect: Rect; - constructor(el: HTMLElement); - destroy(): void; - computeLeft(): number; - computeTop(): number; - isWithinClipping(pageX: number, pageY: number): boolean; - } -} - diff --git a/htdocs/public/high/plugins/fullcalendar/packages/interaction/main.esm.js b/htdocs/public/high/plugins/fullcalendar/packages/interaction/main.esm.js deleted file mode 100644 index 13f834e7..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/interaction/main.esm.js +++ /dev/null @@ -1,2132 +0,0 @@ -/*! -FullCalendar Interaction Plugin v4.3.0 -Docs & License: https://fullcalendar.io/ -(c) 2019 Adam Shaw -*/ - -import { config, elementClosest, EmitterMixin, applyStyle, whenTransitionDone, removeElement, ScrollController, ElementScrollController, computeInnerRect, WindowScrollController, preventSelection, preventContextMenu, allowSelection, allowContextMenu, ElementDragging, computeRect, getClippingParents, pointInsideRect, isDateSpansEqual, constrainPoint, intersectRects, getRectCenter, diffPoints, mapHash, rangeContainsRange, interactionSettingsToStore, Interaction, enableCursor, disableCursor, compareNumbers, getElSeg, getRelevantEvents, EventApi, createEmptyEventStore, applyMutationToEventStore, interactionSettingsStore, startOfDay, diffDates, createDuration, eventTupleToStore, isInteractionValid, parseDragMeta, elementMatches, parseEventDef, createEventInstance, globalDefaults, createPlugin } from '@fullcalendar/core'; - -/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. All rights reserved. -Licensed under the Apache License, Version 2.0 (the "License"); you may not use -this file except in compliance with the License. You may obtain a copy of the -License at http://www.apache.org/licenses/LICENSE-2.0 - -THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED -WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, -MERCHANTABLITY OR NON-INFRINGEMENT. - -See the Apache Version 2.0 License for specific language governing permissions -and limitations under the License. -***************************************************************************** */ -/* global Reflect, Promise */ - -var extendStatics = function(d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return extendStatics(d, b); -}; - -function __extends(d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -} - -var __assign = function() { - __assign = Object.assign || function __assign(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); -}; - -config.touchMouseIgnoreWait = 500; -var ignoreMouseDepth = 0; -var listenerCnt = 0; -var isWindowTouchMoveCancelled = false; -/* -Uses a "pointer" abstraction, which monitors UI events for both mouse and touch. -Tracks when the pointer "drags" on a certain element, meaning down+move+up. - -Also, tracks if there was touch-scrolling. -Also, can prevent touch-scrolling from happening. -Also, can fire pointermove events when scrolling happens underneath, even when no real pointer movement. - -emits: -- pointerdown -- pointermove -- pointerup -*/ -var PointerDragging = /** @class */ (function () { - function PointerDragging(containerEl) { - var _this = this; - this.subjectEl = null; - this.downEl = null; - // options that can be directly assigned by caller - this.selector = ''; // will cause subjectEl in all emitted events to be this element - this.handleSelector = ''; - this.shouldIgnoreMove = false; - this.shouldWatchScroll = true; // for simulating pointermove on scroll - // internal states - this.isDragging = false; - this.isTouchDragging = false; - this.wasTouchScroll = false; - // Mouse - // ---------------------------------------------------------------------------------------------------- - this.handleMouseDown = function (ev) { - if (!_this.shouldIgnoreMouse() && - isPrimaryMouseButton(ev) && - _this.tryStart(ev)) { - var pev = _this.createEventFromMouse(ev, true); - _this.emitter.trigger('pointerdown', pev); - _this.initScrollWatch(pev); - if (!_this.shouldIgnoreMove) { - document.addEventListener('mousemove', _this.handleMouseMove); - } - document.addEventListener('mouseup', _this.handleMouseUp); - } - }; - this.handleMouseMove = function (ev) { - var pev = _this.createEventFromMouse(ev); - _this.recordCoords(pev); - _this.emitter.trigger('pointermove', pev); - }; - this.handleMouseUp = function (ev) { - document.removeEventListener('mousemove', _this.handleMouseMove); - document.removeEventListener('mouseup', _this.handleMouseUp); - _this.emitter.trigger('pointerup', _this.createEventFromMouse(ev)); - _this.cleanup(); // call last so that pointerup has access to props - }; - // Touch - // ---------------------------------------------------------------------------------------------------- - this.handleTouchStart = function (ev) { - if (_this.tryStart(ev)) { - _this.isTouchDragging = true; - var pev = _this.createEventFromTouch(ev, true); - _this.emitter.trigger('pointerdown', pev); - _this.initScrollWatch(pev); - // unlike mouse, need to attach to target, not document - // https://stackoverflow.com/a/45760014 - var target = ev.target; - if (!_this.shouldIgnoreMove) { - target.addEventListener('touchmove', _this.handleTouchMove); - } - target.addEventListener('touchend', _this.handleTouchEnd); - target.addEventListener('touchcancel', _this.handleTouchEnd); // treat it as a touch end - // attach a handler to get called when ANY scroll action happens on the page. - // this was impossible to do with normal on/off because 'scroll' doesn't bubble. - // http://stackoverflow.com/a/32954565/96342 - window.addEventListener('scroll', _this.handleTouchScroll, true // useCapture - ); - } - }; - this.handleTouchMove = function (ev) { - var pev = _this.createEventFromTouch(ev); - _this.recordCoords(pev); - _this.emitter.trigger('pointermove', pev); - }; - this.handleTouchEnd = function (ev) { - if (_this.isDragging) { // done to guard against touchend followed by touchcancel - var target = ev.target; - target.removeEventListener('touchmove', _this.handleTouchMove); - target.removeEventListener('touchend', _this.handleTouchEnd); - target.removeEventListener('touchcancel', _this.handleTouchEnd); - window.removeEventListener('scroll', _this.handleTouchScroll, true); // useCaptured=true - _this.emitter.trigger('pointerup', _this.createEventFromTouch(ev)); - _this.cleanup(); // call last so that pointerup has access to props - _this.isTouchDragging = false; - startIgnoringMouse(); - } - }; - this.handleTouchScroll = function () { - _this.wasTouchScroll = true; - }; - this.handleScroll = function (ev) { - if (!_this.shouldIgnoreMove) { - var pageX = (window.pageXOffset - _this.prevScrollX) + _this.prevPageX; - var pageY = (window.pageYOffset - _this.prevScrollY) + _this.prevPageY; - _this.emitter.trigger('pointermove', { - origEvent: ev, - isTouch: _this.isTouchDragging, - subjectEl: _this.subjectEl, - pageX: pageX, - pageY: pageY, - deltaX: pageX - _this.origPageX, - deltaY: pageY - _this.origPageY - }); - } - }; - this.containerEl = containerEl; - this.emitter = new EmitterMixin(); - containerEl.addEventListener('mousedown', this.handleMouseDown); - containerEl.addEventListener('touchstart', this.handleTouchStart, { passive: true }); - listenerCreated(); - } - PointerDragging.prototype.destroy = function () { - this.containerEl.removeEventListener('mousedown', this.handleMouseDown); - this.containerEl.removeEventListener('touchstart', this.handleTouchStart, { passive: true }); - listenerDestroyed(); - }; - PointerDragging.prototype.tryStart = function (ev) { - var subjectEl = this.querySubjectEl(ev); - var downEl = ev.target; - if (subjectEl && - (!this.handleSelector || elementClosest(downEl, this.handleSelector))) { - this.subjectEl = subjectEl; - this.downEl = downEl; - this.isDragging = true; // do this first so cancelTouchScroll will work - this.wasTouchScroll = false; - return true; - } - return false; - }; - PointerDragging.prototype.cleanup = function () { - isWindowTouchMoveCancelled = false; - this.isDragging = false; - this.subjectEl = null; - this.downEl = null; - // keep wasTouchScroll around for later access - this.destroyScrollWatch(); - }; - PointerDragging.prototype.querySubjectEl = function (ev) { - if (this.selector) { - return elementClosest(ev.target, this.selector); - } - else { - return this.containerEl; - } - }; - PointerDragging.prototype.shouldIgnoreMouse = function () { - return ignoreMouseDepth || this.isTouchDragging; - }; - // can be called by user of this class, to cancel touch-based scrolling for the current drag - PointerDragging.prototype.cancelTouchScroll = function () { - if (this.isDragging) { - isWindowTouchMoveCancelled = true; - } - }; - // Scrolling that simulates pointermoves - // ---------------------------------------------------------------------------------------------------- - PointerDragging.prototype.initScrollWatch = function (ev) { - if (this.shouldWatchScroll) { - this.recordCoords(ev); - window.addEventListener('scroll', this.handleScroll, true); // useCapture=true - } - }; - PointerDragging.prototype.recordCoords = function (ev) { - if (this.shouldWatchScroll) { - this.prevPageX = ev.pageX; - this.prevPageY = ev.pageY; - this.prevScrollX = window.pageXOffset; - this.prevScrollY = window.pageYOffset; - } - }; - PointerDragging.prototype.destroyScrollWatch = function () { - if (this.shouldWatchScroll) { - window.removeEventListener('scroll', this.handleScroll, true); // useCaptured=true - } - }; - // Event Normalization - // ---------------------------------------------------------------------------------------------------- - PointerDragging.prototype.createEventFromMouse = function (ev, isFirst) { - var deltaX = 0; - var deltaY = 0; - // TODO: repeat code - if (isFirst) { - this.origPageX = ev.pageX; - this.origPageY = ev.pageY; - } - else { - deltaX = ev.pageX - this.origPageX; - deltaY = ev.pageY - this.origPageY; - } - return { - origEvent: ev, - isTouch: false, - subjectEl: this.subjectEl, - pageX: ev.pageX, - pageY: ev.pageY, - deltaX: deltaX, - deltaY: deltaY - }; - }; - PointerDragging.prototype.createEventFromTouch = function (ev, isFirst) { - var touches = ev.touches; - var pageX; - var pageY; - var deltaX = 0; - var deltaY = 0; - // if touch coords available, prefer, - // because FF would give bad ev.pageX ev.pageY - if (touches && touches.length) { - pageX = touches[0].pageX; - pageY = touches[0].pageY; - } - else { - pageX = ev.pageX; - pageY = ev.pageY; - } - // TODO: repeat code - if (isFirst) { - this.origPageX = pageX; - this.origPageY = pageY; - } - else { - deltaX = pageX - this.origPageX; - deltaY = pageY - this.origPageY; - } - return { - origEvent: ev, - isTouch: true, - subjectEl: this.subjectEl, - pageX: pageX, - pageY: pageY, - deltaX: deltaX, - deltaY: deltaY - }; - }; - return PointerDragging; -}()); -// Returns a boolean whether this was a left mouse click and no ctrl key (which means right click on Mac) -function isPrimaryMouseButton(ev) { - return ev.button === 0 && !ev.ctrlKey; -} -// Ignoring fake mouse events generated by touch -// ---------------------------------------------------------------------------------------------------- -function startIgnoringMouse() { - ignoreMouseDepth++; - setTimeout(function () { - ignoreMouseDepth--; - }, config.touchMouseIgnoreWait); -} -// We want to attach touchmove as early as possible for Safari -// ---------------------------------------------------------------------------------------------------- -function listenerCreated() { - if (!(listenerCnt++)) { - window.addEventListener('touchmove', onWindowTouchMove, { passive: false }); - } -} -function listenerDestroyed() { - if (!(--listenerCnt)) { - window.removeEventListener('touchmove', onWindowTouchMove, { passive: false }); - } -} -function onWindowTouchMove(ev) { - if (isWindowTouchMoveCancelled) { - ev.preventDefault(); - } -} - -/* -An effect in which an element follows the movement of a pointer across the screen. -The moving element is a clone of some other element. -Must call start + handleMove + stop. -*/ -var ElementMirror = /** @class */ (function () { - function ElementMirror() { - this.isVisible = false; // must be explicitly enabled - this.sourceEl = null; - this.mirrorEl = null; - this.sourceElRect = null; // screen coords relative to viewport - // options that can be set directly by caller - this.parentNode = document.body; - this.zIndex = 9999; - this.revertDuration = 0; - } - ElementMirror.prototype.start = function (sourceEl, pageX, pageY) { - this.sourceEl = sourceEl; - this.sourceElRect = this.sourceEl.getBoundingClientRect(); - this.origScreenX = pageX - window.pageXOffset; - this.origScreenY = pageY - window.pageYOffset; - this.deltaX = 0; - this.deltaY = 0; - this.updateElPosition(); - }; - ElementMirror.prototype.handleMove = function (pageX, pageY) { - this.deltaX = (pageX - window.pageXOffset) - this.origScreenX; - this.deltaY = (pageY - window.pageYOffset) - this.origScreenY; - this.updateElPosition(); - }; - // can be called before start - ElementMirror.prototype.setIsVisible = function (bool) { - if (bool) { - if (!this.isVisible) { - if (this.mirrorEl) { - this.mirrorEl.style.display = ''; - } - this.isVisible = bool; // needs to happen before updateElPosition - this.updateElPosition(); // because was not updating the position while invisible - } - } - else { - if (this.isVisible) { - if (this.mirrorEl) { - this.mirrorEl.style.display = 'none'; - } - this.isVisible = bool; - } - } - }; - // always async - ElementMirror.prototype.stop = function (needsRevertAnimation, callback) { - var _this = this; - var done = function () { - _this.cleanup(); - callback(); - }; - if (needsRevertAnimation && - this.mirrorEl && - this.isVisible && - this.revertDuration && // if 0, transition won't work - (this.deltaX || this.deltaY) // if same coords, transition won't work - ) { - this.doRevertAnimation(done, this.revertDuration); - } - else { - setTimeout(done, 0); - } - }; - ElementMirror.prototype.doRevertAnimation = function (callback, revertDuration) { - var mirrorEl = this.mirrorEl; - var finalSourceElRect = this.sourceEl.getBoundingClientRect(); // because autoscrolling might have happened - mirrorEl.style.transition = - 'top ' + revertDuration + 'ms,' + - 'left ' + revertDuration + 'ms'; - applyStyle(mirrorEl, { - left: finalSourceElRect.left, - top: finalSourceElRect.top - }); - whenTransitionDone(mirrorEl, function () { - mirrorEl.style.transition = ''; - callback(); - }); - }; - ElementMirror.prototype.cleanup = function () { - if (this.mirrorEl) { - removeElement(this.mirrorEl); - this.mirrorEl = null; - } - this.sourceEl = null; - }; - ElementMirror.prototype.updateElPosition = function () { - if (this.sourceEl && this.isVisible) { - applyStyle(this.getMirrorEl(), { - left: this.sourceElRect.left + this.deltaX, - top: this.sourceElRect.top + this.deltaY - }); - } - }; - ElementMirror.prototype.getMirrorEl = function () { - var sourceElRect = this.sourceElRect; - var mirrorEl = this.mirrorEl; - if (!mirrorEl) { - mirrorEl = this.mirrorEl = this.sourceEl.cloneNode(true); // cloneChildren=true - // we don't want long taps or any mouse interaction causing selection/menus. - // would use preventSelection(), but that prevents selectstart, causing problems. - mirrorEl.classList.add('fc-unselectable'); - mirrorEl.classList.add('fc-dragging'); - applyStyle(mirrorEl, { - position: 'fixed', - zIndex: this.zIndex, - visibility: '', - boxSizing: 'border-box', - width: sourceElRect.right - sourceElRect.left, - height: sourceElRect.bottom - sourceElRect.top, - right: 'auto', - bottom: 'auto', - margin: 0 - }); - this.parentNode.appendChild(mirrorEl); - } - return mirrorEl; - }; - return ElementMirror; -}()); - -/* -Is a cache for a given element's scroll information (all the info that ScrollController stores) -in addition the "client rectangle" of the element.. the area within the scrollbars. - -The cache can be in one of two modes: -- doesListening:false - ignores when the container is scrolled by someone else -- doesListening:true - watch for scrolling and update the cache -*/ -var ScrollGeomCache = /** @class */ (function (_super) { - __extends(ScrollGeomCache, _super); - function ScrollGeomCache(scrollController, doesListening) { - var _this = _super.call(this) || this; - _this.handleScroll = function () { - _this.scrollTop = _this.scrollController.getScrollTop(); - _this.scrollLeft = _this.scrollController.getScrollLeft(); - _this.handleScrollChange(); - }; - _this.scrollController = scrollController; - _this.doesListening = doesListening; - _this.scrollTop = _this.origScrollTop = scrollController.getScrollTop(); - _this.scrollLeft = _this.origScrollLeft = scrollController.getScrollLeft(); - _this.scrollWidth = scrollController.getScrollWidth(); - _this.scrollHeight = scrollController.getScrollHeight(); - _this.clientWidth = scrollController.getClientWidth(); - _this.clientHeight = scrollController.getClientHeight(); - _this.clientRect = _this.computeClientRect(); // do last in case it needs cached values - if (_this.doesListening) { - _this.getEventTarget().addEventListener('scroll', _this.handleScroll); - } - return _this; - } - ScrollGeomCache.prototype.destroy = function () { - if (this.doesListening) { - this.getEventTarget().removeEventListener('scroll', this.handleScroll); - } - }; - ScrollGeomCache.prototype.getScrollTop = function () { - return this.scrollTop; - }; - ScrollGeomCache.prototype.getScrollLeft = function () { - return this.scrollLeft; - }; - ScrollGeomCache.prototype.setScrollTop = function (top) { - this.scrollController.setScrollTop(top); - if (!this.doesListening) { - // we are not relying on the element to normalize out-of-bounds scroll values - // so we need to sanitize ourselves - this.scrollTop = Math.max(Math.min(top, this.getMaxScrollTop()), 0); - this.handleScrollChange(); - } - }; - ScrollGeomCache.prototype.setScrollLeft = function (top) { - this.scrollController.setScrollLeft(top); - if (!this.doesListening) { - // we are not relying on the element to normalize out-of-bounds scroll values - // so we need to sanitize ourselves - this.scrollLeft = Math.max(Math.min(top, this.getMaxScrollLeft()), 0); - this.handleScrollChange(); - } - }; - ScrollGeomCache.prototype.getClientWidth = function () { - return this.clientWidth; - }; - ScrollGeomCache.prototype.getClientHeight = function () { - return this.clientHeight; - }; - ScrollGeomCache.prototype.getScrollWidth = function () { - return this.scrollWidth; - }; - ScrollGeomCache.prototype.getScrollHeight = function () { - return this.scrollHeight; - }; - ScrollGeomCache.prototype.handleScrollChange = function () { - }; - return ScrollGeomCache; -}(ScrollController)); -var ElementScrollGeomCache = /** @class */ (function (_super) { - __extends(ElementScrollGeomCache, _super); - function ElementScrollGeomCache(el, doesListening) { - return _super.call(this, new ElementScrollController(el), doesListening) || this; - } - ElementScrollGeomCache.prototype.getEventTarget = function () { - return this.scrollController.el; - }; - ElementScrollGeomCache.prototype.computeClientRect = function () { - return computeInnerRect(this.scrollController.el); - }; - return ElementScrollGeomCache; -}(ScrollGeomCache)); -var WindowScrollGeomCache = /** @class */ (function (_super) { - __extends(WindowScrollGeomCache, _super); - function WindowScrollGeomCache(doesListening) { - return _super.call(this, new WindowScrollController(), doesListening) || this; - } - WindowScrollGeomCache.prototype.getEventTarget = function () { - return window; - }; - WindowScrollGeomCache.prototype.computeClientRect = function () { - return { - left: this.scrollLeft, - right: this.scrollLeft + this.clientWidth, - top: this.scrollTop, - bottom: this.scrollTop + this.clientHeight - }; - }; - // the window is the only scroll object that changes it's rectangle relative - // to the document's topleft as it scrolls - WindowScrollGeomCache.prototype.handleScrollChange = function () { - this.clientRect = this.computeClientRect(); - }; - return WindowScrollGeomCache; -}(ScrollGeomCache)); - -// If available we are using native "performance" API instead of "Date" -// Read more about it on MDN: -// https://developer.mozilla.org/en-US/docs/Web/API/Performance -var getTime = typeof performance === 'function' ? performance.now : Date.now; -/* -For a pointer interaction, automatically scrolls certain scroll containers when the pointer -approaches the edge. - -The caller must call start + handleMove + stop. -*/ -var AutoScroller = /** @class */ (function () { - function AutoScroller() { - var _this = this; - // options that can be set by caller - this.isEnabled = true; - this.scrollQuery = [window, '.fc-scroller']; - this.edgeThreshold = 50; // pixels - this.maxVelocity = 300; // pixels per second - // internal state - this.pointerScreenX = null; - this.pointerScreenY = null; - this.isAnimating = false; - this.scrollCaches = null; - // protect against the initial pointerdown being too close to an edge and starting the scroll - this.everMovedUp = false; - this.everMovedDown = false; - this.everMovedLeft = false; - this.everMovedRight = false; - this.animate = function () { - if (_this.isAnimating) { // wasn't cancelled between animation calls - var edge = _this.computeBestEdge(_this.pointerScreenX + window.pageXOffset, _this.pointerScreenY + window.pageYOffset); - if (edge) { - var now = getTime(); - _this.handleSide(edge, (now - _this.msSinceRequest) / 1000); - _this.requestAnimation(now); - } - else { - _this.isAnimating = false; // will stop animation - } - } - }; - } - AutoScroller.prototype.start = function (pageX, pageY) { - if (this.isEnabled) { - this.scrollCaches = this.buildCaches(); - this.pointerScreenX = null; - this.pointerScreenY = null; - this.everMovedUp = false; - this.everMovedDown = false; - this.everMovedLeft = false; - this.everMovedRight = false; - this.handleMove(pageX, pageY); - } - }; - AutoScroller.prototype.handleMove = function (pageX, pageY) { - if (this.isEnabled) { - var pointerScreenX = pageX - window.pageXOffset; - var pointerScreenY = pageY - window.pageYOffset; - var yDelta = this.pointerScreenY === null ? 0 : pointerScreenY - this.pointerScreenY; - var xDelta = this.pointerScreenX === null ? 0 : pointerScreenX - this.pointerScreenX; - if (yDelta < 0) { - this.everMovedUp = true; - } - else if (yDelta > 0) { - this.everMovedDown = true; - } - if (xDelta < 0) { - this.everMovedLeft = true; - } - else if (xDelta > 0) { - this.everMovedRight = true; - } - this.pointerScreenX = pointerScreenX; - this.pointerScreenY = pointerScreenY; - if (!this.isAnimating) { - this.isAnimating = true; - this.requestAnimation(getTime()); - } - } - }; - AutoScroller.prototype.stop = function () { - if (this.isEnabled) { - this.isAnimating = false; // will stop animation - for (var _i = 0, _a = this.scrollCaches; _i < _a.length; _i++) { - var scrollCache = _a[_i]; - scrollCache.destroy(); - } - this.scrollCaches = null; - } - }; - AutoScroller.prototype.requestAnimation = function (now) { - this.msSinceRequest = now; - requestAnimationFrame(this.animate); - }; - AutoScroller.prototype.handleSide = function (edge, seconds) { - var scrollCache = edge.scrollCache; - var edgeThreshold = this.edgeThreshold; - var invDistance = edgeThreshold - edge.distance; - var velocity = // the closer to the edge, the faster we scroll - (invDistance * invDistance) / (edgeThreshold * edgeThreshold) * // quadratic - this.maxVelocity * seconds; - var sign = 1; - switch (edge.name) { - case 'left': - sign = -1; - // falls through - case 'right': - scrollCache.setScrollLeft(scrollCache.getScrollLeft() + velocity * sign); - break; - case 'top': - sign = -1; - // falls through - case 'bottom': - scrollCache.setScrollTop(scrollCache.getScrollTop() + velocity * sign); - break; - } - }; - // left/top are relative to document topleft - AutoScroller.prototype.computeBestEdge = function (left, top) { - var edgeThreshold = this.edgeThreshold; - var bestSide = null; - for (var _i = 0, _a = this.scrollCaches; _i < _a.length; _i++) { - var scrollCache = _a[_i]; - var rect = scrollCache.clientRect; - var leftDist = left - rect.left; - var rightDist = rect.right - left; - var topDist = top - rect.top; - var bottomDist = rect.bottom - top; - // completely within the rect? - if (leftDist >= 0 && rightDist >= 0 && topDist >= 0 && bottomDist >= 0) { - if (topDist <= edgeThreshold && this.everMovedUp && scrollCache.canScrollUp() && - (!bestSide || bestSide.distance > topDist)) { - bestSide = { scrollCache: scrollCache, name: 'top', distance: topDist }; - } - if (bottomDist <= edgeThreshold && this.everMovedDown && scrollCache.canScrollDown() && - (!bestSide || bestSide.distance > bottomDist)) { - bestSide = { scrollCache: scrollCache, name: 'bottom', distance: bottomDist }; - } - if (leftDist <= edgeThreshold && this.everMovedLeft && scrollCache.canScrollLeft() && - (!bestSide || bestSide.distance > leftDist)) { - bestSide = { scrollCache: scrollCache, name: 'left', distance: leftDist }; - } - if (rightDist <= edgeThreshold && this.everMovedRight && scrollCache.canScrollRight() && - (!bestSide || bestSide.distance > rightDist)) { - bestSide = { scrollCache: scrollCache, name: 'right', distance: rightDist }; - } - } - } - return bestSide; - }; - AutoScroller.prototype.buildCaches = function () { - return this.queryScrollEls().map(function (el) { - if (el === window) { - return new WindowScrollGeomCache(false); // false = don't listen to user-generated scrolls - } - else { - return new ElementScrollGeomCache(el, false); // false = don't listen to user-generated scrolls - } - }); - }; - AutoScroller.prototype.queryScrollEls = function () { - var els = []; - for (var _i = 0, _a = this.scrollQuery; _i < _a.length; _i++) { - var query = _a[_i]; - if (typeof query === 'object') { - els.push(query); - } - else { - els.push.apply(els, Array.prototype.slice.call(document.querySelectorAll(query))); - } - } - return els; - }; - return AutoScroller; -}()); - -/* -Monitors dragging on an element. Has a number of high-level features: -- minimum distance required before dragging -- minimum wait time ("delay") before dragging -- a mirror element that follows the pointer -*/ -var FeaturefulElementDragging = /** @class */ (function (_super) { - __extends(FeaturefulElementDragging, _super); - function FeaturefulElementDragging(containerEl) { - var _this = _super.call(this, containerEl) || this; - // options that can be directly set by caller - // the caller can also set the PointerDragging's options as well - _this.delay = null; - _this.minDistance = 0; - _this.touchScrollAllowed = true; // prevents drag from starting and blocks scrolling during drag - _this.mirrorNeedsRevert = false; - _this.isInteracting = false; // is the user validly moving the pointer? lasts until pointerup - _this.isDragging = false; // is it INTENTFULLY dragging? lasts until after revert animation - _this.isDelayEnded = false; - _this.isDistanceSurpassed = false; - _this.delayTimeoutId = null; - _this.onPointerDown = function (ev) { - if (!_this.isDragging) { // so new drag doesn't happen while revert animation is going - _this.isInteracting = true; - _this.isDelayEnded = false; - _this.isDistanceSurpassed = false; - preventSelection(document.body); - preventContextMenu(document.body); - // prevent links from being visited if there's an eventual drag. - // also prevents selection in older browsers (maybe?). - // not necessary for touch, besides, browser would complain about passiveness. - if (!ev.isTouch) { - ev.origEvent.preventDefault(); - } - _this.emitter.trigger('pointerdown', ev); - if (!_this.pointer.shouldIgnoreMove) { - // actions related to initiating dragstart+dragmove+dragend... - _this.mirror.setIsVisible(false); // reset. caller must set-visible - _this.mirror.start(ev.subjectEl, ev.pageX, ev.pageY); // must happen on first pointer down - _this.startDelay(ev); - if (!_this.minDistance) { - _this.handleDistanceSurpassed(ev); - } - } - } - }; - _this.onPointerMove = function (ev) { - if (_this.isInteracting) { // if false, still waiting for previous drag's revert - _this.emitter.trigger('pointermove', ev); - if (!_this.isDistanceSurpassed) { - var minDistance = _this.minDistance; - var distanceSq = void 0; // current distance from the origin, squared - var deltaX = ev.deltaX, deltaY = ev.deltaY; - distanceSq = deltaX * deltaX + deltaY * deltaY; - if (distanceSq >= minDistance * minDistance) { // use pythagorean theorem - _this.handleDistanceSurpassed(ev); - } - } - if (_this.isDragging) { - // a real pointer move? (not one simulated by scrolling) - if (ev.origEvent.type !== 'scroll') { - _this.mirror.handleMove(ev.pageX, ev.pageY); - _this.autoScroller.handleMove(ev.pageX, ev.pageY); - } - _this.emitter.trigger('dragmove', ev); - } - } - }; - _this.onPointerUp = function (ev) { - if (_this.isInteracting) { // if false, still waiting for previous drag's revert - _this.isInteracting = false; - allowSelection(document.body); - allowContextMenu(document.body); - _this.emitter.trigger('pointerup', ev); // can potentially set mirrorNeedsRevert - if (_this.isDragging) { - _this.autoScroller.stop(); - _this.tryStopDrag(ev); // which will stop the mirror - } - if (_this.delayTimeoutId) { - clearTimeout(_this.delayTimeoutId); - _this.delayTimeoutId = null; - } - } - }; - var pointer = _this.pointer = new PointerDragging(containerEl); - pointer.emitter.on('pointerdown', _this.onPointerDown); - pointer.emitter.on('pointermove', _this.onPointerMove); - pointer.emitter.on('pointerup', _this.onPointerUp); - _this.mirror = new ElementMirror(); - _this.autoScroller = new AutoScroller(); - return _this; - } - FeaturefulElementDragging.prototype.destroy = function () { - this.pointer.destroy(); - }; - FeaturefulElementDragging.prototype.startDelay = function (ev) { - var _this = this; - if (typeof this.delay === 'number') { - this.delayTimeoutId = setTimeout(function () { - _this.delayTimeoutId = null; - _this.handleDelayEnd(ev); - }, this.delay); // not assignable to number! - } - else { - this.handleDelayEnd(ev); - } - }; - FeaturefulElementDragging.prototype.handleDelayEnd = function (ev) { - this.isDelayEnded = true; - this.tryStartDrag(ev); - }; - FeaturefulElementDragging.prototype.handleDistanceSurpassed = function (ev) { - this.isDistanceSurpassed = true; - this.tryStartDrag(ev); - }; - FeaturefulElementDragging.prototype.tryStartDrag = function (ev) { - if (this.isDelayEnded && this.isDistanceSurpassed) { - if (!this.pointer.wasTouchScroll || this.touchScrollAllowed) { - this.isDragging = true; - this.mirrorNeedsRevert = false; - this.autoScroller.start(ev.pageX, ev.pageY); - this.emitter.trigger('dragstart', ev); - if (this.touchScrollAllowed === false) { - this.pointer.cancelTouchScroll(); - } - } - } - }; - FeaturefulElementDragging.prototype.tryStopDrag = function (ev) { - // .stop() is ALWAYS asynchronous, which we NEED because we want all pointerup events - // that come from the document to fire beforehand. much more convenient this way. - this.mirror.stop(this.mirrorNeedsRevert, this.stopDrag.bind(this, ev) // bound with args - ); - }; - FeaturefulElementDragging.prototype.stopDrag = function (ev) { - this.isDragging = false; - this.emitter.trigger('dragend', ev); - }; - // fill in the implementations... - FeaturefulElementDragging.prototype.setIgnoreMove = function (bool) { - this.pointer.shouldIgnoreMove = bool; - }; - FeaturefulElementDragging.prototype.setMirrorIsVisible = function (bool) { - this.mirror.setIsVisible(bool); - }; - FeaturefulElementDragging.prototype.setMirrorNeedsRevert = function (bool) { - this.mirrorNeedsRevert = bool; - }; - FeaturefulElementDragging.prototype.setAutoScrollEnabled = function (bool) { - this.autoScroller.isEnabled = bool; - }; - return FeaturefulElementDragging; -}(ElementDragging)); - -/* -When this class is instantiated, it records the offset of an element (relative to the document topleft), -and continues to monitor scrolling, updating the cached coordinates if it needs to. -Does not access the DOM after instantiation, so highly performant. - -Also keeps track of all scrolling/overflow:hidden containers that are parents of the given element -and an determine if a given point is inside the combined clipping rectangle. -*/ -var OffsetTracker = /** @class */ (function () { - function OffsetTracker(el) { - this.origRect = computeRect(el); - // will work fine for divs that have overflow:hidden - this.scrollCaches = getClippingParents(el).map(function (el) { - return new ElementScrollGeomCache(el, true); // listen=true - }); - } - OffsetTracker.prototype.destroy = function () { - for (var _i = 0, _a = this.scrollCaches; _i < _a.length; _i++) { - var scrollCache = _a[_i]; - scrollCache.destroy(); - } - }; - OffsetTracker.prototype.computeLeft = function () { - var left = this.origRect.left; - for (var _i = 0, _a = this.scrollCaches; _i < _a.length; _i++) { - var scrollCache = _a[_i]; - left += scrollCache.origScrollLeft - scrollCache.getScrollLeft(); - } - return left; - }; - OffsetTracker.prototype.computeTop = function () { - var top = this.origRect.top; - for (var _i = 0, _a = this.scrollCaches; _i < _a.length; _i++) { - var scrollCache = _a[_i]; - top += scrollCache.origScrollTop - scrollCache.getScrollTop(); - } - return top; - }; - OffsetTracker.prototype.isWithinClipping = function (pageX, pageY) { - var point = { left: pageX, top: pageY }; - for (var _i = 0, _a = this.scrollCaches; _i < _a.length; _i++) { - var scrollCache = _a[_i]; - if (!isIgnoredClipping(scrollCache.getEventTarget()) && - !pointInsideRect(point, scrollCache.clientRect)) { - return false; - } - } - return true; - }; - return OffsetTracker; -}()); -// certain clipping containers should never constrain interactions, like and -// https://github.com/fullcalendar/fullcalendar/issues/3615 -function isIgnoredClipping(node) { - var tagName = node.tagName; - return tagName === 'HTML' || tagName === 'BODY'; -} - -/* -Tracks movement over multiple droppable areas (aka "hits") -that exist in one or more DateComponents. -Relies on an existing draggable. - -emits: -- pointerdown -- dragstart -- hitchange - fires initially, even if not over a hit -- pointerup -- (hitchange - again, to null, if ended over a hit) -- dragend -*/ -var HitDragging = /** @class */ (function () { - function HitDragging(dragging, droppableStore) { - var _this = this; - // options that can be set by caller - this.useSubjectCenter = false; - this.requireInitial = true; // if doesn't start out on a hit, won't emit any events - this.initialHit = null; - this.movingHit = null; - this.finalHit = null; // won't ever be populated if shouldIgnoreMove - this.handlePointerDown = function (ev) { - var dragging = _this.dragging; - _this.initialHit = null; - _this.movingHit = null; - _this.finalHit = null; - _this.prepareHits(); - _this.processFirstCoord(ev); - if (_this.initialHit || !_this.requireInitial) { - dragging.setIgnoreMove(false); - _this.emitter.trigger('pointerdown', ev); // TODO: fire this before computing processFirstCoord, so listeners can cancel. this gets fired by almost every handler :( - } - else { - dragging.setIgnoreMove(true); - } - }; - this.handleDragStart = function (ev) { - _this.emitter.trigger('dragstart', ev); - _this.handleMove(ev, true); // force = fire even if initially null - }; - this.handleDragMove = function (ev) { - _this.emitter.trigger('dragmove', ev); - _this.handleMove(ev); - }; - this.handlePointerUp = function (ev) { - _this.releaseHits(); - _this.emitter.trigger('pointerup', ev); - }; - this.handleDragEnd = function (ev) { - if (_this.movingHit) { - _this.emitter.trigger('hitupdate', null, true, ev); - } - _this.finalHit = _this.movingHit; - _this.movingHit = null; - _this.emitter.trigger('dragend', ev); - }; - this.droppableStore = droppableStore; - dragging.emitter.on('pointerdown', this.handlePointerDown); - dragging.emitter.on('dragstart', this.handleDragStart); - dragging.emitter.on('dragmove', this.handleDragMove); - dragging.emitter.on('pointerup', this.handlePointerUp); - dragging.emitter.on('dragend', this.handleDragEnd); - this.dragging = dragging; - this.emitter = new EmitterMixin(); - } - // sets initialHit - // sets coordAdjust - HitDragging.prototype.processFirstCoord = function (ev) { - var origPoint = { left: ev.pageX, top: ev.pageY }; - var adjustedPoint = origPoint; - var subjectEl = ev.subjectEl; - var subjectRect; - if (subjectEl !== document) { - subjectRect = computeRect(subjectEl); - adjustedPoint = constrainPoint(adjustedPoint, subjectRect); - } - var initialHit = this.initialHit = this.queryHitForOffset(adjustedPoint.left, adjustedPoint.top); - if (initialHit) { - if (this.useSubjectCenter && subjectRect) { - var slicedSubjectRect = intersectRects(subjectRect, initialHit.rect); - if (slicedSubjectRect) { - adjustedPoint = getRectCenter(slicedSubjectRect); - } - } - this.coordAdjust = diffPoints(adjustedPoint, origPoint); - } - else { - this.coordAdjust = { left: 0, top: 0 }; - } - }; - HitDragging.prototype.handleMove = function (ev, forceHandle) { - var hit = this.queryHitForOffset(ev.pageX + this.coordAdjust.left, ev.pageY + this.coordAdjust.top); - if (forceHandle || !isHitsEqual(this.movingHit, hit)) { - this.movingHit = hit; - this.emitter.trigger('hitupdate', hit, false, ev); - } - }; - HitDragging.prototype.prepareHits = function () { - this.offsetTrackers = mapHash(this.droppableStore, function (interactionSettings) { - interactionSettings.component.buildPositionCaches(); - return new OffsetTracker(interactionSettings.el); - }); - }; - HitDragging.prototype.releaseHits = function () { - var offsetTrackers = this.offsetTrackers; - for (var id in offsetTrackers) { - offsetTrackers[id].destroy(); - } - this.offsetTrackers = {}; - }; - HitDragging.prototype.queryHitForOffset = function (offsetLeft, offsetTop) { - var _a = this, droppableStore = _a.droppableStore, offsetTrackers = _a.offsetTrackers; - var bestHit = null; - for (var id in droppableStore) { - var component = droppableStore[id].component; - var offsetTracker = offsetTrackers[id]; - if (offsetTracker.isWithinClipping(offsetLeft, offsetTop)) { - var originLeft = offsetTracker.computeLeft(); - var originTop = offsetTracker.computeTop(); - var positionLeft = offsetLeft - originLeft; - var positionTop = offsetTop - originTop; - var origRect = offsetTracker.origRect; - var width = origRect.right - origRect.left; - var height = origRect.bottom - origRect.top; - if ( - // must be within the element's bounds - positionLeft >= 0 && positionLeft < width && - positionTop >= 0 && positionTop < height) { - var hit = component.queryHit(positionLeft, positionTop, width, height); - if (hit && - ( - // make sure the hit is within activeRange, meaning it's not a deal cell - !component.props.dateProfile || // hack for DayTile - rangeContainsRange(component.props.dateProfile.activeRange, hit.dateSpan.range)) && - (!bestHit || hit.layer > bestHit.layer)) { - // TODO: better way to re-orient rectangle - hit.rect.left += originLeft; - hit.rect.right += originLeft; - hit.rect.top += originTop; - hit.rect.bottom += originTop; - bestHit = hit; - } - } - } - } - return bestHit; - }; - return HitDragging; -}()); -function isHitsEqual(hit0, hit1) { - if (!hit0 && !hit1) { - return true; - } - if (Boolean(hit0) !== Boolean(hit1)) { - return false; - } - return isDateSpansEqual(hit0.dateSpan, hit1.dateSpan); -} - -/* -Monitors when the user clicks on a specific date/time of a component. -A pointerdown+pointerup on the same "hit" constitutes a click. -*/ -var DateClicking = /** @class */ (function (_super) { - __extends(DateClicking, _super); - function DateClicking(settings) { - var _this = _super.call(this, settings) || this; - _this.handlePointerDown = function (ev) { - var dragging = _this.dragging; - // do this in pointerdown (not dragend) because DOM might be mutated by the time dragend is fired - dragging.setIgnoreMove(!_this.component.isValidDateDownEl(dragging.pointer.downEl)); - }; - // won't even fire if moving was ignored - _this.handleDragEnd = function (ev) { - var component = _this.component; - var pointer = _this.dragging.pointer; - if (!pointer.wasTouchScroll) { - var _a = _this.hitDragging, initialHit = _a.initialHit, finalHit = _a.finalHit; - if (initialHit && finalHit && isHitsEqual(initialHit, finalHit)) { - component.calendar.triggerDateClick(initialHit.dateSpan, initialHit.dayEl, component.view, ev.origEvent); - } - } - }; - var component = settings.component; - // we DO want to watch pointer moves because otherwise finalHit won't get populated - _this.dragging = new FeaturefulElementDragging(component.el); - _this.dragging.autoScroller.isEnabled = false; - var hitDragging = _this.hitDragging = new HitDragging(_this.dragging, interactionSettingsToStore(settings)); - hitDragging.emitter.on('pointerdown', _this.handlePointerDown); - hitDragging.emitter.on('dragend', _this.handleDragEnd); - return _this; - } - DateClicking.prototype.destroy = function () { - this.dragging.destroy(); - }; - return DateClicking; -}(Interaction)); - -/* -Tracks when the user selects a portion of time of a component, -constituted by a drag over date cells, with a possible delay at the beginning of the drag. -*/ -var DateSelecting = /** @class */ (function (_super) { - __extends(DateSelecting, _super); - function DateSelecting(settings) { - var _this = _super.call(this, settings) || this; - _this.dragSelection = null; - _this.handlePointerDown = function (ev) { - var _a = _this, component = _a.component, dragging = _a.dragging; - var canSelect = component.opt('selectable') && - component.isValidDateDownEl(ev.origEvent.target); - // don't bother to watch expensive moves if component won't do selection - dragging.setIgnoreMove(!canSelect); - // if touch, require user to hold down - dragging.delay = ev.isTouch ? getComponentTouchDelay(component) : null; - }; - _this.handleDragStart = function (ev) { - _this.component.calendar.unselect(ev); // unselect previous selections - }; - _this.handleHitUpdate = function (hit, isFinal) { - var calendar = _this.component.calendar; - var dragSelection = null; - var isInvalid = false; - if (hit) { - dragSelection = joinHitsIntoSelection(_this.hitDragging.initialHit, hit, calendar.pluginSystem.hooks.dateSelectionTransformers); - if (!dragSelection || !_this.component.isDateSelectionValid(dragSelection)) { - isInvalid = true; - dragSelection = null; - } - } - if (dragSelection) { - calendar.dispatch({ type: 'SELECT_DATES', selection: dragSelection }); - } - else if (!isFinal) { // only unselect if moved away while dragging - calendar.dispatch({ type: 'UNSELECT_DATES' }); - } - if (!isInvalid) { - enableCursor(); - } - else { - disableCursor(); - } - if (!isFinal) { - _this.dragSelection = dragSelection; // only clear if moved away from all hits while dragging - } - }; - _this.handlePointerUp = function (pev) { - if (_this.dragSelection) { - // selection is already rendered, so just need to report selection - _this.component.calendar.triggerDateSelect(_this.dragSelection, pev); - _this.dragSelection = null; - } - }; - var component = settings.component; - var dragging = _this.dragging = new FeaturefulElementDragging(component.el); - dragging.touchScrollAllowed = false; - dragging.minDistance = component.opt('selectMinDistance') || 0; - dragging.autoScroller.isEnabled = component.opt('dragScroll'); - var hitDragging = _this.hitDragging = new HitDragging(_this.dragging, interactionSettingsToStore(settings)); - hitDragging.emitter.on('pointerdown', _this.handlePointerDown); - hitDragging.emitter.on('dragstart', _this.handleDragStart); - hitDragging.emitter.on('hitupdate', _this.handleHitUpdate); - hitDragging.emitter.on('pointerup', _this.handlePointerUp); - return _this; - } - DateSelecting.prototype.destroy = function () { - this.dragging.destroy(); - }; - return DateSelecting; -}(Interaction)); -function getComponentTouchDelay(component) { - var delay = component.opt('selectLongPressDelay'); - if (delay == null) { - delay = component.opt('longPressDelay'); - } - return delay; -} -function joinHitsIntoSelection(hit0, hit1, dateSelectionTransformers) { - var dateSpan0 = hit0.dateSpan; - var dateSpan1 = hit1.dateSpan; - var ms = [ - dateSpan0.range.start, - dateSpan0.range.end, - dateSpan1.range.start, - dateSpan1.range.end - ]; - ms.sort(compareNumbers); - var props = {}; - for (var _i = 0, dateSelectionTransformers_1 = dateSelectionTransformers; _i < dateSelectionTransformers_1.length; _i++) { - var transformer = dateSelectionTransformers_1[_i]; - var res = transformer(hit0, hit1); - if (res === false) { - return null; - } - else if (res) { - __assign(props, res); - } - } - props.range = { start: ms[0], end: ms[3] }; - props.allDay = dateSpan0.allDay; - return props; -} - -var EventDragging = /** @class */ (function (_super) { - __extends(EventDragging, _super); - function EventDragging(settings) { - var _this = _super.call(this, settings) || this; - // internal state - _this.subjectSeg = null; // the seg being selected/dragged - _this.isDragging = false; - _this.eventRange = null; - _this.relevantEvents = null; // the events being dragged - _this.receivingCalendar = null; - _this.validMutation = null; - _this.mutatedRelevantEvents = null; - _this.handlePointerDown = function (ev) { - var origTarget = ev.origEvent.target; - var _a = _this, component = _a.component, dragging = _a.dragging; - var mirror = dragging.mirror; - var initialCalendar = component.calendar; - var subjectSeg = _this.subjectSeg = getElSeg(ev.subjectEl); - var eventRange = _this.eventRange = subjectSeg.eventRange; - var eventInstanceId = eventRange.instance.instanceId; - _this.relevantEvents = getRelevantEvents(initialCalendar.state.eventStore, eventInstanceId); - dragging.minDistance = ev.isTouch ? 0 : component.opt('eventDragMinDistance'); - dragging.delay = - // only do a touch delay if touch and this event hasn't been selected yet - (ev.isTouch && eventInstanceId !== component.props.eventSelection) ? - getComponentTouchDelay$1(component) : - null; - mirror.parentNode = initialCalendar.el; - mirror.revertDuration = component.opt('dragRevertDuration'); - var isValid = component.isValidSegDownEl(origTarget) && - !elementClosest(origTarget, '.fc-resizer'); // NOT on a resizer - dragging.setIgnoreMove(!isValid); - // disable dragging for elements that are resizable (ie, selectable) - // but are not draggable - _this.isDragging = isValid && - ev.subjectEl.classList.contains('fc-draggable'); - }; - _this.handleDragStart = function (ev) { - var initialCalendar = _this.component.calendar; - var eventRange = _this.eventRange; - var eventInstanceId = eventRange.instance.instanceId; - if (ev.isTouch) { - // need to select a different event? - if (eventInstanceId !== _this.component.props.eventSelection) { - initialCalendar.dispatch({ type: 'SELECT_EVENT', eventInstanceId: eventInstanceId }); - } - } - else { - // if now using mouse, but was previous touch interaction, clear selected event - initialCalendar.dispatch({ type: 'UNSELECT_EVENT' }); - } - if (_this.isDragging) { - initialCalendar.unselect(ev); // unselect *date* selection - initialCalendar.publiclyTrigger('eventDragStart', [ - { - el: _this.subjectSeg.el, - event: new EventApi(initialCalendar, eventRange.def, eventRange.instance), - jsEvent: ev.origEvent, - view: _this.component.view - } - ]); - } - }; - _this.handleHitUpdate = function (hit, isFinal) { - if (!_this.isDragging) { - return; - } - var relevantEvents = _this.relevantEvents; - var initialHit = _this.hitDragging.initialHit; - var initialCalendar = _this.component.calendar; - // states based on new hit - var receivingCalendar = null; - var mutation = null; - var mutatedRelevantEvents = null; - var isInvalid = false; - var interaction = { - affectedEvents: relevantEvents, - mutatedEvents: createEmptyEventStore(), - isEvent: true, - origSeg: _this.subjectSeg - }; - if (hit) { - var receivingComponent = hit.component; - receivingCalendar = receivingComponent.calendar; - if (initialCalendar === receivingCalendar || - receivingComponent.opt('editable') && receivingComponent.opt('droppable')) { - mutation = computeEventMutation(initialHit, hit, receivingCalendar.pluginSystem.hooks.eventDragMutationMassagers); - if (mutation) { - mutatedRelevantEvents = applyMutationToEventStore(relevantEvents, receivingCalendar.eventUiBases, mutation, receivingCalendar); - interaction.mutatedEvents = mutatedRelevantEvents; - if (!receivingComponent.isInteractionValid(interaction)) { - isInvalid = true; - mutation = null; - mutatedRelevantEvents = null; - interaction.mutatedEvents = createEmptyEventStore(); - } - } - } - else { - receivingCalendar = null; - } - } - _this.displayDrag(receivingCalendar, interaction); - if (!isInvalid) { - enableCursor(); - } - else { - disableCursor(); - } - if (!isFinal) { - if (initialCalendar === receivingCalendar && // TODO: write test for this - isHitsEqual(initialHit, hit)) { - mutation = null; - } - _this.dragging.setMirrorNeedsRevert(!mutation); - // render the mirror if no already-rendered mirror - // TODO: wish we could somehow wait for dispatch to guarantee render - _this.dragging.setMirrorIsVisible(!hit || !document.querySelector('.fc-mirror')); - // assign states based on new hit - _this.receivingCalendar = receivingCalendar; - _this.validMutation = mutation; - _this.mutatedRelevantEvents = mutatedRelevantEvents; - } - }; - _this.handlePointerUp = function () { - if (!_this.isDragging) { - _this.cleanup(); // because handleDragEnd won't fire - } - }; - _this.handleDragEnd = function (ev) { - if (_this.isDragging) { - var initialCalendar_1 = _this.component.calendar; - var initialView = _this.component.view; - var _a = _this, receivingCalendar = _a.receivingCalendar, validMutation = _a.validMutation; - var eventDef = _this.eventRange.def; - var eventInstance = _this.eventRange.instance; - var eventApi = new EventApi(initialCalendar_1, eventDef, eventInstance); - var relevantEvents_1 = _this.relevantEvents; - var mutatedRelevantEvents = _this.mutatedRelevantEvents; - var finalHit = _this.hitDragging.finalHit; - _this.clearDrag(); // must happen after revert animation - initialCalendar_1.publiclyTrigger('eventDragStop', [ - { - el: _this.subjectSeg.el, - event: eventApi, - jsEvent: ev.origEvent, - view: initialView - } - ]); - if (validMutation) { - // dropped within same calendar - if (receivingCalendar === initialCalendar_1) { - initialCalendar_1.dispatch({ - type: 'MERGE_EVENTS', - eventStore: mutatedRelevantEvents - }); - var transformed = {}; - for (var _i = 0, _b = initialCalendar_1.pluginSystem.hooks.eventDropTransformers; _i < _b.length; _i++) { - var transformer = _b[_i]; - __assign(transformed, transformer(validMutation, initialCalendar_1)); - } - var eventDropArg = __assign({}, transformed, { el: ev.subjectEl, delta: validMutation.datesDelta, oldEvent: eventApi, event: new EventApi(// the data AFTER the mutation - initialCalendar_1, mutatedRelevantEvents.defs[eventDef.defId], eventInstance ? mutatedRelevantEvents.instances[eventInstance.instanceId] : null), revert: function () { - initialCalendar_1.dispatch({ - type: 'MERGE_EVENTS', - eventStore: relevantEvents_1 - }); - }, jsEvent: ev.origEvent, view: initialView }); - initialCalendar_1.publiclyTrigger('eventDrop', [eventDropArg]); - // dropped in different calendar - } - else if (receivingCalendar) { - initialCalendar_1.publiclyTrigger('eventLeave', [ - { - draggedEl: ev.subjectEl, - event: eventApi, - view: initialView - } - ]); - initialCalendar_1.dispatch({ - type: 'REMOVE_EVENT_INSTANCES', - instances: _this.mutatedRelevantEvents.instances - }); - receivingCalendar.dispatch({ - type: 'MERGE_EVENTS', - eventStore: _this.mutatedRelevantEvents - }); - if (ev.isTouch) { - receivingCalendar.dispatch({ - type: 'SELECT_EVENT', - eventInstanceId: eventInstance.instanceId - }); - } - var dropArg = __assign({}, receivingCalendar.buildDatePointApi(finalHit.dateSpan), { draggedEl: ev.subjectEl, jsEvent: ev.origEvent, view: finalHit.component // should this be finalHit.component.view? See #4644 - }); - receivingCalendar.publiclyTrigger('drop', [dropArg]); - receivingCalendar.publiclyTrigger('eventReceive', [ - { - draggedEl: ev.subjectEl, - event: new EventApi(// the data AFTER the mutation - receivingCalendar, mutatedRelevantEvents.defs[eventDef.defId], mutatedRelevantEvents.instances[eventInstance.instanceId]), - view: finalHit.component // should this be finalHit.component.view? See #4644 - } - ]); - } - } - else { - initialCalendar_1.publiclyTrigger('_noEventDrop'); - } - } - _this.cleanup(); - }; - var component = _this.component; - var dragging = _this.dragging = new FeaturefulElementDragging(component.el); - dragging.pointer.selector = EventDragging.SELECTOR; - dragging.touchScrollAllowed = false; - dragging.autoScroller.isEnabled = component.opt('dragScroll'); - var hitDragging = _this.hitDragging = new HitDragging(_this.dragging, interactionSettingsStore); - hitDragging.useSubjectCenter = settings.useEventCenter; - hitDragging.emitter.on('pointerdown', _this.handlePointerDown); - hitDragging.emitter.on('dragstart', _this.handleDragStart); - hitDragging.emitter.on('hitupdate', _this.handleHitUpdate); - hitDragging.emitter.on('pointerup', _this.handlePointerUp); - hitDragging.emitter.on('dragend', _this.handleDragEnd); - return _this; - } - EventDragging.prototype.destroy = function () { - this.dragging.destroy(); - }; - // render a drag state on the next receivingCalendar - EventDragging.prototype.displayDrag = function (nextCalendar, state) { - var initialCalendar = this.component.calendar; - var prevCalendar = this.receivingCalendar; - // does the previous calendar need to be cleared? - if (prevCalendar && prevCalendar !== nextCalendar) { - // does the initial calendar need to be cleared? - // if so, don't clear all the way. we still need to to hide the affectedEvents - if (prevCalendar === initialCalendar) { - prevCalendar.dispatch({ - type: 'SET_EVENT_DRAG', - state: { - affectedEvents: state.affectedEvents, - mutatedEvents: createEmptyEventStore(), - isEvent: true, - origSeg: state.origSeg - } - }); - // completely clear the old calendar if it wasn't the initial - } - else { - prevCalendar.dispatch({ type: 'UNSET_EVENT_DRAG' }); - } - } - if (nextCalendar) { - nextCalendar.dispatch({ type: 'SET_EVENT_DRAG', state: state }); - } - }; - EventDragging.prototype.clearDrag = function () { - var initialCalendar = this.component.calendar; - var receivingCalendar = this.receivingCalendar; - if (receivingCalendar) { - receivingCalendar.dispatch({ type: 'UNSET_EVENT_DRAG' }); - } - // the initial calendar might have an dummy drag state from displayDrag - if (initialCalendar !== receivingCalendar) { - initialCalendar.dispatch({ type: 'UNSET_EVENT_DRAG' }); - } - }; - EventDragging.prototype.cleanup = function () { - this.subjectSeg = null; - this.isDragging = false; - this.eventRange = null; - this.relevantEvents = null; - this.receivingCalendar = null; - this.validMutation = null; - this.mutatedRelevantEvents = null; - }; - EventDragging.SELECTOR = '.fc-draggable, .fc-resizable'; // TODO: test this in IE11 - return EventDragging; -}(Interaction)); -function computeEventMutation(hit0, hit1, massagers) { - var dateSpan0 = hit0.dateSpan; - var dateSpan1 = hit1.dateSpan; - var date0 = dateSpan0.range.start; - var date1 = dateSpan1.range.start; - var standardProps = {}; - if (dateSpan0.allDay !== dateSpan1.allDay) { - standardProps.allDay = dateSpan1.allDay; - standardProps.hasEnd = hit1.component.opt('allDayMaintainDuration'); - if (dateSpan1.allDay) { - // means date1 is already start-of-day, - // but date0 needs to be converted - date0 = startOfDay(date0); - } - } - var delta = diffDates(date0, date1, hit0.component.dateEnv, hit0.component === hit1.component ? - hit0.component.largeUnit : - null); - if (delta.milliseconds) { // has hours/minutes/seconds - standardProps.allDay = false; - } - var mutation = { - datesDelta: delta, - standardProps: standardProps - }; - for (var _i = 0, massagers_1 = massagers; _i < massagers_1.length; _i++) { - var massager = massagers_1[_i]; - massager(mutation, hit0, hit1); - } - return mutation; -} -function getComponentTouchDelay$1(component) { - var delay = component.opt('eventLongPressDelay'); - if (delay == null) { - delay = component.opt('longPressDelay'); - } - return delay; -} - -var EventDragging$1 = /** @class */ (function (_super) { - __extends(EventDragging, _super); - function EventDragging(settings) { - var _this = _super.call(this, settings) || this; - // internal state - _this.draggingSeg = null; // TODO: rename to resizingSeg? subjectSeg? - _this.eventRange = null; - _this.relevantEvents = null; - _this.validMutation = null; - _this.mutatedRelevantEvents = null; - _this.handlePointerDown = function (ev) { - var component = _this.component; - var seg = _this.querySeg(ev); - var eventRange = _this.eventRange = seg.eventRange; - _this.dragging.minDistance = component.opt('eventDragMinDistance'); - // if touch, need to be working with a selected event - _this.dragging.setIgnoreMove(!_this.component.isValidSegDownEl(ev.origEvent.target) || - (ev.isTouch && _this.component.props.eventSelection !== eventRange.instance.instanceId)); - }; - _this.handleDragStart = function (ev) { - var calendar = _this.component.calendar; - var eventRange = _this.eventRange; - _this.relevantEvents = getRelevantEvents(calendar.state.eventStore, _this.eventRange.instance.instanceId); - _this.draggingSeg = _this.querySeg(ev); - calendar.unselect(); - calendar.publiclyTrigger('eventResizeStart', [ - { - el: _this.draggingSeg.el, - event: new EventApi(calendar, eventRange.def, eventRange.instance), - jsEvent: ev.origEvent, - view: _this.component.view - } - ]); - }; - _this.handleHitUpdate = function (hit, isFinal, ev) { - var calendar = _this.component.calendar; - var relevantEvents = _this.relevantEvents; - var initialHit = _this.hitDragging.initialHit; - var eventInstance = _this.eventRange.instance; - var mutation = null; - var mutatedRelevantEvents = null; - var isInvalid = false; - var interaction = { - affectedEvents: relevantEvents, - mutatedEvents: createEmptyEventStore(), - isEvent: true, - origSeg: _this.draggingSeg - }; - if (hit) { - mutation = computeMutation(initialHit, hit, ev.subjectEl.classList.contains('fc-start-resizer'), eventInstance.range, calendar.pluginSystem.hooks.eventResizeJoinTransforms); - } - if (mutation) { - mutatedRelevantEvents = applyMutationToEventStore(relevantEvents, calendar.eventUiBases, mutation, calendar); - interaction.mutatedEvents = mutatedRelevantEvents; - if (!_this.component.isInteractionValid(interaction)) { - isInvalid = true; - mutation = null; - mutatedRelevantEvents = null; - interaction.mutatedEvents = null; - } - } - if (mutatedRelevantEvents) { - calendar.dispatch({ - type: 'SET_EVENT_RESIZE', - state: interaction - }); - } - else { - calendar.dispatch({ type: 'UNSET_EVENT_RESIZE' }); - } - if (!isInvalid) { - enableCursor(); - } - else { - disableCursor(); - } - if (!isFinal) { - if (mutation && isHitsEqual(initialHit, hit)) { - mutation = null; - } - _this.validMutation = mutation; - _this.mutatedRelevantEvents = mutatedRelevantEvents; - } - }; - _this.handleDragEnd = function (ev) { - var calendar = _this.component.calendar; - var view = _this.component.view; - var eventDef = _this.eventRange.def; - var eventInstance = _this.eventRange.instance; - var eventApi = new EventApi(calendar, eventDef, eventInstance); - var relevantEvents = _this.relevantEvents; - var mutatedRelevantEvents = _this.mutatedRelevantEvents; - calendar.publiclyTrigger('eventResizeStop', [ - { - el: _this.draggingSeg.el, - event: eventApi, - jsEvent: ev.origEvent, - view: view - } - ]); - if (_this.validMutation) { - calendar.dispatch({ - type: 'MERGE_EVENTS', - eventStore: mutatedRelevantEvents - }); - calendar.publiclyTrigger('eventResize', [ - { - el: _this.draggingSeg.el, - startDelta: _this.validMutation.startDelta || createDuration(0), - endDelta: _this.validMutation.endDelta || createDuration(0), - prevEvent: eventApi, - event: new EventApi(// the data AFTER the mutation - calendar, mutatedRelevantEvents.defs[eventDef.defId], eventInstance ? mutatedRelevantEvents.instances[eventInstance.instanceId] : null), - revert: function () { - calendar.dispatch({ - type: 'MERGE_EVENTS', - eventStore: relevantEvents - }); - }, - jsEvent: ev.origEvent, - view: view - } - ]); - } - else { - calendar.publiclyTrigger('_noEventResize'); - } - // reset all internal state - _this.draggingSeg = null; - _this.relevantEvents = null; - _this.validMutation = null; - // okay to keep eventInstance around. useful to set it in handlePointerDown - }; - var component = settings.component; - var dragging = _this.dragging = new FeaturefulElementDragging(component.el); - dragging.pointer.selector = '.fc-resizer'; - dragging.touchScrollAllowed = false; - dragging.autoScroller.isEnabled = component.opt('dragScroll'); - var hitDragging = _this.hitDragging = new HitDragging(_this.dragging, interactionSettingsToStore(settings)); - hitDragging.emitter.on('pointerdown', _this.handlePointerDown); - hitDragging.emitter.on('dragstart', _this.handleDragStart); - hitDragging.emitter.on('hitupdate', _this.handleHitUpdate); - hitDragging.emitter.on('dragend', _this.handleDragEnd); - return _this; - } - EventDragging.prototype.destroy = function () { - this.dragging.destroy(); - }; - EventDragging.prototype.querySeg = function (ev) { - return getElSeg(elementClosest(ev.subjectEl, this.component.fgSegSelector)); - }; - return EventDragging; -}(Interaction)); -function computeMutation(hit0, hit1, isFromStart, instanceRange, transforms) { - var dateEnv = hit0.component.dateEnv; - var date0 = hit0.dateSpan.range.start; - var date1 = hit1.dateSpan.range.start; - var delta = diffDates(date0, date1, dateEnv, hit0.component.largeUnit); - var props = {}; - for (var _i = 0, transforms_1 = transforms; _i < transforms_1.length; _i++) { - var transform = transforms_1[_i]; - var res = transform(hit0, hit1); - if (res === false) { - return null; - } - else if (res) { - __assign(props, res); - } - } - if (isFromStart) { - if (dateEnv.add(instanceRange.start, delta) < instanceRange.end) { - props.startDelta = delta; - return props; - } - } - else { - if (dateEnv.add(instanceRange.end, delta) > instanceRange.start) { - props.endDelta = delta; - return props; - } - } - return null; -} - -var UnselectAuto = /** @class */ (function () { - function UnselectAuto(calendar) { - var _this = this; - this.isRecentPointerDateSelect = false; // wish we could use a selector to detect date selection, but uses hit system - this.onSelect = function (selectInfo) { - if (selectInfo.jsEvent) { - _this.isRecentPointerDateSelect = true; - } - }; - this.onDocumentPointerUp = function (pev) { - var _a = _this, calendar = _a.calendar, documentPointer = _a.documentPointer; - var state = calendar.state; - // touch-scrolling should never unfocus any type of selection - if (!documentPointer.wasTouchScroll) { - if (state.dateSelection && // an existing date selection? - !_this.isRecentPointerDateSelect // a new pointer-initiated date selection since last onDocumentPointerUp? - ) { - var unselectAuto = calendar.viewOpt('unselectAuto'); - var unselectCancel = calendar.viewOpt('unselectCancel'); - if (unselectAuto && (!unselectAuto || !elementClosest(documentPointer.downEl, unselectCancel))) { - calendar.unselect(pev); - } - } - if (state.eventSelection && // an existing event selected? - !elementClosest(documentPointer.downEl, EventDragging.SELECTOR) // interaction DIDN'T start on an event - ) { - calendar.dispatch({ type: 'UNSELECT_EVENT' }); - } - } - _this.isRecentPointerDateSelect = false; - }; - this.calendar = calendar; - var documentPointer = this.documentPointer = new PointerDragging(document); - documentPointer.shouldIgnoreMove = true; - documentPointer.shouldWatchScroll = false; - documentPointer.emitter.on('pointerup', this.onDocumentPointerUp); - /* - TODO: better way to know about whether there was a selection with the pointer - */ - calendar.on('select', this.onSelect); - } - UnselectAuto.prototype.destroy = function () { - this.calendar.off('select', this.onSelect); - this.documentPointer.destroy(); - }; - return UnselectAuto; -}()); - -/* -Given an already instantiated draggable object for one-or-more elements, -Interprets any dragging as an attempt to drag an events that lives outside -of a calendar onto a calendar. -*/ -var ExternalElementDragging = /** @class */ (function () { - function ExternalElementDragging(dragging, suppliedDragMeta) { - var _this = this; - this.receivingCalendar = null; - this.droppableEvent = null; // will exist for all drags, even if create:false - this.suppliedDragMeta = null; - this.dragMeta = null; - this.handleDragStart = function (ev) { - _this.dragMeta = _this.buildDragMeta(ev.subjectEl); - }; - this.handleHitUpdate = function (hit, isFinal, ev) { - var dragging = _this.hitDragging.dragging; - var receivingCalendar = null; - var droppableEvent = null; - var isInvalid = false; - var interaction = { - affectedEvents: createEmptyEventStore(), - mutatedEvents: createEmptyEventStore(), - isEvent: _this.dragMeta.create, - origSeg: null - }; - if (hit) { - receivingCalendar = hit.component.calendar; - if (_this.canDropElOnCalendar(ev.subjectEl, receivingCalendar)) { - droppableEvent = computeEventForDateSpan(hit.dateSpan, _this.dragMeta, receivingCalendar); - interaction.mutatedEvents = eventTupleToStore(droppableEvent); - isInvalid = !isInteractionValid(interaction, receivingCalendar); - if (isInvalid) { - interaction.mutatedEvents = createEmptyEventStore(); - droppableEvent = null; - } - } - } - _this.displayDrag(receivingCalendar, interaction); - // show mirror if no already-rendered mirror element OR if we are shutting down the mirror (?) - // TODO: wish we could somehow wait for dispatch to guarantee render - dragging.setMirrorIsVisible(isFinal || !droppableEvent || !document.querySelector('.fc-mirror')); - if (!isInvalid) { - enableCursor(); - } - else { - disableCursor(); - } - if (!isFinal) { - dragging.setMirrorNeedsRevert(!droppableEvent); - _this.receivingCalendar = receivingCalendar; - _this.droppableEvent = droppableEvent; - } - }; - this.handleDragEnd = function (pev) { - var _a = _this, receivingCalendar = _a.receivingCalendar, droppableEvent = _a.droppableEvent; - _this.clearDrag(); - if (receivingCalendar && droppableEvent) { - var finalHit = _this.hitDragging.finalHit; - var finalView = finalHit.component.view; - var dragMeta = _this.dragMeta; - var arg = __assign({}, receivingCalendar.buildDatePointApi(finalHit.dateSpan), { draggedEl: pev.subjectEl, jsEvent: pev.origEvent, view: finalView }); - receivingCalendar.publiclyTrigger('drop', [arg]); - if (dragMeta.create) { - receivingCalendar.dispatch({ - type: 'MERGE_EVENTS', - eventStore: eventTupleToStore(droppableEvent) - }); - if (pev.isTouch) { - receivingCalendar.dispatch({ - type: 'SELECT_EVENT', - eventInstanceId: droppableEvent.instance.instanceId - }); - } - // signal that an external event landed - receivingCalendar.publiclyTrigger('eventReceive', [ - { - draggedEl: pev.subjectEl, - event: new EventApi(receivingCalendar, droppableEvent.def, droppableEvent.instance), - view: finalView - } - ]); - } - } - _this.receivingCalendar = null; - _this.droppableEvent = null; - }; - var hitDragging = this.hitDragging = new HitDragging(dragging, interactionSettingsStore); - hitDragging.requireInitial = false; // will start outside of a component - hitDragging.emitter.on('dragstart', this.handleDragStart); - hitDragging.emitter.on('hitupdate', this.handleHitUpdate); - hitDragging.emitter.on('dragend', this.handleDragEnd); - this.suppliedDragMeta = suppliedDragMeta; - } - ExternalElementDragging.prototype.buildDragMeta = function (subjectEl) { - if (typeof this.suppliedDragMeta === 'object') { - return parseDragMeta(this.suppliedDragMeta); - } - else if (typeof this.suppliedDragMeta === 'function') { - return parseDragMeta(this.suppliedDragMeta(subjectEl)); - } - else { - return getDragMetaFromEl(subjectEl); - } - }; - ExternalElementDragging.prototype.displayDrag = function (nextCalendar, state) { - var prevCalendar = this.receivingCalendar; - if (prevCalendar && prevCalendar !== nextCalendar) { - prevCalendar.dispatch({ type: 'UNSET_EVENT_DRAG' }); - } - if (nextCalendar) { - nextCalendar.dispatch({ type: 'SET_EVENT_DRAG', state: state }); - } - }; - ExternalElementDragging.prototype.clearDrag = function () { - if (this.receivingCalendar) { - this.receivingCalendar.dispatch({ type: 'UNSET_EVENT_DRAG' }); - } - }; - ExternalElementDragging.prototype.canDropElOnCalendar = function (el, receivingCalendar) { - var dropAccept = receivingCalendar.opt('dropAccept'); - if (typeof dropAccept === 'function') { - return dropAccept(el); - } - else if (typeof dropAccept === 'string' && dropAccept) { - return Boolean(elementMatches(el, dropAccept)); - } - return true; - }; - return ExternalElementDragging; -}()); -// Utils for computing event store from the DragMeta -// ---------------------------------------------------------------------------------------------------- -function computeEventForDateSpan(dateSpan, dragMeta, calendar) { - var defProps = __assign({}, dragMeta.leftoverProps); - for (var _i = 0, _a = calendar.pluginSystem.hooks.externalDefTransforms; _i < _a.length; _i++) { - var transform = _a[_i]; - __assign(defProps, transform(dateSpan, dragMeta)); - } - var def = parseEventDef(defProps, dragMeta.sourceId, dateSpan.allDay, calendar.opt('forceEventDuration') || Boolean(dragMeta.duration), // hasEnd - calendar); - var start = dateSpan.range.start; - // only rely on time info if drop zone is all-day, - // otherwise, we already know the time - if (dateSpan.allDay && dragMeta.startTime) { - start = calendar.dateEnv.add(start, dragMeta.startTime); - } - var end = dragMeta.duration ? - calendar.dateEnv.add(start, dragMeta.duration) : - calendar.getDefaultEventEnd(dateSpan.allDay, start); - var instance = createEventInstance(def.defId, { start: start, end: end }); - return { def: def, instance: instance }; -} -// Utils for extracting data from element -// ---------------------------------------------------------------------------------------------------- -function getDragMetaFromEl(el) { - var str = getEmbeddedElData(el, 'event'); - var obj = str ? - JSON.parse(str) : - { create: false }; // if no embedded data, assume no event creation - return parseDragMeta(obj); -} -config.dataAttrPrefix = ''; -function getEmbeddedElData(el, name) { - var prefix = config.dataAttrPrefix; - var prefixedName = (prefix ? prefix + '-' : '') + name; - return el.getAttribute('data-' + prefixedName) || ''; -} - -/* -Makes an element (that is *external* to any calendar) draggable. -Can pass in data that determines how an event will be created when dropped onto a calendar. -Leverages FullCalendar's internal drag-n-drop functionality WITHOUT a third-party drag system. -*/ -var ExternalDraggable = /** @class */ (function () { - function ExternalDraggable(el, settings) { - var _this = this; - if (settings === void 0) { settings = {}; } - this.handlePointerDown = function (ev) { - var dragging = _this.dragging; - var _a = _this.settings, minDistance = _a.minDistance, longPressDelay = _a.longPressDelay; - dragging.minDistance = - minDistance != null ? - minDistance : - (ev.isTouch ? 0 : globalDefaults.eventDragMinDistance); - dragging.delay = - ev.isTouch ? // TODO: eventually read eventLongPressDelay instead vvv - (longPressDelay != null ? longPressDelay : globalDefaults.longPressDelay) : - 0; - }; - this.handleDragStart = function (ev) { - if (ev.isTouch && - _this.dragging.delay && - ev.subjectEl.classList.contains('fc-event')) { - _this.dragging.mirror.getMirrorEl().classList.add('fc-selected'); - } - }; - this.settings = settings; - var dragging = this.dragging = new FeaturefulElementDragging(el); - dragging.touchScrollAllowed = false; - if (settings.itemSelector != null) { - dragging.pointer.selector = settings.itemSelector; - } - if (settings.appendTo != null) { - dragging.mirror.parentNode = settings.appendTo; // TODO: write tests - } - dragging.emitter.on('pointerdown', this.handlePointerDown); - dragging.emitter.on('dragstart', this.handleDragStart); - new ExternalElementDragging(dragging, settings.eventData); - } - ExternalDraggable.prototype.destroy = function () { - this.dragging.destroy(); - }; - return ExternalDraggable; -}()); - -/* -Detects when a *THIRD-PARTY* drag-n-drop system interacts with elements. -The third-party system is responsible for drawing the visuals effects of the drag. -This class simply monitors for pointer movements and fires events. -It also has the ability to hide the moving element (the "mirror") during the drag. -*/ -var InferredElementDragging = /** @class */ (function (_super) { - __extends(InferredElementDragging, _super); - function InferredElementDragging(containerEl) { - var _this = _super.call(this, containerEl) || this; - _this.shouldIgnoreMove = false; - _this.mirrorSelector = ''; - _this.currentMirrorEl = null; - _this.handlePointerDown = function (ev) { - _this.emitter.trigger('pointerdown', ev); - if (!_this.shouldIgnoreMove) { - // fire dragstart right away. does not support delay or min-distance - _this.emitter.trigger('dragstart', ev); - } - }; - _this.handlePointerMove = function (ev) { - if (!_this.shouldIgnoreMove) { - _this.emitter.trigger('dragmove', ev); - } - }; - _this.handlePointerUp = function (ev) { - _this.emitter.trigger('pointerup', ev); - if (!_this.shouldIgnoreMove) { - // fire dragend right away. does not support a revert animation - _this.emitter.trigger('dragend', ev); - } - }; - var pointer = _this.pointer = new PointerDragging(containerEl); - pointer.emitter.on('pointerdown', _this.handlePointerDown); - pointer.emitter.on('pointermove', _this.handlePointerMove); - pointer.emitter.on('pointerup', _this.handlePointerUp); - return _this; - } - InferredElementDragging.prototype.destroy = function () { - this.pointer.destroy(); - }; - InferredElementDragging.prototype.setIgnoreMove = function (bool) { - this.shouldIgnoreMove = bool; - }; - InferredElementDragging.prototype.setMirrorIsVisible = function (bool) { - if (bool) { - // restore a previously hidden element. - // use the reference in case the selector class has already been removed. - if (this.currentMirrorEl) { - this.currentMirrorEl.style.visibility = ''; - this.currentMirrorEl = null; - } - } - else { - var mirrorEl = this.mirrorSelector ? - document.querySelector(this.mirrorSelector) : - null; - if (mirrorEl) { - this.currentMirrorEl = mirrorEl; - mirrorEl.style.visibility = 'hidden'; - } - } - }; - return InferredElementDragging; -}(ElementDragging)); - -/* -Bridges third-party drag-n-drop systems with FullCalendar. -Must be instantiated and destroyed by caller. -*/ -var ThirdPartyDraggable = /** @class */ (function () { - function ThirdPartyDraggable(containerOrSettings, settings) { - var containerEl = document; - if ( - // wish we could just test instanceof EventTarget, but doesn't work in IE11 - containerOrSettings === document || - containerOrSettings instanceof Element) { - containerEl = containerOrSettings; - settings = settings || {}; - } - else { - settings = (containerOrSettings || {}); - } - var dragging = this.dragging = new InferredElementDragging(containerEl); - if (typeof settings.itemSelector === 'string') { - dragging.pointer.selector = settings.itemSelector; - } - else if (containerEl === document) { - dragging.pointer.selector = '[data-event]'; - } - if (typeof settings.mirrorSelector === 'string') { - dragging.mirrorSelector = settings.mirrorSelector; - } - new ExternalElementDragging(dragging, settings.eventData); - } - ThirdPartyDraggable.prototype.destroy = function () { - this.dragging.destroy(); - }; - return ThirdPartyDraggable; -}()); - -var main = createPlugin({ - componentInteractions: [DateClicking, DateSelecting, EventDragging, EventDragging$1], - calendarInteractions: [UnselectAuto], - elementDraggingImpl: FeaturefulElementDragging -}); - -export default main; -export { ExternalDraggable as Draggable, FeaturefulElementDragging, PointerDragging, ThirdPartyDraggable }; diff --git a/htdocs/public/high/plugins/fullcalendar/packages/interaction/main.js b/htdocs/public/high/plugins/fullcalendar/packages/interaction/main.js deleted file mode 100644 index 10589f28..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/interaction/main.js +++ /dev/null @@ -1,2143 +0,0 @@ -/*! -FullCalendar Interaction Plugin v4.3.0 -Docs & License: https://fullcalendar.io/ -(c) 2019 Adam Shaw -*/ - -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@fullcalendar/core')) : - typeof define === 'function' && define.amd ? define(['exports', '@fullcalendar/core'], factory) : - (global = global || self, factory(global.FullCalendarInteraction = {}, global.FullCalendar)); -}(this, function (exports, core) { 'use strict'; - - /*! ***************************************************************************** - Copyright (c) Microsoft Corporation. All rights reserved. - Licensed under the Apache License, Version 2.0 (the "License"); you may not use - this file except in compliance with the License. You may obtain a copy of the - License at http://www.apache.org/licenses/LICENSE-2.0 - - THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED - WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, - MERCHANTABLITY OR NON-INFRINGEMENT. - - See the Apache Version 2.0 License for specific language governing permissions - and limitations under the License. - ***************************************************************************** */ - /* global Reflect, Promise */ - - var extendStatics = function(d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - - function __extends(d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - } - - var __assign = function() { - __assign = Object.assign || function __assign(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); - }; - - core.config.touchMouseIgnoreWait = 500; - var ignoreMouseDepth = 0; - var listenerCnt = 0; - var isWindowTouchMoveCancelled = false; - /* - Uses a "pointer" abstraction, which monitors UI events for both mouse and touch. - Tracks when the pointer "drags" on a certain element, meaning down+move+up. - - Also, tracks if there was touch-scrolling. - Also, can prevent touch-scrolling from happening. - Also, can fire pointermove events when scrolling happens underneath, even when no real pointer movement. - - emits: - - pointerdown - - pointermove - - pointerup - */ - var PointerDragging = /** @class */ (function () { - function PointerDragging(containerEl) { - var _this = this; - this.subjectEl = null; - this.downEl = null; - // options that can be directly assigned by caller - this.selector = ''; // will cause subjectEl in all emitted events to be this element - this.handleSelector = ''; - this.shouldIgnoreMove = false; - this.shouldWatchScroll = true; // for simulating pointermove on scroll - // internal states - this.isDragging = false; - this.isTouchDragging = false; - this.wasTouchScroll = false; - // Mouse - // ---------------------------------------------------------------------------------------------------- - this.handleMouseDown = function (ev) { - if (!_this.shouldIgnoreMouse() && - isPrimaryMouseButton(ev) && - _this.tryStart(ev)) { - var pev = _this.createEventFromMouse(ev, true); - _this.emitter.trigger('pointerdown', pev); - _this.initScrollWatch(pev); - if (!_this.shouldIgnoreMove) { - document.addEventListener('mousemove', _this.handleMouseMove); - } - document.addEventListener('mouseup', _this.handleMouseUp); - } - }; - this.handleMouseMove = function (ev) { - var pev = _this.createEventFromMouse(ev); - _this.recordCoords(pev); - _this.emitter.trigger('pointermove', pev); - }; - this.handleMouseUp = function (ev) { - document.removeEventListener('mousemove', _this.handleMouseMove); - document.removeEventListener('mouseup', _this.handleMouseUp); - _this.emitter.trigger('pointerup', _this.createEventFromMouse(ev)); - _this.cleanup(); // call last so that pointerup has access to props - }; - // Touch - // ---------------------------------------------------------------------------------------------------- - this.handleTouchStart = function (ev) { - if (_this.tryStart(ev)) { - _this.isTouchDragging = true; - var pev = _this.createEventFromTouch(ev, true); - _this.emitter.trigger('pointerdown', pev); - _this.initScrollWatch(pev); - // unlike mouse, need to attach to target, not document - // https://stackoverflow.com/a/45760014 - var target = ev.target; - if (!_this.shouldIgnoreMove) { - target.addEventListener('touchmove', _this.handleTouchMove); - } - target.addEventListener('touchend', _this.handleTouchEnd); - target.addEventListener('touchcancel', _this.handleTouchEnd); // treat it as a touch end - // attach a handler to get called when ANY scroll action happens on the page. - // this was impossible to do with normal on/off because 'scroll' doesn't bubble. - // http://stackoverflow.com/a/32954565/96342 - window.addEventListener('scroll', _this.handleTouchScroll, true // useCapture - ); - } - }; - this.handleTouchMove = function (ev) { - var pev = _this.createEventFromTouch(ev); - _this.recordCoords(pev); - _this.emitter.trigger('pointermove', pev); - }; - this.handleTouchEnd = function (ev) { - if (_this.isDragging) { // done to guard against touchend followed by touchcancel - var target = ev.target; - target.removeEventListener('touchmove', _this.handleTouchMove); - target.removeEventListener('touchend', _this.handleTouchEnd); - target.removeEventListener('touchcancel', _this.handleTouchEnd); - window.removeEventListener('scroll', _this.handleTouchScroll, true); // useCaptured=true - _this.emitter.trigger('pointerup', _this.createEventFromTouch(ev)); - _this.cleanup(); // call last so that pointerup has access to props - _this.isTouchDragging = false; - startIgnoringMouse(); - } - }; - this.handleTouchScroll = function () { - _this.wasTouchScroll = true; - }; - this.handleScroll = function (ev) { - if (!_this.shouldIgnoreMove) { - var pageX = (window.pageXOffset - _this.prevScrollX) + _this.prevPageX; - var pageY = (window.pageYOffset - _this.prevScrollY) + _this.prevPageY; - _this.emitter.trigger('pointermove', { - origEvent: ev, - isTouch: _this.isTouchDragging, - subjectEl: _this.subjectEl, - pageX: pageX, - pageY: pageY, - deltaX: pageX - _this.origPageX, - deltaY: pageY - _this.origPageY - }); - } - }; - this.containerEl = containerEl; - this.emitter = new core.EmitterMixin(); - containerEl.addEventListener('mousedown', this.handleMouseDown); - containerEl.addEventListener('touchstart', this.handleTouchStart, { passive: true }); - listenerCreated(); - } - PointerDragging.prototype.destroy = function () { - this.containerEl.removeEventListener('mousedown', this.handleMouseDown); - this.containerEl.removeEventListener('touchstart', this.handleTouchStart, { passive: true }); - listenerDestroyed(); - }; - PointerDragging.prototype.tryStart = function (ev) { - var subjectEl = this.querySubjectEl(ev); - var downEl = ev.target; - if (subjectEl && - (!this.handleSelector || core.elementClosest(downEl, this.handleSelector))) { - this.subjectEl = subjectEl; - this.downEl = downEl; - this.isDragging = true; // do this first so cancelTouchScroll will work - this.wasTouchScroll = false; - return true; - } - return false; - }; - PointerDragging.prototype.cleanup = function () { - isWindowTouchMoveCancelled = false; - this.isDragging = false; - this.subjectEl = null; - this.downEl = null; - // keep wasTouchScroll around for later access - this.destroyScrollWatch(); - }; - PointerDragging.prototype.querySubjectEl = function (ev) { - if (this.selector) { - return core.elementClosest(ev.target, this.selector); - } - else { - return this.containerEl; - } - }; - PointerDragging.prototype.shouldIgnoreMouse = function () { - return ignoreMouseDepth || this.isTouchDragging; - }; - // can be called by user of this class, to cancel touch-based scrolling for the current drag - PointerDragging.prototype.cancelTouchScroll = function () { - if (this.isDragging) { - isWindowTouchMoveCancelled = true; - } - }; - // Scrolling that simulates pointermoves - // ---------------------------------------------------------------------------------------------------- - PointerDragging.prototype.initScrollWatch = function (ev) { - if (this.shouldWatchScroll) { - this.recordCoords(ev); - window.addEventListener('scroll', this.handleScroll, true); // useCapture=true - } - }; - PointerDragging.prototype.recordCoords = function (ev) { - if (this.shouldWatchScroll) { - this.prevPageX = ev.pageX; - this.prevPageY = ev.pageY; - this.prevScrollX = window.pageXOffset; - this.prevScrollY = window.pageYOffset; - } - }; - PointerDragging.prototype.destroyScrollWatch = function () { - if (this.shouldWatchScroll) { - window.removeEventListener('scroll', this.handleScroll, true); // useCaptured=true - } - }; - // Event Normalization - // ---------------------------------------------------------------------------------------------------- - PointerDragging.prototype.createEventFromMouse = function (ev, isFirst) { - var deltaX = 0; - var deltaY = 0; - // TODO: repeat code - if (isFirst) { - this.origPageX = ev.pageX; - this.origPageY = ev.pageY; - } - else { - deltaX = ev.pageX - this.origPageX; - deltaY = ev.pageY - this.origPageY; - } - return { - origEvent: ev, - isTouch: false, - subjectEl: this.subjectEl, - pageX: ev.pageX, - pageY: ev.pageY, - deltaX: deltaX, - deltaY: deltaY - }; - }; - PointerDragging.prototype.createEventFromTouch = function (ev, isFirst) { - var touches = ev.touches; - var pageX; - var pageY; - var deltaX = 0; - var deltaY = 0; - // if touch coords available, prefer, - // because FF would give bad ev.pageX ev.pageY - if (touches && touches.length) { - pageX = touches[0].pageX; - pageY = touches[0].pageY; - } - else { - pageX = ev.pageX; - pageY = ev.pageY; - } - // TODO: repeat code - if (isFirst) { - this.origPageX = pageX; - this.origPageY = pageY; - } - else { - deltaX = pageX - this.origPageX; - deltaY = pageY - this.origPageY; - } - return { - origEvent: ev, - isTouch: true, - subjectEl: this.subjectEl, - pageX: pageX, - pageY: pageY, - deltaX: deltaX, - deltaY: deltaY - }; - }; - return PointerDragging; - }()); - // Returns a boolean whether this was a left mouse click and no ctrl key (which means right click on Mac) - function isPrimaryMouseButton(ev) { - return ev.button === 0 && !ev.ctrlKey; - } - // Ignoring fake mouse events generated by touch - // ---------------------------------------------------------------------------------------------------- - function startIgnoringMouse() { - ignoreMouseDepth++; - setTimeout(function () { - ignoreMouseDepth--; - }, core.config.touchMouseIgnoreWait); - } - // We want to attach touchmove as early as possible for Safari - // ---------------------------------------------------------------------------------------------------- - function listenerCreated() { - if (!(listenerCnt++)) { - window.addEventListener('touchmove', onWindowTouchMove, { passive: false }); - } - } - function listenerDestroyed() { - if (!(--listenerCnt)) { - window.removeEventListener('touchmove', onWindowTouchMove, { passive: false }); - } - } - function onWindowTouchMove(ev) { - if (isWindowTouchMoveCancelled) { - ev.preventDefault(); - } - } - - /* - An effect in which an element follows the movement of a pointer across the screen. - The moving element is a clone of some other element. - Must call start + handleMove + stop. - */ - var ElementMirror = /** @class */ (function () { - function ElementMirror() { - this.isVisible = false; // must be explicitly enabled - this.sourceEl = null; - this.mirrorEl = null; - this.sourceElRect = null; // screen coords relative to viewport - // options that can be set directly by caller - this.parentNode = document.body; - this.zIndex = 9999; - this.revertDuration = 0; - } - ElementMirror.prototype.start = function (sourceEl, pageX, pageY) { - this.sourceEl = sourceEl; - this.sourceElRect = this.sourceEl.getBoundingClientRect(); - this.origScreenX = pageX - window.pageXOffset; - this.origScreenY = pageY - window.pageYOffset; - this.deltaX = 0; - this.deltaY = 0; - this.updateElPosition(); - }; - ElementMirror.prototype.handleMove = function (pageX, pageY) { - this.deltaX = (pageX - window.pageXOffset) - this.origScreenX; - this.deltaY = (pageY - window.pageYOffset) - this.origScreenY; - this.updateElPosition(); - }; - // can be called before start - ElementMirror.prototype.setIsVisible = function (bool) { - if (bool) { - if (!this.isVisible) { - if (this.mirrorEl) { - this.mirrorEl.style.display = ''; - } - this.isVisible = bool; // needs to happen before updateElPosition - this.updateElPosition(); // because was not updating the position while invisible - } - } - else { - if (this.isVisible) { - if (this.mirrorEl) { - this.mirrorEl.style.display = 'none'; - } - this.isVisible = bool; - } - } - }; - // always async - ElementMirror.prototype.stop = function (needsRevertAnimation, callback) { - var _this = this; - var done = function () { - _this.cleanup(); - callback(); - }; - if (needsRevertAnimation && - this.mirrorEl && - this.isVisible && - this.revertDuration && // if 0, transition won't work - (this.deltaX || this.deltaY) // if same coords, transition won't work - ) { - this.doRevertAnimation(done, this.revertDuration); - } - else { - setTimeout(done, 0); - } - }; - ElementMirror.prototype.doRevertAnimation = function (callback, revertDuration) { - var mirrorEl = this.mirrorEl; - var finalSourceElRect = this.sourceEl.getBoundingClientRect(); // because autoscrolling might have happened - mirrorEl.style.transition = - 'top ' + revertDuration + 'ms,' + - 'left ' + revertDuration + 'ms'; - core.applyStyle(mirrorEl, { - left: finalSourceElRect.left, - top: finalSourceElRect.top - }); - core.whenTransitionDone(mirrorEl, function () { - mirrorEl.style.transition = ''; - callback(); - }); - }; - ElementMirror.prototype.cleanup = function () { - if (this.mirrorEl) { - core.removeElement(this.mirrorEl); - this.mirrorEl = null; - } - this.sourceEl = null; - }; - ElementMirror.prototype.updateElPosition = function () { - if (this.sourceEl && this.isVisible) { - core.applyStyle(this.getMirrorEl(), { - left: this.sourceElRect.left + this.deltaX, - top: this.sourceElRect.top + this.deltaY - }); - } - }; - ElementMirror.prototype.getMirrorEl = function () { - var sourceElRect = this.sourceElRect; - var mirrorEl = this.mirrorEl; - if (!mirrorEl) { - mirrorEl = this.mirrorEl = this.sourceEl.cloneNode(true); // cloneChildren=true - // we don't want long taps or any mouse interaction causing selection/menus. - // would use preventSelection(), but that prevents selectstart, causing problems. - mirrorEl.classList.add('fc-unselectable'); - mirrorEl.classList.add('fc-dragging'); - core.applyStyle(mirrorEl, { - position: 'fixed', - zIndex: this.zIndex, - visibility: '', - boxSizing: 'border-box', - width: sourceElRect.right - sourceElRect.left, - height: sourceElRect.bottom - sourceElRect.top, - right: 'auto', - bottom: 'auto', - margin: 0 - }); - this.parentNode.appendChild(mirrorEl); - } - return mirrorEl; - }; - return ElementMirror; - }()); - - /* - Is a cache for a given element's scroll information (all the info that ScrollController stores) - in addition the "client rectangle" of the element.. the area within the scrollbars. - - The cache can be in one of two modes: - - doesListening:false - ignores when the container is scrolled by someone else - - doesListening:true - watch for scrolling and update the cache - */ - var ScrollGeomCache = /** @class */ (function (_super) { - __extends(ScrollGeomCache, _super); - function ScrollGeomCache(scrollController, doesListening) { - var _this = _super.call(this) || this; - _this.handleScroll = function () { - _this.scrollTop = _this.scrollController.getScrollTop(); - _this.scrollLeft = _this.scrollController.getScrollLeft(); - _this.handleScrollChange(); - }; - _this.scrollController = scrollController; - _this.doesListening = doesListening; - _this.scrollTop = _this.origScrollTop = scrollController.getScrollTop(); - _this.scrollLeft = _this.origScrollLeft = scrollController.getScrollLeft(); - _this.scrollWidth = scrollController.getScrollWidth(); - _this.scrollHeight = scrollController.getScrollHeight(); - _this.clientWidth = scrollController.getClientWidth(); - _this.clientHeight = scrollController.getClientHeight(); - _this.clientRect = _this.computeClientRect(); // do last in case it needs cached values - if (_this.doesListening) { - _this.getEventTarget().addEventListener('scroll', _this.handleScroll); - } - return _this; - } - ScrollGeomCache.prototype.destroy = function () { - if (this.doesListening) { - this.getEventTarget().removeEventListener('scroll', this.handleScroll); - } - }; - ScrollGeomCache.prototype.getScrollTop = function () { - return this.scrollTop; - }; - ScrollGeomCache.prototype.getScrollLeft = function () { - return this.scrollLeft; - }; - ScrollGeomCache.prototype.setScrollTop = function (top) { - this.scrollController.setScrollTop(top); - if (!this.doesListening) { - // we are not relying on the element to normalize out-of-bounds scroll values - // so we need to sanitize ourselves - this.scrollTop = Math.max(Math.min(top, this.getMaxScrollTop()), 0); - this.handleScrollChange(); - } - }; - ScrollGeomCache.prototype.setScrollLeft = function (top) { - this.scrollController.setScrollLeft(top); - if (!this.doesListening) { - // we are not relying on the element to normalize out-of-bounds scroll values - // so we need to sanitize ourselves - this.scrollLeft = Math.max(Math.min(top, this.getMaxScrollLeft()), 0); - this.handleScrollChange(); - } - }; - ScrollGeomCache.prototype.getClientWidth = function () { - return this.clientWidth; - }; - ScrollGeomCache.prototype.getClientHeight = function () { - return this.clientHeight; - }; - ScrollGeomCache.prototype.getScrollWidth = function () { - return this.scrollWidth; - }; - ScrollGeomCache.prototype.getScrollHeight = function () { - return this.scrollHeight; - }; - ScrollGeomCache.prototype.handleScrollChange = function () { - }; - return ScrollGeomCache; - }(core.ScrollController)); - var ElementScrollGeomCache = /** @class */ (function (_super) { - __extends(ElementScrollGeomCache, _super); - function ElementScrollGeomCache(el, doesListening) { - return _super.call(this, new core.ElementScrollController(el), doesListening) || this; - } - ElementScrollGeomCache.prototype.getEventTarget = function () { - return this.scrollController.el; - }; - ElementScrollGeomCache.prototype.computeClientRect = function () { - return core.computeInnerRect(this.scrollController.el); - }; - return ElementScrollGeomCache; - }(ScrollGeomCache)); - var WindowScrollGeomCache = /** @class */ (function (_super) { - __extends(WindowScrollGeomCache, _super); - function WindowScrollGeomCache(doesListening) { - return _super.call(this, new core.WindowScrollController(), doesListening) || this; - } - WindowScrollGeomCache.prototype.getEventTarget = function () { - return window; - }; - WindowScrollGeomCache.prototype.computeClientRect = function () { - return { - left: this.scrollLeft, - right: this.scrollLeft + this.clientWidth, - top: this.scrollTop, - bottom: this.scrollTop + this.clientHeight - }; - }; - // the window is the only scroll object that changes it's rectangle relative - // to the document's topleft as it scrolls - WindowScrollGeomCache.prototype.handleScrollChange = function () { - this.clientRect = this.computeClientRect(); - }; - return WindowScrollGeomCache; - }(ScrollGeomCache)); - - // If available we are using native "performance" API instead of "Date" - // Read more about it on MDN: - // https://developer.mozilla.org/en-US/docs/Web/API/Performance - var getTime = typeof performance === 'function' ? performance.now : Date.now; - /* - For a pointer interaction, automatically scrolls certain scroll containers when the pointer - approaches the edge. - - The caller must call start + handleMove + stop. - */ - var AutoScroller = /** @class */ (function () { - function AutoScroller() { - var _this = this; - // options that can be set by caller - this.isEnabled = true; - this.scrollQuery = [window, '.fc-scroller']; - this.edgeThreshold = 50; // pixels - this.maxVelocity = 300; // pixels per second - // internal state - this.pointerScreenX = null; - this.pointerScreenY = null; - this.isAnimating = false; - this.scrollCaches = null; - // protect against the initial pointerdown being too close to an edge and starting the scroll - this.everMovedUp = false; - this.everMovedDown = false; - this.everMovedLeft = false; - this.everMovedRight = false; - this.animate = function () { - if (_this.isAnimating) { // wasn't cancelled between animation calls - var edge = _this.computeBestEdge(_this.pointerScreenX + window.pageXOffset, _this.pointerScreenY + window.pageYOffset); - if (edge) { - var now = getTime(); - _this.handleSide(edge, (now - _this.msSinceRequest) / 1000); - _this.requestAnimation(now); - } - else { - _this.isAnimating = false; // will stop animation - } - } - }; - } - AutoScroller.prototype.start = function (pageX, pageY) { - if (this.isEnabled) { - this.scrollCaches = this.buildCaches(); - this.pointerScreenX = null; - this.pointerScreenY = null; - this.everMovedUp = false; - this.everMovedDown = false; - this.everMovedLeft = false; - this.everMovedRight = false; - this.handleMove(pageX, pageY); - } - }; - AutoScroller.prototype.handleMove = function (pageX, pageY) { - if (this.isEnabled) { - var pointerScreenX = pageX - window.pageXOffset; - var pointerScreenY = pageY - window.pageYOffset; - var yDelta = this.pointerScreenY === null ? 0 : pointerScreenY - this.pointerScreenY; - var xDelta = this.pointerScreenX === null ? 0 : pointerScreenX - this.pointerScreenX; - if (yDelta < 0) { - this.everMovedUp = true; - } - else if (yDelta > 0) { - this.everMovedDown = true; - } - if (xDelta < 0) { - this.everMovedLeft = true; - } - else if (xDelta > 0) { - this.everMovedRight = true; - } - this.pointerScreenX = pointerScreenX; - this.pointerScreenY = pointerScreenY; - if (!this.isAnimating) { - this.isAnimating = true; - this.requestAnimation(getTime()); - } - } - }; - AutoScroller.prototype.stop = function () { - if (this.isEnabled) { - this.isAnimating = false; // will stop animation - for (var _i = 0, _a = this.scrollCaches; _i < _a.length; _i++) { - var scrollCache = _a[_i]; - scrollCache.destroy(); - } - this.scrollCaches = null; - } - }; - AutoScroller.prototype.requestAnimation = function (now) { - this.msSinceRequest = now; - requestAnimationFrame(this.animate); - }; - AutoScroller.prototype.handleSide = function (edge, seconds) { - var scrollCache = edge.scrollCache; - var edgeThreshold = this.edgeThreshold; - var invDistance = edgeThreshold - edge.distance; - var velocity = // the closer to the edge, the faster we scroll - (invDistance * invDistance) / (edgeThreshold * edgeThreshold) * // quadratic - this.maxVelocity * seconds; - var sign = 1; - switch (edge.name) { - case 'left': - sign = -1; - // falls through - case 'right': - scrollCache.setScrollLeft(scrollCache.getScrollLeft() + velocity * sign); - break; - case 'top': - sign = -1; - // falls through - case 'bottom': - scrollCache.setScrollTop(scrollCache.getScrollTop() + velocity * sign); - break; - } - }; - // left/top are relative to document topleft - AutoScroller.prototype.computeBestEdge = function (left, top) { - var edgeThreshold = this.edgeThreshold; - var bestSide = null; - for (var _i = 0, _a = this.scrollCaches; _i < _a.length; _i++) { - var scrollCache = _a[_i]; - var rect = scrollCache.clientRect; - var leftDist = left - rect.left; - var rightDist = rect.right - left; - var topDist = top - rect.top; - var bottomDist = rect.bottom - top; - // completely within the rect? - if (leftDist >= 0 && rightDist >= 0 && topDist >= 0 && bottomDist >= 0) { - if (topDist <= edgeThreshold && this.everMovedUp && scrollCache.canScrollUp() && - (!bestSide || bestSide.distance > topDist)) { - bestSide = { scrollCache: scrollCache, name: 'top', distance: topDist }; - } - if (bottomDist <= edgeThreshold && this.everMovedDown && scrollCache.canScrollDown() && - (!bestSide || bestSide.distance > bottomDist)) { - bestSide = { scrollCache: scrollCache, name: 'bottom', distance: bottomDist }; - } - if (leftDist <= edgeThreshold && this.everMovedLeft && scrollCache.canScrollLeft() && - (!bestSide || bestSide.distance > leftDist)) { - bestSide = { scrollCache: scrollCache, name: 'left', distance: leftDist }; - } - if (rightDist <= edgeThreshold && this.everMovedRight && scrollCache.canScrollRight() && - (!bestSide || bestSide.distance > rightDist)) { - bestSide = { scrollCache: scrollCache, name: 'right', distance: rightDist }; - } - } - } - return bestSide; - }; - AutoScroller.prototype.buildCaches = function () { - return this.queryScrollEls().map(function (el) { - if (el === window) { - return new WindowScrollGeomCache(false); // false = don't listen to user-generated scrolls - } - else { - return new ElementScrollGeomCache(el, false); // false = don't listen to user-generated scrolls - } - }); - }; - AutoScroller.prototype.queryScrollEls = function () { - var els = []; - for (var _i = 0, _a = this.scrollQuery; _i < _a.length; _i++) { - var query = _a[_i]; - if (typeof query === 'object') { - els.push(query); - } - else { - els.push.apply(els, Array.prototype.slice.call(document.querySelectorAll(query))); - } - } - return els; - }; - return AutoScroller; - }()); - - /* - Monitors dragging on an element. Has a number of high-level features: - - minimum distance required before dragging - - minimum wait time ("delay") before dragging - - a mirror element that follows the pointer - */ - var FeaturefulElementDragging = /** @class */ (function (_super) { - __extends(FeaturefulElementDragging, _super); - function FeaturefulElementDragging(containerEl) { - var _this = _super.call(this, containerEl) || this; - // options that can be directly set by caller - // the caller can also set the PointerDragging's options as well - _this.delay = null; - _this.minDistance = 0; - _this.touchScrollAllowed = true; // prevents drag from starting and blocks scrolling during drag - _this.mirrorNeedsRevert = false; - _this.isInteracting = false; // is the user validly moving the pointer? lasts until pointerup - _this.isDragging = false; // is it INTENTFULLY dragging? lasts until after revert animation - _this.isDelayEnded = false; - _this.isDistanceSurpassed = false; - _this.delayTimeoutId = null; - _this.onPointerDown = function (ev) { - if (!_this.isDragging) { // so new drag doesn't happen while revert animation is going - _this.isInteracting = true; - _this.isDelayEnded = false; - _this.isDistanceSurpassed = false; - core.preventSelection(document.body); - core.preventContextMenu(document.body); - // prevent links from being visited if there's an eventual drag. - // also prevents selection in older browsers (maybe?). - // not necessary for touch, besides, browser would complain about passiveness. - if (!ev.isTouch) { - ev.origEvent.preventDefault(); - } - _this.emitter.trigger('pointerdown', ev); - if (!_this.pointer.shouldIgnoreMove) { - // actions related to initiating dragstart+dragmove+dragend... - _this.mirror.setIsVisible(false); // reset. caller must set-visible - _this.mirror.start(ev.subjectEl, ev.pageX, ev.pageY); // must happen on first pointer down - _this.startDelay(ev); - if (!_this.minDistance) { - _this.handleDistanceSurpassed(ev); - } - } - } - }; - _this.onPointerMove = function (ev) { - if (_this.isInteracting) { // if false, still waiting for previous drag's revert - _this.emitter.trigger('pointermove', ev); - if (!_this.isDistanceSurpassed) { - var minDistance = _this.minDistance; - var distanceSq = void 0; // current distance from the origin, squared - var deltaX = ev.deltaX, deltaY = ev.deltaY; - distanceSq = deltaX * deltaX + deltaY * deltaY; - if (distanceSq >= minDistance * minDistance) { // use pythagorean theorem - _this.handleDistanceSurpassed(ev); - } - } - if (_this.isDragging) { - // a real pointer move? (not one simulated by scrolling) - if (ev.origEvent.type !== 'scroll') { - _this.mirror.handleMove(ev.pageX, ev.pageY); - _this.autoScroller.handleMove(ev.pageX, ev.pageY); - } - _this.emitter.trigger('dragmove', ev); - } - } - }; - _this.onPointerUp = function (ev) { - if (_this.isInteracting) { // if false, still waiting for previous drag's revert - _this.isInteracting = false; - core.allowSelection(document.body); - core.allowContextMenu(document.body); - _this.emitter.trigger('pointerup', ev); // can potentially set mirrorNeedsRevert - if (_this.isDragging) { - _this.autoScroller.stop(); - _this.tryStopDrag(ev); // which will stop the mirror - } - if (_this.delayTimeoutId) { - clearTimeout(_this.delayTimeoutId); - _this.delayTimeoutId = null; - } - } - }; - var pointer = _this.pointer = new PointerDragging(containerEl); - pointer.emitter.on('pointerdown', _this.onPointerDown); - pointer.emitter.on('pointermove', _this.onPointerMove); - pointer.emitter.on('pointerup', _this.onPointerUp); - _this.mirror = new ElementMirror(); - _this.autoScroller = new AutoScroller(); - return _this; - } - FeaturefulElementDragging.prototype.destroy = function () { - this.pointer.destroy(); - }; - FeaturefulElementDragging.prototype.startDelay = function (ev) { - var _this = this; - if (typeof this.delay === 'number') { - this.delayTimeoutId = setTimeout(function () { - _this.delayTimeoutId = null; - _this.handleDelayEnd(ev); - }, this.delay); // not assignable to number! - } - else { - this.handleDelayEnd(ev); - } - }; - FeaturefulElementDragging.prototype.handleDelayEnd = function (ev) { - this.isDelayEnded = true; - this.tryStartDrag(ev); - }; - FeaturefulElementDragging.prototype.handleDistanceSurpassed = function (ev) { - this.isDistanceSurpassed = true; - this.tryStartDrag(ev); - }; - FeaturefulElementDragging.prototype.tryStartDrag = function (ev) { - if (this.isDelayEnded && this.isDistanceSurpassed) { - if (!this.pointer.wasTouchScroll || this.touchScrollAllowed) { - this.isDragging = true; - this.mirrorNeedsRevert = false; - this.autoScroller.start(ev.pageX, ev.pageY); - this.emitter.trigger('dragstart', ev); - if (this.touchScrollAllowed === false) { - this.pointer.cancelTouchScroll(); - } - } - } - }; - FeaturefulElementDragging.prototype.tryStopDrag = function (ev) { - // .stop() is ALWAYS asynchronous, which we NEED because we want all pointerup events - // that come from the document to fire beforehand. much more convenient this way. - this.mirror.stop(this.mirrorNeedsRevert, this.stopDrag.bind(this, ev) // bound with args - ); - }; - FeaturefulElementDragging.prototype.stopDrag = function (ev) { - this.isDragging = false; - this.emitter.trigger('dragend', ev); - }; - // fill in the implementations... - FeaturefulElementDragging.prototype.setIgnoreMove = function (bool) { - this.pointer.shouldIgnoreMove = bool; - }; - FeaturefulElementDragging.prototype.setMirrorIsVisible = function (bool) { - this.mirror.setIsVisible(bool); - }; - FeaturefulElementDragging.prototype.setMirrorNeedsRevert = function (bool) { - this.mirrorNeedsRevert = bool; - }; - FeaturefulElementDragging.prototype.setAutoScrollEnabled = function (bool) { - this.autoScroller.isEnabled = bool; - }; - return FeaturefulElementDragging; - }(core.ElementDragging)); - - /* - When this class is instantiated, it records the offset of an element (relative to the document topleft), - and continues to monitor scrolling, updating the cached coordinates if it needs to. - Does not access the DOM after instantiation, so highly performant. - - Also keeps track of all scrolling/overflow:hidden containers that are parents of the given element - and an determine if a given point is inside the combined clipping rectangle. - */ - var OffsetTracker = /** @class */ (function () { - function OffsetTracker(el) { - this.origRect = core.computeRect(el); - // will work fine for divs that have overflow:hidden - this.scrollCaches = core.getClippingParents(el).map(function (el) { - return new ElementScrollGeomCache(el, true); // listen=true - }); - } - OffsetTracker.prototype.destroy = function () { - for (var _i = 0, _a = this.scrollCaches; _i < _a.length; _i++) { - var scrollCache = _a[_i]; - scrollCache.destroy(); - } - }; - OffsetTracker.prototype.computeLeft = function () { - var left = this.origRect.left; - for (var _i = 0, _a = this.scrollCaches; _i < _a.length; _i++) { - var scrollCache = _a[_i]; - left += scrollCache.origScrollLeft - scrollCache.getScrollLeft(); - } - return left; - }; - OffsetTracker.prototype.computeTop = function () { - var top = this.origRect.top; - for (var _i = 0, _a = this.scrollCaches; _i < _a.length; _i++) { - var scrollCache = _a[_i]; - top += scrollCache.origScrollTop - scrollCache.getScrollTop(); - } - return top; - }; - OffsetTracker.prototype.isWithinClipping = function (pageX, pageY) { - var point = { left: pageX, top: pageY }; - for (var _i = 0, _a = this.scrollCaches; _i < _a.length; _i++) { - var scrollCache = _a[_i]; - if (!isIgnoredClipping(scrollCache.getEventTarget()) && - !core.pointInsideRect(point, scrollCache.clientRect)) { - return false; - } - } - return true; - }; - return OffsetTracker; - }()); - // certain clipping containers should never constrain interactions, like and - // https://github.com/fullcalendar/fullcalendar/issues/3615 - function isIgnoredClipping(node) { - var tagName = node.tagName; - return tagName === 'HTML' || tagName === 'BODY'; - } - - /* - Tracks movement over multiple droppable areas (aka "hits") - that exist in one or more DateComponents. - Relies on an existing draggable. - - emits: - - pointerdown - - dragstart - - hitchange - fires initially, even if not over a hit - - pointerup - - (hitchange - again, to null, if ended over a hit) - - dragend - */ - var HitDragging = /** @class */ (function () { - function HitDragging(dragging, droppableStore) { - var _this = this; - // options that can be set by caller - this.useSubjectCenter = false; - this.requireInitial = true; // if doesn't start out on a hit, won't emit any events - this.initialHit = null; - this.movingHit = null; - this.finalHit = null; // won't ever be populated if shouldIgnoreMove - this.handlePointerDown = function (ev) { - var dragging = _this.dragging; - _this.initialHit = null; - _this.movingHit = null; - _this.finalHit = null; - _this.prepareHits(); - _this.processFirstCoord(ev); - if (_this.initialHit || !_this.requireInitial) { - dragging.setIgnoreMove(false); - _this.emitter.trigger('pointerdown', ev); // TODO: fire this before computing processFirstCoord, so listeners can cancel. this gets fired by almost every handler :( - } - else { - dragging.setIgnoreMove(true); - } - }; - this.handleDragStart = function (ev) { - _this.emitter.trigger('dragstart', ev); - _this.handleMove(ev, true); // force = fire even if initially null - }; - this.handleDragMove = function (ev) { - _this.emitter.trigger('dragmove', ev); - _this.handleMove(ev); - }; - this.handlePointerUp = function (ev) { - _this.releaseHits(); - _this.emitter.trigger('pointerup', ev); - }; - this.handleDragEnd = function (ev) { - if (_this.movingHit) { - _this.emitter.trigger('hitupdate', null, true, ev); - } - _this.finalHit = _this.movingHit; - _this.movingHit = null; - _this.emitter.trigger('dragend', ev); - }; - this.droppableStore = droppableStore; - dragging.emitter.on('pointerdown', this.handlePointerDown); - dragging.emitter.on('dragstart', this.handleDragStart); - dragging.emitter.on('dragmove', this.handleDragMove); - dragging.emitter.on('pointerup', this.handlePointerUp); - dragging.emitter.on('dragend', this.handleDragEnd); - this.dragging = dragging; - this.emitter = new core.EmitterMixin(); - } - // sets initialHit - // sets coordAdjust - HitDragging.prototype.processFirstCoord = function (ev) { - var origPoint = { left: ev.pageX, top: ev.pageY }; - var adjustedPoint = origPoint; - var subjectEl = ev.subjectEl; - var subjectRect; - if (subjectEl !== document) { - subjectRect = core.computeRect(subjectEl); - adjustedPoint = core.constrainPoint(adjustedPoint, subjectRect); - } - var initialHit = this.initialHit = this.queryHitForOffset(adjustedPoint.left, adjustedPoint.top); - if (initialHit) { - if (this.useSubjectCenter && subjectRect) { - var slicedSubjectRect = core.intersectRects(subjectRect, initialHit.rect); - if (slicedSubjectRect) { - adjustedPoint = core.getRectCenter(slicedSubjectRect); - } - } - this.coordAdjust = core.diffPoints(adjustedPoint, origPoint); - } - else { - this.coordAdjust = { left: 0, top: 0 }; - } - }; - HitDragging.prototype.handleMove = function (ev, forceHandle) { - var hit = this.queryHitForOffset(ev.pageX + this.coordAdjust.left, ev.pageY + this.coordAdjust.top); - if (forceHandle || !isHitsEqual(this.movingHit, hit)) { - this.movingHit = hit; - this.emitter.trigger('hitupdate', hit, false, ev); - } - }; - HitDragging.prototype.prepareHits = function () { - this.offsetTrackers = core.mapHash(this.droppableStore, function (interactionSettings) { - interactionSettings.component.buildPositionCaches(); - return new OffsetTracker(interactionSettings.el); - }); - }; - HitDragging.prototype.releaseHits = function () { - var offsetTrackers = this.offsetTrackers; - for (var id in offsetTrackers) { - offsetTrackers[id].destroy(); - } - this.offsetTrackers = {}; - }; - HitDragging.prototype.queryHitForOffset = function (offsetLeft, offsetTop) { - var _a = this, droppableStore = _a.droppableStore, offsetTrackers = _a.offsetTrackers; - var bestHit = null; - for (var id in droppableStore) { - var component = droppableStore[id].component; - var offsetTracker = offsetTrackers[id]; - if (offsetTracker.isWithinClipping(offsetLeft, offsetTop)) { - var originLeft = offsetTracker.computeLeft(); - var originTop = offsetTracker.computeTop(); - var positionLeft = offsetLeft - originLeft; - var positionTop = offsetTop - originTop; - var origRect = offsetTracker.origRect; - var width = origRect.right - origRect.left; - var height = origRect.bottom - origRect.top; - if ( - // must be within the element's bounds - positionLeft >= 0 && positionLeft < width && - positionTop >= 0 && positionTop < height) { - var hit = component.queryHit(positionLeft, positionTop, width, height); - if (hit && - ( - // make sure the hit is within activeRange, meaning it's not a deal cell - !component.props.dateProfile || // hack for DayTile - core.rangeContainsRange(component.props.dateProfile.activeRange, hit.dateSpan.range)) && - (!bestHit || hit.layer > bestHit.layer)) { - // TODO: better way to re-orient rectangle - hit.rect.left += originLeft; - hit.rect.right += originLeft; - hit.rect.top += originTop; - hit.rect.bottom += originTop; - bestHit = hit; - } - } - } - } - return bestHit; - }; - return HitDragging; - }()); - function isHitsEqual(hit0, hit1) { - if (!hit0 && !hit1) { - return true; - } - if (Boolean(hit0) !== Boolean(hit1)) { - return false; - } - return core.isDateSpansEqual(hit0.dateSpan, hit1.dateSpan); - } - - /* - Monitors when the user clicks on a specific date/time of a component. - A pointerdown+pointerup on the same "hit" constitutes a click. - */ - var DateClicking = /** @class */ (function (_super) { - __extends(DateClicking, _super); - function DateClicking(settings) { - var _this = _super.call(this, settings) || this; - _this.handlePointerDown = function (ev) { - var dragging = _this.dragging; - // do this in pointerdown (not dragend) because DOM might be mutated by the time dragend is fired - dragging.setIgnoreMove(!_this.component.isValidDateDownEl(dragging.pointer.downEl)); - }; - // won't even fire if moving was ignored - _this.handleDragEnd = function (ev) { - var component = _this.component; - var pointer = _this.dragging.pointer; - if (!pointer.wasTouchScroll) { - var _a = _this.hitDragging, initialHit = _a.initialHit, finalHit = _a.finalHit; - if (initialHit && finalHit && isHitsEqual(initialHit, finalHit)) { - component.calendar.triggerDateClick(initialHit.dateSpan, initialHit.dayEl, component.view, ev.origEvent); - } - } - }; - var component = settings.component; - // we DO want to watch pointer moves because otherwise finalHit won't get populated - _this.dragging = new FeaturefulElementDragging(component.el); - _this.dragging.autoScroller.isEnabled = false; - var hitDragging = _this.hitDragging = new HitDragging(_this.dragging, core.interactionSettingsToStore(settings)); - hitDragging.emitter.on('pointerdown', _this.handlePointerDown); - hitDragging.emitter.on('dragend', _this.handleDragEnd); - return _this; - } - DateClicking.prototype.destroy = function () { - this.dragging.destroy(); - }; - return DateClicking; - }(core.Interaction)); - - /* - Tracks when the user selects a portion of time of a component, - constituted by a drag over date cells, with a possible delay at the beginning of the drag. - */ - var DateSelecting = /** @class */ (function (_super) { - __extends(DateSelecting, _super); - function DateSelecting(settings) { - var _this = _super.call(this, settings) || this; - _this.dragSelection = null; - _this.handlePointerDown = function (ev) { - var _a = _this, component = _a.component, dragging = _a.dragging; - var canSelect = component.opt('selectable') && - component.isValidDateDownEl(ev.origEvent.target); - // don't bother to watch expensive moves if component won't do selection - dragging.setIgnoreMove(!canSelect); - // if touch, require user to hold down - dragging.delay = ev.isTouch ? getComponentTouchDelay(component) : null; - }; - _this.handleDragStart = function (ev) { - _this.component.calendar.unselect(ev); // unselect previous selections - }; - _this.handleHitUpdate = function (hit, isFinal) { - var calendar = _this.component.calendar; - var dragSelection = null; - var isInvalid = false; - if (hit) { - dragSelection = joinHitsIntoSelection(_this.hitDragging.initialHit, hit, calendar.pluginSystem.hooks.dateSelectionTransformers); - if (!dragSelection || !_this.component.isDateSelectionValid(dragSelection)) { - isInvalid = true; - dragSelection = null; - } - } - if (dragSelection) { - calendar.dispatch({ type: 'SELECT_DATES', selection: dragSelection }); - } - else if (!isFinal) { // only unselect if moved away while dragging - calendar.dispatch({ type: 'UNSELECT_DATES' }); - } - if (!isInvalid) { - core.enableCursor(); - } - else { - core.disableCursor(); - } - if (!isFinal) { - _this.dragSelection = dragSelection; // only clear if moved away from all hits while dragging - } - }; - _this.handlePointerUp = function (pev) { - if (_this.dragSelection) { - // selection is already rendered, so just need to report selection - _this.component.calendar.triggerDateSelect(_this.dragSelection, pev); - _this.dragSelection = null; - } - }; - var component = settings.component; - var dragging = _this.dragging = new FeaturefulElementDragging(component.el); - dragging.touchScrollAllowed = false; - dragging.minDistance = component.opt('selectMinDistance') || 0; - dragging.autoScroller.isEnabled = component.opt('dragScroll'); - var hitDragging = _this.hitDragging = new HitDragging(_this.dragging, core.interactionSettingsToStore(settings)); - hitDragging.emitter.on('pointerdown', _this.handlePointerDown); - hitDragging.emitter.on('dragstart', _this.handleDragStart); - hitDragging.emitter.on('hitupdate', _this.handleHitUpdate); - hitDragging.emitter.on('pointerup', _this.handlePointerUp); - return _this; - } - DateSelecting.prototype.destroy = function () { - this.dragging.destroy(); - }; - return DateSelecting; - }(core.Interaction)); - function getComponentTouchDelay(component) { - var delay = component.opt('selectLongPressDelay'); - if (delay == null) { - delay = component.opt('longPressDelay'); - } - return delay; - } - function joinHitsIntoSelection(hit0, hit1, dateSelectionTransformers) { - var dateSpan0 = hit0.dateSpan; - var dateSpan1 = hit1.dateSpan; - var ms = [ - dateSpan0.range.start, - dateSpan0.range.end, - dateSpan1.range.start, - dateSpan1.range.end - ]; - ms.sort(core.compareNumbers); - var props = {}; - for (var _i = 0, dateSelectionTransformers_1 = dateSelectionTransformers; _i < dateSelectionTransformers_1.length; _i++) { - var transformer = dateSelectionTransformers_1[_i]; - var res = transformer(hit0, hit1); - if (res === false) { - return null; - } - else if (res) { - __assign(props, res); - } - } - props.range = { start: ms[0], end: ms[3] }; - props.allDay = dateSpan0.allDay; - return props; - } - - var EventDragging = /** @class */ (function (_super) { - __extends(EventDragging, _super); - function EventDragging(settings) { - var _this = _super.call(this, settings) || this; - // internal state - _this.subjectSeg = null; // the seg being selected/dragged - _this.isDragging = false; - _this.eventRange = null; - _this.relevantEvents = null; // the events being dragged - _this.receivingCalendar = null; - _this.validMutation = null; - _this.mutatedRelevantEvents = null; - _this.handlePointerDown = function (ev) { - var origTarget = ev.origEvent.target; - var _a = _this, component = _a.component, dragging = _a.dragging; - var mirror = dragging.mirror; - var initialCalendar = component.calendar; - var subjectSeg = _this.subjectSeg = core.getElSeg(ev.subjectEl); - var eventRange = _this.eventRange = subjectSeg.eventRange; - var eventInstanceId = eventRange.instance.instanceId; - _this.relevantEvents = core.getRelevantEvents(initialCalendar.state.eventStore, eventInstanceId); - dragging.minDistance = ev.isTouch ? 0 : component.opt('eventDragMinDistance'); - dragging.delay = - // only do a touch delay if touch and this event hasn't been selected yet - (ev.isTouch && eventInstanceId !== component.props.eventSelection) ? - getComponentTouchDelay$1(component) : - null; - mirror.parentNode = initialCalendar.el; - mirror.revertDuration = component.opt('dragRevertDuration'); - var isValid = component.isValidSegDownEl(origTarget) && - !core.elementClosest(origTarget, '.fc-resizer'); // NOT on a resizer - dragging.setIgnoreMove(!isValid); - // disable dragging for elements that are resizable (ie, selectable) - // but are not draggable - _this.isDragging = isValid && - ev.subjectEl.classList.contains('fc-draggable'); - }; - _this.handleDragStart = function (ev) { - var initialCalendar = _this.component.calendar; - var eventRange = _this.eventRange; - var eventInstanceId = eventRange.instance.instanceId; - if (ev.isTouch) { - // need to select a different event? - if (eventInstanceId !== _this.component.props.eventSelection) { - initialCalendar.dispatch({ type: 'SELECT_EVENT', eventInstanceId: eventInstanceId }); - } - } - else { - // if now using mouse, but was previous touch interaction, clear selected event - initialCalendar.dispatch({ type: 'UNSELECT_EVENT' }); - } - if (_this.isDragging) { - initialCalendar.unselect(ev); // unselect *date* selection - initialCalendar.publiclyTrigger('eventDragStart', [ - { - el: _this.subjectSeg.el, - event: new core.EventApi(initialCalendar, eventRange.def, eventRange.instance), - jsEvent: ev.origEvent, - view: _this.component.view - } - ]); - } - }; - _this.handleHitUpdate = function (hit, isFinal) { - if (!_this.isDragging) { - return; - } - var relevantEvents = _this.relevantEvents; - var initialHit = _this.hitDragging.initialHit; - var initialCalendar = _this.component.calendar; - // states based on new hit - var receivingCalendar = null; - var mutation = null; - var mutatedRelevantEvents = null; - var isInvalid = false; - var interaction = { - affectedEvents: relevantEvents, - mutatedEvents: core.createEmptyEventStore(), - isEvent: true, - origSeg: _this.subjectSeg - }; - if (hit) { - var receivingComponent = hit.component; - receivingCalendar = receivingComponent.calendar; - if (initialCalendar === receivingCalendar || - receivingComponent.opt('editable') && receivingComponent.opt('droppable')) { - mutation = computeEventMutation(initialHit, hit, receivingCalendar.pluginSystem.hooks.eventDragMutationMassagers); - if (mutation) { - mutatedRelevantEvents = core.applyMutationToEventStore(relevantEvents, receivingCalendar.eventUiBases, mutation, receivingCalendar); - interaction.mutatedEvents = mutatedRelevantEvents; - if (!receivingComponent.isInteractionValid(interaction)) { - isInvalid = true; - mutation = null; - mutatedRelevantEvents = null; - interaction.mutatedEvents = core.createEmptyEventStore(); - } - } - } - else { - receivingCalendar = null; - } - } - _this.displayDrag(receivingCalendar, interaction); - if (!isInvalid) { - core.enableCursor(); - } - else { - core.disableCursor(); - } - if (!isFinal) { - if (initialCalendar === receivingCalendar && // TODO: write test for this - isHitsEqual(initialHit, hit)) { - mutation = null; - } - _this.dragging.setMirrorNeedsRevert(!mutation); - // render the mirror if no already-rendered mirror - // TODO: wish we could somehow wait for dispatch to guarantee render - _this.dragging.setMirrorIsVisible(!hit || !document.querySelector('.fc-mirror')); - // assign states based on new hit - _this.receivingCalendar = receivingCalendar; - _this.validMutation = mutation; - _this.mutatedRelevantEvents = mutatedRelevantEvents; - } - }; - _this.handlePointerUp = function () { - if (!_this.isDragging) { - _this.cleanup(); // because handleDragEnd won't fire - } - }; - _this.handleDragEnd = function (ev) { - if (_this.isDragging) { - var initialCalendar_1 = _this.component.calendar; - var initialView = _this.component.view; - var _a = _this, receivingCalendar = _a.receivingCalendar, validMutation = _a.validMutation; - var eventDef = _this.eventRange.def; - var eventInstance = _this.eventRange.instance; - var eventApi = new core.EventApi(initialCalendar_1, eventDef, eventInstance); - var relevantEvents_1 = _this.relevantEvents; - var mutatedRelevantEvents = _this.mutatedRelevantEvents; - var finalHit = _this.hitDragging.finalHit; - _this.clearDrag(); // must happen after revert animation - initialCalendar_1.publiclyTrigger('eventDragStop', [ - { - el: _this.subjectSeg.el, - event: eventApi, - jsEvent: ev.origEvent, - view: initialView - } - ]); - if (validMutation) { - // dropped within same calendar - if (receivingCalendar === initialCalendar_1) { - initialCalendar_1.dispatch({ - type: 'MERGE_EVENTS', - eventStore: mutatedRelevantEvents - }); - var transformed = {}; - for (var _i = 0, _b = initialCalendar_1.pluginSystem.hooks.eventDropTransformers; _i < _b.length; _i++) { - var transformer = _b[_i]; - __assign(transformed, transformer(validMutation, initialCalendar_1)); - } - var eventDropArg = __assign({}, transformed, { el: ev.subjectEl, delta: validMutation.datesDelta, oldEvent: eventApi, event: new core.EventApi(// the data AFTER the mutation - initialCalendar_1, mutatedRelevantEvents.defs[eventDef.defId], eventInstance ? mutatedRelevantEvents.instances[eventInstance.instanceId] : null), revert: function () { - initialCalendar_1.dispatch({ - type: 'MERGE_EVENTS', - eventStore: relevantEvents_1 - }); - }, jsEvent: ev.origEvent, view: initialView }); - initialCalendar_1.publiclyTrigger('eventDrop', [eventDropArg]); - // dropped in different calendar - } - else if (receivingCalendar) { - initialCalendar_1.publiclyTrigger('eventLeave', [ - { - draggedEl: ev.subjectEl, - event: eventApi, - view: initialView - } - ]); - initialCalendar_1.dispatch({ - type: 'REMOVE_EVENT_INSTANCES', - instances: _this.mutatedRelevantEvents.instances - }); - receivingCalendar.dispatch({ - type: 'MERGE_EVENTS', - eventStore: _this.mutatedRelevantEvents - }); - if (ev.isTouch) { - receivingCalendar.dispatch({ - type: 'SELECT_EVENT', - eventInstanceId: eventInstance.instanceId - }); - } - var dropArg = __assign({}, receivingCalendar.buildDatePointApi(finalHit.dateSpan), { draggedEl: ev.subjectEl, jsEvent: ev.origEvent, view: finalHit.component // should this be finalHit.component.view? See #4644 - }); - receivingCalendar.publiclyTrigger('drop', [dropArg]); - receivingCalendar.publiclyTrigger('eventReceive', [ - { - draggedEl: ev.subjectEl, - event: new core.EventApi(// the data AFTER the mutation - receivingCalendar, mutatedRelevantEvents.defs[eventDef.defId], mutatedRelevantEvents.instances[eventInstance.instanceId]), - view: finalHit.component // should this be finalHit.component.view? See #4644 - } - ]); - } - } - else { - initialCalendar_1.publiclyTrigger('_noEventDrop'); - } - } - _this.cleanup(); - }; - var component = _this.component; - var dragging = _this.dragging = new FeaturefulElementDragging(component.el); - dragging.pointer.selector = EventDragging.SELECTOR; - dragging.touchScrollAllowed = false; - dragging.autoScroller.isEnabled = component.opt('dragScroll'); - var hitDragging = _this.hitDragging = new HitDragging(_this.dragging, core.interactionSettingsStore); - hitDragging.useSubjectCenter = settings.useEventCenter; - hitDragging.emitter.on('pointerdown', _this.handlePointerDown); - hitDragging.emitter.on('dragstart', _this.handleDragStart); - hitDragging.emitter.on('hitupdate', _this.handleHitUpdate); - hitDragging.emitter.on('pointerup', _this.handlePointerUp); - hitDragging.emitter.on('dragend', _this.handleDragEnd); - return _this; - } - EventDragging.prototype.destroy = function () { - this.dragging.destroy(); - }; - // render a drag state on the next receivingCalendar - EventDragging.prototype.displayDrag = function (nextCalendar, state) { - var initialCalendar = this.component.calendar; - var prevCalendar = this.receivingCalendar; - // does the previous calendar need to be cleared? - if (prevCalendar && prevCalendar !== nextCalendar) { - // does the initial calendar need to be cleared? - // if so, don't clear all the way. we still need to to hide the affectedEvents - if (prevCalendar === initialCalendar) { - prevCalendar.dispatch({ - type: 'SET_EVENT_DRAG', - state: { - affectedEvents: state.affectedEvents, - mutatedEvents: core.createEmptyEventStore(), - isEvent: true, - origSeg: state.origSeg - } - }); - // completely clear the old calendar if it wasn't the initial - } - else { - prevCalendar.dispatch({ type: 'UNSET_EVENT_DRAG' }); - } - } - if (nextCalendar) { - nextCalendar.dispatch({ type: 'SET_EVENT_DRAG', state: state }); - } - }; - EventDragging.prototype.clearDrag = function () { - var initialCalendar = this.component.calendar; - var receivingCalendar = this.receivingCalendar; - if (receivingCalendar) { - receivingCalendar.dispatch({ type: 'UNSET_EVENT_DRAG' }); - } - // the initial calendar might have an dummy drag state from displayDrag - if (initialCalendar !== receivingCalendar) { - initialCalendar.dispatch({ type: 'UNSET_EVENT_DRAG' }); - } - }; - EventDragging.prototype.cleanup = function () { - this.subjectSeg = null; - this.isDragging = false; - this.eventRange = null; - this.relevantEvents = null; - this.receivingCalendar = null; - this.validMutation = null; - this.mutatedRelevantEvents = null; - }; - EventDragging.SELECTOR = '.fc-draggable, .fc-resizable'; // TODO: test this in IE11 - return EventDragging; - }(core.Interaction)); - function computeEventMutation(hit0, hit1, massagers) { - var dateSpan0 = hit0.dateSpan; - var dateSpan1 = hit1.dateSpan; - var date0 = dateSpan0.range.start; - var date1 = dateSpan1.range.start; - var standardProps = {}; - if (dateSpan0.allDay !== dateSpan1.allDay) { - standardProps.allDay = dateSpan1.allDay; - standardProps.hasEnd = hit1.component.opt('allDayMaintainDuration'); - if (dateSpan1.allDay) { - // means date1 is already start-of-day, - // but date0 needs to be converted - date0 = core.startOfDay(date0); - } - } - var delta = core.diffDates(date0, date1, hit0.component.dateEnv, hit0.component === hit1.component ? - hit0.component.largeUnit : - null); - if (delta.milliseconds) { // has hours/minutes/seconds - standardProps.allDay = false; - } - var mutation = { - datesDelta: delta, - standardProps: standardProps - }; - for (var _i = 0, massagers_1 = massagers; _i < massagers_1.length; _i++) { - var massager = massagers_1[_i]; - massager(mutation, hit0, hit1); - } - return mutation; - } - function getComponentTouchDelay$1(component) { - var delay = component.opt('eventLongPressDelay'); - if (delay == null) { - delay = component.opt('longPressDelay'); - } - return delay; - } - - var EventDragging$1 = /** @class */ (function (_super) { - __extends(EventDragging, _super); - function EventDragging(settings) { - var _this = _super.call(this, settings) || this; - // internal state - _this.draggingSeg = null; // TODO: rename to resizingSeg? subjectSeg? - _this.eventRange = null; - _this.relevantEvents = null; - _this.validMutation = null; - _this.mutatedRelevantEvents = null; - _this.handlePointerDown = function (ev) { - var component = _this.component; - var seg = _this.querySeg(ev); - var eventRange = _this.eventRange = seg.eventRange; - _this.dragging.minDistance = component.opt('eventDragMinDistance'); - // if touch, need to be working with a selected event - _this.dragging.setIgnoreMove(!_this.component.isValidSegDownEl(ev.origEvent.target) || - (ev.isTouch && _this.component.props.eventSelection !== eventRange.instance.instanceId)); - }; - _this.handleDragStart = function (ev) { - var calendar = _this.component.calendar; - var eventRange = _this.eventRange; - _this.relevantEvents = core.getRelevantEvents(calendar.state.eventStore, _this.eventRange.instance.instanceId); - _this.draggingSeg = _this.querySeg(ev); - calendar.unselect(); - calendar.publiclyTrigger('eventResizeStart', [ - { - el: _this.draggingSeg.el, - event: new core.EventApi(calendar, eventRange.def, eventRange.instance), - jsEvent: ev.origEvent, - view: _this.component.view - } - ]); - }; - _this.handleHitUpdate = function (hit, isFinal, ev) { - var calendar = _this.component.calendar; - var relevantEvents = _this.relevantEvents; - var initialHit = _this.hitDragging.initialHit; - var eventInstance = _this.eventRange.instance; - var mutation = null; - var mutatedRelevantEvents = null; - var isInvalid = false; - var interaction = { - affectedEvents: relevantEvents, - mutatedEvents: core.createEmptyEventStore(), - isEvent: true, - origSeg: _this.draggingSeg - }; - if (hit) { - mutation = computeMutation(initialHit, hit, ev.subjectEl.classList.contains('fc-start-resizer'), eventInstance.range, calendar.pluginSystem.hooks.eventResizeJoinTransforms); - } - if (mutation) { - mutatedRelevantEvents = core.applyMutationToEventStore(relevantEvents, calendar.eventUiBases, mutation, calendar); - interaction.mutatedEvents = mutatedRelevantEvents; - if (!_this.component.isInteractionValid(interaction)) { - isInvalid = true; - mutation = null; - mutatedRelevantEvents = null; - interaction.mutatedEvents = null; - } - } - if (mutatedRelevantEvents) { - calendar.dispatch({ - type: 'SET_EVENT_RESIZE', - state: interaction - }); - } - else { - calendar.dispatch({ type: 'UNSET_EVENT_RESIZE' }); - } - if (!isInvalid) { - core.enableCursor(); - } - else { - core.disableCursor(); - } - if (!isFinal) { - if (mutation && isHitsEqual(initialHit, hit)) { - mutation = null; - } - _this.validMutation = mutation; - _this.mutatedRelevantEvents = mutatedRelevantEvents; - } - }; - _this.handleDragEnd = function (ev) { - var calendar = _this.component.calendar; - var view = _this.component.view; - var eventDef = _this.eventRange.def; - var eventInstance = _this.eventRange.instance; - var eventApi = new core.EventApi(calendar, eventDef, eventInstance); - var relevantEvents = _this.relevantEvents; - var mutatedRelevantEvents = _this.mutatedRelevantEvents; - calendar.publiclyTrigger('eventResizeStop', [ - { - el: _this.draggingSeg.el, - event: eventApi, - jsEvent: ev.origEvent, - view: view - } - ]); - if (_this.validMutation) { - calendar.dispatch({ - type: 'MERGE_EVENTS', - eventStore: mutatedRelevantEvents - }); - calendar.publiclyTrigger('eventResize', [ - { - el: _this.draggingSeg.el, - startDelta: _this.validMutation.startDelta || core.createDuration(0), - endDelta: _this.validMutation.endDelta || core.createDuration(0), - prevEvent: eventApi, - event: new core.EventApi(// the data AFTER the mutation - calendar, mutatedRelevantEvents.defs[eventDef.defId], eventInstance ? mutatedRelevantEvents.instances[eventInstance.instanceId] : null), - revert: function () { - calendar.dispatch({ - type: 'MERGE_EVENTS', - eventStore: relevantEvents - }); - }, - jsEvent: ev.origEvent, - view: view - } - ]); - } - else { - calendar.publiclyTrigger('_noEventResize'); - } - // reset all internal state - _this.draggingSeg = null; - _this.relevantEvents = null; - _this.validMutation = null; - // okay to keep eventInstance around. useful to set it in handlePointerDown - }; - var component = settings.component; - var dragging = _this.dragging = new FeaturefulElementDragging(component.el); - dragging.pointer.selector = '.fc-resizer'; - dragging.touchScrollAllowed = false; - dragging.autoScroller.isEnabled = component.opt('dragScroll'); - var hitDragging = _this.hitDragging = new HitDragging(_this.dragging, core.interactionSettingsToStore(settings)); - hitDragging.emitter.on('pointerdown', _this.handlePointerDown); - hitDragging.emitter.on('dragstart', _this.handleDragStart); - hitDragging.emitter.on('hitupdate', _this.handleHitUpdate); - hitDragging.emitter.on('dragend', _this.handleDragEnd); - return _this; - } - EventDragging.prototype.destroy = function () { - this.dragging.destroy(); - }; - EventDragging.prototype.querySeg = function (ev) { - return core.getElSeg(core.elementClosest(ev.subjectEl, this.component.fgSegSelector)); - }; - return EventDragging; - }(core.Interaction)); - function computeMutation(hit0, hit1, isFromStart, instanceRange, transforms) { - var dateEnv = hit0.component.dateEnv; - var date0 = hit0.dateSpan.range.start; - var date1 = hit1.dateSpan.range.start; - var delta = core.diffDates(date0, date1, dateEnv, hit0.component.largeUnit); - var props = {}; - for (var _i = 0, transforms_1 = transforms; _i < transforms_1.length; _i++) { - var transform = transforms_1[_i]; - var res = transform(hit0, hit1); - if (res === false) { - return null; - } - else if (res) { - __assign(props, res); - } - } - if (isFromStart) { - if (dateEnv.add(instanceRange.start, delta) < instanceRange.end) { - props.startDelta = delta; - return props; - } - } - else { - if (dateEnv.add(instanceRange.end, delta) > instanceRange.start) { - props.endDelta = delta; - return props; - } - } - return null; - } - - var UnselectAuto = /** @class */ (function () { - function UnselectAuto(calendar) { - var _this = this; - this.isRecentPointerDateSelect = false; // wish we could use a selector to detect date selection, but uses hit system - this.onSelect = function (selectInfo) { - if (selectInfo.jsEvent) { - _this.isRecentPointerDateSelect = true; - } - }; - this.onDocumentPointerUp = function (pev) { - var _a = _this, calendar = _a.calendar, documentPointer = _a.documentPointer; - var state = calendar.state; - // touch-scrolling should never unfocus any type of selection - if (!documentPointer.wasTouchScroll) { - if (state.dateSelection && // an existing date selection? - !_this.isRecentPointerDateSelect // a new pointer-initiated date selection since last onDocumentPointerUp? - ) { - var unselectAuto = calendar.viewOpt('unselectAuto'); - var unselectCancel = calendar.viewOpt('unselectCancel'); - if (unselectAuto && (!unselectAuto || !core.elementClosest(documentPointer.downEl, unselectCancel))) { - calendar.unselect(pev); - } - } - if (state.eventSelection && // an existing event selected? - !core.elementClosest(documentPointer.downEl, EventDragging.SELECTOR) // interaction DIDN'T start on an event - ) { - calendar.dispatch({ type: 'UNSELECT_EVENT' }); - } - } - _this.isRecentPointerDateSelect = false; - }; - this.calendar = calendar; - var documentPointer = this.documentPointer = new PointerDragging(document); - documentPointer.shouldIgnoreMove = true; - documentPointer.shouldWatchScroll = false; - documentPointer.emitter.on('pointerup', this.onDocumentPointerUp); - /* - TODO: better way to know about whether there was a selection with the pointer - */ - calendar.on('select', this.onSelect); - } - UnselectAuto.prototype.destroy = function () { - this.calendar.off('select', this.onSelect); - this.documentPointer.destroy(); - }; - return UnselectAuto; - }()); - - /* - Given an already instantiated draggable object for one-or-more elements, - Interprets any dragging as an attempt to drag an events that lives outside - of a calendar onto a calendar. - */ - var ExternalElementDragging = /** @class */ (function () { - function ExternalElementDragging(dragging, suppliedDragMeta) { - var _this = this; - this.receivingCalendar = null; - this.droppableEvent = null; // will exist for all drags, even if create:false - this.suppliedDragMeta = null; - this.dragMeta = null; - this.handleDragStart = function (ev) { - _this.dragMeta = _this.buildDragMeta(ev.subjectEl); - }; - this.handleHitUpdate = function (hit, isFinal, ev) { - var dragging = _this.hitDragging.dragging; - var receivingCalendar = null; - var droppableEvent = null; - var isInvalid = false; - var interaction = { - affectedEvents: core.createEmptyEventStore(), - mutatedEvents: core.createEmptyEventStore(), - isEvent: _this.dragMeta.create, - origSeg: null - }; - if (hit) { - receivingCalendar = hit.component.calendar; - if (_this.canDropElOnCalendar(ev.subjectEl, receivingCalendar)) { - droppableEvent = computeEventForDateSpan(hit.dateSpan, _this.dragMeta, receivingCalendar); - interaction.mutatedEvents = core.eventTupleToStore(droppableEvent); - isInvalid = !core.isInteractionValid(interaction, receivingCalendar); - if (isInvalid) { - interaction.mutatedEvents = core.createEmptyEventStore(); - droppableEvent = null; - } - } - } - _this.displayDrag(receivingCalendar, interaction); - // show mirror if no already-rendered mirror element OR if we are shutting down the mirror (?) - // TODO: wish we could somehow wait for dispatch to guarantee render - dragging.setMirrorIsVisible(isFinal || !droppableEvent || !document.querySelector('.fc-mirror')); - if (!isInvalid) { - core.enableCursor(); - } - else { - core.disableCursor(); - } - if (!isFinal) { - dragging.setMirrorNeedsRevert(!droppableEvent); - _this.receivingCalendar = receivingCalendar; - _this.droppableEvent = droppableEvent; - } - }; - this.handleDragEnd = function (pev) { - var _a = _this, receivingCalendar = _a.receivingCalendar, droppableEvent = _a.droppableEvent; - _this.clearDrag(); - if (receivingCalendar && droppableEvent) { - var finalHit = _this.hitDragging.finalHit; - var finalView = finalHit.component.view; - var dragMeta = _this.dragMeta; - var arg = __assign({}, receivingCalendar.buildDatePointApi(finalHit.dateSpan), { draggedEl: pev.subjectEl, jsEvent: pev.origEvent, view: finalView }); - receivingCalendar.publiclyTrigger('drop', [arg]); - if (dragMeta.create) { - receivingCalendar.dispatch({ - type: 'MERGE_EVENTS', - eventStore: core.eventTupleToStore(droppableEvent) - }); - if (pev.isTouch) { - receivingCalendar.dispatch({ - type: 'SELECT_EVENT', - eventInstanceId: droppableEvent.instance.instanceId - }); - } - // signal that an external event landed - receivingCalendar.publiclyTrigger('eventReceive', [ - { - draggedEl: pev.subjectEl, - event: new core.EventApi(receivingCalendar, droppableEvent.def, droppableEvent.instance), - view: finalView - } - ]); - } - } - _this.receivingCalendar = null; - _this.droppableEvent = null; - }; - var hitDragging = this.hitDragging = new HitDragging(dragging, core.interactionSettingsStore); - hitDragging.requireInitial = false; // will start outside of a component - hitDragging.emitter.on('dragstart', this.handleDragStart); - hitDragging.emitter.on('hitupdate', this.handleHitUpdate); - hitDragging.emitter.on('dragend', this.handleDragEnd); - this.suppliedDragMeta = suppliedDragMeta; - } - ExternalElementDragging.prototype.buildDragMeta = function (subjectEl) { - if (typeof this.suppliedDragMeta === 'object') { - return core.parseDragMeta(this.suppliedDragMeta); - } - else if (typeof this.suppliedDragMeta === 'function') { - return core.parseDragMeta(this.suppliedDragMeta(subjectEl)); - } - else { - return getDragMetaFromEl(subjectEl); - } - }; - ExternalElementDragging.prototype.displayDrag = function (nextCalendar, state) { - var prevCalendar = this.receivingCalendar; - if (prevCalendar && prevCalendar !== nextCalendar) { - prevCalendar.dispatch({ type: 'UNSET_EVENT_DRAG' }); - } - if (nextCalendar) { - nextCalendar.dispatch({ type: 'SET_EVENT_DRAG', state: state }); - } - }; - ExternalElementDragging.prototype.clearDrag = function () { - if (this.receivingCalendar) { - this.receivingCalendar.dispatch({ type: 'UNSET_EVENT_DRAG' }); - } - }; - ExternalElementDragging.prototype.canDropElOnCalendar = function (el, receivingCalendar) { - var dropAccept = receivingCalendar.opt('dropAccept'); - if (typeof dropAccept === 'function') { - return dropAccept(el); - } - else if (typeof dropAccept === 'string' && dropAccept) { - return Boolean(core.elementMatches(el, dropAccept)); - } - return true; - }; - return ExternalElementDragging; - }()); - // Utils for computing event store from the DragMeta - // ---------------------------------------------------------------------------------------------------- - function computeEventForDateSpan(dateSpan, dragMeta, calendar) { - var defProps = __assign({}, dragMeta.leftoverProps); - for (var _i = 0, _a = calendar.pluginSystem.hooks.externalDefTransforms; _i < _a.length; _i++) { - var transform = _a[_i]; - __assign(defProps, transform(dateSpan, dragMeta)); - } - var def = core.parseEventDef(defProps, dragMeta.sourceId, dateSpan.allDay, calendar.opt('forceEventDuration') || Boolean(dragMeta.duration), // hasEnd - calendar); - var start = dateSpan.range.start; - // only rely on time info if drop zone is all-day, - // otherwise, we already know the time - if (dateSpan.allDay && dragMeta.startTime) { - start = calendar.dateEnv.add(start, dragMeta.startTime); - } - var end = dragMeta.duration ? - calendar.dateEnv.add(start, dragMeta.duration) : - calendar.getDefaultEventEnd(dateSpan.allDay, start); - var instance = core.createEventInstance(def.defId, { start: start, end: end }); - return { def: def, instance: instance }; - } - // Utils for extracting data from element - // ---------------------------------------------------------------------------------------------------- - function getDragMetaFromEl(el) { - var str = getEmbeddedElData(el, 'event'); - var obj = str ? - JSON.parse(str) : - { create: false }; // if no embedded data, assume no event creation - return core.parseDragMeta(obj); - } - core.config.dataAttrPrefix = ''; - function getEmbeddedElData(el, name) { - var prefix = core.config.dataAttrPrefix; - var prefixedName = (prefix ? prefix + '-' : '') + name; - return el.getAttribute('data-' + prefixedName) || ''; - } - - /* - Makes an element (that is *external* to any calendar) draggable. - Can pass in data that determines how an event will be created when dropped onto a calendar. - Leverages FullCalendar's internal drag-n-drop functionality WITHOUT a third-party drag system. - */ - var ExternalDraggable = /** @class */ (function () { - function ExternalDraggable(el, settings) { - var _this = this; - if (settings === void 0) { settings = {}; } - this.handlePointerDown = function (ev) { - var dragging = _this.dragging; - var _a = _this.settings, minDistance = _a.minDistance, longPressDelay = _a.longPressDelay; - dragging.minDistance = - minDistance != null ? - minDistance : - (ev.isTouch ? 0 : core.globalDefaults.eventDragMinDistance); - dragging.delay = - ev.isTouch ? // TODO: eventually read eventLongPressDelay instead vvv - (longPressDelay != null ? longPressDelay : core.globalDefaults.longPressDelay) : - 0; - }; - this.handleDragStart = function (ev) { - if (ev.isTouch && - _this.dragging.delay && - ev.subjectEl.classList.contains('fc-event')) { - _this.dragging.mirror.getMirrorEl().classList.add('fc-selected'); - } - }; - this.settings = settings; - var dragging = this.dragging = new FeaturefulElementDragging(el); - dragging.touchScrollAllowed = false; - if (settings.itemSelector != null) { - dragging.pointer.selector = settings.itemSelector; - } - if (settings.appendTo != null) { - dragging.mirror.parentNode = settings.appendTo; // TODO: write tests - } - dragging.emitter.on('pointerdown', this.handlePointerDown); - dragging.emitter.on('dragstart', this.handleDragStart); - new ExternalElementDragging(dragging, settings.eventData); - } - ExternalDraggable.prototype.destroy = function () { - this.dragging.destroy(); - }; - return ExternalDraggable; - }()); - - /* - Detects when a *THIRD-PARTY* drag-n-drop system interacts with elements. - The third-party system is responsible for drawing the visuals effects of the drag. - This class simply monitors for pointer movements and fires events. - It also has the ability to hide the moving element (the "mirror") during the drag. - */ - var InferredElementDragging = /** @class */ (function (_super) { - __extends(InferredElementDragging, _super); - function InferredElementDragging(containerEl) { - var _this = _super.call(this, containerEl) || this; - _this.shouldIgnoreMove = false; - _this.mirrorSelector = ''; - _this.currentMirrorEl = null; - _this.handlePointerDown = function (ev) { - _this.emitter.trigger('pointerdown', ev); - if (!_this.shouldIgnoreMove) { - // fire dragstart right away. does not support delay or min-distance - _this.emitter.trigger('dragstart', ev); - } - }; - _this.handlePointerMove = function (ev) { - if (!_this.shouldIgnoreMove) { - _this.emitter.trigger('dragmove', ev); - } - }; - _this.handlePointerUp = function (ev) { - _this.emitter.trigger('pointerup', ev); - if (!_this.shouldIgnoreMove) { - // fire dragend right away. does not support a revert animation - _this.emitter.trigger('dragend', ev); - } - }; - var pointer = _this.pointer = new PointerDragging(containerEl); - pointer.emitter.on('pointerdown', _this.handlePointerDown); - pointer.emitter.on('pointermove', _this.handlePointerMove); - pointer.emitter.on('pointerup', _this.handlePointerUp); - return _this; - } - InferredElementDragging.prototype.destroy = function () { - this.pointer.destroy(); - }; - InferredElementDragging.prototype.setIgnoreMove = function (bool) { - this.shouldIgnoreMove = bool; - }; - InferredElementDragging.prototype.setMirrorIsVisible = function (bool) { - if (bool) { - // restore a previously hidden element. - // use the reference in case the selector class has already been removed. - if (this.currentMirrorEl) { - this.currentMirrorEl.style.visibility = ''; - this.currentMirrorEl = null; - } - } - else { - var mirrorEl = this.mirrorSelector ? - document.querySelector(this.mirrorSelector) : - null; - if (mirrorEl) { - this.currentMirrorEl = mirrorEl; - mirrorEl.style.visibility = 'hidden'; - } - } - }; - return InferredElementDragging; - }(core.ElementDragging)); - - /* - Bridges third-party drag-n-drop systems with FullCalendar. - Must be instantiated and destroyed by caller. - */ - var ThirdPartyDraggable = /** @class */ (function () { - function ThirdPartyDraggable(containerOrSettings, settings) { - var containerEl = document; - if ( - // wish we could just test instanceof EventTarget, but doesn't work in IE11 - containerOrSettings === document || - containerOrSettings instanceof Element) { - containerEl = containerOrSettings; - settings = settings || {}; - } - else { - settings = (containerOrSettings || {}); - } - var dragging = this.dragging = new InferredElementDragging(containerEl); - if (typeof settings.itemSelector === 'string') { - dragging.pointer.selector = settings.itemSelector; - } - else if (containerEl === document) { - dragging.pointer.selector = '[data-event]'; - } - if (typeof settings.mirrorSelector === 'string') { - dragging.mirrorSelector = settings.mirrorSelector; - } - new ExternalElementDragging(dragging, settings.eventData); - } - ThirdPartyDraggable.prototype.destroy = function () { - this.dragging.destroy(); - }; - return ThirdPartyDraggable; - }()); - - var main = core.createPlugin({ - componentInteractions: [DateClicking, DateSelecting, EventDragging, EventDragging$1], - calendarInteractions: [UnselectAuto], - elementDraggingImpl: FeaturefulElementDragging - }); - - exports.Draggable = ExternalDraggable; - exports.FeaturefulElementDragging = FeaturefulElementDragging; - exports.PointerDragging = PointerDragging; - exports.ThirdPartyDraggable = ThirdPartyDraggable; - exports.default = main; - - Object.defineProperty(exports, '__esModule', { value: true }); - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/interaction/main.min.js b/htdocs/public/high/plugins/fullcalendar/packages/interaction/main.min.js deleted file mode 100644 index 7a36731f..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/interaction/main.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/*! -FullCalendar Interaction Plugin v4.3.0 -Docs & License: https://fullcalendar.io/ -(c) 2019 Adam Shaw -*/ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@fullcalendar/core")):"function"==typeof define&&define.amd?define(["exports","@fullcalendar/core"],t):t((e=e||self).FullCalendarInteraction={},e.FullCalendar)}(this,function(e,t){"use strict";var n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function r(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var i=function(){return(i=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(this.everMovedDown=!0),o<0?this.everMovedLeft=!0:o>0&&(this.everMovedRight=!0),this.pointerScreenX=n,this.pointerScreenY=r,this.isAnimating||(this.isAnimating=!0,this.requestAnimation(p()))}},e.prototype.stop=function(){if(this.isEnabled){this.isAnimating=!1;for(var e=0,t=this.scrollCaches;e=0&&c>=0&&d>=0&&g>=0&&(d<=n&&this.everMovedUp&&a.canScrollUp()&&(!r||r.distance>d)&&(r={scrollCache:a,name:"top",distance:d}),g<=n&&this.everMovedDown&&a.canScrollDown()&&(!r||r.distance>g)&&(r={scrollCache:a,name:"bottom",distance:g}),s<=n&&this.everMovedLeft&&a.canScrollLeft()&&(!r||r.distance>s)&&(r={scrollCache:a,name:"left",distance:s}),c<=n&&this.everMovedRight&&a.canScrollRight()&&(!r||r.distance>c)&&(r={scrollCache:a,name:"right",distance:c}))}return r},e.prototype.buildCaches=function(){return this.queryScrollEls().map(function(e){return e===window?new h(!1):new u(e,!1)})},e.prototype.queryScrollEls=function(){for(var e=[],t=0,n=this.scrollQuery;t=t*t&&r.handleDistanceSurpassed(e)}r.isDragging&&("scroll"!==e.origEvent.type&&(r.mirror.handleMove(e.pageX,e.pageY),r.autoScroller.handleMove(e.pageX,e.pageY)),r.emitter.trigger("dragmove",e))}},r.onPointerUp=function(e){r.isInteracting&&(r.isInteracting=!1,t.allowSelection(document.body),t.allowContextMenu(document.body),r.emitter.trigger("pointerup",e),r.isDragging&&(r.autoScroller.stop(),r.tryStopDrag(e)),r.delayTimeoutId&&(clearTimeout(r.delayTimeoutId),r.delayTimeoutId=null))};var i=r.pointer=new s(n);return i.emitter.on("pointerdown",r.onPointerDown),i.emitter.on("pointermove",r.onPointerMove),i.emitter.on("pointerup",r.onPointerUp),r.mirror=new d,r.autoScroller=new v,r}return r(n,e),n.prototype.destroy=function(){this.pointer.destroy()},n.prototype.startDelay=function(e){var t=this;"number"==typeof this.delay?this.delayTimeoutId=setTimeout(function(){t.delayTimeoutId=null,t.handleDelayEnd(e)},this.delay):this.handleDelayEnd(e)},n.prototype.handleDelayEnd=function(e){this.isDelayEnded=!0,this.tryStartDrag(e)},n.prototype.handleDistanceSurpassed=function(e){this.isDistanceSurpassed=!0,this.tryStartDrag(e)},n.prototype.tryStartDrag=function(e){this.isDelayEnded&&this.isDistanceSurpassed&&(this.pointer.wasTouchScroll&&!this.touchScrollAllowed||(this.isDragging=!0,this.mirrorNeedsRevert=!1,this.autoScroller.start(e.pageX,e.pageY),this.emitter.trigger("dragstart",e),!1===this.touchScrollAllowed&&this.pointer.cancelTouchScroll()))},n.prototype.tryStopDrag=function(e){this.mirror.stop(this.mirrorNeedsRevert,this.stopDrag.bind(this,e))},n.prototype.stopDrag=function(e){this.isDragging=!1,this.emitter.trigger("dragend",e)},n.prototype.setIgnoreMove=function(e){this.pointer.shouldIgnoreMove=e},n.prototype.setMirrorIsVisible=function(e){this.mirror.setIsVisible(e)},n.prototype.setMirrorNeedsRevert=function(e){this.mirrorNeedsRevert=e},n.prototype.setAutoScrollEnabled=function(e){this.autoScroller.isEnabled=e},n}(t.ElementDragging),E=function(){function e(e){this.origRect=t.computeRect(e),this.scrollCaches=t.getClippingParents(e).map(function(e){return new u(e,!0)})}return e.prototype.destroy=function(){for(var e=0,t=this.scrollCaches;e=0&&g=0&&uo.layer)||(f.rect.left+=c,f.rect.right+=c,f.rect.top+=d,f.rect.bottom+=d,o=f)}}}return o},e}();function S(e,n){return!e&&!n||Boolean(e)===Boolean(n)&&t.isDateSpansEqual(e.dateSpan,n.dateSpan)}var y=function(e){function n(n){var r=e.call(this,n)||this;r.handlePointerDown=function(e){var t=r.dragging;t.setIgnoreMove(!r.component.isValidDateDownEl(t.pointer.downEl))},r.handleDragEnd=function(e){var t=r.component;if(!r.dragging.pointer.wasTouchScroll){var n=r.hitDragging,i=n.initialHit,o=n.finalHit;i&&o&&S(i,o)&&t.calendar.triggerDateClick(i.dateSpan,i.dayEl,t.view,e.origEvent)}};var i=n.component;r.dragging=new f(i.el),r.dragging.autoScroller.isEnabled=!1;var o=r.hitDragging=new m(r.dragging,t.interactionSettingsToStore(n));return o.emitter.on("pointerdown",r.handlePointerDown),o.emitter.on("dragend",r.handleDragEnd),r}return r(n,e),n.prototype.destroy=function(){this.dragging.destroy()},n}(t.Interaction),D=function(e){function n(n){var r=e.call(this,n)||this;r.dragSelection=null,r.handlePointerDown=function(e){var t=r,n=t.component,i=t.dragging,o=n.opt("selectable")&&n.isValidDateDownEl(e.origEvent.target);i.setIgnoreMove(!o),i.delay=e.isTouch?function(e){var t=e.opt("selectLongPressDelay");null==t&&(t=e.opt("longPressDelay"));return t}(n):null},r.handleDragStart=function(e){r.component.calendar.unselect(e)},r.handleHitUpdate=function(e,n){var o=r.component.calendar,a=null,l=!1;e&&((a=function(e,n,r){var o=e.dateSpan,a=n.dateSpan,l=[o.range.start,o.range.end,a.range.start,a.range.end];l.sort(t.compareNumbers);for(var s={},c=0,d=r;co.start)return g.endDelta=d,g;return null}(s,e,o.subjectEl.classList.contains("fc-start-resizer"),c.range,a.pluginSystem.hooks.eventResizeJoinTransforms)),d&&(g=t.applyMutationToEventStore(l,a.eventUiBases,d,a),h.mutatedEvents=g,r.component.isInteractionValid(h)||(u=!0,d=null,g=null,h.mutatedEvents=null)),g?a.dispatch({type:"SET_EVENT_RESIZE",state:h}):a.dispatch({type:"UNSET_EVENT_RESIZE"}),u?t.disableCursor():t.enableCursor(),n||(d&&S(s,e)&&(d=null),r.validMutation=d,r.mutatedRelevantEvents=g)},r.handleDragEnd=function(e){var n=r.component.calendar,i=r.component.view,o=r.eventRange.def,a=r.eventRange.instance,l=new t.EventApi(n,o,a),s=r.relevantEvents,c=r.mutatedRelevantEvents;n.publiclyTrigger("eventResizeStop",[{el:r.draggingSeg.el,event:l,jsEvent:e.origEvent,view:i}]),r.validMutation?(n.dispatch({type:"MERGE_EVENTS",eventStore:c}),n.publiclyTrigger("eventResize",[{el:r.draggingSeg.el,startDelta:r.validMutation.startDelta||t.createDuration(0),endDelta:r.validMutation.endDelta||t.createDuration(0),prevEvent:l,event:new t.EventApi(n,c.defs[o.defId],a?c.instances[a.instanceId]:null),revert:function(){n.dispatch({type:"MERGE_EVENTS",eventStore:s})},jsEvent:e.origEvent,view:i}])):n.publiclyTrigger("_noEventResize"),r.draggingSeg=null,r.relevantEvents=null,r.validMutation=null};var o=n.component,a=r.dragging=new f(o.el);a.pointer.selector=".fc-resizer",a.touchScrollAllowed=!1,a.autoScroller.isEnabled=o.opt("dragScroll");var l=r.hitDragging=new m(r.dragging,t.interactionSettingsToStore(n));return l.emitter.on("pointerdown",r.handlePointerDown),l.emitter.on("dragstart",r.handleDragStart),l.emitter.on("hitupdate",r.handleHitUpdate),l.emitter.on("dragend",r.handleDragEnd),r}return r(n,e),n.prototype.destroy=function(){this.dragging.destroy()},n.prototype.querySeg=function(e){return t.getElSeg(t.elementClosest(e.subjectEl,this.component.fgSegSelector))},n}(t.Interaction);var M=function(){function e(e){var n=this;this.isRecentPointerDateSelect=!1,this.onSelect=function(e){e.jsEvent&&(n.isRecentPointerDateSelect=!0)},this.onDocumentPointerUp=function(e){var r=n,i=r.calendar,o=r.documentPointer,a=i.state;if(!o.wasTouchScroll){if(a.dateSelection&&!n.isRecentPointerDateSelect){var l=i.viewOpt("unselectAuto"),s=i.viewOpt("unselectCancel");!l||l&&t.elementClosest(o.downEl,s)||i.unselect(e)}a.eventSelection&&!t.elementClosest(o.downEl,w.SELECTOR)&&i.dispatch({type:"UNSELECT_EVENT"})}n.isRecentPointerDateSelect=!1},this.calendar=e;var r=this.documentPointer=new s(document);r.shouldIgnoreMove=!0,r.shouldWatchScroll=!1,r.emitter.on("pointerup",this.onDocumentPointerUp),e.on("select",this.onSelect)}return e.prototype.destroy=function(){this.calendar.off("select",this.onSelect),this.documentPointer.destroy()},e}(),b=function(){function e(e,n){var r=this;this.receivingCalendar=null,this.droppableEvent=null,this.suppliedDragMeta=null,this.dragMeta=null,this.handleDragStart=function(e){r.dragMeta=r.buildDragMeta(e.subjectEl)},this.handleHitUpdate=function(e,n,o){var a=r.hitDragging.dragging,l=null,s=null,c=!1,d={affectedEvents:t.createEmptyEventStore(),mutatedEvents:t.createEmptyEventStore(),isEvent:r.dragMeta.create,origSeg:null};e&&(l=e.component.calendar,r.canDropElOnCalendar(o.subjectEl,l)&&(s=function(e,n,r){for(var o=i({},n.leftoverProps),a=0,l=r.pluginSystem.hooks.externalDefTransforms;a tag */ - text-decoration: none; - color: inherit; -} - -.fc-list-item-title a[href]:hover { - /* hover effect only on titles with hrefs */ - text-decoration: underline; -} - -/* message when no events */ -.fc-list-empty-wrap2 { - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; -} - -.fc-list-empty-wrap1 { - width: 100%; - height: 100%; - display: table; -} - -.fc-list-empty { - display: table-cell; - vertical-align: middle; - text-align: center; -} - -.fc-unthemed .fc-list-empty { - /* theme will provide own background */ - background-color: #eee; -} diff --git a/htdocs/public/high/plugins/fullcalendar/packages/list/main.d.ts b/htdocs/public/high/plugins/fullcalendar/packages/list/main.d.ts deleted file mode 100644 index 78aeb2e1..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/list/main.d.ts +++ /dev/null @@ -1,33 +0,0 @@ -// Generated by dts-bundle v0.7.3-fork.1 -// Dependencies for this module: -// ../../../../../@fullcalendar/core - -declare module '@fullcalendar/list' { - import ListView from '@fullcalendar/list/ListView'; - export { ListView }; - const _default: import("@fullcalendar/core").PluginDef; - export default _default; -} - -declare module '@fullcalendar/list/ListView' { - import { View, ViewProps, ScrollComponent, DateMarker, DateRange, DateProfileGenerator, ComponentContext, ViewSpec, EventUiHash, EventRenderRange, EventStore, Seg } from '@fullcalendar/core'; - export { ListView as default, ListView }; - class ListView extends View { - scroller: ScrollComponent; - contentEl: HTMLElement; - dayDates: DateMarker[]; - constructor(context: ComponentContext, viewSpec: ViewSpec, dateProfileGenerator: DateProfileGenerator, parentEl: HTMLElement); - render(props: ViewProps): void; - destroy(): void; - updateSize(isResize: any, viewHeight: any, isAuto: any): void; - computeScrollerHeight(viewHeight: any): number; - _eventStoreToSegs(eventStore: EventStore, eventUiBases: EventUiHash, dayRanges: DateRange[]): Seg[]; - eventRangesToSegs(eventRanges: EventRenderRange[], dayRanges: DateRange[]): any[]; - eventRangeToSegs(eventRange: EventRenderRange, dayRanges: DateRange[]): any[]; - renderEmptyMessage(): void; - renderSegList(allSegs: any): void; - groupSegsByDay(segs: any): any[]; - buildDayHeaderRow(dayDate: any): HTMLTableRowElement; - } -} - diff --git a/htdocs/public/high/plugins/fullcalendar/packages/list/main.esm.js b/htdocs/public/high/plugins/fullcalendar/packages/list/main.esm.js deleted file mode 100644 index 87b9eb2e..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/list/main.esm.js +++ /dev/null @@ -1,335 +0,0 @@ -/*! -FullCalendar List View Plugin v4.3.0 -Docs & License: https://fullcalendar.io/ -(c) 2019 Adam Shaw -*/ - -import { getAllDayHtml, isMultiDayRange, htmlEscape, FgEventRenderer, memoize, memoizeRendering, ScrollComponent, subtractInnerElHeight, sliceEventStore, intersectRanges, htmlToElement, createFormatter, createElement, buildGotoAnchorHtml, View, startOfDay, addDays, createPlugin } from '@fullcalendar/core'; - -/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. All rights reserved. -Licensed under the Apache License, Version 2.0 (the "License"); you may not use -this file except in compliance with the License. You may obtain a copy of the -License at http://www.apache.org/licenses/LICENSE-2.0 - -THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED -WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, -MERCHANTABLITY OR NON-INFRINGEMENT. - -See the Apache Version 2.0 License for specific language governing permissions -and limitations under the License. -***************************************************************************** */ -/* global Reflect, Promise */ - -var extendStatics = function(d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return extendStatics(d, b); -}; - -function __extends(d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -} - -var ListEventRenderer = /** @class */ (function (_super) { - __extends(ListEventRenderer, _super); - function ListEventRenderer(listView) { - var _this = _super.call(this, listView.context) || this; - _this.listView = listView; - return _this; - } - ListEventRenderer.prototype.attachSegs = function (segs) { - if (!segs.length) { - this.listView.renderEmptyMessage(); - } - else { - this.listView.renderSegList(segs); - } - }; - ListEventRenderer.prototype.detachSegs = function () { - }; - // generates the HTML for a single event row - ListEventRenderer.prototype.renderSegHtml = function (seg) { - var _a = this.context, view = _a.view, theme = _a.theme; - var eventRange = seg.eventRange; - var eventDef = eventRange.def; - var eventInstance = eventRange.instance; - var eventUi = eventRange.ui; - var url = eventDef.url; - var classes = ['fc-list-item'].concat(eventUi.classNames); - var bgColor = eventUi.backgroundColor; - var timeHtml; - if (eventDef.allDay) { - timeHtml = getAllDayHtml(view); - } - else if (isMultiDayRange(eventRange.range)) { - if (seg.isStart) { - timeHtml = htmlEscape(this._getTimeText(eventInstance.range.start, seg.end, false // allDay - )); - } - else if (seg.isEnd) { - timeHtml = htmlEscape(this._getTimeText(seg.start, eventInstance.range.end, false // allDay - )); - } - else { // inner segment that lasts the whole day - timeHtml = getAllDayHtml(view); - } - } - else { - // Display the normal time text for the *event's* times - timeHtml = htmlEscape(this.getTimeText(eventRange)); - } - if (url) { - classes.push('fc-has-url'); - } - return '' + - (this.displayEventTime ? - '' + - (timeHtml || '') + - '' : - '') + - '' + - '' + - '' + - '' + - '' + - htmlEscape(eventDef.title || '') + - '' + - '' + - ''; - }; - // like "4:00am" - ListEventRenderer.prototype.computeEventTimeFormat = function () { - return { - hour: 'numeric', - minute: '2-digit', - meridiem: 'short' - }; - }; - return ListEventRenderer; -}(FgEventRenderer)); - -/* -Responsible for the scroller, and forwarding event-related actions into the "grid". -*/ -var ListView = /** @class */ (function (_super) { - __extends(ListView, _super); - function ListView(context, viewSpec, dateProfileGenerator, parentEl) { - var _this = _super.call(this, context, viewSpec, dateProfileGenerator, parentEl) || this; - _this.computeDateVars = memoize(computeDateVars); - _this.eventStoreToSegs = memoize(_this._eventStoreToSegs); - var eventRenderer = _this.eventRenderer = new ListEventRenderer(_this); - _this.renderContent = memoizeRendering(eventRenderer.renderSegs.bind(eventRenderer), eventRenderer.unrender.bind(eventRenderer)); - _this.el.classList.add('fc-list-view'); - var listViewClassNames = (_this.theme.getClass('listView') || '').split(' '); // wish we didn't have to do this - for (var _i = 0, listViewClassNames_1 = listViewClassNames; _i < listViewClassNames_1.length; _i++) { - var listViewClassName = listViewClassNames_1[_i]; - if (listViewClassName) { // in case input was empty string - _this.el.classList.add(listViewClassName); - } - } - _this.scroller = new ScrollComponent('hidden', // overflow x - 'auto' // overflow y - ); - _this.el.appendChild(_this.scroller.el); - _this.contentEl = _this.scroller.el; // shortcut - context.calendar.registerInteractiveComponent(_this, { - el: _this.el - // TODO: make aware that it doesn't do Hits - }); - return _this; - } - ListView.prototype.render = function (props) { - var _a = this.computeDateVars(props.dateProfile), dayDates = _a.dayDates, dayRanges = _a.dayRanges; - this.dayDates = dayDates; - this.renderContent(this.eventStoreToSegs(props.eventStore, props.eventUiBases, dayRanges)); - }; - ListView.prototype.destroy = function () { - _super.prototype.destroy.call(this); - this.renderContent.unrender(); - this.scroller.destroy(); // will remove the Grid too - this.calendar.unregisterInteractiveComponent(this); - }; - ListView.prototype.updateSize = function (isResize, viewHeight, isAuto) { - _super.prototype.updateSize.call(this, isResize, viewHeight, isAuto); - this.eventRenderer.computeSizes(isResize); - this.eventRenderer.assignSizes(isResize); - this.scroller.clear(); // sets height to 'auto' and clears overflow - if (!isAuto) { - this.scroller.setHeight(this.computeScrollerHeight(viewHeight)); - } - }; - ListView.prototype.computeScrollerHeight = function (viewHeight) { - return viewHeight - - subtractInnerElHeight(this.el, this.scroller.el); // everything that's NOT the scroller - }; - ListView.prototype._eventStoreToSegs = function (eventStore, eventUiBases, dayRanges) { - return this.eventRangesToSegs(sliceEventStore(eventStore, eventUiBases, this.props.dateProfile.activeRange, this.nextDayThreshold).fg, dayRanges); - }; - ListView.prototype.eventRangesToSegs = function (eventRanges, dayRanges) { - var segs = []; - for (var _i = 0, eventRanges_1 = eventRanges; _i < eventRanges_1.length; _i++) { - var eventRange = eventRanges_1[_i]; - segs.push.apply(segs, this.eventRangeToSegs(eventRange, dayRanges)); - } - return segs; - }; - ListView.prototype.eventRangeToSegs = function (eventRange, dayRanges) { - var _a = this, dateEnv = _a.dateEnv, nextDayThreshold = _a.nextDayThreshold; - var range = eventRange.range; - var allDay = eventRange.def.allDay; - var dayIndex; - var segRange; - var seg; - var segs = []; - for (dayIndex = 0; dayIndex < dayRanges.length; dayIndex++) { - segRange = intersectRanges(range, dayRanges[dayIndex]); - if (segRange) { - seg = { - component: this, - eventRange: eventRange, - start: segRange.start, - end: segRange.end, - isStart: eventRange.isStart && segRange.start.valueOf() === range.start.valueOf(), - isEnd: eventRange.isEnd && segRange.end.valueOf() === range.end.valueOf(), - dayIndex: dayIndex - }; - segs.push(seg); - // detect when range won't go fully into the next day, - // and mutate the latest seg to the be the end. - if (!seg.isEnd && !allDay && - dayIndex + 1 < dayRanges.length && - range.end < - dateEnv.add(dayRanges[dayIndex + 1].start, nextDayThreshold)) { - seg.end = range.end; - seg.isEnd = true; - break; - } - } - } - return segs; - }; - ListView.prototype.renderEmptyMessage = function () { - this.contentEl.innerHTML = - '
' + // TODO: try less wraps - '
' + - '
' + - htmlEscape(this.opt('noEventsMessage')) + - '
' + - '
' + - '
'; - }; - // called by ListEventRenderer - ListView.prototype.renderSegList = function (allSegs) { - var segsByDay = this.groupSegsByDay(allSegs); // sparse array - var dayIndex; - var daySegs; - var i; - var tableEl = htmlToElement('
'); - var tbodyEl = tableEl.querySelector('tbody'); - for (dayIndex = 0; dayIndex < segsByDay.length; dayIndex++) { - daySegs = segsByDay[dayIndex]; - if (daySegs) { // sparse array, so might be undefined - // append a day header - tbodyEl.appendChild(this.buildDayHeaderRow(this.dayDates[dayIndex])); - daySegs = this.eventRenderer.sortEventSegs(daySegs); - for (i = 0; i < daySegs.length; i++) { - tbodyEl.appendChild(daySegs[i].el); // append event row - } - } - } - this.contentEl.innerHTML = ''; - this.contentEl.appendChild(tableEl); - }; - // Returns a sparse array of arrays, segs grouped by their dayIndex - ListView.prototype.groupSegsByDay = function (segs) { - var segsByDay = []; // sparse array - var i; - var seg; - for (i = 0; i < segs.length; i++) { - seg = segs[i]; - (segsByDay[seg.dayIndex] || (segsByDay[seg.dayIndex] = [])) - .push(seg); - } - return segsByDay; - }; - // generates the HTML for the day headers that live amongst the event rows - ListView.prototype.buildDayHeaderRow = function (dayDate) { - var dateEnv = this.dateEnv; - var mainFormat = createFormatter(this.opt('listDayFormat')); // TODO: cache - var altFormat = createFormatter(this.opt('listDayAltFormat')); // TODO: cache - return createElement('tr', { - className: 'fc-list-heading', - 'data-date': dateEnv.formatIso(dayDate, { omitTime: true }) - }, '' + - (mainFormat ? - buildGotoAnchorHtml(this, dayDate, { 'class': 'fc-list-heading-main' }, htmlEscape(dateEnv.format(dayDate, mainFormat)) // inner HTML - ) : - '') + - (altFormat ? - buildGotoAnchorHtml(this, dayDate, { 'class': 'fc-list-heading-alt' }, htmlEscape(dateEnv.format(dayDate, altFormat)) // inner HTML - ) : - '') + - ''); - }; - return ListView; -}(View)); -ListView.prototype.fgSegSelector = '.fc-list-item'; // which elements accept event actions -function computeDateVars(dateProfile) { - var dayStart = startOfDay(dateProfile.renderRange.start); - var viewEnd = dateProfile.renderRange.end; - var dayDates = []; - var dayRanges = []; - while (dayStart < viewEnd) { - dayDates.push(dayStart); - dayRanges.push({ - start: dayStart, - end: addDays(dayStart, 1) - }); - dayStart = addDays(dayStart, 1); - } - return { dayDates: dayDates, dayRanges: dayRanges }; -} - -var main = createPlugin({ - views: { - list: { - class: ListView, - buttonTextKey: 'list', - listDayFormat: { month: 'long', day: 'numeric', year: 'numeric' } // like "January 1, 2016" - }, - listDay: { - type: 'list', - duration: { days: 1 }, - listDayFormat: { weekday: 'long' } // day-of-week is all we need. full date is probably in header - }, - listWeek: { - type: 'list', - duration: { weeks: 1 }, - listDayFormat: { weekday: 'long' }, - listDayAltFormat: { month: 'long', day: 'numeric', year: 'numeric' } - }, - listMonth: { - type: 'list', - duration: { month: 1 }, - listDayAltFormat: { weekday: 'long' } // day-of-week is nice-to-have - }, - listYear: { - type: 'list', - duration: { year: 1 }, - listDayAltFormat: { weekday: 'long' } // day-of-week is nice-to-have - } - } -}); - -export default main; -export { ListView }; diff --git a/htdocs/public/high/plugins/fullcalendar/packages/list/main.js b/htdocs/public/high/plugins/fullcalendar/packages/list/main.js deleted file mode 100644 index b855e4e0..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/list/main.js +++ /dev/null @@ -1,343 +0,0 @@ -/*! -FullCalendar List View Plugin v4.3.0 -Docs & License: https://fullcalendar.io/ -(c) 2019 Adam Shaw -*/ - -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@fullcalendar/core')) : - typeof define === 'function' && define.amd ? define(['exports', '@fullcalendar/core'], factory) : - (global = global || self, factory(global.FullCalendarList = {}, global.FullCalendar)); -}(this, function (exports, core) { 'use strict'; - - /*! ***************************************************************************** - Copyright (c) Microsoft Corporation. All rights reserved. - Licensed under the Apache License, Version 2.0 (the "License"); you may not use - this file except in compliance with the License. You may obtain a copy of the - License at http://www.apache.org/licenses/LICENSE-2.0 - - THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED - WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, - MERCHANTABLITY OR NON-INFRINGEMENT. - - See the Apache Version 2.0 License for specific language governing permissions - and limitations under the License. - ***************************************************************************** */ - /* global Reflect, Promise */ - - var extendStatics = function(d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - - function __extends(d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - } - - var ListEventRenderer = /** @class */ (function (_super) { - __extends(ListEventRenderer, _super); - function ListEventRenderer(listView) { - var _this = _super.call(this, listView.context) || this; - _this.listView = listView; - return _this; - } - ListEventRenderer.prototype.attachSegs = function (segs) { - if (!segs.length) { - this.listView.renderEmptyMessage(); - } - else { - this.listView.renderSegList(segs); - } - }; - ListEventRenderer.prototype.detachSegs = function () { - }; - // generates the HTML for a single event row - ListEventRenderer.prototype.renderSegHtml = function (seg) { - var _a = this.context, view = _a.view, theme = _a.theme; - var eventRange = seg.eventRange; - var eventDef = eventRange.def; - var eventInstance = eventRange.instance; - var eventUi = eventRange.ui; - var url = eventDef.url; - var classes = ['fc-list-item'].concat(eventUi.classNames); - var bgColor = eventUi.backgroundColor; - var timeHtml; - if (eventDef.allDay) { - timeHtml = core.getAllDayHtml(view); - } - else if (core.isMultiDayRange(eventRange.range)) { - if (seg.isStart) { - timeHtml = core.htmlEscape(this._getTimeText(eventInstance.range.start, seg.end, false // allDay - )); - } - else if (seg.isEnd) { - timeHtml = core.htmlEscape(this._getTimeText(seg.start, eventInstance.range.end, false // allDay - )); - } - else { // inner segment that lasts the whole day - timeHtml = core.getAllDayHtml(view); - } - } - else { - // Display the normal time text for the *event's* times - timeHtml = core.htmlEscape(this.getTimeText(eventRange)); - } - if (url) { - classes.push('fc-has-url'); - } - return '' + - (this.displayEventTime ? - '' + - (timeHtml || '') + - '' : - '') + - '' + - '' + - '' + - '' + - '' + - core.htmlEscape(eventDef.title || '') + - '' + - '' + - ''; - }; - // like "4:00am" - ListEventRenderer.prototype.computeEventTimeFormat = function () { - return { - hour: 'numeric', - minute: '2-digit', - meridiem: 'short' - }; - }; - return ListEventRenderer; - }(core.FgEventRenderer)); - - /* - Responsible for the scroller, and forwarding event-related actions into the "grid". - */ - var ListView = /** @class */ (function (_super) { - __extends(ListView, _super); - function ListView(context, viewSpec, dateProfileGenerator, parentEl) { - var _this = _super.call(this, context, viewSpec, dateProfileGenerator, parentEl) || this; - _this.computeDateVars = core.memoize(computeDateVars); - _this.eventStoreToSegs = core.memoize(_this._eventStoreToSegs); - var eventRenderer = _this.eventRenderer = new ListEventRenderer(_this); - _this.renderContent = core.memoizeRendering(eventRenderer.renderSegs.bind(eventRenderer), eventRenderer.unrender.bind(eventRenderer)); - _this.el.classList.add('fc-list-view'); - var listViewClassNames = (_this.theme.getClass('listView') || '').split(' '); // wish we didn't have to do this - for (var _i = 0, listViewClassNames_1 = listViewClassNames; _i < listViewClassNames_1.length; _i++) { - var listViewClassName = listViewClassNames_1[_i]; - if (listViewClassName) { // in case input was empty string - _this.el.classList.add(listViewClassName); - } - } - _this.scroller = new core.ScrollComponent('hidden', // overflow x - 'auto' // overflow y - ); - _this.el.appendChild(_this.scroller.el); - _this.contentEl = _this.scroller.el; // shortcut - context.calendar.registerInteractiveComponent(_this, { - el: _this.el - // TODO: make aware that it doesn't do Hits - }); - return _this; - } - ListView.prototype.render = function (props) { - var _a = this.computeDateVars(props.dateProfile), dayDates = _a.dayDates, dayRanges = _a.dayRanges; - this.dayDates = dayDates; - this.renderContent(this.eventStoreToSegs(props.eventStore, props.eventUiBases, dayRanges)); - }; - ListView.prototype.destroy = function () { - _super.prototype.destroy.call(this); - this.renderContent.unrender(); - this.scroller.destroy(); // will remove the Grid too - this.calendar.unregisterInteractiveComponent(this); - }; - ListView.prototype.updateSize = function (isResize, viewHeight, isAuto) { - _super.prototype.updateSize.call(this, isResize, viewHeight, isAuto); - this.eventRenderer.computeSizes(isResize); - this.eventRenderer.assignSizes(isResize); - this.scroller.clear(); // sets height to 'auto' and clears overflow - if (!isAuto) { - this.scroller.setHeight(this.computeScrollerHeight(viewHeight)); - } - }; - ListView.prototype.computeScrollerHeight = function (viewHeight) { - return viewHeight - - core.subtractInnerElHeight(this.el, this.scroller.el); // everything that's NOT the scroller - }; - ListView.prototype._eventStoreToSegs = function (eventStore, eventUiBases, dayRanges) { - return this.eventRangesToSegs(core.sliceEventStore(eventStore, eventUiBases, this.props.dateProfile.activeRange, this.nextDayThreshold).fg, dayRanges); - }; - ListView.prototype.eventRangesToSegs = function (eventRanges, dayRanges) { - var segs = []; - for (var _i = 0, eventRanges_1 = eventRanges; _i < eventRanges_1.length; _i++) { - var eventRange = eventRanges_1[_i]; - segs.push.apply(segs, this.eventRangeToSegs(eventRange, dayRanges)); - } - return segs; - }; - ListView.prototype.eventRangeToSegs = function (eventRange, dayRanges) { - var _a = this, dateEnv = _a.dateEnv, nextDayThreshold = _a.nextDayThreshold; - var range = eventRange.range; - var allDay = eventRange.def.allDay; - var dayIndex; - var segRange; - var seg; - var segs = []; - for (dayIndex = 0; dayIndex < dayRanges.length; dayIndex++) { - segRange = core.intersectRanges(range, dayRanges[dayIndex]); - if (segRange) { - seg = { - component: this, - eventRange: eventRange, - start: segRange.start, - end: segRange.end, - isStart: eventRange.isStart && segRange.start.valueOf() === range.start.valueOf(), - isEnd: eventRange.isEnd && segRange.end.valueOf() === range.end.valueOf(), - dayIndex: dayIndex - }; - segs.push(seg); - // detect when range won't go fully into the next day, - // and mutate the latest seg to the be the end. - if (!seg.isEnd && !allDay && - dayIndex + 1 < dayRanges.length && - range.end < - dateEnv.add(dayRanges[dayIndex + 1].start, nextDayThreshold)) { - seg.end = range.end; - seg.isEnd = true; - break; - } - } - } - return segs; - }; - ListView.prototype.renderEmptyMessage = function () { - this.contentEl.innerHTML = - '
' + // TODO: try less wraps - '
' + - '
' + - core.htmlEscape(this.opt('noEventsMessage')) + - '
' + - '
' + - '
'; - }; - // called by ListEventRenderer - ListView.prototype.renderSegList = function (allSegs) { - var segsByDay = this.groupSegsByDay(allSegs); // sparse array - var dayIndex; - var daySegs; - var i; - var tableEl = core.htmlToElement('
'); - var tbodyEl = tableEl.querySelector('tbody'); - for (dayIndex = 0; dayIndex < segsByDay.length; dayIndex++) { - daySegs = segsByDay[dayIndex]; - if (daySegs) { // sparse array, so might be undefined - // append a day header - tbodyEl.appendChild(this.buildDayHeaderRow(this.dayDates[dayIndex])); - daySegs = this.eventRenderer.sortEventSegs(daySegs); - for (i = 0; i < daySegs.length; i++) { - tbodyEl.appendChild(daySegs[i].el); // append event row - } - } - } - this.contentEl.innerHTML = ''; - this.contentEl.appendChild(tableEl); - }; - // Returns a sparse array of arrays, segs grouped by their dayIndex - ListView.prototype.groupSegsByDay = function (segs) { - var segsByDay = []; // sparse array - var i; - var seg; - for (i = 0; i < segs.length; i++) { - seg = segs[i]; - (segsByDay[seg.dayIndex] || (segsByDay[seg.dayIndex] = [])) - .push(seg); - } - return segsByDay; - }; - // generates the HTML for the day headers that live amongst the event rows - ListView.prototype.buildDayHeaderRow = function (dayDate) { - var dateEnv = this.dateEnv; - var mainFormat = core.createFormatter(this.opt('listDayFormat')); // TODO: cache - var altFormat = core.createFormatter(this.opt('listDayAltFormat')); // TODO: cache - return core.createElement('tr', { - className: 'fc-list-heading', - 'data-date': dateEnv.formatIso(dayDate, { omitTime: true }) - }, '' + - (mainFormat ? - core.buildGotoAnchorHtml(this, dayDate, { 'class': 'fc-list-heading-main' }, core.htmlEscape(dateEnv.format(dayDate, mainFormat)) // inner HTML - ) : - '') + - (altFormat ? - core.buildGotoAnchorHtml(this, dayDate, { 'class': 'fc-list-heading-alt' }, core.htmlEscape(dateEnv.format(dayDate, altFormat)) // inner HTML - ) : - '') + - ''); - }; - return ListView; - }(core.View)); - ListView.prototype.fgSegSelector = '.fc-list-item'; // which elements accept event actions - function computeDateVars(dateProfile) { - var dayStart = core.startOfDay(dateProfile.renderRange.start); - var viewEnd = dateProfile.renderRange.end; - var dayDates = []; - var dayRanges = []; - while (dayStart < viewEnd) { - dayDates.push(dayStart); - dayRanges.push({ - start: dayStart, - end: core.addDays(dayStart, 1) - }); - dayStart = core.addDays(dayStart, 1); - } - return { dayDates: dayDates, dayRanges: dayRanges }; - } - - var main = core.createPlugin({ - views: { - list: { - class: ListView, - buttonTextKey: 'list', - listDayFormat: { month: 'long', day: 'numeric', year: 'numeric' } // like "January 1, 2016" - }, - listDay: { - type: 'list', - duration: { days: 1 }, - listDayFormat: { weekday: 'long' } // day-of-week is all we need. full date is probably in header - }, - listWeek: { - type: 'list', - duration: { weeks: 1 }, - listDayFormat: { weekday: 'long' }, - listDayAltFormat: { month: 'long', day: 'numeric', year: 'numeric' } - }, - listMonth: { - type: 'list', - duration: { month: 1 }, - listDayAltFormat: { weekday: 'long' } // day-of-week is nice-to-have - }, - listYear: { - type: 'list', - duration: { year: 1 }, - listDayAltFormat: { weekday: 'long' } // day-of-week is nice-to-have - } - } - }); - - exports.ListView = ListView; - exports.default = main; - - Object.defineProperty(exports, '__esModule', { value: true }); - -})); diff --git a/htdocs/public/high/plugins/fullcalendar/packages/list/main.min.css b/htdocs/public/high/plugins/fullcalendar/packages/list/main.min.css deleted file mode 100644 index 18446f44..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/list/main.min.css +++ /dev/null @@ -1 +0,0 @@ -.fc-event-dot{display:inline-block;width:10px;height:10px;border-radius:5px}.fc-rtl .fc-list-view{direction:rtl}.fc-list-view{border-width:1px;border-style:solid}.fc .fc-list-table{table-layout:auto}.fc-list-table td{border-width:1px 0 0;padding:8px 14px}.fc-list-table tr:first-child td{border-top-width:0}.fc-list-heading{border-bottom-width:1px}.fc-list-heading td{font-weight:700}.fc-ltr .fc-list-heading-main{float:left}.fc-ltr .fc-list-heading-alt,.fc-rtl .fc-list-heading-main{float:right}.fc-rtl .fc-list-heading-alt{float:left}.fc-list-item.fc-has-url{cursor:pointer}.fc-list-item-marker,.fc-list-item-time{white-space:nowrap;width:1px}.fc-ltr .fc-list-item-marker{padding-right:0}.fc-rtl .fc-list-item-marker{padding-left:0}.fc-list-item-title a{text-decoration:none;color:inherit}.fc-list-item-title a[href]:hover{text-decoration:underline}.fc-list-empty-wrap2{position:absolute;top:0;left:0;right:0;bottom:0}.fc-list-empty-wrap1{width:100%;height:100%;display:table}.fc-list-empty{display:table-cell;vertical-align:middle;text-align:center}.fc-unthemed .fc-list-empty{background-color:#eee} \ No newline at end of file diff --git a/htdocs/public/high/plugins/fullcalendar/packages/list/main.min.js b/htdocs/public/high/plugins/fullcalendar/packages/list/main.min.js deleted file mode 100644 index f954aac8..00000000 --- a/htdocs/public/high/plugins/fullcalendar/packages/list/main.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/*! -FullCalendar List View Plugin v4.3.0 -Docs & License: https://fullcalendar.io/ -(c) 2019 Adam Shaw -*/ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@fullcalendar/core")):"function"==typeof define&&define.amd?define(["exports","@fullcalendar/core"],t):t((e=e||self).FullCalendarList={},e.FullCalendar)}(this,function(e,t){"use strict";var n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function r(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var s=function(e){function n(t){var n=e.call(this,t.context)||this;return n.listView=t,n}return r(n,e),n.prototype.attachSegs=function(e){e.length?this.listView.renderSegList(e):this.listView.renderEmptyMessage()},n.prototype.detachSegs=function(){},n.prototype.renderSegHtml=function(e){var n,r=this.context,s=r.view,a=r.theme,i=e.eventRange,o=i.def,l=i.instance,d=i.ui,c=o.url,p=["fc-list-item"].concat(d.classNames),h=d.backgroundColor;return n=o.allDay?t.getAllDayHtml(s):t.isMultiDayRange(i.range)?e.isStart?t.htmlEscape(this._getTimeText(l.range.start,e.end,!1)):e.isEnd?t.htmlEscape(this._getTimeText(e.start,l.range.end,!1)):t.getAllDayHtml(s):t.htmlEscape(this.getTimeText(i)),c&&p.push("fc-has-url"),''+(this.displayEventTime?''+(n||"")+"":"")+'"+t.htmlEscape(o.title||"")+""},n.prototype.computeEventTimeFormat=function(){return{hour:"numeric",minute:"2-digit",meridiem:"short"}},n}(t.FgEventRenderer),a=function(e){function n(n,r,a,o){var l=e.call(this,n,r,a,o)||this;l.computeDateVars=t.memoize(i),l.eventStoreToSegs=t.memoize(l._eventStoreToSegs);var d=l.eventRenderer=new s(l);l.renderContent=t.memoizeRendering(d.renderSegs.bind(d),d.unrender.bind(d)),l.el.classList.add("fc-list-view");for(var c=0,p=(l.theme.getClass("listView")||"").split(" ");c
'+t.htmlEscape(this.opt("noEventsMessage"))+"
"},n.prototype.renderSegList=function(e){var n,r,s,a=this.groupSegsByDay(e),i=t.htmlToElement('
'),o=i.querySelector("tbody");for(n=0;n'+(r?t.buildGotoAnchorHtml(this,e,{class:"fc-list-heading-main"},t.htmlEscape(n.format(e,r))):"")+(s?t.buildGotoAnchorHtml(this,e,{class:"fc-list-heading-alt"},t.htmlEscape(n.format(e,s))):"")+"")},n}(t.View);function i(e){for(var n=t.startOfDay(e.renderRange.start),r=e.renderRange.end,s=[],a=[];n
',o.rootBgContainerEl=i.querySelector(".fc-bg"),o.slatContainerEl=i.querySelector(".fc-slats"),o.bottomRuleEl=i.querySelector(".fc-divider"),o.renderProps=n,o}return n(i,e),i.prototype.processOptions=function(){var e,r,i=this.opt("slotDuration"),n=this.opt("snapDuration");i=t.createDuration(i),n=n?t.createDuration(n):i,null===(e=t.wholeDivideDurations(i,n))&&(n=i,e=1),this.slotDuration=i,this.snapDuration=n,this.snapsPerSlot=e,r=this.opt("slotLabelFormat"),Array.isArray(r)&&(r=r[r.length-1]),this.labelFormat=t.createFormatter(r||{hour:"numeric",minute:"2-digit",omitZeroMinute:!0,meridiem:"short"}),r=this.opt("slotLabelInterval"),this.labelInterval=r?t.createDuration(r):this.computeLabelInterval(i)},i.prototype.computeLabelInterval=function(e){var r,i,n;for(r=u.length-1;r>=0;r--)if(i=t.createDuration(u[r]),null!==(n=t.wholeDivideDurations(i,e))&&n>1)return i;return e},i.prototype.render=function(e){var t=e.cells;this.colCnt=t.length,this.renderSlats(e.dateProfile),this.renderColumns(e.cells,e.dateProfile),this.renderBusinessHours(e.businessHourSegs),this.renderDateSelection(e.dateSelectionSegs),this.renderFgEvents(e.fgEventSegs),this.renderBgEvents(e.bgEventSegs),this.renderEventSelection(e.eventSelection),this.renderEventDrag(e.eventDrag),this.renderEventResize(e.eventResize)},i.prototype.destroy=function(){e.prototype.destroy.call(this),this.renderSlats.unrender(),this.renderColumns.unrender()},i.prototype.updateSize=function(e){var t=this.fillRenderer,r=this.eventRenderer,i=this.mirrorRenderer;(e||this.isSlatSizesDirty)&&(this.buildSlatPositions(),this.isSlatSizesDirty=!1),(e||this.isColSizesDirty)&&(this.buildColPositions(),this.isColSizesDirty=!1),t.computeSizes(e),r.computeSizes(e),i.computeSizes(e),t.assignSizes(e),r.assignSizes(e),i.assignSizes(e)},i.prototype._renderSlats=function(e){var r=this.theme;this.slatContainerEl.innerHTML=''+this.renderSlatRowHtml(e)+"
",this.slatEls=t.findElements(this.slatContainerEl,"tr"),this.slatPositions=new t.PositionCache(this.el,this.slatEls,!1,!0),this.isSlatSizesDirty=!0},i.prototype.renderSlatRowHtml=function(e){for(var r,i,n,o=this.dateEnv,s=this.theme,a=this.isRtl,l="",d=t.startOfDay(e.renderRange.start),c=e.minTime,h=t.createDuration(0);t.asRoughMs(c)'+(i?""+t.htmlEscape(o.format(r,this.labelFormat))+"":"")+"",l+='"+(a?"":n)+''+(a?n:"")+"",c=t.addDurations(c,this.slotDuration),h=t.addDurations(h,this.slotDuration);return l},i.prototype._renderColumns=function(e,i){var n=this.theme,o=this.dateEnv,s=this.view,a=new r.DayBgRow(this.context);this.rootBgContainerEl.innerHTML=''+a.renderHtml({cells:e,dateProfile:i,renderIntroHtml:this.renderProps.renderBgIntroHtml})+"
",this.colEls=t.findElements(this.el,".fc-day, .fc-disabled-day");for(var l=0;l
');this.isRtl&&r.reverse(),e=this.contentSkeletonEl=t.htmlToElement('
'+r.join("")+"
"),this.colContainerEls=t.findElements(e,".fc-content-col"),this.mirrorContainerEls=t.findElements(e,".fc-mirror-container"),this.fgContainerEls=t.findElements(e,".fc-event-container:not(.fc-mirror-container)"),this.bgContainerEls=t.findElements(e,".fc-bgevent-container"),this.highlightContainerEls=t.findElements(e,".fc-highlight-container"),this.businessContainerEls=t.findElements(e,".fc-business-container"),this.isRtl&&(this.colContainerEls.reverse(),this.mirrorContainerEls.reverse(),this.fgContainerEls.reverse(),this.bgContainerEls.reverse(),this.highlightContainerEls.reverse(),this.businessContainerEls.reverse()),this.el.appendChild(e)},i.prototype.unrenderContentSkeleton=function(){t.removeElement(this.contentSkeletonEl)},i.prototype.groupSegsByCol=function(e){var t,r=[];for(t=0;t0){var a=t.createElement("div",{className:"fc-now-indicator fc-now-indicator-arrow"});a.style.top=n+"px",this.contentSkeletonEl.appendChild(a),o.push(a)}this.nowIndicatorEls=o}},i.prototype.unrenderNowIndicator=function(){this.nowIndicatorEls&&(this.nowIndicatorEls.forEach(t.removeElement),this.nowIndicatorEls=null)},i.prototype.getTotalSlatHeight=function(){return this.slatContainerEl.getBoundingClientRect().height},i.prototype.computeDateTop=function(e,r){return r||(r=t.startOfDay(e)),this.computeTimeTop(t.createDuration(e.valueOf()-r.valueOf()))},i.prototype.computeTimeTop=function(e){var r,i,n=this.slatEls.length,o=this.props.dateProfile,s=(e.milliseconds-t.asRoughMs(o.minTime))/t.asRoughMs(this.slotDuration);return s=Math.max(0,s),s=Math.min(n,s),r=Math.floor(s),i=s-(r=Math.min(r,n-1)),this.slatPositions.tops[r]+this.slatPositions.getHeight(r)*i},i.prototype.computeSegVerticals=function(e){var t,r,i,n=this.opt("timeGridEventMinHeight");for(t=0;t"+t.buildGotoAnchorHtml(a,{date:o.start,type:"week",forceOff:s>1},t.htmlEscape(e))+""):'"},a.renderTimeGridBgIntroHtml=function(){return'"},a.renderTimeGridIntroHtml=function(){return'"},a.renderDayGridBgIntroHtml=function(){return'"+t.getAllDayHtml(a)+""},a.renderDayGridIntroHtml=function(){return'"},a.el.classList.add("fc-timeGrid-view"),a.el.innerHTML=a.renderSkeletonHtml(),a.scroller=new t.ScrollComponent("hidden","auto");var l=a.scroller.el;a.el.querySelector(".fc-body > tr > td").appendChild(l),l.classList.add("fc-time-grid-container");var d=t.createElement("div",{className:"fc-time-grid"});if(l.appendChild(d),a.timeGrid=new p(a.context,d,{renderBgIntroHtml:a.renderTimeGridBgIntroHtml,renderIntroHtml:a.renderTimeGridIntroHtml}),a.opt("allDaySlot")){a.dayGrid=new r.DayGrid(a.context,a.el.querySelector(".fc-day-grid"),{renderNumberIntroHtml:a.renderDayGridIntroHtml,renderBgIntroHtml:a.renderDayGridBgIntroHtml,renderIntroHtml:a.renderDayGridIntroHtml,colWeekNumbersVisible:!1,cellWeekNumbersVisible:!1});var c=a.el.querySelector(".fc-divider");a.dayGrid.bottomCoordPadding=c.getBoundingClientRect().height}return a}return n(i,e),i.prototype.destroy=function(){e.prototype.destroy.call(this),this.timeGrid.destroy(),this.dayGrid&&this.dayGrid.destroy(),this.scroller.destroy()},i.prototype.renderSkeletonHtml=function(){var e=this.theme;return''+(this.opt("columnHeader")?'':"")+'
 
'+(this.opt("allDaySlot")?'

':"")+"
"},i.prototype.getNowIndicatorUnit=function(){return this.timeGrid.getNowIndicatorUnit()},i.prototype.unrenderNowIndicator=function(){this.timeGrid.unrenderNowIndicator()},i.prototype.updateSize=function(t,r,i){e.prototype.updateSize.call(this,t,r,i),this.timeGrid.updateSize(t),this.dayGrid&&this.dayGrid.updateSize(t)},i.prototype.updateBaseSize=function(e,r,i){var n,o,s,a=this;if(this.axisWidth=t.matchCellWidths(t.findElements(this.el,".fc-axis")),this.timeGrid.colEls){var l=t.findElements(this.el,".fc-row").filter(function(e){return!a.scroller.el.contains(e)});this.timeGrid.bottomRuleEl.style.display="none",this.scroller.clear(),l.forEach(t.uncompensateScroll),this.dayGrid&&(this.dayGrid.removeSegPopover(),(n=this.opt("eventLimit"))&&"number"!=typeof n&&(n=5),n&&this.dayGrid.limitRows(n)),i||(o=this.computeScrollerHeight(r),this.scroller.setHeight(o),((s=this.scroller.getScrollbarWidths()).left||s.right)&&(l.forEach(function(e){t.compensateScroll(e,s)}),o=this.computeScrollerHeight(r),this.scroller.setHeight(o)),this.scroller.lockOverflow(s),this.timeGrid.getTotalSlatHeight()> 0; - if (str.length > targetLength) { - return String(str); - } - targetLength = targetLength - str.length; - if (targetLength > padString.length) { - padString += repeat(padString, targetLength / padString.length); - } - return padString.slice(0, targetLength) + String(str); -} -/** - * Python like split - */ -var split = function (str, sep, num) { - var splits = str.split(sep); - return num - ? splits.slice(0, num).concat([splits.slice(num).join(sep)]) - : splits; -}; -/** - * closure/goog/math/math.js:modulo - * Copyright 2006 The Closure Library Authors. - * The % operator in JavaScript returns the remainder of a / b, but differs from - * some other languages in that the result will have the same sign as the - * dividend. For example, -1 % 8 == -1, whereas in some other languages - * (such as Python) the result would be 7. This function emulates the more - * correct modulo behavior, which is useful for certain applications such as - * calculating an offset index in a circular list. - * - * @param {number} a The dividend. - * @param {number} b The divisor. - * @return {number} a % b where the result is between 0 and b (either 0 <= x < b - * or b < x <= 0, depending on the sign of b). - */ -var pymod = function (a, b) { - var r = a % b; - // If r and b differ in sign, add b to wrap the result to the correct sign. - return r * b < 0 ? r + b : r; -}; -/** - * @see: - */ -var divmod = function (a, b) { - return { div: Math.floor(a / b), mod: pymod(a, b) }; -}; -var empty = function (obj) { - return !isPresent(obj) || obj.length === 0; -}; -/** - * Python-like boolean - * @return {Boolean} value of an object/primitive, taking into account - * the fact that in Python an empty list's/tuple's - * boolean value is False, whereas in JS it's true - */ -var notEmpty = function (obj) { - return !empty(obj); -}; -/** - * Return true if a value is in an array - */ -var includes = function (arr, val) { - return notEmpty(arr) && arr.indexOf(val) !== -1; -}; - - -/***/ }), -/* 1 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); - -// EXTERNAL MODULE: ./src/helpers.ts -var helpers = __webpack_require__(0); - -// CONCATENATED MODULE: ./src/dateutil.ts - -/** - * General date-related utilities. - * Also handles several incompatibilities between JavaScript and Python - * - */ -var dateutil_dateutil; -(function (dateutil) { - dateutil.MONTH_DAYS = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; - /** - * Number of milliseconds of one day - */ - dateutil.ONE_DAY = 1000 * 60 * 60 * 24; - /** - * @see: - */ - dateutil.MAXYEAR = 9999; - /** - * Python uses 1-Jan-1 as the base for calculating ordinals but we don't - * want to confuse the JS engine with milliseconds > Number.MAX_NUMBER, - * therefore we use 1-Jan-1970 instead - */ - dateutil.ORDINAL_BASE = new Date(Date.UTC(1970, 0, 1)); - /** - * Python: MO-SU: 0 - 6 - * JS: SU-SAT 0 - 6 - */ - dateutil.PY_WEEKDAYS = [6, 0, 1, 2, 3, 4, 5]; - /** - * py_date.timetuple()[7] - */ - dateutil.getYearDay = function (date) { - var dateNoTime = new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()); - return (Math.ceil((dateNoTime.valueOf() - - new Date(date.getUTCFullYear(), 0, 1).valueOf()) / - dateutil.ONE_DAY) + 1); - }; - dateutil.isLeapYear = function (year) { - return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; - }; - dateutil.isDate = function (value) { - return value instanceof Date; - }; - dateutil.isValidDate = function (value) { - return dateutil.isDate(value) && !isNaN(value.getTime()); - }; - /** - * @return {Number} the date's timezone offset in ms - */ - dateutil.tzOffset = function (date) { - return date.getTimezoneOffset() * 60 * 1000; - }; - /** - * @see: - */ - dateutil.daysBetween = function (date1, date2) { - // The number of milliseconds in one day - // Convert both dates to milliseconds - var date1ms = date1.getTime() - dateutil.tzOffset(date1); - var date2ms = date2.getTime() - dateutil.tzOffset(date2); - // Calculate the difference in milliseconds - var differencems = date1ms - date2ms; - // Convert back to days and return - return Math.round(differencems / dateutil.ONE_DAY); - }; - /** - * @see: - */ - dateutil.toOrdinal = function (date) { - return dateutil.daysBetween(date, dateutil.ORDINAL_BASE); - }; - /** - * @see - - */ - dateutil.fromOrdinal = function (ordinal) { - return new Date(dateutil.ORDINAL_BASE.getTime() + ordinal * dateutil.ONE_DAY); - }; - dateutil.getMonthDays = function (date) { - var month = date.getUTCMonth(); - return month === 1 && dateutil.isLeapYear(date.getUTCFullYear()) - ? 29 - : dateutil.MONTH_DAYS[month]; - }; - /** - * @return {Number} python-like weekday - */ - dateutil.getWeekday = function (date) { - return dateutil.PY_WEEKDAYS[date.getUTCDay()]; - }; - /** - * @see: - */ - dateutil.monthRange = function (year, month) { - var date = new Date(Date.UTC(year, month, 1)); - return [dateutil.getWeekday(date), dateutil.getMonthDays(date)]; - }; - /** - * @see: - */ - dateutil.combine = function (date, time) { - time = time || date; - return new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), time.getHours(), time.getMinutes(), time.getSeconds(), time.getMilliseconds())); - }; - dateutil.clone = function (date) { - var dolly = new Date(date.getTime()); - return dolly; - }; - dateutil.cloneDates = function (dates) { - var clones = []; - for (var i = 0; i < dates.length; i++) { - clones.push(dateutil.clone(dates[i])); - } - return clones; - }; - /** - * Sorts an array of Date or dateutil.Time objects - */ - dateutil.sort = function (dates) { - dates.sort(function (a, b) { - return a.getTime() - b.getTime(); - }); - }; - dateutil.timeToUntilString = function (time, utc) { - if (utc === void 0) { utc = true; } - var date = new Date(time); - return [ - Object(helpers["h" /* padStart */])(date.getUTCFullYear().toString(), 4, '0'), - Object(helpers["h" /* padStart */])(date.getUTCMonth() + 1, 2, '0'), - Object(helpers["h" /* padStart */])(date.getUTCDate(), 2, '0'), - 'T', - Object(helpers["h" /* padStart */])(date.getUTCHours(), 2, '0'), - Object(helpers["h" /* padStart */])(date.getUTCMinutes(), 2, '0'), - Object(helpers["h" /* padStart */])(date.getUTCSeconds(), 2, '0'), - utc ? 'Z' : '' - ].join(''); - }; - dateutil.untilStringToDate = function (until) { - var re = /^(\d{4})(\d{2})(\d{2})(T(\d{2})(\d{2})(\d{2})Z?)?$/; - var bits = re.exec(until); - if (!bits) - throw new Error("Invalid UNTIL value: " + until); - return new Date(Date.UTC(parseInt(bits[1], 10), parseInt(bits[2], 10) - 1, parseInt(bits[3], 10), parseInt(bits[5], 10) || 0, parseInt(bits[6], 10) || 0, parseInt(bits[7], 10) || 0)); - }; -})(dateutil_dateutil || (dateutil_dateutil = {})); -/* harmony default export */ var src_dateutil = (dateutil_dateutil); - -// CONCATENATED MODULE: ./src/iterresult.ts -/** - * This class helps us to emulate python's generators, sorta. - */ -var IterResult = /** @class */ (function () { - function IterResult(method, args) { - this.minDate = null; - this.maxDate = null; - this._result = []; - this.total = 0; - this.method = method; - this.args = args; - if (method === 'between') { - this.maxDate = args.inc - ? args.before - : new Date(args.before.getTime() - 1); - this.minDate = args.inc ? args.after : new Date(args.after.getTime() + 1); - } - else if (method === 'before') { - this.maxDate = args.inc ? args.dt : new Date(args.dt.getTime() - 1); - } - else if (method === 'after') { - this.minDate = args.inc ? args.dt : new Date(args.dt.getTime() + 1); - } - } - /** - * Possibly adds a date into the result. - * - * @param {Date} date - the date isn't necessarly added to the result - * list (if it is too late/too early) - * @return {Boolean} true if it makes sense to continue the iteration - * false if we're done. - */ - IterResult.prototype.accept = function (date) { - ++this.total; - var tooEarly = this.minDate && date < this.minDate; - var tooLate = this.maxDate && date > this.maxDate; - if (this.method === 'between') { - if (tooEarly) - return true; - if (tooLate) - return false; - } - else if (this.method === 'before') { - if (tooLate) - return false; - } - else if (this.method === 'after') { - if (tooEarly) - return true; - this.add(date); - return false; - } - return this.add(date); - }; - /** - * - * @param {Date} date that is part of the result. - * @return {Boolean} whether we are interested in more values. - */ - IterResult.prototype.add = function (date) { - this._result.push(date); - return true; - }; - /** - * 'before' and 'after' return only one date, whereas 'all' - * and 'between' an array. - * @return {Date,Array?} - */ - IterResult.prototype.getValue = function () { - var res = this._result; - switch (this.method) { - case 'all': - case 'between': - return res; - case 'before': - case 'after': - default: - return (res.length ? res[res.length - 1] : null); - } - }; - IterResult.prototype.clone = function () { - return new IterResult(this.method, this.args); - }; - return IterResult; -}()); -/* harmony default export */ var iterresult = (IterResult); - -// CONCATENATED MODULE: ./node_modules/tslib/tslib.es6.js -/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. All rights reserved. -Licensed under the Apache License, Version 2.0 (the "License"); you may not use -this file except in compliance with the License. You may obtain a copy of the -License at http://www.apache.org/licenses/LICENSE-2.0 - -THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED -WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, -MERCHANTABLITY OR NON-INFRINGEMENT. - -See the Apache Version 2.0 License for specific language governing permissions -and limitations under the License. -***************************************************************************** */ -/* global Reflect, Promise */ - -var extendStatics = function(d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return extendStatics(d, b); -}; - -function __extends(d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -} - -var __assign = function() { - __assign = Object.assign || function __assign(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - } - return __assign.apply(this, arguments); -} - -function __rest(s, e) { - var t = {}; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) - t[p] = s[p]; - if (s != null && typeof Object.getOwnPropertySymbols === "function") - for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0) - t[p[i]] = s[p[i]]; - return t; -} - -function __decorate(decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -} - -function __param(paramIndex, decorator) { - return function (target, key) { decorator(target, key, paramIndex); } -} - -function __metadata(metadataKey, metadataValue) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); -} - -function __awaiter(thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -} - -function __generator(thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -} - -function __exportStar(m, exports) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; -} - -function __values(o) { - var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0; - if (m) return m.call(o); - return { - next: function () { - if (o && i >= o.length) o = void 0; - return { value: o && o[i++], done: !o }; - } - }; -} - -function __read(o, n) { - var m = typeof Symbol === "function" && o[Symbol.iterator]; - if (!m) return o; - var i = m.call(o), r, ar = [], e; - try { - while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); - } - catch (error) { e = { error: error }; } - finally { - try { - if (r && !r.done && (m = i["return"])) m.call(i); - } - finally { if (e) throw e.error; } - } - return ar; -} - -function __spread() { - for (var ar = [], i = 0; i < arguments.length; i++) - ar = ar.concat(__read(arguments[i])); - return ar; -} - -function __await(v) { - return this instanceof __await ? (this.v = v, this) : new __await(v); -} - -function __asyncGenerator(thisArg, _arguments, generator) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var g = generator.apply(thisArg, _arguments || []), i, q = []; - return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; - function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } - function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } - function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } - function fulfill(value) { resume("next", value); } - function reject(value) { resume("throw", value); } - function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } -} - -function __asyncDelegator(o) { - var i, p; - return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; - function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; } -} - -function __asyncValues(o) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var m = o[Symbol.asyncIterator], i; - return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); - function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } - function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } -} - -function __makeTemplateObject(cooked, raw) { - if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } - return cooked; -}; - -function __importStar(mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; - result.default = mod; - return result; -} - -function __importDefault(mod) { - return (mod && mod.__esModule) ? mod : { default: mod }; -} - -// CONCATENATED MODULE: ./src/callbackiterresult.ts - - -/** - * IterResult subclass that calls a callback function on each add, - * and stops iterating when the callback returns false. - */ -var callbackiterresult_CallbackIterResult = /** @class */ (function (_super) { - __extends(CallbackIterResult, _super); - function CallbackIterResult(method, args, iterator) { - var _this = _super.call(this, method, args) || this; - _this.iterator = iterator; - return _this; - } - CallbackIterResult.prototype.add = function (date) { - if (this.iterator(date, this._result.length)) { - this._result.push(date); - return true; - } - return false; - }; - return CallbackIterResult; -}(iterresult)); -/* harmony default export */ var callbackiterresult = (callbackiterresult_CallbackIterResult); - -// CONCATENATED MODULE: ./src/types.ts -var Frequency; -(function (Frequency) { - Frequency[Frequency["YEARLY"] = 0] = "YEARLY"; - Frequency[Frequency["MONTHLY"] = 1] = "MONTHLY"; - Frequency[Frequency["WEEKLY"] = 2] = "WEEKLY"; - Frequency[Frequency["DAILY"] = 3] = "DAILY"; - Frequency[Frequency["HOURLY"] = 4] = "HOURLY"; - Frequency[Frequency["MINUTELY"] = 5] = "MINUTELY"; - Frequency[Frequency["SECONDLY"] = 6] = "SECONDLY"; -})(Frequency || (Frequency = {})); -function freqIsDailyOrGreater(freq) { - return freq < Frequency.HOURLY; -} - -// CONCATENATED MODULE: ./src/weekday.ts -// ============================================================================= -// Weekday -// ============================================================================= -var WDAYS = ['MO', 'TU', 'WE', 'TH', 'FR', 'SA', 'SU']; -var Weekday = /** @class */ (function () { - function Weekday(weekday, n) { - if (n === 0) - throw new Error("Can't create weekday with n == 0"); - this.weekday = weekday; - this.n = n; - } - // __call__ - Cannot call the object directly, do it through - // e.g. RRule.TH.nth(-1) instead, - Weekday.prototype.nth = function (n) { - return this.n === n ? this : new Weekday(this.weekday, n); - }; - // __eq__ - Weekday.prototype.equals = function (other) { - return this.weekday === other.weekday && this.n === other.n; - }; - // __repr__ - Weekday.prototype.toString = function () { - var s = WDAYS[this.weekday]; - if (this.n) - s = (this.n > 0 ? '+' : '') + String(this.n) + s; - return s; - }; - Weekday.prototype.getJsWeekday = function () { - return this.weekday === 6 ? 0 : this.weekday + 1; - }; - return Weekday; -}()); - - -// CONCATENATED MODULE: ./src/datetime.ts - - - - -var Time = /** @class */ (function () { - function Time(hour, minute, second, millisecond) { - this.hour = hour; - this.minute = minute; - this.second = second; - this.millisecond = millisecond || 0; - } - Time.prototype.getHours = function () { - return this.hour; - }; - Time.prototype.getMinutes = function () { - return this.minute; - }; - Time.prototype.getSeconds = function () { - return this.second; - }; - Time.prototype.getMilliseconds = function () { - return this.millisecond; - }; - Time.prototype.getTime = function () { - return ((this.hour * 60 * 60 + this.minute * 60 + this.second) * 1000 + - this.millisecond); - }; - return Time; -}()); - -var datetime_DateTime = /** @class */ (function (_super) { - __extends(DateTime, _super); - function DateTime(year, month, day, hour, minute, second, millisecond) { - var _this = _super.call(this, hour, minute, second, millisecond) || this; - _this.year = year; - _this.month = month; - _this.day = day; - return _this; - } - DateTime.fromDate = function (date) { - return new this(date.getUTCFullYear(), date.getUTCMonth() + 1, date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.valueOf() % 1000); - }; - DateTime.prototype.getWeekday = function () { - return dateutil_dateutil.getWeekday(new Date(this.getTime())); - }; - DateTime.prototype.getTime = function () { - return new Date(Date.UTC(this.year, this.month - 1, this.day, this.hour, this.minute, this.second, this.millisecond)).getTime(); - }; - DateTime.prototype.getDay = function () { - return this.day; - }; - DateTime.prototype.getMonth = function () { - return this.month; - }; - DateTime.prototype.getYear = function () { - return this.year; - }; - DateTime.prototype.addYears = function (years) { - this.year += years; - }; - DateTime.prototype.addMonths = function (months) { - this.month += months; - if (this.month > 12) { - var yearDiv = Math.floor(this.month / 12); - var monthMod = Object(helpers["i" /* pymod */])(this.month, 12); - this.month = monthMod; - this.year += yearDiv; - if (this.month === 0) { - this.month = 12; - --this.year; - } - } - }; - DateTime.prototype.addWeekly = function (days, wkst) { - if (wkst > this.getWeekday()) { - this.day += -(this.getWeekday() + 1 + (6 - wkst)) + days * 7; - } - else { - this.day += -(this.getWeekday() - wkst) + days * 7; - } - this.fixDay(); - }; - DateTime.prototype.addDaily = function (days) { - this.day += days; - this.fixDay(); - }; - DateTime.prototype.addHours = function (hours, filtered, byhour) { - if (filtered) { - // Jump to one iteration before next day - this.hour += Math.floor((23 - this.hour) / hours) * hours; - } - while (true) { - this.hour += hours; - var _a = Object(helpers["a" /* divmod */])(this.hour, 24), dayDiv = _a.div, hourMod = _a.mod; - if (dayDiv) { - this.hour = hourMod; - this.addDaily(dayDiv); - } - if (Object(helpers["b" /* empty */])(byhour) || Object(helpers["c" /* includes */])(byhour, this.hour)) - break; - } - }; - DateTime.prototype.addMinutes = function (minutes, filtered, byhour, byminute) { - if (filtered) { - // Jump to one iteration before next day - this.minute += - Math.floor((1439 - (this.hour * 60 + this.minute)) / minutes) * minutes; - } - while (true) { - this.minute += minutes; - var _a = Object(helpers["a" /* divmod */])(this.minute, 60), hourDiv = _a.div, minuteMod = _a.mod; - if (hourDiv) { - this.minute = minuteMod; - this.addHours(hourDiv, false, byhour); - } - if ((Object(helpers["b" /* empty */])(byhour) || Object(helpers["c" /* includes */])(byhour, this.hour)) && - (Object(helpers["b" /* empty */])(byminute) || Object(helpers["c" /* includes */])(byminute, this.minute))) { - break; - } - } - }; - DateTime.prototype.addSeconds = function (seconds, filtered, byhour, byminute, bysecond) { - if (filtered) { - // Jump to one iteration before next day - this.second += - Math.floor((86399 - (this.hour * 3600 + this.minute * 60 + this.second)) / seconds) * seconds; - } - while (true) { - this.second += seconds; - var _a = Object(helpers["a" /* divmod */])(this.second, 60), minuteDiv = _a.div, secondMod = _a.mod; - if (minuteDiv) { - this.second = secondMod; - this.addMinutes(minuteDiv, false, byhour, byminute); - } - if ((Object(helpers["b" /* empty */])(byhour) || Object(helpers["c" /* includes */])(byhour, this.hour)) && - (Object(helpers["b" /* empty */])(byminute) || Object(helpers["c" /* includes */])(byminute, this.minute)) && - (Object(helpers["b" /* empty */])(bysecond) || Object(helpers["c" /* includes */])(bysecond, this.second))) { - break; - } - } - }; - DateTime.prototype.fixDay = function () { - if (this.day <= 28) { - return; - } - var daysinmonth = dateutil_dateutil.monthRange(this.year, this.month - 1)[1]; - if (this.day <= daysinmonth) { - return; - } - while (this.day > daysinmonth) { - this.day -= daysinmonth; - ++this.month; - if (this.month === 13) { - this.month = 1; - ++this.year; - if (this.year > dateutil_dateutil.MAXYEAR) { - return; - } - } - daysinmonth = dateutil_dateutil.monthRange(this.year, this.month - 1)[1]; - } - }; - DateTime.prototype.add = function (options, filtered) { - var freq = options.freq, interval = options.interval, wkst = options.wkst, byhour = options.byhour, byminute = options.byminute, bysecond = options.bysecond; - switch (freq) { - case Frequency.YEARLY: return this.addYears(interval); - case Frequency.MONTHLY: return this.addMonths(interval); - case Frequency.WEEKLY: return this.addWeekly(interval, wkst); - case Frequency.DAILY: return this.addDaily(interval); - case Frequency.HOURLY: return this.addHours(interval, filtered, byhour); - case Frequency.MINUTELY: return this.addMinutes(interval, filtered, byhour, byminute); - case Frequency.SECONDLY: return this.addSeconds(interval, filtered, byhour, byminute, bysecond); - } - }; - return DateTime; -}(Time)); - - -// CONCATENATED MODULE: ./src/parseoptions.ts - - - - - - -function initializeOptions(options) { - var invalid = []; - var keys = Object.keys(options); - var initializedOptions = {}; - // Shallow copy for options and origOptions and check for invalid - keys.forEach(function (key) { - var value = options[key]; - initializedOptions[key] = value; - if (!Object(helpers["c" /* includes */])(rrule_defaultKeys, key)) - invalid.push(key); - if (src_dateutil.isDate(value) && !src_dateutil.isValidDate(value)) - invalid.push(key); - }); - if (invalid.length) { - throw new Error('Invalid options: ' + invalid.join(', ')); - } - return initializedOptions; -} -function parseOptions(options) { - var opts = initializeOptions(options); - var keys = Object.keys(options); - // Merge in default options - rrule_defaultKeys.forEach(function (key) { - if (!Object(helpers["c" /* includes */])(keys, key) || !Object(helpers["f" /* isPresent */])(opts[key])) - opts[key] = DEFAULT_OPTIONS[key]; - }); - if (Object(helpers["f" /* isPresent */])(opts.byeaster)) - opts.freq = src_rrule.YEARLY; - if (!(Object(helpers["f" /* isPresent */])(opts.freq) && src_rrule.FREQUENCIES[opts.freq])) { - throw new Error("Invalid frequency: " + opts.freq + " " + options.freq); - } - if (!opts.dtstart) - opts.dtstart = new Date(new Date().setMilliseconds(0)); - if (!Object(helpers["f" /* isPresent */])(opts.wkst)) { - opts.wkst = src_rrule.MO.weekday; - } - else if (Object(helpers["e" /* isNumber */])(opts.wkst)) { - // cool, just keep it like that - } - else { - opts.wkst = opts.wkst.weekday; - } - if (Object(helpers["f" /* isPresent */])(opts.bysetpos)) { - if (Object(helpers["e" /* isNumber */])(opts.bysetpos)) - opts.bysetpos = [opts.bysetpos]; - for (var i = 0; i < opts.bysetpos.length; i++) { - var v = opts.bysetpos[i]; - if (v === 0 || !(v >= -366 && v <= 366)) { - throw new Error('bysetpos must be between 1 and 366,' + ' or between -366 and -1'); - } - } - } - if (!(Boolean(opts.byweekno) || - Object(helpers["g" /* notEmpty */])(opts.byweekno) || - Object(helpers["g" /* notEmpty */])(opts.byyearday) || - Boolean(opts.bymonthday) || - Object(helpers["g" /* notEmpty */])(opts.bymonthday) || - Object(helpers["f" /* isPresent */])(opts.byweekday) || - Object(helpers["f" /* isPresent */])(opts.byeaster))) { - switch (opts.freq) { - case src_rrule.YEARLY: - if (!opts.bymonth) - opts.bymonth = opts.dtstart.getUTCMonth() + 1; - opts.bymonthday = opts.dtstart.getUTCDate(); - break; - case src_rrule.MONTHLY: - opts.bymonthday = opts.dtstart.getUTCDate(); - break; - case src_rrule.WEEKLY: - opts.byweekday = [src_dateutil.getWeekday(opts.dtstart)]; - break; - } - } - // bymonth - if (Object(helpers["f" /* isPresent */])(opts.bymonth) && !Object(helpers["d" /* isArray */])(opts.bymonth)) { - opts.bymonth = [opts.bymonth]; - } - // byyearday - if (Object(helpers["f" /* isPresent */])(opts.byyearday) && - !Object(helpers["d" /* isArray */])(opts.byyearday) && - Object(helpers["e" /* isNumber */])(opts.byyearday)) { - opts.byyearday = [opts.byyearday]; - } - // bymonthday - if (!Object(helpers["f" /* isPresent */])(opts.bymonthday)) { - opts.bymonthday = []; - opts.bynmonthday = []; - } - else if (Object(helpers["d" /* isArray */])(opts.bymonthday)) { - var bymonthday = []; - var bynmonthday = []; - for (var i = 0; i < opts.bymonthday.length; i++) { - var v = opts.bymonthday[i]; - if (v > 0) { - bymonthday.push(v); - } - else if (v < 0) { - bynmonthday.push(v); - } - } - opts.bymonthday = bymonthday; - opts.bynmonthday = bynmonthday; - } - else if (opts.bymonthday < 0) { - opts.bynmonthday = [opts.bymonthday]; - opts.bymonthday = []; - } - else { - opts.bynmonthday = []; - opts.bymonthday = [opts.bymonthday]; - } - // byweekno - if (Object(helpers["f" /* isPresent */])(opts.byweekno) && !Object(helpers["d" /* isArray */])(opts.byweekno)) { - opts.byweekno = [opts.byweekno]; - } - // byweekday / bynweekday - if (!Object(helpers["f" /* isPresent */])(opts.byweekday)) { - opts.bynweekday = null; - } - else if (Object(helpers["e" /* isNumber */])(opts.byweekday)) { - opts.byweekday = [opts.byweekday]; - opts.bynweekday = null; - } - else if (opts.byweekday instanceof Weekday) { - if (!opts.byweekday.n || opts.freq > src_rrule.MONTHLY) { - opts.byweekday = [opts.byweekday.weekday]; - opts.bynweekday = null; - } - else { - opts.bynweekday = [[opts.byweekday.weekday, opts.byweekday.n]]; - opts.byweekday = null; - } - } - else { - var byweekday = []; - var bynweekday = []; - for (var i = 0; i < opts.byweekday.length; i++) { - var wday = opts.byweekday[i]; - if (Object(helpers["e" /* isNumber */])(wday)) { - byweekday.push(wday); - continue; - } - var wd = wday; - if (!wd.n || opts.freq > src_rrule.MONTHLY) { - byweekday.push(wd.weekday); - } - else { - bynweekday.push([wd.weekday, wd.n]); - } - } - opts.byweekday = Object(helpers["g" /* notEmpty */])(byweekday) ? byweekday : null; - opts.bynweekday = Object(helpers["g" /* notEmpty */])(bynweekday) ? bynweekday : null; - } - // byhour - if (!Object(helpers["f" /* isPresent */])(opts.byhour)) { - opts.byhour = - opts.freq < src_rrule.HOURLY ? [opts.dtstart.getUTCHours()] : null; - } - else if (Object(helpers["e" /* isNumber */])(opts.byhour)) { - opts.byhour = [opts.byhour]; - } - // byminute - if (!Object(helpers["f" /* isPresent */])(opts.byminute)) { - opts.byminute = - opts.freq < src_rrule.MINUTELY ? [opts.dtstart.getUTCMinutes()] : null; - } - else if (Object(helpers["e" /* isNumber */])(opts.byminute)) { - opts.byminute = [opts.byminute]; - } - // bysecond - if (!Object(helpers["f" /* isPresent */])(opts.bysecond)) { - opts.bysecond = - opts.freq < src_rrule.SECONDLY ? [opts.dtstart.getUTCSeconds()] : null; - } - else if (Object(helpers["e" /* isNumber */])(opts.bysecond)) { - opts.bysecond = [opts.bysecond]; - } - return { parsedOptions: opts }; -} -function buildTimeset(opts) { - var millisecondModulo = opts.dtstart.getTime() % 1000; - if (!freqIsDailyOrGreater(opts.freq)) { - return []; - } - var timeset = []; - opts.byhour.forEach(function (hour) { - opts.byminute.forEach(function (minute) { - opts.bysecond.forEach(function (second) { - timeset.push(new Time(hour, minute, second, millisecondModulo)); - }); - }); - }); - return timeset; -} - -// CONCATENATED MODULE: ./src/parsestring.ts - - - - - -function parseString(rfcString) { - var options = rfcString.split('\n').map(parseLine).filter(function (x) { return x !== null; }); - return __assign({}, options[0], options[1]); -} -function parseDtstart(line) { - var options = {}; - var dtstartWithZone = /DTSTART(?:;TZID=([^:=]+?))?(?::|=)([^;\s]+)/i.exec(line); - if (!dtstartWithZone) { - return options; - } - var _ = dtstartWithZone[0], tzid = dtstartWithZone[1], dtstart = dtstartWithZone[2]; - if (tzid) { - options.tzid = tzid; - } - options.dtstart = src_dateutil.untilStringToDate(dtstart); - return options; -} -function parseLine(rfcString) { - rfcString = rfcString.replace(/^\s+|\s+$/, ''); - if (!rfcString.length) - return null; - var header = /^([A-Z]+?)[:;]/.exec(rfcString.toUpperCase()); - if (!header) { - return parseRrule(rfcString); - } - var _ = header[0], key = header[1]; - switch (key.toUpperCase()) { - case 'RRULE': - case 'EXRULE': - return parseRrule(rfcString); - case 'DTSTART': - return parseDtstart(rfcString); - default: - throw new Error("Unsupported RFC prop " + key + " in " + rfcString); - } -} -function parseRrule(line) { - var strippedLine = line.replace(/^RRULE:/i, ''); - var options = parseDtstart(strippedLine); - var attrs = line.replace(/^(?:RRULE|EXRULE):/i, '').split(';'); - attrs.forEach(function (attr) { - var _a = attr.split('='), key = _a[0], value = _a[1]; - switch (key.toUpperCase()) { - case 'FREQ': - options.freq = Frequency[value.toUpperCase()]; - break; - case 'WKST': - options.wkst = Days[value.toUpperCase()]; - break; - case 'COUNT': - case 'INTERVAL': - case 'BYSETPOS': - case 'BYMONTH': - case 'BYMONTHDAY': - case 'BYYEARDAY': - case 'BYWEEKNO': - case 'BYHOUR': - case 'BYMINUTE': - case 'BYSECOND': - var num = parseNumber(value); - var optionKey = key.toLowerCase(); - // @ts-ignore - options[optionKey] = num; - break; - case 'BYWEEKDAY': - case 'BYDAY': - options.byweekday = parseWeekday(value); - break; - case 'DTSTART': - case 'TZID': - // for backwards compatibility - var dtstart = parseDtstart(line); - options.tzid = dtstart.tzid; - options.dtstart = dtstart.dtstart; - break; - case 'UNTIL': - options.until = src_dateutil.untilStringToDate(value); - break; - case 'BYEASTER': - options.byeaster = Number(value); - break; - default: - throw new Error("Unknown RRULE property '" + key + "'"); - } - }); - return options; -} -function parseNumber(value) { - if (value.indexOf(',') !== -1) { - var values = value.split(','); - return values.map(parseIndividualNumber); - } - return parseIndividualNumber(value); -} -function parseIndividualNumber(value) { - if (/^[+-]?\d+$/.test(value)) { - return Number(value); - } - return value; -} -function parseWeekday(value) { - var days = value.split(','); - return days.map(function (day) { - if (day.length === 2) { - // MO, TU, ... - return Days[day]; // wday instanceof Weekday - } - // -1MO, +3FR, 1SO, 13TU ... - var parts = day.match(/^([+-]?\d{1,2})([A-Z]{2})$/); - var n = Number(parts[1]); - var wdaypart = parts[2]; - var wday = Days[wdaypart].weekday; - return new Weekday(wday, n); - }); -} - -// EXTERNAL MODULE: external "luxon" -var external_luxon_ = __webpack_require__(2); - -// CONCATENATED MODULE: ./src/datewithzone.ts - - -var datewithzone_DateWithZone = /** @class */ (function () { - function DateWithZone(date, tzid) { - this.date = date; - this.tzid = tzid; - } - Object.defineProperty(DateWithZone.prototype, "isUTC", { - get: function () { - return !this.tzid || this.tzid.toUpperCase() === 'UTC'; - }, - enumerable: true, - configurable: true - }); - DateWithZone.prototype.toString = function () { - var datestr = src_dateutil.timeToUntilString(this.date.getTime(), this.isUTC); - if (!this.isUTC) { - return ";TZID=" + this.tzid + ":" + datestr; - } - return ":" + datestr; - }; - DateWithZone.prototype.getTime = function () { - return this.date.getTime(); - }; - DateWithZone.prototype.rezonedDate = function () { - if (this.isUTC) { - return this.date; - } - try { - var datetime = external_luxon_["DateTime"] - .fromJSDate(this.date); - var rezoned = datetime.setZone(this.tzid, { keepLocalTime: true }); - return rezoned.toJSDate(); - } - catch (e) { - if (e instanceof TypeError) { - console.error('Using TZID without Luxon available is unsupported. Returned times are in UTC, not the requested time zone'); - } - return this.date; - } - }; - return DateWithZone; -}()); - - -// CONCATENATED MODULE: ./src/optionstostring.ts - - - - - -function optionsToString(options) { - var rrule = []; - var dtstart = ''; - var keys = Object.keys(options); - var defaultKeys = Object.keys(DEFAULT_OPTIONS); - for (var i = 0; i < keys.length; i++) { - if (keys[i] === 'tzid') - continue; - if (!Object(helpers["c" /* includes */])(defaultKeys, keys[i])) - continue; - var key = keys[i].toUpperCase(); - var value = options[keys[i]]; - var outValue = ''; - if (!Object(helpers["f" /* isPresent */])(value) || (Object(helpers["d" /* isArray */])(value) && !value.length)) - continue; - switch (key) { - case 'FREQ': - outValue = src_rrule.FREQUENCIES[options.freq]; - break; - case 'WKST': - if (Object(helpers["e" /* isNumber */])(value)) { - outValue = new Weekday(value).toString(); - } - else { - outValue = value.toString(); - } - break; - case 'BYWEEKDAY': - /* - NOTE: BYWEEKDAY is a special case. - RRule() deconstructs the rule.options.byweekday array - into an array of Weekday arguments. - On the other hand, rule.origOptions is an array of Weekdays. - We need to handle both cases here. - It might be worth change RRule to keep the Weekdays. - - Also, BYWEEKDAY (used by RRule) vs. BYDAY (RFC) - - */ - key = 'BYDAY'; - outValue = Object(helpers["m" /* toArray */])(value).map(function (wday) { - if (wday instanceof Weekday) { - return wday; - } - if (Object(helpers["d" /* isArray */])(wday)) { - return new Weekday(wday[0], wday[1]); - } - return new Weekday(wday); - }).toString(); - break; - case 'DTSTART': - dtstart = buildDtstart(value, options.tzid); - break; - case 'UNTIL': - outValue = src_dateutil.timeToUntilString(value, !options.tzid); - break; - default: - if (Object(helpers["d" /* isArray */])(value)) { - var strValues = []; - for (var j = 0; j < value.length; j++) { - strValues[j] = String(value[j]); - } - outValue = strValues.toString(); - } - else { - outValue = String(value); - } - } - if (outValue) { - rrule.push([key, outValue]); - } - } - var rules = rrule.map(function (_a) { - var key = _a[0], value = _a[1]; - return key + "=" + value.toString(); - }).join(';'); - var ruleString = ''; - if (rules !== '') { - ruleString = "RRULE:" + rules; - } - return [dtstart, ruleString].filter(function (x) { return !!x; }).join('\n'); -} -function buildDtstart(dtstart, tzid) { - if (!dtstart) { - return ''; - } - return 'DTSTART' + new datewithzone_DateWithZone(new Date(dtstart), tzid).toString(); -} - -// CONCATENATED MODULE: ./src/cache.ts - - - -var cache_Cache = /** @class */ (function () { - function Cache() { - this.all = false; - this.before = []; - this.after = []; - this.between = []; - } - /** - * @param {String} what - all/before/after/between - * @param {Array,Date} value - an array of dates, one date, or null - * @param {Object?} args - _iter arguments - */ - Cache.prototype._cacheAdd = function (what, value, args) { - if (value) { - value = - value instanceof Date - ? src_dateutil.clone(value) - : src_dateutil.cloneDates(value); - } - if (what === 'all') { - this.all = value; - } - else { - args._value = value; - this[what].push(args); - } - }; - /** - * @return false - not in the cache - * null - cached, but zero occurrences (before/after) - * Date - cached (before/after) - * [] - cached, but zero occurrences (all/between) - * [Date1, DateN] - cached (all/between) - */ - Cache.prototype._cacheGet = function (what, args) { - var cached = false; - var argsKeys = args ? Object.keys(args) : []; - var findCacheDiff = function (item) { - for (var i = 0; i < argsKeys.length; i++) { - var key = argsKeys[i]; - if (String(args[key]) !== String(item[key])) { - return true; - } - } - return false; - }; - var cachedObject = this[what]; - if (what === 'all') { - cached = this.all; - } - else if (Object(helpers["d" /* isArray */])(cachedObject)) { - // Let's see whether we've already called the - // 'what' method with the same 'args' - for (var i = 0; i < cachedObject.length; i++) { - var item = cachedObject[i]; - if (argsKeys.length && findCacheDiff(item)) - continue; - cached = item._value; - break; - } - } - if (!cached && this.all) { - // Not in the cache, but we already know all the occurrences, - // so we can find the correct dates from the cached ones. - var iterResult = new iterresult(what, args); - for (var i = 0; i < this.all.length; i++) { - if (!iterResult.accept(this.all[i])) - break; - } - cached = iterResult.getValue(); - this._cacheAdd(what, cached, args); - } - return Object(helpers["d" /* isArray */])(cached) - ? src_dateutil.cloneDates(cached) - : cached instanceof Date - ? src_dateutil.clone(cached) - : cached; - }; - return Cache; -}()); - - -// CONCATENATED MODULE: ./src/masks.ts - -// ============================================================================= -// Date masks -// ============================================================================= -// Every mask is 7 days longer to handle cross-year weekly periods. -var M365MASK = Object(helpers["k" /* repeat */])(1, 31).concat(Object(helpers["k" /* repeat */])(2, 28), Object(helpers["k" /* repeat */])(3, 31), Object(helpers["k" /* repeat */])(4, 30), Object(helpers["k" /* repeat */])(5, 31), Object(helpers["k" /* repeat */])(6, 30), Object(helpers["k" /* repeat */])(7, 31), Object(helpers["k" /* repeat */])(8, 31), Object(helpers["k" /* repeat */])(9, 30), Object(helpers["k" /* repeat */])(10, 31), Object(helpers["k" /* repeat */])(11, 30), Object(helpers["k" /* repeat */])(12, 31), Object(helpers["k" /* repeat */])(1, 7)); -var M366MASK = Object(helpers["k" /* repeat */])(1, 31).concat(Object(helpers["k" /* repeat */])(2, 29), Object(helpers["k" /* repeat */])(3, 31), Object(helpers["k" /* repeat */])(4, 30), Object(helpers["k" /* repeat */])(5, 31), Object(helpers["k" /* repeat */])(6, 30), Object(helpers["k" /* repeat */])(7, 31), Object(helpers["k" /* repeat */])(8, 31), Object(helpers["k" /* repeat */])(9, 30), Object(helpers["k" /* repeat */])(10, 31), Object(helpers["k" /* repeat */])(11, 30), Object(helpers["k" /* repeat */])(12, 31), Object(helpers["k" /* repeat */])(1, 7)); -var M28 = Object(helpers["j" /* range */])(1, 29); -var M29 = Object(helpers["j" /* range */])(1, 30); -var M30 = Object(helpers["j" /* range */])(1, 31); -var M31 = Object(helpers["j" /* range */])(1, 32); -var MDAY366MASK = M31.concat(M29, M31, M30, M31, M30, M31, M31, M30, M31, M30, M31, M31.slice(0, 7)); -var MDAY365MASK = M31.concat(M28, M31, M30, M31, M30, M31, M31, M30, M31, M30, M31, M31.slice(0, 7)); -var NM28 = Object(helpers["j" /* range */])(-28, 0); -var NM29 = Object(helpers["j" /* range */])(-29, 0); -var NM30 = Object(helpers["j" /* range */])(-30, 0); -var NM31 = Object(helpers["j" /* range */])(-31, 0); -var NMDAY366MASK = NM31.concat(NM29, NM31, NM30, NM31, NM30, NM31, NM31, NM30, NM31, NM30, NM31, NM31.slice(0, 7)); -var NMDAY365MASK = NM31.concat(NM28, NM31, NM30, NM31, NM30, NM31, NM31, NM30, NM31, NM30, NM31, NM31.slice(0, 7)); -var M366RANGE = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366]; -var M365RANGE = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365]; -var WDAYMASK = (function () { - var wdaymask = []; - for (var i = 0; i < 55; i++) - wdaymask = wdaymask.concat(Object(helpers["j" /* range */])(7)); - return wdaymask; -})(); - - -// CONCATENATED MODULE: ./src/iterinfo/yearinfo.ts - - - - -function rebuildYear(year, options) { - var firstyday = new Date(Date.UTC(year, 0, 1)); - var yearlen = src_dateutil.isLeapYear(year) ? 366 : 365; - var nextyearlen = src_dateutil.isLeapYear(year + 1) ? 366 : 365; - var yearordinal = src_dateutil.toOrdinal(firstyday); - var yearweekday = src_dateutil.getWeekday(firstyday); - var result = __assign({ yearlen: yearlen, - nextyearlen: nextyearlen, - yearordinal: yearordinal, - yearweekday: yearweekday }, baseYearMasks(year), { wnomask: null }); - if (Object(helpers["b" /* empty */])(options.byweekno)) { - return result; - } - result.wnomask = Object(helpers["k" /* repeat */])(0, yearlen + 7); - var firstwkst; - var wyearlen; - var no1wkst = firstwkst = Object(helpers["i" /* pymod */])(7 - yearweekday + options.wkst, 7); - if (no1wkst >= 4) { - no1wkst = 0; - // Number of days in the year, plus the days we got - // from last year. - wyearlen = - result.yearlen + Object(helpers["i" /* pymod */])(yearweekday - options.wkst, 7); - } - else { - // Number of days in the year, minus the days we - // left in last year. - wyearlen = yearlen - no1wkst; - } - var div = Math.floor(wyearlen / 7); - var mod = Object(helpers["i" /* pymod */])(wyearlen, 7); - var numweeks = Math.floor(div + mod / 4); - for (var j = 0; j < options.byweekno.length; j++) { - var n = options.byweekno[j]; - if (n < 0) { - n += numweeks + 1; - } - if (!(n > 0 && n <= numweeks)) { - continue; - } - var i = void 0; - if (n > 1) { - i = no1wkst + (n - 1) * 7; - if (no1wkst !== firstwkst) { - i -= 7 - firstwkst; - } - } - else { - i = no1wkst; - } - for (var k = 0; k < 7; k++) { - result.wnomask[i] = 1; - i++; - if (result.wdaymask[i] === options.wkst) - break; - } - } - if (Object(helpers["c" /* includes */])(options.byweekno, 1)) { - // Check week number 1 of next year as well - // orig-TODO : Check -numweeks for next year. - var i = no1wkst + numweeks * 7; - if (no1wkst !== firstwkst) - i -= 7 - firstwkst; - if (i < yearlen) { - // If week starts in next year, we - // don't care about it. - for (var j = 0; j < 7; j++) { - result.wnomask[i] = 1; - i += 1; - if (result.wdaymask[i] === options.wkst) - break; - } - } - } - if (no1wkst) { - // Check last week number of last year as - // well. If no1wkst is 0, either the year - // started on week start, or week number 1 - // got days from last year, so there are no - // days from last year's last week number in - // this year. - var lnumweeks = void 0; - if (!Object(helpers["c" /* includes */])(options.byweekno, -1)) { - var lyearweekday = src_dateutil.getWeekday(new Date(Date.UTC(year - 1, 0, 1))); - var lno1wkst = Object(helpers["i" /* pymod */])(7 - lyearweekday.valueOf() + options.wkst, 7); - var lyearlen = src_dateutil.isLeapYear(year - 1) ? 366 : 365; - var weekst = void 0; - if (lno1wkst >= 4) { - lno1wkst = 0; - weekst = lyearlen + Object(helpers["i" /* pymod */])(lyearweekday - options.wkst, 7); - } - else { - weekst = yearlen - no1wkst; - } - lnumweeks = Math.floor(52 + Object(helpers["i" /* pymod */])(weekst, 7) / 4); - } - else { - lnumweeks = -1; - } - if (Object(helpers["c" /* includes */])(options.byweekno, lnumweeks)) { - for (var i = 0; i < no1wkst; i++) - result.wnomask[i] = 1; - } - } - return result; -} -function baseYearMasks(year) { - var yearlen = src_dateutil.isLeapYear(year) ? 366 : 365; - var firstyday = new Date(Date.UTC(year, 0, 1)); - var wday = src_dateutil.getWeekday(firstyday); - if (yearlen === 365) { - return { - mmask: M365MASK, - mdaymask: MDAY365MASK, - nmdaymask: NMDAY365MASK, - wdaymask: WDAYMASK.slice(wday), - mrange: M365RANGE - }; - } - return { - mmask: M366MASK, - mdaymask: MDAY366MASK, - nmdaymask: NMDAY366MASK, - wdaymask: WDAYMASK.slice(wday), - mrange: M366RANGE - }; -} - -// CONCATENATED MODULE: ./src/iterinfo/monthinfo.ts - - -function rebuildMonth(year, month, yearlen, mrange, wdaymask, options) { - var result = { - lastyear: year, - lastmonth: month, - nwdaymask: [] - }; - var ranges = []; - if (options.freq === src_rrule.YEARLY) { - if (Object(helpers["b" /* empty */])(options.bymonth)) { - ranges = [[0, yearlen]]; - } - else { - for (var j = 0; j < options.bymonth.length; j++) { - month = options.bymonth[j]; - ranges.push(mrange.slice(month - 1, month + 1)); - } - } - } - else if (options.freq === src_rrule.MONTHLY) { - ranges = [mrange.slice(month - 1, month + 1)]; - } - if (Object(helpers["b" /* empty */])(ranges)) { - return result; - } - // Weekly frequency won't get here, so we may not - // care about cross-year weekly periods. - result.nwdaymask = Object(helpers["k" /* repeat */])(0, yearlen); - for (var j = 0; j < ranges.length; j++) { - var rang = ranges[j]; - var first = rang[0]; - var last = rang[1] - 1; - for (var k = 0; k < options.bynweekday.length; k++) { - var i = void 0; - var _a = options.bynweekday[k], wday = _a[0], n = _a[1]; - if (n < 0) { - i = last + (n + 1) * 7; - i -= Object(helpers["i" /* pymod */])(wdaymask[i] - wday, 7); - } - else { - i = first + (n - 1) * 7; - i += Object(helpers["i" /* pymod */])(7 - wdaymask[i] + wday, 7); - } - if (first <= i && i <= last) - result.nwdaymask[i] = 1; - } - } - return result; -} - -// CONCATENATED MODULE: ./src/iterinfo/easter.ts -function easter(y, offset) { - if (offset === void 0) { offset = 0; } - var a = y % 19; - var b = Math.floor(y / 100); - var c = y % 100; - var d = Math.floor(b / 4); - var e = b % 4; - var f = Math.floor((b + 8) / 25); - var g = Math.floor((b - f + 1) / 3); - var h = Math.floor(19 * a + b - d - g + 15) % 30; - var i = Math.floor(c / 4); - var k = c % 4; - var l = Math.floor(32 + 2 * e + 2 * i - h - k) % 7; - var m = Math.floor((a + 11 * h + 22 * l) / 451); - var month = Math.floor((h + l - 7 * m + 114) / 31); - var day = ((h + l - 7 * m + 114) % 31) + 1; - var date = Date.UTC(y, month - 1, day + offset); - var yearStart = Date.UTC(y, 0, 1); - return [Math.ceil((date - yearStart) / (1000 * 60 * 60 * 24))]; -} - -// CONCATENATED MODULE: ./src/iterinfo/index.ts - - - - - - - -// ============================================================================= -// Iterinfo -// ============================================================================= -var iterinfo_Iterinfo = /** @class */ (function () { - function Iterinfo(options) { - this.options = options; - } - Iterinfo.prototype.rebuild = function (year, month) { - var options = this.options; - if (year !== this.lastyear) { - this.yearinfo = rebuildYear(year, options); - } - if (Object(helpers["g" /* notEmpty */])(options.bynweekday) && - (month !== this.lastmonth || year !== this.lastyear)) { - var _a = this.yearinfo, yearlen = _a.yearlen, mrange = _a.mrange, wdaymask = _a.wdaymask; - this.monthinfo = rebuildMonth(year, month, yearlen, mrange, wdaymask, options); - } - if (Object(helpers["f" /* isPresent */])(options.byeaster)) { - this.eastermask = easter(year, options.byeaster); - } - }; - Object.defineProperty(Iterinfo.prototype, "lastyear", { - get: function () { - return this.monthinfo ? this.monthinfo.lastyear : null; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Iterinfo.prototype, "lastmonth", { - get: function () { - return this.monthinfo ? this.monthinfo.lastmonth : null; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Iterinfo.prototype, "yearlen", { - get: function () { - return this.yearinfo.yearlen; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Iterinfo.prototype, "yearordinal", { - get: function () { - return this.yearinfo.yearordinal; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Iterinfo.prototype, "mrange", { - get: function () { - return this.yearinfo.mrange; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Iterinfo.prototype, "wdaymask", { - get: function () { - return this.yearinfo.wdaymask; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Iterinfo.prototype, "mmask", { - get: function () { - return this.yearinfo.mmask; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Iterinfo.prototype, "wnomask", { - get: function () { - return this.yearinfo.wnomask; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Iterinfo.prototype, "nwdaymask", { - get: function () { - return this.monthinfo ? this.monthinfo.nwdaymask : []; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Iterinfo.prototype, "nextyearlen", { - get: function () { - return this.yearinfo.nextyearlen; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Iterinfo.prototype, "mdaymask", { - get: function () { - return this.yearinfo.mdaymask; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Iterinfo.prototype, "nmdaymask", { - get: function () { - return this.yearinfo.nmdaymask; - }, - enumerable: true, - configurable: true - }); - Iterinfo.prototype.ydayset = function () { - return [Object(helpers["j" /* range */])(this.yearlen), 0, this.yearlen]; - }; - Iterinfo.prototype.mdayset = function (_, month, __) { - var start = this.mrange[month - 1]; - var end = this.mrange[month]; - var set = Object(helpers["k" /* repeat */])(null, this.yearlen); - for (var i = start; i < end; i++) - set[i] = i; - return [set, start, end]; - }; - Iterinfo.prototype.wdayset = function (year, month, day) { - // We need to handle cross-year weeks here. - var set = Object(helpers["k" /* repeat */])(null, this.yearlen + 7); - var i = src_dateutil.toOrdinal(new Date(Date.UTC(year, month - 1, day))) - - this.yearordinal; - var start = i; - for (var j = 0; j < 7; j++) { - set[i] = i; - ++i; - if (this.wdaymask[i] === this.options.wkst) - break; - } - return [set, start, i]; - }; - Iterinfo.prototype.ddayset = function (year, month, day) { - var set = Object(helpers["k" /* repeat */])(null, this.yearlen); - var i = src_dateutil.toOrdinal(new Date(Date.UTC(year, month - 1, day))) - - this.yearordinal; - set[i] = i; - return [set, i, i + 1]; - }; - Iterinfo.prototype.htimeset = function (hour, _, second, millisecond) { - var _this = this; - var set = []; - this.options.byminute.forEach(function (minute) { - set = set.concat(_this.mtimeset(hour, minute, second, millisecond)); - }); - src_dateutil.sort(set); - return set; - }; - Iterinfo.prototype.mtimeset = function (hour, minute, _, millisecond) { - var set = this.options.bysecond.map(function (second) { - return new Time(hour, minute, second, millisecond); - }); - src_dateutil.sort(set); - return set; - }; - Iterinfo.prototype.stimeset = function (hour, minute, second, millisecond) { - return [new Time(hour, minute, second, millisecond)]; - }; - Iterinfo.prototype.getdayset = function (freq) { - switch (freq) { - case Frequency.YEARLY: return this.ydayset.bind(this); - case Frequency.MONTHLY: return this.mdayset.bind(this); - case Frequency.WEEKLY: return this.wdayset.bind(this); - case Frequency.DAILY: return this.ddayset.bind(this); - default: return this.ddayset.bind(this); - } - }; - Iterinfo.prototype.gettimeset = function (freq) { - switch (freq) { - case Frequency.HOURLY: return this.htimeset.bind(this); - case Frequency.MINUTELY: return this.mtimeset.bind(this); - case Frequency.SECONDLY: return this.stimeset.bind(this); - } - }; - return Iterinfo; -}()); -/* harmony default export */ var iterinfo = (iterinfo_Iterinfo); - -// CONCATENATED MODULE: ./src/iter/poslist.ts - - -function buildPoslist(bysetpos, timeset, start, end, ii, dayset) { - var poslist = []; - for (var j = 0; j < bysetpos.length; j++) { - var daypos = void 0; - var timepos = void 0; - var pos = bysetpos[j]; - if (pos < 0) { - daypos = Math.floor(pos / timeset.length); - timepos = Object(helpers["i" /* pymod */])(pos, timeset.length); - } - else { - daypos = Math.floor((pos - 1) / timeset.length); - timepos = Object(helpers["i" /* pymod */])(pos - 1, timeset.length); - } - var tmp = []; - for (var k = start; k < end; k++) { - var val = dayset[k]; - if (!Object(helpers["f" /* isPresent */])(val)) - continue; - tmp.push(val); - } - var i = void 0; - if (daypos < 0) { - i = tmp.slice(daypos)[0]; - } - else { - i = tmp[daypos]; - } - var time = timeset[timepos]; - var date = src_dateutil.fromOrdinal(ii.yearordinal + i); - var res = src_dateutil.combine(date, time); - // XXX: can this ever be in the array? - // - compare the actual date instead? - if (!Object(helpers["c" /* includes */])(poslist, res)) - poslist.push(res); - } - src_dateutil.sort(poslist); - return poslist; -} - -// CONCATENATED MODULE: ./src/iter/index.ts - - - - - - - - - -function iter(iterResult, options) { - var dtstart = options.dtstart, freq = options.freq, interval = options.interval, until = options.until, bysetpos = options.bysetpos; - var count = options.count; - if (count === 0 || interval === 0) { - return emitResult(iterResult); - } - var counterDate = datetime_DateTime.fromDate(dtstart); - var ii = new iterinfo(options); - ii.rebuild(counterDate.year, counterDate.month); - var timeset = makeTimeset(ii, counterDate, options); - while (true) { - var _a = ii.getdayset(freq)(counterDate.year, counterDate.month, counterDate.day), dayset = _a[0], start = _a[1], end = _a[2]; - var filtered = removeFilteredDays(dayset, start, end, ii, options); - if (Object(helpers["g" /* notEmpty */])(bysetpos)) { - var poslist = buildPoslist(bysetpos, timeset, start, end, ii, dayset); - for (var j = 0; j < poslist.length; j++) { - var res = poslist[j]; - if (until && res > until) { - return emitResult(iterResult); - } - if (res >= dtstart) { - var rezonedDate = rezoneIfNeeded(res, options); - if (!iterResult.accept(rezonedDate)) { - return emitResult(iterResult); - } - if (count) { - --count; - if (!count) { - return emitResult(iterResult); - } - } - } - } - } - else { - for (var j = start; j < end; j++) { - var currentDay = dayset[j]; - if (!Object(helpers["f" /* isPresent */])(currentDay)) { - continue; - } - var date = src_dateutil.fromOrdinal(ii.yearordinal + currentDay); - for (var k = 0; k < timeset.length; k++) { - var time = timeset[k]; - var res = src_dateutil.combine(date, time); - if (until && res > until) { - return emitResult(iterResult); - } - if (res >= dtstart) { - var rezonedDate = rezoneIfNeeded(res, options); - if (!iterResult.accept(rezonedDate)) { - return emitResult(iterResult); - } - if (count) { - --count; - if (!count) { - return emitResult(iterResult); - } - } - } - } - } - } - if (options.interval === 0) { - return emitResult(iterResult); - } - // Handle frequency and interval - counterDate.add(options, filtered); - if (counterDate.year > src_dateutil.MAXYEAR) { - return emitResult(iterResult); - } - if (!freqIsDailyOrGreater(freq)) { - timeset = ii.gettimeset(freq)(counterDate.hour, counterDate.minute, counterDate.second, 0); - } - ii.rebuild(counterDate.year, counterDate.month); - } -} -function isFiltered(ii, currentDay, options) { - var bymonth = options.bymonth, byweekno = options.byweekno, byweekday = options.byweekday, byeaster = options.byeaster, bymonthday = options.bymonthday, bynmonthday = options.bynmonthday, byyearday = options.byyearday; - return ((Object(helpers["g" /* notEmpty */])(bymonth) && !Object(helpers["c" /* includes */])(bymonth, ii.mmask[currentDay])) || - (Object(helpers["g" /* notEmpty */])(byweekno) && !ii.wnomask[currentDay]) || - (Object(helpers["g" /* notEmpty */])(byweekday) && !Object(helpers["c" /* includes */])(byweekday, ii.wdaymask[currentDay])) || - (Object(helpers["g" /* notEmpty */])(ii.nwdaymask) && !ii.nwdaymask[currentDay]) || - (byeaster !== null && !Object(helpers["c" /* includes */])(ii.eastermask, currentDay)) || - ((Object(helpers["g" /* notEmpty */])(bymonthday) || Object(helpers["g" /* notEmpty */])(bynmonthday)) && - !Object(helpers["c" /* includes */])(bymonthday, ii.mdaymask[currentDay]) && - !Object(helpers["c" /* includes */])(bynmonthday, ii.nmdaymask[currentDay])) || - (Object(helpers["g" /* notEmpty */])(byyearday) && - ((currentDay < ii.yearlen && - !Object(helpers["c" /* includes */])(byyearday, currentDay + 1) && - !Object(helpers["c" /* includes */])(byyearday, -ii.yearlen + currentDay)) || - (currentDay >= ii.yearlen && - !Object(helpers["c" /* includes */])(byyearday, currentDay + 1 - ii.yearlen) && - !Object(helpers["c" /* includes */])(byyearday, -ii.nextyearlen + currentDay - ii.yearlen))))); -} -function rezoneIfNeeded(date, options) { - return new datewithzone_DateWithZone(date, options.tzid).rezonedDate(); -} -function emitResult(iterResult) { - return iterResult.getValue(); -} -function removeFilteredDays(dayset, start, end, ii, options) { - var filtered = false; - for (var dayCounter = start; dayCounter < end; dayCounter++) { - var currentDay = dayset[dayCounter]; - filtered = isFiltered(ii, currentDay, options); - if (filtered) - dayset[currentDay] = null; - } - return filtered; -} -function makeTimeset(ii, counterDate, options) { - var freq = options.freq, byhour = options.byhour, byminute = options.byminute, bysecond = options.bysecond; - if (freqIsDailyOrGreater(freq)) { - return buildTimeset(options); - } - if ((freq >= src_rrule.HOURLY && - Object(helpers["g" /* notEmpty */])(byhour) && - !Object(helpers["c" /* includes */])(byhour, counterDate.hour)) || - (freq >= src_rrule.MINUTELY && - Object(helpers["g" /* notEmpty */])(byminute) && - !Object(helpers["c" /* includes */])(byminute, counterDate.minute)) || - (freq >= src_rrule.SECONDLY && - Object(helpers["g" /* notEmpty */])(bysecond) && - !Object(helpers["c" /* includes */])(bysecond, counterDate.second))) { - return []; - } - return ii.gettimeset(freq)(counterDate.hour, counterDate.minute, counterDate.second, counterDate.millisecond); -} - -// CONCATENATED MODULE: ./src/rrule.ts - - - - - - - - - - -var getnlp = function () { - // Lazy, runtime import to avoid circular refs. - if (!getnlp._nlp) { - getnlp._nlp = __webpack_require__(3); - } - return getnlp._nlp; -}; -// ============================================================================= -// RRule -// ============================================================================= -var Days = { - MO: new Weekday(0), - TU: new Weekday(1), - WE: new Weekday(2), - TH: new Weekday(3), - FR: new Weekday(4), - SA: new Weekday(5), - SU: new Weekday(6) -}; -var DEFAULT_OPTIONS = { - freq: Frequency.YEARLY, - dtstart: null, - interval: 1, - wkst: Days.MO, - count: null, - until: null, - tzid: null, - bysetpos: null, - bymonth: null, - bymonthday: null, - bynmonthday: null, - byyearday: null, - byweekno: null, - byweekday: null, - bynweekday: null, - byhour: null, - byminute: null, - bysecond: null, - byeaster: null -}; -var rrule_defaultKeys = Object.keys(DEFAULT_OPTIONS); -/** - * - * @param {Options?} options - see - * The only required option is `freq`, one of RRule.YEARLY, RRule.MONTHLY, ... - * @constructor - */ -var rrule_RRule = /** @class */ (function () { - function RRule(options, noCache) { - if (options === void 0) { options = {}; } - if (noCache === void 0) { noCache = false; } - // RFC string - this._cache = noCache ? null : new cache_Cache(); - // used by toString() - this.origOptions = initializeOptions(options); - var parsedOptions = parseOptions(options).parsedOptions; - this.options = parsedOptions; - } - RRule.parseText = function (text, language) { - return getnlp().parseText(text, language); - }; - RRule.fromText = function (text, language) { - return getnlp().fromText(text, language); - }; - RRule.fromString = function (str) { - return new RRule(RRule.parseString(str) || undefined); - }; - RRule.prototype._iter = function (iterResult) { - return iter(iterResult, this.options); - }; - RRule.prototype._cacheGet = function (what, args) { - if (!this._cache) - return false; - return this._cache._cacheGet(what, args); - }; - RRule.prototype._cacheAdd = function (what, value, args) { - if (!this._cache) - return; - return this._cache._cacheAdd(what, value, args); - }; - /** - * @param {Function} iterator - optional function that will be called - * on each date that is added. It can return false - * to stop the iteration. - * @return Array containing all recurrences. - */ - RRule.prototype.all = function (iterator) { - if (iterator) { - return this._iter(new callbackiterresult('all', {}, iterator)); - } - var result = this._cacheGet('all'); - if (result === false) { - result = this._iter(new iterresult('all', {})); - this._cacheAdd('all', result); - } - return result; - }; - /** - * Returns all the occurrences of the rrule between after and before. - * The inc keyword defines what happens if after and/or before are - * themselves occurrences. With inc == True, they will be included in the - * list, if they are found in the recurrence set. - * @return Array - */ - RRule.prototype.between = function (after, before, inc, iterator) { - if (inc === void 0) { inc = false; } - if (!src_dateutil.isValidDate(after) || !src_dateutil.isValidDate(before)) - throw new Error('Invalid date passed in to RRule.between'); - var args = { - before: before, - after: after, - inc: inc - }; - if (iterator) { - return this._iter(new callbackiterresult('between', args, iterator)); - } - var result = this._cacheGet('between', args); - if (result === false) { - result = this._iter(new iterresult('between', args)); - this._cacheAdd('between', result, args); - } - return result; - }; - /** - * Returns the last recurrence before the given datetime instance. - * The inc keyword defines what happens if dt is an occurrence. - * With inc == True, if dt itself is an occurrence, it will be returned. - * @return Date or null - */ - RRule.prototype.before = function (dt, inc) { - if (inc === void 0) { inc = false; } - if (!src_dateutil.isValidDate(dt)) - throw new Error('Invalid date passed in to RRule.before'); - var args = { dt: dt, inc: inc }; - var result = this._cacheGet('before', args); - if (result === false) { - result = this._iter(new iterresult('before', args)); - this._cacheAdd('before', result, args); - } - return result; - }; - /** - * Returns the first recurrence after the given datetime instance. - * The inc keyword defines what happens if dt is an occurrence. - * With inc == True, if dt itself is an occurrence, it will be returned. - * @return Date or null - */ - RRule.prototype.after = function (dt, inc) { - if (inc === void 0) { inc = false; } - if (!src_dateutil.isValidDate(dt)) - throw new Error('Invalid date passed in to RRule.after'); - var args = { dt: dt, inc: inc }; - var result = this._cacheGet('after', args); - if (result === false) { - result = this._iter(new iterresult('after', args)); - this._cacheAdd('after', result, args); - } - return result; - }; - /** - * Returns the number of recurrences in this set. It will have go trough - * the whole recurrence, if this hasn't been done before. - */ - RRule.prototype.count = function () { - return this.all().length; - }; - /** - * Converts the rrule into its string representation - * @see - * @return String - */ - RRule.prototype.toString = function () { - return optionsToString(this.origOptions); - }; - /** - * Will convert all rules described in nlp:ToText - * to text. - */ - RRule.prototype.toText = function (gettext, language, dateFormatter) { - return getnlp().toText(this, gettext, language, dateFormatter); - }; - RRule.prototype.isFullyConvertibleToText = function () { - return getnlp().isFullyConvertible(this); - }; - /** - * @return a RRule instance with the same freq and options - * as this one (cache is not cloned) - */ - RRule.prototype.clone = function () { - return new RRule(this.origOptions); - }; - // RRule class 'constants' - RRule.FREQUENCIES = [ - 'YEARLY', - 'MONTHLY', - 'WEEKLY', - 'DAILY', - 'HOURLY', - 'MINUTELY', - 'SECONDLY' - ]; - RRule.YEARLY = Frequency.YEARLY; - RRule.MONTHLY = Frequency.MONTHLY; - RRule.WEEKLY = Frequency.WEEKLY; - RRule.DAILY = Frequency.DAILY; - RRule.HOURLY = Frequency.HOURLY; - RRule.MINUTELY = Frequency.MINUTELY; - RRule.SECONDLY = Frequency.SECONDLY; - RRule.MO = Days.MO; - RRule.TU = Days.TU; - RRule.WE = Days.WE; - RRule.TH = Days.TH; - RRule.FR = Days.FR; - RRule.SA = Days.SA; - RRule.SU = Days.SU; - RRule.parseString = parseString; - RRule.optionsToString = optionsToString; - return RRule; -}()); -/* harmony default export */ var src_rrule = (rrule_RRule); - -// CONCATENATED MODULE: ./src/iterset.ts - - - -function iterSet(iterResult, _rrule, _exrule, _rdate, _exdate, tzid) { - var _exdateHash = {}; - var _accept = iterResult.accept; - function evalExdate(after, before) { - _exrule.forEach(function (rrule) { - rrule.between(after, before, true).forEach(function (date) { - _exdateHash[Number(date)] = true; - }); - }); - } - _exdate.forEach(function (date) { - var zonedDate = new datewithzone_DateWithZone(date, tzid).rezonedDate(); - _exdateHash[Number(zonedDate)] = true; - }); - iterResult.accept = function (date) { - var dt = Number(date); - if (!_exdateHash[dt]) { - evalExdate(new Date(dt - 1), new Date(dt + 1)); - if (!_exdateHash[dt]) { - _exdateHash[dt] = true; - return _accept.call(this, date); - } - } - return true; - }; - if (iterResult.method === 'between') { - evalExdate(iterResult.args.after, iterResult.args.before); - iterResult.accept = function (date) { - var dt = Number(date); - if (!_exdateHash[dt]) { - _exdateHash[dt] = true; - return _accept.call(this, date); - } - return true; - }; - } - for (var i = 0; i < _rdate.length; i++) { - var zonedDate = new datewithzone_DateWithZone(_rdate[i], tzid).rezonedDate(); - if (!iterResult.accept(new Date(zonedDate.getTime()))) - break; - } - _rrule.forEach(function (rrule) { - iter(iterResult, rrule.options); - }); - var res = iterResult._result; - src_dateutil.sort(res); - switch (iterResult.method) { - case 'all': - case 'between': - return res; - case 'before': - return ((res.length && res[res.length - 1]) || null); - case 'after': - default: - return ((res.length && res[0]) || null); - } -} - -// CONCATENATED MODULE: ./src/rrulestr.ts - - - - - - -/** - * RRuleStr - * To parse a set of rrule strings - */ -var rrulestr_DEFAULT_OPTIONS = { - dtstart: null, - cache: false, - unfold: false, - forceset: false, - compatible: false, - tzid: null -}; -function parseInput(s, options) { - var rrulevals = []; - var rdatevals = []; - var exrulevals = []; - var exdatevals = []; - var _a = parseDtstart(s), dtstart = _a.dtstart, tzid = _a.tzid; - var lines = splitIntoLines(s, options.unfold); - lines.forEach(function (line) { - if (!line) - return; - var _a = breakDownLine(line), name = _a.name, parms = _a.parms, value = _a.value; - switch (name.toUpperCase()) { - case 'RRULE': - if (parms.length) { - throw new Error("unsupported RRULE parm: " + parms.join(',')); - } - rrulevals.push(parseString(line)); - break; - case 'RDATE': - var _b = /RDATE(?:;TZID=([^:=]+))?/i.exec(line), _ = _b[0], rdateTzid = _b[1]; - if (rdateTzid && !tzid) { - tzid = rdateTzid; - } - rdatevals = rdatevals.concat(parseRDate(value, parms)); - break; - case 'EXRULE': - if (parms.length) { - throw new Error("unsupported EXRULE parm: " + parms.join(',')); - } - exrulevals.push(parseString(value)); - break; - case 'EXDATE': - exdatevals = exdatevals.concat(parseRDate(value, parms)); - break; - case 'DTSTART': - break; - default: - throw new Error('unsupported property: ' + name); - } - }); - return { - dtstart: dtstart, - tzid: tzid, - rrulevals: rrulevals, - rdatevals: rdatevals, - exrulevals: exrulevals, - exdatevals: exdatevals - }; -} -function buildRule(s, options) { - var _a = parseInput(s, options), rrulevals = _a.rrulevals, rdatevals = _a.rdatevals, exrulevals = _a.exrulevals, exdatevals = _a.exdatevals, dtstart = _a.dtstart, tzid = _a.tzid; - var noCache = options.cache === false; - if (options.compatible) { - options.forceset = true; - options.unfold = true; - } - if (options.forceset || - rrulevals.length > 1 || - rdatevals.length || - exrulevals.length || - exdatevals.length) { - var rset_1 = new rruleset(noCache); - rset_1.dtstart(dtstart); - rset_1.tzid(tzid || undefined); - rrulevals.forEach(function (val) { - rset_1.rrule(new src_rrule(groomRruleOptions(val, dtstart, tzid), noCache)); - }); - rdatevals.forEach(function (date) { - rset_1.rdate(date); - }); - exrulevals.forEach(function (val) { - rset_1.exrule(new src_rrule(groomRruleOptions(val, dtstart, tzid), noCache)); - }); - exdatevals.forEach(function (date) { - rset_1.exdate(date); - }); - if (options.compatible && options.dtstart) - rset_1.rdate(dtstart); - return rset_1; - } - var val = rrulevals[0] || {}; - return new src_rrule(groomRruleOptions(val, val.dtstart || options.dtstart || dtstart, val.tzid || options.tzid || tzid), noCache); -} -function rrulestr(s, options) { - if (options === void 0) { options = {}; } - return buildRule(s, rrulestr_initializeOptions(options)); -} -function groomRruleOptions(val, dtstart, tzid) { - return __assign({}, val, { dtstart: dtstart, - tzid: tzid }); -} -function rrulestr_initializeOptions(options) { - var invalid = []; - var keys = Object.keys(options); - var defaultKeys = Object.keys(rrulestr_DEFAULT_OPTIONS); - keys.forEach(function (key) { - if (!Object(helpers["c" /* includes */])(defaultKeys, key)) - invalid.push(key); - }); - if (invalid.length) { - throw new Error('Invalid options: ' + invalid.join(', ')); - } - var initializedOptions = __assign({}, options); - // Merge in default options - defaultKeys.forEach(function (key) { - if (!Object(helpers["c" /* includes */])(keys, key)) - initializedOptions[key] = rrulestr_DEFAULT_OPTIONS[key]; - }); - return initializedOptions; -} -function extractName(line) { - if (line.indexOf(':') === -1) { - return { - name: 'RRULE', - value: line - }; - } - var _a = Object(helpers["l" /* split */])(line, ':', 1), name = _a[0], value = _a[1]; - return { - name: name, - value: value - }; -} -function breakDownLine(line) { - var _a = extractName(line), name = _a.name, value = _a.value; - var parms = name.split(';'); - if (!parms) - throw new Error('empty property name'); - return { - name: parms[0].toUpperCase(), - parms: parms.slice(1), - value: value - }; -} -function splitIntoLines(s, unfold) { - if (unfold === void 0) { unfold = false; } - s = s && s.trim(); - if (!s) - throw new Error('Invalid empty string'); - // More info about 'unfold' option - // Go head to http://www.ietf.org/rfc/rfc2445.txt - if (!unfold) { - return s.split(/\s/); - } - var lines = s.split('\n'); - var i = 0; - while (i < lines.length) { - // TODO - var line = (lines[i] = lines[i].replace(/\s+$/g, '')); - if (!line) { - lines.splice(i, 1); - } - else if (i > 0 && line[0] === ' ') { - lines[i - 1] += line.slice(1); - lines.splice(i, 1); - } - else { - i += 1; - } - } - return lines; -} -function validateDateParm(parms) { - parms.forEach(function (parm) { - if (!/(VALUE=DATE(-TIME)?)|(TZID=)/.test(parm)) { - throw new Error('unsupported RDATE/EXDATE parm: ' + parm); - } - }); -} -function parseRDate(rdateval, parms) { - validateDateParm(parms); - return rdateval - .split(',') - .map(function (datestr) { return src_dateutil.untilStringToDate(datestr); }); -} - -// CONCATENATED MODULE: ./src/rruleset.ts - - - - - - - -function createGetterSetter(fieldName) { - var _this = this; - return function (field) { - if (field !== undefined) { - _this["_" + fieldName] = field; - } - if (_this["_" + fieldName] !== undefined) { - return _this["_" + fieldName]; - } - for (var i = 0; i < _this._rrule.length; i++) { - var field_1 = _this._rrule[i].origOptions[fieldName]; - if (field_1) { - return field_1; - } - } - }; -} -var rruleset_RRuleSet = /** @class */ (function (_super) { - __extends(RRuleSet, _super); - /** - * - * @param {Boolean?} noCache - * The same stratagy as RRule on cache, default to false - * @constructor - */ - function RRuleSet(noCache) { - if (noCache === void 0) { noCache = false; } - var _this = _super.call(this, {}, noCache) || this; - _this.dtstart = createGetterSetter.apply(_this, ['dtstart']); - _this.tzid = createGetterSetter.apply(_this, ['tzid']); - _this._rrule = []; - _this._rdate = []; - _this._exrule = []; - _this._exdate = []; - return _this; - } - RRuleSet.prototype._iter = function (iterResult) { - return iterSet(iterResult, this._rrule, this._exrule, this._rdate, this._exdate, this.tzid()); - }; - /** - * Adds an RRule to the set - * - * @param {RRule} - */ - RRuleSet.prototype.rrule = function (rrule) { - _addRule(rrule, this._rrule); - }; - /** - * Adds an EXRULE to the set - * - * @param {RRule} - */ - RRuleSet.prototype.exrule = function (rrule) { - _addRule(rrule, this._exrule); - }; - /** - * Adds an RDate to the set - * - * @param {Date} - */ - RRuleSet.prototype.rdate = function (date) { - _addDate(date, this._rdate); - }; - /** - * Adds an EXDATE to the set - * - * @param {Date} - */ - RRuleSet.prototype.exdate = function (date) { - _addDate(date, this._exdate); - }; - /** - * Get list of included rrules in this recurrence set. - * - * @return List of rrules - */ - RRuleSet.prototype.rrules = function () { - return this._rrule.map(function (e) { return rrulestr(e.toString()); }); - }; - /** - * Get list of excluded rrules in this recurrence set. - * - * @return List of exrules - */ - RRuleSet.prototype.exrules = function () { - return this._exrule.map(function (e) { return rrulestr(e.toString()); }); - }; - /** - * Get list of included datetimes in this recurrence set. - * - * @return List of rdates - */ - RRuleSet.prototype.rdates = function () { - return this._rdate.map(function (e) { return new Date(e.getTime()); }); - }; - /** - * Get list of included datetimes in this recurrence set. - * - * @return List of exdates - */ - RRuleSet.prototype.exdates = function () { - return this._exdate.map(function (e) { return new Date(e.getTime()); }); - }; - RRuleSet.prototype.valueOf = function () { - var result = []; - if (!this._rrule.length && this._dtstart) { - result = result.concat(optionsToString({ dtstart: this._dtstart })); - } - this._rrule.forEach(function (rrule) { - result = result.concat(rrule.toString().split('\n')); - }); - this._exrule.forEach(function (exrule) { - result = result.concat(exrule.toString().split('\n') - .map(function (line) { return line.replace(/^RRULE:/, 'EXRULE:'); }) - .filter(function (line) { return !/^DTSTART/.test(line); })); - }); - if (this._rdate.length) { - result.push(rdatesToString('RDATE', this._rdate, this.tzid())); - } - if (this._exdate.length) { - result.push(rdatesToString('EXDATE', this._exdate, this.tzid())); - } - return result; - }; - /** - * to generate recurrence field such as: - * DTSTART:19970902T010000Z - * RRULE:FREQ=YEARLY;COUNT=2;BYDAY=TU - * RRULE:FREQ=YEARLY;COUNT=1;BYDAY=TH - */ - RRuleSet.prototype.toString = function () { - return this.valueOf().join('\n'); - }; - /** - * Create a new RRuleSet Object completely base on current instance - */ - RRuleSet.prototype.clone = function () { - var rrs = new RRuleSet(!!this._cache); - this._rrule.forEach(function (rule) { return rrs.rrule(rule.clone()); }); - this._exrule.forEach(function (rule) { return rrs.exrule(rule.clone()); }); - this._rdate.forEach(function (date) { return rrs.rdate(new Date(date.getTime())); }); - this._exdate.forEach(function (date) { return rrs.exdate(new Date(date.getTime())); }); - return rrs; - }; - return RRuleSet; -}(src_rrule)); -/* harmony default export */ var rruleset = (rruleset_RRuleSet); -function _addRule(rrule, collection) { - if (!(rrule instanceof src_rrule)) { - throw new TypeError(String(rrule) + ' is not RRule instance'); - } - if (!Object(helpers["c" /* includes */])(collection.map(String), String(rrule))) { - collection.push(rrule); - } -} -function _addDate(date, collection) { - if (!(date instanceof Date)) { - throw new TypeError(String(date) + ' is not Date instance'); - } - if (!Object(helpers["c" /* includes */])(collection.map(Number), Number(date))) { - collection.push(date); - src_dateutil.sort(collection); - } -} -function rdatesToString(param, rdates, tzid) { - var isUTC = !tzid || tzid.toUpperCase() === 'UTC'; - var header = isUTC ? param + ":" : param + ";TZID=" + tzid + ":"; - var dateString = rdates - .map(function (rdate) { return src_dateutil.timeToUntilString(rdate.valueOf(), isUTC); }) - .join(','); - return "" + header + dateString; -} - -// CONCATENATED MODULE: ./src/index.ts -/* concated harmony reexport */__webpack_require__.d(__webpack_exports__, "Frequency", function() { return Frequency; }); -/* concated harmony reexport */__webpack_require__.d(__webpack_exports__, "Weekday", function() { return Weekday; }); -/* concated harmony reexport */__webpack_require__.d(__webpack_exports__, "RRule", function() { return src_rrule; }); -/* concated harmony reexport */__webpack_require__.d(__webpack_exports__, "RRuleSet", function() { return rruleset; }); -/* concated harmony reexport */__webpack_require__.d(__webpack_exports__, "rrulestr", function() { return rrulestr; }); -/*! - * rrule.js - Library for working with recurrence rules for calendar dates. - * https://github.com/jakubroztocil/rrule - * - * Copyright 2010, Jakub Roztocil and Lars Schoning - * Licenced under the BSD licence. - * https://github.com/jakubroztocil/rrule/blob/master/LICENCE - * - * Based on: - * python-dateutil - Extensions to the standard Python datetime module. - * Copyright (c) 2003-2011 - Gustavo Niemeyer - * Copyright (c) 2012 - Tomi Pieviläinen - * https://github.com/jakubroztocil/rrule/blob/master/LICENCE - * - */ - - - - - -// ============================================================================= -// Export -// ============================================================================= - -/* harmony default export */ var src = __webpack_exports__["default"] = (src_rrule); - - -/***/ }), -/* 2 */ -/***/ (function(module, exports) { - -module.exports = __WEBPACK_EXTERNAL_MODULE__2__; - -/***/ }), -/* 3 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); - -// CONCATENATED MODULE: ./src/nlp/i18n.ts -// ============================================================================= -// i18n -// ============================================================================= -var ENGLISH = { - dayNames: [ - 'Sunday', 'Monday', 'Tuesday', 'Wednesday', - 'Thursday', 'Friday', 'Saturday' - ], - monthNames: [ - 'January', 'February', 'March', 'April', 'May', - 'June', 'July', 'August', 'September', 'October', - 'November', 'December' - ], - tokens: { - 'SKIP': /^[ \r\n\t]+|^\.$/, - 'number': /^[1-9][0-9]*/, - 'numberAsText': /^(one|two|three)/i, - 'every': /^every/i, - 'day(s)': /^days?/i, - 'weekday(s)': /^weekdays?/i, - 'week(s)': /^weeks?/i, - 'hour(s)': /^hours?/i, - 'minute(s)': /^minutes?/i, - 'month(s)': /^months?/i, - 'year(s)': /^years?/i, - 'on': /^(on|in)/i, - 'at': /^(at)/i, - 'the': /^the/i, - 'first': /^first/i, - 'second': /^second/i, - 'third': /^third/i, - 'nth': /^([1-9][0-9]*)(\.|th|nd|rd|st)/i, - 'last': /^last/i, - 'for': /^for/i, - 'time(s)': /^times?/i, - 'until': /^(un)?til/i, - 'monday': /^mo(n(day)?)?/i, - 'tuesday': /^tu(e(s(day)?)?)?/i, - 'wednesday': /^we(d(n(esday)?)?)?/i, - 'thursday': /^th(u(r(sday)?)?)?/i, - 'friday': /^fr(i(day)?)?/i, - 'saturday': /^sa(t(urday)?)?/i, - 'sunday': /^su(n(day)?)?/i, - 'january': /^jan(uary)?/i, - 'february': /^feb(ruary)?/i, - 'march': /^mar(ch)?/i, - 'april': /^apr(il)?/i, - 'may': /^may/i, - 'june': /^june?/i, - 'july': /^july?/i, - 'august': /^aug(ust)?/i, - 'september': /^sep(t(ember)?)?/i, - 'october': /^oct(ober)?/i, - 'november': /^nov(ember)?/i, - 'december': /^dec(ember)?/i, - 'comma': /^(,\s*|(and|or)\s*)+/i - } -}; -/* harmony default export */ var i18n = (ENGLISH); - -// EXTERNAL MODULE: ./src/index.ts + 23 modules -var src = __webpack_require__(1); - -// EXTERNAL MODULE: ./src/helpers.ts -var helpers = __webpack_require__(0); - -// CONCATENATED MODULE: ./src/nlp/totext.ts - - - -// ============================================================================= -// Helper functions -// ============================================================================= -/** - * Return true if a value is in an array - */ -var contains = function (arr, val) { - return arr.indexOf(val) !== -1; -}; -var defaultGetText = function (id) { return id.toString(); }; -var defaultDateFormatter = function (year, month, day) { return month + " " + day + ", " + year; }; -/** - * - * @param {RRule} rrule - * Optional: - * @param {Function} gettext function - * @param {Object} language definition - * @constructor - */ -var totext_ToText = /** @class */ (function () { - function ToText(rrule, gettext, language, dateFormatter) { - if (gettext === void 0) { gettext = defaultGetText; } - if (language === void 0) { language = i18n; } - if (dateFormatter === void 0) { dateFormatter = defaultDateFormatter; } - this.text = []; - this.language = language || i18n; - this.gettext = gettext; - this.dateFormatter = dateFormatter; - this.rrule = rrule; - this.options = rrule.options; - this.origOptions = rrule.origOptions; - if (this.origOptions.bymonthday) { - var bymonthday = [].concat(this.options.bymonthday); - var bynmonthday = [].concat(this.options.bynmonthday); - bymonthday.sort(function (a, b) { return a - b; }); - bynmonthday.sort(function (a, b) { return b - a; }); - // 1, 2, 3, .., -5, -4, -3, .. - this.bymonthday = bymonthday.concat(bynmonthday); - if (!this.bymonthday.length) - this.bymonthday = null; - } - if (Object(helpers["f" /* isPresent */])(this.origOptions.byweekday)) { - var byweekday = !Object(helpers["d" /* isArray */])(this.origOptions.byweekday) - ? [this.origOptions.byweekday] - : this.origOptions.byweekday; - var days = String(byweekday); - this.byweekday = { - allWeeks: byweekday.filter(function (weekday) { - return !weekday.n; - }), - someWeeks: byweekday.filter(function (weekday) { - return Boolean(weekday.n); - }), - isWeekdays: days.indexOf('MO') !== -1 && - days.indexOf('TU') !== -1 && - days.indexOf('WE') !== -1 && - days.indexOf('TH') !== -1 && - days.indexOf('FR') !== -1 && - days.indexOf('SA') === -1 && - days.indexOf('SU') === -1, - isEveryDay: days.indexOf('MO') !== -1 && - days.indexOf('TU') !== -1 && - days.indexOf('WE') !== -1 && - days.indexOf('TH') !== -1 && - days.indexOf('FR') !== -1 && - days.indexOf('SA') !== -1 && - days.indexOf('SU') !== -1 - }; - var sortWeekDays = function (a, b) { - return a.weekday - b.weekday; - }; - this.byweekday.allWeeks.sort(sortWeekDays); - this.byweekday.someWeeks.sort(sortWeekDays); - if (!this.byweekday.allWeeks.length) - this.byweekday.allWeeks = null; - if (!this.byweekday.someWeeks.length) - this.byweekday.someWeeks = null; - } - else { - this.byweekday = null; - } - } - /** - * Test whether the rrule can be fully converted to text. - * @param {RRule} rrule - * @return {Boolean} - */ - ToText.isFullyConvertible = function (rrule) { - var canConvert = true; - if (!(rrule.options.freq in ToText.IMPLEMENTED)) - return false; - if (rrule.origOptions.until && rrule.origOptions.count) - return false; - for (var key in rrule.origOptions) { - if (contains(['dtstart', 'wkst', 'freq'], key)) - return true; - if (!contains(ToText.IMPLEMENTED[rrule.options.freq], key)) - return false; - } - return canConvert; - }; - ToText.prototype.isFullyConvertible = function () { - return ToText.isFullyConvertible(this.rrule); - }; - /** - * Perform the conversion. Only some of the frequencies are supported. - * If some of the rrule's options aren't supported, they'll - * be omitted from the output an "(~ approximate)" will be appended. - * @return {*} - */ - ToText.prototype.toString = function () { - var gettext = this.gettext; - if (!(this.options.freq in ToText.IMPLEMENTED)) { - return gettext('RRule error: Unable to fully convert this rrule to text'); - } - this.text = [gettext('every')]; - // @ts-ignore - this[src["default"].FREQUENCIES[this.options.freq]](); - if (this.options.until) { - this.add(gettext('until')); - var until = this.options.until; - this.add(this.dateFormatter(until.getUTCFullYear(), this.language.monthNames[until.getUTCMonth()], until.getUTCDate())); - } - else if (this.options.count) { - this.add(gettext('for')) - .add(this.options.count.toString()) - .add(this.plural(this.options.count) ? gettext('times') : gettext('time')); - } - if (!this.isFullyConvertible()) - this.add(gettext('(~ approximate)')); - return this.text.join(''); - }; - ToText.prototype.HOURLY = function () { - var gettext = this.gettext; - if (this.options.interval !== 1) - this.add(this.options.interval.toString()); - this.add(this.plural(this.options.interval) ? gettext('hours') : gettext('hour')); - }; - ToText.prototype.MINUTELY = function () { - var gettext = this.gettext; - if (this.options.interval !== 1) - this.add(this.options.interval.toString()); - this.add(this.plural(this.options.interval) - ? gettext('minutes') - : gettext('minutes')); - }; - ToText.prototype.DAILY = function () { - var gettext = this.gettext; - if (this.options.interval !== 1) - this.add(this.options.interval.toString()); - if (this.byweekday && this.byweekday.isWeekdays) { - this.add(this.plural(this.options.interval) - ? gettext('weekdays') - : gettext('weekday')); - } - else { - this.add(this.plural(this.options.interval) ? gettext('days') : gettext('day')); - } - if (this.origOptions.bymonth) { - this.add(gettext('in')); - this._bymonth(); - } - if (this.bymonthday) { - this._bymonthday(); - } - else if (this.byweekday) { - this._byweekday(); - } - else if (this.origOptions.byhour) { - this._byhour(); - } - }; - ToText.prototype.WEEKLY = function () { - var gettext = this.gettext; - if (this.options.interval !== 1) { - this.add(this.options.interval.toString()).add(this.plural(this.options.interval) ? gettext('weeks') : gettext('week')); - } - if (this.byweekday && this.byweekday.isWeekdays) { - if (this.options.interval === 1) { - this.add(this.plural(this.options.interval) - ? gettext('weekdays') - : gettext('weekday')); - } - else { - this.add(gettext('on')).add(gettext('weekdays')); - } - } - else if (this.byweekday && this.byweekday.isEveryDay) { - this.add(this.plural(this.options.interval) ? gettext('days') : gettext('day')); - } - else { - if (this.options.interval === 1) - this.add(gettext('week')); - if (this.origOptions.bymonth) { - this.add(gettext('in')); - this._bymonth(); - } - if (this.bymonthday) { - this._bymonthday(); - } - else if (this.byweekday) { - this._byweekday(); - } - } - }; - ToText.prototype.MONTHLY = function () { - var gettext = this.gettext; - if (this.origOptions.bymonth) { - if (this.options.interval !== 1) { - this.add(this.options.interval.toString()).add(gettext('months')); - if (this.plural(this.options.interval)) - this.add(gettext('in')); - } - else { - // this.add(gettext('MONTH')) - } - this._bymonth(); - } - else { - if (this.options.interval !== 1) - this.add(this.options.interval.toString()); - this.add(this.plural(this.options.interval) - ? gettext('months') - : gettext('month')); - } - if (this.bymonthday) { - this._bymonthday(); - } - else if (this.byweekday && this.byweekday.isWeekdays) { - this.add(gettext('on')).add(gettext('weekdays')); - } - else if (this.byweekday) { - this._byweekday(); - } - }; - ToText.prototype.YEARLY = function () { - var gettext = this.gettext; - if (this.origOptions.bymonth) { - if (this.options.interval !== 1) { - this.add(this.options.interval.toString()); - this.add(gettext('years')); - } - else { - // this.add(gettext('YEAR')) - } - this._bymonth(); - } - else { - if (this.options.interval !== 1) - this.add(this.options.interval.toString()); - this.add(this.plural(this.options.interval) ? gettext('years') : gettext('year')); - } - if (this.bymonthday) { - this._bymonthday(); - } - else if (this.byweekday) { - this._byweekday(); - } - if (this.options.byyearday) { - this.add(gettext('on the')) - .add(this.list(this.options.byyearday, this.nth, gettext('and'))) - .add(gettext('day')); - } - if (this.options.byweekno) { - this.add(gettext('in')) - .add(this.plural(this.options.byweekno.length) - ? gettext('weeks') - : gettext('week')) - .add(this.list(this.options.byweekno, undefined, gettext('and'))); - } - }; - ToText.prototype._bymonthday = function () { - var gettext = this.gettext; - if (this.byweekday && this.byweekday.allWeeks) { - this.add(gettext('on')) - .add(this.list(this.byweekday.allWeeks, this.weekdaytext, gettext('or'))) - .add(gettext('the')) - .add(this.list(this.bymonthday, this.nth, gettext('or'))); - } - else { - this.add(gettext('on the')).add(this.list(this.bymonthday, this.nth, gettext('and'))); - } - // this.add(gettext('DAY')) - }; - ToText.prototype._byweekday = function () { - var gettext = this.gettext; - if (this.byweekday.allWeeks && !this.byweekday.isWeekdays) { - this.add(gettext('on')).add(this.list(this.byweekday.allWeeks, this.weekdaytext)); - } - if (this.byweekday.someWeeks) { - if (this.byweekday.allWeeks) - this.add(gettext('and')); - this.add(gettext('on the')).add(this.list(this.byweekday.someWeeks, this.weekdaytext, gettext('and'))); - } - }; - ToText.prototype._byhour = function () { - var gettext = this.gettext; - this.add(gettext('at')).add(this.list(this.origOptions.byhour, undefined, gettext('and'))); - }; - ToText.prototype._bymonth = function () { - this.add(this.list(this.options.bymonth, this.monthtext, this.gettext('and'))); - }; - ToText.prototype.nth = function (n) { - n = parseInt(n.toString(), 10); - var nth; - var npos; - var gettext = this.gettext; - if (n === -1) - return gettext('last'); - npos = Math.abs(n); - switch (npos) { - case 1: - case 21: - case 31: - nth = npos + gettext('st'); - break; - case 2: - case 22: - nth = npos + gettext('nd'); - break; - case 3: - case 23: - nth = npos + gettext('rd'); - break; - default: - nth = npos + gettext('th'); - } - return n < 0 ? nth + ' ' + gettext('last') : nth; - }; - ToText.prototype.monthtext = function (m) { - return this.language.monthNames[m - 1]; - }; - ToText.prototype.weekdaytext = function (wday) { - var weekday = Object(helpers["e" /* isNumber */])(wday) ? (wday + 1) % 7 : wday.getJsWeekday(); - return ((wday.n ? this.nth(wday.n) + ' ' : '') + this.language.dayNames[weekday]); - }; - ToText.prototype.plural = function (n) { - return n % 100 !== 1; - }; - ToText.prototype.add = function (s) { - this.text.push(' '); - this.text.push(s); - return this; - }; - ToText.prototype.list = function (arr, callback, finalDelim, delim) { - if (delim === void 0) { delim = ','; } - if (!Object(helpers["d" /* isArray */])(arr)) { - arr = [arr]; - } - var delimJoin = function (array, delimiter, finalDelimiter) { - var list = ''; - for (var i = 0; i < array.length; i++) { - if (i !== 0) { - if (i === array.length - 1) { - list += ' ' + finalDelimiter + ' '; - } - else { - list += delimiter + ' '; - } - } - list += array[i]; - } - return list; - }; - callback = - callback || - function (o) { - return o.toString(); - }; - var self = this; - var realCallback = function (arg) { - return callback && callback.call(self, arg); - }; - if (finalDelim) { - return delimJoin(arr.map(realCallback), delim, finalDelim); - } - else { - return arr.map(realCallback).join(delim + ' '); - } - }; - return ToText; -}()); -/* harmony default export */ var totext = (totext_ToText); - -// CONCATENATED MODULE: ./src/nlp/parsetext.ts - - -// ============================================================================= -// Parser -// ============================================================================= -var Parser = /** @class */ (function () { - function Parser(rules) { - this.done = true; - this.rules = rules; - } - Parser.prototype.start = function (text) { - this.text = text; - this.done = false; - return this.nextSymbol(); - }; - Parser.prototype.isDone = function () { - return this.done && this.symbol === null; - }; - Parser.prototype.nextSymbol = function () { - var best; - var bestSymbol; - var p = this; - this.symbol = null; - this.value = null; - do { - if (this.done) - return false; - var rule = void 0; - best = null; - for (var name_1 in this.rules) { - rule = this.rules[name_1]; - var match = rule.exec(p.text); - if (match) { - if (best === null || match[0].length > best[0].length) { - best = match; - bestSymbol = name_1; - } - } - } - if (best != null) { - this.text = this.text.substr(best[0].length); - if (this.text === '') - this.done = true; - } - if (best == null) { - this.done = true; - this.symbol = null; - this.value = null; - return; - } - // @ts-ignore - } while (bestSymbol === 'SKIP'); - // @ts-ignore - this.symbol = bestSymbol; - this.value = best; - return true; - }; - Parser.prototype.accept = function (name) { - if (this.symbol === name) { - if (this.value) { - var v = this.value; - this.nextSymbol(); - return v; - } - this.nextSymbol(); - return true; - } - return false; - }; - Parser.prototype.acceptNumber = function () { - return this.accept('number'); - }; - Parser.prototype.expect = function (name) { - if (this.accept(name)) - return true; - throw new Error('expected ' + name + ' but found ' + this.symbol); - }; - return Parser; -}()); -function parseText(text, language) { - if (language === void 0) { language = i18n; } - var options = {}; - var ttr = new Parser(language.tokens); - if (!ttr.start(text)) - return null; - S(); - return options; - function S() { - // every [n] - ttr.expect('every'); - var n = ttr.acceptNumber(); - if (n) - options.interval = parseInt(n[0], 10); - if (ttr.isDone()) - throw new Error('Unexpected end'); - switch (ttr.symbol) { - case 'day(s)': - options.freq = src["default"].DAILY; - if (ttr.nextSymbol()) { - AT(); - F(); - } - break; - // FIXME Note: every 2 weekdays != every two weeks on weekdays. - // DAILY on weekdays is not a valid rule - case 'weekday(s)': - options.freq = src["default"].WEEKLY; - options.byweekday = [ - src["default"].MO, - src["default"].TU, - src["default"].WE, - src["default"].TH, - src["default"].FR - ]; - ttr.nextSymbol(); - F(); - break; - case 'week(s)': - options.freq = src["default"].WEEKLY; - if (ttr.nextSymbol()) { - ON(); - F(); - } - break; - case 'hour(s)': - options.freq = src["default"].HOURLY; - if (ttr.nextSymbol()) { - ON(); - F(); - } - break; - case 'minute(s)': - options.freq = src["default"].MINUTELY; - if (ttr.nextSymbol()) { - ON(); - F(); - } - break; - case 'month(s)': - options.freq = src["default"].MONTHLY; - if (ttr.nextSymbol()) { - ON(); - F(); - } - break; - case 'year(s)': - options.freq = src["default"].YEARLY; - if (ttr.nextSymbol()) { - ON(); - F(); - } - break; - case 'monday': - case 'tuesday': - case 'wednesday': - case 'thursday': - case 'friday': - case 'saturday': - case 'sunday': - options.freq = src["default"].WEEKLY; - var key = ttr.symbol.substr(0, 2).toUpperCase(); - options.byweekday = [src["default"][key]]; - if (!ttr.nextSymbol()) - return; - // TODO check for duplicates - while (ttr.accept('comma')) { - if (ttr.isDone()) - throw new Error('Unexpected end'); - var wkd = decodeWKD(); - if (!wkd) { - throw new Error('Unexpected symbol ' + ttr.symbol + ', expected weekday'); - } - // @ts-ignore - options.byweekday.push(src["default"][wkd]); - ttr.nextSymbol(); - } - MDAYs(); - F(); - break; - case 'january': - case 'february': - case 'march': - case 'april': - case 'may': - case 'june': - case 'july': - case 'august': - case 'september': - case 'october': - case 'november': - case 'december': - options.freq = src["default"].YEARLY; - options.bymonth = [decodeM()]; - if (!ttr.nextSymbol()) - return; - // TODO check for duplicates - while (ttr.accept('comma')) { - if (ttr.isDone()) - throw new Error('Unexpected end'); - var m = decodeM(); - if (!m) { - throw new Error('Unexpected symbol ' + ttr.symbol + ', expected month'); - } - options.bymonth.push(m); - ttr.nextSymbol(); - } - ON(); - F(); - break; - default: - throw new Error('Unknown symbol'); - } - } - function ON() { - var on = ttr.accept('on'); - var the = ttr.accept('the'); - if (!(on || the)) - return; - do { - var nth = decodeNTH(); - var wkd = decodeWKD(); - var m = decodeM(); - // nth | - if (nth) { - // ttr.nextSymbol() - if (wkd) { - ttr.nextSymbol(); - if (!options.byweekday) - options.byweekday = []; - // @ts-ignore - options.byweekday.push(src["default"][wkd].nth(nth)); - } - else { - if (!options.bymonthday) - options.bymonthday = []; - // @ts-ignore - options.bymonthday.push(nth); - ttr.accept('day(s)'); - } - // - } - else if (wkd) { - ttr.nextSymbol(); - if (!options.byweekday) - options.byweekday = []; - // @ts-ignore - options.byweekday.push(src["default"][wkd]); - } - else if (ttr.symbol === 'weekday(s)') { - ttr.nextSymbol(); - if (!options.byweekday) { - options.byweekday = [ - src["default"].MO, - src["default"].TU, - src["default"].WE, - src["default"].TH, - src["default"].FR - ]; - } - } - else if (ttr.symbol === 'week(s)') { - ttr.nextSymbol(); - var n = ttr.acceptNumber(); - if (!n) { - throw new Error('Unexpected symbol ' + ttr.symbol + ', expected week number'); - } - options.byweekno = [parseInt(n[0], 10)]; - while (ttr.accept('comma')) { - n = ttr.acceptNumber(); - if (!n) { - throw new Error('Unexpected symbol ' + ttr.symbol + '; expected monthday'); - } - options.byweekno.push(parseInt(n[0], 10)); - } - } - else if (m) { - ttr.nextSymbol(); - if (!options.bymonth) - options.bymonth = []; - // @ts-ignore - options.bymonth.push(m); - } - else { - return; - } - } while (ttr.accept('comma') || ttr.accept('the') || ttr.accept('on')); - } - function AT() { - var at = ttr.accept('at'); - if (!at) - return; - do { - var n = ttr.acceptNumber(); - if (!n) { - throw new Error('Unexpected symbol ' + ttr.symbol + ', expected hour'); - } - options.byhour = [parseInt(n[0], 10)]; - while (ttr.accept('comma')) { - n = ttr.acceptNumber(); - if (!n) { - throw new Error('Unexpected symbol ' + ttr.symbol + '; expected hour'); - } - options.byhour.push(parseInt(n[0], 10)); - } - } while (ttr.accept('comma') || ttr.accept('at')); - } - function decodeM() { - switch (ttr.symbol) { - case 'january': - return 1; - case 'february': - return 2; - case 'march': - return 3; - case 'april': - return 4; - case 'may': - return 5; - case 'june': - return 6; - case 'july': - return 7; - case 'august': - return 8; - case 'september': - return 9; - case 'october': - return 10; - case 'november': - return 11; - case 'december': - return 12; - default: - return false; - } - } - function decodeWKD() { - switch (ttr.symbol) { - case 'monday': - case 'tuesday': - case 'wednesday': - case 'thursday': - case 'friday': - case 'saturday': - case 'sunday': - return ttr.symbol.substr(0, 2).toUpperCase(); - default: - return false; - } - } - function decodeNTH() { - switch (ttr.symbol) { - case 'last': - ttr.nextSymbol(); - return -1; - case 'first': - ttr.nextSymbol(); - return 1; - case 'second': - ttr.nextSymbol(); - return ttr.accept('last') ? -2 : 2; - case 'third': - ttr.nextSymbol(); - return ttr.accept('last') ? -3 : 3; - case 'nth': - var v = parseInt(ttr.value[1], 10); - if (v < -366 || v > 366) - throw new Error('Nth out of range: ' + v); - ttr.nextSymbol(); - return ttr.accept('last') ? -v : v; - default: - return false; - } - } - function MDAYs() { - ttr.accept('on'); - ttr.accept('the'); - var nth = decodeNTH(); - if (!nth) - return; - options.bymonthday = [nth]; - ttr.nextSymbol(); - while (ttr.accept('comma')) { - nth = decodeNTH(); - if (!nth) { - throw new Error('Unexpected symbol ' + ttr.symbol + '; expected monthday'); - } - options.bymonthday.push(nth); - ttr.nextSymbol(); - } - } - function F() { - if (ttr.symbol === 'until') { - var date = Date.parse(ttr.text); - if (!date) - throw new Error('Cannot parse until date:' + ttr.text); - options.until = new Date(date); - } - else if (ttr.accept('for')) { - options.count = parseInt(ttr.value[0], 10); - ttr.expect('number'); - // ttr.expect('times') - } - } -} - -// CONCATENATED MODULE: ./src/nlp/index.ts -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fromText", function() { return fromText; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isFullyConvertible", function() { return isFullyConvertible; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toText", function() { return toText; }); -/* concated harmony reexport */__webpack_require__.d(__webpack_exports__, "parseText", function() { return parseText; }); - - - - -/*! -* rrule.js - Library for working with recurrence rules for calendar dates. -* https://github.com/jakubroztocil/rrule -* -* Copyright 2010, Jakub Roztocil and Lars Schoning -* Licenced under the BSD licence. -* https://github.com/jakubroztocil/rrule/blob/master/LICENCE -* -*/ -/** - * - * Implementation of RRule.fromText() and RRule::toText(). - * - * - * On the client side, this file needs to be included - * when those functions are used. - * - */ -// ============================================================================= -// fromText -// ============================================================================= -/** - * Will be able to convert some of the below described rules from - * text format to a rule object. - * - * - * RULES - * - * Every ([n]) - * day(s) - * | [weekday], ..., (and) [weekday] - * | weekday(s) - * | week(s) - * | month(s) - * | [month], ..., (and) [month] - * | year(s) - * - * - * Plus 0, 1, or multiple of these: - * - * on [weekday], ..., (or) [weekday] the [monthday], [monthday], ... (or) [monthday] - * - * on [weekday], ..., (and) [weekday] - * - * on the [monthday], [monthday], ... (and) [monthday] (day of the month) - * - * on the [nth-weekday], ..., (and) [nth-weekday] (of the month/year) - * - * - * Plus 0 or 1 of these: - * - * for [n] time(s) - * - * until [date] - * - * Plus (.) - * - * - * Definitely no supported for parsing: - * - * (for year): - * in week(s) [n], ..., (and) [n] - * - * on the [yearday], ..., (and) [n] day of the year - * on day [yearday], ..., (and) [n] - * - * - * NON-TERMINALS - * - * [n]: 1, 2 ..., one, two, three .. - * [month]: January, February, March, April, May, ... December - * [weekday]: Monday, ... Sunday - * [nth-weekday]: first [weekday], 2nd [weekday], ... last [weekday], ... - * [monthday]: first, 1., 2., 1st, 2nd, second, ... 31st, last day, 2nd last day, .. - * [date]: - * [month] (0-31(,) ([year])), - * (the) 0-31.(1-12.([year])), - * (the) 0-31/(1-12/([year])), - * [weekday] - * - * [year]: 0000, 0001, ... 01, 02, .. - * - * Definitely not supported for parsing: - * - * [yearday]: first, 1., 2., 1st, 2nd, second, ... 366th, last day, 2nd last day, .. - * - * @param {String} text - * @return {Object, Boolean} the rule, or null. - */ -var fromText = function (text, language) { - if (language === void 0) { language = i18n; } - return new src["default"](parseText(text, language) || undefined); -}; -var common = [ - 'count', - 'until', - 'interval', - 'byweekday', - 'bymonthday', - 'bymonth' -]; -totext.IMPLEMENTED = []; -totext.IMPLEMENTED[src["default"].HOURLY] = common; -totext.IMPLEMENTED[src["default"].MINUTELY] = common; -totext.IMPLEMENTED[src["default"].DAILY] = ['byhour'].concat(common); -totext.IMPLEMENTED[src["default"].WEEKLY] = common; -totext.IMPLEMENTED[src["default"].MONTHLY] = common; -totext.IMPLEMENTED[src["default"].YEARLY] = ['byweekno', 'byyearday'].concat(common); -// ============================================================================= -// Export -// ============================================================================= -var toText = function (rrule, gettext, language, dateFormatter) { - return new totext(rrule, gettext, language, dateFormatter).toString(); -}; -var isFullyConvertible = totext.isFullyConvertible; - - - -/***/ }) -/******/ ]); -}); -//# sourceMappingURL=rrule.js.map \ No newline at end of file diff --git a/htdocs/public/high/plugins/gmaps/gmaps.min.js b/htdocs/public/high/plugins/gmaps/gmaps.min.js deleted file mode 100644 index cf4fb63b..00000000 --- a/htdocs/public/high/plugins/gmaps/gmaps.min.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";!function(a,b){"object"==typeof exports?module.exports=b():"function"==typeof define&&define.amd&&define("GMaps",[],b),a.GMaps=b()}(this,function(){if("object"!=typeof window.google||!window.google.maps)throw"Google Maps API is required. Please register the following JavaScript library http://maps.google.com/maps/api/js?sensor=true.";var a=function(a,b){var c;if(a===b)return a;for(c in b)a[c]=b[c];return a},b=function(a,b){var c,d=Array.prototype.slice.call(arguments,2),e=[],f=a.length;if(Array.prototype.map&&a.map===Array.prototype.map)e=Array.prototype.map.call(a,function(a){var c=d.slice(0);return c.splice(0,0,a),b.apply(this,c)});else for(c=0;f>c;c++)callback_params=d,callback_params.splice(0,0,a[c]),e.push(b.apply(this,callback_params));return e},c=function(a){var b,c=[];for(b=0;b0&&"object"==typeof a[c][0]?a[c]=f(a[c],b):a[c]=d(a[c],b));return a},g=function(a,b){var c,d=a.replace(".","");return c="jQuery"in this&&b?$("."+d,b)[0]:document.getElementsByClassName(d)[0]},h=function(a,b){var c,a=a.replace("#","");return c="jQuery"in window&&b?$("#"+a,b)[0]:document.getElementById(a)},i=function(a){var b=0,c=0;if(a.offsetParent)do b+=a.offsetLeft,c+=a.offsetTop;while(a=a.offsetParent);return[b,c]},j=function(b){var c=document,d=function(b){if(!this)return new d(b);b.zoom=b.zoom||15,b.mapType=b.mapType||"roadmap";var e,f=this,j=["bounds_changed","center_changed","click","dblclick","drag","dragend","dragstart","idle","maptypeid_changed","projection_changed","resize","tilesloaded","zoom_changed"],k=["mousemove","mouseout","mouseover"],l=["el","lat","lng","mapType","width","height","markerClusterer","enableNewStyle"],m=b.el||b.div,n=b.markerClusterer,o=google.maps.MapTypeId[b.mapType.toUpperCase()],p=new google.maps.LatLng(b.lat,b.lng),q=b.zoomControl||!0,r=b.zoomControlOpt||{style:"DEFAULT",position:"TOP_LEFT"},s=r.style||"DEFAULT",t=r.position||"TOP_LEFT",u=b.panControl||!0,v=b.mapTypeControl||!0,w=b.scaleControl||!0,x=b.streetViewControl||!0,y=y||!0,z={},A={zoom:this.zoom,center:p,mapTypeId:o},B={panControl:u,zoomControl:q,zoomControlOptions:{style:google.maps.ZoomControlStyle[s],position:google.maps.ControlPosition[t]},mapTypeControl:v,scaleControl:w,streetViewControl:x,overviewMapControl:y};if("string"==typeof b.el||"string"==typeof b.div?m.indexOf("#")>-1?this.el=h(m,b.context):this.el=g.apply(this,[m,b.context]):this.el=m,"undefined"==typeof this.el||null===this.el)throw"No element defined.";for(window.context_menu=window.context_menu||{},window.context_menu[f.el.id]={},this.controls=[],this.overlays=[],this.layers=[],this.singleLayers={},this.markers=[],this.polylines=[],this.routes=[],this.polygons=[],this.infoWindow=null,this.overlay_el=null,this.zoom=b.zoom,this.registered_events={},this.el.style.width=b.width||this.el.scrollWidth||this.el.offsetWidth,this.el.style.height=b.height||this.el.scrollHeight||this.el.offsetHeight,google.maps.visualRefresh=b.enableNewStyle,e=0;e'+g.title+""}if(h("gmaps_context_menu")){var j=h("gmaps_context_menu");j.innerHTML=c;var e,k=j.getElementsByTagName("a"),l=k.length;for(e=0;l>e;e++){var m=k[e],n=function(c){c.preventDefault(),d[this.id.replace(a+"_","")].action.apply(f,[b]),f.hideContextMenu()};google.maps.event.clearListeners(m,"click"),google.maps.event.addDomListenerOnce(m,"click",n,!1)}var o=i.apply(this,[f.el]),p=o[0]+b.pixel.x-15,q=o[1]+b.pixel.y-15;j.style.left=p+"px",j.style.top=q+"px",j.style.display="block"}};this.buildContextMenu=function(a,b){if("marker"===a){b.pixel={};var c=new google.maps.OverlayView;c.setMap(f.map),c.draw=function(){var d=c.getProjection(),e=b.marker.getPosition();b.pixel=d.fromLatLngToContainerPixel(e),C(a,b)}}else C(a,b)},this.setContextMenu=function(a){window.context_menu[f.el.id][a.control]={};var b,d=c.createElement("ul");for(b in a.options)if(a.options.hasOwnProperty(b)){var e=a.options[b];window.context_menu[f.el.id][a.control][e.name]={title:e.title,action:e.action}}d.id="gmaps_context_menu",d.style.display="none",d.style.position="absolute",d.style.minWidth="100px",d.style.background="white",d.style.listStyle="none",d.style.padding="8px",d.style.boxShadow="2px 2px 6px #ccc",c.body.appendChild(d);var g=h("gmaps_context_menu");google.maps.event.addDomListener(g,"mouseout",function(a){a.relatedTarget&&this.contains(a.relatedTarget)||window.setTimeout(function(){g.style.display="none"},400)},!1)},this.hideContextMenu=function(){var a=h("gmaps_context_menu");a&&(a.style.display="none")};var D=function(a,c){google.maps.event.addListener(a,c,function(a){void 0==a&&(a=this),b[c].apply(this,[a]),f.hideContextMenu()})};google.maps.event.addListener(this.map,"zoom_changed",this.hideContextMenu);for(var E=0;Ea;a++)"boolean"==typeof this.markers[a].visible&&this.markers[a].visible&&b.push(this.markers[a].getPosition());this.fitLatLngBounds(b)},this.fitLatLngBounds=function(a){var b,c=a.length,d=new google.maps.LatLngBounds;for(b=0;c>b;b++)d.extend(a[b]);this.map.fitBounds(d)},this.setCenter=function(a,b,c){this.map.panTo(new google.maps.LatLng(a,b)),c&&c()},this.getElement=function(){return this.el},this.zoomIn=function(a){a=a||1,this.zoom=this.map.getZoom()+a,this.map.setZoom(this.zoom)},this.zoomOut=function(a){a=a||1,this.zoom=this.map.getZoom()-a,this.map.setZoom(this.zoom)};var G,H=[];for(G in this.map)"function"!=typeof this.map[G]||this[G]||H.push(G);for(e=0;e-1){var d=this.markers[e];d.setMap(null),this.markerClusterer&&this.markerClusterer.removeMarker(d),j.fire("marker_removed",d,this)}}for(var c=0;c0&&d.paths[0].length>0&&(d.paths=c(b(d.paths,f,e)));for(var g=new google.maps.Polygon(d),h=["click","dblclick","mousedown","mousemove","mouseout","mouseover","mouseup","rightclick"],i=0;i0&&d.locations[0].length>0&&(d.locations=c(b([d.locations],f,!1)));var e=d.callback;delete d.callback;var g=new google.maps.ElevationService;if(d.path){var h={path:d.locations,samples:d.samples};g.getElevationAlongPath(h,function(a,b){e&&"function"==typeof e&&e(a,b)})}else delete d.path,delete d.samples,g.getElevationForLocations(d,function(a,b){e&&"function"==typeof e&&e(a,b)})},j.prototype.cleanRoute=j.prototype.removePolylines,j.prototype.drawRoute=function(a){var b=this;this.getRoutes({origin:a.origin,destination:a.destination,travelMode:a.travelMode,waypoints:a.waypoints,unitSystem:a.unitSystem,error:a.error,callback:function(c){if(c.length>0){var d={path:c[c.length-1].overview_path,strokeColor:a.strokeColor,strokeOpacity:a.strokeOpacity,strokeWeight:a.strokeWeight};a.hasOwnProperty("icons")&&(d.icons=a.icons),b.drawPolyline(d),a.callback&&a.callback(c[c.length-1])}}})},j.prototype.travelRoute=function(a){if(a.origin&&a.destination)this.getRoutes({origin:a.origin,destination:a.destination,travelMode:a.travelMode,waypoints:a.waypoints,unitSystem:a.unitSystem,error:a.error,callback:function(b){if(b.length>0&&a.start&&a.start(b[b.length-1]),b.length>0&&a.step){var c=b[b.length-1];if(c.legs.length>0)for(var d,e=c.legs[0].steps,f=0;d=e[f];f++)d.step_number=f,a.step(d,c.legs[0].steps.length-1)}b.length>0&&a.end&&a.end(b[b.length-1])}});else if(a.route&&a.route.legs.length>0)for(var b,c=a.route.legs[0].steps,d=0;b=c[d];d++)b.step_number=d,a.step(b)},j.prototype.drawSteppedRoute=function(a){var b=this;if(a.origin&&a.destination)this.getRoutes({origin:a.origin,destination:a.destination,travelMode:a.travelMode,waypoints:a.waypoints,error:a.error,callback:function(c){if(c.length>0&&a.start&&a.start(c[c.length-1]),c.length>0&&a.step){var d=c[c.length-1];if(d.legs.length>0)for(var e,f=d.legs[0].steps,g=0;e=f[g];g++){e.step_number=g;var h={path:e.path,strokeColor:a.strokeColor,strokeOpacity:a.strokeOpacity,strokeWeight:a.strokeWeight};a.hasOwnProperty("icons")&&(h.icons=a.icons),b.drawPolyline(h),a.step(e,d.legs[0].steps.length-1)}}c.length>0&&a.end&&a.end(c[c.length-1])}});else if(a.route&&a.route.legs.length>0)for(var c,d=a.route.legs[0].steps,e=0;c=d[e];e++){c.step_number=e;var f={path:c.path,strokeColor:a.strokeColor,strokeOpacity:a.strokeOpacity,strokeWeight:a.strokeWeight};a.hasOwnProperty("icons")&&(f.icons=a.icons),b.drawPolyline(f),a.step(c)}},j.Route=function(a){this.origin=a.origin,this.destination=a.destination,this.waypoints=a.waypoints,this.map=a.map,this.route=a.route,this.step_count=0,this.steps=this.route.legs[0].steps,this.steps_length=this.steps.length;var b={path:new google.maps.MVCArray,strokeColor:a.strokeColor,strokeOpacity:a.strokeOpacity,strokeWeight:a.strokeWeight};a.hasOwnProperty("icons")&&(b.icons=a.icons),this.polyline=this.map.drawPolyline(b).getPath()},j.Route.prototype.getRoute=function(a){var b=this;this.map.getRoutes({origin:this.origin,destination:this.destination,travelMode:a.travelMode,waypoints:this.waypoints||[],error:a.error,callback:function(){b.route=e[0],a.callback&&a.callback.call(b)}})},j.Route.prototype.back=function(){if(this.step_count>0){this.step_count--;var a=this.route.legs[0].steps[this.step_count].path;for(var b in a)a.hasOwnProperty(b)&&this.polyline.pop()}},j.Route.prototype.forward=function(){if(this.step_count0){b.markers=[];for(var c=0;c0){var d=this.polylines[0];b.polyline={},b.polyline.path=google.maps.geometry.encoding.encodePath(d.getPath()),b.polyline.strokeColor=d.strokeColor,b.polyline.strokeOpacity=d.strokeOpacity,b.polyline.strokeWeight=d.strokeWeight}return j.staticMapURL(b)},j.staticMapURL=function(a){function b(a,b){if("#"===a[0]&&(a=a.replace("#","0x"),b)){if(b=parseFloat(b),b=Math.min(1,Math.max(b,0)),0===b)return"0x00000000";b=(255*b).toString(16),1===b.length&&(b+=b),a=a.slice(0,8)+b}return a}var c,d=[],e=("file:"===location.protocol?"http:":location.protocol)+"//maps.googleapis.com/maps/api/staticmap";a.url&&(e=a.url,delete a.url),e+="?";var f=a.markers;delete a.markers,!f&&a.marker&&(f=[a.marker],delete a.marker);var g=a.styles;delete a.styles;var h=a.polyline;if(delete a.polyline,a.center)d.push("center="+a.center),delete a.center;else if(a.address)d.push("center="+a.address),delete a.address;else if(a.lat)d.push(["center=",a.lat,",",a.lng].join("")),delete a.lat,delete a.lng;else if(a.visible){var i=encodeURI(a.visible.join("|"));d.push("visible="+i)}var j=a.size;j?(j.join&&(j=j.join("x")),delete a.size):j="630x300",d.push("size="+j),a.zoom||a.zoom===!1||(a.zoom=15);var k=a.hasOwnProperty("sensor")?!!a.sensor:!0;delete a.sensor,d.push("sensor="+k);for(var l in a)a.hasOwnProperty(l)&&d.push(l+"="+a[l]);if(f)for(var m,n,o=0;c=f[o];o++){m=[],c.size&&"normal"!==c.size?(m.push("size:"+c.size),delete c.size):c.icon&&(m.push("icon:"+encodeURI(c.icon)),delete c.icon),c.color&&(m.push("color:"+c.color.replace("#","0x")),delete c.color),c.label&&(m.push("label:"+c.label[0].toUpperCase()),delete c.label),n=c.address?c.address:c.lat+","+c.lng,delete c.address,delete c.lat,delete c.lng;for(var l in c)c.hasOwnProperty(l)&&m.push(l+":"+c[l]);m.length||0===o?(m.push(n),m=m.join("|"),d.push("markers="+encodeURI(m))):(m=d.pop()+encodeURI("|"+n),d.push(m))}if(g)for(var o=0;oe;e++)for(var f=this.getPaths().getAt(e),g=f.getLength(),h=g-1,i=0;g>i;i++){var j=f.getAt(i),k=f.getAt(h);(j.lng()=a.lng()||k.lng()=a.lng())&&j.lat()+(a.lng()-j.lng())/(k.lng()-j.lng())*(k.lat()-j.lat())>>0;if(0===c)return-1;var d=0;if(arguments.length>1&&(d=Number(arguments[1]),d!=d?d=0:0!=d&&d!=1/0&&d!=-(1/0)&&(d=(d>0||-1)*Math.floor(Math.abs(d)))),d>=c)return-1;for(var e=d>=0?d:Math.max(c-Math.abs(d),0);c>e;e++)if(e in b&&b[e]===a)return e;return-1}),j}); -//# sourceMappingURL=gmaps.min.js.map \ No newline at end of file diff --git a/htdocs/public/high/plugins/gmaps/lib/gmaps.controls.js b/htdocs/public/high/plugins/gmaps/lib/gmaps.controls.js deleted file mode 100644 index 3934803f..00000000 --- a/htdocs/public/high/plugins/gmaps/lib/gmaps.controls.js +++ /dev/null @@ -1,83 +0,0 @@ -GMaps.prototype.createControl = function(options) { - var control = document.createElement('div'); - - control.style.cursor = 'pointer'; - - if (options.disableDefaultStyles !== true) { - control.style.fontFamily = 'Roboto, Arial, sans-serif'; - control.style.fontSize = '11px'; - control.style.boxShadow = 'rgba(0, 0, 0, 0.298039) 0px 1px 4px -1px'; - } - - for (var option in options.style) { - control.style[option] = options.style[option]; - } - - if (options.id) { - control.id = options.id; - } - - if (options.classes) { - control.className = options.classes; - } - - if (options.content) { - if (typeof options.content === 'string') { - control.innerHTML = options.content; - } - else if (options.content instanceof HTMLElement) { - control.appendChild(options.content); - } - } - - if (options.position) { - control.position = google.maps.ControlPosition[options.position.toUpperCase()]; - } - - for (var ev in options.events) { - (function(object, name) { - google.maps.event.addDomListener(object, name, function(){ - options.events[name].apply(this, [this]); - }); - })(control, ev); - } - - control.index = 1; - - return control; -}; - -GMaps.prototype.addControl = function(options) { - var control = this.createControl(options); - - this.controls.push(control); - this.map.controls[control.position].push(control); - - return control; -}; - -GMaps.prototype.removeControl = function(control) { - var position = null, - i; - - for (i = 0; i < this.controls.length; i++) { - if (this.controls[i] == control) { - position = this.controls[i].position; - this.controls.splice(i, 1); - } - } - - if (position) { - for (i = 0; i < this.map.controls.length; i++) { - var controlsForPosition = this.map.controls[control.position]; - - if (controlsForPosition.getAt(i) == control) { - controlsForPosition.removeAt(i); - - break; - } - } - } - - return control; -}; diff --git a/htdocs/public/high/plugins/gmaps/lib/gmaps.core.js b/htdocs/public/high/plugins/gmaps/lib/gmaps.core.js deleted file mode 100644 index 1b0bd987..00000000 --- a/htdocs/public/high/plugins/gmaps/lib/gmaps.core.js +++ /dev/null @@ -1,488 +0,0 @@ -if (!(typeof window.google === 'object' && window.google.maps)) { - throw 'Google Maps API is required. Please register the following JavaScript library http://maps.google.com/maps/api/js?sensor=true.' -} - -var extend_object = function(obj, new_obj) { - var name; - - if (obj === new_obj) { - return obj; - } - - for (name in new_obj) { - obj[name] = new_obj[name]; - } - - return obj; -}; - -var replace_object = function(obj, replace) { - var name; - - if (obj === replace) { - return obj; - } - - for (name in replace) { - if (obj[name] != undefined) { - obj[name] = replace[name]; - } - } - - return obj; -}; - -var array_map = function(array, callback) { - var original_callback_params = Array.prototype.slice.call(arguments, 2), - array_return = [], - array_length = array.length, - i; - - if (Array.prototype.map && array.map === Array.prototype.map) { - array_return = Array.prototype.map.call(array, function(item) { - var callback_params = original_callback_params.slice(0); - callback_params.splice(0, 0, item); - - return callback.apply(this, callback_params); - }); - } - else { - for (i = 0; i < array_length; i++) { - callback_params = original_callback_params; - callback_params.splice(0, 0, array[i]); - array_return.push(callback.apply(this, callback_params)); - } - } - - return array_return; -}; - -var array_flat = function(array) { - var new_array = [], - i; - - for (i = 0; i < array.length; i++) { - new_array = new_array.concat(array[i]); - } - - return new_array; -}; - -var coordsToLatLngs = function(coords, useGeoJSON) { - var first_coord = coords[0], - second_coord = coords[1]; - - if (useGeoJSON) { - first_coord = coords[1]; - second_coord = coords[0]; - } - - return new google.maps.LatLng(first_coord, second_coord); -}; - -var arrayToLatLng = function(coords, useGeoJSON) { - var i; - - for (i = 0; i < coords.length; i++) { - if (!(coords[i] instanceof google.maps.LatLng)) { - if (coords[i].length > 0 && typeof(coords[i][0]) === "object") { - coords[i] = arrayToLatLng(coords[i], useGeoJSON); - } - else { - coords[i] = coordsToLatLngs(coords[i], useGeoJSON); - } - } - } - - return coords; -}; - - -var getElementsByClassName = function (class_name, context) { - - var element, - _class = class_name.replace('.', ''); - - if ('jQuery' in this && context) { - element = $("." + _class, context)[0]; - } else { - element = document.getElementsByClassName(_class)[0]; - } - return element; - -}; - -var getElementById = function(id, context) { - var element, - id = id.replace('#', ''); - - if ('jQuery' in window && context) { - element = $('#' + id, context)[0]; - } else { - element = document.getElementById(id); - }; - - return element; -}; - -var findAbsolutePosition = function(obj) { - var curleft = 0, - curtop = 0; - - if (obj.offsetParent) { - do { - curleft += obj.offsetLeft; - curtop += obj.offsetTop; - } while (obj = obj.offsetParent); - } - - return [curleft, curtop]; -}; - -var GMaps = (function(global) { - "use strict"; - - var doc = document; - - var GMaps = function(options) { - if (!this) return new GMaps(options); - - options.zoom = options.zoom || 15; - options.mapType = options.mapType || 'roadmap'; - - var self = this, - i, - events_that_hide_context_menu = [ - 'bounds_changed', 'center_changed', 'click', 'dblclick', 'drag', - 'dragend', 'dragstart', 'idle', 'maptypeid_changed', 'projection_changed', - 'resize', 'tilesloaded', 'zoom_changed' - ], - events_that_doesnt_hide_context_menu = ['mousemove', 'mouseout', 'mouseover'], - options_to_be_deleted = ['el', 'lat', 'lng', 'mapType', 'width', 'height', 'markerClusterer', 'enableNewStyle'], - identifier = options.el || options.div, - markerClustererFunction = options.markerClusterer, - mapType = google.maps.MapTypeId[options.mapType.toUpperCase()], - map_center = new google.maps.LatLng(options.lat, options.lng), - zoomControl = options.zoomControl || true, - zoomControlOpt = options.zoomControlOpt || { - style: 'DEFAULT', - position: 'TOP_LEFT' - }, - zoomControlStyle = zoomControlOpt.style || 'DEFAULT', - zoomControlPosition = zoomControlOpt.position || 'TOP_LEFT', - panControl = options.panControl || true, - mapTypeControl = options.mapTypeControl || true, - scaleControl = options.scaleControl || true, - streetViewControl = options.streetViewControl || true, - overviewMapControl = overviewMapControl || true, - map_options = {}, - map_base_options = { - zoom: this.zoom, - center: map_center, - mapTypeId: mapType - }, - map_controls_options = { - panControl: panControl, - zoomControl: zoomControl, - zoomControlOptions: { - style: google.maps.ZoomControlStyle[zoomControlStyle], - position: google.maps.ControlPosition[zoomControlPosition] - }, - mapTypeControl: mapTypeControl, - scaleControl: scaleControl, - streetViewControl: streetViewControl, - overviewMapControl: overviewMapControl - }; - - if (typeof(options.el) === 'string' || typeof(options.div) === 'string') { - - if (identifier.indexOf("#") > -1) { - this.el = getElementById(identifier, options.context); - } else { - this.el = getElementsByClassName.apply(this, [identifier, options.context]); - } - - } else { - this.el = identifier; - } - - if (typeof(this.el) === 'undefined' || this.el === null) { - throw 'No element defined.'; - } - - window.context_menu = window.context_menu || {}; - window.context_menu[self.el.id] = {}; - - this.controls = []; - this.overlays = []; - this.layers = []; // array with kml/georss and fusiontables layers, can be as many - this.singleLayers = {}; // object with the other layers, only one per layer - this.markers = []; - this.polylines = []; - this.routes = []; - this.polygons = []; - this.infoWindow = null; - this.overlay_el = null; - this.zoom = options.zoom; - this.registered_events = {}; - - this.el.style.width = options.width || this.el.scrollWidth || this.el.offsetWidth; - this.el.style.height = options.height || this.el.scrollHeight || this.el.offsetHeight; - - google.maps.visualRefresh = options.enableNewStyle; - - for (i = 0; i < options_to_be_deleted.length; i++) { - delete options[options_to_be_deleted[i]]; - } - - if(options.disableDefaultUI != true) { - map_base_options = extend_object(map_base_options, map_controls_options); - } - - map_options = extend_object(map_base_options, options); - - for (i = 0; i < events_that_hide_context_menu.length; i++) { - delete map_options[events_that_hide_context_menu[i]]; - } - - for (i = 0; i < events_that_doesnt_hide_context_menu.length; i++) { - delete map_options[events_that_doesnt_hide_context_menu[i]]; - } - - this.map = new google.maps.Map(this.el, map_options); - - if (markerClustererFunction) { - this.markerClusterer = markerClustererFunction.apply(this, [this.map]); - } - - var buildContextMenuHTML = function(control, e) { - var html = '', - options = window.context_menu[self.el.id][control]; - - for (var i in options){ - if (options.hasOwnProperty(i)) { - var option = options[i]; - - html += '
  • ' + option.title + '
  • '; - } - } - - if (!getElementById('gmaps_context_menu')) return; - - var context_menu_element = getElementById('gmaps_context_menu'); - - context_menu_element.innerHTML = html; - - var context_menu_items = context_menu_element.getElementsByTagName('a'), - context_menu_items_count = context_menu_items.length, - i; - - for (i = 0; i < context_menu_items_count; i++) { - var context_menu_item = context_menu_items[i]; - - var assign_menu_item_action = function(ev){ - ev.preventDefault(); - - options[this.id.replace(control + '_', '')].action.apply(self, [e]); - self.hideContextMenu(); - }; - - google.maps.event.clearListeners(context_menu_item, 'click'); - google.maps.event.addDomListenerOnce(context_menu_item, 'click', assign_menu_item_action, false); - } - - var position = findAbsolutePosition.apply(this, [self.el]), - left = position[0] + e.pixel.x - 15, - top = position[1] + e.pixel.y- 15; - - context_menu_element.style.left = left + "px"; - context_menu_element.style.top = top + "px"; - - context_menu_element.style.display = 'block'; - }; - - this.buildContextMenu = function(control, e) { - if (control === 'marker') { - e.pixel = {}; - - var overlay = new google.maps.OverlayView(); - overlay.setMap(self.map); - - overlay.draw = function() { - var projection = overlay.getProjection(), - position = e.marker.getPosition(); - - e.pixel = projection.fromLatLngToContainerPixel(position); - - buildContextMenuHTML(control, e); - }; - } - else { - buildContextMenuHTML(control, e); - } - }; - - this.setContextMenu = function(options) { - window.context_menu[self.el.id][options.control] = {}; - - var i, - ul = doc.createElement('ul'); - - for (i in options.options) { - if (options.options.hasOwnProperty(i)) { - var option = options.options[i]; - - window.context_menu[self.el.id][options.control][option.name] = { - title: option.title, - action: option.action - }; - } - } - - ul.id = 'gmaps_context_menu'; - ul.style.display = 'none'; - ul.style.position = 'absolute'; - ul.style.minWidth = '100px'; - ul.style.background = 'white'; - ul.style.listStyle = 'none'; - ul.style.padding = '8px'; - ul.style.boxShadow = '2px 2px 6px #ccc'; - - doc.body.appendChild(ul); - - var context_menu_element = getElementById('gmaps_context_menu') - - google.maps.event.addDomListener(context_menu_element, 'mouseout', function(ev) { - if (!ev.relatedTarget || !this.contains(ev.relatedTarget)) { - window.setTimeout(function(){ - context_menu_element.style.display = 'none'; - }, 400); - } - }, false); - }; - - this.hideContextMenu = function() { - var context_menu_element = getElementById('gmaps_context_menu'); - - if (context_menu_element) { - context_menu_element.style.display = 'none'; - } - }; - - var setupListener = function(object, name) { - google.maps.event.addListener(object, name, function(e){ - if (e == undefined) { - e = this; - } - - options[name].apply(this, [e]); - - self.hideContextMenu(); - }); - }; - - //google.maps.event.addListener(this.map, 'idle', this.hideContextMenu); - google.maps.event.addListener(this.map, 'zoom_changed', this.hideContextMenu); - - for (var ev = 0; ev < events_that_hide_context_menu.length; ev++) { - var name = events_that_hide_context_menu[ev]; - - if (name in options) { - setupListener(this.map, name); - } - } - - for (var ev = 0; ev < events_that_doesnt_hide_context_menu.length; ev++) { - var name = events_that_doesnt_hide_context_menu[ev]; - - if (name in options) { - setupListener(this.map, name); - } - } - - google.maps.event.addListener(this.map, 'rightclick', function(e) { - if (options.rightclick) { - options.rightclick.apply(this, [e]); - } - - if(window.context_menu[self.el.id]['map'] != undefined) { - self.buildContextMenu('map', e); - } - }); - - this.refresh = function() { - google.maps.event.trigger(this.map, 'resize'); - }; - - this.fitZoom = function() { - var latLngs = [], - markers_length = this.markers.length, - i; - - for (i = 0; i < markers_length; i++) { - if(typeof(this.markers[i].visible) === 'boolean' && this.markers[i].visible) { - latLngs.push(this.markers[i].getPosition()); - } - } - - this.fitLatLngBounds(latLngs); - }; - - this.fitLatLngBounds = function(latLngs) { - var total = latLngs.length, - bounds = new google.maps.LatLngBounds(), - i; - - for(i = 0; i < total; i++) { - bounds.extend(latLngs[i]); - } - - this.map.fitBounds(bounds); - }; - - this.setCenter = function(lat, lng, callback) { - this.map.panTo(new google.maps.LatLng(lat, lng)); - - if (callback) { - callback(); - } - }; - - this.getElement = function() { - return this.el; - }; - - this.zoomIn = function(value) { - value = value || 1; - - this.zoom = this.map.getZoom() + value; - this.map.setZoom(this.zoom); - }; - - this.zoomOut = function(value) { - value = value || 1; - - this.zoom = this.map.getZoom() - value; - this.map.setZoom(this.zoom); - }; - - var native_methods = [], - method; - - for (method in this.map) { - if (typeof(this.map[method]) == 'function' && !this[method]) { - native_methods.push(method); - } - } - - for (i = 0; i < native_methods.length; i++) { - (function(gmaps, scope, method_name) { - gmaps[method_name] = function(){ - return scope[method_name].apply(scope, arguments); - }; - })(this, this.map, native_methods[i]); - } - }; - - return GMaps; -})(this); diff --git a/htdocs/public/high/plugins/gmaps/lib/gmaps.events.js b/htdocs/public/high/plugins/gmaps/lib/gmaps.events.js deleted file mode 100644 index a53a8818..00000000 --- a/htdocs/public/high/plugins/gmaps/lib/gmaps.events.js +++ /dev/null @@ -1,54 +0,0 @@ -GMaps.prototype.on = function(event_name, handler) { - return GMaps.on(event_name, this, handler); -}; - -GMaps.prototype.off = function(event_name) { - GMaps.off(event_name, this); -}; - -GMaps.custom_events = ['marker_added', 'marker_removed', 'polyline_added', 'polyline_removed', 'polygon_added', 'polygon_removed', 'geolocated', 'geolocation_failed']; - -GMaps.on = function(event_name, object, handler) { - if (GMaps.custom_events.indexOf(event_name) == -1) { - if(object instanceof GMaps) object = object.map; - return google.maps.event.addListener(object, event_name, handler); - } - else { - var registered_event = { - handler : handler, - eventName : event_name - }; - - object.registered_events[event_name] = object.registered_events[event_name] || []; - object.registered_events[event_name].push(registered_event); - - return registered_event; - } -}; - -GMaps.off = function(event_name, object) { - if (GMaps.custom_events.indexOf(event_name) == -1) { - if(object instanceof GMaps) object = object.map; - google.maps.event.clearListeners(object, event_name); - } - else { - object.registered_events[event_name] = []; - } -}; - -GMaps.fire = function(event_name, object, scope) { - if (GMaps.custom_events.indexOf(event_name) == -1) { - google.maps.event.trigger(object, event_name, Array.prototype.slice.apply(arguments).slice(2)); - } - else { - if(event_name in scope.registered_events) { - var firing_events = scope.registered_events[event_name]; - - for(var i = 0; i < firing_events.length; i++) { - (function(handler, scope, object) { - handler.apply(scope, [object]); - })(firing_events[i]['handler'], scope, object); - } - } - } -}; diff --git a/htdocs/public/high/plugins/gmaps/lib/gmaps.geofences.js b/htdocs/public/high/plugins/gmaps/lib/gmaps.geofences.js deleted file mode 100644 index 74797c87..00000000 --- a/htdocs/public/high/plugins/gmaps/lib/gmaps.geofences.js +++ /dev/null @@ -1,14 +0,0 @@ -GMaps.prototype.checkGeofence = function(lat, lng, fence) { - return fence.containsLatLng(new google.maps.LatLng(lat, lng)); -}; - -GMaps.prototype.checkMarkerGeofence = function(marker, outside_callback) { - if (marker.fences) { - for (var i = 0, fence; fence = marker.fences[i]; i++) { - var pos = marker.getPosition(); - if (!this.checkGeofence(pos.lat(), pos.lng(), fence)) { - outside_callback(marker, fence); - } - } - } -}; diff --git a/htdocs/public/high/plugins/gmaps/lib/gmaps.geometry.js b/htdocs/public/high/plugins/gmaps/lib/gmaps.geometry.js deleted file mode 100644 index e7cebd92..00000000 --- a/htdocs/public/high/plugins/gmaps/lib/gmaps.geometry.js +++ /dev/null @@ -1,205 +0,0 @@ -GMaps.prototype.drawPolyline = function(options) { - var path = [], - points = options.path; - - if (points.length) { - if (points[0][0] === undefined) { - path = points; - } - else { - for (var i = 0, latlng; latlng = points[i]; i++) { - path.push(new google.maps.LatLng(latlng[0], latlng[1])); - } - } - } - - var polyline_options = { - map: this.map, - path: path, - strokeColor: options.strokeColor, - strokeOpacity: options.strokeOpacity, - strokeWeight: options.strokeWeight, - geodesic: options.geodesic, - clickable: true, - editable: false, - visible: true - }; - - if (options.hasOwnProperty("clickable")) { - polyline_options.clickable = options.clickable; - } - - if (options.hasOwnProperty("editable")) { - polyline_options.editable = options.editable; - } - - if (options.hasOwnProperty("icons")) { - polyline_options.icons = options.icons; - } - - if (options.hasOwnProperty("zIndex")) { - polyline_options.zIndex = options.zIndex; - } - - var polyline = new google.maps.Polyline(polyline_options); - - var polyline_events = ['click', 'dblclick', 'mousedown', 'mousemove', 'mouseout', 'mouseover', 'mouseup', 'rightclick']; - - for (var ev = 0; ev < polyline_events.length; ev++) { - (function(object, name) { - if (options[name]) { - google.maps.event.addListener(object, name, function(e){ - options[name].apply(this, [e]); - }); - } - })(polyline, polyline_events[ev]); - } - - this.polylines.push(polyline); - - GMaps.fire('polyline_added', polyline, this); - - return polyline; -}; - -GMaps.prototype.removePolyline = function(polyline) { - for (var i = 0; i < this.polylines.length; i++) { - if (this.polylines[i] === polyline) { - this.polylines[i].setMap(null); - this.polylines.splice(i, 1); - - GMaps.fire('polyline_removed', polyline, this); - - break; - } - } -}; - -GMaps.prototype.removePolylines = function() { - for (var i = 0, item; item = this.polylines[i]; i++) { - item.setMap(null); - } - - this.polylines = []; -}; - -GMaps.prototype.drawCircle = function(options) { - options = extend_object({ - map: this.map, - center: new google.maps.LatLng(options.lat, options.lng) - }, options); - - delete options.lat; - delete options.lng; - - var polygon = new google.maps.Circle(options), - polygon_events = ['click', 'dblclick', 'mousedown', 'mousemove', 'mouseout', 'mouseover', 'mouseup', 'rightclick']; - - for (var ev = 0; ev < polygon_events.length; ev++) { - (function(object, name) { - if (options[name]) { - google.maps.event.addListener(object, name, function(e){ - options[name].apply(this, [e]); - }); - } - })(polygon, polygon_events[ev]); - } - - this.polygons.push(polygon); - - return polygon; -}; - -GMaps.prototype.drawRectangle = function(options) { - options = extend_object({ - map: this.map - }, options); - - var latLngBounds = new google.maps.LatLngBounds( - new google.maps.LatLng(options.bounds[0][0], options.bounds[0][1]), - new google.maps.LatLng(options.bounds[1][0], options.bounds[1][1]) - ); - - options.bounds = latLngBounds; - - var polygon = new google.maps.Rectangle(options), - polygon_events = ['click', 'dblclick', 'mousedown', 'mousemove', 'mouseout', 'mouseover', 'mouseup', 'rightclick']; - - for (var ev = 0; ev < polygon_events.length; ev++) { - (function(object, name) { - if (options[name]) { - google.maps.event.addListener(object, name, function(e){ - options[name].apply(this, [e]); - }); - } - })(polygon, polygon_events[ev]); - } - - this.polygons.push(polygon); - - return polygon; -}; - -GMaps.prototype.drawPolygon = function(options) { - var useGeoJSON = false; - - if(options.hasOwnProperty("useGeoJSON")) { - useGeoJSON = options.useGeoJSON; - } - - delete options.useGeoJSON; - - options = extend_object({ - map: this.map - }, options); - - if (useGeoJSON == false) { - options.paths = [options.paths.slice(0)]; - } - - if (options.paths.length > 0) { - if (options.paths[0].length > 0) { - options.paths = array_flat(array_map(options.paths, arrayToLatLng, useGeoJSON)); - } - } - - var polygon = new google.maps.Polygon(options), - polygon_events = ['click', 'dblclick', 'mousedown', 'mousemove', 'mouseout', 'mouseover', 'mouseup', 'rightclick']; - - for (var ev = 0; ev < polygon_events.length; ev++) { - (function(object, name) { - if (options[name]) { - google.maps.event.addListener(object, name, function(e){ - options[name].apply(this, [e]); - }); - } - })(polygon, polygon_events[ev]); - } - - this.polygons.push(polygon); - - GMaps.fire('polygon_added', polygon, this); - - return polygon; -}; - -GMaps.prototype.removePolygon = function(polygon) { - for (var i = 0; i < this.polygons.length; i++) { - if (this.polygons[i] === polygon) { - this.polygons[i].setMap(null); - this.polygons.splice(i, 1); - - GMaps.fire('polygon_removed', polygon, this); - - break; - } - } -}; - -GMaps.prototype.removePolygons = function() { - for (var i = 0, item; item = this.polygons[i]; i++) { - item.setMap(null); - } - - this.polygons = []; -}; diff --git a/htdocs/public/high/plugins/gmaps/lib/gmaps.layers.js b/htdocs/public/high/plugins/gmaps/lib/gmaps.layers.js deleted file mode 100644 index b8ed339d..00000000 --- a/htdocs/public/high/plugins/gmaps/lib/gmaps.layers.js +++ /dev/null @@ -1,158 +0,0 @@ -GMaps.prototype.getFromFusionTables = function(options) { - var events = options.events; - - delete options.events; - - var fusion_tables_options = options, - layer = new google.maps.FusionTablesLayer(fusion_tables_options); - - for (var ev in events) { - (function(object, name) { - google.maps.event.addListener(object, name, function(e) { - events[name].apply(this, [e]); - }); - })(layer, ev); - } - - this.layers.push(layer); - - return layer; -}; - -GMaps.prototype.loadFromFusionTables = function(options) { - var layer = this.getFromFusionTables(options); - layer.setMap(this.map); - - return layer; -}; - -GMaps.prototype.getFromKML = function(options) { - var url = options.url, - events = options.events; - - delete options.url; - delete options.events; - - var kml_options = options, - layer = new google.maps.KmlLayer(url, kml_options); - - for (var ev in events) { - (function(object, name) { - google.maps.event.addListener(object, name, function(e) { - events[name].apply(this, [e]); - }); - })(layer, ev); - } - - this.layers.push(layer); - - return layer; -}; - -GMaps.prototype.loadFromKML = function(options) { - var layer = this.getFromKML(options); - layer.setMap(this.map); - - return layer; -}; - -GMaps.prototype.addLayer = function(layerName, options) { - //var default_layers = ['weather', 'clouds', 'traffic', 'transit', 'bicycling', 'panoramio', 'places']; - options = options || {}; - var layer; - - switch(layerName) { - case 'weather': this.singleLayers.weather = layer = new google.maps.weather.WeatherLayer(); - break; - case 'clouds': this.singleLayers.clouds = layer = new google.maps.weather.CloudLayer(); - break; - case 'traffic': this.singleLayers.traffic = layer = new google.maps.TrafficLayer(); - break; - case 'transit': this.singleLayers.transit = layer = new google.maps.TransitLayer(); - break; - case 'bicycling': this.singleLayers.bicycling = layer = new google.maps.BicyclingLayer(); - break; - case 'panoramio': - this.singleLayers.panoramio = layer = new google.maps.panoramio.PanoramioLayer(); - layer.setTag(options.filter); - delete options.filter; - - //click event - if (options.click) { - google.maps.event.addListener(layer, 'click', function(event) { - options.click(event); - delete options.click; - }); - } - break; - case 'places': - this.singleLayers.places = layer = new google.maps.places.PlacesService(this.map); - - //search, nearbySearch, radarSearch callback, Both are the same - if (options.search || options.nearbySearch || options.radarSearch) { - var placeSearchRequest = { - bounds : options.bounds || null, - keyword : options.keyword || null, - location : options.location || null, - name : options.name || null, - radius : options.radius || null, - rankBy : options.rankBy || null, - types : options.types || null - }; - - if (options.radarSearch) { - layer.radarSearch(placeSearchRequest, options.radarSearch); - } - - if (options.search) { - layer.search(placeSearchRequest, options.search); - } - - if (options.nearbySearch) { - layer.nearbySearch(placeSearchRequest, options.nearbySearch); - } - } - - //textSearch callback - if (options.textSearch) { - var textSearchRequest = { - bounds : options.bounds || null, - location : options.location || null, - query : options.query || null, - radius : options.radius || null - }; - - layer.textSearch(textSearchRequest, options.textSearch); - } - break; - } - - if (layer !== undefined) { - if (typeof layer.setOptions == 'function') { - layer.setOptions(options); - } - if (typeof layer.setMap == 'function') { - layer.setMap(this.map); - } - - return layer; - } -}; - -GMaps.prototype.removeLayer = function(layer) { - if (typeof(layer) == "string" && this.singleLayers[layer] !== undefined) { - this.singleLayers[layer].setMap(null); - - delete this.singleLayers[layer]; - } - else { - for (var i = 0; i < this.layers.length; i++) { - if (this.layers[i] === layer) { - this.layers[i].setMap(null); - this.layers.splice(i, 1); - - break; - } - } - } -}; diff --git a/htdocs/public/high/plugins/gmaps/lib/gmaps.map_types.js b/htdocs/public/high/plugins/gmaps/lib/gmaps.map_types.js deleted file mode 100644 index 46e748a6..00000000 --- a/htdocs/public/high/plugins/gmaps/lib/gmaps.map_types.js +++ /dev/null @@ -1,29 +0,0 @@ -GMaps.prototype.addMapType = function(mapTypeId, options) { - if (options.hasOwnProperty("getTileUrl") && typeof(options["getTileUrl"]) == "function") { - options.tileSize = options.tileSize || new google.maps.Size(256, 256); - - var mapType = new google.maps.ImageMapType(options); - - this.map.mapTypes.set(mapTypeId, mapType); - } - else { - throw "'getTileUrl' function required."; - } -}; - -GMaps.prototype.addOverlayMapType = function(options) { - if (options.hasOwnProperty("getTile") && typeof(options["getTile"]) == "function") { - var overlayMapTypeIndex = options.index; - - delete options.index; - - this.map.overlayMapTypes.insertAt(overlayMapTypeIndex, options); - } - else { - throw "'getTile' function required."; - } -}; - -GMaps.prototype.removeOverlayMapType = function(overlayMapTypeIndex) { - this.map.overlayMapTypes.removeAt(overlayMapTypeIndex); -}; diff --git a/htdocs/public/high/plugins/gmaps/lib/gmaps.markers.js b/htdocs/public/high/plugins/gmaps/lib/gmaps.markers.js deleted file mode 100644 index 1fae8289..00000000 --- a/htdocs/public/high/plugins/gmaps/lib/gmaps.markers.js +++ /dev/null @@ -1,210 +0,0 @@ -GMaps.prototype.createMarker = function(options) { - if (options.lat == undefined && options.lng == undefined && options.position == undefined) { - throw 'No latitude or longitude defined.'; - } - - var self = this, - details = options.details, - fences = options.fences, - outside = options.outside, - base_options = { - position: new google.maps.LatLng(options.lat, options.lng), - map: null - }, - marker_options = extend_object(base_options, options); - - delete marker_options.lat; - delete marker_options.lng; - delete marker_options.fences; - delete marker_options.outside; - - var marker = new google.maps.Marker(marker_options); - - marker.fences = fences; - - if (options.infoWindow) { - marker.infoWindow = new google.maps.InfoWindow(options.infoWindow); - - var info_window_events = ['closeclick', 'content_changed', 'domready', 'position_changed', 'zindex_changed']; - - for (var ev = 0; ev < info_window_events.length; ev++) { - (function(object, name) { - if (options.infoWindow[name]) { - google.maps.event.addListener(object, name, function(e){ - options.infoWindow[name].apply(this, [e]); - }); - } - })(marker.infoWindow, info_window_events[ev]); - } - } - - var marker_events = ['animation_changed', 'clickable_changed', 'cursor_changed', 'draggable_changed', 'flat_changed', 'icon_changed', 'position_changed', 'shadow_changed', 'shape_changed', 'title_changed', 'visible_changed', 'zindex_changed']; - - var marker_events_with_mouse = ['dblclick', 'drag', 'dragend', 'dragstart', 'mousedown', 'mouseout', 'mouseover', 'mouseup']; - - for (var ev = 0; ev < marker_events.length; ev++) { - (function(object, name) { - if (options[name]) { - google.maps.event.addListener(object, name, function(){ - options[name].apply(this, [this]); - }); - } - })(marker, marker_events[ev]); - } - - for (var ev = 0; ev < marker_events_with_mouse.length; ev++) { - (function(map, object, name) { - if (options[name]) { - google.maps.event.addListener(object, name, function(me){ - if(!me.pixel){ - me.pixel = map.getProjection().fromLatLngToPoint(me.latLng) - } - - options[name].apply(this, [me]); - }); - } - })(this.map, marker, marker_events_with_mouse[ev]); - } - - google.maps.event.addListener(marker, 'click', function() { - this.details = details; - - if (options.click) { - options.click.apply(this, [this]); - } - - if (marker.infoWindow) { - self.hideInfoWindows(); - marker.infoWindow.open(self.map, marker); - } - }); - - google.maps.event.addListener(marker, 'rightclick', function(e) { - e.marker = this; - - if (options.rightclick) { - options.rightclick.apply(this, [e]); - } - - if (window.context_menu[self.el.id]['marker'] != undefined) { - self.buildContextMenu('marker', e); - } - }); - - if (marker.fences) { - google.maps.event.addListener(marker, 'dragend', function() { - self.checkMarkerGeofence(marker, function(m, f) { - outside(m, f); - }); - }); - } - - return marker; -}; - -GMaps.prototype.addMarker = function(options) { - var marker; - if(options.hasOwnProperty('gm_accessors_')) { - // Native google.maps.Marker object - marker = options; - } - else { - if ((options.hasOwnProperty('lat') && options.hasOwnProperty('lng')) || options.position) { - marker = this.createMarker(options); - } - else { - throw 'No latitude or longitude defined.'; - } - } - - marker.setMap(this.map); - - if(this.markerClusterer) { - this.markerClusterer.addMarker(marker); - } - - this.markers.push(marker); - - GMaps.fire('marker_added', marker, this); - - return marker; -}; - -GMaps.prototype.addMarkers = function(array) { - for (var i = 0, marker; marker=array[i]; i++) { - this.addMarker(marker); - } - - return this.markers; -}; - -GMaps.prototype.hideInfoWindows = function() { - for (var i = 0, marker; marker = this.markers[i]; i++){ - if (marker.infoWindow) { - marker.infoWindow.close(); - } - } -}; - -GMaps.prototype.removeMarker = function(marker) { - for (var i = 0; i < this.markers.length; i++) { - if (this.markers[i] === marker) { - this.markers[i].setMap(null); - this.markers.splice(i, 1); - - if(this.markerClusterer) { - this.markerClusterer.removeMarker(marker); - } - - GMaps.fire('marker_removed', marker, this); - - break; - } - } - - return marker; -}; - -GMaps.prototype.removeMarkers = function (collection) { - var new_markers = []; - - if (typeof collection == 'undefined') { - for (var i = 0; i < this.markers.length; i++) { - var marker = this.markers[i]; - marker.setMap(null); - - if(this.markerClusterer) { - this.markerClusterer.removeMarker(marker); - } - - GMaps.fire('marker_removed', marker, this); - } - - this.markers = new_markers; - } - else { - for (var i = 0; i < collection.length; i++) { - var index = this.markers.indexOf(collection[i]); - - if (index > -1) { - var marker = this.markers[index]; - marker.setMap(null); - - if(this.markerClusterer) { - this.markerClusterer.removeMarker(marker); - } - - GMaps.fire('marker_removed', marker, this); - } - } - - for (var i = 0; i < this.markers.length; i++) { - var marker = this.markers[i]; - if (marker.getMap() != null) { - new_markers.push(marker); - } - } - - this.markers = new_markers; - } -}; diff --git a/htdocs/public/high/plugins/gmaps/lib/gmaps.native_extensions.js b/htdocs/public/high/plugins/gmaps/lib/gmaps.native_extensions.js deleted file mode 100644 index 3e5fbd07..00000000 --- a/htdocs/public/high/plugins/gmaps/lib/gmaps.native_extensions.js +++ /dev/null @@ -1,121 +0,0 @@ -//========================== -// Polygon containsLatLng -// https://github.com/tparkin/Google-Maps-Point-in-Polygon -// Poygon getBounds extension - google-maps-extensions -// http://code.google.com/p/google-maps-extensions/source/browse/google.maps.Polygon.getBounds.js -if (!google.maps.Polygon.prototype.getBounds) { - google.maps.Polygon.prototype.getBounds = function(latLng) { - var bounds = new google.maps.LatLngBounds(); - var paths = this.getPaths(); - var path; - - for (var p = 0; p < paths.getLength(); p++) { - path = paths.getAt(p); - for (var i = 0; i < path.getLength(); i++) { - bounds.extend(path.getAt(i)); - } - } - - return bounds; - }; -} - -if (!google.maps.Polygon.prototype.containsLatLng) { - // Polygon containsLatLng - method to determine if a latLng is within a polygon - google.maps.Polygon.prototype.containsLatLng = function(latLng) { - // Exclude points outside of bounds as there is no way they are in the poly - var bounds = this.getBounds(); - - if (bounds !== null && !bounds.contains(latLng)) { - return false; - } - - // Raycast point in polygon method - var inPoly = false; - - var numPaths = this.getPaths().getLength(); - for (var p = 0; p < numPaths; p++) { - var path = this.getPaths().getAt(p); - var numPoints = path.getLength(); - var j = numPoints - 1; - - for (var i = 0; i < numPoints; i++) { - var vertex1 = path.getAt(i); - var vertex2 = path.getAt(j); - - if (vertex1.lng() < latLng.lng() && vertex2.lng() >= latLng.lng() || vertex2.lng() < latLng.lng() && vertex1.lng() >= latLng.lng()) { - if (vertex1.lat() + (latLng.lng() - vertex1.lng()) / (vertex2.lng() - vertex1.lng()) * (vertex2.lat() - vertex1.lat()) < latLng.lat()) { - inPoly = !inPoly; - } - } - - j = i; - } - } - - return inPoly; - }; -} - -if (!google.maps.Circle.prototype.containsLatLng) { - google.maps.Circle.prototype.containsLatLng = function(latLng) { - if (google.maps.geometry) { - return google.maps.geometry.spherical.computeDistanceBetween(this.getCenter(), latLng) <= this.getRadius(); - } - else { - return true; - } - }; -} - -google.maps.LatLngBounds.prototype.containsLatLng = function(latLng) { - return this.contains(latLng); -}; - -google.maps.Marker.prototype.setFences = function(fences) { - this.fences = fences; -}; - -google.maps.Marker.prototype.addFence = function(fence) { - this.fences.push(fence); -}; - -google.maps.Marker.prototype.getId = function() { - return this['__gm_id']; -}; - -//========================== -// Array indexOf -// https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/indexOf -if (!Array.prototype.indexOf) { - Array.prototype.indexOf = function (searchElement /*, fromIndex */ ) { - "use strict"; - if (this == null) { - throw new TypeError(); - } - var t = Object(this); - var len = t.length >>> 0; - if (len === 0) { - return -1; - } - var n = 0; - if (arguments.length > 1) { - n = Number(arguments[1]); - if (n != n) { // shortcut for verifying if it's NaN - n = 0; - } else if (n != 0 && n != Infinity && n != -Infinity) { - n = (n > 0 || -1) * Math.floor(Math.abs(n)); - } - } - if (n >= len) { - return -1; - } - var k = n >= 0 ? n : Math.max(len - Math.abs(n), 0); - for (; k < len; k++) { - if (k in t && t[k] === searchElement) { - return k; - } - } - return -1; - } -} \ No newline at end of file diff --git a/htdocs/public/high/plugins/gmaps/lib/gmaps.overlays.js b/htdocs/public/high/plugins/gmaps/lib/gmaps.overlays.js deleted file mode 100644 index 957e8015..00000000 --- a/htdocs/public/high/plugins/gmaps/lib/gmaps.overlays.js +++ /dev/null @@ -1,134 +0,0 @@ -GMaps.prototype.drawOverlay = function(options) { - var overlay = new google.maps.OverlayView(), - auto_show = true; - - overlay.setMap(this.map); - - if (options.auto_show != null) { - auto_show = options.auto_show; - } - - overlay.onAdd = function() { - var el = document.createElement('div'); - - el.style.borderStyle = "none"; - el.style.borderWidth = "0px"; - el.style.position = "absolute"; - el.style.zIndex = 100; - el.innerHTML = options.content; - - overlay.el = el; - - if (!options.layer) { - options.layer = 'overlayLayer'; - } - - var panes = this.getPanes(), - overlayLayer = panes[options.layer], - stop_overlay_events = ['contextmenu', 'DOMMouseScroll', 'dblclick', 'mousedown']; - - overlayLayer.appendChild(el); - - for (var ev = 0; ev < stop_overlay_events.length; ev++) { - (function(object, name) { - google.maps.event.addDomListener(object, name, function(e){ - if (navigator.userAgent.toLowerCase().indexOf('msie') != -1 && document.all) { - e.cancelBubble = true; - e.returnValue = false; - } - else { - e.stopPropagation(); - } - }); - })(el, stop_overlay_events[ev]); - } - - if (options.click) { - panes.overlayMouseTarget.appendChild(overlay.el); - google.maps.event.addDomListener(overlay.el, 'click', function() { - options.click.apply(overlay, [overlay]); - }); - } - - google.maps.event.trigger(this, 'ready'); - }; - - overlay.draw = function() { - var projection = this.getProjection(), - pixel = projection.fromLatLngToDivPixel(new google.maps.LatLng(options.lat, options.lng)); - - options.horizontalOffset = options.horizontalOffset || 0; - options.verticalOffset = options.verticalOffset || 0; - - var el = overlay.el, - content = el.children[0], - content_height = content.clientHeight, - content_width = content.clientWidth; - - switch (options.verticalAlign) { - case 'top': - el.style.top = (pixel.y - content_height + options.verticalOffset) + 'px'; - break; - default: - case 'middle': - el.style.top = (pixel.y - (content_height / 2) + options.verticalOffset) + 'px'; - break; - case 'bottom': - el.style.top = (pixel.y + options.verticalOffset) + 'px'; - break; - } - - switch (options.horizontalAlign) { - case 'left': - el.style.left = (pixel.x - content_width + options.horizontalOffset) + 'px'; - break; - default: - case 'center': - el.style.left = (pixel.x - (content_width / 2) + options.horizontalOffset) + 'px'; - break; - case 'right': - el.style.left = (pixel.x + options.horizontalOffset) + 'px'; - break; - } - - el.style.display = auto_show ? 'block' : 'none'; - - if (!auto_show) { - options.show.apply(this, [el]); - } - }; - - overlay.onRemove = function() { - var el = overlay.el; - - if (options.remove) { - options.remove.apply(this, [el]); - } - else { - overlay.el.parentNode.removeChild(overlay.el); - overlay.el = null; - } - }; - - this.overlays.push(overlay); - return overlay; -}; - -GMaps.prototype.removeOverlay = function(overlay) { - for (var i = 0; i < this.overlays.length; i++) { - if (this.overlays[i] === overlay) { - this.overlays[i].setMap(null); - this.overlays.splice(i, 1); - - break; - } - } -}; - -GMaps.prototype.removeOverlays = function() { - for (var i = 0, item; item = this.overlays[i]; i++) { - item.setMap(null); - } - - this.overlays = []; -}; diff --git a/htdocs/public/high/plugins/gmaps/lib/gmaps.routes.js b/htdocs/public/high/plugins/gmaps/lib/gmaps.routes.js deleted file mode 100644 index ce925dda..00000000 --- a/htdocs/public/high/plugins/gmaps/lib/gmaps.routes.js +++ /dev/null @@ -1,330 +0,0 @@ -var travelMode, unitSystem; - -GMaps.prototype.getRoutes = function(options) { - switch (options.travelMode) { - case 'bicycling': - travelMode = google.maps.TravelMode.BICYCLING; - break; - case 'transit': - travelMode = google.maps.TravelMode.TRANSIT; - break; - case 'driving': - travelMode = google.maps.TravelMode.DRIVING; - break; - default: - travelMode = google.maps.TravelMode.WALKING; - break; - } - - if (options.unitSystem === 'imperial') { - unitSystem = google.maps.UnitSystem.IMPERIAL; - } - else { - unitSystem = google.maps.UnitSystem.METRIC; - } - - var base_options = { - avoidHighways: false, - avoidTolls: false, - optimizeWaypoints: false, - waypoints: [] - }, - request_options = extend_object(base_options, options); - - request_options.origin = /string/.test(typeof options.origin) ? options.origin : new google.maps.LatLng(options.origin[0], options.origin[1]); - request_options.destination = /string/.test(typeof options.destination) ? options.destination : new google.maps.LatLng(options.destination[0], options.destination[1]); - request_options.travelMode = travelMode; - request_options.unitSystem = unitSystem; - - delete request_options.callback; - delete request_options.error; - - var self = this, - service = new google.maps.DirectionsService(); - - service.route(request_options, function(result, status) { - if (status === google.maps.DirectionsStatus.OK) { - for (var r in result.routes) { - if (result.routes.hasOwnProperty(r)) { - self.routes.push(result.routes[r]); - } - } - - if (options.callback) { - options.callback(self.routes); - } - } - else { - if (options.error) { - options.error(result, status); - } - } - }); -}; - -GMaps.prototype.removeRoutes = function() { - this.routes = []; -}; - -GMaps.prototype.getElevations = function(options) { - options = extend_object({ - locations: [], - path : false, - samples : 256 - }, options); - - if (options.locations.length > 0) { - if (options.locations[0].length > 0) { - options.locations = array_flat(array_map([options.locations], arrayToLatLng, false)); - } - } - - var callback = options.callback; - delete options.callback; - - var service = new google.maps.ElevationService(); - - //location request - if (!options.path) { - delete options.path; - delete options.samples; - - service.getElevationForLocations(options, function(result, status) { - if (callback && typeof(callback) === "function") { - callback(result, status); - } - }); - //path request - } else { - var pathRequest = { - path : options.locations, - samples : options.samples - }; - - service.getElevationAlongPath(pathRequest, function(result, status) { - if (callback && typeof(callback) === "function") { - callback(result, status); - } - }); - } -}; - -GMaps.prototype.cleanRoute = GMaps.prototype.removePolylines; - -GMaps.prototype.drawRoute = function(options) { - var self = this; - - this.getRoutes({ - origin: options.origin, - destination: options.destination, - travelMode: options.travelMode, - waypoints: options.waypoints, - unitSystem: options.unitSystem, - error: options.error, - callback: function(e) { - if (e.length > 0) { - var polyline_options = { - path: e[e.length - 1].overview_path, - strokeColor: options.strokeColor, - strokeOpacity: options.strokeOpacity, - strokeWeight: options.strokeWeight - }; - - if (options.hasOwnProperty("icons")) { - polyline_options.icons = options.icons; - } - - self.drawPolyline(polyline_options); - - if (options.callback) { - options.callback(e[e.length - 1]); - } - } - } - }); -}; - -GMaps.prototype.travelRoute = function(options) { - if (options.origin && options.destination) { - this.getRoutes({ - origin: options.origin, - destination: options.destination, - travelMode: options.travelMode, - waypoints : options.waypoints, - unitSystem: options.unitSystem, - error: options.error, - callback: function(e) { - //start callback - if (e.length > 0 && options.start) { - options.start(e[e.length - 1]); - } - - //step callback - if (e.length > 0 && options.step) { - var route = e[e.length - 1]; - if (route.legs.length > 0) { - var steps = route.legs[0].steps; - for (var i = 0, step; step = steps[i]; i++) { - step.step_number = i; - options.step(step, (route.legs[0].steps.length - 1)); - } - } - } - - //end callback - if (e.length > 0 && options.end) { - options.end(e[e.length - 1]); - } - } - }); - } - else if (options.route) { - if (options.route.legs.length > 0) { - var steps = options.route.legs[0].steps; - for (var i = 0, step; step = steps[i]; i++) { - step.step_number = i; - options.step(step); - } - } - } -}; - -GMaps.prototype.drawSteppedRoute = function(options) { - var self = this; - - if (options.origin && options.destination) { - this.getRoutes({ - origin: options.origin, - destination: options.destination, - travelMode: options.travelMode, - waypoints : options.waypoints, - error: options.error, - callback: function(e) { - //start callback - if (e.length > 0 && options.start) { - options.start(e[e.length - 1]); - } - - //step callback - if (e.length > 0 && options.step) { - var route = e[e.length - 1]; - if (route.legs.length > 0) { - var steps = route.legs[0].steps; - for (var i = 0, step; step = steps[i]; i++) { - step.step_number = i; - var polyline_options = { - path: step.path, - strokeColor: options.strokeColor, - strokeOpacity: options.strokeOpacity, - strokeWeight: options.strokeWeight - }; - - if (options.hasOwnProperty("icons")) { - polyline_options.icons = options.icons; - } - - self.drawPolyline(polyline_options); - options.step(step, (route.legs[0].steps.length - 1)); - } - } - } - - //end callback - if (e.length > 0 && options.end) { - options.end(e[e.length - 1]); - } - } - }); - } - else if (options.route) { - if (options.route.legs.length > 0) { - var steps = options.route.legs[0].steps; - for (var i = 0, step; step = steps[i]; i++) { - step.step_number = i; - var polyline_options = { - path: step.path, - strokeColor: options.strokeColor, - strokeOpacity: options.strokeOpacity, - strokeWeight: options.strokeWeight - }; - - if (options.hasOwnProperty("icons")) { - polyline_options.icons = options.icons; - } - - self.drawPolyline(polyline_options); - options.step(step); - } - } - } -}; - -GMaps.Route = function(options) { - this.origin = options.origin; - this.destination = options.destination; - this.waypoints = options.waypoints; - - this.map = options.map; - this.route = options.route; - this.step_count = 0; - this.steps = this.route.legs[0].steps; - this.steps_length = this.steps.length; - - var polyline_options = { - path: new google.maps.MVCArray(), - strokeColor: options.strokeColor, - strokeOpacity: options.strokeOpacity, - strokeWeight: options.strokeWeight - }; - - if (options.hasOwnProperty("icons")) { - polyline_options.icons = options.icons; - } - - this.polyline = this.map.drawPolyline(polyline_options).getPath(); -}; - -GMaps.Route.prototype.getRoute = function(options) { - var self = this; - - this.map.getRoutes({ - origin : this.origin, - destination : this.destination, - travelMode : options.travelMode, - waypoints : this.waypoints || [], - error: options.error, - callback : function() { - self.route = e[0]; - - if (options.callback) { - options.callback.call(self); - } - } - }); -}; - -GMaps.Route.prototype.back = function() { - if (this.step_count > 0) { - this.step_count--; - var path = this.route.legs[0].steps[this.step_count].path; - - for (var p in path){ - if (path.hasOwnProperty(p)){ - this.polyline.pop(); - } - } - } -}; - -GMaps.Route.prototype.forward = function() { - if (this.step_count < this.steps_length) { - var path = this.route.legs[0].steps[this.step_count].path; - - for (var p in path){ - if (path.hasOwnProperty(p)){ - this.polyline.push(path[p]); - } - } - this.step_count++; - } -}; diff --git a/htdocs/public/high/plugins/gmaps/lib/gmaps.static.js b/htdocs/public/high/plugins/gmaps/lib/gmaps.static.js deleted file mode 100644 index e8c5b080..00000000 --- a/htdocs/public/high/plugins/gmaps/lib/gmaps.static.js +++ /dev/null @@ -1,245 +0,0 @@ -GMaps.prototype.toImage = function(options) { - var options = options || {}, - static_map_options = {}; - - static_map_options['size'] = options['size'] || [this.el.clientWidth, this.el.clientHeight]; - static_map_options['lat'] = this.getCenter().lat(); - static_map_options['lng'] = this.getCenter().lng(); - - if (this.markers.length > 0) { - static_map_options['markers'] = []; - - for (var i = 0; i < this.markers.length; i++) { - static_map_options['markers'].push({ - lat: this.markers[i].getPosition().lat(), - lng: this.markers[i].getPosition().lng() - }); - } - } - - if (this.polylines.length > 0) { - var polyline = this.polylines[0]; - - static_map_options['polyline'] = {}; - static_map_options['polyline']['path'] = google.maps.geometry.encoding.encodePath(polyline.getPath()); - static_map_options['polyline']['strokeColor'] = polyline.strokeColor - static_map_options['polyline']['strokeOpacity'] = polyline.strokeOpacity - static_map_options['polyline']['strokeWeight'] = polyline.strokeWeight - } - - return GMaps.staticMapURL(static_map_options); -}; - -GMaps.staticMapURL = function(options){ - var parameters = [], - data, - static_root = (location.protocol === 'file:' ? 'http:' : location.protocol ) + '//maps.googleapis.com/maps/api/staticmap'; - - if (options.url) { - static_root = options.url; - delete options.url; - } - - static_root += '?'; - - var markers = options.markers; - - delete options.markers; - - if (!markers && options.marker) { - markers = [options.marker]; - delete options.marker; - } - - var styles = options.styles; - - delete options.styles; - - var polyline = options.polyline; - delete options.polyline; - - /** Map options **/ - if (options.center) { - parameters.push('center=' + options.center); - delete options.center; - } - else if (options.address) { - parameters.push('center=' + options.address); - delete options.address; - } - else if (options.lat) { - parameters.push(['center=', options.lat, ',', options.lng].join('')); - delete options.lat; - delete options.lng; - } - else if (options.visible) { - var visible = encodeURI(options.visible.join('|')); - parameters.push('visible=' + visible); - } - - var size = options.size; - if (size) { - if (size.join) { - size = size.join('x'); - } - delete options.size; - } - else { - size = '630x300'; - } - parameters.push('size=' + size); - - if (!options.zoom && options.zoom !== false) { - options.zoom = 15; - } - - var sensor = options.hasOwnProperty('sensor') ? !!options.sensor : true; - delete options.sensor; - parameters.push('sensor=' + sensor); - - for (var param in options) { - if (options.hasOwnProperty(param)) { - parameters.push(param + '=' + options[param]); - } - } - - /** Markers **/ - if (markers) { - var marker, loc; - - for (var i = 0; data = markers[i]; i++) { - marker = []; - - if (data.size && data.size !== 'normal') { - marker.push('size:' + data.size); - delete data.size; - } - else if (data.icon) { - marker.push('icon:' + encodeURI(data.icon)); - delete data.icon; - } - - if (data.color) { - marker.push('color:' + data.color.replace('#', '0x')); - delete data.color; - } - - if (data.label) { - marker.push('label:' + data.label[0].toUpperCase()); - delete data.label; - } - - loc = (data.address ? data.address : data.lat + ',' + data.lng); - delete data.address; - delete data.lat; - delete data.lng; - - for(var param in data){ - if (data.hasOwnProperty(param)) { - marker.push(param + ':' + data[param]); - } - } - - if (marker.length || i === 0) { - marker.push(loc); - marker = marker.join('|'); - parameters.push('markers=' + encodeURI(marker)); - } - // New marker without styles - else { - marker = parameters.pop() + encodeURI('|' + loc); - parameters.push(marker); - } - } - } - - /** Map Styles **/ - if (styles) { - for (var i = 0; i < styles.length; i++) { - var styleRule = []; - if (styles[i].featureType){ - styleRule.push('feature:' + styles[i].featureType.toLowerCase()); - } - - if (styles[i].elementType) { - styleRule.push('element:' + styles[i].elementType.toLowerCase()); - } - - for (var j = 0; j < styles[i].stylers.length; j++) { - for (var p in styles[i].stylers[j]) { - var ruleArg = styles[i].stylers[j][p]; - if (p == 'hue' || p == 'color') { - ruleArg = '0x' + ruleArg.substring(1); - } - styleRule.push(p + ':' + ruleArg); - } - } - - var rule = styleRule.join('|'); - if (rule != '') { - parameters.push('style=' + rule); - } - } - } - - /** Polylines **/ - function parseColor(color, opacity) { - if (color[0] === '#'){ - color = color.replace('#', '0x'); - - if (opacity) { - opacity = parseFloat(opacity); - opacity = Math.min(1, Math.max(opacity, 0)); - if (opacity === 0) { - return '0x00000000'; - } - opacity = (opacity * 255).toString(16); - if (opacity.length === 1) { - opacity += opacity; - } - - color = color.slice(0,8) + opacity; - } - } - return color; - } - - if (polyline) { - data = polyline; - polyline = []; - - if (data.strokeWeight) { - polyline.push('weight:' + parseInt(data.strokeWeight, 10)); - } - - if (data.strokeColor) { - var color = parseColor(data.strokeColor, data.strokeOpacity); - polyline.push('color:' + color); - } - - if (data.fillColor) { - var fillcolor = parseColor(data.fillColor, data.fillOpacity); - polyline.push('fillcolor:' + fillcolor); - } - - var path = data.path; - if (path.join) { - for (var j=0, pos; pos=path[j]; j++) { - polyline.push(pos.join(',')); - } - } - else { - polyline.push('enc:' + path); - } - - polyline = polyline.join('|'); - parameters.push('path=' + encodeURI(polyline)); - } - - /** Retina support **/ - var dpi = window.devicePixelRatio || 1; - parameters.push('scale=' + dpi); - - parameters = parameters.join('&'); - return static_root + parameters; -}; diff --git a/htdocs/public/high/plugins/gmaps/lib/gmaps.streetview.js b/htdocs/public/high/plugins/gmaps/lib/gmaps.streetview.js deleted file mode 100644 index fd1fa129..00000000 --- a/htdocs/public/high/plugins/gmaps/lib/gmaps.streetview.js +++ /dev/null @@ -1,44 +0,0 @@ -GMaps.prototype.createPanorama = function(streetview_options) { - if (!streetview_options.hasOwnProperty('lat') || !streetview_options.hasOwnProperty('lng')) { - streetview_options.lat = this.getCenter().lat(); - streetview_options.lng = this.getCenter().lng(); - } - - this.panorama = GMaps.createPanorama(streetview_options); - - this.map.setStreetView(this.panorama); - - return this.panorama; -}; - -GMaps.createPanorama = function(options) { - var el = getElementById(options.el, options.context); - - options.position = new google.maps.LatLng(options.lat, options.lng); - - delete options.el; - delete options.context; - delete options.lat; - delete options.lng; - - var streetview_events = ['closeclick', 'links_changed', 'pano_changed', 'position_changed', 'pov_changed', 'resize', 'visible_changed'], - streetview_options = extend_object({visible : true}, options); - - for (var i = 0; i < streetview_events.length; i++) { - delete streetview_options[streetview_events[i]]; - } - - var panorama = new google.maps.StreetViewPanorama(el, streetview_options); - - for (var i = 0; i < streetview_events.length; i++) { - (function(object, name) { - if (options[name]) { - google.maps.event.addListener(object, name, function(){ - options[name].apply(this); - }); - } - })(panorama, streetview_events[i]); - } - - return panorama; -}; diff --git a/htdocs/public/high/plugins/gmaps/lib/gmaps.styles.js b/htdocs/public/high/plugins/gmaps/lib/gmaps.styles.js deleted file mode 100644 index db06b455..00000000 --- a/htdocs/public/high/plugins/gmaps/lib/gmaps.styles.js +++ /dev/null @@ -1,9 +0,0 @@ -GMaps.prototype.addStyle = function(options) { - var styledMapType = new google.maps.StyledMapType(options.styles, { name: options.styledMapName }); - - this.map.mapTypes.set(options.mapTypeId, styledMapType); -}; - -GMaps.prototype.setStyle = function(mapTypeId) { - this.map.setMapTypeId(mapTypeId); -}; diff --git a/htdocs/public/high/plugins/gmaps/lib/gmaps.utils.js b/htdocs/public/high/plugins/gmaps/lib/gmaps.utils.js deleted file mode 100644 index 6655363b..00000000 --- a/htdocs/public/high/plugins/gmaps/lib/gmaps.utils.js +++ /dev/null @@ -1,42 +0,0 @@ -GMaps.geolocate = function(options) { - var complete_callback = options.always || options.complete; - - if (navigator.geolocation) { - navigator.geolocation.getCurrentPosition(function(position) { - options.success(position); - - if (complete_callback) { - complete_callback(); - } - }, function(error) { - options.error(error); - - if (complete_callback) { - complete_callback(); - } - }, options.options); - } - else { - options.not_supported(); - - if (complete_callback) { - complete_callback(); - } - } -}; - -GMaps.geocode = function(options) { - this.geocoder = new google.maps.Geocoder(); - var callback = options.callback; - if (options.hasOwnProperty('lat') && options.hasOwnProperty('lng')) { - options.latLng = new google.maps.LatLng(options.lat, options.lng); - } - - delete options.lat; - delete options.lng; - delete options.callback; - - this.geocoder.geocode(options, function(results, status) { - callback(results, status); - }); -}; diff --git a/htdocs/public/high/plugins/ion-rangeslider/ion.rangeSlider.css b/htdocs/public/high/plugins/ion-rangeslider/ion.rangeSlider.css deleted file mode 100644 index 68fd119e..00000000 --- a/htdocs/public/high/plugins/ion-rangeslider/ion.rangeSlider.css +++ /dev/null @@ -1,150 +0,0 @@ -/* Ion.RangeSlider -// css version 2.0.3 -// © 2013-2014 Denis Ineshin | IonDen.com -// ===================================================================================================================*/ - -/* ===================================================================================================================== -// RangeSlider */ - -.irs { - position: relative; display: block; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - .irs-line { - position: relative; display: block; - overflow: hidden; - outline: none !important; - } - .irs-line-left, .irs-line-mid, .irs-line-right { - position: absolute; display: block; - top: 0; - } - .irs-line-left { - left: 0; width: 11%; - } - .irs-line-mid { - left: 9%; width: 82%; - } - .irs-line-right { - right: 0; width: 11%; - } - - .irs-bar { - position: absolute; display: block; - left: 0; width: 0; - } - .irs-bar-edge { - position: absolute; display: block; - top: 0; left: 0; - } - - .irs-shadow { - position: absolute; display: none; - left: 0; width: 0; - } - - .irs-slider { - position: absolute; display: block; - cursor: default; - z-index: 1; - } - .irs-slider.single { - - } - .irs-slider.from { - - } - .irs-slider.to { - - } - .irs-slider.type_last { - z-index: 2; - } - - .irs-min { - position: absolute; display: block; - left: 0; - cursor: default; - } - .irs-max { - position: absolute; display: block; - right: 0; - cursor: default; - } - - .irs-from, .irs-to, .irs-single { - position: absolute; display: block; - top: 0; left: 0; - cursor: default; - white-space: nowrap; - } - -.irs-grid { - position: absolute; display: none; - bottom: 0; left: 0; - width: 100%; height: 20px; -} -.irs-with-grid .irs-grid { - display: block; -} - .irs-grid-pol { - position: absolute; - top: 0; left: 0; - width: 1px; height: 8px; - background: #000; - } - .irs-grid-pol.small { - height: 4px; - } - .irs-grid-text { - position: absolute; - bottom: 0; left: 0; - white-space: nowrap; - text-align: center; - font-size: 9px; line-height: 9px; - padding: 0 3px; - color: #000; - } - -.irs-disable-mask { - position: absolute; display: block; - top: 0; left: -1%; - width: 102%; height: 100%; - cursor: default; - background: rgba(0,0,0,0.0); - z-index: 2; -} -.lt-ie9 .irs-disable-mask { - background: #000; - filter: alpha(opacity=0); - cursor: not-allowed; -} - -.irs-disabled { - opacity: 0.4; -} - - -.irs-hidden-input { - position: absolute !important; - display: block !important; - top: 0 !important; - left: 0 !important; - width: 0 !important; - height: 0 !important; - font-size: 0 !important; - line-height: 0 !important; - padding: 0 !important; - margin: 0 !important; - overflow: hidden; - outline: none !important; - z-index: -9999 !important; - background: none !important; - border-style: solid !important; - border-color: transparent !important; -} diff --git a/htdocs/public/high/plugins/ion-rangeslider/ion.rangeSlider.min.js b/htdocs/public/high/plugins/ion-rangeslider/ion.rangeSlider.min.js deleted file mode 100644 index 11ae97f3..00000000 --- a/htdocs/public/high/plugins/ion-rangeslider/ion.rangeSlider.min.js +++ /dev/null @@ -1,76 +0,0 @@ -// Ion.RangeSlider | version 2.1.4 | https://github.com/IonDen/ion.rangeSlider -;(function(g){"function"===typeof define&&define.amd?define(["jquery"],function(q){g(q,document,window,navigator)}):g(jQuery,document,window,navigator)})(function(g,q,h,t,v){var u=0,p=function(){var a=t.userAgent,b=/msie\s\d+/i;return 0a)?(g("html").addClass("lt-ie9"),!0):!1}();Function.prototype.bind||(Function.prototype.bind=function(a){var b=this,d=[].slice;if("function"!=typeof b)throw new TypeError;var c=d.call(arguments,1),e=function(){if(this instanceof -e){var f=function(){};f.prototype=b.prototype;var f=new f,l=b.apply(f,c.concat(d.call(arguments)));return Object(l)===l?l:f}return b.apply(a,c.concat(d.call(arguments)))};return e});Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){var d;if(null==this)throw new TypeError('"this" is null or not defined');var c=Object(this),e=c.length>>>0;if(0===e)return-1;d=+b||0;Infinity===Math.abs(d)&&(d=0);if(d>=e)return-1;for(d=Math.max(0<=d?d:e-Math.abs(d),0);d');this.$cache.input.prop("readonly",!0);this.$cache.cont=this.$cache.input.prev();this.result.slider=this.$cache.cont;this.$cache.cont.html('01000'); -this.$cache.rs=this.$cache.cont.find(".irs");this.$cache.min=this.$cache.cont.find(".irs-min");this.$cache.max=this.$cache.cont.find(".irs-max");this.$cache.from=this.$cache.cont.find(".irs-from");this.$cache.to=this.$cache.cont.find(".irs-to");this.$cache.single=this.$cache.cont.find(".irs-single");this.$cache.bar=this.$cache.cont.find(".irs-bar");this.$cache.line=this.$cache.cont.find(".irs-line");this.$cache.grid=this.$cache.cont.find(".irs-grid");"single"===this.options.type?(this.$cache.cont.append(''), -this.$cache.edge=this.$cache.cont.find(".irs-bar-edge"),this.$cache.s_single=this.$cache.cont.find(".single"),this.$cache.from[0].style.visibility="hidden",this.$cache.to[0].style.visibility="hidden",this.$cache.shad_single=this.$cache.cont.find(".shadow-single")):(this.$cache.cont.append(''),this.$cache.s_from=this.$cache.cont.find(".from"), -this.$cache.s_to=this.$cache.cont.find(".to"),this.$cache.shad_from=this.$cache.cont.find(".shadow-from"),this.$cache.shad_to=this.$cache.cont.find(".shadow-to"),this.setTopHandler());this.options.hide_from_to&&(this.$cache.from[0].style.display="none",this.$cache.to[0].style.display="none",this.$cache.single[0].style.display="none");this.appendGrid();this.options.disable?(this.appendDisableMask(),this.$cache.input[0].disabled=!0):(this.$cache.cont.removeClass("irs-disabled"),this.$cache.input[0].disabled= -!1,this.bindEvents());this.options.drag_interval&&(this.$cache.bar[0].style.cursor="ew-resize")},setTopHandler:function(){var a=this.options.max,b=this.options.to;this.options.from>this.options.min&&b===a?this.$cache.s_from.addClass("type_last"):b');this.$cache.cont.addClass("irs-disabled")},remove:function(){this.$cache.cont.remove();this.$cache.cont=null;this.$cache.line.off("keydown.irs_"+this.plugin_count);this.$cache.body.off("touchmove.irs_"+this.plugin_count);this.$cache.body.off("mousemove.irs_"+this.plugin_count);this.$cache.win.off("touchend.irs_"+ -this.plugin_count);this.$cache.win.off("mouseup.irs_"+this.plugin_count);p&&(this.$cache.body.off("mouseup.irs_"+this.plugin_count),this.$cache.body.off("mouseleave.irs_"+this.plugin_count));this.$cache.grid_labels=[];this.coords.big=[];this.coords.big_w=[];this.coords.big_p=[];this.coords.big_x=[];cancelAnimationFrame(this.raf_id)},bindEvents:function(){if(!this.no_diapason){this.$cache.body.on("touchmove.irs_"+this.plugin_count,this.pointerMove.bind(this));this.$cache.body.on("mousemove.irs_"+this.plugin_count, -this.pointerMove.bind(this));this.$cache.win.on("touchend.irs_"+this.plugin_count,this.pointerUp.bind(this));this.$cache.win.on("mouseup.irs_"+this.plugin_count,this.pointerUp.bind(this));this.$cache.line.on("touchstart.irs_"+this.plugin_count,this.pointerClick.bind(this,"click"));this.$cache.line.on("mousedown.irs_"+this.plugin_count,this.pointerClick.bind(this,"click"));this.options.drag_interval&&"double"===this.options.type?(this.$cache.bar.on("touchstart.irs_"+this.plugin_count,this.pointerDown.bind(this, -"both")),this.$cache.bar.on("mousedown.irs_"+this.plugin_count,this.pointerDown.bind(this,"both"))):(this.$cache.bar.on("touchstart.irs_"+this.plugin_count,this.pointerClick.bind(this,"click")),this.$cache.bar.on("mousedown.irs_"+this.plugin_count,this.pointerClick.bind(this,"click")));"single"===this.options.type?(this.$cache.single.on("touchstart.irs_"+this.plugin_count,this.pointerDown.bind(this,"single")),this.$cache.s_single.on("touchstart.irs_"+this.plugin_count,this.pointerDown.bind(this,"single")), -this.$cache.shad_single.on("touchstart.irs_"+this.plugin_count,this.pointerClick.bind(this,"click")),this.$cache.single.on("mousedown.irs_"+this.plugin_count,this.pointerDown.bind(this,"single")),this.$cache.s_single.on("mousedown.irs_"+this.plugin_count,this.pointerDown.bind(this,"single")),this.$cache.edge.on("mousedown.irs_"+this.plugin_count,this.pointerClick.bind(this,"click")),this.$cache.shad_single.on("mousedown.irs_"+this.plugin_count,this.pointerClick.bind(this,"click"))):(this.$cache.single.on("touchstart.irs_"+ -this.plugin_count,this.pointerDown.bind(this,null)),this.$cache.single.on("mousedown.irs_"+this.plugin_count,this.pointerDown.bind(this,null)),this.$cache.from.on("touchstart.irs_"+this.plugin_count,this.pointerDown.bind(this,"from")),this.$cache.s_from.on("touchstart.irs_"+this.plugin_count,this.pointerDown.bind(this,"from")),this.$cache.to.on("touchstart.irs_"+this.plugin_count,this.pointerDown.bind(this,"to")),this.$cache.s_to.on("touchstart.irs_"+this.plugin_count,this.pointerDown.bind(this,"to")), -this.$cache.shad_from.on("touchstart.irs_"+this.plugin_count,this.pointerClick.bind(this,"click")),this.$cache.shad_to.on("touchstart.irs_"+this.plugin_count,this.pointerClick.bind(this,"click")),this.$cache.from.on("mousedown.irs_"+this.plugin_count,this.pointerDown.bind(this,"from")),this.$cache.s_from.on("mousedown.irs_"+this.plugin_count,this.pointerDown.bind(this,"from")),this.$cache.to.on("mousedown.irs_"+this.plugin_count,this.pointerDown.bind(this,"to")),this.$cache.s_to.on("mousedown.irs_"+ -this.plugin_count,this.pointerDown.bind(this,"to")),this.$cache.shad_from.on("mousedown.irs_"+this.plugin_count,this.pointerClick.bind(this,"click")),this.$cache.shad_to.on("mousedown.irs_"+this.plugin_count,this.pointerClick.bind(this,"click")));if(this.options.keyboard)this.$cache.line.on("keydown.irs_"+this.plugin_count,this.key.bind(this,"keyboard"));p&&(this.$cache.body.on("mouseup.irs_"+this.plugin_count,this.pointerUp.bind(this)),this.$cache.body.on("mouseleave.irs_"+this.plugin_count,this.pointerUp.bind(this)))}}, -pointerMove:function(a){this.dragging&&(this.coords.x_pointer=(a.pageX||a.originalEvent.touches&&a.originalEvent.touches[0].pageX)-this.coords.x_gap,this.calc())},pointerUp:function(a){if(this.current_plugin===this.plugin_count&&this.is_active){this.is_active=!1;this.$cache.cont.find(".state_hover").removeClass("state_hover");this.force_redraw=!0;p&&g("*").prop("unselectable",!1);this.updateScene();this.restoreOriginalMinInterval();if(g.contains(this.$cache.cont[0],a.target)||this.dragging)this.is_finish= -!0,this.callOnFinish();this.dragging=!1}},pointerDown:function(a,b){b.preventDefault();var d=b.pageX||b.originalEvent.touches&&b.originalEvent.touches[0].pageX;2!==b.button&&("both"===a&&this.setTempMinInterval(),a||(a=this.target),this.current_plugin=this.plugin_count,this.target=a,this.dragging=this.is_active=!0,this.coords.x_gap=this.$cache.rs.offset().left,this.coords.x_pointer=d-this.coords.x_gap,this.calcPointerPercent(),this.changeLevel(a),p&&g("*").prop("unselectable",!0),this.$cache.line.trigger("focus"), -this.updateScene())},pointerClick:function(a,b){b.preventDefault();var d=b.pageX||b.originalEvent.touches&&b.originalEvent.touches[0].pageX;2!==b.button&&(this.current_plugin=this.plugin_count,this.target=a,this.is_click=!0,this.coords.x_gap=this.$cache.rs.offset().left,this.coords.x_pointer=+(d-this.coords.x_gap).toFixed(),this.force_redraw=!0,this.calc(),this.$cache.line.trigger("focus"))},key:function(a,b){if(!(this.current_plugin!==this.plugin_count||b.altKey||b.ctrlKey||b.shiftKey||b.metaKey)){switch(b.which){case 83:case 65:case 40:case 37:b.preventDefault(); -this.moveByKey(!1);break;case 87:case 68:case 38:case 39:b.preventDefault(),this.moveByKey(!0)}return!0}},moveByKey:function(a){var b=this.coords.p_pointer,b=a?b+this.options.keyboard_step:b-this.options.keyboard_step;this.coords.x_pointer=this.toFixed(this.coords.w_rs/100*b);this.is_key=!0;this.calc()},setMinMax:function(){this.options&&(this.options.hide_min_max?(this.$cache.min[0].style.display="none",this.$cache.max[0].style.display="none"):(this.options.values.length?(this.$cache.min.html(this.decorate(this.options.p_values[this.options.min])), -this.$cache.max.html(this.decorate(this.options.p_values[this.options.max]))):(this.$cache.min.html(this.decorate(this._prettify(this.options.min),this.options.min)),this.$cache.max.html(this.decorate(this._prettify(this.options.max),this.options.max))),this.labels.w_min=this.$cache.min.outerWidth(!1),this.labels.w_max=this.$cache.max.outerWidth(!1)))},setTempMinInterval:function(){var a=this.result.to-this.result.from;null===this.old_min_interval&&(this.old_min_interval=this.options.min_interval); -this.options.min_interval=a},restoreOriginalMinInterval:function(){null!==this.old_min_interval&&(this.options.min_interval=this.old_min_interval,this.old_min_interval=null)},calc:function(a){if(this.options){this.calc_count++;if(10===this.calc_count||a)this.calc_count=0,this.coords.w_rs=this.$cache.rs.outerWidth(!1),this.calcHandlePercent();if(this.coords.w_rs){this.calcPointerPercent();a=this.getHandleX();"click"===this.target&&(this.coords.p_gap=this.coords.p_handle/2,a=this.getHandleX(),this.target= -this.options.drag_interval?"both_one":this.chooseHandle(a));switch(this.target){case "base":var b=(this.options.max-this.options.min)/100;a=(this.result.from-this.options.min)/b;b=(this.result.to-this.options.min)/b;this.coords.p_single_real=this.toFixed(a);this.coords.p_from_real=this.toFixed(a);this.coords.p_to_real=this.toFixed(b);this.coords.p_single_real=this.checkDiapason(this.coords.p_single_real,this.options.from_min,this.options.from_max);this.coords.p_from_real=this.checkDiapason(this.coords.p_from_real, -this.options.from_min,this.options.from_max);this.coords.p_to_real=this.checkDiapason(this.coords.p_to_real,this.options.to_min,this.options.to_max);this.coords.p_single_fake=this.convertToFakePercent(this.coords.p_single_real);this.coords.p_from_fake=this.convertToFakePercent(this.coords.p_from_real);this.coords.p_to_fake=this.convertToFakePercent(this.coords.p_to_real);this.target=null;break;case "single":if(this.options.from_fixed)break;this.coords.p_single_real=this.convertToRealPercent(a);this.coords.p_single_real= -this.calcWithStep(this.coords.p_single_real);this.coords.p_single_real=this.checkDiapason(this.coords.p_single_real,this.options.from_min,this.options.from_max);this.coords.p_single_fake=this.convertToFakePercent(this.coords.p_single_real);break;case "from":if(this.options.from_fixed)break;this.coords.p_from_real=this.convertToRealPercent(a);this.coords.p_from_real=this.calcWithStep(this.coords.p_from_real);this.coords.p_from_real>this.coords.p_to_real&&(this.coords.p_from_real=this.coords.p_to_real); -this.coords.p_from_real=this.checkDiapason(this.coords.p_from_real,this.options.from_min,this.options.from_max);this.coords.p_from_real=this.checkMinInterval(this.coords.p_from_real,this.coords.p_to_real,"from");this.coords.p_from_real=this.checkMaxInterval(this.coords.p_from_real,this.coords.p_to_real,"from");this.coords.p_from_fake=this.convertToFakePercent(this.coords.p_from_real);break;case "to":if(this.options.to_fixed)break;this.coords.p_to_real=this.convertToRealPercent(a);this.coords.p_to_real= -this.calcWithStep(this.coords.p_to_real);this.coords.p_to_realb&&(b=0,d=b+a);100this.coords.x_pointer||isNaN(this.coords.x_pointer)? -this.coords.x_pointer=0:this.coords.x_pointer>this.coords.w_rs&&(this.coords.x_pointer=this.coords.w_rs),this.coords.p_pointer=this.toFixed(this.coords.x_pointer/this.coords.w_rs*100)):this.coords.p_pointer=0},convertToRealPercent:function(a){return a/(100-this.coords.p_handle)*100},convertToFakePercent:function(a){return a/100*(100-this.coords.p_handle)},getHandleX:function(){var a=100-this.coords.p_handle,b=this.toFixed(this.coords.p_pointer-this.coords.p_gap);0>b?b=0:b>a&&(b=a);return b},calcHandlePercent:function(){this.coords.w_handle= -"single"===this.options.type?this.$cache.s_single.outerWidth(!1):this.$cache.s_from.outerWidth(!1);this.coords.p_handle=this.toFixed(this.coords.w_handle/this.coords.w_rs*100)},chooseHandle:function(a){return"single"===this.options.type?"single":a>=this.coords.p_from_real+(this.coords.p_to_real-this.coords.p_from_real)/2?this.options.to_fixed?"from":"to":this.options.from_fixed?"to":"from"},calcMinMax:function(){this.coords.w_rs&&(this.labels.p_min=this.labels.w_min/this.coords.w_rs*100,this.labels.p_max= -this.labels.w_max/this.coords.w_rs*100)},calcLabels:function(){this.coords.w_rs&&!this.options.hide_from_to&&("single"===this.options.type?(this.labels.w_single=this.$cache.single.outerWidth(!1),this.labels.p_single_fake=this.labels.w_single/this.coords.w_rs*100,this.labels.p_single_left=this.coords.p_single_fake+this.coords.p_handle/2-this.labels.p_single_fake/2):(this.labels.w_from=this.$cache.from.outerWidth(!1),this.labels.p_from_fake=this.labels.w_from/this.coords.w_rs*100,this.labels.p_from_left= -this.coords.p_from_fake+this.coords.p_handle/2-this.labels.p_from_fake/2,this.labels.p_from_left=this.toFixed(this.labels.p_from_left),this.labels.p_from_left=this.checkEdges(this.labels.p_from_left,this.labels.p_from_fake),this.labels.w_to=this.$cache.to.outerWidth(!1),this.labels.p_to_fake=this.labels.w_to/this.coords.w_rs*100,this.labels.p_to_left=this.coords.p_to_fake+this.coords.p_handle/2-this.labels.p_to_fake/2,this.labels.p_to_left=this.toFixed(this.labels.p_to_left),this.labels.p_to_left= -this.checkEdges(this.labels.p_to_left,this.labels.p_to_fake),this.labels.w_single=this.$cache.single.outerWidth(!1),this.labels.p_single_fake=this.labels.w_single/this.coords.w_rs*100,this.labels.p_single_left=(this.labels.p_from_left+this.labels.p_to_left+this.labels.p_to_fake)/2-this.labels.p_single_fake/2,this.labels.p_single_left=this.toFixed(this.labels.p_single_left)),this.labels.p_single_left=this.checkEdges(this.labels.p_single_left,this.labels.p_single_fake))},updateScene:function(){this.raf_id&& -(cancelAnimationFrame(this.raf_id),this.raf_id=null);clearTimeout(this.update_tm);this.update_tm=null;this.options&&(this.drawHandles(),this.is_active?this.raf_id=requestAnimationFrame(this.updateScene.bind(this)):this.update_tm=setTimeout(this.updateScene.bind(this),300))},drawHandles:function(){this.coords.w_rs=this.$cache.rs.outerWidth(!1);if(this.coords.w_rs){this.coords.w_rs!==this.coords.w_rs_old&&(this.target="base",this.is_resize=!0);if(this.coords.w_rs!==this.coords.w_rs_old||this.force_redraw)this.setMinMax(), -this.calc(!0),this.drawLabels(),this.options.grid&&(this.calcGridMargin(),this.calcGridLabels()),this.force_redraw=!0,this.coords.w_rs_old=this.coords.w_rs,this.drawShadow();if(this.coords.w_rs&&(this.dragging||this.force_redraw||this.is_key)){if(this.old_from!==this.result.from||this.old_to!==this.result.to||this.force_redraw||this.is_key){this.drawLabels();this.$cache.bar[0].style.left=this.coords.p_bar_x+"%";this.$cache.bar[0].style.width=this.coords.p_bar_w+"%";if("single"===this.options.type)this.$cache.s_single[0].style.left= -this.coords.p_single_fake+"%",this.$cache.single[0].style.left=this.labels.p_single_left+"%",this.options.values.length?this.$cache.input.prop("value",this.result.from_value):this.$cache.input.prop("value",this.result.from),this.$cache.input.data("from",this.result.from);else{this.$cache.s_from[0].style.left=this.coords.p_from_fake+"%";this.$cache.s_to[0].style.left=this.coords.p_to_fake+"%";if(this.old_from!==this.result.from||this.force_redraw)this.$cache.from[0].style.left=this.labels.p_from_left+ -"%";if(this.old_to!==this.result.to||this.force_redraw)this.$cache.to[0].style.left=this.labels.p_to_left+"%";this.$cache.single[0].style.left=this.labels.p_single_left+"%";this.options.values.length?this.$cache.input.prop("value",this.result.from_value+this.options.input_values_separator+this.result.to_value):this.$cache.input.prop("value",this.result.from+this.options.input_values_separator+this.result.to);this.$cache.input.data("from",this.result.from);this.$cache.input.data("to",this.result.to)}this.old_from=== -this.result.from&&this.old_to===this.result.to||this.is_start||this.$cache.input.trigger("change");this.old_from=this.result.from;this.old_to=this.result.to;this.is_resize||this.is_update||this.is_start||this.is_finish||this.callOnChange();if(this.is_key||this.is_click)this.is_click=this.is_key=!1,this.callOnFinish();this.is_finish=this.is_resize=this.is_update=!1}this.force_redraw=this.is_click=this.is_key=this.is_start=!1}}},drawLabels:function(){if(this.options){var a=this.options.values.length, -b=this.options.p_values,d;if(!this.options.hide_from_to)if("single"===this.options.type)a=a?this.decorate(b[this.result.from]):this.decorate(this._prettify(this.result.from),this.result.from),this.$cache.single.html(a),this.calcLabels(),this.$cache.min[0].style.visibility=this.labels.p_single_left100-this.labels.p_max-1?"hidden":"visible";else{a?(this.options.decorate_both? -(a=this.decorate(b[this.result.from]),a+=this.options.values_separator,a+=this.decorate(b[this.result.to])):a=this.decorate(b[this.result.from]+this.options.values_separator+b[this.result.to]),d=this.decorate(b[this.result.from]),b=this.decorate(b[this.result.to])):(this.options.decorate_both?(a=this.decorate(this._prettify(this.result.from),this.result.from),a+=this.options.values_separator,a+=this.decorate(this._prettify(this.result.to),this.result.to)):a=this.decorate(this._prettify(this.result.from)+ -this.options.values_separator+this._prettify(this.result.to),this.result.to),d=this.decorate(this._prettify(this.result.from),this.result.from),b=this.decorate(this._prettify(this.result.to),this.result.to));this.$cache.single.html(a);this.$cache.from.html(d);this.$cache.to.html(b);this.calcLabels();b=Math.min(this.labels.p_single_left,this.labels.p_from_left);a=this.labels.p_single_left+this.labels.p_single_fake;d=this.labels.p_to_left+this.labels.p_to_fake;var c=Math.max(a,d);this.labels.p_from_left+ -this.labels.p_from_fake>=this.labels.p_to_left?(this.$cache.from[0].style.visibility="hidden",this.$cache.to[0].style.visibility="hidden",this.$cache.single[0].style.visibility="visible",this.result.from===this.result.to?("from"===this.target?this.$cache.from[0].style.visibility="visible":"to"===this.target?this.$cache.to[0].style.visibility="visible":this.target||(this.$cache.from[0].style.visibility="visible"),this.$cache.single[0].style.visibility="hidden",c=d):(this.$cache.from[0].style.visibility= -"hidden",this.$cache.to[0].style.visibility="hidden",this.$cache.single[0].style.visibility="visible",c=Math.max(a,d))):(this.$cache.from[0].style.visibility="visible",this.$cache.to[0].style.visibility="visible",this.$cache.single[0].style.visibility="hidden");this.$cache.min[0].style.visibility=b100-this.labels.p_max-1?"hidden":"visible"}}},drawShadow:function(){var a=this.options,b=this.$cache,d="number"===typeof a.from_min&& -!isNaN(a.from_min),c="number"===typeof a.from_max&&!isNaN(a.from_max),e="number"===typeof a.to_min&&!isNaN(a.to_min),f="number"===typeof a.to_max&&!isNaN(a.to_max);"single"===a.type?a.from_shadow&&(d||c)?(d=this.convertToPercent(d?a.from_min:a.min),c=this.convertToPercent(c?a.from_max:a.max)-d,d=this.toFixed(d-this.coords.p_handle/100*d),c=this.toFixed(c-this.coords.p_handle/100*c),d+=this.coords.p_handle/2,b.shad_single[0].style.display="block",b.shad_single[0].style.left=d+"%",b.shad_single[0].style.width= -c+"%"):b.shad_single[0].style.display="none":(a.from_shadow&&(d||c)?(d=this.convertToPercent(d?a.from_min:a.min),c=this.convertToPercent(c?a.from_max:a.max)-d,d=this.toFixed(d-this.coords.p_handle/100*d),c=this.toFixed(c-this.coords.p_handle/100*c),d+=this.coords.p_handle/2,b.shad_from[0].style.display="block",b.shad_from[0].style.left=d+"%",b.shad_from[0].style.width=c+"%"):b.shad_from[0].style.display="none",a.to_shadow&&(e||f)?(e=this.convertToPercent(e?a.to_min:a.min),a=this.convertToPercent(f? -a.to_max:a.max)-e,e=this.toFixed(e-this.coords.p_handle/100*e),a=this.toFixed(a-this.coords.p_handle/100*a),e+=this.coords.p_handle/2,b.shad_to[0].style.display="block",b.shad_to[0].style.left=e+"%",b.shad_to[0].style.width=a+"%"):b.shad_to[0].style.display="none")},callOnStart:function(){if(this.options.onStart&&"function"===typeof this.options.onStart)this.options.onStart(this.result)},callOnChange:function(){if(this.options.onChange&&"function"===typeof this.options.onChange)this.options.onChange(this.result)}, -callOnFinish:function(){if(this.options.onFinish&&"function"===typeof this.options.onFinish)this.options.onFinish(this.result)},callOnUpdate:function(){if(this.options.onUpdate&&"function"===typeof this.options.onUpdate)this.options.onUpdate(this.result)},toggleInput:function(){this.$cache.input.toggleClass("irs-hidden-input")},convertToPercent:function(a,b){var d=this.options.max-this.options.min;return d?this.toFixed((b?a:a-this.options.min)/(d/100)):(this.no_diapason=!0,0)},convertToValue:function(a){var b= -this.options.min,d=this.options.max,c=b.toString().split(".")[1],e=d.toString().split(".")[1],f,l,g=0,k=0;if(0===a)return this.options.min;if(100===a)return this.options.max;c&&(g=f=c.length);e&&(g=l=e.length);f&&l&&(g=f>=l?f:l);0>b&&(k=Math.abs(b),b=+(b+k).toFixed(g),d=+(d+k).toFixed(g));a=(d-b)/100*a+b;(b=this.options.step.toString().split(".")[1])?a=+a.toFixed(b.length):(a/=this.options.step,a*=this.options.step,a=+a.toFixed(0));k&&(a-=k);k=b?+a.toFixed(b.length):this.toFixed(a);kthis.options.max&&(k=this.options.max);return k},calcWithStep:function(a){var b=Math.round(a/this.coords.p_step)*this.coords.p_step;100c.max_interval&&(a=b-c.max_interval):a-b>c.max_interval&&(a=b+c.max_interval);return this.convertToPercent(a)},checkDiapason:function(a,b,d){a=this.convertToValue(a);var c=this.options;"number"!==typeof b&&(b=c.min);"number"!==typeof d&&(d=c.max);ad&&(a=d);return this.convertToPercent(a)},toFixed:function(a){a=a.toFixed(9);return+a},_prettify:function(a){return this.options.prettify_enabled? -this.options.prettify&&"function"===typeof this.options.prettify?this.options.prettify(a):this.prettify(a):a},prettify:function(a){return a.toString().replace(/(\d{1,3}(?=(?:\d\d\d)+(?!\d)))/g,"$1"+this.options.prettify_separator)},checkEdges:function(a,b){if(!this.options.force_edges)return this.toFixed(a);0>a?a=0:a>100-b&&(a=100-b);return this.toFixed(a)},validate:function(){var a=this.options,b=this.result,d=a.values,c=d.length,e,f;"string"===typeof a.min&&(a.min=+a.min);"string"===typeof a.max&& -(a.max=+a.max);"string"===typeof a.from&&(a.from=+a.from);"string"===typeof a.to&&(a.to=+a.to);"string"===typeof a.step&&(a.step=+a.step);"string"===typeof a.from_min&&(a.from_min=+a.from_min);"string"===typeof a.from_max&&(a.from_max=+a.from_max);"string"===typeof a.to_min&&(a.to_min=+a.to_min);"string"===typeof a.to_max&&(a.to_max=+a.to_max);"string"===typeof a.keyboard_step&&(a.keyboard_step=+a.keyboard_step);"string"===typeof a.grid_num&&(a.grid_num=+a.grid_num);a.maxa.max&&(a.from=a.max);else{if(a.froma.max)a.from=a.min;if(a.to>a.max||a.toa.to&&(a.from=a.to)}if("number"!==typeof a.step||isNaN(a.step)||!a.step||0>a.step)a.step= -1;if("number"!==typeof a.keyboard_step||isNaN(a.keyboard_step)||!a.keyboard_step||0>a.keyboard_step)a.keyboard_step=5;"number"===typeof a.from_min&&a.froma.from_max&&(a.from=a.from_max);"number"===typeof a.to_min&&a.toa.to_max&&(a.to=a.to_max);if(b){b.min!==a.min&&(b.min=a.min);b.max!==a.max&&(b.max=a.max);if(b.fromb.max)b.from=a.from;if(b.to -b.max)b.to=a.to}if("number"!==typeof a.min_interval||isNaN(a.min_interval)||!a.min_interval||0>a.min_interval)a.min_interval=0;if("number"!==typeof a.max_interval||isNaN(a.max_interval)||!a.max_interval||0>a.max_interval)a.max_interval=0;a.min_interval&&a.min_interval>a.max-a.min&&(a.min_interval=a.max-a.min);a.max_interval&&a.max_interval>a.max-a.min&&(a.max_interval=a.max-a.min)},decorate:function(a,b){var d="",c=this.options;c.prefix&&(d+=c.prefix);d+=a;c.max_postfix&&(c.values.length&&a===c.p_values[c.max]? -(d+=c.max_postfix,c.postfix&&(d+=" ")):b===c.max&&(d+=c.max_postfix,c.postfix&&(d+=" ")));c.postfix&&(d+=c.postfix);return d},updateFrom:function(){this.result.from=this.options.from;this.result.from_percent=this.convertToPercent(this.result.from);this.options.values&&(this.result.from_value=this.options.values[this.result.from])},updateTo:function(){this.result.to=this.options.to;this.result.to_percent=this.convertToPercent(this.result.to);this.options.values&&(this.result.to_value=this.options.values[this.result.to])}, -updateResult:function(){this.result.min=this.options.min;this.result.max=this.options.max;this.updateFrom();this.updateTo()},appendGrid:function(){if(this.options.grid){var a=this.options,b,d;b=a.max-a.min;var c=a.grid_num,e=0,f=0,g=4,h,k,m=0,n="";this.calcGridMargin();a.grid_snap?(c=b/a.step,e=this.toFixed(a.step/(b/100))):e=this.toFixed(100/c);4h&&(h=0));this.coords.big[b]=f;k=(f-e*(b-1))/ -(h+1);for(d=1;d<=h&&0!==f;d++)m=this.toFixed(f-k*d),n+='';n+='';m=this.convertToValue(f);m=a.values.length?a.p_values[m]:this._prettify(m);n+=''+m+""}this.coords.big_num=Math.ceil(c+1);this.$cache.cont.addClass("irs-with-grid");this.$cache.grid.html(n);this.cacheGridLabels()}},cacheGridLabels:function(){var a, -b,d=this.coords.big_num;for(b=0;b100+this.coords.grid_gap&&(d[c-1]=100+this.coords.grid_gap,b[c-1]=this.toFixed(d[c-1]-this.coords.big_p[c-1]),this.coords.big_x[c-1]=this.toFixed(this.coords.big_p[c-1]-this.coords.grid_gap)));this.calcGridCollision(2,b,d);this.calcGridCollision(4,b,d);for(a=0;a=g)break;f=this.$cache.grid_labels[e][0];f.style.visibility=d[c]<=b[e]?"visible":"hidden"}},calcGridMargin:function(){this.options.grid_margin&&(this.coords.w_rs=this.$cache.rs.outerWidth(!1),this.coords.w_rs&&(this.coords.w_handle="single"===this.options.type?this.$cache.s_single.outerWidth(!1):this.$cache.s_from.outerWidth(!1),this.coords.p_handle=this.toFixed(this.coords.w_handle/ -this.coords.w_rs*100),this.coords.grid_gap=this.toFixed(this.coords.p_handle/2-.1),this.$cache.grid[0].style.width=this.toFixed(100-this.coords.p_handle)+"%",this.$cache.grid[0].style.left=this.coords.grid_gap+"%"))},update:function(a){this.input&&(this.is_update=!0,this.options.from=this.result.from,this.options.to=this.result.to,this.options=g.extend(this.options,a),this.validate(),this.updateResult(a),this.toggleInput(),this.remove(),this.init(!0))},reset:function(){this.input&&(this.updateResult(), -this.update())},destroy:function(){this.input&&(this.toggleInput(),this.$cache.input.prop("readonly",!1),g.data(this.input,"ionRangeSlider",null),this.remove(),this.options=this.input=null)}};g.fn.ionRangeSlider=function(a){return this.each(function(){g.data(this,"ionRangeSlider")||g.data(this,"ionRangeSlider",new r(this,a,u++))})};(function(){for(var a=0,b=["ms","moz","webkit","o"],d=0;dl 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 i=u[e];t[i]=0}return t}function n(t){var e=getComputedStyle(t);return e||a("Style returned "+e+". Are you running this code in a hidden iframe on Firefox? See http://bit.ly/getsizebug1"),e}function o(){if(!d){d=!0;var e=document.createElement("div");e.style.width="200px",e.style.padding="1px 2px 3px 4px",e.style.borderStyle="solid",e.style.borderWidth="1px 2px 3px 4px",e.style.boxSizing="border-box";var i=document.body||document.documentElement;i.appendChild(e);var o=n(e);s.isBoxSizeOuter=r=200==t(o.width),i.removeChild(e)}}function s(e){if(o(),"string"==typeof e&&(e=document.querySelector(e)),e&&"object"==typeof e&&e.nodeType){var s=n(e);if("none"==s.display)return i();var a={};a.width=e.offsetWidth,a.height=e.offsetHeight;for(var d=a.isBorderBox="border-box"==s.boxSizing,l=0;h>l;l++){var f=u[l],c=s[f],m=parseFloat(c);a[f]=isNaN(m)?0:m}var p=a.paddingLeft+a.paddingRight,y=a.paddingTop+a.paddingBottom,g=a.marginLeft+a.marginRight,v=a.marginTop+a.marginBottom,_=a.borderLeftWidth+a.borderRightWidth,I=a.borderTopWidth+a.borderBottomWidth,z=d&&r,x=t(s.width);x!==!1&&(a.width=x+(z?0:p+_));var S=t(s.height);return S!==!1&&(a.height=S+(z?0:y+I)),a.innerWidth=a.width-(p+_),a.innerHeight=a.height-(y+I),a.outerWidth=a.width+g,a.outerHeight=a.height+v,a}}var r,a="undefined"==typeof console?e:function(t){console.error(t)},u=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"],h=u.length,d=!1;return s}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("desandro-matches-selector/matches-selector",e):"object"==typeof module&&module.exports?module.exports=e():t.matchesSelector=e()}(window,function(){"use strict";var t=function(){var t=Element.prototype;if(t.matches)return"matches";if(t.matchesSelector)return"matchesSelector";for(var e=["webkit","moz","ms","o"],i=0;ir?"round":"floor";s=Math[a](s),this.cols=Math.max(s,1)},i.prototype.getContainerWidth=function(){var t=this._getOption("fitWidth"),i=t?this.element.parentNode:this.element,n=e(i);this.containerWidth=n&&n.innerWidth},i.prototype._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth%this.columnWidth,i=e&&1>e?"round":"ceil",n=Math[i](t.size.outerWidth/this.columnWidth);n=Math.min(n,this.cols);for(var o=this._getColGroup(n),s=Math.min.apply(Math,o),r=o.indexOf(s),a={x:this.columnWidth*r,y:s},u=s+t.size.outerHeight,h=this.cols+1-o.length,d=0;h>d;d++)this.colYs[r+d]=u;return a},i.prototype._getColGroup=function(t){if(2>t)return this.colYs;for(var e=[],i=this.cols+1-t,n=0;i>n;n++){var o=this.colYs.slice(n,n+t);e[n]=Math.max.apply(Math,o)}return e},i.prototype._manageStamp=function(t){var i=e(t),n=this._getElementOffset(t),o=this._getOption("originLeft"),s=o?n.left:n.right,r=s+i.outerWidth,a=Math.floor(s/this.columnWidth);a=Math.max(0,a);var u=Math.floor(r/this.columnWidth);u-=r%this.columnWidth?0:1,u=Math.min(this.cols-1,u);for(var h=this._getOption("originTop"),d=(h?n.top:n.bottom)+i.outerHeight,l=a;u>=l;l++)this.colYs[l]=Math.max(d,this.colYs[l])},i.prototype._getContainerSize=function(){this.maxY=Math.max.apply(Math,this.colYs);var t={height:this.maxY};return this._getOption("fitWidth")&&(t.width=this._getContainerFitWidth()),t},i.prototype._getContainerFitWidth=function(){for(var t=0,e=this.cols;--e&&0===this.colYs[e];)t++;return(this.cols-t)*this.columnWidth-this.gutter},i.prototype.needsResizeLayout=function(){var t=this.containerWidth;return this.getContainerWidth(),t!=this.containerWidth},i}),function(t,e){"function"==typeof define&&define.amd?define("isotope/js/layout-modes/masonry",["../layout-mode","masonry/masonry"],e):"object"==typeof module&&module.exports?module.exports=e(require("../layout-mode"),require("masonry-layout")):e(t.Isotope.LayoutMode,t.Masonry)}(window,function(t,e){"use strict";var i=t.create("masonry"),n=i.prototype,o={_getElementOffset:!0,layout:!0,_getMeasurement:!0};for(var s in e.prototype)o[s]||(n[s]=e.prototype[s]);var r=n.measureColumns;n.measureColumns=function(){this.items=this.isotope.filteredItems,r.call(this)};var a=n._getOption;return n._getOption=function(t){return"fitWidth"==t?void 0!==this.options.isFitWidth?this.options.isFitWidth:this.options.fitWidth:a.apply(this.isotope,arguments)},i}),function(t,e){"function"==typeof define&&define.amd?define("isotope/js/layout-modes/fit-rows",["../layout-mode"],e):"object"==typeof exports?module.exports=e(require("../layout-mode")):e(t.Isotope.LayoutMode)}(window,function(t){"use strict";var e=t.create("fitRows"),i=e.prototype;return i._resetLayout=function(){this.x=0,this.y=0,this.maxY=0,this._getMeasurement("gutter","outerWidth")},i._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth+this.gutter,i=this.isotope.size.innerWidth+this.gutter;0!==this.x&&e+this.x>i&&(this.x=0,this.y=this.maxY);var n={x:this.x,y:this.y};return this.maxY=Math.max(this.maxY,this.y+t.size.outerHeight),this.x+=e,n},i._getContainerSize=function(){return{height:this.maxY}},e}),function(t,e){"function"==typeof define&&define.amd?define("isotope/js/layout-modes/vertical",["../layout-mode"],e):"object"==typeof module&&module.exports?module.exports=e(require("../layout-mode")):e(t.Isotope.LayoutMode)}(window,function(t){"use strict";var e=t.create("vertical",{horizontalAlignment:0}),i=e.prototype;return i._resetLayout=function(){this.y=0},i._getItemLayoutPosition=function(t){t.getSize();var e=(this.isotope.size.innerWidth-t.size.outerWidth)*this.options.horizontalAlignment,i=this.y;return this.y+=t.size.outerHeight,{x:e,y:i}},i._getContainerSize=function(){return{height:this.y}},e}),function(t,e){"function"==typeof define&&define.amd?define(["outlayer/outlayer","get-size/get-size","desandro-matches-selector/matches-selector","fizzy-ui-utils/utils","isotope/js/item","isotope/js/layout-mode","isotope/js/layout-modes/masonry","isotope/js/layout-modes/fit-rows","isotope/js/layout-modes/vertical"],function(i,n,o,s,r,a){return e(t,i,n,o,s,r,a)}):"object"==typeof module&&module.exports?module.exports=e(t,require("outlayer"),require("get-size"),require("desandro-matches-selector"),require("fizzy-ui-utils"),require("isotope/js/item"),require("isotope/js/layout-mode"),require("isotope/js/layout-modes/masonry"),require("isotope/js/layout-modes/fit-rows"),require("isotope/js/layout-modes/vertical")):t.Isotope=e(t,t.Outlayer,t.getSize,t.matchesSelector,t.fizzyUIUtils,t.Isotope.Item,t.Isotope.LayoutMode)}(window,function(t,e,i,n,o,s,r){function a(t,e){return function(i,n){for(var o=0;oa||a>r){var u=void 0!==e[s]?e[s]:e,h=u?1:-1;return(r>a?1:-1)*h}}return 0}}var u=t.jQuery,h=String.prototype.trim?function(t){return t.trim()}:function(t){return t.replace(/^\s+|\s+$/g,"")},d=e.create("isotope",{layoutMode:"masonry",isJQueryFiltering:!0,sortAscending:!0});d.Item=s,d.LayoutMode=r;var l=d.prototype;l._create=function(){this.itemGUID=0,this._sorters={},this._getSorters(),e.prototype._create.call(this),this.modes={},this.filteredItems=this.items,this.sortHistory=["original-order"];for(var t in r.modes)this._initLayoutMode(t)},l.reloadItems=function(){this.itemGUID=0,e.prototype.reloadItems.call(this)},l._itemize=function(){for(var t=e.prototype._itemize.apply(this,arguments),i=0;ii;i++){var n=t[i];n.updateSortData()}};var f=function(){function t(t){if("string"!=typeof t)return t;var i=h(t).split(" "),n=i[0],o=n.match(/^\[(.+)\]$/),s=o&&o[1],r=e(s,n),a=d.sortDataParsers[i[1]]; -return t=a?function(t){return t&&a(r(t))}:function(t){return t&&r(t)}}function e(t,e){return t?function(e){return e.getAttribute(t)}:function(t){var i=t.querySelector(e);return i&&i.textContent}}return t}();d.sortDataParsers={parseInt:function(t){return parseInt(t,10)},parseFloat:function(t){return parseFloat(t)}},l._sort=function(){var t=this.options.sortBy;if(t){var e=[].concat.apply(t,this.sortHistory),i=a(e,this.options.sortAscending);this.filteredItems.sort(i),t!=this.sortHistory[0]&&this.sortHistory.unshift(t)}},l._mode=function(){var t=this.options.layoutMode,e=this.modes[t];if(!e)throw new Error("No layout mode: "+t);return e.options=this.options[t],e},l._resetLayout=function(){e.prototype._resetLayout.call(this),this._mode()._resetLayout()},l._getItemLayoutPosition=function(t){return this._mode()._getItemLayoutPosition(t)},l._manageStamp=function(t){this._mode()._manageStamp(t)},l._getContainerSize=function(){return this._mode()._getContainerSize()},l.needsResizeLayout=function(){return this._mode().needsResizeLayout()},l.appended=function(t){var e=this.addItems(t);if(e.length){var i=this._filterRevealAdded(e);this.filteredItems=this.filteredItems.concat(i)}},l.prepended=function(t){var e=this._itemize(t);if(e.length){this._resetLayout(),this._manageStamps();var i=this._filterRevealAdded(e);this.layoutItems(this.filteredItems),this.filteredItems=i.concat(this.filteredItems),this.items=e.concat(this.items)}},l._filterRevealAdded=function(t){var e=this._filter(t);return this.hide(e.needHide),this.reveal(e.matches),this.layoutItems(e.matches,!0),e.matches},l.insert=function(t){var e=this.addItems(t);if(e.length){var i,n,o=e.length;for(i=0;o>i;i++)n=e[i],this.element.appendChild(n.element);var s=this._filter(e).matches;for(i=0;o>i;i++)e[i].isLayoutInstant=!0;for(this.arrange(),i=0;o>i;i++)delete e[i].isLayoutInstant;this.reveal(s)}};var c=l.remove;return l.remove=function(t){t=o.makeArray(t);var e=this.getItems(t);c.call(this,t);for(var i=e&&e.length,n=0;i&&i>n;n++){var s=e[n];o.removeFrom(this.filteredItems,s)}},l.shuffle=function(){for(var t=0;t elements as element.getContext(). - * @this {HTMLElement} - * @return {CanvasRenderingContext2D_} - */ - function getContext() { - return this.context_ || - (this.context_ = new CanvasRenderingContext2D_(this)); - } - - var slice = Array.prototype.slice; - - /** - * Binds a function to an object. The returned function will always use the - * passed in {@code obj} as {@code this}. - * - * Example: - * - * g = bind(f, obj, a, b) - * g(c, d) // will do f.call(obj, a, b, c, d) - * - * @param {Function} f The function to bind the object to - * @param {Object} obj The object that should act as this when the function - * is called - * @param {*} var_args Rest arguments that will be used as the initial - * arguments when the function is called - * @return {Function} A new function that has bound this - */ - function bind(f, obj, var_args) { - var a = slice.call(arguments, 2); - return function() { - return f.apply(obj, a.concat(slice.call(arguments))); - }; - } - - var G_vmlCanvasManager_ = { - init: function(opt_doc) { - if (/MSIE/.test(navigator.userAgent) && !window.opera) { - var doc = opt_doc || document; - // Create a dummy element so that IE will allow canvas elements to be - // recognized. - doc.createElement('canvas'); - doc.attachEvent('onreadystatechange', bind(this.init_, this, doc)); - } - }, - - init_: function(doc) { - // create xmlns - if (!doc.namespaces['g_vml_']) { - doc.namespaces.add('g_vml_', 'urn:schemas-microsoft-com:vml', - '#default#VML'); - - } - if (!doc.namespaces['g_o_']) { - doc.namespaces.add('g_o_', 'urn:schemas-microsoft-com:office:office', - '#default#VML'); - } - - // Setup default CSS. Only add one style sheet per document - if (!doc.styleSheets['ex_canvas_']) { - var ss = doc.createStyleSheet(); - ss.owningElement.id = 'ex_canvas_'; - ss.cssText = 'canvas{display:inline-block;overflow:hidden;' + - // default size is 300x150 in Gecko and Opera - 'text-align:left;width:300px;height:150px}' + - 'g_vml_\\:*{behavior:url(#default#VML)}' + - 'g_o_\\:*{behavior:url(#default#VML)}'; - - } - - // find all canvas elements - var els = doc.getElementsByTagName('canvas'); - for (var i = 0; i < els.length; i++) { - this.initElement(els[i]); - } - }, - - /** - * Public initializes a canvas element so that it can be used as canvas - * element from now on. This is called automatically before the page is - * loaded but if you are creating elements using createElement you need to - * make sure this is called on the element. - * @param {HTMLElement} el The canvas element to initialize. - * @return {HTMLElement} the element that was created. - */ - initElement: function(el) { - if (!el.getContext) { - - el.getContext = getContext; - - // Remove fallback content. There is no way to hide text nodes so we - // just remove all childNodes. We could hide all elements and remove - // text nodes but who really cares about the fallback content. - el.innerHTML = ''; - - // do not use inline function because that will leak memory - el.attachEvent('onpropertychange', onPropertyChange); - el.attachEvent('onresize', onResize); - - var attrs = el.attributes; - if (attrs.width && attrs.width.specified) { - // TODO: use runtimeStyle and coordsize - // el.getContext().setWidth_(attrs.width.nodeValue); - el.style.width = attrs.width.nodeValue + 'px'; - } else { - el.width = el.clientWidth; - } - if (attrs.height && attrs.height.specified) { - // TODO: use runtimeStyle and coordsize - // el.getContext().setHeight_(attrs.height.nodeValue); - el.style.height = attrs.height.nodeValue + 'px'; - } else { - el.height = el.clientHeight; - } - //el.getContext().setCoordsize_() - } - return el; - } - }; - - function onPropertyChange(e) { - var el = e.srcElement; - - switch (e.propertyName) { - case 'width': - el.style.width = el.attributes.width.nodeValue + 'px'; - el.getContext().clearRect(); - break; - case 'height': - el.style.height = el.attributes.height.nodeValue + 'px'; - el.getContext().clearRect(); - break; - } - } - - function onResize(e) { - var el = e.srcElement; - if (el.firstChild) { - el.firstChild.style.width = el.clientWidth + 'px'; - el.firstChild.style.height = el.clientHeight + 'px'; - } - } - - G_vmlCanvasManager_.init(); - - // precompute "00" to "FF" - var dec2hex = []; - for (var i = 0; i < 16; i++) { - for (var j = 0; j < 16; j++) { - dec2hex[i * 16 + j] = i.toString(16) + j.toString(16); - } - } - - function createMatrixIdentity() { - return [ - [1, 0, 0], - [0, 1, 0], - [0, 0, 1] - ]; - } - - function matrixMultiply(m1, m2) { - var result = createMatrixIdentity(); - - for (var x = 0; x < 3; x++) { - for (var y = 0; y < 3; y++) { - var sum = 0; - - for (var z = 0; z < 3; z++) { - sum += m1[x][z] * m2[z][y]; - } - - result[x][y] = sum; - } - } - return result; - } - - function copyState(o1, o2) { - o2.fillStyle = o1.fillStyle; - o2.lineCap = o1.lineCap; - o2.lineJoin = o1.lineJoin; - o2.lineWidth = o1.lineWidth; - o2.miterLimit = o1.miterLimit; - o2.shadowBlur = o1.shadowBlur; - o2.shadowColor = o1.shadowColor; - o2.shadowOffsetX = o1.shadowOffsetX; - o2.shadowOffsetY = o1.shadowOffsetY; - o2.strokeStyle = o1.strokeStyle; - o2.globalAlpha = o1.globalAlpha; - o2.arcScaleX_ = o1.arcScaleX_; - o2.arcScaleY_ = o1.arcScaleY_; - o2.lineScale_ = o1.lineScale_; - } - - function processStyle(styleString) { - var str, alpha = 1; - - styleString = String(styleString); - if (styleString.substring(0, 3) == 'rgb') { - var start = styleString.indexOf('(', 3); - var end = styleString.indexOf(')', start + 1); - var guts = styleString.substring(start + 1, end).split(','); - - str = '#'; - for (var i = 0; i < 3; i++) { - str += dec2hex[Number(guts[i])]; - } - - if (guts.length == 4 && styleString.substr(3, 1) == 'a') { - alpha = guts[3]; - } - } else { - str = styleString; - } - - return {color: str, alpha: alpha}; - } - - function processLineCap(lineCap) { - switch (lineCap) { - case 'butt': - return 'flat'; - case 'round': - return 'round'; - case 'square': - default: - return 'square'; - } - } - - /** - * This class implements CanvasRenderingContext2D interface as described by - * the WHATWG. - * @param {HTMLElement} surfaceElement The element that the 2D context should - * be associated with - */ - function CanvasRenderingContext2D_(surfaceElement) { - this.m_ = createMatrixIdentity(); - - this.mStack_ = []; - this.aStack_ = []; - this.currentPath_ = []; - - // Canvas context properties - this.strokeStyle = '#000'; - this.fillStyle = '#000'; - - this.lineWidth = 1; - this.lineJoin = 'miter'; - this.lineCap = 'butt'; - this.miterLimit = Z * 1; - this.globalAlpha = 1; - this.canvas = surfaceElement; - - var el = surfaceElement.ownerDocument.createElement('div'); - el.style.width = surfaceElement.clientWidth + 'px'; - el.style.height = surfaceElement.clientHeight + 'px'; - el.style.overflow = 'hidden'; - el.style.position = 'absolute'; - surfaceElement.appendChild(el); - - this.element_ = el; - this.arcScaleX_ = 1; - this.arcScaleY_ = 1; - this.lineScale_ = 1; - } - - var contextPrototype = CanvasRenderingContext2D_.prototype; - contextPrototype.clearRect = function() { - this.element_.innerHTML = ''; - }; - - contextPrototype.beginPath = function() { - // TODO: Branch current matrix so that save/restore has no effect - // as per safari docs. - this.currentPath_ = []; - }; - - contextPrototype.moveTo = function(aX, aY) { - var p = this.getCoords_(aX, aY); - this.currentPath_.push({type: 'moveTo', x: p.x, y: p.y}); - this.currentX_ = p.x; - this.currentY_ = p.y; - }; - - contextPrototype.lineTo = function(aX, aY) { - var p = this.getCoords_(aX, aY); - this.currentPath_.push({type: 'lineTo', x: p.x, y: p.y}); - - this.currentX_ = p.x; - this.currentY_ = p.y; - }; - - contextPrototype.bezierCurveTo = function(aCP1x, aCP1y, - aCP2x, aCP2y, - aX, aY) { - var p = this.getCoords_(aX, aY); - var cp1 = this.getCoords_(aCP1x, aCP1y); - var cp2 = this.getCoords_(aCP2x, aCP2y); - bezierCurveTo(this, cp1, cp2, p); - }; - - // Helper function that takes the already fixed cordinates. - function bezierCurveTo(self, cp1, cp2, p) { - self.currentPath_.push({ - type: 'bezierCurveTo', - cp1x: cp1.x, - cp1y: cp1.y, - cp2x: cp2.x, - cp2y: cp2.y, - x: p.x, - y: p.y - }); - self.currentX_ = p.x; - self.currentY_ = p.y; - } - - contextPrototype.quadraticCurveTo = function(aCPx, aCPy, aX, aY) { - // the following is lifted almost directly from - // http://developer.mozilla.org/en/docs/Canvas_tutorial:Drawing_shapes - - var cp = this.getCoords_(aCPx, aCPy); - var p = this.getCoords_(aX, aY); - - var cp1 = { - x: this.currentX_ + 2.0 / 3.0 * (cp.x - this.currentX_), - y: this.currentY_ + 2.0 / 3.0 * (cp.y - this.currentY_) - }; - var cp2 = { - x: cp1.x + (p.x - this.currentX_) / 3.0, - y: cp1.y + (p.y - this.currentY_) / 3.0 - }; - - bezierCurveTo(this, cp1, cp2, p); - }; - - contextPrototype.arc = function(aX, aY, aRadius, - aStartAngle, aEndAngle, aClockwise) { - aRadius *= Z; - var arcType = aClockwise ? 'at' : 'wa'; - - var xStart = aX + mc(aStartAngle) * aRadius - Z2; - var yStart = aY + ms(aStartAngle) * aRadius - Z2; - - var xEnd = aX + mc(aEndAngle) * aRadius - Z2; - var yEnd = aY + ms(aEndAngle) * aRadius - Z2; - - // IE won't render arches drawn counter clockwise if xStart == xEnd. - if (xStart == xEnd && !aClockwise) { - xStart += 0.125; // Offset xStart by 1/80 of a pixel. Use something - // that can be represented in binary - } - - var p = this.getCoords_(aX, aY); - var pStart = this.getCoords_(xStart, yStart); - var pEnd = this.getCoords_(xEnd, yEnd); - - this.currentPath_.push({type: arcType, - x: p.x, - y: p.y, - radius: aRadius, - xStart: pStart.x, - yStart: pStart.y, - xEnd: pEnd.x, - yEnd: pEnd.y}); - - }; - - contextPrototype.rect = function(aX, aY, aWidth, aHeight) { - this.moveTo(aX, aY); - this.lineTo(aX + aWidth, aY); - this.lineTo(aX + aWidth, aY + aHeight); - this.lineTo(aX, aY + aHeight); - this.closePath(); - }; - - contextPrototype.strokeRect = function(aX, aY, aWidth, aHeight) { - var oldPath = this.currentPath_; - this.beginPath(); - - this.moveTo(aX, aY); - this.lineTo(aX + aWidth, aY); - this.lineTo(aX + aWidth, aY + aHeight); - this.lineTo(aX, aY + aHeight); - this.closePath(); - this.stroke(); - - this.currentPath_ = oldPath; - }; - - contextPrototype.fillRect = function(aX, aY, aWidth, aHeight) { - var oldPath = this.currentPath_; - this.beginPath(); - - this.moveTo(aX, aY); - this.lineTo(aX + aWidth, aY); - this.lineTo(aX + aWidth, aY + aHeight); - this.lineTo(aX, aY + aHeight); - this.closePath(); - this.fill(); - - this.currentPath_ = oldPath; - }; - - contextPrototype.createLinearGradient = function(aX0, aY0, aX1, aY1) { - var gradient = new CanvasGradient_('gradient'); - gradient.x0_ = aX0; - gradient.y0_ = aY0; - gradient.x1_ = aX1; - gradient.y1_ = aY1; - return gradient; - }; - - contextPrototype.createRadialGradient = function(aX0, aY0, aR0, - aX1, aY1, aR1) { - var gradient = new CanvasGradient_('gradientradial'); - gradient.x0_ = aX0; - gradient.y0_ = aY0; - gradient.r0_ = aR0; - gradient.x1_ = aX1; - gradient.y1_ = aY1; - gradient.r1_ = aR1; - return gradient; - }; - - contextPrototype.drawImage = function(image, var_args) { - var dx, dy, dw, dh, sx, sy, sw, sh; - - // to find the original width we overide the width and height - var oldRuntimeWidth = image.runtimeStyle.width; - var oldRuntimeHeight = image.runtimeStyle.height; - image.runtimeStyle.width = 'auto'; - image.runtimeStyle.height = 'auto'; - - // get the original size - var w = image.width; - var h = image.height; - - // and remove overides - image.runtimeStyle.width = oldRuntimeWidth; - image.runtimeStyle.height = oldRuntimeHeight; - - if (arguments.length == 3) { - dx = arguments[1]; - dy = arguments[2]; - sx = sy = 0; - sw = dw = w; - sh = dh = h; - } else if (arguments.length == 5) { - dx = arguments[1]; - dy = arguments[2]; - dw = arguments[3]; - dh = arguments[4]; - sx = sy = 0; - sw = w; - sh = h; - } else if (arguments.length == 9) { - sx = arguments[1]; - sy = arguments[2]; - sw = arguments[3]; - sh = arguments[4]; - dx = arguments[5]; - dy = arguments[6]; - dw = arguments[7]; - dh = arguments[8]; - } else { - throw Error('Invalid number of arguments'); - } - - var d = this.getCoords_(dx, dy); - - var w2 = sw / 2; - var h2 = sh / 2; - - var vmlStr = []; - - var W = 10; - var H = 10; - - // For some reason that I've now forgotten, using divs didn't work - vmlStr.push(' ' , - '', - ''); - - this.element_.insertAdjacentHTML('BeforeEnd', - vmlStr.join('')); - }; - - contextPrototype.stroke = function(aFill) { - var lineStr = []; - var lineOpen = false; - var a = processStyle(aFill ? this.fillStyle : this.strokeStyle); - var color = a.color; - var opacity = a.alpha * this.globalAlpha; - - var W = 10; - var H = 10; - - lineStr.push(''); - - if (!aFill) { - var lineWidth = this.lineScale_ * this.lineWidth; - - // VML cannot correctly render a line if the width is less than 1px. - // In that case, we dilute the color to make the line look thinner. - if (lineWidth < 1) { - opacity *= lineWidth; - } - - lineStr.push( - '' - ); - } else if (typeof this.fillStyle == 'object') { - var fillStyle = this.fillStyle; - var angle = 0; - var focus = {x: 0, y: 0}; - - // additional offset - var shift = 0; - // scale factor for offset - var expansion = 1; - - if (fillStyle.type_ == 'gradient') { - var x0 = fillStyle.x0_ / this.arcScaleX_; - var y0 = fillStyle.y0_ / this.arcScaleY_; - var x1 = fillStyle.x1_ / this.arcScaleX_; - var y1 = fillStyle.y1_ / this.arcScaleY_; - var p0 = this.getCoords_(x0, y0); - var p1 = this.getCoords_(x1, y1); - var dx = p1.x - p0.x; - var dy = p1.y - p0.y; - angle = Math.atan2(dx, dy) * 180 / Math.PI; - - // The angle should be a non-negative number. - if (angle < 0) { - angle += 360; - } - - // Very small angles produce an unexpected result because they are - // converted to a scientific notation string. - if (angle < 1e-6) { - angle = 0; - } - } else { - var p0 = this.getCoords_(fillStyle.x0_, fillStyle.y0_); - var width = max.x - min.x; - var height = max.y - min.y; - focus = { - x: (p0.x - min.x) / width, - y: (p0.y - min.y) / height - }; - - width /= this.arcScaleX_ * Z; - height /= this.arcScaleY_ * Z; - var dimension = m.max(width, height); - shift = 2 * fillStyle.r0_ / dimension; - expansion = 2 * fillStyle.r1_ / dimension - shift; - } - - // We need to sort the color stops in ascending order by offset, - // otherwise IE won't interpret it correctly. - var stops = fillStyle.colors_; - stops.sort(function(cs1, cs2) { - return cs1.offset - cs2.offset; - }); - - var length = stops.length; - var color1 = stops[0].color; - var color2 = stops[length - 1].color; - var opacity1 = stops[0].alpha * this.globalAlpha; - var opacity2 = stops[length - 1].alpha * this.globalAlpha; - - var colors = []; - for (var i = 0; i < length; i++) { - var stop = stops[i]; - colors.push(stop.offset * expansion + shift + ' ' + stop.color); - } - - // When colors attribute is used, the meanings of opacity and o:opacity2 - // are reversed. - lineStr.push(''); - } else { - lineStr.push(''); - } - - lineStr.push(''); - - this.element_.insertAdjacentHTML('beforeEnd', lineStr.join('')); - }; - - contextPrototype.fill = function() { - this.stroke(true); - } - - contextPrototype.closePath = function() { - this.currentPath_.push({type: 'close'}); - }; - - /** - * @private - */ - contextPrototype.getCoords_ = function(aX, aY) { - var m = this.m_; - return { - x: Z * (aX * m[0][0] + aY * m[1][0] + m[2][0]) - Z2, - y: Z * (aX * m[0][1] + aY * m[1][1] + m[2][1]) - Z2 - } - }; - - contextPrototype.save = function() { - var o = {}; - copyState(this, o); - this.aStack_.push(o); - this.mStack_.push(this.m_); - this.m_ = matrixMultiply(createMatrixIdentity(), this.m_); - }; - - contextPrototype.restore = function() { - copyState(this.aStack_.pop(), this); - this.m_ = this.mStack_.pop(); - }; - - function matrixIsFinite(m) { - for (var j = 0; j < 3; j++) { - for (var k = 0; k < 2; k++) { - if (!isFinite(m[j][k]) || isNaN(m[j][k])) { - return false; - } - } - } - return true; - } - - function setM(ctx, m, updateLineScale) { - if (!matrixIsFinite(m)) { - return; - } - ctx.m_ = m; - - if (updateLineScale) { - // Get the line scale. - // Determinant of this.m_ means how much the area is enlarged by the - // transformation. So its square root can be used as a scale factor - // for width. - var det = m[0][0] * m[1][1] - m[0][1] * m[1][0]; - ctx.lineScale_ = sqrt(abs(det)); - } - } - - contextPrototype.translate = function(aX, aY) { - var m1 = [ - [1, 0, 0], - [0, 1, 0], - [aX, aY, 1] - ]; - - setM(this, matrixMultiply(m1, this.m_), false); - }; - - contextPrototype.rotate = function(aRot) { - var c = mc(aRot); - var s = ms(aRot); - - var m1 = [ - [c, s, 0], - [-s, c, 0], - [0, 0, 1] - ]; - - setM(this, matrixMultiply(m1, this.m_), false); - }; - - contextPrototype.scale = function(aX, aY) { - this.arcScaleX_ *= aX; - this.arcScaleY_ *= aY; - var m1 = [ - [aX, 0, 0], - [0, aY, 0], - [0, 0, 1] - ]; - - setM(this, matrixMultiply(m1, this.m_), true); - }; - - contextPrototype.transform = function(m11, m12, m21, m22, dx, dy) { - var m1 = [ - [m11, m12, 0], - [m21, m22, 0], - [dx, dy, 1] - ]; - - setM(this, matrixMultiply(m1, this.m_), true); - }; - - contextPrototype.setTransform = function(m11, m12, m21, m22, dx, dy) { - var m = [ - [m11, m12, 0], - [m21, m22, 0], - [dx, dy, 1] - ]; - - setM(this, m, true); - }; - - /******** STUBS ********/ - contextPrototype.clip = function() { - // TODO: Implement - }; - - contextPrototype.arcTo = function() { - // TODO: Implement - }; - - contextPrototype.createPattern = function() { - return new CanvasPattern_; - }; - - // Gradient / Pattern Stubs - function CanvasGradient_(aType) { - this.type_ = aType; - this.x0_ = 0; - this.y0_ = 0; - this.r0_ = 0; - this.x1_ = 0; - this.y1_ = 0; - this.r1_ = 0; - this.colors_ = []; - } - - CanvasGradient_.prototype.addColorStop = function(aOffset, aColor) { - aColor = processStyle(aColor); - this.colors_.push({offset: aOffset, - color: aColor.color, - alpha: aColor.alpha}); - }; - - function CanvasPattern_() {} - - // set up externs - G_vmlCanvasManager = G_vmlCanvasManager_; - CanvasRenderingContext2D = CanvasRenderingContext2D_; - CanvasGradient = CanvasGradient_; - CanvasPattern = CanvasPattern_; - -})(); - -} // if diff --git a/htdocs/public/high/plugins/jquery-knob/jquery.knob.js b/htdocs/public/high/plugins/jquery-knob/jquery.knob.js deleted file mode 100644 index 8bae662d..00000000 --- a/htdocs/public/high/plugins/jquery-knob/jquery.knob.js +++ /dev/null @@ -1,805 +0,0 @@ -/*!jQuery Knob*/ -/** - * Downward compatible, touchable dial - * - * Version: 1.2.11 - * Requires: jQuery v1.7+ - * - * Copyright (c) 2012 Anthony Terrien - * Under MIT License (http://www.opensource.org/licenses/mit-license.php) - * - * Thanks to vor, eskimoblood, spiffistan, FabrizioC - */ -(function (factory) { - if (typeof exports === 'object') { - // CommonJS - module.exports = factory(require('jquery')); - } else if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['jquery'], factory); - } else { - // Browser globals - factory(jQuery); - } -}(function ($) { - - /** - * Kontrol library - */ - "use strict"; - - /** - * Definition of globals and core - */ - var k = {}, // kontrol - max = Math.max, - min = Math.min; - - k.c = {}; - k.c.d = $(document); - k.c.t = function (e) { - return e.originalEvent.touches.length - 1; - }; - - /** - * Kontrol Object - * - * Definition of an abstract UI control - * - * Each concrete component must call this one. - * - * k.o.call(this); - * - */ - k.o = function () { - var s = this; - - this.o = null; // array of options - this.$ = null; // jQuery wrapped element - this.i = null; // mixed HTMLInputElement or array of HTMLInputElement - this.g = null; // deprecated 2D graphics context for 'pre-rendering' - this.v = null; // value ; mixed array or integer - this.cv = null; // change value ; not commited value - this.x = 0; // canvas x position - this.y = 0; // canvas y position - this.w = 0; // canvas width - this.h = 0; // canvas height - this.$c = null; // jQuery canvas element - this.c = null; // rendered canvas context - this.t = 0; // touches index - this.isInit = false; - this.fgColor = null; // main color - this.pColor = null; // previous color - this.dH = null; // draw hook - this.cH = null; // change hook - this.eH = null; // cancel hook - this.rH = null; // release hook - this.scale = 1; // scale factor - this.relative = false; - this.relativeWidth = false; - this.relativeHeight = false; - this.$div = null; // component div - - this.run = function () { - var cf = function (e, conf) { - var k; - for (k in conf) { - s.o[k] = conf[k]; - } - s._carve().init(); - s._configure() - ._draw(); - }; - - if (this.$.data('kontroled')) return; - this.$.data('kontroled', true); - - this.extend(); - this.o = $.extend({ - // Config - min: this.$.data('min') !== undefined ? this.$.data('min') : 0, - max: this.$.data('max') !== undefined ? this.$.data('max') : 100, - stopper: true, - readOnly: this.$.data('readonly') || (this.$.attr('readonly') === 'readonly'), - - // UI - cursor: this.$.data('cursor') === true && 30 - || this.$.data('cursor') || 0, - thickness: this.$.data('thickness') - && Math.max(Math.min(this.$.data('thickness'), 1), 0.01) - || 0.35, - lineCap: this.$.data('linecap') || 'butt', - width: this.$.data('width') || 200, - height: this.$.data('height') || 200, - displayInput: this.$.data('displayinput') == null || this.$.data('displayinput'), - displayPrevious: this.$.data('displayprevious'), - fgColor: this.$.data('fgcolor') || '#87CEEB', - inputColor: this.$.data('inputcolor'), - font: this.$.data('font') || 'Arial', - fontWeight: this.$.data('font-weight') || 'bold', - inline: false, - step: this.$.data('step') || 1, - rotation: this.$.data('rotation'), - - // Hooks - draw: null, // function () {} - change: null, // function (value) {} - cancel: null, // function () {} - release: null, // function (value) {} - - // Output formatting, allows to add unit: %, ms ... - format: function(v) { - return v; - }, - parse: function (v) { - return parseFloat(v); - } - }, this.o - ); - - // finalize options - this.o.flip = this.o.rotation === 'anticlockwise' || this.o.rotation === 'acw'; - if (!this.o.inputColor) { - this.o.inputColor = this.o.fgColor; - } - - // routing value - if (this.$.is('fieldset')) { - - // fieldset = array of integer - this.v = {}; - this.i = this.$.find('input'); - this.i.each(function(k) { - var $this = $(this); - s.i[k] = $this; - s.v[k] = s.o.parse($this.val()); - - $this.bind( - 'change blur', - function () { - var val = {}; - val[k] = $this.val(); - s.val(s._validate(val)); - } - ); - }); - this.$.find('legend').remove(); - } else { - - // input = integer - this.i = this.$; - this.v = this.o.parse(this.$.val()); - this.v === '' && (this.v = this.o.min); - this.$.bind( - 'change blur', - function () { - s.val(s._validate(s.o.parse(s.$.val()))); - } - ); - - } - - !this.o.displayInput && this.$.hide(); - - // adds needed DOM elements (canvas, div) - this.$c = $(document.createElement('canvas')).attr({ - width: this.o.width, - height: this.o.height - }); - - // wraps all elements in a div - // add to DOM before Canvas init is triggered - this.$div = $('
    '); - - this.$.wrap(this.$div).before(this.$c); - this.$div = this.$.parent(); - - if (typeof G_vmlCanvasManager !== 'undefined') { - G_vmlCanvasManager.initElement(this.$c[0]); - } - - this.c = this.$c[0].getContext ? this.$c[0].getContext('2d') : null; - - if (!this.c) { - throw { - name: "CanvasNotSupportedException", - message: "Canvas not supported. Please use excanvas on IE8.0.", - toString: function(){return this.name + ": " + this.message} - } - } - - // hdpi support - this.scale = (window.devicePixelRatio || 1) / ( - this.c.webkitBackingStorePixelRatio || - this.c.mozBackingStorePixelRatio || - this.c.msBackingStorePixelRatio || - this.c.oBackingStorePixelRatio || - this.c.backingStorePixelRatio || 1 - ); - - // detects relative width / height - this.relativeWidth = this.o.width % 1 !== 0 - && this.o.width.indexOf('%'); - this.relativeHeight = this.o.height % 1 !== 0 - && this.o.height.indexOf('%'); - this.relative = this.relativeWidth || this.relativeHeight; - - // computes size and carves the component - this._carve(); - - // prepares props for transaction - if (this.v instanceof Object) { - this.cv = {}; - this.copy(this.v, this.cv); - } else { - this.cv = this.v; - } - - // binds configure event - this.$ - .bind("configure", cf) - .parent() - .bind("configure", cf); - - // finalize init - this._listen() - ._configure() - ._xy() - .init(); - - this.isInit = true; - - this.$.val(this.o.format(this.v)); - this._draw(); - - return this; - }; - - this._carve = function() { - if (this.relative) { - var w = this.relativeWidth ? - this.$div.parent().width() * - parseInt(this.o.width) / 100 - : this.$div.parent().width(), - h = this.relativeHeight ? - this.$div.parent().height() * - parseInt(this.o.height) / 100 - : this.$div.parent().height(); - - // apply relative - this.w = this.h = Math.min(w, h); - } else { - this.w = this.o.width; - this.h = this.o.height; - } - - // finalize div - this.$div.css({ - 'width': this.w + 'px', - 'height': this.h + 'px' - }); - - // finalize canvas with computed width - this.$c.attr({ - width: this.w, - height: this.h - }); - - // scaling - if (this.scale !== 1) { - this.$c[0].width = this.$c[0].width * this.scale; - this.$c[0].height = this.$c[0].height * this.scale; - this.$c.width(this.w); - this.$c.height(this.h); - } - - return this; - }; - - this._draw = function () { - - // canvas pre-rendering - var d = true; - - s.g = s.c; - - s.clear(); - - s.dH && (d = s.dH()); - - d !== false && s.draw(); - }; - - this._touch = function (e) { - var touchMove = function (e) { - var v = s.xy2val( - e.originalEvent.touches[s.t].pageX, - e.originalEvent.touches[s.t].pageY - ); - - if (v == s.cv) return; - - if (s.cH && s.cH(v) === false) return; - - s.change(s._validate(v)); - s._draw(); - }; - - // get touches index - this.t = k.c.t(e); - - // First touch - touchMove(e); - - // Touch events listeners - k.c.d - .bind("touchmove.k", touchMove) - .bind( - "touchend.k", - function () { - k.c.d.unbind('touchmove.k touchend.k'); - s.val(s.cv); - } - ); - - return this; - }; - - this._mouse = function (e) { - var mouseMove = function (e) { - var v = s.xy2val(e.pageX, e.pageY); - - if (v == s.cv) return; - - if (s.cH && (s.cH(v) === false)) return; - - s.change(s._validate(v)); - s._draw(); - }; - - // First click - mouseMove(e); - - // Mouse events listeners - k.c.d - .bind("mousemove.k", mouseMove) - .bind( - // Escape key cancel current change - "keyup.k", - function (e) { - if (e.keyCode === 27) { - k.c.d.unbind("mouseup.k mousemove.k keyup.k"); - - if (s.eH && s.eH() === false) - return; - - s.cancel(); - } - } - ) - .bind( - "mouseup.k", - function (e) { - k.c.d.unbind('mousemove.k mouseup.k keyup.k'); - s.val(s.cv); - } - ); - - return this; - }; - - this._xy = function () { - var o = this.$c.offset(); - this.x = o.left; - this.y = o.top; - - return this; - }; - - this._listen = function () { - if (!this.o.readOnly) { - this.$c - .bind( - "mousedown", - function (e) { - e.preventDefault(); - s._xy()._mouse(e); - } - ) - .bind( - "touchstart", - function (e) { - e.preventDefault(); - s._xy()._touch(e); - } - ); - - this.listen(); - } else { - this.$.attr('readonly', 'readonly'); - } - - if (this.relative) { - $(window).resize(function() { - s._carve().init(); - s._draw(); - }); - } - - return this; - }; - - this._configure = function () { - - // Hooks - if (this.o.draw) this.dH = this.o.draw; - if (this.o.change) this.cH = this.o.change; - if (this.o.cancel) this.eH = this.o.cancel; - if (this.o.release) this.rH = this.o.release; - - if (this.o.displayPrevious) { - this.pColor = this.h2rgba(this.o.fgColor, "0.4"); - this.fgColor = this.h2rgba(this.o.fgColor, "0.6"); - } else { - this.fgColor = this.o.fgColor; - } - - return this; - }; - - this._clear = function () { - this.$c[0].width = this.$c[0].width; - }; - - this._validate = function (v) { - var val = (~~ (((v < 0) ? -0.5 : 0.5) + (v/this.o.step))) * this.o.step; - return Math.round(val * 100) / 100; - }; - - // Abstract methods - this.listen = function () {}; // on start, one time - this.extend = function () {}; // each time configure triggered - this.init = function () {}; // each time configure triggered - this.change = function (v) {}; // on change - this.val = function (v) {}; // on release - this.xy2val = function (x, y) {}; // - this.draw = function () {}; // on change / on release - this.clear = function () { this._clear(); }; - - // Utils - this.h2rgba = function (h, a) { - var rgb; - h = h.substring(1,7); - rgb = [ - parseInt(h.substring(0,2), 16), - parseInt(h.substring(2,4), 16), - parseInt(h.substring(4,6), 16) - ]; - - return "rgba(" + rgb[0] + "," + rgb[1] + "," + rgb[2] + "," + a + ")"; - }; - - this.copy = function (f, t) { - for (var i in f) { - t[i] = f[i]; - } - }; - }; - - - /** - * k.Dial - */ - k.Dial = function () { - k.o.call(this); - - this.startAngle = null; - this.xy = null; - this.radius = null; - this.lineWidth = null; - this.cursorExt = null; - this.w2 = null; - this.PI2 = 2*Math.PI; - - this.extend = function () { - this.o = $.extend({ - bgColor: this.$.data('bgcolor') || '#EEEEEE', - angleOffset: this.$.data('angleoffset') || 0, - angleArc: this.$.data('anglearc') || 360, - inline: true - }, this.o); - }; - - this.val = function (v, triggerRelease) { - if (null != v) { - - // reverse format - v = this.o.parse(v); - - if (triggerRelease !== false - && v != this.v - && this.rH - && this.rH(v) === false) { return; } - - this.cv = this.o.stopper ? max(min(v, this.o.max), this.o.min) : v; - this.v = this.cv; - this.$.val(this.o.format(this.v)); - this._draw(); - } else { - return this.v; - } - }; - - this.xy2val = function (x, y) { - var a, ret; - - a = Math.atan2( - x - (this.x + this.w2), - - (y - this.y - this.w2) - ) - this.angleOffset; - - if (this.o.flip) { - a = this.angleArc - a - this.PI2; - } - - if (this.angleArc != this.PI2 && (a < 0) && (a > -0.5)) { - - // if isset angleArc option, set to min if .5 under min - a = 0; - } else if (a < 0) { - a += this.PI2; - } - - ret = (a * (this.o.max - this.o.min) / this.angleArc) + this.o.min; - - this.o.stopper && (ret = max(min(ret, this.o.max), this.o.min)); - - return ret; - }; - - this.listen = function () { - - // bind MouseWheel - var s = this, mwTimerStop, - mwTimerRelease, - mw = function (e) { - e.preventDefault(); - - var ori = e.originalEvent, - deltaX = ori.detail || ori.wheelDeltaX, - deltaY = ori.detail || ori.wheelDeltaY, - v = s._validate(s.o.parse(s.$.val())) - + ( - deltaX > 0 || deltaY > 0 - ? s.o.step - : deltaX < 0 || deltaY < 0 ? -s.o.step : 0 - ); - - v = max(min(v, s.o.max), s.o.min); - - s.val(v, false); - - if (s.rH) { - // Handle mousewheel stop - clearTimeout(mwTimerStop); - mwTimerStop = setTimeout(function () { - s.rH(v); - mwTimerStop = null; - }, 100); - - // Handle mousewheel releases - if (!mwTimerRelease) { - mwTimerRelease = setTimeout(function () { - if (mwTimerStop) - s.rH(v); - mwTimerRelease = null; - }, 200); - } - } - }, - kval, - to, - m = 1, - kv = { - 37: -s.o.step, - 38: s.o.step, - 39: s.o.step, - 40: -s.o.step - }; - - this.$ - .bind( - "keydown", - function (e) { - var kc = e.keyCode; - - // numpad support - if (kc >= 96 && kc <= 105) { - kc = e.keyCode = kc - 48; - } - - kval = parseInt(String.fromCharCode(kc)); - - if (isNaN(kval)) { - (kc !== 13) // enter - && kc !== 8 // bs - && kc !== 9 // tab - && kc !== 189 // - - && (kc !== 190 - || s.$.val().match(/\./)) // . allowed once - && e.preventDefault(); - - // arrows - if ($.inArray(kc,[37,38,39,40]) > -1) { - e.preventDefault(); - - var v = s.o.parse(s.$.val()) + kv[kc] * m; - s.o.stopper && (v = max(min(v, s.o.max), s.o.min)); - - s.change(s._validate(v)); - s._draw(); - - // long time keydown speed-up - to = window.setTimeout(function () { - m *= 2; - }, 30); - } - } - } - ) - .bind( - "keyup", - function (e) { - if (isNaN(kval)) { - if (to) { - window.clearTimeout(to); - to = null; - m = 1; - s.val(s.$.val()); - } - } else { - // kval postcond - (s.$.val() > s.o.max && s.$.val(s.o.max)) - || (s.$.val() < s.o.min && s.$.val(s.o.min)); - } - } - ); - - this.$c.bind("mousewheel DOMMouseScroll", mw); - this.$.bind("mousewheel DOMMouseScroll", mw); - }; - - this.init = function () { - if (this.v < this.o.min - || this.v > this.o.max) { this.v = this.o.min; } - - this.$.val(this.v); - this.w2 = this.w / 2; - this.cursorExt = this.o.cursor / 100; - this.xy = this.w2 * this.scale; - this.lineWidth = this.xy * this.o.thickness; - this.lineCap = this.o.lineCap; - this.radius = this.xy - this.lineWidth / 2; - - this.o.angleOffset - && (this.o.angleOffset = isNaN(this.o.angleOffset) ? 0 : this.o.angleOffset); - - this.o.angleArc - && (this.o.angleArc = isNaN(this.o.angleArc) ? this.PI2 : this.o.angleArc); - - // deg to rad - this.angleOffset = this.o.angleOffset * Math.PI / 180; - this.angleArc = this.o.angleArc * Math.PI / 180; - - // compute start and end angles - this.startAngle = 1.5 * Math.PI + this.angleOffset; - this.endAngle = 1.5 * Math.PI + this.angleOffset + this.angleArc; - - var s = max( - String(Math.abs(this.o.max)).length, - String(Math.abs(this.o.min)).length, - 2 - ) + 2; - - this.o.displayInput - && this.i.css({ - 'width' : ((this.w / 2 + 4) >> 0) + 'px', - 'height' : ((this.w / 3) >> 0) + 'px', - 'position' : 'absolute', - 'vertical-align' : 'middle', - 'margin-top' : ((this.w / 3) >> 0) + 'px', - 'margin-left' : '-' + ((this.w * 3 / 4 + 2) >> 0) + 'px', - 'border' : 0, - 'background' : 'none', - 'font' : this.o.fontWeight + ' ' + ((this.w / s) >> 0) + 'px ' + this.o.font, - 'text-align' : 'center', - 'color' : this.o.inputColor || this.o.fgColor, - 'padding' : '0px', - '-webkit-appearance': 'none' - }) || this.i.css({ - 'width': '0px', - 'visibility': 'hidden' - }); - }; - - this.change = function (v) { - this.cv = v; - this.$.val(this.o.format(v)); - }; - - this.angle = function (v) { - return (v - this.o.min) * this.angleArc / (this.o.max - this.o.min); - }; - - this.arc = function (v) { - var sa, ea; - v = this.angle(v); - if (this.o.flip) { - sa = this.endAngle + 0.00001; - ea = sa - v - 0.00001; - } else { - sa = this.startAngle - 0.00001; - ea = sa + v + 0.00001; - } - this.o.cursor - && (sa = ea - this.cursorExt) - && (ea = ea + this.cursorExt); - - return { - s: sa, - e: ea, - d: this.o.flip && !this.o.cursor - }; - }; - - this.draw = function () { - var c = this.g, // context - a = this.arc(this.cv), // Arc - pa, // Previous arc - r = 1; - - c.lineWidth = this.lineWidth; - c.lineCap = this.lineCap; - - if (this.o.bgColor !== "none") { - c.beginPath(); - c.strokeStyle = this.o.bgColor; - c.arc(this.xy, this.xy, this.radius, this.endAngle - 0.00001, this.startAngle + 0.00001, true); - c.stroke(); - } - - if (this.o.displayPrevious) { - pa = this.arc(this.v); - c.beginPath(); - c.strokeStyle = this.pColor; - c.arc(this.xy, this.xy, this.radius, pa.s, pa.e, pa.d); - c.stroke(); - r = this.cv == this.v; - } - - c.beginPath(); - c.strokeStyle = r ? this.o.fgColor : this.fgColor ; - c.arc(this.xy, this.xy, this.radius, a.s, a.e, a.d); - c.stroke(); - }; - - this.cancel = function () { - this.val(this.v); - }; - }; - - $.fn.dial = $.fn.knob = function (o) { - return this.each( - function () { - var d = new k.Dial(); - d.o = o; - d.$ = $(this); - d.run(); - } - ).parent(); - }; - -})); diff --git a/htdocs/public/high/plugins/jquery-mapael/jquery.mapael.js b/htdocs/public/high/plugins/jquery-mapael/jquery.mapael.js deleted file mode 100644 index a9b7ccd4..00000000 --- a/htdocs/public/high/plugins/jquery-mapael/jquery.mapael.js +++ /dev/null @@ -1,2249 +0,0 @@ -/*! - * - * Jquery Mapael - Dynamic maps jQuery plugin (based on raphael.js) - * Requires jQuery, raphael.js and jquery.mousewheel - * - * Version: 2.0.0 - * - * Copyright (c) 2015 Vincent Brouté (http://www.vincentbroute.fr/mapael) - * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php). - * - * Thanks to Indigo744 - * - */ -(function (factory) { - if (typeof exports === 'object') { - // CommonJS - module.exports = factory(require('jquery'), require('raphael'), require('mousewheel')); - } else if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['jquery', 'raphael', 'mousewheel'], factory); - } else { - // Browser globals - factory(jQuery, Raphael, jQuery.fn.mousewheel); - } -}(function ($, Raphael, mousewheel, undefined) { - - "use strict"; - - // The plugin name (used on several places) - var pluginName = "mapael"; - - // Version number of jQuery Mapael. See http://semver.org/ for more information. - var version = "2.0.0-dev"; - - /* - * Mapael constructor - * Init instance vars and call init() - * @param container the DOM element on which to apply the plugin - * @param options the complete options to use - */ - var Mapael = function (container, options) { - var self = this; - - // the global container (DOM element object) - self.container = container; - - // the global container (jQuery object) - self.$container = $(container); - - // the global options - self.options = self.extendDefaultOptions(options); - - // Save initial HTML content (used by destroy method) - self.initialHTMLContent = self.$container.html(); - - // zoom TimeOut handler (used to set and clear) - self.zoomTO = 0; - - // zoom center coordinate (set at touchstart) - self.zoomCenterX = 0; - self.zoomCenterY = 0; - - // Zoom pinch (set at touchstart and touchmove) - self.previousPinchDist = 0; - - // Zoom data - self.zoomData = { - zoomLevel: 0, - zoomX: 0, - zoomY: 0, - panX: 0, - panY: 0 - }; - - // resize TimeOut handler (used to set and clear) - self.resizeTO = 0; - - // Panning: tell if panning action is in progress - self.panning = false; - - // Panning TimeOut handler (used to set and clear) - self.panningTO = 0; - - // Animate view box Interval handler (used to set and clear) - self.animationIntervalID = null; - - // Map subcontainer jQuery object - self.$map = {}; - - // The tooltip jQuery object - self.$tooltip = {}; - - // The paper Raphael object - self.paper = {}; - - // The areas object list - self.areas = {}; - - // The plots object list - self.plots = {}; - - // The links object list - self.links = {}; - - // The map configuration object (taken from map file) - self.mapConf = {}; - - // Let's start the initialization - self.init(); - }; - - /* - * Mapael Prototype - * Defines all methods and properties needed by Mapael - * Each mapael object inherits their properties and methods from this prototype - */ - Mapael.prototype = { - - /* - * Version number - */ - version: version, - - /* - * Initialize the plugin - * Called by the constructor - */ - init: function () { - var self = this; - - // Init check for class existence - if (self.options.map.cssClass === "" || $("." + self.options.map.cssClass, self.container).length === 0) { - throw new Error("The map class `" + self.options.map.cssClass + "` doesn't exists"); - } - - // Create the tooltip container - self.$tooltip = $("
    ").addClass(self.options.map.tooltip.cssClass).css("display", "none"); - - // Get the map container, empty it then append tooltip - self.$map = $("." + self.options.map.cssClass, self.container).empty().append(self.$tooltip); - - // Get the map from $.mapael or $.fn.mapael (backward compatibility) - if ($[pluginName] && $[pluginName].maps && $[pluginName].maps[self.options.map.name]) { - // Mapael version >= 2.x - self.mapConf = $[pluginName].maps[self.options.map.name]; - } else if ($.fn[pluginName] && $.fn[pluginName].maps && $.fn[pluginName].maps[self.options.map.name]) { - // Mapael version <= 1.x - DEPRECATED - self.mapConf = $.fn[pluginName].maps[self.options.map.name]; - if (window.console && window.console.warn) { - window.console.warn("Extending $.fn.mapael is deprecated (map '" + self.options.map.name + "')"); - } - } else { - throw new Error("Unknown map '" + self.options.map.name + "'"); - } - - // Create Raphael paper - self.paper = new Raphael(self.$map[0], self.mapConf.width, self.mapConf.height); - - // issue #135: Check for Raphael bug on text element boundaries - if (self.isRaphaelBBoxBugPresent() === true) { - self.destroy(); - throw new Error("Can't get boundary box for text (is your container hidden? See #135)"); - } - - // add plugin class name on element - self.$container.addClass(pluginName); - - if (self.options.map.tooltip.css) self.$tooltip.css(self.options.map.tooltip.css); - self.paper.setViewBox(0, 0, self.mapConf.width, self.mapConf.height, false); - - // Handle map size - if (self.options.map.width) { - // NOT responsive: map has a fixed width - self.paper.setSize(self.options.map.width, self.mapConf.height * (self.options.map.width / self.mapConf.width)); - - // Create the legends for plots taking into account the scale of the map - self.createLegends("plot", self.plots, (self.options.map.width / self.mapConf.width)); - } else { - // Responsive: handle resizing of the map - self.handleMapResizing(); - } - - // Draw map areas - $.each(self.mapConf.elems, function (id) { - var elemOptions = self.getElemOptions( - self.options.map.defaultArea, - (self.options.areas[id] ? self.options.areas[id] : {}), - self.options.legend.area - ); - self.areas[id] = {"mapElem": self.paper.path(self.mapConf.elems[id]).attr(elemOptions.attrs)}; - }); - - // Hook that allows to add custom processing on the map - if (self.options.map.beforeInit) self.options.map.beforeInit(self.$container, self.paper, self.options); - - // Init map areas in a second loop (prevent texts to be hidden by map elements) - $.each(self.mapConf.elems, function (id) { - var elemOptions = self.getElemOptions( - self.options.map.defaultArea, - (self.options.areas[id] ? self.options.areas[id] : {}), - self.options.legend.area - ); - self.initElem(self.areas[id], elemOptions, id); - }); - - // Draw links - self.links = self.drawLinksCollection(self.options.links); - - // Draw plots - $.each(self.options.plots, function (id) { - self.plots[id] = self.drawPlot(id); - }); - - // Attach zoom event - self.$container.on("zoom." + pluginName, function (e, zoomOptions) { - self.onZoomEvent(e, zoomOptions); - }); - - if (self.options.map.zoom.enabled) { - // Enable zoom - self.initZoom(self.mapConf.width, self.mapConf.height, self.options.map.zoom); - } - - // Set initial zoom - if (self.options.map.zoom.init !== undefined) { - if (self.options.map.zoom.init.animDuration === undefined) { - self.options.map.zoom.init.animDuration = 0; - } - self.$container.trigger("zoom." + pluginName, self.options.map.zoom.init); - } - - // Create the legends for areas - self.createLegends("area", self.areas, 1); - - // Attach update event - self.$container.on("update." + pluginName, function (e, opt) { - self.onUpdateEvent(e, opt); - }); - - // Attach showElementsInRange event - self.$container.on("showElementsInRange." + pluginName, function (e, opt) { - self.onShowElementsInRange(e, opt); - }); - - // Hook that allows to add custom processing on the map - if (self.options.map.afterInit) self.options.map.afterInit(self.$container, self.paper, self.areas, self.plots, self.options); - - $(self.paper.desc).append(" and Mapael " + self.version + " (http://www.vincentbroute.fr/mapael/)"); - }, - - /* - * Destroy mapael - * This function effectively detach mapael from the container - * - Set the container back to the way it was before mapael instanciation - * - Remove all data associated to it (memory can then be free'ed by browser) - * - * This method can be call directly by user: - * $(".mapcontainer").data("mapael").destroy(); - * - * This method is also automatically called if the user try to call mapael - * on a container already containing a mapael instance - */ - destroy: function () { - var self = this; - - // Detach all event listeners attached to the container - self.$container.off("." + pluginName); - - // Empty the container (this will also detach all event listeners) - self.$container.empty(); - // Detach the global resize event handler - if (self.onResizeEvent) $(window).off("resize." + pluginName, self.onResizeEvent); - // Replace initial HTML content - self.$container.html(self.initialHTMLContent); - // Remove mapael class - self.$container.removeClass(pluginName); - // Remove the data - self.$container.removeData(pluginName); - // Remove all internal reference - self.container = undefined; - self.$container = undefined; - self.options = undefined; - self.paper = undefined; - self.$map = undefined; - self.$tooltip = undefined; - self.mapConf = undefined; - self.areas = undefined; - self.plots = undefined; - self.links = undefined; - }, - - handleMapResizing: function () { - var self = this; - - // onResizeEvent: call when the window element trigger the resize event - // We create it inside this function (and not in the prototype) in order to have a closure - // Otherwise, in the prototype, 'this' when triggered is *not* the mapael object but the global window - self.onResizeEvent = function () { - // Clear any previous setTimeout (avoid too much triggering) - clearTimeout(self.resizeTO); - // setTimeout to wait for the user to finish its resizing - self.resizeTO = setTimeout(function () { - self.$map.trigger("resizeEnd." + pluginName); - }, 150); - }; - - // Attach resize handler - $(window).on("resize." + pluginName, self.onResizeEvent); - - // Attach resize end handler, and call it once - self.$map.on("resizeEnd." + pluginName, function () { - var containerWidth = self.$map.width(); - if (self.paper.width != containerWidth) { - var newScale = containerWidth / self.mapConf.width; - // Set new size - self.paper.setSize(containerWidth, self.mapConf.height * newScale); - // Create plots legend again to take into account the new scale - self.createLegends("plot", self.plots, newScale); - } - }).trigger("resizeEnd." + pluginName); - }, - - /* - * Extend the user option with the default one - * @param options the user options - * @return new options object - */ - extendDefaultOptions: function (options) { - - // Extend default options with user options - options = $.extend(true, {}, Mapael.prototype.defaultOptions, options); - - // Extend legend default options - $.each(options.legend, function (type) { - if ($.isArray(options.legend[type])) { - for (var i = 0; i < options.legend[type].length; ++i) - options.legend[type][i] = $.extend(true, {}, Mapael.prototype.legendDefaultOptions[type], options.legend[type][i]); - } else { - options.legend[type] = $.extend(true, {}, Mapael.prototype.legendDefaultOptions[type], options.legend[type]); - } - }); - - return options; - }, - - /* - * Init the element "elem" on the map (drawing, setting attributes, events, tooltip, ...) - */ - initElem: function (elem, elemOptions, id) { - var self = this; - var bbox = {}; - var textPosition = {}; - - // Assign value attribute to element - if (elemOptions.value !== undefined){ - elem.value = elemOptions.value; - } - - // Init the label related to the element - if (elemOptions.text && elemOptions.text.content !== undefined) { - // Set a text label in the area - bbox = elem.mapElem.getBBox(); - textPosition = self.getTextPosition(bbox, elemOptions.text.position, elemOptions.text.margin); - elemOptions.text.attrs["text-anchor"] = textPosition.textAnchor; - elem.textElem = self.paper.text(textPosition.x, textPosition.y, elemOptions.text.content).attr(elemOptions.text.attrs); - $(elem.textElem.node).attr("data-id", id); - } - - // Set user event handlers - if (elemOptions.eventHandlers) self.setEventHandlers(id, elemOptions, elem.mapElem, elem.textElem); - - // Set hover option for mapElem - self.setHoverOptions(elem.mapElem, elemOptions.attrs, elemOptions.attrsHover); - - // Set hover option for textElem - if (elem.textElem) self.setHoverOptions(elem.textElem, elemOptions.text.attrs, elemOptions.text.attrsHover); - - // Set hover behavior only if attrsHover is set for area or for text - if (($.isEmptyObject(elemOptions.attrsHover) === false) || - (elem.textElem && $.isEmptyObject(elemOptions.text.attrsHover) === false)) { - // Set hover behavior - self.setHover(elem.mapElem, elem.textElem); - } - - // Init the tooltip - if (elemOptions.tooltip) { - elem.mapElem.tooltip = elemOptions.tooltip; - self.setTooltip(elem.mapElem); - - if (elemOptions.text && elemOptions.text.content !== undefined) { - elem.textElem.tooltip = elemOptions.tooltip; - self.setTooltip(elem.textElem); - } - } - - // Init the link - if (elemOptions.href) { - elem.mapElem.href = elemOptions.href; - elem.mapElem.target = elemOptions.target; - self.setHref(elem.mapElem); - - if (elemOptions.text && elemOptions.text.content !== undefined) { - elem.textElem.href = elemOptions.href; - elem.textElem.target = elemOptions.target; - self.setHref(elem.textElem); - } - } - - $(elem.mapElem.node).attr("data-id", id); - }, - - /* - * Init zoom and panning for the map - * @param mapWidth - * @param mapHeight - * @param zoomOptions - */ - initZoom: function (mapWidth, mapHeight, zoomOptions) { - var self = this; - var mousedown = false; - var previousX = 0; - var previousY = 0; - var fnZoomButtons = { - "reset": function () { - self.$container.trigger("zoom." + pluginName, {"level": 0}); - }, - "in": function () { - self.$container.trigger("zoom." + pluginName, {"level": "+1"}); - }, - "out": function () { - self.$container.trigger("zoom." + pluginName, {"level": -1}); - } - }; - - // init Zoom data - $.extend(self.zoomData, { - zoomLevel: 0, - panX: 0, - panY: 0 - }); - - // init zoom buttons - $.each(zoomOptions.buttons, function(type, opt) { - if (fnZoomButtons[type] === undefined) throw new Error("Unknown zoom button '" + type + "'"); - // Create div with classes, contents and title (for tooltip) - var $button = $("
    ").addClass(opt.cssClass) - .html(opt.content) - .attr("title", opt.title); - // Assign click event - $button.on("click." + pluginName, fnZoomButtons[type]); - // Append to map - self.$map.append($button); - }); - - // Update the zoom level of the map on mousewheel - if (self.options.map.zoom.mousewheel) { - self.$map.on("mousewheel." + pluginName, function (e) { - var zoomLevel = (e.deltaY > 0) ? 1 : -1; - var coord = self.mapPagePositionToXY(e.pageX, e.pageY); - - self.$container.trigger("zoom." + pluginName, { - "fixedCenter": true, - "level": self.zoomData.zoomLevel + zoomLevel, - "x": coord.x, - "y": coord.y - }); - - return false; - }); - } - - // Update the zoom level of the map on touch pinch - if (self.options.map.zoom.touch) { - self.$map.on("touchstart." + pluginName, function (e) { - if (e.originalEvent.touches.length === 2) { - self.zoomCenterX = (e.originalEvent.touches[0].pageX + e.originalEvent.touches[1].pageX) / 2; - self.zoomCenterY = (e.originalEvent.touches[0].pageY + e.originalEvent.touches[1].pageY) / 2; - self.previousPinchDist = Math.sqrt(Math.pow((e.originalEvent.touches[1].pageX - e.originalEvent.touches[0].pageX), 2) + Math.pow((e.originalEvent.touches[1].pageY - e.originalEvent.touches[0].pageY), 2)); - } - }); - - self.$map.on("touchmove." + pluginName, function (e) { - var pinchDist = 0; - var zoomLevel = 0; - - if (e.originalEvent.touches.length === 2) { - pinchDist = Math.sqrt(Math.pow((e.originalEvent.touches[1].pageX - e.originalEvent.touches[0].pageX), 2) + Math.pow((e.originalEvent.touches[1].pageY - e.originalEvent.touches[0].pageY), 2)); - - if (Math.abs(pinchDist - self.previousPinchDist) > 15) { - var coord = self.mapPagePositionToXY(self.zoomCenterX, self.zoomCenterY); - zoomLevel = (pinchDist - self.previousPinchDist) / Math.abs(pinchDist - self.previousPinchDist); - self.$container.trigger("zoom." + pluginName, { - "fixedCenter": true, - "level": self.zoomData.zoomLevel + zoomLevel, - "x": coord.x, - "y": coord.y - }); - self.previousPinchDist = pinchDist; - } - return false; - } - }); - } - - // Panning - $("body").on("mouseup." + pluginName + (zoomOptions.touch ? " touchend" : ""), function () { - mousedown = false; - setTimeout(function () { - self.panning = false; - }, 50); - }); - - self.$map.on("mousedown." + pluginName + (zoomOptions.touch ? " touchstart" : ""), function (e) { - if (e.pageX !== undefined) { - mousedown = true; - previousX = e.pageX; - previousY = e.pageY; - } else { - if (e.originalEvent.touches.length === 1) { - mousedown = true; - previousX = e.originalEvent.touches[0].pageX; - previousY = e.originalEvent.touches[0].pageY; - } - } - }).on("mousemove." + pluginName + (zoomOptions.touch ? " touchmove" : ""), function (e) { - var currentLevel = self.zoomData.zoomLevel; - var pageX = 0; - var pageY = 0; - - if (e.pageX !== undefined) { - pageX = e.pageX; - pageY = e.pageY; - } else { - if (e.originalEvent.touches.length === 1) { - pageX = e.originalEvent.touches[0].pageX; - pageY = e.originalEvent.touches[0].pageY; - } else { - mousedown = false; - } - } - - if (mousedown && currentLevel !== 0) { - var offsetX = (previousX - pageX) / (1 + (currentLevel * zoomOptions.step)) * (mapWidth / self.paper.width); - var offsetY = (previousY - pageY) / (1 + (currentLevel * zoomOptions.step)) * (mapHeight / self.paper.height); - var panX = Math.min(Math.max(0, self.paper._viewBox[0] + offsetX), (mapWidth - self.paper._viewBox[2])); - var panY = Math.min(Math.max(0, self.paper._viewBox[1] + offsetY), (mapHeight - self.paper._viewBox[3])); - - if (Math.abs(offsetX) > 5 || Math.abs(offsetY) > 5) { - $.extend(self.zoomData, { - panX: panX, - panY: panY, - zoomX: panX + self.paper._viewBox[2] / 2, - zoomY: panY + self.paper._viewBox[3] / 2 - }); - self.paper.setViewBox(panX, panY, self.paper._viewBox[2], self.paper._viewBox[3]); - - clearTimeout(self.panningTO); - self.panningTO = setTimeout(function () { - self.$map.trigger("afterPanning", { - x1: panX, - y1: panY, - x2: (panX + self.paper._viewBox[2]), - y2: (panY + self.paper._viewBox[3]) - }); - }, 150); - - previousX = pageX; - previousY = pageY; - self.panning = true; - } - return false; - } - }); - }, - - /* - * Map a mouse position to a map position - * Transformation principle: - * ** start with (pageX, pageY) absolute mouse coordinate - * - Apply translation: take into accounts the map offset in the page - * ** from this point, we have relative mouse coordinate - * - Apply homothetic transformation: take into accounts initial factor of map sizing (fullWidth / actualWidth) - * - Apply homothetic transformation: take into accounts the zoom factor - * ** from this point, we have relative map coordinate - * - Apply translation: take into accounts the current panning of the map - * ** from this point, we have absolute map coordinate - * @param pageX: mouse client coordinate on X - * @param pageY: mouse client coordinate on Y - * @return map coordinate {x, y} - */ - mapPagePositionToXY: function(pageX, pageY) { - var self = this; - var offset = self.$map.offset(); - var initFactor = (self.options.map.width) ? (self.mapConf.width / self.options.map.width) : (self.mapConf.width / self.$map.width()); - var zoomFactor = 1 / (1 + (self.zoomData.zoomLevel * self.options.map.zoom.step)); - return { - x: (zoomFactor * initFactor * (pageX - offset.left)) + self.zoomData.panX, - y: (zoomFactor * initFactor * (pageY - offset.top)) + self.zoomData.panY - }; - }, - - /* - * Zoom on the map at a specific level focused on specific coordinates - * If no coordinates are specified, the zoom will be focused on the center of the map - * options : - * "level" : level of the zoom between minLevel and maxLevel - * "x" or "latitude" : x coordinate or latitude of the point to focus on - * "y" or "longitude" : y coordinate or longitude of the point to focus on - * "fixedCenter" : set to true in order to preserve the position of x,y in the canvas when zoomed - * "animDuration" : zoom duration - */ - onZoomEvent: function (e, zoomOptions) { - var self = this; - var newLevel = self.zoomData.zoomLevel; - var panX = 0; - var panY = 0; - var previousZoomLevel = (1 + self.zoomData.zoomLevel * self.options.map.zoom.step); - var zoomLevel = 0; - var animDuration = (zoomOptions.animDuration !== undefined) ? zoomOptions.animDuration : self.options.map.zoom.animDuration; - var offsetX = 0; - var offsetY = 0; - var coords = {}; - - // Get user defined zoom level - if (zoomOptions.level !== undefined) { - if (typeof zoomOptions.level === "string") { - // level is a string, either "n", "+n" or "-n" - if ((zoomOptions.level.slice(0, 1) === '+') || (zoomOptions.level.slice(0, 1) === '-')) { - // zoomLevel is relative - newLevel = self.zoomData.zoomLevel + parseInt(zoomOptions.level); - } else { - // zoomLevel is absolute - newLevel = parseInt(zoomOptions.level); - } - } else { - // level is integer - if (zoomOptions.level < 0) { - // zoomLevel is relative - newLevel = self.zoomData.zoomLevel + zoomOptions.level; - } else { - // zoomLevel is absolute - newLevel = zoomOptions.level; - } - } - // Make sure we stay in the boundaries - newLevel = Math.min(Math.max(newLevel, self.options.map.zoom.minLevel), self.options.map.zoom.maxLevel); - } - - zoomLevel = (1 + newLevel * self.options.map.zoom.step); - - if (zoomOptions.latitude !== undefined && zoomOptions.longitude !== undefined) { - coords = self.mapConf.getCoords(zoomOptions.latitude, zoomOptions.longitude); - zoomOptions.x = coords.x; - zoomOptions.y = coords.y; - } - - if (zoomOptions.x === undefined) - zoomOptions.x = self.paper._viewBox[0] + self.paper._viewBox[2] / 2; - - if (zoomOptions.y === undefined) - zoomOptions.y = (self.paper._viewBox[1] + self.paper._viewBox[3] / 2); - - if (newLevel === 0) { - panX = 0; - panY = 0; - } else if (zoomOptions.fixedCenter !== undefined && zoomOptions.fixedCenter === true) { - offsetX = self.zoomData.panX + ((zoomOptions.x - self.zoomData.panX) * (zoomLevel - previousZoomLevel)) / zoomLevel; - offsetY = self.zoomData.panY + ((zoomOptions.y - self.zoomData.panY) * (zoomLevel - previousZoomLevel)) / zoomLevel; - - panX = Math.min(Math.max(0, offsetX), (self.mapConf.width - (self.mapConf.width / zoomLevel))); - panY = Math.min(Math.max(0, offsetY), (self.mapConf.height - (self.mapConf.height / zoomLevel))); - } else { - panX = Math.min(Math.max(0, zoomOptions.x - (self.mapConf.width / zoomLevel) / 2), (self.mapConf.width - (self.mapConf.width / zoomLevel))); - panY = Math.min(Math.max(0, zoomOptions.y - (self.mapConf.height / zoomLevel) / 2), (self.mapConf.height - (self.mapConf.height / zoomLevel))); - } - - // Update zoom level of the map - if (zoomLevel == previousZoomLevel && panX == self.zoomData.panX && panY == self.zoomData.panY) return; - - if (animDuration > 0) { - self.animateViewBox(panX, panY, self.mapConf.width / zoomLevel, self.mapConf.height / zoomLevel, animDuration, self.options.map.zoom.animEasing); - } else { - self.paper.setViewBox(panX, panY, self.mapConf.width / zoomLevel, self.mapConf.height / zoomLevel); - clearTimeout(self.zoomTO); - self.zoomTO = setTimeout(function () { - self.$map.trigger("afterZoom", { - x1: panX, - y1: panY, - x2: (panX + (self.mapConf.width / zoomLevel)), - y2: (panY + (self.mapConf.height / zoomLevel)) - }); - }, 150); - } - - $.extend(self.zoomData, { - zoomLevel: newLevel, - panX: panX, - panY: panY, - zoomX: panX + self.paper._viewBox[2] / 2, - zoomY: panY + self.paper._viewBox[3] / 2 - }); - }, - - /* - * Show some element in range defined by user - * Triggered by user $(".mapcontainer").trigger("showElementsInRange", [opt]); - * - * @param opt the options - * opt.hiddenOpacity opacity for hidden element (default = 0.3) - * opt.animDuration animation duration in ms (default = 0) - * opt.afterShowRange callback - * opt.ranges the range to show: - * Example: - * opt.ranges = { - * 'plot' : { - * 0 : { // valueIndex - * 'min': 1000, - * 'max': 1200 - * }, - * 1 : { // valueIndex - * 'min': 10, - * 'max': 12 - * } - * }, - * 'area' : { - * {'min': 10, 'max': 20} // No valueIndex, only an object, use 0 as valueIndex (easy case) - * } - * } - */ - onShowElementsInRange: function(e, opt) { - var self = this; - - // set animDuration to default if not defined - if (opt.animDuration === undefined) { - opt.animDuration = 0; - } - - // set hiddenOpacity to default if not defined - if (opt.hiddenOpacity === undefined) { - opt.hiddenOpacity = 0.3; - } - - // handle area - if (opt.ranges && opt.ranges.area) { - self.showElemByRange(opt.ranges.area, self.areas, opt.hiddenOpacity, opt.animDuration); - } - - // handle plot - if (opt.ranges && opt.ranges.plot) { - self.showElemByRange(opt.ranges.plot, self.plots, opt.hiddenOpacity, opt.animDuration); - } - - // handle link - if (opt.ranges && opt.ranges.link) { - self.showElemByRange(opt.ranges.link, self.links, opt.hiddenOpacity, opt.animDuration); - } - - // Call user callback - if (opt.afterShowRange) opt.afterShowRange(); - }, - - /* - * Show some element in range - * @param ranges: the ranges - * @param elems: list of element on which to check against previous range - * @hiddenOpacity: the opacity when hidden - * @animDuration: the animation duration - */ - showElemByRange: function(ranges, elems, hiddenOpacity, animDuration) { - var self = this; - // Hold the final opacity value for all elements consolidated after applying each ranges - // This allow to set the opacity only once for each elements - var elemsFinalOpacity = {}; - - // set object with one valueIndex to 0 if we have directly the min/max - if (ranges.min !== undefined || ranges.max !== undefined) { - ranges = {0: ranges}; - } - - // Loop through each valueIndex - $.each(ranges, function (valueIndex) { - var range = ranges[valueIndex]; - // Check if user defined at least a min or max value - if (range.min === undefined && range.max === undefined) { - return true; // skip this iteration (each loop), goto next range - } - // Loop through each elements - $.each(elems, function (id) { - var elemValue = elems[id].value; - // set value with one valueIndex to 0 if not object - if (typeof elemValue !== "object") { - elemValue = [elemValue]; - } - // Check existence of this value index - if (elemValue[valueIndex] === undefined) { - return true; // skip this iteration (each loop), goto next element - } - // Check if in range - if ((range.min !== undefined && elemValue[valueIndex] < range.min) || - (range.max !== undefined && elemValue[valueIndex] > range.max)) { - // Element not in range - elemsFinalOpacity[id] = hiddenOpacity; - } else { - // Element in range - elemsFinalOpacity[id] = 1; - } - }); - }); - // Now that we looped through all ranges, we can really assign the final opacity - $.each(elemsFinalOpacity, function (id) { - self.setElementOpacity(elems[id], elemsFinalOpacity[id], animDuration); - }); - }, - - /* - * Set element opacity - * Handle elem.mapElem and elem.textElem - * @param elem the element - * @param opacity the opacity to apply - * @param animDuration the animation duration to use - */ - setElementOpacity: function(elem, opacity, animDuration) { - // Ensure no animation is running - //elem.mapElem.stop(); - //if (elem.textElem) elem.textElem.stop(); - - // If final opacity is not null, ensure element is shown before proceeding - if (opacity > 0) { - elem.mapElem.show(); - if (elem.textElem) elem.textElem.show(); - } - if (animDuration > 0) { - // Animate attribute - elem.mapElem.animate({"opacity": opacity}, animDuration, "linear", function () { - // If final attribute is 0, hide - if (opacity === 0) elem.mapElem.hide(); - }); - // Handle text element - if (elem.textElem) { - // Animate attribute - elem.textElem.animate({"opacity": opacity}, animDuration, "linear", function () { - // If final attribute is 0, hide - if (opacity === 0) elem.textElem.hide(); - }); - } - } else { - // Set attribute - elem.mapElem.attr({"opacity": opacity}); - // For null opacity, hide it - if (opacity === 0) elem.mapElem.hide(); - // Handle text elemen - if (elem.textElem) { - // Set attribute - elem.textElem.attr({"opacity": opacity}); - // For null opacity, hide it - if (opacity === 0) elem.textElem.hide(); - } - } - }, - - /* - * - * Update the current map - * Refresh attributes and tooltips for areas and plots - * @param opt option for the refresh : - * opt.mapOptions: options to update for plots and areas - * opt.replaceOptions: whether mapsOptions should entirely replace current map options, or just extend it - * opt.opt.newPlots new plots to add to the map - * opt.newLinks new links to add to the map - * opt.deletePlotKeys plots to delete from the map (array, or "all" to remove all plots) - * opt.deleteLinkKeys links to remove from the map (array, or "all" to remove all links) - * opt.setLegendElemsState the state of legend elements to be set : show (default) or hide - * opt.animDuration animation duration in ms (default = 0) - * opt.afterUpdate Hook that allows to add custom processing on the map - */ - onUpdateEvent: function (e, opt) { - var self = this; - // Abort if opt is undefined - if (typeof opt !== "object") return; - - var i = 0; - var animDuration = (opt.animDuration) ? opt.animDuration : 0; - - // This function remove an element using animation (or not, depending on animDuration) - // Used for deletePlotKeys and deleteLinkKeys - var fnRemoveElement = function (elem) { - // Unset all event handlers - self.unsetHover(elem.mapElem, elem.textElem); - if (animDuration > 0) { - elem.mapElem.animate({"opacity": 0}, animDuration, "linear", function () { - elem.mapElem.remove(); - }); - if (elem.textElem) { - elem.textElem.animate({"opacity": 0}, animDuration, "linear", function () { - elem.textElem.remove(); - }); - } - } else { - elem.mapElem.remove(); - if (elem.textElem) { - elem.textElem.remove(); - } - } - }; - - // This function show an element using animation - // Used for newPlots and newLinks - var fnShowElement = function (elem) { - // Starts with hidden elements - elem.mapElem.attr({opacity: 0}); - if (elem.textElem) elem.textElem.attr({opacity: 0}); - // Set final element opacity - self.setElementOpacity( - elem, - (elem.mapElem.originalAttrs.opacity !== undefined) ? elem.mapElem.originalAttrs.opacity : 1, - animDuration - ); - }; - - if (typeof opt.mapOptions === "object") { - if (opt.replaceOptions === true) self.options = self.extendDefaultOptions(opt.mapOptions); - else $.extend(true, self.options, opt.mapOptions); - - // IF we update areas, plots or legend, then reset all legend state to "show" - if (opt.mapOptions.areas !== undefined || opt.mapOptions.plots !== undefined || opt.mapOptions.legend !== undefined) { - $("[data-type='elem']", self.$container).each(function (id, elem) { - if ($(elem).attr('data-hidden') === "1") { - // Toggle state of element by clicking - $(elem).trigger("click." + pluginName, [false, animDuration]); - } - }); - } - } - - // Delete plots by name if deletePlotKeys is array - if (typeof opt.deletePlotKeys === "object") { - for (; i < opt.deletePlotKeys.length; i++) { - if (self.plots[opt.deletePlotKeys[i]] !== undefined) { - fnRemoveElement(self.plots[opt.deletePlotKeys[i]]); - delete self.plots[opt.deletePlotKeys[i]]; - } - } - // Delete ALL plots if deletePlotKeys is set to "all" - } else if (opt.deletePlotKeys === "all") { - $.each(self.plots, function (id, elem) { - fnRemoveElement(elem); - }); - // Empty plots object - self.plots = {}; - } - - // Delete links by name if deleteLinkKeys is array - if (typeof opt.deleteLinkKeys === "object") { - for (i = 0; i < opt.deleteLinkKeys.length; i++) { - if (self.links[opt.deleteLinkKeys[i]] !== undefined) { - fnRemoveElement(self.links[opt.deleteLinkKeys[i]]); - delete self.links[opt.deleteLinkKeys[i]]; - } - } - // Delete ALL links if deleteLinkKeys is set to "all" - } else if (opt.deleteLinkKeys === "all") { - $.each(self.links, function (id, elem) { - fnRemoveElement(elem); - }); - // Empty links object - self.links = {}; - } - - // New plots - if (typeof opt.newPlots === "object") { - $.each(opt.newPlots, function (id) { - if (self.plots[id] === undefined) { - self.options.plots[id] = opt.newPlots[id]; - self.plots[id] = self.drawPlot(id); - if (animDuration > 0) { - fnShowElement(self.plots[id]); - } - } - }); - } - - // New links - if (typeof opt.newLinks === "object") { - var newLinks = self.drawLinksCollection(opt.newLinks); - $.extend(self.links, newLinks); - $.extend(self.options.links, opt.newLinks); - if (animDuration > 0) { - $.each(newLinks, function (id) { - fnShowElement(newLinks[id]); - }); - } - } - - // Update areas attributes and tooltips - $.each(self.areas, function (id) { - // Avoid updating unchanged elements - if ((typeof opt.mapOptions === "object" && - ( - (typeof opt.mapOptions.map === "object" && typeof opt.mapOptions.map.defaultArea === "object") - || (typeof opt.mapOptions.areas === "object" && typeof opt.mapOptions.areas[id] === "object") - || (typeof opt.mapOptions.legend === "object" && typeof opt.mapOptions.legend.area === "object") - )) - || opt.replaceOptions === true - ) { - var elemOptions = self.getElemOptions( - self.options.map.defaultArea, - (self.options.areas[id] ? self.options.areas[id] : {}), - self.options.legend.area - ); - - self.updateElem(elemOptions, self.areas[id], animDuration); - } - }); - - // Update plots attributes and tooltips - $.each(self.plots, function (id) { - // Avoid updating unchanged elements - if ((typeof opt.mapOptions ==="object" && - ( - (typeof opt.mapOptions.map === "object" && typeof opt.mapOptions.map.defaultPlot === "object") - || (typeof opt.mapOptions.plots === "object" && typeof opt.mapOptions.plots[id] === "object") - || (typeof opt.mapOptions.legend === "object" && typeof opt.mapOptions.legend.plot === "object") - )) - || opt.replaceOptions === true - ) { - var elemOptions = self.getElemOptions( - self.options.map.defaultPlot, - (self.options.plots[id] ? self.options.plots[id] : {}), - self.options.legend.plot - ); - if (elemOptions.type == "square") { - elemOptions.attrs.width = elemOptions.size; - elemOptions.attrs.height = elemOptions.size; - elemOptions.attrs.x = self.plots[id].mapElem.attrs.x - (elemOptions.size - self.plots[id].mapElem.attrs.width) / 2; - elemOptions.attrs.y = self.plots[id].mapElem.attrs.y - (elemOptions.size - self.plots[id].mapElem.attrs.height) / 2; - } else if (elemOptions.type == "image") { - elemOptions.attrs.width = elemOptions.width; - elemOptions.attrs.height = elemOptions.height; - elemOptions.attrs.x = self.plots[id].mapElem.attrs.x - (elemOptions.width - self.plots[id].mapElem.attrs.width) / 2; - elemOptions.attrs.y = self.plots[id].mapElem.attrs.y - (elemOptions.height - self.plots[id].mapElem.attrs.height) / 2; - } else if (elemOptions.type == "svg") { - if (elemOptions.attrs.transform !== undefined) { - elemOptions.attrs.transform = self.plots[id].mapElem.baseTransform + elemOptions.attrs.transform; - } - }else { // Default : circle - elemOptions.attrs.r = elemOptions.size / 2; - } - - self.updateElem(elemOptions, self.plots[id], animDuration); - } - }); - - // Update links attributes and tooltips - $.each(self.links, function (id) { - // Avoid updating unchanged elements - if ((typeof opt.mapOptions === "object" && - ( - (typeof opt.mapOptions.map === "object" && typeof opt.mapOptions.map.defaultLink === "object") - || (typeof opt.mapOptions.links === "object" && typeof opt.mapOptions.links[id] === "object") - )) - || opt.replaceOptions === true - ) { - var elemOptions = self.getElemOptions( - self.options.map.defaultLink, - (self.options.links[id] ? self.options.links[id] : {}), - {} - ); - - self.updateElem(elemOptions, self.links[id], animDuration); - } - }); - - // Update legends - if (opt.mapOptions && ( - (typeof opt.mapOptions.legend === "object") - || (typeof opt.mapOptions.map === "object" && typeof opt.mapOptions.map.defaultArea === "object") - || (typeof opt.mapOptions.map === "object" && typeof opt.mapOptions.map.defaultPlot === "object") - )) { - // Show all elements on the map before updating the legends - $("[data-type='elem']", self.$container).each(function (id, elem) { - if ($(elem).attr('data-hidden') === "1") { - $(elem).trigger("click." + pluginName, [false, animDuration]); - } - }); - - self.createLegends("area", self.areas, 1); - if (self.options.map.width) { - self.createLegends("plot", self.plots, (self.options.map.width / self.mapConf.width)); - } else { - self.createLegends("plot", self.plots, (self.$map.width() / self.mapConf.width)); - } - } - - // Hide/Show all elements based on showlegendElems - // Toggle (i.e. click) only if: - // - slice legend is shown AND we want to hide - // - slice legend is hidden AND we want to show - if (typeof opt.setLegendElemsState === "object") { - // setLegendElemsState is an object listing the legend we want to hide/show - $.each(opt.setLegendElemsState, function (legendCSSClass, action) { - // Search for the legend - var $legend = self.$container.find("." + legendCSSClass)[0]; - if ($legend !== undefined) { - // Select all elem inside this legend - $("[data-type='elem']", $legend).each(function (id, elem) { - if (($(elem).attr('data-hidden') === "0" && action === "hide") || - ($(elem).attr('data-hidden') === "1" && action === "show")) { - // Toggle state of element by clicking - $(elem).trigger("click." + pluginName, [false, animDuration]); - } - }); - } - }); - } else { - // setLegendElemsState is a string, or is undefined - // Default : "show" - var action = (opt.setLegendElemsState === "hide") ? "hide" : "show"; - - $("[data-type='elem']", self.$container).each(function (id, elem) { - if (($(elem).attr('data-hidden') === "0" && action === "hide") || - ($(elem).attr('data-hidden') === "1" && action === "show")) { - // Toggle state of element by clicking - $(elem).trigger("click." + pluginName, [false, animDuration]); - } - }); - } - if (opt.afterUpdate) opt.afterUpdate(self.$container, self.paper, self.areas, self.plots, self.options); - }, - - /* - * Draw all links between plots on the paper - */ - drawLinksCollection: function (linksCollection) { - var self = this; - var p1 = {}; - var p2 = {}; - var coordsP1 = {}; - var coordsP2 = {}; - var links = {}; - - $.each(linksCollection, function (id) { - var elemOptions = self.getElemOptions(self.options.map.defaultLink, linksCollection[id], {}); - - if (typeof linksCollection[id].between[0] == 'string') { - p1 = self.options.plots[linksCollection[id].between[0]]; - } else { - p1 = linksCollection[id].between[0]; - } - - if (typeof linksCollection[id].between[1] == 'string') { - p2 = self.options.plots[linksCollection[id].between[1]]; - } else { - p2 = linksCollection[id].between[1]; - } - - if (p1.latitude !== undefined && p1.longitude !== undefined) { - coordsP1 = self.mapConf.getCoords(p1.latitude, p1.longitude); - } else { - coordsP1.x = p1.x; - coordsP1.y = p1.y; - } - - if (p2.latitude !== undefined && p2.longitude !== undefined) { - coordsP2 = self.mapConf.getCoords(p2.latitude, p2.longitude); - } else { - coordsP2.x = p2.x; - coordsP2.y = p2.y; - } - links[id] = self.drawLink(id, coordsP1.x, coordsP1.y, coordsP2.x, coordsP2.y, elemOptions); - }); - return links; - }, - - /* - * Draw a curved link between two couples of coordinates a(xa,ya) and b(xb, yb) on the paper - */ - drawLink: function (id, xa, ya, xb, yb, elemOptions) { - var self = this; - var elem = {}; - // Compute the "curveto" SVG point, d(x,y) - // c(xc, yc) is the center of (xa,ya) and (xb, yb) - var xc = (xa + xb) / 2; - var yc = (ya + yb) / 2; - - // Equation for (cd) : y = acd * x + bcd (d is the cure point) - var acd = -1 / ((yb - ya) / (xb - xa)); - var bcd = yc - acd * xc; - - // dist(c,d) = dist(a,b) (=abDist) - var abDist = Math.sqrt((xb - xa) * (xb - xa) + (yb - ya) * (yb - ya)); - - // Solution for equation dist(cd) = sqrt((xd - xc)² + (yd - yc)²) - // dist(c,d)² = (xd - xc)² + (yd - yc)² - // We assume that dist(c,d) = dist(a,b) - // so : (xd - xc)² + (yd - yc)² - dist(a,b)² = 0 - // With the factor : (xd - xc)² + (yd - yc)² - (factor*dist(a,b))² = 0 - // (xd - xc)² + (acd*xd + bcd - yc)² - (factor*dist(a,b))² = 0 - var a = 1 + acd * acd; - var b = -2 * xc + 2 * acd * bcd - 2 * acd * yc; - var c = xc * xc + bcd * bcd - bcd * yc - yc * bcd + yc * yc - ((elemOptions.factor * abDist) * (elemOptions.factor * abDist)); - var delta = b * b - 4 * a * c; - var x = 0; - var y = 0; - - // There are two solutions, we choose one or the other depending on the sign of the factor - if (elemOptions.factor > 0) { - x = (-b + Math.sqrt(delta)) / (2 * a); - y = acd * x + bcd; - } else { - x = (-b - Math.sqrt(delta)) / (2 * a); - y = acd * x + bcd; - } - - elem.mapElem = self.paper.path("m " + xa + "," + ya + " C " + x + "," + y + " " + xb + "," + yb + " " + xb + "," + yb + "").attr(elemOptions.attrs); - self.initElem(elem, elemOptions, id); - - return elem; - }, - - /* - * Update the element "elem" on the map with the new elemOptions options - */ - updateElem: function (elemOptions, elem, animDuration) { - var self = this; - var bbox = elem.mapElem.getBBox(); - var textPosition; - var plotOffsetX; - var plotOffsetY; - - if (elemOptions.value !== undefined) - elem.value = elemOptions.value; - - // Update the label - if (elem.textElem) { - if (elemOptions.text !== undefined && elemOptions.text.content !== undefined && elemOptions.text.content != elem.textElem.attrs.text) - elem.textElem.attr({text: elemOptions.text.content}); - - if (elemOptions.size || (elemOptions.width && elemOptions.height)) { - if (elemOptions.type == "image" || elemOptions.type == "svg") { - plotOffsetX = (elemOptions.width - bbox.width) / 2; - plotOffsetY = (elemOptions.height - bbox.height) / 2; - } else { - plotOffsetX = (elemOptions.size - bbox.width) / 2; - plotOffsetY = (elemOptions.size - bbox.height) / 2; - } - bbox.x -= plotOffsetX; - bbox.x2 += plotOffsetX; - bbox.y -= plotOffsetY; - bbox.y2 += plotOffsetY; - } - - textPosition = self.getTextPosition(bbox, elemOptions.text.position, elemOptions.text.margin); - if (textPosition.x != elem.textElem.attrs.x || textPosition.y != elem.textElem.attrs.y) { - if (animDuration > 0) { - elem.textElem.attr({"text-anchor": textPosition.textAnchor}); - elem.textElem.animate({x: textPosition.x, y: textPosition.y}, animDuration); - } else - elem.textElem.attr({ - x: textPosition.x, - y: textPosition.y, - "text-anchor": textPosition.textAnchor - }); - } - - self.setHoverOptions(elem.textElem, elemOptions.text.attrs, elemOptions.text.attrsHover); - if (animDuration > 0) - elem.textElem.animate(elemOptions.text.attrs, animDuration); - else - elem.textElem.attr(elemOptions.text.attrs); - } - - // Update elements attrs and attrsHover - self.setHoverOptions(elem.mapElem, elemOptions.attrs, elemOptions.attrsHover); - if (animDuration > 0) - elem.mapElem.animate(elemOptions.attrs, animDuration); - else - elem.mapElem.attr(elemOptions.attrs); - - // Update dimensions of SVG plots - if (elemOptions.type == "svg") { - elem.mapElem.transform("m" + (elemOptions.width / elem.mapElem.originalWidth) + ",0,0," + (elemOptions.height / elem.mapElem.originalHeight) + "," + bbox.x + "," + bbox.y); - } - - // Update the tooltip - if (elemOptions.tooltip) { - if (elem.mapElem.tooltip === undefined) { - self.setTooltip(elem.mapElem); - if (elem.textElem) self.setTooltip(elem.textElem); - } - elem.mapElem.tooltip = elemOptions.tooltip; - if (elem.textElem) elem.textElem.tooltip = elemOptions.tooltip; - } - - // Update the link - if (elemOptions.href !== undefined) { - if (elem.mapElem.href === undefined) { - self.setHref(elem.mapElem); - if (elem.textElem) self.setHref(elem.textElem); - } - elem.mapElem.href = elemOptions.href; - elem.mapElem.target = elemOptions.target; - if (elem.textElem) { - elem.textElem.href = elemOptions.href; - elem.textElem.target = elemOptions.target; - } - } - }, - - /* - * Draw the plot - */ - drawPlot: function (id) { - var self = this; - var plot = {}; - var coords = {}; - var elemOptions = self.getElemOptions( - self.options.map.defaultPlot, - (self.options.plots[id] ? self.options.plots[id] : {}), - self.options.legend.plot - ); - - if (elemOptions.x !== undefined && elemOptions.y !== undefined) - coords = {x: elemOptions.x, y: elemOptions.y}; - else - coords = self.mapConf.getCoords(elemOptions.latitude, elemOptions.longitude); - - if (elemOptions.type == "square") { - plot = { - "mapElem": self.paper.rect( - coords.x - (elemOptions.size / 2), - coords.y - (elemOptions.size / 2), - elemOptions.size, - elemOptions.size - ).attr(elemOptions.attrs) - }; - } else if (elemOptions.type == "image") { - plot = { - "mapElem": self.paper.image( - elemOptions.url, - coords.x - elemOptions.width / 2, - coords.y - elemOptions.height / 2, - elemOptions.width, - elemOptions.height - ).attr(elemOptions.attrs) - }; - } else if (elemOptions.type == "svg") { - if (elemOptions.attrs.transform === undefined) { - elemOptions.attrs.transform = ""; - } - - plot = {"mapElem": self.paper.path(elemOptions.path)}; - plot.mapElem.originalWidth = plot.mapElem.getBBox().width; - plot.mapElem.originalHeight = plot.mapElem.getBBox().height; - - plot.mapElem.baseTransform = "m" + (elemOptions.width / plot.mapElem.originalWidth) + ",0,0," + (elemOptions.height / plot.mapElem.originalHeight) + "," + (coords.x - elemOptions.width / 2) + "," + (coords.y - elemOptions.height / 2); - elemOptions.attrs.transform = plot.mapElem.baseTransform + elemOptions.attrs.transform; - plot.mapElem.attr(elemOptions.attrs); - } else { // Default = circle - plot = {"mapElem": self.paper.circle(coords.x, coords.y, elemOptions.size / 2).attr(elemOptions.attrs)}; - } - self.initElem(plot, elemOptions, id); - return plot; - }, - - /* - * Set target link on elem - */ - setHref: function (elem) { - var self = this; - elem.attr({cursor: "pointer"}); - $(elem.node).on("click." + pluginName, function () { - if (!self.panning && elem.href) - window.open(elem.href, elem.target); - }); - }, - - /* - * Set a tooltip for the areas and plots - * @param elem area or plot element - * @param content the content to set in the tooltip - */ - setTooltip: function (elem) { - var self = this; - var tooltipTO = 0; - var cssClass = self.$tooltip.attr('class'); - - - - var updateTooltipPosition = function (x, y) { - - var offsetLeft = 10; - var offsetTop = 20; - - if (typeof elem.tooltip.offset === "object") { - if (typeof elem.tooltip.offset.left !== "undefined") { - offsetLeft = elem.tooltip.offset.left; - } - if (typeof elem.tooltip.offset.top !== "undefined") { - offsetTop = elem.tooltip.offset.top; - } - } - - var tooltipPosition = { - "left": Math.min(self.$map.width() - self.$tooltip.outerWidth() - 5, x - self.$map.offset().left + offsetLeft), - "top": Math.min(self.$map.height() - self.$tooltip.outerHeight() - 5, y - self.$map.offset().top + offsetTop) - }; - - if (typeof elem.tooltip.overflow === "object") { - if (elem.tooltip.overflow.right === true) { - tooltipPosition.left = x - self.$map.offset().left + 10; - } - if (selem.tooltip.overflow.bottom === true) { - tooltipPosition.top = y - self.$map.offset().top + 20; - } - } - - self.$tooltip.css(tooltipPosition); - }; - - $(elem.node).on("mouseover." + pluginName, function (e) { - tooltipTO = setTimeout( - function () { - self.$tooltip.attr("class", cssClass); - if (elem.tooltip !== undefined) { - if (elem.tooltip.content !== undefined) { - // if tooltip.content is function, call it. Otherwise, assign it directly. - var content = (typeof elem.tooltip.content === "function") ? elem.tooltip.content(elem) : elem.tooltip.content; - self.$tooltip.html(content).css("display", "block"); - } - if (elem.tooltip.cssClass !== undefined) { - self.$tooltip.addClass(elem.tooltip.cssClass); - } - } - updateTooltipPosition(e.pageX, e.pageY); - }, 120 - ); - }).on("mouseout." + pluginName, function () { - clearTimeout(tooltipTO); - self.$tooltip.css("display", "none"); - }).on("mousemove." + pluginName, function (e) { - updateTooltipPosition(e.pageX, e.pageY); - }); - }, - - /* - * Set user defined handlers for events on areas and plots - * @param id the id of the element - * @param elemOptions the element parameters - * @param mapElem the map element to set callback on - * @param textElem the optional text within the map element - */ - setEventHandlers: function (id, elemOptions, mapElem, textElem) { - var self = this; - $.each(elemOptions.eventHandlers, function (event) { - (function (event) { - $(mapElem.node).on(event, function (e) { - if (!self.panning) elemOptions.eventHandlers[event](e, id, mapElem, textElem, elemOptions); - }); - if (textElem) { - $(textElem.node).on(event, function (e) { - if (!self.panning) elemOptions.eventHandlers[event](e, id, mapElem, textElem, elemOptions); - }); - } - })(event); - }); - }, - - /* - * Draw a legend for areas and / or plots - * @param legendOptions options for the legend to draw - * @param legendType the type of the legend : "area" or "plot" - * @param elems collection of plots or areas on the maps - * @param legendIndex index of the legend in the conf array - */ - drawLegend: function (legendOptions, legendType, elems, scale, legendIndex) { - var self = this; - var $legend = {}; - var legendPaper = {}; - var width = 0; - var height = 0; - var title = null; - var elem = {}; - var elemBBox = {}; - var label = {}; - var i = 0; - var x = 0; - var y = 0; - var yCenter = 0; - var sliceOptions = []; - var length = 0; - - $legend = $("." + legendOptions.cssClass, self.$container).empty(); - legendPaper = new Raphael($legend.get(0)); - // Set some data to object - $(legendPaper.canvas).attr({"data-type": legendType, "data-index": legendIndex}); - - height = width = 0; - - // Set the title of the legend - if (legendOptions.title && legendOptions.title !== "") { - title = legendPaper.text(legendOptions.marginLeftTitle, 0, legendOptions.title).attr(legendOptions.titleAttrs); - title.attr({y: 0.5 * title.getBBox().height}); - - width = legendOptions.marginLeftTitle + title.getBBox().width; - height += legendOptions.marginBottomTitle + title.getBBox().height; - } - - // Calculate attrs (and width, height and r (radius)) for legend elements, and yCenter for horizontal legends - - for (i = 0, length = legendOptions.slices.length; i < length; ++i) { - var yCenterCurrent = 0; - - sliceOptions[i] = $.extend(true, {}, (legendType == "plot") ? self.options.map.defaultPlot : self.options.map.defaultArea, legendOptions.slices[i]); - - if (legendOptions.slices[i].legendSpecificAttrs === undefined) { - legendOptions.slices[i].legendSpecificAttrs = {}; - } - - $.extend(true, sliceOptions[i].attrs, legendOptions.slices[i].legendSpecificAttrs); - - if (legendType == "area") { - if (sliceOptions[i].attrs.width === undefined) - sliceOptions[i].attrs.width = 30; - if (sliceOptions[i].attrs.height === undefined) - sliceOptions[i].attrs.height = 20; - } else if (sliceOptions[i].type == "square") { - if (sliceOptions[i].attrs.width === undefined) - sliceOptions[i].attrs.width = sliceOptions[i].size; - if (sliceOptions[i].attrs.height === undefined) - sliceOptions[i].attrs.height = sliceOptions[i].size; - } else if (sliceOptions[i].type == "image" || sliceOptions[i].type == "svg") { - if (sliceOptions[i].attrs.width === undefined) - sliceOptions[i].attrs.width = sliceOptions[i].width; - if (sliceOptions[i].attrs.height === undefined) - sliceOptions[i].attrs.height = sliceOptions[i].height; - } else { - if (sliceOptions[i].attrs.r === undefined) - sliceOptions[i].attrs.r = sliceOptions[i].size / 2; - } - - - - // Compute yCenter for this legend slice - yCenterCurrent = legendOptions.marginBottomTitle; - // Add title height if it exists - if (title) { - yCenterCurrent += title.getBBox().height; - } - if (legendType == "plot" && (sliceOptions[i].type === undefined || sliceOptions[i].type == "circle")) { - yCenterCurrent += scale * sliceOptions[i].attrs.r; - } else { - yCenterCurrent += scale * sliceOptions[i].attrs.height / 2; - } - // Update yCenter if current larger - yCenter = Math.max(yCenter, yCenterCurrent); - } - - if (legendOptions.mode == "horizontal") { - width = legendOptions.marginLeft; - } - - // Draw legend elements (circle, square or image in vertical or horizontal mode) - for (i = 0, length = sliceOptions.length; i < length; ++i) { - if (sliceOptions[i].display === undefined || sliceOptions[i].display === true) { - if (legendType == "area") { - if (legendOptions.mode == "horizontal") { - x = width + legendOptions.marginLeft; - y = yCenter - (0.5 * scale * sliceOptions[i].attrs.height); - } else { - x = legendOptions.marginLeft; - y = height; - } - - elem = legendPaper.rect(x, y, scale * (sliceOptions[i].attrs.width), scale * (sliceOptions[i].attrs.height)); - } else if (sliceOptions[i].type == "square") { - if (legendOptions.mode == "horizontal") { - x = width + legendOptions.marginLeft; - y = yCenter - (0.5 * scale * sliceOptions[i].attrs.height); - } else { - x = legendOptions.marginLeft; - y = height; - } - - elem = legendPaper.rect(x, y, scale * (sliceOptions[i].attrs.width), scale * (sliceOptions[i].attrs.height)); - - } else if (sliceOptions[i].type == "image" || sliceOptions[i].type == "svg") { - if (legendOptions.mode == "horizontal") { - x = width + legendOptions.marginLeft; - y = yCenter - (0.5 * scale * sliceOptions[i].attrs.height); - } else { - x = legendOptions.marginLeft; - y = height; - } - - if (sliceOptions[i].type == "image") { - elem = legendPaper.image( - sliceOptions[i].url, x, y, scale * sliceOptions[i].attrs.width, scale * sliceOptions[i].attrs.height); - } else { - elem = legendPaper.path(sliceOptions[i].path); - - if (sliceOptions[i].attrs.transform === undefined) { - sliceOptions[i].attrs.transform = ""; - } - sliceOptions[i].attrs.transform = "m" + ((scale * sliceOptions[i].width) / elem.getBBox().width) + ",0,0," + ((scale * sliceOptions[i].height) / elem.getBBox().height) + "," + x + "," + y + sliceOptions[i].attrs.transform; - } - } else { - if (legendOptions.mode == "horizontal") { - x = width + legendOptions.marginLeft + scale * (sliceOptions[i].attrs.r); - y = yCenter; - } else { - x = legendOptions.marginLeft + scale * (sliceOptions[i].attrs.r); - y = height + scale * (sliceOptions[i].attrs.r); - } - elem = legendPaper.circle(x, y, scale * (sliceOptions[i].attrs.r)); - } - - // Set attrs to the element drawn above - delete sliceOptions[i].attrs.width; - delete sliceOptions[i].attrs.height; - delete sliceOptions[i].attrs.r; - elem.attr(sliceOptions[i].attrs); - elemBBox = elem.getBBox(); - - // Draw the label associated with the element - if (legendOptions.mode == "horizontal") { - x = width + legendOptions.marginLeft + elemBBox.width + legendOptions.marginLeftLabel; - y = yCenter; - } else { - x = legendOptions.marginLeft + elemBBox.width + legendOptions.marginLeftLabel; - y = height + (elemBBox.height / 2); - } - - label = legendPaper.text(x, y, sliceOptions[i].label).attr(legendOptions.labelAttrs); - - // Update the width and height for the paper - if (legendOptions.mode == "horizontal") { - var currentHeight = legendOptions.marginBottom + elemBBox.height; - width += legendOptions.marginLeft + elemBBox.width + legendOptions.marginLeftLabel + label.getBBox().width; - if (sliceOptions[i].type != "image" && legendType != "area") { - currentHeight += legendOptions.marginBottomTitle; - } - // Add title height if it exists - if (title) { - currentHeight += title.getBBox().height; - } - height = Math.max(height, currentHeight); - } else { - width = Math.max(width, legendOptions.marginLeft + elemBBox.width + legendOptions.marginLeftLabel + label.getBBox().width); - height += legendOptions.marginBottom + elemBBox.height; - } - - $(elem.node).attr({"data-type": "elem", "data-index": i, "data-hidden": 0}); - $(label.node).attr({"data-type": "label", "data-index": i, "data-hidden": 0}); - - // Hide map elements when the user clicks on a legend item - if (legendOptions.hideElemsOnClick.enabled) { - // Hide/show elements when user clicks on a legend element - label.attr({cursor: "pointer"}); - elem.attr({cursor: "pointer"}); - - self.setHoverOptions(elem, sliceOptions[i].attrs, sliceOptions[i].attrs); - self.setHoverOptions(label, legendOptions.labelAttrs, legendOptions.labelAttrsHover); - self.setHover(elem, label); - self.handleClickOnLegendElem(legendOptions, sliceOptions[i], label, elem, elems, legendIndex); - } - } - } - - // VMLWidth option allows you to set static width for the legend - // only for VML render because text.getBBox() returns wrong values on IE6/7 - if (Raphael.type != "SVG" && legendOptions.VMLWidth) - width = legendOptions.VMLWidth; - - legendPaper.setSize(width, height); - }, - - /* - * Allow to hide elements of the map when the user clicks on a related legend item - * @param legendOptions options for the legend to draw - * @param sliceOptions options of the slice - * @param label label of the legend item - * @param elem element of the legend item - * @param elems collection of plots or areas displayed on the map - * @param legendIndex index of the legend in the conf array - */ - handleClickOnLegendElem: function (legendOptions, sliceOptions, label, elem, elems, legendIndex) { - var self = this; - var hideMapElems = function (e, hideOtherElems, animDuration) { - var elemValue = 0; - var hidden = $(label.node).attr('data-hidden'); - var hiddenNewAttr = (hidden === '0') ? {"data-hidden": '1'} : {"data-hidden": '0'}; - - // Check animDuration: if not set, this is a regular click, use the value specified in options - if (animDuration === undefined) animDuration = legendOptions.hideElemsOnClick.animDuration; - - if (hidden === '0') { - if (animDuration > 0) label.animate({"opacity": 0.5}, animDuration); - else label.attr({"opacity": 0.5}); - } else { - if (animDuration > 0) label.animate({"opacity": 1}, animDuration); - else label.attr({"opacity": 1}); - } - - $.each(elems, function (id) { - // Retreive stored data of element - // 'hidden-by' contains the list of legendIndex that is hiding this element - var hiddenBy = elems[id].mapElem.data('hidden-by'); - // Set to empty object if undefined - if (hiddenBy === undefined) hiddenBy = {}; - - if ($.isArray(elems[id].value)) { - elemValue = elems[id].value[legendIndex]; - } else { - elemValue = elems[id].value; - } - - if ((sliceOptions.sliceValue !== undefined && elemValue == sliceOptions.sliceValue) - || ((sliceOptions.sliceValue === undefined) - && (sliceOptions.min === undefined || elemValue >= sliceOptions.min) - && (sliceOptions.max === undefined || elemValue <= sliceOptions.max)) - ) { - (function (id) { - if (hidden === '0') { // we want to hide this element - hiddenBy[legendIndex] = true; // add legendIndex to the data object for later use - self.setElementOpacity(elems[id], legendOptions.hideElemsOnClick.opacity, animDuration); - } else { // We want to show this element - delete hiddenBy[legendIndex]; // Remove this legendIndex from object - // Check if another legendIndex is defined - // We will show this element only if no legend is no longer hiding it - if ($.isEmptyObject(hiddenBy)) { - self.setElementOpacity( - elems[id], - elems[id].mapElem.originalAttrs.opacity !== undefined ? elems[id].mapElem.originalAttrs.opacity : 1, - animDuration - ); - } - } - // Update elem data with new values - elems[id].mapElem.data('hidden-by', hiddenBy); - })(id); - } - }); - - $(elem.node).attr(hiddenNewAttr); - $(label.node).attr(hiddenNewAttr); - - if ((hideOtherElems === undefined || hideOtherElems === true) - && legendOptions.exclusive !== undefined && legendOptions.exclusive === true - ) { - $("[data-type='elem'][data-hidden=0]", self.$container).each(function () { - if ($(this).attr('data-index') !== $(elem.node).attr('data-index')) { - $(this).trigger("click." + pluginName, false); - } - }); - } - }; - $(label.node).on("click." + pluginName, hideMapElems); - $(elem.node).on("click." + pluginName, hideMapElems); - - if (sliceOptions.clicked !== undefined && sliceOptions.clicked === true) { - $(elem.node).trigger("click." + pluginName, false); - } - }, - - /* - * Create all legends for a specified type (area or plot) - * @param legendType the type of the legend : "area" or "plot" - * @param elems collection of plots or areas displayed on the map - * @param scale scale ratio of the map - */ - createLegends: function (legendType, elems, scale) { - var self = this; - var legendsOptions = self.options.legend[legendType]; - - if (!$.isArray(self.options.legend[legendType])) { - legendsOptions = [self.options.legend[legendType]]; - } - - for (var j = 0; j < legendsOptions.length; ++j) { - // Check for class existence - if (legendsOptions[j].cssClass === "" || $("." + legendsOptions[j].cssClass, self.$container).length === 0) { - throw new Error("The legend class `" + legendsOptions[j].cssClass + "` doesn't exists."); - } - if (legendsOptions[j].display === true && $.isArray(legendsOptions[j].slices) && legendsOptions[j].slices.length > 0) { - self.drawLegend(legendsOptions[j], legendType, elems, scale, j); - } - } - }, - - /* - * Set the attributes on hover and the attributes to restore for a map element - * @param elem the map element - * @param originalAttrs the original attributes to restore on mouseout event - * @param attrsHover the attributes to set on mouseover event - */ - setHoverOptions: function (elem, originalAttrs, attrsHover) { - // Disable transform option on hover for VML (IE<9) because of several bugs - if (Raphael.type != "SVG") delete attrsHover.transform; - elem.attrsHover = attrsHover; - - if (elem.attrsHover.transform) elem.originalAttrs = $.extend({transform: "s1"}, originalAttrs); - else elem.originalAttrs = originalAttrs; - }, - - /* - * Set the hover behavior (mouseover & mouseout) for plots and areas - * @param mapElem the map element - * @param textElem the optional text element (within the map element) - */ - setHover: function (mapElem, textElem) { - var self = this; - var $mapElem = {}; - var $textElem = {}; - var mouseoverTimeout = 0; - var mouseoutTimeout = 0; - var overBehaviour = function () { - clearTimeout(mouseoutTimeout); - mouseoverTimeout = setTimeout(function () { - self.elemHover(mapElem, textElem); - }, 120); - }; - var outBehaviour = function () { - clearTimeout(mouseoverTimeout); - mouseoutTimeout = setTimeout(function(){ - self.elemOut(mapElem, textElem); - }, 120); - }; - - $mapElem = $(mapElem.node); - $mapElem.on("mouseover." + pluginName, overBehaviour); - $mapElem.on("mouseout." + pluginName, outBehaviour); - - if (textElem) { - $textElem = $(textElem.node); - $textElem.on("mouseover." + pluginName, overBehaviour); - $(textElem.node).on("mouseout." + pluginName, outBehaviour); - } - }, - - /* - * Remove the hover behavior for plots and areas - * @param mapElem the map element - * @param textElem the optional text element (within the map element) - */ - unsetHover: function (mapElem, textElem) { - $(mapElem.node).off("." + pluginName); - if (textElem) $(textElem.node).off("." + pluginName); - }, - - /* - * Set he behaviour for "mouseover" event - * @param mapElem mapElem the map element - * @param textElem the optional text element (within the map element) - */ - elemHover: function (mapElem, textElem) { - var self = this; - // Set mapElem - if (mapElem.attrsHover.animDuration > 0) mapElem.animate(mapElem.attrsHover, mapElem.attrsHover.animDuration); - else mapElem.attr(mapElem.attrsHover); - // Set textElem - if (textElem) { - if (textElem.attrsHover.animDuration > 0) textElem.animate(textElem.attrsHover, textElem.attrsHover.animDuration); - else textElem.attr(textElem.attrsHover); - } - // workaround for older version of Raphael - if (self.paper.safari) self.paper.safari(); - }, - - /* - * Set he behaviour for "mouseout" event - * @param mapElem the map element - * @param textElem the optional text element (within the map element) - */ - elemOut: function (mapElem, textElem) { - var self = this; - // Set mapElem - if (mapElem.attrsHover.animDuration > 0) mapElem.animate(mapElem.originalAttrs, mapElem.attrsHover.animDuration); - else mapElem.attr(mapElem.originalAttrs); - // Set textElem - if (textElem) { - if (textElem.attrsHover.animDuration > 0) textElem.animate(textElem.originalAttrs, textElem.attrsHover.animDuration); - else textElem.attr(textElem.originalAttrs); - } - - // workaround for older version of Raphael - if (self.paper.safari) self.paper.safari(); - }, - - /* - * Get element options by merging default options, element options and legend options - * @param defaultOptions - * @param elemOptions - * @param legendOptions - */ - getElemOptions: function (defaultOptions, elemOptions, legendOptions) { - var self = this; - var options = $.extend(true, {}, defaultOptions, elemOptions); - if (options.value !== undefined) { - if ($.isArray(legendOptions)) { - for (var i = 0, length = legendOptions.length; i < length; ++i) { - options = $.extend(true, {}, options, self.getLegendSlice(options.value[i], legendOptions[i])); - } - } else { - options = $.extend(true, {}, options, self.getLegendSlice(options.value, legendOptions)); - } - } - return options; - }, - - /* - * Get the coordinates of the text relative to a bbox and a position - * @param bbox the boundary box of the element - * @param textPosition the wanted text position (inner, right, left, top or bottom) - * @param margin number or object {x: val, y:val} margin between the bbox and the text - */ - getTextPosition: function (bbox, textPosition, margin) { - var textX = 0; - var textY = 0; - var textAnchor = ""; - - if (typeof margin === "number") { - if (textPosition === "bottom" || textPosition === "top") { - margin = {x: 0, y: margin}; - } else if (textPosition === "right" || textPosition === "left") { - margin = {x: margin, y: 0}; - } else { - margin = {x: 0, y: 0}; - } - } - - switch (textPosition) { - case "bottom" : - textX = ((bbox.x + bbox.x2) / 2) + margin.x; - textY = bbox.y2 + margin.y; - textAnchor = "middle"; - break; - case "top" : - textX = ((bbox.x + bbox.x2) / 2) + margin.x; - textY = bbox.y - margin.y; - textAnchor = "middle"; - break; - case "left" : - textX = bbox.x - margin.x; - textY = ((bbox.y + bbox.y2) / 2) + margin.y; - textAnchor = "end"; - break; - case "right" : - textX = bbox.x2 + margin.x; - textY = ((bbox.y + bbox.y2) / 2) + margin.y; - textAnchor = "start"; - break; - default : // "inner" position - textX = ((bbox.x + bbox.x2) / 2) + margin.x; - textY = ((bbox.y + bbox.y2) / 2) + margin.y; - textAnchor = "middle"; - } - return {"x": textX, "y": textY, "textAnchor": textAnchor}; - }, - - /* - * Get the legend conf matching with the value - * @param value the value to match with a slice in the legend - * @param legend the legend params object - * @return the legend slice matching with the value - */ - getLegendSlice: function (value, legend) { - for (var i = 0, length = legend.slices.length; i < length; ++i) { - if ((legend.slices[i].sliceValue !== undefined && value == legend.slices[i].sliceValue) - || ((legend.slices[i].sliceValue === undefined) - && (legend.slices[i].min === undefined || value >= legend.slices[i].min) - && (legend.slices[i].max === undefined || value <= legend.slices[i].max)) - ) { - return legend.slices[i]; - } - } - return {}; - }, - - /* - * Animated view box changes - * As from http://code.voidblossom.com/animating-viewbox-easing-formulas/, - * (from https://github.com/theshaun works on mapael) - * @param x coordinate of the point to focus on - * @param y coordinate of the point to focus on - * @param w map defined width - * @param h map defined height - * @param duration defined length of time for animation - * @param easingFunction defined Raphael supported easing_formula to use - * @param callback method when animated action is complete - */ - animateViewBox: function (x, y, w, h, duration, easingFunction) { - var self = this; - var cx = self.paper._viewBox ? self.paper._viewBox[0] : 0; - var dx = x - cx; - var cy = self.paper._viewBox ? self.paper._viewBox[1] : 0; - var dy = y - cy; - var cw = self.paper._viewBox ? self.paper._viewBox[2] : self.paper.width; - var dw = w - cw; - var ch = self.paper._viewBox ? self.paper._viewBox[3] : self.paper.height; - var dh = h - ch; - var interval = 25; - var steps = duration / interval; - var currentStep = 0; - var easingFormula; - - easingFunction = easingFunction || "linear"; - easingFormula = Raphael.easing_formulas[easingFunction]; - - clearInterval(self.animationIntervalID); - - self.animationIntervalID = setInterval(function () { - var ratio = currentStep / steps; - self.paper.setViewBox(cx + dx * easingFormula(ratio), - cy + dy * easingFormula(ratio), - cw + dw * easingFormula(ratio), - ch + dh * easingFormula(ratio), false); - if (currentStep++ >= steps) { - clearInterval(self.animationIntervalID); - clearTimeout(self.zoomTO); - self.zoomTO = setTimeout(function () { - self.$map.trigger("afterZoom", {x1: x, y1: y, x2: (x + w), y2: (y + h)}); - }, 150); - } - }, interval - ); - }, - - /* - * Check for Raphael bug regarding drawing while beeing hidden (under display:none) - * See https://github.com/neveldo/jQuery-Mapael/issues/135 - * @return true/false - * - * Wants to override this behavior? Use prototype overriding: - * $.mapael.prototype.isRaphaelBBoxBugPresent = function() {return false;}; - */ - isRaphaelBBoxBugPresent: function(){ - var self = this; - // Draw text, then get its boundaries - var text_elem = self.paper.text(-50, -50, "TEST"); - var text_elem_bbox = text_elem.getBBox(); - // remove element - text_elem.remove(); - // If it has no height and width, then the paper is hidden - return (text_elem_bbox.width === 0 && text_elem_bbox.height === 0); - }, - - // Default map options - defaultOptions: { - map: { - cssClass: "map", - tooltip: { - cssClass: "mapTooltip" - }, - defaultArea: { - attrs: { - fill: "#343434", - stroke: "#5d5d5d", - "stroke-width": 1, - "stroke-linejoin": "round" - }, - attrsHover: { - fill: "#f38a03", - animDuration: 300 - }, - text: { - position: "inner", - margin: 10, - attrs: { - "font-size": 15, - fill: "#c7c7c7" - }, - attrsHover: { - fill: "#eaeaea", - "animDuration": 300 - } - }, - target: "_self" - }, - defaultPlot: { - type: "circle", - size: 15, - attrs: { - fill: "#0088db", - stroke: "#fff", - "stroke-width": 0, - "stroke-linejoin": "round" - }, - attrsHover: { - "stroke-width": 3, - animDuration: 300 - }, - text: { - position: "right", - margin: 10, - attrs: { - "font-size": 15, - fill: "#c7c7c7" - }, - attrsHover: { - fill: "#eaeaea", - animDuration: 300 - } - }, - target: "_self" - }, - defaultLink: { - factor: 0.5, - attrs: { - stroke: "#0088db", - "stroke-width": 2 - }, - attrsHover: { - animDuration: 300 - }, - text: { - position: "inner", - margin: 10, - attrs: { - "font-size": 15, - fill: "#c7c7c7" - }, - attrsHover: { - fill: "#eaeaea", - animDuration: 300 - } - }, - target: "_self" - }, - zoom: { - enabled: false, - minLevel: 0, - maxLevel: 10, - step: 0.25, - mousewheel: true, - touch: true, - animDuration: 200, - animEasing: "linear", - buttons: { - "reset": { - cssClass: "zoomButton zoomReset", - content: "•", // bullet sign - title: "Reset zoom" - }, - "in": { - cssClass: "zoomButton zoomIn", - content: "+", - title: "Zoom in" - }, - "out": { - cssClass: "zoomButton zoomOut", - content: "−", // minus sign - title: "Zoom out" - } - } - } - }, - legend: { - area: [], - plot: [] - }, - areas: {}, - plots: {}, - links: {} - }, - - // Default legends option - legendDefaultOptions: { - area: { - cssClass: "areaLegend", - display: true, - marginLeft: 10, - marginLeftTitle: 5, - marginBottomTitle: 10, - marginLeftLabel: 10, - marginBottom: 10, - titleAttrs: { - "font-size": 16, - fill: "#343434", - "text-anchor": "start" - }, - labelAttrs: { - "font-size": 12, - fill: "#343434", - "text-anchor": "start" - }, - labelAttrsHover: { - fill: "#787878", - animDuration: 300 - }, - hideElemsOnClick: { - enabled: true, - opacity: 0.2, - animDuration: 300 - }, - slices: [], - mode: "vertical" - }, - plot: { - cssClass: "plotLegend", - display: true, - marginLeft: 10, - marginLeftTitle: 5, - marginBottomTitle: 10, - marginLeftLabel: 10, - marginBottom: 10, - titleAttrs: { - "font-size": 16, - fill: "#343434", - "text-anchor": "start" - }, - labelAttrs: { - "font-size": 12, - fill: "#343434", - "text-anchor": "start" - }, - labelAttrsHover: { - fill: "#787878", - animDuration: 300 - }, - hideElemsOnClick: { - enabled: true, - opacity: 0.2, - animDuration: 300 - }, - slices: [], - mode: "vertical" - } - } - - }; - - // Extend jQuery with Mapael - if ($[pluginName] === undefined) $[pluginName] = Mapael; - - // Add jQuery DOM function - $.fn[pluginName] = function (options) { - // Call Mapael on each element - return this.each(function () { - // Avoid leaking problem on multiple instanciation by removing an old mapael object on a container - if ($.data(this, pluginName)) { - $.data(this, pluginName).destroy(); - } - // Create Mapael and save it as jQuery data - // This allow external access to Mapael using $(".mapcontainer").data("mapael") - $.data(this, pluginName, new Mapael(this, options)); - }); - }; - -})); diff --git a/htdocs/public/high/plugins/jquery-mapael/jquery.mapael.min.js b/htdocs/public/high/plugins/jquery-mapael/jquery.mapael.min.js deleted file mode 100644 index f8c15fda..00000000 --- a/htdocs/public/high/plugins/jquery-mapael/jquery.mapael.min.js +++ /dev/null @@ -1,14 +0,0 @@ -/*! - * - * Jquery Mapael - Dynamic maps jQuery plugin (based on raphael.js) - * Requires jQuery, raphael.js and jquery.mousewheel - * - * Version: 2.0.0 - * - * Copyright (c) 2015 Vincent Brouté (http://www.vincentbroute.fr/mapael) - * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php). - * - * Thanks to Indigo744 - * - */ -!function(a){"object"==typeof exports?module.exports=a(require("jquery"),require("raphael"),require("mousewheel")):"function"==typeof define&&define.amd?define(["jquery","raphael","mousewheel"],a):a(jQuery,Raphael,jQuery.fn.mousewheel)}(function(a,b,c,d){"use strict";var e="mapael",f="2.0.0-dev",g=function(b,c){var d=this;d.container=b,d.$container=a(b),d.options=d.extendDefaultOptions(c),d.initialHTMLContent=d.$container.html(),d.zoomTO=0,d.zoomCenterX=0,d.zoomCenterY=0,d.previousPinchDist=0,d.zoomData={zoomLevel:0,zoomX:0,zoomY:0,panX:0,panY:0},d.resizeTO=0,d.panning=!1,d.panningTO=0,d.animationIntervalID=null,d.$map={},d.$tooltip={},d.paper={},d.areas={},d.plots={},d.links={},d.mapConf={},d.init()};g.prototype={version:f,init:function(){var c=this;if(""===c.options.map.cssClass||0===a("."+c.options.map.cssClass,c.container).length)throw new Error("The map class `"+c.options.map.cssClass+"` doesn't exists");if(c.$tooltip=a("
    ").addClass(c.options.map.tooltip.cssClass).css("display","none"),c.$map=a("."+c.options.map.cssClass,c.container).empty().append(c.$tooltip),a[e]&&a[e].maps&&a[e].maps[c.options.map.name])c.mapConf=a[e].maps[c.options.map.name];else{if(!(a.fn[e]&&a.fn[e].maps&&a.fn[e].maps[c.options.map.name]))throw new Error("Unknown map '"+c.options.map.name+"'");c.mapConf=a.fn[e].maps[c.options.map.name],window.console&&window.console.warn&&window.console.warn("Extending $.fn.mapael is deprecated (map '"+c.options.map.name+"')")}if(c.paper=new b(c.$map[0],c.mapConf.width,c.mapConf.height),c.isRaphaelBBoxBugPresent()===!0)throw c.destroy(),new Error("Can't get boundary box for text (is your container hidden? See #135)");c.$container.addClass(e),c.options.map.tooltip.css&&c.$tooltip.css(c.options.map.tooltip.css),c.paper.setViewBox(0,0,c.mapConf.width,c.mapConf.height,!1),c.options.map.width?(c.paper.setSize(c.options.map.width,c.mapConf.height*(c.options.map.width/c.mapConf.width)),c.createLegends("plot",c.plots,c.options.map.width/c.mapConf.width)):c.handleMapResizing(),a.each(c.mapConf.elems,function(a){var b=c.getElemOptions(c.options.map.defaultArea,c.options.areas[a]?c.options.areas[a]:{},c.options.legend.area);c.areas[a]={mapElem:c.paper.path(c.mapConf.elems[a]).attr(b.attrs)}}),c.options.map.beforeInit&&c.options.map.beforeInit(c.$container,c.paper,c.options),a.each(c.mapConf.elems,function(a){var b=c.getElemOptions(c.options.map.defaultArea,c.options.areas[a]?c.options.areas[a]:{},c.options.legend.area);c.initElem(c.areas[a],b,a)}),c.links=c.drawLinksCollection(c.options.links),a.each(c.options.plots,function(a){c.plots[a]=c.drawPlot(a)}),c.$container.on("zoom."+e,function(a,b){c.onZoomEvent(a,b)}),c.options.map.zoom.enabled&&c.initZoom(c.mapConf.width,c.mapConf.height,c.options.map.zoom),c.options.map.zoom.init!==d&&(c.options.map.zoom.init.animDuration===d&&(c.options.map.zoom.init.animDuration=0),c.$container.trigger("zoom."+e,c.options.map.zoom.init)),c.createLegends("area",c.areas,1),c.$container.on("update."+e,function(a,b){c.onUpdateEvent(a,b)}),c.$container.on("showElementsInRange."+e,function(a,b){c.onShowElementsInRange(a,b)}),c.options.map.afterInit&&c.options.map.afterInit(c.$container,c.paper,c.areas,c.plots,c.options),a(c.paper.desc).append(" and Mapael "+c.version+" (http://www.vincentbroute.fr/mapael/)")},destroy:function(){var b=this;b.$container.off("."+e),b.$container.empty(),b.onResizeEvent&&a(window).off("resize."+e,b.onResizeEvent),b.$container.html(b.initialHTMLContent),b.$container.removeClass(e),b.$container.removeData(e),b.container=d,b.$container=d,b.options=d,b.paper=d,b.$map=d,b.$tooltip=d,b.mapConf=d,b.areas=d,b.plots=d,b.links=d},handleMapResizing:function(){var b=this;b.onResizeEvent=function(){clearTimeout(b.resizeTO),b.resizeTO=setTimeout(function(){b.$map.trigger("resizeEnd."+e)},150)},a(window).on("resize."+e,b.onResizeEvent),b.$map.on("resizeEnd."+e,function(){var a=b.$map.width();if(b.paper.width!=a){var c=a/b.mapConf.width;b.paper.setSize(a,b.mapConf.height*c),b.createLegends("plot",b.plots,c)}}).trigger("resizeEnd."+e)},extendDefaultOptions:function(b){return b=a.extend(!0,{},g.prototype.defaultOptions,b),a.each(b.legend,function(c){if(a.isArray(b.legend[c]))for(var d=0;d").addClass(c.cssClass).html(c.content).attr("title",c.title);f.on("click."+e,k[b]),g.$map.append(f)}),g.options.map.zoom.mousewheel&&g.$map.on("mousewheel."+e,function(a){var b=a.deltaY>0?1:-1,c=g.mapPagePositionToXY(a.pageX,a.pageY);return g.$container.trigger("zoom."+e,{fixedCenter:!0,level:g.zoomData.zoomLevel+b,x:c.x,y:c.y}),!1}),g.options.map.zoom.touch&&(g.$map.on("touchstart."+e,function(a){2===a.originalEvent.touches.length&&(g.zoomCenterX=(a.originalEvent.touches[0].pageX+a.originalEvent.touches[1].pageX)/2,g.zoomCenterY=(a.originalEvent.touches[0].pageY+a.originalEvent.touches[1].pageY)/2,g.previousPinchDist=Math.sqrt(Math.pow(a.originalEvent.touches[1].pageX-a.originalEvent.touches[0].pageX,2)+Math.pow(a.originalEvent.touches[1].pageY-a.originalEvent.touches[0].pageY,2)))}),g.$map.on("touchmove."+e,function(a){var b=0,c=0;if(2===a.originalEvent.touches.length){if(b=Math.sqrt(Math.pow(a.originalEvent.touches[1].pageX-a.originalEvent.touches[0].pageX,2)+Math.pow(a.originalEvent.touches[1].pageY-a.originalEvent.touches[0].pageY,2)),Math.abs(b-g.previousPinchDist)>15){var d=g.mapPagePositionToXY(g.zoomCenterX,g.zoomCenterY);c=(b-g.previousPinchDist)/Math.abs(b-g.previousPinchDist),g.$container.trigger("zoom."+e,{fixedCenter:!0,level:g.zoomData.zoomLevel+c,x:d.x,y:d.y}),g.previousPinchDist=b}return!1}})),a("body").on("mouseup."+e+(f.touch?" touchend":""),function(){h=!1,setTimeout(function(){g.panning=!1},50)}),g.$map.on("mousedown."+e+(f.touch?" touchstart":""),function(a){a.pageX!==d?(h=!0,i=a.pageX,j=a.pageY):1===a.originalEvent.touches.length&&(h=!0,i=a.originalEvent.touches[0].pageX,j=a.originalEvent.touches[0].pageY)}).on("mousemove."+e+(f.touch?" touchmove":""),function(e){var k=g.zoomData.zoomLevel,l=0,m=0;if(e.pageX!==d?(l=e.pageX,m=e.pageY):1===e.originalEvent.touches.length?(l=e.originalEvent.touches[0].pageX,m=e.originalEvent.touches[0].pageY):h=!1,h&&0!==k){var n=(i-l)/(1+k*f.step)*(b/g.paper.width),o=(j-m)/(1+k*f.step)*(c/g.paper.height),p=Math.min(Math.max(0,g.paper._viewBox[0]+n),b-g.paper._viewBox[2]),q=Math.min(Math.max(0,g.paper._viewBox[1]+o),c-g.paper._viewBox[3]);return(Math.abs(n)>5||Math.abs(o)>5)&&(a.extend(g.zoomData,{panX:p,panY:q,zoomX:p+g.paper._viewBox[2]/2,zoomY:q+g.paper._viewBox[3]/2}),g.paper.setViewBox(p,q,g.paper._viewBox[2],g.paper._viewBox[3]),clearTimeout(g.panningTO),g.panningTO=setTimeout(function(){g.$map.trigger("afterPanning",{x1:p,y1:q,x2:p+g.paper._viewBox[2],y2:q+g.paper._viewBox[3]})},150),i=l,j=m,g.panning=!0),!1}})},mapPagePositionToXY:function(a,b){var c=this,d=c.$map.offset(),e=c.options.map.width?c.mapConf.width/c.options.map.width:c.mapConf.width/c.$map.width(),f=1/(1+c.zoomData.zoomLevel*c.options.map.zoom.step);return{x:f*e*(a-d.left)+c.zoomData.panX,y:f*e*(b-d.top)+c.zoomData.panY}},onZoomEvent:function(b,c){var e=this,f=e.zoomData.zoomLevel,g=0,h=0,i=1+e.zoomData.zoomLevel*e.options.map.zoom.step,j=0,k=c.animDuration!==d?c.animDuration:e.options.map.zoom.animDuration,l=0,m=0,n={};c.level!==d&&(f="string"==typeof c.level?"+"===c.level.slice(0,1)||"-"===c.level.slice(0,1)?e.zoomData.zoomLevel+parseInt(c.level):parseInt(c.level):c.level<0?e.zoomData.zoomLevel+c.level:c.level,f=Math.min(Math.max(f,e.options.map.zoom.minLevel),e.options.map.zoom.maxLevel)),j=1+f*e.options.map.zoom.step,c.latitude!==d&&c.longitude!==d&&(n=e.mapConf.getCoords(c.latitude,c.longitude),c.x=n.x,c.y=n.y),c.x===d&&(c.x=e.paper._viewBox[0]+e.paper._viewBox[2]/2),c.y===d&&(c.y=e.paper._viewBox[1]+e.paper._viewBox[3]/2),0===f?(g=0,h=0):c.fixedCenter!==d&&c.fixedCenter===!0?(l=e.zoomData.panX+(c.x-e.zoomData.panX)*(j-i)/j,m=e.zoomData.panY+(c.y-e.zoomData.panY)*(j-i)/j,g=Math.min(Math.max(0,l),e.mapConf.width-e.mapConf.width/j),h=Math.min(Math.max(0,m),e.mapConf.height-e.mapConf.height/j)):(g=Math.min(Math.max(0,c.x-e.mapConf.width/j/2),e.mapConf.width-e.mapConf.width/j),h=Math.min(Math.max(0,c.y-e.mapConf.height/j/2),e.mapConf.height-e.mapConf.height/j)),j==i&&g==e.zoomData.panX&&h==e.zoomData.panY||(k>0?e.animateViewBox(g,h,e.mapConf.width/j,e.mapConf.height/j,k,e.options.map.zoom.animEasing):(e.paper.setViewBox(g,h,e.mapConf.width/j,e.mapConf.height/j),clearTimeout(e.zoomTO),e.zoomTO=setTimeout(function(){e.$map.trigger("afterZoom",{x1:g,y1:h,x2:g+e.mapConf.width/j,y2:h+e.mapConf.height/j})},150)),a.extend(e.zoomData,{zoomLevel:f,panX:g,panY:h,zoomX:g+e.paper._viewBox[2]/2,zoomY:h+e.paper._viewBox[3]/2}))},onShowElementsInRange:function(a,b){var c=this;b.animDuration===d&&(b.animDuration=0),b.hiddenOpacity===d&&(b.hiddenOpacity=.3),b.ranges&&b.ranges.area&&c.showElemByRange(b.ranges.area,c.areas,b.hiddenOpacity,b.animDuration),b.ranges&&b.ranges.plot&&c.showElemByRange(b.ranges.plot,c.plots,b.hiddenOpacity,b.animDuration),b.ranges&&b.ranges.link&&c.showElemByRange(b.ranges.link,c.links,b.hiddenOpacity,b.animDuration),b.afterShowRange&&b.afterShowRange()},showElemByRange:function(b,c,e,f){var g=this,h={};b.min===d&&b.max===d||(b={0:b}),a.each(b,function(f){var g=b[f];return g.min===d&&g.max===d?!0:void a.each(c,function(a){var b=c[a].value;return"object"!=typeof b&&(b=[b]),b[f]===d?!0:void(g.min!==d&&b[f]g.max?h[a]=e:h[a]=1)})}),a.each(h,function(a){g.setElementOpacity(c[a],h[a],f)})},setElementOpacity:function(a,b,c){b>0&&(a.mapElem.show(),a.textElem&&a.textElem.show()),c>0?(a.mapElem.animate({opacity:b},c,"linear",function(){0===b&&a.mapElem.hide()}),a.textElem&&a.textElem.animate({opacity:b},c,"linear",function(){0===b&&a.textElem.hide()})):(a.mapElem.attr({opacity:b}),0===b&&a.mapElem.hide(),a.textElem&&(a.textElem.attr({opacity:b}),0===b&&a.textElem.hide()))},onUpdateEvent:function(b,c){var f=this;if("object"==typeof c){var g=0,h=c.animDuration?c.animDuration:0,i=function(a){f.unsetHover(a.mapElem,a.textElem),h>0?(a.mapElem.animate({opacity:0},h,"linear",function(){a.mapElem.remove()}),a.textElem&&a.textElem.animate({opacity:0},h,"linear",function(){a.textElem.remove()})):(a.mapElem.remove(),a.textElem&&a.textElem.remove())},j=function(a){a.mapElem.attr({opacity:0}),a.textElem&&a.textElem.attr({opacity:0}),f.setElementOpacity(a,a.mapElem.originalAttrs.opacity!==d?a.mapElem.originalAttrs.opacity:1,h)};if("object"==typeof c.mapOptions&&(c.replaceOptions===!0?f.options=f.extendDefaultOptions(c.mapOptions):a.extend(!0,f.options,c.mapOptions),c.mapOptions.areas===d&&c.mapOptions.plots===d&&c.mapOptions.legend===d||a("[data-type='elem']",f.$container).each(function(b,c){"1"===a(c).attr("data-hidden")&&a(c).trigger("click."+e,[!1,h])})),"object"==typeof c.deletePlotKeys)for(;g0&&j(f.plots[a]))}),"object"==typeof c.newLinks){var k=f.drawLinksCollection(c.newLinks);a.extend(f.links,k),a.extend(f.options.links,c.newLinks),h>0&&a.each(k,function(a){j(k[a])})}if(a.each(f.areas,function(a){if("object"==typeof c.mapOptions&&("object"==typeof c.mapOptions.map&&"object"==typeof c.mapOptions.map.defaultArea||"object"==typeof c.mapOptions.areas&&"object"==typeof c.mapOptions.areas[a]||"object"==typeof c.mapOptions.legend&&"object"==typeof c.mapOptions.legend.area)||c.replaceOptions===!0){var b=f.getElemOptions(f.options.map.defaultArea,f.options.areas[a]?f.options.areas[a]:{},f.options.legend.area);f.updateElem(b,f.areas[a],h)}}),a.each(f.plots,function(a){if("object"==typeof c.mapOptions&&("object"==typeof c.mapOptions.map&&"object"==typeof c.mapOptions.map.defaultPlot||"object"==typeof c.mapOptions.plots&&"object"==typeof c.mapOptions.plots[a]||"object"==typeof c.mapOptions.legend&&"object"==typeof c.mapOptions.legend.plot)||c.replaceOptions===!0){var b=f.getElemOptions(f.options.map.defaultPlot,f.options.plots[a]?f.options.plots[a]:{},f.options.legend.plot);"square"==b.type?(b.attrs.width=b.size,b.attrs.height=b.size,b.attrs.x=f.plots[a].mapElem.attrs.x-(b.size-f.plots[a].mapElem.attrs.width)/2,b.attrs.y=f.plots[a].mapElem.attrs.y-(b.size-f.plots[a].mapElem.attrs.height)/2):"image"==b.type?(b.attrs.width=b.width,b.attrs.height=b.height,b.attrs.x=f.plots[a].mapElem.attrs.x-(b.width-f.plots[a].mapElem.attrs.width)/2,b.attrs.y=f.plots[a].mapElem.attrs.y-(b.height-f.plots[a].mapElem.attrs.height)/2):"svg"==b.type?b.attrs.transform!==d&&(b.attrs.transform=f.plots[a].mapElem.baseTransform+b.attrs.transform):b.attrs.r=b.size/2,f.updateElem(b,f.plots[a],h)}}),a.each(f.links,function(a){if("object"==typeof c.mapOptions&&("object"==typeof c.mapOptions.map&&"object"==typeof c.mapOptions.map.defaultLink||"object"==typeof c.mapOptions.links&&"object"==typeof c.mapOptions.links[a])||c.replaceOptions===!0){var b=f.getElemOptions(f.options.map.defaultLink,f.options.links[a]?f.options.links[a]:{},{});f.updateElem(b,f.links[a],h)}}),c.mapOptions&&("object"==typeof c.mapOptions.legend||"object"==typeof c.mapOptions.map&&"object"==typeof c.mapOptions.map.defaultArea||"object"==typeof c.mapOptions.map&&"object"==typeof c.mapOptions.map.defaultPlot)&&(a("[data-type='elem']",f.$container).each(function(b,c){"1"===a(c).attr("data-hidden")&&a(c).trigger("click."+e,[!1,h])}),f.createLegends("area",f.areas,1),f.options.map.width?f.createLegends("plot",f.plots,f.options.map.width/f.mapConf.width):f.createLegends("plot",f.plots,f.$map.width()/f.mapConf.width)),"object"==typeof c.setLegendElemsState)a.each(c.setLegendElemsState,function(b,c){var g=f.$container.find("."+b)[0];g!==d&&a("[data-type='elem']",g).each(function(b,d){("0"===a(d).attr("data-hidden")&&"hide"===c||"1"===a(d).attr("data-hidden")&&"show"===c)&&a(d).trigger("click."+e,[!1,h])})});else{var l="hide"===c.setLegendElemsState?"hide":"show";a("[data-type='elem']",f.$container).each(function(b,c){("0"===a(c).attr("data-hidden")&&"hide"===l||"1"===a(c).attr("data-hidden")&&"show"===l)&&a(c).trigger("click."+e,[!1,h])})}c.afterUpdate&&c.afterUpdate(f.$container,f.paper,f.areas,f.plots,f.options)}},drawLinksCollection:function(b){var c=this,e={},f={},g={},h={},i={};return a.each(b,function(a){var j=c.getElemOptions(c.options.map.defaultLink,b[a],{});e="string"==typeof b[a].between[0]?c.options.plots[b[a].between[0]]:b[a].between[0],f="string"==typeof b[a].between[1]?c.options.plots[b[a].between[1]]:b[a].between[1],e.latitude!==d&&e.longitude!==d?g=c.mapConf.getCoords(e.latitude,e.longitude):(g.x=e.x,g.y=e.y),f.latitude!==d&&f.longitude!==d?h=c.mapConf.getCoords(f.latitude,f.longitude):(h.x=f.x,h.y=f.y),i[a]=c.drawLink(a,g.x,g.y,h.x,h.y,j)}),i},drawLink:function(a,b,c,d,e,f){var g=this,h={},i=(b+d)/2,j=(c+e)/2,k=-1/((e-c)/(d-b)),l=j-k*i,m=Math.sqrt((d-b)*(d-b)+(e-c)*(e-c)),n=1+k*k,o=-2*i+2*k*l-2*k*j,p=i*i+l*l-l*j-j*l+j*j-f.factor*m*(f.factor*m),q=o*o-4*n*p,r=0,s=0;return f.factor>0?(r=(-o+Math.sqrt(q))/(2*n),s=k*r+l):(r=(-o-Math.sqrt(q))/(2*n),s=k*r+l),h.mapElem=g.paper.path("m "+b+","+c+" C "+r+","+s+" "+d+","+e+" "+d+","+e).attr(f.attrs),g.initElem(h,f,a),h},updateElem:function(a,b,c){var e,f,g,h=this,i=b.mapElem.getBBox();a.value!==d&&(b.value=a.value),b.textElem&&(a.text!==d&&a.text.content!==d&&a.text.content!=b.textElem.attrs.text&&b.textElem.attr({text:a.text.content}),(a.size||a.width&&a.height)&&("image"==a.type||"svg"==a.type?(f=(a.width-i.width)/2,g=(a.height-i.height)/2):(f=(a.size-i.width)/2,g=(a.size-i.height)/2),i.x-=f,i.x2+=f,i.y-=g,i.y2+=g),e=h.getTextPosition(i,a.text.position,a.text.margin),e.x==b.textElem.attrs.x&&e.y==b.textElem.attrs.y||(c>0?(b.textElem.attr({"text-anchor":e.textAnchor}),b.textElem.animate({x:e.x,y:e.y},c)):b.textElem.attr({x:e.x,y:e.y,"text-anchor":e.textAnchor})),h.setHoverOptions(b.textElem,a.text.attrs,a.text.attrsHover),c>0?b.textElem.animate(a.text.attrs,c):b.textElem.attr(a.text.attrs)),h.setHoverOptions(b.mapElem,a.attrs,a.attrsHover),c>0?b.mapElem.animate(a.attrs,c):b.mapElem.attr(a.attrs),"svg"==a.type&&b.mapElem.transform("m"+a.width/b.mapElem.originalWidth+",0,0,"+a.height/b.mapElem.originalHeight+","+i.x+","+i.y),a.tooltip&&(b.mapElem.tooltip===d&&(h.setTooltip(b.mapElem),b.textElem&&h.setTooltip(b.textElem)),b.mapElem.tooltip=a.tooltip,b.textElem&&(b.textElem.tooltip=a.tooltip)),a.href!==d&&(b.mapElem.href===d&&(h.setHref(b.mapElem),b.textElem&&h.setHref(b.textElem)),b.mapElem.href=a.href,b.mapElem.target=a.target,b.textElem&&(b.textElem.href=a.href,b.textElem.target=a.target))},drawPlot:function(a){var b=this,c={},e={},f=b.getElemOptions(b.options.map.defaultPlot,b.options.plots[a]?b.options.plots[a]:{},b.options.legend.plot);return e=f.x!==d&&f.y!==d?{x:f.x,y:f.y}:b.mapConf.getCoords(f.latitude,f.longitude),"square"==f.type?c={mapElem:b.paper.rect(e.x-f.size/2,e.y-f.size/2,f.size,f.size).attr(f.attrs)}:"image"==f.type?c={mapElem:b.paper.image(f.url,e.x-f.width/2,e.y-f.height/2,f.width,f.height).attr(f.attrs)}:"svg"==f.type?(f.attrs.transform===d&&(f.attrs.transform=""),c={mapElem:b.paper.path(f.path)},c.mapElem.originalWidth=c.mapElem.getBBox().width,c.mapElem.originalHeight=c.mapElem.getBBox().height,c.mapElem.baseTransform="m"+f.width/c.mapElem.originalWidth+",0,0,"+f.height/c.mapElem.originalHeight+","+(e.x-f.width/2)+","+(e.y-f.height/2),f.attrs.transform=c.mapElem.baseTransform+f.attrs.transform,c.mapElem.attr(f.attrs)):c={mapElem:b.paper.circle(e.x,e.y,f.size/2).attr(f.attrs)},b.initElem(c,f,a),c},setHref:function(b){var c=this;b.attr({cursor:"pointer"}),a(b.node).on("click."+e,function(){!c.panning&&b.href&&window.open(b.href,b.target)})},setTooltip:function(b){var c=this,f=0,g=c.$tooltip.attr("class"),h=function(a,d){var e=10,f=20;"object"==typeof b.tooltip.offset&&("undefined"!=typeof b.tooltip.offset.left&&(e=b.tooltip.offset.left),"undefined"!=typeof b.tooltip.offset.top&&(f=b.tooltip.offset.top));var g={left:Math.min(c.$map.width()-c.$tooltip.outerWidth()-5,a-c.$map.offset().left+e),top:Math.min(c.$map.height()-c.$tooltip.outerHeight()-5,d-c.$map.offset().top+f)};"object"==typeof b.tooltip.overflow&&(b.tooltip.overflow.right===!0&&(g.left=a-c.$map.offset().left+10),selem.tooltip.overflow.bottom===!0&&(g.top=d-c.$map.offset().top+20)),c.$tooltip.css(g)};a(b.node).on("mouseover."+e,function(a){f=setTimeout(function(){if(c.$tooltip.attr("class",g),b.tooltip!==d){if(b.tooltip.content!==d){var e="function"==typeof b.tooltip.content?b.tooltip.content(b):b.tooltip.content;c.$tooltip.html(e).css("display","block")}b.tooltip.cssClass!==d&&c.$tooltip.addClass(b.tooltip.cssClass)}h(a.pageX,a.pageY)},120)}).on("mouseout."+e,function(){clearTimeout(f),c.$tooltip.css("display","none")}).on("mousemove."+e,function(a){h(a.pageX,a.pageY)})},setEventHandlers:function(b,c,d,e){var f=this;a.each(c.eventHandlers,function(g){!function(g){a(d.node).on(g,function(a){f.panning||c.eventHandlers[g](a,b,d,e,c)}),e&&a(e.node).on(g,function(a){f.panning||c.eventHandlers[g](a,b,d,e,c)})}(g)})},drawLegend:function(c,e,f,g,h){var i=this,j={},k={},l=0,m=0,n=null,o={},p={},q={},r=0,s=0,t=0,u=0,v=[],w=0;for(j=a("."+c.cssClass,i.$container).empty(),k=new b(j.get(0)),a(k.canvas).attr({"data-type":e,"data-index":h}),m=l=0,c.title&&""!==c.title&&(n=k.text(c.marginLeftTitle,0,c.title).attr(c.titleAttrs),n.attr({y:.5*n.getBBox().height}),l=c.marginLeftTitle+n.getBBox().width,m+=c.marginBottomTitle+n.getBBox().height),r=0,w=c.slices.length;w>r;++r){var x=0;v[r]=a.extend(!0,{},"plot"==e?i.options.map.defaultPlot:i.options.map.defaultArea,c.slices[r]),c.slices[r].legendSpecificAttrs===d&&(c.slices[r].legendSpecificAttrs={}),a.extend(!0,v[r].attrs,c.slices[r].legendSpecificAttrs),"area"==e?(v[r].attrs.width===d&&(v[r].attrs.width=30),v[r].attrs.height===d&&(v[r].attrs.height=20)):"square"==v[r].type?(v[r].attrs.width===d&&(v[r].attrs.width=v[r].size),v[r].attrs.height===d&&(v[r].attrs.height=v[r].size)):"image"==v[r].type||"svg"==v[r].type?(v[r].attrs.width===d&&(v[r].attrs.width=v[r].width),v[r].attrs.height===d&&(v[r].attrs.height=v[r].height)):v[r].attrs.r===d&&(v[r].attrs.r=v[r].size/2),x=c.marginBottomTitle,n&&(x+=n.getBBox().height),x+="plot"!=e||v[r].type!==d&&"circle"!=v[r].type?g*v[r].attrs.height/2:g*v[r].attrs.r,u=Math.max(u,x)}for("horizontal"==c.mode&&(l=c.marginLeft),r=0,w=v.length;w>r;++r)if(v[r].display===d||v[r].display===!0){if("area"==e?("horizontal"==c.mode?(s=l+c.marginLeft,t=u-.5*g*v[r].attrs.height):(s=c.marginLeft,t=m),o=k.rect(s,t,g*v[r].attrs.width,g*v[r].attrs.height)):"square"==v[r].type?("horizontal"==c.mode?(s=l+c.marginLeft,t=u-.5*g*v[r].attrs.height):(s=c.marginLeft,t=m),o=k.rect(s,t,g*v[r].attrs.width,g*v[r].attrs.height)):"image"==v[r].type||"svg"==v[r].type?("horizontal"==c.mode?(s=l+c.marginLeft,t=u-.5*g*v[r].attrs.height):(s=c.marginLeft,t=m),"image"==v[r].type?o=k.image(v[r].url,s,t,g*v[r].attrs.width,g*v[r].attrs.height):(o=k.path(v[r].path),v[r].attrs.transform===d&&(v[r].attrs.transform=""),v[r].attrs.transform="m"+g*v[r].width/o.getBBox().width+",0,0,"+g*v[r].height/o.getBBox().height+","+s+","+t+v[r].attrs.transform)):("horizontal"==c.mode?(s=l+c.marginLeft+g*v[r].attrs.r,t=u):(s=c.marginLeft+g*v[r].attrs.r,t=m+g*v[r].attrs.r),o=k.circle(s,t,g*v[r].attrs.r)),delete v[r].attrs.width,delete v[r].attrs.height,delete v[r].attrs.r,o.attr(v[r].attrs),p=o.getBBox(),"horizontal"==c.mode?(s=l+c.marginLeft+p.width+c.marginLeftLabel,t=u):(s=c.marginLeft+p.width+c.marginLeftLabel,t=m+p.height/2),q=k.text(s,t,v[r].label).attr(c.labelAttrs),"horizontal"==c.mode){var y=c.marginBottom+p.height;l+=c.marginLeft+p.width+c.marginLeftLabel+q.getBBox().width,"image"!=v[r].type&&"area"!=e&&(y+=c.marginBottomTitle),n&&(y+=n.getBBox().height),m=Math.max(m,y)}else l=Math.max(l,c.marginLeft+p.width+c.marginLeftLabel+q.getBBox().width),m+=c.marginBottom+p.height;a(o.node).attr({"data-type":"elem","data-index":r,"data-hidden":0}),a(q.node).attr({"data-type":"label","data-index":r,"data-hidden":0}),c.hideElemsOnClick.enabled&&(q.attr({cursor:"pointer"}),o.attr({cursor:"pointer"}),i.setHoverOptions(o,v[r].attrs,v[r].attrs),i.setHoverOptions(q,c.labelAttrs,c.labelAttrsHover),i.setHover(o,q),i.handleClickOnLegendElem(c,v[r],q,o,f,h))}"SVG"!=b.type&&c.VMLWidth&&(l=c.VMLWidth),k.setSize(l,m)},handleClickOnLegendElem:function(b,c,f,g,h,i){var j=this,k=function(k,l,m){var n=0,o=a(f.node).attr("data-hidden"),p="0"===o?{"data-hidden":"1"}:{"data-hidden":"0"};m===d&&(m=b.hideElemsOnClick.animDuration),"0"===o?m>0?f.animate({opacity:.5},m):f.attr({opacity:.5}):m>0?f.animate({opacity:1},m):f.attr({opacity:1}),a.each(h,function(e){var f=h[e].mapElem.data("hidden-by");f===d&&(f={}),n=a.isArray(h[e].value)?h[e].value[i]:h[e].value,(c.sliceValue!==d&&n==c.sliceValue||c.sliceValue===d&&(c.min===d||n>=c.min)&&(c.max===d||n<=c.max))&&!function(c){"0"===o?(f[i]=!0,j.setElementOpacity(h[c],b.hideElemsOnClick.opacity,m)):(delete f[i],a.isEmptyObject(f)&&j.setElementOpacity(h[c],h[c].mapElem.originalAttrs.opacity!==d?h[c].mapElem.originalAttrs.opacity:1,m)),h[c].mapElem.data("hidden-by",f)}(e)}),a(g.node).attr(p),a(f.node).attr(p),l!==d&&l!==!0||b.exclusive===d||b.exclusive!==!0||a("[data-type='elem'][data-hidden=0]",j.$container).each(function(){a(this).attr("data-index")!==a(g.node).attr("data-index")&&a(this).trigger("click."+e,!1)})};a(f.node).on("click."+e,k),a(g.node).on("click."+e,k),c.clicked!==d&&c.clicked===!0&&a(g.node).trigger("click."+e,!1)},createLegends:function(b,c,d){var e=this,f=e.options.legend[b];a.isArray(e.options.legend[b])||(f=[e.options.legend[b]]);for(var g=0;g0&&e.drawLegend(f[g],b,c,d,g)}},setHoverOptions:function(c,d,e){"SVG"!=b.type&&delete e.transform,c.attrsHover=e,c.attrsHover.transform?c.originalAttrs=a.extend({transform:"s1"},d):c.originalAttrs=d},setHover:function(b,c){var d=this,f={},g={},h=0,i=0,j=function(){clearTimeout(i),h=setTimeout(function(){d.elemHover(b,c)},120)},k=function(){clearTimeout(h),i=setTimeout(function(){d.elemOut(b,c)},120)};f=a(b.node),f.on("mouseover."+e,j),f.on("mouseout."+e,k),c&&(g=a(c.node),g.on("mouseover."+e,j),a(c.node).on("mouseout."+e,k))},unsetHover:function(b,c){a(b.node).off("."+e),c&&a(c.node).off("."+e)},elemHover:function(a,b){var c=this;a.attrsHover.animDuration>0?a.animate(a.attrsHover,a.attrsHover.animDuration):a.attr(a.attrsHover),b&&(b.attrsHover.animDuration>0?b.animate(b.attrsHover,b.attrsHover.animDuration):b.attr(b.attrsHover)),c.paper.safari&&c.paper.safari()},elemOut:function(a,b){var c=this;a.attrsHover.animDuration>0?a.animate(a.originalAttrs,a.attrsHover.animDuration):a.attr(a.originalAttrs),b&&(b.attrsHover.animDuration>0?b.animate(b.originalAttrs,b.attrsHover.animDuration):b.attr(b.originalAttrs)),c.paper.safari&&c.paper.safari()},getElemOptions:function(b,c,e){var f=this,g=a.extend(!0,{},b,c);if(g.value!==d)if(a.isArray(e))for(var h=0,i=e.length;i>h;++h)g=a.extend(!0,{},g,f.getLegendSlice(g.value[h],e[h]));else g=a.extend(!0,{},g,f.getLegendSlice(g.value,e));return g},getTextPosition:function(a,b,c){var d=0,e=0,f="";switch("number"==typeof c&&(c="bottom"===b||"top"===b?{x:0,y:c}:"right"===b||"left"===b?{x:c,y:0}:{x:0,y:0}),b){case"bottom":d=(a.x+a.x2)/2+c.x,e=a.y2+c.y,f="middle";break;case"top":d=(a.x+a.x2)/2+c.x,e=a.y-c.y,f="middle";break;case"left":d=a.x-c.x,e=(a.y+a.y2)/2+c.y,f="end";break;case"right":d=a.x2+c.x,e=(a.y+a.y2)/2+c.y,f="start";break;default:d=(a.x+a.x2)/2+c.x,e=(a.y+a.y2)/2+c.y,f="middle"}return{x:d,y:e,textAnchor:f}},getLegendSlice:function(a,b){for(var c=0,e=b.slices.length;e>c;++c)if(b.slices[c].sliceValue!==d&&a==b.slices[c].sliceValue||b.slices[c].sliceValue===d&&(b.slices[c].min===d||a>=b.slices[c].min)&&(b.slices[c].max===d||a<=b.slices[c].max))return b.slices[c];return{}},animateViewBox:function(a,c,d,e,f,g){var h,i=this,j=i.paper._viewBox?i.paper._viewBox[0]:0,k=a-j,l=i.paper._viewBox?i.paper._viewBox[1]:0,m=c-l,n=i.paper._viewBox?i.paper._viewBox[2]:i.paper.width,o=d-n,p=i.paper._viewBox?i.paper._viewBox[3]:i.paper.height,q=e-p,r=25,s=f/r,t=0;g=g||"linear",h=b.easing_formulas[g],clearInterval(i.animationIntervalID),i.animationIntervalID=setInterval(function(){var b=t/s;i.paper.setViewBox(j+k*h(b),l+m*h(b),n+o*h(b),p+q*h(b),!1),t++>=s&&(clearInterval(i.animationIntervalID),clearTimeout(i.zoomTO),i.zoomTO=setTimeout(function(){i.$map.trigger("afterZoom",{x1:a,y1:c,x2:a+d,y2:c+e})},150))},r)},isRaphaelBBoxBugPresent:function(){var a=this,b=a.paper.text(-50,-50,"TEST"),c=b.getBBox();return b.remove(),0===c.width&&0===c.height},defaultOptions:{map:{cssClass:"map",tooltip:{cssClass:"mapTooltip"},defaultArea:{attrs:{fill:"#343434",stroke:"#5d5d5d","stroke-width":1,"stroke-linejoin":"round"},attrsHover:{fill:"#f38a03",animDuration:300},text:{position:"inner",margin:10,attrs:{"font-size":15,fill:"#c7c7c7"},attrsHover:{fill:"#eaeaea",animDuration:300}},target:"_self"},defaultPlot:{type:"circle",size:15,attrs:{fill:"#0088db",stroke:"#fff","stroke-width":0,"stroke-linejoin":"round"},attrsHover:{"stroke-width":3,animDuration:300},text:{position:"right",margin:10,attrs:{"font-size":15,fill:"#c7c7c7"},attrsHover:{fill:"#eaeaea",animDuration:300}},target:"_self"},defaultLink:{factor:.5,attrs:{stroke:"#0088db","stroke-width":2},attrsHover:{animDuration:300},text:{position:"inner",margin:10,attrs:{"font-size":15,fill:"#c7c7c7"},attrsHover:{fill:"#eaeaea",animDuration:300}},target:"_self"},zoom:{enabled:!1,minLevel:0,maxLevel:10,step:.25,mousewheel:!0,touch:!0,animDuration:200,animEasing:"linear",buttons:{reset:{cssClass:"zoomButton zoomReset",content:"•",title:"Reset zoom"},"in":{cssClass:"zoomButton zoomIn",content:"+",title:"Zoom in"},out:{cssClass:"zoomButton zoomOut",content:"−",title:"Zoom out"}}}},legend:{area:[],plot:[]},areas:{},plots:{},links:{}},legendDefaultOptions:{area:{cssClass:"areaLegend",display:!0,marginLeft:10,marginLeftTitle:5,marginBottomTitle:10,marginLeftLabel:10,marginBottom:10,titleAttrs:{"font-size":16,fill:"#343434","text-anchor":"start"},labelAttrs:{"font-size":12,fill:"#343434","text-anchor":"start"},labelAttrsHover:{fill:"#787878",animDuration:300},hideElemsOnClick:{enabled:!0,opacity:.2,animDuration:300},slices:[],mode:"vertical"},plot:{cssClass:"plotLegend",display:!0,marginLeft:10,marginLeftTitle:5,marginBottomTitle:10,marginLeftLabel:10,marginBottom:10,titleAttrs:{"font-size":16,fill:"#343434","text-anchor":"start"},labelAttrs:{"font-size":12,fill:"#343434","text-anchor":"start"},labelAttrsHover:{fill:"#787878",animDuration:300},hideElemsOnClick:{enabled:!0,opacity:.2,animDuration:300},slices:[],mode:"vertical"}}},a[e]===d&&(a[e]=g),a.fn[e]=function(b){return this.each(function(){a.data(this,e)&&a.data(this,e).destroy(),a.data(this,e,new g(this,b))})}}); \ No newline at end of file diff --git a/htdocs/public/high/plugins/jquery-mapael/maps/README.txt b/htdocs/public/high/plugins/jquery-mapael/maps/README.txt deleted file mode 100644 index e2e4ba95..00000000 --- a/htdocs/public/high/plugins/jquery-mapael/maps/README.txt +++ /dev/null @@ -1,3 +0,0 @@ -Additional maps are stored in the repository neveldo/mapael-maps - -Full link: https://github.com/neveldo/mapael-maps diff --git a/htdocs/public/high/plugins/jquery-mapael/maps/france_departments.js b/htdocs/public/high/plugins/jquery-mapael/maps/france_departments.js deleted file mode 100644 index 4283189d..00000000 --- a/htdocs/public/high/plugins/jquery-mapael/maps/france_departments.js +++ /dev/null @@ -1,165 +0,0 @@ -/*! - * - * Jquery Mapael - Dynamic maps jQuery plugin (based on raphael.js) - * Requires jQuery and Mapael - * - * Map of metropolitan France by department - * Equirectangular projection - * - * @author Vincent Brouté - * @source http://fr.m.wikipedia.org/wiki/Fichier:France_location_map-Departements.svg - */ -(function (factory) { - if (typeof exports === 'object') { - // CommonJS - module.exports = factory(require('jquery'), require('mapael')); - } else if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['jquery', 'mapael'], factory); - } else { - // Browser globals - factory(jQuery, jQuery.mapael); - } -}(function ($, Mapael) { - - "use strict"; - - $.extend(true, Mapael, - { - maps : { - france_departments : { - width : 600.08728, - height : 626.26221, - getCoords : function (lat, lon) { - var xfactor, - xoffset, - yfactor, - yoffset, - x, - y; - // Corse - if (lat < 43.15710 && lon > 8.17199) { - xfactor = 43.64246; - xoffset = 181.34520; - x = (lon * xfactor) + xoffset; - - yfactor = -65.77758; - yoffset = 3346.37839; - y = (lat * yfactor) + yoffset; - } else { - xfactor = 45.48385; - xoffset = 220.22005; - x = (lon * xfactor) + xoffset; - - yfactor = -65.97284; - yoffset = 3371.10748; - y = (lat * yfactor) + yoffset; - } - return {x : x, y : y}; - }, - elems : { - "department-29" : "m 37.28,156.11 c -1.42,1.23 -3.84,1.18 -3.99,3.49 -1.31,-2.24 -8,-0.27 -6.23,1.86 -0.83,0.29 -3.61,-0.09 -4.72,1.08 1.27,-3.15 -2.84,-2.76 -4.74,-1.32 -1.52,0.3 0.5,1.51 -1.67,1.26 -1.43,1.46 -5.78,-1.22 -5,1.7 2.01,2.28 -4.44,-1.17 -2.19,2.21 2.05,2.35 -1.91,-1.21 -3.2,0.17 -2.44,0.46 -5.9,3.28 -4.27,6.2 1.31,1.03 -2.45,2.79 -0.89,4.68 1.85,1.54 -1.54,4.66 1.85,4.99 2.29,0.7 2.49,-2.98 4.87,-0.96 3.08,0.74 5.89,-2.07 8.89,-2.74 1.93,-0.34 5.67,-2.04 6.34,-1.85 -2,1.78 -5.83,1.89 -6.41,4.93 -0.69,1.92 2.11,-0.67 2.33,1.07 1.34,-0.89 2.68,-1.87 3.94,-1.39 3.81,-2.03 -2.75,2.24 0.52,1.99 1.47,0.34 4.01,0.96 4.33,1.46 -1.94,0.3 -3.28,1.07 -4.57,-0.08 -2.38,0.71 -4.58,1.45 -6.63,0.05 -2.75,0.86 -5.75,0.61 -4.18,-2.84 -3.29,-0.24 -0.4,5.1 -3.79,3.67 -1.2,2.84 5.41,0.67 2.62,3.42 0.89,1.41 -0.15,5.78 1.86,2.76 0.83,-2.29 2.62,-4.57 5.09,-2.36 1.97,1.37 5.1,0.79 5.41,4 1.86,2.04 -0.29,6.23 -3,3.6 -3.95,0.62 -7.67,1.95 -11.58,2.45 -2.09,0.38 -5.98,-0.08 -4.41,2.7 2.53,0.06 4.87,1.62 7.03,1.82 2.62,-1.48 5.9,3.16 7.51,5.27 1.61,2.44 2.66,5.4 0.91,7.66 1.94,1.19 5.11,1.18 7.5,0.75 1.99,-0.45 3.16,-2.44 1.04,-3.28 -1.05,-1.98 0.82,-2.27 1.51,-0.45 3.34,0.23 -0.63,-4.11 0.69,-3.65 0.91,2.75 3.66,3.46 5.82,3.53 2.26,0.86 -0.02,-4.66 2.92,-2.01 2.11,1.7 2.69,4.22 4.57,6.13 2.01,0.11 4.17,0.12 6.01,-0.65 1.82,2.12 5.68,2.27 8.25,2.23 1.8,-1.51 -1.55,-4.66 0.95,-5.09 0.94,2.57 3.24,-0.19 3.58,-1.33 2.95,0.23 0.38,-3.13 2.08,-4.2 -0.21,-1.43 -0.64,-3.61 -2.53,-1.94 -1.44,2.09 -1.76,-1.59 -3.7,-1.52 -2.13,-1.41 -5.77,1.37 -6.1,-2.55 -0.44,-2.07 -2.04,-3.22 -2.32,-5.05 -2.23,-0.45 0.49,-4.53 2.59,-4.02 1.42,-1.43 5.76,-1.87 5.77,-3.15 -3.54,-1.5 2.53,-4.55 -0.88,-5.73 0.6,-1.35 -0.87,-3.79 -0.56,-5.72 -3.53,0.13 -1.65,-3.79 0.06,-4.6 -3.56,-1.53 -0.98,-4.21 0.33,-6.05 -1.3,-1.16 -2.22,-1.16 -1.99,-2.94 -3.12,-0.26 -3.41,-4.67 -2.3,-6.54 -0.38,-1.53 -3.23,-0.42 -4.45,-1.94 -2.01,-0.12 -5.18,-1.19 -4.7,2.29 -0.84,1.4 0.25,4.35 -1.82,2.22 -1.36,-0.49 -0.48,-3.38 -2.36,-1.3 -1.28,1.93 -1.52,-3.86 -1.99,-4.38 z m -9.88,28.66 0,0.02 0,-0.02 z", - "department-22" : "m 77.67,146.73 c -2.58,0.94 -4.37,2.6 -5.78,4.84 1.21,-2.76 0.01,-6.18 -2.26,-2.58 -2.86,-0.54 -4.85,2.02 -7.32,2.35 0.05,-2.38 -5.14,-2.89 -4.97,-0.27 -1.65,0.69 -2.79,2.55 -0.54,3.83 1.42,1.41 -3.19,1.12 -1.21,3.58 0.75,2.79 -2.62,-0.53 -2.95,1.74 -2.03,2.25 0.93,5.14 2.73,6.11 -0.89,1.81 3.77,1.87 0.94,3.62 -2.27,1.33 -1.69,4.1 0.71,4.68 -2.37,0.99 -3.54,4.66 -0.18,4.93 -0.75,1.8 0.34,4.07 1.35,3.89 -2.23,1.45 2.07,3.31 -1.02,4.81 -1.32,1.63 3.39,3.81 -0.37,3.46 -0,1.68 3.4,-0.17 4.6,0.64 2.17,-1.15 0.09,3.47 2.84,1.65 2.78,-2.51 5.12,2.28 8.16,0.11 1.28,-1.21 4.21,0.16 3.71,-2.72 2.36,-2.11 5.53,-0.32 6.55,2.07 3.1,-1.66 5.66,1.79 8.52,1.44 1.09,1.13 1.31,4.63 2.54,1.67 1.77,0.69 4.7,-2.67 4.36,1 -1.42,1.92 -0.06,5.98 2.29,3.25 2.15,-1.33 3.24,-3.52 3.71,-5.84 -1.55,-1.8 3.03,-1.29 4.1,-2.17 2.56,0.5 2.84,5.71 5.3,2.6 2.48,-0.52 4.76,-2.21 4.35,-5.23 2.66,1.35 0.38,-3.98 3.68,-3.07 2.3,0.76 0.88,-1.21 2.74,-1.68 0.93,-2.46 3.26,2.1 3.88,-0.74 2.87,-0.05 0.28,-3.49 2.75,-3.67 -0.67,-1.88 -0.1,-4.12 -0.62,-6.07 1.57,-1.46 2.25,-5.3 0.59,-6.78 -0.36,1.32 -2.86,3.56 -2.08,0.75 -0.58,-2.28 -2.24,-1.04 -3,-0.66 -0.39,-2.19 -3.7,-1.69 -4.26,-4.29 -2.01,-0.96 -0.92,3.96 -2.61,1.33 -0.93,2.11 -1.72,-1.85 -2.25,-2.64 -0.23,-2.69 -5.02,3.57 -3.11,-0.38 2.12,-1.4 -0.5,-4.55 -1.42,-1.9 -1.94,1.15 -2.92,1.92 -4.85,1.1 -2.9,-0.12 0.52,1.54 -2.1,2.49 -3.58,0.78 -5.19,5.69 -8.5,5.48 0.49,3.36 -2.74,-0.19 -2.06,-1.81 -2.95,-1.1 -4.73,-3.24 -4.7,-6.38 -2,-2 -5.44,-3.63 -5.11,-6.81 -0.95,-1.07 -6.79,-1.08 -3.38,-3.09 0.47,-2.76 -4.12,-1.19 -3.66,1.11 -0.44,1.73 -2.27,2.41 -0.65,0.39 1.33,-1.47 1.44,-4.62 0.53,-6.14 z", - "department-56" : "m 78.99,190.76 c -3.41,-1.13 -2.2,3.92 -5.32,2.9 -1.41,0.4 -1.19,1.61 -2.99,0.82 -1.13,0.79 -2.69,-0.38 -3.4,-0.47 -0.84,-2.28 -6.08,2.96 -4.76,-1.3 -1.92,-0.69 -4.61,-0.08 -6.81,-0.32 -2.56,1.49 -6.48,1.43 -6.89,4.97 1.66,0.45 1.27,1.18 1.54,2.72 2.29,1.28 1.38,6.71 5.21,4.85 2.27,-0.57 4.21,1.54 5.35,2.54 1.09,-1.75 3.9,-1.39 3.21,0.95 0.1,1.55 -1.11,2.84 -0.3,4.77 -2.2,-0.71 -3.03,4.58 -5.67,1.76 -1.43,0.94 1.23,2.98 -0.19,4.47 0.79,3.11 4.25,6.81 7.21,3.89 -1.96,-1.82 1.17,-1.04 2.08,-2.79 1.53,-1.34 1.85,-1.47 0.72,0.46 -0.96,1.01 -3.43,3.3 -0.38,3.09 1.49,0.45 3.45,4.36 4.77,2.88 -0.27,-2.53 3.83,-3.05 1.1,-5.44 1.05,0.63 2.71,-0.96 2.12,1.15 2.98,0.99 -0.94,3.03 -2.44,3.55 -2.08,3.14 3.5,3.77 1.75,6.92 -0.29,1.59 0.31,5.9 2.13,4.03 -1.68,-0.96 -1.89,-7.61 0.51,-4.94 -0.5,1.26 4.8,0.74 3.44,-1.25 0.35,-0.76 1.34,3.45 1.43,0.83 0.89,1.74 3.91,2.47 1.59,0.06 -0.51,-1.47 -0.02,-3.03 -0.87,-4.45 1.76,1.65 1.37,4.11 4.01,4.31 0.21,-1.28 1.88,-0.67 1.78,-2.23 1.83,0.46 2.89,-0.48 3.79,-0.93 2.28,0.82 -0.59,1.71 2.06,2.43 1.57,0.52 0.39,-4.11 1.62,-1.05 -0.46,2.03 -2.17,6.08 -4.56,4.17 -1.51,0.14 -2.97,0.56 -4.53,-0.67 -3.37,0.66 2.51,2.11 2.17,4.25 2.28,1.57 4.95,-1.33 7.46,-0.04 0.09,-2.03 1.34,-0.88 2.36,-1.71 -1.31,-1.38 4.01,-1.27 0.96,-0.1 0.22,1.93 4.41,-1.17 5.9,0.75 1.01,1.43 4.31,0.26 4.44,1.04 -2.33,0.43 -6.75,-0.69 -5.01,3.23 1.5,1.03 2.59,-3.6 4.01,-0.77 1.99,-0.12 4.3,0.38 4.4,-2.43 0.29,-2.58 2.25,-0.15 3.16,-0.22 1.19,-1.05 2.3,-1.01 2.74,0.42 1.6,-0.29 0.66,-3.06 3.03,-2.61 0.96,-1.59 -0.11,-4.05 1.01,-5.76 -1.21,-2.25 -1.75,-4.67 -1.62,-7.13 1.06,-1.01 4.05,-0.69 1.57,-1.96 -1.94,-0.06 -2.1,-1.17 -0.12,-1.66 0.89,-1.32 3.49,-4.07 1.04,-4.6 -2.47,1.93 -2.55,-3.4 -0.68,-4.04 -0.57,-3.25 -3.22,-4.81 -6.13,-5.41 -2.4,0.4 -4.25,0.1 -2.46,-2.49 0.6,-2.26 5.5,-0.56 4.09,-3.23 -1.75,-0.22 -3.84,2.7 -3.33,-0.63 0.01,-3.41 -3.32,-2.88 -4.84,-1.45 -0.88,-3.11 -3.48,-4.72 -6.36,-3.01 -2.15,-0.01 0.26,2.97 -2.05,3.88 -0.09,2.06 -3.87,4.92 -5.31,3.84 -1.21,-1.39 2.06,-7.27 -1.57,-5.21 -1.38,0.54 -2.88,0.33 -3.62,2.06 -0.18,-2.38 -1.59,-4.23 -4.05,-3.7 -1.5,-2.53 -4.89,-0.74 -6.39,-1.56 -0.77,-1.17 -1.33,-2.65 -3.1,-2.43 z", - "department-35" : "m 134.53,157.78 c -2.29,1.25 -4.29,0.31 -6.19,1.59 -0.35,1.67 -2.93,2.17 -1.16,4.31 0.18,1.71 3.99,2.25 1.51,3.04 0.71,1.27 0.98,3.59 2.33,1.22 1.69,2.12 0.9,4.75 -0.11,6.67 -1.16,1.66 0.84,3.78 -0.19,5.68 1.34,1.46 -2.11,1.58 -0.78,3.48 0.21,2.25 -2.03,-0.13 -2.56,2.08 -1.42,-0.68 -2.58,-1.61 -3.47,0.21 -1.19,0.31 -0.39,2.42 -2.44,1.14 -3.01,-0.11 -1.06,4.1 -3.56,3.46 -0.04,2.21 -0.64,4.46 -2.86,4.2 0.62,1.53 1.56,3.49 1.75,5.16 0.54,-2.03 5.23,-1.03 2.52,0.76 -2.33,-0.69 -5.1,2.03 -3.97,3.88 2.89,-0.33 6.41,0.27 7.93,3.03 1.44,1.66 0.87,2.99 -0.39,4.33 0.11,1.6 0.84,3.69 2.2,1.35 0.71,-0.77 0.83,2.07 1.01,2.45 -1.23,1.26 -2.05,2.91 -3.28,3.92 1.71,0.13 3.61,2.39 0.59,2.1 -2.68,1.22 0.26,4 -0.22,5.86 2.34,-0.34 4.15,-1.76 6.12,-3.07 0.06,2.7 3.03,-0.8 4.56,-0.57 2.43,-1.1 5.63,0.82 7.84,-0.63 3.6,0.5 2.72,-4.87 6.32,-4.78 1.62,-0.77 5.16,-0.84 3.73,-3.31 2.85,-0.62 4.57,1.21 6.54,2.5 1.91,0.57 5.04,2.11 4.63,-1.3 1.15,-1.21 0.6,-2.9 1.92,-3.9 0.7,-1.81 1.08,-4.73 2.39,-6.4 1.07,-2.4 6.58,0.52 5.22,-3.48 -0.09,-3.31 -1.44,-6.24 -2.22,-9.58 0.1,-2.96 -2.26,-6.23 0.02,-8.8 1.83,-2.19 0.74,-5.58 -0.28,-8.01 0.55,-2.21 1.33,-6.39 -2.22,-6.48 -2.56,-0.06 -6.32,-3.21 -7.21,0.93 -2.37,0.79 -4.8,5.49 -7.02,1.82 -2.57,-0.44 -4.28,-3.63 -3.95,-6.18 -0.99,-1.91 -2.39,-5.92 -4.86,-2.88 -3.41,0.04 -8.02,2.16 -10.43,-0.96 -1.67,-2.06 2.03,-3.1 0.24,-4.85 z", - "department-44" : "m 152.12,215.29 c 0.59,4.69 -7.52,2.23 -7.55,6.92 -2.45,2.92 -6.64,1.42 -9.84,1.79 -2.21,0.47 -4.62,2.21 -6.1,1.16 -2.15,1.71 -5.77,2.38 -4.86,5.66 -0.41,1.99 0.14,5.32 -2.78,5.46 0.29,3.39 -2.45,-0.35 -3.39,1.23 -1.97,-0.43 -3.4,-1.22 -3.87,1.43 -1.39,3.38 -7.86,-1.72 -6.53,3.45 1.04,0.36 3.95,1.27 1.26,1.45 -1.78,0.18 -4.38,-0.42 -5.51,2.1 0.81,1.67 6.76,3.88 3.55,5.8 -1.04,-0.85 -4.89,-1.36 -1.91,0.14 1.73,1.23 3.86,1.82 5.03,0.15 2.77,0.79 5.25,4.76 7.99,1.3 2.33,-2.98 5.67,-3.71 9.18,-3.56 3.26,1.31 7.02,1.76 9.14,4.89 0.59,1.56 5.82,2.63 2.15,2.16 -4.08,-0.08 -5.45,-5.45 -9.25,-4.42 -2.59,-1.44 -6.59,-0.45 -8.62,1.17 0.15,2.98 1.07,6.99 -2.64,7.63 1.56,2.78 6.83,0.77 8.69,4.16 2.99,2.74 4.83,7.09 8.9,8.42 0.9,1.88 5.53,0.57 5.08,3.59 3.08,0.7 6.82,2.86 9.67,1.11 2.13,-1.29 -2.55,-2.42 -0.14,-3.94 -2.91,-1.74 -0.81,-8.5 2.35,-5.93 0.6,2.44 -0.71,8.47 3.28,5.3 3.57,-0.9 -1,-7.35 3.9,-6.19 0.83,-0.5 2.39,-4.6 3.91,-1.32 1.06,2.31 6.94,2.33 4.03,-0.72 -1.16,-2.43 -6.27,-0.49 -4.19,-3.49 1.19,-2.09 4.14,-3.59 2.27,-6.58 -0.11,-2.99 -2.79,0.14 -3.66,-2.47 -0.42,-1.81 -2.18,-3.14 -3.54,-3 1.51,-3.16 6.07,-2.52 8.85,-3.95 3.12,-0.79 9.37,1.47 9.71,-3.23 -1.08,-2.47 -1.12,-5.9 -4.66,-5.46 -2.8,0.23 -7.97,-1.25 -5.65,-4.79 1.85,-0.34 7.04,1.35 6.32,-1.48 -2.96,-1.34 -7.7,-2.06 -7.06,-6.38 -0.89,-2.42 -4.47,-2.43 -3.18,-5.19 -2.78,-1.29 -5.51,-2.7 -8.1,-4.12 -0.73,-0.11 -1.47,-0.12 -2.19,-0.28 z", - "department-50" : "m 131.13,90.31 c -1.88,0.95 -0.8,4.82 1.86,4.23 3.56,1.9 1.73,6.62 0.2,9.04 2.05,2.45 3.1,5.7 3,9 0.14,1.74 2.63,0.2 3.07,2.34 0.75,1.03 1.85,2.12 2.19,0.36 1.37,1.6 -1.38,2.27 1.05,3.66 1.37,1.28 0.99,6.4 3.69,4.06 1.9,0.29 2.45,1.19 0.04,0.86 -1.6,1.67 0.46,4.57 0.89,5.74 -2.97,1.02 -0.03,4.32 -0.89,6.45 0.25,4.18 2.26,-2.3 3.97,0.71 -3,-1.64 -2.73,4.63 -1.52,5.52 -1.39,1.53 -0.75,4.59 -2.48,6.57 2.85,1.89 0.3,6.73 3.77,8.41 0.72,3.65 6.47,2.47 6.87,4.86 -3.09,-0.67 -6.13,1.28 -9.29,0.14 2.12,2.48 1.69,5.44 3.35,8.16 0.49,2.03 2.9,1.69 3.89,3.28 2.85,0.97 3.52,-2.95 6.22,-3.35 0.5,-4.19 4.83,-0.16 7.12,-0.52 2.46,0.21 4.49,2.11 6.88,1.58 1.14,-3.4 4.72,2.61 6.05,-1.83 2.14,-1.71 4.11,-4.11 4,-6.8 -2.86,-1.65 2.62,-4.05 -1.04,-4.65 -1.19,-1.03 -1.99,-2.17 -3.44,-2.39 0.65,-1.72 0.69,-2.24 -1.24,-1.46 -2.15,-1.56 -3.83,-1.87 -6.18,-1.16 -1.5,-0.55 -4.16,0.68 -4.02,-2.14 -1.26,-0.78 -4.15,-1.48 -1.38,-2.84 0.99,-1.27 1.76,-1.9 2.97,-1.76 1.12,-1.18 3.8,-4.02 0.24,-2.9 -1.76,-0.83 1.02,-4.16 2.87,-2.17 3.08,-0.43 3.89,-3.82 6.01,-5.35 -2.27,-0.59 1.2,-4.39 -1.22,-5.32 -2.09,1.3 -1,0.15 0.07,-0.89 -1.07,-1.07 -4.55,-2.49 -1.49,-2.88 2.17,-1.47 -0.09,-4.82 -1.5,-1.9 -3.17,0.81 -5.99,-2.78 -7.94,-5.02 -1.69,-1.95 2.34,-3.94 -0.73,-4.53 -0.02,-1.64 -2.94,0.31 -1.33,-2.17 1.04,-2.89 -2.27,-4.45 -3.47,-6.64 -1.37,-1.99 -4.59,-6.54 -0.56,-7.31 0.17,-1.79 2.56,-1.35 1.09,-3.59 -0.43,-3.65 -3.79,-3.85 -6.83,-3.94 -3.88,-1.03 -4.69,4.08 -8.52,3.07 -3.16,1.2 -5.48,-1.83 -8.81,-1.65 -2.47,0.02 -3.19,-2.65 -5.7,-1.92 -0.51,-0.38 -1.01,-1.1 -1.74,-0.94 z", - "department-53" : "m 208.55,167.1 c -1.01,1 0.05,3.16 -1.88,3.54 -1.52,-1.01 -2.64,-0.44 -3.16,1.13 -2.16,0.27 -4.3,-2.6 -6.35,-0.72 -2.51,0.71 -4.34,2.89 -6.91,3.52 -1.47,-0.07 -0.73,-3.05 -2.63,-1.24 -1.44,-0.25 -1.57,0.24 -1.23,1.52 -1.95,1.91 -3.12,-1.9 -4.31,-1.2 -0.57,-2.91 -4.17,-1.79 -5.68,-3.27 -1.71,1.43 -3.54,2.05 -5.24,0.23 -1.62,1.36 -0.04,4.11 -0.87,5.96 1,2.8 1.94,6.2 -0.3,8.68 -1.8,2.64 0.64,5.51 0.63,8.4 0.26,2.57 1.34,4.89 2.01,7.32 0.27,1.9 0.56,4.67 -2.4,4.46 -3.58,-1.21 -3.75,3.46 -4.8,5.71 -0.32,2.32 -3.14,4.44 -1.31,6.55 2.18,1.99 5.34,0.43 7.83,1.57 1.63,0.66 3.95,1.05 3.53,-1.27 2.64,-0.54 3.9,3.91 6.54,1.42 2.25,1.91 5.27,1.85 7.94,2.38 1.76,-0.55 3.96,-1.63 5.33,-1.8 0.74,-3.63 3.49,1.65 5.63,-0.72 3.1,-0.49 -0.69,-2.25 -1.75,-2.95 -1.24,-2.55 5.38,-2.7 2.17,-4.78 -2.1,-2.18 2.21,-3.41 3.9,-3.25 2.7,-2.12 -2.9,-5 -0.82,-7.18 1.54,-1.12 5.56,-0.07 4.23,-2.96 2.04,-1.51 -2.56,-3.7 0.57,-5.19 2.14,-0.95 4.31,-2.8 2.75,-5.2 0.4,-1.84 1.4,-3.83 0.29,-5.45 0.84,-2.27 2.74,-2.67 4.64,-3.69 0.49,-2.31 0.11,-5.38 -2.99,-3.91 -2.18,-0.9 -2.07,-4.02 -1.67,-5.52 -0.9,-1.11 -2.32,-1.86 -3.72,-2.1 z", - "department-49" : "m 163.22,217.21 c -0.83,2.37 -1.6,5.33 1.37,5.86 1.81,2.08 0.91,5.95 4.42,6.63 2.22,0.05 6.13,2.61 1.99,3.38 -1.68,0.33 -6.88,-1.51 -4.42,1.8 -0.28,3.95 5.62,1.28 7.64,2.98 2.45,0.74 1.41,5.07 2.67,6.48 -2.29,2.93 -6.35,1.4 -9.46,1.86 -2.75,1.47 -6.15,1.11 -8.63,2.95 -2.19,2.35 2.81,0.48 2.57,3.2 0.31,2.29 2.55,1.71 3.57,1.87 1.63,2.89 1.11,5.74 -1.65,7.56 -1.38,3.05 3.73,1.85 4.64,4.57 0.65,0.86 -1.19,3.33 1.44,2.98 2.09,1.51 5.06,-0.93 6.83,0.87 2.12,0.24 3.87,3.37 5.76,0.52 2.61,-0.75 5.23,0.76 7.87,-0.16 3.45,0.68 4.18,-2.89 4.98,-5 2.46,-1.53 5.74,1.7 7.32,-1.15 3.52,-0.32 7.2,-1.11 10.47,-0.77 1.05,1.17 -2.26,1.94 0.29,2.63 2.66,0.88 1.49,-3.86 4.67,-2.23 0.32,-1.55 1.08,-6.07 4.26,-4.7 1.02,-3.55 0.54,-7.68 3.15,-10.63 1.2,-1.75 2.78,-3.33 2.02,-5.32 0.89,-2.49 1.94,-4.87 2.33,-7.52 -2.3,-1.25 2.95,-6.06 -1.28,-5.83 -1.14,3.4 -4.78,-0.25 -6.77,-0.21 -1.89,-1.86 -5.83,-3.95 -7.59,-1.47 -2.9,0.48 -5.51,-3.13 -2.87,-5.2 -1.31,-0.36 -3.53,1.25 -5.3,-0.11 -1.96,-0.38 -3.12,0.57 -3.07,-1.96 -1.12,-2.87 -4.12,0.14 -5.77,-2.2 -1.77,-0.71 -0.8,2.61 -3.03,1.75 -3.13,1.53 -6.89,1.32 -10.17,-0.06 -1.72,-2.25 -3.57,1.59 -5.08,-1.25 -0.8,-0.99 -3.72,-1.84 -2.9,0.37 -3.4,0.17 -6.97,-0.89 -10.18,-1.14 -0.72,-0.44 -1.37,-0.99 -2.14,-1.36 z", - "department-85" : "m 161.28,265.2 c -0.97,1.7 -1.54,3.91 -3.7,2.64 -1.76,1.98 1.21,6.33 -3.05,6.68 -4.15,2.13 -1.3,-4.19 -2.86,-6.14 -3.81,-0.88 -3.43,4.2 -2.06,6.39 -1.18,1.59 2.88,3.89 -0.56,4.36 -2.8,1.01 -5.58,-1.25 -8.45,-1.27 -0.94,-1.21 -1.09,-3.22 -3.4,-2.64 -2.06,0.15 -1.35,-2.2 -3.49,-1.71 -2.48,-1.21 -5.24,-7.8 -7.15,-2.42 -0.59,3.85 -5.53,4.8 -4.91,9.21 0.37,4.17 5.72,4.87 7.16,8.67 2.67,2.58 4.99,5.43 6.65,8.8 0.87,1.89 0.24,6.13 2,6.75 0.16,-1.73 0.12,-2.45 1.07,-0.5 1.66,2.86 6.15,2.45 7.02,5.1 3.4,-0.42 6.93,0.3 7.04,4.36 1.27,2.81 4.49,-1.27 6.02,1.84 2.09,-0.13 3,3.11 4.96,3.02 -0.36,-3.97 4.41,-1.93 6.48,-3.3 1.71,-1.96 4.7,-2.5 6.81,-2.37 -1.17,1.68 -0.83,3.92 1.65,2.75 2.07,-0.36 4.04,-2.66 5.25,0.14 2.09,1.8 3.55,-0.97 5.61,-0.12 1.62,-1.38 3.3,-2.9 5.04,-3.72 0.18,-2.56 -3.47,-1.87 -3.87,-1.44 -0.63,-2.59 1.8,-5.29 -0.47,-7.7 0.94,-1.38 2.03,-1.54 1.08,-3.45 0.09,-2.1 -0.29,-4.13 -1.61,-5.22 0.65,-2.15 -1.16,-2.52 -0.79,-4.52 -1.57,-1.94 -3.3,-3.94 -1.89,-6.5 -1.72,-1.62 -5.39,-2.92 -5.22,-6.11 0.38,-2.29 -3.29,-2.9 -3.68,-5.31 -1.81,-2.01 -4.49,-1.74 -7.1,-1.32 -3.49,-1.03 -6.73,-2.66 -9.6,-4.96 z", - "department-79" : "m 211.41,263.54 c -3.47,1 -7.46,-0.24 -10.55,2.01 -1.54,0.87 -3.61,1.5 -3.45,-0.55 -2.89,-0.11 -3.46,3 -4.1,4.64 -2.76,1.84 -6.3,1.53 -9.35,1.02 -2.77,-0.37 -6.01,2.62 -2.55,4.27 1.05,2.29 0.26,5.24 3.5,6.22 3.7,1.27 0.35,4.83 3.08,6.91 1.95,2.46 1.89,5.88 3.13,8.43 0.79,2.29 0.53,5.23 -0.6,6.69 2.08,1.92 -1.04,5.98 0.79,6.87 2.26,-2.05 4.86,2.6 1.35,3.21 -1.82,2.1 -4.84,2.03 -7.01,3.55 -1.92,3.7 2.7,4.91 3.24,8.13 1.44,0.37 2.62,0.88 2.81,2.1 3.32,-0.93 5.83,3.57 8.63,3.01 2.89,1.17 6.03,0.6 8.47,3.22 3.7,-0.54 3.87,6.56 7.56,4.57 1.73,-2.11 1.24,-5.98 4.87,-5.81 1.63,-2.21 4.23,-2.49 6.45,-1.63 1.55,-1.48 2.11,-4.78 -0.83,-4.33 -3.29,-1.46 -1.71,-5.49 -0.5,-7.4 1.75,-0.97 0.56,-7.43 -1.84,-3.75 -2.3,2.89 -5.28,-1.21 -4.22,-3.39 -2.48,-2.03 -1.19,-5.37 -2.68,-7.99 1.33,-2.02 1.71,-4.55 3.11,-6.42 -0.55,-0.92 -2.28,-2.13 -2.08,-2.45 -3.66,1.58 0.19,-4.05 1.24,-5.25 2.3,-2.33 -3.14,-3.07 -0.93,-5.56 1.44,-1.85 -3.47,-1.82 -0.33,-2.92 3.33,-0.16 0.56,-1.18 -0.24,-2.53 0.5,-2.54 0.1,-5.85 -1.91,-7.36 -1.96,-0.52 -0.38,-5.88 -4.15,-4.77 -2.43,-0.12 2.22,-3.17 -0.9,-2.74 z", - "department-17" : "m 175.73,312.62 c -2.1,1.05 -4.89,0.98 -6.33,3.16 -2.59,0.12 1.24,4.72 -2.26,5.02 -2,0.79 -4.42,5.17 -2.11,6.01 2.93,0 2.49,3.17 4.17,4.84 0.72,1.37 3.67,5.65 0.03,4.87 -2.18,0.36 1.95,2.77 0.48,4.24 1.55,2.23 0.05,3.13 -1.55,3.46 -0.38,1.57 -2.23,1.63 -0.92,3.81 0.7,3.56 3.92,5.46 6.53,7.53 -3.66,-0.31 -5.1,-4.96 -7.98,-5.25 -3.89,-1.1 -3.52,4.91 -2.88,6.67 2.74,-1.46 4.76,2.94 7.48,3.54 3.34,1.31 3.69,5.42 7.19,6.15 4.09,3 7.55,7.17 8.5,12.27 0.26,3.76 5.67,2.29 7.12,1.56 -1.08,5.27 6.99,0.78 7.08,5.12 0.92,1.82 -0.24,5.87 1.93,6.53 3.38,-1.84 5.25,4.16 8.91,4.29 2.53,1.16 3.84,-3.72 5.99,-0.43 0.42,-1.35 1.41,-3.02 1.97,-3.79 -0.43,-1.67 1.72,-4.75 -1.44,-5.53 -1.82,-0.53 -4.59,0.36 -3.27,-2.54 -1.47,-1.11 -5.11,-3.27 -7.08,-1.29 -2.02,-1.16 -0.75,-3.34 0.78,-3.22 -1.02,-0.53 -4.64,-2.27 -1.19,-3.33 4.28,-0.66 -2.5,-4.27 0.56,-5.26 2.44,-2.46 -2.28,-2.77 -2.54,-4.29 2.17,-2.32 -2.75,-3.59 -3.55,-5.14 -2.87,0.92 -0.97,-2.62 0.33,-2.63 -2.65,-1.14 -0.44,-4.4 -1.57,-5.27 -2.89,0.77 -1.45,-2.34 0.53,-2.18 1.34,-1.34 4.68,-0.44 6.11,-2.14 2.35,-0.74 2.26,3.5 4.57,1.02 2.44,-0.29 1.26,-3.78 2.59,-5.17 -1.46,-1.93 -1.99,-4.68 1.15,-4.47 0.21,-2.43 -3.03,-4.09 -3.83,-6.1 -0.81,-1.69 -4.49,-0.9 -5.2,-3.54 -1.75,0.56 -3.25,0.45 -4.22,-0.82 -1.42,1.85 -1.72,-1.94 -2.91,-0.25 -3.3,-0.03 -3.97,-4.4 -7.72,-2.73 0.56,-2.08 -4.7,-2.08 -3.15,-4.59 -0.87,-1.66 -4.22,-2.08 -2.44,-4.29 -0.3,-2.54 -4.15,-5.59 -5.48,-2.93 -1.22,-0.57 -5.78,1.4 -3.85,-1.55 0.3,-0.71 0.63,-1.62 -0.55,-1.38 z m -24.48,7.33 c -2.5,0.03 -3.87,1.14 -1.7,3.09 3.95,0.17 7.19,2.31 10.9,3.68 3.89,-1.05 -3.64,-4.87 -5.82,-4.1 0.29,-2.41 -4.61,1.24 -3.83,-1.48 1.5,1.02 1.83,-1.02 0.46,-1.19 z m 4.27,13.72 c -0.7,1.54 2.03,3.7 0.87,5.86 3.02,2.81 6.53,5.8 7.08,10.16 2.32,-1.62 3.28,-6.49 0.08,-7.91 -0.51,-2.29 -0.47,-5.1 -3.54,-5.11 -1.46,-1 -2.65,-2.71 -4.49,-2.99 z", - "department-33" : "m 170.37,365.5 c -2.88,2.39 -3.66,6.38 -3.67,9.99 -0.06,6.47 -0.57,12.93 -1.99,19.26 -0.93,8.17 -1.59,16.38 -2.58,24.55 0.15,2.18 -1.38,7.44 -0.06,8.1 -0.08,-3.31 1.98,-7.54 4.36,-8.96 1.97,1.72 7.34,5.74 3.76,7.49 -2.73,1.04 -6.38,-2.36 -6.38,2.52 -1.52,2.69 -2.74,7 -1.06,9.24 2.84,-0.63 5.96,-2.27 7.61,-3.75 2.03,1.26 5.7,0.92 3.77,4.43 -2.89,4.65 3.5,-0.33 5.45,2.23 3.86,1.51 7.87,-3.74 11.26,-0.84 -1.42,4.09 4.44,3.2 5.19,6.56 1.94,1.37 4.07,0.77 4.89,3.31 2.18,0.86 -1.21,6.6 3.33,5.68 2.58,1.12 6.14,0.42 4.75,-3.03 1.75,-3.72 3.17,3 5.62,1.04 3.5,-1.1 3.84,-4.91 0.95,-7.06 1.78,-1.99 6.6,-1.58 3.43,-5.47 1.27,-2.35 -1.77,-5.16 1.09,-7.2 -1.95,-2.11 4.08,0.01 3.42,-3.48 2.15,-0.49 2.85,-2.17 2.61,-3.54 1.82,1.01 2.01,-3.15 -0.54,-1.86 -1.24,-1.31 -2.01,-2.64 0.2,-3.47 -0.33,-1.44 2,-1.21 2.56,-1.67 0.96,3.46 0.77,-3.24 2.88,-0.59 3.44,-0.12 -2.08,-5.38 2.19,-5.6 -0.3,-3.57 -4.29,-0.98 -5.16,1.24 -2.94,-0.94 -4.42,-0.02 -6.92,-0.52 -0.48,-1.95 -5.24,-0.86 -1.96,-2.84 3,-2.61 -1.26,-5.76 1.74,-8.21 0.18,-2.65 3.61,-7.86 -1.4,-8.03 -1.8,0.66 -3.02,1.85 -4.53,-0.13 -2.79,3.68 -7.23,0.65 -9.47,-1.85 -1.02,0.81 -2.89,-3.34 -3.74,-0.02 -1.83,-2.9 -1.15,-5.89 -1.94,-8.56 -2.49,-1.97 -7.58,0.6 -7.16,-4.13 -0.99,3.32 -7.86,-1.7 -5.65,3.47 1.12,5.25 -0.04,11.74 4.13,15.79 1.6,0.97 5.46,1.4 5.09,3.59 -1.14,-1.76 -5.95,-2.2 -2.42,0.16 0.89,1.86 0.32,4.86 0.46,6.96 -0.86,-3.57 -0.31,-7.65 -4.4,-9.5 -4,-3.65 -3.81,-9.3 -4.62,-14.2 -0.83,-4.14 -2.82,-8.05 -6.26,-10.61 -1.82,-3.68 -6.55,-3.9 -8.36,-7.63 -0.3,-0.84 1.03,-2.73 -0.47,-2.88 z", - "department-40" : "m 169.77,433.93 c -1.39,4.09 -9.03,1.92 -8.11,7.38 -1.02,7.04 -1.81,14.11 -3.21,21.09 -1.27,6.3 -2.02,12.7 -3.64,18.93 -1,6.23 -2.25,12.44 -3.8,18.55 2.58,-1.5 3.77,4.05 6.97,1.91 3.34,1.32 5.68,-3.95 8.44,-2.39 2.07,1.33 0.83,1.91 -0.48,2.62 2.25,0.71 3.66,-2.53 5.72,-0.83 1.43,1.01 3.09,-0.31 2.14,-1.78 2.65,0.58 4.62,-1.18 7.1,-0.71 0.89,-0.91 2.56,-0.97 3.4,-1.93 1.42,1.18 2.14,3.21 3.39,1.18 1.9,-0.75 2.12,-1.21 2.41,0.33 1.62,2.42 3.07,-1.23 4.2,0.55 1.35,-0.65 5.1,-4.97 5.14,-2 -2.25,3.45 3.32,-1.25 4.51,1.48 1.42,-0.66 5.29,-2.61 3.41,-4.06 -2.62,-1.1 2.2,-2.69 0.51,-4.53 -0.4,-2.09 3.75,-3.09 1.72,-4.6 0.25,-1.62 -1.17,-3.73 0.82,-4.32 -0.1,-1.59 -0.15,-2.99 -0.15,-4.15 -3.84,-1.04 1.14,-3.46 2.82,-3.81 1.4,0.08 1.6,0.86 2.46,-0.49 1.85,-0.5 2.29,-3.87 4,-0.74 -0.03,1.42 -1.08,2.56 1.12,3.35 3.85,1.54 0.42,-3.68 2.06,-5.19 -1.31,-3.01 1.52,-6.01 2.73,-8.67 -3.45,-0.68 -6.76,-2.36 -10.44,-2.46 -3.14,0.72 -0.38,-5.12 -3.37,-6.17 -1.68,-2.94 -3.31,0.33 -2.44,2.4 -1.45,2.03 -6.15,0.75 -7.76,-0.49 0.06,-2.43 0.64,-4.45 -1.66,-5.74 -0.75,-1.94 -4.67,-0.97 -4.92,-3.99 -2.01,-1.55 -5.69,-1.4 -4.21,-4.64 -1.24,-2.31 -3.79,0.2 -5.94,-0.34 -3.05,3.71 -7.01,-1.41 -10.49,1 -4.03,1.42 2.63,-4.52 -0.65,-5.54 -1.61,0.68 -2.43,-1.07 -3.83,-1.21 z", - "department-64" : "m 211.2,495.72 c -1.9,1.07 -4.71,-0.23 -5.99,2.39 -1.98,0.52 -4.11,-1.44 -6.18,0.45 -1.47,-0.65 2.04,-3.79 -1.1,-2.24 -1.84,1.1 -3.29,3.13 -5.1,2.48 -1.96,1.45 -5,-2.73 -6.29,0.37 -1.3,-1.42 -2.42,-3.2 -3.7,-1.06 -1.86,0.3 -2.9,1.44 -5.06,0.79 -0.86,1.97 -4.19,-0.71 -3.64,2.4 -2.25,0.68 -5.49,-1.09 -7.26,1.32 -3.27,-0.97 2.34,-1.26 -0.09,-2.53 -2.18,-3.25 -4.64,2.8 -7.39,1.71 -2.74,0.92 -5.67,0.14 -7,-2.21 -3.51,1.11 -4.76,4.93 -7.06,7.37 -1.86,2.09 -5.86,0.94 -7.14,3.17 0.39,1.82 2.63,2.08 2.45,4.31 2.16,-0.79 5.47,-0.83 4.92,2.37 1.44,2.55 2.98,-0.5 3.6,-1.51 2.37,0.53 4.98,1.17 7.12,1.91 1.21,3.15 -0.34,6.66 -1.84,9.39 -3.7,1.82 -0.21,5.81 2.82,5.62 2.52,-0.18 0.25,-6.64 4.3,-5.38 -2.77,2.45 0.66,4.77 3.15,4.41 2.76,1.62 4.75,2.53 7.73,3.53 2.51,0.74 4.11,3.68 7.28,2.92 2.81,1.52 7.35,-3.02 7.16,2.26 -1.02,2.96 3.25,2.28 4.34,4.46 1.78,1.41 3.01,6.8 5.13,3.41 1.29,-2.94 5.1,2.52 7.14,-0.85 1.53,-1.11 3.1,-1.71 2.2,-4.29 -2.14,-2.89 3.19,-3.06 1.08,-6.08 -0.73,-2.21 1.82,-2.45 1.78,-4.48 3.8,1.19 0.42,-4.25 3.06,-5 2.06,-1.26 1.63,-4.46 4.21,-4.01 0.61,-1.33 0.15,-2.87 1.47,-3.33 2.68,-2.17 -1.51,-4.94 1.51,-6.75 3.94,0.18 -1.17,-3.74 0.89,-5.91 -0.71,-3.82 -1.88,1.82 -3.23,0.54 -0.52,-1.85 0.16,-3.46 1.54,-4.09 -0.91,-1.78 -0.41,-4.39 -2.84,-4.92 0.66,-3.73 -2.6,-1.04 -3.99,-2.95 z", - "department-65" : "m 216.99,494.91 c -1.84,0.25 -2.8,4.03 -0.53,4.11 1.88,1.3 0.29,3.67 2.23,4.92 -1.93,0.09 -2.67,2 -1.81,3.38 0.3,1.54 2.42,-3.88 2.78,-0.62 0.04,1.77 -0.37,4.08 1.04,5.66 -0.74,1.52 -3.19,0.65 -3.23,3.06 1.46,1.22 1.22,2.8 0.07,4.31 -0.99,0.9 -1.52,1.78 -1.24,3.38 -1.18,1.4 -2.47,-0.59 -2.75,1.65 -0.31,2.34 -3.5,2.62 -2.83,5.08 -0.23,1.21 0.77,2.46 -1.27,2.75 -1.74,-1.03 -0.67,2.29 -2.47,2.46 -0.22,2.15 1.18,4.49 -1.44,5.52 0.13,2.35 0.39,5.58 3.33,6.26 1.51,1 2.85,2.84 4.69,1.37 -0.57,1.85 1.47,3.6 2.41,4.96 1.56,0.38 2.66,3.5 4.75,1.97 1.8,-0.64 3.96,-1.24 5.98,-1.71 2.21,-1.74 5.92,-0.18 6.53,2.47 2.16,1.45 2.84,-4.54 5.11,-1.48 1.05,2.42 6.1,0.26 2.72,-1.38 -0.47,-1.86 -0.16,-4.75 -0.08,-7.05 -0.01,-1.71 0.82,-4 2.68,-2.21 3.39,1.23 2.02,-4.26 4.56,-5.2 1.78,-1.39 -1.78,-2.01 -0.27,-3.71 -0.3,-0.99 -0.83,-2.98 -1.65,-1.25 -1.08,0.21 -3.2,2.39 -2.44,-0.12 -0.09,-1.57 2.08,-1.37 1.06,-3.26 -1.4,-1.24 -3.29,-2.47 -4.49,-3.12 -2.02,-2.1 3.51,-3.46 2.42,-5.76 0.93,-0.47 4.3,-0.56 1.96,-2.04 0.32,-1.95 5.47,-3.77 2.06,-5.05 -2.3,-1.28 -4.63,-0.69 -6.84,-1.39 -2.1,2.1 -2.26,-2.3 -4.28,-0.93 -1.76,1.3 -0.81,-1.74 -2.47,-1.53 -0.55,-2.46 -4.01,1.85 -5.67,-0.21 0.62,-1.85 -3.42,-2.4 -1.35,-4.21 1.51,-1.16 -1.9,-2.45 -1.19,-4.22 -1.14,-1.21 -3.48,-0.65 -4.39,-2.66 -2.13,-0.62 -0.57,-4.95 -3.7,-4.22 z", - "department-32" : "m 246.37,463.78 c -1.87,2.87 -5.69,0.08 -7.22,3.28 -1.88,1.49 -4.2,0.57 -5.81,2.33 -2.39,-0.54 -4.55,-3.39 -6.11,0.1 -0.16,1.89 -1.71,0.96 -1.7,-0.3 -2.5,0.36 -4.05,2.53 -2.63,4.96 0.01,3.29 -6.18,-0.5 -3.3,-1.85 -0.54,-2.21 -2.13,-1.97 -3.07,-0.29 -1.34,0.89 -1.71,2.04 -3.36,1.03 -1.68,0.34 -3.48,1.37 -4.38,2.76 1.22,0.28 3.13,1.71 1.37,2.42 1.01,1.6 0.51,3.2 -0.73,3.83 -0.07,2.44 2.42,4.6 -0.76,5.86 -1.18,1.63 0.66,4.33 -1.94,5.01 -0.42,1.69 2.27,1.13 1.62,3.13 2.18,-0.55 3.63,0.28 6.01,0.22 1.55,-0.54 3.47,-2.96 4.82,-0.45 0.15,2.77 2.68,4.35 4.51,5.25 2.48,-0.68 1.19,3.49 3.25,4.21 -0.48,0.88 -2.09,2.3 -0,3.14 1.28,0.27 0.25,2.29 2,2.07 2.01,0.08 3.81,-1.91 5.13,-0.1 0.83,0.3 0.34,2.73 2.13,1.32 1.65,-1.02 1.99,3.25 3.69,0.87 2.91,0.44 5.72,1.25 8.79,1.59 2.28,-1 2.83,-4 4.96,-4.85 -0.08,-1.97 1.2,-2.17 2.72,-1.09 2.04,-2.03 5.8,0.4 7.36,1.79 1.25,2.38 1.53,-1.44 1.56,-2.27 1.63,-0.08 0.78,-2.07 1.64,-3.14 -1.95,-1.43 1.97,-2.65 1.07,-4.39 -0.66,-1.2 0.97,-1.78 2.08,-0.85 0.33,-1.45 2.39,-1.29 3.2,-2.18 2.33,0.7 0.78,-3.33 -0.81,-2.33 -0.96,-0.86 -0.26,-2.97 -2.3,-2.06 -1.55,-0.33 0.33,-2.07 -1.76,-1.78 -1.88,-0.75 0.92,-3.18 -2.09,-3.14 -1.61,-1.44 -2.45,-4.37 -4.36,-5.15 -3.35,1.69 1.17,-3.08 -1.5,-3.24 0.76,-1.49 -1.03,-2.76 -0.22,-4.22 -1.16,-1.24 -2.92,-1.03 -4.29,-1.63 -2.35,1.17 -1.75,-1.94 -0.23,-2.55 1.5,-1.23 1.3,-2.73 1.39,-4.08 3.53,-0.83 -1.38,-2.38 -2.33,-0.22 -1.18,0.08 -0.41,-3.33 -2.53,-1.63 -1.28,0.69 -2.36,3.52 -3.35,0.81 -0.67,-0.82 -1.46,-1.92 -2.53,-2.18 z", - "department-47" : "m 230.07,418.5 c -0.81,0.77 -0.9,3.82 -1.83,1.38 -1.82,-0.02 -3.21,2.14 -3.88,3.3 1.04,0.9 2.08,1.66 3.3,1.8 -0.04,1.51 -1.7,2.55 -2.03,4.05 -1.55,0.64 -2.55,2.47 -3.24,3.29 -3.01,0.59 -4.44,4.14 -2.78,6.75 -1.33,1.76 2.46,5.68 -1.08,5.69 -2.16,-0.16 -3.67,2.4 -1.25,3.45 1.89,2.62 -1.53,5.28 -3.79,5.58 -0.01,1.94 -0.52,5.85 2.43,4.84 2.83,-0.58 4.82,1.94 7.53,1.7 1.96,-0.36 2.73,1.43 1.07,2.55 -0.51,2.08 -4.01,5.95 -0.67,6.93 1.39,-0.27 1.71,-1.54 2.32,0.34 1.42,0.2 1.56,-3.84 3.99,-2.43 2.21,2.53 4.49,0.26 7.07,0 2.57,-0.7 3.69,-3.71 6.77,-2.71 1.7,-0.39 3.39,-2.44 4.44,0.28 1.31,3.29 3.19,-0.23 4.88,-1.16 0.36,-1.62 1.13,-2.69 2.56,-3.54 -1.25,-2.97 5.51,1.65 4.18,-2.52 -0.96,-0.29 -2.25,-1.68 -0.22,-2.14 2.35,-0.03 2.05,-4.03 2.4,-5.78 -1.23,-1.07 -4.15,-1.71 -2.2,-3.71 -0.38,-1.68 1.32,-4.27 2.55,-1.77 1.53,0.85 4.19,-0.22 5.25,-0.41 0.48,-2.12 -0.42,-3.89 -1.57,-5.33 0.06,-1.97 -1.67,-5.18 -1.15,-6.13 2.23,0.07 5.01,-2.93 1.78,-3.93 -1.73,-2.48 -5.12,-2.94 -6.92,-0.28 -2.08,2.1 -3.89,-1.44 -2.14,-3.04 0.26,-1.39 -1.37,-4.01 -2.62,-1.92 -2.44,1.01 -5.83,0.37 -7,-0.95 -2.41,-0.18 -2.86,2.94 -5.17,1.62 -2.31,0.8 -5.39,2.91 -7.69,0.67 0.42,-2.17 -0.14,-6.16 -2.93,-6.02 -0.81,0.25 -1.86,0.44 -2.38,-0.43 z", - "department-31" : "m 290.02,474.31 c -1.06,1.38 -2.08,2.2 -3.14,1.27 -0.58,4.46 -6.27,-1.79 -5.29,3.06 -1.9,-0.93 -3.5,1.28 -0.64,0.98 2.48,2.1 -3.77,2.63 -4.93,4.19 -2.22,1.21 -0.1,-1.87 -2.62,-1.46 -1.27,-3.41 -2.92,1.42 -4.53,-1.01 -1.38,1.57 -7.9,0.39 -4.49,3.87 1.19,2.36 4.47,2.68 3.64,5.37 2.67,0.06 0.55,2.9 3.52,1.95 0.58,0.93 0.66,2.79 2.12,2.09 2.71,3.12 -2.63,3.32 -4.16,4.93 -1.1,-1.53 -1.56,1.15 -1.34,1.61 0.44,1.44 -2.97,2.2 -1.16,3.88 -0.09,2.59 -2.4,2.6 -1.68,5.18 -1.9,1.75 -3.41,-2.85 -6.25,-2.48 -1.97,-0.25 -2.83,1.49 -4.6,-0.2 -0.73,3 -3.35,2.98 -4.53,6.1 -1.7,0.77 -1.89,0.75 -1.75,2.05 -1.29,1.74 -3.85,2.87 -2.67,4.97 -1.64,0.77 -2.86,0.43 -2.8,2.37 -2.19,1.55 -3.92,4.34 -0.36,4.93 1.97,0.94 4.52,4.07 1.77,4.79 -1.3,4.88 3.7,-2.96 3.72,1.66 0.49,1.32 -0.65,2.24 1.07,3.28 -2.79,1.64 -2.18,9.05 -6.68,5.6 -1.73,2.41 -1.93,7.77 -0.38,10.18 1.27,3.59 5.97,0.17 8.88,1.83 2.51,-1.92 -1.95,-5.09 0.25,-7.4 -0.76,-3.42 2.9,-4.02 4.93,-2.32 1.62,-0.12 4.31,1.32 2.68,-1.53 -0.93,-1.79 -1.4,-4.59 1.53,-4.74 -1.15,-3.31 5.98,-1.18 5.47,-5.37 -2.22,-1.5 -0.83,-5.26 0.13,-6.33 2.45,2.03 0.85,-3.56 3.56,-1.87 1.66,-2.07 2.75,0.56 4.53,0.43 1.14,1.96 2.46,4.41 4.04,1.37 2.25,-2.5 -5.64,-2.56 -1.56,-4.98 1.91,-0.32 6.85,-0.7 5.84,-3.41 -3.62,0.11 -4.71,-4.72 -0.54,-4.92 1.7,1.78 3.23,3.99 3.46,6.31 3.43,1.14 2.88,-2.05 2.74,-4.44 1.24,-0.74 2.86,2.59 3.98,0.85 2.05,0.25 3.31,3.93 3.51,0.42 1.87,-1.02 3.37,-2.54 3.2,-4.86 1.65,-0.79 5.11,0.92 3.61,-2.58 0.23,-2.56 3.55,-6.11 4.18,-1.52 0.52,0.87 1.91,-3.3 3.78,-0.91 2.24,0.69 2.87,-1.22 1.62,-2.8 0.91,-0.95 2.23,-3.84 -0.03,-2.5 -1.07,2.43 -6.09,-0.82 -6.91,-3.1 -0.98,-3.43 -6.75,-3 -7.98,-6.29 2.91,-1.68 0.76,-3.48 -1.25,-4.16 3.26,-0.53 0.29,-2.11 -0.5,-3.7 0.64,-3.06 -3.23,-3.07 -3.17,-5.79 -1.79,-0.87 -1.06,-3.76 -1.85,-4.82 z", - "department-09" : "m 281,514.26 c -1.93,0.45 -2.81,3.42 -0.61,3.74 0.47,1.06 3.65,0.84 1.91,2.92 -1.78,0.48 -2.86,1.94 -5,1.65 -1.94,-0.47 -2.72,3.01 -0.2,2.59 2.24,0.58 1.95,2.32 0.27,3.21 -1.24,2.42 -2.69,-0.31 -3.19,-1.7 -1.18,-0.65 -2.35,-0.74 -3.49,-1.68 -1.21,1.5 -3.6,0.41 -3.5,3.08 -0.69,0.69 -2.14,-1.23 -2.07,0.85 0.78,1.23 -1.59,1.79 -0.08,3.25 -1.18,1.45 2.43,1.96 0.17,3.11 -0.33,2.96 -5.7,1.12 -4.88,4.08 -1,0.73 -3.51,0.76 -1.93,2.67 -0.14,2.58 1.36,4.98 3.85,6.04 1.3,1.43 2.44,-0.82 3.84,0.84 2.2,0.69 5.28,-0.08 6.42,2.49 -0.04,2.84 2.56,2.9 4.54,2 2.27,0.7 5.31,-0.62 6.28,1.97 2.47,1.03 1.46,6.42 4.53,5.84 0.33,-1.46 -0.02,-3.65 2.25,-2.77 2.58,-1.67 3.67,2.32 6.42,1.51 1.59,0.01 4.16,0.09 3.44,2.23 1.96,0.82 4.9,1.1 6.14,-0.77 0.17,-1.61 2.36,0.02 3.34,-1.21 1.09,-1.15 1.09,-3.64 3.34,-2.57 1.75,-1.21 4.32,-0.24 5.87,-0.95 0.4,-2.48 -3.41,-3.46 -4.42,-5.35 -2.08,0.81 -4.89,2.28 -6.69,-0.08 -1.29,-0.72 0.48,-2.24 -1.27,-3.27 -1.88,-0.45 -2.07,-2.21 -0.54,-3.2 2.84,0.11 5.65,-1.41 4.42,-4.62 -1.62,-0.54 -3.31,-2.15 -0.6,-2.68 1.86,-1.01 -0.44,-3.29 0.61,-4.77 -1.01,-0.87 -2.68,-1.46 -1.18,-2.69 -0.07,-1.43 -0.47,-4.45 -2.45,-3.41 -0.92,1.43 -0.96,-2.2 -2.67,-1.24 -2.3,-0.25 -5.38,-1.98 -6.1,-3.66 0.91,-1.6 -0.72,-3.91 -1.67,-5.05 -0.92,0.6 -1.38,4.39 -1.98,1.49 -1.2,-0.67 -2.47,-1.05 -3.16,-0.2 -0.47,-1.65 -2.24,-0.25 -2.45,-1.94 -1.91,1 1.34,4.52 -1.22,4.39 -1.46,2.03 -3.74,-0.79 -2.75,-2.52 -1.34,-0.95 -2.09,-3.13 -3.54,-3.63 z", - "department-11" : "m 322.74,505.07 c -2.05,0.87 -0.82,6.47 -3.43,3.37 -1.24,-1.83 -5.19,2.71 -5.61,-1.17 -0.96,-1.29 -3.24,1.91 -4.87,-0.09 -1.63,-0.8 -2.35,3.52 -2.64,0.63 -0.96,-2.44 -1.93,-1.82 -2.84,-0.31 -0.91,1.07 -1.52,2.84 -0.93,4.7 -1.36,0.65 -4.52,-0.56 -3.73,2 -2.59,1.87 -0.87,4.71 -0.49,7.11 -1.27,1.72 2.24,1.99 3.14,3.2 1.19,0.53 2.27,1.21 2.96,0.05 1.12,0.9 1.35,2.64 3.05,1.69 2.12,0.9 2.09,4.11 1.18,5.21 3.13,0.75 0.58,4.42 2.61,6.09 -0.39,0.99 -3.64,-0.55 -2.72,1.47 3.15,0.22 2.69,5.73 -0.43,5.57 -2.23,-0.56 -4.71,2.43 -1.69,3.29 1.21,1.07 1.25,2.2 0.94,3.14 2.17,2.52 4.98,0.67 7.49,0.33 1.51,2.48 4.82,3.48 4.44,6.58 1.77,-0.41 3.17,-3.16 4.49,-3.39 3.31,0.6 4.11,-3.13 3.04,-5.57 -1.83,-2.22 -0.3,-4.53 2.45,-3.77 2.55,1.09 4.79,-0.72 7.38,0.01 2.84,0.15 6.37,1.82 8.78,-0.17 0.65,-3.39 5.24,-6.04 7.54,-2.78 1.85,0.63 5.78,4.21 6.08,0.38 -0.45,-2.41 3.52,0.65 2.08,-2.31 -2.01,-0.09 -2.51,-4.47 -0.81,-3.38 -1.64,2.12 0.92,2.66 1.07,0.34 -0.46,-2.15 2.38,-4.6 1.05,-6.15 -2.36,0.27 -1.35,-5.67 0.64,-3.13 -2.54,0.73 1.01,4.03 1.12,0.84 1.32,-2.4 3.72,-4.96 4.13,-7.43 -1.48,-1.18 -2.13,-3.67 -4.25,-2.51 -1.21,-1.56 -3.82,-0.43 -5.13,-2.43 -2.87,1.08 -0.98,-4.2 -4.12,-2.08 -1.35,-0.41 -2.91,-0.78 -3.72,-1.82 -0.39,1.7 -3.42,0.2 -2.88,2.31 -1.03,1.88 -2.16,4.69 -4.29,2.05 -1.21,-0.21 -0.6,-4.63 -2.32,-1.66 -2.18,1.62 -3.12,-0.12 -3.87,-2.12 -3.09,-0.03 -1.41,-4.42 0.31,-5.1 -2.19,-1.27 -5.18,-2.28 -7.77,-1.42 -1.98,2 -4.51,-1.63 -6.72,-1.15 -0.21,-0.07 -0.4,-0.62 -0.72,-0.42 z", - "department-34" : "m 390.74,470.95 c -2.99,-0.26 -2.82,5.22 -4.91,4.05 -0.85,-0.82 -3.55,2.9 -1.7,3.78 -2.23,1.02 -3.63,-1.19 -4.2,-2.93 -1.16,0.9 -4.89,3.4 -3.25,0.24 -0.72,-2.79 -3.95,-1 -5.3,0 -2.69,-1.07 -4.43,1.99 -3.3,4.01 -2.19,2.21 -5.5,0.8 -7.8,-0.28 -1.78,1.11 -0.38,3.61 -0.42,5.05 -1.55,1.49 1.67,5.37 -2.24,4.09 -1.98,-1.46 -4.85,0.46 -4.95,2.6 -2.71,0.38 -5.15,2.58 -7.61,2.47 -1.2,-2.9 -5.65,-2.66 -5.41,0.83 -0.2,2.13 -0.02,4.29 2.09,5.91 -1.23,1.35 0.72,3.85 -1.77,4.6 -0.84,1.05 -3.22,1.42 -1.8,2.86 -2.1,0.55 -3.27,4.78 -0.38,4.9 0.41,3.09 3.29,3.1 4.71,0.7 1.12,1.12 0.35,3.34 2.55,3.76 2.97,1.15 1.66,-5.18 5.05,-4.27 1.09,-0.26 0.38,-2.58 1.62,-0.55 1.21,1.33 3.32,1.66 5.28,1.1 -0.81,3.2 2.64,2.34 4.33,4 1.73,-0.69 2.59,1.52 4.38,0.6 1.39,1.92 3.62,4.56 5.52,1.34 2.58,-2.15 5.39,-4.64 8.99,-3.22 1.68,-2.14 3.28,-4.7 5.33,-6.66 2.9,-0.94 5.12,-2.93 7.63,-4.62 1.32,-0.52 2.38,-2.93 0.36,-1.17 -0.86,0.97 -3.9,2.82 -4.09,1.95 2.86,-0.54 3.94,-3.18 5.35,-4.98 2.22,-0.89 3.15,-3.57 5.97,-3.69 2.76,-1.69 5.46,-2.2 8.14,-1.32 3.13,-2.28 2.15,-5.6 0.6,-8.52 -0.42,-1.85 -2.64,-1.51 -3.41,-3.24 -1.72,-0.64 -2.58,-4.02 -5.12,-2.47 -0.36,-1.17 1.06,-3.05 -1.22,-3.23 -1.16,-1.21 -1.48,-2.47 -3.51,-1.47 -2.48,1.54 -3.44,-1.7 -1.82,-3.25 0.15,-1.49 -1.98,-1.29 -2.11,-2.79 -0.5,-0.22 -1.04,-0.13 -1.56,-0.19 z", - "department-81" : "m 317.26,455.8 c -1.38,0.45 -1.96,1.61 -3.59,0.76 -0.3,1.95 -3.52,3.22 -5.56,2.27 -1.35,-1.6 -1.97,-0.02 -0.95,1.04 -0.95,0.36 -4.67,-1.27 -3.47,1.46 -0.16,1.66 -2.33,-1.92 -2.18,0.76 -1.1,0.98 -2.79,-1.57 -4.48,-0.74 -2.96,-0.67 -1.32,3.31 0.16,3.83 0.79,1.92 -1.89,3.01 -2.42,4.25 -1.32,0.93 -1.16,3.17 -3.54,1.88 -3.23,0.63 2.44,1.72 -0.33,3.16 -1.29,2.54 1.59,4.57 1.92,6.82 3.43,0.3 1.18,4.78 4.33,5.68 1.56,1.28 -3.01,2.06 -0.13,2.25 2.4,0.02 1.46,2.84 -0.02,3.51 0.41,1.89 3.59,2.46 5.14,3.73 3.27,0.27 2.72,5.06 6.14,5.64 1.57,0.82 3.54,1.72 3.47,-0.75 2.28,-0.44 1.4,2 0.21,3 0.06,1.82 2.22,2.93 2.93,4.31 2.14,0.3 3.89,-2.52 5.16,0.35 2.18,0.85 0.37,-3.47 2.64,-4.11 1.88,0.14 4.42,2.05 6.83,2.16 2.71,-2.86 6.35,1.58 9.11,-0.98 1.2,-0.64 2.07,-1.84 2.78,-2.36 -0.59,-1.87 0.29,-4.05 -1.8,-5.38 -0.4,-2.17 -0.06,-5.25 1.22,-6.85 1.68,0.37 3.78,1.08 4.87,2.68 2.13,-1.79 6.04,-1.49 7.35,-3.74 0.82,-2 0.39,-5.04 -2.37,-4.51 -1.51,-1.26 -3.19,-1.55 -4.19,0.39 -2.37,0.97 -5.11,-0.89 -6.55,-2.85 -1.52,-2.15 -3.76,-4.35 -2.85,-6.85 -1.52,-0.96 -0.28,-3.74 -2.85,-4.01 -0.47,-0.84 1.76,-2.39 -0.4,-3.07 -0.29,-2.52 -2.16,-4.07 -4.11,-4.88 -0.57,-2.53 -3.81,-3.32 -5.31,-4.22 -0.15,-2.48 -4.32,0.72 -4.86,-1.12 1.44,0.14 3.17,-1.78 0.74,-1.46 -0.91,0.39 -2.23,-1.71 -3,-2.06 z", - "department-82" : "m 270.52,443.01 c -2.14,1.16 -4.19,2.19 -6.63,2.16 -1.8,1.76 -1.62,-2.78 -3.54,-0.83 0.31,1.77 -1.92,4.88 1.19,4.85 2.39,1.55 0.09,4.21 -0.3,6.31 -0.44,1.21 -4,0.94 -1.6,2.01 1.97,0.84 -0.06,4.23 -1.88,2.4 -1.71,-1.22 -1.76,0.34 -2.14,1.6 -2.88,-0.32 -2.21,4.49 -0.81,4.92 0.76,-1.3 4.97,-1.27 3.43,0.36 -1.84,1.04 -0.66,3.8 -2.94,4.81 -1.25,0.84 -0.68,2.87 0.84,1.84 1.82,0.52 5.75,1.1 3.97,3.56 1.04,0.67 0.69,2.25 0.98,2.38 1.77,0.78 -1.98,4.07 1.01,3.39 2.26,-0.43 4.92,-0.42 6.74,-1.49 1.27,0.58 2.39,0.31 3.28,-0.35 1.56,0.75 2.53,2.41 3.56,2.88 1.74,-0.62 2.22,-2.04 4.12,-2 1.89,-0.5 1.91,-2.44 -0.22,-2.07 -1.95,-1.13 1.52,-1.46 1.74,-1.49 -0.38,-2.02 1.51,-2.5 2.7,-1.14 2.06,1 2.76,-3.06 4.11,-1.34 0.99,-1.05 2.54,-1.76 3.38,-2.23 -0.31,-0.89 -2.82,-2.03 -0.52,-2.27 3.19,1.02 3.39,-3.02 5.79,-4.18 1.52,-1.98 -2.9,-3.42 -1.35,-5.63 1.94,-1.07 4.17,0.24 5.66,0.61 0.71,-1.21 1.03,-1.65 2.08,-0.63 0.24,-1.33 0.21,-2.59 2.09,-1.85 1.1,0.24 2.24,0.41 1.15,-0.79 0.51,-1.8 4.19,2 3.66,-0.96 -0.31,-2.1 -2.39,0.61 -2.47,-1.31 -3.3,-1.19 0.65,-3.45 1.77,-4.89 0.21,-2.45 -4.44,-0.16 -4.38,-2.98 0.49,-1.88 -1.6,-1.91 -2.4,-1.54 -1.21,-0.58 -1.91,1.84 -3.15,0.41 -2.28,-0.21 -4.04,4.15 -5.85,2.74 -0.79,-2.47 -3.62,0.05 -1.56,1.51 0.31,2.35 -3.95,2.36 -3.07,-0.25 -2.24,-2.68 -3.51,1.69 -5.86,2.39 -1.45,2.53 -2.73,-0.71 -4.63,-0.48 -0.83,-1.02 1.91,-4.61 -0.86,-3.31 -1.97,2.14 -4.17,-0.81 -5.73,-2.04 -1.54,-0.03 -2.07,-2.27 -2.71,-3.05 0.48,-0.77 3.85,-1.24 1.34,-2.04 z", - "department-12" : "m 344.82,407.22 c -2.14,2.24 -4.92,3.53 -5.91,6.44 -0.2,3.05 -2.88,4.6 -2.81,7.85 -2.78,1.77 -2.83,6.44 -7.03,4.76 -2.85,0.81 -3.66,-2.92 -6.7,-0.63 -2.79,-0.18 -0.5,4.84 -3.68,4.44 -1,2.09 -4.35,0.18 -4.99,0.68 -2.27,1.36 -4.93,3.35 -6.47,5.56 -0.5,0.74 -1.33,-2.39 -1.72,0.49 -3.55,0.2 0.23,4.71 0.28,6.73 2.91,2.12 -2.27,3.27 -0.47,5.85 1.39,1.46 5.91,0.06 3.8,3.53 -3.1,-0.35 -2.94,5.1 0.37,3.8 0.84,2.24 2.93,2.1 3.97,0.28 0.64,-0.72 3.02,-0.92 4.38,-1.29 0.38,2.53 5.59,1.47 2.9,3.68 1.7,0.61 3.86,-0.93 4.36,1.52 3.19,-0.21 4.33,4.36 7.18,4.97 1.07,2.25 3.3,4.6 2.21,6.63 2.23,0.9 1.85,3.49 2.9,4.9 -1.38,2.72 2.8,5.25 4.08,7.58 2.19,1.85 5.01,1.88 6.77,-0.28 2.08,1.32 5.71,0.5 5.44,3.99 1.27,0.35 3.33,-1.02 4.93,0.31 1.97,-0.43 -0.03,-3.71 1.21,-5.08 -2.26,-3.18 1.08,-5.37 3.72,-2.96 2.82,0.94 5.31,-0.91 4.29,-3.64 1.04,-3.15 6.02,0.38 5.11,-4.28 0.93,-2.39 7.18,-5.33 2.04,-7.25 -1.51,-0.47 -2.97,-0.34 -3.42,-2.06 -1.73,1.9 -3.93,-2.51 -0.51,-1.95 0.48,-1.6 1.14,-3.68 2.65,-4.73 -0.68,-4.43 -9.42,2.3 -6.63,-3.08 -1.18,-1.25 -3.15,-1.32 -3.65,-2.81 -2.6,0.85 1.8,-4.01 -0.75,-5.21 -0.72,-3.41 2.21,-7.15 -2.14,-9.54 -0.76,-2.6 0.83,-5.86 -2.52,-7.49 -2.49,-2.83 -5.19,-5.99 -4.63,-9.9 -1,-0.3 1.62,-2.72 -0.79,-2.1 -2.92,-0.77 -0.83,-7.54 -5.15,-5.36 -2.76,2.56 0.68,-4.65 -2.57,-4.34 z", - "department-46" : "m 289.52,399.9 c -1.93,0.63 -3.22,2.08 -5.19,2.51 -0.55,2.48 1.91,5.04 0.2,6.77 1.53,1.17 0.68,2.13 -0.64,2.71 -0.49,1.39 -2.82,1.08 -2.03,3.22 -2.04,0.31 -3.93,1.87 -1.84,3.73 -0.63,1.48 -1.5,2.57 -2.96,3.19 -1.15,2.55 -6.2,0.92 -4.86,4.75 -0.81,1.54 -2.94,2.2 -2.41,4.25 -2.21,-0.14 -3.42,2.82 -5.02,1.78 1.06,2.16 1.42,4.31 1.76,6.68 1.42,0.87 1.66,2.27 1.65,3.98 1.08,0.06 4.12,-1.76 2.93,0.81 -1.71,0.25 -2.37,1.31 -0.78,2.24 0.3,2.25 3.42,1.16 3.62,3.37 1.9,1.69 3.3,-0.16 5.08,-0.35 0.72,1.57 -2.26,4.22 0.76,4.02 1.46,0.62 1.81,2.15 3.19,0.31 1.85,-0.6 3.07,-3.05 4.33,-3.46 2.43,-0.2 1.29,4.21 3.91,2.83 1.72,-1.05 -1.79,-4.67 1.45,-4.27 1,-0.03 1.35,3.17 2.11,1.18 -1.32,-1.83 1.53,0.24 1.9,-1.51 1.38,-1.16 3.1,-1.29 4.45,-0.92 0.2,-1.96 1.81,0.11 2.71,-1.11 1.67,0.1 4.18,-1.49 1.89,-2.9 -0.47,-2.26 -2.34,-4.82 -1.67,-6.85 1.76,-0.03 1.59,-1.88 3.42,-1.54 2.32,-1.45 3.8,-3.77 6.26,-4.75 1.66,-0.78 4.05,1.82 5.11,-0.84 2.37,0.13 1.47,-2.41 -0.05,-3.14 -0.16,-1.64 0.62,-3.82 -1.82,-3.9 0.88,-2.1 0.95,-4.43 1.69,-6.42 -0.75,-2.19 -3.06,-3.63 -3.78,-5.98 -0.22,-1.15 1.69,-2.17 -0.2,-3.09 0.38,-3.82 -4.01,-3.64 -6.05,-1.43 -0.4,-1.8 -2.37,-1.92 -3.03,-0.03 -1.66,0.66 -3.24,2.7 -4.53,1.71 -1.67,0.61 -1.38,-2.93 -3.39,-2.7 -0.94,-2.08 -2.85,-4.19 -5.2,-4.37 -1.54,-0.53 -2.13,1.38 -2.99,-0.49 z", - "department-24" : "m 247.71,356.64 c -1.33,1.72 -2.15,5.44 -4.37,3.98 -1.29,2.19 0.65,6.02 -2.78,7.22 -1.07,1.73 -1.22,3.17 -3.43,2.89 -1.35,1.3 -2.7,2.47 -3.69,2.4 1.31,1.44 -2.43,1.19 -1.92,3.33 -1.11,2.86 2.21,7.18 -2.16,7.82 -1.72,1.11 -2.1,4.21 -4.37,4.44 -1.83,-1.85 -4.84,-0.09 -5.58,2.19 -1.71,0.92 1.62,1.85 -0.97,2.36 -2.09,3.33 4.38,0.08 4.2,3.85 0.13,2.45 -1.7,4.67 -1.9,7.15 -2.34,1.81 1.75,4.57 -1.01,6.63 -1.98,1.62 -0.57,1.93 1.18,2.08 1.5,2.41 4.72,0.24 7.34,1.24 1.58,-2.14 3.57,-4.36 5.67,-1.25 -1.59,1.46 -2.98,1.82 -1.65,4.38 2.67,1.95 3.57,5.11 3.66,7.87 2.89,2.27 5.83,-2.31 8.31,-0.64 1.5,-0.14 1.73,-2.6 3.78,-2.17 1.74,-0.66 1.71,2.87 4.06,1.59 2.32,0.27 4.87,-3.2 5.62,0.33 1.53,0.48 -2.2,5.61 1.71,4.55 1.86,-2.63 5.57,-3.37 7.55,-0.26 1.61,0.15 2.83,4.14 2.8,0.73 3.09,-1.47 0.93,-6.06 5.03,-5.87 2.1,-1.49 4.63,-2.68 4.89,-5.07 -3.18,-2.94 3.24,-2.15 2.07,-5.03 1.39,-0.77 2.75,-1.97 3.62,-3.12 -2.55,-1.45 1.11,-2.89 -0.92,-4.95 -0.82,-1.88 -0.06,-3.23 0.88,-4.14 -1.12,-2.13 -3.92,-5.19 -1.35,-6.5 -1.47,-1.44 -7.7,-0.59 -6.45,-3.12 3.25,-2.31 -3.9,-1.43 -1.21,-3.75 2.08,-0.54 1.75,-2.32 -0.17,-2.44 -0.66,-1.42 -0.44,-4.25 1.4,-4.42 0.7,-1.32 4.27,-4.12 0.61,-3.76 -2.11,-1.25 -0.47,-1.95 0.2,-2.77 -1.16,-1.12 -2.39,-0.61 -3.26,-2.06 -1.89,0.78 -2.29,-1.48 -4.2,-1.06 -0.44,-1.95 3.54,-4.4 -0.69,-4.44 -2.48,1.66 -3.1,-3.01 -4.18,-4.31 -2.45,-0.69 -5.34,1.33 -6.92,-0.8 -0.28,1.94 -2.24,3.99 -3.3,1.71 -4.01,-0.32 1.3,-5.83 -3.25,-6.54 -2.23,1.7 -3.48,-1.31 -4.85,-0.28 z", - "department-16" : "m 252.54,327.65 c -2.29,0.72 -1.44,3.44 -4.4,2.98 -1.27,1.85 -4.05,0.47 -4.98,-1.39 -0.68,-3.54 -5.06,1.6 -1.79,2.2 -0.58,3.13 -3.4,1.11 -5.1,0.91 -3.14,1.37 -5.19,-1.3 -7.86,-1.81 -1.52,1.5 -2.93,-1.91 -4.66,0.15 -1.97,-0.37 -2.45,3.38 -5.06,2.24 -1.93,0.04 0.82,2.24 -1.2,2.74 0.87,2.68 -3.95,2.15 -2.09,4.68 -0.28,1.91 -3.6,0.31 -2.2,2.53 -0.11,1.44 2.16,2.96 -0.03,4.42 -0.09,1.53 -0.09,4.77 -2.18,3.4 -1.96,2.42 -3.18,-3.47 -5.22,-0.43 -2.04,1.16 -4.38,0.45 -6.15,1.89 -2.73,1.16 0.38,1.62 1.39,1.98 -2.76,2.08 2.9,5.14 -0.46,5.78 -1.46,1.75 0.17,2.05 1.51,1.62 1.01,2.19 5.21,3.29 2.97,5.77 2.34,0.08 4.85,3.05 1.84,4.29 -0.18,1.67 3.8,4.33 0.08,4.95 -3.11,0.84 0.04,2.57 1.34,2.89 -0.62,0.79 -3.1,1.95 -1.06,3.18 2.2,-2.04 4.86,0.36 7.25,0.92 -0.44,1.96 0.03,3.48 2.36,2.77 1.73,0.17 2.65,2.07 3.44,2.83 1.42,-1.43 3.54,-1.84 5.23,-0.38 1.69,-1.46 2.03,-3.29 3.72,-4.47 1.1,-1.12 3.55,-1.27 2.27,-3.69 -1.79,-2.79 1.03,-5.85 1.8,-7.57 0.23,-1.21 1.54,0.42 2.16,-1.12 1.02,-1.12 2.42,-1.8 3.66,-1.6 0.38,-3.16 4.03,-3.24 3.74,-6.43 -0.64,-1.42 -0.09,-4.56 1.85,-3.02 1.5,-1.35 2.27,-4.04 4,-5.85 1.03,-2.13 3.92,-2.7 3.46,-5.45 1.36,-0.67 3.4,1.91 3.05,-0.98 1.5,-1.75 2.07,-3.92 1.46,-6.01 -0.57,-2.93 3.18,0.64 4.34,-1.8 2.69,-1.02 0.69,-6.52 -1.66,-5.43 -1.88,-0.53 -3.24,-3.11 -1.94,-5.21 -0.3,-3.28 -2.38,-2.24 -4.88,-2.46 z", - "department-86" : "m 220.19,259.01 c -2.67,1.11 -1.14,6.66 -4.7,5.46 -1.12,2.67 -0.28,6.33 2.34,7.3 1.21,2.8 -0.12,6.86 2.81,8.58 -0.34,0.88 -4.74,0.94 -2.01,2.12 1.66,0.91 -1.21,4.66 1.86,5.01 0.17,2.88 -3.53,4.96 -3.39,7.51 2.34,-1.74 2.86,1.09 4.01,2.56 -2.36,1.41 -1.42,4.19 -3.11,6.09 1.11,2.79 0.46,6.03 2.68,8.32 -0.98,2.26 1.88,5.6 3.64,2.56 3.26,-2.86 4.22,4.09 1.42,5.44 -1.17,2.3 -1.1,6.6 2.78,6.31 1.76,0.42 -1.54,4.9 1.9,4.82 2.58,2.29 6.42,0.33 9.24,2 3.12,-1.13 -1.64,-3.61 1.54,-4.88 2.93,-0.45 3.66,4.64 7.15,2.55 2.65,-1.24 4.01,-4.64 7.5,-3.07 5.18,0.43 -2.68,-6.17 1.99,-6.32 0.93,-3.5 4.73,-3.96 7.28,-4.09 1.27,-2.3 2.21,-5.88 5.59,-4.54 3.05,-1.23 4.82,-4.66 1.43,-6.65 -0.96,-2.09 -0.63,-5.43 -4.09,-4.96 -2.4,-0.38 -3.1,-2.52 -5.49,-3.06 -4.32,-2.56 0.87,-7.41 -2.39,-10.17 -3.73,-2.36 -3.49,-7.19 -7.25,-9.59 -1.82,-2.65 -1.18,-7.21 -5.41,-7.83 -3.82,-1.6 1.37,4.35 -2.65,2.83 -3.22,-0.17 -6.05,2.2 -9.36,1.21 -5,0.41 0.09,-6.41 -3.44,-7.54 -1.02,-1.75 -5.86,1.14 -3.94,-2.42 -1.49,-2.05 -5.43,-1.78 -6.57,-4.86 -0.36,-0.36 -0.83,-0.61 -1.33,-0.67 z", - "department-37" : "m 248.48,223.77 c -1.42,3.62 -6.45,2.73 -8.2,5.37 -1.46,1.36 -3.9,-2.72 -3.72,0.4 1.37,1.11 1.66,4.33 -0.82,2.81 -1.82,-1.23 -6.06,-3.74 -5.96,0.05 -1.81,2.38 0.79,4.4 -1.19,6.79 -1.59,2.5 -0.38,5.84 -2.27,7.78 -1.62,2.49 -3.61,4.89 -3.44,8.06 -0.62,2.26 -1.45,6.53 1.54,7.19 1.25,-0.87 1.94,2.54 3.31,0.71 0.97,1.11 -0.63,5.21 2.13,3.2 1.8,-1.1 1.89,1.61 3.57,1.4 0.89,2.11 -1.82,7.48 2.05,6.94 1.94,-0.66 4.56,0.68 6.7,-0.98 1.61,-0.96 6.42,0.73 3.58,-2.33 -0.63,-2.85 4.7,0.45 5.56,1.73 0.59,2.71 0.86,5.99 3.94,7.28 1.95,1.88 1.63,7.78 6,6.31 1.43,1.23 2.54,1.03 3.52,-0.09 1.84,-0.7 -1.13,-3.48 0.89,-4.6 0.94,-2.88 0.5,-6.24 2.1,-8.75 -0.51,-3.01 1.88,-5.04 4.77,-5.05 2.3,-0.22 4.18,2.32 5.36,-0.8 1.09,-2.04 2.29,-3.59 3.83,-4.89 -0.17,-3.29 -2.68,-5.86 -4.09,-8.7 -1.3,-3.91 -5.06,-1e-4 -7.13,-2.72 -1.96,-2.54 1.63,-6.07 -1.07,-8.64 1.91,-0.4 1.97,-2.18 -0.13,-2.78 -0.17,-1.99 -3.11,-4.5 -0.71,-6.14 -0.62,-1.2 -2.55,-4.44 -3.27,-1.51 -0.57,-2.17 -2.63,-4.19 -4.63,-1.88 -3.07,2.82 -2.07,-3.8 -2.27,-4.29 -2.95,-0.2 -5.98,-1.05 -8.71,-0.82 -1.21,0.63 -0.51,-1.11 -1.23,-1.05 z", - "department-72" : "m 231.9,172.51 c -2.61,0.34 -4.43,1.91 -6.19,3.04 -1.38,0.48 -2.05,1.94 -3.42,2.6 -0.33,3.05 -3.2,-1.34 -4.33,0.83 -1.43,1.08 -5.63,0.06 -4.24,2.95 -3.08,-0.79 0.86,3.38 -1.37,4.58 -0.86,1.81 1.85,4.28 -0.94,5.2 -2.01,1.1 -4.73,3.07 -1.86,4.9 -0.99,1.29 0.02,2.59 -0.74,3.79 -2.44,-0.68 -6.78,1.67 -3.4,3.85 0.73,2.09 1.76,4.48 -1.53,4.5 -2.58,-0.44 -3.89,2.42 -1.36,3.52 0.5,2.29 -5.19,2.01 -2.45,4.82 3.47,-0.45 1.48,4.86 3.4,5.98 2.31,-1.32 4.91,2 6.78,-0.52 3.29,0.6 -2.46,2.42 0.25,4.06 0.74,1.66 3.87,2.49 4.49,0.08 2.3,1.12 4.71,0.48 6.02,2.83 1.69,1.36 4.05,0.33 5.35,2.19 1.62,-0.93 1.69,-2.65 3.94,-1.78 2.54,-0.05 4.67,2.82 7.14,2.4 0.9,-1.5 -2.93,-3.52 -0.02,-4.31 1.04,1.34 2.82,2.12 3.33,-0.2 2.31,-0.39 4.79,-1.35 6.51,-2.6 -2.85,-2.23 1.58,-5.3 3.79,-5.52 0.46,-1.4 2.4,-3.52 3.78,-4.83 -1.44,-1.85 -0.29,-6.03 1.78,-3.82 -1.09,-2.59 3.21,-2.96 0.58,-5.37 0.08,-1.7 1.43,-3.61 -1.11,-3.97 -1.64,-2.45 2.4,-1.51 1.74,-3.29 -2.05,-0.4 1.4,-1.62 0.89,-2.96 2.29,0.52 3.2,-1.49 0.55,-1.94 -2.01,-0.09 -3.25,-2.56 -5.32,-1.22 -2.38,-0.82 -2.49,-6.22 -5.36,-4.81 0.79,2.39 -2.74,0.17 -4.1,0.37 -1.11,-1.06 -2.58,-1.99 -2.45,-3.6 -1.86,0.23 -5.36,-0.71 -4.94,-3.08 -0.44,-3.4 0.09,-8.02 -4.58,-8.58 l -0.59,-0.08 2e-5,0 z", - "department-61" : "m 236.9,140.22 c -1.37,2.93 -4.44,0.95 -5.77,0.51 -0.7,2.09 -2.92,0.83 -4.24,2.34 -1.35,-2.77 -4.38,-0.25 -5.26,1.87 -3.09,0.73 -4.56,4.12 -8.22,4.12 0.6,2.97 -3.23,-1.05 -4.99,-0.78 -2.07,-0.19 -4.42,-1.53 -4.55,1.51 -1.86,-0.97 -4.38,-5.01 -6.99,-1.88 -2.67,0.7 -5.63,2.58 -8.38,0.81 -1.94,-0.21 0.58,2.41 -2,2.73 -2.21,0.79 -4.81,2.48 -5.8,4.18 1.64,0.47 4.03,2.64 4.89,3.81 -2.6,1.08 -0.04,3.17 -0.37,4.16 -0.1,3.46 -3.63,4.61 -4.76,7.47 1.29,1.59 1.78,3.06 3.56,2.81 -0.2,2.49 3.05,0.83 2.04,-0.77 2.19,0.16 3.37,-1.72 3.97,1.42 2.29,-1.26 4.74,-2.16 6.49,-3.76 2.15,-0.24 4.6,-0.72 6.51,1.02 1.07,-1.63 2.35,-2.41 3.95,-1.42 1.83,-1.07 -0.27,-4.47 3.02,-3.12 1.81,1.18 3.45,2.14 1.99,3.87 0.35,2.25 1.92,4.62 4.47,2.94 1.72,0.65 -0.84,6.99 2.46,4.03 1.16,0.36 3.03,2.09 3.43,-0.38 1.63,-0.81 2.66,-2.19 4.04,-2.85 0.28,-1.38 5.31,-3.16 7.52,-1.96 3.9,1.26 2.59,5.53 3.26,8.6 -0.11,2.92 4.56,1.76 5.41,3.53 -0.07,1.99 3.35,3.78 5.67,2.91 3.19,-3.99 3.88,7.21 7.66,3.4 3.17,-1.53 -1.64,-4 -0.17,-6.33 -3.57,-0.8 0.8,-4.69 3.13,-4.08 2.2,-1.01 6.03,-4.76 3.83,-6.66 -0.95,-2.15 2.33,-4.5 -0.88,-5.72 0.72,-2.4 -4.26,-1.56 -3.98,-4.43 -1.88,-0.39 0.25,-5.19 -3.06,-4.1 -0.43,-1.15 -0.37,-2.32 -1.89,-2.36 3.89,-2.53 -0.45,-5.72 -3.19,-6.87 -1.23,-0.78 -2.92,-1.32 -1.88,-2.86 -1.36,-1.19 -1.22,-3.67 -3.26,-1.5 -2.58,-0.67 -7.27,0.22 -7.13,-3.52 0.64,-0.73 0.75,-2.65 -0.53,-2.7 z", - "department-27" : "m 242.33,106.21 c -2.25,1.4 -4.46,3.12 -7.27,3.2 -3.13,0.01 -1.44,3.96 -0.97,5.79 -0.25,1.42 -0.2,3.07 0.05,4.32 1.56,-2.67 4.74,1.16 1.61,1.68 -3.49,1.51 3.09,2.25 1.65,4.56 -0.6,1.84 0.47,2.5 1.82,3.11 -1.56,1.19 -0.91,2.9 -0.68,4.31 -3.08,-0.3 -1.43,3.4 0.78,3.14 1.11,2.25 -1.15,5.22 -2.03,7.57 1.97,1.86 5.79,2.95 8.17,1.67 1.68,-0.94 2.06,2.46 2.78,2.55 -1.38,3.04 5.18,3.21 5.92,5.84 1.68,1.55 -0.55,2.63 -0.78,3.74 1.84,0.46 1,3.47 3.6,1.89 2.3,-0.06 2.09,-4.03 4.58,-2.4 2.21,-1.11 4.77,-0.84 6.52,-3.04 1.78,1 3.18,0.1 2.69,-1.95 1.73,0.3 3.34,2.1 5.52,1.18 1.73,0.91 5.58,0.54 5.97,-1.71 -2.26,-3.14 2.59,-4.24 4.24,-5.72 -0.13,-1.58 -1.51,-4.22 1.43,-3.88 0.74,-0.67 -0.33,-1.93 0.53,-2.57 -1.47,0.74 -2.69,-0.27 -1.44,-1.58 -1.04,-1.31 -2.12,-4.8 0.61,-3.44 1.11,-1.2 0.8,-1.98 2.49,-1.09 3.37,-0.07 4.6,-2.86 5.45,-5.81 0.13,-2.58 1.39,-4.89 2.52,-6.95 1.56,-1.59 3.56,2.74 3.6,-0.58 -1.93,-1.54 -0.62,-5.1 -2.69,-7.09 -0.94,-2.78 -3.12,-0.33 -5.23,-1.99 -1.74,0.33 -2.23,-3.11 -4.08,-1.45 -2.23,-1.34 -5.13,-1.37 -7.71,-1.23 -0.89,1.39 -2.82,1.34 -2.49,3.35 -1.48,1.47 -1.23,4.8 -4.4,3.5 -1.42,0.9 -3.69,0.83 -4.18,2.58 -2.63,-0.42 -3.44,1.09 -2.81,3.24 -1.76,0.32 -3.16,0.76 -4.2,-0.95 -1.28,0.44 -0.68,-4.41 -2.73,-1.94 -0.92,0.95 -1.47,-2.05 -3.03,-1.54 0.47,-2.75 5.09,0.66 3.34,-3.08 -0.36,-1.37 -2.02,1.31 -1.95,-1 -2.7,-0.13 -3.88,-2.85 -6.72,-1.29 -2.27,1 -3.56,-0.22 -5.16,-1.45 -2.66,0.51 -3.03,-3.16 -5.33,-3.52 z", - "department-14" : "m 231.23,109.9 c -4.06,0.09 -6.85,2.84 -9.55,5.38 -3.34,2.06 -7.05,3.56 -10.99,3.85 -1.95,1.92 -3.54,-1.01 -5.94,-1.28 -2.67,-1.83 -5.65,-1.96 -8.71,-2.47 -2.52,-0.48 -5.06,0.57 -7.64,-0.13 -3.42,-0.41 -7.08,-0.38 -10.19,-1.98 -1.94,-1.82 -4.91,-0.74 -7.32,-0.9 -3.6,0.27 -1.56,4.12 -3.38,5.89 0.35,2.42 2.43,4.3 4.66,5.41 1.29,2.26 4.25,1.82 4.95,-0.81 0.89,1.47 2.18,1.84 0.71,3.15 -2.85,2.72 2.74,3.63 1.8,6.79 0.25,1.58 -1.34,2.53 0.39,3.45 -2.56,1.47 -4.13,6.64 -7.82,4.57 -1.7,0.05 -2.56,3.86 0.25,2.27 1.68,0.8 -1.5,3.01 -2.33,3.69 -1.18,-0.64 -2.61,2.05 -3.44,2.77 1.51,0.52 3.07,1.11 2.99,2.92 1.94,0.53 4.35,0.57 6.32,-0.18 1.55,1.73 4.66,1.77 5.78,1.31 0.33,1.85 2.06,-2.55 3.65,-1.79 1.67,-0.4 2.88,-1.72 1.91,-3.16 2.07,-1.17 2.99,1.93 4.94,0.32 1.69,0.63 2.6,-1.47 4.44,-1.14 2.02,-2.53 4.71,-0.49 6.27,0.75 0.09,2.25 1.52,-0.03 1.58,-1.02 2.72,0.42 5.75,0.47 7.89,2.34 0.72,-2.21 4.15,-0.58 5.38,-3.06 1.98,-1.59 4.45,-2.16 5.53,-4.57 1.56,-0.47 2.62,-1.63 3.42,0.6 1.16,-0.33 2.13,-1.63 3.58,-1.13 0.5,-2.08 1.78,-0.88 2.61,-0.44 1.61,0.55 3,0.24 4,-1.29 0.95,1.22 2.59,1.22 2.01,-0.7 1.28,-2.16 0.25,-3.37 -2.04,-3.81 -1.78,-1.67 1.38,-2.37 1.39,-3.02 -1.93,-1.58 2.62,-4.1 -0.98,-4.39 -0.16,-2.06 0.6,-4.48 -2.13,-4.95 -3.24,-2.19 4.22,-2.19 0.79,-4.43 -0.9,-0.04 -3.11,2.04 -1.98,-0.25 -0.33,-1.14 -1.2,-1.29 -0.01,-2.61 -1.49,-1.67 0.64,-7.09 -2.8,-5.97 z", - "department-76" : "m 285.08,67.51 c -1.66,1.28 -3.92,-0.27 -5.32,2.21 -2.55,2.82 -5.75,4.75 -9.23,6.16 -2.69,2.07 -6.27,0.91 -9.1,2.49 -3.04,0.83 -5.97,2.2 -9.16,2.2 -4.64,-0.08 -8.38,2.85 -12.2,5.03 -3.19,1.24 -5.65,3.53 -8.97,4.44 -4.45,0.63 -4.32,5.58 -6.08,8.7 -1.33,2.41 -3.69,6.09 0.02,7.66 2.71,1.09 5.28,1.25 8.39,1.98 3.84,1.23 7.92,-4.2 10.87,-0.97 1.02,1.67 2.99,3.04 4.68,1.44 -0.81,3.45 3.88,2.23 5.92,1.74 1.25,0.7 1.48,-1.8 1.82,0.62 0.74,1.56 3.24,0.12 3.81,1.84 1.65,-0.96 2.48,4.22 -0.34,2.48 -3.28,0.03 0.21,1.48 0.51,2.68 2.73,-3.35 2.83,4.25 5.77,2.84 2.8,-0.27 -0.27,-3.85 3.3,-3.41 1.82,-0.28 2.83,-2.57 4.57,-2.23 0.36,-1.37 4.68,0.8 4.04,-2.57 1.27,-2.05 1.52,-4.08 4.3,-5.05 2.08,0.14 5.31,0.85 7.56,1.4 2.14,-0.45 3.59,3.15 6.18,2.19 2.06,0.69 2.28,-3.97 4.3,-4.86 1.52,-1.49 -0.75,-3.01 -1.45,-0.94 -2.42,-0.89 0.93,-2.53 -0.81,-3.95 0.3,-1.61 -2.27,-1.27 -1.03,-2.58 -0.73,-1.35 1.8,-2.21 -0.04,-3.48 1.02,-1.01 3.32,-5.11 0.67,-2.57 -2.48,-0.31 0.5,-3.34 1.11,-4.23 -0.07,-1.57 3.34,-0.34 1.01,-2.16 -2.4,-2.69 -1.34,-6.85 -4.28,-9.1 -3.65,-1.5 -5.37,-5.07 -8.6,-7.13 -2.03,-0.46 -0.42,-2.8 -2.2,-2.85 z", - "department-60" : "m 299.82,88.06 c -0.68,1.53 -2.52,3 -2.62,4.61 0.88,0.83 2.72,-2.26 2.36,0.47 -2.03,0.88 -1.5,2.81 -1.5,4.35 -1.65,1.28 0.75,1.64 0.2,3.03 0.54,1.64 1.83,2.54 0.02,4.14 0.78,1.65 2.88,-1.94 3.18,0.81 -0.81,1.88 -3.2,3.3 -3.32,5.72 1.83,-0.19 -0.44,1.38 1.38,2.1 1.48,2.13 0.75,4.92 2.41,6.82 0.2,2.27 -1.63,1.56 -2.48,0.39 -2.21,-0.34 -2.49,2.24 -0.48,2.81 -0.83,1.16 -0.47,2.78 1.13,3 2.38,-0.91 4.68,1.32 7.04,0.62 2.19,-0.63 4.26,-0.42 6.14,-1.88 1.82,-1.52 2.59,1.29 4.7,0.92 0.24,2.48 3.26,-1.11 3.69,1.4 -0.75,1.55 3.2,0.09 3.21,-1.39 1.69,-0.21 1.93,2.59 3.71,1.86 2.57,0.22 4.8,1.97 6.25,3.43 0.62,-1.34 1.71,-1.33 1.95,0.34 1.46,2.81 2.94,-2.02 4.79,0.35 1.09,0.96 1.32,2.68 2.73,1.05 0.38,2.06 2.62,0.41 2.41,-0.61 2.06,-2.04 3.56,2.74 5.7,0.23 1.37,0.79 3.07,-1.58 3.55,0.59 0.9,-2.08 4.02,0.32 3.84,-2.61 0.97,-1.2 1.9,-2.09 3.15,-2.84 -1.43,-0.2 -1,-3.93 -2.02,-1.23 0.12,2.36 -0.59,-0.15 -0.51,-1.14 -0.98,-0.34 -1.96,-0.8 -2.82,-1.45 1.46,-1.59 0.58,-5.08 -1.78,-5.51 -1.64,-1.93 1.32,-3.14 3,-2.37 2.78,-1.33 1.45,-5.56 2.96,-6.93 1.83,1.02 3.46,-1.08 0.88,-1.43 -2.12,-0.58 0.91,-1.96 -1.18,-3 -0.31,-1.21 1.9,-1.71 1.13,-3.46 1.11,-2.28 -2.26,-3.66 -0.83,-5.46 -1.28,-1.35 1.28,-1.82 0.48,-3.31 0.33,-2.37 -2.35,1.17 -1.98,-1.22 -1.06,0.07 -2.21,3.33 -3.26,0.83 -1.15,-1.16 -2.97,0.6 -2.46,1.87 -0.95,-1.04 -2.28,-2.96 -3.61,-2.19 0.98,1.2 1.14,2.51 -0.39,1.26 -0.14,2.4 -4.2,0.61 -3.1,3.55 -0.54,2.6 -5.29,-1.86 -5.5,1.9 0.32,2.24 -2.85,2.23 -2.21,0.03 -1.14,-1.83 -2.74,1.59 -3.58,-0.97 -1.21,-1.4 -2.44,-1.07 -3.66,-0.6 -0.85,-3.25 -4.16,-1.53 -6.1,-3.1 -0.93,-1.42 -3.34,-0.98 -4.87,-2.04 -2.87,-0.39 -5.38,1.28 -8.22,0.91 -0.21,-2.15 -3.87,-1.59 -4.92,-1.24 -1.09,-1.54 -2.79,1.74 -4.47,0.11 -1.06,-0.76 -1.06,-1.17 -0.69,-2.16 -0.99,-0.72 -2.08,-1.47 -3.42,-1.36 z", - "department-80" : "m 292.25,47.76 c -3.3,0.48 -3.7,7.09 -0.18,7.88 1.08,1.67 4.2,2.74 3.06,4.24 -2.73,-1.29 -6.63,-3.63 -7.9,0.8 -0.08,3.06 -3.29,5.38 -4.22,7.27 1.37,-0.11 3.64,-1.46 3.18,1.37 3.11,1.87 5.05,5.06 7.98,7.06 3.9,1.29 3.89,5.38 5.12,8.61 0.56,2.66 4.89,3.47 4.09,5.66 1.46,2.82 4.15,-0.88 5.54,0.73 2.25,-2 4.72,2.18 7.27,1.01 2.7,-0.93 5.98,-1.02 8.68,0.5 1.84,-0.03 3.1,2.73 5.49,1.65 1.93,0.79 2.11,3.17 3.94,1.57 2.03,0.38 2.41,3.33 4.24,1.67 1.8,-0.87 1.46,4.54 3.03,1.36 0.02,-3.92 4.11,-1.35 5.69,-2.17 -0.71,-2.24 0.89,-2.61 2.47,-2.96 0.23,-1.49 2.58,-0.96 0.98,-2.41 1.05,-1.53 0.91,1.46 2.09,-0.25 0.9,2.74 1.49,1.35 3.01,0.23 1.35,0.58 3.49,2.16 3.45,-0.59 1.21,0.66 3.53,0.99 2.21,-1.27 0.39,-2.05 -3.23,-2.65 -0.99,-4.12 0.13,-1.56 -2.17,-2.32 -0.06,-3.42 -0.06,-1.95 2.47,-2.66 2.02,-5.11 0.89,-1.27 2.86,-3.19 2.9,-4.11 -2.64,0.29 0.37,-2.52 -2.05,-2.42 -2.22,-1.41 -5.14,-3.16 -7.9,-1.23 -1.34,-2.15 -4.91,2.97 -5.09,0.51 1.42,-1.44 -0.8,-3.49 -2.15,-1.79 -0.94,1.46 -4.33,1.85 -2.41,-0.4 3.11,-2.33 -2.99,-5.63 -2.46,-2.07 1.41,1.98 -2.63,-0.12 -3.46,-0.4 -1.61,-0.21 -3.12,-0.74 -2.69,-2.12 -1.34,-0.69 -1.48,3.04 -2.43,0.22 -3.21,-2.44 -3.38,5.35 -5.85,1.64 -1.72,-1.93 1.49,-5.21 3.99,-5.44 1.33,-2.2 -4.48,-3.79 -5.35,-1.18 -0.74,-1.34 -1.37,-2.06 -1.64,-0.43 -2.88,-0.65 -5.6,0.07 -8.2,1.37 -1.11,-1.55 -3.47,0.2 -3.68,-2.58 1.41,-3.13 -8.2,-2.22 -4.92,-5.34 -0.16,-2.3 -3.14,1.95 -4.11,-1.07 -2.18,-2.39 -5.42,-2.15 -7.98,-0.54 -2.27,1.67 -2.44,-2.55 -4.75,-1.91 z", - "department-95" : "m 297.89,122.77 c -1.93,0.92 -1.82,3.28 -2.24,5.06 -0.18,1.39 -0.88,2.57 -1.71,3.66 -1.18,2.5 3.25,0.35 3.28,2.76 0.67,1.03 2.44,0.71 2.86,-0.15 1.62,0.83 1.89,-1.96 3.5,-0.67 1.15,0.5 1.54,1.3 0.91,2.4 0.05,1.46 1.28,0.91 1.47,-0.15 1.23,-1.85 1.56,1.36 3.2,0.93 1.81,-0.33 2.63,2.19 4.51,1.19 1,-0.65 2.03,-0.32 2.94,-0.74 0.27,0.84 -0.01,2.32 1.49,2.09 1.39,0.41 0.73,2.42 2.34,2.4 -0.26,0.82 -0.29,3.2 0.91,1.57 0.86,-1.05 2.61,-1.25 3.07,-2.57 1.17,0.19 2.33,0.34 3.34,-0.64 1.5,0.48 3.52,2.04 5,0.44 1.28,-0.6 2.07,-1.91 3.13,-2.67 -1.04,-1.28 1.15,-1.17 1.41,-2.36 0.47,-0.74 -0.21,-1.51 0.41,-2.34 -0.57,-0.87 -1.19,-1.72 -1.74,-2.51 -0.76,0.04 -0.35,1.66 -1.56,0.99 -1.63,0.01 0.09,-1.59 -1.48,-1.79 -0.96,-0.62 -1.98,-0.38 -2.67,-1.33 -1.15,-0.06 -2.21,-0.73 -3.09,-0.09 -0.52,-1.59 -2.64,-3.14 -3.11,-0.65 -0.81,0.43 -3.97,1.21 -2.53,-0.5 -0.87,-1.58 -3.19,1.28 -3.56,-1.01 -1.15,-0.35 -2.65,-0.19 -3.11,-1.46 -1.37,0.13 -2.53,1.17 -3.72,1.84 -1.32,-0.26 -2.69,0.49 -4.1,0.64 -1.33,0.67 -2.12,-0.84 -3.46,0.08 -0.96,-1.47 -2.91,-0.73 -4.2,-0.81 -0.5,-0.95 -2.12,-1.82 -0.57,-2.52 0.13,-0.53 -0.36,-1.09 -0.9,-1.1 z", - "department-78" : "m 292.32,132.84 c -1.68,0.81 -3.67,0.76 -5.14,1.83 -1.97,-1.3 -0.99,2.02 -0.1,2.67 0.55,0.79 -1.34,2.61 0.69,2.07 1.64,-0.39 0.59,0.65 0.37,1.44 0.56,0.92 0.3,2.44 1.88,2.64 -0.09,1.26 1.67,1.89 0.48,3.08 1.64,0.66 2.24,2.6 1.48,4.19 -1.03,2.01 0.99,3.08 1.85,4.34 -0.58,1.19 -2.9,3.12 -0.68,3.75 -0.47,1.26 0.09,2.42 1.54,2.47 0.18,1.99 1.68,2.21 3.27,2.53 -0.41,1.11 -0.51,2.96 1.4,2.43 1.42,0.39 2.18,2 1.59,3.43 0.23,1.67 0.57,3.89 2.53,3.87 0.36,1.68 3.78,2.12 3.77,0.29 -0.23,-1.35 1.17,-2.66 1.54,-4.05 1.67,-0.97 -2.33,-2.06 -0.18,-2.66 1.44,0.17 3.44,0.88 3.57,-1.25 0.08,-1.12 0.7,-1.71 1.35,-2.36 -0.8,-1.15 -2.97,-2.42 -1.13,-3.55 0.61,-1.71 3.54,-1.04 3.46,-3.33 -0.81,-1.48 0.7,-1.23 1.5,-1.61 0.73,-1.13 2.67,-0.43 2.55,-1.99 1.23,0.53 1.88,-0.53 0.53,-1.07 -0.97,-1.07 -3.27,-1.54 -2.66,-3.59 -0.02,-1.82 0.75,-3.53 2.25,-4.55 0.27,-1.43 0.56,-2.46 -1.03,-2.77 0.42,-2.23 -2.99,-1.71 -2.63,-3.73 -1.61,-0.09 -3.2,1.35 -4.8,0.6 -1.14,-1.79 -3.8,-0.64 -4.79,-2.64 -0.79,0.03 -1.9,3.2 -2.31,1.04 -0.6,-0.85 0.89,-2.23 -0.76,-2.51 -1.37,-1.91 -2.01,1.2 -3.59,0.52 -1.03,1.41 -3.22,0.49 -3.58,-1.01 -1.62,-1.22 -2.88,0.79 -4.21,-0.53 z", - "department-28" : "m 287.11,142.32 c -2.1,1.04 1.22,5.31 -2.55,5.04 -3.13,0.47 -2.25,4.05 -2.79,5.7 -2.08,1.39 -4.66,0.71 -6.89,0.79 -1.67,0.17 -4.55,-2.91 -4.14,0.39 -0.94,1.3 -4.08,-0.75 -3.86,1.85 -2.43,0.08 -5.51,1.27 -7.37,1.58 -1.08,1.71 -3.78,2.6 -2.33,4.99 0.77,3.5 4.78,4.24 6.38,7.09 -0.22,2.23 -1.98,4.13 0.4,5.86 -1.32,2.12 -2.68,4.96 -5.61,5.63 -2.31,-0.78 -5.36,3.02 -2.13,3.95 -1.7,2.27 2.62,5.08 0.17,6.87 0.96,1.32 5.87,1.56 4.27,3.23 -2.59,-0.41 -2.61,3.43 0.12,2 1.93,-0.18 2.86,0.02 4.27,-1.38 2.46,-1.17 2.35,1.12 0.44,1.89 0.94,1.94 5.72,-0.14 5.24,3.16 2.38,1.44 2.98,5.53 5.88,5 2.46,1.01 5.04,1.84 7.07,-0.1 2.12,0.96 1.21,-4.35 3.42,-1.33 2.91,1.91 0.9,-4.73 4.83,-2.76 1.99,-0.3 2.54,-3.35 5.19,-2.24 2.89,0.64 5.49,-1.07 8.22,-1.66 2.33,-1.48 0.35,-5.82 3.98,-5.14 -0.56,-1.06 0.03,-1.81 0.2,-2.18 -1.12,-2.33 1.98,-4.62 -0.13,-6.47 1.22,-2.57 0.51,-6.45 -1.46,-7.17 0.98,-3.67 -3.12,-0.53 -4.61,-2.82 -3.57,-1.35 -1.08,-6.34 -4.19,-7.79 -2.86,0.53 -0.05,-3.49 -3.13,-2.7 -2.21,-2.24 -5.44,-5.53 -2.5,-8.36 -1.41,-1.65 -2.75,-3.31 -1.37,-5.55 -0.35,-2.12 -1.91,-3.29 -1.97,-5.44 -0.63,-1.06 -1.8,-1.83 -3.04,-1.94 z", - "department-75" : "m 326.98,144.71 c -1.27,-0.06 -2.46,0.68 -3.27,1.54 -0.47,-0.15 -0.85,0.06 -1.23,0.25 -0.65,0.03 -1.66,1.18 -0.69,1.52 0.81,0.18 0.93,1.2 1.8,1.35 1.65,0.28 3.42,1.43 5.03,0.39 1.03,-0.88 2.21,0.62 3.32,0.28 0.54,-0.43 0.6,-1.27 -0.33,-1.23 -0.68,-0.16 -1.14,-0.33 -1.46,-0.06 -0.34,-1.13 -0.06,-2.23 -0.93,-3.14 -0.12,-1.14 -1.17,-0.96 -2.05,-0.92 l -0.18,0 -0.03,3e-4 z", - "department-93" : "m 336.5,137.58 c -0.46,0.33 -1.14,0.34 -1.42,0.97 -0.75,1.19 -2.15,1.71 -3.14,2.62 -0.82,-0.03 -1.72,-0.07 -2.53,-0.25 -0.64,-0.37 -1.29,-1.34 -2.07,-0.64 -0.6,0.3 -1.08,1.1 -1.81,0.59 -0.35,-0.19 -1.46,-0.42 -1.19,0.3 0.56,0.53 2.05,0.32 2.05,1.33 -0.06,0.69 -1.13,1.34 -0.68,2.02 1.05,0.43 2.37,-0.21 3.33,0.37 0.27,0.54 0.5,1.08 0.89,1.55 0.18,0.57 -0.13,1.72 0.86,1.53 1.07,-0.15 2.16,-1.04 3.23,-0.34 1.04,0.72 2.32,1.35 3.05,2.37 -0.11,0.74 1.41,0.94 1.04,0.05 -0.24,-0.71 -0.92,-1.55 -0.78,-2.26 0.67,-0.23 -0.04,-0.79 -0.4,-0.86 0.27,-0.43 -0.26,-0.81 -0.29,-1.14 0.41,-0.57 1.31,-0.71 1.23,-1.58 -0.09,-0.8 0.8,-1.4 0.35,-2.19 -0.23,-0.84 -1.06,-1.46 -1.25,-2.26 0.77,-0.61 0.45,-1.99 -0.49,-2.17 z", - "department-94" : "m 332.85,147.49 c -0.56,0.21 -2.03,0.43 -2.18,1.01 0.31,0.21 1.82,-0.09 1.77,0.51 0.02,0.58 -0.23,1.64 -1.05,1.16 -1.03,-0.16 -2.09,-1.01 -3.03,-0.14 -0.7,0.5 -1.59,0.2 -2.33,0.5 -0.4,1.12 0.01,2.46 -0.66,3.53 -0.23,0.79 0.87,0.44 1.11,0.99 0.42,0.39 0.99,0.13 1.33,-0.1 0.46,0.44 -0.1,1.74 0.84,1.68 0.59,-0.25 1.17,-0.38 1.79,-0.16 1.34,-0.05 2.64,-0.54 3.94,-0.71 0.51,0.63 0.39,1.61 1.15,2.11 0.31,0.19 0.6,0.29 0.75,0.66 0.59,0.31 1.26,-0.47 0.77,-0.99 -0.01,-0.93 1.56,-1.44 0.88,-2.44 0.49,-0.32 0.24,-1.11 0.85,-1.28 0.43,-0.58 -0.47,-0.6 -0.83,-0.71 -0.34,-0.52 0.66,-1.17 0.14,-1.69 0.12,-0.8 -1.11,-0.7 -1.2,-1.46 -1.03,-1.05 -2.25,-2.13 -3.71,-2.49 -0.1,-0.01 -0.2,-0.01 -0.31,0 z", - "department-92" : "m 324.24,141.53 c -2,0.52 -3.26,2.41 -5.06,3.32 -1.07,0.77 -1.1,2.2 -0.99,3.39 -0.4,0.4 -0.48,0.98 -0.25,1.53 0.01,0.71 0.73,0.52 1.15,0.65 0.16,0.65 0.67,1.01 1.28,1.14 0.25,0.33 0.49,0.67 0.86,0.85 0.32,0.72 0.72,1.57 1.66,1.53 0.78,-0.01 1.11,0.83 1.08,1.46 0.36,0.27 0.92,-0.2 1.18,0.31 0.73,-0.09 0.08,-1 0.1,-1.43 0.14,-0.72 0.7,-1.47 0.38,-2.22 -0.12,-0.62 0.28,-1.24 0.24,-1.78 -0.96,-0.79 -2.46,-0.33 -3.22,-1.42 -0.37,-0.47 -1.1,-0.68 -1.44,-1.08 0.22,-1.13 1.41,-1.83 2.5,-1.7 0.39,-0.7 1.58,-0.82 1.76,-1.68 -0.35,-0.89 1.37,-1.42 0.54,-2.3 -0.48,-0.39 -1.16,-0.56 -1.77,-0.58 z", - "department-91" : "m 320.25,153.32 c -0.58,0.51 -0.49,1.56 -1.65,1.15 -1.09,0.27 -1.38,1.31 -2.58,1.12 0.11,1.05 -0.02,2.93 -1.5,3.32 -1.61,-0.22 -1.97,1.45 -2.84,2.24 0.58,0.86 2.2,1.77 1.79,2.96 -1.64,0.36 -0.55,3.52 -2.55,3.44 -0.79,0.15 -3.39,-0.81 -2.43,0.71 1.02,0.53 2.16,1.11 0.51,1.61 -0.86,0.93 -0.75,2.41 -1.65,3.25 0.14,1.24 1.76,2.59 0.46,3.92 0.71,0.75 2.78,0.14 2.06,1.92 1.07,1.28 -0.54,2.43 0.19,3.85 0.08,0.92 -1.54,1.43 -0.06,2.16 1.67,1.02 3.4,-0.35 5.09,-0.44 0.79,-1.48 2.15,0.97 2.97,-0.44 -0.22,-1.14 1.58,-0.26 1.55,-1.49 0.43,-1.63 2.01,-0.33 2.65,0.23 -0.12,0.95 0.48,1.61 1.08,0.67 0.98,0.38 1.68,0 2.09,-1.03 1.19,-0.35 1.89,2.24 3.4,1.07 0.49,-0.63 -0.03,-1.81 1.37,-1.59 1.11,-0.46 0.12,-2.39 1.77,-2.49 0.99,-0.33 0.83,-1.84 2.2,-1.42 0.62,-0.47 2.15,-0.38 0.97,-1.39 -1.69,-0.77 -1.16,-2.85 -1,-4.34 0.63,-1.35 -0.62,-2.47 -0.1,-3.88 0.63,-1.33 0.75,-2.86 1.78,-3.97 -0.3,-0.67 -1.97,-1.85 -0.32,-2.16 1.12,-0.7 -0.81,-1.91 0.75,-2.52 1.46,0.63 1.85,-1.77 0.18,-1 -1.09,-0.51 -1.76,-1.71 -2.13,-2.88 -1.08,-0.05 -2.24,1 -2.98,0.91 -0.9,-0.56 -2.37,0.31 -3.35,-0.26 0.08,-0.81 -0.25,-1.5 -1.11,-1.09 -0.9,-1.03 -1.16,0.24 -1.83,0.61 -0.49,-0.5 -1.91,-0.11 -1.24,-1.2 -0.57,-1.05 -2.44,-1.17 -3.52,-1.52 z", - "department-45" : "m 320.43,181.91 c -1.93,3.75 -6.85,2.12 -9.9,4.16 -1.95,2.44 0.54,6.83 -3.34,8.04 -0.15,3.54 -2.85,4.96 -6.06,5.24 -2.92,1.1 -6.42,-0.72 -8.49,2.39 -1.57,0.69 -5.05,0.19 -3.17,3.06 1.8,0.69 1.81,1.21 0.63,2.66 -1.69,2.43 4.05,3.22 1.25,6.02 -2.34,2.28 -0.38,4.59 0.09,7.04 1.76,1.74 4.95,-1.17 6.29,2.07 1.03,2.45 2.79,7.52 5.89,3.78 1.72,-3.2 5.45,1.69 8.15,-0.49 3.31,-0.11 8.68,-1.55 10.42,2.55 3,0.8 5.42,3.73 8.74,2.17 2.13,1.16 4.32,2.3 6.96,2.83 1.97,1.01 3.09,6.61 5.84,4.26 -0,-3.62 2.76,-1.68 4.41,-0.43 2.59,0.81 2.19,-2.3 2.2,-3.37 1.94,-0.4 6.46,-0.48 3.87,-3.36 0.34,-3.56 -2.17,-6.48 -4.41,-8.39 0.34,-3.92 6.29,-1.58 7.84,-4.63 1.26,-2.84 -2.35,-5.65 1.12,-7.77 4,-1.7 4.51,-6.41 1.51,-9.33 -2.16,-2.35 -2.73,-6.91 -6.87,-6.87 -1.86,0.13 -5.92,3.75 -6.03,-0.07 -2.63,1.14 -5.36,4.25 -8.22,1.8 -2.17,-0.24 -6.58,1.49 -7.34,0.08 2.67,-1.6 4.53,-6.27 0.45,-7.38 -2.86,-1.04 -1.71,-5.28 -5.43,-4.57 -1.53,-1.38 -4.89,2.52 -5.34,-1.02 -0.33,-0.2 -0.71,-0.32 -1.06,-0.48 z", - "department-41" : "m 266.29,195.63 c -2.06,2.95 -7.43,0.3 -8.5,3.42 -1.9,1 -2.23,2.67 -0.22,3.62 0.19,3.26 0.26,5.82 -1.16,8.6 -4.07,-1.69 0.07,5.24 -3.5,5.91 -0.99,3.4 -6.81,3.06 -5.94,7 2.53,-0.22 6.07,1.21 9.36,0.87 2.33,-0.38 3.21,0.87 2.33,3.13 -0.6,3 2.08,2.14 3.12,0.52 2.68,-0.46 3,3.47 5.15,1.95 3.31,1.92 -0.52,5.3 2.24,7.5 2.87,2.54 0.27,5.57 1.51,8.9 -2.12,3.16 1.39,5.4 4.47,4.52 3.84,-0.06 2.69,7.22 7.32,5.56 1.87,-1.68 3.74,-3.34 6.46,-2 0.88,-3.66 5.55,-2.27 8.48,-2.51 2.88,0.7 4.8,4.16 8.08,3.56 2.17,-0.93 0.23,-5.2 4,-4.24 2.53,1.03 9.23,0.49 7.7,-3.24 -2.46,-1.98 -1.75,-6.33 1.55,-6.48 1.62,0.43 3.89,1.9 3.49,-1.2 0.4,-2.84 -2.55,-3.04 -1.96,-5.71 -0.66,-1.86 -5.5,-1.35 -2.85,-4.03 2.3,-0.71 6.5,-3.18 2.67,-5.2 -3.4,-0.6 -6.94,-0.37 -10.34,0.3 -2.3,0.89 -5.75,-3.14 -6.32,0.82 -3.73,2.59 -5.33,-2.8 -6.15,-5.3 -2.21,-2.59 -5.58,2.04 -6.3,-1.81 -0.8,-1.62 0.46,-2.55 -1.18,-3.79 1.15,-2.66 3.49,-5.56 -0.29,-7.32 0.2,-1.64 2.39,-4.45 -1.04,-3.94 -1.34,-0.61 -4.15,-1.65 -3.51,1.01 -2.97,0.88 -5.87,1.72 -8.76,0.26 -3.05,-0.48 -3.65,-3.81 -5.67,-5.58 -0.41,-3.18 -5.31,-0.86 -5.28,-3.08 0.5,-0.52 3.23,-1.6 1.02,-2.02 z", - "department-36" : "m 292.75,252.32 c -0.22,1.96 -4.71,0.36 -3.09,3.11 -2.43,-0.72 -5.02,-1.03 -6.59,1.34 -2.69,0.52 -2.88,2.56 -1.18,4.37 -0.27,2.79 -3.21,4.19 -4.35,6.82 -1.44,3.03 -4.42,-1.33 -6.53,0.46 -3.18,0.46 -2.88,3.92 -3.68,6.03 -1.05,3.06 -0.95,6.5 -2.13,9.41 1.56,2.64 -2,4.95 -4.07,2.91 -3.4,-0.16 1.5,2.15 0.47,4.03 -1.36,3.26 -0.89,7.48 3.29,8.02 1.63,1.02 1.82,2.51 4.05,2.13 3.15,0.49 2.87,3.8 3.42,5.86 3.01,0.61 1.99,2.49 1.57,4.47 1.47,-0.43 1.97,1.71 3.8,0.38 1.85,0.34 2.68,-2.93 4.56,-0.65 1.37,1.89 2.88,2.94 4.14,0.35 1.12,-1.38 3.37,-4.31 4.14,-1.21 1.33,-0.81 3.52,-2.34 3.35,0.47 1.47,0.6 2.78,-3.28 3.75,-0.32 2.88,0.93 1.17,-5.91 4.57,-3.2 2.52,2.22 5.64,-0.66 8.59,0.82 2.5,1.04 7.68,2.32 7.46,-1.55 4.04,-2.02 -1.08,-5.26 0.41,-8.47 1.23,-2.22 0.34,-4.16 -1.32,-5.77 1.29,-2.28 -5.15,-3.19 -2.63,-5.41 3.7,-2.03 -4.12,-5.08 0.13,-6.45 0.15,-1.85 5.09,-3.55 1.3,-4.36 -3.14,-0.2 -1.71,-2.81 -0.75,-4.45 0.55,-3.16 -4.43,-3.11 -2.28,-6.14 0.71,-2.59 -1.84,-0.34 -2.34,-2.38 -2.14,-1.4 -4.51,2.29 -6.97,0.12 -1.89,-0.3 -3.87,-1.35 -1.68,-3.08 2.9,-1.88 1.03,-5.37 -2,-5.37 -1.57,-1.11 -2.26,-2.41 -4.45,-1.38 -1.18,-0.07 -1.7,-1.07 -2.98,-0.88 z", - "department-18" : "m 323.87,229.07 c -2.35,0.13 -9.34,2.52 -5.77,4.83 3.63,-0.55 1.32,4.29 3.95,4.19 1.09,2.3 -0.24,7.95 -2.97,4.02 -2.53,0.84 -4.38,3.27 -2.23,5.76 1.94,2.35 0.54,4.87 -2.44,4.09 -2,0.97 -4.54,0.79 -6.09,-0.04 -3.26,0.8 0.48,4.8 -3.11,4.5 -2.3,-0.84 -0.78,2.92 -3.07,3.74 -2.13,3.21 4.52,3.78 6.54,2.69 2.19,-2.06 2.95,2.09 4.74,0.99 0.13,1.95 -1.78,4.73 1.47,5.08 2.39,1.98 -3.09,7.46 2.34,7.01 1.98,2.06 -4.63,4.48 -3.1,6.87 3.2,0.9 1.23,3.63 0.29,5.24 0.67,1.68 4.73,1.92 3.03,4.22 4.54,2.34 -0.65,6.57 2.07,9.85 1.42,2.13 -0.12,3.45 -1.35,4.8 0.97,3.01 6.38,2.02 6.61,-1.43 1.68,-1.43 2.79,-4.1 5.74,-3.71 2.61,-0.19 8.61,0.85 7.95,-3.28 -1.28,-1.97 -0.29,-4.02 -0.99,-5.76 1.11,-0.26 2.76,0.38 2.1,-1.66 2.77,0.03 3.8,-5.99 6.55,-2.38 4.02,-0.1 5.48,-4.84 9.43,-5.17 5.09,1.19 4.04,-5.2 3.91,-8.3 0.71,-2.84 1.27,-6.86 -1.24,-8.77 -0.49,-3.87 -0.61,-7.69 -2.18,-11.39 0.6,-4.25 -6.27,-4.24 -4.71,-8.26 2.14,-3.02 2.74,-7.4 -0.15,-10.16 -1.82,-0.35 -3.52,2.23 -5.06,-0.44 -2.66,-2.76 -1.08,3.94 -4.37,2.1 -2.06,-1.93 -3.82,-6.36 -7.51,-5.63 -1.58,-0.2 -3.8,-3.83 -5.86,-1.15 -1.78,-0.24 -2.82,-2.01 -4.51,-2.45 z", - "department-23" : "m 301.06,306.59 c -2.18,-0.09 -0.48,5.24 -3.46,3.84 -1.17,-2.86 -2.05,0.79 -3.59,0.42 -1.13,-0.79 -0,-3.31 -1.73,-1.25 -1.24,0.55 -2.36,1.38 -2.36,-0.7 -1.54,-0.88 -2.18,2.59 -3.79,3.02 -0.98,0.84 -2.88,2.44 -0.45,2.76 0.29,1.69 -1.79,2.6 -0.56,4.04 -2.11,0.16 0.28,2.07 -1.84,2.35 -1.71,2.37 1.37,3.88 3.12,3.98 -0.87,1.98 3.03,2.32 1.47,4.18 0.81,1.46 2.68,2.16 2.08,4.13 0.59,1.41 -1.07,3.49 1.38,3.72 1.8,2.32 -4.92,2.97 -1.35,4.46 1.26,1.18 3.64,-2.06 4.21,0.35 0.31,1.19 0.8,2.47 -1.06,2.08 -1.31,1.78 2.07,3.75 3.94,3.02 1.79,0.62 3.88,-3.62 3.75,-0.15 0.21,1.27 2.24,2.17 2.82,1.56 1.47,1.11 3.83,3.39 1.98,4.77 0.21,1.09 -0.08,4.28 1.82,2.42 1.13,0.08 1.99,-1.04 3.2,-0.95 0.33,-2.76 3.75,-2.96 4.66,-0.46 1.35,-0.17 2.6,0.94 3.34,-0.03 1.49,1.32 3.49,2.43 4.82,3.44 0.2,2.09 4,0.09 3.38,-1.73 2.36,-0.58 5.37,1.33 6.38,-2.1 -1.37,-1.09 -2.62,-1.96 -3.06,-3.78 -1.55,-1.24 -1.59,-2.93 0.65,-2.9 0.54,-1.38 1.04,-2.45 2.73,-1.85 0.62,-1.79 3.09,-2.23 2.56,-4.51 0.36,-1.75 3.84,-1.53 2.12,-3.52 1.2,-2.89 -2.25,-4.14 -2.04,-6.95 -0.08,-2.21 1.4,-4.81 -1.02,-6.11 0.02,-2.5 -1.86,-3.91 -2.39,-6.08 -1.13,-1.7 -3.1,0.63 -2.89,-2.06 -0.52,-1.65 -1.48,-0.92 -2.17,-0.16 -2.13,-0.72 -3.54,-2.45 -1.59,-4.12 -3.08,0.61 -1.54,-4.21 -4.75,-3.19 -2.85,-0.75 -5.52,1.57 -8.05,0.18 -2.39,-0.94 -4.83,-0.98 -7.12,-1.05 -1.87,0.89 -3.74,0.71 -4.87,-1.08 l -0.28,-0.01 10e-6,10e-5 z", - "department-87" : "m 281.04,310.22 c -0.51,0.05 -1.17,0.12 -1.14,0.78 -0.25,1 -1.41,1.2 -2.23,0.78 -0.91,-0.55 -1.46,0.97 -2.37,0.47 -0.41,-0.24 -0.15,-1.36 -0.88,-1.06 -0.15,0.36 -0.49,0.69 -0.87,0.31 -0.42,-0.56 -1.48,-0.46 -1.39,0.36 -0.29,0.51 -0.98,0.78 -0.95,1.46 -0.55,0.47 -1.05,-0.38 -1.56,-0.48 -1.22,-0.29 -2.83,0.17 -3.07,1.56 0.1,1.34 -1.16,2.36 -1.14,3.65 -1.12,-0.21 -2.43,-0.58 -3.48,-0.02 -0.57,-0.29 -1.43,-0.46 -1.55,0.41 -0.29,0.71 -1.42,0.57 -1.53,1.41 -0.45,0.32 -0.59,0.81 -0.41,1.28 -0.57,0.79 -2.14,-0.04 -2.35,1.21 -0.11,1.15 1.52,1.66 1.49,2.82 0.45,0.61 -0.22,1.55 0.51,2.07 0.3,0.78 -1.04,0.68 -1.22,1.21 0.1,0.73 1.16,1.32 0.57,2.1 -0.2,0.88 -0.43,1.82 -0.37,2.7 0.55,0.71 1.53,1.06 1.85,1.96 0.6,0.29 0.77,-1.11 1.42,-0.47 0.52,0.57 1.56,1 1.37,1.9 0.17,0.33 0.61,0.45 0.5,0.91 0.25,0.56 0.69,1.22 0.15,1.8 -0.4,0.33 -0.69,0.93 -0.79,1.33 -1.08,0.03 -1.62,1.44 -2.79,1.15 -0.74,0.09 -1.45,-0.83 -2.12,-0.41 -0.07,0.49 0.25,0.98 0.12,1.53 -0.13,0.54 0.63,1.01 0.41,1.49 -0.44,0.28 -0.27,0.69 -0.21,1.04 -0.23,1.22 -1.06,2.19 -1.62,3.25 -0.26,0.54 0.17,1.51 -0.39,1.85 -0.92,-0.16 -1.85,-1.49 -2.8,-0.78 -0.33,0.63 -0.36,1.44 0.03,2.02 -0.07,0.89 -1.28,0.52 -1.72,1.1 -0.39,0.39 -0.56,0.91 -1.06,1.2 -0.36,0.39 -0.09,1.12 -0.8,1.16 -0.53,0.7 0.73,1.29 1.05,1.78 1.12,0.48 2.72,-0.73 3.83,0.16 0.41,0.49 0.74,1.16 1.39,1.34 0.08,1.16 -0.5,2.25 -0.79,3.32 0.28,0.85 0.98,1.77 1.99,1.46 0.49,0.16 0.41,1.27 1.18,1.08 1.27,-0.42 1.02,-2.31 2.06,-2.9 0.55,0.27 0.58,1.69 1.39,1.27 0.5,-0.37 1.3,-0.2 1.85,-0.57 0.8,-0.12 1.59,0.64 2.37,0.08 1.2,-0.25 2.21,0.92 2.02,2.08 -0.09,0.92 0.66,1.5 1.35,1.88 0.41,0.32 0.61,1.42 1.32,0.86 0.49,-0.58 1.3,-0.68 1.86,-0.14 0.33,0.35 1.23,0.52 1.23,1.08 -0.69,0.87 -1.91,1.66 -1.92,2.87 0.34,0.84 1.26,0.35 1.87,0.21 0.56,0.26 0.58,0.97 0.93,1.33 0.84,-0.26 2.33,-0.56 2.49,0.7 0.19,0.63 0.87,0.23 0.77,-0.27 0.67,-0.31 0.04,-1.73 0.98,-1.81 0.57,0.07 0.21,-0.87 0.71,-0.67 0.95,0.21 1.74,1.1 2.68,1.15 0.76,-1.2 1.96,-2.1 2.52,-3.45 0.35,-0.6 1.02,-0.45 1.52,-0.23 0.86,-0.13 0.35,-1.3 0.75,-1.74 0.56,-0.03 0.98,-0.4 1.21,-0.85 0.63,0.05 0.58,1.16 1.29,0.85 0.37,-0.17 0.08,-0.99 0.68,-0.63 0.79,0.46 1.82,0.91 2.6,0.18 0.48,-0.4 0.34,-1.43 1.2,-1.3 1.25,0.1 2.05,-1.03 2.55,-1.98 0.73,-0.73 1.34,-1.82 2.34,-2.13 0.74,0.12 1.5,-0.28 1.86,-0.87 0.93,-0.17 1.13,-1.16 1.48,-1.85 0.37,-0.07 0.64,0.49 1.11,0.2 0.61,0.2 0.96,1.44 1.71,0.76 0.42,-0.5 1.1,0.52 1.33,-0.26 -0.03,-0.66 0.6,-0.53 1.03,-0.64 0.45,-0.2 0.16,-0.77 -0.12,-0.88 -0.02,-0.51 -0.84,-0.68 -0.83,-1.1 0.48,-0.35 0.14,-0.82 -0.21,-1.07 0.24,-0.6 0.41,-1.25 0.01,-1.83 -0.05,-0.55 1.2,0 0.86,-0.75 -0.45,-0.79 -0.3,-1.85 -1.25,-2.36 -0.47,-0.29 -0.97,-0.56 -1.37,-0.86 -0.42,0.28 -0.85,0.21 -1.19,-0.2 -0.57,-0.6 -1.85,-0.61 -1.72,-1.7 0.17,-0.43 0.1,-1.78 -0.62,-1.22 -0.17,0.44 -0.43,0.74 -0.89,0.86 -0.71,0.92 -2.04,0.24 -2.93,0.86 -0.49,0.28 -0.9,0.12 -1.15,-0.31 -0.68,-0.45 -1.84,-0.44 -2.21,-1.23 0.21,-0.61 -0.04,-1.24 -0.49,-1.61 0.25,-0.59 1.1,-0.28 1.36,-0.78 0.47,0.27 0.94,-0.21 0.51,-0.63 -0.6,-0.41 0.17,-1.39 -0.62,-1.58 -0.8,-0.29 -1.69,0.05 -2.03,0.8 -0.73,0.21 -1.51,-0.02 -1.97,-0.63 -0.45,-0.19 -1.31,-0.18 -0.96,-0.92 0.42,-1.4 2.91,-1.11 2.81,-2.77 -0.02,-0.79 -0.76,-1.12 -1.46,-1.02 -0.74,-0.49 -0.23,-1.62 0.01,-2.28 0.07,-0.84 -0.67,-1.62 -0.2,-2.45 -0.01,-0.95 -1.08,-1.21 -1.63,-1.75 -0.29,-0.44 -0.89,-1.12 -0.22,-1.54 0.59,-0.47 -0.22,-1.14 -0.7,-1.29 -0.29,-0.51 -0.96,-0.67 -1.32,-1.01 0.65,-0.4 0.49,-1.69 -0.42,-1.53 -0.93,0.06 -2.05,-0.18 -2.28,-1.2 -0.52,-0.39 -1.08,-1.35 -0.53,-1.94 0.31,-0.58 0.65,-1.21 1.38,-1.2 0.66,-0.47 -0.77,-0.84 -0.18,-1.34 0.43,-0.32 0.7,-0.79 0.48,-1.28 -0.02,-0.63 0.42,-1.1 0.86,-1.45 0.24,-0.83 0.18,-2.06 -0.9,-2.22 -0.7,-0.32 -0.2,-1.35 -0.83,-1.79 -0.85,-0.67 -1.34,-1.98 -2.45,-2.23 l -0.03,0.01 z", - "department-19" : "m 313.35,352.38 c -1.86,0.13 -2.22,1.42 -2.96,2.7 -1.7,-0.45 -2.02,1.25 -3.41,1.04 0.1,2.65 -3.23,3.39 -4.97,1.84 -1.53,1.04 -2.82,2.64 -4.95,2.95 -1.42,1.63 -2.47,3.68 -4.63,4.05 -0.78,2.4 -3.28,0.32 -4.72,1.32 -0.15,-2.02 -2.14,1.24 -2.3,2.01 -1.89,-1.15 -2.49,2.34 -3.89,3.21 -1.28,0.53 -3.65,-2.27 -4.12,0.75 -1.21,1.38 2.97,2.44 0.01,3.18 -0.68,2.09 4.29,0.8 2.12,3.47 -1.5,0.61 -1.7,2.64 -3.24,3.07 -0.37,1.74 -0.74,3.8 1.62,4.02 0.64,1.56 -3.73,2.47 -1.44,3.5 2.52,-0.79 2.31,2.08 0.75,2.84 2.1,1.86 4.91,0.57 6.95,2.2 -1.97,1.83 -0.08,4.96 1.55,6.77 1.57,0.57 3.76,-3.02 4.88,-0.71 2.49,-1.36 5.15,0.9 6.6,2.82 0.89,1.66 2.62,2.3 3.51,3.98 0.84,-0.76 2.22,0.94 2.83,-0.95 1.95,-0.25 4.19,-4.21 5.12,-0.84 2.18,-2.19 5.35,-1.42 8,-1.89 1.92,-1.72 -3.18,-4.39 -0.13,-5.96 1.44,-0.92 3.38,-0.83 2.82,-3.25 -0.27,-1.27 3.56,-2.56 1.06,-3.66 -2.12,-2.49 1.31,-4.07 2.09,-6.03 1.52,-1.54 3.08,-3.21 4.69,-4.48 0.47,-1.62 0.7,-3.32 -0.12,-4.93 2.48,-0.49 5.95,4.22 7.88,1.25 -2.68,-1.36 -0.86,-4.01 -0.65,-6.27 0.65,-2.61 -0.12,-4.5 -1.81,-6.42 -0.37,-1.09 0.41,-2.79 1.03,-3.68 2.2,0.41 0.72,-2.34 1.39,-3.43 -0.08,-1.62 -1.77,-3.7 -2.72,-1.42 -1.49,2.45 -5.53,-1.84 -5.69,2.21 -1.2,1.04 -3.48,1.86 -3.57,-0.45 -2.4,-0.22 -2.77,-1.54 -4.33,-2.87 -0.57,1 -2.92,0.03 -3.77,-0.11 0.11,-0.94 -1.07,-1.2 -1.5,-1.83 z", - "department-15" : "m 334.72,370.94 c -1.28,1.82 -1.55,4.58 0.43,5.9 -1.81,2.51 -4.37,0.04 -6.57,-1.17 -2.6,-1.06 0.22,2.76 -1.15,4.1 -0.02,1.86 -2.79,1.83 -3.22,3.86 -1.83,1.13 -3.51,3.59 -4.24,5.64 0.35,1.77 2.71,2.41 0.56,3.82 -1.95,0.87 -0.07,4.99 -2.89,4.16 -3.55,0.88 -0.82,4.03 -0.22,5.71 -0.43,1.88 -4.6,-0.03 -2.81,2.9 -0.04,1.62 2.21,2.57 0.46,3.91 0.13,3.08 4.46,4.57 3.6,7.69 -0.92,1.52 -0.85,3.76 -1.46,5.32 3.14,-0.54 0.43,4.14 3.05,4.94 0.99,0 -0.12,-3.03 2.23,-2.19 1.58,-0.83 4.01,-1.56 4.43,0.74 2.75,-0.34 6.48,0.85 7.12,-2.96 2.85,-1.73 1.71,-5.71 4.3,-7.33 -0.14,-2.33 1,-4.52 2.76,-5.39 0.66,-1.77 2.62,-2.11 3.53,-3.79 2.71,0.19 1.23,4.39 2.14,5.14 1.36,-1.39 4.37,-1.42 3.78,1.12 0.34,1.62 0.97,4.51 2.8,3.48 0.84,2.32 -0.52,5.11 1.01,7.65 0.5,1.69 1.9,2.45 2.17,0.12 0.35,-2.14 2.27,-2.85 1.68,-4.93 0.92,-1.91 0.56,-5.47 2.78,-5.83 -0.12,-1.77 1.65,-6.61 3.22,-3.03 1.26,2.36 3.56,-0.59 3.31,-2.05 0.59,-1.14 0.92,-2.65 1.95,-1.09 1.6,-1 4.29,-1.63 3.3,-3.81 1.88,-0.88 -1.23,-1.49 -1.31,-2.37 -2.47,-0.36 0.7,-4.16 -1.68,-4.86 0.04,-1.43 3.56,1.01 2.84,-0.76 -3.52,-0.25 -3.97,-3.78 -3.79,-6.72 -2.86,-0.25 -0.48,-5.68 -3.84,-4.2 -1,0.06 -0.92,-1.73 -2.53,-0.75 -1.83,0.05 -2.03,-0.79 -0.71,-1.66 -1.98,-0.82 1.54,-2.18 -0.51,-2.67 -1.63,1.16 -2.03,4.92 -4.8,3.76 -3.45,-0.77 -2.59,-5.89 -6.01,-5.8 -1.98,-1.95 -3.93,0.16 -6.22,-0.38 -1.82,0.76 -1.98,-2.81 -2.23,-3.3 -2,0.21 -2.37,-1.95 -4.2,-1.04 -0.86,-1.4 -2.85,0.57 -2.19,-1.65 -0.21,-0.26 -0.61,-0.13 -0.87,-0.22 z", - "department-30" : "m 402.45,438.56 c -1.2,2.08 -2.01,3.99 -4.41,4.18 -0.91,2.13 4,4.03 1.37,6.32 -0.45,1.86 3.55,2.45 0.94,3.7 -0.76,1.99 0.11,3.59 0.97,5.15 -2.84,-2.29 -3.24,4.22 -6.65,2.09 -2.84,1.31 -5.14,-3.82 -7.86,-2.71 -1.9,-0.09 0.68,4.12 -2.36,3.87 -3.59,-0.21 -7.54,0.01 -9.81,-3.3 -3.88,-0.94 -1.76,4.82 -5.2,4.63 -0.2,1.99 1.7,1.26 2.49,1.37 0.64,2.2 6.26,1.35 5.12,4.79 -0.92,1.9 -5.78,3.67 -3.13,5.83 2.48,-0.75 3.13,1.64 2.84,3.17 1.93,-1.62 4.32,-2.9 4.52,0.69 1.23,0.34 3.7,1.07 1.85,-0.84 1.05,-1.8 2.07,-3.7 4.36,-3.11 -0.01,-3.76 5,-4.67 6.38,-1.85 2.32,1.17 -2.54,5.3 1.82,4.76 1.89,-0.76 3.45,-1.45 3.7,1.02 2.53,0.02 1.7,2.08 1.81,3.51 2.89,-1.55 4.4,2.61 6.33,3.87 2.8,0.69 3.15,4.82 3.78,7.11 -0.67,2.22 -2.4,3.52 -4.18,3.93 1.03,2.15 2.04,4.41 2.86,6.75 1.85,2.05 3.54,0.51 3.74,-1.66 2.08,-0.46 3.52,-1.72 3.36,-3.55 0.97,2.31 4.15,-0.86 5.01,-1.94 1.98,0.27 2.78,-2.49 0.23,-2.01 -0.41,-2.17 1.81,-4.53 3.24,-5.76 1.92,-1.29 6.52,3.05 5.01,-1.07 0.59,-2.7 2.29,-5.32 1.74,-7.95 1.25,-0.84 -1.73,-1.91 0.74,-2.53 2.32,-1.47 3.71,-3.79 6.04,-5.21 0.4,-1.57 0.8,-2.1 2,-2.68 -1.38,-1.85 -2.67,-6.36 -5.46,-5.62 -1.54,-2.69 0.63,-6.1 -0.98,-8.69 -2.44,0.11 -1.5,-4.81 -4.22,-4.74 -2.14,-0.69 -5.48,-5.75 -7.17,-2.57 0.92,4.08 -4.49,2.27 -2.46,-0.85 -1.91,-1.19 -5.21,1.01 -5.19,3.34 -1.4,3.16 -4.03,-1.21 -5.4,-1.88 -1.7,0.52 -1.47,-2.53 -3.73,-1.05 -1.71,1.8 -2.68,-0.11 -1.46,-1.57 -0.15,-1.56 -0.74,-2.62 0.35,-3.62 -1.57,-1 -0.67,-2.78 -2.91,-3.32 z", - "department-48" : "m 373.48,404.94 c -1.47,0.89 -3.46,3.53 -5.12,1.98 -0.01,1.49 -1.57,1.93 -1.04,3.5 -1.43,1.81 -3.11,1.2 -3.88,-0.85 -2.88,-0.45 -1.07,4.27 -3.39,4.9 -1.4,1.6 -1.16,4.02 -1.76,5.9 0.45,1.49 -1.64,2.13 -1.6,3.92 -1.61,2.48 1.66,4.55 3.09,6.26 2.11,1.84 -1.38,5.67 2.08,6.72 1.92,1.77 1.3,4.27 0.7,6.32 -0.81,2.08 2.13,3.68 0.68,5.63 -1.2,1 -0.69,2.92 0.49,1.55 -0.34,2.49 4.49,1.53 3.22,4.04 -0.61,3.08 3.16,-0.47 4.71,0.57 2.33,-0.24 2.39,2.9 4.55,3.55 1.02,2.18 4.4,1.65 6.21,1.9 1.73,0.64 4.49,-0.1 3.28,-2.39 -0.17,-1.71 2.49,-2.35 3.14,-0.7 2.15,-0.14 3.4,3.16 5.36,2.3 1.4,-0.48 2.81,0.78 3.7,-1.01 1.48,-0.27 0.79,-2.83 2.56,-1.71 0.48,-1.13 -1.37,-1.78 -0.45,-3.23 -0.32,-1.45 2.55,-2.77 -0.12,-3.02 -0.49,-1.4 -1.27,-2.69 0.33,-3.79 -0.9,-1.25 -2.65,-3.18 -2.62,-4.42 1.46,-1.07 3.7,-0.89 3.95,-3.34 1.21,-1.8 0.03,-4.2 -0.54,-6.13 -0.14,-2.55 -3.1,-2.32 -3.01,-4.96 -0.51,-1.42 -0.74,-3.3 -1.23,-4.8 0.21,-0.99 -1.02,-2.2 -0.2,-3.43 -0.96,-0.75 -2.32,-0.83 -1.55,-2.36 -1.84,1.16 -1.86,-1.71 -3.45,-2.23 0.02,-3.18 -3.5,-0.79 -4.63,-2.01 2.18,-2.04 -3.67,-4.45 -2.82,-1.23 0.29,3.23 -3.33,0.7 -4.65,2.81 -2.12,0.38 -2.38,-3.83 -3.37,-5.42 -0.69,-1.57 0.03,-3.98 -2.15,-4.28 l -0.25,-0.51 -0.23,-0.01 -2.2e-4,-1e-4 z", - "department-63" : "m 350.25,319.87 c -2.41,0.1 -1.39,6.08 -4.36,2.69 -2.2,-1.55 -1.13,2.91 -3.36,2.6 -0.99,2.15 -2.4,5.06 -4.99,2.48 -3.53,1.71 0.74,5.9 1.02,8.31 0.33,2.26 -0.13,3.09 -1.85,4.34 -0.59,3.07 -2.87,5.1 -5.46,5.93 -0.78,1.08 -3.3,2.29 -0.7,4.14 1.84,2.94 6.68,6.33 3.76,10.01 -3.59,1.58 -0.37,5.2 0.63,7.47 -1.63,3.1 2.57,5.33 4.8,4.69 1.04,1.88 3.32,0.49 2.64,2.92 1.95,3.55 6.09,-0.43 8.67,2.01 3.48,0.74 2.44,6.76 6.82,5.67 2.39,-1.04 2.55,-4.68 5.97,-4.03 2.84,-0.11 5.33,-4.21 7.45,-3.45 1.17,-0.15 2.17,-1.54 3.06,0.31 2.88,1.39 5.17,-2.92 7.03,0.16 3.24,-0.64 2.05,6.51 5.21,2.85 1.13,-3.37 5.41,3.07 6.68,-1.35 0.83,-2.19 5.07,4.34 4.28,-0.59 0.72,-2.92 5.73,-4.1 3.45,-7.91 -0.98,-3.57 -2.63,-6.42 -6.17,-8.13 -2.69,-2.1 -1.82,-6.45 -4.74,-8.34 -0.45,-1.7 -2.19,-2.8 -0.35,-4.4 -0.69,-2.91 2.62,-4.84 -0.62,-6.96 -2.59,-1.57 -3.98,-4.12 -5.91,-6.12 -2.16,0.37 -6.24,1.62 -5.45,-1.98 -1.98,-2.68 -5.33,1.55 -7.73,-0.76 -2.66,-0.65 -5.11,0.01 -7.56,-0.72 -1.51,-1.52 -2.18,-2.56 -4.49,-2.07 -3.09,-0.49 -3.15,-3.91 -5.15,-5.29 0.27,-2.13 2.01,-5.11 -1.71,-4.35 l -0.47,-0.05 -0.43,-0.12 0,0 z", - "department-42" : "m 397.37,318.49 c -1.6,0.83 -3.4,1.29 -4.64,2.21 -1.3,0.59 1.02,2.59 0.48,3.98 0.61,1.85 -0.41,4.23 1.11,6.23 -1.61,2.5 2.37,7.25 -2.15,7.3 -1.09,-0.11 -1.49,1.09 -2.88,0.34 -2.32,2.56 2.22,3.36 1.74,5.81 -1.98,1.61 -0.24,4.65 -2.31,6.15 1.69,0.49 1.3,2.13 2.33,2.91 2.23,1.34 1.14,4.92 3.25,6.83 1.78,1.97 5.01,2.91 6.17,5.68 -1.24,2.45 2.85,3.93 0.67,5.95 0.89,3.06 -5.47,3.2 -3.23,7.04 0.42,3.41 2.25,-3.4 4.17,-0.43 0.87,1.44 1.19,2.02 2.38,0.77 1.23,1.18 1.39,0.75 2.25,-0.33 1.05,-0.89 3.38,0.13 2.65,-1.8 2.25,-0.56 4.93,-0.17 6.2,1.72 1.74,-1.96 5.45,1.48 2.47,2.65 0.55,1.23 1.98,1.3 0.84,2.91 0.86,2.54 3.62,-1.67 4.48,1.3 1.58,2.36 4.9,0.89 6.79,-0.08 -1.25,-1.91 1.2,-3.4 2.26,-5.02 1.49,-1.32 5.89,-1.48 4.47,-4.32 -0.52,-1.74 0.97,-3.48 -0.58,-5.25 -0.48,-1.69 -3.61,1.7 -3.93,-1.3 0.42,-2.1 -0.24,-3.68 -1.93,-4.86 -1.43,0.06 -2.67,-1.02 -4.29,-0.14 -2.32,-0.62 -2.91,-2.86 -5.1,-4.24 -1.42,-1.8 -2.51,-3.8 -0.78,-6.03 1.82,-2.31 -3.43,-0.74 -1.14,-3.43 0.94,-1.31 1.04,-3.98 1.15,-5.42 -2.5,-0.01 -3.12,-2.67 -2.32,-4.33 -1.63,-1.26 -2.43,-3.07 -4.07,-4.21 0.9,-0.54 3.97,0.36 2.35,-1.72 -1.31,0.09 -3.3,-2.79 -0.85,-2.47 1.97,-1.74 0.65,-5.53 4.11,-6 0.97,-0.45 2.45,1.37 2.78,-0.77 -0.25,-1.57 -2.38,-2.12 -0.65,-3.5 -1.51,-1.51 -2.16,1.22 -2.41,1.83 -1.97,-0.74 -4.16,3.26 -5.16,1 1.12,-2.05 -1.54,-0.14 -2.23,-1.49 -1.1,1.9 -3.25,0.89 -4.63,-0.3 -2.08,0.61 -5.43,3.53 -6.14,-0.27 -1.61,-0.39 -4.74,-0.44 -2.93,-2.93 0.29,-0.63 0.34,-2.13 -0.72,-1.99 z", - "department-69" : "m 433.73,316.51 c -1.23,0.46 -2.5,0.15 -2.78,2.07 -0.74,1.45 -2.37,-0.51 -2.67,-1.28 -0.69,1.49 -2.76,2.38 -3.71,0.45 -1.68,-1.33 -4.39,-0.82 -4.01,1.84 -0.71,1.65 0.63,2.41 1.38,3.48 -2.55,0.77 0.51,1.73 0.61,2.71 -0.41,1.66 -1.38,2.06 -2.7,1.09 -2.04,0.63 -3.43,2.17 -3.25,4.46 0.34,2.11 -3.89,1.45 -1.52,3.28 0.64,0.85 2.57,0.6 1.5,2.34 -0.59,0.49 -3.83,-0.49 -1.93,0.9 1.83,0.38 1.7,2.77 3.5,3.41 0.3,1.24 -1.23,2.13 0.17,3.34 0.85,1.23 3.47,0.4 1.96,2.6 -0.03,1.87 -0.27,3.49 -1.48,4.83 0.06,1.49 3.29,0.29 1.61,2.31 -1.06,1.85 -1.32,4.02 0.45,5.41 1.27,1.35 2.68,3.31 4.18,4.13 1.51,1.5 3.36,-0.41 4.88,1.05 1.7,-0.73 1.49,2.06 2.91,2.19 -1.19,1.71 0.21,5.2 2.42,3.21 1.24,-1.16 2.04,4.15 2.96,1.45 1.23,-1.41 3.83,-2.33 3.98,-4.32 -1.76,-0.7 -2.47,-2.54 -4.09,-3.51 1.84,-0.94 3.53,1.28 4.58,-0.77 1.51,-1.17 4.45,-0.14 5.27,-1.51 0.95,-0.25 2.74,0.97 2.03,-1.03 1.24,-1.85 2.79,-4.63 5.26,-4.54 0.24,-2.22 -3.33,-1.77 -3.23,-3.97 -1.59,-0.5 -1.14,-2.19 0.43,-1.77 0.7,-2.69 -4,-0.18 -5.55,-0.99 -1.61,0.21 -2.66,0.21 -2.4,-1.73 -0.63,-1.95 -1.32,-4.61 -3.64,-4.95 -0.96,0.68 -1.86,1.05 -1.38,-0.57 -0.83,-1.37 -2.55,-0.91 -3.49,-1.92 2.14,-2.03 -0.39,-5.26 0.95,-7.43 1.04,-0.99 -1.1,-2.32 0.59,-3.24 1.49,-1.45 2.32,-4.9 -0.84,-4.45 -2.61,-1.01 0.89,-5.07 -2.78,-5.24 -1.21,-1.33 2.19,-1.14 0.43,-2.68 -0.12,-0.26 -0.3,-0.58 -0.61,-0.66 z", - "department-43" : "m 379.31,374.73 c -1.62,2.39 -4.9,1.8 -6.71,0.33 -0.7,1.72 -0.87,1.21 -1.91,0.1 -0.8,1.98 -3.58,1.56 -4.38,3.23 -1.25,1.09 -2.57,1.35 -4.33,1.17 0.74,1.5 -1.58,1.78 -0.04,2.79 -2.08,1.77 1.79,1.15 2.36,1.2 -0.13,1.97 3.13,-0.54 2.89,1.98 -0.29,1.8 0.97,2.96 2.14,3.73 -0.86,2.28 -0.05,5.34 2.48,5.9 2.93,0.43 -0.37,2.07 -1.36,0.74 -1.49,0.56 1.82,1.51 0.26,2.94 -1.01,2.64 2.59,2.31 2.97,4.1 -2.04,1.24 0.26,1.73 1.03,2.74 1.8,0.69 0.7,3.92 2.11,5.44 0.56,1.74 1.53,5.67 3.68,3.09 2.13,0.18 4,-0.58 3.52,-3.06 1.72,-1.57 4.47,0.99 3.25,2.73 2.03,-0.35 4.24,-0.91 4.56,1.81 1.6,0.42 1.42,3.2 3.32,1.95 -0.31,0.86 -0.01,2.7 1.4,1.48 3.08,-0.04 2.22,-4.19 4.35,-5.07 0.8,1.72 0.74,-0.65 2.16,-0.3 0.91,-0.43 0.22,-3.47 2.51,-2.52 2.14,-0.66 5.33,0.63 5.55,-2.64 1.54,-1.36 1.15,-4.48 3.81,-3.54 1.57,0.05 2.24,-1.12 0.99,-2.15 -1.14,-2.94 5.69,-1.67 3.23,-3.83 -1.6,-1.11 -0.01,-3.44 1.47,-3.61 -1.01,-0.84 -1.65,-2.84 0.52,-2.06 0.75,0.25 1.93,2.57 1.79,0.63 -0.57,-2.5 2.93,-4.77 1.26,-7.19 -1.2,-1.98 -2.64,-2.48 -4.48,-1.26 -2.08,-0.82 0.53,-3 -1.95,-3.68 1.6,-1.09 1.44,-3.36 -0.89,-3.47 -2.17,2.19 -2.9,-2.58 -5.24,-0.98 -1.45,-1.18 -2.23,0.2 -2.36,1.14 -1.72,-0.24 -2.79,0.8 -3.72,1.87 -0.74,-1.86 -1.9,-0.59 -2.28,0.4 -0.52,-2.16 -2.78,-4.05 -4.23,-1.53 -0.3,1.52 -1.03,1.38 -1.49,0.05 -2.13,0.67 -3.37,-3.95 -4.67,-1.3 0.12,2.86 -4.25,0.82 -5.13,-0.4 -0.84,1.48 -2.99,4.23 -4.08,1.09 -0.06,-2.97 -3.34,-1.73 -4.39,-4.01 z", - "department-07" : "m 436.62,378.68 c -2.11,1.19 -5.05,1.82 -5.73,4.31 -0.61,0.74 -1.7,1.47 -0.63,2.83 -1.48,1.55 -5.39,0.21 -5.65,3.05 -0.4,2.17 -2.13,4.1 -1.51,6.11 -0.82,1.35 -2.2,-3.55 -3.34,-0.83 2.87,1.6 -1.37,1.64 -1.06,3.7 -0.07,1.01 2.58,2.11 0.3,2.78 -2.43,-0.04 -3.73,1.92 -2.22,3.92 -1.62,1.35 -4.39,-0.37 -4.36,2.53 -1.51,1.8 -1.89,5.12 -5.04,3.9 -1.64,0.68 -4.72,-0.35 -3.54,2.75 -1.69,0.44 -2.07,1.93 -3.57,0.7 -0.65,2.39 -1.67,4.38 -3.7,5.18 0.05,1.23 -0.23,2.66 0.56,3.58 -0.09,2.42 0.91,5.06 1.8,7.31 3.3,1.24 2.04,5.97 4.07,8.24 1.96,0.49 1.37,2.56 2.59,3.64 -1.74,0.94 0.2,3.57 -1,5.13 1.45,0.08 4.13,-2.2 4.71,0.49 2.27,-0.88 3.84,4.84 5.98,2.4 0.11,-2.69 3.06,-5.02 5.54,-4.01 -0.84,1.71 0.49,4.93 2.22,2.69 -1.12,-4.19 4.37,-2.87 5.2,-0.35 2.07,1.28 5.06,2.67 3.99,-1.18 -0.44,-2.49 0.5,-4.84 0.92,-7.23 2.57,-1.67 0.05,-4.72 1.41,-6.94 -1.34,-2.75 2.73,-3.36 2.63,-6.07 2.5,-3.08 -0.98,-6.81 0.47,-10.07 2,-1.59 2.83,-4.11 4.16,-6.22 -0.81,-2.28 2.55,-4.4 -0.11,-6.44 -1.37,-1.98 -0.41,-4.12 -0.17,-5.92 -1.82,-0.69 -0.96,-3.19 -2.25,-4.49 1.8,-2.26 -0.83,-5.08 0.05,-7.93 1.49,-3.08 -3.02,-4.17 -1.77,-7.12 l -0.36,-0.33 -0.59,-0.1 0,0 z", - "department-26" : "m 448.07,380.12 c -2.89,1.17 -5.09,3.5 -8.19,2.69 -0.39,2.66 -1.05,6.79 0.49,9.42 -1.96,1.97 0.32,3.64 0.34,5.76 2.35,1.37 -0.99,4.81 1.33,6.93 2.06,2.38 -0.62,5.13 -0.81,7.77 -1.22,2.58 -4.32,4.41 -3.69,7.71 1.66,3.46 0.06,6.59 -1.3,9.7 -3.02,0.93 -0.83,4.24 -2.03,6.3 0.95,3.33 -2.55,6.12 -1.92,9.81 1.2,3.03 7.51,-0.99 7.1,4.18 0.14,2.04 0.67,4.67 2.58,1.79 2.97,-0.92 6.04,-2.27 9.06,-3.52 1.12,3.67 4.14,-0.81 5.13,-0.14 -0.85,1.68 -0.59,3.54 -0.5,5.19 1.36,1.14 3.35,1.14 4.16,-0.1 1.72,1.86 4.28,0.89 5.95,1.95 0.03,1.94 0.09,3.52 2.41,3.44 1.06,4.04 4.77,0.96 6.47,-0.43 -1.58,-2.47 1.9,-2.75 3,-1.1 1.64,-1.37 2.06,-2.86 1.41,-5.21 1.53,-2.36 -2.87,-0.24 -1.73,-2.96 -1.59,-0.67 -0.77,-1.18 -0.59,-2.32 -2.51,0.48 -4.35,-1.04 -6.35,-0.89 -1.23,-1.45 -2.87,-1.53 -2.12,-3.69 -1.62,-1.67 -0.01,-2.82 1.69,-1.61 2.12,-0.83 -1.87,-1.85 -0.65,-3.64 -0.28,-2.93 4.33,0.48 6.05,0.59 1.73,0.39 1.15,-2.66 3.01,-2.35 -1.71,-1.67 -3.84,-2.97 -1.6,-5.43 1.79,-1.45 -0.55,-5.71 2.99,-3.98 1.94,0.82 3.33,-0.86 4.9,-1.06 1.29,-0.88 2.08,-3.19 -0.35,-2.44 -2.24,0.57 -3.91,-2.09 -6.41,-1.58 -1.16,-1.43 -2.84,-3.52 -4.34,-3.81 0.14,1.78 -6.09,-0.53 -3.44,-2.33 -1.37,-2.79 0.85,-6.84 0.11,-10.1 0.96,-2.47 -1.42,-5.35 0.09,-7.37 -2.07,0.93 -4.59,4.84 -6.88,1.6 -1.84,0.62 -4.04,-0.31 -5.88,-1.61 -1.29,0.02 -2.1,2.02 -3.13,0.34 2.95,-1.62 2.73,-5.57 1.54,-8.29 2.1,-1.71 -0.25,-3.63 -2.12,-2.9 0.27,-1.74 0.99,-4.37 -1.59,-2.47 -1.31,0.06 -1.04,-2.86 -3.02,-2.37 -0.42,-0.45 -0.36,-1.52 -1.19,-1.46 z m -1.27,60.35 c 2.68,0.18 1.93,3.2 4.79,3.14 -1.88,1.51 -2.98,3.63 -4.06,5.91 -1.76,-1.35 -5.66,0.15 -4.33,-3.15 -1.66,-0.66 1.47,-2.81 1.37,-4.36 0.67,-0.62 1.73,-0.72 2.23,-1.54 z", - "department-84" : "m 446.86,440.69 c -1.95,0.68 -2.59,2.23 -3.24,3.95 -1.54,1.08 0.24,1.84 -0.38,3.25 0.79,1.16 2.95,0.74 4.3,1.12 1.33,-1.76 1.41,-4.26 3.76,-4.92 -0.23,-0.92 -2.69,-0.73 -2.57,-2.42 -0.66,-0.27 -1.12,-0.97 -1.86,-0.99 z m -10.7,6.69 c -1.75,0.63 -4.36,-0.72 -3.75,2.23 -0.47,1.96 1.22,3.5 1.32,5.13 2.22,-0.26 1.8,3.29 1.6,4.89 -0.71,1.78 -0.16,4.41 1.97,3.57 1.39,1.79 2.8,3.83 3.94,5.76 0.11,1.52 -2.28,0.28 -1.54,2.26 -0.27,1.54 -4.74,2.54 -1.78,2.92 1.98,0.36 4.26,0.33 5.81,1.82 2.69,0.61 4.43,2.7 6.08,4.74 0.55,2.14 2.45,3.17 4.31,4.09 2.3,2.43 5.12,0.03 7.83,1.23 2.38,1.21 4.48,2.96 6.96,4.03 2.69,1.26 6.11,1.9 8.79,0.34 1.35,-1.61 3.7,-0.97 4.73,-3.09 0.97,-1.51 -1.94,-2.24 -1.96,-3.86 -1.56,-1.86 -3.42,-4.41 -6.24,-2.8 -2.07,0.95 -0.48,-2.95 0.61,-3.43 0.51,-1.33 1.55,-2.66 -0.1,-3.23 -0.29,-2.08 -4.3,-0.54 -3.06,-3.3 0.45,-2.01 1.86,-3.87 1.45,-6.01 -1.1,0.12 -2.63,0.07 -2.14,-1.74 0.53,-2.35 -2.66,-1.28 -2.71,-3.51 -1.05,-0.88 -3.35,-0.4 -2.48,-2.73 -0.01,-3.12 -4.03,-0.26 -5.3,-2.66 -1.51,-1.06 -0.98,1.74 -2.66,0.68 -2.01,-0.15 -3.06,-1.35 -2.27,-3.12 -1.69,-0.64 1.81,-3.73 -0.28,-2.95 -1.07,2.14 -3.56,1.91 -4.6,0.21 -2.41,0.78 -4.55,2.65 -7.11,2.79 -1.53,-0.33 -4,4.19 -3.94,0.55 -0.37,-2.16 -0.51,-5.06 -3.51,-4.81 z", - "department-13" : "m 436.6,474.08 c -0.74,1.85 -4.74,2.73 -4.06,4.51 1.26,0.66 -1.41,1.72 -0.12,3.06 0.08,2.7 -2.74,5.11 -1.37,7.86 -2.28,-0.28 -6.4,-2.34 -7.04,1.21 -2.02,1.17 -2.34,4.33 0.25,4.07 -0.26,2.18 -2.99,1.15 -3.24,3.2 -2.53,0.88 -3.65,1.48 -5.33,3.13 -3.12,0.45 -3.32,4.69 0.25,3.69 2.78,0.47 5.55,1.05 8.35,0.35 2.37,-0.45 7.29,1.42 4.55,4.28 -0.6,3.55 5.03,2.05 7.33,2.58 1.71,0.43 5.71,0.01 2.7,-2.11 -3.88,-1.35 -2.85,-5.16 -3.05,-8.31 -0.04,-1.21 -2.55,-5.59 -0.42,-2.89 1.89,2.36 1,5.34 0.95,8.05 0.88,2.13 3.62,3.05 5.46,4.22 1.53,-0.81 -2.25,-2.45 0.5,-3.11 1.91,-1.46 4.03,-0.52 5.49,0.58 3.35,0.39 4.55,-4.15 1.3,-5.2 -0.68,-1.48 -0.16,-6.09 1.79,-3.06 2.23,-0.56 2.91,0.56 2.79,2.29 1.26,2.1 3.09,1.09 4.71,0.38 1.06,3.09 -3.48,5.94 -6.44,5.14 -4.78,-0.48 -3.49,6.19 0.68,5.18 2.9,-0.06 6.07,0.58 8.6,-1.26 3.09,-1.75 3.91,2.83 3.27,4.72 2.03,1.28 -2.35,4.61 1.58,4.55 2.59,-0.26 5.17,0.78 7.33,0.32 0.97,2.95 3.72,1.97 5.67,1.14 -0.33,-3.01 1.95,-4.41 4.07,-5.87 -0.58,-2.14 -2.28,-2.58 -3.96,-3.03 2.56,-1.22 -1.49,-6.49 2.6,-5.65 1.54,0.73 3.39,-0.95 1.08,-1.75 -1.32,-1.96 -3.23,-3.39 -1.84,-5.73 2.26,-2.81 -4.73,-2.76 -1.41,-4.42 -0.82,-3.37 2.37,-4.88 5.13,-5.19 1.46,-1.69 -2.03,-5.66 -3.21,-2.42 -1.87,0.81 -3.79,1.87 -5.79,2.74 -4.96,0.73 -9.29,-2.44 -13.26,-4.94 -3.21,-1.31 -6.53,0.84 -9.27,-1.96 -2.79,-0.81 -2.96,-3.66 -4.98,-5.35 -1.7,-2.34 -4.64,-3.03 -7.08,-4.31 -1.52,-0.14 -3,-0.57 -4.52,-0.71 z", - "department-83" : "m 517.2,482.16 c -2.21,0.45 -4.51,0.15 -4.56,3.03 -1.71,2.89 -5.34,-0.75 -6.7,-2.47 -3.07,-2.54 -3.41,4.73 -6.6,3.29 -1.58,1.5 -2.96,3.5 -4.46,4.67 -1.25,-1.47 -1.71,-3.25 -3.55,-3.95 0.03,-1.86 -1.87,-1.86 -1.91,-0.09 -1.33,1.02 -2.66,0.95 -3.16,-0.75 -1.91,-1.9 -4.18,0.89 -2.09,2.04 0.53,1.23 1.97,1.94 0.53,3.38 -2.84,-0.21 -5.92,2 -4.84,5.1 -3.44,1.27 3.35,1.25 1.35,3.57 -0.22,1.94 -1.24,3.31 0.74,4.69 0.22,1.73 4.1,2.93 0.81,3.75 -2.63,-1.28 -3.72,1.11 -2.27,3.16 -1.33,1.63 -0.65,2.88 1.29,2.7 1.09,1.33 2.34,3.31 -0.22,3.83 -2.89,1.3 -2.33,4.54 -1.48,6.82 1.05,1.11 2.71,1.01 3.71,1.52 -0.45,1.28 3.17,1.21 0.61,2.02 -2.2,1.64 1.53,2.03 2.31,3.24 1.87,0.49 2.01,-2.69 4.02,-1.64 0.25,-1.17 -3.62,-2.32 -0.77,-2.94 1.5,-0.75 1.25,1.72 3.11,0.9 1.98,-0.44 2.88,1.82 4.97,0.72 2.49,0.17 1.79,3.18 -0.25,3.1 1.03,0.17 3.75,1.02 4.22,-0.22 -1.87,-1.01 -0.43,-5.47 2.18,-4.51 2.27,-1.02 4.3,0.74 5.47,2.2 2.95,0.7 -0.7,-3.95 2.56,-4.14 1.82,-1.17 4.32,-0.11 5.81,-1.82 1.19,-1.87 3.53,-0.69 3.91,0.87 1.83,-0.26 1.02,-2.97 3.25,-2.97 -1.94,-1.52 0.52,-2.56 0.71,-4.09 -0.88,-1.35 -6.14,0.84 -4.2,-1.29 1.98,-0.49 3.13,-1.3 3.41,-3.27 3.09,-0.38 1.58,-4.33 3.42,-5.76 2.02,1.51 4.49,0.53 6.29,-0.38 1.97,-1.45 2.07,-3.69 -0.21,-4.86 0.39,-1.48 -0.82,-2.76 0.73,-4.13 0.32,-1.33 0.43,-3.31 -1.68,-2.51 -2.08,-0.91 -4.86,-2.77 -4.6,-5.2 1.21,-2.45 -1.26,-3.59 -2.82,-4.44 -1.3,-0.4 -2.5,0.43 -2.84,-1.45 -0.36,-2.95 -3.06,-1.75 -4.46,-0.37 0.04,-0.84 -0.83,-2.43 -1.72,-1.38 z", - "department-06" : "m 534.65,445.17 c -2.26,1.07 -5.06,2.58 -4.36,5.66 -3,-0.21 -3.04,3.43 -4.06,5.54 -1.08,2.46 0.95,4.86 2.25,6.92 -1.14,3.22 2.36,4.62 4.05,6.69 0.63,2.61 3.53,3.37 4.77,5.63 -2.57,2.29 -4.92,-3.17 -6.86,-0.03 -0.74,2.32 -3.13,1.4 -4.56,1.36 1.15,1.61 -2.67,2.88 0.34,3.69 1.19,1.89 -4.95,1.17 -2.32,3.78 0.53,1.35 2.49,-0.04 3.3,1.63 2.89,-0.16 1.89,3.58 2.03,5.2 1.45,1.97 3.65,3.89 6.12,3.69 1.22,2.02 -1.58,4.04 -0.48,6.02 -0.26,2.6 3.76,2.43 2.74,-0.52 1.75,-2.03 4.78,-1.82 7.05,-2.83 2.15,2.34 0.79,-2.94 1.42,-4.1 0.35,-2.64 3.85,-1.42 4.44,-3.92 1.43,-0.64 4.04,-1.22 4.41,0.38 0.69,-1.18 0.32,-2.51 2.45,-2.28 -0.13,-1.76 1.58,-4.07 3.07,-2.16 1.7,0.06 1.19,-2.66 3.34,-2.27 -0.27,-2.4 -3,-5.81 0.3,-7.3 1.54,-1.45 0.99,-4.2 3.51,-4.76 2.78,-1.39 1.89,-4.43 4.17,-6.12 1.59,-2.77 -3.27,-4.24 -1.5,-7.3 -1.21,-2.71 -2.61,1.55 -4.47,0.73 -2.22,0.84 -4.68,1.32 -6.76,2.38 -2.04,0.2 -3.62,-0.51 -4.81,-1.86 -2.43,0.52 -3.44,-1.96 -5.53,-2.49 -1.15,-2.34 -3.58,-0.83 -4.96,-2.82 -1.54,-1.59 -4.78,0.61 -4.95,-2.66 -1.4,-1.9 -2.37,-3.95 -3.93,-5.85 l -0.23,-0.02 -1.8e-4,10e-5 z", - "department-04" : "m 536.03,425.47 c -1.91,1.96 -3.88,3.46 -6.49,4.44 -1.02,2.88 -4.75,3.12 -5.32,6.34 -1.11,1.83 -1.21,3.9 -4.02,3.07 -3.01,-0.06 -6.66,-0.3 -8.11,-3.08 -0.64,-1.8 -3.43,-1.98 -2.19,0.22 -0.26,3.25 -2.7,-0.14 -4.23,1.68 -1.44,0.61 2.06,5.8 -1.43,5.09 -2.1,-2.16 -2.71,-5.63 -6.09,-5.69 -0.87,3.33 -6.54,3.63 -7.12,7.81 -0.96,1.13 -2.01,2.66 -0.4,3.1 -0.61,1.4 0.72,5.52 -1.66,2.94 -0.44,-1.65 -2.49,-3.59 -2.83,-0.6 1.02,1.86 2.62,3.82 3.95,5.12 -2.91,0.83 -6.3,-2.29 -9.28,0.12 -0.78,0.38 -3.94,0.37 -2.37,1.8 0.52,0.59 -1.17,0.62 -1.27,-0.25 -1.21,-2.36 -3.58,-0.6 -2.43,1.22 -2.05,0.82 -5.12,3.55 -2.92,5.69 3.34,-0.23 0.15,4.71 -0.09,6.55 -0.21,2.32 3.26,0.85 3.55,3.17 2.24,1.52 -3.59,5.18 -1.33,6.48 2.81,-2.13 5.06,0.73 6.7,2.59 0.57,1.46 2.26,4.38 3.61,1.7 2.13,0.13 4.41,4.24 5.38,0.42 1.94,-1.62 1.55,2.48 3.59,2.29 0.43,1.7 2.31,4.04 2.93,1.23 2.03,-0.76 2.24,-3.96 4.52,-2.9 1.73,-1.32 3.93,-6.5 5.92,-2.58 1.76,2.61 6.67,4.01 6.46,-0.53 1.66,-0.48 3.88,-1.21 5.41,-0.9 0.99,2.9 3.19,-2.27 4.59,0.48 1.62,-0.3 5.25,-1.56 1.66,-2.44 0.5,-1.52 2.15,-2.44 0.07,-3.65 2.45,0.82 5.17,0.99 6.43,-1.88 1.98,-0.91 4.27,3.34 5.6,0.53 -2.39,-1.94 -3.94,-3.66 -5.54,-6.13 -1.97,-1.55 -3.7,-3.16 -3.01,-5.85 -1.63,-2.1 -3.46,-4.86 -1.89,-7.35 0.29,-2.57 2.02,-4.78 3.68,-5.75 -0.2,-4 5.64,-3.6 4.5,-7.78 -0.28,-2.01 3.78,-1.57 1.15,-3.33 -2.21,-1.59 -4,-5.51 -0.76,-7.08 1.56,-1.02 4.77,-6.03 1.11,-6.32 z", - "department-05" : "m 505.98,394.66 c -0.92,0.25 -1.63,1.24 -1.1,2.16 0.19,0.48 0.58,1.51 -0.28,1.51 -1.03,0.5 -0.62,1.96 -1.08,2.79 -0.5,0.85 0.81,1.35 1.44,1.52 1.22,0.46 2.5,-0.16 3.7,-0.25 0.54,0.61 -0.39,1.36 0.2,1.99 0.46,0.55 -0.24,1.49 0.61,1.76 1.28,0.11 1.04,1.22 0.99,2.19 0.04,1.33 -0.36,2.63 -0.12,3.94 -0.53,0.79 -1.69,0.39 -2,-0.4 -0.51,-1.19 -2.09,-0.47 -2.63,0.32 -1,0.97 -2.33,-0.4 -3.46,0.21 -0.85,0.38 -1.73,-1.03 -2.42,-0.12 -0.98,1 -2.08,1.88 -3.19,2.74 -0.6,-0.52 -1.36,-2.29 -1.99,-0.92 -0.19,0.45 -0.47,0.63 -0.95,0.63 -0.5,0.26 -1.64,0.37 -1.59,1.05 0.28,0.44 1.46,0.83 1.02,1.47 -0.54,0.3 -1.13,0.65 -1.29,1.26 -0.7,-0.05 -1.3,0.89 -1.97,0.42 -0.72,-0.21 -1.09,0.98 -1.85,0.43 -0.58,0.09 -1.28,-0.82 -1.74,-0.36 0.25,1.1 -0.94,2.04 -0.76,3.1 0.52,0.18 0.81,0.66 0.78,1.23 -0.53,0.61 -1.46,0.99 -1.58,1.94 -0.18,0.9 -1.25,0.06 -1.79,0.32 -0.68,0.37 -1.24,1.41 -2.12,0.79 -0.93,-0.21 -2.04,-0.85 -2.95,-0.39 -0.57,0.89 0.83,2.18 -0.26,2.82 -0.65,0.74 -0.7,1.84 -1.37,2.59 -0.33,0.63 -0.72,1.79 0.31,1.98 1.01,0.26 1.61,1.36 2.24,2.13 -0.07,0.59 -1.06,0.18 -1.47,0.37 -0.6,0.27 -0.26,1.22 -0.74,1.67 -0.29,0.65 -1.01,0.59 -1.49,0.18 -0.57,-0.34 -1.27,-0.05 -1.74,-0.61 -0.9,-0.62 -2,-0.67 -3.03,-0.83 -0.44,-0.35 -1.26,-0.9 -0.84,0.18 0.34,0.85 -0.18,1.94 0.35,2.71 0.46,0.27 1.64,0.66 1.06,1.38 -0.5,0.81 -1.41,0.3 -2.05,-0.05 -0.52,-0.37 -1.25,0.09 -0.87,0.7 0.33,0.77 0.86,1.66 0.62,2.5 -0.66,0.38 0.12,0.97 0.62,0.79 0.61,0.08 0.48,1.09 1.17,1.15 0.27,0.47 0.79,0.78 1.25,0.32 0.66,-0.57 1.26,0.29 1.64,0.72 1.26,0.36 2.77,-0.21 3.93,0.31 -0.15,0.66 -1.33,1.39 -0.16,1.75 0.4,0.17 0.78,0.55 0.44,0.97 -0.13,0.75 0.67,1.6 1.38,1.06 0.44,-0.36 1.29,0.39 0.73,0.76 -0.45,0.57 -0.47,1.41 -0.01,1.94 -0.06,0.96 -0.14,2.01 0.32,2.89 0.74,-0.36 1.48,-0.84 2.32,-1.03 0.89,-0.54 2.04,-0.3 3.03,-0.47 1.36,0.7 2.9,1.36 4.48,1.28 0.82,-0.57 -0.52,-1.06 -0.97,-1.25 -0.83,-0.92 -1,-2.37 -2.18,-3.02 -0.89,-0.61 -0.47,-1.72 -0.01,-2.44 0.2,-0.82 1.38,-0.21 1.78,0.12 0.44,0.5 0.07,1.39 0.76,1.79 0.27,0.34 1.29,1.11 1.39,0.28 -0.46,-0.7 -0.4,-1.72 0.04,-2.4 0.24,-0.63 -0.28,-0.96 -0.8,-0.99 -0.4,-0.58 -0.19,-1.66 0.53,-1.93 1.11,-0.98 1.03,-2.64 1.93,-3.7 0.84,-0.83 2.18,-1.02 2.91,-1.96 0.3,-0.69 1.08,-1.23 1.8,-1.37 0.77,0.34 0.76,-0.99 0.72,-1.47 0.2,-0.8 1.42,-0.33 1.96,-0.19 0.77,0.29 1.87,0.6 1.76,1.64 -0.03,0.5 0.41,0.7 0.8,0.64 0.65,1.23 1.63,2.21 2.33,3.38 0.67,0.53 1.08,-0.73 1.28,-1.18 0.53,-1.39 -0.98,-2.61 -0.83,-3.89 0.95,-0.06 1.68,-0.79 2.53,-1.06 0.55,0.33 1.53,1.41 2.02,0.36 0.44,-0.73 0.48,-1.61 -0.08,-2.27 0.17,-0.42 0.83,-0.77 1.24,-0.86 0.91,1 1.94,1.96 2.46,3.23 0.51,0.3 1.22,-0.11 1.7,0.41 0.56,0.61 1.25,1.09 2.14,1 1.98,0.14 3.96,0.2 5.94,0.29 0.53,-0.84 0.08,-2.27 1.05,-2.94 1.09,-0.75 1.13,-2.18 1.48,-3.28 1.39,0.19 2.51,-0.88 3.23,-1.94 0.77,-0.23 0.49,-1.3 1.27,-1.53 0.82,-0.72 1.93,-0.86 2.92,-1.25 0.49,-0.42 0.51,-1.23 1.32,-1.26 0.83,-0.36 1.14,-1.4 1.93,-1.78 0.77,0.27 1.79,0.29 2.08,-0.66 0.66,-1.38 2.4,-1.81 3.71,-1.06 0.39,0.18 1.29,0.5 1.12,-0.27 0.09,-1.44 -0.99,-2.46 -1.92,-3.38 -0.16,-1.25 0.2,-2.81 -0.7,-3.82 0.26,-0.63 1.23,-1.27 0.5,-1.95 -0.48,-0.56 -0.7,-1.27 -1.5,-1.47 -0.9,-0.29 -1.99,-1.36 -2.93,-0.65 -1.03,0.93 -2.61,0.14 -3.63,-0.46 -1.39,-1.22 -3.06,-2.05 -4.52,-3.16 -0.14,-0.64 0.04,-1.36 -0.18,-2.01 0.26,-0.67 0.64,-1.39 0.32,-2.14 -0.46,-0.77 -0.27,-1.65 -0.34,-2.48 -0.67,-1.47 -2.82,-0.12 -3.68,-1.29 -0.42,-1.05 0.19,-2.49 -0.93,-3.24 -0.45,-0.58 -0.89,-1.29 -0.84,-2.02 -0.58,-0.55 -1.68,-0.52 -2.38,-0.21 -0.4,0.9 -1.61,1.62 -2.44,0.8 -0.83,-0.16 -1.61,0.86 -1.3,1.66 0.16,0.65 0.15,1.68 -0.74,1.69 -0.9,0.39 -1.54,-0.53 -2.43,-0.47 -0.85,-0.07 -1.72,-0.21 -2.49,-0.62 0.67,-1.13 -0.23,-2.74 -1.37,-3.11 -0.83,0.45 -1.99,0.92 -2.79,0.12 -0.24,-0.12 -0.29,-0.52 -0.63,-0.43 z", - "department-38" : "m 464.21,344.5 c -2.79,1.9 -2.68,8.48 -7.27,6.99 -0.9,-2.78 -3.83,-2.24 -5.03,-0.76 -2.02,0.29 1.51,1.68 1.08,3.08 2.47,0.08 3.5,3.16 0.44,2.72 -1.73,1.6 -3.23,3.88 -3.85,5.57 -1.57,-1.3 -1.06,1.72 -2.92,0.29 -3.28,-0.47 -4.55,3.17 -7.48,1.48 -1.5,1.31 5.74,3.47 2.07,5.5 -2.26,2.06 -5.1,3.74 -4.23,6.93 0.77,2.57 -0.06,8.04 4.48,6.03 2.27,2 6.34,-5.1 8.45,-0.76 1.77,0.21 1.71,3.96 3.93,1.45 1.68,0.13 -1.09,4.61 1.72,3.03 1.9,0.92 2.02,2.4 0.5,3.24 1.61,2.88 0.73,6.17 -0.85,8.65 1.08,-0.16 3.1,-1.79 4.37,0.45 2.36,0.7 4.24,0.15 6.23,1.33 0.84,-0.27 3.02,-1.03 3.81,-2.77 2.64,0.63 -1.49,2.67 0.72,4.47 0.38,3.59 -0.09,7.56 -0.56,11.3 0.4,1.45 0.41,2.4 -0.01,3.62 1.24,0.79 4,2.16 3.74,0.13 2.61,1.83 4.3,5.05 7.54,4.72 2.17,2.94 5.3,0.26 5.21,-2.58 1.66,1.44 8.14,-0.42 5.75,-2.57 -0.07,-1 2.61,-2.26 3.54,-2.4 2.26,2.99 3.89,-3.83 6.67,-1.32 2.19,0.23 3.45,-0.22 5.31,-1.27 0.97,1.39 3.24,2.32 2.54,-0.45 1.1,-3.23 -1.77,-5.43 -1.86,-8.01 -3.37,1.84 -6.82,-1.82 -3.61,-4.41 -0.13,-1.84 0.52,-3.31 1.32,-4.86 -1.82,-0.13 -3.26,-1.51 -5.13,-0.74 1.43,-2.69 -1.8,-4.98 -0.71,-7.76 -0.38,-2.56 4.12,-3.93 2.03,-6.04 0.5,-3.14 -3.24,-5.89 -6.15,-5.13 -1.66,-1.14 -3.77,-5.23 -5.46,-1.87 -0.31,1.87 -0.63,3.21 -0.4,4.62 -2.15,1.23 -4.77,-3.87 -7.68,-2.52 -0.95,-2.94 -2.79,-6.19 -4.33,-9.02 -1.66,-2.41 -2.31,-5.84 -4.73,-7.23 -0.04,-3.77 -5.4,-5.53 -5.81,-9.3 0.88,-1.39 -2.2,-3.36 -3.39,-3.83 z", - "department-73" : "m 486.16,340.96 c -0.45,0.45 0.31,1.19 0.03,1.77 -0.43,2.29 -1.49,4.41 -1.88,6.69 -0.26,1.38 -0.01,2.88 -0.3,4.22 -0.62,0.31 0.02,1.17 -0.58,1.57 -0.45,1.17 -1.58,0.73 -2.55,0.64 -0.84,0.07 0.16,1.14 -0.18,1.7 -0.39,0.69 -1.23,1.27 -0.9,2.19 0.16,0.81 -0.73,0.85 -1.28,0.92 -0.46,0.22 -0.52,0.84 -0.99,1.02 -0.1,0.57 -0.89,1.04 -0.26,1.63 0.76,1.32 2.36,2.45 2.11,4.11 0.23,0.33 0.74,0.34 0.74,0.83 0.84,0.69 0.84,1.99 1.51,2.8 0.86,0.69 -0.26,2.79 1.33,2.79 0.69,-0.42 1.75,-0.43 2.21,0.36 0.86,0.8 2.15,0.9 3.12,1.6 0.57,0.15 0.69,0.71 1.06,1.03 0.59,0.02 1.32,-1.15 0.42,-1.31 -0.57,-0.83 0.26,-1.71 0.62,-2.42 0.32,-0.63 -0.18,-1.37 -0.02,-1.93 0.76,-0.47 1.65,-0.69 2.47,-1.04 0.43,0.56 1.01,1.07 1.58,1.38 0.13,0.76 0.39,1.57 1.25,1.79 0.96,0.51 2.24,-0.49 3,0.51 0.5,0.17 1.21,-0.47 1.46,0.31 0.64,1.59 2.48,2.51 2.66,4.29 -0.29,0.15 -0.79,0.54 -0.21,0.73 0.85,0.23 0.12,1.35 0.11,1.91 -0.05,0.98 -1.42,0.76 -1.63,1.63 -0.67,0.52 -0.97,1.32 -0.71,2.16 0.28,0.8 -0.51,1.41 -0.41,2.16 0.41,0.87 0.74,1.73 1.41,2.45 0.62,1.01 -0.59,1.95 -0.5,2.93 0.52,0.56 1.11,-0.22 1.49,-0.5 0.92,-0.1 1.37,0.91 2.13,1.15 0.63,-0.3 1.62,-0.2 1.66,0.68 -0.1,1.41 1.8,2.18 2.81,1.25 0.65,-0.79 1.23,0.33 1.67,0.84 0.46,0.64 0.68,1.43 0.45,2.15 0.54,0.74 1.75,0.36 2.53,0.62 0.86,0.16 1.92,1 2.66,0.13 0.38,-0.92 -0.65,-2.23 0.57,-2.71 0.35,-0.45 0.85,-0.56 1.27,-0.15 0.94,0.49 1.73,-0.4 2.13,-1.14 0.91,-0.24 1.86,0.12 2.72,0.29 0.81,-0.21 1.62,-0.66 2.1,-1.32 0.99,-0.68 2.46,0.1 3.22,-1.02 0.35,-0.43 0.97,-0.89 1.45,-0.3 0.85,0.52 2.11,0.47 2.52,1.51 0.72,0.63 1.87,0.09 2.61,-0.25 0.41,-0.56 -0.74,-1.63 0.24,-1.82 0.89,-0.31 2.18,-0.09 2.35,-1.31 0.28,-0.94 0.93,-1.7 1.94,-1.85 1,-0.19 1.96,-0.56 2.92,-0.94 0.28,0.29 0.54,1.02 1.07,0.58 0.47,-0.87 0.96,-2.03 2.06,-2.12 0.86,-0.78 0.12,-2.12 -0.06,-3.06 -0.11,-0.72 -1,-1.93 0.07,-2.33 0.68,-0.07 0.41,-0.73 0.59,-1.12 0.98,-0.99 1.63,-2.36 1.9,-3.7 -0.59,-0.97 -1.87,-1.22 -2.71,-1.86 -0.94,-0.95 -0.87,-3.04 -2.54,-3.15 -0.56,-0.01 -0.92,-0.42 -0.89,-0.96 -0.58,-0.7 -1.85,-0.56 -2.18,-1.57 -0.64,-1.44 -0.23,-3.2 -1.06,-4.6 -0.34,-1.1 0.49,-2.08 0.76,-3.02 -0.69,-0.83 -1.62,-1.51 -2.76,-1.31 -0.88,0.14 -0.91,-0.82 -1.25,-1.33 -0.99,-0.62 -2.63,-0.33 -3.11,-1.66 -0.83,-0.95 -1.39,-2.07 -1.33,-3.37 -0.05,-0.49 -0.09,-1.83 -0.91,-1.34 -0.91,0.06 -1.72,0.7 -1.99,1.6 -0.42,0.52 -0.86,1.4 -1.45,1.52 -0.4,-0.17 -1.27,-0.31 -0.7,-0.87 0.23,-0.66 -0.51,-1.2 -0.28,-1.88 -0.34,-0.89 -0.91,-2.04 -1.95,-2.2 -0.89,-0.13 -2.19,0.76 -2.83,-0.15 -0.09,-0.52 -0.37,-0.96 -0.88,-1.06 -0.72,-0.81 -1.07,-2.03 -1.15,-3.07 0.63,0.06 1.62,-0.31 1.26,-1.11 -0.35,-1.05 -1.53,-1.04 -2.36,-1.47 -0.67,-0.01 -0.86,0.94 -1.52,1.08 -0.85,0.88 -1.48,2.09 -1.51,3.29 -0.72,0.95 -0.91,2.24 -1.97,2.95 -0.76,0.61 -1.69,1.28 -1.54,2.39 -0.21,0.67 -0.99,1.04 -1.01,1.82 -0.44,0.97 -0.54,2.37 -1.86,2.41 -1.14,0.38 -2.33,0.53 -3.53,0.54 -0.06,-0.45 0.01,-1.66 -0.76,-1.32 -0.31,0.13 -0.76,0.69 -1.03,0.56 -0.25,-0.91 0.24,-2.16 -0.62,-2.79 -0.14,-0.81 -1.14,-1.57 -1.94,-1.34 -0.21,0.5 -0.78,0.26 -1.03,-0.06 -0.76,0.04 -0.24,1.32 -0.76,1.53 -0.34,-0.65 -1.25,-0.37 -1.8,-0.73 -0.47,-0.07 -0.73,0.7 -1.2,0.25 -0.48,-0.36 -1.21,-0.4 -1.7,-0.51 0.01,-0.61 -0.44,-1.04 -0.93,-1.29 0.04,-0.57 0.55,-1.77 -0.49,-1.68 -0.47,-0.1 -0.19,-0.97 -0.81,-1.05 -0.66,-0.37 -1.22,0.91 -1.76,0.14 -0.38,-0.36 -0.12,-1.3 -0.92,-1.18 -1.02,-0.5 -0.45,-1.96 -0.7,-2.86 -0.23,-1.29 -0.31,-2.65 -0.65,-3.91 -0.34,-0.35 -0.97,-0.38 -1.43,-0.38 z", - "department-74" : "m 522.73,306.41 c -1.97,0.51 -4.09,-0.11 -6.02,0.54 -1.69,0.88 -2.87,2.78 -4.92,2.88 -1.61,0.19 -3.71,0.06 -4.62,1.7 -1.07,1.16 -2.72,2.21 -2.73,3.97 0.1,0.69 1.48,0.71 0.93,1.55 -0.41,0.84 0.21,1.93 0.9,2.4 0.42,0.09 0.95,-0.58 1.26,0.01 0.37,0.53 0.48,1.32 -0.23,1.62 -1.53,1.19 -3.48,2.08 -4.62,3.7 0.15,0.96 -1.06,1.44 -1.7,1.89 -0.92,0.54 -2.12,0.67 -2.99,-0.02 -0.94,-0.11 -1.74,0.7 -2.72,0.57 -1.73,-0.1 -3.26,0.92 -4.93,1 -0.77,0.2 -1.52,0.85 -1.16,1.71 0.19,0.63 -0.32,1.15 -0.97,1 -0.99,0.19 -1.36,-0.93 -2.04,-1.36 -0.25,0.5 -0.16,1.27 -0.57,1.8 -0.32,1.76 -0.11,3.58 -0.18,5.37 -0.05,1.02 1.4,1.33 1.1,2.4 -0.08,0.89 -0.37,2.18 0.97,1.91 0.75,0.22 0.29,1.37 0.52,1.94 0.31,1.44 0.48,2.91 0.5,4.37 0.07,0.67 0.88,0.58 1.19,0.96 -0.06,0.61 0.65,1.43 1.18,0.8 0.34,-0.42 1.1,-0.12 1.48,0.06 -0.19,0.54 0.13,1.08 0.73,0.94 0.45,0.32 -0.03,1.12 0.02,1.58 0.26,0.43 0.87,0.53 0.99,1.06 0.58,0.39 1.43,1.09 2.13,0.73 0.22,-0.52 0.78,-0.22 1.09,0 0.59,0.21 1.53,0.05 1.32,-0.78 -0.01,-0.66 0.68,-0.27 0.9,0.03 0.57,0.28 0.97,-0.69 1.55,-0.21 0.84,0.25 1.11,1.08 1.58,1.67 0.61,0.22 0.16,1.19 0.32,1.69 -0.08,0.68 0.71,0.6 0.85,0.07 0.5,-0.09 1,0.52 0.86,1.04 0.4,0.69 1.5,0.24 2.16,0.27 0.76,-0.24 1.79,-0.22 2.32,-0.85 0.55,-0.82 0.59,-1.89 1.06,-2.69 0.59,-0.47 1.08,-1.17 0.58,-1.84 1.1,-1.12 2.6,-2.01 3.15,-3.59 0.44,-0.46 0.57,-1.04 0.46,-1.64 0.43,-1.24 1.14,-2.4 2.27,-3.1 0.24,-0.19 0.68,-1.23 1.02,-0.66 0.87,0.56 2.4,0.81 2.5,2.07 0.05,0.67 -0.39,0.98 -1.01,0.85 -0.65,0.38 0.05,1.31 0.13,1.86 0.25,0.92 1.4,1.05 1.58,2.03 0.48,0.87 1.65,0.01 2.41,0.12 0.73,-0.31 1.18,0.28 1.5,0.85 0.45,0.56 1.16,1.11 0.82,1.91 -0.09,0.58 0.7,0.95 0.24,1.52 -0.21,0.76 0.9,0.79 1.18,0.23 0.84,-0.71 0.9,-2.01 2.02,-2.43 1.02,-0.06 1.62,-1 1.61,-1.96 -0.09,-1.02 0.58,-2.66 1.85,-2.26 0.39,0.29 1.11,0.3 0.98,-0.35 0.01,-0.41 0.22,-0.99 0.72,-0.64 1.66,0.72 3.32,-0.42 4.67,-1.3 1.07,-1.02 1.17,-2.69 2.2,-3.72 0.24,-1.07 0.13,-2.38 -0.92,-2.98 -0.31,-0.29 0.4,-0.66 0.03,-1.04 -1.08,-1.72 -2.7,-3.09 -3.82,-4.78 -0.93,-0.47 -1.81,1.29 -2.7,0.56 -0.35,-0.84 0.72,-1.72 0.05,-2.53 0.03,-0.72 1.46,-1.61 0.49,-2.23 -0.76,-0.34 -1.61,-0.31 -2.36,-0.72 -0.84,-0.04 -2.06,-0.19 -2.06,-1.31 0.09,-1.22 0.81,-2.32 0.63,-3.59 0.03,-1.74 2.08,-2.69 2.14,-4.38 -0.61,-2.1 -2.81,-3.32 -3.41,-5.34 0.58,-0.82 1.83,-1.33 1.69,-2.56 0.1,-0.89 0.32,-2.26 -0.88,-2.5 -2.33,-0.82 -4.77,-1.84 -7.27,-1.85 z", - "department-71" : "m 412,260.36 c -2.93,0.55 -4.26,2.21 -6.96,2.68 -1.28,2.48 2.3,4.5 -0.5,6.99 -1.43,0.66 -3.07,3.09 -0.49,1.44 1.9,1.91 -1.31,5.49 2.35,6.61 2.41,2.48 -3.47,2.49 -1.06,5.02 0.77,3.39 -3.9,1.03 -5.18,3.67 -2.25,1.4 -4.63,2.62 -7.04,3.38 -0.31,-4.58 -4.86,-2.18 -7.6,-2.64 0.33,3.18 3.53,4.95 4.3,8.11 0.37,1.27 1.28,3.31 0.8,5.05 2.56,1.6 5.5,0.03 6.06,3.56 2.3,-0.67 6.83,0.19 5.63,3.81 -1.65,2.24 1.1,6.27 -0.41,7.48 -1.83,-0.26 -2.1,1.92 -4,2.06 1.17,2.28 -1.61,6.17 2.72,5.49 0.93,1.98 2.84,2.96 4.81,1.08 2.24,-1.83 4.53,2.66 6.18,-0.34 0.99,0.81 3.97,-0.12 2.52,2.07 1.82,0.5 3.17,-1.98 5.29,-1.84 0.91,-1.94 0.34,-5.84 2.53,-7.3 2.38,-0.25 4.64,4.02 6.14,0.44 0.69,1.02 2.58,2.86 3.18,0.21 1.5,-2.57 5.41,0.79 2.63,2.19 4.35,0.26 -0.17,5.73 3.79,5.35 1.63,-2.32 1.8,-5.62 3.02,-8.28 1.07,-3.54 2,-7.12 3.47,-10.47 -0.24,-4.22 3.76,-4.44 6.12,-2.01 2.73,0.91 5.4,-3.24 7.43,-0.63 0.71,4.46 5.42,3.07 8.23,1.96 3.48,-0.33 -0.18,-2.98 -1.2,-3.64 -0.19,-2.06 -0.14,-4 2.12,-4.12 -1.13,-2.06 2.54,-2.7 0.55,-4.54 0.27,-1.18 -1.25,-2.07 -0.87,-3.37 -1.29,-1.52 -2.14,-2.53 -0.54,-4.28 -1.91,-0.7 -4.07,-3.41 -0.68,-3.56 1.47,-0.64 5.77,0.15 2.85,-1.99 -1.77,-0.79 -1.54,-3.02 -3.84,-2.16 -2.27,0.63 -1.51,-5.03 -4.1,-2.86 0.12,-2.06 -1.07,-4.73 -3.5,-2.61 -2.78,0.86 -4.3,2.07 -6.4,-0.46 -1.94,0.4 -2.39,2.11 -4.89,0.86 -2.61,0.33 -5.24,2.44 -8.14,3.19 -1.76,-0.3 -4.71,2.29 -4.23,-1.06 -3.18,-0.15 -5.08,-3.48 -5.63,-5.52 -2.23,0.19 -4.16,-1.65 -6.41,-2.36 0.94,-2.91 -1.62,-1.37 -2.5,-0.96 0.79,-4 -4.82,-1.4 -5.2,-5.1 -0.71,0.24 -0.8,-0.59 -1.34,-0.6 z", - "department-03" : "m 355.26,283.59 c -2.47,0.46 -4.86,3.44 -6.02,4.72 -1.76,-0.99 -3.8,2.31 -4.59,-0.78 -1.76,0.08 -2.97,3.69 -5.04,3.94 1.97,2.84 -4.43,0.31 -1.55,2.39 0.4,1.42 -1.37,2.94 0.6,3.99 1.55,3.09 -3.65,5.08 -5.37,3.61 -2.24,1.35 -6.48,-0.24 -7.16,3.06 -1.54,1.23 -3.6,4.68 -1.43,6.74 2.23,0.25 1.54,1.18 0.45,2.24 0.46,1.75 3.06,2.36 3.77,1.35 1.79,0.78 0.58,3.48 2.71,2.33 2.32,1.7 3.03,4.85 4.13,7.52 1.59,1.1 1.36,3.94 4.21,3.81 2.2,-0.4 1.29,-4.32 4.06,-4.34 -0.38,-2.36 1.13,-2.81 2.64,-1.17 2.87,2.05 0.78,-4.7 4.25,-3.15 2.6,-0.56 4.31,1.53 2.01,3.27 -0.51,2.53 2.71,1.85 2.18,4.56 1.6,1.64 4.19,2.18 6.12,1.98 0.53,3.71 5.09,1.32 7.41,2.58 2.46,-0.35 4.25,2.07 6.4,-0.15 2.05,-0.87 3.81,1.48 3.14,3.62 2.97,-0.38 6.89,-1.86 7.42,2.51 1.3,0.31 3.13,3.55 3.29,0.55 1.79,-0.98 4.46,0.16 5.67,-2.24 -1.33,-3.25 -0.2,-6.45 -1.49,-9.65 1.17,-1.65 -1.28,-4.71 -0.7,-6.42 1.4,-0.12 2.34,-1.59 4.2,-1.58 1.27,-1.45 2.99,-2.22 4.25,-3.49 2.82,-0.46 -0.34,-5.16 1.28,-7.19 1.51,-3 -3.08,-4.88 -5.16,-3.65 -1.18,-1.3 -1.26,-3.58 -3.47,-2.38 -1.93,-1.04 -3.95,-1.45 -2.9,-4.14 -1.14,-2.8 -2.34,-5.73 -4.5,-8.23 0.48,-2.03 -3.61,-4.95 -2.1,-1.56 -0.34,1.45 -3.05,0.68 -1.66,2.91 -1.17,0.41 -2.72,0.17 -3.32,2.29 -3.21,0.75 -0.8,-5.19 -4.58,-3.84 -1.04,2.99 -3.56,1.08 -4.7,-0.26 -2.1,1.25 -4.73,3.83 -6.34,0.2 -2.17,-1.67 -4.84,-2.89 -5.84,-5.6 -0.73,-0.27 -1.51,-0.18 -2.26,-0.35 z", - "department-58" : "m 361.05,231.75 c -1.61,0.98 -3.32,2.58 -5.23,1.22 -1.54,0.66 -5.16,0.31 -5.72,1.84 1.58,2.33 4.2,5.39 3.03,8.27 -0.46,2.34 -4.01,5.74 -0.25,7.04 1.92,1.64 3.66,3.16 3.28,5.91 2.2,3.19 1.4,7.61 2.45,10.69 2.84,1.44 0.59,4.96 1.6,7.25 -1.99,2.66 1.02,5.99 -1.24,8.7 -1.75,2.29 0.81,5.12 3.16,5.53 1.64,1.06 3.28,4.95 5.39,2.27 1.52,-1.93 3.16,-1.38 4.16,0.57 1.96,0.7 3.24,-3.41 4.93,-1.11 0.68,1.01 0.94,1.95 1.13,3.28 1.84,0.37 2.58,-2.94 4.39,-2.04 -0.61,-1.82 -0.49,-2.4 1.36,-2.38 -0.2,-1.17 -0.22,-3.61 1.45,-1.97 2.29,2.03 7.01,-1.91 8.02,2.31 1.41,2.29 3.54,-1.84 5.75,-1.47 1.68,-2.02 4.85,-2.71 6.51,-3.23 -0.22,-2.14 -1.12,-3.85 1.59,-4.65 -0.2,-2.28 -4.24,-3.86 -1.97,-6.79 0.18,-2.41 -4.07,0.3 -1.77,-2.02 2.77,-1.18 2.72,-4.62 1.41,-6.48 -0.21,-2.71 3.29,-1.57 3.61,-3.64 2.41,0.12 4.36,-0.55 4.66,-3.1 0.33,-2.07 -2.28,-4.7 -4.14,-3.18 -2.16,-1.91 1.5,-6.7 -2.23,-6.47 -2.06,-0.11 -3.88,3.63 -5.15,0.03 -0.32,-1.35 -0.05,-4.35 -2.03,-2.79 -1.29,0.05 -2.91,2.04 -2.96,-0.58 1.08,-0.8 1.65,-3.07 -0.35,-2.77 -1.09,1.35 -0.9,4.62 -3.13,2.61 -0.88,-1.42 -3.65,0.48 -4.06,-2.21 -1.01,-1.24 -3.05,-2.54 -4.54,-2.45 -1.62,0.35 -0.42,-3.16 -2.49,-3.09 -1.47,-0.17 -1.9,-4.94 -2.3,-1.85 0.35,2 -0.34,3.67 -2.39,2.1 -2.63,-1.51 -3.86,4.14 -5.82,1.03 -1.87,-1.04 -4.17,1.13 -5,-2 -2.26,0.34 -4.45,-1.48 -4.25,-4 -0.17,-0.32 -0.55,-0.4 -0.88,-0.38 z", - "department-89" : "m 374.12,178.1 c -1.36,2.82 -5.36,0.91 -7.76,1.83 -2.91,0.12 -7.22,-0.23 -8.27,2.98 0.14,3.17 1.58,6.21 -2.22,8.02 -3.13,1.63 -1.03,2.94 1.17,4.04 2.28,2.02 1.91,5.48 4.92,6.98 0.09,2.23 1.57,5.13 -1.56,6.65 -2.34,1.36 -4.04,3.95 -2.14,6.31 -0.68,1.5 0.04,4.08 -2.76,4.29 -2.25,0.39 -7.34,0.64 -4.79,4.05 2.45,0.93 4.06,4.45 3.33,7.05 1.14,3.61 5.07,3.17 7.39,1.37 1.4,1.71 1.46,5.08 4.64,4.36 1.07,1.7 2.94,2.2 4.19,1.56 2.83,2.78 4.94,-2.42 8.04,-0.36 2.24,0.32 0.05,-5.91 2.11,-2.26 1.33,1.79 2.94,3.05 3.85,4.95 3.33,-1.09 4.42,4.4 7.1,3.73 1.63,0.4 3.4,2.47 3.61,-0.47 1.06,-2.78 3.75,-0.39 1.71,1.41 -0.27,3 5.9,-2.28 4.47,2.93 0.46,3.12 3.19,1.32 4.4,0.59 4.42,-0.6 -2.45,-5.06 1.49,-6.94 2.21,-1.57 -0.41,-5.47 2.78,-6.83 1.14,-2.73 3.9,-5.69 3.26,-8.58 1.88,-0.52 1.26,-1.92 0.64,-3.48 1.6,-1.09 4.66,-1.22 3.88,-4.34 0.07,-2.34 -0.26,-3.73 -2.7,-3.42 -3.53,-2.05 4.19,-4.69 -0.03,-5.12 -1.97,-0.1 -2.62,-5.1 -3.28,-1.27 -2.05,-2.67 -2.92,2.59 -5.45,0.23 -2.35,0.79 -5.27,0.01 -8.15,0.79 0.15,-1.59 0.88,-6.21 -1.65,-3.46 -2.36,-1.38 1.3,-2.55 -1.24,-3.58 -0.94,-2.75 -2.25,-5.79 -4.33,-7.09 0.87,-2.25 -1.27,-2.36 -1.7,-0.43 -3.07,1.65 -2.16,-4.29 -5.46,-2.45 0.07,-1.1 1.54,-2.74 1.12,-4.43 -0.2,-2.34 -3.48,-5.41 -5.2,-7.74 -2.07,-0.04 -3.97,0.46 -4.78,-1.75 -0.22,-0.05 -0.43,-0.1 -0.65,-0.14 z", - "department-77" : "m 360.11,130.7 c -0.75,1.23 -0.27,2.29 -2.33,1.67 -1.38,-0.38 -1.84,2.1 -2.56,0.07 -2.14,0.21 -4.49,1.91 -6.24,0.1 -2.04,-1.53 -3.2,3.4 -5.16,0.88 -1.56,1.65 -2.68,-3.86 -4.86,-1.22 -1.42,0.6 -1.4,2.29 -1.08,2.9 -0.79,0.91 -3.3,2.12 -0.93,2.41 0.92,1.64 0.15,3.36 1.66,4.95 -0.21,1.86 -2.5,3.75 -0.77,5.03 -0.42,1.69 1.07,3.83 0.45,5.54 1.88,0.5 -0.47,2.18 -0.41,3.35 -1.82,0.99 1.36,3.93 -1.65,3.64 -0.82,0.84 0.31,2.38 -1.22,3.04 1.7,1.22 -0.11,2.87 -0.29,4.11 -0.83,2.76 -0.35,5.7 -0.38,8.61 1.13,0.77 2.32,2.24 0.22,2.19 -1.67,0.77 -3.86,1.83 -3.71,4.1 -3.26,-0.23 0.46,3.05 -0.39,4.73 1.93,0.89 5.35,1.9 4.16,4.93 0.05,1.63 -0.21,2.35 -1.8,2.26 -2.59,2.58 2.06,2.09 3.18,0.95 1.95,0.94 4.16,-0.38 5.89,1.16 1.74,-0.08 3.98,-1.65 3.26,-2.69 2.16,-0.61 3.3,-0.11 2.62,2.03 1.99,0.05 3.64,-2.23 5.85,-2.23 1.28,-2.5 4.18,-3.1 5.17,-5.95 -1.75,-1.86 -0.91,-4.39 0.11,-6.51 2.23,0.08 3.58,-0.87 5.81,-1.29 2.4,1.59 4.47,-0.91 6.89,0.03 1.85,0.05 2.21,-2.32 4.09,-1.22 1.02,-1.56 -1.94,-1.95 -0.46,-3.63 -1.01,-1.71 -0.67,-2.54 1.28,-3.16 -0.64,-1.19 -1.85,-3.14 0.59,-2.27 3.2,-0.16 -0.39,-3.09 2.44,-3.84 0.11,-1.36 2.11,-1.25 2.34,-2.32 -1.35,-1.35 -2.61,-1.35 -4.33,-0.87 -0.83,-1.72 0,-2.93 0.73,-4.28 -0.27,-1.41 0.18,-2.58 -1.57,-2.81 -0.08,-1.26 -2.46,0.08 -1.43,-1.87 0.29,-0.92 3.06,-1.11 0.77,-1.96 -2,-1.6 4.65,-0.07 2.85,-3.04 -0.62,0.26 -2.18,0.96 -1.62,-0.5 -2.19,-0.35 -3.93,-1.72 -3.63,-4.09 -1.91,1.44 -2.54,-0.3 -3.11,-1.76 -2.53,1.6 -2.02,-2.84 -4.2,-3.33 -1.26,-1.06 -2.94,-1.79 -1.15,-3.4 -0.57,-2.97 -1.82,-4.38 -5.07,-4.44 z", - "department-10" : "m 415.76,157.34 c -2.6,0.51 -5.55,-0.05 -7.71,1.48 -2.64,-2.28 -2.21,2.93 -5.08,1.84 -1.93,0.67 -1.61,4.36 -4.3,3.88 -0.4,1.61 -1.36,1.64 -2.59,1.72 1.3,3.01 -1.42,4.79 -3.84,3.13 -2.09,-1.39 -6.82,1.14 -6.65,-2.55 -0.6,-0.93 -2.3,-0.55 -2.52,-2.29 -2.04,-2.28 -2.83,1.06 -4.5,1.77 -0.06,1.25 0.93,2.82 -1.41,3.08 -3.5,-1.29 1.33,2.83 -1.65,2.81 -1.9,0.54 0.78,2.64 -0.38,3.85 2.1,0.63 -0.62,5.56 2.52,3.51 3.16,-0.12 4.15,3.44 6.03,5.22 0.01,1.47 3.08,2.04 0.93,3.9 2.08,0.85 -3.12,4.07 0.15,3.27 2.29,-0.8 2.03,4.35 4.19,2.52 1.08,-0.14 0.3,-2.78 1.94,-1.13 0.93,0.76 -0.96,2.98 1.14,2.23 2.34,1.66 1.67,5.24 3.89,6.96 2.43,1.45 -2.11,1.84 0.59,3.02 0.73,-0.46 1.14,-2.22 1.92,-0.23 0.37,1.61 -1.44,4.62 1.62,3.35 1.95,0.01 2.99,-0.54 4.79,0.26 0.99,-3.03 2.57,1.82 4.01,-0.76 0.84,-1.92 1.99,-0.84 2.76,-0.15 -0.14,-1.03 0.29,-2.65 1.27,-1.4 -0.33,2.78 3.95,3.53 3.81,0.39 2.92,-0.59 5.93,0.14 8.85,-0.56 2.39,0.31 2.85,-0.77 1.49,-2.56 2.05,-2.2 4.43,-1.32 6.94,-0.84 2.63,-1.11 0.34,-3.51 -1.25,-4.11 2.37,-0.23 3.32,-3.91 6.03,-1.87 3.03,1.11 1.67,-2.97 2.47,-4.56 1.68,-1.76 -0.94,-2.47 -0.07,-3.99 1.1,-2.25 -0.53,-3.76 -1.25,-5.67 2.38,-2.25 -3.94,-1.43 -2.88,-4.17 -1.47,-0.37 -2.51,-0.25 -2.96,-1.8 0.24,-1.72 -4.18,-2.97 -1.75,-4.03 0.72,-2.19 1.43,-3.93 -1.16,-5.04 -2.33,-0.81 -3.68,3.05 -5.35,0.57 -2.15,0.43 -4.7,-0.92 -6.23,-2.52 -2.9,-1.25 -2.44,-3.78 -2.05,-6.39 -0.16,-1 -0.29,-2.51 -1.75,-2.14 z", - "department-51" : "m 405.08,111.51 c -1.06,0.78 -0.74,4.64 -2.69,2.03 -2.26,-0.62 -3.69,-3.04 -5.85,-0.46 -0.76,1.47 -0.53,3.07 -2.6,1.59 -2.67,0.5 -5.66,1.55 -7.69,3.27 1.02,2.06 1.46,4.73 0.89,6.32 2.55,-0.42 1.18,3.01 3.85,2.11 0.48,4.28 -5.3,-0.05 -6.19,3.06 -0.39,1.65 2.79,4.09 -0.6,4.59 -2.26,3.23 5.49,0.01 3.06,3.78 -2.35,0.83 -2.21,3.44 -4.02,4.55 -0.04,2.3 -3.69,1.38 -3.38,4.24 -1.75,1.12 0.58,4.63 -2.54,3.99 -2.46,-0.16 -1.14,0.3 -0.32,1.22 0.08,0.89 -3.17,1.69 -1.26,2.59 2.53,0.21 3.88,3.9 1.46,5.7 0.25,2.2 1.1,2.12 2.94,1.45 1.92,0.52 2.98,4.27 5.46,4.81 -0.12,4.68 6.56,0.97 8.91,3.79 3.18,-0.68 -0.17,-4.93 3.46,-4.46 0.45,-2.04 3.42,-1.33 3.65,-3.97 0.75,-2.28 4.33,-0.39 4.38,-3.49 1.36,-0.34 2.79,1.39 3.81,-0.56 2.71,0.28 5.46,-1.6 7.64,0.42 0.89,2.81 -1.6,6.2 2.08,7.6 1.6,3.05 5.89,1.61 7.51,3.56 1.84,-1.76 4.32,-2.12 5.98,-0.45 1.91,-1.07 7.38,1.87 5.1,-2.02 -2.42,-2.79 6.05,-2.46 2.44,-5.4 -1.35,-0.11 -4.14,-0.27 -1.58,-1.69 1.66,-0.63 3.72,1.24 5.25,-0.9 2.3,1.31 5.6,-0.99 4.11,-3.45 -1.93,-1.13 -3.33,-3.27 -5.05,-4.35 0.2,-1.89 3.07,-2.43 1.04,-4.46 -0.24,-2.76 1.96,-3.93 4.51,-4.61 2.25,-1.35 -0.39,-2.44 -0.39,-3.09 2.85,-0.57 0.54,-4.33 -1.51,-2.09 2.09,-1.98 1.44,-5.68 -0.12,-8.2 -0.96,-1.63 -1.81,-3.48 0.73,-4.04 -0.24,-1.82 -2.4,-2.81 -3.5,-3.66 -2.15,0.23 -1.49,3.78 -3.82,1.54 -2.45,0 -5.77,-1.84 -7.92,0.23 -2.68,0.36 -2.07,-5.98 -5.47,-3.2 -2.64,0.89 -6.12,0.77 -7.24,-2.32 -2.8,0.56 -4.24,-2.36 -6.09,-4.01 -2.61,-1.4 -5.28,-1.58 -8.44,-1.57 z", - "department-02" : "m 388.2,68.13 c -1.08,1.13 -2.82,3.24 -4.4,1.16 -2.84,-2.2 -4.67,3.68 -7.97,1.02 -2.67,-1.47 -4.82,2.26 -7.41,-0.08 -2.13,-0.29 -5.92,2.27 -2.52,2.96 -2.98,2.53 -3.74,6.36 -5.63,9.48 -1.75,0.96 2.24,2.4 -0.4,3.91 1.95,1.43 2.51,4.94 2.65,7.7 -1.5,0.24 -0.31,2.46 -1.01,3.2 2.8,2.14 0.67,5.53 0.21,7.42 1.3,1.39 -0.62,2.75 2.02,3.19 1.86,2.58 -4.01,-0.19 -2.57,2.99 0.21,2.78 -1.91,6.35 -4.84,5.03 -3.19,2.38 3.18,2.33 1.82,4.68 0.73,2 -0.93,3.6 1.68,4.15 1.16,1.34 2.5,-0.57 2.39,2.15 3.19,1.07 -5.03,3.79 0.04,3.92 2.54,0.03 3.91,4.01 2.15,5.73 2.04,1.28 3.84,3.72 5.3,5.32 1.97,-1.81 1.27,4.11 3.47,1.27 1.13,0.14 0.62,4.1 3.08,3.73 1.02,1.15 2.26,2.18 2.67,-0.16 1.3,-1.34 1.82,-3.4 3.99,-3.73 1.01,-2.49 2.46,-4.36 4.65,-6 0.1,-2.93 -6.07,0.28 -3.5,-3.33 4.06,-0.79 -1.61,-3.63 1.16,-5.63 1.74,-0.53 6.13,1.2 5.33,-1.72 -2.24,0.27 -1.72,-2.21 -3.92,-2.36 2.32,-2 -2.35,-5.73 0.53,-7.34 2.85,-0.42 5.37,-3.57 8.29,-1.65 -0.29,-1.73 3.19,-4.87 4.55,-2.85 1.43,0.76 4.63,3.46 4.24,0.06 0.75,-1.54 -0.52,-3.16 0.75,-4.21 -1.86,-2.09 0.18,-3.94 0.86,-5.41 -1.97,-0.87 0.95,-3.51 -1.67,-4.78 -1.57,-3.69 5.08,0.31 4.01,-3.96 1.21,-2.05 5.54,-3.68 5.14,-6.49 -2.5,-0.39 -0.05,-2.22 -0.82,-3.84 1.25,-2 2.5,-4.89 -0.05,-6.15 1.79,-3.26 -2.77,-4.61 -5.35,-3.57 -2.14,-1.09 -7,-0.34 -5.08,-4.21 -1.57,-0.94 -4.83,3.39 -5.36,0.08 -2.78,-0.3 -5.86,-1.9 -8.53,-1.67 z", - "department-59" : "m 335.57,0.12 c -3.45,1.43 -6.99,2.74 -10.76,2.39 -2.72,1.29 -8.66,1.44 -9.11,3.85 2.44,2.79 3.25,6.62 4.77,9.94 0.43,4.77 5.56,3.66 8.58,4.42 2.32,1.45 -4.63,1.65 -1.51,3.98 2.44,0.67 -1.2,3.42 2.07,2.61 2.93,3.85 6.72,1.92 9.95,3.5 2.19,-0.65 4.1,-0.87 5.68,0.87 0.41,-1.85 2.1,-1.38 0.62,-3.01 2.05,-2.57 7.25,2.09 2.69,2.82 -1.83,1.68 0.07,3.54 -0.61,5.52 2.34,0.14 3.9,-1 3.93,1.59 2.5,-1.01 7,0.2 5.64,3.54 1.27,0.39 3.92,-0.75 2.32,1.89 -3.74,0.21 -4.27,4.12 -0.66,5.49 2.67,1.86 -0.52,2.17 0.31,4.28 2.66,0.03 5.42,1.44 5.6,3.59 -3.49,-0.01 -0.66,2 -1.8,3.32 -2.94,0.76 0.82,2.08 -1.93,3.52 1.19,2.22 -2.19,4.81 1.75,6.08 2.76,1.37 5.33,-1.11 8.08,0.5 2.78,-2.8 7.12,1.76 9.94,-1.66 1.88,-2.21 4.77,3.11 6.2,-0.72 3.06,-1.45 6.64,0.94 9.78,1.44 0.46,3.12 6.54,-3.53 4.81,1.34 0,2.28 5.16,2.43 7.07,2.12 1.13,-1.37 -0.83,-4.12 2.33,-4.63 2.68,-0.88 0.57,-5.07 -0.84,-5.54 -3.3,1 -0.12,-4.14 0.06,-5.58 2.39,-1.25 2.41,-3.76 -0.41,-4.14 -0.6,4.11 -2.68,-3.09 -5.06,-3.38 -1.96,-3.39 -6.66,2.37 -9.45,-1.06 -3.02,-1.09 -5.18,0.58 -6.36,2.66 -3.42,-1.36 -0.95,-6.36 -2.22,-9.19 -1.09,-3.5 -4.72,-3.12 -7.3,-3.15 1.15,-5.24 -5.66,2.5 -7.97,-1.03 -3.9,-1.63 -1.34,-6.5 -3.82,-9.41 1.83,-3.67 -3.12,-4.71 -3.84,-8.29 -2.91,-1.52 -7.12,1 -10.06,2.09 -0.33,4.97 -4.26,1.63 -6.9,0.96 -1.64,-3.04 -3.74,-6.42 -7.35,-5.98 -1.29,-2.74 -2.17,-6.28 -0.14,-8.73 -2.25,-2.77 -2.84,-5.71 -4.09,-8.81 z m 28.08,54.5 0.01,0.01 -0.01,-0.01 z", - "department-62" : "m 313.33,5.46 c -4.94,0.63 -9.82,2.03 -14.3,4.19 -2.31,2.03 -4.44,4.39 -7.41,5.25 0.4,3 1.9,6.23 -0.01,9.07 -1.39,2.89 0.06,6.1 -0.08,9.15 0.12,1.92 1.85,2.89 0.02,4.03 0.23,3.04 -1.19,6.37 -0.33,9.17 2.74,1.63 4.65,4.95 7.93,2.3 3.81,-2.29 6.82,4.56 9.77,1.72 1.01,1.14 -1.99,2.68 0.88,2.9 2.1,1.36 5.3,1.26 4.69,4.15 0.88,1.54 2.94,0.71 3.92,1.37 1.81,-1.07 3.99,-1.33 5.74,-1.4 1.16,1.12 1.77,-0.42 1.57,-0.98 1.33,-0.36 1.77,3.47 2.74,0.75 1.51,-1.51 6.22,0.91 4.51,2.46 -2.54,0.07 -6.33,4.05 -3.27,5.63 1.73,2.15 1.55,-3.53 4.22,-2.43 1.09,-0.01 1.95,2.52 2.26,-0.06 2.83,-0.7 -0.14,2.46 2.59,2.02 1.28,-0.01 4.09,2 4.68,1.23 -1.22,-1.42 0.73,-3.47 2.15,-1.5 3.8,-0.04 -3.11,6.76 1.65,4.07 2.16,-2.39 3.64,-1.2 4.04,1.36 2.23,-1.54 4.16,-0.79 6.67,-1.69 1.7,0.68 3.25,0.84 2.92,-1.52 2.01,-0.93 -0.86,-3.26 1.69,-4.17 -3.08,-1.56 3.06,-1.88 0.19,-3.89 0.22,-1.46 4.13,-1.5 1.13,-2.69 -0.34,-2.78 -7.17,-0.62 -4.12,-4.27 0.8,-2.23 -5.36,-4.49 -3.06,-6.23 1.03,-0.79 5.01,-2.22 2.55,-3.36 -2.01,2.19 -1.83,-1.12 -1.83,-2.28 -1.69,-2.27 -3.83,-0.79 -5.87,-1.11 1.15,-3.86 -4.88,0.62 -3.97,-3.05 1.99,-1.08 -1.84,-2.64 0.61,-4.04 1.4,-1.06 3.51,-1.23 1.17,-2.9 -1.51,-1.43 -4.89,0 -2.23,1.47 -1.85,-0.59 -1.52,3.3 -3.1,0.89 -1.9,-1.78 -4.14,1.01 -6.2,-0.92 -1.66,1.28 -2.66,-1.12 -4.47,0.08 -1.69,-1.59 -4.29,-2.33 -5.63,-3.51 2,-1.35 -3.65,-3.85 0.56,-4.64 3.01,-2.03 -3.3,-1.35 -4.61,-1.78 -3.99,-1.02 -3.27,-5.59 -5.16,-8.44 -1.11,-2.34 -2,-6.31 -5.19,-6.38 z", - "department-08" : "m 440.07,60.88 c -1.81,2.16 -4.2,3.74 -5.88,5.87 0.42,3.23 -0.62,6.85 -4.6,6.61 -2.61,1.4 -5.4,3.78 -8.53,2.23 -2.57,-0.31 -6.87,-3.07 -8.21,0.49 -1.09,2.27 2.57,2.05 1.26,4.47 -0.9,1.91 -2.03,4.96 -1.4,6.42 2.68,1.57 -1.58,4.47 -2.94,5.51 -2.03,1.01 -1.06,5.37 -4.36,3.7 -3.54,0.85 2.51,3.79 -0.29,5.51 1.51,0.87 0.58,2.56 -0.65,3.44 -0.53,1.71 1.98,3.37 -0.03,4.16 0.01,4.05 5.16,0.95 6.98,2.81 3.3,0.55 4.18,4.27 7.37,4.91 1.8,0.07 3.13,4.15 6,2.59 2.07,-0.07 4.96,-2.29 5.47,0.74 0.38,2.71 2.61,2.41 4.09,0.8 2.57,1.18 5.4,0.24 7.56,1.64 0.31,-2.7 3.11,-2.45 4.13,-0.68 1.4,-1.13 3.89,-1.64 4.64,-3.09 -2.15,-1.79 -0.62,-5.71 2.04,-5.88 0.24,-1.22 -1.21,-1.95 0.54,-2.89 0.24,-2.32 -1.77,-3.52 -2.04,-5.72 1.86,-0.63 0.83,-2.98 2.1,-3.97 -0.49,-2.87 2.16,-0.91 2.97,0.03 2.69,-1.68 3.87,3.39 6.05,0.41 0.28,-2.43 4.57,-1.6 3.3,-4.01 -0.97,-0.75 -4.08,1.55 -3.04,-1.15 1.75,-1.77 -2.34,-4.79 -3.97,-3 -1.63,-0.09 -2.52,-1.03 -3.35,-1.82 -2.04,-0.2 -1.16,-4.65 -4.28,-3.56 -2.09,-0.97 -3.75,-3.12 -6.22,-1.46 -1.91,0.12 -3.56,-0.3 -2.44,-2.42 -2.07,-2.68 2.55,-6.08 -1.42,-8.03 -4.13,-0.79 1.05,-4.77 -0.06,-7.24 0.2,-2.35 3.01,-3.4 2.16,-5.95 -1.43,-0.71 -2.14,0.48 -2.93,-1.47 z", - "department-55" : "m 466.47,97.47 c -1.56,1.83 -3.96,2.91 -5.49,4.69 -1.73,-0.62 -3.36,-2.29 -5.13,-1.66 -3.57,-3.74 -2.07,3.57 -4.83,4.43 1.86,1.88 2.97,4.89 1.69,6.85 0.61,2.43 -4.88,3.04 -2.52,6.02 2.38,3.31 -6.19,2.92 -2.28,6.6 -4.21,1.78 0.99,5.9 0.55,8.83 -0.1,1.57 -1.24,3.24 0.94,2.92 1.75,1.64 -1.92,3.15 0.48,3.93 0.25,3.59 -6.19,2.07 -5.18,5.89 1.08,1.97 -0.23,3.47 -1.14,4.72 1.38,2.47 5.49,3.27 5.15,6.61 0.23,1.76 -1.52,5.98 0.78,6.29 1.9,-2.79 1.64,2.85 3.89,1.37 2.31,2.74 5.53,4.67 8.96,5.55 2.27,1.43 4.35,3.02 5.92,5.23 2.69,2.59 4.85,-1.27 7.77,-0.65 1.95,-0.75 1.99,-2.61 4.21,-1.43 3.14,0.06 4.5,-5.18 1.4,-6.29 -3.87,-2.46 6.35,-3.69 1.46,-4.42 -1.47,-2.21 0.74,-5.44 -1.65,-7.38 0.52,-3.01 3.49,-5.5 2.03,-8.71 1.74,-1.41 -2.37,-3.07 0.56,-4.22 1.59,-0.69 4.2,-1.75 1.55,-3.18 -1.32,-1.7 3.57,-5.15 -0.4,-5.57 1.51,-1.93 -0.24,-3.53 -1.91,-2.99 -2.09,-1.69 1.38,-6.16 -1.64,-5.8 -0.54,-2.63 -0.07,-4.79 1.7,-6.78 -2.19,-0.64 -1.63,-2.43 -1.84,-4.23 -1.39,-1.72 -2.89,-6.03 -5.8,-3.74 -2.4,-0.05 -3.98,1.51 -4.61,0.54 -0.96,-0.51 -0.02,-0.62 -1.25,-1.61 0.46,-1.47 -0.85,-2.06 -0.1,-2.7 -0.17,-2.17 1.28,-0.21 0.11,-1.81 -0.06,-2.69 -0.83,-5.88 -3.37,-7.28 z", - "department-54" : "m 483.26,101.56 c -1.75,2.39 -6.72,-0.76 -7.03,2.38 -2.62,-1.44 -7.36,1.12 -6.17,4.43 0.74,4.88 5.26,0.58 8.1,1.48 2.96,1.01 3.57,5.58 4.1,7.38 3.12,1.31 -1.93,3.72 -0.52,5.95 -0.87,2.35 2.62,1.44 1.12,3.56 0.09,2.56 -0.17,4.4 2.68,4.39 0.95,1.44 -0.85,2.5 1.32,3.1 0.08,2.43 -2.65,4.77 0.06,6.73 -1.86,1.53 -5.42,2.68 -2.94,4.96 -0.32,3.14 0.42,6.53 -2.29,8.78 0.3,2.26 1.85,3.57 0.92,5.93 -0.21,2.42 4.1,2.54 0.74,3.73 -2.75,0.52 -2.79,3.37 -0.09,3.76 0.33,2.01 0.1,5.32 3,2.95 5.39,-1.2 1.3,5.69 5.29,7.31 -0.38,3.55 5.14,2.54 6.11,0.87 0.8,0.45 2.56,2.67 3.02,-0.32 0.4,-3.41 3.98,0.7 5.58,-2.34 2.07,-1.7 2.85,1.78 5.26,0.83 2.41,0.96 5.78,-1.97 8.72,-1.33 -0.11,-2.51 2.69,-4.44 3.49,-1.11 1.87,2.12 5.7,3.02 8.46,2.03 1.11,-2.51 3,0.55 4.43,-2.06 1.4,-3.3 8.67,-2.58 5.72,-7.33 -1.28,-1.26 -2.12,-2.52 -2.84,-3.74 -2.12,0.62 -3.12,-2.23 -5.19,-0.6 -3.43,-1.47 -6.2,-3.18 -9.79,-3.87 -0.04,-2.22 -3.9,-2.63 -5.43,-4.68 -2.97,-0.67 -5.52,-2.5 -8.38,-2.2 -1.35,-2.37 -4.49,-3.45 -2.73,-6.5 1.93,-3.82 -4.9,-3.21 -7.26,-3.68 -1.33,-1.55 -2.62,-2.04 -4.55,-3.04 0.53,-3.54 -7.57,-4.55 -4.54,-8.33 3.1,1.07 1.22,-3.19 3.24,-3.88 -1.85,-1.34 -2.22,-2.92 0.05,-3.88 0.24,-1.64 -0.87,-4.88 -1.53,-5.53 -2.45,-0.97 -0.9,-3.36 -2.63,-4.79 -0.94,-2.62 2.2,-6.94 -2.47,-7.44 -1.91,-1.02 -2.61,-3.63 -5,-3.91 z", - "department-57" : "m 503.4,104.95 c -3.5,0.04 -5.26,4.42 -8.98,3.78 -1.89,-0.4 -2.66,-4.83 -4.84,-2.71 4.17,0.85 -0.69,5.81 2.03,8.08 0.95,1.12 1.47,1.12 0.16,1.85 2.72,1.47 3.97,5.18 2.78,8.12 -3.16,1.23 2.9,3.39 -0.76,4.28 0.68,2.17 0.05,3.22 -2.29,2.94 -2.22,3.61 4.41,3.78 4.47,6.79 0.32,2.5 4.34,1.92 4.61,4.09 2.63,0.22 7.9,-0.18 8.05,3.09 -1.51,2.09 -1.02,3.76 1.16,4.61 -0.07,2.41 2.71,3.1 4.16,2.64 2.31,1.86 5.93,1.31 7.61,4.01 3.25,1.89 6.08,3.97 9.68,5.11 1.62,1.34 4.4,1.49 5.37,1.07 1.15,1.63 4.32,0.61 3.99,3.06 2.04,2.55 6.14,5.26 8.81,1.93 1.69,-2.04 5.6,-6.38 2.03,-8.09 -0.63,-2.26 4.24,-5.88 0.71,-8.42 -2.28,-1.08 -5.5,-4.67 -6.48,-0.31 -1.32,2.17 -2.68,0.9 -2.94,-0.66 -3.5,-1.06 4.07,-2.79 -0.09,-3.01 -2.21,-1.11 -5.81,-2.3 -5.04,-4.57 1.13,0.06 2.3,-2.29 3.7,-2.54 0.74,-1.99 0.82,-7.28 3.45,-6.47 0.09,2.59 1.3,4.57 3.75,4.84 3.24,0.28 5.22,3.37 8.36,2.73 2.95,-1.6 5.64,0.34 8.22,0.72 1.73,-1.99 3.39,-5.75 3.26,-7.88 -3.15,-1.08 -5.79,-2.77 -6.37,-6.36 -2.47,-1.1 -4.98,-1.26 -6.78,1.45 -3.22,2.32 -7.72,1.44 -11.17,-0.38 -0.64,3.79 -3.96,0.62 -3.06,-1.79 -1.61,-2.56 -5.77,-3.52 -8.36,-2.33 2.56,4.39 -5.29,4.06 -5.55,1.2 0.78,-2.3 -2.24,-2.11 -2.29,-4.46 -1.24,-2.84 -6.04,-4.38 -3.87,-7.88 -2.52,-2.26 -3.82,-6.64 -8.27,-6.11 -4.17,1.53 -5.59,-3.04 -9.23,-2.45 z", - "department-67" : "m 544.44,133.33 c -2.55,1.2 -1.86,5.34 -3.54,7.57 -2.79,-0.45 -3.98,5.32 -0.38,4.93 0.87,1.03 5.75,1.83 2.14,2.53 -1.78,1.5 1.91,2.4 0.8,3.44 3.07,0.38 2.8,-5.61 5.59,-2.68 1.27,0.5 2.75,1.06 3.36,2.31 3.21,1.88 -0.45,5.47 -1.04,7.67 0.4,1.75 3.37,1.12 1.47,2.94 -0.9,2.92 -2.34,6.34 -5.54,7.14 -1.52,-0.27 -6.22,0.31 -2.38,1.08 1.92,0.81 -2.32,1.02 0.26,2.27 -0.26,2.11 -1.22,5.21 -0.98,7.34 -1.59,2.69 3.49,1.95 4.06,2.53 1.12,2.38 5.28,1.06 5.74,4.01 2.04,-0.84 -0.91,2.57 1.9,1.72 3.01,0.58 6.32,2.58 6.2,5.56 1.67,1.12 3.39,4.4 5.2,1.29 0.87,-3.2 3.75,-5.3 4.22,-8.66 0.15,-2.7 3.74,-3.64 2.22,-6.76 -0.27,-3.01 1.17,-6.05 2.5,-8.7 1.39,-2.29 -0.7,-5.94 1.56,-8.31 1.96,-2.54 5.71,-3.61 6.25,-7.2 0.97,-1.38 2.5,-0.59 3.09,-2.39 3.71,-1.2 3.61,-5.01 5.11,-7.95 0.24,-2.03 5.28,-4.42 1.59,-4.91 -3.51,-0.14 -6.34,-2.15 -9.28,-3.81 -2.69,-1.53 -5.76,0.29 -8.43,-1.4 -2.54,1.19 -6.23,-0.86 -8.22,1.79 -0.69,2.41 -2.45,7.76 -5.69,4.83 -2.43,-2.51 -5.76,1.35 -8.43,-0.25 -1.12,-1.59 -3.01,-2.5 -4.57,-2.09 -2.06,-1.13 -5.18,-2.13 -4.56,-5.04 0.33,-0.23 0.21,-0.84 -0.21,-0.81 z", - "department-88" : "m 543.7,170.72 c -3.31,1.38 -6.33,2.9 -8.64,5.73 -1.29,0.67 -1.97,-1.71 -3,0.67 -1.48,2.53 -4.46,-1.14 -6.53,-0.37 -3.07,0.39 -1.42,-5.29 -4.45,-2.86 -1.72,1.06 0.93,4.33 -2.07,2.2 -1.78,0.74 -4.05,0.76 -5.72,1.72 -1.57,1.83 -1.69,-1.56 -3.59,-0.23 -1.77,0.14 -2.17,-3.2 -3.48,-0.63 -1.05,2.66 -5.79,-1 -5.2,1.97 -0.89,2.75 -2.59,1.71 -3.28,0.37 -0.1,2.4 -3.59,0.58 -5.16,1.87 -1.7,-0.72 0.13,-3.65 -2.1,-3.15 -3.28,-1.76 1.05,-7.74 -3.76,-6.9 -1.91,1.57 -3.93,0.03 -4.94,2.56 -1.62,0.54 -3.6,-1.45 -4.31,0.83 -0.98,2.28 -4.98,-0.54 -5.76,2.63 -1.49,-1.12 -4.76,0.24 -4.44,1.84 2.72,-0.76 -1.5,4.16 1.48,2.83 2.58,-2.8 4.27,0.92 5.47,2.86 0.99,2.29 2.44,-0.84 3.66,1.62 0.19,1.46 -0.14,2.91 2.21,2.73 1.05,0.81 2.84,3.4 0.16,2.99 -1.16,2.1 -0.8,4.9 -2.74,6.18 0.01,1.72 3.18,0.08 3.76,2.45 2.71,0.96 3.73,3.61 3.02,6.15 1.1,2.31 3.31,-2.88 3.5,0.86 1.43,3.89 3.56,-4.88 4.18,-0.76 -1.87,1.59 0.22,2.12 0.99,0.26 2.44,-0.34 2.63,-4.83 6.01,-3.79 2.78,-2.08 1.94,3.16 3.04,3.81 1.67,1.1 3.1,2.11 4.88,0.16 2.8,0.02 6.14,-1.3 7.82,1.99 0.57,3.89 4.42,1.42 5.62,-0.82 2.89,-1.35 3.54,3.7 6.5,4.05 2.19,0.9 3.46,2.55 5.11,3.85 2.21,-0.74 5.19,-1.96 3.36,-4.73 1.56,-1.66 0.35,-4.44 1.89,-6.56 0.98,-1.7 3.7,-2.62 3.88,-5.25 1.52,-1.58 3,-3.43 1.6,-5.14 1.49,-2.96 3.07,-5.84 4.54,-8.75 0.95,-1.35 2.26,-2.99 0.28,-4.02 -1.87,1.29 -5.67,-0.97 -2.92,-2.78 -2.18,-1.78 1.85,-5.54 -0.21,-7.07 -0.57,-0.2 -0.01,-1.38 -0.66,-1.38 z", - "department-52" : "m 446.82,158.96 c -1.69,0.91 -3.13,-0.45 -4.82,1.2 -1.12,-0.83 -4.57,-0.69 -3.54,0.9 2.8,-1.2 4.68,3.32 1.31,3.37 -2.26,0.28 -2.04,1.83 -1.08,2.97 1.74,4.14 -5.82,-1.2 -5.38,2.99 -0.5,1.16 -1.78,3.02 -1.22,3.88 2.37,0.94 2.16,4.62 5.26,4.46 -0.97,2.99 5.41,1.68 2.86,4.7 2.62,1.68 0.37,4.97 1.38,6.77 1.02,1.49 -1.35,3.52 -0.54,5.29 0.17,4.44 -5.3,-1.1 -6.39,2.93 -2.48,1.02 2.31,2.62 0.41,4.4 1.49,1.78 5.61,0.36 3.83,3.87 2.37,-0.59 4.42,1.86 1.79,3.34 0.65,2.75 2.75,-2.78 3.64,0.5 0.65,2.55 3.6,4.14 3.33,6.7 -1.31,0.89 -4.49,2.9 -1.32,2.84 1.47,1.51 -1.34,5.58 1.92,4.46 1.63,-2.16 2.42,0.63 2.94,1.7 1.79,1.42 3.81,1.4 4.82,-0.8 0.79,0.32 -0.13,2.53 1.75,2.49 0.96,1.39 3.18,1.14 1.74,3.15 0.89,2.65 3.78,-3.01 5.24,-0.13 1.75,-1.89 1.15,-6.06 4.57,-5.11 1.28,-1.4 3.49,1.3 4.33,-1.4 1.59,-1.92 1.63,2.72 3.95,1.22 2.18,-0.12 2.71,-1.17 2.09,-3.01 0.93,-1.34 1.22,-2.86 -0.38,-3.56 -0.59,-2.58 1.37,-2.98 3.06,-3.3 -0.71,-3.1 2.46,-1.42 3.57,-1.95 -0.16,-2.01 1.36,-3.53 2.99,-3.36 -0.29,-2.42 -2.17,-4.47 -4.19,-2.78 -1.26,-1.95 0.41,-5.52 -3.04,-6.35 -1,-1.34 -2.58,-2.41 -4.02,-2.13 -1.13,-1.43 1.6,-1.92 0.97,-3.42 1.1,-1.79 0.88,-4.33 2.89,-4.52 -0.46,-2.76 -4.86,-1.71 -3.68,-4.79 -1.34,-2.4 -3.06,0.93 -3.95,-2 -1.16,-2.97 -3.69,-4.38 -6.2,-2.11 -0.59,-1.91 1.12,-3.24 -1.32,-3.92 1.85,-0.41 3.47,-2.52 0.93,-3.26 -0.38,-1.87 -1.16,-2.02 -2.78,-2.58 -1.73,-3.16 -6.41,-1.82 -8.19,-4.99 -2.15,-0.46 -2.78,-2.81 -5.04,-3 -0.12,-2.21 -1.01,-1.61 -2.26,-0.66 -2.79,-0.35 1.41,-5.66 -2.22,-4.93 z", - "department-70" : "m 499.88,202.89 c -2.63,0.3 -4.89,2.11 -5.97,4.12 -0.94,0.91 -3.97,2.32 -2.12,-0.03 0.13,-1.92 -1.88,-0.34 -1.76,0.64 -1.02,1.34 -0.98,3.88 -3.06,3.55 -0.55,1.66 -1.23,4.46 -3.43,2.67 -1.42,0.7 -1.13,3.58 -3.32,2.54 -2.26,2.15 1.83,3.96 -0.2,6.21 1.24,3.12 -4.32,4.77 -5.32,1.82 -0.58,-0.92 -2.73,2.87 -4.37,1.01 -1.22,1.14 -4.49,-0.07 -3.8,2.59 -2.11,1.09 0.1,3.94 1.06,1.41 2.21,-1.57 4.14,3.91 2.96,5.69 -0.66,2.07 -2.95,2.72 -4.23,3.24 1.21,1.06 -1.76,2.05 0.86,1.83 2.25,0.29 -0.16,6.1 3.34,4.24 1.79,2.16 -1.88,5.33 1.36,5.71 1.44,2.16 3.91,4.38 6.57,2.71 2.27,-0.86 4.59,0.16 6.71,-1.75 2.79,-1.14 5.72,-4.18 8.47,-2.76 2.5,-0.09 4.56,-1.97 5.85,-3.76 1.83,0.46 2.61,-0.36 2.86,-1.77 2.63,-0.46 5.27,-1.6 5.54,-4.7 2.29,-1.29 5.83,-3.32 7.88,-0.71 1.23,-0.95 5.65,1.5 4.64,-1.81 -0.18,-2.44 4.57,1.54 3.74,-2.01 -0.12,-2.68 3.06,0.48 4.42,0.6 2.85,1.79 2.94,-3.34 1.04,-4.6 1.68,-2.26 -0.76,-5 -0.83,-7.47 -0.79,-2.86 4.43,-4.21 1.79,-6.71 -2.08,-2.66 -6.24,-2.87 -7.71,-6.14 -2.5,-2.92 -3.93,3.02 -6.8,2.39 -1.62,-1.8 -2.57,-4.88 -5.66,-4.53 -2.96,-0.21 -6.08,3.12 -8.15,0.41 -2.4,-0.51 0.23,-4.03 -2.37,-4.63 z", - "department-21" : "m 430.26,202.39 c -2.98,-0.36 -2.28,3.5 -2.89,4.09 -3.52,0.85 -7.72,-0.28 -10.91,1.13 0.12,1.91 0.16,3.7 -1.78,4.39 -1.43,2.57 2.23,2.59 2.78,2.96 0.78,2.82 0.56,7.26 -3.23,7.04 -0.11,2.16 1.99,3.62 -1,3.9 0.72,2.94 -2.41,6.52 -3.86,9.44 -2.44,2.06 0.03,6.34 -3.4,7.86 -0.01,1.52 1.54,3.57 2.08,4.44 2.08,-1.74 -0.71,3.97 0.05,5.35 0.76,2.06 4.84,0.48 4.74,3.88 -1.32,3.42 1.69,6.38 5.01,6.9 1.3,1.42 0.65,2.78 2.51,1.23 2.03,0.22 0.19,2.75 2.63,2.77 2.7,1.39 5.44,1.37 6.15,4.62 1.34,1.99 4.7,1.98 4.57,4.24 2.88,-1.34 6.42,-1.22 9.16,-3.33 2.31,-0.8 6.07,-0.86 8.14,-1.17 2.91,2.58 6.21,-1.12 9.25,-0.89 2.24,-0.61 1.63,-2.43 0.75,-3.34 1.62,-2.89 6.07,-2.65 6.78,-6.47 1.41,-2.73 2.01,-5.54 2.73,-8.48 0.14,-1.92 1.96,-2.74 -0.25,-3.51 0.43,-2.24 1.54,-5.31 -1.69,-5.06 -0.44,-1.89 -1.3,-4.9 -2.86,-4.55 0.22,-3.37 5.14,-1.91 4.96,-5.91 0.76,-2.96 -2.67,-7.08 -4.51,-2.82 -2.22,-0.25 -3.54,-1.43 -5.3,0.74 -2.39,1.02 -0.78,-3.81 -3.53,-3.94 -1.77,-1.18 -0.62,-3.19 -2.39,-0.9 -3.64,2.12 -4.58,-4.93 -7.28,-2.21 -2.89,-0.45 0.78,-4.91 -3.01,-5.07 0.9,-1.64 5.08,-3.23 1.85,-5.04 -1.35,-1.96 -2.46,-6.59 -4.91,-3.77 -2.57,-0.44 2.15,-3.15 -0.94,-3.86 -1.96,-0.39 -2.06,-0.68 -1.78,-2.38 -2.58,-1.59 -5.78,-1.16 -8.59,-2.28 l 0,0 z", - "department-25" : "m 524.75,232.72 c 0.6,3.47 -5.06,1.11 -4.41,4.65 -1.59,0.18 -4.21,0.28 -5.1,0.07 -2.83,-2.93 -7.31,0.27 -8.34,3.45 -1.29,2.51 -4.23,1.18 -5.23,3.59 -1.44,0.48 -2.41,0.42 -2.71,1.78 -2.17,0.44 -3.6,3.16 -6.39,2.02 -3.22,-0.12 -5.72,2.6 -8.74,3.57 -3.03,0.32 -3.9,3.34 -1.23,5.03 3.1,1.51 4.18,4.87 1.57,7.47 0.1,1.6 -1.31,3.03 -1.29,4.53 1.26,1.41 2.75,-3.16 3.11,0.11 0.9,2.49 4.55,-0.29 4.63,2.13 3.8,0.81 1.81,4.9 4.19,7.22 0.91,2.91 5.17,1.46 6.56,4.25 3.53,2.93 0.14,6.33 -2.84,7.54 -1.4,1.89 0.42,3.62 -1.39,5.19 -0.75,2.81 3.69,5.73 3.76,1.72 2.39,-2.03 4.37,-4.58 7.12,-6.18 2.26,-1.76 5.45,-2.91 6.57,-5.72 -0.74,-2.93 1.48,-6 -0.08,-9.15 0.11,-4.19 6.86,-3.29 9.42,-5.9 2.72,-1.98 2.28,-6.41 5.92,-7.6 2.76,-2.22 4.53,-5.44 7.39,-7.56 -0.61,-3.67 3.46,-4.22 4.78,-6.73 -0.15,-3.82 -4.97,0.07 -7.07,-1.46 0.7,-1.9 3.21,-4.13 1.45,-6.71 -0.76,-1.48 -0.67,-2.19 0.61,-2.92 -0.66,-3.47 -5.22,-3.74 -7.78,-2.34 -1.29,-1.12 -3.19,-0.98 -4.5,-2.06 z", - "department-2B" : "m 591.47,517.82 c -3.8,0.59 0.96,5.58 -2.34,7.11 0.41,2.37 -1.56,4.36 0.27,6.51 0.91,2.65 0.16,5.25 -1.21,7.52 -1.7,1.4 -2.28,-3.59 -4.88,-2.82 -2.72,-0.68 -5.78,0.73 -6.51,3.55 -0.96,3.57 -5.53,1.85 -7.86,3.52 -1.89,1.06 -3.87,1.71 -4.61,3.96 -1.27,0.02 -3.62,-0.97 -3.17,1.52 -0.83,1.46 -4.01,3 -1.97,4.89 -0.74,1.76 -0.34,3.49 -2.71,3.49 -0.21,1.44 -2.22,2.88 0.58,2.71 2.53,1.11 5.12,2.12 7.69,3.24 1.52,0.72 3.8,-1.59 3.24,1.35 1.14,3.16 4.05,4.22 6.73,6.16 3.36,0.28 1.41,5.5 4.55,6.47 1.71,1.96 0.79,6.36 4.83,5.7 0.18,2.3 0.59,4.8 0.39,7.09 3.14,0.81 -1.89,5.25 2.18,4.96 1.78,0.52 2.82,0.98 4.16,-0.94 3.62,-1.36 0.49,-5.59 2.73,-7.46 1.3,-1.69 2.64,-3.75 1.77,-5.45 1.89,-0.05 4.02,-2.43 3.98,-4.66 -3.67,0.56 1.98,-2.55 0.4,-4.61 0.47,-4.5 -0.6,-8.88 -1.01,-13.3 -0.14,-3.75 0.34,-7.67 -0.54,-11.31 -2.55,0.11 -3.67,-4.24 -3.35,-6.45 -0.43,-3.66 1.56,-7.1 1.67,-10.65 -0.63,-3.67 -1.07,-7.33 -1.55,-11 -0.76,-1.12 -2.26,-1.12 -3.47,-1.1 z", - "department-2A" : "m 553.92,559.49 c -0.76,0.55 -0.1,3.85 1.13,1.96 1.53,-0.6 3.16,1.13 1.04,1.7 0.18,1.06 4.56,1.95 3.28,3.75 -1.7,0.83 -4.95,1.13 -5.71,2.43 1.47,0.55 1.4,3.03 1,3.92 1.78,0.17 -1.16,0.99 0.63,1.63 0.63,1.3 2.89,1.78 3.93,2.6 2.01,-0.69 1.72,2.93 3.31,3.71 -1.37,1.54 -4.97,1.78 -3.83,4.58 -1,1.17 -4.84,0.3 -2.28,2.46 0.58,1.07 -0.7,3.38 1.57,2.3 2.41,0.81 4.08,-2.02 6.12,-1.18 1.97,1.46 -0.22,3.37 0.14,5 -2.75,0 1.8,1.85 -1.02,2.54 -3.01,0.03 -0.83,3.83 -3.9,3.99 -1.68,0.23 1.57,0.7 1.54,1.65 1.76,-0.59 3.68,-1.62 3.39,1.11 1.89,0.2 4.59,0.62 6.1,1.72 -1.54,1.28 -2.78,3.54 -5.39,3.37 -1.08,2.57 -0.44,5.65 2.26,6.65 0.47,1.48 3.07,1.49 4.07,2.79 2.06,-0.18 4.37,2.72 5.98,1.13 0.61,-0.03 -0.33,2.68 1.6,1.9 1.78,0.68 -1.94,3.73 1.39,3.43 1.92,2.48 5.07,2.16 5.35,-1.31 -0.28,-1.01 -2.21,1.4 -1.26,-0.4 -1.13,-2.4 4.15,-2.95 2.21,-5.91 -0.37,-2.45 4.29,-3.07 3.59,-5.68 -1.11,-1.47 -3.9,2.07 -2.85,-0.95 0.15,-2.4 3.01,0.56 2.82,-1.99 2.59,-0.18 0.07,-3.36 2.35,-4.13 0.15,-3.28 0.23,-6.85 -0.14,-10.22 -1.57,-1.53 -3.07,3.01 -4.83,0.98 -2.75,0.63 -3.37,-1.87 -1.99,-3.78 0.22,-1.35 -2.56,-0.55 -1.08,-2.17 -0.85,-2.32 1.32,-7.41 -2.67,-6.39 -2.45,-0.98 -0.65,-4.44 -2.73,-5.65 -2.85,-1.24 -1.36,-6.19 -4.82,-6.53 -1.64,-1.96 -4.77,-2 -5.5,-4.65 -1.21,-1.02 -0.51,-3.66 -2.85,-2.55 -2.75,-0.46 -5.3,-1.82 -7.74,-2.91 -1.28,-0.57 -2.84,-0.72 -4.21,-0.9 z", - "department-66" : "m 350.33,540.74 c -2.96,0.38 -4.31,2.8 -5.6,5.05 -3.53,0.71 -7.2,-0.41 -10.77,-0.57 -2.35,1.71 -6.82,-1.75 -7.77,1.56 0.2,2.13 1.85,4.41 0.81,6.44 -1.56,1.89 -4.34,1.3 -5.68,3.47 -1.35,1.08 -2.18,1.99 -3.65,0.52 -2.39,0.04 -5.76,-0.02 -7.25,1.69 -0.99,2.71 -4.23,1.36 -5.45,3.77 -3.15,-0.36 -6.54,2.28 -5.14,5.7 2.43,0.62 5.15,0.58 6.86,2.76 2.19,0.36 3.92,1.1 3.79,3.75 0.25,2.56 3.21,3.71 5.32,2.52 1.96,-1.04 2.2,-4.45 4.97,-3.96 2.58,-0.15 5.03,-1.38 7.33,0.7 1.62,1.14 4.07,1.03 4.94,3.03 1.26,1.86 4.32,3.14 5.35,0.56 1.73,0.75 6.82,2.34 4.14,-1.14 0.71,-2.52 4.05,-2.95 6.3,-2.62 1.56,-1.63 3.48,-3.18 5.81,-2.8 0.99,-2.12 3.1,-0.12 4.88,-0.88 1.63,1.07 2.93,3.67 5.54,2.51 3.2,-0.39 -1.16,-3.71 -1.44,-5.38 -2.92,-1.29 -2.81,-4.63 -3.06,-7.37 0.78,-2.2 -2.64,-2.22 -1.43,-4.12 2.29,1.97 1.16,-2.93 1.55,-4.24 0.36,-2.22 -0.89,-3.89 -3.17,-3.82 -1.26,-1.48 0.41,-4.01 -2.35,-4.33 -1.89,-0.44 -3.32,-1.87 -4.85,-2.81 z", - "department-01" : "m 445.43,302.59 c -1.44,3.02 -1.75,6.16 -3.18,9.18 -0.78,3.16 -1.85,6.34 -2.91,9.5 -0.74,1.88 -1.31,3.79 -0.09,5.37 -0.73,2.05 -2.97,3.67 -1.95,5.9 -1.67,2.26 0.87,5.73 -1.18,7.83 1.88,0.01 3.46,1.61 3.99,2.62 2.16,-1.53 3.89,1.88 4.07,3.41 0.92,1.26 -0.03,3.77 2.46,2.77 2.89,0.46 5.98,-0.89 8.76,0.39 1.35,2.24 3.89,2.93 5.42,0.31 1.18,-1.7 1.66,-5.65 4.09,-5.27 2.02,1.24 3.75,2.88 3.08,4.98 1.95,2.32 3.67,4.97 5.93,6.73 1.33,1.23 0.17,0.8 -0.53,0.61 0.61,1.8 3.11,2.49 3.34,4.83 0.97,0.84 1.38,-1.89 2.87,-1.59 -0.3,-1.63 1.67,-2.68 0.77,-4.34 3.81,0.96 3.71,-3.34 3.75,-5.95 0.89,-3.44 1.98,-6.82 2.27,-10.31 -1.07,-2.3 -1.36,-4.85 -1.09,-7.47 0.3,-1.5 0.9,-3.58 2.27,-1.4 2.48,1.01 0.53,-3.51 3.59,-2.7 2.71,-0.13 3.55,-3.26 1.37,-4.78 1.32,-2.8 5.95,-1.73 6.82,-4.09 -1.66,-3.05 4.61,-7.07 -0.2,-9.19 -2.62,-2.47 -4.13,2.14 -6.1,3.38 -0.9,2.11 -2.5,3.05 -3.65,4.53 -1.99,2.56 -5.47,0.79 -8.11,1.25 0.84,-3.04 -2.73,-3.43 -3.76,-4.72 -2.02,1.65 -3.16,4.49 -6.19,4.68 -2.73,0.46 -1.81,-2.02 -1.56,-3.51 -1.42,0.56 -1.69,-0.36 -2.26,-1.49 -0.06,1.35 -0.96,2.99 -0.83,0.6 -1.4,-1.01 -1.59,-2.59 -1.58,-3.72 -1.32,-0.93 -3.93,-1.28 -2.29,-3.07 -1.76,-1.43 -5.48,-1.31 -5.42,-4.72 -2.13,-0.62 -4.08,0.9 -6.23,1.42 -1.93,-0.36 -3.28,-2.81 -5.2,-1.46 0.07,-0.1 -0.3,-0.68 -0.54,-0.51 z", - "department-39" : "m 472.04,250.64 c -2.16,1.79 -1.36,5.28 -2.94,7.45 0.09,2.73 -2.31,4.73 -3.53,7.05 -3.03,-0.47 -5.35,3.74 -3.19,4.71 -2.06,0.47 -3.73,5.36 -0.52,4.7 1.33,0.76 0.69,4.17 3.48,3.21 1.68,-0.66 1.23,2.18 3.27,2.09 2.46,1.35 -0.2,2.67 -1.91,2.03 -2.06,-0.51 -4.46,1.94 -1.6,2.77 2.43,1.33 -1.33,3.03 1.08,4.08 0.89,2.1 1.19,3.82 2.13,6.05 -2.12,0.95 -0.43,3.73 -3.06,3.72 -1.86,2.41 0.74,4.14 2.3,5.69 -0.13,2.93 -6.18,0.76 -4.86,4.67 0.41,1.69 3.59,1.72 2.72,3.84 0.3,1.7 2.14,1.5 2.39,1.42 0.16,2.17 2.98,0.53 1.91,2.98 -0.9,3.13 3.87,1.82 4.85,0.12 1.46,-0.55 2.58,-4.59 4.24,-1.99 2.29,0.06 2.46,3.2 3.09,3.77 2.93,-0.04 7.08,0.91 8.5,-2.49 2.02,-1.97 3.8,-4.92 6.21,-7.02 2.27,-1.54 0.39,-4.74 2.54,-6.4 1.4,-1.49 3.11,-3.84 -0.06,-3.89 -2.06,-1.17 -3.31,-3.74 -0.87,-5.29 0.4,-1.53 -1.44,-3.09 0.76,-4.19 2.73,-1.36 6.13,-4.43 2.26,-6.76 -1.6,-2.02 -3.91,-2.65 -5.92,-3.04 -1.27,-2 -1.73,-3.98 -2.6,-5.89 -0.82,-0.25 1.22,-2.33 -1.1,-2.27 -1.84,-1.29 -4.2,-1.14 -5.91,-2.76 -0.62,-1.82 -0.09,-1.2 -1.26,-0.03 -2.05,2.08 -3.47,-2.98 -0.74,-2.02 0.76,-1.1 -0.4,-3.36 1.4,-4.52 2.37,-3.1 -2.64,-4.46 -3.59,-6.62 -0.37,-1.97 -2.06,-4.51 -3.97,-2.34 -2.56,0.88 -4.13,-1.12 -5.49,-2.82 z", - "department-68" : "m 549.43,183.82 c -2.25,1 -2.94,3.73 -3.79,5.81 -0.9,2.15 -3.75,4.26 -2.11,6.74 -0.93,2.22 -2.92,4.25 -3.93,6.64 -2.43,1.18 -3.51,3.7 -3.19,6.38 0.13,1.69 -1.55,2.36 -0.44,3.95 0.77,2.64 -4.62,1.97 -2.6,4.52 2.13,1.91 5.37,1.9 7.52,3.96 0.67,1.81 1.6,4.32 0.06,6.09 -1.78,1.43 -0.08,4 1.85,2.88 1.83,0.98 2.47,3.66 3.32,5.16 -0.72,2.04 1.34,2.1 2.39,2.44 -0.32,1.38 -1.23,4 1.33,3.32 1.03,1.33 2.07,1.29 3.35,0.31 2.56,-0.08 5.85,0.35 7.17,-2.31 -0.73,-1.24 -0.96,-2.18 0.78,-1.43 2.66,0.8 0.35,-2.42 2.52,-2.38 0.82,-0.85 -1.99,-1.47 0.03,-2.05 1.88,-1.02 4.21,-2.78 2.05,-4.99 -1.7,-1.63 -3.7,-3.88 -1.43,-6.04 0.91,-2.16 -1.41,-4.57 0.56,-6.71 0.67,-2 0.44,-4 1.78,-5.83 -0.03,-2.09 3.45,-4.94 0.43,-6.95 -3.06,-1.46 0.88,-6.62 -2.19,-7 -1.65,-0.56 -1.53,-2.31 -3.25,-2.51 -0.17,-1.94 -0.33,-3.93 -2.69,-4.35 -2.09,-1.1 -4.78,-1.23 -5.71,-3.58 0.07,-2.15 -2.48,-1.52 -3.79,-2.06 z", - "department-90" : "m 532.37,216.22 c -0.55,0.23 -0.49,0.97 -0.95,1.33 -0.62,0.8 -1.51,1.36 -1.95,2.3 -0.77,0.99 -0.8,2.48 -0.08,3.5 -0.03,0.67 0.48,1.24 0.41,1.93 -0.01,0.83 -0.07,1.76 0.62,2.36 0.29,0.29 0.48,0.66 0.1,0.97 -0.14,0.38 -0.57,0.43 -0.76,0.72 -0.05,0.5 0.53,0.78 0.56,1.29 0.18,0.47 0.52,0.85 0.75,1.28 0.26,0.15 0.87,0.53 0.4,0.81 -0.7,0.47 -0.05,1.72 0.76,1.5 0.78,0.02 1.57,-0.19 2.27,-0.46 0.8,0.18 1.42,0.82 1.45,1.64 0.04,0.86 1.41,0.54 1.43,1.42 0.01,0.47 0.26,1.11 -0.01,1.5 -0.5,0.35 -0.45,-0.64 -0.86,-0.74 -0.5,-0.2 -0.94,0.42 -0.64,0.85 0.2,0.34 -0.18,0.93 0.34,1.04 0.43,0.61 0.84,1.44 0.71,2.19 -0.36,0.5 0.42,0.64 0.75,0.45 0.83,-0.18 1.47,-0.8 2.26,-1.07 0.62,-0.6 -0.22,-1.42 -0.38,-2.05 -0.12,-0.36 -0.45,-1.06 0.17,-1.13 0.42,-0.08 0.81,-0.3 1.15,-0.48 0.96,0.2 1.82,0.91 2.86,0.71 1.1,-0.11 2.47,-0.62 2.45,-1.94 0.16,-1 -0.69,-1.62 -1.41,-2.13 -0.16,-0.46 -0.02,-1.09 -0.52,-1.4 -0.45,-0.55 -0.43,-1.71 -1.38,-1.73 -0.72,-0.12 -1.46,0.05 -1.95,0.59 -0.4,0.24 -0.3,-0.53 -0.6,-0.62 -0.31,-0.79 -0.34,-1.73 0.1,-2.47 0.16,-0.36 0.01,-1.1 0.63,-0.98 0.41,0.01 0.38,-0.37 0.4,-0.64 0.61,-1 -0.15,-2.14 -0.3,-3.13 0.23,-0.47 0.38,-1.05 -0.1,-1.44 -0.8,-1.1 -2.3,-1.18 -3.29,-2.06 -0.38,-0.36 -0.84,-0.58 -1.33,-0.6 -0.84,-0.67 -2.13,-0.38 -2.92,-1.15 -0.45,-0.63 -0.74,-1.4 -0.95,-2.13 -0.05,-0.04 -0.12,-0.05 -0.18,-0.04 z" - } - } - } - } - ); - - return Mapael; - -})); \ No newline at end of file diff --git a/htdocs/public/high/plugins/jquery-mapael/maps/france_departments.min.js b/htdocs/public/high/plugins/jquery-mapael/maps/france_departments.min.js deleted file mode 100644 index c615fe06..00000000 --- a/htdocs/public/high/plugins/jquery-mapael/maps/france_departments.min.js +++ /dev/null @@ -1,16 +0,0 @@ -/*! - * - * Jquery Mapael - Dynamic maps jQuery plugin (based on raphael.js) - * Requires jQuery and Mapael - * - * Map of metropolitan France by department - * Equirectangular projection - * - * @author Vincent Brouté - * @source http://fr.m.wikipedia.org/wiki/Fichier:France_location_map-Departements.svg - */ -!function(a){"object"==typeof exports?module.exports=a(require("jquery"),require("mapael")):"function"==typeof define&&define.amd?define(["jquery","mapael"],a):a(jQuery,jQuery.mapael)}(function(a,b){"use strict";return a.extend(!0,b,{maps:{france_departments:{width:600.08728,height:626.26221,getCoords:function(a,b){var c,d,e,f,g,h;return 43.1571>a&&b>8.17199?(c=43.64246,d=181.3452,g=b*c+d,e=-65.77758,f=3346.37839,h=a*e+f):(c=45.48385,d=220.22005,g=b*c+d,e=-65.97284,f=3371.10748,h=a*e+f),{x:g,y:h}},elems:{"department-29":"m 37.28,156.11 c -1.42,1.23 -3.84,1.18 -3.99,3.49 -1.31,-2.24 -8,-0.27 -6.23,1.86 -0.83,0.29 -3.61,-0.09 -4.72,1.08 1.27,-3.15 -2.84,-2.76 -4.74,-1.32 -1.52,0.3 0.5,1.51 -1.67,1.26 -1.43,1.46 -5.78,-1.22 -5,1.7 2.01,2.28 -4.44,-1.17 -2.19,2.21 2.05,2.35 -1.91,-1.21 -3.2,0.17 -2.44,0.46 -5.9,3.28 -4.27,6.2 1.31,1.03 -2.45,2.79 -0.89,4.68 1.85,1.54 -1.54,4.66 1.85,4.99 2.29,0.7 2.49,-2.98 4.87,-0.96 3.08,0.74 5.89,-2.07 8.89,-2.74 1.93,-0.34 5.67,-2.04 6.34,-1.85 -2,1.78 -5.83,1.89 -6.41,4.93 -0.69,1.92 2.11,-0.67 2.33,1.07 1.34,-0.89 2.68,-1.87 3.94,-1.39 3.81,-2.03 -2.75,2.24 0.52,1.99 1.47,0.34 4.01,0.96 4.33,1.46 -1.94,0.3 -3.28,1.07 -4.57,-0.08 -2.38,0.71 -4.58,1.45 -6.63,0.05 -2.75,0.86 -5.75,0.61 -4.18,-2.84 -3.29,-0.24 -0.4,5.1 -3.79,3.67 -1.2,2.84 5.41,0.67 2.62,3.42 0.89,1.41 -0.15,5.78 1.86,2.76 0.83,-2.29 2.62,-4.57 5.09,-2.36 1.97,1.37 5.1,0.79 5.41,4 1.86,2.04 -0.29,6.23 -3,3.6 -3.95,0.62 -7.67,1.95 -11.58,2.45 -2.09,0.38 -5.98,-0.08 -4.41,2.7 2.53,0.06 4.87,1.62 7.03,1.82 2.62,-1.48 5.9,3.16 7.51,5.27 1.61,2.44 2.66,5.4 0.91,7.66 1.94,1.19 5.11,1.18 7.5,0.75 1.99,-0.45 3.16,-2.44 1.04,-3.28 -1.05,-1.98 0.82,-2.27 1.51,-0.45 3.34,0.23 -0.63,-4.11 0.69,-3.65 0.91,2.75 3.66,3.46 5.82,3.53 2.26,0.86 -0.02,-4.66 2.92,-2.01 2.11,1.7 2.69,4.22 4.57,6.13 2.01,0.11 4.17,0.12 6.01,-0.65 1.82,2.12 5.68,2.27 8.25,2.23 1.8,-1.51 -1.55,-4.66 0.95,-5.09 0.94,2.57 3.24,-0.19 3.58,-1.33 2.95,0.23 0.38,-3.13 2.08,-4.2 -0.21,-1.43 -0.64,-3.61 -2.53,-1.94 -1.44,2.09 -1.76,-1.59 -3.7,-1.52 -2.13,-1.41 -5.77,1.37 -6.1,-2.55 -0.44,-2.07 -2.04,-3.22 -2.32,-5.05 -2.23,-0.45 0.49,-4.53 2.59,-4.02 1.42,-1.43 5.76,-1.87 5.77,-3.15 -3.54,-1.5 2.53,-4.55 -0.88,-5.73 0.6,-1.35 -0.87,-3.79 -0.56,-5.72 -3.53,0.13 -1.65,-3.79 0.06,-4.6 -3.56,-1.53 -0.98,-4.21 0.33,-6.05 -1.3,-1.16 -2.22,-1.16 -1.99,-2.94 -3.12,-0.26 -3.41,-4.67 -2.3,-6.54 -0.38,-1.53 -3.23,-0.42 -4.45,-1.94 -2.01,-0.12 -5.18,-1.19 -4.7,2.29 -0.84,1.4 0.25,4.35 -1.82,2.22 -1.36,-0.49 -0.48,-3.38 -2.36,-1.3 -1.28,1.93 -1.52,-3.86 -1.99,-4.38 z m -9.88,28.66 0,0.02 0,-0.02 z","department-22":"m 77.67,146.73 c -2.58,0.94 -4.37,2.6 -5.78,4.84 1.21,-2.76 0.01,-6.18 -2.26,-2.58 -2.86,-0.54 -4.85,2.02 -7.32,2.35 0.05,-2.38 -5.14,-2.89 -4.97,-0.27 -1.65,0.69 -2.79,2.55 -0.54,3.83 1.42,1.41 -3.19,1.12 -1.21,3.58 0.75,2.79 -2.62,-0.53 -2.95,1.74 -2.03,2.25 0.93,5.14 2.73,6.11 -0.89,1.81 3.77,1.87 0.94,3.62 -2.27,1.33 -1.69,4.1 0.71,4.68 -2.37,0.99 -3.54,4.66 -0.18,4.93 -0.75,1.8 0.34,4.07 1.35,3.89 -2.23,1.45 2.07,3.31 -1.02,4.81 -1.32,1.63 3.39,3.81 -0.37,3.46 -0,1.68 3.4,-0.17 4.6,0.64 2.17,-1.15 0.09,3.47 2.84,1.65 2.78,-2.51 5.12,2.28 8.16,0.11 1.28,-1.21 4.21,0.16 3.71,-2.72 2.36,-2.11 5.53,-0.32 6.55,2.07 3.1,-1.66 5.66,1.79 8.52,1.44 1.09,1.13 1.31,4.63 2.54,1.67 1.77,0.69 4.7,-2.67 4.36,1 -1.42,1.92 -0.06,5.98 2.29,3.25 2.15,-1.33 3.24,-3.52 3.71,-5.84 -1.55,-1.8 3.03,-1.29 4.1,-2.17 2.56,0.5 2.84,5.71 5.3,2.6 2.48,-0.52 4.76,-2.21 4.35,-5.23 2.66,1.35 0.38,-3.98 3.68,-3.07 2.3,0.76 0.88,-1.21 2.74,-1.68 0.93,-2.46 3.26,2.1 3.88,-0.74 2.87,-0.05 0.28,-3.49 2.75,-3.67 -0.67,-1.88 -0.1,-4.12 -0.62,-6.07 1.57,-1.46 2.25,-5.3 0.59,-6.78 -0.36,1.32 -2.86,3.56 -2.08,0.75 -0.58,-2.28 -2.24,-1.04 -3,-0.66 -0.39,-2.19 -3.7,-1.69 -4.26,-4.29 -2.01,-0.96 -0.92,3.96 -2.61,1.33 -0.93,2.11 -1.72,-1.85 -2.25,-2.64 -0.23,-2.69 -5.02,3.57 -3.11,-0.38 2.12,-1.4 -0.5,-4.55 -1.42,-1.9 -1.94,1.15 -2.92,1.92 -4.85,1.1 -2.9,-0.12 0.52,1.54 -2.1,2.49 -3.58,0.78 -5.19,5.69 -8.5,5.48 0.49,3.36 -2.74,-0.19 -2.06,-1.81 -2.95,-1.1 -4.73,-3.24 -4.7,-6.38 -2,-2 -5.44,-3.63 -5.11,-6.81 -0.95,-1.07 -6.79,-1.08 -3.38,-3.09 0.47,-2.76 -4.12,-1.19 -3.66,1.11 -0.44,1.73 -2.27,2.41 -0.65,0.39 1.33,-1.47 1.44,-4.62 0.53,-6.14 z","department-56":"m 78.99,190.76 c -3.41,-1.13 -2.2,3.92 -5.32,2.9 -1.41,0.4 -1.19,1.61 -2.99,0.82 -1.13,0.79 -2.69,-0.38 -3.4,-0.47 -0.84,-2.28 -6.08,2.96 -4.76,-1.3 -1.92,-0.69 -4.61,-0.08 -6.81,-0.32 -2.56,1.49 -6.48,1.43 -6.89,4.97 1.66,0.45 1.27,1.18 1.54,2.72 2.29,1.28 1.38,6.71 5.21,4.85 2.27,-0.57 4.21,1.54 5.35,2.54 1.09,-1.75 3.9,-1.39 3.21,0.95 0.1,1.55 -1.11,2.84 -0.3,4.77 -2.2,-0.71 -3.03,4.58 -5.67,1.76 -1.43,0.94 1.23,2.98 -0.19,4.47 0.79,3.11 4.25,6.81 7.21,3.89 -1.96,-1.82 1.17,-1.04 2.08,-2.79 1.53,-1.34 1.85,-1.47 0.72,0.46 -0.96,1.01 -3.43,3.3 -0.38,3.09 1.49,0.45 3.45,4.36 4.77,2.88 -0.27,-2.53 3.83,-3.05 1.1,-5.44 1.05,0.63 2.71,-0.96 2.12,1.15 2.98,0.99 -0.94,3.03 -2.44,3.55 -2.08,3.14 3.5,3.77 1.75,6.92 -0.29,1.59 0.31,5.9 2.13,4.03 -1.68,-0.96 -1.89,-7.61 0.51,-4.94 -0.5,1.26 4.8,0.74 3.44,-1.25 0.35,-0.76 1.34,3.45 1.43,0.83 0.89,1.74 3.91,2.47 1.59,0.06 -0.51,-1.47 -0.02,-3.03 -0.87,-4.45 1.76,1.65 1.37,4.11 4.01,4.31 0.21,-1.28 1.88,-0.67 1.78,-2.23 1.83,0.46 2.89,-0.48 3.79,-0.93 2.28,0.82 -0.59,1.71 2.06,2.43 1.57,0.52 0.39,-4.11 1.62,-1.05 -0.46,2.03 -2.17,6.08 -4.56,4.17 -1.51,0.14 -2.97,0.56 -4.53,-0.67 -3.37,0.66 2.51,2.11 2.17,4.25 2.28,1.57 4.95,-1.33 7.46,-0.04 0.09,-2.03 1.34,-0.88 2.36,-1.71 -1.31,-1.38 4.01,-1.27 0.96,-0.1 0.22,1.93 4.41,-1.17 5.9,0.75 1.01,1.43 4.31,0.26 4.44,1.04 -2.33,0.43 -6.75,-0.69 -5.01,3.23 1.5,1.03 2.59,-3.6 4.01,-0.77 1.99,-0.12 4.3,0.38 4.4,-2.43 0.29,-2.58 2.25,-0.15 3.16,-0.22 1.19,-1.05 2.3,-1.01 2.74,0.42 1.6,-0.29 0.66,-3.06 3.03,-2.61 0.96,-1.59 -0.11,-4.05 1.01,-5.76 -1.21,-2.25 -1.75,-4.67 -1.62,-7.13 1.06,-1.01 4.05,-0.69 1.57,-1.96 -1.94,-0.06 -2.1,-1.17 -0.12,-1.66 0.89,-1.32 3.49,-4.07 1.04,-4.6 -2.47,1.93 -2.55,-3.4 -0.68,-4.04 -0.57,-3.25 -3.22,-4.81 -6.13,-5.41 -2.4,0.4 -4.25,0.1 -2.46,-2.49 0.6,-2.26 5.5,-0.56 4.09,-3.23 -1.75,-0.22 -3.84,2.7 -3.33,-0.63 0.01,-3.41 -3.32,-2.88 -4.84,-1.45 -0.88,-3.11 -3.48,-4.72 -6.36,-3.01 -2.15,-0.01 0.26,2.97 -2.05,3.88 -0.09,2.06 -3.87,4.92 -5.31,3.84 -1.21,-1.39 2.06,-7.27 -1.57,-5.21 -1.38,0.54 -2.88,0.33 -3.62,2.06 -0.18,-2.38 -1.59,-4.23 -4.05,-3.7 -1.5,-2.53 -4.89,-0.74 -6.39,-1.56 -0.77,-1.17 -1.33,-2.65 -3.1,-2.43 z","department-35":"m 134.53,157.78 c -2.29,1.25 -4.29,0.31 -6.19,1.59 -0.35,1.67 -2.93,2.17 -1.16,4.31 0.18,1.71 3.99,2.25 1.51,3.04 0.71,1.27 0.98,3.59 2.33,1.22 1.69,2.12 0.9,4.75 -0.11,6.67 -1.16,1.66 0.84,3.78 -0.19,5.68 1.34,1.46 -2.11,1.58 -0.78,3.48 0.21,2.25 -2.03,-0.13 -2.56,2.08 -1.42,-0.68 -2.58,-1.61 -3.47,0.21 -1.19,0.31 -0.39,2.42 -2.44,1.14 -3.01,-0.11 -1.06,4.1 -3.56,3.46 -0.04,2.21 -0.64,4.46 -2.86,4.2 0.62,1.53 1.56,3.49 1.75,5.16 0.54,-2.03 5.23,-1.03 2.52,0.76 -2.33,-0.69 -5.1,2.03 -3.97,3.88 2.89,-0.33 6.41,0.27 7.93,3.03 1.44,1.66 0.87,2.99 -0.39,4.33 0.11,1.6 0.84,3.69 2.2,1.35 0.71,-0.77 0.83,2.07 1.01,2.45 -1.23,1.26 -2.05,2.91 -3.28,3.92 1.71,0.13 3.61,2.39 0.59,2.1 -2.68,1.22 0.26,4 -0.22,5.86 2.34,-0.34 4.15,-1.76 6.12,-3.07 0.06,2.7 3.03,-0.8 4.56,-0.57 2.43,-1.1 5.63,0.82 7.84,-0.63 3.6,0.5 2.72,-4.87 6.32,-4.78 1.62,-0.77 5.16,-0.84 3.73,-3.31 2.85,-0.62 4.57,1.21 6.54,2.5 1.91,0.57 5.04,2.11 4.63,-1.3 1.15,-1.21 0.6,-2.9 1.92,-3.9 0.7,-1.81 1.08,-4.73 2.39,-6.4 1.07,-2.4 6.58,0.52 5.22,-3.48 -0.09,-3.31 -1.44,-6.24 -2.22,-9.58 0.1,-2.96 -2.26,-6.23 0.02,-8.8 1.83,-2.19 0.74,-5.58 -0.28,-8.01 0.55,-2.21 1.33,-6.39 -2.22,-6.48 -2.56,-0.06 -6.32,-3.21 -7.21,0.93 -2.37,0.79 -4.8,5.49 -7.02,1.82 -2.57,-0.44 -4.28,-3.63 -3.95,-6.18 -0.99,-1.91 -2.39,-5.92 -4.86,-2.88 -3.41,0.04 -8.02,2.16 -10.43,-0.96 -1.67,-2.06 2.03,-3.1 0.24,-4.85 z","department-44":"m 152.12,215.29 c 0.59,4.69 -7.52,2.23 -7.55,6.92 -2.45,2.92 -6.64,1.42 -9.84,1.79 -2.21,0.47 -4.62,2.21 -6.1,1.16 -2.15,1.71 -5.77,2.38 -4.86,5.66 -0.41,1.99 0.14,5.32 -2.78,5.46 0.29,3.39 -2.45,-0.35 -3.39,1.23 -1.97,-0.43 -3.4,-1.22 -3.87,1.43 -1.39,3.38 -7.86,-1.72 -6.53,3.45 1.04,0.36 3.95,1.27 1.26,1.45 -1.78,0.18 -4.38,-0.42 -5.51,2.1 0.81,1.67 6.76,3.88 3.55,5.8 -1.04,-0.85 -4.89,-1.36 -1.91,0.14 1.73,1.23 3.86,1.82 5.03,0.15 2.77,0.79 5.25,4.76 7.99,1.3 2.33,-2.98 5.67,-3.71 9.18,-3.56 3.26,1.31 7.02,1.76 9.14,4.89 0.59,1.56 5.82,2.63 2.15,2.16 -4.08,-0.08 -5.45,-5.45 -9.25,-4.42 -2.59,-1.44 -6.59,-0.45 -8.62,1.17 0.15,2.98 1.07,6.99 -2.64,7.63 1.56,2.78 6.83,0.77 8.69,4.16 2.99,2.74 4.83,7.09 8.9,8.42 0.9,1.88 5.53,0.57 5.08,3.59 3.08,0.7 6.82,2.86 9.67,1.11 2.13,-1.29 -2.55,-2.42 -0.14,-3.94 -2.91,-1.74 -0.81,-8.5 2.35,-5.93 0.6,2.44 -0.71,8.47 3.28,5.3 3.57,-0.9 -1,-7.35 3.9,-6.19 0.83,-0.5 2.39,-4.6 3.91,-1.32 1.06,2.31 6.94,2.33 4.03,-0.72 -1.16,-2.43 -6.27,-0.49 -4.19,-3.49 1.19,-2.09 4.14,-3.59 2.27,-6.58 -0.11,-2.99 -2.79,0.14 -3.66,-2.47 -0.42,-1.81 -2.18,-3.14 -3.54,-3 1.51,-3.16 6.07,-2.52 8.85,-3.95 3.12,-0.79 9.37,1.47 9.71,-3.23 -1.08,-2.47 -1.12,-5.9 -4.66,-5.46 -2.8,0.23 -7.97,-1.25 -5.65,-4.79 1.85,-0.34 7.04,1.35 6.32,-1.48 -2.96,-1.34 -7.7,-2.06 -7.06,-6.38 -0.89,-2.42 -4.47,-2.43 -3.18,-5.19 -2.78,-1.29 -5.51,-2.7 -8.1,-4.12 -0.73,-0.11 -1.47,-0.12 -2.19,-0.28 z","department-50":"m 131.13,90.31 c -1.88,0.95 -0.8,4.82 1.86,4.23 3.56,1.9 1.73,6.62 0.2,9.04 2.05,2.45 3.1,5.7 3,9 0.14,1.74 2.63,0.2 3.07,2.34 0.75,1.03 1.85,2.12 2.19,0.36 1.37,1.6 -1.38,2.27 1.05,3.66 1.37,1.28 0.99,6.4 3.69,4.06 1.9,0.29 2.45,1.19 0.04,0.86 -1.6,1.67 0.46,4.57 0.89,5.74 -2.97,1.02 -0.03,4.32 -0.89,6.45 0.25,4.18 2.26,-2.3 3.97,0.71 -3,-1.64 -2.73,4.63 -1.52,5.52 -1.39,1.53 -0.75,4.59 -2.48,6.57 2.85,1.89 0.3,6.73 3.77,8.41 0.72,3.65 6.47,2.47 6.87,4.86 -3.09,-0.67 -6.13,1.28 -9.29,0.14 2.12,2.48 1.69,5.44 3.35,8.16 0.49,2.03 2.9,1.69 3.89,3.28 2.85,0.97 3.52,-2.95 6.22,-3.35 0.5,-4.19 4.83,-0.16 7.12,-0.52 2.46,0.21 4.49,2.11 6.88,1.58 1.14,-3.4 4.72,2.61 6.05,-1.83 2.14,-1.71 4.11,-4.11 4,-6.8 -2.86,-1.65 2.62,-4.05 -1.04,-4.65 -1.19,-1.03 -1.99,-2.17 -3.44,-2.39 0.65,-1.72 0.69,-2.24 -1.24,-1.46 -2.15,-1.56 -3.83,-1.87 -6.18,-1.16 -1.5,-0.55 -4.16,0.68 -4.02,-2.14 -1.26,-0.78 -4.15,-1.48 -1.38,-2.84 0.99,-1.27 1.76,-1.9 2.97,-1.76 1.12,-1.18 3.8,-4.02 0.24,-2.9 -1.76,-0.83 1.02,-4.16 2.87,-2.17 3.08,-0.43 3.89,-3.82 6.01,-5.35 -2.27,-0.59 1.2,-4.39 -1.22,-5.32 -2.09,1.3 -1,0.15 0.07,-0.89 -1.07,-1.07 -4.55,-2.49 -1.49,-2.88 2.17,-1.47 -0.09,-4.82 -1.5,-1.9 -3.17,0.81 -5.99,-2.78 -7.94,-5.02 -1.69,-1.95 2.34,-3.94 -0.73,-4.53 -0.02,-1.64 -2.94,0.31 -1.33,-2.17 1.04,-2.89 -2.27,-4.45 -3.47,-6.64 -1.37,-1.99 -4.59,-6.54 -0.56,-7.31 0.17,-1.79 2.56,-1.35 1.09,-3.59 -0.43,-3.65 -3.79,-3.85 -6.83,-3.94 -3.88,-1.03 -4.69,4.08 -8.52,3.07 -3.16,1.2 -5.48,-1.83 -8.81,-1.65 -2.47,0.02 -3.19,-2.65 -5.7,-1.92 -0.51,-0.38 -1.01,-1.1 -1.74,-0.94 z","department-53":"m 208.55,167.1 c -1.01,1 0.05,3.16 -1.88,3.54 -1.52,-1.01 -2.64,-0.44 -3.16,1.13 -2.16,0.27 -4.3,-2.6 -6.35,-0.72 -2.51,0.71 -4.34,2.89 -6.91,3.52 -1.47,-0.07 -0.73,-3.05 -2.63,-1.24 -1.44,-0.25 -1.57,0.24 -1.23,1.52 -1.95,1.91 -3.12,-1.9 -4.31,-1.2 -0.57,-2.91 -4.17,-1.79 -5.68,-3.27 -1.71,1.43 -3.54,2.05 -5.24,0.23 -1.62,1.36 -0.04,4.11 -0.87,5.96 1,2.8 1.94,6.2 -0.3,8.68 -1.8,2.64 0.64,5.51 0.63,8.4 0.26,2.57 1.34,4.89 2.01,7.32 0.27,1.9 0.56,4.67 -2.4,4.46 -3.58,-1.21 -3.75,3.46 -4.8,5.71 -0.32,2.32 -3.14,4.44 -1.31,6.55 2.18,1.99 5.34,0.43 7.83,1.57 1.63,0.66 3.95,1.05 3.53,-1.27 2.64,-0.54 3.9,3.91 6.54,1.42 2.25,1.91 5.27,1.85 7.94,2.38 1.76,-0.55 3.96,-1.63 5.33,-1.8 0.74,-3.63 3.49,1.65 5.63,-0.72 3.1,-0.49 -0.69,-2.25 -1.75,-2.95 -1.24,-2.55 5.38,-2.7 2.17,-4.78 -2.1,-2.18 2.21,-3.41 3.9,-3.25 2.7,-2.12 -2.9,-5 -0.82,-7.18 1.54,-1.12 5.56,-0.07 4.23,-2.96 2.04,-1.51 -2.56,-3.7 0.57,-5.19 2.14,-0.95 4.31,-2.8 2.75,-5.2 0.4,-1.84 1.4,-3.83 0.29,-5.45 0.84,-2.27 2.74,-2.67 4.64,-3.69 0.49,-2.31 0.11,-5.38 -2.99,-3.91 -2.18,-0.9 -2.07,-4.02 -1.67,-5.52 -0.9,-1.11 -2.32,-1.86 -3.72,-2.1 z","department-49":"m 163.22,217.21 c -0.83,2.37 -1.6,5.33 1.37,5.86 1.81,2.08 0.91,5.95 4.42,6.63 2.22,0.05 6.13,2.61 1.99,3.38 -1.68,0.33 -6.88,-1.51 -4.42,1.8 -0.28,3.95 5.62,1.28 7.64,2.98 2.45,0.74 1.41,5.07 2.67,6.48 -2.29,2.93 -6.35,1.4 -9.46,1.86 -2.75,1.47 -6.15,1.11 -8.63,2.95 -2.19,2.35 2.81,0.48 2.57,3.2 0.31,2.29 2.55,1.71 3.57,1.87 1.63,2.89 1.11,5.74 -1.65,7.56 -1.38,3.05 3.73,1.85 4.64,4.57 0.65,0.86 -1.19,3.33 1.44,2.98 2.09,1.51 5.06,-0.93 6.83,0.87 2.12,0.24 3.87,3.37 5.76,0.52 2.61,-0.75 5.23,0.76 7.87,-0.16 3.45,0.68 4.18,-2.89 4.98,-5 2.46,-1.53 5.74,1.7 7.32,-1.15 3.52,-0.32 7.2,-1.11 10.47,-0.77 1.05,1.17 -2.26,1.94 0.29,2.63 2.66,0.88 1.49,-3.86 4.67,-2.23 0.32,-1.55 1.08,-6.07 4.26,-4.7 1.02,-3.55 0.54,-7.68 3.15,-10.63 1.2,-1.75 2.78,-3.33 2.02,-5.32 0.89,-2.49 1.94,-4.87 2.33,-7.52 -2.3,-1.25 2.95,-6.06 -1.28,-5.83 -1.14,3.4 -4.78,-0.25 -6.77,-0.21 -1.89,-1.86 -5.83,-3.95 -7.59,-1.47 -2.9,0.48 -5.51,-3.13 -2.87,-5.2 -1.31,-0.36 -3.53,1.25 -5.3,-0.11 -1.96,-0.38 -3.12,0.57 -3.07,-1.96 -1.12,-2.87 -4.12,0.14 -5.77,-2.2 -1.77,-0.71 -0.8,2.61 -3.03,1.75 -3.13,1.53 -6.89,1.32 -10.17,-0.06 -1.72,-2.25 -3.57,1.59 -5.08,-1.25 -0.8,-0.99 -3.72,-1.84 -2.9,0.37 -3.4,0.17 -6.97,-0.89 -10.18,-1.14 -0.72,-0.44 -1.37,-0.99 -2.14,-1.36 z","department-85":"m 161.28,265.2 c -0.97,1.7 -1.54,3.91 -3.7,2.64 -1.76,1.98 1.21,6.33 -3.05,6.68 -4.15,2.13 -1.3,-4.19 -2.86,-6.14 -3.81,-0.88 -3.43,4.2 -2.06,6.39 -1.18,1.59 2.88,3.89 -0.56,4.36 -2.8,1.01 -5.58,-1.25 -8.45,-1.27 -0.94,-1.21 -1.09,-3.22 -3.4,-2.64 -2.06,0.15 -1.35,-2.2 -3.49,-1.71 -2.48,-1.21 -5.24,-7.8 -7.15,-2.42 -0.59,3.85 -5.53,4.8 -4.91,9.21 0.37,4.17 5.72,4.87 7.16,8.67 2.67,2.58 4.99,5.43 6.65,8.8 0.87,1.89 0.24,6.13 2,6.75 0.16,-1.73 0.12,-2.45 1.07,-0.5 1.66,2.86 6.15,2.45 7.02,5.1 3.4,-0.42 6.93,0.3 7.04,4.36 1.27,2.81 4.49,-1.27 6.02,1.84 2.09,-0.13 3,3.11 4.96,3.02 -0.36,-3.97 4.41,-1.93 6.48,-3.3 1.71,-1.96 4.7,-2.5 6.81,-2.37 -1.17,1.68 -0.83,3.92 1.65,2.75 2.07,-0.36 4.04,-2.66 5.25,0.14 2.09,1.8 3.55,-0.97 5.61,-0.12 1.62,-1.38 3.3,-2.9 5.04,-3.72 0.18,-2.56 -3.47,-1.87 -3.87,-1.44 -0.63,-2.59 1.8,-5.29 -0.47,-7.7 0.94,-1.38 2.03,-1.54 1.08,-3.45 0.09,-2.1 -0.29,-4.13 -1.61,-5.22 0.65,-2.15 -1.16,-2.52 -0.79,-4.52 -1.57,-1.94 -3.3,-3.94 -1.89,-6.5 -1.72,-1.62 -5.39,-2.92 -5.22,-6.11 0.38,-2.29 -3.29,-2.9 -3.68,-5.31 -1.81,-2.01 -4.49,-1.74 -7.1,-1.32 -3.49,-1.03 -6.73,-2.66 -9.6,-4.96 z","department-79":"m 211.41,263.54 c -3.47,1 -7.46,-0.24 -10.55,2.01 -1.54,0.87 -3.61,1.5 -3.45,-0.55 -2.89,-0.11 -3.46,3 -4.1,4.64 -2.76,1.84 -6.3,1.53 -9.35,1.02 -2.77,-0.37 -6.01,2.62 -2.55,4.27 1.05,2.29 0.26,5.24 3.5,6.22 3.7,1.27 0.35,4.83 3.08,6.91 1.95,2.46 1.89,5.88 3.13,8.43 0.79,2.29 0.53,5.23 -0.6,6.69 2.08,1.92 -1.04,5.98 0.79,6.87 2.26,-2.05 4.86,2.6 1.35,3.21 -1.82,2.1 -4.84,2.03 -7.01,3.55 -1.92,3.7 2.7,4.91 3.24,8.13 1.44,0.37 2.62,0.88 2.81,2.1 3.32,-0.93 5.83,3.57 8.63,3.01 2.89,1.17 6.03,0.6 8.47,3.22 3.7,-0.54 3.87,6.56 7.56,4.57 1.73,-2.11 1.24,-5.98 4.87,-5.81 1.63,-2.21 4.23,-2.49 6.45,-1.63 1.55,-1.48 2.11,-4.78 -0.83,-4.33 -3.29,-1.46 -1.71,-5.49 -0.5,-7.4 1.75,-0.97 0.56,-7.43 -1.84,-3.75 -2.3,2.89 -5.28,-1.21 -4.22,-3.39 -2.48,-2.03 -1.19,-5.37 -2.68,-7.99 1.33,-2.02 1.71,-4.55 3.11,-6.42 -0.55,-0.92 -2.28,-2.13 -2.08,-2.45 -3.66,1.58 0.19,-4.05 1.24,-5.25 2.3,-2.33 -3.14,-3.07 -0.93,-5.56 1.44,-1.85 -3.47,-1.82 -0.33,-2.92 3.33,-0.16 0.56,-1.18 -0.24,-2.53 0.5,-2.54 0.1,-5.85 -1.91,-7.36 -1.96,-0.52 -0.38,-5.88 -4.15,-4.77 -2.43,-0.12 2.22,-3.17 -0.9,-2.74 z","department-17":"m 175.73,312.62 c -2.1,1.05 -4.89,0.98 -6.33,3.16 -2.59,0.12 1.24,4.72 -2.26,5.02 -2,0.79 -4.42,5.17 -2.11,6.01 2.93,0 2.49,3.17 4.17,4.84 0.72,1.37 3.67,5.65 0.03,4.87 -2.18,0.36 1.95,2.77 0.48,4.24 1.55,2.23 0.05,3.13 -1.55,3.46 -0.38,1.57 -2.23,1.63 -0.92,3.81 0.7,3.56 3.92,5.46 6.53,7.53 -3.66,-0.31 -5.1,-4.96 -7.98,-5.25 -3.89,-1.1 -3.52,4.91 -2.88,6.67 2.74,-1.46 4.76,2.94 7.48,3.54 3.34,1.31 3.69,5.42 7.19,6.15 4.09,3 7.55,7.17 8.5,12.27 0.26,3.76 5.67,2.29 7.12,1.56 -1.08,5.27 6.99,0.78 7.08,5.12 0.92,1.82 -0.24,5.87 1.93,6.53 3.38,-1.84 5.25,4.16 8.91,4.29 2.53,1.16 3.84,-3.72 5.99,-0.43 0.42,-1.35 1.41,-3.02 1.97,-3.79 -0.43,-1.67 1.72,-4.75 -1.44,-5.53 -1.82,-0.53 -4.59,0.36 -3.27,-2.54 -1.47,-1.11 -5.11,-3.27 -7.08,-1.29 -2.02,-1.16 -0.75,-3.34 0.78,-3.22 -1.02,-0.53 -4.64,-2.27 -1.19,-3.33 4.28,-0.66 -2.5,-4.27 0.56,-5.26 2.44,-2.46 -2.28,-2.77 -2.54,-4.29 2.17,-2.32 -2.75,-3.59 -3.55,-5.14 -2.87,0.92 -0.97,-2.62 0.33,-2.63 -2.65,-1.14 -0.44,-4.4 -1.57,-5.27 -2.89,0.77 -1.45,-2.34 0.53,-2.18 1.34,-1.34 4.68,-0.44 6.11,-2.14 2.35,-0.74 2.26,3.5 4.57,1.02 2.44,-0.29 1.26,-3.78 2.59,-5.17 -1.46,-1.93 -1.99,-4.68 1.15,-4.47 0.21,-2.43 -3.03,-4.09 -3.83,-6.1 -0.81,-1.69 -4.49,-0.9 -5.2,-3.54 -1.75,0.56 -3.25,0.45 -4.22,-0.82 -1.42,1.85 -1.72,-1.94 -2.91,-0.25 -3.3,-0.03 -3.97,-4.4 -7.72,-2.73 0.56,-2.08 -4.7,-2.08 -3.15,-4.59 -0.87,-1.66 -4.22,-2.08 -2.44,-4.29 -0.3,-2.54 -4.15,-5.59 -5.48,-2.93 -1.22,-0.57 -5.78,1.4 -3.85,-1.55 0.3,-0.71 0.63,-1.62 -0.55,-1.38 z m -24.48,7.33 c -2.5,0.03 -3.87,1.14 -1.7,3.09 3.95,0.17 7.19,2.31 10.9,3.68 3.89,-1.05 -3.64,-4.87 -5.82,-4.1 0.29,-2.41 -4.61,1.24 -3.83,-1.48 1.5,1.02 1.83,-1.02 0.46,-1.19 z m 4.27,13.72 c -0.7,1.54 2.03,3.7 0.87,5.86 3.02,2.81 6.53,5.8 7.08,10.16 2.32,-1.62 3.28,-6.49 0.08,-7.91 -0.51,-2.29 -0.47,-5.1 -3.54,-5.11 -1.46,-1 -2.65,-2.71 -4.49,-2.99 z","department-33":"m 170.37,365.5 c -2.88,2.39 -3.66,6.38 -3.67,9.99 -0.06,6.47 -0.57,12.93 -1.99,19.26 -0.93,8.17 -1.59,16.38 -2.58,24.55 0.15,2.18 -1.38,7.44 -0.06,8.1 -0.08,-3.31 1.98,-7.54 4.36,-8.96 1.97,1.72 7.34,5.74 3.76,7.49 -2.73,1.04 -6.38,-2.36 -6.38,2.52 -1.52,2.69 -2.74,7 -1.06,9.24 2.84,-0.63 5.96,-2.27 7.61,-3.75 2.03,1.26 5.7,0.92 3.77,4.43 -2.89,4.65 3.5,-0.33 5.45,2.23 3.86,1.51 7.87,-3.74 11.26,-0.84 -1.42,4.09 4.44,3.2 5.19,6.56 1.94,1.37 4.07,0.77 4.89,3.31 2.18,0.86 -1.21,6.6 3.33,5.68 2.58,1.12 6.14,0.42 4.75,-3.03 1.75,-3.72 3.17,3 5.62,1.04 3.5,-1.1 3.84,-4.91 0.95,-7.06 1.78,-1.99 6.6,-1.58 3.43,-5.47 1.27,-2.35 -1.77,-5.16 1.09,-7.2 -1.95,-2.11 4.08,0.01 3.42,-3.48 2.15,-0.49 2.85,-2.17 2.61,-3.54 1.82,1.01 2.01,-3.15 -0.54,-1.86 -1.24,-1.31 -2.01,-2.64 0.2,-3.47 -0.33,-1.44 2,-1.21 2.56,-1.67 0.96,3.46 0.77,-3.24 2.88,-0.59 3.44,-0.12 -2.08,-5.38 2.19,-5.6 -0.3,-3.57 -4.29,-0.98 -5.16,1.24 -2.94,-0.94 -4.42,-0.02 -6.92,-0.52 -0.48,-1.95 -5.24,-0.86 -1.96,-2.84 3,-2.61 -1.26,-5.76 1.74,-8.21 0.18,-2.65 3.61,-7.86 -1.4,-8.03 -1.8,0.66 -3.02,1.85 -4.53,-0.13 -2.79,3.68 -7.23,0.65 -9.47,-1.85 -1.02,0.81 -2.89,-3.34 -3.74,-0.02 -1.83,-2.9 -1.15,-5.89 -1.94,-8.56 -2.49,-1.97 -7.58,0.6 -7.16,-4.13 -0.99,3.32 -7.86,-1.7 -5.65,3.47 1.12,5.25 -0.04,11.74 4.13,15.79 1.6,0.97 5.46,1.4 5.09,3.59 -1.14,-1.76 -5.95,-2.2 -2.42,0.16 0.89,1.86 0.32,4.86 0.46,6.96 -0.86,-3.57 -0.31,-7.65 -4.4,-9.5 -4,-3.65 -3.81,-9.3 -4.62,-14.2 -0.83,-4.14 -2.82,-8.05 -6.26,-10.61 -1.82,-3.68 -6.55,-3.9 -8.36,-7.63 -0.3,-0.84 1.03,-2.73 -0.47,-2.88 z","department-40":"m 169.77,433.93 c -1.39,4.09 -9.03,1.92 -8.11,7.38 -1.02,7.04 -1.81,14.11 -3.21,21.09 -1.27,6.3 -2.02,12.7 -3.64,18.93 -1,6.23 -2.25,12.44 -3.8,18.55 2.58,-1.5 3.77,4.05 6.97,1.91 3.34,1.32 5.68,-3.95 8.44,-2.39 2.07,1.33 0.83,1.91 -0.48,2.62 2.25,0.71 3.66,-2.53 5.72,-0.83 1.43,1.01 3.09,-0.31 2.14,-1.78 2.65,0.58 4.62,-1.18 7.1,-0.71 0.89,-0.91 2.56,-0.97 3.4,-1.93 1.42,1.18 2.14,3.21 3.39,1.18 1.9,-0.75 2.12,-1.21 2.41,0.33 1.62,2.42 3.07,-1.23 4.2,0.55 1.35,-0.65 5.1,-4.97 5.14,-2 -2.25,3.45 3.32,-1.25 4.51,1.48 1.42,-0.66 5.29,-2.61 3.41,-4.06 -2.62,-1.1 2.2,-2.69 0.51,-4.53 -0.4,-2.09 3.75,-3.09 1.72,-4.6 0.25,-1.62 -1.17,-3.73 0.82,-4.32 -0.1,-1.59 -0.15,-2.99 -0.15,-4.15 -3.84,-1.04 1.14,-3.46 2.82,-3.81 1.4,0.08 1.6,0.86 2.46,-0.49 1.85,-0.5 2.29,-3.87 4,-0.74 -0.03,1.42 -1.08,2.56 1.12,3.35 3.85,1.54 0.42,-3.68 2.06,-5.19 -1.31,-3.01 1.52,-6.01 2.73,-8.67 -3.45,-0.68 -6.76,-2.36 -10.44,-2.46 -3.14,0.72 -0.38,-5.12 -3.37,-6.17 -1.68,-2.94 -3.31,0.33 -2.44,2.4 -1.45,2.03 -6.15,0.75 -7.76,-0.49 0.06,-2.43 0.64,-4.45 -1.66,-5.74 -0.75,-1.94 -4.67,-0.97 -4.92,-3.99 -2.01,-1.55 -5.69,-1.4 -4.21,-4.64 -1.24,-2.31 -3.79,0.2 -5.94,-0.34 -3.05,3.71 -7.01,-1.41 -10.49,1 -4.03,1.42 2.63,-4.52 -0.65,-5.54 -1.61,0.68 -2.43,-1.07 -3.83,-1.21 z","department-64":"m 211.2,495.72 c -1.9,1.07 -4.71,-0.23 -5.99,2.39 -1.98,0.52 -4.11,-1.44 -6.18,0.45 -1.47,-0.65 2.04,-3.79 -1.1,-2.24 -1.84,1.1 -3.29,3.13 -5.1,2.48 -1.96,1.45 -5,-2.73 -6.29,0.37 -1.3,-1.42 -2.42,-3.2 -3.7,-1.06 -1.86,0.3 -2.9,1.44 -5.06,0.79 -0.86,1.97 -4.19,-0.71 -3.64,2.4 -2.25,0.68 -5.49,-1.09 -7.26,1.32 -3.27,-0.97 2.34,-1.26 -0.09,-2.53 -2.18,-3.25 -4.64,2.8 -7.39,1.71 -2.74,0.92 -5.67,0.14 -7,-2.21 -3.51,1.11 -4.76,4.93 -7.06,7.37 -1.86,2.09 -5.86,0.94 -7.14,3.17 0.39,1.82 2.63,2.08 2.45,4.31 2.16,-0.79 5.47,-0.83 4.92,2.37 1.44,2.55 2.98,-0.5 3.6,-1.51 2.37,0.53 4.98,1.17 7.12,1.91 1.21,3.15 -0.34,6.66 -1.84,9.39 -3.7,1.82 -0.21,5.81 2.82,5.62 2.52,-0.18 0.25,-6.64 4.3,-5.38 -2.77,2.45 0.66,4.77 3.15,4.41 2.76,1.62 4.75,2.53 7.73,3.53 2.51,0.74 4.11,3.68 7.28,2.92 2.81,1.52 7.35,-3.02 7.16,2.26 -1.02,2.96 3.25,2.28 4.34,4.46 1.78,1.41 3.01,6.8 5.13,3.41 1.29,-2.94 5.1,2.52 7.14,-0.85 1.53,-1.11 3.1,-1.71 2.2,-4.29 -2.14,-2.89 3.19,-3.06 1.08,-6.08 -0.73,-2.21 1.82,-2.45 1.78,-4.48 3.8,1.19 0.42,-4.25 3.06,-5 2.06,-1.26 1.63,-4.46 4.21,-4.01 0.61,-1.33 0.15,-2.87 1.47,-3.33 2.68,-2.17 -1.51,-4.94 1.51,-6.75 3.94,0.18 -1.17,-3.74 0.89,-5.91 -0.71,-3.82 -1.88,1.82 -3.23,0.54 -0.52,-1.85 0.16,-3.46 1.54,-4.09 -0.91,-1.78 -0.41,-4.39 -2.84,-4.92 0.66,-3.73 -2.6,-1.04 -3.99,-2.95 z","department-65":"m 216.99,494.91 c -1.84,0.25 -2.8,4.03 -0.53,4.11 1.88,1.3 0.29,3.67 2.23,4.92 -1.93,0.09 -2.67,2 -1.81,3.38 0.3,1.54 2.42,-3.88 2.78,-0.62 0.04,1.77 -0.37,4.08 1.04,5.66 -0.74,1.52 -3.19,0.65 -3.23,3.06 1.46,1.22 1.22,2.8 0.07,4.31 -0.99,0.9 -1.52,1.78 -1.24,3.38 -1.18,1.4 -2.47,-0.59 -2.75,1.65 -0.31,2.34 -3.5,2.62 -2.83,5.08 -0.23,1.21 0.77,2.46 -1.27,2.75 -1.74,-1.03 -0.67,2.29 -2.47,2.46 -0.22,2.15 1.18,4.49 -1.44,5.52 0.13,2.35 0.39,5.58 3.33,6.26 1.51,1 2.85,2.84 4.69,1.37 -0.57,1.85 1.47,3.6 2.41,4.96 1.56,0.38 2.66,3.5 4.75,1.97 1.8,-0.64 3.96,-1.24 5.98,-1.71 2.21,-1.74 5.92,-0.18 6.53,2.47 2.16,1.45 2.84,-4.54 5.11,-1.48 1.05,2.42 6.1,0.26 2.72,-1.38 -0.47,-1.86 -0.16,-4.75 -0.08,-7.05 -0.01,-1.71 0.82,-4 2.68,-2.21 3.39,1.23 2.02,-4.26 4.56,-5.2 1.78,-1.39 -1.78,-2.01 -0.27,-3.71 -0.3,-0.99 -0.83,-2.98 -1.65,-1.25 -1.08,0.21 -3.2,2.39 -2.44,-0.12 -0.09,-1.57 2.08,-1.37 1.06,-3.26 -1.4,-1.24 -3.29,-2.47 -4.49,-3.12 -2.02,-2.1 3.51,-3.46 2.42,-5.76 0.93,-0.47 4.3,-0.56 1.96,-2.04 0.32,-1.95 5.47,-3.77 2.06,-5.05 -2.3,-1.28 -4.63,-0.69 -6.84,-1.39 -2.1,2.1 -2.26,-2.3 -4.28,-0.93 -1.76,1.3 -0.81,-1.74 -2.47,-1.53 -0.55,-2.46 -4.01,1.85 -5.67,-0.21 0.62,-1.85 -3.42,-2.4 -1.35,-4.21 1.51,-1.16 -1.9,-2.45 -1.19,-4.22 -1.14,-1.21 -3.48,-0.65 -4.39,-2.66 -2.13,-0.62 -0.57,-4.95 -3.7,-4.22 z","department-32":"m 246.37,463.78 c -1.87,2.87 -5.69,0.08 -7.22,3.28 -1.88,1.49 -4.2,0.57 -5.81,2.33 -2.39,-0.54 -4.55,-3.39 -6.11,0.1 -0.16,1.89 -1.71,0.96 -1.7,-0.3 -2.5,0.36 -4.05,2.53 -2.63,4.96 0.01,3.29 -6.18,-0.5 -3.3,-1.85 -0.54,-2.21 -2.13,-1.97 -3.07,-0.29 -1.34,0.89 -1.71,2.04 -3.36,1.03 -1.68,0.34 -3.48,1.37 -4.38,2.76 1.22,0.28 3.13,1.71 1.37,2.42 1.01,1.6 0.51,3.2 -0.73,3.83 -0.07,2.44 2.42,4.6 -0.76,5.86 -1.18,1.63 0.66,4.33 -1.94,5.01 -0.42,1.69 2.27,1.13 1.62,3.13 2.18,-0.55 3.63,0.28 6.01,0.22 1.55,-0.54 3.47,-2.96 4.82,-0.45 0.15,2.77 2.68,4.35 4.51,5.25 2.48,-0.68 1.19,3.49 3.25,4.21 -0.48,0.88 -2.09,2.3 -0,3.14 1.28,0.27 0.25,2.29 2,2.07 2.01,0.08 3.81,-1.91 5.13,-0.1 0.83,0.3 0.34,2.73 2.13,1.32 1.65,-1.02 1.99,3.25 3.69,0.87 2.91,0.44 5.72,1.25 8.79,1.59 2.28,-1 2.83,-4 4.96,-4.85 -0.08,-1.97 1.2,-2.17 2.72,-1.09 2.04,-2.03 5.8,0.4 7.36,1.79 1.25,2.38 1.53,-1.44 1.56,-2.27 1.63,-0.08 0.78,-2.07 1.64,-3.14 -1.95,-1.43 1.97,-2.65 1.07,-4.39 -0.66,-1.2 0.97,-1.78 2.08,-0.85 0.33,-1.45 2.39,-1.29 3.2,-2.18 2.33,0.7 0.78,-3.33 -0.81,-2.33 -0.96,-0.86 -0.26,-2.97 -2.3,-2.06 -1.55,-0.33 0.33,-2.07 -1.76,-1.78 -1.88,-0.75 0.92,-3.18 -2.09,-3.14 -1.61,-1.44 -2.45,-4.37 -4.36,-5.15 -3.35,1.69 1.17,-3.08 -1.5,-3.24 0.76,-1.49 -1.03,-2.76 -0.22,-4.22 -1.16,-1.24 -2.92,-1.03 -4.29,-1.63 -2.35,1.17 -1.75,-1.94 -0.23,-2.55 1.5,-1.23 1.3,-2.73 1.39,-4.08 3.53,-0.83 -1.38,-2.38 -2.33,-0.22 -1.18,0.08 -0.41,-3.33 -2.53,-1.63 -1.28,0.69 -2.36,3.52 -3.35,0.81 -0.67,-0.82 -1.46,-1.92 -2.53,-2.18 z","department-47":"m 230.07,418.5 c -0.81,0.77 -0.9,3.82 -1.83,1.38 -1.82,-0.02 -3.21,2.14 -3.88,3.3 1.04,0.9 2.08,1.66 3.3,1.8 -0.04,1.51 -1.7,2.55 -2.03,4.05 -1.55,0.64 -2.55,2.47 -3.24,3.29 -3.01,0.59 -4.44,4.14 -2.78,6.75 -1.33,1.76 2.46,5.68 -1.08,5.69 -2.16,-0.16 -3.67,2.4 -1.25,3.45 1.89,2.62 -1.53,5.28 -3.79,5.58 -0.01,1.94 -0.52,5.85 2.43,4.84 2.83,-0.58 4.82,1.94 7.53,1.7 1.96,-0.36 2.73,1.43 1.07,2.55 -0.51,2.08 -4.01,5.95 -0.67,6.93 1.39,-0.27 1.71,-1.54 2.32,0.34 1.42,0.2 1.56,-3.84 3.99,-2.43 2.21,2.53 4.49,0.26 7.07,0 2.57,-0.7 3.69,-3.71 6.77,-2.71 1.7,-0.39 3.39,-2.44 4.44,0.28 1.31,3.29 3.19,-0.23 4.88,-1.16 0.36,-1.62 1.13,-2.69 2.56,-3.54 -1.25,-2.97 5.51,1.65 4.18,-2.52 -0.96,-0.29 -2.25,-1.68 -0.22,-2.14 2.35,-0.03 2.05,-4.03 2.4,-5.78 -1.23,-1.07 -4.15,-1.71 -2.2,-3.71 -0.38,-1.68 1.32,-4.27 2.55,-1.77 1.53,0.85 4.19,-0.22 5.25,-0.41 0.48,-2.12 -0.42,-3.89 -1.57,-5.33 0.06,-1.97 -1.67,-5.18 -1.15,-6.13 2.23,0.07 5.01,-2.93 1.78,-3.93 -1.73,-2.48 -5.12,-2.94 -6.92,-0.28 -2.08,2.1 -3.89,-1.44 -2.14,-3.04 0.26,-1.39 -1.37,-4.01 -2.62,-1.92 -2.44,1.01 -5.83,0.37 -7,-0.95 -2.41,-0.18 -2.86,2.94 -5.17,1.62 -2.31,0.8 -5.39,2.91 -7.69,0.67 0.42,-2.17 -0.14,-6.16 -2.93,-6.02 -0.81,0.25 -1.86,0.44 -2.38,-0.43 z","department-31":"m 290.02,474.31 c -1.06,1.38 -2.08,2.2 -3.14,1.27 -0.58,4.46 -6.27,-1.79 -5.29,3.06 -1.9,-0.93 -3.5,1.28 -0.64,0.98 2.48,2.1 -3.77,2.63 -4.93,4.19 -2.22,1.21 -0.1,-1.87 -2.62,-1.46 -1.27,-3.41 -2.92,1.42 -4.53,-1.01 -1.38,1.57 -7.9,0.39 -4.49,3.87 1.19,2.36 4.47,2.68 3.64,5.37 2.67,0.06 0.55,2.9 3.52,1.95 0.58,0.93 0.66,2.79 2.12,2.09 2.71,3.12 -2.63,3.32 -4.16,4.93 -1.1,-1.53 -1.56,1.15 -1.34,1.61 0.44,1.44 -2.97,2.2 -1.16,3.88 -0.09,2.59 -2.4,2.6 -1.68,5.18 -1.9,1.75 -3.41,-2.85 -6.25,-2.48 -1.97,-0.25 -2.83,1.49 -4.6,-0.2 -0.73,3 -3.35,2.98 -4.53,6.1 -1.7,0.77 -1.89,0.75 -1.75,2.05 -1.29,1.74 -3.85,2.87 -2.67,4.97 -1.64,0.77 -2.86,0.43 -2.8,2.37 -2.19,1.55 -3.92,4.34 -0.36,4.93 1.97,0.94 4.52,4.07 1.77,4.79 -1.3,4.88 3.7,-2.96 3.72,1.66 0.49,1.32 -0.65,2.24 1.07,3.28 -2.79,1.64 -2.18,9.05 -6.68,5.6 -1.73,2.41 -1.93,7.77 -0.38,10.18 1.27,3.59 5.97,0.17 8.88,1.83 2.51,-1.92 -1.95,-5.09 0.25,-7.4 -0.76,-3.42 2.9,-4.02 4.93,-2.32 1.62,-0.12 4.31,1.32 2.68,-1.53 -0.93,-1.79 -1.4,-4.59 1.53,-4.74 -1.15,-3.31 5.98,-1.18 5.47,-5.37 -2.22,-1.5 -0.83,-5.26 0.13,-6.33 2.45,2.03 0.85,-3.56 3.56,-1.87 1.66,-2.07 2.75,0.56 4.53,0.43 1.14,1.96 2.46,4.41 4.04,1.37 2.25,-2.5 -5.64,-2.56 -1.56,-4.98 1.91,-0.32 6.85,-0.7 5.84,-3.41 -3.62,0.11 -4.71,-4.72 -0.54,-4.92 1.7,1.78 3.23,3.99 3.46,6.31 3.43,1.14 2.88,-2.05 2.74,-4.44 1.24,-0.74 2.86,2.59 3.98,0.85 2.05,0.25 3.31,3.93 3.51,0.42 1.87,-1.02 3.37,-2.54 3.2,-4.86 1.65,-0.79 5.11,0.92 3.61,-2.58 0.23,-2.56 3.55,-6.11 4.18,-1.52 0.52,0.87 1.91,-3.3 3.78,-0.91 2.24,0.69 2.87,-1.22 1.62,-2.8 0.91,-0.95 2.23,-3.84 -0.03,-2.5 -1.07,2.43 -6.09,-0.82 -6.91,-3.1 -0.98,-3.43 -6.75,-3 -7.98,-6.29 2.91,-1.68 0.76,-3.48 -1.25,-4.16 3.26,-0.53 0.29,-2.11 -0.5,-3.7 0.64,-3.06 -3.23,-3.07 -3.17,-5.79 -1.79,-0.87 -1.06,-3.76 -1.85,-4.82 z","department-09":"m 281,514.26 c -1.93,0.45 -2.81,3.42 -0.61,3.74 0.47,1.06 3.65,0.84 1.91,2.92 -1.78,0.48 -2.86,1.94 -5,1.65 -1.94,-0.47 -2.72,3.01 -0.2,2.59 2.24,0.58 1.95,2.32 0.27,3.21 -1.24,2.42 -2.69,-0.31 -3.19,-1.7 -1.18,-0.65 -2.35,-0.74 -3.49,-1.68 -1.21,1.5 -3.6,0.41 -3.5,3.08 -0.69,0.69 -2.14,-1.23 -2.07,0.85 0.78,1.23 -1.59,1.79 -0.08,3.25 -1.18,1.45 2.43,1.96 0.17,3.11 -0.33,2.96 -5.7,1.12 -4.88,4.08 -1,0.73 -3.51,0.76 -1.93,2.67 -0.14,2.58 1.36,4.98 3.85,6.04 1.3,1.43 2.44,-0.82 3.84,0.84 2.2,0.69 5.28,-0.08 6.42,2.49 -0.04,2.84 2.56,2.9 4.54,2 2.27,0.7 5.31,-0.62 6.28,1.97 2.47,1.03 1.46,6.42 4.53,5.84 0.33,-1.46 -0.02,-3.65 2.25,-2.77 2.58,-1.67 3.67,2.32 6.42,1.51 1.59,0.01 4.16,0.09 3.44,2.23 1.96,0.82 4.9,1.1 6.14,-0.77 0.17,-1.61 2.36,0.02 3.34,-1.21 1.09,-1.15 1.09,-3.64 3.34,-2.57 1.75,-1.21 4.32,-0.24 5.87,-0.95 0.4,-2.48 -3.41,-3.46 -4.42,-5.35 -2.08,0.81 -4.89,2.28 -6.69,-0.08 -1.29,-0.72 0.48,-2.24 -1.27,-3.27 -1.88,-0.45 -2.07,-2.21 -0.54,-3.2 2.84,0.11 5.65,-1.41 4.42,-4.62 -1.62,-0.54 -3.31,-2.15 -0.6,-2.68 1.86,-1.01 -0.44,-3.29 0.61,-4.77 -1.01,-0.87 -2.68,-1.46 -1.18,-2.69 -0.07,-1.43 -0.47,-4.45 -2.45,-3.41 -0.92,1.43 -0.96,-2.2 -2.67,-1.24 -2.3,-0.25 -5.38,-1.98 -6.1,-3.66 0.91,-1.6 -0.72,-3.91 -1.67,-5.05 -0.92,0.6 -1.38,4.39 -1.98,1.49 -1.2,-0.67 -2.47,-1.05 -3.16,-0.2 -0.47,-1.65 -2.24,-0.25 -2.45,-1.94 -1.91,1 1.34,4.52 -1.22,4.39 -1.46,2.03 -3.74,-0.79 -2.75,-2.52 -1.34,-0.95 -2.09,-3.13 -3.54,-3.63 z","department-11":"m 322.74,505.07 c -2.05,0.87 -0.82,6.47 -3.43,3.37 -1.24,-1.83 -5.19,2.71 -5.61,-1.17 -0.96,-1.29 -3.24,1.91 -4.87,-0.09 -1.63,-0.8 -2.35,3.52 -2.64,0.63 -0.96,-2.44 -1.93,-1.82 -2.84,-0.31 -0.91,1.07 -1.52,2.84 -0.93,4.7 -1.36,0.65 -4.52,-0.56 -3.73,2 -2.59,1.87 -0.87,4.71 -0.49,7.11 -1.27,1.72 2.24,1.99 3.14,3.2 1.19,0.53 2.27,1.21 2.96,0.05 1.12,0.9 1.35,2.64 3.05,1.69 2.12,0.9 2.09,4.11 1.18,5.21 3.13,0.75 0.58,4.42 2.61,6.09 -0.39,0.99 -3.64,-0.55 -2.72,1.47 3.15,0.22 2.69,5.73 -0.43,5.57 -2.23,-0.56 -4.71,2.43 -1.69,3.29 1.21,1.07 1.25,2.2 0.94,3.14 2.17,2.52 4.98,0.67 7.49,0.33 1.51,2.48 4.82,3.48 4.44,6.58 1.77,-0.41 3.17,-3.16 4.49,-3.39 3.31,0.6 4.11,-3.13 3.04,-5.57 -1.83,-2.22 -0.3,-4.53 2.45,-3.77 2.55,1.09 4.79,-0.72 7.38,0.01 2.84,0.15 6.37,1.82 8.78,-0.17 0.65,-3.39 5.24,-6.04 7.54,-2.78 1.85,0.63 5.78,4.21 6.08,0.38 -0.45,-2.41 3.52,0.65 2.08,-2.31 -2.01,-0.09 -2.51,-4.47 -0.81,-3.38 -1.64,2.12 0.92,2.66 1.07,0.34 -0.46,-2.15 2.38,-4.6 1.05,-6.15 -2.36,0.27 -1.35,-5.67 0.64,-3.13 -2.54,0.73 1.01,4.03 1.12,0.84 1.32,-2.4 3.72,-4.96 4.13,-7.43 -1.48,-1.18 -2.13,-3.67 -4.25,-2.51 -1.21,-1.56 -3.82,-0.43 -5.13,-2.43 -2.87,1.08 -0.98,-4.2 -4.12,-2.08 -1.35,-0.41 -2.91,-0.78 -3.72,-1.82 -0.39,1.7 -3.42,0.2 -2.88,2.31 -1.03,1.88 -2.16,4.69 -4.29,2.05 -1.21,-0.21 -0.6,-4.63 -2.32,-1.66 -2.18,1.62 -3.12,-0.12 -3.87,-2.12 -3.09,-0.03 -1.41,-4.42 0.31,-5.1 -2.19,-1.27 -5.18,-2.28 -7.77,-1.42 -1.98,2 -4.51,-1.63 -6.72,-1.15 -0.21,-0.07 -0.4,-0.62 -0.72,-0.42 z","department-34":"m 390.74,470.95 c -2.99,-0.26 -2.82,5.22 -4.91,4.05 -0.85,-0.82 -3.55,2.9 -1.7,3.78 -2.23,1.02 -3.63,-1.19 -4.2,-2.93 -1.16,0.9 -4.89,3.4 -3.25,0.24 -0.72,-2.79 -3.95,-1 -5.3,0 -2.69,-1.07 -4.43,1.99 -3.3,4.01 -2.19,2.21 -5.5,0.8 -7.8,-0.28 -1.78,1.11 -0.38,3.61 -0.42,5.05 -1.55,1.49 1.67,5.37 -2.24,4.09 -1.98,-1.46 -4.85,0.46 -4.95,2.6 -2.71,0.38 -5.15,2.58 -7.61,2.47 -1.2,-2.9 -5.65,-2.66 -5.41,0.83 -0.2,2.13 -0.02,4.29 2.09,5.91 -1.23,1.35 0.72,3.85 -1.77,4.6 -0.84,1.05 -3.22,1.42 -1.8,2.86 -2.1,0.55 -3.27,4.78 -0.38,4.9 0.41,3.09 3.29,3.1 4.71,0.7 1.12,1.12 0.35,3.34 2.55,3.76 2.97,1.15 1.66,-5.18 5.05,-4.27 1.09,-0.26 0.38,-2.58 1.62,-0.55 1.21,1.33 3.32,1.66 5.28,1.1 -0.81,3.2 2.64,2.34 4.33,4 1.73,-0.69 2.59,1.52 4.38,0.6 1.39,1.92 3.62,4.56 5.52,1.34 2.58,-2.15 5.39,-4.64 8.99,-3.22 1.68,-2.14 3.28,-4.7 5.33,-6.66 2.9,-0.94 5.12,-2.93 7.63,-4.62 1.32,-0.52 2.38,-2.93 0.36,-1.17 -0.86,0.97 -3.9,2.82 -4.09,1.95 2.86,-0.54 3.94,-3.18 5.35,-4.98 2.22,-0.89 3.15,-3.57 5.97,-3.69 2.76,-1.69 5.46,-2.2 8.14,-1.32 3.13,-2.28 2.15,-5.6 0.6,-8.52 -0.42,-1.85 -2.64,-1.51 -3.41,-3.24 -1.72,-0.64 -2.58,-4.02 -5.12,-2.47 -0.36,-1.17 1.06,-3.05 -1.22,-3.23 -1.16,-1.21 -1.48,-2.47 -3.51,-1.47 -2.48,1.54 -3.44,-1.7 -1.82,-3.25 0.15,-1.49 -1.98,-1.29 -2.11,-2.79 -0.5,-0.22 -1.04,-0.13 -1.56,-0.19 z","department-81":"m 317.26,455.8 c -1.38,0.45 -1.96,1.61 -3.59,0.76 -0.3,1.95 -3.52,3.22 -5.56,2.27 -1.35,-1.6 -1.97,-0.02 -0.95,1.04 -0.95,0.36 -4.67,-1.27 -3.47,1.46 -0.16,1.66 -2.33,-1.92 -2.18,0.76 -1.1,0.98 -2.79,-1.57 -4.48,-0.74 -2.96,-0.67 -1.32,3.31 0.16,3.83 0.79,1.92 -1.89,3.01 -2.42,4.25 -1.32,0.93 -1.16,3.17 -3.54,1.88 -3.23,0.63 2.44,1.72 -0.33,3.16 -1.29,2.54 1.59,4.57 1.92,6.82 3.43,0.3 1.18,4.78 4.33,5.68 1.56,1.28 -3.01,2.06 -0.13,2.25 2.4,0.02 1.46,2.84 -0.02,3.51 0.41,1.89 3.59,2.46 5.14,3.73 3.27,0.27 2.72,5.06 6.14,5.64 1.57,0.82 3.54,1.72 3.47,-0.75 2.28,-0.44 1.4,2 0.21,3 0.06,1.82 2.22,2.93 2.93,4.31 2.14,0.3 3.89,-2.52 5.16,0.35 2.18,0.85 0.37,-3.47 2.64,-4.11 1.88,0.14 4.42,2.05 6.83,2.16 2.71,-2.86 6.35,1.58 9.11,-0.98 1.2,-0.64 2.07,-1.84 2.78,-2.36 -0.59,-1.87 0.29,-4.05 -1.8,-5.38 -0.4,-2.17 -0.06,-5.25 1.22,-6.85 1.68,0.37 3.78,1.08 4.87,2.68 2.13,-1.79 6.04,-1.49 7.35,-3.74 0.82,-2 0.39,-5.04 -2.37,-4.51 -1.51,-1.26 -3.19,-1.55 -4.19,0.39 -2.37,0.97 -5.11,-0.89 -6.55,-2.85 -1.52,-2.15 -3.76,-4.35 -2.85,-6.85 -1.52,-0.96 -0.28,-3.74 -2.85,-4.01 -0.47,-0.84 1.76,-2.39 -0.4,-3.07 -0.29,-2.52 -2.16,-4.07 -4.11,-4.88 -0.57,-2.53 -3.81,-3.32 -5.31,-4.22 -0.15,-2.48 -4.32,0.72 -4.86,-1.12 1.44,0.14 3.17,-1.78 0.74,-1.46 -0.91,0.39 -2.23,-1.71 -3,-2.06 z", -"department-82":"m 270.52,443.01 c -2.14,1.16 -4.19,2.19 -6.63,2.16 -1.8,1.76 -1.62,-2.78 -3.54,-0.83 0.31,1.77 -1.92,4.88 1.19,4.85 2.39,1.55 0.09,4.21 -0.3,6.31 -0.44,1.21 -4,0.94 -1.6,2.01 1.97,0.84 -0.06,4.23 -1.88,2.4 -1.71,-1.22 -1.76,0.34 -2.14,1.6 -2.88,-0.32 -2.21,4.49 -0.81,4.92 0.76,-1.3 4.97,-1.27 3.43,0.36 -1.84,1.04 -0.66,3.8 -2.94,4.81 -1.25,0.84 -0.68,2.87 0.84,1.84 1.82,0.52 5.75,1.1 3.97,3.56 1.04,0.67 0.69,2.25 0.98,2.38 1.77,0.78 -1.98,4.07 1.01,3.39 2.26,-0.43 4.92,-0.42 6.74,-1.49 1.27,0.58 2.39,0.31 3.28,-0.35 1.56,0.75 2.53,2.41 3.56,2.88 1.74,-0.62 2.22,-2.04 4.12,-2 1.89,-0.5 1.91,-2.44 -0.22,-2.07 -1.95,-1.13 1.52,-1.46 1.74,-1.49 -0.38,-2.02 1.51,-2.5 2.7,-1.14 2.06,1 2.76,-3.06 4.11,-1.34 0.99,-1.05 2.54,-1.76 3.38,-2.23 -0.31,-0.89 -2.82,-2.03 -0.52,-2.27 3.19,1.02 3.39,-3.02 5.79,-4.18 1.52,-1.98 -2.9,-3.42 -1.35,-5.63 1.94,-1.07 4.17,0.24 5.66,0.61 0.71,-1.21 1.03,-1.65 2.08,-0.63 0.24,-1.33 0.21,-2.59 2.09,-1.85 1.1,0.24 2.24,0.41 1.15,-0.79 0.51,-1.8 4.19,2 3.66,-0.96 -0.31,-2.1 -2.39,0.61 -2.47,-1.31 -3.3,-1.19 0.65,-3.45 1.77,-4.89 0.21,-2.45 -4.44,-0.16 -4.38,-2.98 0.49,-1.88 -1.6,-1.91 -2.4,-1.54 -1.21,-0.58 -1.91,1.84 -3.15,0.41 -2.28,-0.21 -4.04,4.15 -5.85,2.74 -0.79,-2.47 -3.62,0.05 -1.56,1.51 0.31,2.35 -3.95,2.36 -3.07,-0.25 -2.24,-2.68 -3.51,1.69 -5.86,2.39 -1.45,2.53 -2.73,-0.71 -4.63,-0.48 -0.83,-1.02 1.91,-4.61 -0.86,-3.31 -1.97,2.14 -4.17,-0.81 -5.73,-2.04 -1.54,-0.03 -2.07,-2.27 -2.71,-3.05 0.48,-0.77 3.85,-1.24 1.34,-2.04 z","department-12":"m 344.82,407.22 c -2.14,2.24 -4.92,3.53 -5.91,6.44 -0.2,3.05 -2.88,4.6 -2.81,7.85 -2.78,1.77 -2.83,6.44 -7.03,4.76 -2.85,0.81 -3.66,-2.92 -6.7,-0.63 -2.79,-0.18 -0.5,4.84 -3.68,4.44 -1,2.09 -4.35,0.18 -4.99,0.68 -2.27,1.36 -4.93,3.35 -6.47,5.56 -0.5,0.74 -1.33,-2.39 -1.72,0.49 -3.55,0.2 0.23,4.71 0.28,6.73 2.91,2.12 -2.27,3.27 -0.47,5.85 1.39,1.46 5.91,0.06 3.8,3.53 -3.1,-0.35 -2.94,5.1 0.37,3.8 0.84,2.24 2.93,2.1 3.97,0.28 0.64,-0.72 3.02,-0.92 4.38,-1.29 0.38,2.53 5.59,1.47 2.9,3.68 1.7,0.61 3.86,-0.93 4.36,1.52 3.19,-0.21 4.33,4.36 7.18,4.97 1.07,2.25 3.3,4.6 2.21,6.63 2.23,0.9 1.85,3.49 2.9,4.9 -1.38,2.72 2.8,5.25 4.08,7.58 2.19,1.85 5.01,1.88 6.77,-0.28 2.08,1.32 5.71,0.5 5.44,3.99 1.27,0.35 3.33,-1.02 4.93,0.31 1.97,-0.43 -0.03,-3.71 1.21,-5.08 -2.26,-3.18 1.08,-5.37 3.72,-2.96 2.82,0.94 5.31,-0.91 4.29,-3.64 1.04,-3.15 6.02,0.38 5.11,-4.28 0.93,-2.39 7.18,-5.33 2.04,-7.25 -1.51,-0.47 -2.97,-0.34 -3.42,-2.06 -1.73,1.9 -3.93,-2.51 -0.51,-1.95 0.48,-1.6 1.14,-3.68 2.65,-4.73 -0.68,-4.43 -9.42,2.3 -6.63,-3.08 -1.18,-1.25 -3.15,-1.32 -3.65,-2.81 -2.6,0.85 1.8,-4.01 -0.75,-5.21 -0.72,-3.41 2.21,-7.15 -2.14,-9.54 -0.76,-2.6 0.83,-5.86 -2.52,-7.49 -2.49,-2.83 -5.19,-5.99 -4.63,-9.9 -1,-0.3 1.62,-2.72 -0.79,-2.1 -2.92,-0.77 -0.83,-7.54 -5.15,-5.36 -2.76,2.56 0.68,-4.65 -2.57,-4.34 z","department-46":"m 289.52,399.9 c -1.93,0.63 -3.22,2.08 -5.19,2.51 -0.55,2.48 1.91,5.04 0.2,6.77 1.53,1.17 0.68,2.13 -0.64,2.71 -0.49,1.39 -2.82,1.08 -2.03,3.22 -2.04,0.31 -3.93,1.87 -1.84,3.73 -0.63,1.48 -1.5,2.57 -2.96,3.19 -1.15,2.55 -6.2,0.92 -4.86,4.75 -0.81,1.54 -2.94,2.2 -2.41,4.25 -2.21,-0.14 -3.42,2.82 -5.02,1.78 1.06,2.16 1.42,4.31 1.76,6.68 1.42,0.87 1.66,2.27 1.65,3.98 1.08,0.06 4.12,-1.76 2.93,0.81 -1.71,0.25 -2.37,1.31 -0.78,2.24 0.3,2.25 3.42,1.16 3.62,3.37 1.9,1.69 3.3,-0.16 5.08,-0.35 0.72,1.57 -2.26,4.22 0.76,4.02 1.46,0.62 1.81,2.15 3.19,0.31 1.85,-0.6 3.07,-3.05 4.33,-3.46 2.43,-0.2 1.29,4.21 3.91,2.83 1.72,-1.05 -1.79,-4.67 1.45,-4.27 1,-0.03 1.35,3.17 2.11,1.18 -1.32,-1.83 1.53,0.24 1.9,-1.51 1.38,-1.16 3.1,-1.29 4.45,-0.92 0.2,-1.96 1.81,0.11 2.71,-1.11 1.67,0.1 4.18,-1.49 1.89,-2.9 -0.47,-2.26 -2.34,-4.82 -1.67,-6.85 1.76,-0.03 1.59,-1.88 3.42,-1.54 2.32,-1.45 3.8,-3.77 6.26,-4.75 1.66,-0.78 4.05,1.82 5.11,-0.84 2.37,0.13 1.47,-2.41 -0.05,-3.14 -0.16,-1.64 0.62,-3.82 -1.82,-3.9 0.88,-2.1 0.95,-4.43 1.69,-6.42 -0.75,-2.19 -3.06,-3.63 -3.78,-5.98 -0.22,-1.15 1.69,-2.17 -0.2,-3.09 0.38,-3.82 -4.01,-3.64 -6.05,-1.43 -0.4,-1.8 -2.37,-1.92 -3.03,-0.03 -1.66,0.66 -3.24,2.7 -4.53,1.71 -1.67,0.61 -1.38,-2.93 -3.39,-2.7 -0.94,-2.08 -2.85,-4.19 -5.2,-4.37 -1.54,-0.53 -2.13,1.38 -2.99,-0.49 z","department-24":"m 247.71,356.64 c -1.33,1.72 -2.15,5.44 -4.37,3.98 -1.29,2.19 0.65,6.02 -2.78,7.22 -1.07,1.73 -1.22,3.17 -3.43,2.89 -1.35,1.3 -2.7,2.47 -3.69,2.4 1.31,1.44 -2.43,1.19 -1.92,3.33 -1.11,2.86 2.21,7.18 -2.16,7.82 -1.72,1.11 -2.1,4.21 -4.37,4.44 -1.83,-1.85 -4.84,-0.09 -5.58,2.19 -1.71,0.92 1.62,1.85 -0.97,2.36 -2.09,3.33 4.38,0.08 4.2,3.85 0.13,2.45 -1.7,4.67 -1.9,7.15 -2.34,1.81 1.75,4.57 -1.01,6.63 -1.98,1.62 -0.57,1.93 1.18,2.08 1.5,2.41 4.72,0.24 7.34,1.24 1.58,-2.14 3.57,-4.36 5.67,-1.25 -1.59,1.46 -2.98,1.82 -1.65,4.38 2.67,1.95 3.57,5.11 3.66,7.87 2.89,2.27 5.83,-2.31 8.31,-0.64 1.5,-0.14 1.73,-2.6 3.78,-2.17 1.74,-0.66 1.71,2.87 4.06,1.59 2.32,0.27 4.87,-3.2 5.62,0.33 1.53,0.48 -2.2,5.61 1.71,4.55 1.86,-2.63 5.57,-3.37 7.55,-0.26 1.61,0.15 2.83,4.14 2.8,0.73 3.09,-1.47 0.93,-6.06 5.03,-5.87 2.1,-1.49 4.63,-2.68 4.89,-5.07 -3.18,-2.94 3.24,-2.15 2.07,-5.03 1.39,-0.77 2.75,-1.97 3.62,-3.12 -2.55,-1.45 1.11,-2.89 -0.92,-4.95 -0.82,-1.88 -0.06,-3.23 0.88,-4.14 -1.12,-2.13 -3.92,-5.19 -1.35,-6.5 -1.47,-1.44 -7.7,-0.59 -6.45,-3.12 3.25,-2.31 -3.9,-1.43 -1.21,-3.75 2.08,-0.54 1.75,-2.32 -0.17,-2.44 -0.66,-1.42 -0.44,-4.25 1.4,-4.42 0.7,-1.32 4.27,-4.12 0.61,-3.76 -2.11,-1.25 -0.47,-1.95 0.2,-2.77 -1.16,-1.12 -2.39,-0.61 -3.26,-2.06 -1.89,0.78 -2.29,-1.48 -4.2,-1.06 -0.44,-1.95 3.54,-4.4 -0.69,-4.44 -2.48,1.66 -3.1,-3.01 -4.18,-4.31 -2.45,-0.69 -5.34,1.33 -6.92,-0.8 -0.28,1.94 -2.24,3.99 -3.3,1.71 -4.01,-0.32 1.3,-5.83 -3.25,-6.54 -2.23,1.7 -3.48,-1.31 -4.85,-0.28 z","department-16":"m 252.54,327.65 c -2.29,0.72 -1.44,3.44 -4.4,2.98 -1.27,1.85 -4.05,0.47 -4.98,-1.39 -0.68,-3.54 -5.06,1.6 -1.79,2.2 -0.58,3.13 -3.4,1.11 -5.1,0.91 -3.14,1.37 -5.19,-1.3 -7.86,-1.81 -1.52,1.5 -2.93,-1.91 -4.66,0.15 -1.97,-0.37 -2.45,3.38 -5.06,2.24 -1.93,0.04 0.82,2.24 -1.2,2.74 0.87,2.68 -3.95,2.15 -2.09,4.68 -0.28,1.91 -3.6,0.31 -2.2,2.53 -0.11,1.44 2.16,2.96 -0.03,4.42 -0.09,1.53 -0.09,4.77 -2.18,3.4 -1.96,2.42 -3.18,-3.47 -5.22,-0.43 -2.04,1.16 -4.38,0.45 -6.15,1.89 -2.73,1.16 0.38,1.62 1.39,1.98 -2.76,2.08 2.9,5.14 -0.46,5.78 -1.46,1.75 0.17,2.05 1.51,1.62 1.01,2.19 5.21,3.29 2.97,5.77 2.34,0.08 4.85,3.05 1.84,4.29 -0.18,1.67 3.8,4.33 0.08,4.95 -3.11,0.84 0.04,2.57 1.34,2.89 -0.62,0.79 -3.1,1.95 -1.06,3.18 2.2,-2.04 4.86,0.36 7.25,0.92 -0.44,1.96 0.03,3.48 2.36,2.77 1.73,0.17 2.65,2.07 3.44,2.83 1.42,-1.43 3.54,-1.84 5.23,-0.38 1.69,-1.46 2.03,-3.29 3.72,-4.47 1.1,-1.12 3.55,-1.27 2.27,-3.69 -1.79,-2.79 1.03,-5.85 1.8,-7.57 0.23,-1.21 1.54,0.42 2.16,-1.12 1.02,-1.12 2.42,-1.8 3.66,-1.6 0.38,-3.16 4.03,-3.24 3.74,-6.43 -0.64,-1.42 -0.09,-4.56 1.85,-3.02 1.5,-1.35 2.27,-4.04 4,-5.85 1.03,-2.13 3.92,-2.7 3.46,-5.45 1.36,-0.67 3.4,1.91 3.05,-0.98 1.5,-1.75 2.07,-3.92 1.46,-6.01 -0.57,-2.93 3.18,0.64 4.34,-1.8 2.69,-1.02 0.69,-6.52 -1.66,-5.43 -1.88,-0.53 -3.24,-3.11 -1.94,-5.21 -0.3,-3.28 -2.38,-2.24 -4.88,-2.46 z","department-86":"m 220.19,259.01 c -2.67,1.11 -1.14,6.66 -4.7,5.46 -1.12,2.67 -0.28,6.33 2.34,7.3 1.21,2.8 -0.12,6.86 2.81,8.58 -0.34,0.88 -4.74,0.94 -2.01,2.12 1.66,0.91 -1.21,4.66 1.86,5.01 0.17,2.88 -3.53,4.96 -3.39,7.51 2.34,-1.74 2.86,1.09 4.01,2.56 -2.36,1.41 -1.42,4.19 -3.11,6.09 1.11,2.79 0.46,6.03 2.68,8.32 -0.98,2.26 1.88,5.6 3.64,2.56 3.26,-2.86 4.22,4.09 1.42,5.44 -1.17,2.3 -1.1,6.6 2.78,6.31 1.76,0.42 -1.54,4.9 1.9,4.82 2.58,2.29 6.42,0.33 9.24,2 3.12,-1.13 -1.64,-3.61 1.54,-4.88 2.93,-0.45 3.66,4.64 7.15,2.55 2.65,-1.24 4.01,-4.64 7.5,-3.07 5.18,0.43 -2.68,-6.17 1.99,-6.32 0.93,-3.5 4.73,-3.96 7.28,-4.09 1.27,-2.3 2.21,-5.88 5.59,-4.54 3.05,-1.23 4.82,-4.66 1.43,-6.65 -0.96,-2.09 -0.63,-5.43 -4.09,-4.96 -2.4,-0.38 -3.1,-2.52 -5.49,-3.06 -4.32,-2.56 0.87,-7.41 -2.39,-10.17 -3.73,-2.36 -3.49,-7.19 -7.25,-9.59 -1.82,-2.65 -1.18,-7.21 -5.41,-7.83 -3.82,-1.6 1.37,4.35 -2.65,2.83 -3.22,-0.17 -6.05,2.2 -9.36,1.21 -5,0.41 0.09,-6.41 -3.44,-7.54 -1.02,-1.75 -5.86,1.14 -3.94,-2.42 -1.49,-2.05 -5.43,-1.78 -6.57,-4.86 -0.36,-0.36 -0.83,-0.61 -1.33,-0.67 z","department-37":"m 248.48,223.77 c -1.42,3.62 -6.45,2.73 -8.2,5.37 -1.46,1.36 -3.9,-2.72 -3.72,0.4 1.37,1.11 1.66,4.33 -0.82,2.81 -1.82,-1.23 -6.06,-3.74 -5.96,0.05 -1.81,2.38 0.79,4.4 -1.19,6.79 -1.59,2.5 -0.38,5.84 -2.27,7.78 -1.62,2.49 -3.61,4.89 -3.44,8.06 -0.62,2.26 -1.45,6.53 1.54,7.19 1.25,-0.87 1.94,2.54 3.31,0.71 0.97,1.11 -0.63,5.21 2.13,3.2 1.8,-1.1 1.89,1.61 3.57,1.4 0.89,2.11 -1.82,7.48 2.05,6.94 1.94,-0.66 4.56,0.68 6.7,-0.98 1.61,-0.96 6.42,0.73 3.58,-2.33 -0.63,-2.85 4.7,0.45 5.56,1.73 0.59,2.71 0.86,5.99 3.94,7.28 1.95,1.88 1.63,7.78 6,6.31 1.43,1.23 2.54,1.03 3.52,-0.09 1.84,-0.7 -1.13,-3.48 0.89,-4.6 0.94,-2.88 0.5,-6.24 2.1,-8.75 -0.51,-3.01 1.88,-5.04 4.77,-5.05 2.3,-0.22 4.18,2.32 5.36,-0.8 1.09,-2.04 2.29,-3.59 3.83,-4.89 -0.17,-3.29 -2.68,-5.86 -4.09,-8.7 -1.3,-3.91 -5.06,-1e-4 -7.13,-2.72 -1.96,-2.54 1.63,-6.07 -1.07,-8.64 1.91,-0.4 1.97,-2.18 -0.13,-2.78 -0.17,-1.99 -3.11,-4.5 -0.71,-6.14 -0.62,-1.2 -2.55,-4.44 -3.27,-1.51 -0.57,-2.17 -2.63,-4.19 -4.63,-1.88 -3.07,2.82 -2.07,-3.8 -2.27,-4.29 -2.95,-0.2 -5.98,-1.05 -8.71,-0.82 -1.21,0.63 -0.51,-1.11 -1.23,-1.05 z","department-72":"m 231.9,172.51 c -2.61,0.34 -4.43,1.91 -6.19,3.04 -1.38,0.48 -2.05,1.94 -3.42,2.6 -0.33,3.05 -3.2,-1.34 -4.33,0.83 -1.43,1.08 -5.63,0.06 -4.24,2.95 -3.08,-0.79 0.86,3.38 -1.37,4.58 -0.86,1.81 1.85,4.28 -0.94,5.2 -2.01,1.1 -4.73,3.07 -1.86,4.9 -0.99,1.29 0.02,2.59 -0.74,3.79 -2.44,-0.68 -6.78,1.67 -3.4,3.85 0.73,2.09 1.76,4.48 -1.53,4.5 -2.58,-0.44 -3.89,2.42 -1.36,3.52 0.5,2.29 -5.19,2.01 -2.45,4.82 3.47,-0.45 1.48,4.86 3.4,5.98 2.31,-1.32 4.91,2 6.78,-0.52 3.29,0.6 -2.46,2.42 0.25,4.06 0.74,1.66 3.87,2.49 4.49,0.08 2.3,1.12 4.71,0.48 6.02,2.83 1.69,1.36 4.05,0.33 5.35,2.19 1.62,-0.93 1.69,-2.65 3.94,-1.78 2.54,-0.05 4.67,2.82 7.14,2.4 0.9,-1.5 -2.93,-3.52 -0.02,-4.31 1.04,1.34 2.82,2.12 3.33,-0.2 2.31,-0.39 4.79,-1.35 6.51,-2.6 -2.85,-2.23 1.58,-5.3 3.79,-5.52 0.46,-1.4 2.4,-3.52 3.78,-4.83 -1.44,-1.85 -0.29,-6.03 1.78,-3.82 -1.09,-2.59 3.21,-2.96 0.58,-5.37 0.08,-1.7 1.43,-3.61 -1.11,-3.97 -1.64,-2.45 2.4,-1.51 1.74,-3.29 -2.05,-0.4 1.4,-1.62 0.89,-2.96 2.29,0.52 3.2,-1.49 0.55,-1.94 -2.01,-0.09 -3.25,-2.56 -5.32,-1.22 -2.38,-0.82 -2.49,-6.22 -5.36,-4.81 0.79,2.39 -2.74,0.17 -4.1,0.37 -1.11,-1.06 -2.58,-1.99 -2.45,-3.6 -1.86,0.23 -5.36,-0.71 -4.94,-3.08 -0.44,-3.4 0.09,-8.02 -4.58,-8.58 l -0.59,-0.08 2e-5,0 z","department-61":"m 236.9,140.22 c -1.37,2.93 -4.44,0.95 -5.77,0.51 -0.7,2.09 -2.92,0.83 -4.24,2.34 -1.35,-2.77 -4.38,-0.25 -5.26,1.87 -3.09,0.73 -4.56,4.12 -8.22,4.12 0.6,2.97 -3.23,-1.05 -4.99,-0.78 -2.07,-0.19 -4.42,-1.53 -4.55,1.51 -1.86,-0.97 -4.38,-5.01 -6.99,-1.88 -2.67,0.7 -5.63,2.58 -8.38,0.81 -1.94,-0.21 0.58,2.41 -2,2.73 -2.21,0.79 -4.81,2.48 -5.8,4.18 1.64,0.47 4.03,2.64 4.89,3.81 -2.6,1.08 -0.04,3.17 -0.37,4.16 -0.1,3.46 -3.63,4.61 -4.76,7.47 1.29,1.59 1.78,3.06 3.56,2.81 -0.2,2.49 3.05,0.83 2.04,-0.77 2.19,0.16 3.37,-1.72 3.97,1.42 2.29,-1.26 4.74,-2.16 6.49,-3.76 2.15,-0.24 4.6,-0.72 6.51,1.02 1.07,-1.63 2.35,-2.41 3.95,-1.42 1.83,-1.07 -0.27,-4.47 3.02,-3.12 1.81,1.18 3.45,2.14 1.99,3.87 0.35,2.25 1.92,4.62 4.47,2.94 1.72,0.65 -0.84,6.99 2.46,4.03 1.16,0.36 3.03,2.09 3.43,-0.38 1.63,-0.81 2.66,-2.19 4.04,-2.85 0.28,-1.38 5.31,-3.16 7.52,-1.96 3.9,1.26 2.59,5.53 3.26,8.6 -0.11,2.92 4.56,1.76 5.41,3.53 -0.07,1.99 3.35,3.78 5.67,2.91 3.19,-3.99 3.88,7.21 7.66,3.4 3.17,-1.53 -1.64,-4 -0.17,-6.33 -3.57,-0.8 0.8,-4.69 3.13,-4.08 2.2,-1.01 6.03,-4.76 3.83,-6.66 -0.95,-2.15 2.33,-4.5 -0.88,-5.72 0.72,-2.4 -4.26,-1.56 -3.98,-4.43 -1.88,-0.39 0.25,-5.19 -3.06,-4.1 -0.43,-1.15 -0.37,-2.32 -1.89,-2.36 3.89,-2.53 -0.45,-5.72 -3.19,-6.87 -1.23,-0.78 -2.92,-1.32 -1.88,-2.86 -1.36,-1.19 -1.22,-3.67 -3.26,-1.5 -2.58,-0.67 -7.27,0.22 -7.13,-3.52 0.64,-0.73 0.75,-2.65 -0.53,-2.7 z","department-27":"m 242.33,106.21 c -2.25,1.4 -4.46,3.12 -7.27,3.2 -3.13,0.01 -1.44,3.96 -0.97,5.79 -0.25,1.42 -0.2,3.07 0.05,4.32 1.56,-2.67 4.74,1.16 1.61,1.68 -3.49,1.51 3.09,2.25 1.65,4.56 -0.6,1.84 0.47,2.5 1.82,3.11 -1.56,1.19 -0.91,2.9 -0.68,4.31 -3.08,-0.3 -1.43,3.4 0.78,3.14 1.11,2.25 -1.15,5.22 -2.03,7.57 1.97,1.86 5.79,2.95 8.17,1.67 1.68,-0.94 2.06,2.46 2.78,2.55 -1.38,3.04 5.18,3.21 5.92,5.84 1.68,1.55 -0.55,2.63 -0.78,3.74 1.84,0.46 1,3.47 3.6,1.89 2.3,-0.06 2.09,-4.03 4.58,-2.4 2.21,-1.11 4.77,-0.84 6.52,-3.04 1.78,1 3.18,0.1 2.69,-1.95 1.73,0.3 3.34,2.1 5.52,1.18 1.73,0.91 5.58,0.54 5.97,-1.71 -2.26,-3.14 2.59,-4.24 4.24,-5.72 -0.13,-1.58 -1.51,-4.22 1.43,-3.88 0.74,-0.67 -0.33,-1.93 0.53,-2.57 -1.47,0.74 -2.69,-0.27 -1.44,-1.58 -1.04,-1.31 -2.12,-4.8 0.61,-3.44 1.11,-1.2 0.8,-1.98 2.49,-1.09 3.37,-0.07 4.6,-2.86 5.45,-5.81 0.13,-2.58 1.39,-4.89 2.52,-6.95 1.56,-1.59 3.56,2.74 3.6,-0.58 -1.93,-1.54 -0.62,-5.1 -2.69,-7.09 -0.94,-2.78 -3.12,-0.33 -5.23,-1.99 -1.74,0.33 -2.23,-3.11 -4.08,-1.45 -2.23,-1.34 -5.13,-1.37 -7.71,-1.23 -0.89,1.39 -2.82,1.34 -2.49,3.35 -1.48,1.47 -1.23,4.8 -4.4,3.5 -1.42,0.9 -3.69,0.83 -4.18,2.58 -2.63,-0.42 -3.44,1.09 -2.81,3.24 -1.76,0.32 -3.16,0.76 -4.2,-0.95 -1.28,0.44 -0.68,-4.41 -2.73,-1.94 -0.92,0.95 -1.47,-2.05 -3.03,-1.54 0.47,-2.75 5.09,0.66 3.34,-3.08 -0.36,-1.37 -2.02,1.31 -1.95,-1 -2.7,-0.13 -3.88,-2.85 -6.72,-1.29 -2.27,1 -3.56,-0.22 -5.16,-1.45 -2.66,0.51 -3.03,-3.16 -5.33,-3.52 z","department-14":"m 231.23,109.9 c -4.06,0.09 -6.85,2.84 -9.55,5.38 -3.34,2.06 -7.05,3.56 -10.99,3.85 -1.95,1.92 -3.54,-1.01 -5.94,-1.28 -2.67,-1.83 -5.65,-1.96 -8.71,-2.47 -2.52,-0.48 -5.06,0.57 -7.64,-0.13 -3.42,-0.41 -7.08,-0.38 -10.19,-1.98 -1.94,-1.82 -4.91,-0.74 -7.32,-0.9 -3.6,0.27 -1.56,4.12 -3.38,5.89 0.35,2.42 2.43,4.3 4.66,5.41 1.29,2.26 4.25,1.82 4.95,-0.81 0.89,1.47 2.18,1.84 0.71,3.15 -2.85,2.72 2.74,3.63 1.8,6.79 0.25,1.58 -1.34,2.53 0.39,3.45 -2.56,1.47 -4.13,6.64 -7.82,4.57 -1.7,0.05 -2.56,3.86 0.25,2.27 1.68,0.8 -1.5,3.01 -2.33,3.69 -1.18,-0.64 -2.61,2.05 -3.44,2.77 1.51,0.52 3.07,1.11 2.99,2.92 1.94,0.53 4.35,0.57 6.32,-0.18 1.55,1.73 4.66,1.77 5.78,1.31 0.33,1.85 2.06,-2.55 3.65,-1.79 1.67,-0.4 2.88,-1.72 1.91,-3.16 2.07,-1.17 2.99,1.93 4.94,0.32 1.69,0.63 2.6,-1.47 4.44,-1.14 2.02,-2.53 4.71,-0.49 6.27,0.75 0.09,2.25 1.52,-0.03 1.58,-1.02 2.72,0.42 5.75,0.47 7.89,2.34 0.72,-2.21 4.15,-0.58 5.38,-3.06 1.98,-1.59 4.45,-2.16 5.53,-4.57 1.56,-0.47 2.62,-1.63 3.42,0.6 1.16,-0.33 2.13,-1.63 3.58,-1.13 0.5,-2.08 1.78,-0.88 2.61,-0.44 1.61,0.55 3,0.24 4,-1.29 0.95,1.22 2.59,1.22 2.01,-0.7 1.28,-2.16 0.25,-3.37 -2.04,-3.81 -1.78,-1.67 1.38,-2.37 1.39,-3.02 -1.93,-1.58 2.62,-4.1 -0.98,-4.39 -0.16,-2.06 0.6,-4.48 -2.13,-4.95 -3.24,-2.19 4.22,-2.19 0.79,-4.43 -0.9,-0.04 -3.11,2.04 -1.98,-0.25 -0.33,-1.14 -1.2,-1.29 -0.01,-2.61 -1.49,-1.67 0.64,-7.09 -2.8,-5.97 z","department-76":"m 285.08,67.51 c -1.66,1.28 -3.92,-0.27 -5.32,2.21 -2.55,2.82 -5.75,4.75 -9.23,6.16 -2.69,2.07 -6.27,0.91 -9.1,2.49 -3.04,0.83 -5.97,2.2 -9.16,2.2 -4.64,-0.08 -8.38,2.85 -12.2,5.03 -3.19,1.24 -5.65,3.53 -8.97,4.44 -4.45,0.63 -4.32,5.58 -6.08,8.7 -1.33,2.41 -3.69,6.09 0.02,7.66 2.71,1.09 5.28,1.25 8.39,1.98 3.84,1.23 7.92,-4.2 10.87,-0.97 1.02,1.67 2.99,3.04 4.68,1.44 -0.81,3.45 3.88,2.23 5.92,1.74 1.25,0.7 1.48,-1.8 1.82,0.62 0.74,1.56 3.24,0.12 3.81,1.84 1.65,-0.96 2.48,4.22 -0.34,2.48 -3.28,0.03 0.21,1.48 0.51,2.68 2.73,-3.35 2.83,4.25 5.77,2.84 2.8,-0.27 -0.27,-3.85 3.3,-3.41 1.82,-0.28 2.83,-2.57 4.57,-2.23 0.36,-1.37 4.68,0.8 4.04,-2.57 1.27,-2.05 1.52,-4.08 4.3,-5.05 2.08,0.14 5.31,0.85 7.56,1.4 2.14,-0.45 3.59,3.15 6.18,2.19 2.06,0.69 2.28,-3.97 4.3,-4.86 1.52,-1.49 -0.75,-3.01 -1.45,-0.94 -2.42,-0.89 0.93,-2.53 -0.81,-3.95 0.3,-1.61 -2.27,-1.27 -1.03,-2.58 -0.73,-1.35 1.8,-2.21 -0.04,-3.48 1.02,-1.01 3.32,-5.11 0.67,-2.57 -2.48,-0.31 0.5,-3.34 1.11,-4.23 -0.07,-1.57 3.34,-0.34 1.01,-2.16 -2.4,-2.69 -1.34,-6.85 -4.28,-9.1 -3.65,-1.5 -5.37,-5.07 -8.6,-7.13 -2.03,-0.46 -0.42,-2.8 -2.2,-2.85 z","department-60":"m 299.82,88.06 c -0.68,1.53 -2.52,3 -2.62,4.61 0.88,0.83 2.72,-2.26 2.36,0.47 -2.03,0.88 -1.5,2.81 -1.5,4.35 -1.65,1.28 0.75,1.64 0.2,3.03 0.54,1.64 1.83,2.54 0.02,4.14 0.78,1.65 2.88,-1.94 3.18,0.81 -0.81,1.88 -3.2,3.3 -3.32,5.72 1.83,-0.19 -0.44,1.38 1.38,2.1 1.48,2.13 0.75,4.92 2.41,6.82 0.2,2.27 -1.63,1.56 -2.48,0.39 -2.21,-0.34 -2.49,2.24 -0.48,2.81 -0.83,1.16 -0.47,2.78 1.13,3 2.38,-0.91 4.68,1.32 7.04,0.62 2.19,-0.63 4.26,-0.42 6.14,-1.88 1.82,-1.52 2.59,1.29 4.7,0.92 0.24,2.48 3.26,-1.11 3.69,1.4 -0.75,1.55 3.2,0.09 3.21,-1.39 1.69,-0.21 1.93,2.59 3.71,1.86 2.57,0.22 4.8,1.97 6.25,3.43 0.62,-1.34 1.71,-1.33 1.95,0.34 1.46,2.81 2.94,-2.02 4.79,0.35 1.09,0.96 1.32,2.68 2.73,1.05 0.38,2.06 2.62,0.41 2.41,-0.61 2.06,-2.04 3.56,2.74 5.7,0.23 1.37,0.79 3.07,-1.58 3.55,0.59 0.9,-2.08 4.02,0.32 3.84,-2.61 0.97,-1.2 1.9,-2.09 3.15,-2.84 -1.43,-0.2 -1,-3.93 -2.02,-1.23 0.12,2.36 -0.59,-0.15 -0.51,-1.14 -0.98,-0.34 -1.96,-0.8 -2.82,-1.45 1.46,-1.59 0.58,-5.08 -1.78,-5.51 -1.64,-1.93 1.32,-3.14 3,-2.37 2.78,-1.33 1.45,-5.56 2.96,-6.93 1.83,1.02 3.46,-1.08 0.88,-1.43 -2.12,-0.58 0.91,-1.96 -1.18,-3 -0.31,-1.21 1.9,-1.71 1.13,-3.46 1.11,-2.28 -2.26,-3.66 -0.83,-5.46 -1.28,-1.35 1.28,-1.82 0.48,-3.31 0.33,-2.37 -2.35,1.17 -1.98,-1.22 -1.06,0.07 -2.21,3.33 -3.26,0.83 -1.15,-1.16 -2.97,0.6 -2.46,1.87 -0.95,-1.04 -2.28,-2.96 -3.61,-2.19 0.98,1.2 1.14,2.51 -0.39,1.26 -0.14,2.4 -4.2,0.61 -3.1,3.55 -0.54,2.6 -5.29,-1.86 -5.5,1.9 0.32,2.24 -2.85,2.23 -2.21,0.03 -1.14,-1.83 -2.74,1.59 -3.58,-0.97 -1.21,-1.4 -2.44,-1.07 -3.66,-0.6 -0.85,-3.25 -4.16,-1.53 -6.1,-3.1 -0.93,-1.42 -3.34,-0.98 -4.87,-2.04 -2.87,-0.39 -5.38,1.28 -8.22,0.91 -0.21,-2.15 -3.87,-1.59 -4.92,-1.24 -1.09,-1.54 -2.79,1.74 -4.47,0.11 -1.06,-0.76 -1.06,-1.17 -0.69,-2.16 -0.99,-0.72 -2.08,-1.47 -3.42,-1.36 z","department-80":"m 292.25,47.76 c -3.3,0.48 -3.7,7.09 -0.18,7.88 1.08,1.67 4.2,2.74 3.06,4.24 -2.73,-1.29 -6.63,-3.63 -7.9,0.8 -0.08,3.06 -3.29,5.38 -4.22,7.27 1.37,-0.11 3.64,-1.46 3.18,1.37 3.11,1.87 5.05,5.06 7.98,7.06 3.9,1.29 3.89,5.38 5.12,8.61 0.56,2.66 4.89,3.47 4.09,5.66 1.46,2.82 4.15,-0.88 5.54,0.73 2.25,-2 4.72,2.18 7.27,1.01 2.7,-0.93 5.98,-1.02 8.68,0.5 1.84,-0.03 3.1,2.73 5.49,1.65 1.93,0.79 2.11,3.17 3.94,1.57 2.03,0.38 2.41,3.33 4.24,1.67 1.8,-0.87 1.46,4.54 3.03,1.36 0.02,-3.92 4.11,-1.35 5.69,-2.17 -0.71,-2.24 0.89,-2.61 2.47,-2.96 0.23,-1.49 2.58,-0.96 0.98,-2.41 1.05,-1.53 0.91,1.46 2.09,-0.25 0.9,2.74 1.49,1.35 3.01,0.23 1.35,0.58 3.49,2.16 3.45,-0.59 1.21,0.66 3.53,0.99 2.21,-1.27 0.39,-2.05 -3.23,-2.65 -0.99,-4.12 0.13,-1.56 -2.17,-2.32 -0.06,-3.42 -0.06,-1.95 2.47,-2.66 2.02,-5.11 0.89,-1.27 2.86,-3.19 2.9,-4.11 -2.64,0.29 0.37,-2.52 -2.05,-2.42 -2.22,-1.41 -5.14,-3.16 -7.9,-1.23 -1.34,-2.15 -4.91,2.97 -5.09,0.51 1.42,-1.44 -0.8,-3.49 -2.15,-1.79 -0.94,1.46 -4.33,1.85 -2.41,-0.4 3.11,-2.33 -2.99,-5.63 -2.46,-2.07 1.41,1.98 -2.63,-0.12 -3.46,-0.4 -1.61,-0.21 -3.12,-0.74 -2.69,-2.12 -1.34,-0.69 -1.48,3.04 -2.43,0.22 -3.21,-2.44 -3.38,5.35 -5.85,1.64 -1.72,-1.93 1.49,-5.21 3.99,-5.44 1.33,-2.2 -4.48,-3.79 -5.35,-1.18 -0.74,-1.34 -1.37,-2.06 -1.64,-0.43 -2.88,-0.65 -5.6,0.07 -8.2,1.37 -1.11,-1.55 -3.47,0.2 -3.68,-2.58 1.41,-3.13 -8.2,-2.22 -4.92,-5.34 -0.16,-2.3 -3.14,1.95 -4.11,-1.07 -2.18,-2.39 -5.42,-2.15 -7.98,-0.54 -2.27,1.67 -2.44,-2.55 -4.75,-1.91 z","department-95":"m 297.89,122.77 c -1.93,0.92 -1.82,3.28 -2.24,5.06 -0.18,1.39 -0.88,2.57 -1.71,3.66 -1.18,2.5 3.25,0.35 3.28,2.76 0.67,1.03 2.44,0.71 2.86,-0.15 1.62,0.83 1.89,-1.96 3.5,-0.67 1.15,0.5 1.54,1.3 0.91,2.4 0.05,1.46 1.28,0.91 1.47,-0.15 1.23,-1.85 1.56,1.36 3.2,0.93 1.81,-0.33 2.63,2.19 4.51,1.19 1,-0.65 2.03,-0.32 2.94,-0.74 0.27,0.84 -0.01,2.32 1.49,2.09 1.39,0.41 0.73,2.42 2.34,2.4 -0.26,0.82 -0.29,3.2 0.91,1.57 0.86,-1.05 2.61,-1.25 3.07,-2.57 1.17,0.19 2.33,0.34 3.34,-0.64 1.5,0.48 3.52,2.04 5,0.44 1.28,-0.6 2.07,-1.91 3.13,-2.67 -1.04,-1.28 1.15,-1.17 1.41,-2.36 0.47,-0.74 -0.21,-1.51 0.41,-2.34 -0.57,-0.87 -1.19,-1.72 -1.74,-2.51 -0.76,0.04 -0.35,1.66 -1.56,0.99 -1.63,0.01 0.09,-1.59 -1.48,-1.79 -0.96,-0.62 -1.98,-0.38 -2.67,-1.33 -1.15,-0.06 -2.21,-0.73 -3.09,-0.09 -0.52,-1.59 -2.64,-3.14 -3.11,-0.65 -0.81,0.43 -3.97,1.21 -2.53,-0.5 -0.87,-1.58 -3.19,1.28 -3.56,-1.01 -1.15,-0.35 -2.65,-0.19 -3.11,-1.46 -1.37,0.13 -2.53,1.17 -3.72,1.84 -1.32,-0.26 -2.69,0.49 -4.1,0.64 -1.33,0.67 -2.12,-0.84 -3.46,0.08 -0.96,-1.47 -2.91,-0.73 -4.2,-0.81 -0.5,-0.95 -2.12,-1.82 -0.57,-2.52 0.13,-0.53 -0.36,-1.09 -0.9,-1.1 z","department-78":"m 292.32,132.84 c -1.68,0.81 -3.67,0.76 -5.14,1.83 -1.97,-1.3 -0.99,2.02 -0.1,2.67 0.55,0.79 -1.34,2.61 0.69,2.07 1.64,-0.39 0.59,0.65 0.37,1.44 0.56,0.92 0.3,2.44 1.88,2.64 -0.09,1.26 1.67,1.89 0.48,3.08 1.64,0.66 2.24,2.6 1.48,4.19 -1.03,2.01 0.99,3.08 1.85,4.34 -0.58,1.19 -2.9,3.12 -0.68,3.75 -0.47,1.26 0.09,2.42 1.54,2.47 0.18,1.99 1.68,2.21 3.27,2.53 -0.41,1.11 -0.51,2.96 1.4,2.43 1.42,0.39 2.18,2 1.59,3.43 0.23,1.67 0.57,3.89 2.53,3.87 0.36,1.68 3.78,2.12 3.77,0.29 -0.23,-1.35 1.17,-2.66 1.54,-4.05 1.67,-0.97 -2.33,-2.06 -0.18,-2.66 1.44,0.17 3.44,0.88 3.57,-1.25 0.08,-1.12 0.7,-1.71 1.35,-2.36 -0.8,-1.15 -2.97,-2.42 -1.13,-3.55 0.61,-1.71 3.54,-1.04 3.46,-3.33 -0.81,-1.48 0.7,-1.23 1.5,-1.61 0.73,-1.13 2.67,-0.43 2.55,-1.99 1.23,0.53 1.88,-0.53 0.53,-1.07 -0.97,-1.07 -3.27,-1.54 -2.66,-3.59 -0.02,-1.82 0.75,-3.53 2.25,-4.55 0.27,-1.43 0.56,-2.46 -1.03,-2.77 0.42,-2.23 -2.99,-1.71 -2.63,-3.73 -1.61,-0.09 -3.2,1.35 -4.8,0.6 -1.14,-1.79 -3.8,-0.64 -4.79,-2.64 -0.79,0.03 -1.9,3.2 -2.31,1.04 -0.6,-0.85 0.89,-2.23 -0.76,-2.51 -1.37,-1.91 -2.01,1.2 -3.59,0.52 -1.03,1.41 -3.22,0.49 -3.58,-1.01 -1.62,-1.22 -2.88,0.79 -4.21,-0.53 z","department-28":"m 287.11,142.32 c -2.1,1.04 1.22,5.31 -2.55,5.04 -3.13,0.47 -2.25,4.05 -2.79,5.7 -2.08,1.39 -4.66,0.71 -6.89,0.79 -1.67,0.17 -4.55,-2.91 -4.14,0.39 -0.94,1.3 -4.08,-0.75 -3.86,1.85 -2.43,0.08 -5.51,1.27 -7.37,1.58 -1.08,1.71 -3.78,2.6 -2.33,4.99 0.77,3.5 4.78,4.24 6.38,7.09 -0.22,2.23 -1.98,4.13 0.4,5.86 -1.32,2.12 -2.68,4.96 -5.61,5.63 -2.31,-0.78 -5.36,3.02 -2.13,3.95 -1.7,2.27 2.62,5.08 0.17,6.87 0.96,1.32 5.87,1.56 4.27,3.23 -2.59,-0.41 -2.61,3.43 0.12,2 1.93,-0.18 2.86,0.02 4.27,-1.38 2.46,-1.17 2.35,1.12 0.44,1.89 0.94,1.94 5.72,-0.14 5.24,3.16 2.38,1.44 2.98,5.53 5.88,5 2.46,1.01 5.04,1.84 7.07,-0.1 2.12,0.96 1.21,-4.35 3.42,-1.33 2.91,1.91 0.9,-4.73 4.83,-2.76 1.99,-0.3 2.54,-3.35 5.19,-2.24 2.89,0.64 5.49,-1.07 8.22,-1.66 2.33,-1.48 0.35,-5.82 3.98,-5.14 -0.56,-1.06 0.03,-1.81 0.2,-2.18 -1.12,-2.33 1.98,-4.62 -0.13,-6.47 1.22,-2.57 0.51,-6.45 -1.46,-7.17 0.98,-3.67 -3.12,-0.53 -4.61,-2.82 -3.57,-1.35 -1.08,-6.34 -4.19,-7.79 -2.86,0.53 -0.05,-3.49 -3.13,-2.7 -2.21,-2.24 -5.44,-5.53 -2.5,-8.36 -1.41,-1.65 -2.75,-3.31 -1.37,-5.55 -0.35,-2.12 -1.91,-3.29 -1.97,-5.44 -0.63,-1.06 -1.8,-1.83 -3.04,-1.94 z","department-75":"m 326.98,144.71 c -1.27,-0.06 -2.46,0.68 -3.27,1.54 -0.47,-0.15 -0.85,0.06 -1.23,0.25 -0.65,0.03 -1.66,1.18 -0.69,1.52 0.81,0.18 0.93,1.2 1.8,1.35 1.65,0.28 3.42,1.43 5.03,0.39 1.03,-0.88 2.21,0.62 3.32,0.28 0.54,-0.43 0.6,-1.27 -0.33,-1.23 -0.68,-0.16 -1.14,-0.33 -1.46,-0.06 -0.34,-1.13 -0.06,-2.23 -0.93,-3.14 -0.12,-1.14 -1.17,-0.96 -2.05,-0.92 l -0.18,0 -0.03,3e-4 z","department-93":"m 336.5,137.58 c -0.46,0.33 -1.14,0.34 -1.42,0.97 -0.75,1.19 -2.15,1.71 -3.14,2.62 -0.82,-0.03 -1.72,-0.07 -2.53,-0.25 -0.64,-0.37 -1.29,-1.34 -2.07,-0.64 -0.6,0.3 -1.08,1.1 -1.81,0.59 -0.35,-0.19 -1.46,-0.42 -1.19,0.3 0.56,0.53 2.05,0.32 2.05,1.33 -0.06,0.69 -1.13,1.34 -0.68,2.02 1.05,0.43 2.37,-0.21 3.33,0.37 0.27,0.54 0.5,1.08 0.89,1.55 0.18,0.57 -0.13,1.72 0.86,1.53 1.07,-0.15 2.16,-1.04 3.23,-0.34 1.04,0.72 2.32,1.35 3.05,2.37 -0.11,0.74 1.41,0.94 1.04,0.05 -0.24,-0.71 -0.92,-1.55 -0.78,-2.26 0.67,-0.23 -0.04,-0.79 -0.4,-0.86 0.27,-0.43 -0.26,-0.81 -0.29,-1.14 0.41,-0.57 1.31,-0.71 1.23,-1.58 -0.09,-0.8 0.8,-1.4 0.35,-2.19 -0.23,-0.84 -1.06,-1.46 -1.25,-2.26 0.77,-0.61 0.45,-1.99 -0.49,-2.17 z","department-94":"m 332.85,147.49 c -0.56,0.21 -2.03,0.43 -2.18,1.01 0.31,0.21 1.82,-0.09 1.77,0.51 0.02,0.58 -0.23,1.64 -1.05,1.16 -1.03,-0.16 -2.09,-1.01 -3.03,-0.14 -0.7,0.5 -1.59,0.2 -2.33,0.5 -0.4,1.12 0.01,2.46 -0.66,3.53 -0.23,0.79 0.87,0.44 1.11,0.99 0.42,0.39 0.99,0.13 1.33,-0.1 0.46,0.44 -0.1,1.74 0.84,1.68 0.59,-0.25 1.17,-0.38 1.79,-0.16 1.34,-0.05 2.64,-0.54 3.94,-0.71 0.51,0.63 0.39,1.61 1.15,2.11 0.31,0.19 0.6,0.29 0.75,0.66 0.59,0.31 1.26,-0.47 0.77,-0.99 -0.01,-0.93 1.56,-1.44 0.88,-2.44 0.49,-0.32 0.24,-1.11 0.85,-1.28 0.43,-0.58 -0.47,-0.6 -0.83,-0.71 -0.34,-0.52 0.66,-1.17 0.14,-1.69 0.12,-0.8 -1.11,-0.7 -1.2,-1.46 -1.03,-1.05 -2.25,-2.13 -3.71,-2.49 -0.1,-0.01 -0.2,-0.01 -0.31,0 z","department-92":"m 324.24,141.53 c -2,0.52 -3.26,2.41 -5.06,3.32 -1.07,0.77 -1.1,2.2 -0.99,3.39 -0.4,0.4 -0.48,0.98 -0.25,1.53 0.01,0.71 0.73,0.52 1.15,0.65 0.16,0.65 0.67,1.01 1.28,1.14 0.25,0.33 0.49,0.67 0.86,0.85 0.32,0.72 0.72,1.57 1.66,1.53 0.78,-0.01 1.11,0.83 1.08,1.46 0.36,0.27 0.92,-0.2 1.18,0.31 0.73,-0.09 0.08,-1 0.1,-1.43 0.14,-0.72 0.7,-1.47 0.38,-2.22 -0.12,-0.62 0.28,-1.24 0.24,-1.78 -0.96,-0.79 -2.46,-0.33 -3.22,-1.42 -0.37,-0.47 -1.1,-0.68 -1.44,-1.08 0.22,-1.13 1.41,-1.83 2.5,-1.7 0.39,-0.7 1.58,-0.82 1.76,-1.68 -0.35,-0.89 1.37,-1.42 0.54,-2.3 -0.48,-0.39 -1.16,-0.56 -1.77,-0.58 z","department-91":"m 320.25,153.32 c -0.58,0.51 -0.49,1.56 -1.65,1.15 -1.09,0.27 -1.38,1.31 -2.58,1.12 0.11,1.05 -0.02,2.93 -1.5,3.32 -1.61,-0.22 -1.97,1.45 -2.84,2.24 0.58,0.86 2.2,1.77 1.79,2.96 -1.64,0.36 -0.55,3.52 -2.55,3.44 -0.79,0.15 -3.39,-0.81 -2.43,0.71 1.02,0.53 2.16,1.11 0.51,1.61 -0.86,0.93 -0.75,2.41 -1.65,3.25 0.14,1.24 1.76,2.59 0.46,3.92 0.71,0.75 2.78,0.14 2.06,1.92 1.07,1.28 -0.54,2.43 0.19,3.85 0.08,0.92 -1.54,1.43 -0.06,2.16 1.67,1.02 3.4,-0.35 5.09,-0.44 0.79,-1.48 2.15,0.97 2.97,-0.44 -0.22,-1.14 1.58,-0.26 1.55,-1.49 0.43,-1.63 2.01,-0.33 2.65,0.23 -0.12,0.95 0.48,1.61 1.08,0.67 0.98,0.38 1.68,0 2.09,-1.03 1.19,-0.35 1.89,2.24 3.4,1.07 0.49,-0.63 -0.03,-1.81 1.37,-1.59 1.11,-0.46 0.12,-2.39 1.77,-2.49 0.99,-0.33 0.83,-1.84 2.2,-1.42 0.62,-0.47 2.15,-0.38 0.97,-1.39 -1.69,-0.77 -1.16,-2.85 -1,-4.34 0.63,-1.35 -0.62,-2.47 -0.1,-3.88 0.63,-1.33 0.75,-2.86 1.78,-3.97 -0.3,-0.67 -1.97,-1.85 -0.32,-2.16 1.12,-0.7 -0.81,-1.91 0.75,-2.52 1.46,0.63 1.85,-1.77 0.18,-1 -1.09,-0.51 -1.76,-1.71 -2.13,-2.88 -1.08,-0.05 -2.24,1 -2.98,0.91 -0.9,-0.56 -2.37,0.31 -3.35,-0.26 0.08,-0.81 -0.25,-1.5 -1.11,-1.09 -0.9,-1.03 -1.16,0.24 -1.83,0.61 -0.49,-0.5 -1.91,-0.11 -1.24,-1.2 -0.57,-1.05 -2.44,-1.17 -3.52,-1.52 z","department-45":"m 320.43,181.91 c -1.93,3.75 -6.85,2.12 -9.9,4.16 -1.95,2.44 0.54,6.83 -3.34,8.04 -0.15,3.54 -2.85,4.96 -6.06,5.24 -2.92,1.1 -6.42,-0.72 -8.49,2.39 -1.57,0.69 -5.05,0.19 -3.17,3.06 1.8,0.69 1.81,1.21 0.63,2.66 -1.69,2.43 4.05,3.22 1.25,6.02 -2.34,2.28 -0.38,4.59 0.09,7.04 1.76,1.74 4.95,-1.17 6.29,2.07 1.03,2.45 2.79,7.52 5.89,3.78 1.72,-3.2 5.45,1.69 8.15,-0.49 3.31,-0.11 8.68,-1.55 10.42,2.55 3,0.8 5.42,3.73 8.74,2.17 2.13,1.16 4.32,2.3 6.96,2.83 1.97,1.01 3.09,6.61 5.84,4.26 -0,-3.62 2.76,-1.68 4.41,-0.43 2.59,0.81 2.19,-2.3 2.2,-3.37 1.94,-0.4 6.46,-0.48 3.87,-3.36 0.34,-3.56 -2.17,-6.48 -4.41,-8.39 0.34,-3.92 6.29,-1.58 7.84,-4.63 1.26,-2.84 -2.35,-5.65 1.12,-7.77 4,-1.7 4.51,-6.41 1.51,-9.33 -2.16,-2.35 -2.73,-6.91 -6.87,-6.87 -1.86,0.13 -5.92,3.75 -6.03,-0.07 -2.63,1.14 -5.36,4.25 -8.22,1.8 -2.17,-0.24 -6.58,1.49 -7.34,0.08 2.67,-1.6 4.53,-6.27 0.45,-7.38 -2.86,-1.04 -1.71,-5.28 -5.43,-4.57 -1.53,-1.38 -4.89,2.52 -5.34,-1.02 -0.33,-0.2 -0.71,-0.32 -1.06,-0.48 z","department-41":"m 266.29,195.63 c -2.06,2.95 -7.43,0.3 -8.5,3.42 -1.9,1 -2.23,2.67 -0.22,3.62 0.19,3.26 0.26,5.82 -1.16,8.6 -4.07,-1.69 0.07,5.24 -3.5,5.91 -0.99,3.4 -6.81,3.06 -5.94,7 2.53,-0.22 6.07,1.21 9.36,0.87 2.33,-0.38 3.21,0.87 2.33,3.13 -0.6,3 2.08,2.14 3.12,0.52 2.68,-0.46 3,3.47 5.15,1.95 3.31,1.92 -0.52,5.3 2.24,7.5 2.87,2.54 0.27,5.57 1.51,8.9 -2.12,3.16 1.39,5.4 4.47,4.52 3.84,-0.06 2.69,7.22 7.32,5.56 1.87,-1.68 3.74,-3.34 6.46,-2 0.88,-3.66 5.55,-2.27 8.48,-2.51 2.88,0.7 4.8,4.16 8.08,3.56 2.17,-0.93 0.23,-5.2 4,-4.24 2.53,1.03 9.23,0.49 7.7,-3.24 -2.46,-1.98 -1.75,-6.33 1.55,-6.48 1.62,0.43 3.89,1.9 3.49,-1.2 0.4,-2.84 -2.55,-3.04 -1.96,-5.71 -0.66,-1.86 -5.5,-1.35 -2.85,-4.03 2.3,-0.71 6.5,-3.18 2.67,-5.2 -3.4,-0.6 -6.94,-0.37 -10.34,0.3 -2.3,0.89 -5.75,-3.14 -6.32,0.82 -3.73,2.59 -5.33,-2.8 -6.15,-5.3 -2.21,-2.59 -5.58,2.04 -6.3,-1.81 -0.8,-1.62 0.46,-2.55 -1.18,-3.79 1.15,-2.66 3.49,-5.56 -0.29,-7.32 0.2,-1.64 2.39,-4.45 -1.04,-3.94 -1.34,-0.61 -4.15,-1.65 -3.51,1.01 -2.97,0.88 -5.87,1.72 -8.76,0.26 -3.05,-0.48 -3.65,-3.81 -5.67,-5.58 -0.41,-3.18 -5.31,-0.86 -5.28,-3.08 0.5,-0.52 3.23,-1.6 1.02,-2.02 z","department-36":"m 292.75,252.32 c -0.22,1.96 -4.71,0.36 -3.09,3.11 -2.43,-0.72 -5.02,-1.03 -6.59,1.34 -2.69,0.52 -2.88,2.56 -1.18,4.37 -0.27,2.79 -3.21,4.19 -4.35,6.82 -1.44,3.03 -4.42,-1.33 -6.53,0.46 -3.18,0.46 -2.88,3.92 -3.68,6.03 -1.05,3.06 -0.95,6.5 -2.13,9.41 1.56,2.64 -2,4.95 -4.07,2.91 -3.4,-0.16 1.5,2.15 0.47,4.03 -1.36,3.26 -0.89,7.48 3.29,8.02 1.63,1.02 1.82,2.51 4.05,2.13 3.15,0.49 2.87,3.8 3.42,5.86 3.01,0.61 1.99,2.49 1.57,4.47 1.47,-0.43 1.97,1.71 3.8,0.38 1.85,0.34 2.68,-2.93 4.56,-0.65 1.37,1.89 2.88,2.94 4.14,0.35 1.12,-1.38 3.37,-4.31 4.14,-1.21 1.33,-0.81 3.52,-2.34 3.35,0.47 1.47,0.6 2.78,-3.28 3.75,-0.32 2.88,0.93 1.17,-5.91 4.57,-3.2 2.52,2.22 5.64,-0.66 8.59,0.82 2.5,1.04 7.68,2.32 7.46,-1.55 4.04,-2.02 -1.08,-5.26 0.41,-8.47 1.23,-2.22 0.34,-4.16 -1.32,-5.77 1.29,-2.28 -5.15,-3.19 -2.63,-5.41 3.7,-2.03 -4.12,-5.08 0.13,-6.45 0.15,-1.85 5.09,-3.55 1.3,-4.36 -3.14,-0.2 -1.71,-2.81 -0.75,-4.45 0.55,-3.16 -4.43,-3.11 -2.28,-6.14 0.71,-2.59 -1.84,-0.34 -2.34,-2.38 -2.14,-1.4 -4.51,2.29 -6.97,0.12 -1.89,-0.3 -3.87,-1.35 -1.68,-3.08 2.9,-1.88 1.03,-5.37 -2,-5.37 -1.57,-1.11 -2.26,-2.41 -4.45,-1.38 -1.18,-0.07 -1.7,-1.07 -2.98,-0.88 z","department-18":"m 323.87,229.07 c -2.35,0.13 -9.34,2.52 -5.77,4.83 3.63,-0.55 1.32,4.29 3.95,4.19 1.09,2.3 -0.24,7.95 -2.97,4.02 -2.53,0.84 -4.38,3.27 -2.23,5.76 1.94,2.35 0.54,4.87 -2.44,4.09 -2,0.97 -4.54,0.79 -6.09,-0.04 -3.26,0.8 0.48,4.8 -3.11,4.5 -2.3,-0.84 -0.78,2.92 -3.07,3.74 -2.13,3.21 4.52,3.78 6.54,2.69 2.19,-2.06 2.95,2.09 4.74,0.99 0.13,1.95 -1.78,4.73 1.47,5.08 2.39,1.98 -3.09,7.46 2.34,7.01 1.98,2.06 -4.63,4.48 -3.1,6.87 3.2,0.9 1.23,3.63 0.29,5.24 0.67,1.68 4.73,1.92 3.03,4.22 4.54,2.34 -0.65,6.57 2.07,9.85 1.42,2.13 -0.12,3.45 -1.35,4.8 0.97,3.01 6.38,2.02 6.61,-1.43 1.68,-1.43 2.79,-4.1 5.74,-3.71 2.61,-0.19 8.61,0.85 7.95,-3.28 -1.28,-1.97 -0.29,-4.02 -0.99,-5.76 1.11,-0.26 2.76,0.38 2.1,-1.66 2.77,0.03 3.8,-5.99 6.55,-2.38 4.02,-0.1 5.48,-4.84 9.43,-5.17 5.09,1.19 4.04,-5.2 3.91,-8.3 0.71,-2.84 1.27,-6.86 -1.24,-8.77 -0.49,-3.87 -0.61,-7.69 -2.18,-11.39 0.6,-4.25 -6.27,-4.24 -4.71,-8.26 2.14,-3.02 2.74,-7.4 -0.15,-10.16 -1.82,-0.35 -3.52,2.23 -5.06,-0.44 -2.66,-2.76 -1.08,3.94 -4.37,2.1 -2.06,-1.93 -3.82,-6.36 -7.51,-5.63 -1.58,-0.2 -3.8,-3.83 -5.86,-1.15 -1.78,-0.24 -2.82,-2.01 -4.51,-2.45 z","department-23":"m 301.06,306.59 c -2.18,-0.09 -0.48,5.24 -3.46,3.84 -1.17,-2.86 -2.05,0.79 -3.59,0.42 -1.13,-0.79 -0,-3.31 -1.73,-1.25 -1.24,0.55 -2.36,1.38 -2.36,-0.7 -1.54,-0.88 -2.18,2.59 -3.79,3.02 -0.98,0.84 -2.88,2.44 -0.45,2.76 0.29,1.69 -1.79,2.6 -0.56,4.04 -2.11,0.16 0.28,2.07 -1.84,2.35 -1.71,2.37 1.37,3.88 3.12,3.98 -0.87,1.98 3.03,2.32 1.47,4.18 0.81,1.46 2.68,2.16 2.08,4.13 0.59,1.41 -1.07,3.49 1.38,3.72 1.8,2.32 -4.92,2.97 -1.35,4.46 1.26,1.18 3.64,-2.06 4.21,0.35 0.31,1.19 0.8,2.47 -1.06,2.08 -1.31,1.78 2.07,3.75 3.94,3.02 1.79,0.62 3.88,-3.62 3.75,-0.15 0.21,1.27 2.24,2.17 2.82,1.56 1.47,1.11 3.83,3.39 1.98,4.77 0.21,1.09 -0.08,4.28 1.82,2.42 1.13,0.08 1.99,-1.04 3.2,-0.95 0.33,-2.76 3.75,-2.96 4.66,-0.46 1.35,-0.17 2.6,0.94 3.34,-0.03 1.49,1.32 3.49,2.43 4.82,3.44 0.2,2.09 4,0.09 3.38,-1.73 2.36,-0.58 5.37,1.33 6.38,-2.1 -1.37,-1.09 -2.62,-1.96 -3.06,-3.78 -1.55,-1.24 -1.59,-2.93 0.65,-2.9 0.54,-1.38 1.04,-2.45 2.73,-1.85 0.62,-1.79 3.09,-2.23 2.56,-4.51 0.36,-1.75 3.84,-1.53 2.12,-3.52 1.2,-2.89 -2.25,-4.14 -2.04,-6.95 -0.08,-2.21 1.4,-4.81 -1.02,-6.11 0.02,-2.5 -1.86,-3.91 -2.39,-6.08 -1.13,-1.7 -3.1,0.63 -2.89,-2.06 -0.52,-1.65 -1.48,-0.92 -2.17,-0.16 -2.13,-0.72 -3.54,-2.45 -1.59,-4.12 -3.08,0.61 -1.54,-4.21 -4.75,-3.19 -2.85,-0.75 -5.52,1.57 -8.05,0.18 -2.39,-0.94 -4.83,-0.98 -7.12,-1.05 -1.87,0.89 -3.74,0.71 -4.87,-1.08 l -0.28,-0.01 10e-6,10e-5 z", -"department-87":"m 281.04,310.22 c -0.51,0.05 -1.17,0.12 -1.14,0.78 -0.25,1 -1.41,1.2 -2.23,0.78 -0.91,-0.55 -1.46,0.97 -2.37,0.47 -0.41,-0.24 -0.15,-1.36 -0.88,-1.06 -0.15,0.36 -0.49,0.69 -0.87,0.31 -0.42,-0.56 -1.48,-0.46 -1.39,0.36 -0.29,0.51 -0.98,0.78 -0.95,1.46 -0.55,0.47 -1.05,-0.38 -1.56,-0.48 -1.22,-0.29 -2.83,0.17 -3.07,1.56 0.1,1.34 -1.16,2.36 -1.14,3.65 -1.12,-0.21 -2.43,-0.58 -3.48,-0.02 -0.57,-0.29 -1.43,-0.46 -1.55,0.41 -0.29,0.71 -1.42,0.57 -1.53,1.41 -0.45,0.32 -0.59,0.81 -0.41,1.28 -0.57,0.79 -2.14,-0.04 -2.35,1.21 -0.11,1.15 1.52,1.66 1.49,2.82 0.45,0.61 -0.22,1.55 0.51,2.07 0.3,0.78 -1.04,0.68 -1.22,1.21 0.1,0.73 1.16,1.32 0.57,2.1 -0.2,0.88 -0.43,1.82 -0.37,2.7 0.55,0.71 1.53,1.06 1.85,1.96 0.6,0.29 0.77,-1.11 1.42,-0.47 0.52,0.57 1.56,1 1.37,1.9 0.17,0.33 0.61,0.45 0.5,0.91 0.25,0.56 0.69,1.22 0.15,1.8 -0.4,0.33 -0.69,0.93 -0.79,1.33 -1.08,0.03 -1.62,1.44 -2.79,1.15 -0.74,0.09 -1.45,-0.83 -2.12,-0.41 -0.07,0.49 0.25,0.98 0.12,1.53 -0.13,0.54 0.63,1.01 0.41,1.49 -0.44,0.28 -0.27,0.69 -0.21,1.04 -0.23,1.22 -1.06,2.19 -1.62,3.25 -0.26,0.54 0.17,1.51 -0.39,1.85 -0.92,-0.16 -1.85,-1.49 -2.8,-0.78 -0.33,0.63 -0.36,1.44 0.03,2.02 -0.07,0.89 -1.28,0.52 -1.72,1.1 -0.39,0.39 -0.56,0.91 -1.06,1.2 -0.36,0.39 -0.09,1.12 -0.8,1.16 -0.53,0.7 0.73,1.29 1.05,1.78 1.12,0.48 2.72,-0.73 3.83,0.16 0.41,0.49 0.74,1.16 1.39,1.34 0.08,1.16 -0.5,2.25 -0.79,3.32 0.28,0.85 0.98,1.77 1.99,1.46 0.49,0.16 0.41,1.27 1.18,1.08 1.27,-0.42 1.02,-2.31 2.06,-2.9 0.55,0.27 0.58,1.69 1.39,1.27 0.5,-0.37 1.3,-0.2 1.85,-0.57 0.8,-0.12 1.59,0.64 2.37,0.08 1.2,-0.25 2.21,0.92 2.02,2.08 -0.09,0.92 0.66,1.5 1.35,1.88 0.41,0.32 0.61,1.42 1.32,0.86 0.49,-0.58 1.3,-0.68 1.86,-0.14 0.33,0.35 1.23,0.52 1.23,1.08 -0.69,0.87 -1.91,1.66 -1.92,2.87 0.34,0.84 1.26,0.35 1.87,0.21 0.56,0.26 0.58,0.97 0.93,1.33 0.84,-0.26 2.33,-0.56 2.49,0.7 0.19,0.63 0.87,0.23 0.77,-0.27 0.67,-0.31 0.04,-1.73 0.98,-1.81 0.57,0.07 0.21,-0.87 0.71,-0.67 0.95,0.21 1.74,1.1 2.68,1.15 0.76,-1.2 1.96,-2.1 2.52,-3.45 0.35,-0.6 1.02,-0.45 1.52,-0.23 0.86,-0.13 0.35,-1.3 0.75,-1.74 0.56,-0.03 0.98,-0.4 1.21,-0.85 0.63,0.05 0.58,1.16 1.29,0.85 0.37,-0.17 0.08,-0.99 0.68,-0.63 0.79,0.46 1.82,0.91 2.6,0.18 0.48,-0.4 0.34,-1.43 1.2,-1.3 1.25,0.1 2.05,-1.03 2.55,-1.98 0.73,-0.73 1.34,-1.82 2.34,-2.13 0.74,0.12 1.5,-0.28 1.86,-0.87 0.93,-0.17 1.13,-1.16 1.48,-1.85 0.37,-0.07 0.64,0.49 1.11,0.2 0.61,0.2 0.96,1.44 1.71,0.76 0.42,-0.5 1.1,0.52 1.33,-0.26 -0.03,-0.66 0.6,-0.53 1.03,-0.64 0.45,-0.2 0.16,-0.77 -0.12,-0.88 -0.02,-0.51 -0.84,-0.68 -0.83,-1.1 0.48,-0.35 0.14,-0.82 -0.21,-1.07 0.24,-0.6 0.41,-1.25 0.01,-1.83 -0.05,-0.55 1.2,0 0.86,-0.75 -0.45,-0.79 -0.3,-1.85 -1.25,-2.36 -0.47,-0.29 -0.97,-0.56 -1.37,-0.86 -0.42,0.28 -0.85,0.21 -1.19,-0.2 -0.57,-0.6 -1.85,-0.61 -1.72,-1.7 0.17,-0.43 0.1,-1.78 -0.62,-1.22 -0.17,0.44 -0.43,0.74 -0.89,0.86 -0.71,0.92 -2.04,0.24 -2.93,0.86 -0.49,0.28 -0.9,0.12 -1.15,-0.31 -0.68,-0.45 -1.84,-0.44 -2.21,-1.23 0.21,-0.61 -0.04,-1.24 -0.49,-1.61 0.25,-0.59 1.1,-0.28 1.36,-0.78 0.47,0.27 0.94,-0.21 0.51,-0.63 -0.6,-0.41 0.17,-1.39 -0.62,-1.58 -0.8,-0.29 -1.69,0.05 -2.03,0.8 -0.73,0.21 -1.51,-0.02 -1.97,-0.63 -0.45,-0.19 -1.31,-0.18 -0.96,-0.92 0.42,-1.4 2.91,-1.11 2.81,-2.77 -0.02,-0.79 -0.76,-1.12 -1.46,-1.02 -0.74,-0.49 -0.23,-1.62 0.01,-2.28 0.07,-0.84 -0.67,-1.62 -0.2,-2.45 -0.01,-0.95 -1.08,-1.21 -1.63,-1.75 -0.29,-0.44 -0.89,-1.12 -0.22,-1.54 0.59,-0.47 -0.22,-1.14 -0.7,-1.29 -0.29,-0.51 -0.96,-0.67 -1.32,-1.01 0.65,-0.4 0.49,-1.69 -0.42,-1.53 -0.93,0.06 -2.05,-0.18 -2.28,-1.2 -0.52,-0.39 -1.08,-1.35 -0.53,-1.94 0.31,-0.58 0.65,-1.21 1.38,-1.2 0.66,-0.47 -0.77,-0.84 -0.18,-1.34 0.43,-0.32 0.7,-0.79 0.48,-1.28 -0.02,-0.63 0.42,-1.1 0.86,-1.45 0.24,-0.83 0.18,-2.06 -0.9,-2.22 -0.7,-0.32 -0.2,-1.35 -0.83,-1.79 -0.85,-0.67 -1.34,-1.98 -2.45,-2.23 l -0.03,0.01 z","department-19":"m 313.35,352.38 c -1.86,0.13 -2.22,1.42 -2.96,2.7 -1.7,-0.45 -2.02,1.25 -3.41,1.04 0.1,2.65 -3.23,3.39 -4.97,1.84 -1.53,1.04 -2.82,2.64 -4.95,2.95 -1.42,1.63 -2.47,3.68 -4.63,4.05 -0.78,2.4 -3.28,0.32 -4.72,1.32 -0.15,-2.02 -2.14,1.24 -2.3,2.01 -1.89,-1.15 -2.49,2.34 -3.89,3.21 -1.28,0.53 -3.65,-2.27 -4.12,0.75 -1.21,1.38 2.97,2.44 0.01,3.18 -0.68,2.09 4.29,0.8 2.12,3.47 -1.5,0.61 -1.7,2.64 -3.24,3.07 -0.37,1.74 -0.74,3.8 1.62,4.02 0.64,1.56 -3.73,2.47 -1.44,3.5 2.52,-0.79 2.31,2.08 0.75,2.84 2.1,1.86 4.91,0.57 6.95,2.2 -1.97,1.83 -0.08,4.96 1.55,6.77 1.57,0.57 3.76,-3.02 4.88,-0.71 2.49,-1.36 5.15,0.9 6.6,2.82 0.89,1.66 2.62,2.3 3.51,3.98 0.84,-0.76 2.22,0.94 2.83,-0.95 1.95,-0.25 4.19,-4.21 5.12,-0.84 2.18,-2.19 5.35,-1.42 8,-1.89 1.92,-1.72 -3.18,-4.39 -0.13,-5.96 1.44,-0.92 3.38,-0.83 2.82,-3.25 -0.27,-1.27 3.56,-2.56 1.06,-3.66 -2.12,-2.49 1.31,-4.07 2.09,-6.03 1.52,-1.54 3.08,-3.21 4.69,-4.48 0.47,-1.62 0.7,-3.32 -0.12,-4.93 2.48,-0.49 5.95,4.22 7.88,1.25 -2.68,-1.36 -0.86,-4.01 -0.65,-6.27 0.65,-2.61 -0.12,-4.5 -1.81,-6.42 -0.37,-1.09 0.41,-2.79 1.03,-3.68 2.2,0.41 0.72,-2.34 1.39,-3.43 -0.08,-1.62 -1.77,-3.7 -2.72,-1.42 -1.49,2.45 -5.53,-1.84 -5.69,2.21 -1.2,1.04 -3.48,1.86 -3.57,-0.45 -2.4,-0.22 -2.77,-1.54 -4.33,-2.87 -0.57,1 -2.92,0.03 -3.77,-0.11 0.11,-0.94 -1.07,-1.2 -1.5,-1.83 z","department-15":"m 334.72,370.94 c -1.28,1.82 -1.55,4.58 0.43,5.9 -1.81,2.51 -4.37,0.04 -6.57,-1.17 -2.6,-1.06 0.22,2.76 -1.15,4.1 -0.02,1.86 -2.79,1.83 -3.22,3.86 -1.83,1.13 -3.51,3.59 -4.24,5.64 0.35,1.77 2.71,2.41 0.56,3.82 -1.95,0.87 -0.07,4.99 -2.89,4.16 -3.55,0.88 -0.82,4.03 -0.22,5.71 -0.43,1.88 -4.6,-0.03 -2.81,2.9 -0.04,1.62 2.21,2.57 0.46,3.91 0.13,3.08 4.46,4.57 3.6,7.69 -0.92,1.52 -0.85,3.76 -1.46,5.32 3.14,-0.54 0.43,4.14 3.05,4.94 0.99,0 -0.12,-3.03 2.23,-2.19 1.58,-0.83 4.01,-1.56 4.43,0.74 2.75,-0.34 6.48,0.85 7.12,-2.96 2.85,-1.73 1.71,-5.71 4.3,-7.33 -0.14,-2.33 1,-4.52 2.76,-5.39 0.66,-1.77 2.62,-2.11 3.53,-3.79 2.71,0.19 1.23,4.39 2.14,5.14 1.36,-1.39 4.37,-1.42 3.78,1.12 0.34,1.62 0.97,4.51 2.8,3.48 0.84,2.32 -0.52,5.11 1.01,7.65 0.5,1.69 1.9,2.45 2.17,0.12 0.35,-2.14 2.27,-2.85 1.68,-4.93 0.92,-1.91 0.56,-5.47 2.78,-5.83 -0.12,-1.77 1.65,-6.61 3.22,-3.03 1.26,2.36 3.56,-0.59 3.31,-2.05 0.59,-1.14 0.92,-2.65 1.95,-1.09 1.6,-1 4.29,-1.63 3.3,-3.81 1.88,-0.88 -1.23,-1.49 -1.31,-2.37 -2.47,-0.36 0.7,-4.16 -1.68,-4.86 0.04,-1.43 3.56,1.01 2.84,-0.76 -3.52,-0.25 -3.97,-3.78 -3.79,-6.72 -2.86,-0.25 -0.48,-5.68 -3.84,-4.2 -1,0.06 -0.92,-1.73 -2.53,-0.75 -1.83,0.05 -2.03,-0.79 -0.71,-1.66 -1.98,-0.82 1.54,-2.18 -0.51,-2.67 -1.63,1.16 -2.03,4.92 -4.8,3.76 -3.45,-0.77 -2.59,-5.89 -6.01,-5.8 -1.98,-1.95 -3.93,0.16 -6.22,-0.38 -1.82,0.76 -1.98,-2.81 -2.23,-3.3 -2,0.21 -2.37,-1.95 -4.2,-1.04 -0.86,-1.4 -2.85,0.57 -2.19,-1.65 -0.21,-0.26 -0.61,-0.13 -0.87,-0.22 z","department-30":"m 402.45,438.56 c -1.2,2.08 -2.01,3.99 -4.41,4.18 -0.91,2.13 4,4.03 1.37,6.32 -0.45,1.86 3.55,2.45 0.94,3.7 -0.76,1.99 0.11,3.59 0.97,5.15 -2.84,-2.29 -3.24,4.22 -6.65,2.09 -2.84,1.31 -5.14,-3.82 -7.86,-2.71 -1.9,-0.09 0.68,4.12 -2.36,3.87 -3.59,-0.21 -7.54,0.01 -9.81,-3.3 -3.88,-0.94 -1.76,4.82 -5.2,4.63 -0.2,1.99 1.7,1.26 2.49,1.37 0.64,2.2 6.26,1.35 5.12,4.79 -0.92,1.9 -5.78,3.67 -3.13,5.83 2.48,-0.75 3.13,1.64 2.84,3.17 1.93,-1.62 4.32,-2.9 4.52,0.69 1.23,0.34 3.7,1.07 1.85,-0.84 1.05,-1.8 2.07,-3.7 4.36,-3.11 -0.01,-3.76 5,-4.67 6.38,-1.85 2.32,1.17 -2.54,5.3 1.82,4.76 1.89,-0.76 3.45,-1.45 3.7,1.02 2.53,0.02 1.7,2.08 1.81,3.51 2.89,-1.55 4.4,2.61 6.33,3.87 2.8,0.69 3.15,4.82 3.78,7.11 -0.67,2.22 -2.4,3.52 -4.18,3.93 1.03,2.15 2.04,4.41 2.86,6.75 1.85,2.05 3.54,0.51 3.74,-1.66 2.08,-0.46 3.52,-1.72 3.36,-3.55 0.97,2.31 4.15,-0.86 5.01,-1.94 1.98,0.27 2.78,-2.49 0.23,-2.01 -0.41,-2.17 1.81,-4.53 3.24,-5.76 1.92,-1.29 6.52,3.05 5.01,-1.07 0.59,-2.7 2.29,-5.32 1.74,-7.95 1.25,-0.84 -1.73,-1.91 0.74,-2.53 2.32,-1.47 3.71,-3.79 6.04,-5.21 0.4,-1.57 0.8,-2.1 2,-2.68 -1.38,-1.85 -2.67,-6.36 -5.46,-5.62 -1.54,-2.69 0.63,-6.1 -0.98,-8.69 -2.44,0.11 -1.5,-4.81 -4.22,-4.74 -2.14,-0.69 -5.48,-5.75 -7.17,-2.57 0.92,4.08 -4.49,2.27 -2.46,-0.85 -1.91,-1.19 -5.21,1.01 -5.19,3.34 -1.4,3.16 -4.03,-1.21 -5.4,-1.88 -1.7,0.52 -1.47,-2.53 -3.73,-1.05 -1.71,1.8 -2.68,-0.11 -1.46,-1.57 -0.15,-1.56 -0.74,-2.62 0.35,-3.62 -1.57,-1 -0.67,-2.78 -2.91,-3.32 z","department-48":"m 373.48,404.94 c -1.47,0.89 -3.46,3.53 -5.12,1.98 -0.01,1.49 -1.57,1.93 -1.04,3.5 -1.43,1.81 -3.11,1.2 -3.88,-0.85 -2.88,-0.45 -1.07,4.27 -3.39,4.9 -1.4,1.6 -1.16,4.02 -1.76,5.9 0.45,1.49 -1.64,2.13 -1.6,3.92 -1.61,2.48 1.66,4.55 3.09,6.26 2.11,1.84 -1.38,5.67 2.08,6.72 1.92,1.77 1.3,4.27 0.7,6.32 -0.81,2.08 2.13,3.68 0.68,5.63 -1.2,1 -0.69,2.92 0.49,1.55 -0.34,2.49 4.49,1.53 3.22,4.04 -0.61,3.08 3.16,-0.47 4.71,0.57 2.33,-0.24 2.39,2.9 4.55,3.55 1.02,2.18 4.4,1.65 6.21,1.9 1.73,0.64 4.49,-0.1 3.28,-2.39 -0.17,-1.71 2.49,-2.35 3.14,-0.7 2.15,-0.14 3.4,3.16 5.36,2.3 1.4,-0.48 2.81,0.78 3.7,-1.01 1.48,-0.27 0.79,-2.83 2.56,-1.71 0.48,-1.13 -1.37,-1.78 -0.45,-3.23 -0.32,-1.45 2.55,-2.77 -0.12,-3.02 -0.49,-1.4 -1.27,-2.69 0.33,-3.79 -0.9,-1.25 -2.65,-3.18 -2.62,-4.42 1.46,-1.07 3.7,-0.89 3.95,-3.34 1.21,-1.8 0.03,-4.2 -0.54,-6.13 -0.14,-2.55 -3.1,-2.32 -3.01,-4.96 -0.51,-1.42 -0.74,-3.3 -1.23,-4.8 0.21,-0.99 -1.02,-2.2 -0.2,-3.43 -0.96,-0.75 -2.32,-0.83 -1.55,-2.36 -1.84,1.16 -1.86,-1.71 -3.45,-2.23 0.02,-3.18 -3.5,-0.79 -4.63,-2.01 2.18,-2.04 -3.67,-4.45 -2.82,-1.23 0.29,3.23 -3.33,0.7 -4.65,2.81 -2.12,0.38 -2.38,-3.83 -3.37,-5.42 -0.69,-1.57 0.03,-3.98 -2.15,-4.28 l -0.25,-0.51 -0.23,-0.01 -2.2e-4,-1e-4 z","department-63":"m 350.25,319.87 c -2.41,0.1 -1.39,6.08 -4.36,2.69 -2.2,-1.55 -1.13,2.91 -3.36,2.6 -0.99,2.15 -2.4,5.06 -4.99,2.48 -3.53,1.71 0.74,5.9 1.02,8.31 0.33,2.26 -0.13,3.09 -1.85,4.34 -0.59,3.07 -2.87,5.1 -5.46,5.93 -0.78,1.08 -3.3,2.29 -0.7,4.14 1.84,2.94 6.68,6.33 3.76,10.01 -3.59,1.58 -0.37,5.2 0.63,7.47 -1.63,3.1 2.57,5.33 4.8,4.69 1.04,1.88 3.32,0.49 2.64,2.92 1.95,3.55 6.09,-0.43 8.67,2.01 3.48,0.74 2.44,6.76 6.82,5.67 2.39,-1.04 2.55,-4.68 5.97,-4.03 2.84,-0.11 5.33,-4.21 7.45,-3.45 1.17,-0.15 2.17,-1.54 3.06,0.31 2.88,1.39 5.17,-2.92 7.03,0.16 3.24,-0.64 2.05,6.51 5.21,2.85 1.13,-3.37 5.41,3.07 6.68,-1.35 0.83,-2.19 5.07,4.34 4.28,-0.59 0.72,-2.92 5.73,-4.1 3.45,-7.91 -0.98,-3.57 -2.63,-6.42 -6.17,-8.13 -2.69,-2.1 -1.82,-6.45 -4.74,-8.34 -0.45,-1.7 -2.19,-2.8 -0.35,-4.4 -0.69,-2.91 2.62,-4.84 -0.62,-6.96 -2.59,-1.57 -3.98,-4.12 -5.91,-6.12 -2.16,0.37 -6.24,1.62 -5.45,-1.98 -1.98,-2.68 -5.33,1.55 -7.73,-0.76 -2.66,-0.65 -5.11,0.01 -7.56,-0.72 -1.51,-1.52 -2.18,-2.56 -4.49,-2.07 -3.09,-0.49 -3.15,-3.91 -5.15,-5.29 0.27,-2.13 2.01,-5.11 -1.71,-4.35 l -0.47,-0.05 -0.43,-0.12 0,0 z","department-42":"m 397.37,318.49 c -1.6,0.83 -3.4,1.29 -4.64,2.21 -1.3,0.59 1.02,2.59 0.48,3.98 0.61,1.85 -0.41,4.23 1.11,6.23 -1.61,2.5 2.37,7.25 -2.15,7.3 -1.09,-0.11 -1.49,1.09 -2.88,0.34 -2.32,2.56 2.22,3.36 1.74,5.81 -1.98,1.61 -0.24,4.65 -2.31,6.15 1.69,0.49 1.3,2.13 2.33,2.91 2.23,1.34 1.14,4.92 3.25,6.83 1.78,1.97 5.01,2.91 6.17,5.68 -1.24,2.45 2.85,3.93 0.67,5.95 0.89,3.06 -5.47,3.2 -3.23,7.04 0.42,3.41 2.25,-3.4 4.17,-0.43 0.87,1.44 1.19,2.02 2.38,0.77 1.23,1.18 1.39,0.75 2.25,-0.33 1.05,-0.89 3.38,0.13 2.65,-1.8 2.25,-0.56 4.93,-0.17 6.2,1.72 1.74,-1.96 5.45,1.48 2.47,2.65 0.55,1.23 1.98,1.3 0.84,2.91 0.86,2.54 3.62,-1.67 4.48,1.3 1.58,2.36 4.9,0.89 6.79,-0.08 -1.25,-1.91 1.2,-3.4 2.26,-5.02 1.49,-1.32 5.89,-1.48 4.47,-4.32 -0.52,-1.74 0.97,-3.48 -0.58,-5.25 -0.48,-1.69 -3.61,1.7 -3.93,-1.3 0.42,-2.1 -0.24,-3.68 -1.93,-4.86 -1.43,0.06 -2.67,-1.02 -4.29,-0.14 -2.32,-0.62 -2.91,-2.86 -5.1,-4.24 -1.42,-1.8 -2.51,-3.8 -0.78,-6.03 1.82,-2.31 -3.43,-0.74 -1.14,-3.43 0.94,-1.31 1.04,-3.98 1.15,-5.42 -2.5,-0.01 -3.12,-2.67 -2.32,-4.33 -1.63,-1.26 -2.43,-3.07 -4.07,-4.21 0.9,-0.54 3.97,0.36 2.35,-1.72 -1.31,0.09 -3.3,-2.79 -0.85,-2.47 1.97,-1.74 0.65,-5.53 4.11,-6 0.97,-0.45 2.45,1.37 2.78,-0.77 -0.25,-1.57 -2.38,-2.12 -0.65,-3.5 -1.51,-1.51 -2.16,1.22 -2.41,1.83 -1.97,-0.74 -4.16,3.26 -5.16,1 1.12,-2.05 -1.54,-0.14 -2.23,-1.49 -1.1,1.9 -3.25,0.89 -4.63,-0.3 -2.08,0.61 -5.43,3.53 -6.14,-0.27 -1.61,-0.39 -4.74,-0.44 -2.93,-2.93 0.29,-0.63 0.34,-2.13 -0.72,-1.99 z","department-69":"m 433.73,316.51 c -1.23,0.46 -2.5,0.15 -2.78,2.07 -0.74,1.45 -2.37,-0.51 -2.67,-1.28 -0.69,1.49 -2.76,2.38 -3.71,0.45 -1.68,-1.33 -4.39,-0.82 -4.01,1.84 -0.71,1.65 0.63,2.41 1.38,3.48 -2.55,0.77 0.51,1.73 0.61,2.71 -0.41,1.66 -1.38,2.06 -2.7,1.09 -2.04,0.63 -3.43,2.17 -3.25,4.46 0.34,2.11 -3.89,1.45 -1.52,3.28 0.64,0.85 2.57,0.6 1.5,2.34 -0.59,0.49 -3.83,-0.49 -1.93,0.9 1.83,0.38 1.7,2.77 3.5,3.41 0.3,1.24 -1.23,2.13 0.17,3.34 0.85,1.23 3.47,0.4 1.96,2.6 -0.03,1.87 -0.27,3.49 -1.48,4.83 0.06,1.49 3.29,0.29 1.61,2.31 -1.06,1.85 -1.32,4.02 0.45,5.41 1.27,1.35 2.68,3.31 4.18,4.13 1.51,1.5 3.36,-0.41 4.88,1.05 1.7,-0.73 1.49,2.06 2.91,2.19 -1.19,1.71 0.21,5.2 2.42,3.21 1.24,-1.16 2.04,4.15 2.96,1.45 1.23,-1.41 3.83,-2.33 3.98,-4.32 -1.76,-0.7 -2.47,-2.54 -4.09,-3.51 1.84,-0.94 3.53,1.28 4.58,-0.77 1.51,-1.17 4.45,-0.14 5.27,-1.51 0.95,-0.25 2.74,0.97 2.03,-1.03 1.24,-1.85 2.79,-4.63 5.26,-4.54 0.24,-2.22 -3.33,-1.77 -3.23,-3.97 -1.59,-0.5 -1.14,-2.19 0.43,-1.77 0.7,-2.69 -4,-0.18 -5.55,-0.99 -1.61,0.21 -2.66,0.21 -2.4,-1.73 -0.63,-1.95 -1.32,-4.61 -3.64,-4.95 -0.96,0.68 -1.86,1.05 -1.38,-0.57 -0.83,-1.37 -2.55,-0.91 -3.49,-1.92 2.14,-2.03 -0.39,-5.26 0.95,-7.43 1.04,-0.99 -1.1,-2.32 0.59,-3.24 1.49,-1.45 2.32,-4.9 -0.84,-4.45 -2.61,-1.01 0.89,-5.07 -2.78,-5.24 -1.21,-1.33 2.19,-1.14 0.43,-2.68 -0.12,-0.26 -0.3,-0.58 -0.61,-0.66 z","department-43":"m 379.31,374.73 c -1.62,2.39 -4.9,1.8 -6.71,0.33 -0.7,1.72 -0.87,1.21 -1.91,0.1 -0.8,1.98 -3.58,1.56 -4.38,3.23 -1.25,1.09 -2.57,1.35 -4.33,1.17 0.74,1.5 -1.58,1.78 -0.04,2.79 -2.08,1.77 1.79,1.15 2.36,1.2 -0.13,1.97 3.13,-0.54 2.89,1.98 -0.29,1.8 0.97,2.96 2.14,3.73 -0.86,2.28 -0.05,5.34 2.48,5.9 2.93,0.43 -0.37,2.07 -1.36,0.74 -1.49,0.56 1.82,1.51 0.26,2.94 -1.01,2.64 2.59,2.31 2.97,4.1 -2.04,1.24 0.26,1.73 1.03,2.74 1.8,0.69 0.7,3.92 2.11,5.44 0.56,1.74 1.53,5.67 3.68,3.09 2.13,0.18 4,-0.58 3.52,-3.06 1.72,-1.57 4.47,0.99 3.25,2.73 2.03,-0.35 4.24,-0.91 4.56,1.81 1.6,0.42 1.42,3.2 3.32,1.95 -0.31,0.86 -0.01,2.7 1.4,1.48 3.08,-0.04 2.22,-4.19 4.35,-5.07 0.8,1.72 0.74,-0.65 2.16,-0.3 0.91,-0.43 0.22,-3.47 2.51,-2.52 2.14,-0.66 5.33,0.63 5.55,-2.64 1.54,-1.36 1.15,-4.48 3.81,-3.54 1.57,0.05 2.24,-1.12 0.99,-2.15 -1.14,-2.94 5.69,-1.67 3.23,-3.83 -1.6,-1.11 -0.01,-3.44 1.47,-3.61 -1.01,-0.84 -1.65,-2.84 0.52,-2.06 0.75,0.25 1.93,2.57 1.79,0.63 -0.57,-2.5 2.93,-4.77 1.26,-7.19 -1.2,-1.98 -2.64,-2.48 -4.48,-1.26 -2.08,-0.82 0.53,-3 -1.95,-3.68 1.6,-1.09 1.44,-3.36 -0.89,-3.47 -2.17,2.19 -2.9,-2.58 -5.24,-0.98 -1.45,-1.18 -2.23,0.2 -2.36,1.14 -1.72,-0.24 -2.79,0.8 -3.72,1.87 -0.74,-1.86 -1.9,-0.59 -2.28,0.4 -0.52,-2.16 -2.78,-4.05 -4.23,-1.53 -0.3,1.52 -1.03,1.38 -1.49,0.05 -2.13,0.67 -3.37,-3.95 -4.67,-1.3 0.12,2.86 -4.25,0.82 -5.13,-0.4 -0.84,1.48 -2.99,4.23 -4.08,1.09 -0.06,-2.97 -3.34,-1.73 -4.39,-4.01 z","department-07":"m 436.62,378.68 c -2.11,1.19 -5.05,1.82 -5.73,4.31 -0.61,0.74 -1.7,1.47 -0.63,2.83 -1.48,1.55 -5.39,0.21 -5.65,3.05 -0.4,2.17 -2.13,4.1 -1.51,6.11 -0.82,1.35 -2.2,-3.55 -3.34,-0.83 2.87,1.6 -1.37,1.64 -1.06,3.7 -0.07,1.01 2.58,2.11 0.3,2.78 -2.43,-0.04 -3.73,1.92 -2.22,3.92 -1.62,1.35 -4.39,-0.37 -4.36,2.53 -1.51,1.8 -1.89,5.12 -5.04,3.9 -1.64,0.68 -4.72,-0.35 -3.54,2.75 -1.69,0.44 -2.07,1.93 -3.57,0.7 -0.65,2.39 -1.67,4.38 -3.7,5.18 0.05,1.23 -0.23,2.66 0.56,3.58 -0.09,2.42 0.91,5.06 1.8,7.31 3.3,1.24 2.04,5.97 4.07,8.24 1.96,0.49 1.37,2.56 2.59,3.64 -1.74,0.94 0.2,3.57 -1,5.13 1.45,0.08 4.13,-2.2 4.71,0.49 2.27,-0.88 3.84,4.84 5.98,2.4 0.11,-2.69 3.06,-5.02 5.54,-4.01 -0.84,1.71 0.49,4.93 2.22,2.69 -1.12,-4.19 4.37,-2.87 5.2,-0.35 2.07,1.28 5.06,2.67 3.99,-1.18 -0.44,-2.49 0.5,-4.84 0.92,-7.23 2.57,-1.67 0.05,-4.72 1.41,-6.94 -1.34,-2.75 2.73,-3.36 2.63,-6.07 2.5,-3.08 -0.98,-6.81 0.47,-10.07 2,-1.59 2.83,-4.11 4.16,-6.22 -0.81,-2.28 2.55,-4.4 -0.11,-6.44 -1.37,-1.98 -0.41,-4.12 -0.17,-5.92 -1.82,-0.69 -0.96,-3.19 -2.25,-4.49 1.8,-2.26 -0.83,-5.08 0.05,-7.93 1.49,-3.08 -3.02,-4.17 -1.77,-7.12 l -0.36,-0.33 -0.59,-0.1 0,0 z","department-26":"m 448.07,380.12 c -2.89,1.17 -5.09,3.5 -8.19,2.69 -0.39,2.66 -1.05,6.79 0.49,9.42 -1.96,1.97 0.32,3.64 0.34,5.76 2.35,1.37 -0.99,4.81 1.33,6.93 2.06,2.38 -0.62,5.13 -0.81,7.77 -1.22,2.58 -4.32,4.41 -3.69,7.71 1.66,3.46 0.06,6.59 -1.3,9.7 -3.02,0.93 -0.83,4.24 -2.03,6.3 0.95,3.33 -2.55,6.12 -1.92,9.81 1.2,3.03 7.51,-0.99 7.1,4.18 0.14,2.04 0.67,4.67 2.58,1.79 2.97,-0.92 6.04,-2.27 9.06,-3.52 1.12,3.67 4.14,-0.81 5.13,-0.14 -0.85,1.68 -0.59,3.54 -0.5,5.19 1.36,1.14 3.35,1.14 4.16,-0.1 1.72,1.86 4.28,0.89 5.95,1.95 0.03,1.94 0.09,3.52 2.41,3.44 1.06,4.04 4.77,0.96 6.47,-0.43 -1.58,-2.47 1.9,-2.75 3,-1.1 1.64,-1.37 2.06,-2.86 1.41,-5.21 1.53,-2.36 -2.87,-0.24 -1.73,-2.96 -1.59,-0.67 -0.77,-1.18 -0.59,-2.32 -2.51,0.48 -4.35,-1.04 -6.35,-0.89 -1.23,-1.45 -2.87,-1.53 -2.12,-3.69 -1.62,-1.67 -0.01,-2.82 1.69,-1.61 2.12,-0.83 -1.87,-1.85 -0.65,-3.64 -0.28,-2.93 4.33,0.48 6.05,0.59 1.73,0.39 1.15,-2.66 3.01,-2.35 -1.71,-1.67 -3.84,-2.97 -1.6,-5.43 1.79,-1.45 -0.55,-5.71 2.99,-3.98 1.94,0.82 3.33,-0.86 4.9,-1.06 1.29,-0.88 2.08,-3.19 -0.35,-2.44 -2.24,0.57 -3.91,-2.09 -6.41,-1.58 -1.16,-1.43 -2.84,-3.52 -4.34,-3.81 0.14,1.78 -6.09,-0.53 -3.44,-2.33 -1.37,-2.79 0.85,-6.84 0.11,-10.1 0.96,-2.47 -1.42,-5.35 0.09,-7.37 -2.07,0.93 -4.59,4.84 -6.88,1.6 -1.84,0.62 -4.04,-0.31 -5.88,-1.61 -1.29,0.02 -2.1,2.02 -3.13,0.34 2.95,-1.62 2.73,-5.57 1.54,-8.29 2.1,-1.71 -0.25,-3.63 -2.12,-2.9 0.27,-1.74 0.99,-4.37 -1.59,-2.47 -1.31,0.06 -1.04,-2.86 -3.02,-2.37 -0.42,-0.45 -0.36,-1.52 -1.19,-1.46 z m -1.27,60.35 c 2.68,0.18 1.93,3.2 4.79,3.14 -1.88,1.51 -2.98,3.63 -4.06,5.91 -1.76,-1.35 -5.66,0.15 -4.33,-3.15 -1.66,-0.66 1.47,-2.81 1.37,-4.36 0.67,-0.62 1.73,-0.72 2.23,-1.54 z","department-84":"m 446.86,440.69 c -1.95,0.68 -2.59,2.23 -3.24,3.95 -1.54,1.08 0.24,1.84 -0.38,3.25 0.79,1.16 2.95,0.74 4.3,1.12 1.33,-1.76 1.41,-4.26 3.76,-4.92 -0.23,-0.92 -2.69,-0.73 -2.57,-2.42 -0.66,-0.27 -1.12,-0.97 -1.86,-0.99 z m -10.7,6.69 c -1.75,0.63 -4.36,-0.72 -3.75,2.23 -0.47,1.96 1.22,3.5 1.32,5.13 2.22,-0.26 1.8,3.29 1.6,4.89 -0.71,1.78 -0.16,4.41 1.97,3.57 1.39,1.79 2.8,3.83 3.94,5.76 0.11,1.52 -2.28,0.28 -1.54,2.26 -0.27,1.54 -4.74,2.54 -1.78,2.92 1.98,0.36 4.26,0.33 5.81,1.82 2.69,0.61 4.43,2.7 6.08,4.74 0.55,2.14 2.45,3.17 4.31,4.09 2.3,2.43 5.12,0.03 7.83,1.23 2.38,1.21 4.48,2.96 6.96,4.03 2.69,1.26 6.11,1.9 8.79,0.34 1.35,-1.61 3.7,-0.97 4.73,-3.09 0.97,-1.51 -1.94,-2.24 -1.96,-3.86 -1.56,-1.86 -3.42,-4.41 -6.24,-2.8 -2.07,0.95 -0.48,-2.95 0.61,-3.43 0.51,-1.33 1.55,-2.66 -0.1,-3.23 -0.29,-2.08 -4.3,-0.54 -3.06,-3.3 0.45,-2.01 1.86,-3.87 1.45,-6.01 -1.1,0.12 -2.63,0.07 -2.14,-1.74 0.53,-2.35 -2.66,-1.28 -2.71,-3.51 -1.05,-0.88 -3.35,-0.4 -2.48,-2.73 -0.01,-3.12 -4.03,-0.26 -5.3,-2.66 -1.51,-1.06 -0.98,1.74 -2.66,0.68 -2.01,-0.15 -3.06,-1.35 -2.27,-3.12 -1.69,-0.64 1.81,-3.73 -0.28,-2.95 -1.07,2.14 -3.56,1.91 -4.6,0.21 -2.41,0.78 -4.55,2.65 -7.11,2.79 -1.53,-0.33 -4,4.19 -3.94,0.55 -0.37,-2.16 -0.51,-5.06 -3.51,-4.81 z","department-13":"m 436.6,474.08 c -0.74,1.85 -4.74,2.73 -4.06,4.51 1.26,0.66 -1.41,1.72 -0.12,3.06 0.08,2.7 -2.74,5.11 -1.37,7.86 -2.28,-0.28 -6.4,-2.34 -7.04,1.21 -2.02,1.17 -2.34,4.33 0.25,4.07 -0.26,2.18 -2.99,1.15 -3.24,3.2 -2.53,0.88 -3.65,1.48 -5.33,3.13 -3.12,0.45 -3.32,4.69 0.25,3.69 2.78,0.47 5.55,1.05 8.35,0.35 2.37,-0.45 7.29,1.42 4.55,4.28 -0.6,3.55 5.03,2.05 7.33,2.58 1.71,0.43 5.71,0.01 2.7,-2.11 -3.88,-1.35 -2.85,-5.16 -3.05,-8.31 -0.04,-1.21 -2.55,-5.59 -0.42,-2.89 1.89,2.36 1,5.34 0.95,8.05 0.88,2.13 3.62,3.05 5.46,4.22 1.53,-0.81 -2.25,-2.45 0.5,-3.11 1.91,-1.46 4.03,-0.52 5.49,0.58 3.35,0.39 4.55,-4.15 1.3,-5.2 -0.68,-1.48 -0.16,-6.09 1.79,-3.06 2.23,-0.56 2.91,0.56 2.79,2.29 1.26,2.1 3.09,1.09 4.71,0.38 1.06,3.09 -3.48,5.94 -6.44,5.14 -4.78,-0.48 -3.49,6.19 0.68,5.18 2.9,-0.06 6.07,0.58 8.6,-1.26 3.09,-1.75 3.91,2.83 3.27,4.72 2.03,1.28 -2.35,4.61 1.58,4.55 2.59,-0.26 5.17,0.78 7.33,0.32 0.97,2.95 3.72,1.97 5.67,1.14 -0.33,-3.01 1.95,-4.41 4.07,-5.87 -0.58,-2.14 -2.28,-2.58 -3.96,-3.03 2.56,-1.22 -1.49,-6.49 2.6,-5.65 1.54,0.73 3.39,-0.95 1.08,-1.75 -1.32,-1.96 -3.23,-3.39 -1.84,-5.73 2.26,-2.81 -4.73,-2.76 -1.41,-4.42 -0.82,-3.37 2.37,-4.88 5.13,-5.19 1.46,-1.69 -2.03,-5.66 -3.21,-2.42 -1.87,0.81 -3.79,1.87 -5.79,2.74 -4.96,0.73 -9.29,-2.44 -13.26,-4.94 -3.21,-1.31 -6.53,0.84 -9.27,-1.96 -2.79,-0.81 -2.96,-3.66 -4.98,-5.35 -1.7,-2.34 -4.64,-3.03 -7.08,-4.31 -1.52,-0.14 -3,-0.57 -4.52,-0.71 z","department-83":"m 517.2,482.16 c -2.21,0.45 -4.51,0.15 -4.56,3.03 -1.71,2.89 -5.34,-0.75 -6.7,-2.47 -3.07,-2.54 -3.41,4.73 -6.6,3.29 -1.58,1.5 -2.96,3.5 -4.46,4.67 -1.25,-1.47 -1.71,-3.25 -3.55,-3.95 0.03,-1.86 -1.87,-1.86 -1.91,-0.09 -1.33,1.02 -2.66,0.95 -3.16,-0.75 -1.91,-1.9 -4.18,0.89 -2.09,2.04 0.53,1.23 1.97,1.94 0.53,3.38 -2.84,-0.21 -5.92,2 -4.84,5.1 -3.44,1.27 3.35,1.25 1.35,3.57 -0.22,1.94 -1.24,3.31 0.74,4.69 0.22,1.73 4.1,2.93 0.81,3.75 -2.63,-1.28 -3.72,1.11 -2.27,3.16 -1.33,1.63 -0.65,2.88 1.29,2.7 1.09,1.33 2.34,3.31 -0.22,3.83 -2.89,1.3 -2.33,4.54 -1.48,6.82 1.05,1.11 2.71,1.01 3.71,1.52 -0.45,1.28 3.17,1.21 0.61,2.02 -2.2,1.64 1.53,2.03 2.31,3.24 1.87,0.49 2.01,-2.69 4.02,-1.64 0.25,-1.17 -3.62,-2.32 -0.77,-2.94 1.5,-0.75 1.25,1.72 3.11,0.9 1.98,-0.44 2.88,1.82 4.97,0.72 2.49,0.17 1.79,3.18 -0.25,3.1 1.03,0.17 3.75,1.02 4.22,-0.22 -1.87,-1.01 -0.43,-5.47 2.18,-4.51 2.27,-1.02 4.3,0.74 5.47,2.2 2.95,0.7 -0.7,-3.95 2.56,-4.14 1.82,-1.17 4.32,-0.11 5.81,-1.82 1.19,-1.87 3.53,-0.69 3.91,0.87 1.83,-0.26 1.02,-2.97 3.25,-2.97 -1.94,-1.52 0.52,-2.56 0.71,-4.09 -0.88,-1.35 -6.14,0.84 -4.2,-1.29 1.98,-0.49 3.13,-1.3 3.41,-3.27 3.09,-0.38 1.58,-4.33 3.42,-5.76 2.02,1.51 4.49,0.53 6.29,-0.38 1.97,-1.45 2.07,-3.69 -0.21,-4.86 0.39,-1.48 -0.82,-2.76 0.73,-4.13 0.32,-1.33 0.43,-3.31 -1.68,-2.51 -2.08,-0.91 -4.86,-2.77 -4.6,-5.2 1.21,-2.45 -1.26,-3.59 -2.82,-4.44 -1.3,-0.4 -2.5,0.43 -2.84,-1.45 -0.36,-2.95 -3.06,-1.75 -4.46,-0.37 0.04,-0.84 -0.83,-2.43 -1.72,-1.38 z","department-06":"m 534.65,445.17 c -2.26,1.07 -5.06,2.58 -4.36,5.66 -3,-0.21 -3.04,3.43 -4.06,5.54 -1.08,2.46 0.95,4.86 2.25,6.92 -1.14,3.22 2.36,4.62 4.05,6.69 0.63,2.61 3.53,3.37 4.77,5.63 -2.57,2.29 -4.92,-3.17 -6.86,-0.03 -0.74,2.32 -3.13,1.4 -4.56,1.36 1.15,1.61 -2.67,2.88 0.34,3.69 1.19,1.89 -4.95,1.17 -2.32,3.78 0.53,1.35 2.49,-0.04 3.3,1.63 2.89,-0.16 1.89,3.58 2.03,5.2 1.45,1.97 3.65,3.89 6.12,3.69 1.22,2.02 -1.58,4.04 -0.48,6.02 -0.26,2.6 3.76,2.43 2.74,-0.52 1.75,-2.03 4.78,-1.82 7.05,-2.83 2.15,2.34 0.79,-2.94 1.42,-4.1 0.35,-2.64 3.85,-1.42 4.44,-3.92 1.43,-0.64 4.04,-1.22 4.41,0.38 0.69,-1.18 0.32,-2.51 2.45,-2.28 -0.13,-1.76 1.58,-4.07 3.07,-2.16 1.7,0.06 1.19,-2.66 3.34,-2.27 -0.27,-2.4 -3,-5.81 0.3,-7.3 1.54,-1.45 0.99,-4.2 3.51,-4.76 2.78,-1.39 1.89,-4.43 4.17,-6.12 1.59,-2.77 -3.27,-4.24 -1.5,-7.3 -1.21,-2.71 -2.61,1.55 -4.47,0.73 -2.22,0.84 -4.68,1.32 -6.76,2.38 -2.04,0.2 -3.62,-0.51 -4.81,-1.86 -2.43,0.52 -3.44,-1.96 -5.53,-2.49 -1.15,-2.34 -3.58,-0.83 -4.96,-2.82 -1.54,-1.59 -4.78,0.61 -4.95,-2.66 -1.4,-1.9 -2.37,-3.95 -3.93,-5.85 l -0.23,-0.02 -1.8e-4,10e-5 z","department-04":"m 536.03,425.47 c -1.91,1.96 -3.88,3.46 -6.49,4.44 -1.02,2.88 -4.75,3.12 -5.32,6.34 -1.11,1.83 -1.21,3.9 -4.02,3.07 -3.01,-0.06 -6.66,-0.3 -8.11,-3.08 -0.64,-1.8 -3.43,-1.98 -2.19,0.22 -0.26,3.25 -2.7,-0.14 -4.23,1.68 -1.44,0.61 2.06,5.8 -1.43,5.09 -2.1,-2.16 -2.71,-5.63 -6.09,-5.69 -0.87,3.33 -6.54,3.63 -7.12,7.81 -0.96,1.13 -2.01,2.66 -0.4,3.1 -0.61,1.4 0.72,5.52 -1.66,2.94 -0.44,-1.65 -2.49,-3.59 -2.83,-0.6 1.02,1.86 2.62,3.82 3.95,5.12 -2.91,0.83 -6.3,-2.29 -9.28,0.12 -0.78,0.38 -3.94,0.37 -2.37,1.8 0.52,0.59 -1.17,0.62 -1.27,-0.25 -1.21,-2.36 -3.58,-0.6 -2.43,1.22 -2.05,0.82 -5.12,3.55 -2.92,5.69 3.34,-0.23 0.15,4.71 -0.09,6.55 -0.21,2.32 3.26,0.85 3.55,3.17 2.24,1.52 -3.59,5.18 -1.33,6.48 2.81,-2.13 5.06,0.73 6.7,2.59 0.57,1.46 2.26,4.38 3.61,1.7 2.13,0.13 4.41,4.24 5.38,0.42 1.94,-1.62 1.55,2.48 3.59,2.29 0.43,1.7 2.31,4.04 2.93,1.23 2.03,-0.76 2.24,-3.96 4.52,-2.9 1.73,-1.32 3.93,-6.5 5.92,-2.58 1.76,2.61 6.67,4.01 6.46,-0.53 1.66,-0.48 3.88,-1.21 5.41,-0.9 0.99,2.9 3.19,-2.27 4.59,0.48 1.62,-0.3 5.25,-1.56 1.66,-2.44 0.5,-1.52 2.15,-2.44 0.07,-3.65 2.45,0.82 5.17,0.99 6.43,-1.88 1.98,-0.91 4.27,3.34 5.6,0.53 -2.39,-1.94 -3.94,-3.66 -5.54,-6.13 -1.97,-1.55 -3.7,-3.16 -3.01,-5.85 -1.63,-2.1 -3.46,-4.86 -1.89,-7.35 0.29,-2.57 2.02,-4.78 3.68,-5.75 -0.2,-4 5.64,-3.6 4.5,-7.78 -0.28,-2.01 3.78,-1.57 1.15,-3.33 -2.21,-1.59 -4,-5.51 -0.76,-7.08 1.56,-1.02 4.77,-6.03 1.11,-6.32 z","department-05":"m 505.98,394.66 c -0.92,0.25 -1.63,1.24 -1.1,2.16 0.19,0.48 0.58,1.51 -0.28,1.51 -1.03,0.5 -0.62,1.96 -1.08,2.79 -0.5,0.85 0.81,1.35 1.44,1.52 1.22,0.46 2.5,-0.16 3.7,-0.25 0.54,0.61 -0.39,1.36 0.2,1.99 0.46,0.55 -0.24,1.49 0.61,1.76 1.28,0.11 1.04,1.22 0.99,2.19 0.04,1.33 -0.36,2.63 -0.12,3.94 -0.53,0.79 -1.69,0.39 -2,-0.4 -0.51,-1.19 -2.09,-0.47 -2.63,0.32 -1,0.97 -2.33,-0.4 -3.46,0.21 -0.85,0.38 -1.73,-1.03 -2.42,-0.12 -0.98,1 -2.08,1.88 -3.19,2.74 -0.6,-0.52 -1.36,-2.29 -1.99,-0.92 -0.19,0.45 -0.47,0.63 -0.95,0.63 -0.5,0.26 -1.64,0.37 -1.59,1.05 0.28,0.44 1.46,0.83 1.02,1.47 -0.54,0.3 -1.13,0.65 -1.29,1.26 -0.7,-0.05 -1.3,0.89 -1.97,0.42 -0.72,-0.21 -1.09,0.98 -1.85,0.43 -0.58,0.09 -1.28,-0.82 -1.74,-0.36 0.25,1.1 -0.94,2.04 -0.76,3.1 0.52,0.18 0.81,0.66 0.78,1.23 -0.53,0.61 -1.46,0.99 -1.58,1.94 -0.18,0.9 -1.25,0.06 -1.79,0.32 -0.68,0.37 -1.24,1.41 -2.12,0.79 -0.93,-0.21 -2.04,-0.85 -2.95,-0.39 -0.57,0.89 0.83,2.18 -0.26,2.82 -0.65,0.74 -0.7,1.84 -1.37,2.59 -0.33,0.63 -0.72,1.79 0.31,1.98 1.01,0.26 1.61,1.36 2.24,2.13 -0.07,0.59 -1.06,0.18 -1.47,0.37 -0.6,0.27 -0.26,1.22 -0.74,1.67 -0.29,0.65 -1.01,0.59 -1.49,0.18 -0.57,-0.34 -1.27,-0.05 -1.74,-0.61 -0.9,-0.62 -2,-0.67 -3.03,-0.83 -0.44,-0.35 -1.26,-0.9 -0.84,0.18 0.34,0.85 -0.18,1.94 0.35,2.71 0.46,0.27 1.64,0.66 1.06,1.38 -0.5,0.81 -1.41,0.3 -2.05,-0.05 -0.52,-0.37 -1.25,0.09 -0.87,0.7 0.33,0.77 0.86,1.66 0.62,2.5 -0.66,0.38 0.12,0.97 0.62,0.79 0.61,0.08 0.48,1.09 1.17,1.15 0.27,0.47 0.79,0.78 1.25,0.32 0.66,-0.57 1.26,0.29 1.64,0.72 1.26,0.36 2.77,-0.21 3.93,0.31 -0.15,0.66 -1.33,1.39 -0.16,1.75 0.4,0.17 0.78,0.55 0.44,0.97 -0.13,0.75 0.67,1.6 1.38,1.06 0.44,-0.36 1.29,0.39 0.73,0.76 -0.45,0.57 -0.47,1.41 -0.01,1.94 -0.06,0.96 -0.14,2.01 0.32,2.89 0.74,-0.36 1.48,-0.84 2.32,-1.03 0.89,-0.54 2.04,-0.3 3.03,-0.47 1.36,0.7 2.9,1.36 4.48,1.28 0.82,-0.57 -0.52,-1.06 -0.97,-1.25 -0.83,-0.92 -1,-2.37 -2.18,-3.02 -0.89,-0.61 -0.47,-1.72 -0.01,-2.44 0.2,-0.82 1.38,-0.21 1.78,0.12 0.44,0.5 0.07,1.39 0.76,1.79 0.27,0.34 1.29,1.11 1.39,0.28 -0.46,-0.7 -0.4,-1.72 0.04,-2.4 0.24,-0.63 -0.28,-0.96 -0.8,-0.99 -0.4,-0.58 -0.19,-1.66 0.53,-1.93 1.11,-0.98 1.03,-2.64 1.93,-3.7 0.84,-0.83 2.18,-1.02 2.91,-1.96 0.3,-0.69 1.08,-1.23 1.8,-1.37 0.77,0.34 0.76,-0.99 0.72,-1.47 0.2,-0.8 1.42,-0.33 1.96,-0.19 0.77,0.29 1.87,0.6 1.76,1.64 -0.03,0.5 0.41,0.7 0.8,0.64 0.65,1.23 1.63,2.21 2.33,3.38 0.67,0.53 1.08,-0.73 1.28,-1.18 0.53,-1.39 -0.98,-2.61 -0.83,-3.89 0.95,-0.06 1.68,-0.79 2.53,-1.06 0.55,0.33 1.53,1.41 2.02,0.36 0.44,-0.73 0.48,-1.61 -0.08,-2.27 0.17,-0.42 0.83,-0.77 1.24,-0.86 0.91,1 1.94,1.96 2.46,3.23 0.51,0.3 1.22,-0.11 1.7,0.41 0.56,0.61 1.25,1.09 2.14,1 1.98,0.14 3.96,0.2 5.94,0.29 0.53,-0.84 0.08,-2.27 1.05,-2.94 1.09,-0.75 1.13,-2.18 1.48,-3.28 1.39,0.19 2.51,-0.88 3.23,-1.94 0.77,-0.23 0.49,-1.3 1.27,-1.53 0.82,-0.72 1.93,-0.86 2.92,-1.25 0.49,-0.42 0.51,-1.23 1.32,-1.26 0.83,-0.36 1.14,-1.4 1.93,-1.78 0.77,0.27 1.79,0.29 2.08,-0.66 0.66,-1.38 2.4,-1.81 3.71,-1.06 0.39,0.18 1.29,0.5 1.12,-0.27 0.09,-1.44 -0.99,-2.46 -1.92,-3.38 -0.16,-1.25 0.2,-2.81 -0.7,-3.82 0.26,-0.63 1.23,-1.27 0.5,-1.95 -0.48,-0.56 -0.7,-1.27 -1.5,-1.47 -0.9,-0.29 -1.99,-1.36 -2.93,-0.65 -1.03,0.93 -2.61,0.14 -3.63,-0.46 -1.39,-1.22 -3.06,-2.05 -4.52,-3.16 -0.14,-0.64 0.04,-1.36 -0.18,-2.01 0.26,-0.67 0.64,-1.39 0.32,-2.14 -0.46,-0.77 -0.27,-1.65 -0.34,-2.48 -0.67,-1.47 -2.82,-0.12 -3.68,-1.29 -0.42,-1.05 0.19,-2.49 -0.93,-3.24 -0.45,-0.58 -0.89,-1.29 -0.84,-2.02 -0.58,-0.55 -1.68,-0.52 -2.38,-0.21 -0.4,0.9 -1.61,1.62 -2.44,0.8 -0.83,-0.16 -1.61,0.86 -1.3,1.66 0.16,0.65 0.15,1.68 -0.74,1.69 -0.9,0.39 -1.54,-0.53 -2.43,-0.47 -0.85,-0.07 -1.72,-0.21 -2.49,-0.62 0.67,-1.13 -0.23,-2.74 -1.37,-3.11 -0.83,0.45 -1.99,0.92 -2.79,0.12 -0.24,-0.12 -0.29,-0.52 -0.63,-0.43 z","department-38":"m 464.21,344.5 c -2.79,1.9 -2.68,8.48 -7.27,6.99 -0.9,-2.78 -3.83,-2.24 -5.03,-0.76 -2.02,0.29 1.51,1.68 1.08,3.08 2.47,0.08 3.5,3.16 0.44,2.72 -1.73,1.6 -3.23,3.88 -3.85,5.57 -1.57,-1.3 -1.06,1.72 -2.92,0.29 -3.28,-0.47 -4.55,3.17 -7.48,1.48 -1.5,1.31 5.74,3.47 2.07,5.5 -2.26,2.06 -5.1,3.74 -4.23,6.93 0.77,2.57 -0.06,8.04 4.48,6.03 2.27,2 6.34,-5.1 8.45,-0.76 1.77,0.21 1.71,3.96 3.93,1.45 1.68,0.13 -1.09,4.61 1.72,3.03 1.9,0.92 2.02,2.4 0.5,3.24 1.61,2.88 0.73,6.17 -0.85,8.65 1.08,-0.16 3.1,-1.79 4.37,0.45 2.36,0.7 4.24,0.15 6.23,1.33 0.84,-0.27 3.02,-1.03 3.81,-2.77 2.64,0.63 -1.49,2.67 0.72,4.47 0.38,3.59 -0.09,7.56 -0.56,11.3 0.4,1.45 0.41,2.4 -0.01,3.62 1.24,0.79 4,2.16 3.74,0.13 2.61,1.83 4.3,5.05 7.54,4.72 2.17,2.94 5.3,0.26 5.21,-2.58 1.66,1.44 8.14,-0.42 5.75,-2.57 -0.07,-1 2.61,-2.26 3.54,-2.4 2.26,2.99 3.89,-3.83 6.67,-1.32 2.19,0.23 3.45,-0.22 5.31,-1.27 0.97,1.39 3.24,2.32 2.54,-0.45 1.1,-3.23 -1.77,-5.43 -1.86,-8.01 -3.37,1.84 -6.82,-1.82 -3.61,-4.41 -0.13,-1.84 0.52,-3.31 1.32,-4.86 -1.82,-0.13 -3.26,-1.51 -5.13,-0.74 1.43,-2.69 -1.8,-4.98 -0.71,-7.76 -0.38,-2.56 4.12,-3.93 2.03,-6.04 0.5,-3.14 -3.24,-5.89 -6.15,-5.13 -1.66,-1.14 -3.77,-5.23 -5.46,-1.87 -0.31,1.87 -0.63,3.21 -0.4,4.62 -2.15,1.23 -4.77,-3.87 -7.68,-2.52 -0.95,-2.94 -2.79,-6.19 -4.33,-9.02 -1.66,-2.41 -2.31,-5.84 -4.73,-7.23 -0.04,-3.77 -5.4,-5.53 -5.81,-9.3 0.88,-1.39 -2.2,-3.36 -3.39,-3.83 z","department-73":"m 486.16,340.96 c -0.45,0.45 0.31,1.19 0.03,1.77 -0.43,2.29 -1.49,4.41 -1.88,6.69 -0.26,1.38 -0.01,2.88 -0.3,4.22 -0.62,0.31 0.02,1.17 -0.58,1.57 -0.45,1.17 -1.58,0.73 -2.55,0.64 -0.84,0.07 0.16,1.14 -0.18,1.7 -0.39,0.69 -1.23,1.27 -0.9,2.19 0.16,0.81 -0.73,0.85 -1.28,0.92 -0.46,0.22 -0.52,0.84 -0.99,1.02 -0.1,0.57 -0.89,1.04 -0.26,1.63 0.76,1.32 2.36,2.45 2.11,4.11 0.23,0.33 0.74,0.34 0.74,0.83 0.84,0.69 0.84,1.99 1.51,2.8 0.86,0.69 -0.26,2.79 1.33,2.79 0.69,-0.42 1.75,-0.43 2.21,0.36 0.86,0.8 2.15,0.9 3.12,1.6 0.57,0.15 0.69,0.71 1.06,1.03 0.59,0.02 1.32,-1.15 0.42,-1.31 -0.57,-0.83 0.26,-1.71 0.62,-2.42 0.32,-0.63 -0.18,-1.37 -0.02,-1.93 0.76,-0.47 1.65,-0.69 2.47,-1.04 0.43,0.56 1.01,1.07 1.58,1.38 0.13,0.76 0.39,1.57 1.25,1.79 0.96,0.51 2.24,-0.49 3,0.51 0.5,0.17 1.21,-0.47 1.46,0.31 0.64,1.59 2.48,2.51 2.66,4.29 -0.29,0.15 -0.79,0.54 -0.21,0.73 0.85,0.23 0.12,1.35 0.11,1.91 -0.05,0.98 -1.42,0.76 -1.63,1.63 -0.67,0.52 -0.97,1.32 -0.71,2.16 0.28,0.8 -0.51,1.41 -0.41,2.16 0.41,0.87 0.74,1.73 1.41,2.45 0.62,1.01 -0.59,1.95 -0.5,2.93 0.52,0.56 1.11,-0.22 1.49,-0.5 0.92,-0.1 1.37,0.91 2.13,1.15 0.63,-0.3 1.62,-0.2 1.66,0.68 -0.1,1.41 1.8,2.18 2.81,1.25 0.65,-0.79 1.23,0.33 1.67,0.84 0.46,0.64 0.68,1.43 0.45,2.15 0.54,0.74 1.75,0.36 2.53,0.62 0.86,0.16 1.92,1 2.66,0.13 0.38,-0.92 -0.65,-2.23 0.57,-2.71 0.35,-0.45 0.85,-0.56 1.27,-0.15 0.94,0.49 1.73,-0.4 2.13,-1.14 0.91,-0.24 1.86,0.12 2.72,0.29 0.81,-0.21 1.62,-0.66 2.1,-1.32 0.99,-0.68 2.46,0.1 3.22,-1.02 0.35,-0.43 0.97,-0.89 1.45,-0.3 0.85,0.52 2.11,0.47 2.52,1.51 0.72,0.63 1.87,0.09 2.61,-0.25 0.41,-0.56 -0.74,-1.63 0.24,-1.82 0.89,-0.31 2.18,-0.09 2.35,-1.31 0.28,-0.94 0.93,-1.7 1.94,-1.85 1,-0.19 1.96,-0.56 2.92,-0.94 0.28,0.29 0.54,1.02 1.07,0.58 0.47,-0.87 0.96,-2.03 2.06,-2.12 0.86,-0.78 0.12,-2.12 -0.06,-3.06 -0.11,-0.72 -1,-1.93 0.07,-2.33 0.68,-0.07 0.41,-0.73 0.59,-1.12 0.98,-0.99 1.63,-2.36 1.9,-3.7 -0.59,-0.97 -1.87,-1.22 -2.71,-1.86 -0.94,-0.95 -0.87,-3.04 -2.54,-3.15 -0.56,-0.01 -0.92,-0.42 -0.89,-0.96 -0.58,-0.7 -1.85,-0.56 -2.18,-1.57 -0.64,-1.44 -0.23,-3.2 -1.06,-4.6 -0.34,-1.1 0.49,-2.08 0.76,-3.02 -0.69,-0.83 -1.62,-1.51 -2.76,-1.31 -0.88,0.14 -0.91,-0.82 -1.25,-1.33 -0.99,-0.62 -2.63,-0.33 -3.11,-1.66 -0.83,-0.95 -1.39,-2.07 -1.33,-3.37 -0.05,-0.49 -0.09,-1.83 -0.91,-1.34 -0.91,0.06 -1.72,0.7 -1.99,1.6 -0.42,0.52 -0.86,1.4 -1.45,1.52 -0.4,-0.17 -1.27,-0.31 -0.7,-0.87 0.23,-0.66 -0.51,-1.2 -0.28,-1.88 -0.34,-0.89 -0.91,-2.04 -1.95,-2.2 -0.89,-0.13 -2.19,0.76 -2.83,-0.15 -0.09,-0.52 -0.37,-0.96 -0.88,-1.06 -0.72,-0.81 -1.07,-2.03 -1.15,-3.07 0.63,0.06 1.62,-0.31 1.26,-1.11 -0.35,-1.05 -1.53,-1.04 -2.36,-1.47 -0.67,-0.01 -0.86,0.94 -1.52,1.08 -0.85,0.88 -1.48,2.09 -1.51,3.29 -0.72,0.95 -0.91,2.24 -1.97,2.95 -0.76,0.61 -1.69,1.28 -1.54,2.39 -0.21,0.67 -0.99,1.04 -1.01,1.82 -0.44,0.97 -0.54,2.37 -1.86,2.41 -1.14,0.38 -2.33,0.53 -3.53,0.54 -0.06,-0.45 0.01,-1.66 -0.76,-1.32 -0.31,0.13 -0.76,0.69 -1.03,0.56 -0.25,-0.91 0.24,-2.16 -0.62,-2.79 -0.14,-0.81 -1.14,-1.57 -1.94,-1.34 -0.21,0.5 -0.78,0.26 -1.03,-0.06 -0.76,0.04 -0.24,1.32 -0.76,1.53 -0.34,-0.65 -1.25,-0.37 -1.8,-0.73 -0.47,-0.07 -0.73,0.7 -1.2,0.25 -0.48,-0.36 -1.21,-0.4 -1.7,-0.51 0.01,-0.61 -0.44,-1.04 -0.93,-1.29 0.04,-0.57 0.55,-1.77 -0.49,-1.68 -0.47,-0.1 -0.19,-0.97 -0.81,-1.05 -0.66,-0.37 -1.22,0.91 -1.76,0.14 -0.38,-0.36 -0.12,-1.3 -0.92,-1.18 -1.02,-0.5 -0.45,-1.96 -0.7,-2.86 -0.23,-1.29 -0.31,-2.65 -0.65,-3.91 -0.34,-0.35 -0.97,-0.38 -1.43,-0.38 z", -"department-74":"m 522.73,306.41 c -1.97,0.51 -4.09,-0.11 -6.02,0.54 -1.69,0.88 -2.87,2.78 -4.92,2.88 -1.61,0.19 -3.71,0.06 -4.62,1.7 -1.07,1.16 -2.72,2.21 -2.73,3.97 0.1,0.69 1.48,0.71 0.93,1.55 -0.41,0.84 0.21,1.93 0.9,2.4 0.42,0.09 0.95,-0.58 1.26,0.01 0.37,0.53 0.48,1.32 -0.23,1.62 -1.53,1.19 -3.48,2.08 -4.62,3.7 0.15,0.96 -1.06,1.44 -1.7,1.89 -0.92,0.54 -2.12,0.67 -2.99,-0.02 -0.94,-0.11 -1.74,0.7 -2.72,0.57 -1.73,-0.1 -3.26,0.92 -4.93,1 -0.77,0.2 -1.52,0.85 -1.16,1.71 0.19,0.63 -0.32,1.15 -0.97,1 -0.99,0.19 -1.36,-0.93 -2.04,-1.36 -0.25,0.5 -0.16,1.27 -0.57,1.8 -0.32,1.76 -0.11,3.58 -0.18,5.37 -0.05,1.02 1.4,1.33 1.1,2.4 -0.08,0.89 -0.37,2.18 0.97,1.91 0.75,0.22 0.29,1.37 0.52,1.94 0.31,1.44 0.48,2.91 0.5,4.37 0.07,0.67 0.88,0.58 1.19,0.96 -0.06,0.61 0.65,1.43 1.18,0.8 0.34,-0.42 1.1,-0.12 1.48,0.06 -0.19,0.54 0.13,1.08 0.73,0.94 0.45,0.32 -0.03,1.12 0.02,1.58 0.26,0.43 0.87,0.53 0.99,1.06 0.58,0.39 1.43,1.09 2.13,0.73 0.22,-0.52 0.78,-0.22 1.09,0 0.59,0.21 1.53,0.05 1.32,-0.78 -0.01,-0.66 0.68,-0.27 0.9,0.03 0.57,0.28 0.97,-0.69 1.55,-0.21 0.84,0.25 1.11,1.08 1.58,1.67 0.61,0.22 0.16,1.19 0.32,1.69 -0.08,0.68 0.71,0.6 0.85,0.07 0.5,-0.09 1,0.52 0.86,1.04 0.4,0.69 1.5,0.24 2.16,0.27 0.76,-0.24 1.79,-0.22 2.32,-0.85 0.55,-0.82 0.59,-1.89 1.06,-2.69 0.59,-0.47 1.08,-1.17 0.58,-1.84 1.1,-1.12 2.6,-2.01 3.15,-3.59 0.44,-0.46 0.57,-1.04 0.46,-1.64 0.43,-1.24 1.14,-2.4 2.27,-3.1 0.24,-0.19 0.68,-1.23 1.02,-0.66 0.87,0.56 2.4,0.81 2.5,2.07 0.05,0.67 -0.39,0.98 -1.01,0.85 -0.65,0.38 0.05,1.31 0.13,1.86 0.25,0.92 1.4,1.05 1.58,2.03 0.48,0.87 1.65,0.01 2.41,0.12 0.73,-0.31 1.18,0.28 1.5,0.85 0.45,0.56 1.16,1.11 0.82,1.91 -0.09,0.58 0.7,0.95 0.24,1.52 -0.21,0.76 0.9,0.79 1.18,0.23 0.84,-0.71 0.9,-2.01 2.02,-2.43 1.02,-0.06 1.62,-1 1.61,-1.96 -0.09,-1.02 0.58,-2.66 1.85,-2.26 0.39,0.29 1.11,0.3 0.98,-0.35 0.01,-0.41 0.22,-0.99 0.72,-0.64 1.66,0.72 3.32,-0.42 4.67,-1.3 1.07,-1.02 1.17,-2.69 2.2,-3.72 0.24,-1.07 0.13,-2.38 -0.92,-2.98 -0.31,-0.29 0.4,-0.66 0.03,-1.04 -1.08,-1.72 -2.7,-3.09 -3.82,-4.78 -0.93,-0.47 -1.81,1.29 -2.7,0.56 -0.35,-0.84 0.72,-1.72 0.05,-2.53 0.03,-0.72 1.46,-1.61 0.49,-2.23 -0.76,-0.34 -1.61,-0.31 -2.36,-0.72 -0.84,-0.04 -2.06,-0.19 -2.06,-1.31 0.09,-1.22 0.81,-2.32 0.63,-3.59 0.03,-1.74 2.08,-2.69 2.14,-4.38 -0.61,-2.1 -2.81,-3.32 -3.41,-5.34 0.58,-0.82 1.83,-1.33 1.69,-2.56 0.1,-0.89 0.32,-2.26 -0.88,-2.5 -2.33,-0.82 -4.77,-1.84 -7.27,-1.85 z","department-71":"m 412,260.36 c -2.93,0.55 -4.26,2.21 -6.96,2.68 -1.28,2.48 2.3,4.5 -0.5,6.99 -1.43,0.66 -3.07,3.09 -0.49,1.44 1.9,1.91 -1.31,5.49 2.35,6.61 2.41,2.48 -3.47,2.49 -1.06,5.02 0.77,3.39 -3.9,1.03 -5.18,3.67 -2.25,1.4 -4.63,2.62 -7.04,3.38 -0.31,-4.58 -4.86,-2.18 -7.6,-2.64 0.33,3.18 3.53,4.95 4.3,8.11 0.37,1.27 1.28,3.31 0.8,5.05 2.56,1.6 5.5,0.03 6.06,3.56 2.3,-0.67 6.83,0.19 5.63,3.81 -1.65,2.24 1.1,6.27 -0.41,7.48 -1.83,-0.26 -2.1,1.92 -4,2.06 1.17,2.28 -1.61,6.17 2.72,5.49 0.93,1.98 2.84,2.96 4.81,1.08 2.24,-1.83 4.53,2.66 6.18,-0.34 0.99,0.81 3.97,-0.12 2.52,2.07 1.82,0.5 3.17,-1.98 5.29,-1.84 0.91,-1.94 0.34,-5.84 2.53,-7.3 2.38,-0.25 4.64,4.02 6.14,0.44 0.69,1.02 2.58,2.86 3.18,0.21 1.5,-2.57 5.41,0.79 2.63,2.19 4.35,0.26 -0.17,5.73 3.79,5.35 1.63,-2.32 1.8,-5.62 3.02,-8.28 1.07,-3.54 2,-7.12 3.47,-10.47 -0.24,-4.22 3.76,-4.44 6.12,-2.01 2.73,0.91 5.4,-3.24 7.43,-0.63 0.71,4.46 5.42,3.07 8.23,1.96 3.48,-0.33 -0.18,-2.98 -1.2,-3.64 -0.19,-2.06 -0.14,-4 2.12,-4.12 -1.13,-2.06 2.54,-2.7 0.55,-4.54 0.27,-1.18 -1.25,-2.07 -0.87,-3.37 -1.29,-1.52 -2.14,-2.53 -0.54,-4.28 -1.91,-0.7 -4.07,-3.41 -0.68,-3.56 1.47,-0.64 5.77,0.15 2.85,-1.99 -1.77,-0.79 -1.54,-3.02 -3.84,-2.16 -2.27,0.63 -1.51,-5.03 -4.1,-2.86 0.12,-2.06 -1.07,-4.73 -3.5,-2.61 -2.78,0.86 -4.3,2.07 -6.4,-0.46 -1.94,0.4 -2.39,2.11 -4.89,0.86 -2.61,0.33 -5.24,2.44 -8.14,3.19 -1.76,-0.3 -4.71,2.29 -4.23,-1.06 -3.18,-0.15 -5.08,-3.48 -5.63,-5.52 -2.23,0.19 -4.16,-1.65 -6.41,-2.36 0.94,-2.91 -1.62,-1.37 -2.5,-0.96 0.79,-4 -4.82,-1.4 -5.2,-5.1 -0.71,0.24 -0.8,-0.59 -1.34,-0.6 z","department-03":"m 355.26,283.59 c -2.47,0.46 -4.86,3.44 -6.02,4.72 -1.76,-0.99 -3.8,2.31 -4.59,-0.78 -1.76,0.08 -2.97,3.69 -5.04,3.94 1.97,2.84 -4.43,0.31 -1.55,2.39 0.4,1.42 -1.37,2.94 0.6,3.99 1.55,3.09 -3.65,5.08 -5.37,3.61 -2.24,1.35 -6.48,-0.24 -7.16,3.06 -1.54,1.23 -3.6,4.68 -1.43,6.74 2.23,0.25 1.54,1.18 0.45,2.24 0.46,1.75 3.06,2.36 3.77,1.35 1.79,0.78 0.58,3.48 2.71,2.33 2.32,1.7 3.03,4.85 4.13,7.52 1.59,1.1 1.36,3.94 4.21,3.81 2.2,-0.4 1.29,-4.32 4.06,-4.34 -0.38,-2.36 1.13,-2.81 2.64,-1.17 2.87,2.05 0.78,-4.7 4.25,-3.15 2.6,-0.56 4.31,1.53 2.01,3.27 -0.51,2.53 2.71,1.85 2.18,4.56 1.6,1.64 4.19,2.18 6.12,1.98 0.53,3.71 5.09,1.32 7.41,2.58 2.46,-0.35 4.25,2.07 6.4,-0.15 2.05,-0.87 3.81,1.48 3.14,3.62 2.97,-0.38 6.89,-1.86 7.42,2.51 1.3,0.31 3.13,3.55 3.29,0.55 1.79,-0.98 4.46,0.16 5.67,-2.24 -1.33,-3.25 -0.2,-6.45 -1.49,-9.65 1.17,-1.65 -1.28,-4.71 -0.7,-6.42 1.4,-0.12 2.34,-1.59 4.2,-1.58 1.27,-1.45 2.99,-2.22 4.25,-3.49 2.82,-0.46 -0.34,-5.16 1.28,-7.19 1.51,-3 -3.08,-4.88 -5.16,-3.65 -1.18,-1.3 -1.26,-3.58 -3.47,-2.38 -1.93,-1.04 -3.95,-1.45 -2.9,-4.14 -1.14,-2.8 -2.34,-5.73 -4.5,-8.23 0.48,-2.03 -3.61,-4.95 -2.1,-1.56 -0.34,1.45 -3.05,0.68 -1.66,2.91 -1.17,0.41 -2.72,0.17 -3.32,2.29 -3.21,0.75 -0.8,-5.19 -4.58,-3.84 -1.04,2.99 -3.56,1.08 -4.7,-0.26 -2.1,1.25 -4.73,3.83 -6.34,0.2 -2.17,-1.67 -4.84,-2.89 -5.84,-5.6 -0.73,-0.27 -1.51,-0.18 -2.26,-0.35 z","department-58":"m 361.05,231.75 c -1.61,0.98 -3.32,2.58 -5.23,1.22 -1.54,0.66 -5.16,0.31 -5.72,1.84 1.58,2.33 4.2,5.39 3.03,8.27 -0.46,2.34 -4.01,5.74 -0.25,7.04 1.92,1.64 3.66,3.16 3.28,5.91 2.2,3.19 1.4,7.61 2.45,10.69 2.84,1.44 0.59,4.96 1.6,7.25 -1.99,2.66 1.02,5.99 -1.24,8.7 -1.75,2.29 0.81,5.12 3.16,5.53 1.64,1.06 3.28,4.95 5.39,2.27 1.52,-1.93 3.16,-1.38 4.16,0.57 1.96,0.7 3.24,-3.41 4.93,-1.11 0.68,1.01 0.94,1.95 1.13,3.28 1.84,0.37 2.58,-2.94 4.39,-2.04 -0.61,-1.82 -0.49,-2.4 1.36,-2.38 -0.2,-1.17 -0.22,-3.61 1.45,-1.97 2.29,2.03 7.01,-1.91 8.02,2.31 1.41,2.29 3.54,-1.84 5.75,-1.47 1.68,-2.02 4.85,-2.71 6.51,-3.23 -0.22,-2.14 -1.12,-3.85 1.59,-4.65 -0.2,-2.28 -4.24,-3.86 -1.97,-6.79 0.18,-2.41 -4.07,0.3 -1.77,-2.02 2.77,-1.18 2.72,-4.62 1.41,-6.48 -0.21,-2.71 3.29,-1.57 3.61,-3.64 2.41,0.12 4.36,-0.55 4.66,-3.1 0.33,-2.07 -2.28,-4.7 -4.14,-3.18 -2.16,-1.91 1.5,-6.7 -2.23,-6.47 -2.06,-0.11 -3.88,3.63 -5.15,0.03 -0.32,-1.35 -0.05,-4.35 -2.03,-2.79 -1.29,0.05 -2.91,2.04 -2.96,-0.58 1.08,-0.8 1.65,-3.07 -0.35,-2.77 -1.09,1.35 -0.9,4.62 -3.13,2.61 -0.88,-1.42 -3.65,0.48 -4.06,-2.21 -1.01,-1.24 -3.05,-2.54 -4.54,-2.45 -1.62,0.35 -0.42,-3.16 -2.49,-3.09 -1.47,-0.17 -1.9,-4.94 -2.3,-1.85 0.35,2 -0.34,3.67 -2.39,2.1 -2.63,-1.51 -3.86,4.14 -5.82,1.03 -1.87,-1.04 -4.17,1.13 -5,-2 -2.26,0.34 -4.45,-1.48 -4.25,-4 -0.17,-0.32 -0.55,-0.4 -0.88,-0.38 z","department-89":"m 374.12,178.1 c -1.36,2.82 -5.36,0.91 -7.76,1.83 -2.91,0.12 -7.22,-0.23 -8.27,2.98 0.14,3.17 1.58,6.21 -2.22,8.02 -3.13,1.63 -1.03,2.94 1.17,4.04 2.28,2.02 1.91,5.48 4.92,6.98 0.09,2.23 1.57,5.13 -1.56,6.65 -2.34,1.36 -4.04,3.95 -2.14,6.31 -0.68,1.5 0.04,4.08 -2.76,4.29 -2.25,0.39 -7.34,0.64 -4.79,4.05 2.45,0.93 4.06,4.45 3.33,7.05 1.14,3.61 5.07,3.17 7.39,1.37 1.4,1.71 1.46,5.08 4.64,4.36 1.07,1.7 2.94,2.2 4.19,1.56 2.83,2.78 4.94,-2.42 8.04,-0.36 2.24,0.32 0.05,-5.91 2.11,-2.26 1.33,1.79 2.94,3.05 3.85,4.95 3.33,-1.09 4.42,4.4 7.1,3.73 1.63,0.4 3.4,2.47 3.61,-0.47 1.06,-2.78 3.75,-0.39 1.71,1.41 -0.27,3 5.9,-2.28 4.47,2.93 0.46,3.12 3.19,1.32 4.4,0.59 4.42,-0.6 -2.45,-5.06 1.49,-6.94 2.21,-1.57 -0.41,-5.47 2.78,-6.83 1.14,-2.73 3.9,-5.69 3.26,-8.58 1.88,-0.52 1.26,-1.92 0.64,-3.48 1.6,-1.09 4.66,-1.22 3.88,-4.34 0.07,-2.34 -0.26,-3.73 -2.7,-3.42 -3.53,-2.05 4.19,-4.69 -0.03,-5.12 -1.97,-0.1 -2.62,-5.1 -3.28,-1.27 -2.05,-2.67 -2.92,2.59 -5.45,0.23 -2.35,0.79 -5.27,0.01 -8.15,0.79 0.15,-1.59 0.88,-6.21 -1.65,-3.46 -2.36,-1.38 1.3,-2.55 -1.24,-3.58 -0.94,-2.75 -2.25,-5.79 -4.33,-7.09 0.87,-2.25 -1.27,-2.36 -1.7,-0.43 -3.07,1.65 -2.16,-4.29 -5.46,-2.45 0.07,-1.1 1.54,-2.74 1.12,-4.43 -0.2,-2.34 -3.48,-5.41 -5.2,-7.74 -2.07,-0.04 -3.97,0.46 -4.78,-1.75 -0.22,-0.05 -0.43,-0.1 -0.65,-0.14 z","department-77":"m 360.11,130.7 c -0.75,1.23 -0.27,2.29 -2.33,1.67 -1.38,-0.38 -1.84,2.1 -2.56,0.07 -2.14,0.21 -4.49,1.91 -6.24,0.1 -2.04,-1.53 -3.2,3.4 -5.16,0.88 -1.56,1.65 -2.68,-3.86 -4.86,-1.22 -1.42,0.6 -1.4,2.29 -1.08,2.9 -0.79,0.91 -3.3,2.12 -0.93,2.41 0.92,1.64 0.15,3.36 1.66,4.95 -0.21,1.86 -2.5,3.75 -0.77,5.03 -0.42,1.69 1.07,3.83 0.45,5.54 1.88,0.5 -0.47,2.18 -0.41,3.35 -1.82,0.99 1.36,3.93 -1.65,3.64 -0.82,0.84 0.31,2.38 -1.22,3.04 1.7,1.22 -0.11,2.87 -0.29,4.11 -0.83,2.76 -0.35,5.7 -0.38,8.61 1.13,0.77 2.32,2.24 0.22,2.19 -1.67,0.77 -3.86,1.83 -3.71,4.1 -3.26,-0.23 0.46,3.05 -0.39,4.73 1.93,0.89 5.35,1.9 4.16,4.93 0.05,1.63 -0.21,2.35 -1.8,2.26 -2.59,2.58 2.06,2.09 3.18,0.95 1.95,0.94 4.16,-0.38 5.89,1.16 1.74,-0.08 3.98,-1.65 3.26,-2.69 2.16,-0.61 3.3,-0.11 2.62,2.03 1.99,0.05 3.64,-2.23 5.85,-2.23 1.28,-2.5 4.18,-3.1 5.17,-5.95 -1.75,-1.86 -0.91,-4.39 0.11,-6.51 2.23,0.08 3.58,-0.87 5.81,-1.29 2.4,1.59 4.47,-0.91 6.89,0.03 1.85,0.05 2.21,-2.32 4.09,-1.22 1.02,-1.56 -1.94,-1.95 -0.46,-3.63 -1.01,-1.71 -0.67,-2.54 1.28,-3.16 -0.64,-1.19 -1.85,-3.14 0.59,-2.27 3.2,-0.16 -0.39,-3.09 2.44,-3.84 0.11,-1.36 2.11,-1.25 2.34,-2.32 -1.35,-1.35 -2.61,-1.35 -4.33,-0.87 -0.83,-1.72 0,-2.93 0.73,-4.28 -0.27,-1.41 0.18,-2.58 -1.57,-2.81 -0.08,-1.26 -2.46,0.08 -1.43,-1.87 0.29,-0.92 3.06,-1.11 0.77,-1.96 -2,-1.6 4.65,-0.07 2.85,-3.04 -0.62,0.26 -2.18,0.96 -1.62,-0.5 -2.19,-0.35 -3.93,-1.72 -3.63,-4.09 -1.91,1.44 -2.54,-0.3 -3.11,-1.76 -2.53,1.6 -2.02,-2.84 -4.2,-3.33 -1.26,-1.06 -2.94,-1.79 -1.15,-3.4 -0.57,-2.97 -1.82,-4.38 -5.07,-4.44 z","department-10":"m 415.76,157.34 c -2.6,0.51 -5.55,-0.05 -7.71,1.48 -2.64,-2.28 -2.21,2.93 -5.08,1.84 -1.93,0.67 -1.61,4.36 -4.3,3.88 -0.4,1.61 -1.36,1.64 -2.59,1.72 1.3,3.01 -1.42,4.79 -3.84,3.13 -2.09,-1.39 -6.82,1.14 -6.65,-2.55 -0.6,-0.93 -2.3,-0.55 -2.52,-2.29 -2.04,-2.28 -2.83,1.06 -4.5,1.77 -0.06,1.25 0.93,2.82 -1.41,3.08 -3.5,-1.29 1.33,2.83 -1.65,2.81 -1.9,0.54 0.78,2.64 -0.38,3.85 2.1,0.63 -0.62,5.56 2.52,3.51 3.16,-0.12 4.15,3.44 6.03,5.22 0.01,1.47 3.08,2.04 0.93,3.9 2.08,0.85 -3.12,4.07 0.15,3.27 2.29,-0.8 2.03,4.35 4.19,2.52 1.08,-0.14 0.3,-2.78 1.94,-1.13 0.93,0.76 -0.96,2.98 1.14,2.23 2.34,1.66 1.67,5.24 3.89,6.96 2.43,1.45 -2.11,1.84 0.59,3.02 0.73,-0.46 1.14,-2.22 1.92,-0.23 0.37,1.61 -1.44,4.62 1.62,3.35 1.95,0.01 2.99,-0.54 4.79,0.26 0.99,-3.03 2.57,1.82 4.01,-0.76 0.84,-1.92 1.99,-0.84 2.76,-0.15 -0.14,-1.03 0.29,-2.65 1.27,-1.4 -0.33,2.78 3.95,3.53 3.81,0.39 2.92,-0.59 5.93,0.14 8.85,-0.56 2.39,0.31 2.85,-0.77 1.49,-2.56 2.05,-2.2 4.43,-1.32 6.94,-0.84 2.63,-1.11 0.34,-3.51 -1.25,-4.11 2.37,-0.23 3.32,-3.91 6.03,-1.87 3.03,1.11 1.67,-2.97 2.47,-4.56 1.68,-1.76 -0.94,-2.47 -0.07,-3.99 1.1,-2.25 -0.53,-3.76 -1.25,-5.67 2.38,-2.25 -3.94,-1.43 -2.88,-4.17 -1.47,-0.37 -2.51,-0.25 -2.96,-1.8 0.24,-1.72 -4.18,-2.97 -1.75,-4.03 0.72,-2.19 1.43,-3.93 -1.16,-5.04 -2.33,-0.81 -3.68,3.05 -5.35,0.57 -2.15,0.43 -4.7,-0.92 -6.23,-2.52 -2.9,-1.25 -2.44,-3.78 -2.05,-6.39 -0.16,-1 -0.29,-2.51 -1.75,-2.14 z","department-51":"m 405.08,111.51 c -1.06,0.78 -0.74,4.64 -2.69,2.03 -2.26,-0.62 -3.69,-3.04 -5.85,-0.46 -0.76,1.47 -0.53,3.07 -2.6,1.59 -2.67,0.5 -5.66,1.55 -7.69,3.27 1.02,2.06 1.46,4.73 0.89,6.32 2.55,-0.42 1.18,3.01 3.85,2.11 0.48,4.28 -5.3,-0.05 -6.19,3.06 -0.39,1.65 2.79,4.09 -0.6,4.59 -2.26,3.23 5.49,0.01 3.06,3.78 -2.35,0.83 -2.21,3.44 -4.02,4.55 -0.04,2.3 -3.69,1.38 -3.38,4.24 -1.75,1.12 0.58,4.63 -2.54,3.99 -2.46,-0.16 -1.14,0.3 -0.32,1.22 0.08,0.89 -3.17,1.69 -1.26,2.59 2.53,0.21 3.88,3.9 1.46,5.7 0.25,2.2 1.1,2.12 2.94,1.45 1.92,0.52 2.98,4.27 5.46,4.81 -0.12,4.68 6.56,0.97 8.91,3.79 3.18,-0.68 -0.17,-4.93 3.46,-4.46 0.45,-2.04 3.42,-1.33 3.65,-3.97 0.75,-2.28 4.33,-0.39 4.38,-3.49 1.36,-0.34 2.79,1.39 3.81,-0.56 2.71,0.28 5.46,-1.6 7.64,0.42 0.89,2.81 -1.6,6.2 2.08,7.6 1.6,3.05 5.89,1.61 7.51,3.56 1.84,-1.76 4.32,-2.12 5.98,-0.45 1.91,-1.07 7.38,1.87 5.1,-2.02 -2.42,-2.79 6.05,-2.46 2.44,-5.4 -1.35,-0.11 -4.14,-0.27 -1.58,-1.69 1.66,-0.63 3.72,1.24 5.25,-0.9 2.3,1.31 5.6,-0.99 4.11,-3.45 -1.93,-1.13 -3.33,-3.27 -5.05,-4.35 0.2,-1.89 3.07,-2.43 1.04,-4.46 -0.24,-2.76 1.96,-3.93 4.51,-4.61 2.25,-1.35 -0.39,-2.44 -0.39,-3.09 2.85,-0.57 0.54,-4.33 -1.51,-2.09 2.09,-1.98 1.44,-5.68 -0.12,-8.2 -0.96,-1.63 -1.81,-3.48 0.73,-4.04 -0.24,-1.82 -2.4,-2.81 -3.5,-3.66 -2.15,0.23 -1.49,3.78 -3.82,1.54 -2.45,0 -5.77,-1.84 -7.92,0.23 -2.68,0.36 -2.07,-5.98 -5.47,-3.2 -2.64,0.89 -6.12,0.77 -7.24,-2.32 -2.8,0.56 -4.24,-2.36 -6.09,-4.01 -2.61,-1.4 -5.28,-1.58 -8.44,-1.57 z","department-02":"m 388.2,68.13 c -1.08,1.13 -2.82,3.24 -4.4,1.16 -2.84,-2.2 -4.67,3.68 -7.97,1.02 -2.67,-1.47 -4.82,2.26 -7.41,-0.08 -2.13,-0.29 -5.92,2.27 -2.52,2.96 -2.98,2.53 -3.74,6.36 -5.63,9.48 -1.75,0.96 2.24,2.4 -0.4,3.91 1.95,1.43 2.51,4.94 2.65,7.7 -1.5,0.24 -0.31,2.46 -1.01,3.2 2.8,2.14 0.67,5.53 0.21,7.42 1.3,1.39 -0.62,2.75 2.02,3.19 1.86,2.58 -4.01,-0.19 -2.57,2.99 0.21,2.78 -1.91,6.35 -4.84,5.03 -3.19,2.38 3.18,2.33 1.82,4.68 0.73,2 -0.93,3.6 1.68,4.15 1.16,1.34 2.5,-0.57 2.39,2.15 3.19,1.07 -5.03,3.79 0.04,3.92 2.54,0.03 3.91,4.01 2.15,5.73 2.04,1.28 3.84,3.72 5.3,5.32 1.97,-1.81 1.27,4.11 3.47,1.27 1.13,0.14 0.62,4.1 3.08,3.73 1.02,1.15 2.26,2.18 2.67,-0.16 1.3,-1.34 1.82,-3.4 3.99,-3.73 1.01,-2.49 2.46,-4.36 4.65,-6 0.1,-2.93 -6.07,0.28 -3.5,-3.33 4.06,-0.79 -1.61,-3.63 1.16,-5.63 1.74,-0.53 6.13,1.2 5.33,-1.72 -2.24,0.27 -1.72,-2.21 -3.92,-2.36 2.32,-2 -2.35,-5.73 0.53,-7.34 2.85,-0.42 5.37,-3.57 8.29,-1.65 -0.29,-1.73 3.19,-4.87 4.55,-2.85 1.43,0.76 4.63,3.46 4.24,0.06 0.75,-1.54 -0.52,-3.16 0.75,-4.21 -1.86,-2.09 0.18,-3.94 0.86,-5.41 -1.97,-0.87 0.95,-3.51 -1.67,-4.78 -1.57,-3.69 5.08,0.31 4.01,-3.96 1.21,-2.05 5.54,-3.68 5.14,-6.49 -2.5,-0.39 -0.05,-2.22 -0.82,-3.84 1.25,-2 2.5,-4.89 -0.05,-6.15 1.79,-3.26 -2.77,-4.61 -5.35,-3.57 -2.14,-1.09 -7,-0.34 -5.08,-4.21 -1.57,-0.94 -4.83,3.39 -5.36,0.08 -2.78,-0.3 -5.86,-1.9 -8.53,-1.67 z","department-59":"m 335.57,0.12 c -3.45,1.43 -6.99,2.74 -10.76,2.39 -2.72,1.29 -8.66,1.44 -9.11,3.85 2.44,2.79 3.25,6.62 4.77,9.94 0.43,4.77 5.56,3.66 8.58,4.42 2.32,1.45 -4.63,1.65 -1.51,3.98 2.44,0.67 -1.2,3.42 2.07,2.61 2.93,3.85 6.72,1.92 9.95,3.5 2.19,-0.65 4.1,-0.87 5.68,0.87 0.41,-1.85 2.1,-1.38 0.62,-3.01 2.05,-2.57 7.25,2.09 2.69,2.82 -1.83,1.68 0.07,3.54 -0.61,5.52 2.34,0.14 3.9,-1 3.93,1.59 2.5,-1.01 7,0.2 5.64,3.54 1.27,0.39 3.92,-0.75 2.32,1.89 -3.74,0.21 -4.27,4.12 -0.66,5.49 2.67,1.86 -0.52,2.17 0.31,4.28 2.66,0.03 5.42,1.44 5.6,3.59 -3.49,-0.01 -0.66,2 -1.8,3.32 -2.94,0.76 0.82,2.08 -1.93,3.52 1.19,2.22 -2.19,4.81 1.75,6.08 2.76,1.37 5.33,-1.11 8.08,0.5 2.78,-2.8 7.12,1.76 9.94,-1.66 1.88,-2.21 4.77,3.11 6.2,-0.72 3.06,-1.45 6.64,0.94 9.78,1.44 0.46,3.12 6.54,-3.53 4.81,1.34 0,2.28 5.16,2.43 7.07,2.12 1.13,-1.37 -0.83,-4.12 2.33,-4.63 2.68,-0.88 0.57,-5.07 -0.84,-5.54 -3.3,1 -0.12,-4.14 0.06,-5.58 2.39,-1.25 2.41,-3.76 -0.41,-4.14 -0.6,4.11 -2.68,-3.09 -5.06,-3.38 -1.96,-3.39 -6.66,2.37 -9.45,-1.06 -3.02,-1.09 -5.18,0.58 -6.36,2.66 -3.42,-1.36 -0.95,-6.36 -2.22,-9.19 -1.09,-3.5 -4.72,-3.12 -7.3,-3.15 1.15,-5.24 -5.66,2.5 -7.97,-1.03 -3.9,-1.63 -1.34,-6.5 -3.82,-9.41 1.83,-3.67 -3.12,-4.71 -3.84,-8.29 -2.91,-1.52 -7.12,1 -10.06,2.09 -0.33,4.97 -4.26,1.63 -6.9,0.96 -1.64,-3.04 -3.74,-6.42 -7.35,-5.98 -1.29,-2.74 -2.17,-6.28 -0.14,-8.73 -2.25,-2.77 -2.84,-5.71 -4.09,-8.81 z m 28.08,54.5 0.01,0.01 -0.01,-0.01 z","department-62":"m 313.33,5.46 c -4.94,0.63 -9.82,2.03 -14.3,4.19 -2.31,2.03 -4.44,4.39 -7.41,5.25 0.4,3 1.9,6.23 -0.01,9.07 -1.39,2.89 0.06,6.1 -0.08,9.15 0.12,1.92 1.85,2.89 0.02,4.03 0.23,3.04 -1.19,6.37 -0.33,9.17 2.74,1.63 4.65,4.95 7.93,2.3 3.81,-2.29 6.82,4.56 9.77,1.72 1.01,1.14 -1.99,2.68 0.88,2.9 2.1,1.36 5.3,1.26 4.69,4.15 0.88,1.54 2.94,0.71 3.92,1.37 1.81,-1.07 3.99,-1.33 5.74,-1.4 1.16,1.12 1.77,-0.42 1.57,-0.98 1.33,-0.36 1.77,3.47 2.74,0.75 1.51,-1.51 6.22,0.91 4.51,2.46 -2.54,0.07 -6.33,4.05 -3.27,5.63 1.73,2.15 1.55,-3.53 4.22,-2.43 1.09,-0.01 1.95,2.52 2.26,-0.06 2.83,-0.7 -0.14,2.46 2.59,2.02 1.28,-0.01 4.09,2 4.68,1.23 -1.22,-1.42 0.73,-3.47 2.15,-1.5 3.8,-0.04 -3.11,6.76 1.65,4.07 2.16,-2.39 3.64,-1.2 4.04,1.36 2.23,-1.54 4.16,-0.79 6.67,-1.69 1.7,0.68 3.25,0.84 2.92,-1.52 2.01,-0.93 -0.86,-3.26 1.69,-4.17 -3.08,-1.56 3.06,-1.88 0.19,-3.89 0.22,-1.46 4.13,-1.5 1.13,-2.69 -0.34,-2.78 -7.17,-0.62 -4.12,-4.27 0.8,-2.23 -5.36,-4.49 -3.06,-6.23 1.03,-0.79 5.01,-2.22 2.55,-3.36 -2.01,2.19 -1.83,-1.12 -1.83,-2.28 -1.69,-2.27 -3.83,-0.79 -5.87,-1.11 1.15,-3.86 -4.88,0.62 -3.97,-3.05 1.99,-1.08 -1.84,-2.64 0.61,-4.04 1.4,-1.06 3.51,-1.23 1.17,-2.9 -1.51,-1.43 -4.89,0 -2.23,1.47 -1.85,-0.59 -1.52,3.3 -3.1,0.89 -1.9,-1.78 -4.14,1.01 -6.2,-0.92 -1.66,1.28 -2.66,-1.12 -4.47,0.08 -1.69,-1.59 -4.29,-2.33 -5.63,-3.51 2,-1.35 -3.65,-3.85 0.56,-4.64 3.01,-2.03 -3.3,-1.35 -4.61,-1.78 -3.99,-1.02 -3.27,-5.59 -5.16,-8.44 -1.11,-2.34 -2,-6.31 -5.19,-6.38 z","department-08":"m 440.07,60.88 c -1.81,2.16 -4.2,3.74 -5.88,5.87 0.42,3.23 -0.62,6.85 -4.6,6.61 -2.61,1.4 -5.4,3.78 -8.53,2.23 -2.57,-0.31 -6.87,-3.07 -8.21,0.49 -1.09,2.27 2.57,2.05 1.26,4.47 -0.9,1.91 -2.03,4.96 -1.4,6.42 2.68,1.57 -1.58,4.47 -2.94,5.51 -2.03,1.01 -1.06,5.37 -4.36,3.7 -3.54,0.85 2.51,3.79 -0.29,5.51 1.51,0.87 0.58,2.56 -0.65,3.44 -0.53,1.71 1.98,3.37 -0.03,4.16 0.01,4.05 5.16,0.95 6.98,2.81 3.3,0.55 4.18,4.27 7.37,4.91 1.8,0.07 3.13,4.15 6,2.59 2.07,-0.07 4.96,-2.29 5.47,0.74 0.38,2.71 2.61,2.41 4.09,0.8 2.57,1.18 5.4,0.24 7.56,1.64 0.31,-2.7 3.11,-2.45 4.13,-0.68 1.4,-1.13 3.89,-1.64 4.64,-3.09 -2.15,-1.79 -0.62,-5.71 2.04,-5.88 0.24,-1.22 -1.21,-1.95 0.54,-2.89 0.24,-2.32 -1.77,-3.52 -2.04,-5.72 1.86,-0.63 0.83,-2.98 2.1,-3.97 -0.49,-2.87 2.16,-0.91 2.97,0.03 2.69,-1.68 3.87,3.39 6.05,0.41 0.28,-2.43 4.57,-1.6 3.3,-4.01 -0.97,-0.75 -4.08,1.55 -3.04,-1.15 1.75,-1.77 -2.34,-4.79 -3.97,-3 -1.63,-0.09 -2.52,-1.03 -3.35,-1.82 -2.04,-0.2 -1.16,-4.65 -4.28,-3.56 -2.09,-0.97 -3.75,-3.12 -6.22,-1.46 -1.91,0.12 -3.56,-0.3 -2.44,-2.42 -2.07,-2.68 2.55,-6.08 -1.42,-8.03 -4.13,-0.79 1.05,-4.77 -0.06,-7.24 0.2,-2.35 3.01,-3.4 2.16,-5.95 -1.43,-0.71 -2.14,0.48 -2.93,-1.47 z","department-55":"m 466.47,97.47 c -1.56,1.83 -3.96,2.91 -5.49,4.69 -1.73,-0.62 -3.36,-2.29 -5.13,-1.66 -3.57,-3.74 -2.07,3.57 -4.83,4.43 1.86,1.88 2.97,4.89 1.69,6.85 0.61,2.43 -4.88,3.04 -2.52,6.02 2.38,3.31 -6.19,2.92 -2.28,6.6 -4.21,1.78 0.99,5.9 0.55,8.83 -0.1,1.57 -1.24,3.24 0.94,2.92 1.75,1.64 -1.92,3.15 0.48,3.93 0.25,3.59 -6.19,2.07 -5.18,5.89 1.08,1.97 -0.23,3.47 -1.14,4.72 1.38,2.47 5.49,3.27 5.15,6.61 0.23,1.76 -1.52,5.98 0.78,6.29 1.9,-2.79 1.64,2.85 3.89,1.37 2.31,2.74 5.53,4.67 8.96,5.55 2.27,1.43 4.35,3.02 5.92,5.23 2.69,2.59 4.85,-1.27 7.77,-0.65 1.95,-0.75 1.99,-2.61 4.21,-1.43 3.14,0.06 4.5,-5.18 1.4,-6.29 -3.87,-2.46 6.35,-3.69 1.46,-4.42 -1.47,-2.21 0.74,-5.44 -1.65,-7.38 0.52,-3.01 3.49,-5.5 2.03,-8.71 1.74,-1.41 -2.37,-3.07 0.56,-4.22 1.59,-0.69 4.2,-1.75 1.55,-3.18 -1.32,-1.7 3.57,-5.15 -0.4,-5.57 1.51,-1.93 -0.24,-3.53 -1.91,-2.99 -2.09,-1.69 1.38,-6.16 -1.64,-5.8 -0.54,-2.63 -0.07,-4.79 1.7,-6.78 -2.19,-0.64 -1.63,-2.43 -1.84,-4.23 -1.39,-1.72 -2.89,-6.03 -5.8,-3.74 -2.4,-0.05 -3.98,1.51 -4.61,0.54 -0.96,-0.51 -0.02,-0.62 -1.25,-1.61 0.46,-1.47 -0.85,-2.06 -0.1,-2.7 -0.17,-2.17 1.28,-0.21 0.11,-1.81 -0.06,-2.69 -0.83,-5.88 -3.37,-7.28 z","department-54":"m 483.26,101.56 c -1.75,2.39 -6.72,-0.76 -7.03,2.38 -2.62,-1.44 -7.36,1.12 -6.17,4.43 0.74,4.88 5.26,0.58 8.1,1.48 2.96,1.01 3.57,5.58 4.1,7.38 3.12,1.31 -1.93,3.72 -0.52,5.95 -0.87,2.35 2.62,1.44 1.12,3.56 0.09,2.56 -0.17,4.4 2.68,4.39 0.95,1.44 -0.85,2.5 1.32,3.1 0.08,2.43 -2.65,4.77 0.06,6.73 -1.86,1.53 -5.42,2.68 -2.94,4.96 -0.32,3.14 0.42,6.53 -2.29,8.78 0.3,2.26 1.85,3.57 0.92,5.93 -0.21,2.42 4.1,2.54 0.74,3.73 -2.75,0.52 -2.79,3.37 -0.09,3.76 0.33,2.01 0.1,5.32 3,2.95 5.39,-1.2 1.3,5.69 5.29,7.31 -0.38,3.55 5.14,2.54 6.11,0.87 0.8,0.45 2.56,2.67 3.02,-0.32 0.4,-3.41 3.98,0.7 5.58,-2.34 2.07,-1.7 2.85,1.78 5.26,0.83 2.41,0.96 5.78,-1.97 8.72,-1.33 -0.11,-2.51 2.69,-4.44 3.49,-1.11 1.87,2.12 5.7,3.02 8.46,2.03 1.11,-2.51 3,0.55 4.43,-2.06 1.4,-3.3 8.67,-2.58 5.72,-7.33 -1.28,-1.26 -2.12,-2.52 -2.84,-3.74 -2.12,0.62 -3.12,-2.23 -5.19,-0.6 -3.43,-1.47 -6.2,-3.18 -9.79,-3.87 -0.04,-2.22 -3.9,-2.63 -5.43,-4.68 -2.97,-0.67 -5.52,-2.5 -8.38,-2.2 -1.35,-2.37 -4.49,-3.45 -2.73,-6.5 1.93,-3.82 -4.9,-3.21 -7.26,-3.68 -1.33,-1.55 -2.62,-2.04 -4.55,-3.04 0.53,-3.54 -7.57,-4.55 -4.54,-8.33 3.1,1.07 1.22,-3.19 3.24,-3.88 -1.85,-1.34 -2.22,-2.92 0.05,-3.88 0.24,-1.64 -0.87,-4.88 -1.53,-5.53 -2.45,-0.97 -0.9,-3.36 -2.63,-4.79 -0.94,-2.62 2.2,-6.94 -2.47,-7.44 -1.91,-1.02 -2.61,-3.63 -5,-3.91 z","department-57":"m 503.4,104.95 c -3.5,0.04 -5.26,4.42 -8.98,3.78 -1.89,-0.4 -2.66,-4.83 -4.84,-2.71 4.17,0.85 -0.69,5.81 2.03,8.08 0.95,1.12 1.47,1.12 0.16,1.85 2.72,1.47 3.97,5.18 2.78,8.12 -3.16,1.23 2.9,3.39 -0.76,4.28 0.68,2.17 0.05,3.22 -2.29,2.94 -2.22,3.61 4.41,3.78 4.47,6.79 0.32,2.5 4.34,1.92 4.61,4.09 2.63,0.22 7.9,-0.18 8.05,3.09 -1.51,2.09 -1.02,3.76 1.16,4.61 -0.07,2.41 2.71,3.1 4.16,2.64 2.31,1.86 5.93,1.31 7.61,4.01 3.25,1.89 6.08,3.97 9.68,5.11 1.62,1.34 4.4,1.49 5.37,1.07 1.15,1.63 4.32,0.61 3.99,3.06 2.04,2.55 6.14,5.26 8.81,1.93 1.69,-2.04 5.6,-6.38 2.03,-8.09 -0.63,-2.26 4.24,-5.88 0.71,-8.42 -2.28,-1.08 -5.5,-4.67 -6.48,-0.31 -1.32,2.17 -2.68,0.9 -2.94,-0.66 -3.5,-1.06 4.07,-2.79 -0.09,-3.01 -2.21,-1.11 -5.81,-2.3 -5.04,-4.57 1.13,0.06 2.3,-2.29 3.7,-2.54 0.74,-1.99 0.82,-7.28 3.45,-6.47 0.09,2.59 1.3,4.57 3.75,4.84 3.24,0.28 5.22,3.37 8.36,2.73 2.95,-1.6 5.64,0.34 8.22,0.72 1.73,-1.99 3.39,-5.75 3.26,-7.88 -3.15,-1.08 -5.79,-2.77 -6.37,-6.36 -2.47,-1.1 -4.98,-1.26 -6.78,1.45 -3.22,2.32 -7.72,1.44 -11.17,-0.38 -0.64,3.79 -3.96,0.62 -3.06,-1.79 -1.61,-2.56 -5.77,-3.52 -8.36,-2.33 2.56,4.39 -5.29,4.06 -5.55,1.2 0.78,-2.3 -2.24,-2.11 -2.29,-4.46 -1.24,-2.84 -6.04,-4.38 -3.87,-7.88 -2.52,-2.26 -3.82,-6.64 -8.27,-6.11 -4.17,1.53 -5.59,-3.04 -9.23,-2.45 z","department-67":"m 544.44,133.33 c -2.55,1.2 -1.86,5.34 -3.54,7.57 -2.79,-0.45 -3.98,5.32 -0.38,4.93 0.87,1.03 5.75,1.83 2.14,2.53 -1.78,1.5 1.91,2.4 0.8,3.44 3.07,0.38 2.8,-5.61 5.59,-2.68 1.27,0.5 2.75,1.06 3.36,2.31 3.21,1.88 -0.45,5.47 -1.04,7.67 0.4,1.75 3.37,1.12 1.47,2.94 -0.9,2.92 -2.34,6.34 -5.54,7.14 -1.52,-0.27 -6.22,0.31 -2.38,1.08 1.92,0.81 -2.32,1.02 0.26,2.27 -0.26,2.11 -1.22,5.21 -0.98,7.34 -1.59,2.69 3.49,1.95 4.06,2.53 1.12,2.38 5.28,1.06 5.74,4.01 2.04,-0.84 -0.91,2.57 1.9,1.72 3.01,0.58 6.32,2.58 6.2,5.56 1.67,1.12 3.39,4.4 5.2,1.29 0.87,-3.2 3.75,-5.3 4.22,-8.66 0.15,-2.7 3.74,-3.64 2.22,-6.76 -0.27,-3.01 1.17,-6.05 2.5,-8.7 1.39,-2.29 -0.7,-5.94 1.56,-8.31 1.96,-2.54 5.71,-3.61 6.25,-7.2 0.97,-1.38 2.5,-0.59 3.09,-2.39 3.71,-1.2 3.61,-5.01 5.11,-7.95 0.24,-2.03 5.28,-4.42 1.59,-4.91 -3.51,-0.14 -6.34,-2.15 -9.28,-3.81 -2.69,-1.53 -5.76,0.29 -8.43,-1.4 -2.54,1.19 -6.23,-0.86 -8.22,1.79 -0.69,2.41 -2.45,7.76 -5.69,4.83 -2.43,-2.51 -5.76,1.35 -8.43,-0.25 -1.12,-1.59 -3.01,-2.5 -4.57,-2.09 -2.06,-1.13 -5.18,-2.13 -4.56,-5.04 0.33,-0.23 0.21,-0.84 -0.21,-0.81 z","department-88":"m 543.7,170.72 c -3.31,1.38 -6.33,2.9 -8.64,5.73 -1.29,0.67 -1.97,-1.71 -3,0.67 -1.48,2.53 -4.46,-1.14 -6.53,-0.37 -3.07,0.39 -1.42,-5.29 -4.45,-2.86 -1.72,1.06 0.93,4.33 -2.07,2.2 -1.78,0.74 -4.05,0.76 -5.72,1.72 -1.57,1.83 -1.69,-1.56 -3.59,-0.23 -1.77,0.14 -2.17,-3.2 -3.48,-0.63 -1.05,2.66 -5.79,-1 -5.2,1.97 -0.89,2.75 -2.59,1.71 -3.28,0.37 -0.1,2.4 -3.59,0.58 -5.16,1.87 -1.7,-0.72 0.13,-3.65 -2.1,-3.15 -3.28,-1.76 1.05,-7.74 -3.76,-6.9 -1.91,1.57 -3.93,0.03 -4.94,2.56 -1.62,0.54 -3.6,-1.45 -4.31,0.83 -0.98,2.28 -4.98,-0.54 -5.76,2.63 -1.49,-1.12 -4.76,0.24 -4.44,1.84 2.72,-0.76 -1.5,4.16 1.48,2.83 2.58,-2.8 4.27,0.92 5.47,2.86 0.99,2.29 2.44,-0.84 3.66,1.62 0.19,1.46 -0.14,2.91 2.21,2.73 1.05,0.81 2.84,3.4 0.16,2.99 -1.16,2.1 -0.8,4.9 -2.74,6.18 0.01,1.72 3.18,0.08 3.76,2.45 2.71,0.96 3.73,3.61 3.02,6.15 1.1,2.31 3.31,-2.88 3.5,0.86 1.43,3.89 3.56,-4.88 4.18,-0.76 -1.87,1.59 0.22,2.12 0.99,0.26 2.44,-0.34 2.63,-4.83 6.01,-3.79 2.78,-2.08 1.94,3.16 3.04,3.81 1.67,1.1 3.1,2.11 4.88,0.16 2.8,0.02 6.14,-1.3 7.82,1.99 0.57,3.89 4.42,1.42 5.62,-0.82 2.89,-1.35 3.54,3.7 6.5,4.05 2.19,0.9 3.46,2.55 5.11,3.85 2.21,-0.74 5.19,-1.96 3.36,-4.73 1.56,-1.66 0.35,-4.44 1.89,-6.56 0.98,-1.7 3.7,-2.62 3.88,-5.25 1.52,-1.58 3,-3.43 1.6,-5.14 1.49,-2.96 3.07,-5.84 4.54,-8.75 0.95,-1.35 2.26,-2.99 0.28,-4.02 -1.87,1.29 -5.67,-0.97 -2.92,-2.78 -2.18,-1.78 1.85,-5.54 -0.21,-7.07 -0.57,-0.2 -0.01,-1.38 -0.66,-1.38 z","department-52":"m 446.82,158.96 c -1.69,0.91 -3.13,-0.45 -4.82,1.2 -1.12,-0.83 -4.57,-0.69 -3.54,0.9 2.8,-1.2 4.68,3.32 1.31,3.37 -2.26,0.28 -2.04,1.83 -1.08,2.97 1.74,4.14 -5.82,-1.2 -5.38,2.99 -0.5,1.16 -1.78,3.02 -1.22,3.88 2.37,0.94 2.16,4.62 5.26,4.46 -0.97,2.99 5.41,1.68 2.86,4.7 2.62,1.68 0.37,4.97 1.38,6.77 1.02,1.49 -1.35,3.52 -0.54,5.29 0.17,4.44 -5.3,-1.1 -6.39,2.93 -2.48,1.02 2.31,2.62 0.41,4.4 1.49,1.78 5.61,0.36 3.83,3.87 2.37,-0.59 4.42,1.86 1.79,3.34 0.65,2.75 2.75,-2.78 3.64,0.5 0.65,2.55 3.6,4.14 3.33,6.7 -1.31,0.89 -4.49,2.9 -1.32,2.84 1.47,1.51 -1.34,5.58 1.92,4.46 1.63,-2.16 2.42,0.63 2.94,1.7 1.79,1.42 3.81,1.4 4.82,-0.8 0.79,0.32 -0.13,2.53 1.75,2.49 0.96,1.39 3.18,1.14 1.74,3.15 0.89,2.65 3.78,-3.01 5.24,-0.13 1.75,-1.89 1.15,-6.06 4.57,-5.11 1.28,-1.4 3.49,1.3 4.33,-1.4 1.59,-1.92 1.63,2.72 3.95,1.22 2.18,-0.12 2.71,-1.17 2.09,-3.01 0.93,-1.34 1.22,-2.86 -0.38,-3.56 -0.59,-2.58 1.37,-2.98 3.06,-3.3 -0.71,-3.1 2.46,-1.42 3.57,-1.95 -0.16,-2.01 1.36,-3.53 2.99,-3.36 -0.29,-2.42 -2.17,-4.47 -4.19,-2.78 -1.26,-1.95 0.41,-5.52 -3.04,-6.35 -1,-1.34 -2.58,-2.41 -4.02,-2.13 -1.13,-1.43 1.6,-1.92 0.97,-3.42 1.1,-1.79 0.88,-4.33 2.89,-4.52 -0.46,-2.76 -4.86,-1.71 -3.68,-4.79 -1.34,-2.4 -3.06,0.93 -3.95,-2 -1.16,-2.97 -3.69,-4.38 -6.2,-2.11 -0.59,-1.91 1.12,-3.24 -1.32,-3.92 1.85,-0.41 3.47,-2.52 0.93,-3.26 -0.38,-1.87 -1.16,-2.02 -2.78,-2.58 -1.73,-3.16 -6.41,-1.82 -8.19,-4.99 -2.15,-0.46 -2.78,-2.81 -5.04,-3 -0.12,-2.21 -1.01,-1.61 -2.26,-0.66 -2.79,-0.35 1.41,-5.66 -2.22,-4.93 z","department-70":"m 499.88,202.89 c -2.63,0.3 -4.89,2.11 -5.97,4.12 -0.94,0.91 -3.97,2.32 -2.12,-0.03 0.13,-1.92 -1.88,-0.34 -1.76,0.64 -1.02,1.34 -0.98,3.88 -3.06,3.55 -0.55,1.66 -1.23,4.46 -3.43,2.67 -1.42,0.7 -1.13,3.58 -3.32,2.54 -2.26,2.15 1.83,3.96 -0.2,6.21 1.24,3.12 -4.32,4.77 -5.32,1.82 -0.58,-0.92 -2.73,2.87 -4.37,1.01 -1.22,1.14 -4.49,-0.07 -3.8,2.59 -2.11,1.09 0.1,3.94 1.06,1.41 2.21,-1.57 4.14,3.91 2.96,5.69 -0.66,2.07 -2.95,2.72 -4.23,3.24 1.21,1.06 -1.76,2.05 0.86,1.83 2.25,0.29 -0.16,6.1 3.34,4.24 1.79,2.16 -1.88,5.33 1.36,5.71 1.44,2.16 3.91,4.38 6.57,2.71 2.27,-0.86 4.59,0.16 6.71,-1.75 2.79,-1.14 5.72,-4.18 8.47,-2.76 2.5,-0.09 4.56,-1.97 5.85,-3.76 1.83,0.46 2.61,-0.36 2.86,-1.77 2.63,-0.46 5.27,-1.6 5.54,-4.7 2.29,-1.29 5.83,-3.32 7.88,-0.71 1.23,-0.95 5.65,1.5 4.64,-1.81 -0.18,-2.44 4.57,1.54 3.74,-2.01 -0.12,-2.68 3.06,0.48 4.42,0.6 2.85,1.79 2.94,-3.34 1.04,-4.6 1.68,-2.26 -0.76,-5 -0.83,-7.47 -0.79,-2.86 4.43,-4.21 1.79,-6.71 -2.08,-2.66 -6.24,-2.87 -7.71,-6.14 -2.5,-2.92 -3.93,3.02 -6.8,2.39 -1.62,-1.8 -2.57,-4.88 -5.66,-4.53 -2.96,-0.21 -6.08,3.12 -8.15,0.41 -2.4,-0.51 0.23,-4.03 -2.37,-4.63 z","department-21":"m 430.26,202.39 c -2.98,-0.36 -2.28,3.5 -2.89,4.09 -3.52,0.85 -7.72,-0.28 -10.91,1.13 0.12,1.91 0.16,3.7 -1.78,4.39 -1.43,2.57 2.23,2.59 2.78,2.96 0.78,2.82 0.56,7.26 -3.23,7.04 -0.11,2.16 1.99,3.62 -1,3.9 0.72,2.94 -2.41,6.52 -3.86,9.44 -2.44,2.06 0.03,6.34 -3.4,7.86 -0.01,1.52 1.54,3.57 2.08,4.44 2.08,-1.74 -0.71,3.97 0.05,5.35 0.76,2.06 4.84,0.48 4.74,3.88 -1.32,3.42 1.69,6.38 5.01,6.9 1.3,1.42 0.65,2.78 2.51,1.23 2.03,0.22 0.19,2.75 2.63,2.77 2.7,1.39 5.44,1.37 6.15,4.62 1.34,1.99 4.7,1.98 4.57,4.24 2.88,-1.34 6.42,-1.22 9.16,-3.33 2.31,-0.8 6.07,-0.86 8.14,-1.17 2.91,2.58 6.21,-1.12 9.25,-0.89 2.24,-0.61 1.63,-2.43 0.75,-3.34 1.62,-2.89 6.07,-2.65 6.78,-6.47 1.41,-2.73 2.01,-5.54 2.73,-8.48 0.14,-1.92 1.96,-2.74 -0.25,-3.51 0.43,-2.24 1.54,-5.31 -1.69,-5.06 -0.44,-1.89 -1.3,-4.9 -2.86,-4.55 0.22,-3.37 5.14,-1.91 4.96,-5.91 0.76,-2.96 -2.67,-7.08 -4.51,-2.82 -2.22,-0.25 -3.54,-1.43 -5.3,0.74 -2.39,1.02 -0.78,-3.81 -3.53,-3.94 -1.77,-1.18 -0.62,-3.19 -2.39,-0.9 -3.64,2.12 -4.58,-4.93 -7.28,-2.21 -2.89,-0.45 0.78,-4.91 -3.01,-5.07 0.9,-1.64 5.08,-3.23 1.85,-5.04 -1.35,-1.96 -2.46,-6.59 -4.91,-3.77 -2.57,-0.44 2.15,-3.15 -0.94,-3.86 -1.96,-0.39 -2.06,-0.68 -1.78,-2.38 -2.58,-1.59 -5.78,-1.16 -8.59,-2.28 l 0,0 z","department-25":"m 524.75,232.72 c 0.6,3.47 -5.06,1.11 -4.41,4.65 -1.59,0.18 -4.21,0.28 -5.1,0.07 -2.83,-2.93 -7.31,0.27 -8.34,3.45 -1.29,2.51 -4.23,1.18 -5.23,3.59 -1.44,0.48 -2.41,0.42 -2.71,1.78 -2.17,0.44 -3.6,3.16 -6.39,2.02 -3.22,-0.12 -5.72,2.6 -8.74,3.57 -3.03,0.32 -3.9,3.34 -1.23,5.03 3.1,1.51 4.18,4.87 1.57,7.47 0.1,1.6 -1.31,3.03 -1.29,4.53 1.26,1.41 2.75,-3.16 3.11,0.11 0.9,2.49 4.55,-0.29 4.63,2.13 3.8,0.81 1.81,4.9 4.19,7.22 0.91,2.91 5.17,1.46 6.56,4.25 3.53,2.93 0.14,6.33 -2.84,7.54 -1.4,1.89 0.42,3.62 -1.39,5.19 -0.75,2.81 3.69,5.73 3.76,1.72 2.39,-2.03 4.37,-4.58 7.12,-6.18 2.26,-1.76 5.45,-2.91 6.57,-5.72 -0.74,-2.93 1.48,-6 -0.08,-9.15 0.11,-4.19 6.86,-3.29 9.42,-5.9 2.72,-1.98 2.28,-6.41 5.92,-7.6 2.76,-2.22 4.53,-5.44 7.39,-7.56 -0.61,-3.67 3.46,-4.22 4.78,-6.73 -0.15,-3.82 -4.97,0.07 -7.07,-1.46 0.7,-1.9 3.21,-4.13 1.45,-6.71 -0.76,-1.48 -0.67,-2.19 0.61,-2.92 -0.66,-3.47 -5.22,-3.74 -7.78,-2.34 -1.29,-1.12 -3.19,-0.98 -4.5,-2.06 z","department-2B":"m 591.47,517.82 c -3.8,0.59 0.96,5.58 -2.34,7.11 0.41,2.37 -1.56,4.36 0.27,6.51 0.91,2.65 0.16,5.25 -1.21,7.52 -1.7,1.4 -2.28,-3.59 -4.88,-2.82 -2.72,-0.68 -5.78,0.73 -6.51,3.55 -0.96,3.57 -5.53,1.85 -7.86,3.52 -1.89,1.06 -3.87,1.71 -4.61,3.96 -1.27,0.02 -3.62,-0.97 -3.17,1.52 -0.83,1.46 -4.01,3 -1.97,4.89 -0.74,1.76 -0.34,3.49 -2.71,3.49 -0.21,1.44 -2.22,2.88 0.58,2.71 2.53,1.11 5.12,2.12 7.69,3.24 1.52,0.72 3.8,-1.59 3.24,1.35 1.14,3.16 4.05,4.22 6.73,6.16 3.36,0.28 1.41,5.5 4.55,6.47 1.71,1.96 0.79,6.36 4.83,5.7 0.18,2.3 0.59,4.8 0.39,7.09 3.14,0.81 -1.89,5.25 2.18,4.96 1.78,0.52 2.82,0.98 4.16,-0.94 3.62,-1.36 0.49,-5.59 2.73,-7.46 1.3,-1.69 2.64,-3.75 1.77,-5.45 1.89,-0.05 4.02,-2.43 3.98,-4.66 -3.67,0.56 1.98,-2.55 0.4,-4.61 0.47,-4.5 -0.6,-8.88 -1.01,-13.3 -0.14,-3.75 0.34,-7.67 -0.54,-11.31 -2.55,0.11 -3.67,-4.24 -3.35,-6.45 -0.43,-3.66 1.56,-7.1 1.67,-10.65 -0.63,-3.67 -1.07,-7.33 -1.55,-11 -0.76,-1.12 -2.26,-1.12 -3.47,-1.1 z","department-2A":"m 553.92,559.49 c -0.76,0.55 -0.1,3.85 1.13,1.96 1.53,-0.6 3.16,1.13 1.04,1.7 0.18,1.06 4.56,1.95 3.28,3.75 -1.7,0.83 -4.95,1.13 -5.71,2.43 1.47,0.55 1.4,3.03 1,3.92 1.78,0.17 -1.16,0.99 0.63,1.63 0.63,1.3 2.89,1.78 3.93,2.6 2.01,-0.69 1.72,2.93 3.31,3.71 -1.37,1.54 -4.97,1.78 -3.83,4.58 -1,1.17 -4.84,0.3 -2.28,2.46 0.58,1.07 -0.7,3.38 1.57,2.3 2.41,0.81 4.08,-2.02 6.12,-1.18 1.97,1.46 -0.22,3.37 0.14,5 -2.75,0 1.8,1.85 -1.02,2.54 -3.01,0.03 -0.83,3.83 -3.9,3.99 -1.68,0.23 1.57,0.7 1.54,1.65 1.76,-0.59 3.68,-1.62 3.39,1.11 1.89,0.2 4.59,0.62 6.1,1.72 -1.54,1.28 -2.78,3.54 -5.39,3.37 -1.08,2.57 -0.44,5.65 2.26,6.65 0.47,1.48 3.07,1.49 4.07,2.79 2.06,-0.18 4.37,2.72 5.98,1.13 0.61,-0.03 -0.33,2.68 1.6,1.9 1.78,0.68 -1.94,3.73 1.39,3.43 1.92,2.48 5.07,2.16 5.35,-1.31 -0.28,-1.01 -2.21,1.4 -1.26,-0.4 -1.13,-2.4 4.15,-2.95 2.21,-5.91 -0.37,-2.45 4.29,-3.07 3.59,-5.68 -1.11,-1.47 -3.9,2.07 -2.85,-0.95 0.15,-2.4 3.01,0.56 2.82,-1.99 2.59,-0.18 0.07,-3.36 2.35,-4.13 0.15,-3.28 0.23,-6.85 -0.14,-10.22 -1.57,-1.53 -3.07,3.01 -4.83,0.98 -2.75,0.63 -3.37,-1.87 -1.99,-3.78 0.22,-1.35 -2.56,-0.55 -1.08,-2.17 -0.85,-2.32 1.32,-7.41 -2.67,-6.39 -2.45,-0.98 -0.65,-4.44 -2.73,-5.65 -2.85,-1.24 -1.36,-6.19 -4.82,-6.53 -1.64,-1.96 -4.77,-2 -5.5,-4.65 -1.21,-1.02 -0.51,-3.66 -2.85,-2.55 -2.75,-0.46 -5.3,-1.82 -7.74,-2.91 -1.28,-0.57 -2.84,-0.72 -4.21,-0.9 z","department-66":"m 350.33,540.74 c -2.96,0.38 -4.31,2.8 -5.6,5.05 -3.53,0.71 -7.2,-0.41 -10.77,-0.57 -2.35,1.71 -6.82,-1.75 -7.77,1.56 0.2,2.13 1.85,4.41 0.81,6.44 -1.56,1.89 -4.34,1.3 -5.68,3.47 -1.35,1.08 -2.18,1.99 -3.65,0.52 -2.39,0.04 -5.76,-0.02 -7.25,1.69 -0.99,2.71 -4.23,1.36 -5.45,3.77 -3.15,-0.36 -6.54,2.28 -5.14,5.7 2.43,0.62 5.15,0.58 6.86,2.76 2.19,0.36 3.92,1.1 3.79,3.75 0.25,2.56 3.21,3.71 5.32,2.52 1.96,-1.04 2.2,-4.45 4.97,-3.96 2.58,-0.15 5.03,-1.38 7.33,0.7 1.62,1.14 4.07,1.03 4.94,3.03 1.26,1.86 4.32,3.14 5.35,0.56 1.73,0.75 6.82,2.34 4.14,-1.14 0.71,-2.52 4.05,-2.95 6.3,-2.62 1.56,-1.63 3.48,-3.18 5.81,-2.8 0.99,-2.12 3.1,-0.12 4.88,-0.88 1.63,1.07 2.93,3.67 5.54,2.51 3.2,-0.39 -1.16,-3.71 -1.44,-5.38 -2.92,-1.29 -2.81,-4.63 -3.06,-7.37 0.78,-2.2 -2.64,-2.22 -1.43,-4.12 2.29,1.97 1.16,-2.93 1.55,-4.24 0.36,-2.22 -0.89,-3.89 -3.17,-3.82 -1.26,-1.48 0.41,-4.01 -2.35,-4.33 -1.89,-0.44 -3.32,-1.87 -4.85,-2.81 z", -"department-01":"m 445.43,302.59 c -1.44,3.02 -1.75,6.16 -3.18,9.18 -0.78,3.16 -1.85,6.34 -2.91,9.5 -0.74,1.88 -1.31,3.79 -0.09,5.37 -0.73,2.05 -2.97,3.67 -1.95,5.9 -1.67,2.26 0.87,5.73 -1.18,7.83 1.88,0.01 3.46,1.61 3.99,2.62 2.16,-1.53 3.89,1.88 4.07,3.41 0.92,1.26 -0.03,3.77 2.46,2.77 2.89,0.46 5.98,-0.89 8.76,0.39 1.35,2.24 3.89,2.93 5.42,0.31 1.18,-1.7 1.66,-5.65 4.09,-5.27 2.02,1.24 3.75,2.88 3.08,4.98 1.95,2.32 3.67,4.97 5.93,6.73 1.33,1.23 0.17,0.8 -0.53,0.61 0.61,1.8 3.11,2.49 3.34,4.83 0.97,0.84 1.38,-1.89 2.87,-1.59 -0.3,-1.63 1.67,-2.68 0.77,-4.34 3.81,0.96 3.71,-3.34 3.75,-5.95 0.89,-3.44 1.98,-6.82 2.27,-10.31 -1.07,-2.3 -1.36,-4.85 -1.09,-7.47 0.3,-1.5 0.9,-3.58 2.27,-1.4 2.48,1.01 0.53,-3.51 3.59,-2.7 2.71,-0.13 3.55,-3.26 1.37,-4.78 1.32,-2.8 5.95,-1.73 6.82,-4.09 -1.66,-3.05 4.61,-7.07 -0.2,-9.19 -2.62,-2.47 -4.13,2.14 -6.1,3.38 -0.9,2.11 -2.5,3.05 -3.65,4.53 -1.99,2.56 -5.47,0.79 -8.11,1.25 0.84,-3.04 -2.73,-3.43 -3.76,-4.72 -2.02,1.65 -3.16,4.49 -6.19,4.68 -2.73,0.46 -1.81,-2.02 -1.56,-3.51 -1.42,0.56 -1.69,-0.36 -2.26,-1.49 -0.06,1.35 -0.96,2.99 -0.83,0.6 -1.4,-1.01 -1.59,-2.59 -1.58,-3.72 -1.32,-0.93 -3.93,-1.28 -2.29,-3.07 -1.76,-1.43 -5.48,-1.31 -5.42,-4.72 -2.13,-0.62 -4.08,0.9 -6.23,1.42 -1.93,-0.36 -3.28,-2.81 -5.2,-1.46 0.07,-0.1 -0.3,-0.68 -0.54,-0.51 z","department-39":"m 472.04,250.64 c -2.16,1.79 -1.36,5.28 -2.94,7.45 0.09,2.73 -2.31,4.73 -3.53,7.05 -3.03,-0.47 -5.35,3.74 -3.19,4.71 -2.06,0.47 -3.73,5.36 -0.52,4.7 1.33,0.76 0.69,4.17 3.48,3.21 1.68,-0.66 1.23,2.18 3.27,2.09 2.46,1.35 -0.2,2.67 -1.91,2.03 -2.06,-0.51 -4.46,1.94 -1.6,2.77 2.43,1.33 -1.33,3.03 1.08,4.08 0.89,2.1 1.19,3.82 2.13,6.05 -2.12,0.95 -0.43,3.73 -3.06,3.72 -1.86,2.41 0.74,4.14 2.3,5.69 -0.13,2.93 -6.18,0.76 -4.86,4.67 0.41,1.69 3.59,1.72 2.72,3.84 0.3,1.7 2.14,1.5 2.39,1.42 0.16,2.17 2.98,0.53 1.91,2.98 -0.9,3.13 3.87,1.82 4.85,0.12 1.46,-0.55 2.58,-4.59 4.24,-1.99 2.29,0.06 2.46,3.2 3.09,3.77 2.93,-0.04 7.08,0.91 8.5,-2.49 2.02,-1.97 3.8,-4.92 6.21,-7.02 2.27,-1.54 0.39,-4.74 2.54,-6.4 1.4,-1.49 3.11,-3.84 -0.06,-3.89 -2.06,-1.17 -3.31,-3.74 -0.87,-5.29 0.4,-1.53 -1.44,-3.09 0.76,-4.19 2.73,-1.36 6.13,-4.43 2.26,-6.76 -1.6,-2.02 -3.91,-2.65 -5.92,-3.04 -1.27,-2 -1.73,-3.98 -2.6,-5.89 -0.82,-0.25 1.22,-2.33 -1.1,-2.27 -1.84,-1.29 -4.2,-1.14 -5.91,-2.76 -0.62,-1.82 -0.09,-1.2 -1.26,-0.03 -2.05,2.08 -3.47,-2.98 -0.74,-2.02 0.76,-1.1 -0.4,-3.36 1.4,-4.52 2.37,-3.1 -2.64,-4.46 -3.59,-6.62 -0.37,-1.97 -2.06,-4.51 -3.97,-2.34 -2.56,0.88 -4.13,-1.12 -5.49,-2.82 z","department-68":"m 549.43,183.82 c -2.25,1 -2.94,3.73 -3.79,5.81 -0.9,2.15 -3.75,4.26 -2.11,6.74 -0.93,2.22 -2.92,4.25 -3.93,6.64 -2.43,1.18 -3.51,3.7 -3.19,6.38 0.13,1.69 -1.55,2.36 -0.44,3.95 0.77,2.64 -4.62,1.97 -2.6,4.52 2.13,1.91 5.37,1.9 7.52,3.96 0.67,1.81 1.6,4.32 0.06,6.09 -1.78,1.43 -0.08,4 1.85,2.88 1.83,0.98 2.47,3.66 3.32,5.16 -0.72,2.04 1.34,2.1 2.39,2.44 -0.32,1.38 -1.23,4 1.33,3.32 1.03,1.33 2.07,1.29 3.35,0.31 2.56,-0.08 5.85,0.35 7.17,-2.31 -0.73,-1.24 -0.96,-2.18 0.78,-1.43 2.66,0.8 0.35,-2.42 2.52,-2.38 0.82,-0.85 -1.99,-1.47 0.03,-2.05 1.88,-1.02 4.21,-2.78 2.05,-4.99 -1.7,-1.63 -3.7,-3.88 -1.43,-6.04 0.91,-2.16 -1.41,-4.57 0.56,-6.71 0.67,-2 0.44,-4 1.78,-5.83 -0.03,-2.09 3.45,-4.94 0.43,-6.95 -3.06,-1.46 0.88,-6.62 -2.19,-7 -1.65,-0.56 -1.53,-2.31 -3.25,-2.51 -0.17,-1.94 -0.33,-3.93 -2.69,-4.35 -2.09,-1.1 -4.78,-1.23 -5.71,-3.58 0.07,-2.15 -2.48,-1.52 -3.79,-2.06 z","department-90":"m 532.37,216.22 c -0.55,0.23 -0.49,0.97 -0.95,1.33 -0.62,0.8 -1.51,1.36 -1.95,2.3 -0.77,0.99 -0.8,2.48 -0.08,3.5 -0.03,0.67 0.48,1.24 0.41,1.93 -0.01,0.83 -0.07,1.76 0.62,2.36 0.29,0.29 0.48,0.66 0.1,0.97 -0.14,0.38 -0.57,0.43 -0.76,0.72 -0.05,0.5 0.53,0.78 0.56,1.29 0.18,0.47 0.52,0.85 0.75,1.28 0.26,0.15 0.87,0.53 0.4,0.81 -0.7,0.47 -0.05,1.72 0.76,1.5 0.78,0.02 1.57,-0.19 2.27,-0.46 0.8,0.18 1.42,0.82 1.45,1.64 0.04,0.86 1.41,0.54 1.43,1.42 0.01,0.47 0.26,1.11 -0.01,1.5 -0.5,0.35 -0.45,-0.64 -0.86,-0.74 -0.5,-0.2 -0.94,0.42 -0.64,0.85 0.2,0.34 -0.18,0.93 0.34,1.04 0.43,0.61 0.84,1.44 0.71,2.19 -0.36,0.5 0.42,0.64 0.75,0.45 0.83,-0.18 1.47,-0.8 2.26,-1.07 0.62,-0.6 -0.22,-1.42 -0.38,-2.05 -0.12,-0.36 -0.45,-1.06 0.17,-1.13 0.42,-0.08 0.81,-0.3 1.15,-0.48 0.96,0.2 1.82,0.91 2.86,0.71 1.1,-0.11 2.47,-0.62 2.45,-1.94 0.16,-1 -0.69,-1.62 -1.41,-2.13 -0.16,-0.46 -0.02,-1.09 -0.52,-1.4 -0.45,-0.55 -0.43,-1.71 -1.38,-1.73 -0.72,-0.12 -1.46,0.05 -1.95,0.59 -0.4,0.24 -0.3,-0.53 -0.6,-0.62 -0.31,-0.79 -0.34,-1.73 0.1,-2.47 0.16,-0.36 0.01,-1.1 0.63,-0.98 0.41,0.01 0.38,-0.37 0.4,-0.64 0.61,-1 -0.15,-2.14 -0.3,-3.13 0.23,-0.47 0.38,-1.05 -0.1,-1.44 -0.8,-1.1 -2.3,-1.18 -3.29,-2.06 -0.38,-0.36 -0.84,-0.58 -1.33,-0.6 -0.84,-0.67 -2.13,-0.38 -2.92,-1.15 -0.45,-0.63 -0.74,-1.4 -0.95,-2.13 -0.05,-0.04 -0.12,-0.05 -0.18,-0.04 z"}}}}),b}); \ No newline at end of file diff --git a/htdocs/public/high/plugins/jquery-mapael/maps/usa_states.js b/htdocs/public/high/plugins/jquery-mapael/maps/usa_states.js deleted file mode 100644 index 7161ecf4..00000000 --- a/htdocs/public/high/plugins/jquery-mapael/maps/usa_states.js +++ /dev/null @@ -1,148 +0,0 @@ -/*! - * - * Jquery Mapael - Dynamic maps jQuery plugin (based on raphael.js) - * Requires jQuery and Mapael - * - * Map of USA by state - * - * @source http://the55.net/_11/sketch/us_map - */ -(function (factory) { - if (typeof exports === 'object') { - // CommonJS - module.exports = factory(require('jquery'), require('mapael')); - } else if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['jquery', 'mapael'], factory); - } else { - // Browser globals - factory(jQuery, jQuery.mapael); - } -}(function ($, Mapael) { - - "use strict"; - - $.extend(true, Mapael, - { - maps :{ - usa_states : { - width : 959, - height : 593, - latLngToGrid: function(lat, lng, phi1, phi2, midLng, scale) { - var pi =Math.PI - , midLat = (phi1 + phi2) / 2 - , n, tmp1, tmp2, tmp3, x, y, p; - - n = (Math.sin(phi1 / 180 * pi) + Math.sin(phi2 / 180 * pi)) / 2; - tmp1 = Math.sqrt(Math.cos(phi1 / 180 * pi)) + 2 * n * Math.sin(phi1 / 180 * pi); - tmp2 = scale * Math.pow(tmp1 - 2 * n * Math.sin(midLat / 180 * pi),0.5) / n; - tmp3 = n * (lng - midLng); - p = scale * Math.pow(tmp1 - 2 * n * Math.sin(lat / 180 * pi),0.5) / n; - x = p * Math.sin(tmp3 / 180 * pi); - y = tmp2 - p * Math.cos(tmp3 / 180 * pi); - - return([x,y]); - }, - getCoords : function (lat, lon) { - var coords = {}, - xOffset, - yOffset, - scaleX, - scaleY, - phi1, - phi2, - midLng, - scale; - if(lat > 51) { // alaska - phi1= 15; - phi2= 105; - midLng = -134; - scale = 530; - coords = this.latLngToGrid(lat, lon, phi1, phi2, midLng, scale); - xOffset = 190; - yOffset = 543; - scaleX= 1; - scaleY= -1; - - } else if (lon < -140) { // hawaii - phi1= 0; - phi2= 26; - midLng = -166; - scale = 1280; - coords = this.latLngToGrid(lat, lon, phi1, phi2, midLng, scale); - xOffset = 115; - yOffset = 723; - scaleX= 1; - scaleY= -1; - } else { - xOffset = -17; - yOffset = -22; - scaleX = 10.05; - scaleY = 6.26; - - coords[0] = 50.0 + 124.03149777329222 * ((1.9694462586094064-(lat* Math.PI / 180)) * Math.sin(0.6010514667026994 * (lon + 96) * Math.PI / 180)); - coords[1] = 50.0 + 1.6155950752393982 * 124.03149777329222 * 0.02613325650382181 - 1.6155950752393982* 124.03149777329222 * (1.3236744353715044- (1.9694462586094064-(lat* Math.PI / 180)) * Math.cos(0.6010514667026994 * (lon + 96) * Math.PI / 180)); - } - return {x : (coords[0] * scaleX + xOffset), y : (coords[1] * scaleY + yOffset)}; - }, - elems : { - "HI" : "m 233.08751,519.30948 1.93993,-3.55655 2.26326,-0.32332 0.32332,0.8083 -2.1016,3.07157 -2.42491,0 z m 10.18466,-3.71821 6.14313,2.58657 2.10159,-0.32332 1.61661,-3.87987 -0.64664,-3.39488 -4.2032,-0.48498 -4.04153,1.77827 -0.96996,3.71821 z m 30.71563,10.023 3.7182,5.49647 2.42492,-0.32332 1.13163,-0.48498 1.45495,1.29329 3.71821,-0.16166 0.96997,-1.45495 -2.90991,-1.77827 -1.93993,-3.71822 -2.1016,-3.55654 -5.8198,2.9099 -0.64664,1.77828 z m 20.20765,8.89137 1.29329,-1.93994 4.68817,0.96996 0.64665,-0.48498 6.14312,0.64664 -0.32332,1.2933 -2.58658,1.45494 -4.36485,-0.32332 -5.49648,-1.6166 z m 5.33482,5.17315 1.93994,3.87987 3.07155,-1.13163 0.32333,-1.61662 -1.61661,-2.10159 -3.71821,-0.32332 0,1.29329 z m 6.95143,-1.13163 2.26326,-2.9099 4.68817,2.42492 4.36485,1.13163 4.36486,2.74824 0,1.93993 -3.55654,1.77828 -4.84985,0.96996 -2.42491,-1.45495 -4.84984,-6.62811 z m 16.65111,15.51947 1.61661,-1.29328 3.39489,1.61662 7.59807,3.55654 3.39489,2.10159 1.6166,2.42492 1.93994,4.36485 4.04153,2.58658 -0.32332,1.2933 -3.87987,3.23322 -4.20319,1.45495 -1.45495,-0.64664 -3.07157,1.77826 -2.42491,3.23323 -2.26326,2.9099 -1.77828,-0.16166 -3.55654,-2.58658 -0.32332,-4.52651 0.64664,-2.42492 -1.61661,-5.65814 -2.1016,-1.77828 -0.16166,-2.58658 2.26326,-0.96996 2.1016,-3.07156 0.48498,-0.96997 -1.61661,-1.77828 -0.32332,-2.1016 z", - "AK" : "m 158.07671,453.67502 -0.32332,85.35713 1.6166,0.96996 3.07157,0.16166 1.45494,-1.13162 2.58658,0 0.16167,2.9099 6.95143,6.78977 0.48499,2.58658 3.39488,-1.93994 0.64665,-0.16166 0.32332,-3.07156 1.45494,-1.61661 1.13164,-0.16166 1.93993,-1.45496 3.07156,2.1016 0.64665,2.90991 1.93993,1.13162 1.13163,2.42492 3.87988,1.77827 3.39488,5.98147 2.74823,3.87986 2.26326,2.74825 1.45496,3.7182 5.01149,1.77828 5.17317,2.10159 0.96996,4.36486 0.48498,3.07156 -0.96996,3.39489 -1.77828,2.26325 -1.61661,-0.8083 -1.45495,-3.07157 -2.74824,-1.45494 -1.77827,-1.13164 -0.80831,0.80831 1.45495,2.74825 0.16166,3.7182 -1.13163,0.48498 -1.93993,-1.93993 -2.10159,-1.29329 0.48498,1.61661 1.29328,1.77828 -0.8083,0.8083 c 0,0 -0.8083,-0.32332 -1.29328,-0.96997 -0.485,-0.64664 -2.1016,-3.39488 -2.1016,-3.39488 l -0.96997,-2.26326 c 0,0 -0.32332,1.29329 -0.96997,0.96996 -0.64665,-0.32332 -1.29329,-1.45494 -1.29329,-1.45494 l 1.77827,-1.93994 -1.45495,-1.45495 0,-5.0115 -0.8083,0 -0.8083,3.39488 -1.13164,0.485 -0.96996,-3.71822 -0.64665,-3.71821 -0.80831,-0.48498 0.32333,5.65815 0,1.13162 -1.45496,-1.29328 -3.55654,-5.98147 -2.1016,-0.48498 -0.64664,-3.71821 -1.61661,-2.9099 -1.61662,-1.13164 0,-2.26325 2.1016,-1.29329 -0.48498,-0.32332 -2.58658,0.64664 -3.39489,-2.42491 -2.58658,-2.90991 -4.84983,-2.58658 -4.04154,-2.58658 1.2933,-3.23322 0,-1.61661 -1.77828,1.61661 -2.9099,1.13163 -3.71821,-1.13163 -5.65815,-2.42491 -5.49647,0 -0.64664,0.48498 -6.46645,-3.87988 -2.1016,-0.32332 -2.74824,-5.8198 -3.55655,0.32332 -3.55655,1.45495 0.48499,4.52652 1.13162,-2.9099 0.96998,0.32332 -1.45496,4.36485 3.23322,-2.74824 0.64665,1.61661 -3.87987,4.36485 -1.29329,-0.32332 -0.48498,-1.93994 -1.29329,-0.8083 -1.29329,1.13163 -2.74824,-1.77827 -3.07157,2.1016 -1.77826,2.10159 -3.39489,2.1016 -4.68818,-0.16167 -0.48498,-2.10159 3.7182,-0.64665 0,-1.29328 -2.26326,-0.64666 0.96998,-2.42491 2.26325,-3.87987 0,-1.77827 0.16166,-0.80831 4.36486,-2.26326 0.96996,1.29329 2.74825,0 -1.29329,-2.58657 -3.71822,-0.32333 -5.01149,2.74824 -2.42492,3.39488 -1.77827,2.58659 -1.13163,2.26326 -4.20319,1.45494 -3.07157,2.58658 -0.323321,1.61662 2.263257,0.96997 0.808313,2.10158 -2.748249,3.23323 -6.466439,4.2032 -7.759747,4.20319 -2.101597,1.13162 -5.334818,1.13164 -5.334826,2.26325 1.778275,1.29329 -1.454954,1.45495 -0.484982,1.13163 -2.748238,-0.96997 -3.23322,0.16166 -0.808312,2.26326 -0.969963,0 0.323321,-2.42492 -3.556551,1.2933 -2.909899,0.96996 -3.394886,-1.29329 -2.909901,1.93993 -3.233224,0 -2.101597,1.2933 -1.616612,0.8083 -2.101595,-0.32332 -2.58658,-1.13163 -2.263257,0.64665 -0.969967,0.96996 -1.616613,-1.13162 0,-1.93994 3.071564,-1.29329 6.304787,0.64665 4.364853,-1.61662 2.101596,-2.10159 2.909902,-0.64665 1.778273,-0.80831 2.748241,0.16166 1.616612,1.2933 0.969963,-0.32332 2.263257,-2.74824 3.07157,-0.96998 3.39488,-0.64664 1.293294,-0.32332 0.646642,0.48498 0.808312,0 1.293284,-3.71821 4.041533,-1.45494 1.939936,-3.71821 2.263259,-4.52652 1.616615,-1.45495 0.323321,-2.58658 -1.616615,1.29329 -3.394893,0.64665 -0.646642,-2.42492 -1.293284,-0.32332 -0.969973,0.96996 -0.16166,2.90991 -1.454955,-0.16167 -1.454944,-5.8198 -1.293294,1.29328 -1.131624,-0.48498 -0.32332,-1.93993 -4.041533,0.16166 -2.101596,1.13163 -2.586578,-0.32332 1.454944,-1.45495 0.484981,-2.58658 -0.646641,-1.93994 1.454954,-0.96996 1.293284,-0.16166 -0.646642,-1.77828 0,-4.36485 -0.969963,-0.96997 -0.808312,1.45495 -6.143123,0 -1.454951,-1.29329 -0.646645,-3.87986 -2.101596,-3.55656 0,-0.96996 2.101596,-0.80831 0.161661,-2.1016 1.131628,-1.13162 -0.808305,-0.48498 -1.29329,0.48498 -1.131628,-2.74824 0.969967,-5.01151 4.526514,-3.23321 2.586575,-1.61662 1.939936,-3.7182 2.748249,-1.2933 2.586578,1.13164 0.323321,2.42492 2.424917,-0.32334 3.23322,-2.42491 1.616615,0.64665 0.969962,0.64664 1.616615,0 2.263259,-1.29329 0.808313,-4.36486 c 0,0 0.323321,-2.90989 0.969963,-3.39488 0.646642,-0.48498 0.969963,-0.96996 0.969963,-0.96996 l -1.131623,-1.93994 -2.58658,0.80831 -3.23323,0.8083 -1.939936,-0.48498 -3.556541,-1.77828 -5.011495,-0.16166 -3.556551,-3.7182 0.484981,-3.87987 0.646652,-2.42492 -2.101596,-1.77827 -1.939938,-3.71822 0.484983,-0.8083 6.789771,-0.48498 2.101596,0 0.969963,0.96996 0.646652,0 -0.16166,-1.61661 3.879862,-0.64664 2.586577,0.32332 1.454955,1.13163 -1.454955,2.1016 -0.484981,1.45494 2.748249,1.61662 5.011497,1.77827 1.778276,-0.96996 -2.263257,-4.36485 -0.969974,-3.23323 0.969974,-0.80831 -3.394891,-1.93993 -0.484983,-1.13164 0.484983,-1.6166 -0.808304,-3.87987 -2.909909,-4.68818 -2.424918,-4.20319 2.909909,-1.93994 3.233222,0 1.778276,0.64665 4.203192,-0.16166 3.718205,-3.55654 1.131633,-3.07157 3.718212,-2.42492 1.616604,0.96997 2.748239,-0.64665 3.718209,-2.1016 1.13164,-0.16166 0.96996,0.80832 4.52651,-0.16167 2.74824,-3.07156 1.13163,0 3.55655,2.42491 1.93993,2.1016 -0.48498,1.13163 0.64664,1.13163 1.61662,-1.61661 3.87987,0.32332 0.32332,3.7182 1.93994,1.45496 7.11309,0.64664 6.30479,4.20319 1.45494,-0.96996 5.17317,2.58658 2.10159,-0.64664 1.93994,-0.80832 4.84983,1.93994 4.36486,2.9099 z m -115.102797,28.93736 2.101596,5.33482 -0.161662,0.96997 -2.909902,-0.32333 -1.778273,-4.04153 -1.778273,-1.45494 -2.424919,0 -0.16166,-2.58659 1.778273,-2.42492 1.131629,2.42492 1.45495,1.45495 2.748241,0.64665 z m -2.58658,33.46387 3.718209,0.80831 3.718207,0.96996 0.808307,0.96998 -1.616612,3.7182 -3.071564,-0.16166 -3.394885,-3.55654 -0.161662,-2.74825 z m -20.692636,-14.06452 1.13163,2.58657 1.131628,1.61662 -1.131628,0.8083 -2.101597,-3.07156 0,-1.93993 0.969967,0 z m -13.7412027,73.07087 3.3948853,-2.26326 3.3948854,-0.96997 2.58658,0.32332 0.484983,1.61661 1.939935,0.48499 1.939934,-1.93993 -0.323322,-1.61661 2.748241,-0.64665 2.909902,2.58658 -1.131629,1.77827 -4.364852,1.13163 -2.748242,-0.48498 -3.718207,-1.13163 -4.3648533,1.45495 -1.616612,0.32332 -1.1316284,-0.64664 z m 48.9833487,-4.52651 1.616612,1.93993 2.101593,-1.61661 -1.454948,-1.2933 -2.263257,0.96998 z m 2.909902,3.07155 1.131624,-2.26325 2.101597,0.32332 -0.808303,1.93993 -2.424918,0 z m 23.602535,-1.93993 1.454954,1.77827 0.969974,-1.13162 -0.808313,-1.93994 -1.616615,1.29329 z m 8.72971,-12.44791 1.131633,5.8198 2.909899,0.80831 5.011495,-2.90991 4.364853,-2.58658 -1.6166,-2.42491 0.48498,-2.42492 -2.1016,1.29329 -2.909898,-0.80831 1.616605,-1.13162 1.939933,0.8083 3.87987,-1.77828 0.48499,-1.45494 -2.42492,-0.80831 0.8083,-1.93994 -2.74824,1.93994 -4.688172,3.55655 -4.849834,2.9099 -1.293294,1.13163 z m 42.35524,-19.88433 2.42492,-1.45495 -0.96997,-1.77828 -1.77827,0.96997 0.32332,2.26326 z", - "FL" : "m 759.8167,439.1428 2.26566,7.3186 3.7297,9.74226 5.33479,9.3763 3.71819,6.30476 4.84982,5.49646 4.04151,3.71819 1.6166,2.90989 -1.13162,1.29328 -0.8083,1.29328 2.90988,7.43639 2.90989,2.90988 2.58657,5.3348 3.55653,5.81978 4.52649,8.24468 1.29329,7.59804 0.48498,11.96288 0.64664,1.77826 -0.32332,3.39487 -2.42491,1.29329 0.32332,1.93992 -0.64664,1.93993 0.32332,2.4249 0.48498,1.93993 -2.74822,3.23321 -3.07155,1.45494 -3.87985,0.16166 -1.45495,1.61661 -2.4249,0.96996 -1.29329,-0.48498 -1.13162,-0.96996 -0.32332,-2.90989 -0.80831,-3.39487 -3.39487,-5.17314 -3.55653,-2.26324 -3.87985,-0.32332 -0.8083,1.29328 -3.07155,-4.36483 -0.64664,-3.55653 -2.58657,-4.04151 -1.77826,-1.13163 -1.61661,2.10159 -1.77826,-0.32332 -2.10159,-5.01148 -2.90989,-3.87985 -2.90989,-5.33479 -2.58656,-3.07155 -3.55653,-3.71819 2.10158,-2.42491 3.23321,-5.49646 -0.16166,-1.6166 -4.52649,-0.96996 -1.61661,0.64664 0.32333,0.64664 2.58656,0.96996 -1.45494,4.5265 -0.8083,0.48498 -1.77827,-4.04151 -1.29328,-4.84982 -0.32332,-2.74823 1.45494,-4.68815 0,-9.53797 -3.07155,-3.71819 -1.29328,-3.07155 -5.17314,-1.29328 -1.93992,-0.64664 -1.61661,-2.58657 -3.39487,-1.61661 -1.13162,-3.39487 -2.74823,-0.96996 -2.42491,-3.71819 -4.20317,-1.45494 -2.90989,-1.45495 -2.58656,0 -4.04152,0.80831 -0.16166,1.93992 0.80831,0.96996 -0.48499,1.13163 -3.07154,-0.16166 -3.71819,3.55653 -3.55654,1.93992 -3.87985,0 -3.23321,1.29329 -0.32332,-2.74823 -1.6166,-1.93993 -2.90989,-1.13162 -1.6166,-1.45495 -8.08303,-3.87985 -7.59804,-1.77826 -4.36483,0.64664 -5.98144,0.48498 -5.98144,2.10159 -3.47924,0.61296 -0.23792,-8.04975 -2.58657,-1.93992 -1.77827,-1.77827 0.32332,-3.07156 10.18462,-1.29328 25.5424,-2.90989 6.78975,-0.64664 5.436,0.28027 2.58657,3.87986 1.45494,1.45494 8.09816,0.51522 10.81975,-0.64664 21.51239,-1.29329 5.44572,-0.67437 5.10758,0.20451 0.42683,2.90989 2.233,0.8083 0.23494,-4.63 -1.52822,-4.17295 1.3084,-1.43983 5.55463,0.45475 5.17314,0.32332 z m 12.54541,132.40508 2.42492,-0.64664 1.29328,-0.24249 1.45496,-2.34409 2.34408,-1.61661 1.29329,0.48499 1.69744,0.32332 0.40415,1.05079 -3.4757,1.21246 -4.2032,1.45495 -2.34408,1.21246 -0.88914,-0.88914 z m 13.4987,-5.01149 1.21246,1.0508 2.74824,-2.10159 5.33481,-4.20319 3.7182,-3.87987 2.50575,-6.6281 0.96997,-1.69744 0.16166,-3.39488 -0.72748,0.48498 -0.96996,2.82907 -1.45496,4.60733 -3.23322,5.254 -4.36484,4.20318 -3.39488,1.93993 -2.50575,1.53578 z", - "NH" : "m 880.79902,142.42476 0.869,-1.0765 1.09022,-3.29102 -2.54308,-0.91347 -0.48499,-3.07156 -3.87985,-1.13162 -0.32332,-2.74824 -7.27475,-23.44082 -4.60142,-14.542988 -0.89708,-0.0051 -0.64664,1.616605 -0.64664,-0.484981 -0.96997,-0.969963 -1.45494,1.939925 -0.0485,5.032054 0.31165,5.667218 1.93992,2.74824 0,4.04152 -3.7182,5.06278 -2.58657,1.13164 0,1.13162 1.13163,1.77827 0,8.56802 -0.80831,9.21467 -0.16166,4.84982 0.96997,1.2933 -0.16166,4.52649 -0.48499,1.77828 0.96881,0.70922 16.78767,-4.42455 2.17487,-0.60245 1.84357,-2.77333 3.60523,-1.61312 z", - "MI" : "M581.61931,82.059006 L 583.4483,80.001402 L 585.62022,79.201221 L 590.99286,75.314624 L 593.27908,74.743065 L 593.73634,75.200319 L 588.59232,80.344339 L 585.27728,82.287628 L 583.21967,83.202124 L 581.61931,82.059006 z M 667.79369,114.18719 L 668.44033,116.69293 L 671.67355,116.85459 L 672.96684,115.64213 C 672.96684,115.64213 672.88601,114.18719 672.56269,114.02552 C 672.23936,113.86386 670.94608,112.16642 670.94608,112.16642 L 668.76366,112.40891 L 667.14704,112.57057 L 666.82372,113.7022 L 667.79369,114.18719 z M 567.49209,111.21318 L 568.20837,110.63278 L 570.9566,109.82447 L 574.51313,107.56123 L 574.51313,106.59126 L 575.15978,105.94462 L 581.14121,104.97466 L 583.56612,103.03473 L 587.93095,100.93315 L 588.09261,99.639864 L 590.03254,96.729975 L 591.8108,95.921673 L 593.10409,94.143408 L 595.36733,91.880161 L 599.73217,89.455254 L 604.42032,88.970273 L 605.55194,90.101896 L 605.22862,91.071859 L 601.51043,92.041822 L 600.05549,95.113371 L 597.79224,95.921673 L 597.30726,98.34658 L 594.88235,101.57979 L 594.55903,104.16636 L 595.36733,104.65134 L 596.3373,103.51972 L 599.89383,100.60983 L 601.18711,101.90311 L 603.45036,101.90311 L 606.68357,102.87307 L 608.13851,104.0047 L 609.59345,107.07625 L 612.34168,109.82447 L 616.22153,109.66281 L 617.67648,108.69285 L 619.29308,109.98613 L 620.90969,110.47112 L 622.20297,109.66281 L 623.33459,109.66281 L 624.9512,108.69285 L 628.99271,105.13632 L 632.38758,104.0047 L 639.01566,103.68138 L 643.54215,101.74145 L 646.12872,100.44817 L 647.58367,100.60983 L 647.58367,106.26794 L 648.06865,106.59126 L 650.97853,107.39957 L 652.91846,106.91458 L 659.06156,105.29798 L 660.19318,104.16636 L 661.64813,104.65134 L 661.64813,111.60274 L 664.88134,114.67429 L 666.17462,115.32093 L 667.4679,116.29089 L 666.17462,116.61421 L 665.36632,116.29089 L 661.64813,115.80591 L 659.54654,116.45255 L 657.28329,116.29089 L 654.05008,117.74584 L 652.27182,117.74584 L 646.45204,116.45255 L 641.27891,116.61421 L 639.33898,119.20078 L 632.38758,119.84742 L 629.96267,120.65572 L 628.83105,123.72727 L 627.53777,124.8589 L 627.05279,124.69724 L 625.59784,123.08063 L 621.07135,125.50554 L 620.42471,125.50554 L 619.29308,123.88893 L 618.48478,124.05059 L 616.54486,128.41543 L 615.57489,132.45694 L 612.39377,139.45774 L 611.21701,138.42347 L 609.84527,137.39215 L 607.90449,127.10413 L 604.36001,125.73408 L 602.30743,123.44785 L 590.18707,120.70437 L 587.3318,119.67473 L 579.10138,117.50199 L 571.21139,116.35887 L 567.49209,111.21318 z,M697.8,177.2L694.6,168.9L692.3,159.9L689.9,156.7L687.3,154.9L685.7,156L681.8,157.8L679.9,162.8L677.1,166.5L676,167.2L674.5,166.5 C 674.5,166.5 671.9,165.1 672.1,164.4 C 672.3,163.8 672.6,159.4 672.6,159.4L676,158.1L676.8,154.7L677.4,152.1L679.9,150.5L679.5,140.5L677.9,138.2L676.6,137.4L675.8,135.3L676.6,134.5L678.2,134.8L678.4,133.2L676,131L674.7,128.4L672.1,128.4L667.6,126.9L662.1,123.5L659.3,123.5L658.7,124.2L657.7,123.7L654.6,121.4L651.7,123.2L648.8,125.5L649.2,129L650.1,129.3L652.2,129.8L652.7,130.6L650.1,131.4L647.5,131.8L646.1,133.5L645.8,135.6L646.1,137.3L646.4,142.8L642.8,144.9L642.2,144.7L642.2,140.5L643.5,138.1L644.1,135.6L643.3,134.8L641.4,135.6L640.4,139.8L637.7,141L635.9,142.9L635.7,143.9L636.4,144.7L635.7,147.3L633.5,147.8L633.5,148.9L634.3,151.3L633.1,157.5L631.5,161.5L632.2,166.2L632.7,167.3L631.9,169.8L631.5,170.6L631.2,173.3L634.8,179.3L637.7,185.8L639.1,190.6L638.3,195.3L637.3,201.3L634.9,206.4L634.6,209.2L631.3,212.3L635.8,212.1L657.2,209.9L664.4,208.9L664.5,210.5L671.4,209.3L681.7,207.8L685.5,207.4L685.7,206.8L685.8,205.3L687.9,201.6L689.9,199.9L689.7,194.8L691.3,193.2L692.4,192.9L692.6,189.3L694.2,186.3L695.2,186.9L695.4,187.5L696.2,187.7L698.1,186.7L697.8,177.2z", - "VT" : "m 844.48416,154.05791 0.3167,-5.34563 -2.89071,-10.78417 -0.64664,-0.32332 -2.9099,-1.29329 0.8083,-2.90989 -0.8083,-2.10159 -2.70005,-4.63998 0.96997,-3.87986 -0.80831,-5.17315 -2.42491,-6.46644 -0.80557,-4.92251 26.41936,-6.73182 0.3087,5.52221 1.91626,2.74223 0,4.04152 -3.70715,5.05799 -2.58657,1.14267 -0.011,1.12057 1.30997,1.51912 -0.31093,8.09797 -0.60943,9.25886 -0.22795,5.55694 0.96996,1.29329 -0.16166,4.57069 -0.48498,1.68989 1.01418,0.72716 -7.43755,1.50671 -4.50174,0.72383 z", - "ME" : "m 922.83976,78.830719 1.93993,2.101586 2.26325,3.718191 0,1.939926 -2.10159,4.688153 -1.93993,0.646642 -3.39487,3.071549 -4.84981,5.496454 c 0,0 -0.64664,0 -1.29328,0 -0.64664,0 -0.96997,-2.101584 -0.96997,-2.101584 l -1.77826,0.16166 -0.96996,1.454944 -2.42491,1.45495 -0.96996,1.45494 1.6166,1.45494 -0.48498,0.64665 -0.48498,2.74822 -1.93993,-0.16166 0,-1.6166 -0.32332,-1.29329 -1.45494,0.32333 -1.77827,-3.23321 -2.10158,1.29328 1.29328,1.45494 0.32332,1.13163 -0.8083,1.29328 0.32332,3.07155 0.16166,1.6166 -1.6166,2.58657 -2.90989,0.48498 -0.32332,2.90989 -5.3348,3.07155 -1.29328,0.48498 -1.61661,-1.45494 -3.07155,3.55653 0.96997,3.23321 -1.45495,1.29328 -0.16166,4.36483 -1.12328,6.25936 -2.46225,-1.15595 -0.48499,-3.07156 -3.87985,-1.13163 -0.32332,-2.74824 -7.27475,-23.44082 -4.69858,-14.639742 1.42054,-0.118165 1.51379,0.409899 0,-2.586568 1.3083,-4.496456 2.58657,-4.688153 1.45495,-4.041512 -1.93993,-2.424907 0,-5.981437 0.8083,-0.969963 0.80831,-2.748228 -0.16166,-1.454944 -0.16167,-4.849814 1.77827,-4.849814 2.90989,-8.891326 2.10158,-4.203172 1.29329,0 1.29328,0.16166 0,1.131623 1.29329,2.263247 2.74822,0.646642 0.80831,-0.808303 0,-0.969962 4.04151,-2.909889 1.77826,-1.778265 1.45495,0.161661 5.98143,2.424907 1.93993,0.969962 9.05299,29.907187 5.98143,0 0.80831,1.939926 0.16166,4.849814 2.90988,2.263246 0.80831,0 0.16166,-0.484981 -0.48498,-1.131623 2.74822,-0.161661 z m -20.93175,30.147531 1.53578,-1.53578 1.37412,1.0508 0.56581,2.42492 -1.69744,0.88913 -1.77827,-2.82907 z m 6.70893,-5.90062 1.77827,1.8591 c 0,0 1.29329,0.0808 1.29329,-0.2425 0,-0.32332 0.24249,-2.02076 0.24249,-2.02076 l 0.88914,-0.8083 -0.80831,-1.77828 -2.02076,0.72748 -1.37412,2.26326 z", - "RI" : "m 874.07001,178.89536 -3.69579,-14.95599 6.26928,-1.84514 2.19113,1.92712 3.30649,4.32065 2.6879,4.40209 -2.99934,1.62479 -1.29328,-0.16166 -1.13162,1.77827 -2.42491,1.93992 -2.90986,0.96995 z", - "NY" : "m 830.37944,188.7456 -1.13163,-0.96996 -2.58658,-0.16166 -2.26324,-1.93992 -1.63061,-6.12913 -3.45846,0.0905 -2.44371,-2.7082 -19.38532,4.38194 -43.00178,8.72969 -7.52965,1.22799 -0.73816,-6.46834 1.4281,-1.12538 1.29328,-1.13162 0.96997,-1.61661 1.77826,-1.13162 1.93993,-1.77827 0.48498,-1.6166 2.10158,-2.74823 1.13163,-0.96996 -0.16166,-0.96997 -1.29329,-3.07154 -1.77826,-0.16166 -1.93993,-6.1431 2.90989,-1.77827 4.36483,-1.45494 4.04152,-1.29329 3.23321,-0.48498 6.30475,-0.16166 1.93993,1.29329 1.6166,0.16166 2.10159,-1.29329 2.58657,-1.13162 5.17313,-0.48498 2.10159,-1.77827 1.77826,-3.23321 1.61661,-1.93992 2.10158,0 1.93993,-1.13163 0.16166,-2.26324 -1.45494,-2.10159 -0.32332,-1.45494 1.13162,-2.10159 0,-1.45494 -1.77827,0 -1.77826,-0.8083 -0.8083,-1.13163 -0.16166,-2.58657 5.81977,-5.49645 0.64664,-0.8083 1.45495,-2.90989 2.90989,-4.5265 2.74823,-3.71819 2.10158,-2.4249 2.4151,-1.82561 3.08136,-1.24594 5.49645,-1.29329 3.23321,0.16166 4.5265,-1.45494 7.56519,-2.07117 0.51979,4.97967 2.42492,6.46644 0.8083,5.17315 -0.96996,3.87986 2.58657,4.5265 0.8083,2.10159 -0.8083,2.9099 2.9099,1.29328 0.64664,0.32332 3.07156,10.99294 -0.53629,5.05967 -0.48498,10.83127 0.8083,5.49647 0.8083,3.55654 1.45495,7.27474 0,8.08304 -1.13163,2.26325 1.83933,1.99279 0.79655,1.67842 -1.93992,1.77827 0.32332,1.29328 1.29328,-0.32332 1.45495,-1.29328 2.26324,-2.58657 1.13163,-0.64664 1.6166,0.64664 2.26325,0.16166 7.92136,-3.87985 2.90989,-2.74823 1.29328,-1.45494 4.20317,1.6166 -3.39487,3.55653 -3.87985,2.90989 -7.11306,5.33479 -2.58656,0.96997 -5.81978,1.93992 -4.04151,1.13163 -1.17474,-0.53293 -0.24402,-3.68853 0.48498,-2.74824 -0.16166,-2.10158 -2.81351,-1.699 -4.5265,-0.96997 -3.87986,-1.13162 -3.7182,-1.77828 z", - "PA" : "m 825.1237,224.69205 1.30842,-0.271 2.32953,-1.25325 1.21188,-2.48307 1.61661,-2.26325 3.23321,-3.07156 0,-0.8083 -2.42491,-1.6166 -3.55654,-2.42492 -0.96996,-2.58657 -2.74824,-0.32332 -0.16166,-1.13163 -0.8083,-2.74823 2.26326,-1.13162 0.16166,-2.42492 -1.2933,-1.29329 0.16166,-1.61661 1.93994,-3.07155 0,-3.07156 2.69763,-2.64588 -0.92028,-0.67498 -2.52408,-0.19291 -2.29449,-1.93992 -1.54992,-6.11606 -3.50458,0.10052 -2.45523,-2.70333 -18.09099,4.19777 -43.00178,8.72969 -8.89135,1.45494 -0.62067,-6.52139 -5.36253,5.06765 -1.29329,0.48498 -4.20229,3.00889 2.91076,19.13745 2.48166,9.72936 3.5718,19.26149 3.26931,-0.63768 11.94358,-1.50247 37.92663,-7.6652 14.87621,-2.82332 8.30035,-1.62236 0.26711,-0.23853 2.1016,-1.61662 2.10158,-0.68084 z", - "NJ" : "m 829.67942,188.46016 -2.32255,2.73427 0,3.07156 -1.93994,3.07155 -0.16166,1.61662 1.2933,1.29328 -0.16166,2.42492 -2.26326,1.13162 0.8083,2.74823 0.16166,1.13163 2.74824,0.32332 0.96996,2.58657 3.55654,2.42492 2.42491,1.6166 0,0.80831 -2.98321,2.69656 -1.61661,2.26324 -1.45495,2.74824 -2.26325,1.29328 -0.46245,1.60248 -0.2425,1.21246 -0.60923,2.60674 1.09227,2.24419 3.23321,2.90989 4.84981,2.26325 4.04151,0.64664 0.16166,1.45494 -0.8083,0.96996 0.32332,2.74823 0.8083,0 2.10159,-2.4249 0.8083,-4.84982 2.74823,-4.04151 3.07155,-6.46642 1.13162,-5.49645 -0.64664,-1.13163 -0.16166,-9.37631 -1.61661,-3.39486 -1.13162,0.8083 -2.74823,0.32332 -0.48498,-0.48498 1.13163,-0.96997 2.10158,-1.93992 0.0631,-1.09383 -0.38439,-3.43384 0.57337,-2.74824 -0.11747,-1.96901 -2.80754,-1.75035 -5.09214,-1.17576 -4.13744,-1.38163 -3.58563,-1.64569 z", - "DE" : "m 825.6261,228.2791 0.36831,-2.14689 0.37507,-1.69105 -1.623,0.39776 -1.61546,0.46756 -2.20626,1.7643 1.72012,5.04288 2.26326,5.65812 2.10158,9.69965 1.61662,6.30478 5.01148,-0.16166 6.14212,-1.18068 -2.26423,-7.38627 -0.96997,0.48498 -3.55653,-2.4249 -1.77826,-4.68816 -1.93993,-3.55653 -3.14712,-2.87031 -0.86416,-2.09812 0.36636,-1.61546 z", - "MD" : "m 839.79175,252.41476 -6.00855,1.20384 -5.1429,0.11746 -1.84356,-6.92233 -1.92481,-9.16932 -2.57262,-6.18845 -1.28838,-4.39833 -7.50602,1.62236 -14.87621,2.82332 -37.45143,7.5509 1.1313,5.01166 0.96996,5.65811 0.32332,-0.32332 2.1016,-2.4249 2.26324,-2.61766 2.42491,-0.61556 1.45496,-1.45495 1.77826,-2.58657 1.29328,0.64665 2.90989,-0.32333 2.58658,-2.10158 2.00689,-1.45327 1.84523,-0.48498 1.64435,1.12995 2.90989,1.45494 1.93992,1.77827 1.21246,1.53578 4.12235,1.69743 0,2.90989 5.49646,1.29329 1.14444,0.54198 1.4119,-2.02832 2.88197,1.97016 -1.27817,2.48193 -0.76527,3.98566 -1.77826,2.58657 0,2.10159 0.64664,1.77827 5.06395,1.35569 4.3111,-0.0617 3.07154,0.96997 2.10159,0.32332 0.96996,-2.10159 -1.45494,-2.10158 0,-1.77827 -2.42491,-2.10159 -2.10158,-5.49645 1.29328,-5.3348 -0.16166,-2.10158 -1.29328,-1.29329 c 0,0 1.45494,-1.6166 1.45494,-2.26324 0,-0.64665 0.48498,-2.10159 0.48498,-2.10159 l 1.93993,-1.29328 1.93992,-1.61661 0.48498,0.96997 -1.45494,1.6166 -1.29328,3.71819 0.32332,1.13162 1.77826,0.32332 0.48498,5.49646 -2.10158,0.96996 0.32332,3.55653 0.48498,-0.16166 1.13162,-1.93992 1.61661,1.77826 -1.61661,1.29329 -0.32332,3.39487 2.58657,3.39487 3.87985,0.48498 1.61661,-0.8083 3.23655,4.18293 1.35835,0.5363 6.65367,-2.79695 2.00758,-4.02387 -0.43596,-4.90798 z m -15.96958,9.02872 1.13162,2.50575 0.16166,1.77827 1.13163,1.8591 c 0,0 0.88914,-0.88914 0.88914,-1.21246 0,-0.32332 -0.72747,-3.07156 -0.72747,-3.07156 l -0.72748,-2.34409 -1.8591,0.48499 z", - "VA" : "m 831.63885,266.06892 -0.14391,-1.94703 6.45343,-2.54988 -0.77041,3.21784 -2.91995,3.77911 -0.41809,4.58582 0.46175,3.39044 -1.82797,4.97816 -2.16427,1.91614 -1.47034,-4.64081 0.44589,-5.44911 1.587,-4.18307 0.76687,-3.09761 z m 3.34019,28.30136 -58.17418,12.57543 -37.42697,5.27907 -6.67833,-0.37518 -2.58525,1.92638 -7.33913,0.22069 -8.38211,0.97767 -10.91496,1.61462 10.46943,-5.6112 -0.0131,-2.07493 1.52005,-2.14613 10.55378,-11.50143 3.94672,4.47746 3.78301,0.96398 2.54346,-1.14032 2.23722,-1.31116 2.53661,1.34352 3.91417,-1.42776 1.87673,-4.55634 2.60092,0.54002 2.85524,-2.13125 1.79927,0.4936 2.82721,-3.67657 0.34825,-2.08311 -0.96366,-1.27557 1.00277,-1.86663 5.27427,-12.27715 0.61677,-5.73508 1.22889,-0.52354 2.17853,2.44287 3.93586,-0.30117 1.92921,-7.57363 2.79399,-0.56086 1.04975,-2.74107 2.57982,-2.34688 2.77183,-5.69519 0.0849,-5.06755 9.82151,3.82282 c 0.68085,0.34042 0.83288,-5.04915 0.83288,-5.04915 l 3.65256,1.59833 0.0683,2.93816 5.78425,1.29949 2.13295,1.1762 1.65992,2.05569 -0.65455,3.64867 -1.94744,2.59098 0.10985,2.05907 0.58896,1.85291 4.97875,1.26843 4.45127,0.0399 3.06883,0.95864 1.94351,0.3093 0.71481,3.08846 3.19044,0.40253 0.86807,1.20002 -0.43949,4.69008 1.37473,1.10255 -0.47895,1.93039 1.22941,0.78977 -0.2218,1.3846 -2.69399,-0.0949 0.089,1.61552 2.28099,1.54287 0.12154,1.4119 1.77311,1.78538 0.49179,2.52413 -2.55304,1.38131 1.57222,1.4943 5.80102,-1.68583 3.60762,6.01193 z", - "WV" : "m 761.18551,238.96731 1.11201,4.94453 1.08344,6.03133 2.13029,-2.58034 2.26324,-3.07156 2.53838,-0.61555 1.45495,-1.45494 1.77827,-2.58657 1.44498,0.64664 2.90989,-0.32332 2.58658,-2.10159 2.00689,-1.45326 1.84523,-0.48499 1.30392,1.01647 3.64325,1.82163 1.93993,1.77827 1.37412,1.29328 -0.76172,5.55494 -5.83491,-2.54122 -4.24525,-1.62202 -0.10114,5.17843 -2.74764,5.53673 -2.53003,2.42666 -1.19209,2.74939 -2.64358,0.5001 -0.89784,3.60188 -1.04323,3.94967 -3.96824,0.34074 -2.32373,-2.43888 -1.07115,0.55941 -0.63268,5.4697 -1.35029,3.5345 -4.9584,10.95497 0.89669,1.1607 -0.20586,1.90854 -2.80869,3.88447 -1.8085,-0.54429 -2.96805,2.15974 -2.54238,-0.57221 -1.99923,4.55557 c 0,0 -3.25931,1.43022 -3.92291,1.36772 -0.16051,-0.0151 -2.4691,-1.2491 -2.4691,-1.2491 l -2.33652,1.37937 -2.4098,1.0444 -3.74469,-0.88912 -1.1214,-1.16828 -2.19222,-3.02336 -3.14259,-1.98812 -1.71157,-3.62324 -4.28488,-3.46819 -0.64665,-2.26325 -2.58657,-1.45495 -0.80831,-1.6166 -0.24249,-5.25398 2.18242,-0.0808 1.93994,-0.8083 0.16166,-2.74823 1.6166,-1.45495 0.16166,-5.01148 0.96996,-3.87986 1.29329,-0.64664 1.29328,1.13162 0.48499,1.77827 1.77827,-0.96997 0.48498,-1.6166 -1.13162,-1.77827 0,-2.42491 0.96996,-1.29329 2.26325,-3.39487 1.29328,-1.45494 2.1016,0.48498 2.26324,-1.61662 3.07155,-3.39487 2.26326,-3.87986 0.32332,-5.65811 0.48498,-5.01149 0,-4.68816 -1.13162,-3.07155 0.96996,-1.45496 1.28348,-1.29328 3.49125,19.82712 4.63101,-0.75115 12.42832,-1.79965 z", - "OH" : "m 735.32497,193.32832 -6.09354,4.05335 -3.87985,2.26325 -3.39487,3.71819 -4.04151,3.87985 -3.23321,0.8083 -2.90989,0.48498 -5.49646,2.58657 -2.10158,0.16166 -3.39487,-3.07155 -5.17314,0.64665 -2.58656,-1.45495 -2.38107,-1.35083 -4.89257,0.70341 -10.18462,1.61661 -11.20687,2.18473 1.29329,14.63028 1.77827,13.74117 2.58656,23.4408 0.56582,4.83117 4.12235,-0.12902 2.42491,-0.80831 3.3638,1.50314 2.07049,4.36483 5.13894,-0.0171 1.89174,2.1187 1.76117,-0.0653 2.53839,-1.34146 2.50417,0.3715 5.42128,0.48268 1.72697,-2.13268 2.34565,-1.29328 2.07049,-0.68085 0.64664,2.74824 1.77828,0.96996 3.47569,2.34407 2.18242,-0.0808 1.33312,-0.49248 0.18471,-2.76153 1.58536,-1.45496 0.0992,-4.79272 c 0,0 1.02396,-4.10906 1.02396,-4.10906 l 1.29927,-0.60128 1.32135,1.14774 0.53815,1.69702 1.71913,-1.03742 0.43898,-1.46075 -1.11669,-1.90306 0.0663,-2.31443 0.749,-1.07231 2.15276,-3.30648 1.05022,-1.54334 2.10159,0.48498 2.26325,-1.61661 3.07155,-3.39487 2.77149,-4.07873 0.32033,-5.05551 0.48498,-5.01149 -0.17678,-5.30688 -0.95484,-2.89478 0.35124,-1.18978 1.80439,-1.75011 -2.28879,-9.04733 -2.90989,-19.36177 z", - "IN" : "m 619.56954,299.97132 0.0653,-2.85858 0.48499,-4.52651 2.26324,-2.90988 1.77828,-3.87987 2.58656,-4.20317 -0.48498,-5.81979 -1.77826,-2.74823 -0.32332,-3.23321 0.8083,-5.49647 -0.48498,-6.95141 -1.2933,-16.00441 -1.29328,-15.35776 -0.97047,-11.72002 3.07106,0.88951 1.45495,0.96996 1.13162,-0.32332 2.10159,-1.93992 2.82957,-1.61699 5.0928,-0.16204 21.98587,-2.26326 5.57573,-0.53316 1.50314,15.95621 4.25135,36.84155 0.59846,5.7716 -0.3715,2.26325 1.22798,1.79537 0.0964,1.37255 -2.52129,1.59951 -3.53943,1.55131 -3.20213,0.55028 -0.59846,4.86693 -4.57469,3.31247 -2.79642,4.01044 0.32332,2.37673 -0.58134,1.5342 -3.32647,0 -1.58553,-1.6166 -2.49331,1.2622 -2.68296,1.50314 0.16167,3.05445 -1.19379,0.25803 -0.46788,-1.01814 -2.16688,-1.50314 -3.25032,1.34148 -1.55131,3.00625 -1.43784,-0.8083 -1.45495,-1.59951 -4.46434,0.48499 -5.59283,0.96996 -2.90989,1.55132 z", - "IL" : "m 619.54145,300.34244 0.0312,-3.22971 0.56739,-4.64596 2.33253,-2.91586 1.86665,-4.07576 2.23302,-3.99533 -0.3715,-5.2524 -2.00521,-3.54257 -0.0964,-3.34668 0.69483,-5.26951 -0.82541,-7.17837 -1.06634,-15.77745 -1.29328,-15.01734 -0.92228,-11.6392 -0.27251,-0.92139 -0.8083,-2.58657 -1.29328,-3.71819 -1.61661,-1.77827 -1.45494,-2.58656 -0.23357,-5.48896 -45.79643,2.59825 0.22862,2.37195 2.28623,0.68587 0.91448,1.14311 0.45725,1.82898 3.88658,3.42934 0.68588,2.28623 -0.68588,3.42934 -1.82898,3.65796 -0.68586,2.51484 -2.28623,1.82899 -1.82898,0.68587 -5.25832,1.37173 -0.68587,1.82898 -0.68587,2.05761 0.68587,1.37174 1.82898,1.60036 -0.22862,4.1152 -1.82899,1.60036 -0.68586,1.60036 0,2.74347 -1.82898,0.45724 -1.60036,1.14312 -0.22862,1.37174 0.22862,2.0576 -1.71467,1.31457 -1.0288,2.80064 0.45724,3.65795 2.28623,7.31593 7.31593,7.54455 5.48693,3.65796 -0.22862,4.34383 0.9145,1.37174 6.40143,0.45724 2.74347,1.37174 -0.68586,3.65796 -2.28623,5.94419 -0.68587,3.20072 2.28622,3.88658 6.40144,5.25832 4.57246,0.68587 2.05759,5.0297 2.05761,3.20071 -0.91449,2.97209 1.60036,4.11521 1.82898,2.05761 1.41403,-0.88069 0.90766,-2.07479 2.21308,-1.7472 2.13147,-0.6144 2.60253,1.1798 3.62699,1.3757 1.18895,-0.29823 0.19987,-2.25845 -1.2873,-2.41179 0.30422,-2.37672 1.8384,-1.34745 3.02254,-0.81029 1.2609,-0.45852 -0.61261,-1.38688 -0.79137,-2.35437 1.4326,-0.98096 1.15747,-3.21403 z", - "CT" : "m 874.06831,178.86288 -3.67743,-14.87881 -4.71882,0.92031 -21.22878,4.74309 1.00019,3.22567 1.45495,7.27474 0.17678,8.96692 -1.22002,2.17487 1.92079,1.93234 4.27153,-3.90564 3.55653,-3.23321 1.93992,-2.10159 0.80831,0.64664 2.74822,-1.45494 5.17314,-1.13162 7.79469,-3.17877 z", - "WI" : "m 615.06589,197.36866 -0.0667,-3.15742 -1.17911,-4.5265 -0.64664,-6.14309 -1.13162,-2.42491 0.96996,-3.07155 0.8083,-2.90989 1.45495,-2.58656 -0.64665,-3.39487 -0.64664,-3.55653 0.48498,-1.77827 1.93993,-2.42491 0.16166,-2.74823 -0.8083,-1.29328 0.64664,-2.58657 -0.45252,-4.17071 2.74823,-5.65811 2.90989,-6.78974 0.16166,-2.26325 -0.32332,-0.96996 -0.80831,0.48498 -4.20317,6.30476 -2.74823,4.04151 -1.93992,1.77827 -0.8083,2.26324 -1.95495,0.8083 -1.13162,1.93993 -1.45495,-0.32332 -0.16166,-1.77827 1.29329,-2.4249 2.10158,-4.68816 1.77827,-1.6166 0.99083,-2.35785 -2.56045,-1.90134 -1.97482,-10.36699 -3.54747,-1.34198 -1.94626,-2.30833 -12.12971,-2.72164 -2.87589,-1.01205 -8.21312,-2.16729 -7.91792,-1.15875 -3.76516,-5.13067 -0.7504,0.55401 -1.19791,-0.16166 -0.64665,-1.13162 -1.33401,0.29655 -1.13163,0.16166 -1.77826,0.96996 -0.96997,-0.64664 0.64665,-1.93993 1.93992,-3.07155 1.13162,-1.13162 -1.93992,-1.45494 -2.10159,0.8083 -2.90989,1.93992 -7.43638,3.23321 -2.90989,0.64664 -2.90988,-0.48498 -0.98173,-0.87825 -2.1167,2.83518 -0.22862,2.74347 0,8.45903 -1.14312,1.60037 -5.25832,3.88657 -2.28622,5.94419 0.45724,0.22862 2.51485,2.05761 0.68586,3.20072 -1.82898,3.20071 0,3.88659 0.45725,6.63005 2.97209,2.9721 3.42935,0 1.82898,3.20072 3.42933,0.45724 3.88659,5.71557 7.0873,4.11521 2.0576,2.74347 0.9145,7.43024 0.68586,3.31502 2.28623,1.60036 0.22862,1.37174 -2.0576,3.42933 0.22862,3.20073 2.51485,3.88658 2.51485,1.14311 2.97209,0.45724 1.34234,1.38012 45.29836,-2.66945 z", - "NC" : "m 834.98153,294.31554 2.085,4.91735 3.55653,6.46642 2.4249,2.42491 0.64664,2.26325 -2.4249,0.16166 0.8083,0.64664 -0.32332,4.20317 -2.58657,1.29328 -0.64664,2.10159 -1.29328,2.90989 -3.7182,1.6166 -2.4249,-0.32332 -1.45495,-0.16166 -1.6166,-1.29328 0.32332,1.29328 0,0.96997 1.93993,0 0.8083,1.29328 -1.93993,6.30476 4.20317,0 0.64665,1.6166 2.26324,-2.26324 1.29329,-0.48499 -1.93993,3.55653 -3.07155,4.84982 -1.29328,0 -1.13163,-0.48498 -2.74822,0.64664 -5.17314,2.42491 -6.46642,5.33479 -3.39487,4.68815 -1.93992,6.46642 -0.48498,2.42491 -4.68816,0.48498 -5.45313,1.33666 -9.94641,-8.20253 -12.60954,-7.59805 -2.90989,-0.80831 -12.60953,1.45495 -4.27646,0.75015 -1.6166,-3.23322 -2.97036,-2.1167 -16.48939,0.48498 -7.27474,0.8083 -9.05299,4.52651 -6.14311,2.58656 -21.17755,2.58658 0.50009,-4.05433 1.77827,-1.45494 2.74824,-0.64665 0.64664,-3.7182 4.20318,-2.74822 3.87985,-1.45496 4.20319,-3.55653 4.36483,-2.10159 0.64664,-3.07156 3.87986,-3.87985 0.64664,-0.16166 c 0,0 0,1.13163 0.80831,1.13163 0.8083,0 1.93993,0.32332 1.93993,0.32332 l 2.26325,-3.55654 2.10159,-0.64665 2.26324,0.32333 1.61662,-3.55653 2.90989,-2.58658 0.48498,-2.10159 0.1875,-3.64819 4.2765,-0.0225 7.19859,-0.85579 15.75723,-2.25243 15.13604,-2.08657 21.64048,-4.71935 19.98332,-4.25857 11.17694,-2.40581 5.04998,-1.15688 z m 4.27046,33.20657 2.58658,-2.50575 3.15238,-2.58658 1.53578,-0.64664 0.16166,-2.02076 -0.64664,-6.14312 -1.45495,-2.34408 -0.64665,-1.8591 0.72748,-0.2425 2.74824,5.49648 0.40415,4.44567 -0.16166,3.39489 -3.39488,1.53577 -2.82907,2.42492 -1.13162,1.21246 -1.0508,-0.16166 z", - "DC" : "m 805.81945,250.84384 -1.85828,-1.82417 -1.23263,-0.68629 1.44301,-2.02247 2.88909,1.9485 -1.24119,2.58443 z", - "MA" : "m 899.62349,173.25394 2.17192,-0.68588 0.45726,-1.71467 1.0288,0.11431 1.0288,2.28624 -1.25742,0.45724 -3.8866,0.11432 0.45724,-0.57156 z m -9.37354,0.80018 2.28622,-2.62917 1.60037,0 1.82899,1.48605 -2.40054,1.0288 -2.17192,1.0288 -1.14312,-0.91448 z m -34.79913,-21.98819 17.64687,-4.64068 2.26326,-0.64664 1.91408,-2.79571 3.73677,-1.66331 2.88924,4.41284 -2.42491,5.17314 -0.32332,1.45494 1.93993,2.58657 1.13162,-0.8083 1.77827,0 2.26324,2.58656 3.87986,5.98144 3.55653,0.48498 2.26324,-0.96996 1.77827,-1.77827 -0.80831,-2.74822 -2.10158,-1.61661 -1.45495,0.8083 -0.96996,-1.29328 0.48498,-0.48498 2.10159,-0.16166 1.77826,0.8083 1.93993,2.42491 0.96996,2.90989 0.32332,2.4249 -4.20317,1.45495 -3.87985,1.93992 -3.87985,4.5265 -1.93993,1.45494 0,-0.96996 2.42491,-1.45495 0.48498,-1.77826 -0.8083,-3.07155 -2.90989,1.45494 -0.8083,1.45495 0.48498,2.26324 -2.06633,1.00043 -2.7472,-4.52713 -3.39488,-4.36484 -2.0705,-1.81247 -6.53327,1.8762 -5.09233,1.05079 -20.67516,4.59221 -0.66776,-4.76785 0.64664,-10.58877 4.28927,-0.88914 6.78975,-1.2933 z", - "TN" : "m 696.67788,318.25411 -51.89309,5.01149 -15.75956,1.77826 -4.6212,0.51271 -3.86835,-0.0277 -0.22097,4.10083 -8.18538,0.26401 -6.95141,0.64664 -8.09083,-0.12386 -1.41378,7.07286 -1.69623,5.48005 -3.29317,2.75084 -1.34874,4.38106 -0.32332,2.58657 -4.04152,2.26324 1.45494,3.55654 -0.96996,4.36484 -0.96838,0.78965 108.15855,-10.40755 0.40327,-3.95494 1.81073,-1.49039 2.83415,-0.74945 0.67193,-3.71698 4.0986,-2.70496 4.04693,-1.49403 4.08358,-3.57033 4.43609,-2.02546 0.52126,-3.06735 4.0646,-3.98499 0.5508,-0.11417 c 0,0 0.0312,1.13162 0.83955,1.13162 0.8083,0 1.93993,0.35457 1.93993,0.35457 l 2.26325,-3.58779 2.07034,-0.64664 2.27511,0.29521 1.59831,-3.53286 2.95525,-2.64391 0.42168,-1.93911 0.30896,-3.71115 -2.14655,-0.19977 -2.60168,2.02833 -6.99331,0.0291 -18.35929,2.38682 -8.06109,1.9082 z", - "AR" : "m 593.82477,343.05296 -3.97988,0.7167 -5.11215,-0.63403 0.4207,-1.60207 2.97975,-2.56669 0.94338,-3.65625 -1.82898,-2.9721 -78.41757,2.51485 1.60036,6.85869 -1e-5,8.23042 1.37175,10.97399 0.22862,37.83693 2.28623,1.94329 2.97209,-1.37173 2.74348,1.14311 0.68034,6.5733 55.62126,-1.1406 1.14563,-2.09037 -0.28662,-3.54951 -1.82563,-2.9721 1.59869,-1.48521 -1.59869,-2.5115 0.6842,-2.50983 1.36839,-5.60543 2.51819,-2.06263 -0.68587,-2.28456 3.65797,-5.37179 2.74347,-1.36839 -0.11348,-1.49358 -0.34544,-1.82564 2.85695,-5.59873 2.40304,-1.25659 0.38413,-3.42763 1.77067,-1.2417 -3.14352,-0.48427 -1.34146,-4.01044 2.80408,-2.37671 0.55026,-2.0192 1.27948,-4.04661 1.06619,-3.25539 z", - "MO" : "m 558.44022,248.11316 -2.51987,-3.08725 -1.14312,-2.28623 -64.35723,2.40054 -2.28626,0.11431 1.25743,2.51485 -0.22862,2.28622 2.51484,3.88659 3.0864,4.11521 3.08641,2.74347 2.16123,0.22862 1.49673,0.9145 0,2.97209 -1.82897,1.60036 -0.45726,2.28622 2.05761,3.42935 2.51486,2.97209 2.51484,1.82898 1.37173,11.65975 0.31414,36.07221 0.22862,4.68675 0.45724,5.38351 22.43299,-0.86682 23.20603,-0.68587 20.80466,-0.80101 11.65474,-0.2303 2.1694,3.426 -0.68419,3.3075 -3.08725,2.40304 -0.57239,1.83734 5.37849,0.45726 3.89496,-0.68588 1.71718,-5.49363 0.65142,-5.85679 2.09803,-2.55516 2.59603,-1.48689 0.0514,-3.05024 1.01602,-1.93648 -1.69423,-2.54377 -1.33093,0.98426 -1.99262,-2.22724 -1.28503,-4.759 0.80101,-2.5182 -1.94413,-3.42766 -1.83064,-4.5758 -4.79941,-0.79934 -6.9688,-5.59875 -1.71886,-4.11353 0.79935,-3.20072 2.05927,-6.05767 0.45892,-2.86363 -1.94914,-1.03131 -6.85534,-0.79767 -1.02797,-1.71216 -0.1118,-4.23036 -5.48694,-3.43101 -6.97551,-7.7715 -2.28622,-7.31593 -0.23029,-4.22532 0.80101,-2.2879 z", - "GA" : "m 672.29229,355.5518 0,2.18242 0.16166,2.1016 0.64664,3.39487 3.39488,7.92137 2.42491,9.86131 1.45494,6.14311 1.61661,4.84981 1.45495,6.95141 2.10159,6.30477 2.58657,3.39488 0.48498,3.39487 1.93993,0.8083 0.16166,2.1016 -1.77827,4.84981 -0.48498,3.23322 -0.16166,1.93993 1.61661,4.36484 0.32332,5.3348 -0.80831,2.42491 0.64665,0.80831 1.45495,0.8083 0.2047,3.21809 2.23301,3.34953 2.25044,2.16205 7.92138,0.16166 10.81975,-0.64664 21.51239,-1.29328 5.44572,-0.67437 4.57725,0.0277 0.16166,2.90989 2.58657,0.8083 0.32332,-4.36484 -1.61661,-4.5265 1.13163,-1.6166 5.81978,0.8083 4.97741,0.31778 -0.77542,-6.29879 2.26324,-10.02295 1.45495,-4.20318 -0.48499,-2.58656 3.33441,-6.2443 -0.5103,-1.35168 -1.91341,0.70458 -2.58656,-1.2933 -0.64665,-2.10159 -1.29328,-3.55653 -2.26326,-2.10159 -2.58656,-0.64664 -1.61661,-4.84982 -2.92501,-6.335 -4.20317,-1.93993 -2.1016,-1.93993 -1.29329,-2.58657 -2.10158,-1.93993 -2.26325,-1.29329 -2.26325,-2.90989 -3.07155,-2.26324 -4.52651,-1.77828 -0.48498,-1.45494 -2.42491,-2.90989 -0.48498,-1.45495 -3.39488,-4.97048 -3.51987,0.0992 -3.75491,-2.35614 -1.41828,-1.29328 -0.32332,-1.77827 0.8708,-1.93992 2.22664,-1.11014 -0.63394,-2.09722 -41.86975,4.98893 z", - "SC" : "m 764.94328,408.16488 -1.77706,0.9695 -2.58657,-1.29329 -0.64664,-2.10159 -1.29328,-3.55653 -2.26326,-2.1016 -2.58657,-0.64664 -1.6166,-4.84981 -2.74824,-5.98145 -4.20317,-1.93994 -2.1016,-1.93992 -1.29328,-2.58657 -2.10159,-1.93994 -2.26325,-1.29328 -2.26325,-2.90989 -3.07155,-2.26324 -4.52651,-1.77828 -0.48498,-1.45494 -2.4249,-2.90989 -0.48499,-1.45496 -3.39488,-5.17313 -3.39487,0.16166 -4.04152,-2.42492 -1.29328,-1.29328 -0.32332,-1.77827 0.8083,-1.93992 2.26325,-0.96998 -0.51082,-2.28908 5.7681,-2.33657 9.1155,-4.589 7.77473,-0.80831 16.1144,-0.42248 2.63825,1.87743 1.6791,3.35822 4.30235,-0.60998 12.60953,-1.45496 2.90989,0.80831 12.60954,7.59806 10.10808,8.12168 -5.42117,5.45834 -2.58657,6.1431 -0.48498,6.30476 -1.6166,0.8083 -1.13163,2.74823 -2.4249,0.64664 -2.10159,3.55653 -2.74823,2.74823 -2.26324,3.39487 -1.61661,0.8083 -3.55653,3.39487 -2.90989,0.16166 0.96997,3.23321 -5.01148,5.49646 -2.10159,1.29328 z", - "KY" : "m 725.9944,295.2707 -2.29332,2.40168 -3.57819,3.99404 -4.92455,5.46467 -1.21577,1.71577 -0.0625,2.10158 -4.37986,2.16409 -5.65812,3.39488 -7.23187,1.79885 -51.86789,4.89886 -15.75956,1.77826 -4.6212,0.51271 -3.86835,-0.0277 -0.22695,4.22028 -8.17941,0.14456 -6.95141,0.64664 -7.98748,-0.0602 1.20778,-1.32008 2.49954,-1.54085 0.22863,-3.20073 0.91449,-1.82898 -1.60682,-2.5389 0.80183,-1.90681 2.26326,-1.77826 2.10158,-0.64665 2.74823,1.29329 3.55654,1.29328 1.13163,-0.32332 0.16166,-2.26325 -1.29329,-2.42491 0.32332,-2.26325 1.93993,-1.45494 2.58658,-0.64665 1.6166,-0.64664 -0.8083,-1.77827 -0.64664,-1.93993 1.50662,-0.9958 c 0.003,-0.0371 1.25396,-3.52229 1.23829,-3.65781 l 3.05322,-1.47868 5.31979,-0.96996 4.49404,-0.48498 1.39244,1.62743 1.52827,0.8708 1.59077,-3.10821 3.18708,-1.28262 2.20509,1.48403 0.41056,0.99904 1.17352,-0.26401 -0.16167,-2.95293 3.13087,-1.74919 2.14809,-1.07348 1.52936,1.66081 3.31815,-0.0442 0.58733,-1.57125 -0.36751,-2.26324 2.60053,-3.9985 4.77655,-3.4379 0.70595,-4.83586 2.92502,-0.45591 3.79146,-1.64568 2.44332,-1.70824 -0.19833,-1.56493 -1.14245,-1.45494 0.56582,-2.99491 4.18485,-0.1175 2.29991,-0.7458 3.34739,1.4291 2.05411,4.36484 5.13229,0.0108 2.05101,2.20819 1.61545,-0.1477 2.60169,-1.27817 5.23706,0.57337 2.57492,0.21751 1.68758,-2.05624 2.61795,-1.42588 1.88178,-0.7071 0.64664,2.83663 2.04343,1.05834 2.64276,2.08249 0.11747,5.67324 0.8083,1.57241 2.58972,1.55628 0.77164,2.29451 4.15989,3.43694 1.80531,3.62324 2.45655,1.65852 z", - "AL" : "m 631.30647,460.41572 -1.4906,-14.3215 -2.74824,-18.75264 0.16166,-14.06449 0.8083,-31.03885 -0.16166,-16.65106 0.16509,-6.41906 44.48448,-3.61945 -0.1478,2.18242 0.16166,2.1016 0.64665,3.39487 3.39488,7.92137 2.4249,9.86131 1.45495,6.14311 1.6166,4.84982 1.45496,6.95141 2.10158,6.30476 2.58657,3.39489 0.48498,3.39486 1.93994,0.80831 0.16166,2.10159 -1.77828,4.84982 -0.48498,3.23322 -0.16166,1.93992 1.61662,4.36485 0.32332,5.33479 -0.80832,2.42492 0.64666,0.8083 1.45494,0.8083 0.32814,2.88882 -5.59766,-0.35355 -6.78975,0.64665 -25.5424,2.90988 -10.41156,1.40677 -0.22138,2.8774 1.77827,1.77827 2.58657,1.93992 0.58086,7.93544 -5.54206,2.5729 -2.74822,-0.32332 2.74822,-1.93993 0,-0.96996 -3.07154,-5.98144 -2.26325,-0.64664 -1.45495,4.36483 -1.29328,2.74823 -0.64664,-0.16166 -2.74823,0 z", - "LA" : "m 607.96706,459.16125 -3.28461,-3.16614 1.00991,-5.50023 -0.66135,-0.89308 -9.26167,1.00656 -25.02832,0.45892 -0.68419,-2.39468 0.91281,-8.4557 3.31588,-5.94585 5.03136,-8.69102 -0.57407,-2.39802 1.25659,-0.68085 0.45893,-1.95249 -2.28624,-2.05593 -0.11179,-1.94245 -1.83066,-4.34551 -0.14705,-6.3386 -55.47379,0.92397 0.0286,9.57357 0.68587,9.37353 0.68587,3.88658 2.51485,4.11521 0.91449,5.02971 4.34383,5.48693 0.22862,3.20072 0.68587,0.68587 -0.68587,8.45904 -2.97209,5.02969 1.60036,2.05761 -0.68588,2.51484 -0.68586,7.31593 -1.37174,3.20071 0.12246,3.61645 4.68648,-1.52015 12.11335,0.20701 10.34627,3.55653 6.46642,1.13163 3.71819,-1.45495 3.23321,1.13163 3.23321,0.96996 0.8083,-2.10159 -3.23321,-1.13162 -2.58657,0.48498 -2.74823,-1.6166 c 0,0 0.16167,-1.29329 0.80831,-1.45495 0.64664,-0.16166 3.07155,-0.96996 3.07155,-0.96996 l 1.77826,1.45494 1.77827,-0.96996 3.23321,0.64664 1.45494,2.42491 0.32332,2.26325 4.52649,0.32332 1.77827,1.77826 -0.8083,1.61661 -1.29329,0.8083 1.61661,1.6166 8.40634,3.55653 3.55653,-1.29328 0.96997,-2.42491 2.58656,-0.64664 1.77827,-1.45494 1.29328,0.96996 0.8083,2.90989 -2.26324,0.8083 0.64664,0.64664 3.39487,-1.29328 2.26325,-3.39487 0.8083,-0.48498 -2.10159,-0.32332 0.8083,-1.61661 -0.16166,-1.45494 2.10159,-0.48498 1.13162,-1.29329 0.64664,0.8083 c 0,0 -0.16166,3.07155 0.64665,3.07155 0.8083,0 4.20317,0.64665 4.20317,0.64665 l 4.04151,1.93992 0.96996,1.45495 2.90989,0 1.13163,0.96996 2.26324,-3.07155 0,-1.45495 -1.29328,0 -3.39487,-2.74822 -5.81978,-0.80831 -3.23321,-2.26324 1.13163,-2.74823 2.26324,0.32332 0.16166,-0.64664 -1.77826,-0.96996 0,-0.48499 3.23321,0 1.77826,-3.07154 -1.29328,-1.93993 -0.32332,-2.74823 -1.45495,0.16166 -1.93992,2.10159 -0.64664,2.58657 -3.07155,-0.64665 -0.96997,-1.77826 1.77827,-1.93993 1.90333,-3.4456 -1.0611,-2.41227 -1.16564,-3.98133 z", - "MS" : "m 631.55882,459.34458 -0.25426,1.25615 -5.17314,0 -1.45494,-0.8083 -2.10159,-0.32332 -6.78974,1.93992 -1.77826,-0.8083 -2.58657,4.20317 -1.10254,0.77802 -1.12383,-2.48798 -1.14312,-3.88659 -3.42933,-3.20071 1.1431,-5.54455 -0.68586,-0.91449 -1.82898,0.22862 -7.91792,0.87337 -24.5465,0.37337 -0.76974,-2.22536 0.87337,-8.3768 3.11684,-5.67281 5.22707,-9.1449 -0.44574,-2.4326 1.23686,-0.65625 0.43587,-1.91947 -2.31748,-2.07898 -0.11512,-2.14148 -1.83572,-4.12109 -0.109,-5.96277 1.32753,-2.48097 -0.2233,-3.41575 -1.76949,-3.08259 1.52642,-1.48221 -1.57061,-2.49954 0.45725,-1.65221 1.5774,-6.52637 2.48595,-2.03635 -0.64167,-2.36697 3.65797,-5.30253 2.83186,-1.35642 -0.22097,-1.67516 -0.28813,-1.6811 2.87606,-5.56767 2.34572,-1.23151 0.15163,-0.89301 37.34348,-3.88117 0.18486,6.28333 0.16166,16.65106 -0.8083,31.03885 -0.16166,14.06449 2.74824,18.75264 1.48437,13.39529 z", - "IA" : "m 569.19154,199.5843 0.26438,2.7862 2.22372,0.57726 0.95394,1.22533 0.50001,1.85536 3.79284,3.35865 0.68587,2.3915 -0.67434,3.42447 -1.58231,3.23198 -0.79934,2.74179 -2.17275,1.60204 -1.71551,0.5724 -5.57902,1.8602 -1.39146,3.84869 0.72864,1.37174 1.84051,1.68259 -0.28293,4.03629 -1.76315,1.53786 -0.77141,1.64314 0.12722,2.77632 -1.88631,0.45724 -1.62545,1.10491 -0.27879,1.35263 0.27879,2.11492 -1.55102,1.11607 -2.47053,-3.13328 -1.26257,-2.44987 -65.73582,2.51485 -0.91803,0.16544 -2.0524,-4.51596 -0.22862,-6.63007 -1.60036,-4.11521 -0.68586,-5.25831 -2.28623,-3.65797 -0.91448,-4.80107 -2.74348,-7.54455 -1.14311,-5.37264 -1.37174,-2.17191 -1.60036,-2.74346 1.95398,-4.84383 1.37174,-5.71557 -2.74347,-2.05761 -0.45725,-2.74347 0.9145,-2.51485 1.71467,0 82.654,-1.26948 0.83426,4.18312 2.25218,1.56097 0.25671,1.42309 -2.02954,3.38931 0.19041,3.20552 2.51486,3.7982 2.52679,1.29362 3.07928,0.50305 0.65834,0.83236 z", - "MN" : "m 475.23781,128.82439 -0.45725,-8.45904 -1.82898,-7.31592 -1.82898,-13.488725 -0.45725,-9.830778 -1.82898,-3.429343 -1.60036,-5.029695 0,-10.28802 0.68586,-3.886587 -1.82093,-5.451667 30.13242,0.03527 0.32332,-8.244684 0.64664,-0.161661 2.26325,0.484982 1.93992,0.808302 0.8083,5.496456 1.45495,6.143098 1.6166,1.616605 4.84982,0 0.32332,1.454944 6.30476,0.323321 0,2.101586 4.84981,0 0.32332,-1.293284 1.13162,-1.131623 2.26325,-0.646642 1.29328,0.969963 2.90989,0 3.87985,2.586567 5.3348,2.424907 2.42491,0.484982 0.48498,-0.969963 1.45494,-0.484982 0.48498,2.909889 2.58657,1.293284 0.48498,-0.484982 1.29329,0.161661 0,2.101586 2.58656,0.969963 3.07155,0 1.61661,-0.808303 3.23321,-3.233209 2.58656,-0.484981 0.80831,1.778265 0.48498,1.293283 0.96996,0 0.96996,-0.808302 8.89133,-0.323321 1.77826,3.071549 0.64665,0 0.71361,-1.084279 4.43991,-0.370665 -0.6121,2.279459 -3.93872,1.837125 -9.24578,4.061128 -4.77474,2.006897 -3.07155,2.586568 -2.42491,3.55653 -2.26324,3.879851 -1.77827,0.808304 -4.52649,5.01147 -1.29329,0.16166 -4.32778,2.75712 -2.46288,3.20511 -0.22862,3.19139 0.0944,8.04335 -1.37604,1.68875 -5.08154,3.75997 -2.23008,5.98241 2.87175,2.23371 0.67989,3.22698 -1.85524,3.23893 0.17079,3.74802 0.36886,6.7304 3.02825,3.00199 3.329,0 1.89111,3.1326 3.37917,0.50327 3.85916,5.67147 7.08729,4.11675 2.14315,2.87512 0.67115,6.43951 -81.2115,1.14479 -0.33792,-35.67685 -0.45724,-2.97209 -4.11521,-3.42934 -1.14312,-1.82898 0,-1.60037 2.0576,-1.60035 1.37174,-1.37174 0.22863,-3.20072 z", - "OK" : "m 380.34313,320.82146 -16.68418,-1.27331 -0.88022,10.95243 20.46538,1.15688 32.05555,1.3036 -2.3346,24.41865 -0.45725,17.83257 0.22863,1.60036 4.34383,3.65796 2.0576,1.14311 0.68587,-0.22862 0.68587,-2.05761 1.37174,1.82899 2.0576,0 0,-1.37174 2.74347,1.37174 -0.45724,3.88658 4.11521,0.22862 2.51484,1.14312 4.11521,0.68587 2.51485,1.82898 2.28623,-2.0576 3.42934,0.68586 2.51485,3.42934 0.91448,0 0,2.28623 2.28623,0.68586 2.28622,-2.28622 1.82899,0.68586 2.51484,0 0.9145,2.51486 6.30107,2.07897 1.37174,-0.68586 1.82898,-4.11521 1.14311,0 1.14312,2.0576 4.11521,0.68587 3.65795,1.37174 2.9721,0.91449 1.82899,-0.91449 0.68586,-2.51485 4.34383,0 2.0576,0.91449 2.74347,-2.05761 1.14312,0 0.68587,1.60036 4.1152,0 1.60036,-2.0576 1.82899,0.45724 2.0576,2.51486 3.20071,1.82897 3.20073,0.9145 1.94108,1.11893 -0.3891,-37.21701 -1.37175,-10.97398 -0.16046,-8.87234 -1.43989,-6.53773 -0.7782,-7.17964 -0.0681,-3.81622 -12.13684,0.31874 -46.41004,-0.45724 -45.03891,-2.05762 -24.2912,-1.37173 z", - "TX" : "m 361.46423,330.57358 22.69079,1.08594 31.09269,1.14312 -2.33461,23.4558 -0.29676,18.15352 0.0681,2.08179 4.34383,3.81843 1.98665,1.44716 1.18421,-0.55969 0.37337,-1.81772 1.14032,1.80362 2.11164,0.0439 -0.003,-1.44709 1.66994,0.96727 1.1387,0.40887 -0.35927,3.96765 4.08819,0.0935 2.92532,1.19717 3.95474,0.52538 2.38138,2.07898 2.1241,-2.07617 3.72494,0.61491 2.22091,3.22494 1.07496,0.32096 -0.16047,1.96527 2.21361,0.79229 2.33015,-2.0548 2.13302,0.61492 2.22938,0.0355 0.93307,2.43544 6.32809,2.11445 1.59305,-0.76693 1.48947,-4.17771 0.34072,0 0.90649,0.0816 1.22905,2.06863 3.92988,0.66528 3.337,1.12288 3.42563,1.19597 1.84058,-0.975 0.71376,-2.51484 4.45322,0.0442 1.80874,0.93078 2.79925,-2.10651 1.10364,0.0442 0.85104,1.60507 4.05472,0 1.51887,-2.02862 1.86737,0.40724 1.94603,2.40328 3.52057,2.04415 2.85876,0.80981 1.51362,0.79984 2.4467,1.99732 3.04304,-1.32779 2.69109,1.13888 0.56381,6.10594 -0.0398,9.70217 0.68586,9.53401 0.70218,3.60511 2.67533,4.41986 0.89818,4.95073 4.21595,5.53802 0.19602,3.14494 0.74637,0.78584 -0.73007,8.38007 -2.8721,5.0065 1.53297,2.15287 -0.63008,2.33808 -0.66957,7.40432 -1.50432,3.338 0.29488,3.50235 -5.66488,1.58518 -9.86129,4.5265 -0.96996,1.93992 -2.58657,1.93993 -2.10158,1.45494 -1.29329,0.8083 -5.65811,5.3348 -2.74823,2.10159 -5.3348,3.2332 -5.65811,2.42491 -6.30476,3.39487 -1.77826,1.45495 -5.81978,3.55653 -3.39487,0.64664 -3.87985,5.49645 -4.04151,0.32333 -0.96997,1.93992 2.26325,1.93993 -1.45495,5.49645 -1.29328,4.5265 -1.13162,3.87985 -0.8083,4.52649 0.8083,2.42491 1.77826,6.9514 0.96997,6.14309 1.77826,2.74823 -0.96996,1.45495 -3.07155,1.93992 -5.65812,-3.87985 -5.49645,-1.13162 -1.29329,0.48498 -3.23321,-0.64664 -4.20317,-3.07155 -5.17313,-1.13162 -7.59805,-3.39487 -2.10158,-3.87986 -1.29329,-6.46641 -3.2332,-1.93993 -0.64665,-2.26325 0.64665,-0.64664 0.32332,-3.39487 -1.29329,-0.64664 -0.64664,-0.96996 1.29328,-4.36484 -1.6166,-2.26324 -3.23321,-1.29329 -3.39487,-4.36483 -3.55653,-6.62808 -4.20317,-2.58657 0.16166,-1.93992 -5.3348,-12.2862 -0.8083,-4.20317 -1.77826,-1.93992 -0.16166,-1.45495 -5.98144,-5.33479 -2.58657,-3.07155 0,-1.13163 -2.58657,-2.10158 -6.78974,-1.13163 -7.43638,-0.64664 -3.07155,-2.26324 -4.52649,1.77826 -3.55653,1.45495 -2.26325,3.2332 -0.96996,3.7182 -4.36483,6.14309 -2.42491,2.42491 -2.58657,-0.96996 -1.77826,-1.13163 -1.93993,-0.64664 -3.87985,-2.26324 0,-0.64665 -1.77826,-1.93992 -5.17314,-2.10159 -7.43638,-7.7597 -2.26325,-4.68815 0,-8.08303 -3.23321,-6.46642 -0.48498,-2.74822 -1.6166,-0.96997 -1.13163,-2.10158 -5.01147,-2.10159 -1.29328,-1.6166 -7.11307,-7.92137 -1.29328,-3.23321 -4.68816,-2.26325 -1.45495,-4.36487 -2.58659,-2.90987 -1.93991,-0.48496 -0.64923,-4.67764 8.00187,0.68589 29.03499,2.74345 29.03508,1.60036 2.23353,-19.46182 3.88655,-55.55502 1.60039,-18.74732 1.37174,0.0286 m 99.02935,229.66274 -0.56581,-7.11308 -2.74824,-7.19392 -0.56582,-7.03225 1.53578,-8.24471 3.31406,-6.87059 3.4757,-5.41565 3.1524,-3.55655 0.64664,0.2425 -4.769,6.6281 -4.36484,6.54728 -2.02077,6.62809 -0.32332,5.17316 0.88913,6.14312 2.58658,7.19392 0.48498,5.17314 0.16166,1.45496 -0.88913,0.24248 z", - "NM" : "m 288.15255,424.01315 -0.77541,-4.7481 8.64378,0.5254 30.17176,2.9459 27.26816,1.68989 2.21527,-18.70747 3.85736,-55.87597 1.73768,-19.38923 1.5717,0.12856 0.8254,-11.16339 -104.00445,-10.63595 -17.49735,120.43481 15.46067,1.98915 1.29328,-10.02295 29.23215,2.82935 z", - "KS" : "m 507.88059,324.38028 -12.61826,0.20443 -46.08909,-0.45723 -44.55748,-2.05763 -24.62974,-1.25741 3.89379,-64.59497 22.08346,0.67517 40.28913,0.8414 44.30124,0.98758 5.09563,0 2.1844,2.1624 2.01766,-0.0214 1.6403,1.01247 -0.0625,3.00923 -1.82898,1.72537 -0.33225,2.23217 1.84308,3.40233 2.95236,3.19506 2.32735,1.61446 1.30077,11.24082 0.18913,36.08573 z", - "NE" : "m 486.09787,240.70058 3.23061,7.01991 -0.12863,2.30252 3.45922,5.49388 2.71929,3.15234 -5.04948,0 -43.48256,-0.93868 -40.78686,-0.8903 -22.25222,-0.78387 1.07277,-21.32785 -32.31824,-2.92025 4.34383,-44.00986 15.54633,1.02881 20.11879,1.1431 17.83257,1.14312 23.77676,1.14311 10.74526,-0.45724 2.0576,2.28622 4.80108,2.9721 1.14311,0.91449 4.34383,-1.37174 3.88659,-0.45724 2.74347,-0.22863 1.82898,1.37174 4.05743,1.60036 2.97209,1.60036 0.45725,1.60036 0.91449,2.0576 1.82898,0 0.79798,0.0462 0.89423,4.68182 2.92026,8.46792 0.57253,3.75671 2.52349,3.77425 0.56959,5.11414 1.60724,4.24037 0.25234,6.47426 z", - "SD" : "m 476.44687,204.02465 -0.0474,-0.58087 -2.89571,-4.84544 1.86023,-4.71211 1.49273,-5.88654 -2.78187,-2.07971 -0.38516,-2.74346 0.7924,-2.55435 3.18851,0.0152 -0.12308,-5.00614 -0.3333,-30.17425 -0.61773,-3.76758 -4.07232,-3.33093 -0.98263,-1.67696 -0.0625,-1.60882 2.02212,-1.5294 1.53222,-1.66567 0.24496,-2.65679 -58.25709,-1.60035 -54.79921,-3.44909 -5.32527,63.69119 14.59027,0.9038 19.94985,1.20561 17.74305,0.92859 23.77676,1.30358 11.9827,-0.42464 1.9663,2.24518 5.19464,3.25335 0.76389,0.72275 4.54144,-1.45281 6.54054,-0.61491 1.6753,1.33627 4.20451,1.59613 2.94506,1.63583 0.39898,1.48381 1.03949,2.24088 2.23737,-0.20136 z", - "ND" : "m 475.30528,128.91846 -0.61491,-8.43367 -1.67695,-6.81592 -1.89149,-13.02422 -0.45724,-10.987026 -1.73946,-3.077142 -1.75661,-5.194396 0.0312,-10.44427 0.62336,-3.824087 -1.8341,-5.467761 -28.64225,-0.564027 -18.59095,-0.646642 -26.51232,-1.293284 -22.94634,-2.133869 -6.99324,67.176834 54.93224,3.34365 58.06901,1.38583 z", - "WY" : "m 360.37668,143.27587 -106.7426,-13.45706 -14.08348,88.45803 113.26461,13.58549 7.56147,-88.58646 z", - "MT" : "M 369.20952,56.969133 338.5352,54.1613 l -29.26055,-3.55653 -29.26054,-4.041512 -32.3321,-5.334795 -18.42929,-3.39487 -32.72365,-6.932736 -4.47902,21.347532 3.42934,7.544541 -1.37174,4.572452 1.82898,4.572451 3.20073,1.371739 4.62082,10.769453 2.6951,3.176523 0.45724,1.143118 3.42934,1.143118 0.45725,2.057593 -7.0873,17.603953 0,2.51485 2.51485,3.20071 0.91448,0 4.80107,-2.97209 0.68588,-1.14312 1.60036,0.68587 -0.22863,5.25832 2.74348,12.57425 2.97209,2.51484 0.91448,0.68587 1.82899,2.28622 -0.45725,3.42935 0.68587,3.42933 1.14312,0.9145 2.28622,-2.28623 2.74347,0 3.20072,1.60036 2.51485,-0.91449 4.11521,0 3.65795,1.60036 2.74348,-0.45725 0.45724,-2.9721 2.97209,-0.68586 1.37174,1.37174 0.45725,3.20071 1.42587,0.83464 1.88695,-11.03474 106.74567,13.42892 8.80221,-86.299157 z", - "CO" : "m 380.03242,320.96457 4.90324,-86.32496 -113.38856,-12.64396 -12.21382,87.93916 120.69914,11.02976 z", - "ID" : "m 148.47881,176.48395 8.77087,-35.22072 1.37174,-4.22952 2.51484,-5.94418 -1.25742,-2.28623 -2.51486,0.11431 -0.80017,-1.0288 0.45725,-1.14311 0.34292,-3.08641 4.45815,-5.48695 1.82898,-0.45724 1.14311,-1.14311 0.57156,-3.20072 0.91448,-0.68586 3.88659,-5.82988 3.88659,-4.34383 0.22862,-3.772268 -3.42934,-2.629163 -1.53555,-4.400983 13.62491,-63.341691 13.51759,2.528111 -4.40808,21.383013 3.56035,7.485352 -1.58111,4.66084 1.96985,4.641233 3.13822,1.255191 3.83534,9.556588 3.51269,4.437154 0.50725,1.143118 3.34095,1.143118 0.36885,2.097075 -6.97101,17.376092 -0.16518,2.56593 2.63112,3.3217 0.90508,-0.0489 4.91129,-3.0256 0.67742,-1.09497 1.56231,0.65886 -0.27844,5.35372 2.73925,12.58271 3.91783,3.17791 1.68118,2.16545 -0.71661,4.08386 1.06622,2.80741 1.06163,1.09128 2.47929,-2.35142 2.84816,0.0489 2.91925,1.3352 2.78002,-0.68193 3.79426,-0.16048 3.9789,1.60036 2.74348,-0.29676 0.49674,-3.03731 2.93259,-0.76483 1.26017,1.51591 0.44093,2.94496 1.42434,1.21321 -8.386,53.60866 c 0,0 -87.96599,-16.70061 -94.95939,-18.20435 z", - "UT" : "m 259.49836,310.10509 -83.74903,-11.87225 20.58761,-112.54135 46.78031,8.74514 -1.4848,10.63042 -2.31162,13.17266 7.80769,0.92837 16.40652,1.80479 8.21097,0.85564 -12.24765,88.27658 z", - "AZ" : "m 144.9112,382.62909 -2.62701,2.15833 -0.32332,1.45495 0.48498,0.96996 18.91427,10.66959 12.12454,7.59804 14.7111,8.56801 16.81269,10.02295 12.2862,2.42491 24.95116,2.70491 17.25561,-119.12707 -83.73563,-11.91725 -3.09239,16.41246 -1.60629,0.0153 -1.71467,2.62916 -2.51485,-0.11432 -1.25742,-2.74347 -2.74347,-0.34293 -0.9145,-1.14311 -0.91448,0 -0.9145,0.57156 -1.94329,1.0288 -0.1143,6.97298 -0.22864,1.71467 -0.57154,12.57424 -1.48605,2.17191 -0.57156,3.31503 2.74347,4.91539 1.25742,5.82988 0.80019,1.0288 1.0288,0.57156 -0.11432,2.28622 -1.60035,1.37173 -3.42934,1.71467 -1.94329,1.9433 -1.48605,3.65795 -0.57156,4.91539 -2.85778,2.74347 -2.0576,0.68587 0.13569,0.82988 -0.45725,1.71467 0.45725,0.80018 3.65796,0.57154 -0.57156,2.74348 -1.48605,2.17191 -3.77227,0.91449 z", - "NV" : "m 196.39273,185.57552 -23.63891,128.82275 -1.83224,0.34915 -1.57276,2.40618 -2.37294,0.0107 -1.47195,-2.74347 -2.61847,-0.37842 -0.77092,-1.10763 -1.03783,-0.054 -2.77837,1.64429 -0.31026,6.78548 -0.36209,5.77717 -0.34857,8.59281 -1.4471,2.08916 -2.43892,-1.07403 -69.079886,-104.20119 18.989116,-67.58491 93.0921,20.66601 z", - "OR" : "m 148.72184,175.53153 8.8497,-34.80151 1.05079,-4.22952 2.35437,-5.62323 -0.61551,-1.16288 -2.51486,-0.0462 -1.2816,-1.6707 0.45724,-1.46407 0.50341,-3.24688 4.45815,-5.48695 1.82898,-1.09915 1.14311,-1.14311 1.48604,-3.56563 4.04706,-5.6694 3.56563,-3.8624 0.22862,-3.451314 -3.26886,-2.468682 -1.78341,-4.642625 -12.66377,-3.61197 -15.08909,-3.54365 -15.43202,0.114306 -0.45724,-1.371729 -5.48695,2.057604 -4.45814,-0.571559 -2.40054,-1.600361 -1.25742,0.685875 -4.68676,-0.228632 -1.71467,-1.371729 -5.25832,-2.057604 -0.800182,0.114316 -4.34383,-1.486056 -1.943291,1.828983 -6.172812,-0.342927 -5.944183,-4.115209 0.685865,-0.80018 0.228621,-7.773173 -2.286225,-3.886577 -4.115208,-0.571559 -0.685865,-2.514847 -2.353932,-0.466565 -5.798525,2.058784 -2.263247,6.466418 -3.233209,10.022949 -3.23321,6.466419 -5.011474,14.064461 -6.466419,13.579473 -8.083023,12.60952 -1.939926,2.90989 -0.808302,8.568 0.386095,12.08023 112.578342,26.32133 z", - "WA" : "m 102.07324,7.6117734 4.36483,1.4549443 9.69963,2.7482283 8.568,1.939925 20.0459,5.658117 22.95579,5.658116 15.22312,3.207173 -13.63236,63.585811 -12.445,-3.525318 -15.50801,-3.570679 -15.22929,0.03324 -0.45557,-1.344699 -5.59922,2.179293 -4.59543,-0.736744 -2.14697,-1.584054 -1.31321,0.657976 -4.73566,-0.140243 -1.69836,-1.349633 -5.26304,-2.112303 -0.734971,0.146918 -4.389122,-1.524448 -1.893298,1.817379 -6.265906,-0.298733 -5.925698,-4.125702 0.778957,-0.932763 0.121223,-7.677452 -2.281999,-3.839701 -4.115208,-0.60704 -0.67741,-2.510616 -2.275512,-0.456932 -3.554948,1.230576 -2.263247,-3.219247 0.323321,-2.909889 2.748228,-0.323321 1.616605,-4.041511 -2.586568,-1.131624 0.161661,-3.718191 4.364833,-0.646641 -2.748228,-2.748228 -1.454945,-7.113061 0.646642,-2.909888 0,-7.921363 -1.778265,-3.23321 2.263247,-9.376307 2.101586,0.484981 2.424907,2.909889 2.748228,2.586567 3.233209,1.939926 4.526493,2.101586 3.071551,0.646642 2.909889,1.454944 3.394873,0.969963 2.263246,-0.16166 0,-2.424908 1.293284,-1.131623 2.101582,-1.293284 0.32333,1.131624 0.32332,1.778265 -2.263251,0.484981 -0.323321,2.101586 1.778262,1.454945 1.13163,2.424907 0.64664,1.939925 1.45494,-0.16166 0.16166,-1.293284 -0.96996,-1.293284 -0.48498,-3.233209 0.8083,-1.778265 -0.64664,-1.454944 0,-2.263247 1.77827,-3.55653 -1.13163,-2.586568 -2.42491,-4.8498139 0.32333,-0.8083023 1.13162,-0.8083024 z m -9.456692,5.9789646 2.020764,-0.16166 0.484982,1.374119 1.535779,-1.616615 2.344082,0 0.808303,1.535779 -1.53578,1.69744 0.646652,0.808313 -0.727477,2.020761 -1.374119,0.404146 c 0,0 -0.889138,0.08084 -0.889138,-0.242485 0,-0.323321 1.454955,-2.586578 1.454955,-2.586578 l -1.69744,-0.565817 -0.323321,1.454954 -0.727478,0.646642 -1.535782,-2.263257 -0.484982,-2.505742 z", - "CA" : "m 144.69443,382.19813 3.94008,-0.48862 1.48604,-2.01144 0.54454,-2.94109 -3.55152,-0.59012 -0.51417,-0.66822 0.4775,-2.03231 -0.15928,-0.58967 1.92257,-0.61959 3.04278,-2.83268 0.58156,-4.9951 1.3799,-3.40211 1.94329,-2.16626 3.51887,-1.58967 1.65439,-1.60483 0.0687,-2.10884 -0.99333,-0.58001 -1.02315,-1.07273 -1.15522,-5.84845 -2.6852,-4.83009 0.56581,-3.505 -2.41958,-1.02931 -69.061322,-104.1784 18.902112,-67.60149 -67.079863,-15.69796 -1.506896,4.73324 -0.161661,7.43638 -5.173135,11.80121 -3.071548,2.58657 -0.323321,1.13162 -1.778266,0.80831 -1.454944,4.20317 -0.808302,3.23321 2.748228,4.20317 1.616605,4.20317 1.131623,3.55653 -0.323321,6.46642 -1.778265,3.07155 -0.646642,5.81978 -0.969963,3.71819 1.778265,3.87985 2.748228,4.52649 2.263247,4.84982 1.293283,4.04151 -0.32332,3.23321 -0.323321,0.48498 0,2.10158 5.658116,6.30476 -0.484981,2.42491 -0.646642,2.26325 -0.646642,1.93992 0.16166,8.24469 2.101586,3.71819 1.939926,2.58656 2.748228,0.48499 0.969963,2.74822 -1.131623,3.55653 -2.101587,1.61661 -1.131623,0 -0.808302,3.87985 0.484981,2.90989 3.23321,4.36483 1.616604,5.3348 1.454944,4.68815 1.293284,3.07155 3.39487,5.81978 1.454944,2.58656 0.484982,2.90989 1.616604,0.96996 0,2.42491 -0.808302,1.93993 -1.778265,7.11306 -0.484982,1.93992 2.424908,2.74823 4.203172,0.48498 4.526493,1.77827 3.879851,2.10158 2.909889,0 2.909888,3.07155 2.586567,4.84982 1.131624,2.26324 3.879851,2.10159 4.849814,0.8083 1.454944,2.10159 0.646642,3.23321 -1.454944,0.64664 0.323321,0.96996 3.233211,0.8083 2.748228,0.16167 3.159889,-1.68685 3.879854,4.20317 0.808302,2.26325 2.586572,4.20317 0.32332,3.23321 0,9.37631 0.48498,1.77826 10.02295,1.45495 19.72257,2.74822 13.84504,1.3497 z m -88.135212,-43.71668 1.293288,1.53578 -0.16166,1.29329 -3.233221,-0.0808 -0.565814,-1.21246 -0.646644,-1.45495 3.314051,-0.0808 z m 1.939932,0 1.212458,-0.64664 3.556543,2.10159 3.07156,1.21245 -0.889136,0.64666 -4.526509,-0.2425 -1.61661,-1.61661 -0.808306,-1.45495 z m 20.692614,19.80348 1.778265,2.34408 0.808313,0.96997 1.535779,0.56581 0.565807,-1.45495 -0.969963,-1.77827 -2.667403,-2.02076 -1.050798,0.16166 0,1.21246 z m -1.454955,8.64886 1.778276,3.15239 1.212458,1.93994 -1.454954,0.24248 -1.293284,-1.21245 c 0,0 -0.727477,-1.45495 -0.727477,-1.85911 0,-0.40414 0,-2.18242 0,-2.18242 l 0.484981,-0.0808 z" - } - } - } - } - ); - - return Mapael; - -})); \ No newline at end of file diff --git a/htdocs/public/high/plugins/jquery-mapael/maps/usa_states.min.js b/htdocs/public/high/plugins/jquery-mapael/maps/usa_states.min.js deleted file mode 100644 index 871268e8..00000000 --- a/htdocs/public/high/plugins/jquery-mapael/maps/usa_states.min.js +++ /dev/null @@ -1,11 +0,0 @@ -/*! - * - * Jquery Mapael - Dynamic maps jQuery plugin (based on raphael.js) - * Requires jQuery and Mapael - * - * Map of USA by state - * - * @source http://the55.net/_11/sketch/us_map - */ -!function(a){"object"==typeof exports?module.exports=a(require("jquery"),require("mapael")):"function"==typeof define&&define.amd?define(["jquery","mapael"],a):a(jQuery,jQuery.mapael)}(function(a,b){"use strict";return a.extend(!0,b,{maps:{usa_states:{width:959,height:593,latLngToGrid:function(a,b,c,d,e,f){var g,h,i,j,k,l,m,n=Math.PI,o=(c+d)/2;return g=(Math.sin(c/180*n)+Math.sin(d/180*n))/2,h=Math.sqrt(Math.cos(c/180*n))+2*g*Math.sin(c/180*n),i=f*Math.pow(h-2*g*Math.sin(o/180*n),.5)/g,j=g*(b-e),m=f*Math.pow(h-2*g*Math.sin(a/180*n),.5)/g,k=m*Math.sin(j/180*n),l=i-m*Math.cos(j/180*n),[k,l]},getCoords:function(a,b){var c,d,e,f,g,h,i,j,k={};return a>51?(g=15,h=105,i=-134,j=530,k=this.latLngToGrid(a,b,g,h,i,j),c=190,d=543,e=1,f=-1):-140>b?(g=0,h=26,i=-166,j=1280,k=this.latLngToGrid(a,b,g,h,i,j),c=115,d=723,e=1,f=-1):(c=-17,d=-22,e=10.05,f=6.26,k[0]=50+124.03149777329222*((1.9694462586094064-a*Math.PI/180)*Math.sin(.6010514667026994*(b+96)*Math.PI/180)),k[1]=55.23670416287796-200.38467697709729*(1.3236744353715044-(1.9694462586094064-a*Math.PI/180)*Math.cos(.6010514667026994*(b+96)*Math.PI/180))),{x:k[0]*e+c,y:k[1]*f+d}},elems:{HI:"m 233.08751,519.30948 1.93993,-3.55655 2.26326,-0.32332 0.32332,0.8083 -2.1016,3.07157 -2.42491,0 z m 10.18466,-3.71821 6.14313,2.58657 2.10159,-0.32332 1.61661,-3.87987 -0.64664,-3.39488 -4.2032,-0.48498 -4.04153,1.77827 -0.96996,3.71821 z m 30.71563,10.023 3.7182,5.49647 2.42492,-0.32332 1.13163,-0.48498 1.45495,1.29329 3.71821,-0.16166 0.96997,-1.45495 -2.90991,-1.77827 -1.93993,-3.71822 -2.1016,-3.55654 -5.8198,2.9099 -0.64664,1.77828 z m 20.20765,8.89137 1.29329,-1.93994 4.68817,0.96996 0.64665,-0.48498 6.14312,0.64664 -0.32332,1.2933 -2.58658,1.45494 -4.36485,-0.32332 -5.49648,-1.6166 z m 5.33482,5.17315 1.93994,3.87987 3.07155,-1.13163 0.32333,-1.61662 -1.61661,-2.10159 -3.71821,-0.32332 0,1.29329 z m 6.95143,-1.13163 2.26326,-2.9099 4.68817,2.42492 4.36485,1.13163 4.36486,2.74824 0,1.93993 -3.55654,1.77828 -4.84985,0.96996 -2.42491,-1.45495 -4.84984,-6.62811 z m 16.65111,15.51947 1.61661,-1.29328 3.39489,1.61662 7.59807,3.55654 3.39489,2.10159 1.6166,2.42492 1.93994,4.36485 4.04153,2.58658 -0.32332,1.2933 -3.87987,3.23322 -4.20319,1.45495 -1.45495,-0.64664 -3.07157,1.77826 -2.42491,3.23323 -2.26326,2.9099 -1.77828,-0.16166 -3.55654,-2.58658 -0.32332,-4.52651 0.64664,-2.42492 -1.61661,-5.65814 -2.1016,-1.77828 -0.16166,-2.58658 2.26326,-0.96996 2.1016,-3.07156 0.48498,-0.96997 -1.61661,-1.77828 -0.32332,-2.1016 z",AK:"m 158.07671,453.67502 -0.32332,85.35713 1.6166,0.96996 3.07157,0.16166 1.45494,-1.13162 2.58658,0 0.16167,2.9099 6.95143,6.78977 0.48499,2.58658 3.39488,-1.93994 0.64665,-0.16166 0.32332,-3.07156 1.45494,-1.61661 1.13164,-0.16166 1.93993,-1.45496 3.07156,2.1016 0.64665,2.90991 1.93993,1.13162 1.13163,2.42492 3.87988,1.77827 3.39488,5.98147 2.74823,3.87986 2.26326,2.74825 1.45496,3.7182 5.01149,1.77828 5.17317,2.10159 0.96996,4.36486 0.48498,3.07156 -0.96996,3.39489 -1.77828,2.26325 -1.61661,-0.8083 -1.45495,-3.07157 -2.74824,-1.45494 -1.77827,-1.13164 -0.80831,0.80831 1.45495,2.74825 0.16166,3.7182 -1.13163,0.48498 -1.93993,-1.93993 -2.10159,-1.29329 0.48498,1.61661 1.29328,1.77828 -0.8083,0.8083 c 0,0 -0.8083,-0.32332 -1.29328,-0.96997 -0.485,-0.64664 -2.1016,-3.39488 -2.1016,-3.39488 l -0.96997,-2.26326 c 0,0 -0.32332,1.29329 -0.96997,0.96996 -0.64665,-0.32332 -1.29329,-1.45494 -1.29329,-1.45494 l 1.77827,-1.93994 -1.45495,-1.45495 0,-5.0115 -0.8083,0 -0.8083,3.39488 -1.13164,0.485 -0.96996,-3.71822 -0.64665,-3.71821 -0.80831,-0.48498 0.32333,5.65815 0,1.13162 -1.45496,-1.29328 -3.55654,-5.98147 -2.1016,-0.48498 -0.64664,-3.71821 -1.61661,-2.9099 -1.61662,-1.13164 0,-2.26325 2.1016,-1.29329 -0.48498,-0.32332 -2.58658,0.64664 -3.39489,-2.42491 -2.58658,-2.90991 -4.84983,-2.58658 -4.04154,-2.58658 1.2933,-3.23322 0,-1.61661 -1.77828,1.61661 -2.9099,1.13163 -3.71821,-1.13163 -5.65815,-2.42491 -5.49647,0 -0.64664,0.48498 -6.46645,-3.87988 -2.1016,-0.32332 -2.74824,-5.8198 -3.55655,0.32332 -3.55655,1.45495 0.48499,4.52652 1.13162,-2.9099 0.96998,0.32332 -1.45496,4.36485 3.23322,-2.74824 0.64665,1.61661 -3.87987,4.36485 -1.29329,-0.32332 -0.48498,-1.93994 -1.29329,-0.8083 -1.29329,1.13163 -2.74824,-1.77827 -3.07157,2.1016 -1.77826,2.10159 -3.39489,2.1016 -4.68818,-0.16167 -0.48498,-2.10159 3.7182,-0.64665 0,-1.29328 -2.26326,-0.64666 0.96998,-2.42491 2.26325,-3.87987 0,-1.77827 0.16166,-0.80831 4.36486,-2.26326 0.96996,1.29329 2.74825,0 -1.29329,-2.58657 -3.71822,-0.32333 -5.01149,2.74824 -2.42492,3.39488 -1.77827,2.58659 -1.13163,2.26326 -4.20319,1.45494 -3.07157,2.58658 -0.323321,1.61662 2.263257,0.96997 0.808313,2.10158 -2.748249,3.23323 -6.466439,4.2032 -7.759747,4.20319 -2.101597,1.13162 -5.334818,1.13164 -5.334826,2.26325 1.778275,1.29329 -1.454954,1.45495 -0.484982,1.13163 -2.748238,-0.96997 -3.23322,0.16166 -0.808312,2.26326 -0.969963,0 0.323321,-2.42492 -3.556551,1.2933 -2.909899,0.96996 -3.394886,-1.29329 -2.909901,1.93993 -3.233224,0 -2.101597,1.2933 -1.616612,0.8083 -2.101595,-0.32332 -2.58658,-1.13163 -2.263257,0.64665 -0.969967,0.96996 -1.616613,-1.13162 0,-1.93994 3.071564,-1.29329 6.304787,0.64665 4.364853,-1.61662 2.101596,-2.10159 2.909902,-0.64665 1.778273,-0.80831 2.748241,0.16166 1.616612,1.2933 0.969963,-0.32332 2.263257,-2.74824 3.07157,-0.96998 3.39488,-0.64664 1.293294,-0.32332 0.646642,0.48498 0.808312,0 1.293284,-3.71821 4.041533,-1.45494 1.939936,-3.71821 2.263259,-4.52652 1.616615,-1.45495 0.323321,-2.58658 -1.616615,1.29329 -3.394893,0.64665 -0.646642,-2.42492 -1.293284,-0.32332 -0.969973,0.96996 -0.16166,2.90991 -1.454955,-0.16167 -1.454944,-5.8198 -1.293294,1.29328 -1.131624,-0.48498 -0.32332,-1.93993 -4.041533,0.16166 -2.101596,1.13163 -2.586578,-0.32332 1.454944,-1.45495 0.484981,-2.58658 -0.646641,-1.93994 1.454954,-0.96996 1.293284,-0.16166 -0.646642,-1.77828 0,-4.36485 -0.969963,-0.96997 -0.808312,1.45495 -6.143123,0 -1.454951,-1.29329 -0.646645,-3.87986 -2.101596,-3.55656 0,-0.96996 2.101596,-0.80831 0.161661,-2.1016 1.131628,-1.13162 -0.808305,-0.48498 -1.29329,0.48498 -1.131628,-2.74824 0.969967,-5.01151 4.526514,-3.23321 2.586575,-1.61662 1.939936,-3.7182 2.748249,-1.2933 2.586578,1.13164 0.323321,2.42492 2.424917,-0.32334 3.23322,-2.42491 1.616615,0.64665 0.969962,0.64664 1.616615,0 2.263259,-1.29329 0.808313,-4.36486 c 0,0 0.323321,-2.90989 0.969963,-3.39488 0.646642,-0.48498 0.969963,-0.96996 0.969963,-0.96996 l -1.131623,-1.93994 -2.58658,0.80831 -3.23323,0.8083 -1.939936,-0.48498 -3.556541,-1.77828 -5.011495,-0.16166 -3.556551,-3.7182 0.484981,-3.87987 0.646652,-2.42492 -2.101596,-1.77827 -1.939938,-3.71822 0.484983,-0.8083 6.789771,-0.48498 2.101596,0 0.969963,0.96996 0.646652,0 -0.16166,-1.61661 3.879862,-0.64664 2.586577,0.32332 1.454955,1.13163 -1.454955,2.1016 -0.484981,1.45494 2.748249,1.61662 5.011497,1.77827 1.778276,-0.96996 -2.263257,-4.36485 -0.969974,-3.23323 0.969974,-0.80831 -3.394891,-1.93993 -0.484983,-1.13164 0.484983,-1.6166 -0.808304,-3.87987 -2.909909,-4.68818 -2.424918,-4.20319 2.909909,-1.93994 3.233222,0 1.778276,0.64665 4.203192,-0.16166 3.718205,-3.55654 1.131633,-3.07157 3.718212,-2.42492 1.616604,0.96997 2.748239,-0.64665 3.718209,-2.1016 1.13164,-0.16166 0.96996,0.80832 4.52651,-0.16167 2.74824,-3.07156 1.13163,0 3.55655,2.42491 1.93993,2.1016 -0.48498,1.13163 0.64664,1.13163 1.61662,-1.61661 3.87987,0.32332 0.32332,3.7182 1.93994,1.45496 7.11309,0.64664 6.30479,4.20319 1.45494,-0.96996 5.17317,2.58658 2.10159,-0.64664 1.93994,-0.80832 4.84983,1.93994 4.36486,2.9099 z m -115.102797,28.93736 2.101596,5.33482 -0.161662,0.96997 -2.909902,-0.32333 -1.778273,-4.04153 -1.778273,-1.45494 -2.424919,0 -0.16166,-2.58659 1.778273,-2.42492 1.131629,2.42492 1.45495,1.45495 2.748241,0.64665 z m -2.58658,33.46387 3.718209,0.80831 3.718207,0.96996 0.808307,0.96998 -1.616612,3.7182 -3.071564,-0.16166 -3.394885,-3.55654 -0.161662,-2.74825 z m -20.692636,-14.06452 1.13163,2.58657 1.131628,1.61662 -1.131628,0.8083 -2.101597,-3.07156 0,-1.93993 0.969967,0 z m -13.7412027,73.07087 3.3948853,-2.26326 3.3948854,-0.96997 2.58658,0.32332 0.484983,1.61661 1.939935,0.48499 1.939934,-1.93993 -0.323322,-1.61661 2.748241,-0.64665 2.909902,2.58658 -1.131629,1.77827 -4.364852,1.13163 -2.748242,-0.48498 -3.718207,-1.13163 -4.3648533,1.45495 -1.616612,0.32332 -1.1316284,-0.64664 z m 48.9833487,-4.52651 1.616612,1.93993 2.101593,-1.61661 -1.454948,-1.2933 -2.263257,0.96998 z m 2.909902,3.07155 1.131624,-2.26325 2.101597,0.32332 -0.808303,1.93993 -2.424918,0 z m 23.602535,-1.93993 1.454954,1.77827 0.969974,-1.13162 -0.808313,-1.93994 -1.616615,1.29329 z m 8.72971,-12.44791 1.131633,5.8198 2.909899,0.80831 5.011495,-2.90991 4.364853,-2.58658 -1.6166,-2.42491 0.48498,-2.42492 -2.1016,1.29329 -2.909898,-0.80831 1.616605,-1.13162 1.939933,0.8083 3.87987,-1.77828 0.48499,-1.45494 -2.42492,-0.80831 0.8083,-1.93994 -2.74824,1.93994 -4.688172,3.55655 -4.849834,2.9099 -1.293294,1.13163 z m 42.35524,-19.88433 2.42492,-1.45495 -0.96997,-1.77828 -1.77827,0.96997 0.32332,2.26326 z",FL:"m 759.8167,439.1428 2.26566,7.3186 3.7297,9.74226 5.33479,9.3763 3.71819,6.30476 4.84982,5.49646 4.04151,3.71819 1.6166,2.90989 -1.13162,1.29328 -0.8083,1.29328 2.90988,7.43639 2.90989,2.90988 2.58657,5.3348 3.55653,5.81978 4.52649,8.24468 1.29329,7.59804 0.48498,11.96288 0.64664,1.77826 -0.32332,3.39487 -2.42491,1.29329 0.32332,1.93992 -0.64664,1.93993 0.32332,2.4249 0.48498,1.93993 -2.74822,3.23321 -3.07155,1.45494 -3.87985,0.16166 -1.45495,1.61661 -2.4249,0.96996 -1.29329,-0.48498 -1.13162,-0.96996 -0.32332,-2.90989 -0.80831,-3.39487 -3.39487,-5.17314 -3.55653,-2.26324 -3.87985,-0.32332 -0.8083,1.29328 -3.07155,-4.36483 -0.64664,-3.55653 -2.58657,-4.04151 -1.77826,-1.13163 -1.61661,2.10159 -1.77826,-0.32332 -2.10159,-5.01148 -2.90989,-3.87985 -2.90989,-5.33479 -2.58656,-3.07155 -3.55653,-3.71819 2.10158,-2.42491 3.23321,-5.49646 -0.16166,-1.6166 -4.52649,-0.96996 -1.61661,0.64664 0.32333,0.64664 2.58656,0.96996 -1.45494,4.5265 -0.8083,0.48498 -1.77827,-4.04151 -1.29328,-4.84982 -0.32332,-2.74823 1.45494,-4.68815 0,-9.53797 -3.07155,-3.71819 -1.29328,-3.07155 -5.17314,-1.29328 -1.93992,-0.64664 -1.61661,-2.58657 -3.39487,-1.61661 -1.13162,-3.39487 -2.74823,-0.96996 -2.42491,-3.71819 -4.20317,-1.45494 -2.90989,-1.45495 -2.58656,0 -4.04152,0.80831 -0.16166,1.93992 0.80831,0.96996 -0.48499,1.13163 -3.07154,-0.16166 -3.71819,3.55653 -3.55654,1.93992 -3.87985,0 -3.23321,1.29329 -0.32332,-2.74823 -1.6166,-1.93993 -2.90989,-1.13162 -1.6166,-1.45495 -8.08303,-3.87985 -7.59804,-1.77826 -4.36483,0.64664 -5.98144,0.48498 -5.98144,2.10159 -3.47924,0.61296 -0.23792,-8.04975 -2.58657,-1.93992 -1.77827,-1.77827 0.32332,-3.07156 10.18462,-1.29328 25.5424,-2.90989 6.78975,-0.64664 5.436,0.28027 2.58657,3.87986 1.45494,1.45494 8.09816,0.51522 10.81975,-0.64664 21.51239,-1.29329 5.44572,-0.67437 5.10758,0.20451 0.42683,2.90989 2.233,0.8083 0.23494,-4.63 -1.52822,-4.17295 1.3084,-1.43983 5.55463,0.45475 5.17314,0.32332 z m 12.54541,132.40508 2.42492,-0.64664 1.29328,-0.24249 1.45496,-2.34409 2.34408,-1.61661 1.29329,0.48499 1.69744,0.32332 0.40415,1.05079 -3.4757,1.21246 -4.2032,1.45495 -2.34408,1.21246 -0.88914,-0.88914 z m 13.4987,-5.01149 1.21246,1.0508 2.74824,-2.10159 5.33481,-4.20319 3.7182,-3.87987 2.50575,-6.6281 0.96997,-1.69744 0.16166,-3.39488 -0.72748,0.48498 -0.96996,2.82907 -1.45496,4.60733 -3.23322,5.254 -4.36484,4.20318 -3.39488,1.93993 -2.50575,1.53578 z",NH:"m 880.79902,142.42476 0.869,-1.0765 1.09022,-3.29102 -2.54308,-0.91347 -0.48499,-3.07156 -3.87985,-1.13162 -0.32332,-2.74824 -7.27475,-23.44082 -4.60142,-14.542988 -0.89708,-0.0051 -0.64664,1.616605 -0.64664,-0.484981 -0.96997,-0.969963 -1.45494,1.939925 -0.0485,5.032054 0.31165,5.667218 1.93992,2.74824 0,4.04152 -3.7182,5.06278 -2.58657,1.13164 0,1.13162 1.13163,1.77827 0,8.56802 -0.80831,9.21467 -0.16166,4.84982 0.96997,1.2933 -0.16166,4.52649 -0.48499,1.77828 0.96881,0.70922 16.78767,-4.42455 2.17487,-0.60245 1.84357,-2.77333 3.60523,-1.61312 z",MI:"M581.61931,82.059006 L 583.4483,80.001402 L 585.62022,79.201221 L 590.99286,75.314624 L 593.27908,74.743065 L 593.73634,75.200319 L 588.59232,80.344339 L 585.27728,82.287628 L 583.21967,83.202124 L 581.61931,82.059006 z M 667.79369,114.18719 L 668.44033,116.69293 L 671.67355,116.85459 L 672.96684,115.64213 C 672.96684,115.64213 672.88601,114.18719 672.56269,114.02552 C 672.23936,113.86386 670.94608,112.16642 670.94608,112.16642 L 668.76366,112.40891 L 667.14704,112.57057 L 666.82372,113.7022 L 667.79369,114.18719 z M 567.49209,111.21318 L 568.20837,110.63278 L 570.9566,109.82447 L 574.51313,107.56123 L 574.51313,106.59126 L 575.15978,105.94462 L 581.14121,104.97466 L 583.56612,103.03473 L 587.93095,100.93315 L 588.09261,99.639864 L 590.03254,96.729975 L 591.8108,95.921673 L 593.10409,94.143408 L 595.36733,91.880161 L 599.73217,89.455254 L 604.42032,88.970273 L 605.55194,90.101896 L 605.22862,91.071859 L 601.51043,92.041822 L 600.05549,95.113371 L 597.79224,95.921673 L 597.30726,98.34658 L 594.88235,101.57979 L 594.55903,104.16636 L 595.36733,104.65134 L 596.3373,103.51972 L 599.89383,100.60983 L 601.18711,101.90311 L 603.45036,101.90311 L 606.68357,102.87307 L 608.13851,104.0047 L 609.59345,107.07625 L 612.34168,109.82447 L 616.22153,109.66281 L 617.67648,108.69285 L 619.29308,109.98613 L 620.90969,110.47112 L 622.20297,109.66281 L 623.33459,109.66281 L 624.9512,108.69285 L 628.99271,105.13632 L 632.38758,104.0047 L 639.01566,103.68138 L 643.54215,101.74145 L 646.12872,100.44817 L 647.58367,100.60983 L 647.58367,106.26794 L 648.06865,106.59126 L 650.97853,107.39957 L 652.91846,106.91458 L 659.06156,105.29798 L 660.19318,104.16636 L 661.64813,104.65134 L 661.64813,111.60274 L 664.88134,114.67429 L 666.17462,115.32093 L 667.4679,116.29089 L 666.17462,116.61421 L 665.36632,116.29089 L 661.64813,115.80591 L 659.54654,116.45255 L 657.28329,116.29089 L 654.05008,117.74584 L 652.27182,117.74584 L 646.45204,116.45255 L 641.27891,116.61421 L 639.33898,119.20078 L 632.38758,119.84742 L 629.96267,120.65572 L 628.83105,123.72727 L 627.53777,124.8589 L 627.05279,124.69724 L 625.59784,123.08063 L 621.07135,125.50554 L 620.42471,125.50554 L 619.29308,123.88893 L 618.48478,124.05059 L 616.54486,128.41543 L 615.57489,132.45694 L 612.39377,139.45774 L 611.21701,138.42347 L 609.84527,137.39215 L 607.90449,127.10413 L 604.36001,125.73408 L 602.30743,123.44785 L 590.18707,120.70437 L 587.3318,119.67473 L 579.10138,117.50199 L 571.21139,116.35887 L 567.49209,111.21318 z,M697.8,177.2L694.6,168.9L692.3,159.9L689.9,156.7L687.3,154.9L685.7,156L681.8,157.8L679.9,162.8L677.1,166.5L676,167.2L674.5,166.5 C 674.5,166.5 671.9,165.1 672.1,164.4 C 672.3,163.8 672.6,159.4 672.6,159.4L676,158.1L676.8,154.7L677.4,152.1L679.9,150.5L679.5,140.5L677.9,138.2L676.6,137.4L675.8,135.3L676.6,134.5L678.2,134.8L678.4,133.2L676,131L674.7,128.4L672.1,128.4L667.6,126.9L662.1,123.5L659.3,123.5L658.7,124.2L657.7,123.7L654.6,121.4L651.7,123.2L648.8,125.5L649.2,129L650.1,129.3L652.2,129.8L652.7,130.6L650.1,131.4L647.5,131.8L646.1,133.5L645.8,135.6L646.1,137.3L646.4,142.8L642.8,144.9L642.2,144.7L642.2,140.5L643.5,138.1L644.1,135.6L643.3,134.8L641.4,135.6L640.4,139.8L637.7,141L635.9,142.9L635.7,143.9L636.4,144.7L635.7,147.3L633.5,147.8L633.5,148.9L634.3,151.3L633.1,157.5L631.5,161.5L632.2,166.2L632.7,167.3L631.9,169.8L631.5,170.6L631.2,173.3L634.8,179.3L637.7,185.8L639.1,190.6L638.3,195.3L637.3,201.3L634.9,206.4L634.6,209.2L631.3,212.3L635.8,212.1L657.2,209.9L664.4,208.9L664.5,210.5L671.4,209.3L681.7,207.8L685.5,207.4L685.7,206.8L685.8,205.3L687.9,201.6L689.9,199.9L689.7,194.8L691.3,193.2L692.4,192.9L692.6,189.3L694.2,186.3L695.2,186.9L695.4,187.5L696.2,187.7L698.1,186.7L697.8,177.2z",VT:"m 844.48416,154.05791 0.3167,-5.34563 -2.89071,-10.78417 -0.64664,-0.32332 -2.9099,-1.29329 0.8083,-2.90989 -0.8083,-2.10159 -2.70005,-4.63998 0.96997,-3.87986 -0.80831,-5.17315 -2.42491,-6.46644 -0.80557,-4.92251 26.41936,-6.73182 0.3087,5.52221 1.91626,2.74223 0,4.04152 -3.70715,5.05799 -2.58657,1.14267 -0.011,1.12057 1.30997,1.51912 -0.31093,8.09797 -0.60943,9.25886 -0.22795,5.55694 0.96996,1.29329 -0.16166,4.57069 -0.48498,1.68989 1.01418,0.72716 -7.43755,1.50671 -4.50174,0.72383 z",ME:"m 922.83976,78.830719 1.93993,2.101586 2.26325,3.718191 0,1.939926 -2.10159,4.688153 -1.93993,0.646642 -3.39487,3.071549 -4.84981,5.496454 c 0,0 -0.64664,0 -1.29328,0 -0.64664,0 -0.96997,-2.101584 -0.96997,-2.101584 l -1.77826,0.16166 -0.96996,1.454944 -2.42491,1.45495 -0.96996,1.45494 1.6166,1.45494 -0.48498,0.64665 -0.48498,2.74822 -1.93993,-0.16166 0,-1.6166 -0.32332,-1.29329 -1.45494,0.32333 -1.77827,-3.23321 -2.10158,1.29328 1.29328,1.45494 0.32332,1.13163 -0.8083,1.29328 0.32332,3.07155 0.16166,1.6166 -1.6166,2.58657 -2.90989,0.48498 -0.32332,2.90989 -5.3348,3.07155 -1.29328,0.48498 -1.61661,-1.45494 -3.07155,3.55653 0.96997,3.23321 -1.45495,1.29328 -0.16166,4.36483 -1.12328,6.25936 -2.46225,-1.15595 -0.48499,-3.07156 -3.87985,-1.13163 -0.32332,-2.74824 -7.27475,-23.44082 -4.69858,-14.639742 1.42054,-0.118165 1.51379,0.409899 0,-2.586568 1.3083,-4.496456 2.58657,-4.688153 1.45495,-4.041512 -1.93993,-2.424907 0,-5.981437 0.8083,-0.969963 0.80831,-2.748228 -0.16166,-1.454944 -0.16167,-4.849814 1.77827,-4.849814 2.90989,-8.891326 2.10158,-4.203172 1.29329,0 1.29328,0.16166 0,1.131623 1.29329,2.263247 2.74822,0.646642 0.80831,-0.808303 0,-0.969962 4.04151,-2.909889 1.77826,-1.778265 1.45495,0.161661 5.98143,2.424907 1.93993,0.969962 9.05299,29.907187 5.98143,0 0.80831,1.939926 0.16166,4.849814 2.90988,2.263246 0.80831,0 0.16166,-0.484981 -0.48498,-1.131623 2.74822,-0.161661 z m -20.93175,30.147531 1.53578,-1.53578 1.37412,1.0508 0.56581,2.42492 -1.69744,0.88913 -1.77827,-2.82907 z m 6.70893,-5.90062 1.77827,1.8591 c 0,0 1.29329,0.0808 1.29329,-0.2425 0,-0.32332 0.24249,-2.02076 0.24249,-2.02076 l 0.88914,-0.8083 -0.80831,-1.77828 -2.02076,0.72748 -1.37412,2.26326 z",RI:"m 874.07001,178.89536 -3.69579,-14.95599 6.26928,-1.84514 2.19113,1.92712 3.30649,4.32065 2.6879,4.40209 -2.99934,1.62479 -1.29328,-0.16166 -1.13162,1.77827 -2.42491,1.93992 -2.90986,0.96995 z",NY:"m 830.37944,188.7456 -1.13163,-0.96996 -2.58658,-0.16166 -2.26324,-1.93992 -1.63061,-6.12913 -3.45846,0.0905 -2.44371,-2.7082 -19.38532,4.38194 -43.00178,8.72969 -7.52965,1.22799 -0.73816,-6.46834 1.4281,-1.12538 1.29328,-1.13162 0.96997,-1.61661 1.77826,-1.13162 1.93993,-1.77827 0.48498,-1.6166 2.10158,-2.74823 1.13163,-0.96996 -0.16166,-0.96997 -1.29329,-3.07154 -1.77826,-0.16166 -1.93993,-6.1431 2.90989,-1.77827 4.36483,-1.45494 4.04152,-1.29329 3.23321,-0.48498 6.30475,-0.16166 1.93993,1.29329 1.6166,0.16166 2.10159,-1.29329 2.58657,-1.13162 5.17313,-0.48498 2.10159,-1.77827 1.77826,-3.23321 1.61661,-1.93992 2.10158,0 1.93993,-1.13163 0.16166,-2.26324 -1.45494,-2.10159 -0.32332,-1.45494 1.13162,-2.10159 0,-1.45494 -1.77827,0 -1.77826,-0.8083 -0.8083,-1.13163 -0.16166,-2.58657 5.81977,-5.49645 0.64664,-0.8083 1.45495,-2.90989 2.90989,-4.5265 2.74823,-3.71819 2.10158,-2.4249 2.4151,-1.82561 3.08136,-1.24594 5.49645,-1.29329 3.23321,0.16166 4.5265,-1.45494 7.56519,-2.07117 0.51979,4.97967 2.42492,6.46644 0.8083,5.17315 -0.96996,3.87986 2.58657,4.5265 0.8083,2.10159 -0.8083,2.9099 2.9099,1.29328 0.64664,0.32332 3.07156,10.99294 -0.53629,5.05967 -0.48498,10.83127 0.8083,5.49647 0.8083,3.55654 1.45495,7.27474 0,8.08304 -1.13163,2.26325 1.83933,1.99279 0.79655,1.67842 -1.93992,1.77827 0.32332,1.29328 1.29328,-0.32332 1.45495,-1.29328 2.26324,-2.58657 1.13163,-0.64664 1.6166,0.64664 2.26325,0.16166 7.92136,-3.87985 2.90989,-2.74823 1.29328,-1.45494 4.20317,1.6166 -3.39487,3.55653 -3.87985,2.90989 -7.11306,5.33479 -2.58656,0.96997 -5.81978,1.93992 -4.04151,1.13163 -1.17474,-0.53293 -0.24402,-3.68853 0.48498,-2.74824 -0.16166,-2.10158 -2.81351,-1.699 -4.5265,-0.96997 -3.87986,-1.13162 -3.7182,-1.77828 z",PA:"m 825.1237,224.69205 1.30842,-0.271 2.32953,-1.25325 1.21188,-2.48307 1.61661,-2.26325 3.23321,-3.07156 0,-0.8083 -2.42491,-1.6166 -3.55654,-2.42492 -0.96996,-2.58657 -2.74824,-0.32332 -0.16166,-1.13163 -0.8083,-2.74823 2.26326,-1.13162 0.16166,-2.42492 -1.2933,-1.29329 0.16166,-1.61661 1.93994,-3.07155 0,-3.07156 2.69763,-2.64588 -0.92028,-0.67498 -2.52408,-0.19291 -2.29449,-1.93992 -1.54992,-6.11606 -3.50458,0.10052 -2.45523,-2.70333 -18.09099,4.19777 -43.00178,8.72969 -8.89135,1.45494 -0.62067,-6.52139 -5.36253,5.06765 -1.29329,0.48498 -4.20229,3.00889 2.91076,19.13745 2.48166,9.72936 3.5718,19.26149 3.26931,-0.63768 11.94358,-1.50247 37.92663,-7.6652 14.87621,-2.82332 8.30035,-1.62236 0.26711,-0.23853 2.1016,-1.61662 2.10158,-0.68084 z",NJ:"m 829.67942,188.46016 -2.32255,2.73427 0,3.07156 -1.93994,3.07155 -0.16166,1.61662 1.2933,1.29328 -0.16166,2.42492 -2.26326,1.13162 0.8083,2.74823 0.16166,1.13163 2.74824,0.32332 0.96996,2.58657 3.55654,2.42492 2.42491,1.6166 0,0.80831 -2.98321,2.69656 -1.61661,2.26324 -1.45495,2.74824 -2.26325,1.29328 -0.46245,1.60248 -0.2425,1.21246 -0.60923,2.60674 1.09227,2.24419 3.23321,2.90989 4.84981,2.26325 4.04151,0.64664 0.16166,1.45494 -0.8083,0.96996 0.32332,2.74823 0.8083,0 2.10159,-2.4249 0.8083,-4.84982 2.74823,-4.04151 3.07155,-6.46642 1.13162,-5.49645 -0.64664,-1.13163 -0.16166,-9.37631 -1.61661,-3.39486 -1.13162,0.8083 -2.74823,0.32332 -0.48498,-0.48498 1.13163,-0.96997 2.10158,-1.93992 0.0631,-1.09383 -0.38439,-3.43384 0.57337,-2.74824 -0.11747,-1.96901 -2.80754,-1.75035 -5.09214,-1.17576 -4.13744,-1.38163 -3.58563,-1.64569 z",DE:"m 825.6261,228.2791 0.36831,-2.14689 0.37507,-1.69105 -1.623,0.39776 -1.61546,0.46756 -2.20626,1.7643 1.72012,5.04288 2.26326,5.65812 2.10158,9.69965 1.61662,6.30478 5.01148,-0.16166 6.14212,-1.18068 -2.26423,-7.38627 -0.96997,0.48498 -3.55653,-2.4249 -1.77826,-4.68816 -1.93993,-3.55653 -3.14712,-2.87031 -0.86416,-2.09812 0.36636,-1.61546 z",MD:"m 839.79175,252.41476 -6.00855,1.20384 -5.1429,0.11746 -1.84356,-6.92233 -1.92481,-9.16932 -2.57262,-6.18845 -1.28838,-4.39833 -7.50602,1.62236 -14.87621,2.82332 -37.45143,7.5509 1.1313,5.01166 0.96996,5.65811 0.32332,-0.32332 2.1016,-2.4249 2.26324,-2.61766 2.42491,-0.61556 1.45496,-1.45495 1.77826,-2.58657 1.29328,0.64665 2.90989,-0.32333 2.58658,-2.10158 2.00689,-1.45327 1.84523,-0.48498 1.64435,1.12995 2.90989,1.45494 1.93992,1.77827 1.21246,1.53578 4.12235,1.69743 0,2.90989 5.49646,1.29329 1.14444,0.54198 1.4119,-2.02832 2.88197,1.97016 -1.27817,2.48193 -0.76527,3.98566 -1.77826,2.58657 0,2.10159 0.64664,1.77827 5.06395,1.35569 4.3111,-0.0617 3.07154,0.96997 2.10159,0.32332 0.96996,-2.10159 -1.45494,-2.10158 0,-1.77827 -2.42491,-2.10159 -2.10158,-5.49645 1.29328,-5.3348 -0.16166,-2.10158 -1.29328,-1.29329 c 0,0 1.45494,-1.6166 1.45494,-2.26324 0,-0.64665 0.48498,-2.10159 0.48498,-2.10159 l 1.93993,-1.29328 1.93992,-1.61661 0.48498,0.96997 -1.45494,1.6166 -1.29328,3.71819 0.32332,1.13162 1.77826,0.32332 0.48498,5.49646 -2.10158,0.96996 0.32332,3.55653 0.48498,-0.16166 1.13162,-1.93992 1.61661,1.77826 -1.61661,1.29329 -0.32332,3.39487 2.58657,3.39487 3.87985,0.48498 1.61661,-0.8083 3.23655,4.18293 1.35835,0.5363 6.65367,-2.79695 2.00758,-4.02387 -0.43596,-4.90798 z m -15.96958,9.02872 1.13162,2.50575 0.16166,1.77827 1.13163,1.8591 c 0,0 0.88914,-0.88914 0.88914,-1.21246 0,-0.32332 -0.72747,-3.07156 -0.72747,-3.07156 l -0.72748,-2.34409 -1.8591,0.48499 z",VA:"m 831.63885,266.06892 -0.14391,-1.94703 6.45343,-2.54988 -0.77041,3.21784 -2.91995,3.77911 -0.41809,4.58582 0.46175,3.39044 -1.82797,4.97816 -2.16427,1.91614 -1.47034,-4.64081 0.44589,-5.44911 1.587,-4.18307 0.76687,-3.09761 z m 3.34019,28.30136 -58.17418,12.57543 -37.42697,5.27907 -6.67833,-0.37518 -2.58525,1.92638 -7.33913,0.22069 -8.38211,0.97767 -10.91496,1.61462 10.46943,-5.6112 -0.0131,-2.07493 1.52005,-2.14613 10.55378,-11.50143 3.94672,4.47746 3.78301,0.96398 2.54346,-1.14032 2.23722,-1.31116 2.53661,1.34352 3.91417,-1.42776 1.87673,-4.55634 2.60092,0.54002 2.85524,-2.13125 1.79927,0.4936 2.82721,-3.67657 0.34825,-2.08311 -0.96366,-1.27557 1.00277,-1.86663 5.27427,-12.27715 0.61677,-5.73508 1.22889,-0.52354 2.17853,2.44287 3.93586,-0.30117 1.92921,-7.57363 2.79399,-0.56086 1.04975,-2.74107 2.57982,-2.34688 2.77183,-5.69519 0.0849,-5.06755 9.82151,3.82282 c 0.68085,0.34042 0.83288,-5.04915 0.83288,-5.04915 l 3.65256,1.59833 0.0683,2.93816 5.78425,1.29949 2.13295,1.1762 1.65992,2.05569 -0.65455,3.64867 -1.94744,2.59098 0.10985,2.05907 0.58896,1.85291 4.97875,1.26843 4.45127,0.0399 3.06883,0.95864 1.94351,0.3093 0.71481,3.08846 3.19044,0.40253 0.86807,1.20002 -0.43949,4.69008 1.37473,1.10255 -0.47895,1.93039 1.22941,0.78977 -0.2218,1.3846 -2.69399,-0.0949 0.089,1.61552 2.28099,1.54287 0.12154,1.4119 1.77311,1.78538 0.49179,2.52413 -2.55304,1.38131 1.57222,1.4943 5.80102,-1.68583 3.60762,6.01193 z",WV:"m 761.18551,238.96731 1.11201,4.94453 1.08344,6.03133 2.13029,-2.58034 2.26324,-3.07156 2.53838,-0.61555 1.45495,-1.45494 1.77827,-2.58657 1.44498,0.64664 2.90989,-0.32332 2.58658,-2.10159 2.00689,-1.45326 1.84523,-0.48499 1.30392,1.01647 3.64325,1.82163 1.93993,1.77827 1.37412,1.29328 -0.76172,5.55494 -5.83491,-2.54122 -4.24525,-1.62202 -0.10114,5.17843 -2.74764,5.53673 -2.53003,2.42666 -1.19209,2.74939 -2.64358,0.5001 -0.89784,3.60188 -1.04323,3.94967 -3.96824,0.34074 -2.32373,-2.43888 -1.07115,0.55941 -0.63268,5.4697 -1.35029,3.5345 -4.9584,10.95497 0.89669,1.1607 -0.20586,1.90854 -2.80869,3.88447 -1.8085,-0.54429 -2.96805,2.15974 -2.54238,-0.57221 -1.99923,4.55557 c 0,0 -3.25931,1.43022 -3.92291,1.36772 -0.16051,-0.0151 -2.4691,-1.2491 -2.4691,-1.2491 l -2.33652,1.37937 -2.4098,1.0444 -3.74469,-0.88912 -1.1214,-1.16828 -2.19222,-3.02336 -3.14259,-1.98812 -1.71157,-3.62324 -4.28488,-3.46819 -0.64665,-2.26325 -2.58657,-1.45495 -0.80831,-1.6166 -0.24249,-5.25398 2.18242,-0.0808 1.93994,-0.8083 0.16166,-2.74823 1.6166,-1.45495 0.16166,-5.01148 0.96996,-3.87986 1.29329,-0.64664 1.29328,1.13162 0.48499,1.77827 1.77827,-0.96997 0.48498,-1.6166 -1.13162,-1.77827 0,-2.42491 0.96996,-1.29329 2.26325,-3.39487 1.29328,-1.45494 2.1016,0.48498 2.26324,-1.61662 3.07155,-3.39487 2.26326,-3.87986 0.32332,-5.65811 0.48498,-5.01149 0,-4.68816 -1.13162,-3.07155 0.96996,-1.45496 1.28348,-1.29328 3.49125,19.82712 4.63101,-0.75115 12.42832,-1.79965 z",OH:"m 735.32497,193.32832 -6.09354,4.05335 -3.87985,2.26325 -3.39487,3.71819 -4.04151,3.87985 -3.23321,0.8083 -2.90989,0.48498 -5.49646,2.58657 -2.10158,0.16166 -3.39487,-3.07155 -5.17314,0.64665 -2.58656,-1.45495 -2.38107,-1.35083 -4.89257,0.70341 -10.18462,1.61661 -11.20687,2.18473 1.29329,14.63028 1.77827,13.74117 2.58656,23.4408 0.56582,4.83117 4.12235,-0.12902 2.42491,-0.80831 3.3638,1.50314 2.07049,4.36483 5.13894,-0.0171 1.89174,2.1187 1.76117,-0.0653 2.53839,-1.34146 2.50417,0.3715 5.42128,0.48268 1.72697,-2.13268 2.34565,-1.29328 2.07049,-0.68085 0.64664,2.74824 1.77828,0.96996 3.47569,2.34407 2.18242,-0.0808 1.33312,-0.49248 0.18471,-2.76153 1.58536,-1.45496 0.0992,-4.79272 c 0,0 1.02396,-4.10906 1.02396,-4.10906 l 1.29927,-0.60128 1.32135,1.14774 0.53815,1.69702 1.71913,-1.03742 0.43898,-1.46075 -1.11669,-1.90306 0.0663,-2.31443 0.749,-1.07231 2.15276,-3.30648 1.05022,-1.54334 2.10159,0.48498 2.26325,-1.61661 3.07155,-3.39487 2.77149,-4.07873 0.32033,-5.05551 0.48498,-5.01149 -0.17678,-5.30688 -0.95484,-2.89478 0.35124,-1.18978 1.80439,-1.75011 -2.28879,-9.04733 -2.90989,-19.36177 z",IN:"m 619.56954,299.97132 0.0653,-2.85858 0.48499,-4.52651 2.26324,-2.90988 1.77828,-3.87987 2.58656,-4.20317 -0.48498,-5.81979 -1.77826,-2.74823 -0.32332,-3.23321 0.8083,-5.49647 -0.48498,-6.95141 -1.2933,-16.00441 -1.29328,-15.35776 -0.97047,-11.72002 3.07106,0.88951 1.45495,0.96996 1.13162,-0.32332 2.10159,-1.93992 2.82957,-1.61699 5.0928,-0.16204 21.98587,-2.26326 5.57573,-0.53316 1.50314,15.95621 4.25135,36.84155 0.59846,5.7716 -0.3715,2.26325 1.22798,1.79537 0.0964,1.37255 -2.52129,1.59951 -3.53943,1.55131 -3.20213,0.55028 -0.59846,4.86693 -4.57469,3.31247 -2.79642,4.01044 0.32332,2.37673 -0.58134,1.5342 -3.32647,0 -1.58553,-1.6166 -2.49331,1.2622 -2.68296,1.50314 0.16167,3.05445 -1.19379,0.25803 -0.46788,-1.01814 -2.16688,-1.50314 -3.25032,1.34148 -1.55131,3.00625 -1.43784,-0.8083 -1.45495,-1.59951 -4.46434,0.48499 -5.59283,0.96996 -2.90989,1.55132 z",IL:"m 619.54145,300.34244 0.0312,-3.22971 0.56739,-4.64596 2.33253,-2.91586 1.86665,-4.07576 2.23302,-3.99533 -0.3715,-5.2524 -2.00521,-3.54257 -0.0964,-3.34668 0.69483,-5.26951 -0.82541,-7.17837 -1.06634,-15.77745 -1.29328,-15.01734 -0.92228,-11.6392 -0.27251,-0.92139 -0.8083,-2.58657 -1.29328,-3.71819 -1.61661,-1.77827 -1.45494,-2.58656 -0.23357,-5.48896 -45.79643,2.59825 0.22862,2.37195 2.28623,0.68587 0.91448,1.14311 0.45725,1.82898 3.88658,3.42934 0.68588,2.28623 -0.68588,3.42934 -1.82898,3.65796 -0.68586,2.51484 -2.28623,1.82899 -1.82898,0.68587 -5.25832,1.37173 -0.68587,1.82898 -0.68587,2.05761 0.68587,1.37174 1.82898,1.60036 -0.22862,4.1152 -1.82899,1.60036 -0.68586,1.60036 0,2.74347 -1.82898,0.45724 -1.60036,1.14312 -0.22862,1.37174 0.22862,2.0576 -1.71467,1.31457 -1.0288,2.80064 0.45724,3.65795 2.28623,7.31593 7.31593,7.54455 5.48693,3.65796 -0.22862,4.34383 0.9145,1.37174 6.40143,0.45724 2.74347,1.37174 -0.68586,3.65796 -2.28623,5.94419 -0.68587,3.20072 2.28622,3.88658 6.40144,5.25832 4.57246,0.68587 2.05759,5.0297 2.05761,3.20071 -0.91449,2.97209 1.60036,4.11521 1.82898,2.05761 1.41403,-0.88069 0.90766,-2.07479 2.21308,-1.7472 2.13147,-0.6144 2.60253,1.1798 3.62699,1.3757 1.18895,-0.29823 0.19987,-2.25845 -1.2873,-2.41179 0.30422,-2.37672 1.8384,-1.34745 3.02254,-0.81029 1.2609,-0.45852 -0.61261,-1.38688 -0.79137,-2.35437 1.4326,-0.98096 1.15747,-3.21403 z",CT:"m 874.06831,178.86288 -3.67743,-14.87881 -4.71882,0.92031 -21.22878,4.74309 1.00019,3.22567 1.45495,7.27474 0.17678,8.96692 -1.22002,2.17487 1.92079,1.93234 4.27153,-3.90564 3.55653,-3.23321 1.93992,-2.10159 0.80831,0.64664 2.74822,-1.45494 5.17314,-1.13162 7.79469,-3.17877 z",WI:"m 615.06589,197.36866 -0.0667,-3.15742 -1.17911,-4.5265 -0.64664,-6.14309 -1.13162,-2.42491 0.96996,-3.07155 0.8083,-2.90989 1.45495,-2.58656 -0.64665,-3.39487 -0.64664,-3.55653 0.48498,-1.77827 1.93993,-2.42491 0.16166,-2.74823 -0.8083,-1.29328 0.64664,-2.58657 -0.45252,-4.17071 2.74823,-5.65811 2.90989,-6.78974 0.16166,-2.26325 -0.32332,-0.96996 -0.80831,0.48498 -4.20317,6.30476 -2.74823,4.04151 -1.93992,1.77827 -0.8083,2.26324 -1.95495,0.8083 -1.13162,1.93993 -1.45495,-0.32332 -0.16166,-1.77827 1.29329,-2.4249 2.10158,-4.68816 1.77827,-1.6166 0.99083,-2.35785 -2.56045,-1.90134 -1.97482,-10.36699 -3.54747,-1.34198 -1.94626,-2.30833 -12.12971,-2.72164 -2.87589,-1.01205 -8.21312,-2.16729 -7.91792,-1.15875 -3.76516,-5.13067 -0.7504,0.55401 -1.19791,-0.16166 -0.64665,-1.13162 -1.33401,0.29655 -1.13163,0.16166 -1.77826,0.96996 -0.96997,-0.64664 0.64665,-1.93993 1.93992,-3.07155 1.13162,-1.13162 -1.93992,-1.45494 -2.10159,0.8083 -2.90989,1.93992 -7.43638,3.23321 -2.90989,0.64664 -2.90988,-0.48498 -0.98173,-0.87825 -2.1167,2.83518 -0.22862,2.74347 0,8.45903 -1.14312,1.60037 -5.25832,3.88657 -2.28622,5.94419 0.45724,0.22862 2.51485,2.05761 0.68586,3.20072 -1.82898,3.20071 0,3.88659 0.45725,6.63005 2.97209,2.9721 3.42935,0 1.82898,3.20072 3.42933,0.45724 3.88659,5.71557 7.0873,4.11521 2.0576,2.74347 0.9145,7.43024 0.68586,3.31502 2.28623,1.60036 0.22862,1.37174 -2.0576,3.42933 0.22862,3.20073 2.51485,3.88658 2.51485,1.14311 2.97209,0.45724 1.34234,1.38012 45.29836,-2.66945 z",NC:"m 834.98153,294.31554 2.085,4.91735 3.55653,6.46642 2.4249,2.42491 0.64664,2.26325 -2.4249,0.16166 0.8083,0.64664 -0.32332,4.20317 -2.58657,1.29328 -0.64664,2.10159 -1.29328,2.90989 -3.7182,1.6166 -2.4249,-0.32332 -1.45495,-0.16166 -1.6166,-1.29328 0.32332,1.29328 0,0.96997 1.93993,0 0.8083,1.29328 -1.93993,6.30476 4.20317,0 0.64665,1.6166 2.26324,-2.26324 1.29329,-0.48499 -1.93993,3.55653 -3.07155,4.84982 -1.29328,0 -1.13163,-0.48498 -2.74822,0.64664 -5.17314,2.42491 -6.46642,5.33479 -3.39487,4.68815 -1.93992,6.46642 -0.48498,2.42491 -4.68816,0.48498 -5.45313,1.33666 -9.94641,-8.20253 -12.60954,-7.59805 -2.90989,-0.80831 -12.60953,1.45495 -4.27646,0.75015 -1.6166,-3.23322 -2.97036,-2.1167 -16.48939,0.48498 -7.27474,0.8083 -9.05299,4.52651 -6.14311,2.58656 -21.17755,2.58658 0.50009,-4.05433 1.77827,-1.45494 2.74824,-0.64665 0.64664,-3.7182 4.20318,-2.74822 3.87985,-1.45496 4.20319,-3.55653 4.36483,-2.10159 0.64664,-3.07156 3.87986,-3.87985 0.64664,-0.16166 c 0,0 0,1.13163 0.80831,1.13163 0.8083,0 1.93993,0.32332 1.93993,0.32332 l 2.26325,-3.55654 2.10159,-0.64665 2.26324,0.32333 1.61662,-3.55653 2.90989,-2.58658 0.48498,-2.10159 0.1875,-3.64819 4.2765,-0.0225 7.19859,-0.85579 15.75723,-2.25243 15.13604,-2.08657 21.64048,-4.71935 19.98332,-4.25857 11.17694,-2.40581 5.04998,-1.15688 z m 4.27046,33.20657 2.58658,-2.50575 3.15238,-2.58658 1.53578,-0.64664 0.16166,-2.02076 -0.64664,-6.14312 -1.45495,-2.34408 -0.64665,-1.8591 0.72748,-0.2425 2.74824,5.49648 0.40415,4.44567 -0.16166,3.39489 -3.39488,1.53577 -2.82907,2.42492 -1.13162,1.21246 -1.0508,-0.16166 z", -DC:"m 805.81945,250.84384 -1.85828,-1.82417 -1.23263,-0.68629 1.44301,-2.02247 2.88909,1.9485 -1.24119,2.58443 z",MA:"m 899.62349,173.25394 2.17192,-0.68588 0.45726,-1.71467 1.0288,0.11431 1.0288,2.28624 -1.25742,0.45724 -3.8866,0.11432 0.45724,-0.57156 z m -9.37354,0.80018 2.28622,-2.62917 1.60037,0 1.82899,1.48605 -2.40054,1.0288 -2.17192,1.0288 -1.14312,-0.91448 z m -34.79913,-21.98819 17.64687,-4.64068 2.26326,-0.64664 1.91408,-2.79571 3.73677,-1.66331 2.88924,4.41284 -2.42491,5.17314 -0.32332,1.45494 1.93993,2.58657 1.13162,-0.8083 1.77827,0 2.26324,2.58656 3.87986,5.98144 3.55653,0.48498 2.26324,-0.96996 1.77827,-1.77827 -0.80831,-2.74822 -2.10158,-1.61661 -1.45495,0.8083 -0.96996,-1.29328 0.48498,-0.48498 2.10159,-0.16166 1.77826,0.8083 1.93993,2.42491 0.96996,2.90989 0.32332,2.4249 -4.20317,1.45495 -3.87985,1.93992 -3.87985,4.5265 -1.93993,1.45494 0,-0.96996 2.42491,-1.45495 0.48498,-1.77826 -0.8083,-3.07155 -2.90989,1.45494 -0.8083,1.45495 0.48498,2.26324 -2.06633,1.00043 -2.7472,-4.52713 -3.39488,-4.36484 -2.0705,-1.81247 -6.53327,1.8762 -5.09233,1.05079 -20.67516,4.59221 -0.66776,-4.76785 0.64664,-10.58877 4.28927,-0.88914 6.78975,-1.2933 z",TN:"m 696.67788,318.25411 -51.89309,5.01149 -15.75956,1.77826 -4.6212,0.51271 -3.86835,-0.0277 -0.22097,4.10083 -8.18538,0.26401 -6.95141,0.64664 -8.09083,-0.12386 -1.41378,7.07286 -1.69623,5.48005 -3.29317,2.75084 -1.34874,4.38106 -0.32332,2.58657 -4.04152,2.26324 1.45494,3.55654 -0.96996,4.36484 -0.96838,0.78965 108.15855,-10.40755 0.40327,-3.95494 1.81073,-1.49039 2.83415,-0.74945 0.67193,-3.71698 4.0986,-2.70496 4.04693,-1.49403 4.08358,-3.57033 4.43609,-2.02546 0.52126,-3.06735 4.0646,-3.98499 0.5508,-0.11417 c 0,0 0.0312,1.13162 0.83955,1.13162 0.8083,0 1.93993,0.35457 1.93993,0.35457 l 2.26325,-3.58779 2.07034,-0.64664 2.27511,0.29521 1.59831,-3.53286 2.95525,-2.64391 0.42168,-1.93911 0.30896,-3.71115 -2.14655,-0.19977 -2.60168,2.02833 -6.99331,0.0291 -18.35929,2.38682 -8.06109,1.9082 z",AR:"m 593.82477,343.05296 -3.97988,0.7167 -5.11215,-0.63403 0.4207,-1.60207 2.97975,-2.56669 0.94338,-3.65625 -1.82898,-2.9721 -78.41757,2.51485 1.60036,6.85869 -1e-5,8.23042 1.37175,10.97399 0.22862,37.83693 2.28623,1.94329 2.97209,-1.37173 2.74348,1.14311 0.68034,6.5733 55.62126,-1.1406 1.14563,-2.09037 -0.28662,-3.54951 -1.82563,-2.9721 1.59869,-1.48521 -1.59869,-2.5115 0.6842,-2.50983 1.36839,-5.60543 2.51819,-2.06263 -0.68587,-2.28456 3.65797,-5.37179 2.74347,-1.36839 -0.11348,-1.49358 -0.34544,-1.82564 2.85695,-5.59873 2.40304,-1.25659 0.38413,-3.42763 1.77067,-1.2417 -3.14352,-0.48427 -1.34146,-4.01044 2.80408,-2.37671 0.55026,-2.0192 1.27948,-4.04661 1.06619,-3.25539 z",MO:"m 558.44022,248.11316 -2.51987,-3.08725 -1.14312,-2.28623 -64.35723,2.40054 -2.28626,0.11431 1.25743,2.51485 -0.22862,2.28622 2.51484,3.88659 3.0864,4.11521 3.08641,2.74347 2.16123,0.22862 1.49673,0.9145 0,2.97209 -1.82897,1.60036 -0.45726,2.28622 2.05761,3.42935 2.51486,2.97209 2.51484,1.82898 1.37173,11.65975 0.31414,36.07221 0.22862,4.68675 0.45724,5.38351 22.43299,-0.86682 23.20603,-0.68587 20.80466,-0.80101 11.65474,-0.2303 2.1694,3.426 -0.68419,3.3075 -3.08725,2.40304 -0.57239,1.83734 5.37849,0.45726 3.89496,-0.68588 1.71718,-5.49363 0.65142,-5.85679 2.09803,-2.55516 2.59603,-1.48689 0.0514,-3.05024 1.01602,-1.93648 -1.69423,-2.54377 -1.33093,0.98426 -1.99262,-2.22724 -1.28503,-4.759 0.80101,-2.5182 -1.94413,-3.42766 -1.83064,-4.5758 -4.79941,-0.79934 -6.9688,-5.59875 -1.71886,-4.11353 0.79935,-3.20072 2.05927,-6.05767 0.45892,-2.86363 -1.94914,-1.03131 -6.85534,-0.79767 -1.02797,-1.71216 -0.1118,-4.23036 -5.48694,-3.43101 -6.97551,-7.7715 -2.28622,-7.31593 -0.23029,-4.22532 0.80101,-2.2879 z",GA:"m 672.29229,355.5518 0,2.18242 0.16166,2.1016 0.64664,3.39487 3.39488,7.92137 2.42491,9.86131 1.45494,6.14311 1.61661,4.84981 1.45495,6.95141 2.10159,6.30477 2.58657,3.39488 0.48498,3.39487 1.93993,0.8083 0.16166,2.1016 -1.77827,4.84981 -0.48498,3.23322 -0.16166,1.93993 1.61661,4.36484 0.32332,5.3348 -0.80831,2.42491 0.64665,0.80831 1.45495,0.8083 0.2047,3.21809 2.23301,3.34953 2.25044,2.16205 7.92138,0.16166 10.81975,-0.64664 21.51239,-1.29328 5.44572,-0.67437 4.57725,0.0277 0.16166,2.90989 2.58657,0.8083 0.32332,-4.36484 -1.61661,-4.5265 1.13163,-1.6166 5.81978,0.8083 4.97741,0.31778 -0.77542,-6.29879 2.26324,-10.02295 1.45495,-4.20318 -0.48499,-2.58656 3.33441,-6.2443 -0.5103,-1.35168 -1.91341,0.70458 -2.58656,-1.2933 -0.64665,-2.10159 -1.29328,-3.55653 -2.26326,-2.10159 -2.58656,-0.64664 -1.61661,-4.84982 -2.92501,-6.335 -4.20317,-1.93993 -2.1016,-1.93993 -1.29329,-2.58657 -2.10158,-1.93993 -2.26325,-1.29329 -2.26325,-2.90989 -3.07155,-2.26324 -4.52651,-1.77828 -0.48498,-1.45494 -2.42491,-2.90989 -0.48498,-1.45495 -3.39488,-4.97048 -3.51987,0.0992 -3.75491,-2.35614 -1.41828,-1.29328 -0.32332,-1.77827 0.8708,-1.93992 2.22664,-1.11014 -0.63394,-2.09722 -41.86975,4.98893 z",SC:"m 764.94328,408.16488 -1.77706,0.9695 -2.58657,-1.29329 -0.64664,-2.10159 -1.29328,-3.55653 -2.26326,-2.1016 -2.58657,-0.64664 -1.6166,-4.84981 -2.74824,-5.98145 -4.20317,-1.93994 -2.1016,-1.93992 -1.29328,-2.58657 -2.10159,-1.93994 -2.26325,-1.29328 -2.26325,-2.90989 -3.07155,-2.26324 -4.52651,-1.77828 -0.48498,-1.45494 -2.4249,-2.90989 -0.48499,-1.45496 -3.39488,-5.17313 -3.39487,0.16166 -4.04152,-2.42492 -1.29328,-1.29328 -0.32332,-1.77827 0.8083,-1.93992 2.26325,-0.96998 -0.51082,-2.28908 5.7681,-2.33657 9.1155,-4.589 7.77473,-0.80831 16.1144,-0.42248 2.63825,1.87743 1.6791,3.35822 4.30235,-0.60998 12.60953,-1.45496 2.90989,0.80831 12.60954,7.59806 10.10808,8.12168 -5.42117,5.45834 -2.58657,6.1431 -0.48498,6.30476 -1.6166,0.8083 -1.13163,2.74823 -2.4249,0.64664 -2.10159,3.55653 -2.74823,2.74823 -2.26324,3.39487 -1.61661,0.8083 -3.55653,3.39487 -2.90989,0.16166 0.96997,3.23321 -5.01148,5.49646 -2.10159,1.29328 z",KY:"m 725.9944,295.2707 -2.29332,2.40168 -3.57819,3.99404 -4.92455,5.46467 -1.21577,1.71577 -0.0625,2.10158 -4.37986,2.16409 -5.65812,3.39488 -7.23187,1.79885 -51.86789,4.89886 -15.75956,1.77826 -4.6212,0.51271 -3.86835,-0.0277 -0.22695,4.22028 -8.17941,0.14456 -6.95141,0.64664 -7.98748,-0.0602 1.20778,-1.32008 2.49954,-1.54085 0.22863,-3.20073 0.91449,-1.82898 -1.60682,-2.5389 0.80183,-1.90681 2.26326,-1.77826 2.10158,-0.64665 2.74823,1.29329 3.55654,1.29328 1.13163,-0.32332 0.16166,-2.26325 -1.29329,-2.42491 0.32332,-2.26325 1.93993,-1.45494 2.58658,-0.64665 1.6166,-0.64664 -0.8083,-1.77827 -0.64664,-1.93993 1.50662,-0.9958 c 0.003,-0.0371 1.25396,-3.52229 1.23829,-3.65781 l 3.05322,-1.47868 5.31979,-0.96996 4.49404,-0.48498 1.39244,1.62743 1.52827,0.8708 1.59077,-3.10821 3.18708,-1.28262 2.20509,1.48403 0.41056,0.99904 1.17352,-0.26401 -0.16167,-2.95293 3.13087,-1.74919 2.14809,-1.07348 1.52936,1.66081 3.31815,-0.0442 0.58733,-1.57125 -0.36751,-2.26324 2.60053,-3.9985 4.77655,-3.4379 0.70595,-4.83586 2.92502,-0.45591 3.79146,-1.64568 2.44332,-1.70824 -0.19833,-1.56493 -1.14245,-1.45494 0.56582,-2.99491 4.18485,-0.1175 2.29991,-0.7458 3.34739,1.4291 2.05411,4.36484 5.13229,0.0108 2.05101,2.20819 1.61545,-0.1477 2.60169,-1.27817 5.23706,0.57337 2.57492,0.21751 1.68758,-2.05624 2.61795,-1.42588 1.88178,-0.7071 0.64664,2.83663 2.04343,1.05834 2.64276,2.08249 0.11747,5.67324 0.8083,1.57241 2.58972,1.55628 0.77164,2.29451 4.15989,3.43694 1.80531,3.62324 2.45655,1.65852 z",AL:"m 631.30647,460.41572 -1.4906,-14.3215 -2.74824,-18.75264 0.16166,-14.06449 0.8083,-31.03885 -0.16166,-16.65106 0.16509,-6.41906 44.48448,-3.61945 -0.1478,2.18242 0.16166,2.1016 0.64665,3.39487 3.39488,7.92137 2.4249,9.86131 1.45495,6.14311 1.6166,4.84982 1.45496,6.95141 2.10158,6.30476 2.58657,3.39489 0.48498,3.39486 1.93994,0.80831 0.16166,2.10159 -1.77828,4.84982 -0.48498,3.23322 -0.16166,1.93992 1.61662,4.36485 0.32332,5.33479 -0.80832,2.42492 0.64666,0.8083 1.45494,0.8083 0.32814,2.88882 -5.59766,-0.35355 -6.78975,0.64665 -25.5424,2.90988 -10.41156,1.40677 -0.22138,2.8774 1.77827,1.77827 2.58657,1.93992 0.58086,7.93544 -5.54206,2.5729 -2.74822,-0.32332 2.74822,-1.93993 0,-0.96996 -3.07154,-5.98144 -2.26325,-0.64664 -1.45495,4.36483 -1.29328,2.74823 -0.64664,-0.16166 -2.74823,0 z",LA:"m 607.96706,459.16125 -3.28461,-3.16614 1.00991,-5.50023 -0.66135,-0.89308 -9.26167,1.00656 -25.02832,0.45892 -0.68419,-2.39468 0.91281,-8.4557 3.31588,-5.94585 5.03136,-8.69102 -0.57407,-2.39802 1.25659,-0.68085 0.45893,-1.95249 -2.28624,-2.05593 -0.11179,-1.94245 -1.83066,-4.34551 -0.14705,-6.3386 -55.47379,0.92397 0.0286,9.57357 0.68587,9.37353 0.68587,3.88658 2.51485,4.11521 0.91449,5.02971 4.34383,5.48693 0.22862,3.20072 0.68587,0.68587 -0.68587,8.45904 -2.97209,5.02969 1.60036,2.05761 -0.68588,2.51484 -0.68586,7.31593 -1.37174,3.20071 0.12246,3.61645 4.68648,-1.52015 12.11335,0.20701 10.34627,3.55653 6.46642,1.13163 3.71819,-1.45495 3.23321,1.13163 3.23321,0.96996 0.8083,-2.10159 -3.23321,-1.13162 -2.58657,0.48498 -2.74823,-1.6166 c 0,0 0.16167,-1.29329 0.80831,-1.45495 0.64664,-0.16166 3.07155,-0.96996 3.07155,-0.96996 l 1.77826,1.45494 1.77827,-0.96996 3.23321,0.64664 1.45494,2.42491 0.32332,2.26325 4.52649,0.32332 1.77827,1.77826 -0.8083,1.61661 -1.29329,0.8083 1.61661,1.6166 8.40634,3.55653 3.55653,-1.29328 0.96997,-2.42491 2.58656,-0.64664 1.77827,-1.45494 1.29328,0.96996 0.8083,2.90989 -2.26324,0.8083 0.64664,0.64664 3.39487,-1.29328 2.26325,-3.39487 0.8083,-0.48498 -2.10159,-0.32332 0.8083,-1.61661 -0.16166,-1.45494 2.10159,-0.48498 1.13162,-1.29329 0.64664,0.8083 c 0,0 -0.16166,3.07155 0.64665,3.07155 0.8083,0 4.20317,0.64665 4.20317,0.64665 l 4.04151,1.93992 0.96996,1.45495 2.90989,0 1.13163,0.96996 2.26324,-3.07155 0,-1.45495 -1.29328,0 -3.39487,-2.74822 -5.81978,-0.80831 -3.23321,-2.26324 1.13163,-2.74823 2.26324,0.32332 0.16166,-0.64664 -1.77826,-0.96996 0,-0.48499 3.23321,0 1.77826,-3.07154 -1.29328,-1.93993 -0.32332,-2.74823 -1.45495,0.16166 -1.93992,2.10159 -0.64664,2.58657 -3.07155,-0.64665 -0.96997,-1.77826 1.77827,-1.93993 1.90333,-3.4456 -1.0611,-2.41227 -1.16564,-3.98133 z",MS:"m 631.55882,459.34458 -0.25426,1.25615 -5.17314,0 -1.45494,-0.8083 -2.10159,-0.32332 -6.78974,1.93992 -1.77826,-0.8083 -2.58657,4.20317 -1.10254,0.77802 -1.12383,-2.48798 -1.14312,-3.88659 -3.42933,-3.20071 1.1431,-5.54455 -0.68586,-0.91449 -1.82898,0.22862 -7.91792,0.87337 -24.5465,0.37337 -0.76974,-2.22536 0.87337,-8.3768 3.11684,-5.67281 5.22707,-9.1449 -0.44574,-2.4326 1.23686,-0.65625 0.43587,-1.91947 -2.31748,-2.07898 -0.11512,-2.14148 -1.83572,-4.12109 -0.109,-5.96277 1.32753,-2.48097 -0.2233,-3.41575 -1.76949,-3.08259 1.52642,-1.48221 -1.57061,-2.49954 0.45725,-1.65221 1.5774,-6.52637 2.48595,-2.03635 -0.64167,-2.36697 3.65797,-5.30253 2.83186,-1.35642 -0.22097,-1.67516 -0.28813,-1.6811 2.87606,-5.56767 2.34572,-1.23151 0.15163,-0.89301 37.34348,-3.88117 0.18486,6.28333 0.16166,16.65106 -0.8083,31.03885 -0.16166,14.06449 2.74824,18.75264 1.48437,13.39529 z",IA:"m 569.19154,199.5843 0.26438,2.7862 2.22372,0.57726 0.95394,1.22533 0.50001,1.85536 3.79284,3.35865 0.68587,2.3915 -0.67434,3.42447 -1.58231,3.23198 -0.79934,2.74179 -2.17275,1.60204 -1.71551,0.5724 -5.57902,1.8602 -1.39146,3.84869 0.72864,1.37174 1.84051,1.68259 -0.28293,4.03629 -1.76315,1.53786 -0.77141,1.64314 0.12722,2.77632 -1.88631,0.45724 -1.62545,1.10491 -0.27879,1.35263 0.27879,2.11492 -1.55102,1.11607 -2.47053,-3.13328 -1.26257,-2.44987 -65.73582,2.51485 -0.91803,0.16544 -2.0524,-4.51596 -0.22862,-6.63007 -1.60036,-4.11521 -0.68586,-5.25831 -2.28623,-3.65797 -0.91448,-4.80107 -2.74348,-7.54455 -1.14311,-5.37264 -1.37174,-2.17191 -1.60036,-2.74346 1.95398,-4.84383 1.37174,-5.71557 -2.74347,-2.05761 -0.45725,-2.74347 0.9145,-2.51485 1.71467,0 82.654,-1.26948 0.83426,4.18312 2.25218,1.56097 0.25671,1.42309 -2.02954,3.38931 0.19041,3.20552 2.51486,3.7982 2.52679,1.29362 3.07928,0.50305 0.65834,0.83236 z",MN:"m 475.23781,128.82439 -0.45725,-8.45904 -1.82898,-7.31592 -1.82898,-13.488725 -0.45725,-9.830778 -1.82898,-3.429343 -1.60036,-5.029695 0,-10.28802 0.68586,-3.886587 -1.82093,-5.451667 30.13242,0.03527 0.32332,-8.244684 0.64664,-0.161661 2.26325,0.484982 1.93992,0.808302 0.8083,5.496456 1.45495,6.143098 1.6166,1.616605 4.84982,0 0.32332,1.454944 6.30476,0.323321 0,2.101586 4.84981,0 0.32332,-1.293284 1.13162,-1.131623 2.26325,-0.646642 1.29328,0.969963 2.90989,0 3.87985,2.586567 5.3348,2.424907 2.42491,0.484982 0.48498,-0.969963 1.45494,-0.484982 0.48498,2.909889 2.58657,1.293284 0.48498,-0.484982 1.29329,0.161661 0,2.101586 2.58656,0.969963 3.07155,0 1.61661,-0.808303 3.23321,-3.233209 2.58656,-0.484981 0.80831,1.778265 0.48498,1.293283 0.96996,0 0.96996,-0.808302 8.89133,-0.323321 1.77826,3.071549 0.64665,0 0.71361,-1.084279 4.43991,-0.370665 -0.6121,2.279459 -3.93872,1.837125 -9.24578,4.061128 -4.77474,2.006897 -3.07155,2.586568 -2.42491,3.55653 -2.26324,3.879851 -1.77827,0.808304 -4.52649,5.01147 -1.29329,0.16166 -4.32778,2.75712 -2.46288,3.20511 -0.22862,3.19139 0.0944,8.04335 -1.37604,1.68875 -5.08154,3.75997 -2.23008,5.98241 2.87175,2.23371 0.67989,3.22698 -1.85524,3.23893 0.17079,3.74802 0.36886,6.7304 3.02825,3.00199 3.329,0 1.89111,3.1326 3.37917,0.50327 3.85916,5.67147 7.08729,4.11675 2.14315,2.87512 0.67115,6.43951 -81.2115,1.14479 -0.33792,-35.67685 -0.45724,-2.97209 -4.11521,-3.42934 -1.14312,-1.82898 0,-1.60037 2.0576,-1.60035 1.37174,-1.37174 0.22863,-3.20072 z",OK:"m 380.34313,320.82146 -16.68418,-1.27331 -0.88022,10.95243 20.46538,1.15688 32.05555,1.3036 -2.3346,24.41865 -0.45725,17.83257 0.22863,1.60036 4.34383,3.65796 2.0576,1.14311 0.68587,-0.22862 0.68587,-2.05761 1.37174,1.82899 2.0576,0 0,-1.37174 2.74347,1.37174 -0.45724,3.88658 4.11521,0.22862 2.51484,1.14312 4.11521,0.68587 2.51485,1.82898 2.28623,-2.0576 3.42934,0.68586 2.51485,3.42934 0.91448,0 0,2.28623 2.28623,0.68586 2.28622,-2.28622 1.82899,0.68586 2.51484,0 0.9145,2.51486 6.30107,2.07897 1.37174,-0.68586 1.82898,-4.11521 1.14311,0 1.14312,2.0576 4.11521,0.68587 3.65795,1.37174 2.9721,0.91449 1.82899,-0.91449 0.68586,-2.51485 4.34383,0 2.0576,0.91449 2.74347,-2.05761 1.14312,0 0.68587,1.60036 4.1152,0 1.60036,-2.0576 1.82899,0.45724 2.0576,2.51486 3.20071,1.82897 3.20073,0.9145 1.94108,1.11893 -0.3891,-37.21701 -1.37175,-10.97398 -0.16046,-8.87234 -1.43989,-6.53773 -0.7782,-7.17964 -0.0681,-3.81622 -12.13684,0.31874 -46.41004,-0.45724 -45.03891,-2.05762 -24.2912,-1.37173 z",TX:"m 361.46423,330.57358 22.69079,1.08594 31.09269,1.14312 -2.33461,23.4558 -0.29676,18.15352 0.0681,2.08179 4.34383,3.81843 1.98665,1.44716 1.18421,-0.55969 0.37337,-1.81772 1.14032,1.80362 2.11164,0.0439 -0.003,-1.44709 1.66994,0.96727 1.1387,0.40887 -0.35927,3.96765 4.08819,0.0935 2.92532,1.19717 3.95474,0.52538 2.38138,2.07898 2.1241,-2.07617 3.72494,0.61491 2.22091,3.22494 1.07496,0.32096 -0.16047,1.96527 2.21361,0.79229 2.33015,-2.0548 2.13302,0.61492 2.22938,0.0355 0.93307,2.43544 6.32809,2.11445 1.59305,-0.76693 1.48947,-4.17771 0.34072,0 0.90649,0.0816 1.22905,2.06863 3.92988,0.66528 3.337,1.12288 3.42563,1.19597 1.84058,-0.975 0.71376,-2.51484 4.45322,0.0442 1.80874,0.93078 2.79925,-2.10651 1.10364,0.0442 0.85104,1.60507 4.05472,0 1.51887,-2.02862 1.86737,0.40724 1.94603,2.40328 3.52057,2.04415 2.85876,0.80981 1.51362,0.79984 2.4467,1.99732 3.04304,-1.32779 2.69109,1.13888 0.56381,6.10594 -0.0398,9.70217 0.68586,9.53401 0.70218,3.60511 2.67533,4.41986 0.89818,4.95073 4.21595,5.53802 0.19602,3.14494 0.74637,0.78584 -0.73007,8.38007 -2.8721,5.0065 1.53297,2.15287 -0.63008,2.33808 -0.66957,7.40432 -1.50432,3.338 0.29488,3.50235 -5.66488,1.58518 -9.86129,4.5265 -0.96996,1.93992 -2.58657,1.93993 -2.10158,1.45494 -1.29329,0.8083 -5.65811,5.3348 -2.74823,2.10159 -5.3348,3.2332 -5.65811,2.42491 -6.30476,3.39487 -1.77826,1.45495 -5.81978,3.55653 -3.39487,0.64664 -3.87985,5.49645 -4.04151,0.32333 -0.96997,1.93992 2.26325,1.93993 -1.45495,5.49645 -1.29328,4.5265 -1.13162,3.87985 -0.8083,4.52649 0.8083,2.42491 1.77826,6.9514 0.96997,6.14309 1.77826,2.74823 -0.96996,1.45495 -3.07155,1.93992 -5.65812,-3.87985 -5.49645,-1.13162 -1.29329,0.48498 -3.23321,-0.64664 -4.20317,-3.07155 -5.17313,-1.13162 -7.59805,-3.39487 -2.10158,-3.87986 -1.29329,-6.46641 -3.2332,-1.93993 -0.64665,-2.26325 0.64665,-0.64664 0.32332,-3.39487 -1.29329,-0.64664 -0.64664,-0.96996 1.29328,-4.36484 -1.6166,-2.26324 -3.23321,-1.29329 -3.39487,-4.36483 -3.55653,-6.62808 -4.20317,-2.58657 0.16166,-1.93992 -5.3348,-12.2862 -0.8083,-4.20317 -1.77826,-1.93992 -0.16166,-1.45495 -5.98144,-5.33479 -2.58657,-3.07155 0,-1.13163 -2.58657,-2.10158 -6.78974,-1.13163 -7.43638,-0.64664 -3.07155,-2.26324 -4.52649,1.77826 -3.55653,1.45495 -2.26325,3.2332 -0.96996,3.7182 -4.36483,6.14309 -2.42491,2.42491 -2.58657,-0.96996 -1.77826,-1.13163 -1.93993,-0.64664 -3.87985,-2.26324 0,-0.64665 -1.77826,-1.93992 -5.17314,-2.10159 -7.43638,-7.7597 -2.26325,-4.68815 0,-8.08303 -3.23321,-6.46642 -0.48498,-2.74822 -1.6166,-0.96997 -1.13163,-2.10158 -5.01147,-2.10159 -1.29328,-1.6166 -7.11307,-7.92137 -1.29328,-3.23321 -4.68816,-2.26325 -1.45495,-4.36487 -2.58659,-2.90987 -1.93991,-0.48496 -0.64923,-4.67764 8.00187,0.68589 29.03499,2.74345 29.03508,1.60036 2.23353,-19.46182 3.88655,-55.55502 1.60039,-18.74732 1.37174,0.0286 m 99.02935,229.66274 -0.56581,-7.11308 -2.74824,-7.19392 -0.56582,-7.03225 1.53578,-8.24471 3.31406,-6.87059 3.4757,-5.41565 3.1524,-3.55655 0.64664,0.2425 -4.769,6.6281 -4.36484,6.54728 -2.02077,6.62809 -0.32332,5.17316 0.88913,6.14312 2.58658,7.19392 0.48498,5.17314 0.16166,1.45496 -0.88913,0.24248 z",NM:"m 288.15255,424.01315 -0.77541,-4.7481 8.64378,0.5254 30.17176,2.9459 27.26816,1.68989 2.21527,-18.70747 3.85736,-55.87597 1.73768,-19.38923 1.5717,0.12856 0.8254,-11.16339 -104.00445,-10.63595 -17.49735,120.43481 15.46067,1.98915 1.29328,-10.02295 29.23215,2.82935 z",KS:"m 507.88059,324.38028 -12.61826,0.20443 -46.08909,-0.45723 -44.55748,-2.05763 -24.62974,-1.25741 3.89379,-64.59497 22.08346,0.67517 40.28913,0.8414 44.30124,0.98758 5.09563,0 2.1844,2.1624 2.01766,-0.0214 1.6403,1.01247 -0.0625,3.00923 -1.82898,1.72537 -0.33225,2.23217 1.84308,3.40233 2.95236,3.19506 2.32735,1.61446 1.30077,11.24082 0.18913,36.08573 z",NE:"m 486.09787,240.70058 3.23061,7.01991 -0.12863,2.30252 3.45922,5.49388 2.71929,3.15234 -5.04948,0 -43.48256,-0.93868 -40.78686,-0.8903 -22.25222,-0.78387 1.07277,-21.32785 -32.31824,-2.92025 4.34383,-44.00986 15.54633,1.02881 20.11879,1.1431 17.83257,1.14312 23.77676,1.14311 10.74526,-0.45724 2.0576,2.28622 4.80108,2.9721 1.14311,0.91449 4.34383,-1.37174 3.88659,-0.45724 2.74347,-0.22863 1.82898,1.37174 4.05743,1.60036 2.97209,1.60036 0.45725,1.60036 0.91449,2.0576 1.82898,0 0.79798,0.0462 0.89423,4.68182 2.92026,8.46792 0.57253,3.75671 2.52349,3.77425 0.56959,5.11414 1.60724,4.24037 0.25234,6.47426 z",SD:"m 476.44687,204.02465 -0.0474,-0.58087 -2.89571,-4.84544 1.86023,-4.71211 1.49273,-5.88654 -2.78187,-2.07971 -0.38516,-2.74346 0.7924,-2.55435 3.18851,0.0152 -0.12308,-5.00614 -0.3333,-30.17425 -0.61773,-3.76758 -4.07232,-3.33093 -0.98263,-1.67696 -0.0625,-1.60882 2.02212,-1.5294 1.53222,-1.66567 0.24496,-2.65679 -58.25709,-1.60035 -54.79921,-3.44909 -5.32527,63.69119 14.59027,0.9038 19.94985,1.20561 17.74305,0.92859 23.77676,1.30358 11.9827,-0.42464 1.9663,2.24518 5.19464,3.25335 0.76389,0.72275 4.54144,-1.45281 6.54054,-0.61491 1.6753,1.33627 4.20451,1.59613 2.94506,1.63583 0.39898,1.48381 1.03949,2.24088 2.23737,-0.20136 z",ND:"m 475.30528,128.91846 -0.61491,-8.43367 -1.67695,-6.81592 -1.89149,-13.02422 -0.45724,-10.987026 -1.73946,-3.077142 -1.75661,-5.194396 0.0312,-10.44427 0.62336,-3.824087 -1.8341,-5.467761 -28.64225,-0.564027 -18.59095,-0.646642 -26.51232,-1.293284 -22.94634,-2.133869 -6.99324,67.176834 54.93224,3.34365 58.06901,1.38583 z",WY:"m 360.37668,143.27587 -106.7426,-13.45706 -14.08348,88.45803 113.26461,13.58549 7.56147,-88.58646 z",MT:"M 369.20952,56.969133 338.5352,54.1613 l -29.26055,-3.55653 -29.26054,-4.041512 -32.3321,-5.334795 -18.42929,-3.39487 -32.72365,-6.932736 -4.47902,21.347532 3.42934,7.544541 -1.37174,4.572452 1.82898,4.572451 3.20073,1.371739 4.62082,10.769453 2.6951,3.176523 0.45724,1.143118 3.42934,1.143118 0.45725,2.057593 -7.0873,17.603953 0,2.51485 2.51485,3.20071 0.91448,0 4.80107,-2.97209 0.68588,-1.14312 1.60036,0.68587 -0.22863,5.25832 2.74348,12.57425 2.97209,2.51484 0.91448,0.68587 1.82899,2.28622 -0.45725,3.42935 0.68587,3.42933 1.14312,0.9145 2.28622,-2.28623 2.74347,0 3.20072,1.60036 2.51485,-0.91449 4.11521,0 3.65795,1.60036 2.74348,-0.45725 0.45724,-2.9721 2.97209,-0.68586 1.37174,1.37174 0.45725,3.20071 1.42587,0.83464 1.88695,-11.03474 106.74567,13.42892 8.80221,-86.299157 z",CO:"m 380.03242,320.96457 4.90324,-86.32496 -113.38856,-12.64396 -12.21382,87.93916 120.69914,11.02976 z",ID:"m 148.47881,176.48395 8.77087,-35.22072 1.37174,-4.22952 2.51484,-5.94418 -1.25742,-2.28623 -2.51486,0.11431 -0.80017,-1.0288 0.45725,-1.14311 0.34292,-3.08641 4.45815,-5.48695 1.82898,-0.45724 1.14311,-1.14311 0.57156,-3.20072 0.91448,-0.68586 3.88659,-5.82988 3.88659,-4.34383 0.22862,-3.772268 -3.42934,-2.629163 -1.53555,-4.400983 13.62491,-63.341691 13.51759,2.528111 -4.40808,21.383013 3.56035,7.485352 -1.58111,4.66084 1.96985,4.641233 3.13822,1.255191 3.83534,9.556588 3.51269,4.437154 0.50725,1.143118 3.34095,1.143118 0.36885,2.097075 -6.97101,17.376092 -0.16518,2.56593 2.63112,3.3217 0.90508,-0.0489 4.91129,-3.0256 0.67742,-1.09497 1.56231,0.65886 -0.27844,5.35372 2.73925,12.58271 3.91783,3.17791 1.68118,2.16545 -0.71661,4.08386 1.06622,2.80741 1.06163,1.09128 2.47929,-2.35142 2.84816,0.0489 2.91925,1.3352 2.78002,-0.68193 3.79426,-0.16048 3.9789,1.60036 2.74348,-0.29676 0.49674,-3.03731 2.93259,-0.76483 1.26017,1.51591 0.44093,2.94496 1.42434,1.21321 -8.386,53.60866 c 0,0 -87.96599,-16.70061 -94.95939,-18.20435 z",UT:"m 259.49836,310.10509 -83.74903,-11.87225 20.58761,-112.54135 46.78031,8.74514 -1.4848,10.63042 -2.31162,13.17266 7.80769,0.92837 16.40652,1.80479 8.21097,0.85564 -12.24765,88.27658 z",AZ:"m 144.9112,382.62909 -2.62701,2.15833 -0.32332,1.45495 0.48498,0.96996 18.91427,10.66959 12.12454,7.59804 14.7111,8.56801 16.81269,10.02295 12.2862,2.42491 24.95116,2.70491 17.25561,-119.12707 -83.73563,-11.91725 -3.09239,16.41246 -1.60629,0.0153 -1.71467,2.62916 -2.51485,-0.11432 -1.25742,-2.74347 -2.74347,-0.34293 -0.9145,-1.14311 -0.91448,0 -0.9145,0.57156 -1.94329,1.0288 -0.1143,6.97298 -0.22864,1.71467 -0.57154,12.57424 -1.48605,2.17191 -0.57156,3.31503 2.74347,4.91539 1.25742,5.82988 0.80019,1.0288 1.0288,0.57156 -0.11432,2.28622 -1.60035,1.37173 -3.42934,1.71467 -1.94329,1.9433 -1.48605,3.65795 -0.57156,4.91539 -2.85778,2.74347 -2.0576,0.68587 0.13569,0.82988 -0.45725,1.71467 0.45725,0.80018 3.65796,0.57154 -0.57156,2.74348 -1.48605,2.17191 -3.77227,0.91449 z",NV:"m 196.39273,185.57552 -23.63891,128.82275 -1.83224,0.34915 -1.57276,2.40618 -2.37294,0.0107 -1.47195,-2.74347 -2.61847,-0.37842 -0.77092,-1.10763 -1.03783,-0.054 -2.77837,1.64429 -0.31026,6.78548 -0.36209,5.77717 -0.34857,8.59281 -1.4471,2.08916 -2.43892,-1.07403 -69.079886,-104.20119 18.989116,-67.58491 93.0921,20.66601 z",OR:"m 148.72184,175.53153 8.8497,-34.80151 1.05079,-4.22952 2.35437,-5.62323 -0.61551,-1.16288 -2.51486,-0.0462 -1.2816,-1.6707 0.45724,-1.46407 0.50341,-3.24688 4.45815,-5.48695 1.82898,-1.09915 1.14311,-1.14311 1.48604,-3.56563 4.04706,-5.6694 3.56563,-3.8624 0.22862,-3.451314 -3.26886,-2.468682 -1.78341,-4.642625 -12.66377,-3.61197 -15.08909,-3.54365 -15.43202,0.114306 -0.45724,-1.371729 -5.48695,2.057604 -4.45814,-0.571559 -2.40054,-1.600361 -1.25742,0.685875 -4.68676,-0.228632 -1.71467,-1.371729 -5.25832,-2.057604 -0.800182,0.114316 -4.34383,-1.486056 -1.943291,1.828983 -6.172812,-0.342927 -5.944183,-4.115209 0.685865,-0.80018 0.228621,-7.773173 -2.286225,-3.886577 -4.115208,-0.571559 -0.685865,-2.514847 -2.353932,-0.466565 -5.798525,2.058784 -2.263247,6.466418 -3.233209,10.022949 -3.23321,6.466419 -5.011474,14.064461 -6.466419,13.579473 -8.083023,12.60952 -1.939926,2.90989 -0.808302,8.568 0.386095,12.08023 112.578342,26.32133 z",WA:"m 102.07324,7.6117734 4.36483,1.4549443 9.69963,2.7482283 8.568,1.939925 20.0459,5.658117 22.95579,5.658116 15.22312,3.207173 -13.63236,63.585811 -12.445,-3.525318 -15.50801,-3.570679 -15.22929,0.03324 -0.45557,-1.344699 -5.59922,2.179293 -4.59543,-0.736744 -2.14697,-1.584054 -1.31321,0.657976 -4.73566,-0.140243 -1.69836,-1.349633 -5.26304,-2.112303 -0.734971,0.146918 -4.389122,-1.524448 -1.893298,1.817379 -6.265906,-0.298733 -5.925698,-4.125702 0.778957,-0.932763 0.121223,-7.677452 -2.281999,-3.839701 -4.115208,-0.60704 -0.67741,-2.510616 -2.275512,-0.456932 -3.554948,1.230576 -2.263247,-3.219247 0.323321,-2.909889 2.748228,-0.323321 1.616605,-4.041511 -2.586568,-1.131624 0.161661,-3.718191 4.364833,-0.646641 -2.748228,-2.748228 -1.454945,-7.113061 0.646642,-2.909888 0,-7.921363 -1.778265,-3.23321 2.263247,-9.376307 2.101586,0.484981 2.424907,2.909889 2.748228,2.586567 3.233209,1.939926 4.526493,2.101586 3.071551,0.646642 2.909889,1.454944 3.394873,0.969963 2.263246,-0.16166 0,-2.424908 1.293284,-1.131623 2.101582,-1.293284 0.32333,1.131624 0.32332,1.778265 -2.263251,0.484981 -0.323321,2.101586 1.778262,1.454945 1.13163,2.424907 0.64664,1.939925 1.45494,-0.16166 0.16166,-1.293284 -0.96996,-1.293284 -0.48498,-3.233209 0.8083,-1.778265 -0.64664,-1.454944 0,-2.263247 1.77827,-3.55653 -1.13163,-2.586568 -2.42491,-4.8498139 0.32333,-0.8083023 1.13162,-0.8083024 z m -9.456692,5.9789646 2.020764,-0.16166 0.484982,1.374119 1.535779,-1.616615 2.344082,0 0.808303,1.535779 -1.53578,1.69744 0.646652,0.808313 -0.727477,2.020761 -1.374119,0.404146 c 0,0 -0.889138,0.08084 -0.889138,-0.242485 0,-0.323321 1.454955,-2.586578 1.454955,-2.586578 l -1.69744,-0.565817 -0.323321,1.454954 -0.727478,0.646642 -1.535782,-2.263257 -0.484982,-2.505742 z",CA:"m 144.69443,382.19813 3.94008,-0.48862 1.48604,-2.01144 0.54454,-2.94109 -3.55152,-0.59012 -0.51417,-0.66822 0.4775,-2.03231 -0.15928,-0.58967 1.92257,-0.61959 3.04278,-2.83268 0.58156,-4.9951 1.3799,-3.40211 1.94329,-2.16626 3.51887,-1.58967 1.65439,-1.60483 0.0687,-2.10884 -0.99333,-0.58001 -1.02315,-1.07273 -1.15522,-5.84845 -2.6852,-4.83009 0.56581,-3.505 -2.41958,-1.02931 -69.061322,-104.1784 18.902112,-67.60149 -67.079863,-15.69796 -1.506896,4.73324 -0.161661,7.43638 -5.173135,11.80121 -3.071548,2.58657 -0.323321,1.13162 -1.778266,0.80831 -1.454944,4.20317 -0.808302,3.23321 2.748228,4.20317 1.616605,4.20317 1.131623,3.55653 -0.323321,6.46642 -1.778265,3.07155 -0.646642,5.81978 -0.969963,3.71819 1.778265,3.87985 2.748228,4.52649 2.263247,4.84982 1.293283,4.04151 -0.32332,3.23321 -0.323321,0.48498 0,2.10158 5.658116,6.30476 -0.484981,2.42491 -0.646642,2.26325 -0.646642,1.93992 0.16166,8.24469 2.101586,3.71819 1.939926,2.58656 2.748228,0.48499 0.969963,2.74822 -1.131623,3.55653 -2.101587,1.61661 -1.131623,0 -0.808302,3.87985 0.484981,2.90989 3.23321,4.36483 1.616604,5.3348 1.454944,4.68815 1.293284,3.07155 3.39487,5.81978 1.454944,2.58656 0.484982,2.90989 1.616604,0.96996 0,2.42491 -0.808302,1.93993 -1.778265,7.11306 -0.484982,1.93992 2.424908,2.74823 4.203172,0.48498 4.526493,1.77827 3.879851,2.10158 2.909889,0 2.909888,3.07155 2.586567,4.84982 1.131624,2.26324 3.879851,2.10159 4.849814,0.8083 1.454944,2.10159 0.646642,3.23321 -1.454944,0.64664 0.323321,0.96996 3.233211,0.8083 2.748228,0.16167 3.159889,-1.68685 3.879854,4.20317 0.808302,2.26325 2.586572,4.20317 0.32332,3.23321 0,9.37631 0.48498,1.77826 10.02295,1.45495 19.72257,2.74822 13.84504,1.3497 z m -88.135212,-43.71668 1.293288,1.53578 -0.16166,1.29329 -3.233221,-0.0808 -0.565814,-1.21246 -0.646644,-1.45495 3.314051,-0.0808 z m 1.939932,0 1.212458,-0.64664 3.556543,2.10159 3.07156,1.21245 -0.889136,0.64666 -4.526509,-0.2425 -1.61661,-1.61661 -0.808306,-1.45495 z m 20.692614,19.80348 1.778265,2.34408 0.808313,0.96997 1.535779,0.56581 0.565807,-1.45495 -0.969963,-1.77827 -2.667403,-2.02076 -1.050798,0.16166 0,1.21246 z m -1.454955,8.64886 1.778276,3.15239 1.212458,1.93994 -1.454954,0.24248 -1.293284,-1.21245 c 0,0 -0.727477,-1.45495 -0.727477,-1.85911 0,-0.40414 0,-2.18242 0,-2.18242 l 0.484981,-0.0808 z"}}}}),b}); \ No newline at end of file diff --git a/htdocs/public/high/plugins/jquery-mapael/maps/world_countries.js b/htdocs/public/high/plugins/jquery-mapael/maps/world_countries.js deleted file mode 100644 index 222326c9..00000000 --- a/htdocs/public/high/plugins/jquery-mapael/maps/world_countries.js +++ /dev/null @@ -1,229 +0,0 @@ -/*! - * - * Jquery Mapael - Dynamic maps jQuery plugin (based on raphael.js) - * Requires jQuery and Mapael - * - * Map of World by country - * - * @source http://backspace.com/mapapp/javascript_world/ - */ - -(function (factory) { - if (typeof exports === 'object') { - // CommonJS - module.exports = factory(require('jquery'), require('mapael')); - } else if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['jquery', 'mapael'], factory); - } else { - // Browser globals - factory(jQuery, jQuery.mapael); - } -}(function ($, Mapael) { - - "use strict"; - - $.extend(true, Mapael, - { - maps : { - world_countries : { - width : 1000, - height : 400, - getCoords : function (lat, lon) { - var xfactor = 2.752; - var xoffset = 473.75; - var x = (lon * xfactor) + xoffset; - - var yfactor = -2.753; - var yoffset = 231; - var y = (lat * yfactor) + yoffset; - - return {x : x, y : y}; - }, - 'elems': { - "AE" : "M615.622,164.177l0.582,0.000l0.000,0.580l2.324,-0.289l2.326,0.000l1.455,0.000l2.033,-1.743l2.034,-1.743l1.745,-1.742l0.583,0.871l0.291,2.324l-1.456,0.000l-0.289,1.742l0.581,0.291l-1.163,0.580l0.000,1.161l-0.873,1.162l0.000,1.162l-0.580,0.580l-8.430,-1.452l-0.872,-2.613l0.291,0.871z", - "AF" : "M642.364,132.815l2.617,1.162l2.034,-0.291l0.581,-1.452l2.325,-0.291l1.454,-0.870l0.583,-2.323l2.326,-0.291l0.580,-1.162l1.164,0.871l0.871,0.000l1.453,0.000l2.035,0.582l0.871,0.290l2.036,-0.872l0.872,0.582l0.872,-1.162l1.745,0.000l0.289,-0.291l0.290,-1.161l1.455,-1.161l1.454,0.871l-0.291,0.871l0.581,0.000l0.000,2.323l0.873,0.872l1.161,-0.581l1.162,-0.291l1.744,-1.162l1.745,0.290l2.909,0.000l0.580,0.582l-1.743,0.290l-1.454,0.581l-2.907,0.291l-3.197,0.580l-1.454,1.161l0.581,1.162l0.289,1.452l-1.450,1.161l0.289,1.162l-0.872,0.871l-2.616,0.000l1.161,1.743l-1.742,0.580l-1.162,1.743l0.000,1.743l-0.875,0.580l-1.160,0.000l-2.036,0.290l-0.292,0.581l-2.034,0.000l-1.452,1.742l-0.291,2.323l-3.488,1.161l-2.035,-0.289l-0.581,0.580l-1.455,-0.291l-2.907,0.291l-4.649,-1.452l2.615,-2.323l-0.289,-1.742l-2.036,-0.581l-0.290,-1.743l-0.873,-2.032l1.163,-1.742l-1.163,-0.291l0.873,-2.032l-1.161,3.485z", - "AL" : "M530.451,115.973l-0.289,0.871l0.289,1.161l1.165,0.581l0.000,0.872l-0.873,0.291l-0.292,0.869l-1.160,1.453l-0.583,-0.291l0.000,-0.580l-1.454,-0.871l-0.292,-1.452l0.292,-1.742l0.292,-0.872l-0.584,-0.580l0.000,-0.872l1.163,-1.162l0.292,0.291l0.582,0.000l0.581,0.581l0.582,0.290l-0.289,-1.162z", - "AM" : "M593.82,118.005l3.780,-0.580l0.581,0.870l0.871,0.291l-0.289,0.872l1.452,0.871l-0.871,0.871l1.163,0.871l1.162,0.290l0.000,2.032l-0.873,0.000l-1.163,-1.451l0.000,-0.581l-1.160,0.000l-0.873,-0.581l-0.582,0.000l-1.162,-0.871l-2.036,-0.580l0.292,-1.452l0.292,0.872z", - "AO" : "M518.825,247.227l0.582,2.032l0.871,1.453l0.581,0.87l0.874,1.452h2.033l0.873-0.581l1.452,0.581l0.582-0.871l0.581-1.451l1.744-0.291v-0.29h1.452l-0.289,0.871h3.488v1.742l0.579,1.161l-0.579,1.453l0.29,1.74l0.873,1.162v3.195l0.581-0.292h1.162l1.745-0.29h1.161l0.291,0.871l-0.291,1.452l0.583,1.161l-0.292,1.161v0.873h-5.524l-0.289,8.711l2.034,2.322l1.745,1.744l-5.232,1.161l-6.396-0.582l-2.033-1.161h-11.047l-0.581,0.291l-1.745-1.161l-1.743-0.292l-1.455,0.581l-1.452,0.581l-0.29-1.742l0.581-2.612l0.871-2.324v-1.161l0.874-2.613l0.871-1.163l1.452-1.742l0.873-1.16l0.292-2.033v-1.451l-0.874-1.162l-0.871-1.742l-0.581-1.452v-0.581l0.872-1.161l-0.872-2.613l-0.291-1.742l-1.455-1.741l0.292-0.582l1.163-0.581l0.581,0.291l1.162-0.581L518.825,247.227zM508.071,246.646l-0.874,0.291l-0.581-2.031l1.163-1.163l0.87-0.581l0.874,0.871l-0.874,0.58l-0.578,0.872V246.646z", - "AR" : "M293.546,382.836h-2.616l-1.454-0.87h-1.745h-2.907v-6.389l1.163,1.45l1.163,2.033l3.779,1.744l3.778,0.58L293.546,382.836zM295,291.656l1.452,2.033l1.163-2.323l3.198,0.29l0.291,0.581l5.232,4.356l2.326,0.29l3.198,2.033l2.906,1.161l0.291,1.162l-2.617,4.354l2.617,0.58l3.197,0.581l2.326-0.581l2.326-2.032l0.582-2.322l1.163-0.58l1.454,1.45v2.324l-2.325,1.45l-1.745,1.163l-3.198,2.612l-3.779,3.777l-0.582,2.321l-0.872,2.613l0.291,2.905l-0.872,0.58v1.741l-0.29,1.452l3.487,2.323l-0.291,2.033l1.745,1.161l-0.291,1.162l-2.616,3.773l-4.07,1.455l-5.522,0.579l-2.907-0.29l0.582,1.451l-0.582,2.033l0.291,1.452l-1.454,0.871l-2.907,0.58l-2.616-1.161l-1.163,0.871l0.583,2.613l1.744,0.872l1.452-0.872l0.873,1.453l-2.617,0.87l-2.035,1.743l-0.582,2.613l-0.58,1.451h-2.617l-2.035,1.451l-0.873,2.033l2.617,2.032l2.615,0.582l-0.872,2.613l-3.197,1.452l-1.744,3.194l-2.616,1.161l-1.163,1.163l0.872,2.902l2.035,1.742l-1.163-0.291l-2.617-0.29l-6.685-0.58l-1.163-1.453v-2.03h-1.744l-0.873-0.873l-0.291-2.904l2.035-1.161l0.873-1.741l-0.292-1.453l1.455-2.323l0.872-3.775l-0.291-1.451l1.452-0.58l-0.29-1.162l-1.454-0.289l0.873-1.162l-1.162-1.162l-0.582-3.194l1.164-0.581l-0.582-3.193l0.582-2.904l0.872-2.613l1.453-0.87l-0.581-2.615l-0.292-2.613l2.326-1.742l-0.29-2.323l1.744-2.613v-2.613l-0.873-0.58l-1.163-4.646l1.744-2.904l-0.291-2.612l0.872-2.614l2.035-2.324l1.744-1.741l-0.872-1.163l0.582-0.87v-4.646l2.907-1.451l1.163-2.613l-0.291-0.872l2.034-2.324L295,291.656z", - "AT" : "M520.57,98.549l-0.292,1.162l-1.453,0.000l0.582,0.581l-1.164,1.742l-0.291,0.580l-2.616,0.000l-1.162,0.582l-2.326,-0.291l-4.069,-0.580l-0.582,-0.872l-2.615,0.292l-0.291,0.580l-1.746,-0.291l-1.452,0.000l-1.162,-0.581l0.289,-0.581l0.000,-0.580l0.873,-0.291l1.452,0.871l0.292,-0.871l2.326,0.291l2.034,-0.581l1.452,0.000l0.584,0.581l0.290,-0.291l-0.290,-1.742l0.872,-0.580l1.162,-1.162l2.035,0.871l1.453,-1.162l0.871,0.000l2.326,0.581l1.163,0.000l1.455,0.581l-0.292,0.291l-0.292,-0.870z", - "AU" : "M874.039,343.054l2.616,0.871l1.454-0.29l2.325-0.581l1.453,0.291l0.291,3.193l-0.87,0.872l-0.293,2.321l-1.162-0.579l-1.744,1.741h-0.582l-1.743-0.289l-1.745-2.324l-0.289-1.742l-1.744-2.323l0.29-1.451L874.039,343.054zM868.806,268.715l1.163,2.324l1.744-1.163l0.873,1.163l1.452,1.161l-0.289,1.161l0.58,2.324l0.291,1.45l0.873,0.29l0.579,2.323l-0.289,1.453l0.871,1.741l3.198,1.453l1.744,1.451l2.034,1.161l-0.582,0.581l1.745,1.742l0.87,2.904l1.165-0.581l1.163,1.452l0.581-0.581l0.579,2.904l2.036,1.742l1.163,1.161l2.034,2.033l0.873,2.322v1.452v1.742l1.163,2.323v2.323l-0.582,1.452l-0.581,2.323v1.742l-0.582,2.033l-1.162,2.322l-2.034,1.453l-1.163,2.031l-0.872,1.453l-0.872,2.322l-0.871,1.451l-0.873,2.033l-0.292,1.743v0.87l-1.452,1.163h-3.198l-2.326,1.159l-1.452,1.163l-1.454,1.161l-2.325-1.45l-1.743-0.293l0.289-1.45l-1.452,0.58l-2.325,1.744l-2.326-0.581l-1.743-0.582h-1.454l-2.616-0.871l-1.744-1.743l-0.582-2.032l-0.58-1.452l-1.456-1.162l-2.614-0.29l0.873-1.161l-0.581-2.033l-1.455,1.744l-2.326,0.579l1.455-1.452l0.292-1.74l1.161-1.453l-0.291-2.032l-2.324,2.612l-1.745,0.873l-0.873,2.03l-2.323-1.161l0.29-1.452l-1.744-1.741l-1.455-1.161l0.583-0.581l-3.779-1.743h-1.744l-2.616-1.45l-4.942,0.29l-3.778,0.871l-2.907,1.162l-2.615-0.292l-2.908,1.451l-2.616,0.581l-0.289,1.452l-1.163,1.161h-2.325l-1.744,0.291l-2.325-0.581l-2.036,0.29l-2.034,0.291l-1.455,1.452l-0.871-0.291l-1.452,0.871l-1.163,0.873h-2.036h-2.034l-2.906-1.744l-1.452-0.58v-1.742l1.452-0.291l0.581-0.58l-0.29-1.161l0.58-1.743l-0.29-1.741l-1.454-2.614l-0.579-1.742v-1.452l-0.873-1.743l-0.29-0.87l-1.163-1.162l-0.292-2.033l-1.454-2.323l-0.579-1.161l1.163,1.161l-0.874-2.321l1.455,0.58l0.873,1.161v-1.451l-1.454-2.033l-0.292-0.87l-0.582-0.872l0.29-1.742l0.584-0.581l0.289-1.451l-0.289-1.453l1.162-2.032l0.292,2.032l1.161-1.743l2.034-1.159l1.454-1.162l2.034-0.872l1.454-0.29l0.581,0.29l2.325-0.871l1.455-0.29l0.579-0.58l0.582-0.291h1.744l2.616-0.871l1.745-1.161l0.579-1.452l1.744-1.452v-1.162v-1.45l2.036-2.324l1.163,2.324l1.163-0.292l-0.871-1.45l0.871-1.453l1.163,0.871l0.289-2.322l1.454-1.162l0.58-1.162l1.454-0.58v-0.581l1.163,0.291l0.291-0.872l1.163-0.291l1.163-0.289l2.034,1.161l1.743,1.742h1.453l1.744,0.291l-0.581-1.742l1.454-2.032l1.163-0.873l-0.291-0.581l1.162-1.452l1.744-1.161l1.165,0.291l2.323-0.291v-1.452l-2.034-0.87l1.453-0.58l2.035,0.869l1.453,1.163l2.326,0.581l0.581-0.29l1.744,0.87l1.744-0.87l0.871,0.29l0.872-0.581l1.164,1.451l-0.873,1.453l-0.872,1.16h-0.873l0.292,1.162l-0.873,1.452l-1.163,1.161l0.292,0.872l2.325,1.452l2.034,0.87l1.454,0.871l2.034,1.742h0.581l1.452,0.582l0.582,0.87l2.617,1.161l1.745-1.161l0.581-1.452l0.581-1.161l0.29-1.452l0.873-2.322l-0.291-1.161v-0.872l-0.291-1.452l0.291-2.322l0.581-0.29l-0.29-1.163l0.581-1.451l0.582-1.452v-0.872l1.163-0.869l0.58,1.45l0.291,1.743l0.581,0.291l0.291,1.16l0.871,1.163l0.292,1.74L868.806,268.715z", - "AZ" : "M597.6,121.78l0.873,0.581h1.16v0.581l1.163,1.451l-2.033-0.29l-1.163-1.453l-0.582-0.871H597.6zM604.285,117.715h1.165l0.29-0.581l1.744-1.162l1.452,1.452l1.453,2.033h1.165l0.87,0.871h-2.325l-0.292,2.322l-0.579,0.873l-0.873,0.58v1.452l-0.582,0.291l-1.743-1.453l0.871-1.451l-0.871-0.871l-0.872,0.291l-3.488,2.032v-2.032l-1.162-0.291l-1.163-0.871l0.871-0.871l-1.452-0.871l0.289-0.871l-0.871-0.291l-0.581-0.871l0.581-0.29l2.034,0.581l1.454,0.29l0.582-0.29l-1.455-1.453l0.582-0.29h0.873L604.285,117.715z", - "BA" : "M526.091,107.552l0.871,0.000l-0.581,1.161l1.455,1.162l-0.582,1.161l-0.581,0.291l-0.582,0.290l-0.872,0.581l-0.291,1.451l-2.614,-1.161l-0.874,-1.161l-1.162,-0.581l-1.163,-0.871l-0.579,-0.872l-1.454,-1.451l0.581,-0.872l1.162,0.581l0.582,-0.581l1.163,0.000l2.325,0.291l2.033,0.000l-1.163,-0.581z", - "BD" : "M728.989,170.275l-0.292,2.033l-0.871,-0.291l0.291,2.033l-0.872,-1.452l-0.292,-1.452l-0.290,-1.162l-1.163,-1.742l-2.615,0.000l0.289,1.161l-0.873,1.453l-1.161,-0.581l-0.581,0.581l-0.582,-0.292l-1.164,-0.289l-0.290,-2.324l-1.160,-2.032l0.579,-1.742l-1.744,-0.582l0.582,-1.160l1.743,-0.873l-2.034,-1.451l1.163,-2.032l2.034,1.451l1.454,0.000l0.291,2.032l2.616,0.291l2.327,0.000l1.743,0.291l-1.454,2.324l-1.163,0.289l-0.872,1.452l1.454,1.452l0.581,-1.742l0.872,0.000l-1.454,-4.356z", - "BE" : "M482.78,89.837l2.034,0.000l2.617,-0.580l1.745,1.451l1.452,0.582l-0.290,1.742l-0.583,0.291l-0.290,1.451l-2.615,-1.161l-1.162,0.000l-2.036,-1.162l-1.163,-1.161l-1.452,0.000l-0.293,-0.872l-2.036,0.581z", - "BF" : "M465.919,204.54l-1.744,-0.872l-1.452,0.291l-0.872,0.581l-1.164,-0.581l-0.579,-0.871l-1.165,-0.582l-0.290,-1.741l0.873,-1.161l0.000,-0.871l2.034,-2.324l0.291,-1.742l0.872,-0.871l1.452,0.581l1.163,-0.581l0.291,-0.872l2.035,-1.161l0.582,-0.871l2.617,-1.162l1.452,-0.290l0.582,0.581l2.035,0.000l-0.292,1.161l0.292,1.162l1.453,2.033l0.291,1.161l3.198,0.581l-0.291,2.032l-0.583,0.872l-1.161,0.290l-0.584,1.162l-0.870,0.290l-2.616,0.000l-1.163,-0.290l-0.872,0.290l-1.163,0.000l-4.942,0.000l0.000,1.452l-0.290,-2.323z", - "BG" : "M536.265,109.294l0.581,1.162l1.164,-0.291l2.035,0.581l4.071,0.000l1.452,-0.581l3.196,-0.581l2.035,0.872l1.454,0.290l-1.163,1.161l-1.163,2.033l0.872,1.452l-2.324,-0.290l-2.907,0.871l0.000,1.452l-2.326,0.000l-2.034,-0.872l-2.326,0.872l-2.036,-0.290l0.000,-1.743l-1.452,-0.871l0.290,-0.292l-0.290,-0.289l0.580,-0.871l1.164,-0.871l-1.454,-1.162l-0.290,-1.161l-0.871,0.581z", - "BI" : "M554.579,243.451l-0.290,-3.484l-0.583,-1.161l1.743,0.290l0.874,-1.743l1.454,0.291l0.000,0.871l0.582,0.871l0.000,0.872l-0.582,0.580l-1.163,1.454l-0.872,0.870l1.163,-0.289z", - "BJ" : "M481.037,213.833l-2.037,0.290l-0.872,-2.033l0.290,-6.388l-0.579,-0.289l-0.291,-1.454l-0.872,-0.871l-0.873,-0.871l0.582,-1.452l0.870,-0.290l0.584,-1.162l1.161,-0.290l0.583,-0.872l1.161,-0.871l0.874,0.000l2.034,1.453l0.000,1.160l0.580,1.453l-0.580,1.160l0.291,0.873l-1.454,1.452l-0.582,0.871l-0.581,1.743l0.000,1.741l0.289,-4.647z", - "BN" : "M787.998,218.479l1.163,-0.872l2.324,-1.741l0.000,1.451l-0.291,1.743l-1.163,0.000l-0.580,0.870l1.453,1.451z", - "BO" : "M300.812,291.656l-3.197,-0.290l-1.163,2.323l-1.452,-2.033l-3.781,-0.582l-2.033,2.324l-2.036,0.582l-1.163,-4.065l-1.453,-2.906l0.872,-2.612l-1.453,-1.163l-0.291,-2.031l-1.454,-2.033l1.745,-2.904l-1.163,-2.324l0.582,-0.869l-0.582,-0.872l1.163,-1.452l0.000,-2.323l0.290,-2.033l0.582,-0.873l-2.326,-4.355l2.035,0.000l1.163,0.000l0.872,-0.870l2.326,-0.872l1.453,-1.162l3.487,-0.580l-0.289,2.031l0.289,1.163l0.000,1.743l2.909,2.612l3.196,0.290l0.872,1.162l2.035,0.581l1.163,0.872l1.744,0.000l1.453,0.580l0.000,1.743l0.582,0.871l0.000,1.162l-0.582,0.000l0.872,3.195l5.233,0.000l-0.291,1.740l0.291,0.873l1.453,0.871l0.872,1.742l-0.581,2.032l-0.873,1.453l0.291,1.451l-0.872,0.580l0.000,-0.871l-2.615,-1.451l-2.616,0.000l-4.652,0.871l-1.453,2.324l0.000,1.451l-1.163,3.485l0.291,0.581z", - "BR" : "M315.056,314.017l3.778,-3.777l3.198,-2.613l1.745,-1.163l2.325,-1.450l0.000,-2.324l-1.454,-1.450l-1.162,0.580l0.580,-1.742l0.292,-1.454l0.000,-1.741l-1.163,-0.290l-0.872,0.290l-1.163,0.000l-0.290,-1.162l-0.291,-2.613l-0.291,-0.581l-2.035,-0.871l-1.163,0.581l-2.907,-0.581l0.291,-3.776l-0.872,-1.452l0.872,-0.580l-0.291,-1.451l0.873,-1.453l0.581,-2.032l-0.872,-1.742l-1.453,-0.871l-0.291,-0.873l0.291,-1.740l-5.233,0.000l-0.872,-3.195l0.582,0.000l0.000,-1.162l-0.582,-0.871l0.000,-1.743l-1.453,-0.580l-1.744,0.000l-1.163,-0.872l-2.035,-0.581l-0.872,-1.162l-3.196,-0.290l-2.909,-2.612l0.000,-1.743l-0.289,-1.163l0.289,-2.031l-3.487,0.580l-1.453,1.162l-2.326,0.872l-0.872,0.870l-1.163,0.000l-2.035,0.000l-1.744,0.292l-1.163,-0.292l0.292,-4.066l-2.326,1.453l-2.616,0.000l-0.872,-1.453l-1.744,0.000l0.581,-1.451l-1.744,-1.451l-1.163,-2.614l0.872,-0.581l0.000,-1.162l1.744,-0.581l-0.290,-1.451l0.581,-1.162l0.291,-1.161l3.198,-2.034l2.033,-0.289l0.583,-0.580l2.324,0.290l1.163,-7.551l0.291,-1.161l-0.582,-1.743l-1.162,-0.871l0.000,-2.033l1.453,-0.581l0.582,0.290l0.291,-0.871l-1.745,-0.290l0.000,-1.742l5.233,0.000l0.871,-0.871l0.873,0.871l0.582,1.452l0.581,-0.290l1.452,1.451l2.036,-0.289l0.580,-0.582l2.036,-0.870l1.162,-0.291l0.291,-1.162l2.035,-0.871l-0.291,-0.581l-2.324,-0.289l-0.292,-1.744l0.000,-1.741l-1.163,-0.872l0.582,0.000l2.034,0.290l2.326,0.582l0.581,-0.582l2.035,-0.580l3.198,-0.871l0.872,-1.162l-0.291,-0.580l1.453,-0.291l0.582,0.582l-0.290,1.451l0.872,0.290l0.580,1.161l-0.580,1.162l-0.582,2.324l0.582,1.451l0.291,1.162l1.743,1.162l1.454,0.290l0.290,-0.581l0.872,0.000l1.163,-0.581l0.871,-0.871l1.454,0.290l0.872,0.000l1.454,0.291l0.290,-0.581l-0.581,-0.581l0.291,-0.870l1.163,0.289l1.162,-0.289l1.745,0.581l1.161,0.581l0.873,-0.873l0.582,0.292l0.290,0.581l1.453,0.000l0.872,-1.162l0.872,-2.034l1.745,-2.323l0.872,-0.290l0.581,1.452l1.744,4.936l1.453,0.291l0.000,2.032l-2.034,2.323l0.872,0.872l4.942,0.290l0.000,2.904l2.034,-2.033l3.489,1.163l4.650,1.741l1.163,1.453l-0.290,1.451l3.197,-0.872l5.232,1.453l4.070,0.000l4.069,2.322l3.780,3.196l2.034,0.582l2.326,0.289l0.872,0.870l1.162,3.485l0.291,1.452l-1.162,4.646l-1.163,1.742l-4.070,3.775l-1.744,3.194l-2.035,2.323l-0.581,0.290l-0.873,2.034l0.291,4.936l-0.872,4.357l-0.290,1.742l-0.873,1.162l-0.581,3.774l-2.615,3.483l-0.583,2.906l-2.034,1.161l-0.872,1.453l-2.907,0.000l-4.360,1.160l-1.745,1.162l-3.197,0.871l-3.198,2.324l-2.325,2.613l-0.581,2.032l0.581,1.452l-0.581,2.904l-0.581,1.163l-2.035,1.742l-2.907,4.645l-2.325,2.323l-2.036,1.162l-1.162,2.615l-1.744,1.740l-0.872,-1.740l1.163,-1.164l-1.454,-2.032l-2.325,-1.451l-2.907,-1.743l-0.872,0.000l-2.907,-2.033l1.744,-0.292z", - "BS" : "M260.408,165.628h-0.872l-0.581-1.452l-1.163-0.871l0.872-1.743l0.581,0.291l1.164,2.033V165.628zM259.536,157.788l-2.907,0.581l-0.291-1.162l1.454-0.29l1.744,0.29V157.788zM261.86,157.788l-0.58,2.032l-0.583-0.29l0.291-1.451l-1.453-1.162v-0.291L261.86,157.788z", - "BT" : "M726.082,154.594l1.163,0.871l0.000,1.742l-2.326,0.000l-2.326,-0.290l-1.744,0.581l-2.615,-1.162l0.000,-0.581l1.743,-2.033l1.454,-0.580l2.035,0.580l1.453,0.000l-1.163,-0.872z", - "BW" : "M544.405,281.784l0.582,0.580l0.870,1.742l2.907,2.903l1.455,0.292l0.000,0.870l0.580,1.744l2.326,0.579l1.745,1.162l-4.071,2.033l-2.324,2.032l-0.871,1.742l-0.874,1.161l-1.452,0.293l-0.584,1.161l-0.289,0.870l-1.744,0.582l-2.327,0.000l-1.162,-0.872l-1.162,-0.290l-1.454,0.580l-0.582,1.453l-1.452,0.870l-1.164,1.162l-2.033,0.290l-0.582,-0.872l0.289,-1.741l-1.741,-2.613l-0.874,-0.580l0.000,-7.843l2.908,-0.289l0.000,-9.582l2.033,-0.291l4.361,-0.871l0.871,1.162l1.744,-1.162l0.874,0.000l1.743,-0.582l0.291,0.291l-1.163,-2.034z", - "BY" : "M538.301,82.579l2.907,0.000l2.908,-0.872l0.578,-1.452l2.326,-1.162l-0.290,-1.160l1.745,-0.291l2.906,-1.162l2.908,0.581l0.290,0.872l1.454,-0.291l2.615,0.581l0.289,1.161l-0.578,0.871l1.743,1.743l1.163,0.581l-0.292,0.290l2.036,0.580l0.872,0.872l-1.163,0.580l-2.326,-0.290l-0.581,0.290l0.871,0.872l0.583,2.033l-2.328,0.000l-0.870,0.580l-0.290,1.451l-0.873,-0.289l-2.615,0.000l-0.583,-0.581l-1.162,0.581l-1.163,-0.291l-2.036,-0.290l-3.196,-0.581l-2.615,-0.291l-2.035,0.291l-1.746,0.581l-1.163,0.000l0.000,-1.161l-0.871,-1.162l1.453,-0.582l0.000,-1.161l-0.582,-0.870l0.289,1.452z", - "BZ" : "M228.433,181.89l0.000,-0.290l0.290,-0.290l0.582,0.580l0.872,-1.742l0.580,0.000l0.000,0.290l0.581,0.000l-0.289,0.872l-0.292,1.162l0.292,0.289l-0.292,1.162l0.000,0.291l-0.290,1.161l-0.582,0.872l-0.291,0.000l-0.581,0.870l-0.872,0.000l0.292,-2.903l0.000,2.324z", - "CA" : "M298.487,102.905l2.035,0.291h2.617l-1.454,1.162l-0.872,0.29l-3.488-1.162l-0.873-1.161l1.163-0.872L298.487,102.905zM303.719,95.937h-1.454l-3.488-0.872l-2.616-1.162l0.872-0.291l3.779,0.581l2.616,1.162L303.719,95.937zM133.669,97.679l-1.163,0.291l-4.651-1.162l-0.872-1.162l-2.324-0.871l-0.582-0.871l-2.907-0.581l-0.872-1.452V91.29l2.907,0.581l1.744,0.58l2.617,0.291l0.872,0.872l1.454,1.162l2.615,1.162L133.669,97.679zM319.125,91.581l-1.744,2.323l1.744-0.871l2.035,0.581l-1.163,0.871l2.617,0.873l1.163-0.582l2.906,0.871l-0.872,1.742l1.744-0.291l0.292,1.452l0.872,1.742l-1.164,2.323h-1.162l-1.744-0.29l0.582-2.323l-0.872-0.29l-3.198,2.323h-1.453l1.744-1.452l-2.617-0.581h-2.907h-5.232l-0.58-0.872l1.744-0.871l-1.164-0.871l2.326-1.451l2.906-4.356l1.745-1.743l2.325-0.87h1.163l-0.582,0.87L319.125,91.581zM108.38,82.289l2.616-0.291l-0.58,3.195l2.324,2.323h-1.163l-1.744-1.453l-0.871-1.161l-1.454-0.871l-0.582-1.162l0.291-0.871L108.38,82.289zM255.466,59.928l-0.872,1.453l-1.453-0.291l-0.582-0.58v-0.291l1.163-0.872h1.163L255.466,59.928zM248.198,58.477l-3.197,1.451h-1.744l-0.581-0.581l2.034-1.452h3.779L248.198,58.477zM239.478,50.346l0.291,1.161l1.454-0.29l1.744,0.581l2.906,1.162l3.198,0.871l0.29,1.162l2.035-0.29l1.745,0.871l-2.326,0.872l-4.361-0.581l-1.453-1.161l-2.617,1.452l-4.069,1.451l-0.872-1.742l-3.779,0.291l2.325-1.162l0.291-2.323l1.163-2.613L239.478,50.346zM265.058,46.28l-3.198,0.291l-0.58-1.453l1.162-1.451l2.326-0.581l2.326,0.871v1.161l-0.291,0.292L265.058,46.28zM210.41,40.763l-1.744,1.162l-3.488-0.872l-2.325,0.291l-3.779-1.162l2.325-0.872l2.035-1.162l2.907,0.581l1.744,0.581l0.581,0.581L210.41,40.763zM224.653,39.891v2.614l3.488-2.032l3.197,1.742l-0.581,2.033l2.616,2.032l2.907-2.032l2.035-2.324v-3.195l4.069,0.292l4.07,0.29l3.488,1.452l0.291,1.452l-2.035,1.452l1.744,1.451l-0.291,1.162l-5.231,2.033l-3.779,0.291l-2.907-0.581l-0.872,1.161l-2.617,2.323l-0.872,1.453l-3.196,1.743l-3.78,0.29l-2.325,1.162l-0.292,1.741l-3.197,0.291l-3.198,2.324l-2.907,2.904l-1.162,2.323l-0.292,3.194l4.07,0.291l1.454,2.614l1.163,2.033l3.779-0.582l5.232,1.453l2.616,0.871l2.035,1.452l3.489,0.582l2.907,1.162l4.651,0.29l2.906,0.291l-0.581,2.323l0.872,2.614l2.035,3.194l4.07,2.613l2.326-0.871l1.452-2.903l-1.452-4.357l-2.035-1.452l4.36-1.162l3.197-2.033l1.455-1.742l-0.292-2.032l-1.744-2.324L257.5,69.22l3.489-2.904l-1.162-2.323l-1.163-4.355l2.034-0.582l4.651,0.582l2.907,0.29l2.326-0.581l2.616,0.872l3.198,1.451l0.872,1.162l4.941,0.291v2.323l0.872,3.484l2.616,0.291l1.745,1.742l4.07-1.742l2.616-2.904l1.744-1.161l2.325,2.323l3.488,3.484l3.198,3.195l-1.163,1.742l3.487,1.742l2.616,1.451l4.36,0.872l1.744,0.871l1.163,2.324l2.035,0.29l1.163,0.872l0.291,3.194l-2.035,1.161l-2.035,0.872l-4.65,0.871l-3.198,2.323l-4.942,0.582l-5.814-0.582h-4.07h-2.906l-2.326,2.033l-3.488,1.162l-3.779,3.775l-3.197,2.613l2.325-0.58l4.36-3.486l5.814-2.322l4.069-0.291l2.326,1.162l-2.616,2.032l0.872,2.905l0.872,2.032l3.779,1.452l4.361-0.581l2.906-2.903l0.292,2.032l1.744,0.871l-3.489,1.742l-6.104,1.743l-2.616,1.161l-3.198,2.033l-2.034-0.291l-0.29-2.323l4.94-2.324h-4.36l-3.197,0.291l-1.744-1.452v-3.775l-1.163-0.87l-2.035,0.581l-0.872-0.581l-2.035,2.032l-0.873,2.033l-0.872,1.162l-1.162,0.58h-0.872l-0.292,0.871h-5.232h-4.07l-1.163,0.581l-2.907,1.743l-0.291,0.29l-0.872,1.162h-2.616h-2.616l-1.454,0.291l0.582,0.581l0.291,0.871l-0.291,0.291l-3.488,1.453l-2.907,0.29l-3.197,1.452h-0.581l-0.872-0.29l-0.292-0.581v-0.29l0.581-0.873l1.163-1.451l0.872-1.742l-0.58-2.323l-0.583-2.613l-2.906-1.162l0.581-0.581l-0.581-0.29h-0.581l-0.583-0.291l-0.29-0.871l-0.583,0.291h-0.58v-0.291l-0.582-0.291l-0.291-0.58l-2.035-0.871l-2.326-0.872l-2.616-1.162l-2.617-1.161l-2.326,0.87h-0.872l-3.488-0.581l-2.325,0.291l-2.616-0.871l-2.907-0.291l-1.744-0.291l-0.871-0.581l-0.582-1.452h-0.873v1.161h-5.813h-9.302h-9.302h-8.43h-8.138h-8.14h-8.43h-2.616h-8.139h-7.849h-0.582l-5.231-2.613l-2.036-1.452l-4.941-0.871l-1.454-2.614l0.291-1.742l-3.488-1.161l-0.291-2.033l-3.488-2.033v-1.452l1.454-1.452v-1.743l-4.65-1.742l-2.908-2.903l-1.744-2.033l-2.616-1.162l-1.744-1.162l-1.454-1.451l-2.616,0.871L95.3,68.93l-2.326-1.741l-2.035-1.162l-2.616-0.872h-2.616V49.475V39.311l5.232,0.581l4.069,1.453h2.907l2.616-0.871l3.198-0.871l4.07,0.29l4.069-1.162l4.651-0.87l1.744,1.162l2.035-0.581l0.872-1.452l1.744,0.29l4.651,2.613l3.778-1.742l0.292,2.033l3.487-0.581l0.872-0.872l3.487,0.292l4.071,1.161l6.395,0.871l3.779,0.582l2.907-0.291l3.488,1.452l-3.779,1.453l4.94,0.581l7.559-0.291l2.325-0.581l2.906,1.742l2.908-1.451l-2.616-1.162l1.744-0.871l3.196-0.291l2.326-0.29l2.035,0.871l2.907,1.452l3.197-0.291l4.65,1.162l4.361-0.291h4.07l-0.291-1.742l2.326-0.581l4.36,1.162v2.614l1.744-2.324h2.035l1.454-2.614l-3.198-1.742l-3.196-1.162l0.291-2.903l3.198-2.033l3.778,0.29l2.617,1.453l3.779,2.904l-2.326,1.451L224.653,39.891zM159.54,29.728l-1.453,1.453l6.104-0.871l3.779,1.451l3.197-1.451l2.617,0.871l2.035,2.613l1.454-1.161l-1.745-2.615l2.327-0.581l2.615,0.581l3.198,1.162l1.744,2.613l0.872,2.033l4.651,1.162l4.941,1.452l-0.29,1.162l-4.651,0.29l1.744,0.872l-0.873,1.162l-4.941-0.581l-4.651-0.581h-3.198l-5.231,1.162l-6.977,0.291l-4.941,0.29l-1.454-1.452l-3.778-0.58l-2.617,0.29l-3.198-2.323l1.744-0.291l4.36-0.29h3.778l3.488-0.291l-5.233-0.871l-5.813,0.291h-4.069l-1.454-1.162l6.396-0.871h-4.07l-4.941-0.872l2.325-2.033l2.036-1.162l7.267-1.452L159.54,29.728zM185.993,29.147l-2.326,1.742l-4.361-2.032l1.163-0.291h3.488L185.993,29.147zM263.604,30.018l0.291,0.582h-2.907h-2.906l-3.197,0.29l-0.582-0.29l-3.198-1.452l0.291-0.872l1.163-0.291l6.396,0.291L263.604,30.018zM235.409,29.728l2.325,1.743l2.326-2.323l6.977-0.872l4.941,2.614l-0.582,2.033l5.523-0.871l2.616-1.162l6.104,1.451l3.78,1.162l0.29,1.162l5.233-0.581l2.906,1.742l6.687,1.162l2.326,1.161l2.616,2.614l-5.233,1.162l6.687,1.742l4.359,0.582l3.779,2.613l4.36,0.29l-0.872,1.743l-4.651,3.194l-3.488-1.162l-4.36-2.613l-3.488,0.291l-0.291,1.742l2.907,1.452l3.778,1.452l0.872,0.581l2.036,2.904l-1.164,1.743l-3.488-0.582l-6.685-2.323l3.779,2.323l2.906,1.743l0.292,0.871l-7.268-0.871l-6.104-1.743l-3.198-1.161l0.872-0.871l-4.07-1.451l-4.07-1.453v0.871l-7.848,0.582L257.5,53.25l1.745-2.033h5.232l5.814-0.291l-1.163-0.871l1.163-1.452l3.488-2.613l-0.872-1.162l-0.873-1.162l-4.36-1.162l-5.522-1.161l1.743-0.581l-2.907-1.742h-2.325l-2.326-1.162l-1.453,0.87l-4.942,0.292l-9.883-0.581l-5.814-0.581l-4.651-0.582l-2.325-0.871l2.908-1.451h-3.78l-0.872-2.615l2.036-2.613l2.906-0.87l6.977-0.872L235.409,29.728zM197.62,27.985l3.198,0.582l4.942-0.582l0.582,0.872l-2.617,1.452l4.361,1.162l-0.582,2.323l-4.361,1.162l-2.907-0.291l-1.744-0.871l-6.976-2.323l0.29-0.871l5.523,0.29l-3.196-1.742L197.62,27.985zM217.096,30.89l-2.907,2.033h-3.197l-1.454-2.613v-1.452l1.454-1.162l2.616-0.581h5.814l5.232,0.871l-4.069,2.324L217.096,30.89zM142.099,34.665l-7.267,1.162l-1.453-1.162l-6.396-1.452l1.455-1.162l1.743-2.033l2.326-1.742l-2.615-1.742l9.301-0.29l4.07,0.581h6.976l2.616,0.871l2.907,1.162l-3.488,0.87l-6.686,1.743l-3.488,2.032V34.665zM216.224,24.792l-1.744,1.162l-3.778-0.291l-3.489-0.871l1.453-1.162l4.07-0.58l2.326,0.871L216.224,24.792zM202.562,19.855l2.035,1.452l0.291,1.452l-1.454,2.033l-4.36,0.291l-2.908-0.582v-1.452h-4.65v-2.033h2.906l4.07-0.871l4.07,0.291V19.855zM175.819,21.307l1.163,1.162l2.324-0.582l2.907,0.291l0.582,1.161l-1.745,1.453l-9.301,0.291l-6.977,1.162h-4.07l-0.291-0.873l5.523-1.16l-12.208,0.29l-4.07-0.29l3.779-2.904l2.616-0.581l7.848,0.871l4.942,1.453l4.651,0.29l-3.779-2.613l2.326-0.871l2.907,0.29L175.819,21.307zM213.026,18.984l3.198,0.872h5.523l2.326,0.871l-0.582,1.161l2.906,0.582l1.744,0.58h3.779l4.069,0.29l4.361-0.58l5.522-0.29l4.651,0.29l2.907,0.871l0.582,1.162l-1.744,0.871l-4.07,0.582l-3.488-0.291l-7.848,0.291h-5.813l-4.36-0.291l-7.268-0.871l-0.872-1.453l-0.582-1.451l-2.617-1.162l-5.814-0.291l-3.196-0.871l1.163-1.162L213.026,18.984zM154.018,17.532l-0.582,2.033l-2.035,0.871l-2.616,0.29l-4.941,1.161l-4.65,0.291l-3.488-0.582l4.651-2.032l5.523-1.742h4.36L154.018,17.532zM215.351,17.823h-1.163l-5.231-0.291l-0.582-0.581h5.522l1.744,0.581L215.351,17.823zM170.586,17.243l-5.232,0.87l-4.071-0.87l2.326-0.873l3.779-0.29l4.07,0.29L170.586,17.243zM172.04,14.919l-3.488,0.291H163.9v-0.291l2.907-0.872l1.453,0.29L172.04,14.919zM210.12,16.37l-4.07,0.581l-2.326-0.87l-1.163-0.871l-0.291-1.162h3.488l1.744,0.29l3.198,0.872L210.12,16.37zM198.201,15.499l1.163,1.162l-4.361-0.291l-4.65-0.871h-6.104l2.616-0.871l-3.198-0.581l-0.291-1.162l5.524,0.291l7.266,1.161L198.201,15.499zM234.246,12.015l3.198,0.871l-3.779,0.582l-4.942,2.322h-4.942l-5.813-0.291l-2.907-1.162v-0.87l2.325-0.872h-4.941l-3.198-0.872l-1.744-1.162l2.034-1.161l1.744-0.871l2.907-0.291l-1.163-0.581l6.395-0.29l3.489,1.452l4.651,0.871l4.36,0.29L234.246,12.015zM285.116,2.432l7.558,0.29l5.813,0.291l4.942,0.58v0.873l-6.685,1.161l-6.687,0.581l-2.616,0.582h6.104L287.15,8.53l-4.651,0.581l-4.651,2.324l-5.813,0.58l-1.744,0.581l-8.139,0.291l3.778,0.291l-2.035,0.58l2.326,1.162l-2.616,1.162l-4.36,0.581l-1.162,1.162l-3.779,0.871l0.291,0.581h4.65v0.581l-7.267,1.741l-7.268-0.871l-7.848,0.291l-4.361-0.291h-4.941l-0.581-1.452l5.231-0.581l-1.454-2.033h1.744l7.268,1.162l-3.779-1.742l-4.36-0.582l2.326-1.162l4.651-0.581l0.872-0.871l-3.779-1.162l-1.163-1.451h7.558l2.034,0.29l4.361-0.87l-6.105-0.291h-9.883L227.85,8.53l-2.325-1.162l-3.197-0.581l-0.582-1.162l4.07-0.291l3.197-0.29l5.232-0.291l4.07-1.162l3.488,0.291l2.906,0.582l2.327-1.453l3.487-0.291l4.942-0.29l8.429-0.291l1.454,0.291l7.849-0.291h6.104L285.116,2.432z", - "CD" : "M558.648,221.382l-0.289,3.196l1.162,0.289l-0.873,0.871l-0.871,0.872l-1.163,1.451l-0.581,1.161l-0.291,2.324l-0.582,0.871l0.000,2.324l-0.871,0.580l0.000,1.742l-0.290,0.290l-0.293,1.453l0.583,1.161l0.290,3.484l0.581,2.324l-0.290,1.452l0.290,1.742l1.744,1.452l1.455,3.485l-1.163,-0.290l-3.490,0.581l-0.873,0.290l-0.873,1.742l0.873,1.161l-0.580,3.195l-0.293,2.904l0.584,0.291l2.035,1.160l0.581,-0.581l0.289,2.904l-2.033,0.000l-1.163,-1.451l-0.872,-1.162l-2.325,-0.291l-0.581,-1.452l-1.745,0.873l-2.036,-0.291l-0.871,-1.452l-1.743,-0.291l-1.454,0.291l0.000,-0.872l-1.164,-0.290l-1.161,0.000l-1.745,0.290l-1.162,0.000l-0.581,0.292l0.000,-3.196l-0.873,-1.162l-0.290,-1.740l0.579,-1.453l-0.579,-1.161l0.000,-1.743l-3.488,0.000l0.289,-0.871l-1.452,0.000l0.000,0.290l-1.745,0.291l-0.581,1.452l-0.582,0.871l-1.452,-0.581l-0.873,0.581l-2.033,0.000l-0.874,-1.452l-0.581,-0.871l-0.871,-1.453l-0.582,-2.032l-8.140,-0.290l-1.162,0.581l-0.581,-0.291l-1.163,0.581l-0.582,-0.871l0.874,-0.291l0.000,-1.161l0.578,-0.872l0.874,-0.580l0.871,0.291l0.873,-0.873l1.452,0.000l0.292,0.582l0.871,0.580l1.744,-1.741l1.456,-1.454l0.870,-0.870l-0.289,-2.033l1.162,-2.903l1.453,-1.162l1.746,-1.452l0.290,-0.871l0.000,-1.162l0.581,-0.871l-0.292,-1.451l0.292,-2.614l0.579,-1.451l0.874,-1.744l0.291,-1.452l0.289,-2.032l0.874,-1.452l1.452,-0.870l2.326,0.870l1.745,1.162l2.033,0.290l2.036,0.580l0.871,-1.742l0.291,-0.290l1.454,0.290l2.907,-1.160l1.163,0.579l0.871,-0.290l0.291,-0.580l1.163,-0.291l2.034,0.291l1.744,0.000l0.873,-0.291l1.743,2.323l1.161,0.291l0.873,-0.291l1.166,0.000l1.450,-0.581l0.874,1.162l-2.325,-2.032z", - "CF" : "M515.918,210.638l2.325,-0.290l0.293,-0.871l0.579,0.291l0.582,0.580l3.488,-1.162l1.163,-1.161l1.454,-0.872l-0.292,-0.870l0.871,-0.291l2.618,0.291l2.617,-1.452l2.034,-2.905l1.452,-1.161l1.744,-0.581l0.292,1.162l1.452,1.742l0.000,1.162l-0.289,1.163l0.000,0.870l0.871,0.870l2.327,1.162l1.452,1.162l0.000,0.871l1.743,1.452l1.163,1.161l0.873,1.743l2.034,0.871l0.292,0.871l-0.873,0.291l-1.744,0.000l-2.034,-0.291l-1.163,0.291l-0.291,0.580l-0.871,0.290l-1.163,-0.579l-2.907,1.160l-1.454,-0.290l-0.291,0.290l-0.871,1.742l-2.036,-0.580l-2.033,-0.290l-1.745,-1.162l-2.326,-0.870l-1.452,0.870l-0.874,1.452l-0.289,2.032l-1.744,-0.290l-2.036,-0.290l-1.452,1.451l-1.455,2.325l-0.289,-0.581l-0.292,-1.453l-1.163,-0.872l-1.161,-1.452l0.000,-0.870l-1.454,-1.452l0.289,-0.870l-0.289,-1.162l0.289,-2.033l0.581,-0.581l-1.455,2.614z", - "CG" : "M509.523,244.033l-0.874,-0.871l-0.870,0.581l-1.163,1.163l-2.325,-2.906l2.035,-1.742l-0.872,-1.743l0.872,-0.580l1.745,-0.291l0.289,-1.451l1.454,1.451l2.616,0.000l0.581,-1.162l0.582,-1.741l-0.291,-2.324l-1.454,-1.452l1.163,-3.194l-0.581,-0.580l-2.036,0.000l-0.871,-1.162l0.291,-1.451l3.488,0.289l2.034,0.581l2.327,0.871l0.289,-1.741l1.455,-2.325l1.452,-1.451l2.036,0.290l1.744,0.290l-0.291,1.452l-0.874,1.744l-0.579,1.451l-0.292,2.614l0.292,1.451l-0.581,0.871l0.000,1.162l-0.290,0.871l-1.746,1.452l-1.453,1.162l-1.162,2.903l0.289,2.033l-0.870,0.870l-1.456,1.454l-1.744,1.741l-0.871,-0.580l-0.292,-0.582l-1.452,0.000l-0.873,0.873l0.871,0.291z", - "CH" : "M500.22,100.292l0.000,0.580l-0.289,0.581l1.162,0.581l1.452,0.000l-0.289,1.162l-1.163,0.290l-2.034,-0.290l-0.583,1.161l-1.453,0.000l-0.291,-0.290l-1.744,0.871l-1.160,0.000l-1.165,-0.581l-0.871,-1.161l-1.454,0.580l0.000,-1.451l2.034,-1.453l0.000,-0.580l1.163,0.291l0.873,-0.582l2.324,0.000l0.582,-0.580l-2.906,-0.871z", - "CI" : "M465.919,217.317l-1.162,0.000l-2.034,-0.580l-1.744,0.000l-3.197,0.580l-2.036,0.581l-2.615,1.162l-0.582,0.000l0.289,-2.323l0.293,-0.291l-0.293,-1.162l-1.162,-1.161l-0.871,-0.290l-0.582,-0.581l0.582,-1.452l-0.291,-1.162l0.000,-0.870l0.581,0.000l0.000,-1.162l-0.290,-0.581l0.290,-0.290l1.162,-0.290l-0.871,-2.323l-0.581,-1.163l0.290,-0.871l0.581,-0.290l0.292,-0.292l0.870,0.582l2.037,0.000l0.582,-0.871l0.581,0.000l0.582,-0.291l0.579,1.162l0.583,-0.290l1.161,-0.292l1.165,0.582l0.579,0.871l1.164,0.581l0.872,-0.581l1.452,-0.291l1.744,0.872l0.874,3.775l-1.164,2.323l-0.872,3.195l1.162,2.323l0.000,-1.161z", - "CL" : "M284.825,375.578v6.389h2.907h1.745l-0.872,1.162l-2.326,0.87l-1.454-0.291l-1.744-0.289l-1.744-0.582l-2.907-0.58l-3.487-1.451l-2.907-1.453l-3.779-3.193l2.326,0.58l3.778,2.033l3.78,0.87l1.453-1.16l0.872-2.033l2.326-1.162L284.825,375.578zM285.987,289.915l1.163,4.065l2.035-0.582l0.291,0.872l-1.163,2.613l-2.907,1.451v4.646l-0.582,0.87l0.872,1.163l-1.744,1.741l-2.035,2.324l-0.872,2.614l0.291,2.612l-1.744,2.904l1.163,4.646l0.873,0.58v2.613l-1.744,2.613l0.29,2.323l-2.326,1.742l0.292,2.613l0.581,2.615l-1.453,0.87l-0.872,2.613l-0.582,2.904l0.582,3.193l-1.164,0.581l0.582,3.194l1.162,1.162l-0.873,1.162l1.454,0.289l0.29,1.162l-1.452,0.58l0.291,1.451l-0.872,3.775l-1.455,2.323l0.292,1.453l-0.873,1.741l-2.035,1.161l0.291,2.904l0.873,0.873h1.744v2.03l1.163,1.453l6.685,0.58l2.617,0.29h-2.617l-1.163,0.581l-2.616,1.162l-0.291,2.612h-1.162l-3.198-0.87l-3.198-2.032l-3.488-1.453l-0.872-1.74l0.872-1.744l-1.454-1.742l-0.291-4.646l1.163-2.614l2.907-2.323l-4.07-0.581l2.617-2.612l0.872-4.357l2.907,0.873l1.453-5.808l-1.744-0.581l-0.872,3.484l-1.744-0.582l0.872-3.773l0.872-5.228l1.454-1.742l-0.872-2.905l-0.291-2.902l1.163-0.29l1.744-4.356l1.744-4.356l1.162-4.064l-0.581-4.065l0.872-2.323l-0.292-3.485l1.744-3.192l0.292-5.518l0.872-5.519l0.871-6.388v-4.356l-0.582-3.774l1.163-0.872l0.872-1.45l1.454,2.032l0.291,2.031l1.454,1.163l-0.872,2.612L285.987,289.915z", - "CM" : "M509.814,224.578l-0.291,0.000l-1.744,0.289l-1.744,-0.289l-1.163,0.000l-4.652,0.000l0.582,-2.034l-1.163,-1.742l-1.163,-0.582l-0.581,-1.160l-0.872,-0.581l0.000,-0.581l0.872,-2.032l1.164,-2.614l0.872,0.000l1.743,-1.743l0.871,0.000l1.746,1.161l1.744,-0.870l0.291,-1.162l0.580,-1.161l0.581,-1.452l1.455,-1.161l0.581,-1.742l0.582,-0.582l0.289,-1.452l0.873,-1.742l2.326,-2.323l0.000,-0.872l0.289,-0.580l-1.163,-0.871l0.292,-0.871l0.582,-0.291l1.162,1.742l0.292,1.743l-0.292,2.032l1.453,2.324l-1.453,0.000l-0.581,0.289l-1.455,-0.289l-0.579,1.161l1.742,1.743l1.165,0.581l0.289,1.161l0.872,1.743l-0.290,0.870l-1.455,2.614l-0.581,0.581l-0.289,2.033l0.289,1.162l-0.289,0.870l1.454,1.452l0.000,0.870l1.161,1.452l1.163,0.872l0.292,1.453l0.289,0.581l-0.289,1.741l-2.327,-0.871l-2.034,-0.581l3.488,0.289z", - "CN" : "M777.533,179.567l-2.325,1.451l-2.326-0.871v-2.323l1.163-1.453l3.196-0.581h1.455l0.581,0.872l-1.163,1.451L777.533,179.567zM825.204,94.194l4.651,0.871l3.488,1.742l0.871,2.614h4.361l2.325-0.872l4.651-0.871l-1.454,2.323l-1.163,1.162l-0.871,2.904l-2.034,2.613l-3.198-0.291l-2.325,0.871l0.581,2.324l-0.29,3.194l-1.454,0.291v1.161l-1.744-1.451l-1.163,1.451l-4.067,1.162l0.289,1.453h-2.325l-1.452-0.872l-1.745,2.032l-3.198,1.453l-2.033,1.742l-3.781,0.871l-2.033,1.162l-3.197,0.871l1.452-1.453l-0.58-1.16l2.325-1.742l-1.455-1.453l-2.324,1.162l-3.197,1.742l-1.745,1.742l-2.615,0.291l-1.452,1.16l1.452,1.743l2.326,0.581v1.162l2.325,0.872l2.906-2.033l2.616,1.162h1.744l0.289,1.452l-3.777,0.871l-1.454,1.452l-2.615,1.453l-1.453,1.742l3.196,1.742l0.872,2.614l1.743,2.613l1.745,2.033v2.033l-1.745,0.581l0.873,1.453l1.455,0.87l-0.292,2.324l-0.873,2.323h-1.452l-2.034,3.194l-2.326,3.484l-2.327,3.195l-3.778,2.613l-4.069,2.323l-2.905,0.291l-1.744,1.162l-0.873-0.871l-1.743,1.452l-3.779,1.451l-2.906,0.291l-0.872,2.904l-1.454,0.29l-0.873-2.033l0.584-1.162l-3.488-0.872l-1.455,0.581l-2.615-0.87l-1.454-0.873l0.581-1.742l-2.615-0.581l-1.452-0.871l-2.328,1.451l-2.615,0.291h-2.034l-1.454,0.58l-1.453,0.582l0.29,2.903h-1.455l-0.289-0.581v-1.161l-2.034,0.87l-1.163-0.581l-2.035-1.162l0.872-2.033l-1.743-0.581l-0.873-2.613l-2.905,0.58l0.29-3.484l2.615-2.323l0.291-2.033l-0.291-2.323l-1.161-0.581l-0.873-1.452h-1.455l-3.194-0.291l1.161-1.161l-1.455-1.743l-2.034,1.162l-2.033-0.581l-3.198,1.742l-2.615,2.033l-2.326,0.29l-1.162-0.872h-1.453l-2.035-0.58l-1.454,0.58l-1.743,2.033l-0.292-2.033l-1.744,0.582L713,154.013l-2.906-0.581l-2.326-1.162l-2.034-0.581l-1.162-1.452l-1.454-0.291l-2.615-1.742l-2.326-0.871l-1.162,0.581l-3.781-2.033l-2.615-1.742l-0.873-2.904l2.036,0.291v-1.453l-1.163-1.161l0.293-2.324l-2.908-3.194l-4.361-1.161l-0.87-2.033l-2.036-1.451l-0.58-0.582l-0.292-1.742v-1.161l-1.743-0.582l-0.874,0.291l-0.579-2.324l0.579-0.871l-0.289-0.581l2.615-1.162l2.036-0.58l2.906,0.291l0.871-1.744l3.489-0.29l1.162-1.162l4.362-1.451l0.289-0.581l-0.289-1.743l2.033-0.581l-2.617-4.646l5.524-1.162l1.452-0.58l2.034-4.938l5.232,0.873l1.744-1.162v-2.904l2.328-0.291l2.033-1.742l1.163-0.29l0.581,2.032l2.326,1.452l4.067,0.872l1.746,2.323l-0.873,3.194l0.873,1.162l3.197,0.582l3.778,0.29l3.488,1.742l1.743,0.291l1.163,2.613l1.455,1.453h3.196l5.522,0.58l3.78-0.291l2.615,0.291l4.069,1.743h3.489l1.162,0.871l3.197-1.451l4.361-0.873l4.359-0.29l3.198-0.871l1.745-1.452l2.033-0.871l-0.581-0.872l-0.873-1.161l1.454-1.742l1.745,0.29l2.614,0.581l2.908-1.452l4.069-1.162l2.034-1.742l2.035-0.872l4.07-0.29l2.034,0.29l0.291-1.162l-2.325-1.741l-2.326-0.872l-2.036,0.872l-2.904-0.291l-1.455,0.291l-0.581-1.162l1.744-2.613l1.453-2.324l3.197,1.162l4.068-1.742v-1.162l2.328-2.903l1.452-0.872v-1.452l-1.452-0.871l2.325-1.162l3.486-0.58h3.491l4.067,0.58l2.617,1.162l1.744,2.903l0.871,1.161l0.874,1.453L825.204,94.194z", - "CO" : "M266.221,231.256l-1.163,-0.582l-1.163,-0.870l-0.871,0.290l-2.326,-0.290l-0.582,-1.161l-0.580,0.000l-2.907,-1.452l-0.291,-0.872l1.162,-0.290l-0.290,-1.451l0.582,-0.873l1.452,-0.289l1.164,-1.744l1.161,-1.452l-1.161,-0.580l0.580,-1.452l-0.580,-2.613l0.580,-0.580l-0.580,-2.325l-1.164,-1.451l0.582,-1.451l0.872,0.289l0.582,-0.871l-0.872,-1.741l0.290,-0.292l1.454,0.000l2.034,-2.031l1.163,-0.291l0.000,-0.872l0.581,-2.322l1.744,-1.162l1.745,0.000l0.000,-0.582l2.325,0.291l2.035,-1.451l1.163,-0.582l1.454,-1.451l0.872,0.290l0.580,0.581l-0.290,0.871l-2.035,0.581l-0.581,1.452l-1.163,0.580l-0.581,1.162l-0.582,2.033l-0.581,1.452l1.453,0.290l0.291,1.161l0.580,0.582l0.292,1.161l-0.292,1.161l0.000,0.581l0.583,0.000l0.872,1.162l3.488,-0.291l1.453,0.291l2.035,2.323l1.163,-0.290l2.034,0.290l1.454,-0.290l0.872,0.290l-0.291,1.452l-0.872,0.871l0.000,2.033l0.581,2.033l0.582,0.580l0.291,0.580l-1.454,1.453l0.872,0.580l0.873,1.162l0.872,2.614l-0.581,0.290l-0.582,-1.452l-0.873,-0.871l-0.871,0.871l-5.233,0.000l0.000,1.742l1.745,0.290l-0.291,0.871l-0.582,-0.290l-1.453,0.581l0.000,2.033l1.162,0.871l0.582,1.743l-0.291,1.161l-1.163,7.551l-1.452,-1.454l-0.582,-0.290l1.744,-2.613l-2.326,-1.452l-1.452,0.290l-1.164,-0.579l-1.453,0.870l-2.035,-0.291l-1.744,-2.903l-1.163,-0.870l-0.872,-1.163l-1.744,-1.452l0.872,-0.291z", - "CR" : "M245.292,208.315l-1.453,-0.580l-0.582,-0.582l0.291,-0.580l0.000,-0.581l-0.872,-0.579l-0.872,-0.582l-1.163,-0.291l0.000,-0.872l-0.872,-0.580l0.291,0.871l-0.582,0.581l-0.581,-0.581l-0.872,-0.291l-0.291,-0.580l0.000,-0.871l0.291,-0.871l-0.872,-0.291l0.581,-0.580l0.581,-0.291l1.745,0.581l0.581,-0.290l0.871,0.290l0.583,0.581l0.872,0.000l0.581,-0.581l0.580,1.452l1.164,1.162l1.162,1.161l-0.872,0.291l0.000,1.161l0.583,0.291l-0.583,0.581l0.291,0.289l-0.291,0.582l0.290,-0.580z", - "CU" : "M247.326,167.081l2.326,0.290l2.326,0.000l2.325,0.871l1.163,1.161l2.616,-0.290l0.873,0.581l2.325,1.743l1.744,1.161l0.871,0.000l1.744,0.581l-0.290,0.871l2.035,0.000l2.325,1.161l-0.581,0.581l-1.744,0.291l-1.745,0.290l-2.035,-0.290l-3.778,0.290l1.743,-1.452l-1.161,-0.871l-1.744,0.000l-0.872,-0.871l-0.582,-1.742l-1.744,0.289l-2.616,-0.870l-0.582,-0.581l-3.779,-0.291l-0.872,-0.581l0.872,-0.580l-2.616,-0.290l-2.034,1.451l-1.163,0.000l-0.292,0.580l-1.452,0.292l-1.163,0.000l1.454,-0.872l0.581,-1.161l1.453,-0.581l1.163,-0.581l2.325,-0.290l-0.581,0.290z", - "CY" : "M567.37,134.557l0.000,0.291l-2.909,1.161l-1.162,-0.581l-0.874,-1.161l1.456,0.000l0.580,0.290l0.582,-0.290l0.582,0.000l0.290,0.290l0.581,0.000l0.581,0.000l-0.293,0.000z", - "CZ" : "M520.57,97.388l-1.455,-0.581l-1.163,0.000l-2.326,-0.581l-0.871,0.000l-1.453,1.162l-2.035,-0.871l-1.744,-1.161l-1.163,-0.582l-0.289,-1.161l-0.584,-0.872l2.036,-0.580l0.871,-0.871l2.036,-0.291l0.581,-0.581l0.871,0.290l1.165,-0.290l1.453,0.872l2.036,0.291l-0.293,0.580l1.454,0.580l0.581,-0.580l1.746,0.290l0.290,0.872l2.034,0.290l1.454,1.161l-0.874,0.000l-0.580,0.582l-0.582,0.000l-0.292,0.581l-0.289,0.289l-0.290,0.291l-0.871,0.290l-1.165,0.000l0.289,-0.581z", - "DE" : "M501.093,79.674l0.000,1.161l2.906,0.582l0.000,0.872l2.617,-0.291l1.744,-0.872l2.907,1.163l1.452,0.870l0.583,1.452l-0.872,0.581l1.163,1.162l0.581,1.452l-0.292,0.870l1.165,1.742l-1.165,0.290l-0.871,-0.290l-0.581,0.581l-2.036,0.291l-0.871,0.871l-2.036,0.580l0.584,0.872l0.289,1.161l1.163,0.582l1.744,1.161l-1.162,1.162l-0.872,0.580l0.290,1.742l-0.290,0.291l-0.584,-0.581l-1.452,0.000l-2.034,0.581l-2.326,-0.291l-0.292,0.871l-1.452,-0.871l-0.873,0.291l-2.906,-0.871l-0.582,0.580l-2.324,0.000l0.290,-2.032l1.455,-1.743l-4.070,-0.580l-1.166,-0.581l0.000,-1.452l-0.579,-0.581l0.290,-1.742l-0.290,-2.904l1.454,0.000l0.871,-1.162l0.581,-2.323l-0.581,-1.161l0.581,-0.581l2.327,0.000l0.582,0.581l1.742,-1.451l-0.581,-0.872l0.000,-1.743l2.035,0.581l-1.744,0.581z", - "DJ" : "M592.368,196.119l0.581,0.871l0.000,1.161l-1.453,0.582l1.161,0.580l-1.161,1.452l-0.583,-0.290l-0.581,0.000l-1.743,0.000l0.000,-0.871l0.000,-0.581l0.871,-1.452l0.872,-1.162l1.164,0.291l-0.872,0.581z", - "DK" : "M508.649,77.933l-1.743,2.323l-2.615-1.452l-0.582-1.162l4.07-0.872L508.649,77.933zM503.708,75.609l-0.581,1.162l-0.871-0.291l-2.036,2.033l0.873,1.161l-1.744,0.582l-2.035-0.582l-1.161-1.451v-2.904l0.289-0.581l0.872-0.871h2.325l1.163-0.871l2.035-0.871v1.453l-0.872,0.87l0.291,0.871L503.708,75.609z", - "DO" : "M276.396,176.664l0.290,-0.291l2.034,0.000l1.744,0.580l0.872,0.000l0.291,0.872l1.454,0.000l0.000,0.871l1.162,0.000l1.454,1.162l-0.872,1.161l-1.453,-0.871l-1.164,0.290l-0.872,-0.290l-0.581,0.581l-1.163,0.290l-0.290,-0.871l-0.873,0.581l-1.161,1.743l-0.872,-0.291l0.000,-0.871l0.000,-0.872l-0.582,-0.580l0.582,-0.582l0.290,-1.161l0.290,1.451z", - "DZ" : "M506.906,166.5l-9.592,5.226l-7.849,5.227l-4.070,1.453l-2.906,0.000l0.000,-1.742l-1.452,-0.291l-1.454,-0.872l-0.873,-1.161l-9.301,-6.098l-9.301,-6.098l-10.176,-6.679l0.000,-0.291l0.000,-0.290l0.000,-3.194l4.361,-2.032l2.906,-0.581l2.036,-0.581l1.162,-1.452l3.197,-1.162l0.000,-2.032l1.744,-0.291l1.162,-0.870l3.782,-0.582l0.289,-0.871l-0.582,-0.580l-0.871,-2.905l-0.291,-1.742l-1.163,-1.742l2.907,-1.452l2.907,-0.581l1.744,-1.161l2.617,-0.872l4.650,-0.289l4.651,-0.291l1.162,0.291l2.615,-1.162l2.911,0.000l1.160,0.871l2.035,-0.290l-0.581,1.451l0.290,2.614l-0.579,2.323l-1.745,1.451l0.290,2.034l2.325,1.742l0.000,0.581l1.745,1.162l1.163,4.936l0.871,2.322l0.000,1.453l-0.291,2.033l0.000,1.451l-0.291,1.452l0.291,1.743l-1.162,1.161l1.744,2.033l0.000,1.162l1.163,1.451l1.163,-0.580l2.035,1.451l-1.452,-1.743z", - "EC" : "M252.85,240.258l1.453,-2.033l-0.581,-1.162l-1.163,1.162l-1.744,-1.162l0.581,-0.581l-0.291,-2.613l0.873,-0.580l0.581,-1.454l0.872,-2.031l0.000,-0.872l1.454,-0.581l1.744,-1.160l2.907,1.452l0.580,0.000l0.582,1.161l2.326,0.290l0.871,-0.290l1.163,0.870l1.163,0.582l0.581,2.324l-0.872,1.741l-3.198,2.904l-3.196,0.871l-1.744,2.613l-0.582,1.742l-1.454,1.162l-1.162,-1.451l-1.163,-0.290l-1.163,0.290l0.000,-1.162l0.873,-0.582l0.291,1.160z", - "EE" : "M540.626,72.125l0.291,-1.743l-0.872,0.290l-1.744,-0.870l-0.291,-1.743l3.489,-0.581l3.488,-0.582l2.906,0.582l2.906,0.000l0.291,0.291l-1.745,1.742l0.582,2.614l-1.163,0.871l-2.034,0.000l-2.614,-1.162l-1.165,-0.290l2.325,-0.581z", - "EG" : "M569.987,149.947l-0.874,0.872l-0.581,2.323l-0.873,1.162l-0.582,0.580l-0.870,-0.871l-1.164,-1.161l-2.034,-4.066l-0.291,0.291l1.163,2.903l1.744,2.904l2.034,4.065l0.873,1.743l0.871,1.452l2.618,2.904l-0.584,0.580l0.000,1.743l3.198,2.613l0.581,0.580l-10.755,0.000l-10.755,0.000l-11.045,0.000l0.000,-10.162l0.000,-9.873l-0.871,-2.324l0.579,-1.451l-0.289,-1.162l0.871,-1.452l3.779,0.000l2.615,0.581l2.615,0.871l1.456,0.580l2.033,-0.870l1.165,-0.872l2.323,-0.290l2.036,0.290l0.872,1.452l0.580,-0.870l2.036,0.580l2.327,0.290l1.161,-0.870l-2.038,-4.935z", - "ER" : "M590.332,196.409l-0.872,-0.871l-1.162,-1.452l-1.163,-1.162l-0.871,-0.870l-2.326,-1.162l-1.744,0.000l-0.873,-0.580l-1.453,0.870l-1.743,-1.452l-0.873,2.033l-3.198,-0.581l-0.290,-0.870l1.161,-4.065l0.291,-2.033l0.874,-0.873l2.035,-0.289l1.454,-1.742l1.452,3.193l0.871,2.614l1.454,1.452l3.779,2.613l1.454,1.453l1.453,1.742l0.871,0.871l1.455,0.871l-0.872,0.581l1.164,0.291z", - "ES" : "M448.769,115.683l0.292,-1.743l-1.163,-1.452l3.778,-1.742l3.489,0.290l3.778,0.000l2.908,0.581l2.324,-0.290l4.362,0.290l1.163,0.871l4.940,1.452l1.163,-0.580l2.907,1.161l3.197,-0.292l0.292,1.454l-2.616,2.032l-3.489,0.580l-0.291,0.872l-1.744,1.451l-1.162,2.324l1.162,1.451l-1.453,1.162l-0.581,1.742l-2.325,0.581l-1.744,2.323l-3.489,0.000l-2.616,0.000l-1.743,0.872l-1.165,1.161l-1.452,-0.291l-0.871,-0.870l-0.874,-1.742l-2.615,-0.291l0.000,-1.162l0.871,-0.871l0.291,-0.871l-0.873,-0.581l0.873,-2.032l-1.162,-1.452l1.162,-0.291l0.000,-1.451l0.582,-0.291l0.000,-2.033l1.163,-0.870l-0.581,-1.452l-1.746,0.000l-0.291,0.290l-1.744,0.000l-0.581,-1.162l-1.163,0.291l1.163,-0.581z", - "ET" : "M578.125,189.73l1.743,1.452l1.453,-0.870l0.873,0.580l1.744,0.000l2.326,1.162l0.871,0.870l1.163,1.162l1.162,1.452l0.872,0.871l-0.872,1.162l-0.871,1.452l0.000,0.581l0.000,0.871l1.743,0.000l0.581,0.000l0.583,0.290l-0.583,1.161l1.163,1.453l0.873,1.452l1.163,0.871l9.010,3.194l2.328,0.000l-7.850,8.421l-3.780,0.000l-2.324,2.033l-1.744,0.000l-0.874,0.870l-1.743,0.000l-1.161,-0.870l-2.618,1.162l-0.581,1.160l-2.036,-0.290l-0.580,-0.290l-0.580,0.000l-0.874,0.000l-3.489,-2.323l-2.033,0.000l-0.873,-0.871l0.000,-1.742l-1.452,-0.290l-1.455,-3.196l-1.454,-0.580l-0.290,-1.161l-1.452,-1.161l-1.746,-0.291l0.872,-1.452l1.455,0.000l0.582,-0.872l0.000,-2.613l0.579,-2.903l1.454,-0.582l0.292,-1.162l1.163,-2.322l1.743,-1.162l0.872,-2.904l0.581,-2.323l3.198,0.581l-0.873,2.033z", - "FI" : "M552.544,41.053l-0.584,2.033l4.363,1.743l-2.617,2.032l3.198,3.194l-1.744,2.324l2.325,2.033l-1.162,1.742l4.069,2.032l-0.871,1.161l-2.617,1.742l-5.814,3.485l-4.941,0.291l-4.941,0.871l-4.362,0.580l-1.744,-1.451l-2.615,-0.871l0.581,-2.614l-1.452,-2.613l1.452,-1.453l2.616,-1.742l6.106,-3.193l2.033,-0.582l-0.289,-1.160l-4.072,-1.162l-0.872,-1.162l0.000,-4.065l-4.361,-2.033l-3.486,-1.452l1.453,-0.581l3.198,1.452l3.488,0.000l2.908,0.581l2.615,-1.162l1.452,-2.032l4.362,-1.162l3.487,1.162l1.162,-2.032z", - "FJ" : "M964.732,278.588l0.873,0.871l-0.292,1.452l-1.744,0.291l-1.452-0.291l-0.292-1.162l0.873-0.87l1.455,0.291L964.732,278.588zM969.382,276.557l-1.741,0.579l-2.036,0.582l-0.292-1.161l1.455-0.291l0.873-0.291l1.741-0.871h-0.01h0.58l-0.29,1.162l-0.29,0.291H969.382z", - "FK" : "M305.173,373.544l3.488,-1.741l2.326,0.870l1.744,-1.161l2.034,1.161l-0.872,0.871l-3.778,0.872l-1.164,-0.872l-2.325,1.162l1.453,1.162z", - "FR" : "M329.008,223.997l-0.873,1.162h-1.453l-0.29-0.581l-0.582-0.292l-0.872,0.873l-1.162-0.581l0.581-1.162l0.291-1.162l0.582-1.161l-1.164-1.742l-0.289-1.743l1.453-2.612l0.872,0.289l2.034,0.872l2.907,2.323l0.582,1.161l-1.744,2.323L329.008,223.997zM500.22,115.102l-1.161,2.033l-1.164-0.582l-0.581-1.742l0.581-1.162l1.744-0.871L500.22,115.102zM483.652,92.451l2.036,1.162h1.162l2.615,1.162l0.581,0.291h0.871l1.165,0.581l4.07,0.58l-1.455,1.744l-0.29,2.032l-0.873,0.581l-1.163-0.291v0.581l-2.033,1.453v1.452l1.453-0.581l0.871,1.162l-0.291,0.871l0.872,1.162l-0.872,0.871l0.582,2.033l1.454,0.291l-0.291,1.162l-2.325,1.452l-5.523-0.581l-4.069,0.872l-0.292,1.741l-3.196,0.292l-2.907-1.162l-1.163,0.58l-4.94-1.452l-1.163-0.872l1.452-1.742l0.582-5.517l-2.907-2.905l-2.034-1.451l-4.36-0.872v-2.033l3.488-0.581l4.651,0.581l-0.872-2.903l2.615,1.162l6.396-2.324l0.87-2.324l2.325-0.29l0.293,0.872h1.452L483.652,92.451z", - "GA" : "M504.291,242l-2.908,-2.904l-1.744,-2.322l-1.744,-2.905l0.291,-0.871l0.582,-0.871l0.581,-2.033l0.582,-2.033l0.871,0.000l4.070,0.000l0.000,-3.483l1.163,0.000l1.744,0.289l1.744,-0.289l0.291,0.000l-0.291,1.451l0.871,1.162l2.036,0.000l0.581,0.580l-1.163,3.194l1.454,1.452l0.291,2.324l-0.582,1.741l-0.581,1.162l-2.616,0.000l-1.454,-1.451l-0.289,1.451l-1.745,0.291l-0.872,0.580l0.872,1.743l2.035,-1.742z", - "GB" : "M458.072,80.835l-1.452,2.033l-2.036-0.58h-1.745l0.582-1.453l-0.582-1.451l2.326-0.291L458.072,80.835zM465.629,69.802l-3.198,2.903l2.907-0.289h2.907l-0.582,2.032l-2.615,2.613h2.907l0.29,0.291l2.325,3.484l2.035,0.291l1.745,3.195l0.581,1.161l3.486,0.291l-0.29,2.033l-1.452,0.58l1.163,1.452l-2.617,1.453h-3.488l-4.94,0.871l-1.164-0.581l-1.744,1.161l-2.616-0.291l-2.034,1.162l-1.453-0.581l4.069-2.904l2.616-0.581l-4.359-0.581l-0.873-0.872l2.906-0.871l-1.454-1.451l0.582-2.033l4.069,0.291l0.291-1.452l-1.744-1.743l-3.488-0.58l-0.582-0.871l0.872-1.162l-0.872-0.581l-1.452,1.162V76.19l-1.454-1.453l0.873-2.904l2.326-2.032h2.033H465.629z", - "GE" : "M588.298,116.844l0.291,-1.161l-0.582,-2.034l-1.743,-0.871l-1.455,-0.580l-1.162,-0.581l0.581,-0.581l2.325,0.581l3.779,0.581l3.780,1.162l0.581,0.580l1.745,-0.580l2.614,0.580l0.581,1.162l1.745,0.871l-0.582,0.290l1.455,1.452l-0.582,0.290l-1.454,-0.290l-2.034,-0.580l-0.581,0.290l-3.780,0.580l-2.615,-1.452l2.907,-0.291z", - "GH" : "M476.676,214.704l-4.361,1.452l-1.452,1.161l-2.617,0.581l-2.327,-0.581l0.000,-1.161l-1.162,-2.323l0.872,-3.195l1.164,-2.323l-0.874,-3.775l-0.290,-2.323l0.000,-1.452l4.942,0.000l1.163,0.000l0.872,-0.290l1.163,0.290l0.000,0.872l0.871,1.161l0.000,2.033l0.292,2.322l0.871,0.872l-0.581,2.613l0.000,1.162l0.872,1.742l-0.582,-1.162z", - "GL" : "M344.996,3.593l9.302,-1.451l9.593,0.000l3.488,-0.871l9.883,-0.291l21.800,0.291l17.442,2.322l-5.232,0.872l-10.465,0.290l-14.824,0.291l1.453,0.289l9.593,-0.289l8.429,0.871l5.232,-0.582l2.326,0.872l-2.907,1.452l6.977,-0.871l13.370,-1.162l8.139,0.581l1.455,1.162l-11.047,2.032l-1.743,0.580l-8.721,0.581l6.395,0.000l-3.196,2.033l-2.326,1.742l0.290,3.195l3.198,1.742l-4.361,0.000l-4.361,0.872l4.943,1.451l0.581,2.323l-2.908,0.291l3.781,2.323l-6.106,0.291l2.906,1.160l-0.871,0.872l-3.780,0.581l-3.777,0.000l3.488,1.742l0.000,1.161l-5.522,-1.161l-1.455,0.871l3.778,0.582l3.488,1.741l1.163,2.324l-4.940,0.580l-2.034,-1.162l-3.489,-1.742l0.871,2.033l-3.197,1.452l7.267,0.000l3.780,0.290l-7.269,2.324l-7.557,2.322l-7.848,0.872l-3.198,0.000l-2.907,0.871l-3.779,2.903l-5.814,2.034l-2.034,0.290l-3.489,0.581l-4.069,0.580l-2.326,1.742l0.000,2.034l-1.453,1.742l-4.360,2.033l0.872,2.323l-1.162,2.323l-1.454,2.613l-3.779,0.000l-4.069,-2.033l-5.524,0.000l-2.615,-1.742l-2.036,-2.614l-4.650,-3.484l-1.454,-1.742l-0.291,-2.324l-3.778,-2.613l0.872,-2.033l-1.744,-0.871l2.617,-3.194l4.359,-1.162l0.872,-1.161l0.582,-2.034l-3.198,0.873l-1.454,0.289l-2.325,0.582l-3.488,-0.871l0.000,-2.034l0.871,-1.452l2.617,0.000l5.523,0.872l-4.651,-1.742l-2.325,-1.162l-2.907,0.581l-2.326,-0.872l3.198,-2.322l-1.744,-1.162l-2.035,-2.033l-3.489,-2.904l-3.488,-0.871l0.000,-1.162l-7.266,-1.742l-5.814,0.000l-7.558,0.000l-6.685,0.290l-3.199,-0.870l-4.649,-1.743l7.266,-0.871l5.523,-0.291l-11.917,-0.580l-6.105,-1.162l0.291,-1.161l10.464,-1.162l10.173,-1.452l0.872,-0.871l-7.266,-1.162l2.326,-1.161l9.592,-1.742l4.070,-0.290l-1.163,-1.162l6.395,-0.872l8.429,-0.289l8.430,0.000l3.199,0.580l7.266,-1.453l6.395,1.162l4.070,0.291l5.523,0.871l-6.395,-1.451l-0.290,1.453z", - "GM" : "M427.549,194.667l0.291,-1.162l2.909,0.000l0.581,-0.581l0.871,0.000l1.163,0.581l0.873,0.000l0.870,-0.581l0.582,0.872l-1.163,0.581l-1.162,0.000l-1.163,-0.581l-1.163,0.581l-0.582,0.000l-0.580,0.581l2.327,0.291z", - "GN" : "M450.514,209.768l-0.871,0.000l-0.582,1.161l-0.581,0.000l-0.582,-0.581l0.290,-1.162l-1.162,-1.741l-0.872,0.290l-0.581,0.000l-0.581,0.290l0.000,-1.161l-0.582,-0.581l0.000,-0.870l-0.581,-1.163l-0.582,-0.871l-2.326,0.000l-0.581,0.580l-0.871,0.000l-0.292,0.581l-0.289,0.582l-1.455,1.451l-1.453,-1.742l-0.873,-1.163l-0.870,-0.289l-0.582,-0.581l-0.291,-1.161l-0.582,-0.582l-0.581,-0.580l1.163,-1.162l0.873,0.000l0.581,-0.580l0.582,0.000l0.580,-0.291l-0.291,-0.871l0.291,-0.291l0.000,-0.871l1.453,0.000l2.036,0.581l0.581,0.000l0.000,-0.290l1.744,0.290l0.289,-0.290l0.293,1.162l0.290,0.000l0.581,-0.582l0.582,0.291l0.871,0.580l1.165,0.291l0.579,-0.580l0.873,-0.582l0.871,-0.290l0.581,0.000l0.582,0.581l0.292,0.871l1.162,1.162l-0.582,0.580l-0.291,1.162l0.582,-0.291l0.581,0.291l-0.290,0.871l0.871,0.581l-0.581,0.290l-0.290,0.871l0.581,1.163l0.871,2.323l-1.162,0.290l-0.290,0.290l0.290,0.581l0.000,1.162l0.581,0.000z", - "GQ" : "M499.931,228.061l-0.582,-0.290l0.871,-3.193l4.652,0.000l0.000,3.483l-4.070,0.000l0.871,0.000z", - "GR" : "M538.882,132.815l1.744,0.871l2.034-0.29l2.033,0.29v0.582l1.455-0.291l-0.292,0.581l-4.067,0.291v-0.291l-3.199-0.581L538.882,132.815zM547.02,116.553l-0.871,1.742l-0.581,0.291h-1.745l-1.454-0.291l-3.196,0.872l1.744,1.451l-1.454,0.291h-1.452l-1.454-1.16l-0.582,0.58l0.582,1.452l1.454,1.453l-0.872,0.58l1.452,1.162l1.455,0.871v1.452l-2.617-0.581l0.873,1.452l-1.745,0.291l0.872,2.323h-1.744l-2.326-1.161l-0.871-2.324l-0.581-1.742l-1.163-1.162l-1.452-1.742v-0.58l1.16-1.453l0.292-0.87l0.873-0.291v-0.871l1.742-0.291l1.164-0.58h1.452l0.582-0.291l0.29-0.29l2.036,0.29l2.325-0.872l2.034,0.872h2.326v-1.452L547.02,116.553z", - "GT" : "M225.816,193.215l-1.453,-0.580l-1.744,0.000l-1.163,-0.581l-1.454,-1.162l0.000,-0.871l0.291,-0.581l-0.291,-0.580l1.164,-2.033l3.487,0.000l0.292,-0.871l-0.582,-0.291l-0.291,-0.581l-1.162,-0.581l-0.872,-0.870l1.163,0.000l0.000,-1.743l2.615,0.000l2.617,0.000l0.000,2.324l-0.292,2.903l0.872,0.000l0.872,0.581l0.292,-0.291l0.872,0.291l-1.455,1.162l-1.161,0.580l-0.292,0.581l0.292,0.581l-0.583,0.580l-0.581,0.291l0.000,0.290l-0.580,0.291l-0.873,0.581l0.000,-0.580z", - "GW" : "M432.201,200.475l-1.452,-1.162l-1.164,0.000l-0.582,-0.871l0.000,-0.291l-0.871,-0.580l-0.292,-0.581l1.453,-0.581l0.874,0.000l0.871,-0.290l4.942,0.290l0.000,0.871l-0.291,0.291l0.291,0.871l-0.580,0.291l-0.582,0.000l-0.581,0.580l-0.873,0.000l1.163,-1.162z", - "GY" : "M309.243,208.025l1.744,0.871l1.744,1.742l0.000,1.452l1.162,0.000l1.453,1.452l1.163,0.873l-0.582,2.613l-1.453,0.579l0.000,0.872l-0.581,1.161l1.453,2.032l0.872,0.000l0.291,1.744l1.744,2.322l-0.872,0.000l-1.454,-0.290l-0.871,0.871l-1.163,0.581l-0.872,0.000l-0.290,0.581l-1.454,-0.290l-1.743,-1.162l-0.291,-1.162l-0.582,-1.451l0.582,-2.324l0.580,-1.162l-0.580,-1.161l-0.872,-0.290l0.290,-1.451l-0.582,-0.582l-1.453,0.291l-2.035,-2.322l0.873,-0.582l0.000,-1.163l1.743,-0.580l0.582,-0.581l-0.872,-0.871l0.290,-1.161l-2.036,1.452z", - "HN" : "M233.374,195.248l-0.291,-0.871l-0.872,-0.291l0.000,-1.162l-0.291,-0.289l-0.582,0.000l-1.161,0.289l0.000,-0.289l-0.872,-0.581l-0.582,-0.581l-0.873,-0.291l0.583,-0.580l-0.292,-0.581l0.292,-0.581l1.161,-0.580l1.455,-1.162l0.289,0.000l0.582,-0.291l0.581,0.000l0.291,0.000l0.582,0.000l1.163,0.291l1.162,-0.291l0.873,-0.290l0.581,-0.290l0.872,0.290l0.581,0.000l0.582,0.000l0.581,-0.290l1.454,0.580l0.289,0.000l0.872,0.582l0.873,0.580l0.871,0.291l0.873,0.870l-1.162,0.000l-0.291,0.291l-0.872,0.291l-0.872,0.000l-0.581,0.290l-0.582,0.000l-0.290,-0.290l-0.291,0.000l-0.291,0.580l-0.291,0.000l0.000,0.581l-1.163,0.871l-0.581,0.291l-0.291,0.289l-0.581,-0.580l-0.581,0.871l-0.582,-0.291l-0.871,0.291l0.290,1.162l-0.581,0.000l-0.291,0.871l0.872,0.000z", - "HR" : "M525.51,104.647l0.871,1.163l0.873,0.870l-1.163,0.872l-1.163,-0.581l-2.033,0.000l-2.325,-0.291l-1.163,0.000l-0.582,0.581l-1.162,-0.581l-0.581,0.872l1.454,1.451l0.579,0.872l1.163,0.871l1.162,0.581l0.874,1.161l2.614,1.161l-0.289,0.580l-2.615,-1.160l-1.746,-0.871l-2.326,-0.871l-2.326,-2.033l0.582,-0.291l-1.453,-1.162l0.000,-0.870l-1.744,-0.291l-0.871,1.161l-0.873,-1.161l0.292,-0.870l1.743,0.000l0.580,-0.291l0.873,0.291l1.163,0.000l0.000,-0.582l0.871,-0.290l0.293,-1.162l2.325,-0.580l0.871,0.290l2.036,1.161l2.325,0.581l-0.871,0.581z", - "HT" : "M272.326,176.083l1.744,0.290l2.326,0.291l0.290,1.451l-0.290,1.161l-0.582,0.582l0.582,0.580l0.000,0.872l-1.745,-0.581l-1.453,0.290l-1.744,-0.290l-1.163,0.581l-1.454,-0.872l0.291,-0.871l2.326,0.291l2.325,0.290l0.872,-0.581l-1.163,-1.161l0.000,-1.161l-1.744,-0.292l-0.582,0.870z", - "HU" : "M518.243,102.034l1.164,-1.742l-0.582,-0.581l1.453,0.000l0.292,-1.162l1.454,0.872l0.871,0.290l2.324,-0.581l0.291,-0.291l1.163,-0.290l1.163,-0.290l0.289,0.000l1.455,-0.290l0.582,-0.581l0.870,-0.291l2.908,0.872l0.582,-0.290l1.452,0.870l0.291,0.581l-1.743,0.581l-1.164,2.034l-1.742,1.741l-2.325,0.581l-1.455,0.000l-2.326,0.580l-0.871,0.581l-2.325,-0.581l-2.036,-1.161l-0.871,-0.290l-0.582,-1.162l0.582,0.000z", - "ID" : "M806.019,259.132h-1.163l-3.488-2.033l2.326-0.289l1.454,0.58l1.162,0.871L806.019,259.132zM816.193,258.842l-2.323,0.581l-0.292-0.291l0.292-0.871l1.16-1.742l2.617-1.16l0.29,0.58l0.29,0.871L816.193,258.842zM798.17,253.326l1.163,0.58l1.745-0.29l0.581,1.161l-3.198,0.582l-1.745,0.58l-1.743-0.291l1.162-1.451h1.455L798.17,253.326zM812.123,253.326l-0.579,1.451l-4.072,0.871l-3.486-0.58v-0.871l2.034-0.581l1.745,0.871l1.743-0.29L812.123,253.326zM772.881,249.55l5.232,0.29l0.582-1.161l4.94,1.452l1.163,1.742l4.07,0.58l3.487,1.452l-3.196,1.162l-3.199-1.162h-2.325h-2.907l-2.615-0.58l-3.199-1.162l-2.033-0.29l-1.163,0.29l-4.942-0.871l-0.58-1.452h-2.325l1.745-2.613h3.488l2.033,1.163l1.162,0.289L772.881,249.55zM844.679,248.098l-1.452,1.742l-0.292-2.032l0.583-0.871l0.58-1.162l0.581,0.871V248.098zM824.043,240.548l-1.163,0.87l-1.745-0.58l-0.581-1.162h2.907L824.043,240.548zM833.053,239.386l0.871,2.032l-2.325-0.87l-2.324-0.29h-1.454h-2.034l0.582-1.452l3.486-0.291L833.053,239.386zM842.935,234.16l0.874,4.355l2.906,1.743l2.325-2.905l3.199-1.741h2.323l2.326,0.87l2.033,1.162l2.909,0.581v8.712l0.29,9.002l-2.615-2.323l-2.91-0.29l-0.578,0.58l-3.489,0.291l1.161-2.323l1.744-0.871l-0.579-2.904l-1.454-2.323l-5.233-2.324l-2.323-0.289l-4.069-2.613L840.901,242l-1.162,0.292l-0.581-1.163v-1.161l-2.034-1.161l2.906-1.162h2.034l-0.289-0.581h-4.072l-1.161-1.742l-2.327-0.58l-1.161-1.161l3.778-0.872l1.455-0.872l4.359,1.162L842.935,234.16zM818.518,226.9l-2.325,2.904l-2.034,0.58l-2.615-0.58h-4.651l-2.325,0.58l-0.292,2.033l2.326,2.323l1.454-1.161l5.23-0.872l-0.29,1.161l-1.162-0.289l-1.163,1.451l-2.326,1.162l2.615,3.483l-0.581,0.872l2.326,3.194v1.742l-1.452,0.872l-0.874-0.872l1.165-2.323l-2.617,1.162l-0.871-0.873l0.579-0.869l-2.033-1.743l0.291-2.613l-2.036,0.871l0.292,3.195v3.773l-1.744,0.581l-1.165-0.871l0.874-2.613l-0.291-2.613h-1.162l-0.871-2.033l1.161-1.741l0.289-2.033l1.455-4.356l0.581-0.871l2.326-2.032l2.033,0.58l3.488,0.582l3.199-0.292l2.615-2.032L818.518,226.9zM828.111,227.771l-0.29,2.323h-1.452l-0.292,1.452l1.162,1.451l-0.87,0.291l-1.165-1.742l-0.871-3.485l0.581-2.032l0.873-1.162l0.29,1.452l1.744,0.291L828.111,227.771zM798.17,226.029l3.197,2.322l-3.197,0.292l-1.162,2.031l0.292,2.614l-2.618,1.742v2.613L793.52,242l-0.581-0.871l-2.908,1.163l-1.161-1.743l-2.034-0.29l-1.163-0.872l-3.488,1.162l-0.871-1.452l-1.744,0.29l-2.328-0.29l-0.581-3.775l-1.163-0.871l-1.452-2.322l-0.292-2.323l0.292-2.613l1.452-1.743l0.584,1.743l2.033,1.741l1.744-0.581h1.744l1.453-1.16l1.454-0.291l2.615,0.581l2.036-0.581l1.452-3.774l1.163-0.872l0.871-3.193h3.198l2.325,0.58l-1.454,2.323l2.036,2.614L798.17,226.029zM765.034,246.937l-2.907,0.29l-2.325-2.321l-3.779-2.324l-1.162-1.743l-2.033-2.323l-1.165-2.033l-2.325-3.774l-2.326-2.323l-0.871-2.323l-0.873-2.032l-2.615-1.743l-1.454-2.322l-2.034-1.743l-2.908-2.903l-0.289-1.451h1.745l4.358,0.58l2.618,2.614l2.033,2.032l1.453,1.161l2.615,2.905h2.908l2.325,2.032l1.454,2.322l2.033,1.161l-0.871,2.323l1.454,0.871h0.872l0.581,2.033l0.873,1.451l2.034,0.291l1.452,1.742l-0.871,3.485V246.937z", - "IE" : "M456.62,82.869l0.579,2.032l-2.034,2.323l-4.942,1.743l-3.779,-0.581l2.036,-2.904l-1.454,-2.613l3.779,-2.323l2.033,-1.162l0.582,1.451l-0.582,1.454l1.745,0.000l-2.037,-0.580z", - "IL" : "M572.021,140.946l-0.293,0.870l-1.163,-0.289l-0.578,1.743l0.871,0.289l-0.871,0.581l0.000,0.581l1.160,-0.291l0.000,0.872l-1.160,4.645l-2.038,-4.935l0.873,-0.872l0.581,-1.451l0.584,-2.033l0.289,-0.582l0.289,0.000l0.872,0.000l0.291,-0.580l0.582,0.000l0.000,1.162l-0.289,0.290l0.000,0.000z", - "IN" : "M688.002,133.396l2.909,3.194l-0.293,2.324l1.163,1.160l0.000,1.453l-2.036,-0.291l0.873,2.904l2.615,1.742l3.781,2.034l-1.745,1.161l-1.163,2.613l2.908,1.162l2.614,1.161l3.490,1.742l3.779,0.291l1.453,1.452l2.325,0.290l3.197,0.581l2.326,0.000l0.291,-1.162l-0.291,-1.742l0.000,-1.161l1.744,-0.582l0.292,2.033l0.000,0.581l2.615,1.162l1.744,-0.581l2.326,0.290l2.326,0.000l0.000,-1.742l-1.163,-0.871l2.326,-0.290l2.615,-2.033l3.198,-1.742l2.033,0.580l2.035,-1.162l1.455,1.743l-1.161,1.162l3.194,0.290l0.000,1.162l-0.871,0.580l0.291,1.452l-2.034,-0.290l-3.489,1.742l0.000,1.742l-1.453,2.323l-0.292,1.162l-1.163,2.322l-2.033,-0.580l-0.290,2.904l-0.583,0.872l0.291,1.161l-1.162,0.581l-1.454,-4.356l-0.872,0.000l-0.581,1.742l-1.454,-1.452l0.872,-1.452l1.163,-0.289l1.454,-2.324l-1.743,-0.291l-2.327,0.000l-2.616,-0.291l-0.291,-2.032l-1.454,0.000l-2.034,-1.451l-1.163,2.032l2.034,1.451l-1.743,0.873l-0.582,1.160l1.744,0.582l-0.579,1.742l1.160,2.032l0.290,2.324l-0.290,1.162l-2.034,-0.291l-3.197,0.580l0.000,2.033l-1.455,1.742l-4.069,1.744l-2.904,3.484l-2.038,1.743l-2.906,1.742l0.000,1.161l-1.163,0.581l-2.615,1.161l-1.162,0.000l-0.874,2.323l0.582,3.484l0.000,2.324l-1.163,2.614l0.000,4.644l-1.454,0.000l-1.160,2.325l0.870,0.871l-2.615,0.581l-0.874,2.032l-1.163,0.581l-2.615,-2.323l-1.163,-4.067l-1.162,-2.613l-0.874,-1.451l-1.452,-2.613l-0.581,-3.485l-0.581,-1.742l-2.618,-3.775l-1.161,-5.227l-0.584,-3.485l0.000,-3.194l-0.581,-2.613l-4.068,1.451l-2.035,-0.290l-3.488,-3.194l1.454,-1.162l-0.873,-0.871l-3.198,-2.323l1.745,-2.033l6.106,0.000l-0.583,-2.324l-1.455,-1.451l-0.579,-2.032l-1.745,-1.162l3.197,-2.904l3.199,0.291l2.904,-2.904l1.745,-2.904l2.618,-2.614l0.000,-2.032l2.325,-1.743l-2.325,-1.161l-0.874,-2.032l-1.160,-2.324l1.453,-1.162l4.069,0.581l3.196,-0.290l-2.617,2.323z", - "IQ" : "M598.763,131.943l1.744,0.872l0.289,1.742l-1.452,0.871l-0.581,2.033l2.033,2.613l3.200,1.453l1.454,2.323l-0.292,1.742l0.872,0.000l0.000,1.742l1.454,1.452l-1.744,-0.290l-1.744,-0.291l-2.037,2.614l-5.230,0.000l-7.561,-5.517l-4.067,-2.032l-3.488,-0.873l-1.163,-3.193l6.103,-2.904l1.163,-3.195l-0.292,-2.032l1.454,-0.872l1.454,-1.742l1.164,-0.291l3.197,0.291l0.873,0.872l1.452,-0.581l-1.745,-3.193z", - "IR" : "M622.309,128.75l2.323,-0.582l2.036,-1.742l1.745,0.291l1.162,-0.581l2.034,0.290l2.907,1.452l2.325,0.290l3.200,2.324l2.034,0.000l0.289,2.323l-1.161,3.485l-0.873,2.032l1.163,0.291l-1.163,1.742l0.873,2.032l0.290,1.743l2.036,0.581l0.289,1.742l-2.615,2.323l1.453,1.452l1.162,1.742l2.617,1.162l0.000,2.613l1.453,0.291l0.290,1.452l-4.070,1.162l-1.161,3.193l-4.943,-0.580l-3.197,-0.871l-2.906,-0.291l-1.454,-3.194l-1.163,-0.581l-2.034,0.581l-2.908,1.162l-3.196,-0.872l-2.907,-2.033l-2.617,-0.870l-1.745,-2.614l-2.034,-3.774l-1.744,0.580l-1.744,-0.871l-0.871,1.161l-1.454,-1.452l0.000,-1.742l-0.872,0.000l0.292,-1.742l-1.454,-2.323l-3.200,-1.453l-2.033,-2.613l0.581,-2.033l1.452,-0.871l-0.289,-1.742l-1.744,-0.872l-1.745,-3.193l-1.452,-2.324l0.579,-0.871l-0.870,-2.904l1.743,-0.871l0.582,0.871l1.163,1.453l2.033,0.289l0.873,0.000l3.489,-2.032l0.872,-0.290l0.871,0.871l-0.871,1.451l1.743,1.453l0.582,-0.291l0.873,2.033l2.615,0.580l1.744,1.453l4.069,0.291l4.360,-0.581l-0.293,0.581z", - "IS" : "M433.944,48.313l-0.870,1.742l3.196,1.742l-3.488,2.033l-8.138,2.033l-2.326,0.581l-3.488,-0.581l-7.849,-0.871l2.906,-1.162l-6.103,-1.451l4.940,-0.291l0.000,-0.871l-5.811,-0.580l1.744,-2.033l4.067,-0.291l4.362,1.742l4.360,-1.451l3.198,0.871l4.649,-1.452l-4.651,-0.290z", - "IT" : "M516.5,125.846l-0.873,2.033l0.292,0.872l-0.582,1.451l-2.034-0.871l-1.454-0.291l-3.777-1.451l0.289-1.452l3.199,0.29l2.904-0.29L516.5,125.846zM499.059,117.715l1.743,1.742l-0.291,3.775l-1.452-0.291l-1.164,0.871l-0.872-0.58l-0.291-3.195l-0.579-1.742l1.452,0.291L499.059,117.715zM507.779,102.325l4.069,0.581l-0.289,1.452l0.581,1.161l-2.326-0.291l-2.035,0.872v1.452l-0.292,0.871l0.873,1.162l2.615,1.452l1.455,2.324l2.906,2.323h2.326l0.58,0.58l-0.872,0.582l2.617,0.871l2.036,0.871l2.324,1.451l0.291,0.581l-0.581,0.873l-1.455-1.453l-2.325-0.289l-1.163,1.742l2.036,1.16l-0.581,1.453h-0.873l-1.745,2.323l-0.87,0.291v-0.871l0.289-1.453l0.872-0.58l-1.161-1.742l-0.873-1.162l-1.161-0.58l-0.873-1.162l-1.744-0.29l-1.163-1.162l-2.034-0.291l-2.036-1.162l-2.615-1.741l-1.744-1.743l-0.872-2.614l-1.454-0.29l-2.325-0.872l-1.163,0.291l-1.743,1.162l-1.163,0.291l0.291-1.162l-1.454-0.291l-0.582-2.033l0.872-0.871l-0.872-1.162l0.291-0.871l1.165,0.581h1.16l1.744-0.871l0.291,0.29h1.453l0.583-1.162l2.034,0.29l1.163-0.29l0.289-1.162l1.745,0.291l0.291-0.58l2.615-0.292L507.779,102.325z", - "JM" : "M260.116,180.148l2.036,0.290l1.452,0.581l0.291,0.871l-1.743,0.000l-0.872,0.291l-1.454,-0.291l-1.744,-1.161l0.290,-0.581l1.164,-0.290l-0.580,-0.290z", - "JO" : "M571.728,141.816l0.293,-0.870l3.195,1.161l5.234,-2.903l1.163,3.193l-0.582,0.582l-5.522,1.451l2.905,2.614l-0.872,0.581l-0.581,0.871l-2.036,0.290l-0.581,1.161l-1.161,0.582l-3.196,-0.291l0.000,-0.291l1.160,-4.645l0.000,-0.872l0.581,-0.871l0.000,1.743z", - "JP" : "M844.39,137.17l0.289,0.871l-1.452,1.742l-1.163-1.161l-1.454,0.871l-0.58,1.452l-2.035-0.581l0.292-1.452l1.452-1.743l1.452,0.291l1.165-1.161L844.39,137.17zM861.832,128.75l-1.165,2.323l0.584,1.162l-1.455,2.033l-3.488,1.452h-4.94l-3.78,3.195l-1.742-1.162l-0.292-2.033l-4.651,0.582l-3.488,1.451h-3.198l2.909,2.032l-1.745,4.646l-1.743,1.162l-1.454-1.162l0.582-2.323l-1.745-0.871l-1.163-1.742l2.617-0.871l1.452-1.742l2.907-1.453l2.035-2.033l5.523-0.581l2.907,0.291l2.904-4.646l1.746,1.162l4.07-2.614l1.452-1.161l1.744-3.484l-0.292-2.904l1.164-1.742l2.906-0.581l1.454,3.774v2.324l-2.615,2.613V128.75zM869.969,109.584l1.744,0.58l2.036-1.162l0.58,2.904l-4.068,0.871l-2.326,2.613l-4.36-1.742l-1.453,2.904h-3.199l-0.29-2.613l1.454-2.033l2.906-0.291l0.873-3.775l0.581-2.032l3.488,2.613L869.969,109.584z", - "KE" : "M586.553,233.289l1.745,2.323l-2.034,1.162l-0.582,1.161l-1.163,0.000l-0.291,2.032l-0.872,1.161l-0.581,1.744l-1.162,0.871l-3.780,-2.615l-0.291,-1.742l-9.883,-5.517l-0.582,-0.289l0.000,-2.906l0.872,-1.161l1.164,-1.742l1.163,-2.033l-1.163,-3.194l-0.291,-1.452l-1.452,-1.742l1.743,-1.743l1.745,-1.741l1.452,0.290l0.000,1.742l0.873,0.871l2.033,0.000l3.489,2.323l0.874,0.000l0.580,0.000l0.580,0.290l2.036,0.290l0.581,-1.160l2.618,-1.162l1.161,0.870l1.743,0.000l-2.325,3.196l0.000,-9.873z", - "KG" : "M669.108,114.811l0.581,-1.162l1.745,-0.580l4.649,0.871l0.292,-1.452l1.745,-0.581l3.779,1.162l1.161,-0.291l4.361,0.000l4.068,0.291l1.455,0.871l1.744,0.581l-0.289,0.581l-4.362,1.451l-1.162,1.162l-3.490,0.290l-0.871,1.744l-2.906,-0.291l-2.036,0.580l-2.615,1.162l0.289,0.580l-0.579,0.871l-5.233,0.291l-3.488,-0.871l-2.908,0.290l0.291,-1.743l2.906,0.582l0.873,-0.871l2.326,0.289l3.488,-2.032l-3.199,-1.451l-2.034,0.580l-2.035,-0.871l2.326,-1.742l0.872,0.291z", - "KH" : "M758.638,201.637l-1.162,-1.453l-1.454,-2.613l-0.580,-3.485l1.741,-2.323l3.781,-0.581l2.326,0.581l2.326,0.872l1.160,-1.743l2.617,0.871l0.581,2.033l-0.289,3.194l-4.651,2.033l1.162,1.742l-2.906,0.290l-2.326,1.162l2.326,0.580z", - "KO" : "M531.032,115.392l-0.289,0.581l-0.292,0.000l-0.289,-1.162l-0.582,-0.290l-0.581,-0.581l0.581,-0.871l0.582,0.000l0.289,-0.871l0.581,-0.291l0.293,0.291l0.581,0.290l0.290,0.581l0.583,0.000l0.579,0.580l0.292,0.000l-0.292,0.580l-0.290,0.292l0.000,0.290l-0.581,0.000l1.455,-0.581z", - "KP" : "M833.343,114.229l0.292,0.582l-0.872,0.000l-1.164,0.872l-0.872,0.870l0.000,2.033l-1.452,0.581l-0.291,0.582l-1.163,0.580l-1.744,0.580l-1.163,0.582l-0.292,1.451l-0.289,0.291l1.163,0.290l1.452,1.161l-0.290,0.871l-1.162,0.000l-2.035,0.291l-0.874,1.161l-1.452,0.000l-1.454,-0.290l-0.289,0.290l-0.874,0.290l0.000,-0.580l-0.581,0.000l-0.871,-0.581l0.871,-1.161l0.581,-0.291l-0.291,-0.580l0.583,-1.453l0.000,-0.580l-1.744,-0.291l-1.162,-0.580l2.033,-1.742l3.198,-1.453l1.745,-2.032l1.453,0.871l2.325,0.000l-0.289,-1.452l4.067,-1.163l1.163,-1.451l-1.744,-1.451z", - "KR" : "M826.948,124.684l2.617,3.194l0.582,2.034l0.000,2.903l-1.163,1.742l-2.326,0.582l-2.325,0.870l-2.326,0.291l-0.292,-1.452l0.292,-2.033l-1.163,-2.903l2.036,-0.291l-1.745,-2.614l1.452,0.000l0.874,-1.161l2.035,-0.291l1.162,0.000l-0.290,0.871z", - "KW" : "M605.74,148.496l0.581,1.162l-0.291,0.580l0.871,2.323l-1.743,0.000l-0.873,-1.452l-2.326,-0.290l2.037,-2.614l-1.744,-0.291z", - "KZ" : "M669.108,114.811l-1.454,0.291l-3.779,2.033l-1.163,2.032l-1.163,0.000l-0.580,-1.452l-3.489,0.000l-0.581,-2.323l-1.453,0.000l0.290,-2.614l-3.196,-2.032l-4.944,0.290l-3.196,0.291l-2.618,-2.614l-2.324,-0.872l-4.071,-2.031l-0.580,-0.291l-6.976,1.742l0.000,10.164l-1.455,0.000l-1.744,-2.033l-2.034,-0.871l-3.199,0.581l-1.160,0.871l0.000,-0.581l0.582,-1.163l-0.582,-0.869l-3.197,-1.162l-1.165,-2.323l-1.453,-0.581l-0.291,-1.161l2.909,0.289l0.000,-2.032l2.324,-0.290l2.326,0.290l0.581,-2.614l-0.581,-1.742l-2.616,0.291l-2.326,-0.872l-3.196,1.452l-2.618,0.581l-1.452,-0.581l0.289,-1.452l-1.743,-1.742l-2.034,0.000l-2.327,-1.742l1.453,-2.323l-0.580,-0.290l2.036,-3.195l2.906,1.742l0.289,-2.032l5.814,-3.195l4.362,0.000l5.812,2.032l3.489,1.163l2.906,-1.163l4.360,-0.290l3.488,1.453l0.871,-0.872l3.781,0.291l0.581,-1.453l-4.362,-1.742l2.618,-1.451l-0.581,-0.582l2.617,-0.870l-2.036,-1.743l1.454,-1.160l10.172,-0.872l1.454,-0.582l6.976,-1.161l2.326,-1.161l4.942,0.580l0.872,2.905l2.906,-0.581l3.488,0.872l-0.290,1.451l2.618,0.000l6.974,-2.614l-0.871,0.872l3.488,2.033l6.104,6.968l1.453,-1.451l3.780,1.742l4.070,-0.872l1.455,0.581l1.160,1.452l2.034,0.581l1.163,1.162l3.488,-0.291l1.455,1.743l-2.034,1.742l-2.328,0.291l0.000,2.904l-1.744,1.162l-5.232,-0.873l-2.034,4.938l-1.453,0.580l-5.524,1.162l2.617,4.646l-2.033,0.580l0.289,1.743l-1.744,-0.581l-1.455,-0.871l-4.068,-0.291l-4.361,0.000l-1.161,0.291l-3.779,-1.162l-1.745,0.581l-0.292,1.452l-4.649,-0.871l-1.745,0.580l0.581,-1.162z", - "LA" : "M763.29,191.763l0.872,-1.451l0.291,-2.323l-2.327,-2.324l0.000,-2.613l-2.325,-2.323l-2.036,0.000l-0.582,0.871l-1.452,0.000l-0.871,-0.581l-2.907,1.742l0.000,-2.323l0.579,-2.904l-1.743,-0.289l-0.290,-1.744l-1.163,-0.580l0.581,-1.162l2.326,-1.742l0.289,0.581l1.455,0.000l-0.290,-2.904l1.453,-0.581l1.454,2.324l1.161,2.322l3.488,0.000l1.165,2.614l-1.747,0.580l-0.870,0.872l3.197,1.742l2.325,3.194l1.745,2.614l2.036,1.742l0.870,2.032l-0.581,2.614l-2.617,-0.871l-1.160,1.743l2.326,0.872z", - "LB" : "M572.31,139.494l-0.582,0.000l-0.291,0.580l-0.872,0.000l0.872,-2.323l1.454,-2.032l1.163,0.000l0.581,1.162l-1.452,1.161l0.873,-1.452z", - "LK" : "M699.047,210.348l-0.579,2.904l-1.165,0.581l-2.323,0.582l-1.455,-2.034l-0.292,-4.066l1.166,-4.356l2.033,1.454l1.162,2.032l-1.453,-2.903z", - "LR" : "M452.549,219.06l-0.873,0.000l-2.615,-1.453l-2.617,-2.032l-2.324,-1.452l-1.744,-1.742l0.580,-0.872l0.000,-0.871l1.454,-1.452l1.163,-1.451l0.581,0.000l0.872,-0.290l1.162,1.741l-0.290,1.162l0.582,0.581l0.581,0.000l0.582,-1.161l0.871,0.000l0.000,0.870l0.291,1.162l-0.582,1.452l0.582,0.581l0.871,0.290l1.162,1.161l0.293,1.162l-0.293,0.291l0.289,-2.323z", - "LS" : "M553.416,310.531l1.163,0.872l-0.873,1.451l-0.581,0.871l-1.454,0.292l-0.581,0.869l-0.871,0.291l-2.036,-2.032l1.454,-1.742l1.453,-1.163l1.163,-0.579l-1.163,-0.870z", - "LT" : "M536.265,81.417l-0.291,-0.582l0.582,-0.870l-1.454,-0.291l-2.906,-0.581l-0.580,-2.322l3.197,-0.871l4.649,0.290l2.618,-0.290l0.581,0.580l1.455,0.291l2.614,1.162l0.290,1.160l-2.326,1.162l-0.578,1.452l-2.908,0.872l-2.907,0.000l-0.582,-0.872l1.454,0.290z", - "LU" : "M490.338,93.032l0.579,0.581l0.000,1.452l-0.871,0.000l-0.581,-0.291l0.290,-1.451l-0.583,0.291z", - "LV" : "M531.616,76.771l0.290,-2.033l1.162,-1.742l2.616,-0.871l2.326,2.033l2.035,0.000l0.581,-2.033l2.325,-0.581l1.165,0.290l2.614,1.162l2.034,0.000l1.455,0.581l0.291,1.161l0.871,1.742l-2.906,1.162l-1.745,0.291l-2.614,-1.162l-1.455,-0.291l-0.581,-0.580l-2.618,0.290l-4.649,-0.290l3.197,-0.871z", - "LY" : "M514.755,167.951l-2.036,1.162l-1.452,-1.452l-4.361,-1.161l-1.452,-1.743l-2.035,-1.451l-1.163,0.580l-1.163,-1.451l0.000,-1.162l-1.744,-2.033l1.162,-1.161l-0.291,-1.743l0.291,-1.452l0.000,-1.451l0.291,-2.033l0.000,-1.453l-0.871,-2.322l1.162,-0.581l0.290,-1.162l-0.290,-1.161l2.034,-1.162l0.872,-0.870l1.164,-0.873l0.291,-2.032l3.195,0.872l1.165,0.000l2.326,0.290l3.486,1.161l1.456,2.614l2.325,0.581l4.067,1.161l2.907,1.162l1.165,-0.581l1.453,-1.452l-0.582,-2.033l0.874,-1.162l1.741,-1.451l2.036,-0.290l3.778,0.580l0.873,1.161l1.163,0.000l0.871,0.582l2.616,0.291l0.582,0.870l-0.871,1.452l0.289,1.162l-0.579,1.451l0.871,2.324l0.000,9.873l0.000,10.162l0.000,5.228l-3.199,0.291l0.000,0.870l-11.045,-5.227l-11.046,-5.226l2.616,-1.451z", - "MA" : "M459.526,132.525l1.743,1.161l2.616,0.000l2.615,0.581l1.164,0.000l1.163,1.742l0.291,1.742l0.871,2.905l0.582,0.580l-0.289,0.871l-3.782,0.582l-1.162,0.870l-1.744,0.291l0.000,2.032l-3.197,1.162l-1.162,1.452l-2.036,0.581l-2.906,0.581l-4.361,2.032l0.000,3.194l-0.581,0.000l0.292,1.452l-1.745,0.000l-0.872,0.871l-1.161,0.000l-1.165,-0.581l-2.324,0.291l-0.873,2.323l-0.872,0.000l-1.162,3.485l-4.069,3.194l-0.874,3.775l-1.162,1.162l-0.290,0.870l-6.107,0.291l0.000,-1.161l1.165,-0.872l0.871,-1.451l-0.291,-0.872l1.164,-2.033l1.454,-1.742l0.871,-0.291l0.873,-1.742l0.000,-1.451l0.870,-1.742l2.036,-0.872l1.745,-2.904l1.452,-1.162l2.326,-0.289l2.326,-1.743l1.452,-0.871l2.036,-2.323l-0.582,-3.194l1.163,-2.323l0.290,-1.452l1.744,-2.033l2.906,-1.162l2.037,-1.162l1.745,-2.903l0.871,-1.742l-2.035,0.000z", - "MD" : "M547.02,98.259l0.584,-0.290l2.033,-0.290l2.034,0.870l1.162,0.000l1.166,0.872l-0.293,0.871l1.164,0.580l0.290,1.162l0.873,0.580l0.000,0.291l0.290,0.291l-0.581,0.290l-1.743,0.000l-0.293,-0.581l-0.581,0.291l0.291,0.580l-0.872,0.871l-0.291,0.872l-0.872,0.291l-0.291,-1.163l0.291,-1.161l-0.291,-1.161l-1.453,-1.742l-0.873,-1.162l-0.871,-0.872l0.873,0.290z", - "ME" : "M528.417,113.94l-0.292,-0.291l-1.163,1.162l0.000,0.872l-0.581,0.000l-0.579,-0.872l-1.163,-0.582l0.289,-0.580l0.291,-1.451l0.872,-0.581l0.582,-0.290l0.873,0.290l0.290,0.581l0.872,0.290l1.162,0.581l-0.290,0.000l-0.581,0.871l0.582,0.000z", - "MG" : "M610.099,265.23l0.873,1.163l0.582,1.742l0.579,3.485l0.584,1.160l-0.293,1.454l-0.581,0.579l-0.871,-1.451l-0.583,0.872l0.583,2.032l-0.291,1.160l-0.582,0.581l-0.292,2.325l-1.162,3.194l-1.161,3.775l-1.744,5.226l-1.162,3.775l-1.165,3.195l-2.325,0.581l-2.325,1.162l-1.455,-0.582l-2.324,-0.871l-0.872,-1.453l0.000,-2.613l-1.163,-2.032l0.000,-2.033l0.292,-2.032l1.452,-0.582l0.000,-0.871l1.163,-2.032l0.289,-1.742l-0.579,-1.453l-0.582,-1.451l-0.291,-2.614l1.163,-1.743l0.289,-1.742l1.455,0.000l1.452,-0.581l0.872,-0.579l1.454,0.000l1.455,-1.454l2.325,-1.740l0.872,-1.454l-0.580,-1.160l1.161,0.289l1.744,-1.743l0.000,-1.742l0.873,-1.160l-0.871,-1.160z", - "MK" : "M530.451,115.973l0.292,0.000l0.289,-0.581l1.455,-0.581l0.581,0.000l1.161,-0.290l1.165,0.000l1.452,0.871l0.000,1.743l-0.290,0.290l-0.582,0.290l-1.452,0.000l-1.164,0.580l-1.742,0.291l-1.165,-0.581l-0.289,-1.161l-0.289,0.871z", - "ML" : "M440.34,190.602l0.871,-0.290l0.583,-1.743l0.872,0.000l1.744,0.871l1.455,-0.580l1.161,0.000l0.581,-0.581l11.046,0.000l0.582,-2.032l-0.582,-0.291l-1.454,-11.906l-1.161,-11.615l4.070,-0.291l9.301,6.098l9.301,6.098l0.873,1.161l1.454,0.872l1.452,0.291l0.000,1.742l2.906,0.000l0.000,6.097l-1.452,2.034l-0.291,1.452l-2.326,0.580l-3.778,0.291l-0.872,0.870l-1.744,0.291l-2.035,0.000l-0.582,-0.581l-1.452,0.290l-2.617,1.162l-0.582,0.871l-2.035,1.161l-0.291,0.872l-1.163,0.581l-1.452,-0.581l-0.872,0.871l-0.291,1.742l-2.034,2.324l0.000,0.871l-0.873,1.161l0.290,1.741l-1.161,0.292l-0.583,0.290l-0.579,-1.162l-0.582,0.291l-0.581,0.000l-0.582,0.871l-2.037,0.000l-0.870,-0.582l-0.292,0.292l-0.871,-0.581l0.290,-0.871l-0.581,-0.291l-0.582,0.291l0.291,-1.162l0.582,-0.580l-1.162,-1.162l-0.292,-0.871l-0.582,-0.581l-0.581,0.000l-0.871,0.290l-0.873,0.582l-0.579,0.580l-1.165,-0.291l-0.871,-0.580l-0.582,-0.291l-0.581,0.582l-0.290,0.000l-0.293,-1.162l0.000,-0.871l0.000,-1.162l-1.162,-0.581l-0.581,-1.742l0.000,1.742z", - "MM" : "M747.882,175.501l-1.743,1.163l-2.034,0.000l-1.163,3.194l-1.165,0.290l1.455,2.613l1.744,1.742l1.163,2.034l-1.163,2.323l-0.871,0.580l0.582,1.162l1.741,2.322l0.582,1.453l-0.290,1.452l1.162,2.322l-1.454,2.614l-1.452,2.903l-0.289,-2.031l0.870,-2.033l-0.870,-1.742l0.289,-2.904l-1.163,-1.453l-0.871,-3.484l-0.581,-3.484l-1.164,-2.034l-1.743,1.162l-3.200,2.033l-1.454,-0.291l-1.741,-0.580l0.870,-3.486l-0.579,-2.612l-2.036,-2.904l0.290,-1.161l-1.744,-0.291l-1.743,-2.323l-0.291,-2.033l0.871,0.291l0.292,-2.033l1.162,-0.581l-0.291,-1.161l0.583,-0.872l0.290,-2.904l2.033,0.580l1.163,-2.322l0.292,-1.162l1.453,-2.323l0.000,-1.742l3.489,-1.742l2.034,0.290l-0.291,-1.452l0.871,-0.580l0.000,-1.162l1.455,0.000l0.873,1.452l1.161,0.580l0.291,2.324l-0.291,2.032l-2.615,2.323l-0.290,3.484l2.905,-0.580l0.873,2.614l1.743,0.580l-0.872,2.033l2.035,1.162l1.163,0.580l2.035,-0.870l0.000,1.161l-2.326,1.742l-0.581,1.162l1.454,-0.580z", - "MN" : "M715.327,95.356l2.907,-0.582l5.232,-2.323l4.069,-1.161l2.616,0.871l2.908,0.000l1.741,1.162l2.617,0.290l4.071,0.581l2.617,-2.033l-1.163,-1.453l2.907,-2.902l3.196,1.161l2.327,0.290l3.488,0.580l0.290,2.324l4.069,1.162l2.617,-0.582l3.487,-0.290l2.618,0.290l2.615,1.162l1.743,1.453l2.616,0.000l3.490,0.581l2.616,-0.872l3.488,-0.291l4.070,-2.033l1.745,0.291l1.452,0.871l3.197,-0.290l-1.453,2.324l-1.744,2.612l0.581,1.162l1.455,-0.290l2.904,0.290l2.036,-0.872l2.327,0.872l2.325,1.742l-0.291,1.161l-2.034,-0.289l-4.071,0.289l-2.035,0.872l-2.034,1.742l-4.069,1.162l-2.909,1.451l-2.614,-0.580l-1.745,-0.290l-1.454,1.742l0.873,1.162l0.581,0.871l-2.033,0.871l-1.745,1.452l-3.199,0.871l-4.359,0.289l-4.361,0.873l-3.197,1.451l-1.163,-0.870l-3.489,0.000l-4.069,-1.743l-2.615,-0.291l-3.781,0.291l-5.522,-0.580l-3.196,0.000l-1.456,-1.453l-1.163,-2.613l-1.743,-0.291l-3.488,-1.742l-3.778,-0.290l-3.198,-0.581l-0.873,-1.162l0.873,-3.194l-1.746,-2.323l-4.067,-0.872l-2.326,-1.451l0.581,2.032z", - "MR" : "M440.34,190.602l-2.034,-1.742l-1.454,-2.033l-2.034,-0.580l-1.163,-0.872l-1.454,0.000l-1.452,0.581l-1.456,-0.291l-0.871,0.872l-0.290,-1.453l0.871,-1.451l0.290,-2.614l-0.290,-2.613l-0.291,-1.453l0.291,-1.161l-0.871,-1.452l-1.454,-1.161l0.582,-0.871l11.046,0.000l-0.581,-4.066l0.581,-1.451l2.615,0.000l0.000,-7.261l9.011,0.290l0.000,-4.355l10.176,6.679l-4.070,0.291l1.161,11.615l1.454,11.906l0.582,0.291l-0.582,2.032l-11.046,0.000l-0.581,0.581l-1.161,0.000l-1.455,0.580l-1.744,-0.871l-0.872,0.000l-0.583,1.743l0.871,-0.290z", - "MW" : "M568.822,262.618l-0.582,2.032l0.582,3.776l1.165,-0.291l0.871,0.871l1.163,2.034l0.289,3.483l-1.163,0.581l-0.871,2.032l-1.744,-1.742l-0.292,-2.032l0.582,-1.161l-0.290,-1.161l-0.873,-0.582l-0.871,0.291l-1.455,-1.454l-1.452,-0.580l0.580,-2.612l0.872,-0.873l-0.290,-2.323l0.290,-2.322l0.582,-0.582l-0.582,-2.322l-1.452,-1.452l2.907,0.581l0.289,0.871l1.163,1.161l-0.582,-3.776z", - "MX" : "M206.341,159.82l-1.163,2.324l-0.291,2.033l-0.290,3.774l-0.291,1.162l0.581,1.743l0.872,1.161l0.582,2.033l1.744,2.323l0.581,1.452l1.163,1.451l2.906,0.582l1.163,1.161l2.326,-0.871l2.034,-0.290l2.035,-0.291l1.745,-0.581l1.743,-1.161l0.872,-1.452l0.000,-2.323l0.582,-0.871l2.034,-0.581l2.908,-0.872l2.324,0.291l1.745,-0.291l0.582,0.582l0.000,1.161l-1.454,1.742l-0.873,1.742l0.582,0.581l-0.291,1.162l-0.872,2.033l-0.582,-0.581l-0.581,0.000l-0.580,0.000l-0.872,1.742l-0.582,-0.580l-0.290,0.290l0.000,0.290l-2.617,0.000l-2.615,0.000l0.000,1.743l-1.163,0.000l0.872,0.870l1.162,0.581l0.291,0.581l0.582,0.291l-0.292,0.871l-3.487,0.000l-1.164,2.033l0.291,0.580l-0.291,0.581l0.000,0.871l-3.197,-2.903l-1.454,-0.872l-2.325,-0.870l-1.453,0.290l-2.325,1.161l-1.163,0.291l-2.035,-0.872l-2.035,-0.580l-2.617,-1.162l-2.034,-0.291l-3.198,-1.451l-2.325,-1.161l-0.582,-0.872l-1.453,0.000l-2.906,-0.871l-1.163,-1.453l-2.907,-1.451l-1.454,-1.742l-0.581,-1.453l0.872,-0.290l-0.291,-0.581l0.582,-0.871l0.000,-0.871l-0.873,-1.161l-0.290,-1.162l-0.872,-1.452l-2.325,-2.614l-2.908,-2.322l-1.453,-1.453l-2.325,-1.161l-0.290,-0.872l0.290,-1.451l-1.454,-0.871l-1.453,-1.162l-0.872,-2.032l-1.454,-0.291l-1.453,-1.452l-1.454,-1.161l0.000,-0.871l-1.453,-2.033l-1.162,-2.324l0.290,-0.870l-2.035,-1.162l-0.872,0.000l-1.744,-0.581l-0.290,1.162l0.290,1.161l0.290,2.034l0.872,1.161l2.036,2.032l0.581,0.581l0.291,0.290l0.581,0.872l0.291,0.000l0.581,1.742l0.872,0.580l0.581,1.162l1.745,1.162l0.872,2.613l0.872,1.162l0.872,1.452l0.000,1.452l1.453,0.000l0.872,1.160l1.164,1.454l0.000,0.290l-1.164,1.161l-0.581,0.000l-0.581,-1.742l-2.035,-1.452l-1.744,-1.453l-1.454,-0.580l0.000,-2.033l-0.291,-1.452l-1.453,-0.870l-1.744,-1.453l-0.581,0.581l-0.582,-0.871l-1.743,-0.581l-1.745,-1.742l0.291,0.000l1.163,0.000l1.162,-0.872l0.000,-1.451l-2.034,-1.742l-1.744,-0.871l-0.873,-1.742l-1.162,-1.744l-1.163,-2.322l-1.163,-2.323l3.198,-0.291l3.487,-0.290l-0.290,0.581l4.070,1.452l6.395,1.742l5.232,0.000l2.326,0.000l0.000,-1.162l4.650,0.000l1.163,1.162l1.453,0.871l1.454,1.162l0.872,1.451l0.872,1.453l1.454,0.871l2.325,0.871l1.744,-2.323l2.035,0.000l2.034,1.161l1.454,1.742l0.872,1.742l1.744,1.452l0.582,2.033l0.581,1.162l2.326,0.871l1.744,0.580l-1.163,0.000z", - "MY" : "M751.953,213.833l0.29,1.451l1.744-0.289l0.873-1.162l0.582,0.29l1.741,1.743l1.165,1.741l0.29,1.743l-0.29,1.452v0.87l0.29,1.453l0.871,0.871l1.162,2.322v1.162h-2.033l-2.616-2.033l-3.195-2.032l-0.295-1.452l-1.452-1.743l-0.581-2.322l-0.871-1.452l0.289-2.031l-0.58-1.162l0.291-0.582L751.953,213.833zM800.205,218.769l-2.034,0.871l-2.325-0.58h-3.198l-0.871,3.193l-1.163,0.872l-1.452,3.774l-2.036,0.581l-2.615-0.581l-1.454,0.291l-1.453,1.16h-1.744l-1.744,0.581l-2.033-1.741l-0.584-1.743l2.036,0.871l2.325-0.581l0.581-2.322l1.163-0.29l3.197-0.581l2.036-2.324l1.162-1.741l1.453,1.451l0.58-0.87h1.163l0.291-1.743v-1.451l2.327-1.743l1.161-2.322h1.162l1.455,1.452v1.162l2.034,0.869l2.325,0.872l-0.29,0.872l-1.744,0.289L800.205,218.769z", - "MZ" : "M568.822,262.618l2.036,-0.292l3.486,0.872l0.581,-0.291l2.036,-0.289l0.872,-0.581l1.746,0.000l2.907,-1.162l2.323,-1.452l0.292,1.162l0.000,2.613l0.289,2.614l0.000,4.064l0.584,1.453l-0.873,2.033l-0.873,1.742l-1.742,1.742l-2.618,1.161l-3.199,1.163l-2.905,3.194l-1.163,0.290l-2.036,2.033l-1.162,0.580l0.000,2.034l1.162,2.032l0.582,1.741l0.000,0.874l0.581,-0.292l-0.291,2.614l-0.290,1.451l0.581,0.290l-0.291,1.162l-1.161,1.161l-2.327,0.873l-3.198,1.451l-1.452,1.162l0.289,1.161l0.873,0.000l-0.291,1.452l-2.034,0.000l-0.291,-1.162l-0.580,-1.161l0.000,-1.162l0.290,-2.904l-0.582,-2.033l-1.452,-3.774l2.904,-3.195l0.874,-2.033l0.289,-0.290l0.293,-1.452l-0.293,-0.870l0.000,-2.033l0.582,-2.032l0.000,-3.486l-1.452,-0.871l-1.163,-0.289l-0.582,-0.582l-1.452,-0.581l-2.325,0.000l0.000,-0.870l-0.292,-2.033l8.429,-2.325l1.455,1.454l0.871,-0.291l0.873,0.582l0.290,1.161l-0.582,1.161l0.292,2.032l1.744,1.742l0.871,-2.032l1.163,-0.581l-0.289,-3.483l-1.163,-2.034l-0.871,-0.871l-1.165,0.291l-0.582,-3.776l-0.582,2.032z", - "NA" : "M518.825,309.661l-2.036,-2.325l-1.163,-2.033l-0.579,-2.613l-0.584,-2.032l-1.161,-4.065l0.000,-3.485l-0.291,-1.452l-1.163,-1.162l-1.454,-2.034l-1.452,-3.483l-0.582,-1.743l-2.034,-2.613l-0.291,-2.033l1.452,-0.581l1.455,-0.581l1.743,0.292l1.745,1.161l0.581,-0.291l11.047,0.000l2.033,1.162l6.396,0.582l5.232,-1.162l2.326,-0.582l1.745,0.000l0.871,0.582l0.290,0.289l-1.743,0.582l-0.874,0.000l-1.744,1.162l-0.871,-1.162l-4.361,0.871l-2.033,0.291l0.000,9.582l-2.908,0.289l0.000,7.843l0.000,10.163l-2.326,1.451l-1.452,0.290l-1.744,-0.581l-1.162,-0.290l-0.582,-1.162l-1.163,-0.580l1.163,-1.453z", - "NC" : "M930.142,289.042l2.325,1.452l1.452,1.454l-1.162,0.579l-1.453,-0.871l-2.036,-1.162l-1.744,-1.452l-1.742,-1.741l-0.582,-1.162l1.161,0.000l1.745,1.162l1.162,0.870l-0.874,-0.871z", - "NCY" : "M563.881,134.267l0.289,0.000l0.291,-0.581l2.035,0.000l2.326,-0.871l-1.745,1.162l0.293,0.580l-0.293,0.000l-0.581,0.000l-0.581,0.000l-0.290,-0.290l-0.582,0.000l-0.582,0.290l0.580,0.290z", - "NE" : "M479.583,198.151l0.291,-2.032l-3.198,-0.581l-0.291,-1.161l-1.453,-2.033l-0.292,-1.162l0.292,-1.161l1.744,-0.291l0.872,-0.870l3.778,-0.291l2.326,-0.580l0.291,-1.452l1.452,-2.034l0.000,-6.097l4.070,-1.453l7.849,-5.227l9.592,-5.226l4.361,1.161l1.452,1.452l2.036,-1.162l0.581,4.357l1.164,0.871l0.000,0.871l1.163,0.871l-0.581,1.162l-1.164,5.517l-0.292,3.484l-3.486,2.614l-1.165,3.775l1.165,0.871l0.000,1.742l1.742,0.291l-0.289,1.161l-0.582,0.291l-0.292,0.871l-0.289,0.000l-2.036,-2.904l-0.580,-0.291l-2.327,1.453l-2.033,-0.581l-1.455,-0.291l-0.872,0.291l-1.453,0.000l-1.743,1.161l-1.455,0.000l-3.196,-1.161l-1.452,0.581l-1.165,0.000l-1.163,-1.162l-2.617,-0.872l-3.195,0.291l-0.582,0.581l-0.292,1.452l-0.871,1.161l-0.291,2.324l-2.034,-1.453l-0.874,0.000l1.161,-0.871z", - "NG" : "M497.023,217.898l-2.615,0.871l-1.164,0.000l-1.161,0.581l-2.037,0.000l-1.452,-1.743l-0.873,-2.032l-2.033,-1.742l-2.036,0.000l-2.615,0.000l0.289,-4.647l0.000,-1.741l0.581,-1.743l0.582,-0.871l1.454,-1.452l-0.291,-0.873l0.580,-1.160l-0.580,-1.453l0.000,-1.160l0.291,-2.324l0.871,-1.161l0.292,-1.452l0.582,-0.581l3.195,-0.291l2.617,0.872l1.163,1.162l1.165,0.000l1.452,-0.581l3.196,1.161l1.455,0.000l1.743,-1.161l1.453,0.000l0.872,-0.291l1.455,0.291l2.033,0.581l2.327,-1.453l0.580,0.291l2.036,2.904l0.289,0.000l1.163,0.871l-0.289,0.580l0.000,0.872l-2.326,2.323l-0.873,1.742l-0.289,1.452l-0.582,0.582l-0.581,1.742l-1.455,1.161l-0.581,1.452l-0.580,1.161l-0.291,1.162l-1.744,0.870l-1.746,-1.161l-0.871,0.000l-1.743,1.743l-0.872,0.000l-1.164,2.614l0.872,-2.032z", - "NI" : "M237.734,200.475l-0.872,-0.871l-1.163,-1.162l-0.581,-0.871l-1.163,-0.871l-1.454,-1.162l0.291,-0.580l0.291,0.580l0.291,-0.290l0.872,0.000l0.291,-0.871l0.581,0.000l-0.290,-1.162l0.871,-0.291l0.582,0.291l0.581,-0.871l0.581,0.580l0.291,-0.289l0.581,-0.291l1.163,-0.871l0.000,-0.581l0.291,0.000l0.291,-0.580l0.291,0.000l0.290,0.290l0.582,0.000l0.581,-0.290l0.872,0.000l0.872,-0.291l0.291,-0.291l1.162,0.000l-0.291,0.291l-0.290,0.581l0.290,0.871l-0.582,1.162l-0.289,0.870l0.000,1.453l0.000,0.580l0.289,1.162l-0.580,0.290l-0.291,1.161l0.291,0.872l-0.581,0.581l0.000,0.871l0.581,0.290l-0.581,0.581l-0.872,0.000l-0.583,-0.581l-0.871,-0.290l-0.581,0.290l-1.745,-0.581l0.581,-0.291z", - "NL" : "M490.628,83.74l2.035,0.000l0.581,1.161l-0.581,2.323l-0.871,1.162l-1.454,0.000l0.290,2.904l-1.452,-0.582l-1.745,-1.451l-2.617,0.580l-2.034,0.000l1.452,-0.870l2.618,-4.066l-3.778,1.161z", - "NO" : "M551.381,35.246l8.43,2.032l-3.488,0.582l3.198,1.742l-4.942,1.161l-2.034,0.29l1.161-2.032l-3.486-1.162l-4.362,1.162l-1.452,2.032l-2.615,1.162l-2.907-0.581h-3.488l-3.198-1.452l-1.453,0.581l-1.744,0.29l-0.582,1.743l-5.231-0.291l-0.582,1.452h-2.615l-1.745,2.033l-2.906,2.903l-4.361,3.775l1.165,1.162l-0.873,0.872h-2.907l-1.744,2.613l0.29,3.775l1.743,1.162l-1.162,3.484l-2.033,1.742l-1.455,1.742l-1.742-1.742l-5.524,3.194l-3.488,0.582l-3.778-1.452l-1.163-2.905l-0.871-6.387l2.615-1.743l7.268-2.323l5.523-2.904l4.941-3.774l6.685-5.228l4.651-2.033l7.559-3.484l5.813-1.162h4.651l4.069-2.324l5.231,0.291L551.381,35.246zM541.79,16.951l-6.105,1.162l-4.941-0.87l2.036-0.582l-1.747-0.872l5.814-0.58l0.873,1.161L541.79,16.951zM524.058,11.724l9.01,2.033l-6.977,1.162l-1.452,2.032l-2.325,0.581l-1.455,2.324h-3.196l-6.104-1.743l2.615-0.87l-4.069-0.873l-5.523-2.323l-2.036-2.033l7.56-1.162l1.454,1.162l3.777-0.291l1.163-0.871h4.07L524.058,11.724zM543.823,9.692l5.522,1.161l-4.358,1.452l-7.849,0.29l-8.14-0.581l-0.582-0.58h-3.777l-3.199-1.453l8.722-0.58l3.778,0.58l2.906-0.871L543.823,9.692z", - "NP" : "M716.198,154.304l0.000,1.161l0.291,1.742l-0.291,1.162l-2.326,0.000l-3.197,-0.581l-2.325,-0.290l-1.453,-1.452l-3.779,-0.291l-3.490,-1.742l-2.614,-1.161l-2.908,-1.162l1.163,-2.613l1.745,-1.161l1.162,-0.582l2.326,0.871l2.616,1.742l1.454,0.291l1.162,1.452l2.034,0.581l2.326,1.162l2.906,0.580l-3.198,-0.291z", - "NZ" : "M949.907,343.345l0.873,1.161l1.745-1.161l0.87,1.161v1.161l-0.87,1.452l-2.036,2.033l-1.163,1.161l0.873,1.162h-2.034l-2.327,1.162l-0.871,1.74l-1.455,2.904l-2.323,1.161l-1.165,0.871l-2.615-0.289l-1.742-0.872h-3.198l-0.292-1.162l1.453-2.033l3.49-2.613l1.744-0.58l2.034-1.16l2.325-1.452l1.744-1.453l1.162-2.032l0.872-0.58l0.58-1.452l1.745-1.451L949.907,343.345zM954.559,330.277l1.743,2.904l0.292-1.743l1.16,0.58l0.293,2.324l2.324,0.872h1.745l1.743-0.872l1.453,0.289l-0.871,2.326l-0.873,1.74h-2.033l-0.582,0.581v1.452l-0.289,0.291l-1.165,1.452l-1.163,2.032l-2.325,1.161l-0.29-0.87l-1.162-0.291l1.452-2.322l-0.871-1.453l-2.907-1.16v-0.873l2.035-1.159l0.58-2.034l-0.289-1.743l-1.164-1.743l0.292-0.58l-1.454-1.161l-2.034-2.323l-1.162-2.032l0.87-0.291l1.455,1.453l2.325,0.87L954.559,330.277z", - "OM" : "M635.678,172.888l-0.871,1.742h-1.163l-0.58,0.581l-0.582,1.452l0.29,1.742l-0.29,0.581l-1.163-0.29l-1.744,1.162l-0.291,1.452l-0.58,0.581h-1.743l-1.165,0.582v1.162l-1.163,0.581l-1.452-0.291l-2.034,1.162h-1.163l-0.873-1.743l-2.325-4.645l8.431-2.613l1.745-5.519l-1.165-2.032v-1.162l0.873-1.162v-1.161l1.162-0.581l-0.581-0.291l0.289-1.742h1.456l1.161,1.742l1.745,1.161l2.036,0.291l1.45,0.581l1.165,1.452l0.871,0.872l0.872,0.58v0.582l-0.872,1.451l-0.582,0.872L635.678,172.888zM628.995,159.82l-0.291,0.291l-0.583-0.871l0.874-0.872l0.289,0.291L628.995,159.82z", - "PA" : "M259.244,211.219l-0.872,-0.871l-0.580,-1.452l0.872,-0.871l-0.872,-0.290l-0.582,-0.871l-1.163,-0.581l-1.162,0.000l-0.582,1.162l-1.162,0.580l-0.582,0.000l-0.291,0.581l1.163,1.451l-0.581,0.581l-0.582,0.291l-1.163,0.290l-0.581,-1.742l-0.291,0.291l-0.872,0.000l-0.581,-1.162l-1.163,-0.291l-0.580,-0.290l-1.164,0.000l-0.291,0.581l-0.290,-0.291l0.290,-0.580l0.291,-0.582l-0.291,-0.289l0.583,-0.581l-0.583,-0.291l0.000,-1.161l0.872,-0.291l1.163,1.162l0.000,0.581l0.872,0.000l0.291,-0.291l0.872,0.872l1.163,-0.291l1.163,-0.581l1.744,-0.579l0.872,-0.873l1.744,0.000l-0.291,0.291l1.745,0.291l1.163,0.291l0.871,0.870l0.872,0.870l-0.290,0.292l0.872,1.741l-0.582,0.871l-0.872,-0.289l0.582,-1.451z", - "PE" : "M282.208,279.17l-0.872,1.451l-1.163,0.872l-2.905,-1.743l-0.292,-1.162l-5.232,-2.613l-4.942,-3.195l-2.325,-1.451l-1.163,-2.323l0.581,-0.871l-2.326,-3.485l-2.905,-5.227l-2.326,-5.517l-1.163,-1.161l-0.872,-2.033l-2.325,-1.743l-1.745,-1.161l0.872,-1.162l-1.453,-2.613l0.872,-2.033l2.326,-1.742l0.291,1.160l-0.873,0.582l0.000,1.162l1.163,-0.290l1.163,0.290l1.162,1.451l1.454,-1.162l0.582,-1.742l1.744,-2.613l3.196,-0.871l3.198,-2.904l0.872,-1.741l-0.581,-2.324l0.872,-0.291l1.744,1.452l0.872,1.163l1.163,0.870l1.744,2.903l2.035,0.291l1.453,-0.870l1.164,0.579l1.452,-0.290l2.326,1.452l-1.744,2.613l0.582,0.290l1.452,1.454l-2.324,-0.290l-0.583,0.580l-2.033,0.289l-3.198,2.034l-0.291,1.161l-0.581,1.162l0.290,1.451l-1.744,0.581l0.000,1.162l-0.872,0.581l1.163,2.614l1.744,1.451l-0.581,1.451l1.744,0.000l0.872,1.453l2.616,0.000l2.326,-1.453l-0.292,4.066l1.163,0.292l1.744,-0.292l2.326,4.355l-0.582,0.873l-0.290,2.033l0.000,2.323l-1.163,1.452l0.582,0.872l-0.582,0.869l1.163,2.324l1.745,-2.904z", - "PG" : "M902.817,249.55l-0.873,0.29l-1.163-0.871l-1.162-1.742l-0.581-2.032l0.581-0.289l0.29,0.579l0.583,0.872l1.452,1.741l1.163,0.871L902.817,249.55zM892.063,246.065l-1.455,0.292l-0.29,0.58l-1.454,0.871l-1.452,0.582h-1.452l-2.328-0.872l-1.453-0.872v-0.871l2.616,0.582l1.454-0.292l0.289-1.159l0.582-0.293l0.292,1.452h1.452l0.873-1.159l1.452-0.873l-0.289-1.741h1.741l0.584,0.58l-0.291,1.452L892.063,246.065zM878.982,251.292l2.326,1.742l1.741,2.904h1.745v1.16l2.035,0.582l-0.87,0.291l2.904,1.16l-0.29,0.871l-1.744,0.292l-0.87-0.872l-2.328-0.291l-2.616-0.29l-2.325-1.743l-1.452-1.451l-1.454-2.613l-3.488-1.161l-2.326,0.871l-1.744,0.871l0.292,2.032l-2.034,0.871l-1.744-0.29l-2.617-0.29l-0.29-9.002v-8.712l4.94,1.742l4.941,1.451l2.036,1.453l1.452,1.452l0.292,1.741l4.649,1.743l0.583,1.451l-2.328,0.291L878.982,251.292zM895.259,243.451l-0.873,0.582l-0.582-1.741l-0.579-0.873l-1.162-0.87l-1.455-1.162l-2.034-0.871l0.579-0.58l1.455,0.58l1.163,0.581l1.163,0.871l0.87,1.161l1.165,0.871L895.259,243.451z", - "PH" : "M821.715,207.735l0.292,2.033v1.451l-0.872,2.322l-0.871-2.612l-1.454,1.452l0.871,2.033l-0.871,1.16l-3.199-1.452l-0.581-2.032l0.874-1.452l-1.745-1.161l-0.873,1.161l-1.452-0.29l-2.034,1.742l-0.292-0.871l0.871-2.323l1.744-0.871l1.455-0.872l1.163,1.162l2.035-0.87l0.29-1.162h2.033v-2.323l2.036,1.453l0.29,1.451L821.715,207.735zM815.03,202.798l-0.871,0.87l-0.873,1.744l-0.871,0.579l-1.744-1.741l0.582-0.871l0.581-0.581l0.289-1.743l1.455-0.29l-0.292,2.033l2.036-2.614L815.03,202.798zM799.916,205.413l-3.488,2.612l1.163-2.033l2.034-1.741l1.743-1.744l1.454-2.902l0.291,2.322l-1.745,1.453L799.916,205.413zM809.216,198.151l1.743,0.872h1.745v1.161l-1.452,1.162l-1.745,0.871v-1.162l0.292-1.451L809.216,198.151zM819.099,197.571l0.874,2.904l-2.036-0.582v0.872l0.581,1.741l-1.162,0.582l-0.29-2.033h-0.584l-0.578-1.742l1.743,0.291v-1.162l-1.743-2.033h2.614L819.099,197.571zM808.344,194.958l-0.873,2.323l-1.161-1.162l-1.454-2.323l2.615,0.291L808.344,194.958zM807.764,180.148l1.743,0.581l0.871-0.581v0.581l-0.289,1.162l0.87,2.033l-0.581,2.324l-1.744,0.87l-0.29,2.323l0.582,2.033l1.452,0.29l1.165-0.29l3.486,1.451l-0.289,1.743l0.87,0.581l-0.289,1.161l-2.036-1.161l-1.163-1.452l-0.579,0.871l-1.744-1.743l-2.617,0.581l-1.454-0.581l0.291-1.162l0.873-0.871l-0.873-0.58l-0.291,1.162l-1.453-1.743l-0.29-1.161l-0.291-2.613l1.162,0.871l0.292-4.355l0.871-2.324H807.764z", - "PK" : "M680.735,128.75l2.036,1.451l0.870,2.033l4.361,1.162l-2.617,2.323l-3.196,0.290l-4.069,-0.581l-1.453,1.162l1.160,2.324l0.874,2.032l2.325,1.161l-2.325,1.743l0.000,2.032l-2.618,2.614l-1.745,2.904l-2.904,2.904l-3.199,-0.291l-3.197,2.904l1.745,1.162l0.579,2.032l1.455,1.451l0.583,2.324l-6.106,0.000l-1.745,2.033l-2.033,-0.871l-0.873,-2.033l-2.034,-2.033l-5.234,0.580l-4.360,0.000l-4.068,0.291l1.161,-3.193l4.070,-1.162l-0.290,-1.452l-1.453,-0.291l0.000,-2.613l-2.617,-1.162l-1.162,-1.742l-1.453,-1.452l4.649,1.452l2.907,-0.291l1.455,0.291l0.581,-0.580l2.035,0.289l3.488,-1.161l0.291,-2.323l1.452,-1.742l2.034,0.000l0.292,-0.581l2.036,-0.290l1.160,0.000l0.875,-0.580l0.000,-1.743l1.162,-1.743l1.742,-0.580l-1.161,-1.743l2.616,0.000l0.872,-0.871l-0.289,-1.162l1.450,-1.161l-0.289,-1.452l-0.581,-1.162l1.454,-1.161l3.197,-0.580l2.907,-0.291l1.454,-0.581l-1.743,0.290z", - "PL" : "M515.047,90.418l-1.165,-1.742l0.292,-0.870l-0.581,-1.452l-1.163,-1.162l0.872,-0.581l-0.583,-1.452l1.744,-0.870l4.362,-1.163l3.489,-1.161l2.614,0.581l0.291,0.580l2.617,0.291l3.489,0.290l4.940,-0.290l1.454,0.290l0.582,0.872l0.289,1.452l0.582,0.870l0.000,1.161l-1.453,0.582l0.871,1.162l0.000,1.161l1.455,2.614l-0.292,0.580l-1.452,0.580l-2.617,2.033l0.872,1.452l-0.582,-0.289l-2.616,-1.163l-2.033,0.582l-1.455,-0.291l-1.453,0.581l-1.455,-1.163l-1.160,0.582l0.000,-0.291l-1.454,-1.161l-2.034,-0.290l-0.290,-0.872l-1.746,-0.290l-0.581,0.580l-1.454,-0.580l0.293,-0.580l-2.036,-0.291l1.453,0.872z", - "PR" : "M291.219,180.148l1.455,0.000l0.581,0.581l-0.872,0.871l-2.035,0.000l-1.453,0.000l-0.291,-1.162l0.582,-0.290l-2.033,0.000z", - "PS" : "M571.728,141.816l0.000,1.743l-0.581,0.871l-1.160,0.291l0.000,-0.581l0.871,-0.581l-0.871,-0.289l0.578,-1.743l-1.163,-0.289z", - "PT" : "M448.769,115.683l1.163,-0.581l1.163,-0.291l0.581,1.162l1.744,0.000l0.291,-0.290l1.746,0.000l0.581,1.452l-1.163,0.870l0.000,2.033l-0.582,0.291l0.000,1.451l-1.162,0.291l1.162,1.452l-0.873,2.032l0.873,0.581l-0.291,0.871l-0.871,0.871l0.000,1.162l-0.874,0.581l-1.452,-0.290l-1.454,0.290l0.292,-2.324l-0.292,-1.451l-1.163,-0.291l-0.581,-1.162l0.291,-1.742l0.871,-1.160l0.292,-0.873l0.582,-1.741l0.000,-1.162l-0.582,-0.871l0.292,1.161z", - "PY" : "M301.103,292.237l1.163,-3.485l0.000,-1.451l1.453,-2.324l4.652,-0.871l2.616,0.000l2.615,1.451l0.000,0.871l0.872,1.452l-0.291,3.776l2.907,0.581l1.163,-0.581l2.035,0.871l0.291,0.581l0.291,2.613l0.290,1.162l1.163,0.000l0.872,-0.290l1.163,0.290l0.000,1.741l-0.292,1.454l-0.580,1.742l-0.582,2.322l-2.325,2.032l-2.326,0.581l-3.197,-0.581l-2.617,-0.580l2.617,-4.354l-0.291,-1.162l-2.906,-1.161l-3.198,-2.034l-2.326,-0.290l5.232,4.356z", - "QA" : "M613.587,162.725l0.000,-1.743l0.582,-1.452l0.873,-0.290l0.871,0.871l0.000,1.451l-0.581,1.744l-0.872,0.000l0.873,0.581z", - "RO" : "M536.265,99.13l1.163,-0.581l1.744,0.581l1.745,0.000l1.163,0.581l1.162,-0.581l2.036,-0.291l0.579,-0.580l1.163,0.000l0.873,0.290l0.871,0.872l0.873,1.162l1.453,1.742l0.291,1.161l-0.291,1.161l0.291,1.163l1.452,0.580l1.166,-0.580l1.161,0.580l0.289,0.581l-1.450,0.581l-0.874,0.000l-0.872,3.194l-1.454,-0.290l-2.035,-0.872l-3.196,0.581l-1.452,0.581l-4.071,0.000l-2.035,-0.581l-1.164,0.291l-0.581,-1.162l-0.581,-0.581l0.581,-0.291l-0.581,-0.289l-0.871,0.580l-1.745,-0.872l-0.289,-1.161l-1.454,-0.580l-0.293,-0.872l-1.741,-1.161l2.325,-0.581l1.742,-1.741l1.164,-2.034l-1.743,0.581z", - "RS" : "M531.325,106.1l1.454,0.580l0.289,1.161l1.745,0.872l0.871,-0.580l0.581,0.289l-0.581,0.291l0.581,0.581l-0.871,0.581l0.290,1.161l1.454,1.162l-1.164,0.871l-0.580,0.871l0.290,0.289l-0.290,0.292l-1.165,0.000l-1.161,0.290l0.000,-0.290l0.290,-0.292l0.292,-0.580l-0.292,0.000l-0.579,-0.580l-0.583,0.000l-0.290,-0.581l-0.581,-0.290l-0.293,-0.291l-0.581,0.291l-0.289,0.871l-0.582,0.000l0.290,0.000l-1.162,-0.581l-0.872,-0.290l-0.290,-0.581l-0.873,-0.290l0.581,-0.291l0.582,-1.161l-1.455,-1.162l0.581,-1.161l-0.871,0.000l1.163,-0.872l-0.873,-0.870l-0.871,-1.163l2.326,-0.580l1.455,0.000l1.741,1.161l-0.293,-0.872z", - "RU" : "M869.098,91.29l2.907,4.936l-4.07-0.87l-1.743,4.065l2.614,2.613v2.033l-2.034-1.743l-1.743,2.323l-0.582-2.323l0.292-2.904l-0.292-2.904l0.582-2.033v-3.775l-1.454-2.613l0.291-3.774l2.326-1.162l-0.872-1.452l1.163-0.29l0.58,1.742l1.162,2.614l-0.29,2.903L869.098,91.29zM536.265,81.417l-4.94,0.29l-3.488-0.29l0.58-1.452l3.779-0.872l2.906,0.581l1.454,0.291l-0.582,0.871L536.265,81.417zM969.382,36.116l-3.196,0.291l-0.581-0.871l3.777-1.162h-0.01l0.58-0.29h2.326l3.779,0.872v0.29l-2.907,0.871h-3.778H969.382zM869.098,29.728h-4.069l-5.814-0.29l-0.582-0.29l2.618-1.162h3.488l4.067,0.872L869.098,29.728zM888.574,24.501l-3.198,1.162l-4.36-0.291l-4.942-1.16l0.582-0.873l5.232,0.291L888.574,24.501zM873.167,23.049l-2.324,2.033h-9.884l-4.651,0.58l-5.521-1.742l1.454-1.742l3.778-0.582h7.266L873.167,23.049zM632.19,36.407l-1.743,0.291l-9.012-0.291l-0.581-1.161l-4.941-0.872l-0.581-1.452l2.907-0.582V30.89l5.232-2.323l-2.325-0.291l6.393-2.613l-0.578-1.162l6.104-1.452l9.011-1.742l9.3-0.581l4.653-0.871l5.23-0.581l2.036,1.162l-1.745,0.871l-9.883,1.452l-8.43,1.162l-8.43,2.613l-4.069,2.614l-4.361,2.904l0.584,2.033L632.19,36.407zM969.382,52.379h-0.291l-3.486,1.161l-3.488-0.29l2.615,1.452l1.454,2.323l1.455,0.58l0.289,1.162l-0.873,0.872l-4.94-0.582l-7.849,2.033l-2.325,0.291l-4.362,2.033l-4.069,1.742l-0.871,1.161l-4.069-2.033l-6.977,2.324l-1.452-1.162l-2.618,1.162l-3.488-0.291l-0.871,1.742l-3.486,2.613l0.29,1.162l2.906,0.582l-0.291,4.064h-2.615l-1.163,2.324l1.163,1.161l-4.651,1.452l-1.163,3.194l-4.07,0.582l-0.87,2.903l-3.781,2.613l-1.162-2.032l-1.163-3.775l-1.454-6.389l1.164-3.775l2.324-1.453l0.291-1.451l4.36-0.581l4.942-3.484l4.649-2.904l4.943-2.033l2.326-3.775h-3.489l-1.744,2.324l-6.977,3.194l-2.034-3.485l-7.269,0.872l-6.975,4.646l2.325,1.742l-6.105,0.58l-4.359,0.291l0.291-2.032l-4.358-0.292l-3.199,1.453l-8.431-0.581l-9.01,0.871l-9.013,5.227l-10.463,6.679l4.357,0.29l1.165,1.743l2.615,0.581l1.744-1.452l3.196,0.291l3.78,2.904l0.29,2.323l-2.326,2.904v3.194l-1.452,4.356l-4.07,4.066l-0.87,1.741l-3.781,3.194l-3.777,3.194l-1.744,1.742l-3.488,1.452l-1.744,0.291l-1.744-1.453l-3.78,2.033l-0.579,0.871l-0.292-0.582v-1.161l1.454-0.291l0.29-3.194l-0.581-2.324l2.325-0.871l3.198,0.291l2.034-2.613l0.871-2.904l1.163-1.162l1.454-2.323l-4.651,0.871l-2.325,0.872h-4.361l-0.871-2.614l-3.488-1.742l-4.651-0.871l-1.16-2.904l-0.874-1.453l-0.871-1.161l-1.744-2.903l-2.617-1.162l-4.067-0.58h-3.491l-3.486,0.58l-2.325,1.162l1.452,0.871v1.452l-1.452,0.872l-2.328,2.903v1.162l-4.068,1.742l-3.197-1.162l-3.197,0.291l-1.452-0.871l-1.745-0.291l-4.069,2.033l-3.488,0.291l-2.616,0.872l-3.49-0.581h-2.615l-1.743-1.453l-2.615-1.162l-2.618-0.291l-3.486,0.291l-2.617,0.582l-4.069-1.162l-0.29-2.324l-3.488-0.58l-2.326-0.29l-3.196-1.162l-2.907,2.903l1.163,1.453l-2.617,2.033l-4.07-0.581l-2.617-0.29l-1.741-1.162h-2.908l-2.616-0.871l-4.068,1.161l-5.232,2.324l-2.907,0.582l-1.163,0.29l-1.454-1.742l-3.488,0.291l-1.163-1.162l-2.034-0.582l-1.16-1.452l-1.455-0.581l-4.069,0.872l-3.78-1.742l-1.453,1.451l-6.104-6.968l-3.488-2.033l0.871-0.871l-6.975,2.613h-2.617l0.29-1.451l-3.488-0.872l-2.906,0.581l-0.872-2.904l-4.941-0.581l-2.326,1.161l-6.977,1.162l-1.454,0.582l-10.172,0.872l-1.454,1.161l2.036,1.743l-2.617,0.87l0.581,0.581l-2.617,1.452l4.361,1.742l-0.581,1.453l-3.78-0.291l-0.871,0.872l-3.488-1.452l-4.36,0.29l-2.906,1.162l-3.488-1.162l-5.812-2.032h-4.361l-5.814,3.194l-0.289,2.033l-2.906-1.742l-2.036,3.195l0.58,0.29l-1.452,2.324l2.326,1.742h2.034l1.743,1.741l-0.289,1.453l1.452,0.581l-1.163,1.452l-2.906,0.581l-2.615,2.614l2.615,2.613l-0.289,2.032l2.906,3.194l-1.744,1.162l-0.29,0.581h-1.165l-2.033-1.743h-0.873l-1.745-0.871l-0.581-1.162l-2.614-0.58l-1.745,0.58l-0.581-0.58l-3.78-1.162l-3.778-0.581l-2.325-0.581l-0.581,0.581l-3.488-2.323l-3.197-1.161l-2.326-1.743l2.034-0.29l2.328-2.324l-1.455-1.162l4.07-1.162l-0.292-0.581l-2.323,0.581v-1.161l1.452-0.871l2.615-0.291l0.582-0.871l-0.582-1.452l1.163-1.451l-0.29-0.873l-4.07-0.871h-1.454l-1.744-1.162l-2.034,0.291l-3.488-0.871V91.29l-0.871-1.162h-2.327l-0.29-0.871l0.873-0.581l-1.744-1.742l-2.906,0.29h-0.872l-0.584,0.582h-1.16l-0.583-2.033l-0.871-0.872l0.581-0.291l2.326,0.291l1.163-0.58l-0.872-0.872l-2.036-0.581l0.292-0.29l-1.163-0.581l-1.743-1.742l0.578-0.871l-0.289-1.162l-2.615-0.581l-1.454,0.291l-0.29-0.872l-2.907-0.581l-0.871-1.742l-0.291-1.161l-1.455-0.582l1.163-0.871l-0.582-2.613l1.745-1.742l-0.291-0.291l3.199-1.742l-2.908-1.162l5.813-3.485l2.617-1.742l0.871-1.162l-4.069-2.032l1.162-1.742l-2.325-2.033l1.744-2.324l-3.198-3.194l2.617-2.033l-4.362-1.743l0.584-2.033l2.034-0.29l4.942-1.161l2.615-0.872l4.651,1.743l7.557,0.58l10.465,3.195l2.035,1.162v1.741l-2.906,1.453l-4.651,0.871l-12.21-2.033l-2.033,0.291l4.651,2.033v1.161l0.292,2.904l3.486,0.872l2.036,0.58l0.581-1.161l-1.746-1.162l1.746-1.162l6.685,1.742l2.326-0.581l-1.745-2.033l6.396-2.903l2.323,0.29l2.617,0.871l1.745-1.742l-2.326-1.742l1.163-1.742l-2.034-1.452l7.848,0.872l1.453,1.452l-3.489,0.289v1.453l2.326,1.162l4.361-0.582l0.581-2.033l5.812-1.161l9.594-2.323h2.034l-2.907,1.742l3.488,0.29l2.034-0.871h5.232l4.069-1.161l3.197,1.452l2.906-1.742l-2.906-1.453l1.454-1.162l8.14,0.872l3.778,0.871l10.176,3.194l1.742-1.452l-2.907-1.452v-0.581l-3.197-0.291l0.874-1.162l-1.455-2.323v-0.871l4.943-2.323l1.742-2.613l2.035-0.582l7.268,0.872l0.581,1.451l-2.615,2.324l1.743,0.871l0.872,1.742l-0.581,3.775l3.198,1.743l-1.165,1.742l-5.521,4.066l3.197,0.29l1.161-0.871l2.907-0.872l0.874-1.161l2.325-1.453l-1.744-1.452l1.454-1.742l-3.198-0.291l-0.582-1.451l2.326-2.904l-3.778-2.324l4.94-1.741l-0.581-2.033h1.453l1.454,1.452l-1.163,2.613l2.907,0.581l-1.162-2.033l4.65-0.872l5.522-0.29l5.232,1.451l-2.617-2.032l-0.29-3.195l4.94-0.291h6.688l5.812-0.29l-2.324-1.451l3.197-1.743l3.197-0.29l5.521-1.162l7.27-0.58l0.872-0.582l7.268-0.291l2.325,0.582l6.104-1.452h4.94l0.873-1.161l2.615-1.162l6.396-1.161l4.651,0.87l-3.489,0.872l6.104,0.291l0.874,1.452l2.324-0.871h8.141l6.104,1.452l2.325,1.162l-0.873,1.451l-2.907,0.581l-7.267,1.743l-2.036,0.581l3.49,0.58l4.068,0.581l2.326-0.581l1.452,1.743l1.165-0.581l4.359-0.582l9.013,0.582l0.579,1.161l11.628,0.582v-2.033l5.814,0.291h4.359l4.651,1.451l1.163,1.742l-1.745,1.162l3.488,2.323l4.36,1.161l2.615-2.904l4.653,1.162l4.65-0.871l5.233,0.871l2.034-0.581l4.648,0.29l-2.033-2.614l3.488-1.161l24.998,1.741l2.327,1.743l7.267,2.032l11.045-0.581l5.524,0.581l2.324,1.162l-0.58,2.033l3.486,0.581l3.78-0.581h4.941l4.94,0.581l5.234-0.29l4.938,2.323l3.488-0.872l-2.322-1.742l1.162-1.162l8.721,0.872l5.812-0.292l7.848,1.453l4.069,1.162h-0.01l6.976,2.033l6.977,2.614v1.742l1.744,0.871l-0.581-2.033l7.559,0.291l5.231,2.613l-2.616,1.162l-4.651,0.29v2.613l-1.161,0.581h-2.617l-2.034-0.871l-3.779-0.871l-0.582-1.162l-2.615-0.58l-3.199,0.58l-1.452-1.162l0.581-0.872l-3.198,0.582l1.165,1.452l-1.745,1.162H969.382zM762.998,15.499l-15.406,1.162l4.94-3.484l2.328-0.291h2.034l6.977,1.742L762.998,15.499zM614.46,9.401l-3.488,0.291l-2.617,0.29l-0.289,0.581l-3.199,0.291l-3.197-0.581l1.743-0.871h-6.104l5.233-0.581h4.359l0.291,0.581l1.744-0.581l2.618-0.291l4.067,0.581L614.46,9.401zM748.754,14.047l-5.812,0.29l-7.85-0.87l-4.359-0.872l-2.325-2.033l-3.779-0.581l7.268-1.742L738,7.369l5.232,1.452l6.396,2.614L748.754,14.047z", - "RW" : "M557.485,234.16l1.163,1.452l-0.289,1.741l-0.582,0.291l-1.454,-0.291l-0.874,1.743l-1.743,-0.290l0.293,-1.453l0.290,-0.290l0.000,-1.742l0.871,-0.580l0.582,0.290l-1.743,0.871z", - "SA" : "M591.496,185.956l-0.291,-1.162l-0.873,-0.871l-0.290,-1.162l-1.453,-0.871l-1.454,-2.323l-0.582,-2.322l-2.034,-1.744l-1.163,-0.580l-1.743,-2.613l-0.292,-1.744l0.000,-1.741l-1.453,-2.904l-1.454,-1.162l-1.453,-0.580l-0.871,-1.452l0.000,-0.872l-0.581,-1.451l-0.874,-0.582l-1.162,-2.032l-1.452,-2.033l-1.456,-2.033l-1.452,0.000l0.290,-1.451l0.292,-0.871l0.292,-1.162l3.196,0.291l1.161,-0.582l0.581,-1.161l2.036,-0.290l0.581,-0.871l0.872,-0.581l-2.905,-2.614l5.522,-1.451l0.582,-0.582l3.488,0.873l4.067,2.032l7.561,5.517l5.230,0.000l2.326,0.290l0.873,1.452l1.743,0.000l1.165,2.323l1.452,0.581l0.289,0.871l2.036,1.162l0.290,1.162l-0.290,0.870l0.290,0.872l0.584,0.871l0.578,0.871l0.292,0.581l0.873,0.581l0.872,0.000l0.290,0.871l0.291,0.871l0.872,2.613l8.430,1.452l0.580,-0.580l1.165,2.031l-1.745,5.519l-8.430,2.613l-7.849,1.162l-2.615,1.161l-2.036,2.904l-1.163,0.291l-0.580,-0.873l-1.164,0.292l-2.615,-0.292l-0.582,-0.289l-3.197,0.000l-0.582,0.289l-1.161,-0.869l-0.873,1.451l0.289,1.161l1.161,-0.872z", - "SB" : "M919.968,259.712l0.871,0.873h-2.034l-0.873-1.453l1.452,0.58H919.968zM916.48,257.972l-0.874,0.289l-1.743-0.289l-0.58-0.582v-1.161l2.034,0.581l0.873,0.58L916.48,257.972zM918.805,257.39l-0.291,0.582l-2.034-2.613l-0.582-1.453h0.871l0.873,2.033L918.805,257.39zM913.863,253.906v0.581l-2.034-1.161l-1.454-1.162l-1.161-0.871l0.579-0.29l1.164,0.871l2.326,1.161L913.863,253.906zM907.468,251.002l-0.581,0.29l-1.162-0.58l-1.163-1.162v-0.581l1.744,1.162L907.468,251.002z", - "SD" : "M567.37,204.831l-0.582,0.000l0.000,-1.452l-0.292,-0.873l-1.453,-1.160l-0.292,-1.742l0.292,-2.033l-1.162,-0.291l-0.293,0.582l-1.452,0.289l0.582,0.582l0.291,1.742l-1.454,1.451l-1.453,2.033l-1.454,0.291l-2.325,-1.744l-1.163,0.582l0.000,0.871l-1.454,0.581l-0.290,0.582l-2.617,0.000l-0.289,-0.582l-2.035,0.000l-1.164,0.291l-0.581,-0.291l-1.452,-1.452l-0.584,-0.871l-2.033,0.581l-0.581,1.161l-0.872,2.324l-0.874,0.581l-0.872,0.289l-0.290,0.000l-0.871,-0.870l0.000,-0.870l0.289,-1.163l0.000,-1.162l-1.452,-1.742l-0.292,-1.162l0.000,-0.580l-1.162,-0.871l0.000,-1.453l-0.582,-1.161l-0.873,0.290l0.293,-1.161l0.580,-1.162l-0.289,-1.162l0.871,-0.870l-0.582,-0.581l0.872,-1.743l1.164,-2.032l2.324,0.291l0.000,-11.036l0.000,-0.870l3.199,-0.291l0.000,-5.228l11.045,0.000l10.755,0.000l10.755,0.000l0.874,2.615l-0.581,0.580l0.289,2.614l1.163,3.485l1.164,0.580l1.454,0.872l-1.454,1.742l-2.035,0.289l-0.874,0.873l-0.291,2.033l-1.161,4.065l0.290,0.870l-0.581,2.323l-0.872,2.904l-1.743,1.162l-1.163,2.322l-0.292,1.162l-1.454,0.582l-0.579,2.903l0.000,-0.291z", - "SE" : "M534.813,50.346l-2.617,1.742l0.291,1.742l-4.362,2.324l-5.230,2.323l-2.036,3.774l2.036,2.033l2.615,1.452l-2.615,3.194l-2.907,0.581l-0.873,4.647l-1.744,2.613l-3.197,-0.291l-1.455,2.033l-3.196,0.291l-0.874,-2.614l-2.323,-3.194l-2.327,-3.776l1.455,-1.742l2.033,-1.742l1.162,-3.485l-1.743,-1.162l-0.290,-3.775l1.744,-2.612l2.907,0.000l0.873,-0.872l-1.165,-1.162l4.361,-3.774l2.907,-2.904l1.745,-2.033l2.615,0.000l0.582,-1.452l5.232,0.290l0.582,-1.742l1.744,-0.290l3.486,1.452l4.361,2.033l0.000,4.065l0.872,1.162l4.649,-0.871z", - "SI" : "M511.848,102.905l2.326,0.291l1.162,-0.582l2.616,0.000l0.291,-0.580l0.582,0.000l0.582,1.162l-2.325,0.580l-0.293,1.162l-0.871,0.290l0.000,0.582l-1.163,0.000l-0.873,-0.291l-0.580,0.291l-1.743,0.000l0.581,-0.291l-0.581,-1.162l-0.289,1.452z", - "SK" : "M525.802,94.774l0.000,0.291l1.160,-0.582l1.455,1.163l1.453,-0.581l1.455,0.291l2.033,-0.582l2.616,1.163l-0.872,0.870l-0.580,0.872l-0.582,0.290l-2.908,-0.872l-0.870,0.291l-0.582,0.581l-1.455,0.290l-0.289,0.000l-1.163,0.290l-1.163,0.290l-0.291,0.291l-2.324,0.581l-0.871,-0.290l-1.454,-0.872l-0.292,-0.870l0.292,-0.291l0.289,-0.581l1.165,0.000l0.871,-0.290l0.290,-0.291l0.289,-0.289l0.292,-0.581l0.582,0.000l0.580,-0.582l-0.874,0.000z", - "SL" : "M442.376,212.381l-0.873,-0.291l-2.034,-1.161l-1.455,-1.452l-0.289,-0.871l-0.292,-2.033l1.455,-1.451l0.289,-0.582l0.292,-0.581l0.871,0.000l0.581,-0.580l2.326,0.000l0.582,0.871l0.581,1.163l0.000,0.870l0.582,0.581l0.000,1.161l0.581,-0.290l-1.163,1.451l-1.454,1.452l0.000,0.871l0.580,-0.872z", - "SN" : "M427.84,193.505l-1.162,-2.032l-1.454,-1.161l1.164,-0.291l1.452,-2.032l0.582,-1.452l0.871,-0.872l1.456,0.291l1.452,-0.581l1.454,0.000l1.163,0.872l2.034,0.580l1.454,2.033l2.034,1.742l0.000,1.742l0.581,1.742l1.162,0.581l0.000,1.162l0.000,0.871l-0.289,0.290l-1.744,-0.290l0.000,0.290l-0.581,0.000l-2.036,-0.581l-1.453,0.000l-4.942,-0.290l-0.871,0.290l-0.874,0.000l-1.453,0.581l-0.291,-2.323l2.327,0.291l0.580,-0.581l0.582,0.000l1.163,-0.581l1.163,0.581l1.162,0.000l1.163,-0.581l-0.582,-0.872l-0.870,0.581l-0.873,0.000l-1.163,-0.581l-0.871,0.000l-0.581,0.581l2.909,0.000z", - "SO" : "M610.681,199.023l1.452,-0.290l1.162,-0.871l1.165,0.000l0.000,0.871l-0.291,1.451l0.000,1.453l-0.582,1.161l-0.581,2.904l-1.452,2.904l-1.747,3.484l-2.323,4.066l-2.326,3.194l-3.199,3.775l-2.907,2.323l-4.068,2.613l-2.616,2.033l-2.908,3.486l-0.582,1.451l-0.580,0.581l-1.745,-2.323l0.000,-9.873l2.325,-3.196l0.874,-0.870l1.744,0.000l2.324,-2.033l3.780,0.000l7.850,-8.421l1.742,-2.323l1.163,-1.742l0.000,-1.452l0.000,-2.614l0.000,-1.161l0.290,0.000l0.873,0.000l-1.163,0.581z", - "SOL" : "M608.355,204.831l-1.163,1.742l-1.742,2.323l-2.328,0.000l-9.010,-3.194l-1.163,-0.871l-0.873,-1.452l-1.163,-1.453l0.583,-1.161l1.161,-1.452l0.873,0.580l0.582,1.162l1.163,1.162l1.163,0.000l2.614,-0.580l3.199,-0.582l2.327,-0.580l1.452,-0.291l0.871,-0.580l1.744,0.000l-0.290,0.000l0.000,1.161l0.000,2.614l0.000,-1.452z", - "SR" : "M316.509,214.415l3.198,0.580l0.290,-0.291l2.326,-0.289l2.907,0.580l-1.453,2.612l0.289,1.743l1.164,1.742l-0.582,1.161l-0.290,1.163l-0.581,1.162l-1.745,-0.581l-1.162,0.289l-1.163,-0.289l-0.291,0.870l0.581,0.581l-0.290,0.581l-1.454,-0.291l-1.744,-2.322l-0.291,-1.744l-0.872,0.000l-1.453,-2.032l0.581,-1.161l0.000,-0.872l1.453,-0.579l-0.582,2.613z", - "SS" : "M567.37,204.831l0.000,2.322l-0.582,0.872l-1.455,0.000l-0.872,1.452l1.746,0.291l1.452,1.161l0.290,1.161l1.454,0.580l1.455,3.196l-1.745,1.741l-1.743,1.743l-1.745,1.162l-1.744,0.000l-2.326,0.580l-1.744,-0.580l-1.163,0.870l-2.325,-2.032l-0.874,-1.162l-1.450,0.581l-1.166,0.000l-0.873,0.291l-1.161,-0.291l-1.743,-2.323l-0.292,-0.871l-2.034,-0.871l-0.873,-1.743l-1.163,-1.161l-1.743,-1.452l0.000,-0.871l-1.452,-1.162l-2.037,-1.162l0.872,-0.289l0.874,-0.581l0.872,-2.324l0.581,-1.161l2.033,-0.581l0.584,0.871l1.452,1.452l0.581,0.291l1.164,-0.291l2.035,0.000l0.289,0.582l2.617,0.000l0.290,-0.582l1.454,-0.581l0.000,-0.871l1.163,-0.582l2.325,1.744l1.454,-0.291l1.453,-2.033l1.454,-1.451l-0.291,-1.742l-0.582,-0.582l1.452,-0.289l0.293,-0.582l1.162,0.291l-0.292,2.033l0.292,1.742l1.453,1.160l0.292,0.873l0.000,1.452l-0.582,0.000z", - "SV" : "M232.211,194.086l-0.291,0.581l-1.743,0.000l-0.872,-0.290l-1.164,-0.581l-1.452,0.000l-0.873,-0.581l0.000,-0.580l0.873,-0.581l0.580,-0.291l0.000,-0.290l0.581,-0.291l0.873,0.291l0.582,0.581l0.872,0.581l0.000,0.289l1.161,-0.289l0.582,0.000l0.291,0.289l0.000,-1.162z", - "SY" : "M580.45,139.204l-5.234,2.903l-3.195,-1.161l0.289,-0.290l0.000,-1.162l0.873,-1.452l1.452,-1.161l-0.581,-1.162l-1.163,0.000l-0.290,-2.033l0.582,-1.161l0.871,-0.582l0.581,-0.580l0.290,-1.742l0.873,0.580l2.907,-0.870l1.454,0.581l2.327,0.000l3.196,-0.872l1.453,0.000l3.197,-0.581l-1.454,1.742l-1.454,0.872l0.292,2.032l-1.163,3.195l6.103,-2.904z", - "SZ" : "M562.136,304.433l-0.581,1.161l-1.744,0.290l-1.452,-1.451l-0.292,-0.871l0.870,-1.161l0.293,-0.581l0.872,-0.290l1.163,0.580l0.580,1.161l-0.291,-1.162z", - "TD" : "M513.593,195.538l0.289,-1.161l-1.742,-0.291l0.000,-1.742l-1.165,-0.871l1.165,-3.775l3.486,-2.614l0.292,-3.484l1.164,-5.517l0.581,-1.162l-1.163,-0.871l0.000,-0.871l-1.164,-0.871l-0.581,-4.357l2.616,-1.451l11.046,5.226l11.045,5.227l0.000,11.036l-2.324,-0.291l-1.164,2.032l-0.872,1.743l0.582,0.581l-0.871,0.870l0.289,1.162l-0.580,1.162l-0.293,1.161l0.873,-0.290l0.582,1.161l0.000,1.453l1.162,0.871l0.000,0.580l-1.744,0.581l-1.452,1.161l-2.034,2.905l-2.617,1.452l-2.618,-0.291l-0.871,0.291l0.292,0.870l-1.454,0.872l-1.163,1.161l-3.488,1.162l-0.582,-0.580l-0.579,-0.291l-0.293,0.871l-2.325,0.290l0.290,-0.870l-0.872,-1.743l-0.289,-1.161l-1.165,-0.581l-1.742,-1.743l0.579,-1.161l1.455,0.289l0.581,-0.289l1.453,0.000l-1.453,-2.324l0.292,-2.032l-0.292,-1.743l1.162,1.742z", - "TF" : "M663.583,364.542l1.746,0.872l2.617,0.581l0.000,0.291l-0.584,1.452l-4.360,0.000l0.000,-1.452l0.292,-1.161l-0.289,0.583z", - "TG" : "M479,214.123l-2.324,0.581l-0.582,-1.162l-0.872,-1.742l0.000,-1.162l0.581,-2.613l-0.871,-0.872l-0.292,-2.322l0.000,-2.033l-0.871,-1.161l0.000,-0.872l2.616,0.000l-0.582,1.452l0.873,0.871l0.872,0.871l0.291,1.454l0.579,0.289l-0.290,6.388l-0.872,-2.033z", - "TH" : "M756.022,197.571l-2.325,-1.452l-2.325,0.000l0.290,-2.033l-2.326,0.000l-0.291,2.904l-1.454,4.065l-0.871,2.613l0.290,1.745l1.744,0.289l1.163,2.323l0.291,2.613l1.745,1.452l1.453,0.291l1.454,1.452l-0.873,1.162l-1.744,0.289l-0.290,-1.451l-2.326,-1.163l-0.291,0.582l-1.163,-1.162l-0.582,-1.452l-1.452,-1.452l-1.163,-1.161l-0.582,1.452l-0.581,-1.452l0.292,-1.742l0.871,-2.615l1.452,-2.903l1.454,-2.614l-1.162,-2.322l0.290,-1.452l-0.582,-1.453l-1.741,-2.322l-0.582,-1.162l0.871,-0.580l1.163,-2.323l-1.163,-2.034l-1.744,-1.742l-1.455,-2.613l1.165,-0.290l1.163,-3.194l2.034,0.000l1.743,-1.163l1.454,-0.580l1.163,0.580l0.290,1.744l1.743,0.289l-0.579,2.904l0.000,2.323l2.907,-1.742l0.871,0.581l1.452,0.000l0.582,-0.871l2.036,0.000l2.325,2.323l0.000,2.613l2.327,2.324l-0.291,2.323l-0.872,1.451l-2.326,-0.581l-3.781,0.581l-1.741,2.323l-0.580,-3.485z", - "TJ" : "M669.108,120.329l-0.873,0.871l-2.906,-0.582l-0.291,1.743l2.908,-0.290l3.488,0.871l5.233,-0.291l0.579,2.324l0.874,-0.291l1.743,0.582l0.000,1.160l0.292,1.742l-2.909,0.000l-1.745,-0.290l-1.744,1.162l-1.162,0.291l-1.161,0.581l-0.873,-0.872l0.000,-2.323l-0.581,0.000l0.291,-0.871l-1.454,-0.871l-1.455,1.161l-0.290,1.161l-0.289,0.291l-1.745,0.000l-0.872,1.162l-0.872,-0.582l-2.036,0.872l-0.871,-0.290l1.744,-2.614l-0.582,-2.032l-2.033,-0.871l0.579,-1.162l2.328,0.290l1.452,-1.743l0.872,-1.741l3.488,-0.582l-0.581,1.163l0.581,0.871l-0.873,0.000z", - "TL" : "M817.647,255.359l0.580,-0.582l2.327,-0.580l1.744,-0.291l0.871,-0.290l1.164,0.290l-1.164,0.871l-2.905,1.162l-2.037,0.871l-0.290,-0.871l0.290,0.580z", - "TM" : "M642.364,132.815l-0.289,-2.323l-2.034,0.000l-3.200,-2.324l-2.325,-0.290l-2.907,-1.452l-2.034,-0.290l-1.162,0.581l-1.745,-0.291l-2.036,1.742l-2.323,0.582l-0.582,-2.033l0.289,-2.904l-2.033,-0.871l0.581,-2.033l-1.743,0.000l0.578,-2.323l2.617,0.581l2.326,-0.872l-2.033,-1.742l-0.582,-1.451l-2.328,0.581l-0.289,2.032l-0.871,-1.742l1.160,-0.871l3.199,-0.581l2.034,0.871l1.744,2.033l1.455,0.000l3.199,0.000l-0.583,-1.452l2.325,-0.871l2.325,-1.742l3.778,1.451l0.292,2.324l1.163,0.580l2.907,-0.290l0.871,0.580l1.455,2.904l2.906,1.742l2.034,1.453l2.909,1.162l3.487,1.160l0.000,1.742l-0.871,0.000l-1.164,-0.871l-0.580,1.162l-2.326,0.291l-0.583,2.323l-1.454,0.870l-2.325,0.291l-0.581,1.452l-2.034,0.291l2.617,1.162z", - "TN" : "M499.931,147.625l-1.163,-4.936l-1.745,-1.162l0.000,-0.581l-2.325,-1.742l-0.290,-2.034l1.745,-1.451l0.579,-2.323l-0.290,-2.614l0.581,-1.451l2.908,-1.163l2.034,0.291l-0.291,1.453l2.325,-0.872l0.292,0.291l-1.454,1.451l0.000,1.161l1.162,0.872l-0.580,2.324l-1.745,1.451l0.582,1.452l1.452,0.000l0.583,1.452l1.163,0.290l-0.291,2.032l-1.164,0.873l-0.872,0.870l-2.034,1.162l0.290,1.161l-0.290,1.162l1.162,-0.581z", - "TR" : "M575.509,117.135l3.777,1.161l3.199-0.291l2.323,0.291l3.489-1.451l2.906-0.291l2.615,1.452l0.292,0.872l-0.292,1.452l2.036,0.58l1.162,0.872l-1.743,0.871l0.87,2.904l-0.579,0.871l1.452,2.324l-1.452,0.581l-0.873-0.872l-3.197-0.291l-1.164,0.291l-3.196,0.581h-1.453l-3.196,0.872h-2.327l-1.454-0.581l-2.906,0.871l-0.873-0.58l-0.29,1.742l-0.581,0.58l-0.871,0.582l-0.873-1.452l0.873-0.872l-1.455,0.291l-2.325-0.871l-2.033,1.742l-4.07,0.29l-2.326-1.452h-2.906l-0.582,1.162l-2.036,0.29l-2.615-1.452h-2.906l-1.744-2.904l-2.034-1.452l1.455-2.033l-1.747-1.452l2.907-2.613h4.361l1.163-2.033l5.232,0.29l3.197-1.742l3.196-0.871h4.65L575.509,117.135zM548.764,119.167l-2.325,1.451l-0.871-1.451v-0.581l0.581-0.291l0.871-1.742l-1.452-0.581l2.907-0.871l2.324,0.29l0.291,1.162l2.615,0.872l-0.58,0.58l-3.198,0.291L548.764,119.167z", - "TT" : "M304.01,201.346l1.454,-0.291l0.581,0.000l0.000,2.033l-2.326,0.291l-0.581,-0.291l0.872,-0.582l0.000,1.160z", - "TW" : "M808.926,163.886l-1.744,4.356l-1.163,2.322l-1.452,-2.322l-0.292,-2.033l1.744,-2.614l2.325,-2.322l1.163,0.871l0.581,-1.742z", - "TZ" : "M567.077,233.58l0.582,0.289l9.883,5.517l0.291,1.742l3.780,2.615l-1.163,3.484l0.000,1.452l1.744,1.161l0.292,0.581l-0.873,1.743l0.289,0.871l-0.289,1.162l0.873,1.742l1.161,2.903l1.162,0.581l-2.323,1.452l-2.907,1.162l-1.746,0.000l-0.872,0.581l-2.036,0.289l-0.581,0.291l-3.486,-0.872l-2.036,0.292l-0.582,-3.776l-1.163,-1.161l-0.289,-0.871l-2.907,-0.581l-1.456,-0.870l-1.743,-0.291l-1.161,-0.581l-1.162,-0.581l-1.455,-3.485l-1.744,-1.452l-0.290,-1.742l0.290,-1.452l-0.581,-2.324l1.163,-0.289l0.872,-0.870l1.163,-1.454l0.582,-0.580l0.000,-0.872l-0.582,-0.871l0.000,-0.871l0.582,-0.291l0.289,-1.741l-1.163,-1.452l0.874,-0.291l3.196,0.000l-5.522,0.289z", - "UA" : "M561.265,87.806l1.160,0.000l0.584,-0.582l0.872,0.000l2.907,-0.290l1.744,1.742l-0.873,0.581l0.290,0.871l2.327,0.000l0.871,1.162l0.000,0.581l3.488,0.870l2.034,-0.290l1.745,1.162l1.454,0.000l4.070,0.870l0.290,0.873l-1.163,1.451l0.582,1.452l-0.582,0.871l-2.615,0.291l-1.452,0.871l0.000,1.161l-2.329,0.292l-1.744,0.869l-2.615,0.000l-2.323,1.162l0.289,1.743l1.161,0.581l2.907,-0.290l-0.580,1.161l-2.906,0.290l-3.781,1.742l-1.452,-0.581l0.582,-1.451l-3.198,-0.581l0.579,-0.580l2.619,-0.872l-0.874,-0.581l-4.068,-0.871l-0.292,-0.872l-2.614,0.291l-0.874,1.452l-2.325,2.033l-1.161,-0.580l-1.166,0.580l-1.452,-0.580l0.872,-0.291l0.291,-0.872l0.872,-0.871l-0.291,-0.580l0.581,-0.291l0.293,0.581l1.743,0.000l0.581,-0.290l-0.290,-0.291l0.000,-0.291l-0.873,-0.580l-0.290,-1.162l-1.164,-0.580l0.293,-0.871l-1.166,-0.872l-1.162,0.000l-2.034,-0.870l-2.033,0.290l-0.584,0.290l-1.163,0.000l-0.579,0.580l-2.036,0.291l-1.162,0.581l-1.163,-0.581l-1.745,0.000l-1.744,-0.581l-1.163,0.581l-0.291,-0.581l-1.452,-0.870l0.580,-0.872l0.872,-0.870l0.582,0.289l-0.872,-1.452l2.617,-2.033l1.452,-0.580l0.292,-0.580l-1.455,-2.614l1.163,0.000l1.746,-0.581l2.035,-0.291l2.615,0.291l3.196,0.581l2.036,0.290l1.163,0.291l1.162,-0.581l0.583,0.581l2.615,0.000l0.873,0.289l0.290,-1.451l0.870,-0.580l-2.328,0.000z", - "UG" : "M561.555,233.869l-3.196,0.000l-0.874,0.291l-1.743,0.871l-0.582,-0.290l0.000,-2.324l0.582,-0.871l0.291,-2.324l0.581,-1.161l1.163,-1.451l0.871,-0.872l0.873,-0.871l-1.162,-0.289l0.289,-3.196l1.163,-0.870l1.744,0.580l2.326,-0.580l1.744,0.000l1.745,-1.162l1.452,1.742l0.291,1.452l1.163,3.194l-1.163,2.033l-1.164,1.742l-0.872,1.161l0.000,2.906l5.522,-0.289z", - "US" : "M45.593,178.406l-0.292,0.581l-0.873-0.581l0.292-0.581l-0.582-1.162l0.29-0.291l0.292-0.29l-0.292-0.582l0.292-0.29h0.291l0.872,0.581l0.582,0.291l0.581,0.29l0.582,0.872v0.29l-1.162,0.581L45.593,178.406zM44.14,174.05l-0.872,0.29l-0.582-0.581l-0.292-0.29l0.292-0.291l0.872,0.291l0.872,0.29L44.14,174.05zM42.395,172.598l-0.29,0.291h-1.453l0.29-0.291H42.395zM39.779,172.308v0.29l-0.291-0.29h-0.873l-0.582-0.582l0.873-0.581v0.291L39.779,172.308zM35.128,170.564l-0.291,0.292l-0.872-0.582v-0.291l0.581-0.29l0.582,0.29V170.564zM212.735,95.065l0.582,1.452l0.871,0.581l1.744,0.291l2.907,0.291l2.616,0.871l2.325-0.291l3.488,0.581h0.872l2.326-0.87l2.617,1.161l2.616,1.162l2.326,0.872l2.035,0.871l0.291,0.58l0.582,0.291v0.291h0.58l0.583-0.291l0.29,0.871l0.583,0.291h0.581l0.581,0.29l-0.581,0.581l2.906,1.162l0.583,2.613l0.58,2.323l-0.872,1.742l-1.163,1.451l-0.581,0.873v0.29l0.292,0.581l0.872,0.29h0.581l3.197-1.452l2.907-0.29l3.488-1.453l0.291-0.291l-0.291-0.871l-0.582-0.581l1.454-0.291h2.616h2.616l0.872-1.162l0.291-0.29l2.907-1.743l1.163-0.581h4.07h5.232l0.292-0.871h0.872l1.162-0.58l0.872-1.162l0.873-2.033l2.035-2.032l0.872,0.581l2.035-0.581l1.163,0.87v3.775l1.744,1.452l0.582,1.161l-2.907,1.162l-2.907,0.872l-2.907,0.872l-1.453,1.742l-0.582,0.581v1.453l0.872,1.451h1.163l-0.291-0.871l0.872,0.581l-0.291,0.871l-1.744,0.291h-1.162l-2.036,0.581h-1.452l-1.454,0.291l-2.326,0.58l4.07-0.291l0.872,0.291l-4.07,0.872H270l0.291-0.29l-0.872,0.872h0.872l-0.582,2.032l-2.035,2.033l-0.291-0.58l-0.582-0.291l-0.872-0.581l0.582,1.452l0.582,0.58v0.873l-0.873,1.161l-1.453,2.033h-0.291l0.873-1.742l-1.454-1.162l-0.291-2.322l-0.58,1.16l0.58,1.743l-1.744-0.291l1.744,0.871l0.291,2.614l0.873,0.291l0.291,0.871l0.291,2.613l-1.745,2.033l-2.907,0.871l-1.743,1.742H257.5l-1.452,1.162l-0.291,0.87l-2.907,1.744l-1.744,1.451l-1.163,1.452l-0.582,2.033l0.582,1.742l0.873,2.614l1.163,1.742v1.161l1.453,3.195v2.032l-0.29,0.871l-0.582,1.742l-0.873,0.291l-1.453-0.291l-0.291-1.161l-1.163-0.582l-1.454-2.323l-1.162-2.032l-0.583-1.161l0.583-1.743l-0.583-1.742l-2.325-2.323l-0.873-0.291l-2.906,1.162h-0.581l-1.163-1.451l-1.744-0.581l-3.197,0.29l-2.326-0.29l-2.326,0.29l-0.872,0.291l0.292,0.87v1.162l0.581,0.582l-0.581,0.29l-0.872-0.581l-1.164,0.581h-2.034l-2.035-1.452l-2.325,0.291l-2.035-0.581l-1.745,0.29l-2.325,0.581l-2.325,2.033l-2.908,1.162l-1.452,1.162l-0.582,1.451v1.742v1.452l0.582,0.871h-1.163l-1.744-0.58l-2.326-0.872l-0.581-1.162l-0.582-2.033l-1.744-1.452l-0.873-1.742l-1.453-1.742l-2.034-1.162h-2.036l-1.743,2.323l-2.326-0.871l-1.454-0.871l-0.872-1.453l-0.872-1.451l-1.454-1.162l-1.454-0.871l-1.163-1.162h-4.65v1.162h-2.326h-5.232l-6.395-1.742l-4.07-1.451l0.29-0.582l-3.487,0.291l-3.198,0.291l-0.581-1.453l-1.744-1.451l-1.163-0.582l-0.291-0.58l-1.743-0.291l-0.872-0.581l-2.616-0.29l-0.582-0.582l-0.291-1.452l-2.908-2.904l-2.034-3.775v-0.582l-1.163-0.871l-2.326-2.323l-0.291-2.322l-1.454-1.453l0.582-2.322v-2.324l-0.872-2.032l0.872-2.614l0.582-2.613l0.291-2.323l-0.581-3.775l-0.873-2.323l-0.872-1.162l0.291-0.58l4.069,0.87l1.454,2.613l0.581-0.87l-0.291-2.033l-0.872-2.324h7.849h8.139h2.616h8.43h8.14h8.138h8.43h9.302h9.302h5.813v-1.161H212.735zM52.569,73.867l-2.616,1.162l-1.454-0.871l-0.581-1.162l2.616-1.162l1.454-0.29l1.744,0.29l1.163,0.871L52.569,73.867zM17.978,66.316l-1.744,0.291l-1.745-0.581l-1.744-0.582l2.907-0.581l2.035,0.291L17.978,66.316zM1.118,55.572l1.744,0.582l1.744-0.291l2.035,0.581l2.907,0.581l-0.291,0.29l-2.035,0.581l-2.326-0.87l-0.872-0.291H1.409l-0.582-0.29L1.118,55.572zM47.046,35.246l1.744,1.161l1.453-0.291h4.651l-0.291,0.582l4.36,0.58l2.617-0.29l5.813,0.871l5.232,0.29l2.326,0.291l3.488-0.291l4.36,0.581l2.907,0.581v10.164v15.681h2.616l2.616,0.872l2.035,1.162L95.3,68.93l2.906-1.452l2.616-0.871l1.454,1.451l1.744,1.162l2.616,1.162l1.744,2.033l2.908,2.903l4.65,1.742v1.743l-1.454,1.452l-1.454-1.162l-2.615-0.871l-0.583-2.323l-3.778-2.323l-1.454-2.324l-2.616-0.291h-4.361l-3.197-0.871l-5.814-2.903l-2.616-0.581l-4.651-0.872l-3.778,0.291l-5.523-1.453l-3.198-1.161l-3.197,0.581l0.581,2.033l-1.454,0.29l-3.196,0.58l-2.326,0.873l-3.198,0.581l-0.291-1.742l1.163-2.614l2.907-0.871l-0.582-0.581l-3.488,1.452l-2.035,1.742l-4.07,2.033l2.035,1.161l-2.617,2.033l-2.907,1.162l-2.616,0.871l-0.872,1.162l-4.07,1.451l-0.872,1.452l-3.198,1.162l-2.035-0.29l-2.615,0.871l-2.617,0.87l-2.326,0.872l-4.65,0.871l-0.581-0.582l2.907-1.162l2.906-0.87l2.907-1.453l3.489-0.291l1.163-1.161l3.779-1.742l0.582-0.581l2.035-0.873l0.58-2.033l1.455-1.742l-3.198,0.872l-0.872-0.582L36,70.382l-1.745-1.453l-0.872,0.872l-1.162-1.162l-2.617,0.871h-1.743l-0.292-1.453l0.581-1.162l-1.744-0.87l-3.487,0.581l-2.326-1.452l-2.035-0.581v-1.452l-2.035-1.162l1.163-1.742l2.035-1.452l1.163-1.452l2.035-0.29l2.034,0.58l2.036-1.451l2.035,0.29l2.326-0.872l-0.583-1.161l-1.743-0.582l2.034-1.162h-1.453l-2.906,0.871l-0.873,0.581l-2.325-0.581l-3.779,0.291l-4.07-0.871l-1.163-0.871l-3.487-1.742l3.778-1.162l6.105-1.451h2.325l-0.29,1.451h5.814l-2.327-1.742l-3.197-1.162l-2.034-1.162l-2.616-1.161l-3.779-0.871l1.455-1.452l4.941-0.291l3.488-1.162l0.582-1.453l2.906-1.161l2.617-0.291L36,36.116h2.616l4.07-1.452L47.046,35.246z", - "UY" : "M315.056,314.017l1.744,-0.292l2.907,2.033l0.872,0.000l2.907,1.743l2.325,1.451l1.454,2.032l-1.163,1.164l0.872,1.740l-1.453,1.742l-2.907,1.453l-2.035,-0.582l-1.454,0.291l-2.616,-1.162l-2.035,0.000l-1.453,-1.452l0.000,-1.741l0.872,-0.580l-0.291,-2.905l0.872,-2.614l-0.582,2.321z", - "UZ" : "M656.899,128.168l0.000,-1.742l-3.487,-1.160l-2.909,-1.162l-2.034,-1.453l-2.906,-1.742l-1.455,-2.904l-0.871,-0.580l-2.907,0.290l-1.163,-0.580l-0.292,-2.324l-3.778,-1.451l-2.325,1.742l-2.325,0.871l0.583,1.452l-3.199,0.000l0.000,-10.164l6.976,-1.742l0.580,0.291l4.071,2.031l2.324,0.872l2.618,2.614l3.196,-0.291l4.944,-0.290l3.196,2.032l-0.290,2.614l1.453,0.000l0.581,2.323l3.489,0.000l0.580,1.452l1.163,0.000l1.163,-2.032l3.779,-2.033l1.454,-0.291l0.872,0.291l-2.326,1.742l2.035,0.871l2.034,-0.580l3.199,1.451l-3.488,2.032l-2.326,-0.289l-0.873,0.000l-0.581,-0.871l0.581,-1.163l-3.488,0.582l-0.872,1.741l-1.452,1.743l-2.328,-0.290l-0.579,1.162l2.033,0.871l0.582,2.032l-1.744,2.614l-2.035,-0.582l1.453,0.000z", - "VE" : "M277.558,198.442l-0.290,0.871l-1.454,0.291l0.872,1.161l0.000,1.452l-1.454,1.451l1.164,2.324l1.162,-0.290l0.582,-1.743l-0.872,-1.161l0.000,-2.033l3.487,-1.161l-0.582,-1.162l1.163,-0.871l0.872,1.742l2.035,0.291l1.744,1.451l0.000,0.871l2.617,0.000l2.907,-0.289l1.452,1.161l2.326,0.290l1.455,-0.582l0.000,-0.869l3.487,0.000l3.198,-0.291l-2.326,0.871l0.872,1.451l2.326,0.000l2.034,1.454l0.291,2.323l1.453,-0.292l1.164,0.872l-2.036,1.452l-0.290,1.161l0.872,0.871l-0.582,0.581l-1.743,0.580l0.000,1.163l-0.873,0.582l2.035,2.322l0.291,0.580l-0.872,1.162l-3.198,0.871l-2.035,0.580l-0.581,0.582l-2.326,-0.582l-2.034,-0.290l-0.582,0.000l1.163,0.872l0.000,1.741l0.292,1.744l2.324,0.289l0.291,0.581l-2.035,0.871l-0.291,1.162l-1.162,0.291l-2.036,0.870l-0.580,0.582l-2.036,0.289l-1.452,-1.451l-0.872,-2.614l-0.873,-1.162l-0.872,-0.580l1.454,-1.453l-0.291,-0.580l-0.582,-0.580l-0.581,-2.033l0.000,-2.033l0.872,-0.871l0.291,-1.452l-0.872,-0.290l-1.454,0.290l-2.034,-0.290l-1.163,0.290l-2.035,-2.323l-1.453,-0.291l-3.488,0.291l-0.872,-1.162l-0.583,0.000l0.000,-0.581l0.292,-1.161l-0.292,-1.161l-0.580,-0.582l-0.291,-1.161l-1.453,-0.290l0.581,-1.452l0.582,-2.033l0.581,-1.162l1.163,-0.580l0.581,-1.452l-2.035,0.581z", - "VN" : "M771.137,171.726l-3.488,2.324l-2.326,2.614l-0.581,1.742l2.034,2.904l2.617,3.774l2.325,1.743l1.744,2.033l1.163,5.226l-0.290,4.647l-2.327,2.032l-3.195,1.741l-2.037,2.325l-3.486,2.322l-1.164,-1.740l0.872,-1.745l-2.034,-1.451l2.326,-1.162l2.906,-0.290l-1.162,-1.742l4.651,-2.033l0.289,-3.194l-0.581,-2.033l0.581,-2.614l-0.870,-2.032l-2.036,-1.742l-1.745,-2.614l-2.325,-3.194l-3.197,-1.742l0.870,-0.872l1.747,-0.580l-1.165,-2.614l-3.488,0.000l-1.161,-2.322l-1.454,-2.324l1.454,-0.580l2.034,0.000l2.615,-0.291l2.329,-1.451l1.452,0.870l2.615,0.581l-0.581,1.742l1.454,0.872l-2.615,-0.870z", - "VU" : "M935.666,276.266l-0.872,0.291l-0.874-1.163v-0.871L935.666,276.266zM933.628,271.91l0.583,2.324l-0.874-0.292h-0.58l-0.29-0.58v-2.322L933.628,271.91z", - "WS" : "M449.643,156.336l-0.292,-1.452l0.581,0.000l0.000,0.290l0.000,0.291l0.000,4.355l-9.011,-0.290l0.000,7.261l-2.615,0.000l-0.581,1.451l0.581,4.066l-11.046,0.000l-0.582,0.871l0.289,-1.162l6.107,-0.291l0.290,-0.870l1.162,-1.162l0.874,-3.775l4.069,-3.194l1.162,-3.485l0.872,0.000l0.873,-2.323l2.324,-0.291l1.165,0.581l1.161,0.000l0.872,-0.871l-1.745,0.000z", - "YE" : "M619.983,185.084l-2.034,0.872l-0.583,1.161l0.000,0.872l-2.616,1.160l-4.651,1.453l-2.326,1.742l-1.162,0.291l-0.871,-0.291l-1.744,1.161l-1.745,0.581l-2.327,0.291l-0.580,0.000l-0.581,0.871l-0.582,0.000l-0.581,0.871l-1.455,-0.290l-0.870,0.580l-1.745,-0.290l-0.873,-1.452l0.292,-1.452l-0.581,-0.871l-0.581,-2.032l-0.874,-1.163l0.583,-0.289l-0.291,-1.162l0.582,-0.581l-0.291,-1.161l1.161,-0.872l-0.289,-1.161l0.873,-1.451l1.161,0.869l0.582,-0.289l3.197,0.000l0.582,0.289l2.615,0.292l1.164,-0.292l0.580,0.873l1.163,-0.291l2.036,-2.904l2.615,-1.161l7.849,-1.162l2.325,4.645l-0.873,-1.743z", - "ZA" : "M560.392,311.403l-0.29,0.291l-1.165,1.451l-0.87,1.451l-1.453,2.034l-3.198,2.902l-2.034,1.451l-2.036,1.453l-2.906,0.871l-1.452,0.29l-0.293,0.58l-1.743-0.29l-1.161,0.581l-3.199-0.581l-1.452,0.29h-1.164l-2.906,0.872l-2.325,0.58l-1.744,0.871l-1.162,0.29l-1.163-1.161h-0.871l-1.454-1.161v0.292l-0.29-0.583v-1.741l-0.873-1.742l0.873-0.581v-2.032l-2.034-2.613l-1.165-2.323l-2.034-3.484l1.163-1.453l1.163,0.58l0.582,1.162l1.162,0.29l1.744,0.581l1.452-0.29l2.325-1.451v-10.163l0.874,0.58l1.741,2.613l-0.289,1.741l0.582,0.872l2.033-0.29l1.164-1.162l1.452-0.87l0.582-1.453l1.454-0.58l1.162,0.29l1.162,0.872h2.326l1.744-0.582l0.289-0.87l0.584-1.161l1.452-0.293l0.874-1.16l0.871-1.742l2.324-2.032l4.07-2.033h1.163l1.163,0.581l0.871-0.289l1.454,0.289l1.452,3.774l0.582,2.033l-0.29,2.903v1.162l-1.163-0.58l-0.872,0.29l-0.293,0.581l-0.87,1.161l0.292,0.871l1.452,1.451l1.744-0.29l0.581-1.161h2.034l-0.582,2.031l-0.579,2.323l-0.584,1.162L560.392,311.403zM553.416,310.531l-1.162-0.87l-1.163,0.579l-1.453,1.163l-1.454,1.742l2.036,2.032l0.871-0.291l0.581-0.869l1.454-0.292l0.58-0.871l0.873-1.451L553.416,310.531z", - "ZM" : "M563.881,256.229l1.452,1.452l0.582,2.322l-0.582,0.582l-0.290,2.322l0.290,2.323l-0.872,0.873l-0.580,2.612l1.452,0.580l-8.429,2.325l0.292,2.033l-2.036,0.289l-1.744,1.162l-0.291,0.871l-0.872,0.291l-2.616,2.322l-1.454,1.744l-0.872,0.000l-0.872,-0.291l-3.197,-0.291l-0.291,-0.291l-0.290,-0.289l-0.871,-0.582l-1.745,0.000l-2.326,0.582l-1.745,-1.744l-2.034,-2.322l0.289,-8.711l5.524,0.000l0.000,-0.873l0.292,-1.161l-0.583,-1.161l0.291,-1.452l-0.291,-0.871l1.164,0.290l0.000,0.872l1.454,-0.291l1.743,0.291l0.871,1.452l2.036,0.291l1.745,-0.873l0.581,1.452l2.325,0.291l0.872,1.162l1.163,1.451l2.033,0.000l-0.289,-2.904l-0.581,0.581l-2.035,-1.160l-0.584,-0.291l0.293,-2.904l0.580,-3.195l-0.873,-1.161l0.873,-1.742l0.873,-0.290l3.490,-0.581l1.163,0.290l1.162,0.581l1.161,0.581l1.743,0.291l-1.456,-0.870z", - "ZW" : "M559.521,292.237l-1.454,-0.289l-0.871,0.289l-1.163,-0.581l-1.163,0.000l-1.745,-1.162l-2.326,-0.579l-0.580,-1.744l0.000,-0.870l-1.455,-0.292l-2.907,-2.903l-0.870,-1.742l-0.582,-0.580l-1.163,-2.034l3.197,0.291l0.872,0.291l0.872,0.000l1.454,-1.744l2.616,-2.322l0.872,-0.291l0.291,-0.871l1.744,-1.162l2.036,-0.289l0.000,0.870l2.325,0.000l1.452,0.581l0.582,0.582l1.163,0.289l1.452,0.871l0.000,3.486l-0.582,2.032l0.000,2.033l0.293,0.870l-0.293,1.452l-0.289,0.290l-0.874,2.033l2.904,-3.195z" - - } - } - } - } - ); - - return Mapael; - -})); \ No newline at end of file diff --git a/htdocs/public/high/plugins/jquery-mapael/maps/world_countries.min.js b/htdocs/public/high/plugins/jquery-mapael/maps/world_countries.min.js deleted file mode 100644 index 65fd8dbc..00000000 --- a/htdocs/public/high/plugins/jquery-mapael/maps/world_countries.min.js +++ /dev/null @@ -1,13 +0,0 @@ -/*! - * - * Jquery Mapael - Dynamic maps jQuery plugin (based on raphael.js) - * Requires jQuery and Mapael - * - * Map of World by country - * - * @source http://backspace.com/mapapp/javascript_world/ - */ -!function(a){"object"==typeof exports?module.exports=a(require("jquery"),require("mapael")):"function"==typeof define&&define.amd?define(["jquery","mapael"],a):a(jQuery,jQuery.mapael)}(function(a,b){"use strict";return a.extend(!0,b,{maps:{world_countries:{width:1e3,height:400,getCoords:function(a,b){var c=2.752,d=473.75,e=b*c+d,f=-2.753,g=231,h=a*f+g;return{x:e,y:h}},elems:{AE:"M615.622,164.177l0.582,0.000l0.000,0.580l2.324,-0.289l2.326,0.000l1.455,0.000l2.033,-1.743l2.034,-1.743l1.745,-1.742l0.583,0.871l0.291,2.324l-1.456,0.000l-0.289,1.742l0.581,0.291l-1.163,0.580l0.000,1.161l-0.873,1.162l0.000,1.162l-0.580,0.580l-8.430,-1.452l-0.872,-2.613l0.291,0.871z",AF:"M642.364,132.815l2.617,1.162l2.034,-0.291l0.581,-1.452l2.325,-0.291l1.454,-0.870l0.583,-2.323l2.326,-0.291l0.580,-1.162l1.164,0.871l0.871,0.000l1.453,0.000l2.035,0.582l0.871,0.290l2.036,-0.872l0.872,0.582l0.872,-1.162l1.745,0.000l0.289,-0.291l0.290,-1.161l1.455,-1.161l1.454,0.871l-0.291,0.871l0.581,0.000l0.000,2.323l0.873,0.872l1.161,-0.581l1.162,-0.291l1.744,-1.162l1.745,0.290l2.909,0.000l0.580,0.582l-1.743,0.290l-1.454,0.581l-2.907,0.291l-3.197,0.580l-1.454,1.161l0.581,1.162l0.289,1.452l-1.450,1.161l0.289,1.162l-0.872,0.871l-2.616,0.000l1.161,1.743l-1.742,0.580l-1.162,1.743l0.000,1.743l-0.875,0.580l-1.160,0.000l-2.036,0.290l-0.292,0.581l-2.034,0.000l-1.452,1.742l-0.291,2.323l-3.488,1.161l-2.035,-0.289l-0.581,0.580l-1.455,-0.291l-2.907,0.291l-4.649,-1.452l2.615,-2.323l-0.289,-1.742l-2.036,-0.581l-0.290,-1.743l-0.873,-2.032l1.163,-1.742l-1.163,-0.291l0.873,-2.032l-1.161,3.485z",AL:"M530.451,115.973l-0.289,0.871l0.289,1.161l1.165,0.581l0.000,0.872l-0.873,0.291l-0.292,0.869l-1.160,1.453l-0.583,-0.291l0.000,-0.580l-1.454,-0.871l-0.292,-1.452l0.292,-1.742l0.292,-0.872l-0.584,-0.580l0.000,-0.872l1.163,-1.162l0.292,0.291l0.582,0.000l0.581,0.581l0.582,0.290l-0.289,-1.162z",AM:"M593.82,118.005l3.780,-0.580l0.581,0.870l0.871,0.291l-0.289,0.872l1.452,0.871l-0.871,0.871l1.163,0.871l1.162,0.290l0.000,2.032l-0.873,0.000l-1.163,-1.451l0.000,-0.581l-1.160,0.000l-0.873,-0.581l-0.582,0.000l-1.162,-0.871l-2.036,-0.580l0.292,-1.452l0.292,0.872z",AO:"M518.825,247.227l0.582,2.032l0.871,1.453l0.581,0.87l0.874,1.452h2.033l0.873-0.581l1.452,0.581l0.582-0.871l0.581-1.451l1.744-0.291v-0.29h1.452l-0.289,0.871h3.488v1.742l0.579,1.161l-0.579,1.453l0.29,1.74l0.873,1.162v3.195l0.581-0.292h1.162l1.745-0.29h1.161l0.291,0.871l-0.291,1.452l0.583,1.161l-0.292,1.161v0.873h-5.524l-0.289,8.711l2.034,2.322l1.745,1.744l-5.232,1.161l-6.396-0.582l-2.033-1.161h-11.047l-0.581,0.291l-1.745-1.161l-1.743-0.292l-1.455,0.581l-1.452,0.581l-0.29-1.742l0.581-2.612l0.871-2.324v-1.161l0.874-2.613l0.871-1.163l1.452-1.742l0.873-1.16l0.292-2.033v-1.451l-0.874-1.162l-0.871-1.742l-0.581-1.452v-0.581l0.872-1.161l-0.872-2.613l-0.291-1.742l-1.455-1.741l0.292-0.582l1.163-0.581l0.581,0.291l1.162-0.581L518.825,247.227zM508.071,246.646l-0.874,0.291l-0.581-2.031l1.163-1.163l0.87-0.581l0.874,0.871l-0.874,0.58l-0.578,0.872V246.646z",AR:"M293.546,382.836h-2.616l-1.454-0.87h-1.745h-2.907v-6.389l1.163,1.45l1.163,2.033l3.779,1.744l3.778,0.58L293.546,382.836zM295,291.656l1.452,2.033l1.163-2.323l3.198,0.29l0.291,0.581l5.232,4.356l2.326,0.29l3.198,2.033l2.906,1.161l0.291,1.162l-2.617,4.354l2.617,0.58l3.197,0.581l2.326-0.581l2.326-2.032l0.582-2.322l1.163-0.58l1.454,1.45v2.324l-2.325,1.45l-1.745,1.163l-3.198,2.612l-3.779,3.777l-0.582,2.321l-0.872,2.613l0.291,2.905l-0.872,0.58v1.741l-0.29,1.452l3.487,2.323l-0.291,2.033l1.745,1.161l-0.291,1.162l-2.616,3.773l-4.07,1.455l-5.522,0.579l-2.907-0.29l0.582,1.451l-0.582,2.033l0.291,1.452l-1.454,0.871l-2.907,0.58l-2.616-1.161l-1.163,0.871l0.583,2.613l1.744,0.872l1.452-0.872l0.873,1.453l-2.617,0.87l-2.035,1.743l-0.582,2.613l-0.58,1.451h-2.617l-2.035,1.451l-0.873,2.033l2.617,2.032l2.615,0.582l-0.872,2.613l-3.197,1.452l-1.744,3.194l-2.616,1.161l-1.163,1.163l0.872,2.902l2.035,1.742l-1.163-0.291l-2.617-0.29l-6.685-0.58l-1.163-1.453v-2.03h-1.744l-0.873-0.873l-0.291-2.904l2.035-1.161l0.873-1.741l-0.292-1.453l1.455-2.323l0.872-3.775l-0.291-1.451l1.452-0.58l-0.29-1.162l-1.454-0.289l0.873-1.162l-1.162-1.162l-0.582-3.194l1.164-0.581l-0.582-3.193l0.582-2.904l0.872-2.613l1.453-0.87l-0.581-2.615l-0.292-2.613l2.326-1.742l-0.29-2.323l1.744-2.613v-2.613l-0.873-0.58l-1.163-4.646l1.744-2.904l-0.291-2.612l0.872-2.614l2.035-2.324l1.744-1.741l-0.872-1.163l0.582-0.87v-4.646l2.907-1.451l1.163-2.613l-0.291-0.872l2.034-2.324L295,291.656z",AT:"M520.57,98.549l-0.292,1.162l-1.453,0.000l0.582,0.581l-1.164,1.742l-0.291,0.580l-2.616,0.000l-1.162,0.582l-2.326,-0.291l-4.069,-0.580l-0.582,-0.872l-2.615,0.292l-0.291,0.580l-1.746,-0.291l-1.452,0.000l-1.162,-0.581l0.289,-0.581l0.000,-0.580l0.873,-0.291l1.452,0.871l0.292,-0.871l2.326,0.291l2.034,-0.581l1.452,0.000l0.584,0.581l0.290,-0.291l-0.290,-1.742l0.872,-0.580l1.162,-1.162l2.035,0.871l1.453,-1.162l0.871,0.000l2.326,0.581l1.163,0.000l1.455,0.581l-0.292,0.291l-0.292,-0.870z",AU:"M874.039,343.054l2.616,0.871l1.454-0.29l2.325-0.581l1.453,0.291l0.291,3.193l-0.87,0.872l-0.293,2.321l-1.162-0.579l-1.744,1.741h-0.582l-1.743-0.289l-1.745-2.324l-0.289-1.742l-1.744-2.323l0.29-1.451L874.039,343.054zM868.806,268.715l1.163,2.324l1.744-1.163l0.873,1.163l1.452,1.161l-0.289,1.161l0.58,2.324l0.291,1.45l0.873,0.29l0.579,2.323l-0.289,1.453l0.871,1.741l3.198,1.453l1.744,1.451l2.034,1.161l-0.582,0.581l1.745,1.742l0.87,2.904l1.165-0.581l1.163,1.452l0.581-0.581l0.579,2.904l2.036,1.742l1.163,1.161l2.034,2.033l0.873,2.322v1.452v1.742l1.163,2.323v2.323l-0.582,1.452l-0.581,2.323v1.742l-0.582,2.033l-1.162,2.322l-2.034,1.453l-1.163,2.031l-0.872,1.453l-0.872,2.322l-0.871,1.451l-0.873,2.033l-0.292,1.743v0.87l-1.452,1.163h-3.198l-2.326,1.159l-1.452,1.163l-1.454,1.161l-2.325-1.45l-1.743-0.293l0.289-1.45l-1.452,0.58l-2.325,1.744l-2.326-0.581l-1.743-0.582h-1.454l-2.616-0.871l-1.744-1.743l-0.582-2.032l-0.58-1.452l-1.456-1.162l-2.614-0.29l0.873-1.161l-0.581-2.033l-1.455,1.744l-2.326,0.579l1.455-1.452l0.292-1.74l1.161-1.453l-0.291-2.032l-2.324,2.612l-1.745,0.873l-0.873,2.03l-2.323-1.161l0.29-1.452l-1.744-1.741l-1.455-1.161l0.583-0.581l-3.779-1.743h-1.744l-2.616-1.45l-4.942,0.29l-3.778,0.871l-2.907,1.162l-2.615-0.292l-2.908,1.451l-2.616,0.581l-0.289,1.452l-1.163,1.161h-2.325l-1.744,0.291l-2.325-0.581l-2.036,0.29l-2.034,0.291l-1.455,1.452l-0.871-0.291l-1.452,0.871l-1.163,0.873h-2.036h-2.034l-2.906-1.744l-1.452-0.58v-1.742l1.452-0.291l0.581-0.58l-0.29-1.161l0.58-1.743l-0.29-1.741l-1.454-2.614l-0.579-1.742v-1.452l-0.873-1.743l-0.29-0.87l-1.163-1.162l-0.292-2.033l-1.454-2.323l-0.579-1.161l1.163,1.161l-0.874-2.321l1.455,0.58l0.873,1.161v-1.451l-1.454-2.033l-0.292-0.87l-0.582-0.872l0.29-1.742l0.584-0.581l0.289-1.451l-0.289-1.453l1.162-2.032l0.292,2.032l1.161-1.743l2.034-1.159l1.454-1.162l2.034-0.872l1.454-0.29l0.581,0.29l2.325-0.871l1.455-0.29l0.579-0.58l0.582-0.291h1.744l2.616-0.871l1.745-1.161l0.579-1.452l1.744-1.452v-1.162v-1.45l2.036-2.324l1.163,2.324l1.163-0.292l-0.871-1.45l0.871-1.453l1.163,0.871l0.289-2.322l1.454-1.162l0.58-1.162l1.454-0.58v-0.581l1.163,0.291l0.291-0.872l1.163-0.291l1.163-0.289l2.034,1.161l1.743,1.742h1.453l1.744,0.291l-0.581-1.742l1.454-2.032l1.163-0.873l-0.291-0.581l1.162-1.452l1.744-1.161l1.165,0.291l2.323-0.291v-1.452l-2.034-0.87l1.453-0.58l2.035,0.869l1.453,1.163l2.326,0.581l0.581-0.29l1.744,0.87l1.744-0.87l0.871,0.29l0.872-0.581l1.164,1.451l-0.873,1.453l-0.872,1.16h-0.873l0.292,1.162l-0.873,1.452l-1.163,1.161l0.292,0.872l2.325,1.452l2.034,0.87l1.454,0.871l2.034,1.742h0.581l1.452,0.582l0.582,0.87l2.617,1.161l1.745-1.161l0.581-1.452l0.581-1.161l0.29-1.452l0.873-2.322l-0.291-1.161v-0.872l-0.291-1.452l0.291-2.322l0.581-0.29l-0.29-1.163l0.581-1.451l0.582-1.452v-0.872l1.163-0.869l0.58,1.45l0.291,1.743l0.581,0.291l0.291,1.16l0.871,1.163l0.292,1.74L868.806,268.715z",AZ:"M597.6,121.78l0.873,0.581h1.16v0.581l1.163,1.451l-2.033-0.29l-1.163-1.453l-0.582-0.871H597.6zM604.285,117.715h1.165l0.29-0.581l1.744-1.162l1.452,1.452l1.453,2.033h1.165l0.87,0.871h-2.325l-0.292,2.322l-0.579,0.873l-0.873,0.58v1.452l-0.582,0.291l-1.743-1.453l0.871-1.451l-0.871-0.871l-0.872,0.291l-3.488,2.032v-2.032l-1.162-0.291l-1.163-0.871l0.871-0.871l-1.452-0.871l0.289-0.871l-0.871-0.291l-0.581-0.871l0.581-0.29l2.034,0.581l1.454,0.29l0.582-0.29l-1.455-1.453l0.582-0.29h0.873L604.285,117.715z",BA:"M526.091,107.552l0.871,0.000l-0.581,1.161l1.455,1.162l-0.582,1.161l-0.581,0.291l-0.582,0.290l-0.872,0.581l-0.291,1.451l-2.614,-1.161l-0.874,-1.161l-1.162,-0.581l-1.163,-0.871l-0.579,-0.872l-1.454,-1.451l0.581,-0.872l1.162,0.581l0.582,-0.581l1.163,0.000l2.325,0.291l2.033,0.000l-1.163,-0.581z",BD:"M728.989,170.275l-0.292,2.033l-0.871,-0.291l0.291,2.033l-0.872,-1.452l-0.292,-1.452l-0.290,-1.162l-1.163,-1.742l-2.615,0.000l0.289,1.161l-0.873,1.453l-1.161,-0.581l-0.581,0.581l-0.582,-0.292l-1.164,-0.289l-0.290,-2.324l-1.160,-2.032l0.579,-1.742l-1.744,-0.582l0.582,-1.160l1.743,-0.873l-2.034,-1.451l1.163,-2.032l2.034,1.451l1.454,0.000l0.291,2.032l2.616,0.291l2.327,0.000l1.743,0.291l-1.454,2.324l-1.163,0.289l-0.872,1.452l1.454,1.452l0.581,-1.742l0.872,0.000l-1.454,-4.356z",BE:"M482.78,89.837l2.034,0.000l2.617,-0.580l1.745,1.451l1.452,0.582l-0.290,1.742l-0.583,0.291l-0.290,1.451l-2.615,-1.161l-1.162,0.000l-2.036,-1.162l-1.163,-1.161l-1.452,0.000l-0.293,-0.872l-2.036,0.581z",BF:"M465.919,204.54l-1.744,-0.872l-1.452,0.291l-0.872,0.581l-1.164,-0.581l-0.579,-0.871l-1.165,-0.582l-0.290,-1.741l0.873,-1.161l0.000,-0.871l2.034,-2.324l0.291,-1.742l0.872,-0.871l1.452,0.581l1.163,-0.581l0.291,-0.872l2.035,-1.161l0.582,-0.871l2.617,-1.162l1.452,-0.290l0.582,0.581l2.035,0.000l-0.292,1.161l0.292,1.162l1.453,2.033l0.291,1.161l3.198,0.581l-0.291,2.032l-0.583,0.872l-1.161,0.290l-0.584,1.162l-0.870,0.290l-2.616,0.000l-1.163,-0.290l-0.872,0.290l-1.163,0.000l-4.942,0.000l0.000,1.452l-0.290,-2.323z",BG:"M536.265,109.294l0.581,1.162l1.164,-0.291l2.035,0.581l4.071,0.000l1.452,-0.581l3.196,-0.581l2.035,0.872l1.454,0.290l-1.163,1.161l-1.163,2.033l0.872,1.452l-2.324,-0.290l-2.907,0.871l0.000,1.452l-2.326,0.000l-2.034,-0.872l-2.326,0.872l-2.036,-0.290l0.000,-1.743l-1.452,-0.871l0.290,-0.292l-0.290,-0.289l0.580,-0.871l1.164,-0.871l-1.454,-1.162l-0.290,-1.161l-0.871,0.581z",BI:"M554.579,243.451l-0.290,-3.484l-0.583,-1.161l1.743,0.290l0.874,-1.743l1.454,0.291l0.000,0.871l0.582,0.871l0.000,0.872l-0.582,0.580l-1.163,1.454l-0.872,0.870l1.163,-0.289z",BJ:"M481.037,213.833l-2.037,0.290l-0.872,-2.033l0.290,-6.388l-0.579,-0.289l-0.291,-1.454l-0.872,-0.871l-0.873,-0.871l0.582,-1.452l0.870,-0.290l0.584,-1.162l1.161,-0.290l0.583,-0.872l1.161,-0.871l0.874,0.000l2.034,1.453l0.000,1.160l0.580,1.453l-0.580,1.160l0.291,0.873l-1.454,1.452l-0.582,0.871l-0.581,1.743l0.000,1.741l0.289,-4.647z",BN:"M787.998,218.479l1.163,-0.872l2.324,-1.741l0.000,1.451l-0.291,1.743l-1.163,0.000l-0.580,0.870l1.453,1.451z",BO:"M300.812,291.656l-3.197,-0.290l-1.163,2.323l-1.452,-2.033l-3.781,-0.582l-2.033,2.324l-2.036,0.582l-1.163,-4.065l-1.453,-2.906l0.872,-2.612l-1.453,-1.163l-0.291,-2.031l-1.454,-2.033l1.745,-2.904l-1.163,-2.324l0.582,-0.869l-0.582,-0.872l1.163,-1.452l0.000,-2.323l0.290,-2.033l0.582,-0.873l-2.326,-4.355l2.035,0.000l1.163,0.000l0.872,-0.870l2.326,-0.872l1.453,-1.162l3.487,-0.580l-0.289,2.031l0.289,1.163l0.000,1.743l2.909,2.612l3.196,0.290l0.872,1.162l2.035,0.581l1.163,0.872l1.744,0.000l1.453,0.580l0.000,1.743l0.582,0.871l0.000,1.162l-0.582,0.000l0.872,3.195l5.233,0.000l-0.291,1.740l0.291,0.873l1.453,0.871l0.872,1.742l-0.581,2.032l-0.873,1.453l0.291,1.451l-0.872,0.580l0.000,-0.871l-2.615,-1.451l-2.616,0.000l-4.652,0.871l-1.453,2.324l0.000,1.451l-1.163,3.485l0.291,0.581z",BR:"M315.056,314.017l3.778,-3.777l3.198,-2.613l1.745,-1.163l2.325,-1.450l0.000,-2.324l-1.454,-1.450l-1.162,0.580l0.580,-1.742l0.292,-1.454l0.000,-1.741l-1.163,-0.290l-0.872,0.290l-1.163,0.000l-0.290,-1.162l-0.291,-2.613l-0.291,-0.581l-2.035,-0.871l-1.163,0.581l-2.907,-0.581l0.291,-3.776l-0.872,-1.452l0.872,-0.580l-0.291,-1.451l0.873,-1.453l0.581,-2.032l-0.872,-1.742l-1.453,-0.871l-0.291,-0.873l0.291,-1.740l-5.233,0.000l-0.872,-3.195l0.582,0.000l0.000,-1.162l-0.582,-0.871l0.000,-1.743l-1.453,-0.580l-1.744,0.000l-1.163,-0.872l-2.035,-0.581l-0.872,-1.162l-3.196,-0.290l-2.909,-2.612l0.000,-1.743l-0.289,-1.163l0.289,-2.031l-3.487,0.580l-1.453,1.162l-2.326,0.872l-0.872,0.870l-1.163,0.000l-2.035,0.000l-1.744,0.292l-1.163,-0.292l0.292,-4.066l-2.326,1.453l-2.616,0.000l-0.872,-1.453l-1.744,0.000l0.581,-1.451l-1.744,-1.451l-1.163,-2.614l0.872,-0.581l0.000,-1.162l1.744,-0.581l-0.290,-1.451l0.581,-1.162l0.291,-1.161l3.198,-2.034l2.033,-0.289l0.583,-0.580l2.324,0.290l1.163,-7.551l0.291,-1.161l-0.582,-1.743l-1.162,-0.871l0.000,-2.033l1.453,-0.581l0.582,0.290l0.291,-0.871l-1.745,-0.290l0.000,-1.742l5.233,0.000l0.871,-0.871l0.873,0.871l0.582,1.452l0.581,-0.290l1.452,1.451l2.036,-0.289l0.580,-0.582l2.036,-0.870l1.162,-0.291l0.291,-1.162l2.035,-0.871l-0.291,-0.581l-2.324,-0.289l-0.292,-1.744l0.000,-1.741l-1.163,-0.872l0.582,0.000l2.034,0.290l2.326,0.582l0.581,-0.582l2.035,-0.580l3.198,-0.871l0.872,-1.162l-0.291,-0.580l1.453,-0.291l0.582,0.582l-0.290,1.451l0.872,0.290l0.580,1.161l-0.580,1.162l-0.582,2.324l0.582,1.451l0.291,1.162l1.743,1.162l1.454,0.290l0.290,-0.581l0.872,0.000l1.163,-0.581l0.871,-0.871l1.454,0.290l0.872,0.000l1.454,0.291l0.290,-0.581l-0.581,-0.581l0.291,-0.870l1.163,0.289l1.162,-0.289l1.745,0.581l1.161,0.581l0.873,-0.873l0.582,0.292l0.290,0.581l1.453,0.000l0.872,-1.162l0.872,-2.034l1.745,-2.323l0.872,-0.290l0.581,1.452l1.744,4.936l1.453,0.291l0.000,2.032l-2.034,2.323l0.872,0.872l4.942,0.290l0.000,2.904l2.034,-2.033l3.489,1.163l4.650,1.741l1.163,1.453l-0.290,1.451l3.197,-0.872l5.232,1.453l4.070,0.000l4.069,2.322l3.780,3.196l2.034,0.582l2.326,0.289l0.872,0.870l1.162,3.485l0.291,1.452l-1.162,4.646l-1.163,1.742l-4.070,3.775l-1.744,3.194l-2.035,2.323l-0.581,0.290l-0.873,2.034l0.291,4.936l-0.872,4.357l-0.290,1.742l-0.873,1.162l-0.581,3.774l-2.615,3.483l-0.583,2.906l-2.034,1.161l-0.872,1.453l-2.907,0.000l-4.360,1.160l-1.745,1.162l-3.197,0.871l-3.198,2.324l-2.325,2.613l-0.581,2.032l0.581,1.452l-0.581,2.904l-0.581,1.163l-2.035,1.742l-2.907,4.645l-2.325,2.323l-2.036,1.162l-1.162,2.615l-1.744,1.740l-0.872,-1.740l1.163,-1.164l-1.454,-2.032l-2.325,-1.451l-2.907,-1.743l-0.872,0.000l-2.907,-2.033l1.744,-0.292z",BS:"M260.408,165.628h-0.872l-0.581-1.452l-1.163-0.871l0.872-1.743l0.581,0.291l1.164,2.033V165.628zM259.536,157.788l-2.907,0.581l-0.291-1.162l1.454-0.29l1.744,0.29V157.788zM261.86,157.788l-0.58,2.032l-0.583-0.29l0.291-1.451l-1.453-1.162v-0.291L261.86,157.788z",BT:"M726.082,154.594l1.163,0.871l0.000,1.742l-2.326,0.000l-2.326,-0.290l-1.744,0.581l-2.615,-1.162l0.000,-0.581l1.743,-2.033l1.454,-0.580l2.035,0.580l1.453,0.000l-1.163,-0.872z",BW:"M544.405,281.784l0.582,0.580l0.870,1.742l2.907,2.903l1.455,0.292l0.000,0.870l0.580,1.744l2.326,0.579l1.745,1.162l-4.071,2.033l-2.324,2.032l-0.871,1.742l-0.874,1.161l-1.452,0.293l-0.584,1.161l-0.289,0.870l-1.744,0.582l-2.327,0.000l-1.162,-0.872l-1.162,-0.290l-1.454,0.580l-0.582,1.453l-1.452,0.870l-1.164,1.162l-2.033,0.290l-0.582,-0.872l0.289,-1.741l-1.741,-2.613l-0.874,-0.580l0.000,-7.843l2.908,-0.289l0.000,-9.582l2.033,-0.291l4.361,-0.871l0.871,1.162l1.744,-1.162l0.874,0.000l1.743,-0.582l0.291,0.291l-1.163,-2.034z",BY:"M538.301,82.579l2.907,0.000l2.908,-0.872l0.578,-1.452l2.326,-1.162l-0.290,-1.160l1.745,-0.291l2.906,-1.162l2.908,0.581l0.290,0.872l1.454,-0.291l2.615,0.581l0.289,1.161l-0.578,0.871l1.743,1.743l1.163,0.581l-0.292,0.290l2.036,0.580l0.872,0.872l-1.163,0.580l-2.326,-0.290l-0.581,0.290l0.871,0.872l0.583,2.033l-2.328,0.000l-0.870,0.580l-0.290,1.451l-0.873,-0.289l-2.615,0.000l-0.583,-0.581l-1.162,0.581l-1.163,-0.291l-2.036,-0.290l-3.196,-0.581l-2.615,-0.291l-2.035,0.291l-1.746,0.581l-1.163,0.000l0.000,-1.161l-0.871,-1.162l1.453,-0.582l0.000,-1.161l-0.582,-0.870l0.289,1.452z",BZ:"M228.433,181.89l0.000,-0.290l0.290,-0.290l0.582,0.580l0.872,-1.742l0.580,0.000l0.000,0.290l0.581,0.000l-0.289,0.872l-0.292,1.162l0.292,0.289l-0.292,1.162l0.000,0.291l-0.290,1.161l-0.582,0.872l-0.291,0.000l-0.581,0.870l-0.872,0.000l0.292,-2.903l0.000,2.324z",CA:"M298.487,102.905l2.035,0.291h2.617l-1.454,1.162l-0.872,0.29l-3.488-1.162l-0.873-1.161l1.163-0.872L298.487,102.905zM303.719,95.937h-1.454l-3.488-0.872l-2.616-1.162l0.872-0.291l3.779,0.581l2.616,1.162L303.719,95.937zM133.669,97.679l-1.163,0.291l-4.651-1.162l-0.872-1.162l-2.324-0.871l-0.582-0.871l-2.907-0.581l-0.872-1.452V91.29l2.907,0.581l1.744,0.58l2.617,0.291l0.872,0.872l1.454,1.162l2.615,1.162L133.669,97.679zM319.125,91.581l-1.744,2.323l1.744-0.871l2.035,0.581l-1.163,0.871l2.617,0.873l1.163-0.582l2.906,0.871l-0.872,1.742l1.744-0.291l0.292,1.452l0.872,1.742l-1.164,2.323h-1.162l-1.744-0.29l0.582-2.323l-0.872-0.29l-3.198,2.323h-1.453l1.744-1.452l-2.617-0.581h-2.907h-5.232l-0.58-0.872l1.744-0.871l-1.164-0.871l2.326-1.451l2.906-4.356l1.745-1.743l2.325-0.87h1.163l-0.582,0.87L319.125,91.581zM108.38,82.289l2.616-0.291l-0.58,3.195l2.324,2.323h-1.163l-1.744-1.453l-0.871-1.161l-1.454-0.871l-0.582-1.162l0.291-0.871L108.38,82.289zM255.466,59.928l-0.872,1.453l-1.453-0.291l-0.582-0.58v-0.291l1.163-0.872h1.163L255.466,59.928zM248.198,58.477l-3.197,1.451h-1.744l-0.581-0.581l2.034-1.452h3.779L248.198,58.477zM239.478,50.346l0.291,1.161l1.454-0.29l1.744,0.581l2.906,1.162l3.198,0.871l0.29,1.162l2.035-0.29l1.745,0.871l-2.326,0.872l-4.361-0.581l-1.453-1.161l-2.617,1.452l-4.069,1.451l-0.872-1.742l-3.779,0.291l2.325-1.162l0.291-2.323l1.163-2.613L239.478,50.346zM265.058,46.28l-3.198,0.291l-0.58-1.453l1.162-1.451l2.326-0.581l2.326,0.871v1.161l-0.291,0.292L265.058,46.28zM210.41,40.763l-1.744,1.162l-3.488-0.872l-2.325,0.291l-3.779-1.162l2.325-0.872l2.035-1.162l2.907,0.581l1.744,0.581l0.581,0.581L210.41,40.763zM224.653,39.891v2.614l3.488-2.032l3.197,1.742l-0.581,2.033l2.616,2.032l2.907-2.032l2.035-2.324v-3.195l4.069,0.292l4.07,0.29l3.488,1.452l0.291,1.452l-2.035,1.452l1.744,1.451l-0.291,1.162l-5.231,2.033l-3.779,0.291l-2.907-0.581l-0.872,1.161l-2.617,2.323l-0.872,1.453l-3.196,1.743l-3.78,0.29l-2.325,1.162l-0.292,1.741l-3.197,0.291l-3.198,2.324l-2.907,2.904l-1.162,2.323l-0.292,3.194l4.07,0.291l1.454,2.614l1.163,2.033l3.779-0.582l5.232,1.453l2.616,0.871l2.035,1.452l3.489,0.582l2.907,1.162l4.651,0.29l2.906,0.291l-0.581,2.323l0.872,2.614l2.035,3.194l4.07,2.613l2.326-0.871l1.452-2.903l-1.452-4.357l-2.035-1.452l4.36-1.162l3.197-2.033l1.455-1.742l-0.292-2.032l-1.744-2.324L257.5,69.22l3.489-2.904l-1.162-2.323l-1.163-4.355l2.034-0.582l4.651,0.582l2.907,0.29l2.326-0.581l2.616,0.872l3.198,1.451l0.872,1.162l4.941,0.291v2.323l0.872,3.484l2.616,0.291l1.745,1.742l4.07-1.742l2.616-2.904l1.744-1.161l2.325,2.323l3.488,3.484l3.198,3.195l-1.163,1.742l3.487,1.742l2.616,1.451l4.36,0.872l1.744,0.871l1.163,2.324l2.035,0.29l1.163,0.872l0.291,3.194l-2.035,1.161l-2.035,0.872l-4.65,0.871l-3.198,2.323l-4.942,0.582l-5.814-0.582h-4.07h-2.906l-2.326,2.033l-3.488,1.162l-3.779,3.775l-3.197,2.613l2.325-0.58l4.36-3.486l5.814-2.322l4.069-0.291l2.326,1.162l-2.616,2.032l0.872,2.905l0.872,2.032l3.779,1.452l4.361-0.581l2.906-2.903l0.292,2.032l1.744,0.871l-3.489,1.742l-6.104,1.743l-2.616,1.161l-3.198,2.033l-2.034-0.291l-0.29-2.323l4.94-2.324h-4.36l-3.197,0.291l-1.744-1.452v-3.775l-1.163-0.87l-2.035,0.581l-0.872-0.581l-2.035,2.032l-0.873,2.033l-0.872,1.162l-1.162,0.58h-0.872l-0.292,0.871h-5.232h-4.07l-1.163,0.581l-2.907,1.743l-0.291,0.29l-0.872,1.162h-2.616h-2.616l-1.454,0.291l0.582,0.581l0.291,0.871l-0.291,0.291l-3.488,1.453l-2.907,0.29l-3.197,1.452h-0.581l-0.872-0.29l-0.292-0.581v-0.29l0.581-0.873l1.163-1.451l0.872-1.742l-0.58-2.323l-0.583-2.613l-2.906-1.162l0.581-0.581l-0.581-0.29h-0.581l-0.583-0.291l-0.29-0.871l-0.583,0.291h-0.58v-0.291l-0.582-0.291l-0.291-0.58l-2.035-0.871l-2.326-0.872l-2.616-1.162l-2.617-1.161l-2.326,0.87h-0.872l-3.488-0.581l-2.325,0.291l-2.616-0.871l-2.907-0.291l-1.744-0.291l-0.871-0.581l-0.582-1.452h-0.873v1.161h-5.813h-9.302h-9.302h-8.43h-8.138h-8.14h-8.43h-2.616h-8.139h-7.849h-0.582l-5.231-2.613l-2.036-1.452l-4.941-0.871l-1.454-2.614l0.291-1.742l-3.488-1.161l-0.291-2.033l-3.488-2.033v-1.452l1.454-1.452v-1.743l-4.65-1.742l-2.908-2.903l-1.744-2.033l-2.616-1.162l-1.744-1.162l-1.454-1.451l-2.616,0.871L95.3,68.93l-2.326-1.741l-2.035-1.162l-2.616-0.872h-2.616V49.475V39.311l5.232,0.581l4.069,1.453h2.907l2.616-0.871l3.198-0.871l4.07,0.29l4.069-1.162l4.651-0.87l1.744,1.162l2.035-0.581l0.872-1.452l1.744,0.29l4.651,2.613l3.778-1.742l0.292,2.033l3.487-0.581l0.872-0.872l3.487,0.292l4.071,1.161l6.395,0.871l3.779,0.582l2.907-0.291l3.488,1.452l-3.779,1.453l4.94,0.581l7.559-0.291l2.325-0.581l2.906,1.742l2.908-1.451l-2.616-1.162l1.744-0.871l3.196-0.291l2.326-0.29l2.035,0.871l2.907,1.452l3.197-0.291l4.65,1.162l4.361-0.291h4.07l-0.291-1.742l2.326-0.581l4.36,1.162v2.614l1.744-2.324h2.035l1.454-2.614l-3.198-1.742l-3.196-1.162l0.291-2.903l3.198-2.033l3.778,0.29l2.617,1.453l3.779,2.904l-2.326,1.451L224.653,39.891zM159.54,29.728l-1.453,1.453l6.104-0.871l3.779,1.451l3.197-1.451l2.617,0.871l2.035,2.613l1.454-1.161l-1.745-2.615l2.327-0.581l2.615,0.581l3.198,1.162l1.744,2.613l0.872,2.033l4.651,1.162l4.941,1.452l-0.29,1.162l-4.651,0.29l1.744,0.872l-0.873,1.162l-4.941-0.581l-4.651-0.581h-3.198l-5.231,1.162l-6.977,0.291l-4.941,0.29l-1.454-1.452l-3.778-0.58l-2.617,0.29l-3.198-2.323l1.744-0.291l4.36-0.29h3.778l3.488-0.291l-5.233-0.871l-5.813,0.291h-4.069l-1.454-1.162l6.396-0.871h-4.07l-4.941-0.872l2.325-2.033l2.036-1.162l7.267-1.452L159.54,29.728zM185.993,29.147l-2.326,1.742l-4.361-2.032l1.163-0.291h3.488L185.993,29.147zM263.604,30.018l0.291,0.582h-2.907h-2.906l-3.197,0.29l-0.582-0.29l-3.198-1.452l0.291-0.872l1.163-0.291l6.396,0.291L263.604,30.018zM235.409,29.728l2.325,1.743l2.326-2.323l6.977-0.872l4.941,2.614l-0.582,2.033l5.523-0.871l2.616-1.162l6.104,1.451l3.78,1.162l0.29,1.162l5.233-0.581l2.906,1.742l6.687,1.162l2.326,1.161l2.616,2.614l-5.233,1.162l6.687,1.742l4.359,0.582l3.779,2.613l4.36,0.29l-0.872,1.743l-4.651,3.194l-3.488-1.162l-4.36-2.613l-3.488,0.291l-0.291,1.742l2.907,1.452l3.778,1.452l0.872,0.581l2.036,2.904l-1.164,1.743l-3.488-0.582l-6.685-2.323l3.779,2.323l2.906,1.743l0.292,0.871l-7.268-0.871l-6.104-1.743l-3.198-1.161l0.872-0.871l-4.07-1.451l-4.07-1.453v0.871l-7.848,0.582L257.5,53.25l1.745-2.033h5.232l5.814-0.291l-1.163-0.871l1.163-1.452l3.488-2.613l-0.872-1.162l-0.873-1.162l-4.36-1.162l-5.522-1.161l1.743-0.581l-2.907-1.742h-2.325l-2.326-1.162l-1.453,0.87l-4.942,0.292l-9.883-0.581l-5.814-0.581l-4.651-0.582l-2.325-0.871l2.908-1.451h-3.78l-0.872-2.615l2.036-2.613l2.906-0.87l6.977-0.872L235.409,29.728zM197.62,27.985l3.198,0.582l4.942-0.582l0.582,0.872l-2.617,1.452l4.361,1.162l-0.582,2.323l-4.361,1.162l-2.907-0.291l-1.744-0.871l-6.976-2.323l0.29-0.871l5.523,0.29l-3.196-1.742L197.62,27.985zM217.096,30.89l-2.907,2.033h-3.197l-1.454-2.613v-1.452l1.454-1.162l2.616-0.581h5.814l5.232,0.871l-4.069,2.324L217.096,30.89zM142.099,34.665l-7.267,1.162l-1.453-1.162l-6.396-1.452l1.455-1.162l1.743-2.033l2.326-1.742l-2.615-1.742l9.301-0.29l4.07,0.581h6.976l2.616,0.871l2.907,1.162l-3.488,0.87l-6.686,1.743l-3.488,2.032V34.665zM216.224,24.792l-1.744,1.162l-3.778-0.291l-3.489-0.871l1.453-1.162l4.07-0.58l2.326,0.871L216.224,24.792zM202.562,19.855l2.035,1.452l0.291,1.452l-1.454,2.033l-4.36,0.291l-2.908-0.582v-1.452h-4.65v-2.033h2.906l4.07-0.871l4.07,0.291V19.855zM175.819,21.307l1.163,1.162l2.324-0.582l2.907,0.291l0.582,1.161l-1.745,1.453l-9.301,0.291l-6.977,1.162h-4.07l-0.291-0.873l5.523-1.16l-12.208,0.29l-4.07-0.29l3.779-2.904l2.616-0.581l7.848,0.871l4.942,1.453l4.651,0.29l-3.779-2.613l2.326-0.871l2.907,0.29L175.819,21.307zM213.026,18.984l3.198,0.872h5.523l2.326,0.871l-0.582,1.161l2.906,0.582l1.744,0.58h3.779l4.069,0.29l4.361-0.58l5.522-0.29l4.651,0.29l2.907,0.871l0.582,1.162l-1.744,0.871l-4.07,0.582l-3.488-0.291l-7.848,0.291h-5.813l-4.36-0.291l-7.268-0.871l-0.872-1.453l-0.582-1.451l-2.617-1.162l-5.814-0.291l-3.196-0.871l1.163-1.162L213.026,18.984zM154.018,17.532l-0.582,2.033l-2.035,0.871l-2.616,0.29l-4.941,1.161l-4.65,0.291l-3.488-0.582l4.651-2.032l5.523-1.742h4.36L154.018,17.532zM215.351,17.823h-1.163l-5.231-0.291l-0.582-0.581h5.522l1.744,0.581L215.351,17.823zM170.586,17.243l-5.232,0.87l-4.071-0.87l2.326-0.873l3.779-0.29l4.07,0.29L170.586,17.243zM172.04,14.919l-3.488,0.291H163.9v-0.291l2.907-0.872l1.453,0.29L172.04,14.919zM210.12,16.37l-4.07,0.581l-2.326-0.87l-1.163-0.871l-0.291-1.162h3.488l1.744,0.29l3.198,0.872L210.12,16.37zM198.201,15.499l1.163,1.162l-4.361-0.291l-4.65-0.871h-6.104l2.616-0.871l-3.198-0.581l-0.291-1.162l5.524,0.291l7.266,1.161L198.201,15.499zM234.246,12.015l3.198,0.871l-3.779,0.582l-4.942,2.322h-4.942l-5.813-0.291l-2.907-1.162v-0.87l2.325-0.872h-4.941l-3.198-0.872l-1.744-1.162l2.034-1.161l1.744-0.871l2.907-0.291l-1.163-0.581l6.395-0.29l3.489,1.452l4.651,0.871l4.36,0.29L234.246,12.015zM285.116,2.432l7.558,0.29l5.813,0.291l4.942,0.58v0.873l-6.685,1.161l-6.687,0.581l-2.616,0.582h6.104L287.15,8.53l-4.651,0.581l-4.651,2.324l-5.813,0.58l-1.744,0.581l-8.139,0.291l3.778,0.291l-2.035,0.58l2.326,1.162l-2.616,1.162l-4.36,0.581l-1.162,1.162l-3.779,0.871l0.291,0.581h4.65v0.581l-7.267,1.741l-7.268-0.871l-7.848,0.291l-4.361-0.291h-4.941l-0.581-1.452l5.231-0.581l-1.454-2.033h1.744l7.268,1.162l-3.779-1.742l-4.36-0.582l2.326-1.162l4.651-0.581l0.872-0.871l-3.779-1.162l-1.163-1.451h7.558l2.034,0.29l4.361-0.87l-6.105-0.291h-9.883L227.85,8.53l-2.325-1.162l-3.197-0.581l-0.582-1.162l4.07-0.291l3.197-0.29l5.232-0.291l4.07-1.162l3.488,0.291l2.906,0.582l2.327-1.453l3.487-0.291l4.942-0.29l8.429-0.291l1.454,0.291l7.849-0.291h6.104L285.116,2.432z",CD:"M558.648,221.382l-0.289,3.196l1.162,0.289l-0.873,0.871l-0.871,0.872l-1.163,1.451l-0.581,1.161l-0.291,2.324l-0.582,0.871l0.000,2.324l-0.871,0.580l0.000,1.742l-0.290,0.290l-0.293,1.453l0.583,1.161l0.290,3.484l0.581,2.324l-0.290,1.452l0.290,1.742l1.744,1.452l1.455,3.485l-1.163,-0.290l-3.490,0.581l-0.873,0.290l-0.873,1.742l0.873,1.161l-0.580,3.195l-0.293,2.904l0.584,0.291l2.035,1.160l0.581,-0.581l0.289,2.904l-2.033,0.000l-1.163,-1.451l-0.872,-1.162l-2.325,-0.291l-0.581,-1.452l-1.745,0.873l-2.036,-0.291l-0.871,-1.452l-1.743,-0.291l-1.454,0.291l0.000,-0.872l-1.164,-0.290l-1.161,0.000l-1.745,0.290l-1.162,0.000l-0.581,0.292l0.000,-3.196l-0.873,-1.162l-0.290,-1.740l0.579,-1.453l-0.579,-1.161l0.000,-1.743l-3.488,0.000l0.289,-0.871l-1.452,0.000l0.000,0.290l-1.745,0.291l-0.581,1.452l-0.582,0.871l-1.452,-0.581l-0.873,0.581l-2.033,0.000l-0.874,-1.452l-0.581,-0.871l-0.871,-1.453l-0.582,-2.032l-8.140,-0.290l-1.162,0.581l-0.581,-0.291l-1.163,0.581l-0.582,-0.871l0.874,-0.291l0.000,-1.161l0.578,-0.872l0.874,-0.580l0.871,0.291l0.873,-0.873l1.452,0.000l0.292,0.582l0.871,0.580l1.744,-1.741l1.456,-1.454l0.870,-0.870l-0.289,-2.033l1.162,-2.903l1.453,-1.162l1.746,-1.452l0.290,-0.871l0.000,-1.162l0.581,-0.871l-0.292,-1.451l0.292,-2.614l0.579,-1.451l0.874,-1.744l0.291,-1.452l0.289,-2.032l0.874,-1.452l1.452,-0.870l2.326,0.870l1.745,1.162l2.033,0.290l2.036,0.580l0.871,-1.742l0.291,-0.290l1.454,0.290l2.907,-1.160l1.163,0.579l0.871,-0.290l0.291,-0.580l1.163,-0.291l2.034,0.291l1.744,0.000l0.873,-0.291l1.743,2.323l1.161,0.291l0.873,-0.291l1.166,0.000l1.450,-0.581l0.874,1.162l-2.325,-2.032z",CF:"M515.918,210.638l2.325,-0.290l0.293,-0.871l0.579,0.291l0.582,0.580l3.488,-1.162l1.163,-1.161l1.454,-0.872l-0.292,-0.870l0.871,-0.291l2.618,0.291l2.617,-1.452l2.034,-2.905l1.452,-1.161l1.744,-0.581l0.292,1.162l1.452,1.742l0.000,1.162l-0.289,1.163l0.000,0.870l0.871,0.870l2.327,1.162l1.452,1.162l0.000,0.871l1.743,1.452l1.163,1.161l0.873,1.743l2.034,0.871l0.292,0.871l-0.873,0.291l-1.744,0.000l-2.034,-0.291l-1.163,0.291l-0.291,0.580l-0.871,0.290l-1.163,-0.579l-2.907,1.160l-1.454,-0.290l-0.291,0.290l-0.871,1.742l-2.036,-0.580l-2.033,-0.290l-1.745,-1.162l-2.326,-0.870l-1.452,0.870l-0.874,1.452l-0.289,2.032l-1.744,-0.290l-2.036,-0.290l-1.452,1.451l-1.455,2.325l-0.289,-0.581l-0.292,-1.453l-1.163,-0.872l-1.161,-1.452l0.000,-0.870l-1.454,-1.452l0.289,-0.870l-0.289,-1.162l0.289,-2.033l0.581,-0.581l-1.455,2.614z",CG:"M509.523,244.033l-0.874,-0.871l-0.870,0.581l-1.163,1.163l-2.325,-2.906l2.035,-1.742l-0.872,-1.743l0.872,-0.580l1.745,-0.291l0.289,-1.451l1.454,1.451l2.616,0.000l0.581,-1.162l0.582,-1.741l-0.291,-2.324l-1.454,-1.452l1.163,-3.194l-0.581,-0.580l-2.036,0.000l-0.871,-1.162l0.291,-1.451l3.488,0.289l2.034,0.581l2.327,0.871l0.289,-1.741l1.455,-2.325l1.452,-1.451l2.036,0.290l1.744,0.290l-0.291,1.452l-0.874,1.744l-0.579,1.451l-0.292,2.614l0.292,1.451l-0.581,0.871l0.000,1.162l-0.290,0.871l-1.746,1.452l-1.453,1.162l-1.162,2.903l0.289,2.033l-0.870,0.870l-1.456,1.454l-1.744,1.741l-0.871,-0.580l-0.292,-0.582l-1.452,0.000l-0.873,0.873l0.871,0.291z",CH:"M500.22,100.292l0.000,0.580l-0.289,0.581l1.162,0.581l1.452,0.000l-0.289,1.162l-1.163,0.290l-2.034,-0.290l-0.583,1.161l-1.453,0.000l-0.291,-0.290l-1.744,0.871l-1.160,0.000l-1.165,-0.581l-0.871,-1.161l-1.454,0.580l0.000,-1.451l2.034,-1.453l0.000,-0.580l1.163,0.291l0.873,-0.582l2.324,0.000l0.582,-0.580l-2.906,-0.871z",CI:"M465.919,217.317l-1.162,0.000l-2.034,-0.580l-1.744,0.000l-3.197,0.580l-2.036,0.581l-2.615,1.162l-0.582,0.000l0.289,-2.323l0.293,-0.291l-0.293,-1.162l-1.162,-1.161l-0.871,-0.290l-0.582,-0.581l0.582,-1.452l-0.291,-1.162l0.000,-0.870l0.581,0.000l0.000,-1.162l-0.290,-0.581l0.290,-0.290l1.162,-0.290l-0.871,-2.323l-0.581,-1.163l0.290,-0.871l0.581,-0.290l0.292,-0.292l0.870,0.582l2.037,0.000l0.582,-0.871l0.581,0.000l0.582,-0.291l0.579,1.162l0.583,-0.290l1.161,-0.292l1.165,0.582l0.579,0.871l1.164,0.581l0.872,-0.581l1.452,-0.291l1.744,0.872l0.874,3.775l-1.164,2.323l-0.872,3.195l1.162,2.323l0.000,-1.161z",CL:"M284.825,375.578v6.389h2.907h1.745l-0.872,1.162l-2.326,0.87l-1.454-0.291l-1.744-0.289l-1.744-0.582l-2.907-0.58l-3.487-1.451l-2.907-1.453l-3.779-3.193l2.326,0.58l3.778,2.033l3.78,0.87l1.453-1.16l0.872-2.033l2.326-1.162L284.825,375.578zM285.987,289.915l1.163,4.065l2.035-0.582l0.291,0.872l-1.163,2.613l-2.907,1.451v4.646l-0.582,0.87l0.872,1.163l-1.744,1.741l-2.035,2.324l-0.872,2.614l0.291,2.612l-1.744,2.904l1.163,4.646l0.873,0.58v2.613l-1.744,2.613l0.29,2.323l-2.326,1.742l0.292,2.613l0.581,2.615l-1.453,0.87l-0.872,2.613l-0.582,2.904l0.582,3.193l-1.164,0.581l0.582,3.194l1.162,1.162l-0.873,1.162l1.454,0.289l0.29,1.162l-1.452,0.58l0.291,1.451l-0.872,3.775l-1.455,2.323l0.292,1.453l-0.873,1.741l-2.035,1.161l0.291,2.904l0.873,0.873h1.744v2.03l1.163,1.453l6.685,0.58l2.617,0.29h-2.617l-1.163,0.581l-2.616,1.162l-0.291,2.612h-1.162l-3.198-0.87l-3.198-2.032l-3.488-1.453l-0.872-1.74l0.872-1.744l-1.454-1.742l-0.291-4.646l1.163-2.614l2.907-2.323l-4.07-0.581l2.617-2.612l0.872-4.357l2.907,0.873l1.453-5.808l-1.744-0.581l-0.872,3.484l-1.744-0.582l0.872-3.773l0.872-5.228l1.454-1.742l-0.872-2.905l-0.291-2.902l1.163-0.29l1.744-4.356l1.744-4.356l1.162-4.064l-0.581-4.065l0.872-2.323l-0.292-3.485l1.744-3.192l0.292-5.518l0.872-5.519l0.871-6.388v-4.356l-0.582-3.774l1.163-0.872l0.872-1.45l1.454,2.032l0.291,2.031l1.454,1.163l-0.872,2.612L285.987,289.915z",CM:"M509.814,224.578l-0.291,0.000l-1.744,0.289l-1.744,-0.289l-1.163,0.000l-4.652,0.000l0.582,-2.034l-1.163,-1.742l-1.163,-0.582l-0.581,-1.160l-0.872,-0.581l0.000,-0.581l0.872,-2.032l1.164,-2.614l0.872,0.000l1.743,-1.743l0.871,0.000l1.746,1.161l1.744,-0.870l0.291,-1.162l0.580,-1.161l0.581,-1.452l1.455,-1.161l0.581,-1.742l0.582,-0.582l0.289,-1.452l0.873,-1.742l2.326,-2.323l0.000,-0.872l0.289,-0.580l-1.163,-0.871l0.292,-0.871l0.582,-0.291l1.162,1.742l0.292,1.743l-0.292,2.032l1.453,2.324l-1.453,0.000l-0.581,0.289l-1.455,-0.289l-0.579,1.161l1.742,1.743l1.165,0.581l0.289,1.161l0.872,1.743l-0.290,0.870l-1.455,2.614l-0.581,0.581l-0.289,2.033l0.289,1.162l-0.289,0.870l1.454,1.452l0.000,0.870l1.161,1.452l1.163,0.872l0.292,1.453l0.289,0.581l-0.289,1.741l-2.327,-0.871l-2.034,-0.581l3.488,0.289z",CN:"M777.533,179.567l-2.325,1.451l-2.326-0.871v-2.323l1.163-1.453l3.196-0.581h1.455l0.581,0.872l-1.163,1.451L777.533,179.567zM825.204,94.194l4.651,0.871l3.488,1.742l0.871,2.614h4.361l2.325-0.872l4.651-0.871l-1.454,2.323l-1.163,1.162l-0.871,2.904l-2.034,2.613l-3.198-0.291l-2.325,0.871l0.581,2.324l-0.29,3.194l-1.454,0.291v1.161l-1.744-1.451l-1.163,1.451l-4.067,1.162l0.289,1.453h-2.325l-1.452-0.872l-1.745,2.032l-3.198,1.453l-2.033,1.742l-3.781,0.871l-2.033,1.162l-3.197,0.871l1.452-1.453l-0.58-1.16l2.325-1.742l-1.455-1.453l-2.324,1.162l-3.197,1.742l-1.745,1.742l-2.615,0.291l-1.452,1.16l1.452,1.743l2.326,0.581v1.162l2.325,0.872l2.906-2.033l2.616,1.162h1.744l0.289,1.452l-3.777,0.871l-1.454,1.452l-2.615,1.453l-1.453,1.742l3.196,1.742l0.872,2.614l1.743,2.613l1.745,2.033v2.033l-1.745,0.581l0.873,1.453l1.455,0.87l-0.292,2.324l-0.873,2.323h-1.452l-2.034,3.194l-2.326,3.484l-2.327,3.195l-3.778,2.613l-4.069,2.323l-2.905,0.291l-1.744,1.162l-0.873-0.871l-1.743,1.452l-3.779,1.451l-2.906,0.291l-0.872,2.904l-1.454,0.29l-0.873-2.033l0.584-1.162l-3.488-0.872l-1.455,0.581l-2.615-0.87l-1.454-0.873l0.581-1.742l-2.615-0.581l-1.452-0.871l-2.328,1.451l-2.615,0.291h-2.034l-1.454,0.58l-1.453,0.582l0.29,2.903h-1.455l-0.289-0.581v-1.161l-2.034,0.87l-1.163-0.581l-2.035-1.162l0.872-2.033l-1.743-0.581l-0.873-2.613l-2.905,0.58l0.29-3.484l2.615-2.323l0.291-2.033l-0.291-2.323l-1.161-0.581l-0.873-1.452h-1.455l-3.194-0.291l1.161-1.161l-1.455-1.743l-2.034,1.162l-2.033-0.581l-3.198,1.742l-2.615,2.033l-2.326,0.29l-1.162-0.872h-1.453l-2.035-0.58l-1.454,0.58l-1.743,2.033l-0.292-2.033l-1.744,0.582L713,154.013l-2.906-0.581l-2.326-1.162l-2.034-0.581l-1.162-1.452l-1.454-0.291l-2.615-1.742l-2.326-0.871l-1.162,0.581l-3.781-2.033l-2.615-1.742l-0.873-2.904l2.036,0.291v-1.453l-1.163-1.161l0.293-2.324l-2.908-3.194l-4.361-1.161l-0.87-2.033l-2.036-1.451l-0.58-0.582l-0.292-1.742v-1.161l-1.743-0.582l-0.874,0.291l-0.579-2.324l0.579-0.871l-0.289-0.581l2.615-1.162l2.036-0.58l2.906,0.291l0.871-1.744l3.489-0.29l1.162-1.162l4.362-1.451l0.289-0.581l-0.289-1.743l2.033-0.581l-2.617-4.646l5.524-1.162l1.452-0.58l2.034-4.938l5.232,0.873l1.744-1.162v-2.904l2.328-0.291l2.033-1.742l1.163-0.29l0.581,2.032l2.326,1.452l4.067,0.872l1.746,2.323l-0.873,3.194l0.873,1.162l3.197,0.582l3.778,0.29l3.488,1.742l1.743,0.291l1.163,2.613l1.455,1.453h3.196l5.522,0.58l3.78-0.291l2.615,0.291l4.069,1.743h3.489l1.162,0.871l3.197-1.451l4.361-0.873l4.359-0.29l3.198-0.871l1.745-1.452l2.033-0.871l-0.581-0.872l-0.873-1.161l1.454-1.742l1.745,0.29l2.614,0.581l2.908-1.452l4.069-1.162l2.034-1.742l2.035-0.872l4.07-0.29l2.034,0.29l0.291-1.162l-2.325-1.741l-2.326-0.872l-2.036,0.872l-2.904-0.291l-1.455,0.291l-0.581-1.162l1.744-2.613l1.453-2.324l3.197,1.162l4.068-1.742v-1.162l2.328-2.903l1.452-0.872v-1.452l-1.452-0.871l2.325-1.162l3.486-0.58h3.491l4.067,0.58l2.617,1.162l1.744,2.903l0.871,1.161l0.874,1.453L825.204,94.194z", -CO:"M266.221,231.256l-1.163,-0.582l-1.163,-0.870l-0.871,0.290l-2.326,-0.290l-0.582,-1.161l-0.580,0.000l-2.907,-1.452l-0.291,-0.872l1.162,-0.290l-0.290,-1.451l0.582,-0.873l1.452,-0.289l1.164,-1.744l1.161,-1.452l-1.161,-0.580l0.580,-1.452l-0.580,-2.613l0.580,-0.580l-0.580,-2.325l-1.164,-1.451l0.582,-1.451l0.872,0.289l0.582,-0.871l-0.872,-1.741l0.290,-0.292l1.454,0.000l2.034,-2.031l1.163,-0.291l0.000,-0.872l0.581,-2.322l1.744,-1.162l1.745,0.000l0.000,-0.582l2.325,0.291l2.035,-1.451l1.163,-0.582l1.454,-1.451l0.872,0.290l0.580,0.581l-0.290,0.871l-2.035,0.581l-0.581,1.452l-1.163,0.580l-0.581,1.162l-0.582,2.033l-0.581,1.452l1.453,0.290l0.291,1.161l0.580,0.582l0.292,1.161l-0.292,1.161l0.000,0.581l0.583,0.000l0.872,1.162l3.488,-0.291l1.453,0.291l2.035,2.323l1.163,-0.290l2.034,0.290l1.454,-0.290l0.872,0.290l-0.291,1.452l-0.872,0.871l0.000,2.033l0.581,2.033l0.582,0.580l0.291,0.580l-1.454,1.453l0.872,0.580l0.873,1.162l0.872,2.614l-0.581,0.290l-0.582,-1.452l-0.873,-0.871l-0.871,0.871l-5.233,0.000l0.000,1.742l1.745,0.290l-0.291,0.871l-0.582,-0.290l-1.453,0.581l0.000,2.033l1.162,0.871l0.582,1.743l-0.291,1.161l-1.163,7.551l-1.452,-1.454l-0.582,-0.290l1.744,-2.613l-2.326,-1.452l-1.452,0.290l-1.164,-0.579l-1.453,0.870l-2.035,-0.291l-1.744,-2.903l-1.163,-0.870l-0.872,-1.163l-1.744,-1.452l0.872,-0.291z",CR:"M245.292,208.315l-1.453,-0.580l-0.582,-0.582l0.291,-0.580l0.000,-0.581l-0.872,-0.579l-0.872,-0.582l-1.163,-0.291l0.000,-0.872l-0.872,-0.580l0.291,0.871l-0.582,0.581l-0.581,-0.581l-0.872,-0.291l-0.291,-0.580l0.000,-0.871l0.291,-0.871l-0.872,-0.291l0.581,-0.580l0.581,-0.291l1.745,0.581l0.581,-0.290l0.871,0.290l0.583,0.581l0.872,0.000l0.581,-0.581l0.580,1.452l1.164,1.162l1.162,1.161l-0.872,0.291l0.000,1.161l0.583,0.291l-0.583,0.581l0.291,0.289l-0.291,0.582l0.290,-0.580z",CU:"M247.326,167.081l2.326,0.290l2.326,0.000l2.325,0.871l1.163,1.161l2.616,-0.290l0.873,0.581l2.325,1.743l1.744,1.161l0.871,0.000l1.744,0.581l-0.290,0.871l2.035,0.000l2.325,1.161l-0.581,0.581l-1.744,0.291l-1.745,0.290l-2.035,-0.290l-3.778,0.290l1.743,-1.452l-1.161,-0.871l-1.744,0.000l-0.872,-0.871l-0.582,-1.742l-1.744,0.289l-2.616,-0.870l-0.582,-0.581l-3.779,-0.291l-0.872,-0.581l0.872,-0.580l-2.616,-0.290l-2.034,1.451l-1.163,0.000l-0.292,0.580l-1.452,0.292l-1.163,0.000l1.454,-0.872l0.581,-1.161l1.453,-0.581l1.163,-0.581l2.325,-0.290l-0.581,0.290z",CY:"M567.37,134.557l0.000,0.291l-2.909,1.161l-1.162,-0.581l-0.874,-1.161l1.456,0.000l0.580,0.290l0.582,-0.290l0.582,0.000l0.290,0.290l0.581,0.000l0.581,0.000l-0.293,0.000z",CZ:"M520.57,97.388l-1.455,-0.581l-1.163,0.000l-2.326,-0.581l-0.871,0.000l-1.453,1.162l-2.035,-0.871l-1.744,-1.161l-1.163,-0.582l-0.289,-1.161l-0.584,-0.872l2.036,-0.580l0.871,-0.871l2.036,-0.291l0.581,-0.581l0.871,0.290l1.165,-0.290l1.453,0.872l2.036,0.291l-0.293,0.580l1.454,0.580l0.581,-0.580l1.746,0.290l0.290,0.872l2.034,0.290l1.454,1.161l-0.874,0.000l-0.580,0.582l-0.582,0.000l-0.292,0.581l-0.289,0.289l-0.290,0.291l-0.871,0.290l-1.165,0.000l0.289,-0.581z",DE:"M501.093,79.674l0.000,1.161l2.906,0.582l0.000,0.872l2.617,-0.291l1.744,-0.872l2.907,1.163l1.452,0.870l0.583,1.452l-0.872,0.581l1.163,1.162l0.581,1.452l-0.292,0.870l1.165,1.742l-1.165,0.290l-0.871,-0.290l-0.581,0.581l-2.036,0.291l-0.871,0.871l-2.036,0.580l0.584,0.872l0.289,1.161l1.163,0.582l1.744,1.161l-1.162,1.162l-0.872,0.580l0.290,1.742l-0.290,0.291l-0.584,-0.581l-1.452,0.000l-2.034,0.581l-2.326,-0.291l-0.292,0.871l-1.452,-0.871l-0.873,0.291l-2.906,-0.871l-0.582,0.580l-2.324,0.000l0.290,-2.032l1.455,-1.743l-4.070,-0.580l-1.166,-0.581l0.000,-1.452l-0.579,-0.581l0.290,-1.742l-0.290,-2.904l1.454,0.000l0.871,-1.162l0.581,-2.323l-0.581,-1.161l0.581,-0.581l2.327,0.000l0.582,0.581l1.742,-1.451l-0.581,-0.872l0.000,-1.743l2.035,0.581l-1.744,0.581z",DJ:"M592.368,196.119l0.581,0.871l0.000,1.161l-1.453,0.582l1.161,0.580l-1.161,1.452l-0.583,-0.290l-0.581,0.000l-1.743,0.000l0.000,-0.871l0.000,-0.581l0.871,-1.452l0.872,-1.162l1.164,0.291l-0.872,0.581z",DK:"M508.649,77.933l-1.743,2.323l-2.615-1.452l-0.582-1.162l4.07-0.872L508.649,77.933zM503.708,75.609l-0.581,1.162l-0.871-0.291l-2.036,2.033l0.873,1.161l-1.744,0.582l-2.035-0.582l-1.161-1.451v-2.904l0.289-0.581l0.872-0.871h2.325l1.163-0.871l2.035-0.871v1.453l-0.872,0.87l0.291,0.871L503.708,75.609z",DO:"M276.396,176.664l0.290,-0.291l2.034,0.000l1.744,0.580l0.872,0.000l0.291,0.872l1.454,0.000l0.000,0.871l1.162,0.000l1.454,1.162l-0.872,1.161l-1.453,-0.871l-1.164,0.290l-0.872,-0.290l-0.581,0.581l-1.163,0.290l-0.290,-0.871l-0.873,0.581l-1.161,1.743l-0.872,-0.291l0.000,-0.871l0.000,-0.872l-0.582,-0.580l0.582,-0.582l0.290,-1.161l0.290,1.451z",DZ:"M506.906,166.5l-9.592,5.226l-7.849,5.227l-4.070,1.453l-2.906,0.000l0.000,-1.742l-1.452,-0.291l-1.454,-0.872l-0.873,-1.161l-9.301,-6.098l-9.301,-6.098l-10.176,-6.679l0.000,-0.291l0.000,-0.290l0.000,-3.194l4.361,-2.032l2.906,-0.581l2.036,-0.581l1.162,-1.452l3.197,-1.162l0.000,-2.032l1.744,-0.291l1.162,-0.870l3.782,-0.582l0.289,-0.871l-0.582,-0.580l-0.871,-2.905l-0.291,-1.742l-1.163,-1.742l2.907,-1.452l2.907,-0.581l1.744,-1.161l2.617,-0.872l4.650,-0.289l4.651,-0.291l1.162,0.291l2.615,-1.162l2.911,0.000l1.160,0.871l2.035,-0.290l-0.581,1.451l0.290,2.614l-0.579,2.323l-1.745,1.451l0.290,2.034l2.325,1.742l0.000,0.581l1.745,1.162l1.163,4.936l0.871,2.322l0.000,1.453l-0.291,2.033l0.000,1.451l-0.291,1.452l0.291,1.743l-1.162,1.161l1.744,2.033l0.000,1.162l1.163,1.451l1.163,-0.580l2.035,1.451l-1.452,-1.743z",EC:"M252.85,240.258l1.453,-2.033l-0.581,-1.162l-1.163,1.162l-1.744,-1.162l0.581,-0.581l-0.291,-2.613l0.873,-0.580l0.581,-1.454l0.872,-2.031l0.000,-0.872l1.454,-0.581l1.744,-1.160l2.907,1.452l0.580,0.000l0.582,1.161l2.326,0.290l0.871,-0.290l1.163,0.870l1.163,0.582l0.581,2.324l-0.872,1.741l-3.198,2.904l-3.196,0.871l-1.744,2.613l-0.582,1.742l-1.454,1.162l-1.162,-1.451l-1.163,-0.290l-1.163,0.290l0.000,-1.162l0.873,-0.582l0.291,1.160z",EE:"M540.626,72.125l0.291,-1.743l-0.872,0.290l-1.744,-0.870l-0.291,-1.743l3.489,-0.581l3.488,-0.582l2.906,0.582l2.906,0.000l0.291,0.291l-1.745,1.742l0.582,2.614l-1.163,0.871l-2.034,0.000l-2.614,-1.162l-1.165,-0.290l2.325,-0.581z",EG:"M569.987,149.947l-0.874,0.872l-0.581,2.323l-0.873,1.162l-0.582,0.580l-0.870,-0.871l-1.164,-1.161l-2.034,-4.066l-0.291,0.291l1.163,2.903l1.744,2.904l2.034,4.065l0.873,1.743l0.871,1.452l2.618,2.904l-0.584,0.580l0.000,1.743l3.198,2.613l0.581,0.580l-10.755,0.000l-10.755,0.000l-11.045,0.000l0.000,-10.162l0.000,-9.873l-0.871,-2.324l0.579,-1.451l-0.289,-1.162l0.871,-1.452l3.779,0.000l2.615,0.581l2.615,0.871l1.456,0.580l2.033,-0.870l1.165,-0.872l2.323,-0.290l2.036,0.290l0.872,1.452l0.580,-0.870l2.036,0.580l2.327,0.290l1.161,-0.870l-2.038,-4.935z",ER:"M590.332,196.409l-0.872,-0.871l-1.162,-1.452l-1.163,-1.162l-0.871,-0.870l-2.326,-1.162l-1.744,0.000l-0.873,-0.580l-1.453,0.870l-1.743,-1.452l-0.873,2.033l-3.198,-0.581l-0.290,-0.870l1.161,-4.065l0.291,-2.033l0.874,-0.873l2.035,-0.289l1.454,-1.742l1.452,3.193l0.871,2.614l1.454,1.452l3.779,2.613l1.454,1.453l1.453,1.742l0.871,0.871l1.455,0.871l-0.872,0.581l1.164,0.291z",ES:"M448.769,115.683l0.292,-1.743l-1.163,-1.452l3.778,-1.742l3.489,0.290l3.778,0.000l2.908,0.581l2.324,-0.290l4.362,0.290l1.163,0.871l4.940,1.452l1.163,-0.580l2.907,1.161l3.197,-0.292l0.292,1.454l-2.616,2.032l-3.489,0.580l-0.291,0.872l-1.744,1.451l-1.162,2.324l1.162,1.451l-1.453,1.162l-0.581,1.742l-2.325,0.581l-1.744,2.323l-3.489,0.000l-2.616,0.000l-1.743,0.872l-1.165,1.161l-1.452,-0.291l-0.871,-0.870l-0.874,-1.742l-2.615,-0.291l0.000,-1.162l0.871,-0.871l0.291,-0.871l-0.873,-0.581l0.873,-2.032l-1.162,-1.452l1.162,-0.291l0.000,-1.451l0.582,-0.291l0.000,-2.033l1.163,-0.870l-0.581,-1.452l-1.746,0.000l-0.291,0.290l-1.744,0.000l-0.581,-1.162l-1.163,0.291l1.163,-0.581z",ET:"M578.125,189.73l1.743,1.452l1.453,-0.870l0.873,0.580l1.744,0.000l2.326,1.162l0.871,0.870l1.163,1.162l1.162,1.452l0.872,0.871l-0.872,1.162l-0.871,1.452l0.000,0.581l0.000,0.871l1.743,0.000l0.581,0.000l0.583,0.290l-0.583,1.161l1.163,1.453l0.873,1.452l1.163,0.871l9.010,3.194l2.328,0.000l-7.850,8.421l-3.780,0.000l-2.324,2.033l-1.744,0.000l-0.874,0.870l-1.743,0.000l-1.161,-0.870l-2.618,1.162l-0.581,1.160l-2.036,-0.290l-0.580,-0.290l-0.580,0.000l-0.874,0.000l-3.489,-2.323l-2.033,0.000l-0.873,-0.871l0.000,-1.742l-1.452,-0.290l-1.455,-3.196l-1.454,-0.580l-0.290,-1.161l-1.452,-1.161l-1.746,-0.291l0.872,-1.452l1.455,0.000l0.582,-0.872l0.000,-2.613l0.579,-2.903l1.454,-0.582l0.292,-1.162l1.163,-2.322l1.743,-1.162l0.872,-2.904l0.581,-2.323l3.198,0.581l-0.873,2.033z",FI:"M552.544,41.053l-0.584,2.033l4.363,1.743l-2.617,2.032l3.198,3.194l-1.744,2.324l2.325,2.033l-1.162,1.742l4.069,2.032l-0.871,1.161l-2.617,1.742l-5.814,3.485l-4.941,0.291l-4.941,0.871l-4.362,0.580l-1.744,-1.451l-2.615,-0.871l0.581,-2.614l-1.452,-2.613l1.452,-1.453l2.616,-1.742l6.106,-3.193l2.033,-0.582l-0.289,-1.160l-4.072,-1.162l-0.872,-1.162l0.000,-4.065l-4.361,-2.033l-3.486,-1.452l1.453,-0.581l3.198,1.452l3.488,0.000l2.908,0.581l2.615,-1.162l1.452,-2.032l4.362,-1.162l3.487,1.162l1.162,-2.032z",FJ:"M964.732,278.588l0.873,0.871l-0.292,1.452l-1.744,0.291l-1.452-0.291l-0.292-1.162l0.873-0.87l1.455,0.291L964.732,278.588zM969.382,276.557l-1.741,0.579l-2.036,0.582l-0.292-1.161l1.455-0.291l0.873-0.291l1.741-0.871h-0.01h0.58l-0.29,1.162l-0.29,0.291H969.382z",FK:"M305.173,373.544l3.488,-1.741l2.326,0.870l1.744,-1.161l2.034,1.161l-0.872,0.871l-3.778,0.872l-1.164,-0.872l-2.325,1.162l1.453,1.162z",FR:"M329.008,223.997l-0.873,1.162h-1.453l-0.29-0.581l-0.582-0.292l-0.872,0.873l-1.162-0.581l0.581-1.162l0.291-1.162l0.582-1.161l-1.164-1.742l-0.289-1.743l1.453-2.612l0.872,0.289l2.034,0.872l2.907,2.323l0.582,1.161l-1.744,2.323L329.008,223.997zM500.22,115.102l-1.161,2.033l-1.164-0.582l-0.581-1.742l0.581-1.162l1.744-0.871L500.22,115.102zM483.652,92.451l2.036,1.162h1.162l2.615,1.162l0.581,0.291h0.871l1.165,0.581l4.07,0.58l-1.455,1.744l-0.29,2.032l-0.873,0.581l-1.163-0.291v0.581l-2.033,1.453v1.452l1.453-0.581l0.871,1.162l-0.291,0.871l0.872,1.162l-0.872,0.871l0.582,2.033l1.454,0.291l-0.291,1.162l-2.325,1.452l-5.523-0.581l-4.069,0.872l-0.292,1.741l-3.196,0.292l-2.907-1.162l-1.163,0.58l-4.94-1.452l-1.163-0.872l1.452-1.742l0.582-5.517l-2.907-2.905l-2.034-1.451l-4.36-0.872v-2.033l3.488-0.581l4.651,0.581l-0.872-2.903l2.615,1.162l6.396-2.324l0.87-2.324l2.325-0.29l0.293,0.872h1.452L483.652,92.451z",GA:"M504.291,242l-2.908,-2.904l-1.744,-2.322l-1.744,-2.905l0.291,-0.871l0.582,-0.871l0.581,-2.033l0.582,-2.033l0.871,0.000l4.070,0.000l0.000,-3.483l1.163,0.000l1.744,0.289l1.744,-0.289l0.291,0.000l-0.291,1.451l0.871,1.162l2.036,0.000l0.581,0.580l-1.163,3.194l1.454,1.452l0.291,2.324l-0.582,1.741l-0.581,1.162l-2.616,0.000l-1.454,-1.451l-0.289,1.451l-1.745,0.291l-0.872,0.580l0.872,1.743l2.035,-1.742z",GB:"M458.072,80.835l-1.452,2.033l-2.036-0.58h-1.745l0.582-1.453l-0.582-1.451l2.326-0.291L458.072,80.835zM465.629,69.802l-3.198,2.903l2.907-0.289h2.907l-0.582,2.032l-2.615,2.613h2.907l0.29,0.291l2.325,3.484l2.035,0.291l1.745,3.195l0.581,1.161l3.486,0.291l-0.29,2.033l-1.452,0.58l1.163,1.452l-2.617,1.453h-3.488l-4.94,0.871l-1.164-0.581l-1.744,1.161l-2.616-0.291l-2.034,1.162l-1.453-0.581l4.069-2.904l2.616-0.581l-4.359-0.581l-0.873-0.872l2.906-0.871l-1.454-1.451l0.582-2.033l4.069,0.291l0.291-1.452l-1.744-1.743l-3.488-0.58l-0.582-0.871l0.872-1.162l-0.872-0.581l-1.452,1.162V76.19l-1.454-1.453l0.873-2.904l2.326-2.032h2.033H465.629z",GE:"M588.298,116.844l0.291,-1.161l-0.582,-2.034l-1.743,-0.871l-1.455,-0.580l-1.162,-0.581l0.581,-0.581l2.325,0.581l3.779,0.581l3.780,1.162l0.581,0.580l1.745,-0.580l2.614,0.580l0.581,1.162l1.745,0.871l-0.582,0.290l1.455,1.452l-0.582,0.290l-1.454,-0.290l-2.034,-0.580l-0.581,0.290l-3.780,0.580l-2.615,-1.452l2.907,-0.291z",GH:"M476.676,214.704l-4.361,1.452l-1.452,1.161l-2.617,0.581l-2.327,-0.581l0.000,-1.161l-1.162,-2.323l0.872,-3.195l1.164,-2.323l-0.874,-3.775l-0.290,-2.323l0.000,-1.452l4.942,0.000l1.163,0.000l0.872,-0.290l1.163,0.290l0.000,0.872l0.871,1.161l0.000,2.033l0.292,2.322l0.871,0.872l-0.581,2.613l0.000,1.162l0.872,1.742l-0.582,-1.162z",GL:"M344.996,3.593l9.302,-1.451l9.593,0.000l3.488,-0.871l9.883,-0.291l21.800,0.291l17.442,2.322l-5.232,0.872l-10.465,0.290l-14.824,0.291l1.453,0.289l9.593,-0.289l8.429,0.871l5.232,-0.582l2.326,0.872l-2.907,1.452l6.977,-0.871l13.370,-1.162l8.139,0.581l1.455,1.162l-11.047,2.032l-1.743,0.580l-8.721,0.581l6.395,0.000l-3.196,2.033l-2.326,1.742l0.290,3.195l3.198,1.742l-4.361,0.000l-4.361,0.872l4.943,1.451l0.581,2.323l-2.908,0.291l3.781,2.323l-6.106,0.291l2.906,1.160l-0.871,0.872l-3.780,0.581l-3.777,0.000l3.488,1.742l0.000,1.161l-5.522,-1.161l-1.455,0.871l3.778,0.582l3.488,1.741l1.163,2.324l-4.940,0.580l-2.034,-1.162l-3.489,-1.742l0.871,2.033l-3.197,1.452l7.267,0.000l3.780,0.290l-7.269,2.324l-7.557,2.322l-7.848,0.872l-3.198,0.000l-2.907,0.871l-3.779,2.903l-5.814,2.034l-2.034,0.290l-3.489,0.581l-4.069,0.580l-2.326,1.742l0.000,2.034l-1.453,1.742l-4.360,2.033l0.872,2.323l-1.162,2.323l-1.454,2.613l-3.779,0.000l-4.069,-2.033l-5.524,0.000l-2.615,-1.742l-2.036,-2.614l-4.650,-3.484l-1.454,-1.742l-0.291,-2.324l-3.778,-2.613l0.872,-2.033l-1.744,-0.871l2.617,-3.194l4.359,-1.162l0.872,-1.161l0.582,-2.034l-3.198,0.873l-1.454,0.289l-2.325,0.582l-3.488,-0.871l0.000,-2.034l0.871,-1.452l2.617,0.000l5.523,0.872l-4.651,-1.742l-2.325,-1.162l-2.907,0.581l-2.326,-0.872l3.198,-2.322l-1.744,-1.162l-2.035,-2.033l-3.489,-2.904l-3.488,-0.871l0.000,-1.162l-7.266,-1.742l-5.814,0.000l-7.558,0.000l-6.685,0.290l-3.199,-0.870l-4.649,-1.743l7.266,-0.871l5.523,-0.291l-11.917,-0.580l-6.105,-1.162l0.291,-1.161l10.464,-1.162l10.173,-1.452l0.872,-0.871l-7.266,-1.162l2.326,-1.161l9.592,-1.742l4.070,-0.290l-1.163,-1.162l6.395,-0.872l8.429,-0.289l8.430,0.000l3.199,0.580l7.266,-1.453l6.395,1.162l4.070,0.291l5.523,0.871l-6.395,-1.451l-0.290,1.453z",GM:"M427.549,194.667l0.291,-1.162l2.909,0.000l0.581,-0.581l0.871,0.000l1.163,0.581l0.873,0.000l0.870,-0.581l0.582,0.872l-1.163,0.581l-1.162,0.000l-1.163,-0.581l-1.163,0.581l-0.582,0.000l-0.580,0.581l2.327,0.291z",GN:"M450.514,209.768l-0.871,0.000l-0.582,1.161l-0.581,0.000l-0.582,-0.581l0.290,-1.162l-1.162,-1.741l-0.872,0.290l-0.581,0.000l-0.581,0.290l0.000,-1.161l-0.582,-0.581l0.000,-0.870l-0.581,-1.163l-0.582,-0.871l-2.326,0.000l-0.581,0.580l-0.871,0.000l-0.292,0.581l-0.289,0.582l-1.455,1.451l-1.453,-1.742l-0.873,-1.163l-0.870,-0.289l-0.582,-0.581l-0.291,-1.161l-0.582,-0.582l-0.581,-0.580l1.163,-1.162l0.873,0.000l0.581,-0.580l0.582,0.000l0.580,-0.291l-0.291,-0.871l0.291,-0.291l0.000,-0.871l1.453,0.000l2.036,0.581l0.581,0.000l0.000,-0.290l1.744,0.290l0.289,-0.290l0.293,1.162l0.290,0.000l0.581,-0.582l0.582,0.291l0.871,0.580l1.165,0.291l0.579,-0.580l0.873,-0.582l0.871,-0.290l0.581,0.000l0.582,0.581l0.292,0.871l1.162,1.162l-0.582,0.580l-0.291,1.162l0.582,-0.291l0.581,0.291l-0.290,0.871l0.871,0.581l-0.581,0.290l-0.290,0.871l0.581,1.163l0.871,2.323l-1.162,0.290l-0.290,0.290l0.290,0.581l0.000,1.162l0.581,0.000z",GQ:"M499.931,228.061l-0.582,-0.290l0.871,-3.193l4.652,0.000l0.000,3.483l-4.070,0.000l0.871,0.000z",GR:"M538.882,132.815l1.744,0.871l2.034-0.29l2.033,0.29v0.582l1.455-0.291l-0.292,0.581l-4.067,0.291v-0.291l-3.199-0.581L538.882,132.815zM547.02,116.553l-0.871,1.742l-0.581,0.291h-1.745l-1.454-0.291l-3.196,0.872l1.744,1.451l-1.454,0.291h-1.452l-1.454-1.16l-0.582,0.58l0.582,1.452l1.454,1.453l-0.872,0.58l1.452,1.162l1.455,0.871v1.452l-2.617-0.581l0.873,1.452l-1.745,0.291l0.872,2.323h-1.744l-2.326-1.161l-0.871-2.324l-0.581-1.742l-1.163-1.162l-1.452-1.742v-0.58l1.16-1.453l0.292-0.87l0.873-0.291v-0.871l1.742-0.291l1.164-0.58h1.452l0.582-0.291l0.29-0.29l2.036,0.29l2.325-0.872l2.034,0.872h2.326v-1.452L547.02,116.553z",GT:"M225.816,193.215l-1.453,-0.580l-1.744,0.000l-1.163,-0.581l-1.454,-1.162l0.000,-0.871l0.291,-0.581l-0.291,-0.580l1.164,-2.033l3.487,0.000l0.292,-0.871l-0.582,-0.291l-0.291,-0.581l-1.162,-0.581l-0.872,-0.870l1.163,0.000l0.000,-1.743l2.615,0.000l2.617,0.000l0.000,2.324l-0.292,2.903l0.872,0.000l0.872,0.581l0.292,-0.291l0.872,0.291l-1.455,1.162l-1.161,0.580l-0.292,0.581l0.292,0.581l-0.583,0.580l-0.581,0.291l0.000,0.290l-0.580,0.291l-0.873,0.581l0.000,-0.580z",GW:"M432.201,200.475l-1.452,-1.162l-1.164,0.000l-0.582,-0.871l0.000,-0.291l-0.871,-0.580l-0.292,-0.581l1.453,-0.581l0.874,0.000l0.871,-0.290l4.942,0.290l0.000,0.871l-0.291,0.291l0.291,0.871l-0.580,0.291l-0.582,0.000l-0.581,0.580l-0.873,0.000l1.163,-1.162z",GY:"M309.243,208.025l1.744,0.871l1.744,1.742l0.000,1.452l1.162,0.000l1.453,1.452l1.163,0.873l-0.582,2.613l-1.453,0.579l0.000,0.872l-0.581,1.161l1.453,2.032l0.872,0.000l0.291,1.744l1.744,2.322l-0.872,0.000l-1.454,-0.290l-0.871,0.871l-1.163,0.581l-0.872,0.000l-0.290,0.581l-1.454,-0.290l-1.743,-1.162l-0.291,-1.162l-0.582,-1.451l0.582,-2.324l0.580,-1.162l-0.580,-1.161l-0.872,-0.290l0.290,-1.451l-0.582,-0.582l-1.453,0.291l-2.035,-2.322l0.873,-0.582l0.000,-1.163l1.743,-0.580l0.582,-0.581l-0.872,-0.871l0.290,-1.161l-2.036,1.452z",HN:"M233.374,195.248l-0.291,-0.871l-0.872,-0.291l0.000,-1.162l-0.291,-0.289l-0.582,0.000l-1.161,0.289l0.000,-0.289l-0.872,-0.581l-0.582,-0.581l-0.873,-0.291l0.583,-0.580l-0.292,-0.581l0.292,-0.581l1.161,-0.580l1.455,-1.162l0.289,0.000l0.582,-0.291l0.581,0.000l0.291,0.000l0.582,0.000l1.163,0.291l1.162,-0.291l0.873,-0.290l0.581,-0.290l0.872,0.290l0.581,0.000l0.582,0.000l0.581,-0.290l1.454,0.580l0.289,0.000l0.872,0.582l0.873,0.580l0.871,0.291l0.873,0.870l-1.162,0.000l-0.291,0.291l-0.872,0.291l-0.872,0.000l-0.581,0.290l-0.582,0.000l-0.290,-0.290l-0.291,0.000l-0.291,0.580l-0.291,0.000l0.000,0.581l-1.163,0.871l-0.581,0.291l-0.291,0.289l-0.581,-0.580l-0.581,0.871l-0.582,-0.291l-0.871,0.291l0.290,1.162l-0.581,0.000l-0.291,0.871l0.872,0.000z",HR:"M525.51,104.647l0.871,1.163l0.873,0.870l-1.163,0.872l-1.163,-0.581l-2.033,0.000l-2.325,-0.291l-1.163,0.000l-0.582,0.581l-1.162,-0.581l-0.581,0.872l1.454,1.451l0.579,0.872l1.163,0.871l1.162,0.581l0.874,1.161l2.614,1.161l-0.289,0.580l-2.615,-1.160l-1.746,-0.871l-2.326,-0.871l-2.326,-2.033l0.582,-0.291l-1.453,-1.162l0.000,-0.870l-1.744,-0.291l-0.871,1.161l-0.873,-1.161l0.292,-0.870l1.743,0.000l0.580,-0.291l0.873,0.291l1.163,0.000l0.000,-0.582l0.871,-0.290l0.293,-1.162l2.325,-0.580l0.871,0.290l2.036,1.161l2.325,0.581l-0.871,0.581z",HT:"M272.326,176.083l1.744,0.290l2.326,0.291l0.290,1.451l-0.290,1.161l-0.582,0.582l0.582,0.580l0.000,0.872l-1.745,-0.581l-1.453,0.290l-1.744,-0.290l-1.163,0.581l-1.454,-0.872l0.291,-0.871l2.326,0.291l2.325,0.290l0.872,-0.581l-1.163,-1.161l0.000,-1.161l-1.744,-0.292l-0.582,0.870z",HU:"M518.243,102.034l1.164,-1.742l-0.582,-0.581l1.453,0.000l0.292,-1.162l1.454,0.872l0.871,0.290l2.324,-0.581l0.291,-0.291l1.163,-0.290l1.163,-0.290l0.289,0.000l1.455,-0.290l0.582,-0.581l0.870,-0.291l2.908,0.872l0.582,-0.290l1.452,0.870l0.291,0.581l-1.743,0.581l-1.164,2.034l-1.742,1.741l-2.325,0.581l-1.455,0.000l-2.326,0.580l-0.871,0.581l-2.325,-0.581l-2.036,-1.161l-0.871,-0.290l-0.582,-1.162l0.582,0.000z",ID:"M806.019,259.132h-1.163l-3.488-2.033l2.326-0.289l1.454,0.58l1.162,0.871L806.019,259.132zM816.193,258.842l-2.323,0.581l-0.292-0.291l0.292-0.871l1.16-1.742l2.617-1.16l0.29,0.58l0.29,0.871L816.193,258.842zM798.17,253.326l1.163,0.58l1.745-0.29l0.581,1.161l-3.198,0.582l-1.745,0.58l-1.743-0.291l1.162-1.451h1.455L798.17,253.326zM812.123,253.326l-0.579,1.451l-4.072,0.871l-3.486-0.58v-0.871l2.034-0.581l1.745,0.871l1.743-0.29L812.123,253.326zM772.881,249.55l5.232,0.29l0.582-1.161l4.94,1.452l1.163,1.742l4.07,0.58l3.487,1.452l-3.196,1.162l-3.199-1.162h-2.325h-2.907l-2.615-0.58l-3.199-1.162l-2.033-0.29l-1.163,0.29l-4.942-0.871l-0.58-1.452h-2.325l1.745-2.613h3.488l2.033,1.163l1.162,0.289L772.881,249.55zM844.679,248.098l-1.452,1.742l-0.292-2.032l0.583-0.871l0.58-1.162l0.581,0.871V248.098zM824.043,240.548l-1.163,0.87l-1.745-0.58l-0.581-1.162h2.907L824.043,240.548zM833.053,239.386l0.871,2.032l-2.325-0.87l-2.324-0.29h-1.454h-2.034l0.582-1.452l3.486-0.291L833.053,239.386zM842.935,234.16l0.874,4.355l2.906,1.743l2.325-2.905l3.199-1.741h2.323l2.326,0.87l2.033,1.162l2.909,0.581v8.712l0.29,9.002l-2.615-2.323l-2.91-0.29l-0.578,0.58l-3.489,0.291l1.161-2.323l1.744-0.871l-0.579-2.904l-1.454-2.323l-5.233-2.324l-2.323-0.289l-4.069-2.613L840.901,242l-1.162,0.292l-0.581-1.163v-1.161l-2.034-1.161l2.906-1.162h2.034l-0.289-0.581h-4.072l-1.161-1.742l-2.327-0.58l-1.161-1.161l3.778-0.872l1.455-0.872l4.359,1.162L842.935,234.16zM818.518,226.9l-2.325,2.904l-2.034,0.58l-2.615-0.58h-4.651l-2.325,0.58l-0.292,2.033l2.326,2.323l1.454-1.161l5.23-0.872l-0.29,1.161l-1.162-0.289l-1.163,1.451l-2.326,1.162l2.615,3.483l-0.581,0.872l2.326,3.194v1.742l-1.452,0.872l-0.874-0.872l1.165-2.323l-2.617,1.162l-0.871-0.873l0.579-0.869l-2.033-1.743l0.291-2.613l-2.036,0.871l0.292,3.195v3.773l-1.744,0.581l-1.165-0.871l0.874-2.613l-0.291-2.613h-1.162l-0.871-2.033l1.161-1.741l0.289-2.033l1.455-4.356l0.581-0.871l2.326-2.032l2.033,0.58l3.488,0.582l3.199-0.292l2.615-2.032L818.518,226.9zM828.111,227.771l-0.29,2.323h-1.452l-0.292,1.452l1.162,1.451l-0.87,0.291l-1.165-1.742l-0.871-3.485l0.581-2.032l0.873-1.162l0.29,1.452l1.744,0.291L828.111,227.771zM798.17,226.029l3.197,2.322l-3.197,0.292l-1.162,2.031l0.292,2.614l-2.618,1.742v2.613L793.52,242l-0.581-0.871l-2.908,1.163l-1.161-1.743l-2.034-0.29l-1.163-0.872l-3.488,1.162l-0.871-1.452l-1.744,0.29l-2.328-0.29l-0.581-3.775l-1.163-0.871l-1.452-2.322l-0.292-2.323l0.292-2.613l1.452-1.743l0.584,1.743l2.033,1.741l1.744-0.581h1.744l1.453-1.16l1.454-0.291l2.615,0.581l2.036-0.581l1.452-3.774l1.163-0.872l0.871-3.193h3.198l2.325,0.58l-1.454,2.323l2.036,2.614L798.17,226.029zM765.034,246.937l-2.907,0.29l-2.325-2.321l-3.779-2.324l-1.162-1.743l-2.033-2.323l-1.165-2.033l-2.325-3.774l-2.326-2.323l-0.871-2.323l-0.873-2.032l-2.615-1.743l-1.454-2.322l-2.034-1.743l-2.908-2.903l-0.289-1.451h1.745l4.358,0.58l2.618,2.614l2.033,2.032l1.453,1.161l2.615,2.905h2.908l2.325,2.032l1.454,2.322l2.033,1.161l-0.871,2.323l1.454,0.871h0.872l0.581,2.033l0.873,1.451l2.034,0.291l1.452,1.742l-0.871,3.485V246.937z",IE:"M456.62,82.869l0.579,2.032l-2.034,2.323l-4.942,1.743l-3.779,-0.581l2.036,-2.904l-1.454,-2.613l3.779,-2.323l2.033,-1.162l0.582,1.451l-0.582,1.454l1.745,0.000l-2.037,-0.580z",IL:"M572.021,140.946l-0.293,0.870l-1.163,-0.289l-0.578,1.743l0.871,0.289l-0.871,0.581l0.000,0.581l1.160,-0.291l0.000,0.872l-1.160,4.645l-2.038,-4.935l0.873,-0.872l0.581,-1.451l0.584,-2.033l0.289,-0.582l0.289,0.000l0.872,0.000l0.291,-0.580l0.582,0.000l0.000,1.162l-0.289,0.290l0.000,0.000z",IN:"M688.002,133.396l2.909,3.194l-0.293,2.324l1.163,1.160l0.000,1.453l-2.036,-0.291l0.873,2.904l2.615,1.742l3.781,2.034l-1.745,1.161l-1.163,2.613l2.908,1.162l2.614,1.161l3.490,1.742l3.779,0.291l1.453,1.452l2.325,0.290l3.197,0.581l2.326,0.000l0.291,-1.162l-0.291,-1.742l0.000,-1.161l1.744,-0.582l0.292,2.033l0.000,0.581l2.615,1.162l1.744,-0.581l2.326,0.290l2.326,0.000l0.000,-1.742l-1.163,-0.871l2.326,-0.290l2.615,-2.033l3.198,-1.742l2.033,0.580l2.035,-1.162l1.455,1.743l-1.161,1.162l3.194,0.290l0.000,1.162l-0.871,0.580l0.291,1.452l-2.034,-0.290l-3.489,1.742l0.000,1.742l-1.453,2.323l-0.292,1.162l-1.163,2.322l-2.033,-0.580l-0.290,2.904l-0.583,0.872l0.291,1.161l-1.162,0.581l-1.454,-4.356l-0.872,0.000l-0.581,1.742l-1.454,-1.452l0.872,-1.452l1.163,-0.289l1.454,-2.324l-1.743,-0.291l-2.327,0.000l-2.616,-0.291l-0.291,-2.032l-1.454,0.000l-2.034,-1.451l-1.163,2.032l2.034,1.451l-1.743,0.873l-0.582,1.160l1.744,0.582l-0.579,1.742l1.160,2.032l0.290,2.324l-0.290,1.162l-2.034,-0.291l-3.197,0.580l0.000,2.033l-1.455,1.742l-4.069,1.744l-2.904,3.484l-2.038,1.743l-2.906,1.742l0.000,1.161l-1.163,0.581l-2.615,1.161l-1.162,0.000l-0.874,2.323l0.582,3.484l0.000,2.324l-1.163,2.614l0.000,4.644l-1.454,0.000l-1.160,2.325l0.870,0.871l-2.615,0.581l-0.874,2.032l-1.163,0.581l-2.615,-2.323l-1.163,-4.067l-1.162,-2.613l-0.874,-1.451l-1.452,-2.613l-0.581,-3.485l-0.581,-1.742l-2.618,-3.775l-1.161,-5.227l-0.584,-3.485l0.000,-3.194l-0.581,-2.613l-4.068,1.451l-2.035,-0.290l-3.488,-3.194l1.454,-1.162l-0.873,-0.871l-3.198,-2.323l1.745,-2.033l6.106,0.000l-0.583,-2.324l-1.455,-1.451l-0.579,-2.032l-1.745,-1.162l3.197,-2.904l3.199,0.291l2.904,-2.904l1.745,-2.904l2.618,-2.614l0.000,-2.032l2.325,-1.743l-2.325,-1.161l-0.874,-2.032l-1.160,-2.324l1.453,-1.162l4.069,0.581l3.196,-0.290l-2.617,2.323z",IQ:"M598.763,131.943l1.744,0.872l0.289,1.742l-1.452,0.871l-0.581,2.033l2.033,2.613l3.200,1.453l1.454,2.323l-0.292,1.742l0.872,0.000l0.000,1.742l1.454,1.452l-1.744,-0.290l-1.744,-0.291l-2.037,2.614l-5.230,0.000l-7.561,-5.517l-4.067,-2.032l-3.488,-0.873l-1.163,-3.193l6.103,-2.904l1.163,-3.195l-0.292,-2.032l1.454,-0.872l1.454,-1.742l1.164,-0.291l3.197,0.291l0.873,0.872l1.452,-0.581l-1.745,-3.193z",IR:"M622.309,128.75l2.323,-0.582l2.036,-1.742l1.745,0.291l1.162,-0.581l2.034,0.290l2.907,1.452l2.325,0.290l3.200,2.324l2.034,0.000l0.289,2.323l-1.161,3.485l-0.873,2.032l1.163,0.291l-1.163,1.742l0.873,2.032l0.290,1.743l2.036,0.581l0.289,1.742l-2.615,2.323l1.453,1.452l1.162,1.742l2.617,1.162l0.000,2.613l1.453,0.291l0.290,1.452l-4.070,1.162l-1.161,3.193l-4.943,-0.580l-3.197,-0.871l-2.906,-0.291l-1.454,-3.194l-1.163,-0.581l-2.034,0.581l-2.908,1.162l-3.196,-0.872l-2.907,-2.033l-2.617,-0.870l-1.745,-2.614l-2.034,-3.774l-1.744,0.580l-1.744,-0.871l-0.871,1.161l-1.454,-1.452l0.000,-1.742l-0.872,0.000l0.292,-1.742l-1.454,-2.323l-3.200,-1.453l-2.033,-2.613l0.581,-2.033l1.452,-0.871l-0.289,-1.742l-1.744,-0.872l-1.745,-3.193l-1.452,-2.324l0.579,-0.871l-0.870,-2.904l1.743,-0.871l0.582,0.871l1.163,1.453l2.033,0.289l0.873,0.000l3.489,-2.032l0.872,-0.290l0.871,0.871l-0.871,1.451l1.743,1.453l0.582,-0.291l0.873,2.033l2.615,0.580l1.744,1.453l4.069,0.291l4.360,-0.581l-0.293,0.581z",IS:"M433.944,48.313l-0.870,1.742l3.196,1.742l-3.488,2.033l-8.138,2.033l-2.326,0.581l-3.488,-0.581l-7.849,-0.871l2.906,-1.162l-6.103,-1.451l4.940,-0.291l0.000,-0.871l-5.811,-0.580l1.744,-2.033l4.067,-0.291l4.362,1.742l4.360,-1.451l3.198,0.871l4.649,-1.452l-4.651,-0.290z",IT:"M516.5,125.846l-0.873,2.033l0.292,0.872l-0.582,1.451l-2.034-0.871l-1.454-0.291l-3.777-1.451l0.289-1.452l3.199,0.29l2.904-0.29L516.5,125.846zM499.059,117.715l1.743,1.742l-0.291,3.775l-1.452-0.291l-1.164,0.871l-0.872-0.58l-0.291-3.195l-0.579-1.742l1.452,0.291L499.059,117.715zM507.779,102.325l4.069,0.581l-0.289,1.452l0.581,1.161l-2.326-0.291l-2.035,0.872v1.452l-0.292,0.871l0.873,1.162l2.615,1.452l1.455,2.324l2.906,2.323h2.326l0.58,0.58l-0.872,0.582l2.617,0.871l2.036,0.871l2.324,1.451l0.291,0.581l-0.581,0.873l-1.455-1.453l-2.325-0.289l-1.163,1.742l2.036,1.16l-0.581,1.453h-0.873l-1.745,2.323l-0.87,0.291v-0.871l0.289-1.453l0.872-0.58l-1.161-1.742l-0.873-1.162l-1.161-0.58l-0.873-1.162l-1.744-0.29l-1.163-1.162l-2.034-0.291l-2.036-1.162l-2.615-1.741l-1.744-1.743l-0.872-2.614l-1.454-0.29l-2.325-0.872l-1.163,0.291l-1.743,1.162l-1.163,0.291l0.291-1.162l-1.454-0.291l-0.582-2.033l0.872-0.871l-0.872-1.162l0.291-0.871l1.165,0.581h1.16l1.744-0.871l0.291,0.29h1.453l0.583-1.162l2.034,0.29l1.163-0.29l0.289-1.162l1.745,0.291l0.291-0.58l2.615-0.292L507.779,102.325z",JM:"M260.116,180.148l2.036,0.290l1.452,0.581l0.291,0.871l-1.743,0.000l-0.872,0.291l-1.454,-0.291l-1.744,-1.161l0.290,-0.581l1.164,-0.290l-0.580,-0.290z",JO:"M571.728,141.816l0.293,-0.870l3.195,1.161l5.234,-2.903l1.163,3.193l-0.582,0.582l-5.522,1.451l2.905,2.614l-0.872,0.581l-0.581,0.871l-2.036,0.290l-0.581,1.161l-1.161,0.582l-3.196,-0.291l0.000,-0.291l1.160,-4.645l0.000,-0.872l0.581,-0.871l0.000,1.743z",JP:"M844.39,137.17l0.289,0.871l-1.452,1.742l-1.163-1.161l-1.454,0.871l-0.58,1.452l-2.035-0.581l0.292-1.452l1.452-1.743l1.452,0.291l1.165-1.161L844.39,137.17zM861.832,128.75l-1.165,2.323l0.584,1.162l-1.455,2.033l-3.488,1.452h-4.94l-3.78,3.195l-1.742-1.162l-0.292-2.033l-4.651,0.582l-3.488,1.451h-3.198l2.909,2.032l-1.745,4.646l-1.743,1.162l-1.454-1.162l0.582-2.323l-1.745-0.871l-1.163-1.742l2.617-0.871l1.452-1.742l2.907-1.453l2.035-2.033l5.523-0.581l2.907,0.291l2.904-4.646l1.746,1.162l4.07-2.614l1.452-1.161l1.744-3.484l-0.292-2.904l1.164-1.742l2.906-0.581l1.454,3.774v2.324l-2.615,2.613V128.75zM869.969,109.584l1.744,0.58l2.036-1.162l0.58,2.904l-4.068,0.871l-2.326,2.613l-4.36-1.742l-1.453,2.904h-3.199l-0.29-2.613l1.454-2.033l2.906-0.291l0.873-3.775l0.581-2.032l3.488,2.613L869.969,109.584z",KE:"M586.553,233.289l1.745,2.323l-2.034,1.162l-0.582,1.161l-1.163,0.000l-0.291,2.032l-0.872,1.161l-0.581,1.744l-1.162,0.871l-3.780,-2.615l-0.291,-1.742l-9.883,-5.517l-0.582,-0.289l0.000,-2.906l0.872,-1.161l1.164,-1.742l1.163,-2.033l-1.163,-3.194l-0.291,-1.452l-1.452,-1.742l1.743,-1.743l1.745,-1.741l1.452,0.290l0.000,1.742l0.873,0.871l2.033,0.000l3.489,2.323l0.874,0.000l0.580,0.000l0.580,0.290l2.036,0.290l0.581,-1.160l2.618,-1.162l1.161,0.870l1.743,0.000l-2.325,3.196l0.000,-9.873z",KG:"M669.108,114.811l0.581,-1.162l1.745,-0.580l4.649,0.871l0.292,-1.452l1.745,-0.581l3.779,1.162l1.161,-0.291l4.361,0.000l4.068,0.291l1.455,0.871l1.744,0.581l-0.289,0.581l-4.362,1.451l-1.162,1.162l-3.490,0.290l-0.871,1.744l-2.906,-0.291l-2.036,0.580l-2.615,1.162l0.289,0.580l-0.579,0.871l-5.233,0.291l-3.488,-0.871l-2.908,0.290l0.291,-1.743l2.906,0.582l0.873,-0.871l2.326,0.289l3.488,-2.032l-3.199,-1.451l-2.034,0.580l-2.035,-0.871l2.326,-1.742l0.872,0.291z",KH:"M758.638,201.637l-1.162,-1.453l-1.454,-2.613l-0.580,-3.485l1.741,-2.323l3.781,-0.581l2.326,0.581l2.326,0.872l1.160,-1.743l2.617,0.871l0.581,2.033l-0.289,3.194l-4.651,2.033l1.162,1.742l-2.906,0.290l-2.326,1.162l2.326,0.580z",KO:"M531.032,115.392l-0.289,0.581l-0.292,0.000l-0.289,-1.162l-0.582,-0.290l-0.581,-0.581l0.581,-0.871l0.582,0.000l0.289,-0.871l0.581,-0.291l0.293,0.291l0.581,0.290l0.290,0.581l0.583,0.000l0.579,0.580l0.292,0.000l-0.292,0.580l-0.290,0.292l0.000,0.290l-0.581,0.000l1.455,-0.581z",KP:"M833.343,114.229l0.292,0.582l-0.872,0.000l-1.164,0.872l-0.872,0.870l0.000,2.033l-1.452,0.581l-0.291,0.582l-1.163,0.580l-1.744,0.580l-1.163,0.582l-0.292,1.451l-0.289,0.291l1.163,0.290l1.452,1.161l-0.290,0.871l-1.162,0.000l-2.035,0.291l-0.874,1.161l-1.452,0.000l-1.454,-0.290l-0.289,0.290l-0.874,0.290l0.000,-0.580l-0.581,0.000l-0.871,-0.581l0.871,-1.161l0.581,-0.291l-0.291,-0.580l0.583,-1.453l0.000,-0.580l-1.744,-0.291l-1.162,-0.580l2.033,-1.742l3.198,-1.453l1.745,-2.032l1.453,0.871l2.325,0.000l-0.289,-1.452l4.067,-1.163l1.163,-1.451l-1.744,-1.451z",KR:"M826.948,124.684l2.617,3.194l0.582,2.034l0.000,2.903l-1.163,1.742l-2.326,0.582l-2.325,0.870l-2.326,0.291l-0.292,-1.452l0.292,-2.033l-1.163,-2.903l2.036,-0.291l-1.745,-2.614l1.452,0.000l0.874,-1.161l2.035,-0.291l1.162,0.000l-0.290,0.871z",KW:"M605.74,148.496l0.581,1.162l-0.291,0.580l0.871,2.323l-1.743,0.000l-0.873,-1.452l-2.326,-0.290l2.037,-2.614l-1.744,-0.291z",KZ:"M669.108,114.811l-1.454,0.291l-3.779,2.033l-1.163,2.032l-1.163,0.000l-0.580,-1.452l-3.489,0.000l-0.581,-2.323l-1.453,0.000l0.290,-2.614l-3.196,-2.032l-4.944,0.290l-3.196,0.291l-2.618,-2.614l-2.324,-0.872l-4.071,-2.031l-0.580,-0.291l-6.976,1.742l0.000,10.164l-1.455,0.000l-1.744,-2.033l-2.034,-0.871l-3.199,0.581l-1.160,0.871l0.000,-0.581l0.582,-1.163l-0.582,-0.869l-3.197,-1.162l-1.165,-2.323l-1.453,-0.581l-0.291,-1.161l2.909,0.289l0.000,-2.032l2.324,-0.290l2.326,0.290l0.581,-2.614l-0.581,-1.742l-2.616,0.291l-2.326,-0.872l-3.196,1.452l-2.618,0.581l-1.452,-0.581l0.289,-1.452l-1.743,-1.742l-2.034,0.000l-2.327,-1.742l1.453,-2.323l-0.580,-0.290l2.036,-3.195l2.906,1.742l0.289,-2.032l5.814,-3.195l4.362,0.000l5.812,2.032l3.489,1.163l2.906,-1.163l4.360,-0.290l3.488,1.453l0.871,-0.872l3.781,0.291l0.581,-1.453l-4.362,-1.742l2.618,-1.451l-0.581,-0.582l2.617,-0.870l-2.036,-1.743l1.454,-1.160l10.172,-0.872l1.454,-0.582l6.976,-1.161l2.326,-1.161l4.942,0.580l0.872,2.905l2.906,-0.581l3.488,0.872l-0.290,1.451l2.618,0.000l6.974,-2.614l-0.871,0.872l3.488,2.033l6.104,6.968l1.453,-1.451l3.780,1.742l4.070,-0.872l1.455,0.581l1.160,1.452l2.034,0.581l1.163,1.162l3.488,-0.291l1.455,1.743l-2.034,1.742l-2.328,0.291l0.000,2.904l-1.744,1.162l-5.232,-0.873l-2.034,4.938l-1.453,0.580l-5.524,1.162l2.617,4.646l-2.033,0.580l0.289,1.743l-1.744,-0.581l-1.455,-0.871l-4.068,-0.291l-4.361,0.000l-1.161,0.291l-3.779,-1.162l-1.745,0.581l-0.292,1.452l-4.649,-0.871l-1.745,0.580l0.581,-1.162z",LA:"M763.29,191.763l0.872,-1.451l0.291,-2.323l-2.327,-2.324l0.000,-2.613l-2.325,-2.323l-2.036,0.000l-0.582,0.871l-1.452,0.000l-0.871,-0.581l-2.907,1.742l0.000,-2.323l0.579,-2.904l-1.743,-0.289l-0.290,-1.744l-1.163,-0.580l0.581,-1.162l2.326,-1.742l0.289,0.581l1.455,0.000l-0.290,-2.904l1.453,-0.581l1.454,2.324l1.161,2.322l3.488,0.000l1.165,2.614l-1.747,0.580l-0.870,0.872l3.197,1.742l2.325,3.194l1.745,2.614l2.036,1.742l0.870,2.032l-0.581,2.614l-2.617,-0.871l-1.160,1.743l2.326,0.872z", -LB:"M572.31,139.494l-0.582,0.000l-0.291,0.580l-0.872,0.000l0.872,-2.323l1.454,-2.032l1.163,0.000l0.581,1.162l-1.452,1.161l0.873,-1.452z",LK:"M699.047,210.348l-0.579,2.904l-1.165,0.581l-2.323,0.582l-1.455,-2.034l-0.292,-4.066l1.166,-4.356l2.033,1.454l1.162,2.032l-1.453,-2.903z",LR:"M452.549,219.06l-0.873,0.000l-2.615,-1.453l-2.617,-2.032l-2.324,-1.452l-1.744,-1.742l0.580,-0.872l0.000,-0.871l1.454,-1.452l1.163,-1.451l0.581,0.000l0.872,-0.290l1.162,1.741l-0.290,1.162l0.582,0.581l0.581,0.000l0.582,-1.161l0.871,0.000l0.000,0.870l0.291,1.162l-0.582,1.452l0.582,0.581l0.871,0.290l1.162,1.161l0.293,1.162l-0.293,0.291l0.289,-2.323z",LS:"M553.416,310.531l1.163,0.872l-0.873,1.451l-0.581,0.871l-1.454,0.292l-0.581,0.869l-0.871,0.291l-2.036,-2.032l1.454,-1.742l1.453,-1.163l1.163,-0.579l-1.163,-0.870z",LT:"M536.265,81.417l-0.291,-0.582l0.582,-0.870l-1.454,-0.291l-2.906,-0.581l-0.580,-2.322l3.197,-0.871l4.649,0.290l2.618,-0.290l0.581,0.580l1.455,0.291l2.614,1.162l0.290,1.160l-2.326,1.162l-0.578,1.452l-2.908,0.872l-2.907,0.000l-0.582,-0.872l1.454,0.290z",LU:"M490.338,93.032l0.579,0.581l0.000,1.452l-0.871,0.000l-0.581,-0.291l0.290,-1.451l-0.583,0.291z",LV:"M531.616,76.771l0.290,-2.033l1.162,-1.742l2.616,-0.871l2.326,2.033l2.035,0.000l0.581,-2.033l2.325,-0.581l1.165,0.290l2.614,1.162l2.034,0.000l1.455,0.581l0.291,1.161l0.871,1.742l-2.906,1.162l-1.745,0.291l-2.614,-1.162l-1.455,-0.291l-0.581,-0.580l-2.618,0.290l-4.649,-0.290l3.197,-0.871z",LY:"M514.755,167.951l-2.036,1.162l-1.452,-1.452l-4.361,-1.161l-1.452,-1.743l-2.035,-1.451l-1.163,0.580l-1.163,-1.451l0.000,-1.162l-1.744,-2.033l1.162,-1.161l-0.291,-1.743l0.291,-1.452l0.000,-1.451l0.291,-2.033l0.000,-1.453l-0.871,-2.322l1.162,-0.581l0.290,-1.162l-0.290,-1.161l2.034,-1.162l0.872,-0.870l1.164,-0.873l0.291,-2.032l3.195,0.872l1.165,0.000l2.326,0.290l3.486,1.161l1.456,2.614l2.325,0.581l4.067,1.161l2.907,1.162l1.165,-0.581l1.453,-1.452l-0.582,-2.033l0.874,-1.162l1.741,-1.451l2.036,-0.290l3.778,0.580l0.873,1.161l1.163,0.000l0.871,0.582l2.616,0.291l0.582,0.870l-0.871,1.452l0.289,1.162l-0.579,1.451l0.871,2.324l0.000,9.873l0.000,10.162l0.000,5.228l-3.199,0.291l0.000,0.870l-11.045,-5.227l-11.046,-5.226l2.616,-1.451z",MA:"M459.526,132.525l1.743,1.161l2.616,0.000l2.615,0.581l1.164,0.000l1.163,1.742l0.291,1.742l0.871,2.905l0.582,0.580l-0.289,0.871l-3.782,0.582l-1.162,0.870l-1.744,0.291l0.000,2.032l-3.197,1.162l-1.162,1.452l-2.036,0.581l-2.906,0.581l-4.361,2.032l0.000,3.194l-0.581,0.000l0.292,1.452l-1.745,0.000l-0.872,0.871l-1.161,0.000l-1.165,-0.581l-2.324,0.291l-0.873,2.323l-0.872,0.000l-1.162,3.485l-4.069,3.194l-0.874,3.775l-1.162,1.162l-0.290,0.870l-6.107,0.291l0.000,-1.161l1.165,-0.872l0.871,-1.451l-0.291,-0.872l1.164,-2.033l1.454,-1.742l0.871,-0.291l0.873,-1.742l0.000,-1.451l0.870,-1.742l2.036,-0.872l1.745,-2.904l1.452,-1.162l2.326,-0.289l2.326,-1.743l1.452,-0.871l2.036,-2.323l-0.582,-3.194l1.163,-2.323l0.290,-1.452l1.744,-2.033l2.906,-1.162l2.037,-1.162l1.745,-2.903l0.871,-1.742l-2.035,0.000z",MD:"M547.02,98.259l0.584,-0.290l2.033,-0.290l2.034,0.870l1.162,0.000l1.166,0.872l-0.293,0.871l1.164,0.580l0.290,1.162l0.873,0.580l0.000,0.291l0.290,0.291l-0.581,0.290l-1.743,0.000l-0.293,-0.581l-0.581,0.291l0.291,0.580l-0.872,0.871l-0.291,0.872l-0.872,0.291l-0.291,-1.163l0.291,-1.161l-0.291,-1.161l-1.453,-1.742l-0.873,-1.162l-0.871,-0.872l0.873,0.290z",ME:"M528.417,113.94l-0.292,-0.291l-1.163,1.162l0.000,0.872l-0.581,0.000l-0.579,-0.872l-1.163,-0.582l0.289,-0.580l0.291,-1.451l0.872,-0.581l0.582,-0.290l0.873,0.290l0.290,0.581l0.872,0.290l1.162,0.581l-0.290,0.000l-0.581,0.871l0.582,0.000z",MG:"M610.099,265.23l0.873,1.163l0.582,1.742l0.579,3.485l0.584,1.160l-0.293,1.454l-0.581,0.579l-0.871,-1.451l-0.583,0.872l0.583,2.032l-0.291,1.160l-0.582,0.581l-0.292,2.325l-1.162,3.194l-1.161,3.775l-1.744,5.226l-1.162,3.775l-1.165,3.195l-2.325,0.581l-2.325,1.162l-1.455,-0.582l-2.324,-0.871l-0.872,-1.453l0.000,-2.613l-1.163,-2.032l0.000,-2.033l0.292,-2.032l1.452,-0.582l0.000,-0.871l1.163,-2.032l0.289,-1.742l-0.579,-1.453l-0.582,-1.451l-0.291,-2.614l1.163,-1.743l0.289,-1.742l1.455,0.000l1.452,-0.581l0.872,-0.579l1.454,0.000l1.455,-1.454l2.325,-1.740l0.872,-1.454l-0.580,-1.160l1.161,0.289l1.744,-1.743l0.000,-1.742l0.873,-1.160l-0.871,-1.160z",MK:"M530.451,115.973l0.292,0.000l0.289,-0.581l1.455,-0.581l0.581,0.000l1.161,-0.290l1.165,0.000l1.452,0.871l0.000,1.743l-0.290,0.290l-0.582,0.290l-1.452,0.000l-1.164,0.580l-1.742,0.291l-1.165,-0.581l-0.289,-1.161l-0.289,0.871z",ML:"M440.34,190.602l0.871,-0.290l0.583,-1.743l0.872,0.000l1.744,0.871l1.455,-0.580l1.161,0.000l0.581,-0.581l11.046,0.000l0.582,-2.032l-0.582,-0.291l-1.454,-11.906l-1.161,-11.615l4.070,-0.291l9.301,6.098l9.301,6.098l0.873,1.161l1.454,0.872l1.452,0.291l0.000,1.742l2.906,0.000l0.000,6.097l-1.452,2.034l-0.291,1.452l-2.326,0.580l-3.778,0.291l-0.872,0.870l-1.744,0.291l-2.035,0.000l-0.582,-0.581l-1.452,0.290l-2.617,1.162l-0.582,0.871l-2.035,1.161l-0.291,0.872l-1.163,0.581l-1.452,-0.581l-0.872,0.871l-0.291,1.742l-2.034,2.324l0.000,0.871l-0.873,1.161l0.290,1.741l-1.161,0.292l-0.583,0.290l-0.579,-1.162l-0.582,0.291l-0.581,0.000l-0.582,0.871l-2.037,0.000l-0.870,-0.582l-0.292,0.292l-0.871,-0.581l0.290,-0.871l-0.581,-0.291l-0.582,0.291l0.291,-1.162l0.582,-0.580l-1.162,-1.162l-0.292,-0.871l-0.582,-0.581l-0.581,0.000l-0.871,0.290l-0.873,0.582l-0.579,0.580l-1.165,-0.291l-0.871,-0.580l-0.582,-0.291l-0.581,0.582l-0.290,0.000l-0.293,-1.162l0.000,-0.871l0.000,-1.162l-1.162,-0.581l-0.581,-1.742l0.000,1.742z",MM:"M747.882,175.501l-1.743,1.163l-2.034,0.000l-1.163,3.194l-1.165,0.290l1.455,2.613l1.744,1.742l1.163,2.034l-1.163,2.323l-0.871,0.580l0.582,1.162l1.741,2.322l0.582,1.453l-0.290,1.452l1.162,2.322l-1.454,2.614l-1.452,2.903l-0.289,-2.031l0.870,-2.033l-0.870,-1.742l0.289,-2.904l-1.163,-1.453l-0.871,-3.484l-0.581,-3.484l-1.164,-2.034l-1.743,1.162l-3.200,2.033l-1.454,-0.291l-1.741,-0.580l0.870,-3.486l-0.579,-2.612l-2.036,-2.904l0.290,-1.161l-1.744,-0.291l-1.743,-2.323l-0.291,-2.033l0.871,0.291l0.292,-2.033l1.162,-0.581l-0.291,-1.161l0.583,-0.872l0.290,-2.904l2.033,0.580l1.163,-2.322l0.292,-1.162l1.453,-2.323l0.000,-1.742l3.489,-1.742l2.034,0.290l-0.291,-1.452l0.871,-0.580l0.000,-1.162l1.455,0.000l0.873,1.452l1.161,0.580l0.291,2.324l-0.291,2.032l-2.615,2.323l-0.290,3.484l2.905,-0.580l0.873,2.614l1.743,0.580l-0.872,2.033l2.035,1.162l1.163,0.580l2.035,-0.870l0.000,1.161l-2.326,1.742l-0.581,1.162l1.454,-0.580z",MN:"M715.327,95.356l2.907,-0.582l5.232,-2.323l4.069,-1.161l2.616,0.871l2.908,0.000l1.741,1.162l2.617,0.290l4.071,0.581l2.617,-2.033l-1.163,-1.453l2.907,-2.902l3.196,1.161l2.327,0.290l3.488,0.580l0.290,2.324l4.069,1.162l2.617,-0.582l3.487,-0.290l2.618,0.290l2.615,1.162l1.743,1.453l2.616,0.000l3.490,0.581l2.616,-0.872l3.488,-0.291l4.070,-2.033l1.745,0.291l1.452,0.871l3.197,-0.290l-1.453,2.324l-1.744,2.612l0.581,1.162l1.455,-0.290l2.904,0.290l2.036,-0.872l2.327,0.872l2.325,1.742l-0.291,1.161l-2.034,-0.289l-4.071,0.289l-2.035,0.872l-2.034,1.742l-4.069,1.162l-2.909,1.451l-2.614,-0.580l-1.745,-0.290l-1.454,1.742l0.873,1.162l0.581,0.871l-2.033,0.871l-1.745,1.452l-3.199,0.871l-4.359,0.289l-4.361,0.873l-3.197,1.451l-1.163,-0.870l-3.489,0.000l-4.069,-1.743l-2.615,-0.291l-3.781,0.291l-5.522,-0.580l-3.196,0.000l-1.456,-1.453l-1.163,-2.613l-1.743,-0.291l-3.488,-1.742l-3.778,-0.290l-3.198,-0.581l-0.873,-1.162l0.873,-3.194l-1.746,-2.323l-4.067,-0.872l-2.326,-1.451l0.581,2.032z",MR:"M440.34,190.602l-2.034,-1.742l-1.454,-2.033l-2.034,-0.580l-1.163,-0.872l-1.454,0.000l-1.452,0.581l-1.456,-0.291l-0.871,0.872l-0.290,-1.453l0.871,-1.451l0.290,-2.614l-0.290,-2.613l-0.291,-1.453l0.291,-1.161l-0.871,-1.452l-1.454,-1.161l0.582,-0.871l11.046,0.000l-0.581,-4.066l0.581,-1.451l2.615,0.000l0.000,-7.261l9.011,0.290l0.000,-4.355l10.176,6.679l-4.070,0.291l1.161,11.615l1.454,11.906l0.582,0.291l-0.582,2.032l-11.046,0.000l-0.581,0.581l-1.161,0.000l-1.455,0.580l-1.744,-0.871l-0.872,0.000l-0.583,1.743l0.871,-0.290z",MW:"M568.822,262.618l-0.582,2.032l0.582,3.776l1.165,-0.291l0.871,0.871l1.163,2.034l0.289,3.483l-1.163,0.581l-0.871,2.032l-1.744,-1.742l-0.292,-2.032l0.582,-1.161l-0.290,-1.161l-0.873,-0.582l-0.871,0.291l-1.455,-1.454l-1.452,-0.580l0.580,-2.612l0.872,-0.873l-0.290,-2.323l0.290,-2.322l0.582,-0.582l-0.582,-2.322l-1.452,-1.452l2.907,0.581l0.289,0.871l1.163,1.161l-0.582,-3.776z",MX:"M206.341,159.82l-1.163,2.324l-0.291,2.033l-0.290,3.774l-0.291,1.162l0.581,1.743l0.872,1.161l0.582,2.033l1.744,2.323l0.581,1.452l1.163,1.451l2.906,0.582l1.163,1.161l2.326,-0.871l2.034,-0.290l2.035,-0.291l1.745,-0.581l1.743,-1.161l0.872,-1.452l0.000,-2.323l0.582,-0.871l2.034,-0.581l2.908,-0.872l2.324,0.291l1.745,-0.291l0.582,0.582l0.000,1.161l-1.454,1.742l-0.873,1.742l0.582,0.581l-0.291,1.162l-0.872,2.033l-0.582,-0.581l-0.581,0.000l-0.580,0.000l-0.872,1.742l-0.582,-0.580l-0.290,0.290l0.000,0.290l-2.617,0.000l-2.615,0.000l0.000,1.743l-1.163,0.000l0.872,0.870l1.162,0.581l0.291,0.581l0.582,0.291l-0.292,0.871l-3.487,0.000l-1.164,2.033l0.291,0.580l-0.291,0.581l0.000,0.871l-3.197,-2.903l-1.454,-0.872l-2.325,-0.870l-1.453,0.290l-2.325,1.161l-1.163,0.291l-2.035,-0.872l-2.035,-0.580l-2.617,-1.162l-2.034,-0.291l-3.198,-1.451l-2.325,-1.161l-0.582,-0.872l-1.453,0.000l-2.906,-0.871l-1.163,-1.453l-2.907,-1.451l-1.454,-1.742l-0.581,-1.453l0.872,-0.290l-0.291,-0.581l0.582,-0.871l0.000,-0.871l-0.873,-1.161l-0.290,-1.162l-0.872,-1.452l-2.325,-2.614l-2.908,-2.322l-1.453,-1.453l-2.325,-1.161l-0.290,-0.872l0.290,-1.451l-1.454,-0.871l-1.453,-1.162l-0.872,-2.032l-1.454,-0.291l-1.453,-1.452l-1.454,-1.161l0.000,-0.871l-1.453,-2.033l-1.162,-2.324l0.290,-0.870l-2.035,-1.162l-0.872,0.000l-1.744,-0.581l-0.290,1.162l0.290,1.161l0.290,2.034l0.872,1.161l2.036,2.032l0.581,0.581l0.291,0.290l0.581,0.872l0.291,0.000l0.581,1.742l0.872,0.580l0.581,1.162l1.745,1.162l0.872,2.613l0.872,1.162l0.872,1.452l0.000,1.452l1.453,0.000l0.872,1.160l1.164,1.454l0.000,0.290l-1.164,1.161l-0.581,0.000l-0.581,-1.742l-2.035,-1.452l-1.744,-1.453l-1.454,-0.580l0.000,-2.033l-0.291,-1.452l-1.453,-0.870l-1.744,-1.453l-0.581,0.581l-0.582,-0.871l-1.743,-0.581l-1.745,-1.742l0.291,0.000l1.163,0.000l1.162,-0.872l0.000,-1.451l-2.034,-1.742l-1.744,-0.871l-0.873,-1.742l-1.162,-1.744l-1.163,-2.322l-1.163,-2.323l3.198,-0.291l3.487,-0.290l-0.290,0.581l4.070,1.452l6.395,1.742l5.232,0.000l2.326,0.000l0.000,-1.162l4.650,0.000l1.163,1.162l1.453,0.871l1.454,1.162l0.872,1.451l0.872,1.453l1.454,0.871l2.325,0.871l1.744,-2.323l2.035,0.000l2.034,1.161l1.454,1.742l0.872,1.742l1.744,1.452l0.582,2.033l0.581,1.162l2.326,0.871l1.744,0.580l-1.163,0.000z",MY:"M751.953,213.833l0.29,1.451l1.744-0.289l0.873-1.162l0.582,0.29l1.741,1.743l1.165,1.741l0.29,1.743l-0.29,1.452v0.87l0.29,1.453l0.871,0.871l1.162,2.322v1.162h-2.033l-2.616-2.033l-3.195-2.032l-0.295-1.452l-1.452-1.743l-0.581-2.322l-0.871-1.452l0.289-2.031l-0.58-1.162l0.291-0.582L751.953,213.833zM800.205,218.769l-2.034,0.871l-2.325-0.58h-3.198l-0.871,3.193l-1.163,0.872l-1.452,3.774l-2.036,0.581l-2.615-0.581l-1.454,0.291l-1.453,1.16h-1.744l-1.744,0.581l-2.033-1.741l-0.584-1.743l2.036,0.871l2.325-0.581l0.581-2.322l1.163-0.29l3.197-0.581l2.036-2.324l1.162-1.741l1.453,1.451l0.58-0.87h1.163l0.291-1.743v-1.451l2.327-1.743l1.161-2.322h1.162l1.455,1.452v1.162l2.034,0.869l2.325,0.872l-0.29,0.872l-1.744,0.289L800.205,218.769z",MZ:"M568.822,262.618l2.036,-0.292l3.486,0.872l0.581,-0.291l2.036,-0.289l0.872,-0.581l1.746,0.000l2.907,-1.162l2.323,-1.452l0.292,1.162l0.000,2.613l0.289,2.614l0.000,4.064l0.584,1.453l-0.873,2.033l-0.873,1.742l-1.742,1.742l-2.618,1.161l-3.199,1.163l-2.905,3.194l-1.163,0.290l-2.036,2.033l-1.162,0.580l0.000,2.034l1.162,2.032l0.582,1.741l0.000,0.874l0.581,-0.292l-0.291,2.614l-0.290,1.451l0.581,0.290l-0.291,1.162l-1.161,1.161l-2.327,0.873l-3.198,1.451l-1.452,1.162l0.289,1.161l0.873,0.000l-0.291,1.452l-2.034,0.000l-0.291,-1.162l-0.580,-1.161l0.000,-1.162l0.290,-2.904l-0.582,-2.033l-1.452,-3.774l2.904,-3.195l0.874,-2.033l0.289,-0.290l0.293,-1.452l-0.293,-0.870l0.000,-2.033l0.582,-2.032l0.000,-3.486l-1.452,-0.871l-1.163,-0.289l-0.582,-0.582l-1.452,-0.581l-2.325,0.000l0.000,-0.870l-0.292,-2.033l8.429,-2.325l1.455,1.454l0.871,-0.291l0.873,0.582l0.290,1.161l-0.582,1.161l0.292,2.032l1.744,1.742l0.871,-2.032l1.163,-0.581l-0.289,-3.483l-1.163,-2.034l-0.871,-0.871l-1.165,0.291l-0.582,-3.776l-0.582,2.032z",NA:"M518.825,309.661l-2.036,-2.325l-1.163,-2.033l-0.579,-2.613l-0.584,-2.032l-1.161,-4.065l0.000,-3.485l-0.291,-1.452l-1.163,-1.162l-1.454,-2.034l-1.452,-3.483l-0.582,-1.743l-2.034,-2.613l-0.291,-2.033l1.452,-0.581l1.455,-0.581l1.743,0.292l1.745,1.161l0.581,-0.291l11.047,0.000l2.033,1.162l6.396,0.582l5.232,-1.162l2.326,-0.582l1.745,0.000l0.871,0.582l0.290,0.289l-1.743,0.582l-0.874,0.000l-1.744,1.162l-0.871,-1.162l-4.361,0.871l-2.033,0.291l0.000,9.582l-2.908,0.289l0.000,7.843l0.000,10.163l-2.326,1.451l-1.452,0.290l-1.744,-0.581l-1.162,-0.290l-0.582,-1.162l-1.163,-0.580l1.163,-1.453z",NC:"M930.142,289.042l2.325,1.452l1.452,1.454l-1.162,0.579l-1.453,-0.871l-2.036,-1.162l-1.744,-1.452l-1.742,-1.741l-0.582,-1.162l1.161,0.000l1.745,1.162l1.162,0.870l-0.874,-0.871z",NCY:"M563.881,134.267l0.289,0.000l0.291,-0.581l2.035,0.000l2.326,-0.871l-1.745,1.162l0.293,0.580l-0.293,0.000l-0.581,0.000l-0.581,0.000l-0.290,-0.290l-0.582,0.000l-0.582,0.290l0.580,0.290z",NE:"M479.583,198.151l0.291,-2.032l-3.198,-0.581l-0.291,-1.161l-1.453,-2.033l-0.292,-1.162l0.292,-1.161l1.744,-0.291l0.872,-0.870l3.778,-0.291l2.326,-0.580l0.291,-1.452l1.452,-2.034l0.000,-6.097l4.070,-1.453l7.849,-5.227l9.592,-5.226l4.361,1.161l1.452,1.452l2.036,-1.162l0.581,4.357l1.164,0.871l0.000,0.871l1.163,0.871l-0.581,1.162l-1.164,5.517l-0.292,3.484l-3.486,2.614l-1.165,3.775l1.165,0.871l0.000,1.742l1.742,0.291l-0.289,1.161l-0.582,0.291l-0.292,0.871l-0.289,0.000l-2.036,-2.904l-0.580,-0.291l-2.327,1.453l-2.033,-0.581l-1.455,-0.291l-0.872,0.291l-1.453,0.000l-1.743,1.161l-1.455,0.000l-3.196,-1.161l-1.452,0.581l-1.165,0.000l-1.163,-1.162l-2.617,-0.872l-3.195,0.291l-0.582,0.581l-0.292,1.452l-0.871,1.161l-0.291,2.324l-2.034,-1.453l-0.874,0.000l1.161,-0.871z",NG:"M497.023,217.898l-2.615,0.871l-1.164,0.000l-1.161,0.581l-2.037,0.000l-1.452,-1.743l-0.873,-2.032l-2.033,-1.742l-2.036,0.000l-2.615,0.000l0.289,-4.647l0.000,-1.741l0.581,-1.743l0.582,-0.871l1.454,-1.452l-0.291,-0.873l0.580,-1.160l-0.580,-1.453l0.000,-1.160l0.291,-2.324l0.871,-1.161l0.292,-1.452l0.582,-0.581l3.195,-0.291l2.617,0.872l1.163,1.162l1.165,0.000l1.452,-0.581l3.196,1.161l1.455,0.000l1.743,-1.161l1.453,0.000l0.872,-0.291l1.455,0.291l2.033,0.581l2.327,-1.453l0.580,0.291l2.036,2.904l0.289,0.000l1.163,0.871l-0.289,0.580l0.000,0.872l-2.326,2.323l-0.873,1.742l-0.289,1.452l-0.582,0.582l-0.581,1.742l-1.455,1.161l-0.581,1.452l-0.580,1.161l-0.291,1.162l-1.744,0.870l-1.746,-1.161l-0.871,0.000l-1.743,1.743l-0.872,0.000l-1.164,2.614l0.872,-2.032z",NI:"M237.734,200.475l-0.872,-0.871l-1.163,-1.162l-0.581,-0.871l-1.163,-0.871l-1.454,-1.162l0.291,-0.580l0.291,0.580l0.291,-0.290l0.872,0.000l0.291,-0.871l0.581,0.000l-0.290,-1.162l0.871,-0.291l0.582,0.291l0.581,-0.871l0.581,0.580l0.291,-0.289l0.581,-0.291l1.163,-0.871l0.000,-0.581l0.291,0.000l0.291,-0.580l0.291,0.000l0.290,0.290l0.582,0.000l0.581,-0.290l0.872,0.000l0.872,-0.291l0.291,-0.291l1.162,0.000l-0.291,0.291l-0.290,0.581l0.290,0.871l-0.582,1.162l-0.289,0.870l0.000,1.453l0.000,0.580l0.289,1.162l-0.580,0.290l-0.291,1.161l0.291,0.872l-0.581,0.581l0.000,0.871l0.581,0.290l-0.581,0.581l-0.872,0.000l-0.583,-0.581l-0.871,-0.290l-0.581,0.290l-1.745,-0.581l0.581,-0.291z",NL:"M490.628,83.74l2.035,0.000l0.581,1.161l-0.581,2.323l-0.871,1.162l-1.454,0.000l0.290,2.904l-1.452,-0.582l-1.745,-1.451l-2.617,0.580l-2.034,0.000l1.452,-0.870l2.618,-4.066l-3.778,1.161z",NO:"M551.381,35.246l8.43,2.032l-3.488,0.582l3.198,1.742l-4.942,1.161l-2.034,0.29l1.161-2.032l-3.486-1.162l-4.362,1.162l-1.452,2.032l-2.615,1.162l-2.907-0.581h-3.488l-3.198-1.452l-1.453,0.581l-1.744,0.29l-0.582,1.743l-5.231-0.291l-0.582,1.452h-2.615l-1.745,2.033l-2.906,2.903l-4.361,3.775l1.165,1.162l-0.873,0.872h-2.907l-1.744,2.613l0.29,3.775l1.743,1.162l-1.162,3.484l-2.033,1.742l-1.455,1.742l-1.742-1.742l-5.524,3.194l-3.488,0.582l-3.778-1.452l-1.163-2.905l-0.871-6.387l2.615-1.743l7.268-2.323l5.523-2.904l4.941-3.774l6.685-5.228l4.651-2.033l7.559-3.484l5.813-1.162h4.651l4.069-2.324l5.231,0.291L551.381,35.246zM541.79,16.951l-6.105,1.162l-4.941-0.87l2.036-0.582l-1.747-0.872l5.814-0.58l0.873,1.161L541.79,16.951zM524.058,11.724l9.01,2.033l-6.977,1.162l-1.452,2.032l-2.325,0.581l-1.455,2.324h-3.196l-6.104-1.743l2.615-0.87l-4.069-0.873l-5.523-2.323l-2.036-2.033l7.56-1.162l1.454,1.162l3.777-0.291l1.163-0.871h4.07L524.058,11.724zM543.823,9.692l5.522,1.161l-4.358,1.452l-7.849,0.29l-8.14-0.581l-0.582-0.58h-3.777l-3.199-1.453l8.722-0.58l3.778,0.58l2.906-0.871L543.823,9.692z",NP:"M716.198,154.304l0.000,1.161l0.291,1.742l-0.291,1.162l-2.326,0.000l-3.197,-0.581l-2.325,-0.290l-1.453,-1.452l-3.779,-0.291l-3.490,-1.742l-2.614,-1.161l-2.908,-1.162l1.163,-2.613l1.745,-1.161l1.162,-0.582l2.326,0.871l2.616,1.742l1.454,0.291l1.162,1.452l2.034,0.581l2.326,1.162l2.906,0.580l-3.198,-0.291z",NZ:"M949.907,343.345l0.873,1.161l1.745-1.161l0.87,1.161v1.161l-0.87,1.452l-2.036,2.033l-1.163,1.161l0.873,1.162h-2.034l-2.327,1.162l-0.871,1.74l-1.455,2.904l-2.323,1.161l-1.165,0.871l-2.615-0.289l-1.742-0.872h-3.198l-0.292-1.162l1.453-2.033l3.49-2.613l1.744-0.58l2.034-1.16l2.325-1.452l1.744-1.453l1.162-2.032l0.872-0.58l0.58-1.452l1.745-1.451L949.907,343.345zM954.559,330.277l1.743,2.904l0.292-1.743l1.16,0.58l0.293,2.324l2.324,0.872h1.745l1.743-0.872l1.453,0.289l-0.871,2.326l-0.873,1.74h-2.033l-0.582,0.581v1.452l-0.289,0.291l-1.165,1.452l-1.163,2.032l-2.325,1.161l-0.29-0.87l-1.162-0.291l1.452-2.322l-0.871-1.453l-2.907-1.16v-0.873l2.035-1.159l0.58-2.034l-0.289-1.743l-1.164-1.743l0.292-0.58l-1.454-1.161l-2.034-2.323l-1.162-2.032l0.87-0.291l1.455,1.453l2.325,0.87L954.559,330.277z",OM:"M635.678,172.888l-0.871,1.742h-1.163l-0.58,0.581l-0.582,1.452l0.29,1.742l-0.29,0.581l-1.163-0.29l-1.744,1.162l-0.291,1.452l-0.58,0.581h-1.743l-1.165,0.582v1.162l-1.163,0.581l-1.452-0.291l-2.034,1.162h-1.163l-0.873-1.743l-2.325-4.645l8.431-2.613l1.745-5.519l-1.165-2.032v-1.162l0.873-1.162v-1.161l1.162-0.581l-0.581-0.291l0.289-1.742h1.456l1.161,1.742l1.745,1.161l2.036,0.291l1.45,0.581l1.165,1.452l0.871,0.872l0.872,0.58v0.582l-0.872,1.451l-0.582,0.872L635.678,172.888zM628.995,159.82l-0.291,0.291l-0.583-0.871l0.874-0.872l0.289,0.291L628.995,159.82z",PA:"M259.244,211.219l-0.872,-0.871l-0.580,-1.452l0.872,-0.871l-0.872,-0.290l-0.582,-0.871l-1.163,-0.581l-1.162,0.000l-0.582,1.162l-1.162,0.580l-0.582,0.000l-0.291,0.581l1.163,1.451l-0.581,0.581l-0.582,0.291l-1.163,0.290l-0.581,-1.742l-0.291,0.291l-0.872,0.000l-0.581,-1.162l-1.163,-0.291l-0.580,-0.290l-1.164,0.000l-0.291,0.581l-0.290,-0.291l0.290,-0.580l0.291,-0.582l-0.291,-0.289l0.583,-0.581l-0.583,-0.291l0.000,-1.161l0.872,-0.291l1.163,1.162l0.000,0.581l0.872,0.000l0.291,-0.291l0.872,0.872l1.163,-0.291l1.163,-0.581l1.744,-0.579l0.872,-0.873l1.744,0.000l-0.291,0.291l1.745,0.291l1.163,0.291l0.871,0.870l0.872,0.870l-0.290,0.292l0.872,1.741l-0.582,0.871l-0.872,-0.289l0.582,-1.451z",PE:"M282.208,279.17l-0.872,1.451l-1.163,0.872l-2.905,-1.743l-0.292,-1.162l-5.232,-2.613l-4.942,-3.195l-2.325,-1.451l-1.163,-2.323l0.581,-0.871l-2.326,-3.485l-2.905,-5.227l-2.326,-5.517l-1.163,-1.161l-0.872,-2.033l-2.325,-1.743l-1.745,-1.161l0.872,-1.162l-1.453,-2.613l0.872,-2.033l2.326,-1.742l0.291,1.160l-0.873,0.582l0.000,1.162l1.163,-0.290l1.163,0.290l1.162,1.451l1.454,-1.162l0.582,-1.742l1.744,-2.613l3.196,-0.871l3.198,-2.904l0.872,-1.741l-0.581,-2.324l0.872,-0.291l1.744,1.452l0.872,1.163l1.163,0.870l1.744,2.903l2.035,0.291l1.453,-0.870l1.164,0.579l1.452,-0.290l2.326,1.452l-1.744,2.613l0.582,0.290l1.452,1.454l-2.324,-0.290l-0.583,0.580l-2.033,0.289l-3.198,2.034l-0.291,1.161l-0.581,1.162l0.290,1.451l-1.744,0.581l0.000,1.162l-0.872,0.581l1.163,2.614l1.744,1.451l-0.581,1.451l1.744,0.000l0.872,1.453l2.616,0.000l2.326,-1.453l-0.292,4.066l1.163,0.292l1.744,-0.292l2.326,4.355l-0.582,0.873l-0.290,2.033l0.000,2.323l-1.163,1.452l0.582,0.872l-0.582,0.869l1.163,2.324l1.745,-2.904z",PG:"M902.817,249.55l-0.873,0.29l-1.163-0.871l-1.162-1.742l-0.581-2.032l0.581-0.289l0.29,0.579l0.583,0.872l1.452,1.741l1.163,0.871L902.817,249.55zM892.063,246.065l-1.455,0.292l-0.29,0.58l-1.454,0.871l-1.452,0.582h-1.452l-2.328-0.872l-1.453-0.872v-0.871l2.616,0.582l1.454-0.292l0.289-1.159l0.582-0.293l0.292,1.452h1.452l0.873-1.159l1.452-0.873l-0.289-1.741h1.741l0.584,0.58l-0.291,1.452L892.063,246.065zM878.982,251.292l2.326,1.742l1.741,2.904h1.745v1.16l2.035,0.582l-0.87,0.291l2.904,1.16l-0.29,0.871l-1.744,0.292l-0.87-0.872l-2.328-0.291l-2.616-0.29l-2.325-1.743l-1.452-1.451l-1.454-2.613l-3.488-1.161l-2.326,0.871l-1.744,0.871l0.292,2.032l-2.034,0.871l-1.744-0.29l-2.617-0.29l-0.29-9.002v-8.712l4.94,1.742l4.941,1.451l2.036,1.453l1.452,1.452l0.292,1.741l4.649,1.743l0.583,1.451l-2.328,0.291L878.982,251.292zM895.259,243.451l-0.873,0.582l-0.582-1.741l-0.579-0.873l-1.162-0.87l-1.455-1.162l-2.034-0.871l0.579-0.58l1.455,0.58l1.163,0.581l1.163,0.871l0.87,1.161l1.165,0.871L895.259,243.451z",PH:"M821.715,207.735l0.292,2.033v1.451l-0.872,2.322l-0.871-2.612l-1.454,1.452l0.871,2.033l-0.871,1.16l-3.199-1.452l-0.581-2.032l0.874-1.452l-1.745-1.161l-0.873,1.161l-1.452-0.29l-2.034,1.742l-0.292-0.871l0.871-2.323l1.744-0.871l1.455-0.872l1.163,1.162l2.035-0.87l0.29-1.162h2.033v-2.323l2.036,1.453l0.29,1.451L821.715,207.735zM815.03,202.798l-0.871,0.87l-0.873,1.744l-0.871,0.579l-1.744-1.741l0.582-0.871l0.581-0.581l0.289-1.743l1.455-0.29l-0.292,2.033l2.036-2.614L815.03,202.798zM799.916,205.413l-3.488,2.612l1.163-2.033l2.034-1.741l1.743-1.744l1.454-2.902l0.291,2.322l-1.745,1.453L799.916,205.413zM809.216,198.151l1.743,0.872h1.745v1.161l-1.452,1.162l-1.745,0.871v-1.162l0.292-1.451L809.216,198.151zM819.099,197.571l0.874,2.904l-2.036-0.582v0.872l0.581,1.741l-1.162,0.582l-0.29-2.033h-0.584l-0.578-1.742l1.743,0.291v-1.162l-1.743-2.033h2.614L819.099,197.571zM808.344,194.958l-0.873,2.323l-1.161-1.162l-1.454-2.323l2.615,0.291L808.344,194.958zM807.764,180.148l1.743,0.581l0.871-0.581v0.581l-0.289,1.162l0.87,2.033l-0.581,2.324l-1.744,0.87l-0.29,2.323l0.582,2.033l1.452,0.29l1.165-0.29l3.486,1.451l-0.289,1.743l0.87,0.581l-0.289,1.161l-2.036-1.161l-1.163-1.452l-0.579,0.871l-1.744-1.743l-2.617,0.581l-1.454-0.581l0.291-1.162l0.873-0.871l-0.873-0.58l-0.291,1.162l-1.453-1.743l-0.29-1.161l-0.291-2.613l1.162,0.871l0.292-4.355l0.871-2.324H807.764z",PK:"M680.735,128.75l2.036,1.451l0.870,2.033l4.361,1.162l-2.617,2.323l-3.196,0.290l-4.069,-0.581l-1.453,1.162l1.160,2.324l0.874,2.032l2.325,1.161l-2.325,1.743l0.000,2.032l-2.618,2.614l-1.745,2.904l-2.904,2.904l-3.199,-0.291l-3.197,2.904l1.745,1.162l0.579,2.032l1.455,1.451l0.583,2.324l-6.106,0.000l-1.745,2.033l-2.033,-0.871l-0.873,-2.033l-2.034,-2.033l-5.234,0.580l-4.360,0.000l-4.068,0.291l1.161,-3.193l4.070,-1.162l-0.290,-1.452l-1.453,-0.291l0.000,-2.613l-2.617,-1.162l-1.162,-1.742l-1.453,-1.452l4.649,1.452l2.907,-0.291l1.455,0.291l0.581,-0.580l2.035,0.289l3.488,-1.161l0.291,-2.323l1.452,-1.742l2.034,0.000l0.292,-0.581l2.036,-0.290l1.160,0.000l0.875,-0.580l0.000,-1.743l1.162,-1.743l1.742,-0.580l-1.161,-1.743l2.616,0.000l0.872,-0.871l-0.289,-1.162l1.450,-1.161l-0.289,-1.452l-0.581,-1.162l1.454,-1.161l3.197,-0.580l2.907,-0.291l1.454,-0.581l-1.743,0.290z",PL:"M515.047,90.418l-1.165,-1.742l0.292,-0.870l-0.581,-1.452l-1.163,-1.162l0.872,-0.581l-0.583,-1.452l1.744,-0.870l4.362,-1.163l3.489,-1.161l2.614,0.581l0.291,0.580l2.617,0.291l3.489,0.290l4.940,-0.290l1.454,0.290l0.582,0.872l0.289,1.452l0.582,0.870l0.000,1.161l-1.453,0.582l0.871,1.162l0.000,1.161l1.455,2.614l-0.292,0.580l-1.452,0.580l-2.617,2.033l0.872,1.452l-0.582,-0.289l-2.616,-1.163l-2.033,0.582l-1.455,-0.291l-1.453,0.581l-1.455,-1.163l-1.160,0.582l0.000,-0.291l-1.454,-1.161l-2.034,-0.290l-0.290,-0.872l-1.746,-0.290l-0.581,0.580l-1.454,-0.580l0.293,-0.580l-2.036,-0.291l1.453,0.872z",PR:"M291.219,180.148l1.455,0.000l0.581,0.581l-0.872,0.871l-2.035,0.000l-1.453,0.000l-0.291,-1.162l0.582,-0.290l-2.033,0.000z",PS:"M571.728,141.816l0.000,1.743l-0.581,0.871l-1.160,0.291l0.000,-0.581l0.871,-0.581l-0.871,-0.289l0.578,-1.743l-1.163,-0.289z",PT:"M448.769,115.683l1.163,-0.581l1.163,-0.291l0.581,1.162l1.744,0.000l0.291,-0.290l1.746,0.000l0.581,1.452l-1.163,0.870l0.000,2.033l-0.582,0.291l0.000,1.451l-1.162,0.291l1.162,1.452l-0.873,2.032l0.873,0.581l-0.291,0.871l-0.871,0.871l0.000,1.162l-0.874,0.581l-1.452,-0.290l-1.454,0.290l0.292,-2.324l-0.292,-1.451l-1.163,-0.291l-0.581,-1.162l0.291,-1.742l0.871,-1.160l0.292,-0.873l0.582,-1.741l0.000,-1.162l-0.582,-0.871l0.292,1.161z",PY:"M301.103,292.237l1.163,-3.485l0.000,-1.451l1.453,-2.324l4.652,-0.871l2.616,0.000l2.615,1.451l0.000,0.871l0.872,1.452l-0.291,3.776l2.907,0.581l1.163,-0.581l2.035,0.871l0.291,0.581l0.291,2.613l0.290,1.162l1.163,0.000l0.872,-0.290l1.163,0.290l0.000,1.741l-0.292,1.454l-0.580,1.742l-0.582,2.322l-2.325,2.032l-2.326,0.581l-3.197,-0.581l-2.617,-0.580l2.617,-4.354l-0.291,-1.162l-2.906,-1.161l-3.198,-2.034l-2.326,-0.290l5.232,4.356z",QA:"M613.587,162.725l0.000,-1.743l0.582,-1.452l0.873,-0.290l0.871,0.871l0.000,1.451l-0.581,1.744l-0.872,0.000l0.873,0.581z",RO:"M536.265,99.13l1.163,-0.581l1.744,0.581l1.745,0.000l1.163,0.581l1.162,-0.581l2.036,-0.291l0.579,-0.580l1.163,0.000l0.873,0.290l0.871,0.872l0.873,1.162l1.453,1.742l0.291,1.161l-0.291,1.161l0.291,1.163l1.452,0.580l1.166,-0.580l1.161,0.580l0.289,0.581l-1.450,0.581l-0.874,0.000l-0.872,3.194l-1.454,-0.290l-2.035,-0.872l-3.196,0.581l-1.452,0.581l-4.071,0.000l-2.035,-0.581l-1.164,0.291l-0.581,-1.162l-0.581,-0.581l0.581,-0.291l-0.581,-0.289l-0.871,0.580l-1.745,-0.872l-0.289,-1.161l-1.454,-0.580l-0.293,-0.872l-1.741,-1.161l2.325,-0.581l1.742,-1.741l1.164,-2.034l-1.743,0.581z",RS:"M531.325,106.1l1.454,0.580l0.289,1.161l1.745,0.872l0.871,-0.580l0.581,0.289l-0.581,0.291l0.581,0.581l-0.871,0.581l0.290,1.161l1.454,1.162l-1.164,0.871l-0.580,0.871l0.290,0.289l-0.290,0.292l-1.165,0.000l-1.161,0.290l0.000,-0.290l0.290,-0.292l0.292,-0.580l-0.292,0.000l-0.579,-0.580l-0.583,0.000l-0.290,-0.581l-0.581,-0.290l-0.293,-0.291l-0.581,0.291l-0.289,0.871l-0.582,0.000l0.290,0.000l-1.162,-0.581l-0.872,-0.290l-0.290,-0.581l-0.873,-0.290l0.581,-0.291l0.582,-1.161l-1.455,-1.162l0.581,-1.161l-0.871,0.000l1.163,-0.872l-0.873,-0.870l-0.871,-1.163l2.326,-0.580l1.455,0.000l1.741,1.161l-0.293,-0.872z",RU:"M869.098,91.29l2.907,4.936l-4.07-0.87l-1.743,4.065l2.614,2.613v2.033l-2.034-1.743l-1.743,2.323l-0.582-2.323l0.292-2.904l-0.292-2.904l0.582-2.033v-3.775l-1.454-2.613l0.291-3.774l2.326-1.162l-0.872-1.452l1.163-0.29l0.58,1.742l1.162,2.614l-0.29,2.903L869.098,91.29zM536.265,81.417l-4.94,0.29l-3.488-0.29l0.58-1.452l3.779-0.872l2.906,0.581l1.454,0.291l-0.582,0.871L536.265,81.417zM969.382,36.116l-3.196,0.291l-0.581-0.871l3.777-1.162h-0.01l0.58-0.29h2.326l3.779,0.872v0.29l-2.907,0.871h-3.778H969.382zM869.098,29.728h-4.069l-5.814-0.29l-0.582-0.29l2.618-1.162h3.488l4.067,0.872L869.098,29.728zM888.574,24.501l-3.198,1.162l-4.36-0.291l-4.942-1.16l0.582-0.873l5.232,0.291L888.574,24.501zM873.167,23.049l-2.324,2.033h-9.884l-4.651,0.58l-5.521-1.742l1.454-1.742l3.778-0.582h7.266L873.167,23.049zM632.19,36.407l-1.743,0.291l-9.012-0.291l-0.581-1.161l-4.941-0.872l-0.581-1.452l2.907-0.582V30.89l5.232-2.323l-2.325-0.291l6.393-2.613l-0.578-1.162l6.104-1.452l9.011-1.742l9.3-0.581l4.653-0.871l5.23-0.581l2.036,1.162l-1.745,0.871l-9.883,1.452l-8.43,1.162l-8.43,2.613l-4.069,2.614l-4.361,2.904l0.584,2.033L632.19,36.407zM969.382,52.379h-0.291l-3.486,1.161l-3.488-0.29l2.615,1.452l1.454,2.323l1.455,0.58l0.289,1.162l-0.873,0.872l-4.94-0.582l-7.849,2.033l-2.325,0.291l-4.362,2.033l-4.069,1.742l-0.871,1.161l-4.069-2.033l-6.977,2.324l-1.452-1.162l-2.618,1.162l-3.488-0.291l-0.871,1.742l-3.486,2.613l0.29,1.162l2.906,0.582l-0.291,4.064h-2.615l-1.163,2.324l1.163,1.161l-4.651,1.452l-1.163,3.194l-4.07,0.582l-0.87,2.903l-3.781,2.613l-1.162-2.032l-1.163-3.775l-1.454-6.389l1.164-3.775l2.324-1.453l0.291-1.451l4.36-0.581l4.942-3.484l4.649-2.904l4.943-2.033l2.326-3.775h-3.489l-1.744,2.324l-6.977,3.194l-2.034-3.485l-7.269,0.872l-6.975,4.646l2.325,1.742l-6.105,0.58l-4.359,0.291l0.291-2.032l-4.358-0.292l-3.199,1.453l-8.431-0.581l-9.01,0.871l-9.013,5.227l-10.463,6.679l4.357,0.29l1.165,1.743l2.615,0.581l1.744-1.452l3.196,0.291l3.78,2.904l0.29,2.323l-2.326,2.904v3.194l-1.452,4.356l-4.07,4.066l-0.87,1.741l-3.781,3.194l-3.777,3.194l-1.744,1.742l-3.488,1.452l-1.744,0.291l-1.744-1.453l-3.78,2.033l-0.579,0.871l-0.292-0.582v-1.161l1.454-0.291l0.29-3.194l-0.581-2.324l2.325-0.871l3.198,0.291l2.034-2.613l0.871-2.904l1.163-1.162l1.454-2.323l-4.651,0.871l-2.325,0.872h-4.361l-0.871-2.614l-3.488-1.742l-4.651-0.871l-1.16-2.904l-0.874-1.453l-0.871-1.161l-1.744-2.903l-2.617-1.162l-4.067-0.58h-3.491l-3.486,0.58l-2.325,1.162l1.452,0.871v1.452l-1.452,0.872l-2.328,2.903v1.162l-4.068,1.742l-3.197-1.162l-3.197,0.291l-1.452-0.871l-1.745-0.291l-4.069,2.033l-3.488,0.291l-2.616,0.872l-3.49-0.581h-2.615l-1.743-1.453l-2.615-1.162l-2.618-0.291l-3.486,0.291l-2.617,0.582l-4.069-1.162l-0.29-2.324l-3.488-0.58l-2.326-0.29l-3.196-1.162l-2.907,2.903l1.163,1.453l-2.617,2.033l-4.07-0.581l-2.617-0.29l-1.741-1.162h-2.908l-2.616-0.871l-4.068,1.161l-5.232,2.324l-2.907,0.582l-1.163,0.29l-1.454-1.742l-3.488,0.291l-1.163-1.162l-2.034-0.582l-1.16-1.452l-1.455-0.581l-4.069,0.872l-3.78-1.742l-1.453,1.451l-6.104-6.968l-3.488-2.033l0.871-0.871l-6.975,2.613h-2.617l0.29-1.451l-3.488-0.872l-2.906,0.581l-0.872-2.904l-4.941-0.581l-2.326,1.161l-6.977,1.162l-1.454,0.582l-10.172,0.872l-1.454,1.161l2.036,1.743l-2.617,0.87l0.581,0.581l-2.617,1.452l4.361,1.742l-0.581,1.453l-3.78-0.291l-0.871,0.872l-3.488-1.452l-4.36,0.29l-2.906,1.162l-3.488-1.162l-5.812-2.032h-4.361l-5.814,3.194l-0.289,2.033l-2.906-1.742l-2.036,3.195l0.58,0.29l-1.452,2.324l2.326,1.742h2.034l1.743,1.741l-0.289,1.453l1.452,0.581l-1.163,1.452l-2.906,0.581l-2.615,2.614l2.615,2.613l-0.289,2.032l2.906,3.194l-1.744,1.162l-0.29,0.581h-1.165l-2.033-1.743h-0.873l-1.745-0.871l-0.581-1.162l-2.614-0.58l-1.745,0.58l-0.581-0.58l-3.78-1.162l-3.778-0.581l-2.325-0.581l-0.581,0.581l-3.488-2.323l-3.197-1.161l-2.326-1.743l2.034-0.29l2.328-2.324l-1.455-1.162l4.07-1.162l-0.292-0.581l-2.323,0.581v-1.161l1.452-0.871l2.615-0.291l0.582-0.871l-0.582-1.452l1.163-1.451l-0.29-0.873l-4.07-0.871h-1.454l-1.744-1.162l-2.034,0.291l-3.488-0.871V91.29l-0.871-1.162h-2.327l-0.29-0.871l0.873-0.581l-1.744-1.742l-2.906,0.29h-0.872l-0.584,0.582h-1.16l-0.583-2.033l-0.871-0.872l0.581-0.291l2.326,0.291l1.163-0.58l-0.872-0.872l-2.036-0.581l0.292-0.29l-1.163-0.581l-1.743-1.742l0.578-0.871l-0.289-1.162l-2.615-0.581l-1.454,0.291l-0.29-0.872l-2.907-0.581l-0.871-1.742l-0.291-1.161l-1.455-0.582l1.163-0.871l-0.582-2.613l1.745-1.742l-0.291-0.291l3.199-1.742l-2.908-1.162l5.813-3.485l2.617-1.742l0.871-1.162l-4.069-2.032l1.162-1.742l-2.325-2.033l1.744-2.324l-3.198-3.194l2.617-2.033l-4.362-1.743l0.584-2.033l2.034-0.29l4.942-1.161l2.615-0.872l4.651,1.743l7.557,0.58l10.465,3.195l2.035,1.162v1.741l-2.906,1.453l-4.651,0.871l-12.21-2.033l-2.033,0.291l4.651,2.033v1.161l0.292,2.904l3.486,0.872l2.036,0.58l0.581-1.161l-1.746-1.162l1.746-1.162l6.685,1.742l2.326-0.581l-1.745-2.033l6.396-2.903l2.323,0.29l2.617,0.871l1.745-1.742l-2.326-1.742l1.163-1.742l-2.034-1.452l7.848,0.872l1.453,1.452l-3.489,0.289v1.453l2.326,1.162l4.361-0.582l0.581-2.033l5.812-1.161l9.594-2.323h2.034l-2.907,1.742l3.488,0.29l2.034-0.871h5.232l4.069-1.161l3.197,1.452l2.906-1.742l-2.906-1.453l1.454-1.162l8.14,0.872l3.778,0.871l10.176,3.194l1.742-1.452l-2.907-1.452v-0.581l-3.197-0.291l0.874-1.162l-1.455-2.323v-0.871l4.943-2.323l1.742-2.613l2.035-0.582l7.268,0.872l0.581,1.451l-2.615,2.324l1.743,0.871l0.872,1.742l-0.581,3.775l3.198,1.743l-1.165,1.742l-5.521,4.066l3.197,0.29l1.161-0.871l2.907-0.872l0.874-1.161l2.325-1.453l-1.744-1.452l1.454-1.742l-3.198-0.291l-0.582-1.451l2.326-2.904l-3.778-2.324l4.94-1.741l-0.581-2.033h1.453l1.454,1.452l-1.163,2.613l2.907,0.581l-1.162-2.033l4.65-0.872l5.522-0.29l5.232,1.451l-2.617-2.032l-0.29-3.195l4.94-0.291h6.688l5.812-0.29l-2.324-1.451l3.197-1.743l3.197-0.29l5.521-1.162l7.27-0.58l0.872-0.582l7.268-0.291l2.325,0.582l6.104-1.452h4.94l0.873-1.161l2.615-1.162l6.396-1.161l4.651,0.87l-3.489,0.872l6.104,0.291l0.874,1.452l2.324-0.871h8.141l6.104,1.452l2.325,1.162l-0.873,1.451l-2.907,0.581l-7.267,1.743l-2.036,0.581l3.49,0.58l4.068,0.581l2.326-0.581l1.452,1.743l1.165-0.581l4.359-0.582l9.013,0.582l0.579,1.161l11.628,0.582v-2.033l5.814,0.291h4.359l4.651,1.451l1.163,1.742l-1.745,1.162l3.488,2.323l4.36,1.161l2.615-2.904l4.653,1.162l4.65-0.871l5.233,0.871l2.034-0.581l4.648,0.29l-2.033-2.614l3.488-1.161l24.998,1.741l2.327,1.743l7.267,2.032l11.045-0.581l5.524,0.581l2.324,1.162l-0.58,2.033l3.486,0.581l3.78-0.581h4.941l4.94,0.581l5.234-0.29l4.938,2.323l3.488-0.872l-2.322-1.742l1.162-1.162l8.721,0.872l5.812-0.292l7.848,1.453l4.069,1.162h-0.01l6.976,2.033l6.977,2.614v1.742l1.744,0.871l-0.581-2.033l7.559,0.291l5.231,2.613l-2.616,1.162l-4.651,0.29v2.613l-1.161,0.581h-2.617l-2.034-0.871l-3.779-0.871l-0.582-1.162l-2.615-0.58l-3.199,0.58l-1.452-1.162l0.581-0.872l-3.198,0.582l1.165,1.452l-1.745,1.162H969.382zM762.998,15.499l-15.406,1.162l4.94-3.484l2.328-0.291h2.034l6.977,1.742L762.998,15.499zM614.46,9.401l-3.488,0.291l-2.617,0.29l-0.289,0.581l-3.199,0.291l-3.197-0.581l1.743-0.871h-6.104l5.233-0.581h4.359l0.291,0.581l1.744-0.581l2.618-0.291l4.067,0.581L614.46,9.401zM748.754,14.047l-5.812,0.29l-7.85-0.87l-4.359-0.872l-2.325-2.033l-3.779-0.581l7.268-1.742L738,7.369l5.232,1.452l6.396,2.614L748.754,14.047z", -RW:"M557.485,234.16l1.163,1.452l-0.289,1.741l-0.582,0.291l-1.454,-0.291l-0.874,1.743l-1.743,-0.290l0.293,-1.453l0.290,-0.290l0.000,-1.742l0.871,-0.580l0.582,0.290l-1.743,0.871z",SA:"M591.496,185.956l-0.291,-1.162l-0.873,-0.871l-0.290,-1.162l-1.453,-0.871l-1.454,-2.323l-0.582,-2.322l-2.034,-1.744l-1.163,-0.580l-1.743,-2.613l-0.292,-1.744l0.000,-1.741l-1.453,-2.904l-1.454,-1.162l-1.453,-0.580l-0.871,-1.452l0.000,-0.872l-0.581,-1.451l-0.874,-0.582l-1.162,-2.032l-1.452,-2.033l-1.456,-2.033l-1.452,0.000l0.290,-1.451l0.292,-0.871l0.292,-1.162l3.196,0.291l1.161,-0.582l0.581,-1.161l2.036,-0.290l0.581,-0.871l0.872,-0.581l-2.905,-2.614l5.522,-1.451l0.582,-0.582l3.488,0.873l4.067,2.032l7.561,5.517l5.230,0.000l2.326,0.290l0.873,1.452l1.743,0.000l1.165,2.323l1.452,0.581l0.289,0.871l2.036,1.162l0.290,1.162l-0.290,0.870l0.290,0.872l0.584,0.871l0.578,0.871l0.292,0.581l0.873,0.581l0.872,0.000l0.290,0.871l0.291,0.871l0.872,2.613l8.430,1.452l0.580,-0.580l1.165,2.031l-1.745,5.519l-8.430,2.613l-7.849,1.162l-2.615,1.161l-2.036,2.904l-1.163,0.291l-0.580,-0.873l-1.164,0.292l-2.615,-0.292l-0.582,-0.289l-3.197,0.000l-0.582,0.289l-1.161,-0.869l-0.873,1.451l0.289,1.161l1.161,-0.872z",SB:"M919.968,259.712l0.871,0.873h-2.034l-0.873-1.453l1.452,0.58H919.968zM916.48,257.972l-0.874,0.289l-1.743-0.289l-0.58-0.582v-1.161l2.034,0.581l0.873,0.58L916.48,257.972zM918.805,257.39l-0.291,0.582l-2.034-2.613l-0.582-1.453h0.871l0.873,2.033L918.805,257.39zM913.863,253.906v0.581l-2.034-1.161l-1.454-1.162l-1.161-0.871l0.579-0.29l1.164,0.871l2.326,1.161L913.863,253.906zM907.468,251.002l-0.581,0.29l-1.162-0.58l-1.163-1.162v-0.581l1.744,1.162L907.468,251.002z",SD:"M567.37,204.831l-0.582,0.000l0.000,-1.452l-0.292,-0.873l-1.453,-1.160l-0.292,-1.742l0.292,-2.033l-1.162,-0.291l-0.293,0.582l-1.452,0.289l0.582,0.582l0.291,1.742l-1.454,1.451l-1.453,2.033l-1.454,0.291l-2.325,-1.744l-1.163,0.582l0.000,0.871l-1.454,0.581l-0.290,0.582l-2.617,0.000l-0.289,-0.582l-2.035,0.000l-1.164,0.291l-0.581,-0.291l-1.452,-1.452l-0.584,-0.871l-2.033,0.581l-0.581,1.161l-0.872,2.324l-0.874,0.581l-0.872,0.289l-0.290,0.000l-0.871,-0.870l0.000,-0.870l0.289,-1.163l0.000,-1.162l-1.452,-1.742l-0.292,-1.162l0.000,-0.580l-1.162,-0.871l0.000,-1.453l-0.582,-1.161l-0.873,0.290l0.293,-1.161l0.580,-1.162l-0.289,-1.162l0.871,-0.870l-0.582,-0.581l0.872,-1.743l1.164,-2.032l2.324,0.291l0.000,-11.036l0.000,-0.870l3.199,-0.291l0.000,-5.228l11.045,0.000l10.755,0.000l10.755,0.000l0.874,2.615l-0.581,0.580l0.289,2.614l1.163,3.485l1.164,0.580l1.454,0.872l-1.454,1.742l-2.035,0.289l-0.874,0.873l-0.291,2.033l-1.161,4.065l0.290,0.870l-0.581,2.323l-0.872,2.904l-1.743,1.162l-1.163,2.322l-0.292,1.162l-1.454,0.582l-0.579,2.903l0.000,-0.291z",SE:"M534.813,50.346l-2.617,1.742l0.291,1.742l-4.362,2.324l-5.230,2.323l-2.036,3.774l2.036,2.033l2.615,1.452l-2.615,3.194l-2.907,0.581l-0.873,4.647l-1.744,2.613l-3.197,-0.291l-1.455,2.033l-3.196,0.291l-0.874,-2.614l-2.323,-3.194l-2.327,-3.776l1.455,-1.742l2.033,-1.742l1.162,-3.485l-1.743,-1.162l-0.290,-3.775l1.744,-2.612l2.907,0.000l0.873,-0.872l-1.165,-1.162l4.361,-3.774l2.907,-2.904l1.745,-2.033l2.615,0.000l0.582,-1.452l5.232,0.290l0.582,-1.742l1.744,-0.290l3.486,1.452l4.361,2.033l0.000,4.065l0.872,1.162l4.649,-0.871z",SI:"M511.848,102.905l2.326,0.291l1.162,-0.582l2.616,0.000l0.291,-0.580l0.582,0.000l0.582,1.162l-2.325,0.580l-0.293,1.162l-0.871,0.290l0.000,0.582l-1.163,0.000l-0.873,-0.291l-0.580,0.291l-1.743,0.000l0.581,-0.291l-0.581,-1.162l-0.289,1.452z",SK:"M525.802,94.774l0.000,0.291l1.160,-0.582l1.455,1.163l1.453,-0.581l1.455,0.291l2.033,-0.582l2.616,1.163l-0.872,0.870l-0.580,0.872l-0.582,0.290l-2.908,-0.872l-0.870,0.291l-0.582,0.581l-1.455,0.290l-0.289,0.000l-1.163,0.290l-1.163,0.290l-0.291,0.291l-2.324,0.581l-0.871,-0.290l-1.454,-0.872l-0.292,-0.870l0.292,-0.291l0.289,-0.581l1.165,0.000l0.871,-0.290l0.290,-0.291l0.289,-0.289l0.292,-0.581l0.582,0.000l0.580,-0.582l-0.874,0.000z",SL:"M442.376,212.381l-0.873,-0.291l-2.034,-1.161l-1.455,-1.452l-0.289,-0.871l-0.292,-2.033l1.455,-1.451l0.289,-0.582l0.292,-0.581l0.871,0.000l0.581,-0.580l2.326,0.000l0.582,0.871l0.581,1.163l0.000,0.870l0.582,0.581l0.000,1.161l0.581,-0.290l-1.163,1.451l-1.454,1.452l0.000,0.871l0.580,-0.872z",SN:"M427.84,193.505l-1.162,-2.032l-1.454,-1.161l1.164,-0.291l1.452,-2.032l0.582,-1.452l0.871,-0.872l1.456,0.291l1.452,-0.581l1.454,0.000l1.163,0.872l2.034,0.580l1.454,2.033l2.034,1.742l0.000,1.742l0.581,1.742l1.162,0.581l0.000,1.162l0.000,0.871l-0.289,0.290l-1.744,-0.290l0.000,0.290l-0.581,0.000l-2.036,-0.581l-1.453,0.000l-4.942,-0.290l-0.871,0.290l-0.874,0.000l-1.453,0.581l-0.291,-2.323l2.327,0.291l0.580,-0.581l0.582,0.000l1.163,-0.581l1.163,0.581l1.162,0.000l1.163,-0.581l-0.582,-0.872l-0.870,0.581l-0.873,0.000l-1.163,-0.581l-0.871,0.000l-0.581,0.581l2.909,0.000z",SO:"M610.681,199.023l1.452,-0.290l1.162,-0.871l1.165,0.000l0.000,0.871l-0.291,1.451l0.000,1.453l-0.582,1.161l-0.581,2.904l-1.452,2.904l-1.747,3.484l-2.323,4.066l-2.326,3.194l-3.199,3.775l-2.907,2.323l-4.068,2.613l-2.616,2.033l-2.908,3.486l-0.582,1.451l-0.580,0.581l-1.745,-2.323l0.000,-9.873l2.325,-3.196l0.874,-0.870l1.744,0.000l2.324,-2.033l3.780,0.000l7.850,-8.421l1.742,-2.323l1.163,-1.742l0.000,-1.452l0.000,-2.614l0.000,-1.161l0.290,0.000l0.873,0.000l-1.163,0.581z",SOL:"M608.355,204.831l-1.163,1.742l-1.742,2.323l-2.328,0.000l-9.010,-3.194l-1.163,-0.871l-0.873,-1.452l-1.163,-1.453l0.583,-1.161l1.161,-1.452l0.873,0.580l0.582,1.162l1.163,1.162l1.163,0.000l2.614,-0.580l3.199,-0.582l2.327,-0.580l1.452,-0.291l0.871,-0.580l1.744,0.000l-0.290,0.000l0.000,1.161l0.000,2.614l0.000,-1.452z",SR:"M316.509,214.415l3.198,0.580l0.290,-0.291l2.326,-0.289l2.907,0.580l-1.453,2.612l0.289,1.743l1.164,1.742l-0.582,1.161l-0.290,1.163l-0.581,1.162l-1.745,-0.581l-1.162,0.289l-1.163,-0.289l-0.291,0.870l0.581,0.581l-0.290,0.581l-1.454,-0.291l-1.744,-2.322l-0.291,-1.744l-0.872,0.000l-1.453,-2.032l0.581,-1.161l0.000,-0.872l1.453,-0.579l-0.582,2.613z",SS:"M567.37,204.831l0.000,2.322l-0.582,0.872l-1.455,0.000l-0.872,1.452l1.746,0.291l1.452,1.161l0.290,1.161l1.454,0.580l1.455,3.196l-1.745,1.741l-1.743,1.743l-1.745,1.162l-1.744,0.000l-2.326,0.580l-1.744,-0.580l-1.163,0.870l-2.325,-2.032l-0.874,-1.162l-1.450,0.581l-1.166,0.000l-0.873,0.291l-1.161,-0.291l-1.743,-2.323l-0.292,-0.871l-2.034,-0.871l-0.873,-1.743l-1.163,-1.161l-1.743,-1.452l0.000,-0.871l-1.452,-1.162l-2.037,-1.162l0.872,-0.289l0.874,-0.581l0.872,-2.324l0.581,-1.161l2.033,-0.581l0.584,0.871l1.452,1.452l0.581,0.291l1.164,-0.291l2.035,0.000l0.289,0.582l2.617,0.000l0.290,-0.582l1.454,-0.581l0.000,-0.871l1.163,-0.582l2.325,1.744l1.454,-0.291l1.453,-2.033l1.454,-1.451l-0.291,-1.742l-0.582,-0.582l1.452,-0.289l0.293,-0.582l1.162,0.291l-0.292,2.033l0.292,1.742l1.453,1.160l0.292,0.873l0.000,1.452l-0.582,0.000z",SV:"M232.211,194.086l-0.291,0.581l-1.743,0.000l-0.872,-0.290l-1.164,-0.581l-1.452,0.000l-0.873,-0.581l0.000,-0.580l0.873,-0.581l0.580,-0.291l0.000,-0.290l0.581,-0.291l0.873,0.291l0.582,0.581l0.872,0.581l0.000,0.289l1.161,-0.289l0.582,0.000l0.291,0.289l0.000,-1.162z",SY:"M580.45,139.204l-5.234,2.903l-3.195,-1.161l0.289,-0.290l0.000,-1.162l0.873,-1.452l1.452,-1.161l-0.581,-1.162l-1.163,0.000l-0.290,-2.033l0.582,-1.161l0.871,-0.582l0.581,-0.580l0.290,-1.742l0.873,0.580l2.907,-0.870l1.454,0.581l2.327,0.000l3.196,-0.872l1.453,0.000l3.197,-0.581l-1.454,1.742l-1.454,0.872l0.292,2.032l-1.163,3.195l6.103,-2.904z",SZ:"M562.136,304.433l-0.581,1.161l-1.744,0.290l-1.452,-1.451l-0.292,-0.871l0.870,-1.161l0.293,-0.581l0.872,-0.290l1.163,0.580l0.580,1.161l-0.291,-1.162z",TD:"M513.593,195.538l0.289,-1.161l-1.742,-0.291l0.000,-1.742l-1.165,-0.871l1.165,-3.775l3.486,-2.614l0.292,-3.484l1.164,-5.517l0.581,-1.162l-1.163,-0.871l0.000,-0.871l-1.164,-0.871l-0.581,-4.357l2.616,-1.451l11.046,5.226l11.045,5.227l0.000,11.036l-2.324,-0.291l-1.164,2.032l-0.872,1.743l0.582,0.581l-0.871,0.870l0.289,1.162l-0.580,1.162l-0.293,1.161l0.873,-0.290l0.582,1.161l0.000,1.453l1.162,0.871l0.000,0.580l-1.744,0.581l-1.452,1.161l-2.034,2.905l-2.617,1.452l-2.618,-0.291l-0.871,0.291l0.292,0.870l-1.454,0.872l-1.163,1.161l-3.488,1.162l-0.582,-0.580l-0.579,-0.291l-0.293,0.871l-2.325,0.290l0.290,-0.870l-0.872,-1.743l-0.289,-1.161l-1.165,-0.581l-1.742,-1.743l0.579,-1.161l1.455,0.289l0.581,-0.289l1.453,0.000l-1.453,-2.324l0.292,-2.032l-0.292,-1.743l1.162,1.742z",TF:"M663.583,364.542l1.746,0.872l2.617,0.581l0.000,0.291l-0.584,1.452l-4.360,0.000l0.000,-1.452l0.292,-1.161l-0.289,0.583z",TG:"M479,214.123l-2.324,0.581l-0.582,-1.162l-0.872,-1.742l0.000,-1.162l0.581,-2.613l-0.871,-0.872l-0.292,-2.322l0.000,-2.033l-0.871,-1.161l0.000,-0.872l2.616,0.000l-0.582,1.452l0.873,0.871l0.872,0.871l0.291,1.454l0.579,0.289l-0.290,6.388l-0.872,-2.033z",TH:"M756.022,197.571l-2.325,-1.452l-2.325,0.000l0.290,-2.033l-2.326,0.000l-0.291,2.904l-1.454,4.065l-0.871,2.613l0.290,1.745l1.744,0.289l1.163,2.323l0.291,2.613l1.745,1.452l1.453,0.291l1.454,1.452l-0.873,1.162l-1.744,0.289l-0.290,-1.451l-2.326,-1.163l-0.291,0.582l-1.163,-1.162l-0.582,-1.452l-1.452,-1.452l-1.163,-1.161l-0.582,1.452l-0.581,-1.452l0.292,-1.742l0.871,-2.615l1.452,-2.903l1.454,-2.614l-1.162,-2.322l0.290,-1.452l-0.582,-1.453l-1.741,-2.322l-0.582,-1.162l0.871,-0.580l1.163,-2.323l-1.163,-2.034l-1.744,-1.742l-1.455,-2.613l1.165,-0.290l1.163,-3.194l2.034,0.000l1.743,-1.163l1.454,-0.580l1.163,0.580l0.290,1.744l1.743,0.289l-0.579,2.904l0.000,2.323l2.907,-1.742l0.871,0.581l1.452,0.000l0.582,-0.871l2.036,0.000l2.325,2.323l0.000,2.613l2.327,2.324l-0.291,2.323l-0.872,1.451l-2.326,-0.581l-3.781,0.581l-1.741,2.323l-0.580,-3.485z",TJ:"M669.108,120.329l-0.873,0.871l-2.906,-0.582l-0.291,1.743l2.908,-0.290l3.488,0.871l5.233,-0.291l0.579,2.324l0.874,-0.291l1.743,0.582l0.000,1.160l0.292,1.742l-2.909,0.000l-1.745,-0.290l-1.744,1.162l-1.162,0.291l-1.161,0.581l-0.873,-0.872l0.000,-2.323l-0.581,0.000l0.291,-0.871l-1.454,-0.871l-1.455,1.161l-0.290,1.161l-0.289,0.291l-1.745,0.000l-0.872,1.162l-0.872,-0.582l-2.036,0.872l-0.871,-0.290l1.744,-2.614l-0.582,-2.032l-2.033,-0.871l0.579,-1.162l2.328,0.290l1.452,-1.743l0.872,-1.741l3.488,-0.582l-0.581,1.163l0.581,0.871l-0.873,0.000z",TL:"M817.647,255.359l0.580,-0.582l2.327,-0.580l1.744,-0.291l0.871,-0.290l1.164,0.290l-1.164,0.871l-2.905,1.162l-2.037,0.871l-0.290,-0.871l0.290,0.580z",TM:"M642.364,132.815l-0.289,-2.323l-2.034,0.000l-3.200,-2.324l-2.325,-0.290l-2.907,-1.452l-2.034,-0.290l-1.162,0.581l-1.745,-0.291l-2.036,1.742l-2.323,0.582l-0.582,-2.033l0.289,-2.904l-2.033,-0.871l0.581,-2.033l-1.743,0.000l0.578,-2.323l2.617,0.581l2.326,-0.872l-2.033,-1.742l-0.582,-1.451l-2.328,0.581l-0.289,2.032l-0.871,-1.742l1.160,-0.871l3.199,-0.581l2.034,0.871l1.744,2.033l1.455,0.000l3.199,0.000l-0.583,-1.452l2.325,-0.871l2.325,-1.742l3.778,1.451l0.292,2.324l1.163,0.580l2.907,-0.290l0.871,0.580l1.455,2.904l2.906,1.742l2.034,1.453l2.909,1.162l3.487,1.160l0.000,1.742l-0.871,0.000l-1.164,-0.871l-0.580,1.162l-2.326,0.291l-0.583,2.323l-1.454,0.870l-2.325,0.291l-0.581,1.452l-2.034,0.291l2.617,1.162z",TN:"M499.931,147.625l-1.163,-4.936l-1.745,-1.162l0.000,-0.581l-2.325,-1.742l-0.290,-2.034l1.745,-1.451l0.579,-2.323l-0.290,-2.614l0.581,-1.451l2.908,-1.163l2.034,0.291l-0.291,1.453l2.325,-0.872l0.292,0.291l-1.454,1.451l0.000,1.161l1.162,0.872l-0.580,2.324l-1.745,1.451l0.582,1.452l1.452,0.000l0.583,1.452l1.163,0.290l-0.291,2.032l-1.164,0.873l-0.872,0.870l-2.034,1.162l0.290,1.161l-0.290,1.162l1.162,-0.581z",TR:"M575.509,117.135l3.777,1.161l3.199-0.291l2.323,0.291l3.489-1.451l2.906-0.291l2.615,1.452l0.292,0.872l-0.292,1.452l2.036,0.58l1.162,0.872l-1.743,0.871l0.87,2.904l-0.579,0.871l1.452,2.324l-1.452,0.581l-0.873-0.872l-3.197-0.291l-1.164,0.291l-3.196,0.581h-1.453l-3.196,0.872h-2.327l-1.454-0.581l-2.906,0.871l-0.873-0.58l-0.29,1.742l-0.581,0.58l-0.871,0.582l-0.873-1.452l0.873-0.872l-1.455,0.291l-2.325-0.871l-2.033,1.742l-4.07,0.29l-2.326-1.452h-2.906l-0.582,1.162l-2.036,0.29l-2.615-1.452h-2.906l-1.744-2.904l-2.034-1.452l1.455-2.033l-1.747-1.452l2.907-2.613h4.361l1.163-2.033l5.232,0.29l3.197-1.742l3.196-0.871h4.65L575.509,117.135zM548.764,119.167l-2.325,1.451l-0.871-1.451v-0.581l0.581-0.291l0.871-1.742l-1.452-0.581l2.907-0.871l2.324,0.29l0.291,1.162l2.615,0.872l-0.58,0.58l-3.198,0.291L548.764,119.167z",TT:"M304.01,201.346l1.454,-0.291l0.581,0.000l0.000,2.033l-2.326,0.291l-0.581,-0.291l0.872,-0.582l0.000,1.160z",TW:"M808.926,163.886l-1.744,4.356l-1.163,2.322l-1.452,-2.322l-0.292,-2.033l1.744,-2.614l2.325,-2.322l1.163,0.871l0.581,-1.742z",TZ:"M567.077,233.58l0.582,0.289l9.883,5.517l0.291,1.742l3.780,2.615l-1.163,3.484l0.000,1.452l1.744,1.161l0.292,0.581l-0.873,1.743l0.289,0.871l-0.289,1.162l0.873,1.742l1.161,2.903l1.162,0.581l-2.323,1.452l-2.907,1.162l-1.746,0.000l-0.872,0.581l-2.036,0.289l-0.581,0.291l-3.486,-0.872l-2.036,0.292l-0.582,-3.776l-1.163,-1.161l-0.289,-0.871l-2.907,-0.581l-1.456,-0.870l-1.743,-0.291l-1.161,-0.581l-1.162,-0.581l-1.455,-3.485l-1.744,-1.452l-0.290,-1.742l0.290,-1.452l-0.581,-2.324l1.163,-0.289l0.872,-0.870l1.163,-1.454l0.582,-0.580l0.000,-0.872l-0.582,-0.871l0.000,-0.871l0.582,-0.291l0.289,-1.741l-1.163,-1.452l0.874,-0.291l3.196,0.000l-5.522,0.289z",UA:"M561.265,87.806l1.160,0.000l0.584,-0.582l0.872,0.000l2.907,-0.290l1.744,1.742l-0.873,0.581l0.290,0.871l2.327,0.000l0.871,1.162l0.000,0.581l3.488,0.870l2.034,-0.290l1.745,1.162l1.454,0.000l4.070,0.870l0.290,0.873l-1.163,1.451l0.582,1.452l-0.582,0.871l-2.615,0.291l-1.452,0.871l0.000,1.161l-2.329,0.292l-1.744,0.869l-2.615,0.000l-2.323,1.162l0.289,1.743l1.161,0.581l2.907,-0.290l-0.580,1.161l-2.906,0.290l-3.781,1.742l-1.452,-0.581l0.582,-1.451l-3.198,-0.581l0.579,-0.580l2.619,-0.872l-0.874,-0.581l-4.068,-0.871l-0.292,-0.872l-2.614,0.291l-0.874,1.452l-2.325,2.033l-1.161,-0.580l-1.166,0.580l-1.452,-0.580l0.872,-0.291l0.291,-0.872l0.872,-0.871l-0.291,-0.580l0.581,-0.291l0.293,0.581l1.743,0.000l0.581,-0.290l-0.290,-0.291l0.000,-0.291l-0.873,-0.580l-0.290,-1.162l-1.164,-0.580l0.293,-0.871l-1.166,-0.872l-1.162,0.000l-2.034,-0.870l-2.033,0.290l-0.584,0.290l-1.163,0.000l-0.579,0.580l-2.036,0.291l-1.162,0.581l-1.163,-0.581l-1.745,0.000l-1.744,-0.581l-1.163,0.581l-0.291,-0.581l-1.452,-0.870l0.580,-0.872l0.872,-0.870l0.582,0.289l-0.872,-1.452l2.617,-2.033l1.452,-0.580l0.292,-0.580l-1.455,-2.614l1.163,0.000l1.746,-0.581l2.035,-0.291l2.615,0.291l3.196,0.581l2.036,0.290l1.163,0.291l1.162,-0.581l0.583,0.581l2.615,0.000l0.873,0.289l0.290,-1.451l0.870,-0.580l-2.328,0.000z",UG:"M561.555,233.869l-3.196,0.000l-0.874,0.291l-1.743,0.871l-0.582,-0.290l0.000,-2.324l0.582,-0.871l0.291,-2.324l0.581,-1.161l1.163,-1.451l0.871,-0.872l0.873,-0.871l-1.162,-0.289l0.289,-3.196l1.163,-0.870l1.744,0.580l2.326,-0.580l1.744,0.000l1.745,-1.162l1.452,1.742l0.291,1.452l1.163,3.194l-1.163,2.033l-1.164,1.742l-0.872,1.161l0.000,2.906l5.522,-0.289z",US:"M45.593,178.406l-0.292,0.581l-0.873-0.581l0.292-0.581l-0.582-1.162l0.29-0.291l0.292-0.29l-0.292-0.582l0.292-0.29h0.291l0.872,0.581l0.582,0.291l0.581,0.29l0.582,0.872v0.29l-1.162,0.581L45.593,178.406zM44.14,174.05l-0.872,0.29l-0.582-0.581l-0.292-0.29l0.292-0.291l0.872,0.291l0.872,0.29L44.14,174.05zM42.395,172.598l-0.29,0.291h-1.453l0.29-0.291H42.395zM39.779,172.308v0.29l-0.291-0.29h-0.873l-0.582-0.582l0.873-0.581v0.291L39.779,172.308zM35.128,170.564l-0.291,0.292l-0.872-0.582v-0.291l0.581-0.29l0.582,0.29V170.564zM212.735,95.065l0.582,1.452l0.871,0.581l1.744,0.291l2.907,0.291l2.616,0.871l2.325-0.291l3.488,0.581h0.872l2.326-0.87l2.617,1.161l2.616,1.162l2.326,0.872l2.035,0.871l0.291,0.58l0.582,0.291v0.291h0.58l0.583-0.291l0.29,0.871l0.583,0.291h0.581l0.581,0.29l-0.581,0.581l2.906,1.162l0.583,2.613l0.58,2.323l-0.872,1.742l-1.163,1.451l-0.581,0.873v0.29l0.292,0.581l0.872,0.29h0.581l3.197-1.452l2.907-0.29l3.488-1.453l0.291-0.291l-0.291-0.871l-0.582-0.581l1.454-0.291h2.616h2.616l0.872-1.162l0.291-0.29l2.907-1.743l1.163-0.581h4.07h5.232l0.292-0.871h0.872l1.162-0.58l0.872-1.162l0.873-2.033l2.035-2.032l0.872,0.581l2.035-0.581l1.163,0.87v3.775l1.744,1.452l0.582,1.161l-2.907,1.162l-2.907,0.872l-2.907,0.872l-1.453,1.742l-0.582,0.581v1.453l0.872,1.451h1.163l-0.291-0.871l0.872,0.581l-0.291,0.871l-1.744,0.291h-1.162l-2.036,0.581h-1.452l-1.454,0.291l-2.326,0.58l4.07-0.291l0.872,0.291l-4.07,0.872H270l0.291-0.29l-0.872,0.872h0.872l-0.582,2.032l-2.035,2.033l-0.291-0.58l-0.582-0.291l-0.872-0.581l0.582,1.452l0.582,0.58v0.873l-0.873,1.161l-1.453,2.033h-0.291l0.873-1.742l-1.454-1.162l-0.291-2.322l-0.58,1.16l0.58,1.743l-1.744-0.291l1.744,0.871l0.291,2.614l0.873,0.291l0.291,0.871l0.291,2.613l-1.745,2.033l-2.907,0.871l-1.743,1.742H257.5l-1.452,1.162l-0.291,0.87l-2.907,1.744l-1.744,1.451l-1.163,1.452l-0.582,2.033l0.582,1.742l0.873,2.614l1.163,1.742v1.161l1.453,3.195v2.032l-0.29,0.871l-0.582,1.742l-0.873,0.291l-1.453-0.291l-0.291-1.161l-1.163-0.582l-1.454-2.323l-1.162-2.032l-0.583-1.161l0.583-1.743l-0.583-1.742l-2.325-2.323l-0.873-0.291l-2.906,1.162h-0.581l-1.163-1.451l-1.744-0.581l-3.197,0.29l-2.326-0.29l-2.326,0.29l-0.872,0.291l0.292,0.87v1.162l0.581,0.582l-0.581,0.29l-0.872-0.581l-1.164,0.581h-2.034l-2.035-1.452l-2.325,0.291l-2.035-0.581l-1.745,0.29l-2.325,0.581l-2.325,2.033l-2.908,1.162l-1.452,1.162l-0.582,1.451v1.742v1.452l0.582,0.871h-1.163l-1.744-0.58l-2.326-0.872l-0.581-1.162l-0.582-2.033l-1.744-1.452l-0.873-1.742l-1.453-1.742l-2.034-1.162h-2.036l-1.743,2.323l-2.326-0.871l-1.454-0.871l-0.872-1.453l-0.872-1.451l-1.454-1.162l-1.454-0.871l-1.163-1.162h-4.65v1.162h-2.326h-5.232l-6.395-1.742l-4.07-1.451l0.29-0.582l-3.487,0.291l-3.198,0.291l-0.581-1.453l-1.744-1.451l-1.163-0.582l-0.291-0.58l-1.743-0.291l-0.872-0.581l-2.616-0.29l-0.582-0.582l-0.291-1.452l-2.908-2.904l-2.034-3.775v-0.582l-1.163-0.871l-2.326-2.323l-0.291-2.322l-1.454-1.453l0.582-2.322v-2.324l-0.872-2.032l0.872-2.614l0.582-2.613l0.291-2.323l-0.581-3.775l-0.873-2.323l-0.872-1.162l0.291-0.58l4.069,0.87l1.454,2.613l0.581-0.87l-0.291-2.033l-0.872-2.324h7.849h8.139h2.616h8.43h8.14h8.138h8.43h9.302h9.302h5.813v-1.161H212.735zM52.569,73.867l-2.616,1.162l-1.454-0.871l-0.581-1.162l2.616-1.162l1.454-0.29l1.744,0.29l1.163,0.871L52.569,73.867zM17.978,66.316l-1.744,0.291l-1.745-0.581l-1.744-0.582l2.907-0.581l2.035,0.291L17.978,66.316zM1.118,55.572l1.744,0.582l1.744-0.291l2.035,0.581l2.907,0.581l-0.291,0.29l-2.035,0.581l-2.326-0.87l-0.872-0.291H1.409l-0.582-0.29L1.118,55.572zM47.046,35.246l1.744,1.161l1.453-0.291h4.651l-0.291,0.582l4.36,0.58l2.617-0.29l5.813,0.871l5.232,0.29l2.326,0.291l3.488-0.291l4.36,0.581l2.907,0.581v10.164v15.681h2.616l2.616,0.872l2.035,1.162L95.3,68.93l2.906-1.452l2.616-0.871l1.454,1.451l1.744,1.162l2.616,1.162l1.744,2.033l2.908,2.903l4.65,1.742v1.743l-1.454,1.452l-1.454-1.162l-2.615-0.871l-0.583-2.323l-3.778-2.323l-1.454-2.324l-2.616-0.291h-4.361l-3.197-0.871l-5.814-2.903l-2.616-0.581l-4.651-0.872l-3.778,0.291l-5.523-1.453l-3.198-1.161l-3.197,0.581l0.581,2.033l-1.454,0.29l-3.196,0.58l-2.326,0.873l-3.198,0.581l-0.291-1.742l1.163-2.614l2.907-0.871l-0.582-0.581l-3.488,1.452l-2.035,1.742l-4.07,2.033l2.035,1.161l-2.617,2.033l-2.907,1.162l-2.616,0.871l-0.872,1.162l-4.07,1.451l-0.872,1.452l-3.198,1.162l-2.035-0.29l-2.615,0.871l-2.617,0.87l-2.326,0.872l-4.65,0.871l-0.581-0.582l2.907-1.162l2.906-0.87l2.907-1.453l3.489-0.291l1.163-1.161l3.779-1.742l0.582-0.581l2.035-0.873l0.58-2.033l1.455-1.742l-3.198,0.872l-0.872-0.582L36,70.382l-1.745-1.453l-0.872,0.872l-1.162-1.162l-2.617,0.871h-1.743l-0.292-1.453l0.581-1.162l-1.744-0.87l-3.487,0.581l-2.326-1.452l-2.035-0.581v-1.452l-2.035-1.162l1.163-1.742l2.035-1.452l1.163-1.452l2.035-0.29l2.034,0.58l2.036-1.451l2.035,0.29l2.326-0.872l-0.583-1.161l-1.743-0.582l2.034-1.162h-1.453l-2.906,0.871l-0.873,0.581l-2.325-0.581l-3.779,0.291l-4.07-0.871l-1.163-0.871l-3.487-1.742l3.778-1.162l6.105-1.451h2.325l-0.29,1.451h5.814l-2.327-1.742l-3.197-1.162l-2.034-1.162l-2.616-1.161l-3.779-0.871l1.455-1.452l4.941-0.291l3.488-1.162l0.582-1.453l2.906-1.161l2.617-0.291L36,36.116h2.616l4.07-1.452L47.046,35.246z",UY:"M315.056,314.017l1.744,-0.292l2.907,2.033l0.872,0.000l2.907,1.743l2.325,1.451l1.454,2.032l-1.163,1.164l0.872,1.740l-1.453,1.742l-2.907,1.453l-2.035,-0.582l-1.454,0.291l-2.616,-1.162l-2.035,0.000l-1.453,-1.452l0.000,-1.741l0.872,-0.580l-0.291,-2.905l0.872,-2.614l-0.582,2.321z",UZ:"M656.899,128.168l0.000,-1.742l-3.487,-1.160l-2.909,-1.162l-2.034,-1.453l-2.906,-1.742l-1.455,-2.904l-0.871,-0.580l-2.907,0.290l-1.163,-0.580l-0.292,-2.324l-3.778,-1.451l-2.325,1.742l-2.325,0.871l0.583,1.452l-3.199,0.000l0.000,-10.164l6.976,-1.742l0.580,0.291l4.071,2.031l2.324,0.872l2.618,2.614l3.196,-0.291l4.944,-0.290l3.196,2.032l-0.290,2.614l1.453,0.000l0.581,2.323l3.489,0.000l0.580,1.452l1.163,0.000l1.163,-2.032l3.779,-2.033l1.454,-0.291l0.872,0.291l-2.326,1.742l2.035,0.871l2.034,-0.580l3.199,1.451l-3.488,2.032l-2.326,-0.289l-0.873,0.000l-0.581,-0.871l0.581,-1.163l-3.488,0.582l-0.872,1.741l-1.452,1.743l-2.328,-0.290l-0.579,1.162l2.033,0.871l0.582,2.032l-1.744,2.614l-2.035,-0.582l1.453,0.000z",VE:"M277.558,198.442l-0.290,0.871l-1.454,0.291l0.872,1.161l0.000,1.452l-1.454,1.451l1.164,2.324l1.162,-0.290l0.582,-1.743l-0.872,-1.161l0.000,-2.033l3.487,-1.161l-0.582,-1.162l1.163,-0.871l0.872,1.742l2.035,0.291l1.744,1.451l0.000,0.871l2.617,0.000l2.907,-0.289l1.452,1.161l2.326,0.290l1.455,-0.582l0.000,-0.869l3.487,0.000l3.198,-0.291l-2.326,0.871l0.872,1.451l2.326,0.000l2.034,1.454l0.291,2.323l1.453,-0.292l1.164,0.872l-2.036,1.452l-0.290,1.161l0.872,0.871l-0.582,0.581l-1.743,0.580l0.000,1.163l-0.873,0.582l2.035,2.322l0.291,0.580l-0.872,1.162l-3.198,0.871l-2.035,0.580l-0.581,0.582l-2.326,-0.582l-2.034,-0.290l-0.582,0.000l1.163,0.872l0.000,1.741l0.292,1.744l2.324,0.289l0.291,0.581l-2.035,0.871l-0.291,1.162l-1.162,0.291l-2.036,0.870l-0.580,0.582l-2.036,0.289l-1.452,-1.451l-0.872,-2.614l-0.873,-1.162l-0.872,-0.580l1.454,-1.453l-0.291,-0.580l-0.582,-0.580l-0.581,-2.033l0.000,-2.033l0.872,-0.871l0.291,-1.452l-0.872,-0.290l-1.454,0.290l-2.034,-0.290l-1.163,0.290l-2.035,-2.323l-1.453,-0.291l-3.488,0.291l-0.872,-1.162l-0.583,0.000l0.000,-0.581l0.292,-1.161l-0.292,-1.161l-0.580,-0.582l-0.291,-1.161l-1.453,-0.290l0.581,-1.452l0.582,-2.033l0.581,-1.162l1.163,-0.580l0.581,-1.452l-2.035,0.581z",VN:"M771.137,171.726l-3.488,2.324l-2.326,2.614l-0.581,1.742l2.034,2.904l2.617,3.774l2.325,1.743l1.744,2.033l1.163,5.226l-0.290,4.647l-2.327,2.032l-3.195,1.741l-2.037,2.325l-3.486,2.322l-1.164,-1.740l0.872,-1.745l-2.034,-1.451l2.326,-1.162l2.906,-0.290l-1.162,-1.742l4.651,-2.033l0.289,-3.194l-0.581,-2.033l0.581,-2.614l-0.870,-2.032l-2.036,-1.742l-1.745,-2.614l-2.325,-3.194l-3.197,-1.742l0.870,-0.872l1.747,-0.580l-1.165,-2.614l-3.488,0.000l-1.161,-2.322l-1.454,-2.324l1.454,-0.580l2.034,0.000l2.615,-0.291l2.329,-1.451l1.452,0.870l2.615,0.581l-0.581,1.742l1.454,0.872l-2.615,-0.870z",VU:"M935.666,276.266l-0.872,0.291l-0.874-1.163v-0.871L935.666,276.266zM933.628,271.91l0.583,2.324l-0.874-0.292h-0.58l-0.29-0.58v-2.322L933.628,271.91z",WS:"M449.643,156.336l-0.292,-1.452l0.581,0.000l0.000,0.290l0.000,0.291l0.000,4.355l-9.011,-0.290l0.000,7.261l-2.615,0.000l-0.581,1.451l0.581,4.066l-11.046,0.000l-0.582,0.871l0.289,-1.162l6.107,-0.291l0.290,-0.870l1.162,-1.162l0.874,-3.775l4.069,-3.194l1.162,-3.485l0.872,0.000l0.873,-2.323l2.324,-0.291l1.165,0.581l1.161,0.000l0.872,-0.871l-1.745,0.000z",YE:"M619.983,185.084l-2.034,0.872l-0.583,1.161l0.000,0.872l-2.616,1.160l-4.651,1.453l-2.326,1.742l-1.162,0.291l-0.871,-0.291l-1.744,1.161l-1.745,0.581l-2.327,0.291l-0.580,0.000l-0.581,0.871l-0.582,0.000l-0.581,0.871l-1.455,-0.290l-0.870,0.580l-1.745,-0.290l-0.873,-1.452l0.292,-1.452l-0.581,-0.871l-0.581,-2.032l-0.874,-1.163l0.583,-0.289l-0.291,-1.162l0.582,-0.581l-0.291,-1.161l1.161,-0.872l-0.289,-1.161l0.873,-1.451l1.161,0.869l0.582,-0.289l3.197,0.000l0.582,0.289l2.615,0.292l1.164,-0.292l0.580,0.873l1.163,-0.291l2.036,-2.904l2.615,-1.161l7.849,-1.162l2.325,4.645l-0.873,-1.743z",ZA:"M560.392,311.403l-0.29,0.291l-1.165,1.451l-0.87,1.451l-1.453,2.034l-3.198,2.902l-2.034,1.451l-2.036,1.453l-2.906,0.871l-1.452,0.29l-0.293,0.58l-1.743-0.29l-1.161,0.581l-3.199-0.581l-1.452,0.29h-1.164l-2.906,0.872l-2.325,0.58l-1.744,0.871l-1.162,0.29l-1.163-1.161h-0.871l-1.454-1.161v0.292l-0.29-0.583v-1.741l-0.873-1.742l0.873-0.581v-2.032l-2.034-2.613l-1.165-2.323l-2.034-3.484l1.163-1.453l1.163,0.58l0.582,1.162l1.162,0.29l1.744,0.581l1.452-0.29l2.325-1.451v-10.163l0.874,0.58l1.741,2.613l-0.289,1.741l0.582,0.872l2.033-0.29l1.164-1.162l1.452-0.87l0.582-1.453l1.454-0.58l1.162,0.29l1.162,0.872h2.326l1.744-0.582l0.289-0.87l0.584-1.161l1.452-0.293l0.874-1.16l0.871-1.742l2.324-2.032l4.07-2.033h1.163l1.163,0.581l0.871-0.289l1.454,0.289l1.452,3.774l0.582,2.033l-0.29,2.903v1.162l-1.163-0.58l-0.872,0.29l-0.293,0.581l-0.87,1.161l0.292,0.871l1.452,1.451l1.744-0.29l0.581-1.161h2.034l-0.582,2.031l-0.579,2.323l-0.584,1.162L560.392,311.403zM553.416,310.531l-1.162-0.87l-1.163,0.579l-1.453,1.163l-1.454,1.742l2.036,2.032l0.871-0.291l0.581-0.869l1.454-0.292l0.58-0.871l0.873-1.451L553.416,310.531z",ZM:"M563.881,256.229l1.452,1.452l0.582,2.322l-0.582,0.582l-0.290,2.322l0.290,2.323l-0.872,0.873l-0.580,2.612l1.452,0.580l-8.429,2.325l0.292,2.033l-2.036,0.289l-1.744,1.162l-0.291,0.871l-0.872,0.291l-2.616,2.322l-1.454,1.744l-0.872,0.000l-0.872,-0.291l-3.197,-0.291l-0.291,-0.291l-0.290,-0.289l-0.871,-0.582l-1.745,0.000l-2.326,0.582l-1.745,-1.744l-2.034,-2.322l0.289,-8.711l5.524,0.000l0.000,-0.873l0.292,-1.161l-0.583,-1.161l0.291,-1.452l-0.291,-0.871l1.164,0.290l0.000,0.872l1.454,-0.291l1.743,0.291l0.871,1.452l2.036,0.291l1.745,-0.873l0.581,1.452l2.325,0.291l0.872,1.162l1.163,1.451l2.033,0.000l-0.289,-2.904l-0.581,0.581l-2.035,-1.160l-0.584,-0.291l0.293,-2.904l0.580,-3.195l-0.873,-1.161l0.873,-1.742l0.873,-0.290l3.490,-0.581l1.163,0.290l1.162,0.581l1.161,0.581l1.743,0.291l-1.456,-0.870z",ZW:"M559.521,292.237l-1.454,-0.289l-0.871,0.289l-1.163,-0.581l-1.163,0.000l-1.745,-1.162l-2.326,-0.579l-0.580,-1.744l0.000,-0.870l-1.455,-0.292l-2.907,-2.903l-0.870,-1.742l-0.582,-0.580l-1.163,-2.034l3.197,0.291l0.872,0.291l0.872,0.000l1.454,-1.744l2.616,-2.322l0.872,-0.291l0.291,-0.871l1.744,-1.162l2.036,-0.289l0.000,0.870l2.325,0.000l1.452,0.581l0.582,0.582l1.163,0.289l1.452,0.871l0.000,3.486l-0.582,2.032l0.000,2.033l0.293,0.870l-0.293,1.452l-0.289,0.290l-0.874,2.033l2.904,-3.195z"}}}}),b}); \ No newline at end of file diff --git a/htdocs/public/high/plugins/jquery-mapael/maps/world_countries_mercator.js b/htdocs/public/high/plugins/jquery-mapael/maps/world_countries_mercator.js deleted file mode 100644 index 050be7c4..00000000 --- a/htdocs/public/high/plugins/jquery-mapael/maps/world_countries_mercator.js +++ /dev/null @@ -1,285 +0,0 @@ -/*! - * - * Jquery Mapael - Dynamic maps jQuery plugin (based on raphael.js) - * Requires Mapael - * - * Map of World by country - * Mercator projection - * - * @source http://www.amcharts.com/svg-maps/?map=world - */ -(function (factory) { - if (typeof exports === 'object') { - // CommonJS - module.exports = factory(require('jquery'), require('mapael')); - } else if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['jquery', 'mapael'], factory); - } else { - // Browser globals - factory(jQuery, jQuery.mapael); - } -}(function ($, Mapael) { - - "use strict"; - - $.extend(true, Mapael, { - maps: { - world_countries_mercator: { - /* - * map-specific constants - * (set by user) - */ - // Width of the map, in pixel - width: 1008.77, - // Height of the map, in pixel - height: 651.44, - // Longitude of the left side of the map, in degree - leftLongitude: -169.6, - // Longitude of the right side of the map, in degree - rightLongitude: 190.25, - // Latitude of the top of the map, in degree - topLatitude: 83.68, - // Latitude of the bottom of the map, in degree - bottomLatitude: -55.55, - /* - * Transform a longitude coordinate into projection-specific x' coordinate - * Note: this is not in pixel - * - * @param lon longitude value in degree - * @return x' projection-specific value - */ - _projectLongitude: function (lon) { - // Compute longitude in radian - return lon * Math.PI / 180; - }, - /* - * Transform a latitude coordinate into projection-specific y' coordinate - * Note: this is not in pixel - * - * @param lat latitude value in degree - * @return y' projection-specific value - */ - _projectLatitude: function (lat) { - // Compute latitude in radian and get its SINUS - var latRadSinus = Math.sin(lat * Math.PI / 180); - return 0.5 * Math.log((1 + latRadSinus) / (1 - latRadSinus)); - }, - /* - * Get x,y point from lat,lon coordinate - * - * Principle: - * (lat, lon) are inputs - * Projection(lat, lon) = (x', y') - * Transformation(x', y') = (x, y) - * - * Source: http://jkwiens.com/2009/01/23/miller-projection/ - * - * @param lat latitude value in degree - * @param lon longitude value in degree - * @return {x, y} coordinate in pixel - */ - getCoords: function (lat, lon) { - var self = this; - - // Project map boundaries with projection (only once for performance) - if (self._xLeftPrime === undefined) self._xLeftPrime = self._projectLongitude(self.leftLongitude); - if (self._xRightPrime === undefined) self._xRightPrime = self._projectLongitude(self.rightLongitude); - if (self._yTopPrime === undefined) self._yTopPrime = self._projectLatitude(self.topLatitude); - if (self._yBottomPrime === undefined) self._yBottomPrime = self._projectLatitude(self.bottomLatitude); - - // Compute x' and y' (projection-specific value) - var xPrime = self._projectLongitude(lon); - var yPrime = self._projectLatitude(lat); - - // Compute x and y - var x = (xPrime - self._xLeftPrime) * (self.width / (self._xRightPrime - self._xLeftPrime)); - var y = (self._yTopPrime - yPrime) * (self.height / (self._yTopPrime - self._yBottomPrime)); - - return {x: x, y: y}; - }, - elems: { - "AE": "m 620.12,393.97 0.5,-0.15 0.11,0.84 2.19,-0.48 2.32,0.08 1.69,0.09 1.92,-2.07 2.1,-1.98 1.77,-1.9 0.53,1.05 0.38,2.44 -1.43,0.01 -0.23,2 0.5,0.42 -1.27,0.6 -0.01,1.25 -0.82,1.26 -0.07,1.21 -0.57,0.64 -8.42,-1.52 -1.08,-3.08 z", - "AF": "m 647.13,357.15 2.86,1.3 2.11,-0.46 0.59,-1.55 2.21,-0.52 1.58,-1.05 0.56,-2.79 2.36,-0.68 0.44,-1.25 1.33,0.94 0.84,0.11 1.56,0.03 2.12,0.74 0.85,0.42 2.03,-1.12 0.95,0.67 0.9,-1.6 1.68,0.07 0.43,-0.52 0.3,-1.43 1.21,-1.23 1.51,0.8 -0.3,1.09 0.85,0.17 -0.27,2.95 1.11,1.15 0.98,-0.74 1.25,-0.34 1.74,-1.57 1.93,0.26 2.9,0 0.5,1.01 -1.64,0.39 -1.42,0.65 -3.22,0.4 -3.01,0.73 -1.64,1.51 0.66,1.46 0.33,1.7 -1.4,1.43 0.12,1.3 -0.77,1.22 -2.67,-0.11 1.1,2.22 -1.78,0.85 -1.19,2 0.15,1.98 -1.1,0.92 -1.03,-0.3 -2.15,0.43 -0.3,0.91 -2.09,0 -1.56,1.84 -0.1,2.75 -3.65,1.33 -1.95,-0.28 -0.57,0.7 -1.67,-0.4 -2.81,0.48 -4.69,-1.64 2.54,-2.93 -0.23,-2.1 -2.12,-0.55 -0.22,-2.09 -0.92,-2.64 1.2,-1.83 -1.22,-0.49 0.77,-2.45 z", - "AL": "m 533.23,334.91 -0.35,1.27 0.4,1.59 1.16,0.9 -0.06,0.97 -0.91,0.54 -0.17,1.19 -1.3,1.76 -0.48,-0.25 -0.05,-0.8 -1.56,-1.23 -0.24,-1.75 0.24,-2.53 0.38,-1.16 -0.47,-0.59 -0.19,-1.19 1.22,-1.87 0.17,0.72 0.76,-0.34 0.6,1.02 0.67,0.38 z", - "AM": "m 597.7,337.75 3.9,-0.58 0.58,0.98 1.07,0.64 -0.57,0.92 1.5,1.26 -0.79,1.16 1.19,0.99 1.26,0.59 0.06,2.5 -1.02,0.1 -1.14,-2.08 0.01,-0.55 -1.24,0.01 -0.83,-0.98 -0.58,0.1 -1.11,-1.06 -2.08,-0.91 0.27,-1.79 z", - "AO": "m 521.28,480.03 0.69,2.09 0.8,1.68 0.64,0.91 1.07,1.47 1.85,-0.23 0.93,-0.4 1.55,0.4 0.42,-0.7 0.7,-1.64 1.74,-0.11 0.15,-0.49 1.43,-0.01 -0.24,1.01 3.4,-0.02 0.05,1.77 0.57,1.09 -0.41,1.7 0.21,1.74 0.94,1.05 -0.15,3.37 0.69,-0.26 1.22,0.07 1.74,-0.42 1.28,0.17 0.3,0.88 -0.32,1.38 0.49,1.34 -0.42,1.07 0.24,0.99 -5.84,-0.04 -0.13,9.16 1.89,2.38 1.83,1.82 -5.15,1.19 -6.79,-0.41 -1.94,-1.4 -11.37,0.13 -0.42,0.21 -1.67,-1.32 -1.82,-0.09 -1.68,0.5 -1.35,0.56 -0.26,-1.83 0.39,-2.55 0.97,-2.65 0.15,-1.24 0.91,-2.59 0.67,-1.17 1.61,-1.87 0.9,-1.27 0.29,-2.11 -0.15,-1.61 -0.84,-1.01 -0.75,-1.72 -0.69,-1.69 0.15,-0.59 0.86,-1.12 -0.85,-2.72 -0.57,-1.88 -1.4,-1.77 0.27,-0.54 1.16,-0.38 0.81,0.05 0.98,-0.34 8.27,0.01 z m -10.91,-0.54 -0.71,0.3 -0.75,-2.1 1.13,-1.21 0.85,-0.47 1.05,0.96 -1.02,0.59 -0.46,0.72 -0.09,1.21 z", - "AR": "m 291.85,649.16 -2.66,0.25 -1.43,-1.73 -1.69,-0.13 -3,0 0,-10.57 1.08,2.15 1.4,3.53 3.65,2.87 3.93,1.21 -1.28,2.42 z m 1.5,-122.44 1.65,2.18 1.09,-2.43 3.2,0.12 0.45,0.64 5.15,4.94 2.29,0.46 3.43,2.26 2.89,1.2 0.4,1.36 -2.76,4.73 2.83,0.85 3.15,0.48 2.22,-0.5 2.54,-2.4 0.46,-2.74 1.39,-0.59 1.41,1.79 -0.06,2.49 -2.36,1.73 -1.88,1.28 -3.16,3.08 -3.74,4.37 -0.7,2.59 -0.75,3.37 0.03,3.3 -0.61,0.74 -0.22,2.17 -0.19,1.76 3.56,2.91 -0.38,2.37 1.75,1.51 -0.14,1.7 -2.69,4.52 -4.16,1.91 -5.62,0.75 -3.08,-0.36 0.59,2.15 -0.57,2.72 0.52,1.85 -1.68,1.3 -2.87,0.51 -2.7,-1.35 -1.08,0.97 0.39,3.71 1.89,1.14 1.54,-1.19 0.84,1.96 -2.58,1.18 -2.25,2.38 -0.41,3.91 -0.66,2.11 -2.65,0.01 -2.2,2.04 -0.8,3.01 2.76,2.98 2.68,0.83 -0.96,3.73 -3.31,2.38 -1.82,5.03 -2.56,1.72 -1.15,2.06 0.91,4.64 1.87,2.63 -1.18,-0.23 -2.6,-0.71 -6.78,-0.61 -1.16,-2.63 0.05,-3.33 -1.87,0.28 -0.99,-1.6 -0.25,-4.6 2.15,-1.88 0.89,-2.68 -0.33,-2.11 1.49,-3.52 1.02,-5.35 -0.3,-2.33 1.22,-0.75 -0.3,-1.48 -1.3,-0.78 0.92,-1.63 -1.27,-1.46 -0.65,-4.4 1.13,-0.77 -0.47,-4.54 0.66,-3.75 0.75,-3.22 1.68,-1.3 -0.85,-3.46 -0.01,-3.22 2.12,-2.26 -0.06,-2.87 1.6,-3.31 0.01,-3.09 -0.73,-0.61 -1.29,-5.69 1.73,-3.34 -0.27,-3.11 1,-2.9 1.84,-2.96 1.98,-1.95 -0.84,-1.23 0.59,-1 -0.09,-5.14 3.05,-1.51 0.96,-3.16 -0.34,-0.76 2.34,-2.72 3.62,0.72 z", - "AT": "m 523.11,310.1 -0.21,1.71 -1.58,0.01 0.54,0.89 -0.93,2.65 -0.53,0.69 -2.45,0.1 -1.42,0.92 -2.32,-0.31 -4.01,-1.05 -0.62,-1.43 -2.77,0.72 -0.33,0.77 -1.7,-0.58 -1.43,-0.11 -1.27,-0.74 0.43,-1.01 -0.11,-0.74 0.85,-0.22 1.42,1.14 0.4,-1.09 2.47,0.18 2.01,-0.74 1.34,0.12 0.87,0.85 0.27,-0.7 -0.4,-2.72 1.01,-0.54 0.98,-1.95 2.09,1.37 1.57,-1.74 0.99,-0.32 2.18,1.3 1.31,-0.22 1.3,0.8 -0.23,0.54 z", - "AU": "m 883.18,588.41 2.71,1.28 1.53,-0.51 2.19,-0.71 1.68,0.25 0.2,4.43 -0.96,1.3 -0.29,3.06 -0.98,-1.05 -1.95,2.67 -0.58,-0.21 -1.72,-0.12 -1.73,-3.28 -0.38,-2.5 -1.62,-3.25 0.07,-1.7 1.83,0.34 z m -5.15,-86.06 1.01,2.25 1.8,-1.08 0.93,1.22 1.35,1.13 -0.29,1.28 0.6,2.48 0.43,1.45 0.71,0.35 0.76,2.5 -0.27,1.52 0.91,1.99 3.04,1.54 1.98,1.41 1.88,1.29 -0.37,0.72 1.6,1.87 1.09,3.25 1.12,-0.66 1.14,1.31 0.69,-0.46 0.48,3.21 1.99,1.87 1.3,1.17 2.19,2.49 0.79,2.49 0.07,1.77 -0.19,1.94 1.34,2.68 -0.16,2.81 -0.49,1.48 -0.76,2.87 0.06,1.86 -0.55,2.34 -1.24,3 -2.08,1.63 -1.02,2.59 -0.94,1.67 -0.83,2.93 -1.08,1.71 -0.71,2.58 -0.36,2.4 0.14,1.11 -1.61,1.22 -3.14,0.13 -2.59,1.45 -1.29,1.38 -1.69,1.54 -2.32,-1.58 -1.72,-0.63 0.44,-1.85 -1.53,0.67 -2.46,2.58 -2.42,-0.97 -1.59,-0.56 -1.6,-0.25 -2.71,-1.03 -1.81,-2.18 -0.52,-2.66 -0.65,-1.75 -1.38,-1.4 -2.7,-0.41 0.92,-1.66 -0.68,-2.52 -1.37,2.35 -2.5,0.63 1.47,-1.88 0.42,-1.95 1.08,-1.65 -0.22,-2.47 -2.28,2.85 -1.75,1.15 -1.07,2.69 -2.19,-1.4 0.09,-1.79 -1.75,-2.43 -1.48,-1.25 0.53,-0.77 -3.6,-2 -1.97,-0.09 -2.7,-1.6 -5.02,0.31 -3.63,1.18 -3.19,1.1 -2.68,-0.22 -2.97,1.7 -2.43,0.77 -0.54,1.75 -1.04,1.36 -2.38,0.08 -1.76,0.3 -2.48,-0.61 -2.02,0.37 -1.92,0.15 -1.67,1.8 -0.82,-0.15 -1.41,0.96 -1.35,1.08 -2.05,-0.13 -1.88,0 -2.97,-2.17 -1.51,-0.64 0.06,-1.93 1.39,-0.46 0.48,-0.76 -0.1,-1.2 0.34,-2.3 -0.31,-1.95 -1.48,-3.29 -0.46,-1.85 0.12,-1.83 -1.12,-2.08 -0.07,-0.93 -1.24,-1.26 -0.35,-2.47 -1.6,-2.48 -0.39,-1.33 1.23,1.35 -0.95,-2.88 1.39,0.9 0.83,1.2 -0.05,-1.59 -1.39,-2.43 -0.27,-0.97 -0.65,-0.92 0.3,-1.77 0.57,-0.75 0.38,-1.52 -0.3,-1.77 1.16,-2.17 0.21,2.29 1.18,-2.07 2.28,-1 1.37,-1.28 2.14,-1.1 1.27,-0.23 0.77,0.37 2.21,-1.11 1.7,-0.33 0.42,-0.65 0.74,-0.27 1.55,0.07 2.95,-0.87 1.52,-1.31 0.72,-1.58 1.64,-1.49 0.13,-1.17 0.07,-1.59 1.96,-2.47 1.18,2.51 1.19,-0.58 -1,-1.38 0.88,-1.41 1.24,0.63 0.34,-2.21 1.53,-1.42 0.68,-1.14 1.41,-0.49 0.04,-0.8 1.23,0.34 0.05,-0.72 1.23,-0.41 1.36,-0.39 2.07,1.32 1.56,1.71 1.75,0.02 1.78,0.27 -0.59,-1.58 1.34,-2.3 1.26,-0.75 -0.44,-0.71 1.22,-1.63 1.7,-1.01 1.43,0.34 2.36,-0.54 -0.05,-1.45 -2.05,-0.94 1.49,-0.41 1.86,0.7 1.49,1.17 2.36,0.73 0.8,-0.29 1.74,0.88 1.64,-0.82 1.05,0.25 0.66,-0.55 1.29,1.41 -0.75,1.53 -1.06,1.16 -0.96,0.1 0.33,1.15 -0.82,1.43 -1,1.41 0.2,0.81 2.23,1.6 2.16,0.93 1.44,1 2.03,1.72 0.79,0 1.47,0.75 0.43,0.9 2.68,0.99 1.85,-1 0.55,-1.57 0.57,-1.29 0.35,-1.59 0.85,-2.3 -0.39,-1.39 0.2,-0.84 -0.32,-1.64 0.37,-2.16 0.54,-0.58 -0.44,-0.95 0.68,-1.51 0.53,-1.56 0.07,-0.81 1.04,-1.06 0.79,1.39 0.19,1.78 0.7,0.34 0.12,1.2 1.02,1.45 0.21,1.62 -0.08,1.01 z", - "AZ": "m 601.68,342.71 0.83,0.97 1.24,-0.01 -0.01,0.56 1.14,2.08 -1.92,-0.48 -1.42,-1.66 -0.44,-1.37 0.58,-0.09 z m 6.65,-5.43 1.24,0.25 0.48,-0.95 1.67,-1.51 1.47,1.97 1.43,2.62 1.31,0.17 0.86,0.99 -2.31,0.29 -0.49,2.82 -0.48,1.26 -1.03,0.84 0.08,1.77 -0.7,0.18 -1.75,-1.87 0.97,-1.78 -0.83,-1.06 -1.05,0.27 -3.31,2.66 -0.06,-2.5 -1.26,-0.59 -1.19,-0.99 0.79,-1.16 -1.49,-1.26 0.56,-0.92 -1.07,-0.64 -0.58,-0.97 0.69,-0.61 2.09,1.07 1.51,0.22 0.38,-0.43 -1.38,-2.02 0.73,-0.52 0.79,0.13 1.93,2.27 z", - "BA": "m 528.79,323.36 1.02,-0.01 -0.7,1.72 1.35,1.5 -0.41,1.82 -0.66,0.17 -0.53,0.36 -0.91,0.89 -0.41,2.1 -2.48,-1.44 -1.06,-1.61 -1.07,-0.85 -1.29,-1.45 -0.6,-1.21 -1.38,-1.83 0.59,-1.64 1.01,0.91 0.6,-0.82 1.31,-0.09 2.41,0.66 1.94,-0.06 z", - "BD": "m 735.34,400.66 -0.05,2.15 -0.98,-0.46 0.18,2.41 -0.8,-1.56 -0.16,-1.52 -0.54,-1.45 -1.17,-1.76 -2.58,-0.12 0.26,1.25 -0.88,1.67 -1.2,-0.61 -0.41,0.55 -0.79,-0.33 -1.08,-0.27 -0.44,-2.48 -0.97,-2.28 0.47,-1.84 -1.72,-0.82 0.62,-1.12 1.75,-1.15 -2.02,-1.63 0.99,-2.11 2.22,1.34 1.34,0.16 0.25,2.15 2.66,0.42 2.61,-0.05 1.61,0.53 -1.29,2.59 -1.26,0.18 -0.86,1.73 1.53,1.58 0.46,-1.94 0.78,-0.01 z", - "BE": "m 484.8,296.16 2.05,0.35 2.6,-0.93 1.77,1.95 1.55,1.04 -0.32,2.97 -0.73,0.16 -0.31,2.43 -2.45,-1.97 -1.44,0.34 -1.96,-2.06 -1.3,-1.77 -1.3,-0.07 -0.41,-1.56 z", - "BF": "m 467.58,436.65 -1.92,-0.73 -1.32,0.11 -0.98,0.71 -1.26,-0.6 -0.49,-0.93 -1.26,-0.62 -0.19,-1.64 0.77,-1.21 -0.07,-0.96 2.23,-2.36 0.41,-1.96 0.77,-0.7 1.36,0.38 1.17,-0.58 0.38,-0.74 2.18,-1.28 0.53,-0.9 2.62,-1.2 1.55,-0.41 0.7,0.55 1.79,-0.01 -0.22,1.4 0.38,1.31 1.58,1.87 0.08,1.38 3.24,0.65 -0.07,1.95 -0.61,0.86 -1.37,0.26 -0.57,1.24 -0.96,0.32 -2.46,-0.06 -1.3,-0.22 -0.9,0.46 -1.24,-0.21 -4.87,0.13 -0.07,1.61 z", - "BG": "m 539.03,325.81 0.81,1.6 1.08,-0.29 2.16,0.61 4.12,0.2 1.39,-0.99 3.3,-0.9 2.04,1.41 1.65,0.41 -1.46,1.59 -1.02,2.73 0.9,2.16 -2.41,-0.51 -2.86,1.18 -0.03,1.86 -2.55,0.35 -1.97,-1.3 -2.25,1.03 -2.07,-0.11 -0.2,-2.47 -1.41,-1.21 0.47,-0.54 -0.31,-0.45 0.47,-1.21 1.07,-1.19 -1.36,-1.66 -0.25,-1.42 z", - "BI": "m 557.77,476.18 -0.18,-3.37 -0.71,-1.26 1.71,0.22 0.86,-1.59 1.49,0.18 0.16,1.1 0.6,0.63 0.03,0.91 -0.69,0.58 -1.1,1.46 -1.01,1.01 z", - "BJ": "m 483.05,446.17 -2.32,0.33 -0.69,-1.94 0.13,-6.46 -0.57,-0.58 -0.1,-1.39 -0.98,-0.99 -0.85,-0.83 0.36,-1.5 0.96,-0.32 0.57,-1.24 1.37,-0.26 0.61,-0.86 0.94,-0.83 1.01,-0.01 2.14,1.64 -0.11,0.95 0.63,1.68 -0.55,1.14 0.29,0.76 -1.36,1.75 -0.86,0.87 -0.53,1.77 0.07,1.79 z", - "BN": "m 795.71,451.02 1.11,-1.05 2.39,-1.53 -0.13,1.38 -0.16,1.78 -1.34,-0.09 -0.59,0.95 z", - "BO": "m 299.29,526.6 -3.2,-0.13 -1.09,2.43 -1.65,-2.18 -3.67,-0.73 -2.33,2.72 -2.03,0.41 -1.1,-4.15 -1.5,-3.34 0.88,-2.87 -1.47,-1.25 -0.37,-2.12 -1.38,-2 1.77,-3.14 -1.21,-2.44 0.65,-0.97 -0.51,-1.07 1.1,-1.44 0.06,-2.44 0.13,-2.02 0.61,-0.96 -2.43,-4.58 2.09,0.24 1.44,-0.07 0.63,-0.85 2.45,-1.15 1.47,-1.06 3.67,-0.48 -0.29,2.12 0.34,1.09 -0.23,1.9 3.05,2.55 3.14,0.47 1.1,1.07 1.9,0.57 1.16,0.83 1.76,-0.03 1.63,0.85 0.12,1.66 0.55,0.84 0.04,1.25 -0.82,0.04 1.08,3.37 5.37,0.12 -0.41,1.68 0.3,1.15 1.53,0.82 0.67,1.82 -0.5,2.32 -0.77,1.29 0.27,1.69 -0.88,0.61 -0.04,-0.91 -2.62,-1.51 -2.6,-0.05 -4.89,0.86 -1.34,2.62 -0.07,1.6 -1.11,3.59 z", - "BR": "m 313.93,552.04 3.74,-4.37 3.17,-3.08 1.88,-1.28 2.36,-1.73 0.06,-2.49 -1.41,-1.79 -1.39,0.59 0.55,-1.78 0.38,-1.82 0,-1.68 -1.01,-0.55 -1.05,0.49 -1.04,-0.13 -0.33,-1.18 -0.26,-2.77 -0.53,-0.9 -1.89,-0.82 -1.14,0.59 -2.96,-0.58 0.18,-4.06 -0.83,-1.66 0.88,-0.61 -0.27,-1.69 0.77,-1.29 0.5,-2.32 -0.67,-1.82 -1.53,-0.82 -0.3,-1.15 0.41,-1.68 -5.37,-0.12 -1.08,-3.37 0.82,-0.04 -0.04,-1.25 -0.55,-0.84 -0.12,-1.66 -1.63,-0.85 -1.76,0.03 -1.16,-0.83 -1.9,-0.57 -1.1,-1.07 -3.14,-0.47 -3.05,-2.55 0.23,-1.9 -0.34,-1.09 0.29,-2.12 -3.67,0.48 -1.47,1.06 -2.45,1.15 -0.63,0.85 -1.44,0.07 -2.09,-0.24 -1.58,0.49 -1.28,-0.33 0.19,-4.3 -2.3,1.66 -2.47,-0.07 -1.06,-1.51 -1.86,-0.16 0.59,-1.21 -1.56,-1.72 -1.17,-2.53 0.74,-0.51 0,-1.19 1.7,-0.81 -0.28,-1.51 0.71,-0.98 0.21,-1.3 3.2,-1.91 2.3,-0.53 0.37,-0.42 2.53,0.13 1.26,-7.65 0.07,-1.21 -0.44,-1.59 -1.24,-1.02 0.01,-2.02 1.58,-0.46 0.56,0.29 0.09,-1.07 -1.64,-0.29 -0.03,-1.74 5.46,0.06 0.93,-0.96 0.78,0.88 0.54,1.65 0.53,-0.35 1.55,1.48 2.18,-0.18 0.54,-0.86 2.08,-0.65 1.16,-0.45 0.32,-1.18 2.01,-0.8 -0.16,-0.58 -2.37,-0.24 -0.39,-1.76 0.11,-1.87 -1.25,-0.72 0.52,-0.26 2.08,0.36 2.23,0.7 0.81,-0.66 2.01,-0.44 3.14,-1.04 1.03,-1.07 -0.38,-0.79 1.46,-0.12 0.66,0.64 -0.37,1.23 0.96,0.42 0.65,1.3 -0.78,0.98 -0.45,2.38 0.72,1.41 0.2,1.29 1.73,1.3 1.38,0.14 0.31,-0.54 0.88,-0.12 1.27,-0.49 0.91,-0.74 1.55,0.23 0.68,-0.1 1.53,0.23 0.25,-0.57 -0.47,-0.55 0.28,-0.81 1.13,0.25 1.33,-0.29 1.6,0.59 1.23,0.58 0.87,-0.76 0.62,0.12 0.39,0.79 1.34,-0.2 1.07,-1.06 0.86,-2.06 1.66,-2.55 0.96,-0.13 0.69,1.54 1.57,4.88 1.5,0.46 0.08,1.92 -2.11,2.29 0.87,0.84 4.96,0.44 0.1,2.79 2.13,-1.83 3.53,1.01 4.65,1.7 1.37,1.63 -0.46,1.54 3.26,-0.86 5.46,1.48 4.19,-0.11 4.14,2.31 3.58,3.13 2.16,0.8 2.4,0.12 1.02,0.88 0.95,3.57 0.47,1.69 -1.12,4.66 -1.43,1.84 -3.95,3.94 -1.79,3.21 -2.07,2.48 -0.7,0.06 -0.79,2.1 0.2,5.4 -0.78,4.48 -0.3,1.93 -0.88,1.15 -0.5,3.94 -2.84,3.88 -0.48,3.09 -2.27,1.31 -0.66,1.81 -3.04,-0.01 -4.41,1.17 -1.98,1.35 -3.14,0.89 -3.3,2.44 -2.37,3.06 -0.41,2.32 0.47,1.73 -0.53,3.18 -0.63,1.55 -1.96,1.75 -3.11,5.68 -2.47,2.59 -1.91,1.54 -1.27,3.16 -1.86,1.91 -0.78,-1.9 1.24,-1.57 -1.62,-2.25 -2.2,-1.82 -2.89,-2.08 -1.04,0.09 -2.81,-2.5 z", - "BS": "m 258.11,395.45 -0.69,0.15 -0.71,-1.76 -1.05,-0.89 0.61,-1.95 0.84,0.12 0.98,2.55 0.02,1.78 z m -0.8,-8.69 -3.06,0.5 -0.2,-1.15 1.32,-0.25 1.85,0.09 0.09,0.81 z m 2.3,-0.03 -0.48,2.21 -0.52,-0.4 0.05,-1.63 -1.26,-1.23 -0.01,-0.36 2.22,1.41 z", - "BT": "m 732.61,383.03 1.14,1 -0.2,1.93 -2.29,0.09 -2.36,-0.21 -1.77,0.49 -2.55,-1.19 -0.05,-0.63 1.85,-2.34 1.51,-0.8 2.01,0.73 1.48,0.08 z", - "BW": "m 547.42,516.2 0.56,0.52 0.89,1.71 3.17,3.25 1.2,0.32 0.01,1.05 0.82,1.9 2.17,0.46 1.79,1.36 -3.97,2.22 -2.52,2.26 -0.93,2.03 -0.84,1.15 -1.53,0.25 -0.49,1.47 -0.29,0.96 -1.79,0.72 -2.28,-0.15 -1.34,-0.86 -1.18,-0.38 -1.37,0.72 -0.69,1.48 -1.33,0.93 -1.4,1.39 -2.01,0.32 -0.62,-1.09 0.26,-1.9 -1.67,-2.93 -0.75,-0.46 0,-8.86 2.76,-0.11 0.08,-10.57 2.09,-0.09 4.32,-1.03 1.08,1.21 1.78,-1.15 0.86,-0.01 1.58,-0.66 0.5,0.22 z", - "BY": "m 541.35,284.32 2.71,0.04 3.04,-1.8 0.65,-2.72 2.3,-1.57 -0.26,-2.2 1.7,-0.84 3.02,-1.93 2.95,1.26 0.4,1.23 1.47,-0.59 2.74,1.18 0.27,2.31 -0.6,1.32 1.76,3.15 1.14,0.87 -0.17,0.86 1.89,0.83 0.81,1.25 -1.09,1.02 -2.26,-0.16 -0.54,0.44 0.66,1.54 0.69,2.93 -2.41,0.27 -0.86,1 -0.19,2.26 -1.11,-0.43 -2.53,0.22 -0.74,-1.05 -1.05,0.78 -1.05,-0.65 -2.21,-0.09 -3.13,-1.08 -2.83,-0.36 -2.17,0.1 -1.54,1.23 -1.34,0.17 -0.05,-2.01 -0.87,-2.12 1.68,-0.94 0.02,-1.85 -0.78,-1.78 z", - "BZ": "m 225.56,413.21 -0.02,-0.43 0.34,-0.14 0.51,0.35 1,-1.77 0.53,-0.04 0.01,0.43 0.53,0.01 -0.04,0.8 -0.46,1.27 0.25,0.45 -0.29,1.05 0.17,0.27 -0.32,1.47 -0.55,0.78 -0.51,0.09 -0.56,1 -0.83,0 0.22,-3.28 z", - "CA": "m 199.18,96.48 -0.22,-5.9 3.63,0.58 1.63,0.96 3.35,4.92 -0.76,4.97 -4.15,2.77 -2.28,-3.12 -1.2,-5.18 z m 13.21,12.65 0.33,-1.49 -1.97,-2.45 -5.65,-0.19 0.75,3.68 5.25,0.83 1.29,-0.38 z m 36.35,46.95 3.08,5.1 0.81,0.57 3.07,-1.27 3.02,0.2 2.98,0.28 -0.25,-2.64 -4.84,-5.38 -6.42,-1.08 -1.35,0.67 -0.1,3.55 z m -65.43,-62.7 -2.71,4.19 6.24,0.52 4.61,4.44 4.58,1.5 -1.09,-5.68 -2.14,-6.73 -7.58,-5.35 -5.5,-2.04 0.2,5.69 3.39,3.46 z m 25.9,-10.24 5.13,-0.12 -2.22,4 -0.04,5.3 3.01,5.76 5.81,1.77 4.96,-0.99 5.18,-10.73 3.85,-4.45 -3.38,-4.97 -2.21,-10.65 -4.6,-3.19 -4.72,-3.68 -3.58,-9.56 -6.52,0.94 1.23,4.15 -2.87,1.25 -1.94,5.32 -1.94,7.46 1.78,7.26 3.07,5.13 z m -63.75,53.38 3.92,1.95 12.67,-1.3 -5.82,4.77 0.36,3.43 4.26,-0.24 7.07,-4.58 9.5,-1.67 1.71,-5.22 -0.49,-5.57 -2.94,-0.5 -2.5,1.93 -1.1,-4.13 -0.95,-5.7 -2.9,-1.42 -2.57,4.41 4.01,11.05 -4.9,-0.85 -4.98,-6.79 -7.89,-4 -2.64,3.32 -3.82,11.11 z m 22.56,-42.06 -3.65,-2.9 -1.5,-0.66 -2.88,4.28 -0.05,2 4.66,0.01 3.42,-2.73 z m -1.46,12.35 0.93,-3.99 -3.95,-2.12 -4.09,1.39 -2.27,4.26 4.16,4.21 5.22,-3.75 z m 29.09,33.24 4.62,-1.11 1.28,-8.25 -0.09,-5.95 -2.14,-5.56 -0.22,1.6 -3.94,-0.7 -4.22,4.09 -3.02,-0.37 0.18,8.92 4.6,-0.87 -0.06,6.47 3.01,1.73 z m -3.28,45.61 -5.06,-3.93 -4.71,-4.21 -0.87,-6.18 -1.76,-8.92 -3.14,-3.84 -2.79,-1.55 -2.47,1.42 1.99,9.59 -1.41,3.73 -2.29,-8.98 -2.56,-3.11 -3.17,4.81 -3.9,-4.76 -6.24,2.87 1.4,-4.46 -2.87,-1.87 -7.51,5.84 -1.95,3.71 -2.35,6.77 4.9,2.32 4.33,-0.12 -6.5,3.46 1.48,3.13 3.98,0.17 5.99,-0.67 5.42,1.96 -3.66,1.44 -3.95,-0.37 -4.33,1.41 -1.87,0.87 3.45,6.35 2.49,-0.88 3.83,2.15 1.52,3.65 4.99,-0.73 7.1,-1.16 5.26,-2.65 3.26,-0.48 4.82,2.12 5.07,1.22 0.94,-2.86 -1.79,-3.05 4.6,-0.64 0.33,-3.57 z m 7.74,-0.98 -1.96,3.54 -2.47,2.49 3.83,3.54 2.28,-0.85 3.78,2.36 1.74,-2.73 -1.71,-3.03 -0.84,-1.53 -1.68,-1.46 -2.97,-2.33 z m -17.61,-29.45 -2.13,-2.17 -3.76,0.4 -0.95,1.38 4.37,6.75 2.47,-6.36 z m 28.69,13.17 3.01,-6.93 3.34,-1.85 4.19,-8.74 -5.36,-2.47 -5.84,-0.36 -2.78,2.77 -1.47,4.23 -0.04,4.82 1.75,8.19 3.2,0.34 z m 17.15,-23 5.76,-0.18 8.04,-1.61 3.59,1.28 4.18,-2.26 1.75,-2.84 -0.63,-4.52 -3,-4.23 -4.56,-0.8 -5.71,0.97 -4.46,2.44 -4.09,-0.94 -3.78,-0.5 -1.78,-2.7 -3.22,-2.61 0.64,-4.43 -2.42,-3.98 -5.52,0.03 -3.11,-3.99 -5.78,-0.8 -1.06,5.1 3.25,3.74 5.8,1.45 2.81,5.09 0.34,5.6 0.97,5.99 7.45,3.42 4.54,1.28 z m -89.02,-18.27 5.21,-5.05 2.62,-0.59 2.16,-4.23 0.38,-9.77 -3.85,1.91 -4.3,-0.18 -5.76,8.19 -4.76,8.98 3.8,2.51 4.5,-1.77 z m 72.18,16.17 1.53,-4.14 -1.02,-3.46 -2.45,-3.92 -4.03,3.02 -1.49,4.92 3.4,2.79 4.06,0.79 z m -8.31,11.44 -0.73,-2.88 -5,1.26 -3.34,-2.11 -3.32,4.8 3.09,6.28 -5.72,-1.17 -0.06,3.01 6.97,7.05 1.94,3.38 2.7,0.73 4.6,-3.41 0.5,-8.21 -4.24,-4.07 2.61,-4.66 z m -73.99,153.74 -1.16,-2.34 -2.8,-1.77 -1.39,-2.05 -0.95,-1.5 -2.64,-0.46 -1.72,-0.67 -2.94,-0.96 -0.24,1.02 1.08,2.38 2.89,0.78 0.5,1.23 2.51,1.5 0.84,1.51 4.6,1.92 1.42,-0.59 z m 121.7,-77.63 -2,-2.11 -2.06,0.5 -0.25,-3.06 -3.21,-2.04 -3.07,-2.27 -1.63,-1.75 -1.43,1.03 -0.52,-2.96 -2.03,-0.55 -0.96,6.13 -0.36,5.11 -2.44,3.14 3.8,-0.6 0.96,3.65 3.99,-3.23 2.78,-3.38 1.57,2.86 4.36,1.51 2.5,-1.98 z m -120.53,-52.55 7.38,-4.18 v -3.87 l 3.48,-6.41 6.88,-6.69 3.52,-2.47 -3.01,-4.2 -2.72,-2.95 -7.16,-0.57 -4,-2.16 -9.48,1.63 2.74,6.23 -2.43,6.43 -1.94,6.87 -1.2,3.86 6.47,4.69 1.47,3.79 z m 134.24,27.31 0.32,-1.01 -0.03,-3.17 -2.19,-2.08 -2.57,1.05 -1.19,4.17 0.7,3.56 3.14,-0.36 1.82,-2.16 z m 23.82,7.54 4.41,6.6 3.45,2.85 4.92,-7.87 0.87,-4.93 -4.41,-0.47 -4.03,-6.7 -4.45,-1.64 -6.6,-4.97 5.15,-3.63 -2.65,-7.54 -2.44,-3.35 -6.77,-3.35 -2.92,-5.55 -5.21,1.99 -0.36,-3.86 -3.86,-4.32 -6.22,-4.71 -2.65,3.71 -5.55,2.66 0.42,-6.06 -4.81,-10.05 -7.11,4.06 -2.59,7.7 -2.21,-5.92 2.06,-6.37 -7.24,2.65 -2.88,3.99 -2.15,8.42 0.89,9.05 3.98,0.04 -2.93,3.92 2.33,2.96 4.55,1.25 5.93,2.42 10.2,1.82 5.08,-1.04 1.5,-2.42 2.21,2.79 2.47,0.46 2.97,4.96 -1.8,1.98 5.68,2.63 4.29,3.68 1.08,2.55 0.77,3.24 -3.63,6.93 -0.98,3.44 0.94,2.42 -5.77,0.86 -5.27,0.12 -1.85,4.87 2.37,2.23 8.11,-1.03 -0.04,-1.89 4.08,3.15 4.18,3.28 -0.98,1.77 3.4,3.02 6.02,3.53 7.6,2.39 -0.46,-2.09 -2.92,-3.67 -3.96,-5.37 7.03,5 3.54,1.66 0.97,-4.44 -1.82,-6.3 -1.16,-1.73 -3.81,-3.03 -2.95,-3.91 0.35,-3.94 3.64,-0.9 z M 222.6,51.59 l 2.34,7.29 4.96,5.88 9.81,-1.09 6.31,1.97 -4.38,6.05 -2.21,-1.78 -7.66,-0.71 1.19,8.31 3.96,6.04 -0.8,5.2 -4.97,3.46 -2.27,5.47 4.55,2.65 3.82,8.55 -7.5,-5.7 -1.71,0.94 1.38,9.38 -5.18,2.83 0.35,5.85 5.3,0.63 4.17,1.44 8.24,-1.84 7.33,3.27 7.49,-7.19 -0.06,-3.02 -4.79,0.48 -0.39,-2.84 3.92,-3.83 1.33,-5.15 4.33,-3.83 2.66,-4.76 -2.32,-7.1 1.94,-2.65 -3.86,-1.89 8.49,-1.63 1.79,-3.15 5.78,-2.6 4.8,-13.47 4.57,-4.94 6.62,-11.12 -6.1,0.1 2.54,-4.3 6.78,-3.99 6.84,-8.9 0.12,-5.73 -5.13,-6.04 -6.02,-2.93 -7.49,-1.82 -6.07,-1.49 -6.07,-1.5 -8.1,3.98 -1.49,-2.53 -8.57,0.98 -5.03,2.57 -3.7,3.65 -2.13,11.74 -3.06,-6.01 -3.48,-1.14 -4.12,7.97 -5.5,3.35 -3.27,0.66 -4.17,3.84 0.61,6.65 3.28,5.49 z m 74.4,265 -0.98,-1.98 -1.06,1.26 0.7,1.36 3.56,1.71 1.04,-0.26 1.38,-1.66 -2.6,0.11 -2.04,-0.54 z m -57,-77.86 0.61,1.63 1.98,0.14 3.28,-3.34 0.06,-1.19 -3.85,-0.06 -2.08,2.82 z m 62.13,66.44 -2.87,-1.8 -3.69,-1.09 -0.97,0.37 2.61,2.04 3.63,1.34 1.36,-0.08 -0.07,-0.78 z m 24.88,4.79 -0.36,-2.24 -1.96,0.72 0.87,-3.11 -2.8,-1.32 -1.29,1.05 -2.49,-1.18 0.98,-1.51 -1.88,-0.93 -1.83,1.47 1.86,-3.82 1.5,-2.8 0.54,-1.22 -1.3,-0.2 -2.43,1.55 -1.74,2.53 -2.9,6.92 -2.35,2.56 1.22,1.14 -1.75,1.47 0.43,1.23 5.44,0.13 3.01,-0.25 2.69,1.01 -1.98,1.93 1.67,0.14 3.25,-3.58 0.78,0.53 -0.61,3.37 1.84,0.77 1.27,-0.15 1.18,-3.61 -0.86,-2.6 z m -21.19,4.76 -2.81,4.56 -4.63,0.58 -3.64,-2.01 -0.92,-3.07 -0.89,-4.46 2.65,-2.83 -2.48,-2.09 -4.19,0.43 -5.88,3.53 -4.5,5.45 -2.38,0.67 3.23,-3.8 4.04,-5.57 3.57,-1.9 2.35,-3.11 2.9,-0.3 4.21,0.03 6,0.92 4.74,-0.71 3.53,-3.62 4.62,-1.59 2.01,-1.58 2.04,-1.71 -0.2,-5.19 -1.13,-1.77 -2.18,-0.63 -1.11,-4.05 -1.8,-1.55 -4.47,-1.26 -2.52,-2.82 -3.73,-2.83 1.13,-3.2 -3.1,-6.26 -3.65,-6.89 -2.18,-4.98 -1.86,2.61 -2.68,6.05 -4.06,2.97 -2.03,-3.16 -2.56,-0.85 -0.93,-6.99 0.08,-4.8 -5,-0.44 -0.85,-2.27 -3.45,-3.44 -2.61,-2.04 -2.32,1.58 -2.88,-0.58 -4.81,-1.65 -1.95,1.4 0.94,9.18 1.22,5.12 -3.31,5.75 3.41,4.02 1.9,4.44 0.23,3.42 -1.55,3.5 -3.18,3.46 -4.49,2.28 1.98,2.53 1.46,7.4 -1.52,4.68 -2.16,1.46 -4.17,-4.28 -2.03,-5.17 -0.87,-4.76 0.46,-4.19 -3.05,-0.47 -4.63,-0.28 -2.97,-2.08 -3.51,-1.37 -2.01,-2.38 -2.8,-1.94 -5.21,-2.23 -3.92,1.02 -1.31,-3.95 -1.26,-4.99 -4.12,-0.9 0.15,-6.41 1.09,-4.48 3.04,-6.6 3.43,-4.9 3.26,-0.77 0.19,-4.05 2.21,-2.68 4.01,-0.42 3.25,-4.39 0.82,-2.9 2.7,-5.73 0.84,-3.5 2.9,2.11 3.9,-1.08 5.49,-4.96 0.36,-3.54 -1.98,-3.98 2.09,-4.06 -0.17,-3.87 -3.76,-3.95 -4.14,-1.19 -3.98,-0.62 -0.15,8.71 -2.04,6.56 -2.93,5.3 -2.71,-4.95 0.84,-5.61 -3.35,-5.02 -3.75,6.09 0.01,-7.99 -5.21,-1.63 2.49,-4.01 -3.81,-9.59 -2.84,-3.91 -3.7,-1.44 -3.32,6.43 -0.22,9.34 3.27,3.29 3,4.91 -1.27,7.71 -2.26,-0.2 -1.78,5.88 0.02,-7 -4.34,-2.58 -2.49,1.33 0.32,4.67 -4.09,-0.18 -4.35,1.17 -4.95,-3.35 -3.13,0.6 -2.82,-4.11 -2.26,-1.84 -2.24,0.77 -3.41,0.35 -1.81,2.61 2.86,3.19 -3.05,3.72 -2.99,-4.42 -2.39,1.3 -7.57,0.87 -5.07,-1.59 3.94,-3.74 -3.78,-3.9 -2.75,0.5 -3.86,-1.32 -6.56,-2.89 -4.29,-3.37 -3.4,-0.47 -1.06,2.36 -3.44,1.31 -0.38,-6.15 -3.73,5.5 -4.74,-7.32 -1.94,-0.89 -0.63,3.91 -2.09,1.9 -1.93,-3.39 -4.59,2.05 -4.2,3.55 -4.17,-0.98 -3.4,2.5 -2.46,3.28 -2.92,-0.72 -4.41,-3.8 -5.23,-1.94 -0.02,27.65 -0.01,35.43 2.76,0.17 2.73,1.56 1.96,2.44 2.49,3.6 2.73,-3.05 2.81,-1.79 1.49,2.85 1.89,2.23 2.57,2.42 1.75,3.79 2.87,5.88 4.77,3.2 0.08,3.12 -1.56,2.35 0.06,2.48 3.39,3.45 0.49,3.76 3.59,1.96 -0.4,2.79 1.56,3.96 5.08,1.82 2,1.89 5.43,4.23 0.38,0.01 h 7.96 8.32 2.76 8.55 8.27 8.41 l 8.42,0 9.53,0 9.59,0 5.8,0 0.01,-1.64 0.95,-0.02 0.5,2.35 0.87,0.72 1.96,0.26 2.86,0.67 2.72,1.3 2.27,-0.55 3.45,1.09 1.14,-1.66 1.59,-0.66 0.62,-1.03 0.63,-0.55 2.61,0.86 1.93,0.1 0.67,0.57 0.94,2.38 3.15,0.63 -0.49,1.18 1.11,1.21 -0.48,1.56 1.18,0.51 -0.59,1.37 0.75,0.13 0.53,-0.6 0.55,0.9 2.1,0.5 2.13,0.04 2.27,0.41 2.51,0.78 0.91,1.26 1.82,3.04 -0.9,1.3 -2.28,-0.54 -1.42,-2.44 0.36,2.49 -1.34,2.17 0.15,1.84 -0.23,1.07 -1.81,1.27 -1.32,2.09 -0.62,1.32 1.54,0.24 2.08,-1.2 1.23,-1.06 0.83,-0.17 1.54,0.38 0.75,-0.59 1.37,-0.48 2.44,-0.47 v 0 l 0,0 -0.25,-1.15 -0.13,0.04 -0.86,0.2 -1.12,-0.36 0.84,-1.32 0.85,-0.46 1.98,-0.56 2.37,-0.53 1.24,0.73 0.78,-0.85 0.89,-0.54 0.6,0.29 0.03,0.06 2.87,-2.73 1.27,-0.73 4.26,-0.03 5.17,0 0.28,-0.98 0.9,-0.2 1.19,-0.62 1,-1.82 0.86,-3.15 2.14,-3.1 0.93,1.08 1.88,-0.7 1.25,1.19 0,5.52 1.83,2.25 3.12,-0.48 4.49,-0.13 -4.87,3.26 0.11,3.29 2.13,0.28 3.13,-2.79 2.78,-1.58 6.21,-2.35 3.47,-2.62 -1.81,-1.46 -0.29,-2.92 z m -53.66,-71.1 1.1,-3.12 -0.71,-1.23 -1.15,-0.13 -1.08,1.8 -0.13,0.41 0.74,1.77 1.23,0.5 z m -142.66,36.43 0,0 1.56,-2.35 -1.56,2.35 z m -3.4,3.29 -2.69,0.38 -1.32,-0.62 -0.17,1.52 0.52,2.07 1.42,1.46 1.04,2.13 1.69,2.1 1.12,0.01 -2.44,-3.7 0.83,-5.35 z", - "CD": "m 561.96,453.86 -0.17,3.26 1.12,0.37 -0.9,0.99 -1.08,0.74 -1.07,1.46 -0.59,1.29 -0.16,2.24 -0.65,1.06 -0.02,2.1 -0.81,0.78 -0.1,1.66 -0.39,0.21 -0.26,1.53 0.71,1.26 0.18,3.37 0.5,2.57 -0.28,1.46 0.56,1.62 1.63,1.57 1.51,3.55 -1.1,-0.29 -3.77,0.48 -0.75,0.33 -0.8,1.8 0.63,1.25 -0.5,3.35 -0.35,2.85 0.76,0.51 1.96,1.1 0.77,-0.51 0.24,3.08 -2.15,-0.03 -1.15,-1.57 -1.03,-1.22 -2.15,-0.4 -0.63,-1.49 -1.72,0.9 -2.24,-0.4 -0.94,-1.29 -1.78,-0.26 -1.31,0.07 -0.16,-0.88 -0.97,-0.07 -1.28,-0.17 -1.73,0.42 -1.22,-0.07 -0.7,0.26 0.15,-3.37 -0.93,-1.05 -0.21,-1.73 0.41,-1.7 -0.56,-1.09 -0.05,-1.76 -3.41,0.02 0.25,-1.01 -1.43,0.01 -0.15,0.49 -1.74,0.11 -0.71,1.63 -0.42,0.71 -1.55,-0.4 -0.92,0.4 -1.86,0.22 -1.07,-1.47 -0.64,-0.91 -0.81,-1.68 -0.69,-2.09 -8.27,-0.03 -0.99,0.33 -0.81,-0.05 -1.16,0.38 -0.39,-0.87 0.71,-0.3 0.09,-1.22 0.46,-0.72 1.02,-0.58 0.74,0.28 0.96,-1.07 1.52,0.03 0.18,0.79 1.05,0.5 1.65,-1.76 1.63,-1.36 0.71,-0.89 -0.09,-2.3 1.22,-2.71 1.28,-1.43 1.85,-1.34 0.32,-0.89 0.07,-1.02 0.46,-0.97 -0.15,-1.58 0.35,-2.47 0.55,-1.74 0.84,-1.49 0.16,-1.68 0.25,-1.95 1.1,-1.42 1.5,-0.9 2.31,0.95 1.78,1.03 2.05,0.28 2.09,0.54 0.84,-1.68 0.39,-0.22 1.27,0.28 3.13,-1.39 1.1,0.59 0.91,-0.08 0.42,-0.68 1.04,-0.24 2.11,0.29 1.8,0.06 0.93,-0.29 1.69,2.31 1.26,0.33 0.75,-0.47 1.3,0.19 1.56,-0.59 0.67,1.19 z", - "CF": "m 518.34,442.91 2.32,-0.22 0.52,-0.72 0.46,0.06 0.7,0.63 3.53,-1.07 1.19,-1.1 1.47,-0.99 -0.28,-0.99 0.79,-0.26 2.71,0.18 2.64,-1.31 2.02,-3.09 1.43,-1.14 1.77,-0.49 0.32,1.22 1.62,1.77 0,1.15 -0.45,1.18 0.18,0.87 0.97,0.81 2.14,1.24 1.53,1.13 0.03,0.92 1.88,1.46 1.17,1.21 0.71,1.68 2.1,1.11 0.45,0.89 -0.93,0.29 -1.8,-0.06 -2.11,-0.29 -1.04,0.24 -0.42,0.68 -0.91,0.08 -1.1,-0.59 -3.13,1.39 -1.27,-0.28 -0.39,0.22 -0.84,1.68 -2.09,-0.54 -2.05,-0.28 -1.78,-1.03 -2.31,-0.95 -1.5,0.9 -1.1,1.42 -0.25,1.95 -1.8,-0.16 -1.9,-0.47 -1.67,1.48 -1.47,2.6 -0.3,-0.81 -0.12,-1.27 -1.28,-0.9 -1.04,-1.44 -0.24,-1 -1.32,-1.46 0.22,-0.83 -0.28,-1.18 0.22,-2.17 0.67,-0.51 z", - "CG": "m 511.94,476.97 -1.05,-0.96 -0.85,0.47 -1.13,1.2 -2.3,-2.95 2.13,-1.54 -1.05,-1.85 0.96,-0.7 1.89,-0.34 0.22,-1.24 1.5,1.34 2.48,0.12 0.86,-1.32 0.35,-1.85 -0.31,-2.18 -1.32,-1.64 1.21,-3.23 -0.7,-0.55 -2.08,0.22 -0.79,-1.43 0.21,-1.22 3.53,0.11 2.27,0.73 2.23,0.66 0.2,-1.5 1.47,-2.6 1.67,-1.48 1.9,0.47 1.8,0.16 -0.16,1.68 -0.84,1.49 -0.55,1.74 -0.35,2.47 0.15,1.58 -0.46,0.97 -0.07,1.02 -0.32,0.89 -1.85,1.34 -1.28,1.43 -1.22,2.71 0.09,2.3 -0.71,0.89 -1.63,1.36 -1.65,1.76 -1.05,-0.5 -0.18,-0.79 -1.52,-0.03 -0.96,1.07 z", - "CH": "m 502.4,312.59 0.11,0.74 -0.43,1.01 1.27,0.74 1.43,0.11 -0.22,1.67 -1.23,0.69 -2.08,-0.51 -0.61,1.63 -1.33,0.13 -0.49,-0.64 -1.57,1.36 -1.35,0.19 -1.21,-0.86 -0.96,-1.77 -1.34,0.64 0.04,-1.84 2.05,-2.31 -0.09,-1.05 1.28,0.39 0.77,-0.71 2.38,0.03 0.58,-0.9 z", - "CI": "m 467.49,449.71 -1.27,0.03 -1.96,-0.55 -1.79,0.03 -3.33,0.49 -1.94,0.81 -2.78,1.02 -0.54,-0.07 0.21,-2.3 0.27,-0.35 -0.08,-1.11 -1.19,-1.17 -0.89,-0.19 -0.82,-0.77 0.61,-1.24 -0.28,-1.36 0.13,-0.82 0.45,0 0.16,-1.23 -0.22,-0.54 0.27,-0.39 1.04,-0.34 -0.69,-2.26 -0.65,-1.16 0.23,-0.97 0.56,-0.21 0.36,-0.26 0.78,0.42 2.16,0.03 0.52,-0.83 0.48,0.06 0.81,-0.32 0.44,1.21 0.65,-0.36 1.16,-0.42 1.26,0.62 0.49,0.93 1.26,0.6 0.98,-0.71 1.32,-0.11 1.92,0.73 0.74,4.01 -1.18,2.36 -0.73,3.17 1.21,2.41 z", - "CL": "m 283.06,636.98 0,10.57 3,0 1.69,0.13 -0.93,1.98 -2.4,1.53 -1.38,-0.16 -1.66,-0.4 -2.04,-1.48 -2.94,-0.71 -3.53,-2.71 -2.86,-2.57 -3.86,-5.25 2.31,0.97 3.94,3.13 3.72,1.7 1.45,-2.17 0.91,-3.2 2.58,-1.91 2,0.55 z m 1.16,-112.01 1.1,4.15 2.02,-0.41 0.34,0.76 -0.96,3.16 -3.05,1.51 0.09,5.14 -0.59,1 0.84,1.23 -1.98,1.95 -1.84,2.96 -1,2.9 0.27,3.11 -1.73,3.34 1.29,5.69 0.73,0.61 -0.01,3.09 -1.6,3.31 0.06,2.87 -2.12,2.26 0.01,3.22 0.85,3.46 -1.68,1.3 -0.75,3.22 -0.66,3.75 0.47,4.54 -1.13,0.77 0.65,4.4 1.27,1.46 -0.92,1.63 1.3,0.78 0.3,1.48 -1.22,0.75 0.3,2.33 -1.02,5.35 -1.49,3.52 0.33,2.11 -0.89,2.68 -2.15,1.88 0.25,4.6 0.99,1.6 1.87,-0.28 -0.05,3.33 1.16,2.63 6.78,0.61 2.6,0.71 -2.49,-0.03 -1.35,1.13 -2.53,1.67 -0.45,4.38 -1.19,0.11 -3.16,-1.54 -3.21,-3.25 0,0 -3.49,-2.63 -0.88,-2.87 0.79,-2.62 -1.41,-2.94 -0.36,-7.34 1.19,-4.03 2.96,-3.19 -4.26,-1.19 2.67,-3.57 0.95,-6.56 3.12,1.37 1.46,-7.97 -1.88,-1 -0.88,4.75 -1.77,-0.54 0.88,-5.42 0.96,-6.84 1.29,-2.48 -0.81,-3.5 -0.23,-3.98 1.18,-0.11 1.72,-5.6 1.94,-5.43 1.19,-4.97 -0.65,-4.91 0.84,-2.67 -0.34,-3.96 1.64,-3.87 0.51,-6.04 0.9,-6.37 0.88,-6.75 -0.21,-4.87 -0.58,-4.15 1.44,-0.75 0.75,-1.5 1.37,1.99 0.37,2.12 1.47,1.25 -0.88,2.87 1.51,3.34 z", - "CM": "m 512.17,457.32 -0.35,-0.15 -1.66,0.36 -1.71,-0.38 -1.33,0.19 -4.56,-0.07 0.41,-2.2 -1.1,-1.84 -1.28,-0.48 -0.57,-1.25 -0.72,-0.4 0.04,-0.77 0.72,-1.98 1.33,-2.7 0.81,-0.03 1.67,-1.64 1.07,-0.04 1.57,1.15 1.93,-0.95 0.26,-1.16 0.63,-1.14 0.43,-1.42 1.5,-1.16 0.57,-1.97 0.59,-0.63 0.4,-1.47 0.74,-1.81 2.36,-2.2 0.15,-0.95 0.31,-0.51 -1.11,-1.14 0.09,-0.9 0.79,-0.17 1.11,1.83 0.19,1.89 -0.1,1.89 1.52,2.57 -1.56,-0.03 -0.79,0.2 -1.28,-0.28 -0.61,1.33 1.65,1.65 1.22,0.48 0.4,1.17 0.88,1.93 -0.44,0.77 -1.41,2.84 -0.67,0.51 -0.22,2.17 0.28,1.18 -0.22,0.83 1.32,1.46 0.24,1 1.04,1.44 1.28,0.9 0.12,1.27 0.3,0.81 -0.2,1.5 -2.23,-0.66 -2.27,-0.73 z", - "CN": "m 784.88,410.66 -2.42,1.41 -2.3,-0.91 -0.08,-2.53 1.38,-1.34 3.06,-0.83 1.61,0.07 0.63,1.13 -1.23,1.3 -0.65,1.7 z m 48.56,-107.52 4.88,1.38 3.32,3.03 1.13,3.95 4.26,0 2.43,-1.65 4.63,-1.24 -1.47,3.76 -1.09,1.51 -0.96,4.46 -1.89,3.89 -3.4,-0.7 -2.41,1.4 0.74,3.36 -0.4,4.55 -1.43,0.1 0.02,1.93 -1.81,-2.24 -1.11,2.13 -4.33,1.62 0.44,1.97 -2.42,-0.14 -1.33,-1.17 -1.93,2.64 -3.09,1.98 -2.28,2.35 -3.92,1.06 -2.06,1.69 -3.02,0.98 1.49,-1.67 -0.59,-1.41 2.22,-2.45 -1.48,-1.93 -2.44,1.3 -3.17,2.54 -1.73,2.34 -2.75,0.17 -1.43,1.68 1.48,2.41 2.29,0.58 0.09,1.58 2.22,1.02 3.14,-2.51 2.49,1.37 1.81,0.09 0.46,1.84 -3.97,0.97 -1.31,1.87 -2.73,1.73 -1.44,2.39 3.02,1.86 1.1,3.31 1.71,3.05 1.9,2.53 -0.05,2.43 -1.76,0.89 0.67,1.73 1.65,1 -0.43,2.61 -0.71,2.52 -1.57,0.28 -2.05,3.41 -2.27,4.09 -2.6,3.68 -3.86,2.82 -3.9,2.55 -3.16,0.35 -1.71,1.34 -0.97,-0.98 -1.59,1.5 -3.92,1.5 -2.97,0.46 -0.96,3.15 -1.55,0.17 -0.74,-2.16 0.66,-1.16 -3.76,-0.96 -1.33,0.49 -2.82,-0.78 -1.33,-1.22 0.44,-1.74 -2.56,-0.55 -1.35,-1.14 -2.39,1.62 -2.73,0.35 -2.24,-0.02 -1.5,0.74 -1.45,0.44 0.42,3.43 -1.5,-0.08 -0.25,-0.7 -0.08,-1.24 -2.06,0.87 -1.21,-0.55 -2.08,-1.13 0.82,-2.51 -1.78,-0.59 -0.67,-2.8 -2.96,0.51 0.34,-3.63 2.66,-2.58 0.11,-2.57 -0.08,-2.4 -1.22,-0.75 -0.94,-1.86 -1.64,0.24 -3.02,-0.47 0.95,-1.33 -1.31,-1.99 -2,1.35 -2.36,-0.78 -3.23,2.03 -2.55,2.36 -2.26,0.39 -1.23,-0.85 -1.48,-0.08 -2,-0.73 -1.51,0.8 -1.85,2.34 -0.24,-2.48 -1.71,0.66 -3.27,-0.31 -3.17,-0.73 -2.28,-1.39 -2.18,-0.63 -0.94,-1.53 -1.58,-0.46 -2.83,-2.09 -2.25,-0.99 -1.16,0.77 -3.9,-2.26 -2.75,-2.07 -0.79,-3.63 2.01,0.44 0.09,-1.69 -1.12,-1.71 0.28,-2.74 -3.01,-3.99 -4.61,-1.39 -0.83,-2.66 -2.07,-1.63 -0.5,-1.01 -0.42,-2.01 0.1,-1.38 -1.7,-0.81 -0.92,0.36 -0.71,-3.32 0.8,-0.83 -0.39,-0.85 2.68,-1.73 1.94,-0.72 2.97,0.49 1.06,-2.35 3.6,-0.44 1,-1.48 4.42,-2.03 0.39,-0.85 -0.22,-2.17 1.92,-1 -2.52,-6.75 5.55,-1.58 1.44,-0.89 2.02,-7.26 5.56,1.35 1.56,-1.86 0.13,-4.19 2.33,-0.39 2.13,-2.83 1.1,-0.35 0.74,2.97 2.36,2.23 4,1.57 1.93,3.32 -1.08,4.73 1.01,1.73 3.33,0.68 3.78,0.55 3.39,2.45 1.73,0.43 1.28,3.57 1.65,2.27 3.09,-0.09 5.79,0.85 3.73,-0.53 2.77,0.57 4.15,2.29 3.39,0 1.24,1.16 3.26,-2.01 4.53,-1.31 4.2,-0.14 3.28,-1.34 2.01,-2.05 1.96,-1.3 -0.45,-1.28 -0.9,-1.5 1.47,-2.54 1.58,0.36 2.88,0.8 2.79,-2.1 4.28,-1.55 2.05,-2.66 1.97,-1.16 4.07,-0.54 2.21,0.46 0.31,-1.45 -2.54,-2.89 -2.25,-1.33 -2.16,1.54 -2.77,-0.65 -1.59,0.53 -0.72,-1.71 1.98,-4.23 1.37,-3.25 3.37,1.63 3.95,-2.74 -0.03,-1.93 2.53,-4.73 1.56,-1.45 -0.04,-2.52 -1.54,-1.1 2.32,-2.31 3.48,-0.84 3.72,-0.13 4.2,1.39 2.46,1.71 1.73,4.61 1.05,1.94 0.98,2.73 1.05,4.31 z", - "CO": "m 264.17,464.06 -1.2,-0.66 -1.38,-0.92 -0.8,0.44 -2.38,-0.39 -0.68,-1.2 -0.52,0.05 -2.81,-1.59 -0.38,-0.87 1.05,-0.21 -0.12,-1.39 0.65,-1.01 1.39,-0.19 1.19,-1.75 1.07,-1.46 -1.04,-0.67 0.53,-1.62 -0.63,-2.56 0.6,-0.73 -0.44,-2.37 -1.14,-1.5 0.36,-1.36 0.91,0.2 0.53,-0.84 -0.65,-1.65 0.34,-0.42 1.44,0.09 2.11,-1.97 1.15,-0.3 0.03,-0.93 0.52,-2.39 1.61,-1.32 1.76,-0.05 0.22,-0.59 2.2,0.23 2.21,-1.43 1.09,-0.64 1.35,-1.37 1,0.17 0.73,0.75 -0.54,0.96 -1.8,0.48 -0.71,1.42 -1.09,0.81 -0.81,1.06 -0.35,2.01 -0.77,1.66 1.44,0.18 0.36,1.3 0.62,0.62 0.22,1.13 -0.33,1.04 0.1,0.59 0.69,0.23 0.67,0.98 3.6,-0.27 1.63,0.36 1.98,2.41 1.13,-0.3 2.02,0.15 1.6,-0.32 0.99,0.49 -0.51,1.5 -0.62,0.94 -0.22,2.01 0.56,1.85 0.8,0.83 0.09,0.63 -1.42,1.39 1.02,0.61 0.75,0.98 0.85,2.77 -0.53,0.35 -0.54,-1.65 -0.78,-0.88 -0.93,0.96 -5.46,-0.06 0.03,1.74 1.64,0.29 -0.09,1.07 -0.56,-0.29 -1.58,0.46 -0.01,2.02 1.24,1.02 0.44,1.59 -0.07,1.21 -1.26,7.65 -1.4,-1.49 -0.84,-0.06 1.81,-2.84 -2.15,-1.31 -1.68,0.24 -1.01,-0.48 -1.55,0.74 -2.09,-0.35 -1.65,-2.92 -1.3,-0.72 -0.89,-1.32 -1.86,-1.32 z", - "CR": "m 242.88,440.65 -1.52,-0.63 -0.57,-0.59 0.32,-0.49 -0.1,-0.62 -0.78,-0.68 -1.1,-0.55 -0.97,-0.36 -0.18,-0.83 -0.74,-0.51 0.18,0.83 -0.56,0.67 -0.64,-0.78 -0.9,-0.28 -0.38,-0.57 0.02,-0.86 0.37,-0.9 -0.79,-0.4 0.64,-0.54 0.42,-0.37 1.85,0.75 0.64,-0.37 0.89,0.24 0.47,0.58 0.82,0.19 0.67,-0.6 0.72,1.54 1.08,1.14 1.32,1.21 -1.09,0.25 0.02,1.13 0.58,0.42 -0.42,0.34 0.11,0.51 -0.23,0.57 z", - "CU": "m 244.83,397.19 2.43,0.22 2.2,0.03 2.63,1.03 1.12,1.11 2.62,-0.34 0.99,0.7 2.38,1.87 1.74,1.35 0.92,-0.04 1.68,0.61 -0.21,0.84 2.07,0.12 2.12,1.22 -0.33,0.69 -1.87,0.38 -1.89,0.15 -1.93,-0.24 -4.01,0.29 1.88,-1.66 -1.14,-0.77 -1.81,-0.2 -0.97,-0.86 -0.67,-1.7 -1.58,0.11 -2.62,-0.8 -0.84,-0.63 -3.65,-0.47 -0.98,-0.59 1.05,-0.75 -2.75,-0.15 -2.01,1.56 -1.17,0.04 -0.4,0.74 -1.38,0.33 -1.2,-0.29 1.48,-0.93 0.6,-1.09 1.27,-0.67 1.43,-0.59 2.13,-0.29 z", - "CY": "m 570.56,358.54 1.89,-1.46 -2.55,1.02 -2.02,-0.05 -0.4,0.83 -0.2,0.02 -1.33,0.12 0.65,1.37 1.37,0.44 2.88,-1.38 -0.09,-0.27 z", - "CZ": "m 523.06,308.11 -1.3,-0.8 -1.31,0.22 -2.18,-1.3 -0.99,0.32 -1.57,1.74 -2.09,-1.37 -1.58,-1.83 -1.43,-1.04 -0.3,-1.82 -0.49,-1.3 2.04,-0.95 1.04,-1.1 2.01,-0.86 0.71,-0.84 0.74,0.51 1.25,-0.47 1.33,1.43 2.09,0.39 -0.17,1.21 1.52,0.9 0.42,-1.13 1.92,0.49 0.27,1.37 2.08,0.26 1.29,2.13 -0.83,0.01 -0.44,0.77 -0.64,0.19 -0.18,0.97 -0.54,0.21 -0.08,0.39 -0.95,0.44 -1.25,-0.07 z", - "DE": "m 503.32,279.17 0.05,1.88 2.84,1.12 -0.03,1.7 2.85,-0.9 1.57,-1.31 3.17,1.89 1.32,1.51 0.66,2.39 -0.78,1.25 1.01,1.65 0.7,2.45 -0.22,1.56 1.15,2.86 -1.25,0.47 -0.74,-0.51 -0.71,0.84 -2.01,0.86 -1.04,1.1 -2.04,0.95 0.49,1.3 0.3,1.82 1.43,1.04 1.58,1.83 -0.98,1.95 -1.01,0.54 0.4,2.72 -0.27,0.7 -0.87,-0.85 -1.34,-0.12 -2.01,0.74 -2.47,-0.18 -0.4,1.09 -1.42,-1.14 -0.85,0.22 -3,-1.26 -0.58,0.9 -2.38,-0.03 0.35,-2.98 1.42,-2.9 -4.04,-0.78 -1.32,-1.13 0.16,-1.89 -0.56,-0.98 0.32,-2.97 -0.48,-4.69 1.69,0 0.71,-1.71 0.7,-4.23 -0.53,-1.58 0.55,-1 2.34,-0.26 0.52,1.04 1.91,-2.33 -0.64,-1.79 -0.13,-2.75 2.12,0.64 z", - "DJ": "m 596.3,427.97 0.66,0.88 -0.09,1.19 -1.6,0.68 1.21,0.77 -1.04,1.52 -0.62,-0.5 -0.67,0.2 -1.57,-0.05 -0.05,-0.86 -0.21,-0.79 0.94,-1.33 0.99,-1.26 1.2,0.25 z", - "DK": "m 511.08,276.09 -1.68,3.97 -2.93,-2.76 -0.39,-2.05 4.11,-1.66 0.89,2.5 z m -4.98,-4.25 -0.69,1.9 -0.83,-0.55 -2.02,3.59 0.76,2.39 -1.79,0.74 -2.12,-0.64 -1.14,-2.72 -0.08,-5.12 0.47,-1.38 0.8,-1.54 2.47,-0.32 0.98,-1.43 2.26,-1.47 -0.1,2.68 -0.83,1.68 0.34,1.43 1.52,0.76 z", - "DO": "m 274.43,407.6 0.35,-0.51 2.19,0.02 1.66,0.76 0.74,-0.08 0.51,1.05 1.53,-0.06 -0.09,0.88 1.25,0.11 1.38,1.08 -1.04,1.2 -1.34,-0.64 -1.28,0.12 -0.92,-0.14 -0.51,0.54 -1.08,0.18 -0.42,-0.72 -0.93,0.43 -1.12,2 -0.72,-0.46 -0.15,-0.84 0.06,-0.8 -0.72,-0.88 0.68,-0.5 0.22,-1.13 z", - "DZ": "m 509.15,396.33 -9.61,5.75 -8.12,5.85 -3.95,1.32 -3.11,0.29 -0.03,-1.88 -1.3,-0.48 -1.75,-0.85 -0.66,-1.39 -9.46,-6.55 -9.46,-6.65 -10.55,-7.53 0.06,-0.61 0,-0.21 -0.03,-3.75 4.53,-2.36 2.8,-0.49 2.29,-0.86 1.08,-1.62 3.28,-1.29 0.12,-2.41 1.62,-0.29 1.27,-1.21 3.67,-0.56 0.51,-1.28 -0.74,-0.71 -0.97,-3.53 -0.16,-2.05 -1.06,-2.18 2.69,-1.87 3.04,-0.6 1.77,-1.43 2.7,-1.05 4.75,-0.62 4.64,-0.29 1.41,0.52 2.64,-1.37 3,-0.03 1.14,0.81 1.91,-0.21 -0.57,1.79 0.45,3.28 -0.66,2.82 -1.73,1.88 0.25,2.53 2.29,1.98 0.03,0.81 1.72,1.33 1.2,5.86 0.91,2.84 0.15,1.48 -0.49,2.59 0.2,1.44 -0.36,1.72 0.25,1.97 -1.12,1.29 1.66,2.26 0.11,1.32 0.99,1.71 1.31,-0.56 2.22,1.42 z", - "EC": "m 250.35,473.12 1.49,-2.08 -0.61,-1.22 -1.07,1.3 -1.68,-1.23 0.57,-0.78 -0.47,-2.53 0.98,-0.42 0.52,-1.73 1.06,-1.8 -0.2,-1.13 1.54,-0.6 1.92,-1.11 2.81,1.59 0.52,-0.05 0.68,1.2 2.38,0.39 0.8,-0.44 1.38,0.92 1.2,0.66 0.39,2.11 -0.87,1.81 -3.06,2.92 -3.37,1.1 -1.72,2.43 -0.53,1.88 -1.59,1.15 -1.17,-1.41 -1.14,-0.3 -1.16,0.22 -0.07,-1.02 0.8,-0.66 z", - "EE": "m 543.67,264.96 0.33,-3.12 -1.03,0.67 -1.78,-1.9 -0.25,-3.11 3.55,-1.53 3.53,-0.81 3.04,0.92 2.9,-0.17 0.42,0.96 -1.99,3.14 0.83,4.96 -1.2,1.66 -2.32,-0.01 -2.41,-1.94 -1.23,-0.65 z", - "EG": "m 573.42,377.53 -0.79,1.29 -0.6,2.4 -0.76,1.64 -0.66,0.56 -0.93,-1.02 -1.27,-1.42 -2,-4.57 -0.28,0.29 1.16,3.37 1.72,3.18 2.12,4.88 1.03,1.68 0.9,1.74 2.52,3.4 -0.56,0.53 0.09,1.97 3.27,2.71 0.49,0.62 -11.12,0 -10.88,0 -11.27,0 0,-11.23 0,-11.18 -0.84,-2.58 0.72,-2 -0.43,-1.39 1.01,-1.57 3.73,-0.05 2.7,0.86 2.78,0.97 1.3,0.5 2.16,-1.03 1.15,-0.93 2.48,-0.27 1.99,0.41 0.77,1.62 0.65,-1.07 2.24,0.77 2.19,0.19 1.38,-0.82 z", - "EH": "m 438.82,383.31 3.62,0.01 8.75,0.03 0,0 0,0 -8.75,-0.03 -3.62,-0.01 -0.11,0.09 -0.05,0.04 -1.78,3.2 -1.86,1.14 -1.02,1.91 -0.06,1.65 -0.75,1.79 -0.94,0.49 -1.56,1.94 -0.96,2.15 0.18,1.02 -0.92,1.57 -1.08,0.82 -0.13,1.39 -0.12,1.27 0.61,-1 10.98,0.02 -0.53,-4.35 0.69,-1.55 2.62,-0.27 -0.09,-7.86 9.21,0.17 0,-4.73 0.06,-0.61 0,-0.21 z", - "ER": "m 594.25,428.42 -0.96,-0.93 -1.15,-1.67 -1.24,-0.92 -0.73,-1 -2.44,-1.15 -1.92,-0.03 -0.68,-0.61 -1.64,0.68 -1.7,-1.31 -0.88,2.15 -3.26,-0.6 -0.3,-1.15 1.21,-4.25 0.27,-1.93 0.88,-0.9 2.07,-0.48 1.42,-1.67 1.63,3.38 0.77,2.67 1.54,1.41 3.82,2.72 1.56,1.64 1.52,1.66 0.88,0.98 1.38,0.86 -0.85,0.7 z", - "ES": "m 450.17,334.81 0.14,-2.68 -1.14,-1.66 3.96,-2.77 3.43,0.7 3.77,-0.03 2.98,0.66 2.33,-0.2 4.53,0.12 1.12,1.49 5.16,1.73 1.02,-0.82 3.16,1.72 3.25,-0.49 0.15,2.19 -2.66,2.49 -3.59,0.78 -0.25,1.24 -1.73,2.03 -1.08,2.96 1.09,2.05 -1.62,1.6 -0.6,2.3 -2.12,0.7 -1.99,2.69 -3.55,0.05 -2.68,-0.06 -1.75,1.22 -1.07,1.31 -1.38,-0.29 -1.03,-1.17 -0.8,-2 -2.62,-0.54 -0.23,-1.16 1.04,-1.32 0.38,-0.96 -0.96,-1.06 0.77,-2.35 -1.12,-2.17 1.21,-0.3 0.11,-1.72 0.46,-0.53 0.03,-2.88 1.3,-1 -0.78,-1.88 -1.64,-0.13 -0.48,0.47 -1.65,0.01 -0.71,-1.84 -1.14,0.55 z", - "ET": "m 581.79,421.48 1.7,1.31 1.64,-0.68 0.68,0.61 1.92,0.03 2.44,1.15 0.73,1 1.24,0.92 1.15,1.67 0.96,0.93 -0.99,1.26 -0.94,1.33 0.21,0.79 0.05,0.86 1.57,0.05 0.67,-0.2 0.62,0.5 -0.61,1.01 1.04,1.56 1.03,1.36 1.07,1.01 9.17,3.34 2.36,-0.02 -7.93,8.42 -3.65,0.12 -2.5,1.97 -1.79,0.05 -0.77,0.88 -1.92,0 -1.13,-0.94 -2.56,1.17 -0.83,1.16 -1.87,-0.22 -0.62,-0.32 -0.66,0.07 -0.88,-0.02 -3.55,-2.38 -1.95,0 -0.96,-0.91 0,-1.57 -1.46,-0.47 -1.65,-3.05 -1.28,-0.65 -0.5,-1.12 -1.42,-1.37 -1.72,-0.2 0.96,-1.61 1.48,-0.07 0.42,-0.86 -0.03,-2.53 0.83,-2.96 1.32,-0.8 0.29,-1.16 1.2,-2.17 1.69,-1.42 1.14,-2.81 0.45,-2.47 3.26,0.6 z", - "FK": "m 303.91,633.38 3.36,-2.69 2.39,1.12 1.68,-1.79 2.24,2.01 -0.84,1.58 -3.79,1.36 -1.26,-1.59 -2.38,2.05 z", - "FI": "m 555.67,193.35 -0.41,5.4 4.3,4.99 -2.59,5.48 3.26,7.96 -1.89,5.76 2.53,4.86 -1.15,4.14 4.15,4.26 -1.06,3.1 -2.6,3.45 -6,7.41 -5.09,0.45 -4.93,2.07 -4.56,1.18 -1.63,-3.07 -2.71,-1.87 0.62,-5.72 -1.36,-5.41 1.34,-3.58 2.54,-3.94 6.41,-7.02 1.88,-1.39 -0.3,-2.84 -3.9,-3.22 -0.94,-2.7 -0.08,-11.12 -4.37,-5.15 -3.74,-3.81 1.68,-2.08 3.12,4.15 3.66,-0.39 3.01,1.87 2.67,-3.44 1.38,-5.85 4.35,-2.78 3.6,3.26 z", - "FJ": "m 980.78,508.86 -0.35,1.4 -0.23,0.16 -1.78,0.72 -1.79,0.61 -0.36,-1.09 1.4,-0.6 0.89,-0.16 1.64,-0.91 0.58,-0.13 z m -5.84,4.31 -1.27,-0.36 -1.08,1 0.27,1.29 1.55,0.36 1.74,-0.4 0.46,-1.53 -0.96,-0.84 -0.71,0.48 z", - "FR": "m 502.31,333.79 -0.93,2.89 -1.27,-0.76 -0.65,-2.53 0.57,-1.41 1.81,-1.45 0.47,3.26 z m -16.75,-33.35 1.96,2.06 1.44,-0.34 2.45,1.97 0.63,0.37 0.81,-0.09 1.32,1.12 4.04,0.79 -1.42,2.9 -0.36,2.98 -0.77,0.71 -1.28,-0.38 0.09,1.05 -2.05,2.3 -0.04,1.84 1.34,-0.63 0.96,1.77 -0.12,1.13 0.83,1.5 -0.97,1.21 0.72,3.04 1.52,0.49 -0.32,1.68 -2.54,2.17 -5.53,-1.04 -4.08,1.24 -0.32,2.29 -3.25,0.49 -3.15,-1.72 -1.02,0.82 -5.16,-1.73 -1.12,-1.49 1.45,-2.32 0.53,-7.88 -2.89,-4.26 -2.07,-2.09 -4.29,-1.6 -0.28,-3.07 3.64,-0.92 4.71,1.09 -0.89,-4.84 2.65,1.85 6.53,-3.37 0.84,-3.61 2.45,-0.9 0.41,1.56 1.3,0.07 1.3,1.79 z", - "GA": "m 506.61,474.73 -2.88,-2.82 -1.86,-2.3 -1.7,-2.88 0.09,-0.92 0.61,-0.9 0.68,-2.02 0.57,-2.07 0.95,-0.16 4.07,0.03 -0.02,-3.35 1.33,-0.19 1.71,0.38 1.66,-0.36 0.35,0.15 -0.21,1.22 0.79,1.43 2.08,-0.22 0.7,0.55 -1.21,3.23 1.32,1.64 0.31,2.18 -0.35,1.85 -0.86,1.32 -2.48,-0.12 -1.5,-1.34 -0.22,1.24 -1.89,0.34 -0.96,0.7 1.05,1.85 z", - "GB": "m 459.63,281.25 -1.5,3.29 -2.12,-0.98 -1.73,0.07 0.58,-2.57 -0.58,-2.6 2.35,-0.2 3,2.99 z m 7.45,-20.76 -3,5.73 2.86,-0.72 3.07,0.03 -0.73,4.22 -2.52,4.53 2.9,0.32 0.22,0.52 2.5,5.79 1.92,0.77 1.73,5.41 0.8,1.84 3.4,0.88 -0.34,2.93 -1.43,1.33 1.12,2.33 -2.52,2.33 -3.75,-0.04 -4.77,1.21 -1.31,-0.87 -1.85,2.06 -2.59,-0.5 -1.97,1.67 -1.49,-0.87 4.11,-4.64 2.51,-0.97 -0.02,0 -4.38,-0.75 -0.79,-1.8 2.93,-1.41 -1.54,-2.48 0.53,-3.06 4.17,0.42 0,0 0.41,-2.74 -1.88,-2.95 -0.04,-0.07 -3.4,-0.85 -0.67,-1.32 1.02,-2.2 -0.92,-1.37 -1.51,2.34 -0.16,-4.8 -1.42,-2.59 1.02,-5.36 2.18,-4.31 2.24,0.42 3.36,-0.41 z", - "GE": "m 592.01,336.1 0.42,-1.6 -0.7,-2.57 -1.62,-1.41 -1.55,-0.44 -1.03,-1.17 0.34,-0.46 2.37,0.66 4.13,0.62 3.82,1.83 0.49,0.71 1.7,-0.6 2.62,0.8 0.85,1.55 1.77,0.87 -0.73,0.51 1.38,2.02 -0.38,0.43 -1.51,-0.22 -2.09,-1.06 -0.69,0.6 -3.9,0.58 -2.7,-1.82 z", - "GF": "m 328.14,456.66 -1.07,1.06 -1.34,0.2 -0.38,-0.78 -0.63,-0.12 -0.87,0.76 -1.22,-0.57 0.71,-1.19 0.24,-1.27 0.48,-1.2 -1.09,-1.65 -0.22,-1.91 1.46,-2.41 0.95,0.31 2.06,0.66 2.97,2.36 0.46,1.14 -1.66,2.55 -0.85,2.06 z", - "GH": "m 478.48,447.09 -4.4,1.64 -1.56,0.96 -2.53,0.81 -2.5,-0.79 0.13,-1.11 -1.21,-2.41 0.73,-3.17 1.18,-2.36 -0.74,-4.01 -0.39,-2.13 0.07,-1.61 4.87,-0.13 1.24,0.21 0.9,-0.46 1.3,0.22 -0.21,0.89 1.17,1.46 0,2.05 0.27,2.22 0.7,1.03 -0.62,2.53 0.22,1.4 0.75,1.78 z", - "GL": "m 344.38,24.16 9.42,-13.61 9.84,1.07 3.57,-8.95 9.91,-2.42 22.4,3.15 17.54,18.59 -5.18,8.3 -10.73,0.93 -15.09,2.03 1.41,3.64 9.93,-2.24 8.44,6.91 5.45,-6.12 2.33,7.15 -3.08,10.97 7.14,-6.93 13.61,-7.55 8.41,3.81 1.57,8.12 -11.43,12.66 -1.58,3.9 -8.96,2.86 6.49,0.79 -3.28,11.51 -2.26,9.59 0.09,15.26 3.37,8.34 -4.38,0.51 -4.61,3.88 5.17,6.3 0.66,9.62 -3,1.02 3.63,9.15 -6.22,0.75 3.25,4.14 -0.92,3.51 -3.95,1.51 -3.91,0.03 3.51,6.48 0.04,4.13 -5.55,-3.83 -1.44,2.49 3.78,2.29 3.68,5.48 1.06,6.95 -5,1.62 -2.16,-3.26 -3.47,-4.98 0.96,5.87 -3.25,4.41 7.38,0.35 3.87,0.45 -7.52,7.03 -7.62,6.13 -8.2,2.61 -3.09,0.04 -2.9,2.87 -3.9,7.63 -6.03,4.89 -1.94,0.29 -3.74,1.67 -4.02,1.59 -2.41,4.12 -0.04,4.56 -1.41,4.16 -4.58,4.95 1.13,4.71 -1.26,4.85 -1.43,5.56 -3.95,0.34 -4.14,-4.63 -5.61,-0.03 -2.72,-3.18 -1.87,-5.8 -4.86,-7.68 -1.42,-4.15 -0.38,-5.89 -3.89,-6.27 1.01,-5.17 -1.87,-2.53 2.77,-8.65 4.22,-2.85 1.11,-3.26 0.59,-6.26 -3.21,2.86 -1.52,1.19 -2.52,1.14 -3.44,-2.61 -0.19,-5.55 1.1,-4.48 2.6,-0.12 5.72,2.25 -4.82,-5.43 -2.51,-3.01 -2.79,1.24 -2.34,-2.19 3.13,-8.5 -1.7,-3.53 -2.23,-6.74 -3.37,-10.91 -3.57,-4.17 0.03,-4.63 -7.53,-6.69 -5.95,-0.85 -7.49,0.47 -6.84,0.86 -3.26,-3.75 -4.87,-7.66 7.36,-3.97 5.65,-0.68 -12,-3.36 -6.32,-5.44 0.39,-5.34 10.61,-6.87 10.27,-7.16 1.08,-5.64 -7.56,-5.76 2.44,-6.64 9.71,-12.33 4.08,-1.98 -1.17,-8.57 6.64,-5.24 8.62,-3.21 8.62,-0.18 3.06,6.3 7.44,-11.32 6.69,7.78 3.93,1.59 5.83,6.41 L 344,33.25 z", - "GM": "m 428.28,426.68 0.36,-1.27 3.05,-0.09 0.64,-0.67 0.89,-0.05 1.1,0.71 0.87,0.01 0.93,-0.48 0.56,0.82 -1.21,0.65 -1.22,-0.05 -1.2,-0.61 -1.04,0.66 -0.5,0.03 -0.68,0.4 z", - "GN": "m 451.84,442.16 -0.79,-0.07 -0.57,1.13 -0.8,-0.01 -0.54,-0.6 0.18,-1.13 -1.17,-1.72 -0.73,0.31 -0.6,0.07 -0.77,0.16 0.03,-1.03 -0.45,-0.74 0.09,-0.82 -0.61,-1.19 -0.78,-1.01 -2.24,0 -0.65,0.53 -0.78,0.06 -0.48,0.61 -0.32,0.79 -1.5,1.24 -1.23,-1.67 -1.09,-1.11 -0.72,-0.36 -0.7,-0.57 -0.31,-1.25 -0.41,-0.62 -0.82,-0.47 1.25,-1.38 0.85,0.05 0.73,-0.48 0.62,0 0.44,-0.38 -0.24,-0.94 0.31,-0.3 0.05,-0.97 1.35,0.03 2.02,0.7 0.62,-0.07 0.21,-0.31 1.52,0.22 0.41,-0.16 0.16,1.05 0.45,-0.01 0.73,-0.38 0.46,0.1 0.78,0.72 1.2,0.23 0.77,-0.62 0.91,-0.38 0.67,-0.4 0.56,0.08 0.62,0.62 0.34,0.79 1.15,1.19 -0.58,0.73 -0.11,0.92 0.6,-0.28 0.35,0.34 -0.15,0.84 0.86,0.82 -0.56,0.21 -0.23,0.97 0.65,1.16 0.69,2.26 -1.04,0.34 -0.27,0.39 0.22,0.54 -0.16,1.23 z", - "GQ": "m 502.12,460.82 -0.53,-0.42 0.97,-3.13 4.56,0.07 0.02,3.35 -4.07,-0.03 z", - "GR": "m 541.95,356.96 1.53,1.16 2.18,-0.19 2.09,0.24 -0.07,0.6 1.53,-0.41 -0.35,1.01 -4.04,0.29 0.03,-0.56 -3.42,-0.67 0.52,-1.47 z m 8.15,-20.96 -0.87,2.33 -0.67,0.41 -1.71,-0.1 -1.46,-0.35 -3.4,0.96 1.94,2.06 -1.42,0.59 -1.56,0 -1.48,-1.88 -0.53,0.8 0.63,2.18 1.4,1.7 -1.06,0.79 1.56,1.65 1.39,1.03 0.04,2 -1.36,-1.15 -1.24,0.21 0.83,1.8 -0.92,0.19 -1,-0.69 1.2,3.95 -0.58,0 -0.45,-1.25 -0.57,-0.02 -0.26,1.32 -0.45,-0.3 0.1,-0.74 -0.56,-1.04 H 537 l 0.12,0.84 -0.25,0.27 -0.62,-0.54 -0.38,-1.01 0.52,-0.57 -0.36,-0.74 -0.41,-0.38 -0.42,-0.09 -0.49,-0.94 0.58,-0.52 0.36,-0.48 0.56,0.1 0.25,-0.41 0.59,-0.16 0.68,0.46 0.55,0.17 0.39,-0.62 -0.94,-0.08 -0.56,-0.19 -1.25,0.28 -1.22,0.05 -1.09,-1.64 -0.18,-0.25 0.17,-0.64 -1.42,-1.15 -0.19,-1.03 1.3,-1.76 0.17,-1.19 0.91,-0.53 0.06,-0.97 1.83,-0.33 1.07,-0.81 1.52,0.07 0.46,-0.65 0.53,-0.12 2.07,0.11 2.25,-1.02 1.98,1.3 2.55,-0.35 0.03,-1.86 1.38,0.93 z", - "GT": "m 222.89,425 -1.44,-0.5 -1.75,-0.05 -1.28,-0.57 -1.51,-1.18 0.07,-0.84 0.32,-0.68 -0.39,-0.54 1.35,-2.36 3.59,-0.01 0.08,-0.98 -0.46,-0.18 -0.31,-0.63 -1.04,-0.67 -1.04,-0.98 1.27,0 0,-1.65 2.62,0 2.59,0.03 -0.02,2.31 -0.22,3.28 0.83,0 0.92,0.53 0.24,-0.44 0.82,0.37 -1.27,1.11 -1.33,0.81 -0.2,0.55 0.22,0.56 -0.58,0.74 -0.66,0.17 0.15,0.34 -0.52,0.32 -0.96,0.72 z", - "GW": "m 433.08,432.69 -1.5,-1.19 -1.18,-0.18 -0.64,-0.81 0.01,-0.43 -0.85,-0.6 -0.18,-0.61 1.49,-0.47 0.93,0.09 0.75,-0.32 5.18,0.12 -0.05,0.97 -0.31,0.3 0.24,0.94 -0.44,0.38 -0.62,0 -0.73,0.48 -0.85,-0.05 z", - "GY": "m 307.95,440.25 1.84,1.03 1.74,1.83 0.07,1.45 1.06,0.07 1.5,1.36 1.11,0.98 -0.45,2.52 -1.7,0.73 0.15,0.65 -0.52,1.45 1.25,2.02 0.89,0.01 0.37,1.57 1.71,2.42 -0.68,0.1 -1.55,-0.23 -0.91,0.74 -1.27,0.49 -0.88,0.12 -0.31,0.54 -1.38,-0.14 -1.73,-1.3 -0.2,-1.29 -0.72,-1.41 0.45,-2.38 0.78,-0.98 -0.65,-1.3 -0.96,-0.42 0.37,-1.23 -0.66,-0.64 -1.46,0.12 -1.89,-2.12 0.76,-0.77 -0.06,-1.3 1.73,-0.45 0.69,-0.52 -0.96,-1.04 0.25,-1.03 z", - "HN": "m 230.68,427.15 -0.48,-0.89 -0.86,-0.25 0.2,-1.15 -0.38,-0.31 -0.58,-0.2 -1.23,0.34 -0.1,-0.39 -0.85,-0.46 -0.6,-0.57 -0.83,-0.24 0.58,-0.74 -0.22,-0.56 0.2,-0.55 1.33,-0.81 1.27,-1.11 0.29,0.12 0.62,-0.51 0.8,-0.04 0.26,0.23 0.44,-0.14 1.3,0.26 1.3,-0.08 0.9,-0.32 0.33,-0.32 0.89,0.15 0.67,0.2 0.73,-0.07 0.56,-0.25 1.28,0.4 0.45,0.06 0.85,0.54 0.81,0.65 1.02,0.44 0.74,0.8 -0.96,-0.06 -0.39,0.39 -0.97,0.38 -0.71,0 -0.62,0.37 -0.56,-0.13 -0.48,-0.44 -0.29,0.08 -0.36,0.69 -0.27,-0.03 -0.05,0.6 -0.98,0.79 -0.51,0.34 -0.29,0.36 -0.83,-0.58 -0.6,0.76 -0.59,-0.02 -0.66,0.07 0.06,1.41 -0.41,0.02 -0.35,0.66 z", - "HR": "m 528.3,319.18 0.68,1.55 0.89,1.14 -1.08,1.49 -1.27,-0.88 -1.94,0.06 -2.41,-0.66 -1.31,0.09 -0.6,0.82 -1.01,-0.91 -0.59,1.64 1.38,1.83 0.6,1.21 1.29,1.45 1.07,0.85 1.06,1.61 2.48,1.44 -0.31,0.64 -2.63,-1.4 -1.63,-1.38 -2.56,-1.14 -2.36,-2.85 0.57,-0.3 -1.28,-1.64 -0.06,-1.34 -1.8,-0.62 -0.86,1.71 -0.83,-1.33 0.07,-1.38 0.1,-0.06 1.95,0.14 0.52,-0.68 0.95,0.65 1.1,0.08 -0.01,-1.12 0.97,-0.41 0.28,-1.62 2.23,-1.08 0.89,0.5 2.1,1.73 2.31,0.77 z", - "HT": "m 270.29,407 1.71,0.13 2.43,0.47 0.25,1.61 -0.22,1.13 -0.68,0.5 0.72,0.88 -0.06,0.8 -1.86,-0.5 -1.32,0.2 -1.71,-0.21 -1.31,0.55 -1.51,-0.92 0.25,-0.95 2.58,0.41 2.12,0.24 1.01,-0.66 -1.28,-1.27 0.02,-1.13 -1.77,-0.46 z", - "HU": "m 520.93,315.36 0.93,-2.65 -0.54,-0.89 1.58,-0.01 0.21,-1.71 1.43,1.07 1.03,0.46 2.36,-0.51 0.22,-0.84 1.12,-0.13 1.36,-0.65 0.3,0.27 1.32,-0.52 0.66,-1 0.92,-0.25 3,1.28 0.6,-0.43 1.55,1.14 0.2,1.12 -1.71,0.87 -1.33,2.8 -1.69,2.76 -2.25,0.76 -1.75,-0.17 -2.15,1.05 -1.05,0.6 -2.31,-0.77 -2.1,-1.73 -0.89,-0.5 -0.55,-1.37 z", - "ID": "m 813.97,492.31 -1.18,0.05 -3.72,-1.98 2.61,-0.56 1.47,0.86 0.98,0.86 -0.16,0.77 z m 10.43,-0.28 -2.4,0.62 -0.34,-0.34 0.25,-0.96 1.21,-1.72 2.77,-1.12 0.28,0.56 0.05,0.86 -1.82,2.1 z m -18.32,-5.77 1.01,0.75 1.73,-0.23 0.7,1.2 -3.24,0.57 -1.94,0.38 -1.51,-0.02 0.96,-1.62 1.54,-0.02 0.75,-1.01 z m 14.03,-0.01 -0.41,1.56 -4.21,0.8 -3.73,-0.35 -0.01,-1.03 2.23,-0.59 1.76,0.84 1.87,-0.21 2.5,-1.02 z m -40.04,-3.69 5.37,0.28 0.62,-1.16 5.2,1.35 1.02,1.82 4.21,0.51 3.44,1.67 -3.2,1.07 -3.08,-1.13 -2.54,0.08 -2.91,-0.21 -2.62,-0.51 -3.25,-1.07 -2.06,-0.28 -1.17,0.35 -5.11,-1.16 -0.49,-1.21 -2.57,-0.21 1.92,-2.68 3.4,0.17 2.26,1.09 1.16,0.21 0.4,1.02 z m 73.18,-1.58 -1.44,1.91 -0.27,-2.11 0.5,-1.01 0.59,-0.95 0.64,0.82 -0.02,1.34 z m -20.96,-7.71 -1.05,0.93 -1.94,-0.51 -0.55,-1.2 2.84,-0.13 0.7,0.91 z m 9.04,-1.01 1.02,2.13 -2.37,-1.15 -2.34,-0.23 -1.58,0.18 -1.94,-0.1 0.67,-1.53 3.46,-0.12 3.08,0.82 z m 10.29,-5.42 0.78,4.51 2.9,1.67 2.34,-2.96 3.22,-1.68 2.49,0 2.4,0.97 2.08,1 3.01,0.53 0.05,9.1 0.05,9.16 -2.5,-2.31 -2.85,-0.57 -0.69,0.8 -3.55,0.09 1.19,-2.29 1.77,-0.78 -0.73,-3.05 -1.35,-2.35 -5.44,-2.37 -2.31,-0.23 -4.21,-2.58 -0.83,1.36 -1.08,0.25 -0.64,-1.02 -0.01,-1.21 -2.14,-1.37 3.02,-1 2,0.05 -0.24,-0.74 -4.1,-0.01 -1.11,-1.66 -2.5,-0.51 -1.19,-1.38 3.78,-0.67 1.44,-0.91 4.5,1.14 0.45,1.02 z m -24.96,-7.16 -2.25,2.76 -2.11,0.54 -2.7,-0.54 -4.67,0.14 -2.45,0.4 -0.4,2.11 2.51,2.48 1.51,-1.26 5.23,-0.95 -0.23,1.28 -1.22,-0.4 -1.22,1.63 -2.47,1.08 2.65,3.57 -0.51,0.96 2.52,3.22 -0.02,1.84 -1.5,0.82 -1.1,-0.98 1.36,-2.29 -2.75,1.08 -0.7,-0.77 0.36,-1.08 -2.02,-1.64 0.21,-2.72 -1.87,0.85 0.24,3.25 0.11,4 -1.78,0.41 -1.2,-0.82 0.8,-2.57 -0.43,-2.69 -1.18,-0.02 -0.87,-1.91 1.16,-1.83 0.4,-2.21 1.41,-4.2 0.59,-1.15 2.38,-2.07 2.19,0.82 3.54,0.39 3.22,-0.12 2.77,-2.02 0.49,0.61 z m 9.67,0.8 -0.15,2.43 -1.45,-0.27 -0.43,1.69 1.16,1.47 -0.79,0.33 -1.13,-1.76 -0.83,-3.56 0.56,-2.23 0.93,-1.01 0.2,1.52 1.66,0.24 0.27,1.15 z m -30.32,-1.94 3.14,2.58 -3.32,0.33 -0.94,1.9 0.12,2.52 -2.7,1.91 -0.06,2.77 -1.08,4.27 -0.41,-0.99 -3.19,1.26 -1.11,-1.71 -2,-0.16 -1.4,-0.89 -3.33,1 -1.02,-1.35 -1.84,0.15 -2.31,-0.32 -0.43,-3.74 -1.4,-0.77 -1.35,-2.38 -0.39,-2.44 0.33,-2.58 1.67,-1.85 0.47,1.86 1.92,1.57 1.81,-0.57 1.79,0.2 1.63,-1.41 1.34,-0.24 2.65,0.78 2.29,-0.59 1.44,-3.88 1.08,-0.97 0.97,-3.17 3.22,0 2.43,0.47 -1.59,2.52 2.06,2.64 -0.49,1.28 z m -33.81,21.42 -3.1,0.06 -2.36,-2.34 -3.6,-2.28 -1.2,-1.69 -2.12,-2.27 -1.39,-2.09 -2.13,-3.9 -2.46,-2.32 -0.82,-2.39 -1.03,-2.17 -2.53,-1.75 -1.47,-2.39 -2.11,-1.56 -2.92,-3.08 -0.25,-1.42 1.81,0.11 4.34,0.54 2.48,2.73 2.17,1.89 1.55,1.16 2.66,3 2.85,0.04 2.36,1.91 1.62,2.33 2.13,1.27 -1.12,2.27 1.61,0.97 1.01,0.07 0.48,1.94 0.98,1.56 2.06,0.25 1.36,1.76 -0.7,3.47 -0.16,4.32 z", - "IE": "m 458.13,284.54 0.46,3.36 -2.12,4.12 -4.97,2.68 -3.97,-0.68 2.27,-4.78 -1.46,-4.77 3.81,-3.75 2.12,-2.27 0.58,2.6 -0.58,2.57 1.74,-0.06 z", - "IL": "m 575.66,367.07 -0.49,1.05 -1.02,-0.46 -0.58,2.2 0.7,0.36 -0.71,0.46 -0.13,0.86 1.32,-0.45 0.07,1.27 -1.4,5.17 -1.84,-5.55 0.81,-1.08 -0.19,-0.19 0.74,-1.53 0.57,-2.5 0.4,-0.84 0.08,-0.03 0.94,0 0.26,-0.58 0.75,-0.05 0.04,1.37 -0.38,0.5 z", - "IN": "m 693.75,357.69 3.01,3.99 -0.28,2.74 1.11,1.71 -0.09,1.69 -2.01,-0.44 0.79,3.63 2.75,2.06 3.9,2.27 -1.78,1.46 -1.09,2.99 2.72,1.2 2.64,1.55 3.66,1.77 3.84,0.41 1.62,1.59 2.16,0.29 3.38,0.73 2.33,-0.05 0.32,-1.24 -0.37,-1.99 0.22,-1.35 1.71,-0.67 0.24,2.48 0.05,0.63 2.55,1.19 1.77,-0.49 2.36,0.21 2.29,-0.09 0.2,-1.93 -1.14,-1 2.26,-0.4 2.55,-2.35 3.23,-2.03 2.35,0.78 2,-1.34 1.32,1.98 -0.95,1.34 3.02,0.47 0.22,1.2 -0.99,0.58 0.23,1.93 -2,-0.57 -3.63,2.16 0.08,1.78 -1.54,2.6 -0.15,1.5 -1.25,2.52 -2.19,-0.7 -0.11,3.15 -0.63,1.03 0.3,1.28 -1.39,0.72 -1.47,-4.8 -0.78,0.01 -0.46,1.94 -1.53,-1.58 0.86,-1.73 1.26,-0.18 1.29,-2.59 -1.61,-0.53 -2.61,0.05 -2.66,-0.42 -0.25,-2.15 -1.34,-0.16 -2.22,-1.34 -0.99,2.11 2.02,1.63 -1.75,1.15 -0.62,1.12 1.72,0.82 -0.47,1.84 0.97,2.28 0.44,2.48 -0.41,1.1 -1.9,-0.04 -3.46,0.62 0.16,2.25 -1.5,1.76 -4.03,2 -3.14,3.46 -2.11,1.85 -2.79,1.91 0,1.34 -1.4,0.72 -2.53,1.03 -1.31,0.16 -0.84,2.2 0.58,3.75 0.15,2.37 -1.18,2.71 -0.02,4.83 -1.45,0.14 -1.27,2.15 0.85,0.93 -2.56,0.8 -0.94,1.92 -1.13,0.81 -2.65,-2.63 -1.3,-3.96 -1.08,-2.86 -0.98,-1.34 -1.49,-2.74 -0.69,-3.58 -0.49,-1.8 -2.55,-3.97 -1.16,-5.64 -0.84,-3.77 0.01,-3.58 -0.54,-2.8 -4.08,1.79 -1.98,-0.36 -3.66,-3.63 1.35,-1.09 -0.83,-1.18 -3.29,-2.58 1.87,-2.04 6.17,0.01 -0.56,-2.64 -1.57,-1.56 -0.32,-2.39 -1.84,-1.4 3.09,-3.3 3.26,0.24 2.93,-3.32 1.76,-3.26 2.72,-3.24 -0.04,-2.33 2.39,-1.91 -2.27,-1.63 -0.97,-2.25 -0.99,-2.95 1.37,-1.46 4.26,0.83 3.12,-0.51 z", - "IQ": "m 602.86,356.02 1.83,1.04 0.22,2 -1.42,1.17 -0.65,2.64 1.95,3.18 3.43,1.82 1.45,2.5 -0.46,2.37 0.89,0 0.03,1.73 1.55,1.69 -1.66,-0.15 -1.89,-0.27 -2.06,3.08 -5.21,-0.26 -7.9,-6.49 -4.18,-2.29 -3.38,-0.89 -1.13,-4.04 6.21,-3.5 1.06,-4.12 -0.27,-2.52 1.54,-0.86 1.44,-2.18 1.2,-0.55 3.26,0.46 0.99,0.89 1.34,-0.59 z", - "IR": "m 626.69,351.78 2.47,-0.68 1.99,-2.02 1.87,0.1 1.23,-0.66 2,0.33 3.1,1.79 2.24,0.39 3.2,3.09 2.09,0.12 0.25,2.91 -1.14,4.25 -0.77,2.45 1.22,0.49 -1.2,1.83 0.92,2.64 0.22,2.09 2.12,0.55 0.23,2.1 -2.54,2.93 1.38,1.68 1.13,1.93 2.68,1.4 0.08,2.77 1.34,0.51 0.23,1.44 -4.04,1.61 -1.06,3.6 -5.27,-0.93 -3.06,-0.71 -3.16,-0.41 -1.2,-3.81 -1.34,-0.56 -2.16,0.56 -2.82,1.51 -3.43,-1.03 -2.83,-2.41 -2.7,-0.9 -1.87,-3.01 -2.07,-4.27 -1.51,0.52 -1.78,-1.07 -1.05,1.26 -1.55,-1.69 -0.03,-1.73 -0.89,0 0.46,-2.37 -1.45,-2.5 -3.43,-1.82 -1.95,-3.18 0.65,-2.64 1.42,-1.17 -0.22,-2 -1.83,-1.04 -1.82,-4.14 -1.53,-2.83 0.54,-1.09 -0.87,-4.12 1.92,-1.03 0.44,1.37 1.42,1.66 1.92,0.47 1.02,-0.1 3.31,-2.66 1.05,-0.27 0.82,1.07 -0.96,1.78 1.75,1.86 0.69,-0.17 0.89,2.61 2.66,0.73 1.95,1.76 3.98,0.6 4.38,-0.92 z", - "IS": "m 434.82,212.68 -0.64,4.48 3.16,4.6 -3.64,5.01 -8.09,4.38 -2.42,1.15 -3.69,-0.93 -7.82,-2.01 2.76,-2.84 -6.1,-3.2 4.96,-1.28 -0.12,-1.97 -5.88,-1.57 1.89,-4.47 4.25,-1.03 4.37,4.68 4.26,-3.75 3.53,1.96 4.57,-3.71 z", - "IT": "m 519.02,348.13 -1.01,2.78 0.42,1.09 -0.59,1.79 -2.14,-1.31 -1.43,-0.38 -3.91,-1.79 0.39,-1.82 3.28,0.32 2.86,-0.39 2.13,-0.29 z m -17.69,-10.82 1.68,2.62 -0.39,4.81 -1.27,-0.23 -1.14,1.2 -1.06,-0.95 -0.11,-4.38 -0.64,-2.1 1.54,0.19 1.39,-1.16 z m 8.87,-21.6 4.01,1.05 -0.3,1.99 0.67,1.71 -2.23,-0.58 -2.28,1.42 0.16,1.97 -0.34,1.12 0.92,1.99 2.63,1.95 1.41,3.17 3.12,3.05 2.2,-0.02 0.68,0.83 -0.79,0.74 2.51,1.35 2.06,1.12 2.4,1.92 0.29,0.68 -0.52,1.31 -1.56,-1.7 -2.44,-0.6 -1.18,2.36 2.03,1.34 -0.33,1.88 -1.17,0.21 -1.5,3.06 -1.17,0.27 0.01,-1.08 0.57,-1.91 0.61,-0.77 -1.09,-2.09 -0.86,-1.83 -1.16,-0.46 -0.83,-1.58 -1.8,-0.67 -1.21,-1.49 -2.07,-0.24 -2.19,-1.68 -2.56,-2.45 -1.91,-2.19 -0.87,-3.8 -1.4,-0.45 -2.28,-1.29 -1.29,0.53 -1.62,1.8 -1.17,0.28 0.32,-1.68 -1.52,-0.49 -0.72,-3.04 0.97,-1.21 -0.83,-1.5 0.12,-1.13 1.21,0.86 1.35,-0.19 1.57,-1.36 0.49,0.64 1.34,-0.13 0.61,-1.63 2.07,0.51 1.24,-0.68 0.22,-1.67 1.7,0.58 0.33,-0.78 2.77,-0.71 0.6,1.39 z", - "JM": "m 258.01,411.21 1.89,0.26 1.49,0.71 0.46,0.8 -1.97,0.05 -0.85,0.49 -1.57,-0.47 -1.6,-1.07 0.33,-0.67 1.18,-0.2 z", - "JO": "m 575.17,368.12 0.49,-1.05 3.12,1.32 5.49,-3.54 1.13,4.04 -0.53,0.49 -5.62,1.65 2.8,3.26 -0.93,0.54 -0.46,1.09 -2.14,0.44 -0.67,1.16 -1.22,0.98 -3.12,-0.51 -0.09,-0.46 1.4,-5.17 -0.07,-1.27 0.42,-0.96 z", - "JP": "m 853.01,362.26 0.36,1.15 -1.58,2.03 -1.15,-1.07 -1.44,0.78 -0.74,1.95 -1.83,-0.95 0.02,-1.58 1.55,-2 1.59,0.39 1.15,-1.42 2.07,0.72 z m 17.77,-10.28 -1.06,2.78 0.49,1.73 -1.46,2.42 -3.58,1.6 -4.93,0.21 -4,3.84 -1.88,-1.29 -0.11,-2.52 -4.88,0.75 -3.32,1.59 -3.28,0.06 2.84,2.46 -1.87,5.61 -1.81,1.37 -1.36,-1.27 0.69,-2.96 -1.77,-0.96 -1.14,-2.28 2.65,-1.03 1.47,-2.11 2.82,-1.75 2.06,-2.33 5.58,-1.02 3,0.7 2.93,-6.17 1.87,1.67 4.11,-3.51 1.59,-1.38 1.76,-4.38 -0.48,-4.1 1.18,-2.33 2.98,-0.68 1.53,5.11 -0.08,2.94 -2.59,3.6 0.05,3.63 z m 8.23,-25.93 1.97,0.83 1.98,-1.65 0.62,4.35 -4.16,1.05 -2.46,3.76 -4.41,-2.58 -1.53,4.12 -3.12,0.06 -0.39,-3.74 1.39,-2.94 3,-0.21 0.82,-5.38 0.83,-3.09 3.29,4.12 2.17,1.3 z", - "KE": "m 590.44,466.03 1.66,2.29 -1.96,1.12 -0.69,1.16 -1.06,0.2 -0.39,1.97 -0.9,1.12 -0.55,1.86 -1.13,0.92 -4.02,-2.79 -0.2,-1.62 -10.16,-5.67 -0.48,-0.31 -0.02,-2.95 0.8,-1.13 1.38,-1.84 1.02,-2.03 -1.23,-3.2 -0.33,-1.4 -1.33,-1.94 1.72,-1.67 1.9,-1.84 1.46,0.47 0,1.57 0.96,0.91 1.95,0 3.55,2.38 0.88,0.02 0.66,-0.07 0.62,0.32 1.87,0.22 0.83,-1.16 2.56,-1.17 1.13,0.94 1.92,0 -2.45,3.17 z", - "KG": "m 674.47,333.36 0.63,-1.66 1.84,-0.54 4.62,1.31 0.43,-2.24 1.59,-0.8 4,1.61 1.02,-0.42 4.65,0.1 4.16,0.4 1.4,1.37 1.73,0.55 -0.39,0.86 -4.42,2.03 -1,1.48 -3.6,0.44 -1.06,2.35 -2.97,-0.49 -1.93,0.72 -2.68,1.72 0.39,0.85 -0.8,0.83 -5.3,0.55 -3.47,-1.17 -3.04,0.28 0.27,-2.1 3.05,0.61 1.03,-1.13 2.13,0.36 3.59,-2.64 -3.32,-1.96 -2,0.93 -2.07,-1.4 2.35,-2.43 z", - "KH": "m 765.69,433.85 -1.14,-1.48 -1.41,-2.94 -0.67,-3.45 1.8,-2.38 3.62,-0.55 2.63,0.41 2.31,1.13 1.27,-1.99 2.49,1.06 0.65,1.92 -0.35,3.42 -4.71,2.19 1.23,1.73 -2.94,0.2 -2.43,1.14 z", - "KP": "m 841.8,332.87 0.39,0.67 -1.06,-0.23 -1.22,1.27 -0.84,1.28 0.11,2.67 -1.45,0.81 -0.5,0.65 -1.06,1.08 -1.87,0.6 -1.21,0.98 -0.09,1.57 -0.33,0.4 1.12,0.58 1.59,1.58 -0.41,0.86 -1.19,0.23 -1.98,0.17 -1.09,1.6 -1.26,-0.12 -0.17,0.32 -1.36,-0.67 -0.34,0.66 -0.82,0.29 -0.1,-0.66 -0.73,-0.32 -0.75,-0.57 0.77,-1.57 0.66,-0.42 -0.25,-0.65 0.71,-1.94 -0.19,-0.59 -1.63,-0.4 -1.32,-0.97 2.28,-2.35 3.09,-1.98 1.93,-2.65 1.33,1.17 2.42,0.14 -0.44,-1.97 4.33,-1.63 1.12,-2.13 z", - "KR": "m 835.38,346.78 2.42,4.18 0.69,2.27 0.02,3.98 -1.05,1.88 -2.54,0.66 -2.24,1.41 -2.53,0.29 -0.31,-1.85 0.52,-2.57 -1.24,-3.6 2.08,-0.59 -1.92,-3 0.17,-0.32 1.26,0.12 1.09,-1.6 1.98,-0.17 1.19,-0.23 z", - "XK": "m 533.72,334.17 -0.13,0.77 -0.36,-0.03 -0.18,-1.37 -0.67,-0.38 -0.6,-1.02 0.52,-0.85 0.67,-0.28 0.39,-1.26 0.5,-0.22 0.4,0.54 0.53,0.24 0.36,0.61 0.46,0.18 0.55,0.7 0.4,-0.02 -0.32,0.93 -0.33,0.45 0.09,0.28 -0.63,0.14 z", - "KW": "m 610.02,376.01 0.58,1.41 -0.25,0.73 0.9,2.41 -1.98,0.08 -0.7,-1.51 -2.5,-0.31 2.06,-3.08 z", - "KZ": "m 674.47,333.36 -1.61,0.7 -3.69,2.61 -1.23,2.65 -1.05,0.02 -0.76,-1.75 -3.57,-0.12 -0.57,-3.06 -1.37,-0.03 0.21,-3.8 -3.35,-2.8 -4.81,0.3 -3.29,0.56 -2.68,-3.5 -2.29,-1.48 -4.35,-2.84 -0.52,-0.35 -7.22,2.35 0.11,14.13 -1.44,0.18 -1.96,-2.93 -1.9,-1.06 -3.18,0.79 -1.24,1.25 -0.16,-0.92 0.69,-1.57 -0.53,-1.32 -3.25,-1.3 -1.27,-3.47 -1.54,-0.98 -0.1,-1.28 2.73,0.37 0.11,-2.88 2.38,-0.64 2.45,0.59 0.51,-3.91 -0.5,-2.51 -2.81,0.2 -2.38,-1 -3.25,1.79 -2.61,0.86 -1.43,-0.66 0.29,-2.1 -1.79,-2.76 -2.08,0.11 -2.38,-2.83 1.62,-3.22 -0.82,-0.87 2.23,-4.77 2.89,2.53 0.35,-3.19 5.78,-4.85 4.38,-0.12 6.19,3.1 3.31,1.79 2.98,-1.87 4.44,-0.08 3.59,2.29 0.82,-1.31 3.93,0.19 0.71,-2.11 -4.55,-3.09 2.69,-2.23 -0.52,-1.25 2.69,-1.21 -2.02,-3.2 1.28,-1.62 10.49,-1.66 1.37,-1.19 7.02,-1.79 2.52,-2.04 5.04,1.06 0.88,5.01 2.93,-1.16 3.6,1.63 -0.23,2.58 2.69,-0.27 7.02,-4.49 -1.02,1.5 3.58,3.66 6.26,11.58 1.5,-2.33 3.86,2.56 4.03,-1.14 1.54,0.8 1.35,2.55 1.96,0.84 1.2,1.85 3.61,-0.58 1.49,2.63 -2.14,2.83 -2.33,0.4 -0.13,4.18 -1.56,1.86 -5.56,-1.35 -2.02,7.26 -1.44,0.89 -5.55,1.58 2.52,6.75 -1.92,1 0.22,2.16 -1.73,-0.55 -1.4,-1.37 -4.16,-0.4 -4.65,-0.1 -1.02,0.42 -4,-1.61 -1.59,0.8 -0.43,2.24 -4.62,-1.31 -1.84,0.54 z", - "LA": "m 770.52,423.46 0.91,-1.3 0.13,-2.44 -2.27,-2.53 -0.18,-2.87 -2.13,-2.38 -2.12,-0.2 -0.56,1.02 -1.65,0.08 -0.84,-0.51 -2.95,1.74 -0.07,-2.62 0.69,-3.11 -1.89,-0.13 -0.16,-1.78 -1.22,-0.92 0.6,-1.1 2.39,-1.94 0.25,0.7 1.49,0.08 -0.42,-3.43 1.45,-0.44 1.64,2.37 1.26,2.72 3.45,0.03 1.09,2.59 -1.79,0.77 -0.81,1.07 3.36,1.76 2.33,3.46 1.77,2.57 2.12,2.02 0.71,2.04 -0.51,2.88 -2.49,-1.06 -1.27,1.99 z", - "LB": "m 575.94,365.18 -0.75,0.05 -0.26,0.58 -0.94,0 1,-2.73 1.39,-2.38 0.06,-0.12 1.26,0.18 0.46,1.32 -1.53,1.27 z", - "LK": "m 704.82,442.62 -0.42,2.92 -1.17,0.8 -2.44,0.64 -1.34,-2.23 -0.49,-4.03 1.27,-4.58 1.93,1.57 1.31,1.98 z", - "LR": "m 453.88,451.47 -0.74,0.02 -2.89,-1.33 -2.54,-2.13 -2.39,-1.53 -1.89,-1.81 0.67,-0.9 0.15,-0.81 1.26,-1.53 1.31,-1.31 0.6,-0.07 0.73,-0.31 1.17,1.72 -0.18,1.13 0.54,0.6 0.8,0.01 0.57,-1.13 0.79,0.07 -0.13,0.82 0.28,1.36 -0.61,1.24 0.82,0.77 0.89,0.19 1.19,1.17 0.08,1.11 -0.27,0.35 z", - "LS": "m 556.75,548 0.98,0.96 -0.86,1.56 -0.48,1.05 -1.56,0.5 -0.52,1.04 -1,0.32 -2.1,-2.49 1.49,-2.03 1.52,-1.25 1.31,-0.64 z", - "LT": "m 539.24,282.34 -0.23,-1.22 0.3,-1.33 -1.24,-0.77 -2.93,-0.86 -0.6,-4.16 3.21,-1.55 4.7,0.33 2.76,-0.5 0.39,1.05 1.49,0.32 2.7,2.42 0.26,2.2 -2.3,1.57 -0.65,2.72 -3.04,1.8 -2.71,-0.04 -0.67,-1.46 z", - "LU": "m 492.45,301.54 0.56,0.98 -0.16,1.89 -0.81,0.1 -0.63,-0.38 0.31,-2.43 z", - "LV": "m 534.54,274 0.1,-3.81 1.38,-3.24 2.64,-1.78 2.22,3.88 2.25,-0.1 0.54,-3.99 2.39,-0.93 1.23,0.65 2.41,1.94 2.32,0.01 1.35,1.19 0.23,2.49 0.91,2.99 -3.02,1.93 -1.7,0.84 -2.7,-2.42 -1.49,-0.32 -0.39,-1.05 -2.76,0.5 -4.7,-0.33 z", - "LY": "m 517.14,398.18 -1.98,1.12 -1.58,-1.66 -4.43,-1.31 -1.23,-1.91 -2.22,-1.42 -1.31,0.56 -0.99,-1.71 -0.11,-1.32 -1.66,-2.26 1.12,-1.29 -0.25,-1.97 0.36,-1.72 -0.2,-1.44 0.49,-2.59 -0.15,-1.48 -0.91,-2.84 1.37,-0.75 0.24,-1.38 -0.3,-1.35 1.93,-1.26 0.86,-1.05 1.37,-0.95 0.16,-2.55 3.29,1.15 1.18,-0.29 2.34,0.56 3.72,1.47 1.31,2.92 2.52,0.64 3.95,1.36 2.99,1.61 1.37,-0.84 1.34,-1.49 -0.65,-2.51 0.88,-1.6 2.02,-1.55 1.93,-0.45 3.79,0.68 0.96,1.48 1.04,0.01 0.89,0.56 2.79,0.39 0.68,1.08 -1.01,1.57 0.43,1.39 -0.72,2 0.84,2.58 0,11.18 0,11.23 0,5.96 -3.22,0.01 -0.04,1.24 -11.18,-5.7 -11.19,-5.77 z", - "MA": "m 451.21,383.39 -0.03,-3.75 4.53,-2.36 2.8,-0.49 2.29,-0.86 1.08,-1.62 3.28,-1.29 0.12,-2.41 1.62,-0.29 1.27,-1.21 3.67,-0.56 0.51,-1.28 -0.74,-0.71 -0.97,-3.53 -0.16,-2.05 -1.06,-2.18 -1.22,-0.04 -2.9,-0.75 -2.67,0.24 -1.69,-1.46 -2.06,-0.02 -0.89,2.11 -1.87,3.51 -2.08,1.39 -2.81,1.53 -1.8,2.24 -0.38,1.74 -1.07,2.82 0.7,4.03 -2.34,2.68 -1.4,0.85 -2.21,2.17 -2.61,0.35 -1.3,1.12 3.62,0.01 8.75,0.03 0,0 0,0 -8.75,-0.03 -3.62,-0.01 z", - "MD": "m 550.14,309.7 0.67,-0.62 1.86,-0.42 2.07,1.31 1.15,0.16 1.27,1.12 -0.2,1.41 1.02,0.67 0.4,1.72 0.98,1.04 -0.19,0.6 0.52,0.42 -0.74,0.29 -1.66,-0.11 -0.27,-0.57 -0.59,0.33 0.2,0.72 -0.77,1.29 -0.49,1.37 -0.7,0.44 -0.51,-1.83 0.3,-1.72 -0.09,-1.79 -1.62,-2.44 -0.89,-1.75 -0.87,-1.24 z", - "ME": "m 531.02,332.48 -0.17,-0.72 -1.22,1.87 0.19,1.19 -0.59,-0.29 -0.78,-1.23 -1.22,-0.75 0.31,-0.64 0.41,-2.1 0.91,-0.89 0.53,-0.36 0.74,0.66 0.41,0.54 0.92,0.41 1.07,0.79 -0.23,0.33 -0.52,0.85 z", - "MG": "m 614.42,498.65 0.74,1.21 0.69,1.89 0.46,3.46 0.72,1.35 -0.28,1.38 -0.49,0.86 -0.96,-1.7 -0.52,0.86 0.53,2.14 -0.25,1.24 -0.77,0.67 -0.18,2.48 -1.1,3.42 -1.38,4.09 -1.74,5.67 -1.07,4.21 -1.27,3.55 -2.28,0.73 -2.45,1.31 -1.61,-0.79 -2.23,-1.1 -0.77,-1.62 -0.19,-2.71 -0.98,-2.42 -0.26,-2.17 0.5,-2.16 1.29,-0.52 0.01,-0.99 1.34,-2.26 0.25,-1.88 -0.65,-1.4 -0.53,-1.85 -0.22,-2.7 0.98,-1.63 0.37,-1.85 1.4,-0.1 1.57,-0.6 1.03,-0.52 1.24,-0.04 1.59,-1.65 2.31,-1.78 0.84,-1.44 -0.38,-1.23 1.19,0.35 1.55,-1.99 0.05,-1.72 0.93,-1.28 z", - "MK": "m 533.23,334.91 0.36,0.03 0.13,-0.77 1.65,-0.59 0.63,-0.14 0.96,-0.22 1.29,-0.06 1.41,1.21 0.2,2.47 -0.54,0.12 -0.46,0.65 -1.52,-0.07 -1.07,0.81 -1.83,0.32 -1.16,-0.9 -0.4,-1.59 z", - "ML": "m 441.38,422.47 0.94,-0.52 0.47,-1.7 0.89,-0.07 1.96,0.8 1.58,-0.57 1.08,0.19 0.43,-0.64 11.25,-0.04 0.62,-2.03 -0.49,-0.36 -1.35,-12.68 -1.35,-13.06 4.29,-0.05 9.46,6.65 9.46,6.55 0.66,1.39 1.75,0.85 1.3,0.48 0.03,1.88 3.11,-0.29 0.01,6.75 -1.54,1.94 -0.24,1.79 -2.49,0.45 -3.82,0.25 -1.04,1.03 -1.8,0.11 -1.79,0.01 -0.7,-0.55 -1.55,0.41 -2.62,1.2 -0.53,0.9 -2.18,1.28 -0.38,0.74 -1.17,0.58 -1.36,-0.38 -0.77,0.7 -0.41,1.96 -2.23,2.36 0.07,0.96 -0.77,1.21 0.19,1.64 -1.16,0.42 -0.65,0.36 -0.44,-1.21 -0.81,0.32 -0.48,-0.06 -0.52,0.83 -2.16,-0.03 -0.78,-0.42 -0.36,0.26 -0.86,-0.82 0.15,-0.84 -0.35,-0.34 -0.6,0.28 0.11,-0.92 0.58,-0.73 -1.15,-1.19 -0.34,-0.79 -0.62,-0.62 -0.56,-0.08 -0.67,0.4 -0.91,0.38 -0.77,0.62 -1.2,-0.23 -0.78,-0.72 -0.46,-0.1 -0.73,0.38 -0.45,0.01 -0.16,-1.05 0.13,-0.89 -0.24,-1.1 -1.05,-0.81 -0.55,-1.64 z", - "MM": "m 754.61,406.2 -1.64,1.28 -1.98,0.14 -1.28,3.19 -1.18,0.53 1.36,2.57 1.78,2.13 1.14,1.92 -1.02,2.52 -0.97,0.53 0.67,1.45 1.87,2.28 0.32,1.6 -0.05,1.33 1.1,2.6 -1.54,2.65 -1.36,2.91 -0.27,-2.1 0.86,-2.18 -0.94,-1.68 0.23,-3.11 -1.14,-1.48 -0.91,-3.44 -0.51,-3.66 -1.21,-2.4 -1.85,1.46 -3.19,2.06 -1.57,-0.26 -1.74,-0.67 0.97,-3.61 -0.58,-2.74 -2.2,-3.39 0.34,-1.07 -1.64,-0.38 -1.99,-2.42 -0.18,-2.41 0.98,0.46 0.05,-2.15 1.39,-0.72 -0.3,-1.28 0.63,-1.03 0.11,-3.15 2.19,0.7 1.25,-2.52 0.15,-1.5 1.54,-2.6 -0.08,-1.78 3.63,-2.16 2,0.57 -0.23,-1.93 0.99,-0.58 -0.22,-1.2 1.64,-0.24 0.94,1.86 1.22,0.75 0.09,2.4 -0.12,2.57 -2.65,2.58 -0.34,3.63 2.96,-0.5 0.67,2.8 1.78,0.59 -0.82,2.5 2.08,1.13 1.22,0.55 2.05,-0.87 0.09,1.24 -2.39,1.94 -0.6,1.1 z", - "MN": "m 721.54,305.13 2.96,-0.74 5.35,-3.74 4.27,-2.07 2.43,1.35 2.93,0.06 1.87,2.05 2.8,0.15 4.06,1.09 2.72,-3.03 -1.14,-2.6 2.91,-4.66 3.14,1.87 2.54,0.53 3.3,1.15 0.53,3.32 3.99,1.84 2.65,-0.81 3.54,-0.57 2.81,0.58 2.75,2.09 1.7,2.2 2.6,-0.04 3.53,0.69 2.58,-1.06 3.69,-0.71 4.11,-3.06 1.68,0.47 1.47,1.46 3.34,-0.36 -1.36,3.25 -1.98,4.22 0.72,1.71 1.59,-0.53 2.76,0.65 2.16,-1.54 2.25,1.33 2.54,2.89 -0.31,1.45 -2.21,-0.46 -4.07,0.54 -1.98,1.16 -2.05,2.66 -4.28,1.55 -2.79,2.1 -2.88,-0.8 -1.58,-0.36 -1.47,2.54 0.89,1.5 0.46,1.28 -1.97,1.3 -2.01,2.05 -3.27,1.33 -4.21,0.15 -4.53,1.31 -3.26,2.01 -1.24,-1.16 -3.39,0 -4.15,-2.29 -2.77,-0.57 -3.73,0.53 -5.79,-0.85 -3.09,0.09 -1.64,-2.27 -1.28,-3.57 -1.73,-0.43 -3.39,-2.45 -3.78,-0.55 -3.33,-0.68 -1.01,-1.73 1.08,-4.73 -1.93,-3.31 -4,-1.57 -2.36,-2.23 z", - "MR": "m 441.38,422.47 -1.85,-1.98 -1.7,-2.13 -1.86,-0.77 -1.34,-0.85 -1.57,0.03 -1.36,0.63 -1.4,-0.25 -0.96,0.93 -0.24,-1.56 0.78,-1.44 0.35,-2.75 -0.31,-2.91 -0.34,-1.47 0.28,-1.47 -0.72,-1.42 -1.48,-1.28 0.61,-1 10.98,0.02 -0.53,-4.35 0.69,-1.55 2.62,-0.27 -0.09,-7.86 9.21,0.17 0,-4.73 10.55,7.53 -4.29,0.05 1.35,13.06 1.35,12.68 0.49,0.36 -0.62,2.03 -11.25,0.04 -0.43,0.64 -1.08,-0.19 -1.58,0.57 -1.96,-0.8 -0.89,0.07 -0.47,1.7 z", - "MW": "m 572.4,495.94 -0.78,2.16 0.78,3.72 0.98,-0.04 1.01,0.92 1.17,2.08 0.24,3.72 -1.21,0.61 -0.86,2.01 -1.83,-1.79 -0.2,-2.04 0.59,-1.35 -0.17,-1.15 -1.1,-0.73 -0.78,0.26 -1.61,-1.38 -1.47,-0.74 0.85,-2.66 0.88,-0.99 -0.54,-2.36 0.56,-2.3 0.48,-0.77 -0.71,-2.4 -1.32,-1.26 2.74,0.52 0.57,0.78 0.95,1.32 z", - "MX": "m 203.14,388.97 -1.09,2.71 -0.49,2.21 -0.21,4.08 -0.27,1.47 0.49,1.64 0.87,1.47 0.56,2.31 1.86,2.21 0.65,1.69 1.1,1.45 2.98,0.79 1.16,1.22 2.46,-0.82 2.13,-0.29 2.1,-0.53 1.77,-0.51 1.78,-1.2 0.67,-1.73 0.23,-2.49 0.49,-0.87 1.89,-0.79 2.97,-0.69 2.48,0.1 1.7,-0.25 0.67,0.63 -0.09,1.44 -1.51,1.77 -0.66,1.81 0.51,0.51 -0.42,1.28 -0.7,2.29 -0.71,-0.75 -0.59,0.05 -0.53,0.04 -1,1.77 -0.51,-0.35 -0.34,0.14 0.02,0.43 -2.59,-0.03 -2.62,0 0,1.65 -1.27,0 1.04,0.98 1.04,0.67 0.31,0.63 0.46,0.18 -0.08,0.98 -3.59,0.01 -1.35,2.36 0.39,0.54 -0.32,0.68 -0.07,0.84 -3.17,-3.11 -1.45,-0.94 -2.29,-0.76 -1.56,0.21 -2.26,1.09 -1.41,0.29 -1.98,-0.76 -2.1,-0.56 -2.62,-1.33 -2.1,-0.41 -3.18,-1.35 -2.34,-1.4 -0.71,-0.78 -1.57,-0.17 -2.87,-0.93 -1.17,-1.34 -3.01,-1.67 -1.4,-1.87 -0.67,-1.45 0.93,-0.29 -0.29,-0.85 0.65,-0.77 0.01,-1.04 -0.94,-1.34 -0.26,-1.2 -0.94,-1.52 -2.47,-3.02 -2.82,-2.39 -1.36,-1.91 -2.41,-1.26 -0.51,-0.76 0.43,-1.92 -1.43,-0.73 -1.66,-1.52 -0.7,-2.19 -1.51,-0.26 -1.62,-1.66 -1.32,-1.55 -0.12,-1 -1.51,-2.42 -0.99,-2.48 0.04,-1.25 -2.03,-1.29 -0.93,0.14 -1.6,-0.9 -0.45,1.33 0.46,1.56 0.27,2.43 0.97,1.33 2.08,2.21 0.46,0.75 0.43,0.22 0.36,1.1 0.5,-0.05 0.57,2.04 0.85,0.8 0.59,1.11 1.77,1.6 0.93,2.89 0.83,1.35 0.78,1.44 0.15,1.62 1.35,0.1 1.13,1.39 1.02,1.36 -0.07,0.54 -1.18,1.11 -0.5,-0.01 -0.74,-1.85 -1.83,-1.73 -2.02,-1.48 -1.44,-0.78 0.09,-2.25 -0.42,-1.68 -1.34,-0.96 -1.93,-1.39 -0.37,0.4 -0.7,-0.82 -1.73,-0.75 -1.65,-1.83 0.2,-0.24 1.15,0.18 1.04,-1.18 0.11,-1.43 -2.16,-2.27 -1.64,-0.89 -1.04,-2.01 -1.04,-2.12 -1.3,-2.61 -1.14,-2.96 3.19,-0.25 3.56,-0.36 -0.26,0.64 4.23,1.61 6.4,2.31 5.58,-0.03 2.22,0 0,-1.35 4.86,0 1.02,1.17 1.44,1.03 1.66,1.43 0.93,1.69 0.7,1.76 1.45,0.97 2.33,0.96 1.76,-2.53 2.3,-0.06 1.97,1.28 1.41,2.18 0.97,1.86 1.65,1.8 0.62,2.19 0.79,1.47 2.18,0.96 1.99,0.68 z", - "MY": "m 758.9,446.32 0.22,1.44 1.85,-0.33 0.92,-1.15 0.64,0.26 1.66,1.69 1.18,1.87 0.16,1.88 -0.3,1.27 0.27,0.96 0.21,1.65 0.99,0.77 1.1,2.46 -0.05,0.94 -1.99,0.19 -2.65,-2.06 -3.32,-2.21 -0.33,-1.42 -1.62,-1.87 -0.39,-2.31 -1.01,-1.52 0.31,-2.04 -0.62,-1.19 0.49,-0.5 2.28,1.22 z m 49.19,4.83 -2.06,0.95 -2.43,-0.47 -3.22,0 -0.97,3.17 -1.08,0.97 -1.44,3.88 -2.29,0.59 -2.65,-0.78 -1.34,0.24 -1.63,1.41 -1.79,-0.2 -1.81,0.57 -1.92,-1.57 -0.47,-1.86 2.05,0.96 2.17,-0.52 0.56,-2.36 1.2,-0.53 3.36,-0.6 2.01,-2.21 1.38,-1.77 1.28,1.45 0.59,-0.95 1.34,0.09 0.16,-1.78 0.13,-1.38 2.16,-1.95 1.41,-2.19 1.13,-0.01 1.44,1.42 0.13,1.22 1.85,0.78 2.34,0.84 -0.2,1.1 -1.88,0.14 0.49,1.35 z", - "MZ": "m 572.4,495.94 2.11,-0.23 3.37,0.8 0.74,-0.36 1.95,-0.07 1,-0.85 1.68,0.04 3.06,-1.1 2.23,-1.64 0.46,1.27 -0.12,2.83 0.35,2.5 0.11,4.48 0.49,1.4 -0.83,2.07 -1.09,2.01 -1.79,1.8 -2.56,1.11 -3.16,1.41 -3.17,3.15 -1.08,0.54 -1.96,2.09 -1.15,0.69 -0.24,2.12 1.33,2.25 0.55,1.76 0.04,0.9 0.49,-0.15 -0.08,2.96 -0.45,1.41 0.66,0.52 -0.42,1.27 -1.17,1.09 -2.31,1.04 -3.37,1.66 -1.23,1.15 0.24,1.3 0.71,0.21 -0.24,1.64 -2.12,-0.02 -0.24,-1.38 -0.42,-1.39 -0.24,-1.11 0.5,-3.43 -0.73,-2.17 -1.34,-4.26 2.95,-3.41 0.74,-2.15 0.43,-0.27 0.31,-1.74 -0.45,-0.88 0.12,-2.2 0.55,-2.04 -0.01,-3.69 -1.45,-0.94 -1.34,-0.21 -0.6,-0.72 -1.3,-0.61 -2.34,0.06 -0.18,-1.08 -0.27,-2.05 8.51,-2.38 1.61,1.38 0.78,-0.26 1.1,0.73 0.17,1.15 -0.59,1.35 0.2,2.04 1.83,1.79 0.86,-2.01 1.21,-0.61 -0.24,-3.72 -1.17,-2.08 -1.01,-0.92 -0.98,0.04 -0.78,-3.72 z", - "NA": "m 521.33,546.79 -2.08,-2.39 -1.1,-2.3 -0.62,-3.03 -0.69,-2.25 -0.94,-4.72 -0.06,-3.63 -0.36,-1.64 -1.09,-1.24 -1.45,-2.47 -1.47,-3.57 -0.61,-1.85 -2.29,-2.87 -0.17,-2.25 1.35,-0.55 1.68,-0.5 1.82,0.09 1.67,1.32 0.42,-0.21 11.37,-0.12 1.94,1.4 6.79,0.41 5.15,-1.19 2.3,-0.67 1.82,0.17 1.1,0.66 0.03,0.24 -1.58,0.66 -0.86,0.01 -1.78,1.15 -1.08,-1.21 -4.32,1.03 -2.09,0.09 -0.08,10.57 -2.76,0.11 0,8.86 -0.01,11.52 -2.5,1.63 -1.5,0.23 -1.77,-0.6 -1.26,-0.23 -0.47,-1.36 -1.11,-0.87 z", - "NC": "m 940.33,523.73 2.3,1.86 1.45,1.38 -1.06,0.73 -1.55,-0.82 -2,-1.35 -1.81,-1.59 -1.85,-2.1 -0.39,-1.01 1.2,0.05 1.58,1.01 1.23,1.01 z", - "NE": "m 481.54,430.13 0.07,-1.95 -3.24,-0.65 -0.08,-1.38 -1.58,-1.87 -0.38,-1.31 0.22,-1.4 1.8,-0.11 1.04,-1.03 3.82,-0.25 2.49,-0.45 0.24,-1.79 1.54,-1.94 -0.01,-6.75 3.95,-1.32 8.12,-5.85 9.61,-5.75 4.43,1.31 1.58,1.66 1.98,-1.12 0.69,4.67 1.05,0.78 0.05,0.95 1.16,1.02 -0.61,1.28 -1.08,5.98 -0.14,3.79 -3.58,2.74 -1.21,3.8 1.17,1.06 -0.01,1.85 1.8,0.07 -0.28,1.34 -0.79,0.17 -0.09,0.9 -0.53,0.07 -1.89,-3.13 -0.66,-0.12 -2.19,1.6 -2.17,-0.83 -1.51,-0.17 -0.81,0.4 -1.65,-0.08 -1.65,1.22 -1.43,0.07 -3.39,-1.48 -1.33,0.7 -1.43,-0.05 -1.05,-1.08 -2.82,-1.07 -3.01,0.34 -0.73,0.62 -0.39,1.65 -0.81,1.15 -0.19,2.54 -2.14,-1.64 -1.01,0.01 z", - "NG": "m 499.34,450.33 -2.91,1 -1.07,-0.14 -1.08,0.62 -2.24,-0.06 -1.5,-1.75 -0.92,-2.02 -1.99,-1.84 -2.11,0.03 -2.47,0 0.16,-4.53 -0.07,-1.79 0.53,-1.77 0.86,-0.87 1.36,-1.75 -0.29,-0.76 0.55,-1.14 -0.63,-1.68 0.11,-0.95 0.19,-2.54 0.81,-1.15 0.39,-1.65 0.73,-0.62 3.01,-0.34 2.82,1.07 1.05,1.08 1.43,0.05 1.33,-0.7 3.39,1.48 1.43,-0.07 1.65,-1.22 1.65,0.08 0.81,-0.4 1.51,0.17 2.17,0.83 2.19,-1.6 0.66,0.12 1.89,3.13 0.53,-0.07 1.11,1.14 -0.31,0.51 -0.15,0.95 -2.36,2.2 -0.74,1.81 -0.4,1.47 -0.59,0.63 -0.57,1.97 -1.5,1.16 -0.43,1.42 -0.63,1.14 -0.26,1.16 -1.93,0.95 -1.57,-1.15 -1.07,0.04 -1.67,1.64 -0.81,0.03 -1.33,2.7 z", - "NI": "m 235.18,432.56 -0.97,-0.9 -1.31,-1.15 -0.62,-0.96 -1.18,-0.89 -1.41,-1.29 0.31,-0.44 0.47,0.43 0.21,-0.21 0.87,-0.11 0.35,-0.66 0.41,-0.02 -0.06,-1.41 0.66,-0.07 0.59,0.02 0.6,-0.76 0.83,0.58 0.29,-0.36 0.51,-0.34 0.98,-0.79 0.05,-0.6 0.27,0.03 0.36,-0.69 0.29,-0.08 0.48,0.44 0.56,0.13 0.62,-0.37 0.71,0 0.97,-0.38 0.39,-0.39 0.96,0.06 -0.24,0.28 -0.14,0.64 0.28,1.05 -0.64,0.98 -0.3,1.15 -0.1,1.27 0.16,0.73 0.07,1.29 -0.43,0.28 -0.26,1.22 0.19,0.75 -0.58,0.73 0.14,0.76 0.42,0.47 -0.67,0.6 -0.82,-0.19 -0.47,-0.58 -0.89,-0.24 -0.64,0.37 -1.85,-0.75 z", - "NL": "m 492.53,286.23 2.33,0.13 0.53,1.58 -0.7,4.23 -0.71,1.71 -1.69,0 0.48,4.69 -1.55,-1.04 -1.77,-1.95 -2.6,0.93 -2.05,-0.35 1.44,-1.24 2.46,-6.74 z", - "NO": "m 554.48,175.86 8.77,6.24 -3.61,2.23 3.07,5.11 -4.77,3.19 -2.26,0.72 1.19,-5.59 -3.6,-3.25 -4.35,2.78 -1.38,5.85 -2.67,3.44 -3.01,-1.87 -3.66,0.38 -3.12,-4.15 -1.68,2.09 -1.74,0.32 -0.41,5.08 -5.28,-1.22 -0.74,4.22 -2.69,-0.03 -1.85,5.24 -2.8,7.87 -4.35,9.5 1.02,2.23 -0.98,2.55 -2.78,-0.11 -1.82,5.91 0.17,8.04 1.79,2.98 -0.93,6.73 -2.33,3.81 -1.24,3.15 -1.88,-3.35 -5.54,6.27 -3.74,1.24 -3.88,-2.71 -1,-5.86 -0.89,-13.26 2.58,-3.88 7.4,-5.18 5.54,-6.59 5.13,-9.3 6.74,-13.76 4.7,-5.67 7.71,-9.89 6.15,-3.59 4.61,0.44 4.27,-6.99 5.11,0.38 5.03,-1.74 z", - "NP": "m 722.58,382.7 -0.22,1.35 0.37,1.99 -0.32,1.24 -2.33,0.05 -3.38,-0.73 -2.16,-0.29 -1.62,-1.59 -3.84,-0.41 -3.66,-1.77 -2.64,-1.55 -2.72,-1.2 1.09,-2.99 1.78,-1.46 1.16,-0.78 2.25,1 2.83,2.09 1.57,0.46 0.94,1.53 2.18,0.63 2.28,1.39 3.17,0.73 z", - "NZ": "m 960.63,588.88 0.64,1.53 1.99,-1.5 0.81,1.57 0,1.57 -1.04,1.74 -1.83,2.8 -1.43,1.54 1.03,1.86 -2.16,0.05 -2.4,1.46 -0.75,2.57 -1.59,4.03 -2.2,1.8 -1.4,1.16 -2.58,-0.09 -1.82,-1.34 -3.05,-0.28 -0.47,-1.48 1.51,-2.96 3.53,-3.87 1.81,-0.73 2.01,-1.47 2.4,-2.01 1.68,-1.98 1.25,-2.81 1.06,-0.95 0.42,-2.07 1.97,-1.7 0.61,1.56 z m 4.46,-17.02 2.03,3.67 0.06,-2.38 1.27,0.95 0.42,2.65 2.26,1.15 1.89,0.28 1.6,-1.35 1.42,0.41 -0.68,3.15 -0.85,2.09 -2.14,-0.07 -0.75,1.1 0.26,1.56 -0.41,0.68 -1.06,1.97 -1.39,2.53 -2.17,1.49 -0.48,-0.98 -1.17,-0.54 1.62,-3.04 -0.92,-2.01 -3.02,-1.45 0.08,-1.31 2.03,-1.25 0.47,-2.74 -0.13,-2.28 -1.14,-2.34 0.08,-0.61 -1.34,-1.43 -2.21,-3.04 -1.17,-2.41 1.04,-0.27 1.53,1.89 2.18,0.89 0.79,3.04 z", - "OM": "m 640.54,403.43 -1.05,2.04 -1.27,-0.16 -0.58,0.71 -0.45,1.5 0.34,1.98 -0.26,0.36 -1.29,-0.01 -1.75,1.1 -0.27,1.43 -0.64,0.62 -1.74,-0.02 -1.1,0.74 0.01,1.18 -1.36,0.81 -1.55,-0.27 -1.88,0.98 -1.3,0.16 -0.92,-2.04 -2.19,-4.84 8.41,-2.96 1.87,-5.97 -1.29,-2.14 0.07,-1.22 0.82,-1.26 0.01,-1.25 1.27,-0.6 -0.5,-0.42 0.23,-2 1.43,-0.01 1.26,2.09 1.57,1.11 2.06,0.4 1.66,0.55 1.27,1.74 0.76,1 1,0.38 -0.01,0.67 -1.02,1.79 -0.45,0.84 -1.17,0.99 z m -6.92,-14.54 -0.37,0.56 -0.53,-1.06 0.82,-1.06 0.35,0.27 -0.27,1.29 z", - "PA": "m 257.13,443.46 -0.93,-0.81 -0.6,-1.52 0.69,-0.75 -0.71,-0.19 -0.52,-0.93 -1.4,-0.78 -1.23,0.18 -0.56,0.98 -1.14,0.7 -0.61,0.1 -0.27,0.59 1.33,1.52 -0.76,0.36 -0.41,0.42 -1.3,0.14 -0.49,-1.68 -0.36,0.48 -0.93,-0.16 -0.56,-1.14 -1.15,-0.18 -0.73,-0.33 -1.2,0 -0.09,0.61 -0.32,-0.42 0.15,-0.56 0.23,-0.57 -0.11,-0.51 0.42,-0.34 -0.58,-0.42 -0.02,-1.13 1.09,-0.25 1,1.01 -0.06,0.6 1.12,0.12 0.27,-0.23 0.77,0.7 1.38,-0.21 1.19,-0.71 1.7,-0.57 0.96,-0.84 1.55,0.16 -0.11,0.28 1.57,0.1 1.25,0.49 0.91,0.84 1.06,0.78 -0.34,0.42 0.65,1.65 -0.53,0.84 -0.91,-0.2 z", - "PE": "m 280.38,513.39 -0.75,1.51 -1.44,0.74 -2.81,-1.68 -0.25,-1.2 -5.55,-2.92 -5.03,-3.17 -2.17,-1.78 -1.16,-2.37 0.46,-0.83 -2.37,-3.75 -2.77,-5.24 -2.64,-5.62 -1.15,-1.29 -0.88,-2.06 -2.18,-1.84 -2,-1.13 0.91,-1.25 -1.36,-2.67 0.87,-1.95 2.24,-1.77 0.33,1.17 -0.8,0.66 0.07,1.02 1.16,-0.22 1.14,0.3 1.17,1.41 1.59,-1.15 0.53,-1.88 1.72,-2.43 3.37,-1.1 3.06,-2.92 0.87,-1.81 -0.39,-2.11 0.75,-0.27 1.86,1.32 0.89,1.32 1.3,0.72 1.65,2.92 2.09,0.35 1.55,-0.74 1.01,0.48 1.68,-0.24 2.15,1.31 -1.81,2.84 0.84,0.06 1.4,1.49 -2.53,-0.13 -0.37,0.42 -2.3,0.53 -3.2,1.91 -0.21,1.3 -0.71,0.98 0.28,1.51 -1.7,0.81 0,1.19 -0.74,0.51 1.17,2.53 1.56,1.72 -0.59,1.21 1.86,0.16 1.06,1.51 2.47,0.07 2.3,-1.66 -0.19,4.3 1.28,0.33 1.58,-0.49 2.43,4.58 -0.61,0.96 -0.13,2.02 -0.06,2.44 -1.1,1.44 0.51,1.07 -0.65,0.97 1.21,2.44 z", - "PG": "m 912.57,482.67 -0.79,0.28 -1.21,-1.08 -1.23,-1.78 -0.6,-2.13 0.39,-0.27 0.3,0.83 0.85,0.63 1.36,1.77 1.32,0.95 -0.39,0.8 z m -10.93,-3.75 -1.47,0.23 -0.44,0.79 -1.53,0.68 -1.44,0.66 -1.49,0 -2.3,-0.81 -1.6,-0.78 0.23,-0.87 2.51,0.41 1.53,-0.22 0.42,-1.34 0.4,-0.07 0.27,1.49 1.6,-0.21 0.79,-0.96 1.57,-1 -0.31,-1.65 1.68,-0.05 0.57,0.46 -0.06,1.55 -0.93,1.69 z m -13.43,5.35 2.5,1.84 1.82,2.99 1.61,-0.09 -0.11,1.25 2.17,0.48 -0.84,0.53 2.98,1.19 -0.31,0.82 -1.86,0.2 -0.69,-0.73 -2.41,-0.32 -2.83,-0.43 -2.18,-1.8 -1.59,-1.55 -1.46,-2.46 -3.66,-1.23 -2.38,0.8 -1.71,0.93 0.36,2.08 -2.2,0.97 -1.57,-0.47 -2.9,-0.12 -0.05,-9.16 -0.05,-9.1 4.87,1.92 5.18,1.6 1.93,1.43 1.56,1.41 0.43,1.65 4.67,1.73 0.68,1.49 -2.58,0.3 0.62,1.85 z m 16.67,-8.09 -0.88,0.74 -0.53,-1.65 -0.65,-1.08 -1.27,-0.91 -1.6,-1.19 -2.02,-0.82 0.78,-0.67 1.51,0.78 0.95,0.61 1.18,0.67 1.12,1.17 1.07,0.89 0.34,1.46 z", - "PH": "m 829.84,440.11 0.29,1.87 0.17,1.58 -0.96,2.57 -1.02,-2.86 -1.31,1.42 0.9,2.06 -0.8,1.31 -3.3,-1.63 -0.79,-2.03 0.86,-1.33 -1.78,-1.33 -0.88,1.17 -1.32,-0.11 -2.08,1.57 -0.46,-0.82 1.1,-2.37 1.77,-0.79 1.53,-1.06 0.99,1.27 2.13,-0.77 0.46,-1.26 1.98,-0.08 -0.17,-2.18 2.27,1.34 0.24,1.42 0.18,1.04 z m -6.71,-5.26 -1.01,0.93 -0.88,1.79 -0.88,0.84 -1.73,-1.95 0.58,-0.76 0.7,-0.79 0.31,-1.76 1.55,-0.17 -0.45,1.91 2.08,-2.74 -0.27,2.7 z m -15.36,2.72 -3.73,2.67 1.38,-1.97 2.03,-1.74 1.68,-1.96 1.47,-2.82 0.5,2.31 -1.85,1.56 -1.48,1.95 z m 9.48,-7.3 1.68,0.88 1.78,0 -0.05,1.19 -1.3,1.2 -1.78,0.85 -0.1,-1.32 0.2,-1.45 -0.43,-1.35 z m 10.14,-0.77 0.79,3.18 -2.16,-0.75 0.06,0.95 0.69,1.75 -1.33,0.63 -0.12,-1.99 -0.84,-0.15 -0.44,-1.72 1.65,0.23 -0.04,-1.08 -1.71,-2.18 2.69,0.06 0.76,1.07 z m -11.14,-2.59 -0.74,2.47 -1.2,-1.42 -1.43,-2.18 2.4,0.1 0.97,1.03 z m -0.58,-15.74 1.73,0.84 0.86,-0.76 0.25,0.75 -0.46,1.22 0.96,2.09 -0.74,2.42 -1.65,0.96 -0.44,2.33 0.63,2.29 1.49,0.32 1.24,-0.34 3.5,1.59 -0.27,1.56 0.92,0.69 -0.29,1.32 -2.18,-1.4 -1.04,-1.5 -0.72,1.05 -1.79,-1.72 -2.55,0.42 -1.4,-0.63 0.14,-1.19 0.88,-0.73 -0.84,-0.67 -0.36,1.04 -1.38,-1.65 -0.42,-1.26 -0.1,-2.77 1.13,0.96 0.29,-4.55 0.91,-2.66 1.7,-0.02 z", - "PL": "m 517.61,297.22 -1.15,-2.86 0.22,-1.56 -0.7,-2.45 -1.01,-1.65 0.78,-1.25 -0.66,-2.39 1.92,-1.39 4.37,-2.22 3.54,-1.64 2.79,0.82 0.21,1.18 2.71,0.06 3.45,0.55 5.16,-0.08 1.44,0.52 0.67,1.46 0.12,2.09 0.78,1.78 -0.02,1.85 -1.68,0.94 0.87,2.12 0.05,2.01 1.41,3.89 -0.3,1.24 -1.39,0.51 -2.55,3.61 0.72,1.92 -0.61,-0.25 -2.66,-1.64 -2.02,0.6 -1.32,-0.44 -1.66,0.92 -1.41,-1.52 -1.16,0.58 -0.16,-0.26 -1.29,-2.13 -2.08,-0.26 -0.27,-1.37 -1.92,-0.49 -0.42,1.13 -1.52,-0.9 0.17,-1.21 -2.09,-0.39 z", - "PK": "m 686.24,352.01 2.07,1.63 0.83,2.66 4.61,1.39 -2.71,2.86 -3.12,0.51 -4.26,-0.83 -1.37,1.46 0.99,2.95 0.97,2.25 2.27,1.63 -2.39,1.91 0.04,2.33 -2.72,3.24 -1.76,3.26 -2.93,3.32 -3.26,-0.24 -3.09,3.3 1.84,1.4 0.32,2.39 1.57,1.56 0.56,2.64 -6.17,-0.01 -1.87,2.04 -2.05,-0.77 -0.84,-2.2 -2.17,-2.34 -5.16,0.58 -4.56,0.05 -3.95,0.44 1.06,-3.6 4.04,-1.61 -0.23,-1.44 -1.34,-0.51 -0.08,-2.77 -2.68,-1.4 -1.13,-1.93 -1.38,-1.68 4.69,1.64 2.81,-0.48 1.67,0.4 0.57,-0.7 1.95,0.28 3.65,-1.33 0.1,-2.75 1.56,-1.84 2.09,0 0.3,-0.91 2.15,-0.43 1.03,0.3 1.1,-0.92 -0.15,-1.98 1.19,-2 1.78,-0.85 -1.1,-2.22 2.67,0.11 0.77,-1.22 -0.12,-1.3 1.4,-1.43 -0.33,-1.7 -0.66,-1.46 1.64,-1.51 3.01,-0.73 3.22,-0.4 1.42,-0.65 z", - "PR": "m 289.66,411.14 1.43,0.26 0.51,0.58 -0.72,0.74 -2.11,-0.02 -1.64,0.1 -0.16,-1.25 0.39,-0.43 z", - "PS": "m 575.17,368.12 0,2.01 -0.42,0.96 -1.32,0.45 0.13,-0.86 0.71,-0.46 -0.7,-0.36 0.58,-2.2 z", - "PT": "m 450.17,334.81 1.02,-0.95 1.14,-0.55 0.71,1.84 1.65,-0.01 0.48,-0.47 1.64,0.13 0.78,1.88 -1.3,1 -0.03,2.88 -0.46,0.53 -0.11,1.72 -1.21,0.3 1.12,2.17 -0.77,2.35 0.96,1.06 -0.38,0.96 -1.04,1.32 0.23,1.16 -1.12,0.91 -1.48,-0.49 -1.45,0.38 0.43,-2.74 -0.26,-2.18 -1.26,-0.33 -0.67,-1.35 0.23,-2.36 1.11,-1.31 0.2,-1.47 0.59,-2.21 -0.07,-1.57 -0.56,-1.34 z", - "PY": "m 299.74,527.24 1.11,-3.59 0.07,-1.6 1.34,-2.62 4.89,-0.86 2.6,0.05 2.62,1.51 0.04,0.91 0.83,1.66 -0.18,4.06 2.96,0.58 1.14,-0.59 1.89,0.82 0.53,0.9 0.26,2.77 0.33,1.18 1.04,0.13 1.05,-0.49 1.01,0.55 0,1.68 -0.38,1.82 -0.55,1.78 -0.46,2.75 -2.54,2.4 -2.22,0.5 -3.15,-0.48 -2.82,-0.85 2.76,-4.73 -0.41,-1.37 -2.88,-1.2 -3.43,-2.26 -2.29,-0.46 z", - "QA": "m 617.97,392.41 -0.19,-2.24 0.76,-1.62 0.76,-0.34 0.85,0.97 0.05,1.81 -0.61,1.81 -0.78,0.22 z", - "RO": "m 539.18,311.11 1.21,-0.89 1.74,0.46 1.79,0.02 1.3,1.01 0.96,-0.64 2.07,-0.4 0.71,-0.98 1.18,0.01 0.85,0.4 0.87,1.24 0.89,1.75 1.62,2.44 0.09,1.79 -0.3,1.72 0.51,1.83 1.25,0.73 1.31,-0.64 1.28,0.68 0.06,1.03 -1.36,0.84 -0.85,-0.36 -0.78,4.71 -1.65,-0.41 -2.04,-1.41 -3.3,0.9 -1.39,0.99 -4.12,-0.2 -2.16,-0.61 -1.08,0.29 -0.81,-1.6 -0.51,-0.68 0.65,-0.66 -0.7,-0.49 -0.88,0.88 -1.63,-1.14 -0.22,-1.63 -1.71,-0.94 -0.31,-1.27 -1.52,-1.58 2.25,-0.76 1.69,-2.76 1.33,-2.8 z", - "RS": "m 534.03,321.15 1.71,0.94 0.22,1.63 1.63,1.14 0.88,-0.88 0.7,0.49 -0.65,0.66 0.51,0.68 -0.69,0.88 0.25,1.42 1.36,1.66 -1.07,1.19 -0.47,1.21 0.31,0.45 -0.47,0.54 -1.29,0.06 -0.96,0.22 -0.09,-0.28 0.33,-0.45 0.32,-0.93 -0.4,0.02 -0.55,-0.7 -0.46,-0.18 -0.36,-0.61 -0.53,-0.24 -0.4,-0.54 -0.5,0.22 -0.39,1.26 -0.67,0.28 0.23,-0.33 -1.07,-0.79 -0.92,-0.41 -0.41,-0.54 -0.74,-0.66 0.66,-0.17 0.41,-1.82 -1.35,-1.5 0.7,-1.72 -1.02,0.01 1.08,-1.49 -0.89,-1.14 -0.68,-1.55 2.15,-1.05 1.75,0.17 1.52,1.58 z", - "RU": "m 1008.52,216 -2.78,2.97 -4.6,0.7 -0.07,6.46 -1.12,1.35 -2.63,-0.19 -2.14,-2.26 -3.73,-1.92 -0.63,-2.89 -2.85,-1.1 -3.19,0.87 -1.52,-2.37 0.61,-2.55 -3.36,1.64 1.26,3.19 -1.59,2.83 -0.02,0.04 -3.6,2.89 -3.63,-0.48 2.53,3.44 1.67,5.2 1.29,1.67 0.33,2.53 -0.72,1.6 -5.23,-1.32 -7.84,4.51 -2.49,0.69 -4.29,4.1 -4.07,3.5 -1.03,2.55 -4.01,-3.9 -7.31,4.42 -1.28,-2.08 -2.7,2.39 -3.75,-0.76 -0.9,3.63 -3.36,5.22 0.1,2.14 3.19,1.17 -0.38,7.46 -2.6,0.19 -1.2,4.15 1.17,2.1 -4.9,2.47 -0.97,5.4 -4.18,1.14 -0.84,4.66 -4.04,4.18 -1.04,-3.08 -1.2,-6.69 -1.56,-10.65 1.35,-6.95 2.37,-3.07 0.15,-2.44 4.36,-1.18 5.01,-6.78 4.83,-5.73 5.04,-4.57 2.25,-8.37 -3.41,0.51 -1.68,4.92 -7.11,6.36 -2.3,-7.14 -7.24,2 -7.02,9.56 2.32,3.38 -6.26,1.42 -4.33,0.56 0.2,-3.95 -4.36,-0.84 -3.47,2.7 -8.57,-0.94 -9.22,1.62 -9.08,10.33 -10.75,11.78 4.42,0.61 1.38,3 2.72,1.05 1.79,-2.38 3.08,0.31 4.05,5.19 0.09,3.92 -2.19,4.51 -0.24,5.27 -1.26,6.85 -4.23,6.01 -0.94,2.82 -3.81,4.66 -3.78,4.53 -1.81,2.28 -3.74,2.25 -1.77,0.05 -1.76,-1.86 -3.76,2.79 -0.44,1.26 -0.39,-0.66 -0.02,-1.93 1.43,-0.1 0.4,-4.55 -0.74,-3.36 2.41,-1.4 3.4,0.7 1.89,-3.89 0.96,-4.46 1.09,-1.51 1.47,-3.76 -4.63,1.24 -2.43,1.65 -4.26,0 -1.13,-3.95 -3.32,-3.03 -4.88,-1.38 -1.04,-4.28 -0.98,-2.73 -1.05,-1.94 -1.73,-4.61 -2.46,-1.71 -4.2,-1.39 -3.72,0.13 -3.48,0.84 -2.32,2.31 1.54,1.1 0.04,2.52 -1.56,1.45 -2.53,4.72 0.03,1.93 -3.95,2.74 -3.37,-1.63 -3.35,0.36 -1.47,-1.46 -1.68,-0.47 -4.11,3.06 -3.69,0.71 -2.58,1.06 -3.53,-0.7 -2.6,0.04 -1.7,-2.2 -2.75,-2.09 -2.81,-0.58 -3.55,0.57 -2.65,0.81 -3.98,-1.84 -0.53,-3.32 -3.3,-1.15 -2.54,-0.53 -3.14,-1.87 -2.9,4.66 1.14,2.6 -2.73,3.03 -4.05,-1.09 -2.8,-0.16 -1.87,-2.04 -2.92,-0.06 -2.44,-1.35 -4.26,2.07 -5.35,3.74 -2.96,0.74 -1.1,0.35 -1.49,-2.63 -3.61,0.58 -1.19,-1.84 -1.96,-0.85 -1.35,-2.55 -1.55,-0.8 -4.03,1.14 -3.86,-2.57 -1.49,2.33 -6.27,-11.58 -3.58,-3.66 1.03,-1.5 -7.03,4.49 -2.69,0.27 0.23,-2.58 -3.6,-1.63 -2.93,1.17 -0.88,-5.01 -5.04,-1.06 -2.52,2.03 -7.02,1.79 -1.37,1.19 -10.49,1.66 -1.29,1.62 2.02,3.21 -2.69,1.2 0.53,1.25 -2.69,2.22 4.54,3.1 -0.7,2.11 -3.94,-0.19 -0.81,1.31 -3.59,-2.29 -4.45,0.09 -2.98,1.87 -3.32,-1.79 -6.18,-3.1 -4.38,0.12 -5.79,4.85 -0.35,3.19 -2.88,-2.53 -2.24,4.77 0.82,0.87 -1.62,3.21 2.38,2.84 2.08,-0.12 1.79,2.76 -0.28,2.1 1.42,0.66 -1.28,2.39 -2.72,0.66 -2.79,4.09 2.55,3.7 -0.28,2.59 3.06,4.46 -1.67,1.51 -0.48,0.95 -1.24,-0.25 -1.93,-2.27 -0.79,-0.13 -1.76,-0.87 -0.86,-1.55 -2.62,-0.79 -1.7,0.6 -0.49,-0.71 -3.82,-1.83 -4.13,-0.62 -2.37,-0.66 -0.34,0.45 -3.57,-3.27 -3.2,-1.48 -2.42,-2.32 2.04,-0.64 2.33,-3.35 -1.57,-1.6 4.13,-1.67 -0.07,-0.9 -2.52,0.66 0.09,-1.83 1.45,-1.16 2.71,-0.31 0.44,-1.4 -0.62,-2.33 1.14,-2.23 -0.03,-1.26 -4.13,-1.41 -1.64,0.05 -1.73,-2.04 -2.15,0.69 -3.56,-1.54 0.06,-0.87 -1,-1.93 -2.24,-0.22 -0.23,-1.39 0.7,-0.91 -1.79,-2.58 -2.91,0.44 -0.85,-0.23 -0.71,1.04 -1.05,-0.18 -0.69,-2.94 -0.66,-1.54 0.54,-0.44 2.26,0.16 1.09,-1.02 -0.81,-1.25 -1.89,-0.83 0.17,-0.86 -1.14,-0.87 -1.76,-3.15 0.6,-1.31 -0.27,-2.31 -2.74,-1.18 -1.47,0.59 -0.4,-1.24 -2.95,-1.26 -0.9,-2.99 -0.24,-2.49 -1.35,-1.19 1.2,-1.66 -0.83,-4.96 2,-3.13 -0.42,-0.96 3.19,-3.07 -2.94,-2.68 6,-7.41 2.6,-3.45 1.05,-3.1 -4.15,-4.26 1.15,-4.15 -2.52,-4.85 1.89,-5.76 -3.26,-7.96 2.59,-5.48 -4.29,-4.99 0.41,-5.4 2.26,-0.72 4.77,-3.19 2.89,-2.81 4.61,4.86 7.68,1.88 10.59,8.65 2.15,3.51 0.19,4.8 -3.11,3.69 -4.58,1.85 -12.52,-5.31 -2.06,0.9 4.57,5.1 0.18,3.15 0.18,6.75 3.61,1.97 2.19,1.66 0.36,-3.11 -1.69,-2.8 1.78,-2.51 6.78,4.1 2.36,-1.59 -1.89,-4.88 6.53,-6.74 2.59,0.4 2.62,2.43 1.63,-4.81 -2.34,-4.28 1.37,-4.41 -2.06,-4.69 7.84,2.44 1.6,4.18 -3.55,0.91 0.02,4.04 2.21,2.44 4.33,-1.54 0.69,-4.61 5.86,-3.52 9.79,-6.54 2.11,0.38 -2.76,4.64 3.48,0.78 2.01,-2.58 5.25,-0.21 4.16,-3.19 3.2,4.62 3.19,-5.09 -2.94,-4.58 1.46,-2.66 8.28,2.44 3.88,2.49 10.16,8.8 1.88,-3.97 -2.85,-4.11 -0.08,-1.68 -3.38,-0.78 0.92,-3.83 -1.5,-6.49 -0.08,-2.74 5.17,-7.99 1.84,-8.42 2.08,-1.88 7.42,2.51 0.58,5.18 -2.66,7.28 1.74,2.78 0.9,5.94 -0.64,11.07 3.09,4.73 -1.2,5.01 -5.49,10.2 3.21,1.02 1.12,-2.51 3.08,-1.82 0.74,-3.55 2.43,-3.49 -1.63,-4.26 1.31,-5.08 -3.07,-0.64 -0.67,-4.42 2.24,-8.28 -3.64,-7.03 5.02,-6.04 -0.65,-6.62 1.4,-0.22 1.47,5.19 -1.11,8.67 3,1.59 -1.28,-6.37 4.69,-3.58 5.82,-0.49 5.18,5.18 -2.49,-7.62 -0.28,-10.28 4.88,-2.02 6.74,0.44 6.08,-1.32 -2.28,-5.38 3.25,-7.02 3.22,-0.3 5.45,-5.51 7.4,-1.51 0.94,-3.15 7.36,-1.08 2.29,2.61 6.29,-6.24 5.15,0.2 0.77,-5.24 2.68,-5.33 6.62,-5.31 4.81,4.21 -3.82,3.13 6.35,1.92 0.76,6.03 2.56,-2.94 8.2,0.16 6.32,5.84 2.25,4.35 -0.7,5.85 -3.1,3.24 -7.37,5.92 -2.11,3.08 3.48,1.43 4.15,2.55 2.52,-1.91 1.43,6.39 1.23,-2.56 4.48,-1.57 9,1.65 0.68,4.58 11.72,1.43 0.16,-7.47 5.95,1.74 4.48,-0.05 4.53,5.14 1.29,6.04 -1.66,3.84 3.52,6.98 4.41,3.49 2.71,-9.18 4.5,4 4.78,-2.38 5.43,2.72 2.07,-2.47 4.59,1.24 -2.02,-8.4 3.7,-4.07 25.32,6.06 2.39,5.35 7.34,6.65 11.32,-1.62 5.58,1.41 2.33,3.5 -0.34,6.02 3.45,2.29 3.75,-1.64 4.97,-0.21 5.29,1.57 5.31,-0.89 4.88,6.99 3.47,-2.48 -2.27,-5.07 1.25,-3.62 8.95,2.29 5.83,-0.49 8.06,3.84 3.92,3.44 6.87,5.86 7.35,7.34 -0.24,4.44 1.89,1.74 -0.65,-5.15 7.61,1.07 5.55,6.53 z m -127.43,90.5 -2.82,-7.68 -1.16,-4.51 0.07,-4.5 -0.97,-4.5 -0.73,-3.15 -1.25,0.67 1.11,2.21 -2.59,2.17 -0.25,6.3 1.64,4.41 -0.12,5.85 -0.65,3.24 0.32,4.54 -0.31,4.01 0.52,3.4 1.84,-3.13 2.13,2.44 0.08,-2.84 -2.73,-4.23 1.72,-6.11 4.15,1.41 z m -343.02,-27.48 -2.94,-0.86 -3.87,1.58 -0.64,2.13 3.45,0.55 5.16,-0.07 -0.22,-1.23 0.3,-1.33 -1.24,-0.77 z M 980.2,178.9 l 3.66,-0.52 2.89,-2.06 0.24,-1.19 -4.06,-2.51 -2.38,-0.02 -0.36,0.37 -3.57,3.64 0.5,2.73 3.08,-0.44 z m -109.88,-27.09 -2.66,3.92 0.49,0.52 5.75,1.08 4.25,-0.07 -0.34,-2.57 -3.98,-3.81 -3.51,0.93 z m 24.57,-9.53 3.24,-4.25 -7.04,-2.88 -5.23,-1.68 -0.67,3.59 5.21,4.27 4.49,0.95 z m -25.13,-1.69 10.33,0.3 2.21,-8.14 -10.13,-6.07 -7.4,-0.51 -3.7,2.18 -1.51,7.75 5.55,7.01 4.65,-2.52 z m -247.12,25.94 -2.87,1.96 0.41,4.83 5.08,2.35 0.74,3.82 9.16,1.1 1.66,-0.74 -5.36,-7.11 -0.57,-7.52 4.39,-9.14 4.18,-9.82 8.71,-10.17 8.56,-5.34 9.93,-5.74 1.88,-3.71 -1.95,-4.83 -5.46,1.6 -4.8,4.49 -9.33,2.22 -9.26,7.41 -6.27,5.85 0.76,4.87 -6.71,9.03 2.58,1.22 -5.56,8.27 0.1,5.1 z m 147.48,-67.94 0.83,-5.72 -7.11,-8.34 -2.11,-0.98 -2.3,1.7 -5.12,18.6 15.81,-5.26 z m -164.23,-29.31 3.04,3.88 3.28,-2.69 0.39,-2.72 2.52,-1.27 3.76,-2.23 1.08,-2.62 -4.16,-3.85 -2.64,2.9 -1.61,4.12 -0.57,-4.65 -4.26,0.21 -5.47,3.14 6.24,0.52 -1.6,5.26 z m 131.25,13.04 4.65,5.73 7.81,4.2 6.12,-1.8 0.69,-13.62 -6.46,-16.04 -5.45,-9.02 -6.07,4.11 -7.28,11.83 3.83,3.27 2.16,11.34 z", - "RW": "m 560.79,466.8 1.12,1.57 -0.17,1.64 -0.8,0.35 -1.49,-0.18 -0.86,1.59 -1.71,-0.22 0.26,-1.53 0.39,-0.21 0.1,-1.66 0.81,-0.78 0.68,0.29 z", - "SA": "m 595.45,417.47 -0.36,-1.24 -0.85,-0.88 -0.22,-1.17 -1.44,-1.04 -1.5,-2.46 -0.79,-2.41 -1.94,-2.04 -1.25,-0.48 -1.86,-2.85 -0.32,-2.08 0.12,-1.79 -1.61,-3.36 -1.31,-1.19 -1.52,-0.63 -0.92,-1.76 0.15,-0.69 -0.78,-1.6 -0.82,-0.69 -1.09,-2.32 -1.71,-2.52 -1.43,-2.16 -1.39,0.01 0.43,-1.74 0.13,-1.11 0.34,-1.28 3.12,0.51 1.22,-0.98 0.67,-1.16 2.14,-0.44 0.46,-1.09 0.93,-0.54 -2.8,-3.26 5.62,-1.65 0.53,-0.49 3.38,0.89 4.18,2.29 7.9,6.49 5.21,0.26 2.5,0.31 0.7,1.51 1.98,-0.08 1.1,2.73 1.38,0.71 0.48,1.11 1.91,1.31 0.17,1.29 -0.28,1.03 0.36,1.04 0.8,0.87 0.38,1.01 0.42,0.75 0.84,0.61 0.78,-0.22 0.53,1.17 0.11,0.71 1.08,3.08 8.42,1.52 0.57,-0.64 1.28,2.14 -1.87,5.97 -8.41,2.96 -8.08,1.13 -2.62,1.32 -2.01,3.07 -1.31,0.48 -0.7,-0.97 -1.07,0.15 -2.71,-0.29 -0.52,-0.3 -3.23,0.07 -0.76,0.27 -1.15,-0.76 -0.75,1.43 0.29,1.23 z", - "SB": "m 930.06,493 0.78,0.97 -1.96,-0.02 -1.07,-1.74 1.67,0.69 0.58,0.1 z m -3.55,-1.73 -1.09,0.06 -1.72,-0.29 -0.59,-0.44 0.18,-1.12 1.85,0.44 0.91,0.59 0.46,0.76 z m 2.32,-0.77 -0.42,0.52 -2.08,-2.45 -0.58,-1.68 h 0.95 l 1.01,2.25 1.12,1.36 z m -5.06,-3.56 0.12,0.57 -2.2,-1.19 -1.54,-1.01 -1.05,-0.94 0.42,-0.29 1.29,0.67 2.3,1.29 0.66,0.9 z m -6.55,-2.78 -0.56,0.16 -1.23,-0.64 -1.15,-1.15 0.14,-0.47 1.67,1.18 1.13,0.92 z", - "SD": "m 570.73,437.15 -0.39,-0.05 0.05,-1.41 -0.34,-0.97 -1.44,-1.12 -0.34,-2.05 0.34,-2.1 -1.3,-0.19 -0.19,0.63 -1.69,0.15 0.68,0.83 0.24,1.71 -1.54,1.56 -1.4,2.04 -1.44,0.29 -2.36,-1.65 -1.06,0.58 -0.29,0.83 -1.44,0.53 -0.1,0.58 -2.79,0 -0.39,-0.58 -2.02,-0.1 -1.01,0.49 -0.77,-0.25 -1.44,-1.65 -0.48,-0.77 -2.03,0.39 -0.77,1.31 -0.72,2.52 -0.96,0.53 -0.86,0.31 -0.23,-0.14 -0.97,-0.81 -0.18,-0.87 0.45,-1.18 0,-1.15 -1.62,-1.77 -0.32,-1.22 0.03,-0.69 -1.03,-0.83 -0.03,-1.66 -0.58,-1.1 -0.99,0.17 0.28,-1.05 0.73,-1.2 -0.32,-1.18 0.92,-0.88 -0.58,-0.67 0.74,-1.78 1.28,-2.13 2.42,0.2 -0.14,-11.61 0.04,-1.24 3.22,-0.01 0,-5.96 11.27,0 10.88,0 11.12,0 0.9,2.94 -0.61,0.54 0.41,3.06 1.03,3.52 1.06,0.73 1.54,1.08 -1.42,1.67 -2.07,0.48 -0.88,0.9 -0.27,1.93 -1.21,4.25 0.3,1.15 -0.45,2.47 -1.14,2.81 -1.69,1.42 -1.2,2.17 -0.29,1.16 -1.32,0.8 -0.83,2.96 z", - "SE": "m 537.7,217.74 -2.72,4.69 0.44,4.02 -4.46,5.13 -5.41,5.34 -2.05,8.41 2,4.07 2.68,3.14 -2.57,6.23 -2.92,1.26 -1.07,8.84 -1.59,4.76 -3.4,-0.49 -1.59,3.95 -3.25,0.23 -0.89,-4.71 -2.35,-5.81 -2.13,-7.5 1.24,-3.15 2.33,-3.81 0.93,-6.73 -1.79,-2.98 -0.18,-8.04 1.83,-5.91 2.78,0.11 0.97,-2.55 -1.02,-2.23 4.35,-9.5 2.81,-7.87 1.85,-5.24 2.69,0.02 0.75,-4.21 5.28,1.22 0.41,-5.08 1.74,-0.33 3.74,3.81 4.37,5.15 0.08,11.12 0.94,2.7 z", - "SI": "m 514.21,316.76 2.32,0.31 1.42,-0.92 2.45,-0.1 0.53,-0.69 0.47,0.05 0.55,1.37 -2.23,1.08 -0.28,1.62 -0.97,0.41 0.01,1.12 -1.1,-0.08 -0.95,-0.65 -0.52,0.68 -1.95,-0.14 0.62,-0.36 -0.67,-1.71 z", - "SJ": "m 544.83,104.74 -6.26,5.36 -4.95,-3.02 1.94,-3.42 -1.69,-4.34 5.81,-2.78 1.11,5.18 4.04,3.02 z m -18.15,-26.68 9.23,11.29 -7.06,5.66 -1.56,10.09 -2.46,2.49 -1.33,10.51 -3.38,0.48 -6.03,-7.64 2.54,-4.62 -4.2,-3.86 -5.46,-11.82 -2.18,-11.79 7.64,-5.69 1.54,5.56 3.99,-0.22 1.06,-5.43 4.12,-0.56 3.54,5.55 z m 20.17,-11.46 5.5,5.8 -4.16,8.52 -8.13,1.81 -8.27,-2.56 -0.5,-4.32 -4.02,-0.28 -3.07,-7.48 8.66,-4.72 4.07,4.08 2.84,-5.09 7.08,4.24 z", - "SK": "m 528.36,304.27 0.16,0.26 1.16,-0.58 1.41,1.52 1.66,-0.92 1.32,0.44 2.02,-0.6 2.66,1.64 -0.77,1.11 -0.55,1.71 -0.6,0.43 -3,-1.28 -0.92,0.25 -0.66,1 -1.32,0.52 -0.3,-0.27 -1.36,0.65 -1.12,0.13 -0.22,0.84 -2.36,0.51 -1.03,-0.46 -1.43,-1.07 -0.28,-1.45 0.23,-0.54 0.39,-0.93 1.25,0.07 0.95,-0.44 0.08,-0.39 0.54,-0.21 0.18,-0.97 0.64,-0.19 0.44,-0.77 z", - "SL": "m 443.43,444.69 -0.76,-0.21 -2.01,-1.13 -1.46,-1.5 -0.49,-1.03 -0.35,-2.08 1.5,-1.24 0.32,-0.79 0.48,-0.61 0.78,-0.06 0.65,-0.53 2.24,0 0.78,1.01 0.61,1.19 -0.09,0.82 0.45,0.74 -0.03,1.03 0.77,-0.16 -1.31,1.31 -1.26,1.53 -0.15,0.81 z", - "SN": "m 428.64,425.41 -1.16,-2.24 -1.4,-1.02 1.24,-0.55 1.36,-2.03 0.66,-1.49 0.96,-0.93 1.4,0.25 1.36,-0.63 1.57,-0.03 1.34,0.85 1.86,0.77 1.7,2.13 1.85,1.98 0.13,1.79 0.55,1.64 1.05,0.81 0.24,1.1 -0.13,0.89 -0.41,0.16 -1.52,-0.22 -0.21,0.31 -0.62,0.07 -2.02,-0.7 -1.35,-0.03 -5.18,-0.12 -0.75,0.32 -0.93,-0.09 -1.49,0.47 -0.46,-2.19 2.55,0.06 0.68,-0.4 0.5,-0.03 1.04,-0.66 1.2,0.61 1.22,0.05 1.21,-0.65 -0.56,-0.82 -0.93,0.48 -0.87,-0.01 -1.1,-0.71 -0.89,0.05 -0.64,0.67 z", - "SO": "m 618.88,430.68 -0.07,-0.79 -1.06,0.01 -1.33,0.98 -1.49,0.28 -1.29,0.42 -0.89,0.06 -1.6,0.1 -1,0.52 -1.39,0.19 -2.47,0.88 -3.05,0.33 -2.65,0.73 -1.39,-0.01 -1.26,-1.19 -0.55,-1.17 -0.91,-0.53 -1.04,1.52 -0.61,1.01 1.04,1.56 1.03,1.36 1.07,1.01 9.17,3.34 2.36,-0.02 -7.93,8.42 -3.65,0.12 -2.5,1.97 -1.79,0.05 -0.77,0.88 -2.45,3.17 0.03,10.15 1.66,2.29 0.63,-0.66 0.65,-1.46 3.07,-3.38 2.61,-2.12 4.2,-2.76 2.8,-2.26 3.3,-3.81 2.39,-3.13 2.41,-4.1 1.73,-3.59 1.35,-3.15 0.79,-3.05 0.6,-1.02 -0.01,-1.5 z", - "SR": "m 315.27,446.97 3.36,0.56 0.3,-0.51 2.27,-0.2 3.01,0.76 -1.46,2.4 0.22,1.91 1.11,1.66 -0.49,1.2 -0.25,1.27 -0.72,1.17 -1.6,-0.59 -1.33,0.29 -1.13,-0.25 -0.28,0.81 0.47,0.55 -0.25,0.57 -1.53,-0.23 -1.71,-2.42 -0.37,-1.57 -0.89,-0.01 -1.25,-2.02 0.52,-1.45 -0.15,-0.65 1.7,-0.73 z", - "SS": "m 570.73,437.15 0.03,2.2 -0.42,0.86 -1.48,0.07 -0.96,1.61 1.72,0.2 1.42,1.37 0.5,1.12 1.28,0.65 1.65,3.05 -1.9,1.84 -1.72,1.67 -1.73,1.28 -1.97,0 -2.26,0.65 -1.78,-0.63 -1.15,0.77 -2.47,-1.86 -0.67,-1.19 -1.56,0.59 -1.3,-0.19 -0.75,0.47 -1.26,-0.33 -1.69,-2.31 -0.45,-0.89 -2.1,-1.11 -0.71,-1.68 -1.17,-1.21 -1.88,-1.46 -0.03,-0.92 -1.53,-1.13 -1.91,-1.1 0.86,-0.31 0.96,-0.53 0.72,-2.52 0.77,-1.31 2.03,-0.39 0.48,0.77 1.44,1.65 0.77,0.25 1.01,-0.49 2.02,0.1 0.39,0.58 2.79,0 0.1,-0.58 1.44,-0.53 0.29,-0.83 1.06,-0.58 2.36,1.65 1.44,-0.29 1.4,-2.04 1.54,-1.56 -0.24,-1.71 -0.68,-0.83 1.69,-0.15 0.19,-0.63 1.3,0.19 -0.34,2.1 0.34,2.05 1.44,1.12 0.34,0.97 -0.05,1.41 z", - "SV": "m 229.34,426.01 -0.31,0.67 -1.62,-0.04 -1.01,-0.27 -1.16,-0.57 -1.56,-0.18 -0.79,-0.62 0.09,-0.42 0.96,-0.72 0.52,-0.32 -0.15,-0.34 0.66,-0.17 0.83,0.24 0.6,0.57 0.85,0.46 0.1,0.39 1.23,-0.34 0.58,0.2 0.38,0.31 z", - "SY": "m 584.27,364.85 -5.49,3.54 -3.12,-1.32 -0.06,-0.02 0.38,-0.5 -0.04,-1.37 0.69,-1.83 1.53,-1.27 -0.46,-1.32 -1.26,-0.18 -0.26,-2.61 0.68,-1.41 0.75,-0.75 0.75,-0.76 0.16,-1.94 0.91,0.68 3.09,-0.97 1.49,0.65 2.31,-0.01 3.22,-1.31 1.52,0.06 3.19,-0.54 -1.44,2.18 -1.54,0.86 0.27,2.52 -1.06,4.12 z", - "SZ": "m 565.43,540.99 -0.57,1.39 -1.64,0.33 -1.68,-1.69 -0.02,-1.08 0.76,-1.17 0.27,-0.9 0.81,-0.22 1.41,0.57 0.42,1.39 z", - "TD": "m 516.15,427.51 0.28,-1.34 -1.8,-0.07 0.01,-1.85 -1.17,-1.06 1.21,-3.8 3.58,-2.74 0.14,-3.79 1.08,-5.98 0.61,-1.28 -1.16,-1.02 -0.05,-0.95 -1.05,-0.78 -0.69,-4.67 2.83,-1.66 11.19,5.77 11.18,5.7 0.14,11.61 -2.42,-0.2 -1.28,2.13 -0.74,1.78 0.58,0.67 -0.92,0.88 0.32,1.18 -0.73,1.2 -0.28,1.05 0.99,-0.17 0.58,1.1 0.03,1.66 1.03,0.83 -0.03,0.69 -1.77,0.49 -1.43,1.14 -2.02,3.09 -2.64,1.31 -2.71,-0.18 -0.79,0.26 0.28,0.99 -1.47,0.99 -1.19,1.1 -3.53,1.07 -0.7,-0.63 -0.46,-0.06 -0.52,0.72 -2.32,0.22 0.44,-0.77 -0.88,-1.93 -0.4,-1.17 -1.22,-0.48 -1.65,-1.65 0.61,-1.33 1.28,0.28 0.79,-0.2 1.56,0.03 -1.52,-2.57 0.1,-1.89 -0.19,-1.89 z", - "TF": "m 668.79,619.28 1.8,1.33 2.65,0.54 0.1,0.81 -0.78,1.96 -4.31,0.28 -0.07,-2.29 0.42,-1.76 z", - "TG": "m 480.73,446.5 -2.25,0.59 -0.63,-0.98 -0.75,-1.78 -0.22,-1.4 0.62,-2.53 -0.7,-1.03 -0.27,-2.22 0,-2.05 -1.17,-1.46 0.21,-0.89 2.46,0.06 -0.36,1.5 0.85,0.83 0.98,0.99 0.1,1.39 0.57,0.58 -0.13,6.46 z", - "TH": "m 763.14,429.43 -2.52,-1.31 -2.4,0.06 0.41,-2.25 -2.47,0.02 -0.22,3.14 -1.51,4.15 -0.91,2.5 0.19,2.05 1.82,0.09 1.14,2.57 0.51,2.43 1.56,1.61 1.7,0.33 1.45,1.45 -0.91,1.15 -1.86,0.34 -0.22,-1.44 -2.28,-1.23 -0.49,0.5 -1.11,-1.07 -0.48,-1.39 -1.49,-1.59 -1.36,-1.33 -0.46,1.65 -0.53,-1.56 0.31,-1.76 0.82,-2.71 1.36,-2.91 1.54,-2.65 -1.1,-2.6 0.05,-1.33 -0.32,-1.6 -1.87,-2.28 -0.67,-1.45 0.97,-0.53 1.02,-2.52 -1.14,-1.92 -1.78,-2.13 -1.36,-2.57 1.18,-0.53 1.28,-3.19 1.98,-0.14 1.64,-1.28 1.6,-0.69 1.22,0.92 0.16,1.78 1.89,0.13 -0.69,3.11 0.07,2.62 2.95,-1.74 0.84,0.51 1.65,-0.08 0.56,-1.02 2.12,0.2 2.13,2.38 0.18,2.87 2.27,2.53 -0.13,2.44 -0.91,1.3 -2.63,-0.41 -3.62,0.55 -1.8,2.38 z", - "TJ": "m 674.62,340.87 -1.03,1.13 -3.05,-0.61 -0.27,2.1 3.04,-0.28 3.47,1.17 5.3,-0.55 0.71,3.33 0.92,-0.36 1.7,0.81 -0.09,1.38 0.42,2.01 -2.9,0 -1.93,-0.26 -1.74,1.57 -1.25,0.34 -0.98,0.74 -1.11,-1.15 0.27,-2.95 -0.85,-0.17 0.3,-1.09 -1.51,-0.8 -1.21,1.23 -0.3,1.43 -0.43,0.52 -1.68,-0.07 -0.9,1.6 -0.95,-0.67 -2.03,1.12 -0.85,-0.42 1.57,-3.57 -0.6,-2.66 -2.06,-0.86 0.73,-1.59 2.34,0.17 1.33,-2.01 0.89,-2.35 3.75,-0.86 -0.58,1.71 0.4,1.02 z", - "TL": "m 825.9,488.5 0.33,-0.66 2.41,-0.63 1.96,-0.1 0.87,-0.35 1.06,0.35 -1.03,0.76 -2.92,1.23 -2.35,0.82 -0.05,-0.86 z", - "TM": "m 647.13,357.15 -0.25,-2.91 -2.09,-0.12 -3.2,-3.09 -2.24,-0.39 -3.1,-1.79 -2,-0.33 -1.23,0.66 -1.87,-0.1 -1.99,2.02 -2.47,0.68 -0.52,-2.49 0.41,-3.73 -2.19,-1.22 0.72,-2.48 -1.86,-0.22 0.62,-3.09 2.64,0.91 2.47,-1.19 -2.05,-2.23 -0.8,-2.14 -2.26,0.96 -0.28,2.73 -0.88,-2.41 1.24,-1.25 3.18,-0.79 1.9,1.06 1.96,2.93 1.44,-0.18 3.16,-0.05 -0.46,-1.88 2.4,-1.3 2.36,-2.2 3.78,2 0.3,2.99 1.07,0.77 3.03,-0.17 0.94,0.67 1.38,3.79 3.21,2.51 1.83,1.69 2.93,1.75 3.73,1.52 -0.08,2.16 -0.84,-0.11 -1.33,-0.94 -0.44,1.25 -2.36,0.68 -0.56,2.79 -1.58,1.05 -2.21,0.52 -0.59,1.55 -2.11,0.46 z", - "TN": "m 502.09,374.94 -1.2,-5.86 -1.72,-1.33 -0.03,-0.81 -2.29,-1.98 -0.25,-2.53 1.73,-1.88 0.66,-2.82 -0.45,-3.28 0.57,-1.79 3.06,-1.41 1.96,0.42 -0.08,1.77 2.38,-1.29 0.2,0.67 -1.41,1.71 -0.01,1.6 0.97,0.85 -0.37,2.96 -1.85,1.71 0.53,1.83 1.45,0.06 0.71,1.59 1.07,0.52 -0.16,2.55 -1.37,0.95 -0.86,1.05 -1.93,1.26 0.3,1.35 -0.24,1.38 z", - "TR": "m 579,336.85 4.02,1.43 3.27,-0.57 2.41,0.33 3.31,-1.94 2.99,-0.18 2.7,1.83 0.48,1.3 -0.27,1.79 2.08,0.91 1.1,1.06 -1.92,1.03 0.88,4.11 -0.55,1.1 1.53,2.82 -1.34,0.59 -0.98,-0.89 -3.26,-0.45 -1.2,0.55 -3.19,0.54 -1.51,-0.06 -3.23,1.31 -2.31,0.01 -1.49,-0.66 -3.09,0.97 -0.92,-0.68 -0.15,1.94 -0.75,0.76 -0.75,0.76 -1.03,-1.57 1.06,-1.3 -1.71,0.3 -2.35,-0.8 -1.93,2 -4.26,0.39 -2.27,-1.86 -3.02,-0.12 -0.65,1.44 -1.94,0.41 -2.71,-1.85 -3.06,0.06 -1.66,-3.48 -2.05,-1.96 1.36,-2.78 -1.78,-1.72 3.11,-3.48 4.32,-0.15 1.18,-2.81 5.34,0.49 3.37,-2.42 3.27,-1.06 4.64,-0.08 4.91,2.64 z m -27.25,2.39 -2.34,1.98 -0.88,-1.71 0.04,-0.76 0.67,-0.41 0.87,-2.33 -1.37,-0.99 2.86,-1.18 2.41,0.5 0.33,1.44 2.45,1.2 -0.51,0.91 -3.33,0.2 -1.2,1.15 z", - "TT": "m 302.56,433.49 1.61,-0.37 0.59,0.1 -0.11,2.11 -2.34,0.31 -0.51,-0.25 0.82,-0.78 z", - "TW": "m 816.95,393.52 -1.69,4.87 -1.2,2.48 -1.48,-2.55 -0.32,-2.25 1.65,-3 2.25,-2.32 1.28,0.91 z", - "TZ": "m 570.56,466.28 0.48,0.31 10.16,5.67 0.2,1.62 4.02,2.79 -1.29,3.45 0.16,1.59 1.8,1.02 0.08,0.73 -0.77,1.7 0.16,0.85 -0.18,1.35 0.98,1.76 1.16,2.79 1.02,0.62 -2.23,1.64 -3.06,1.1 -1.68,-0.04 -1,0.85 -1.95,0.07 -0.74,0.36 -3.37,-0.8 -2.11,0.23 -0.78,-3.86 -0.95,-1.32 -0.57,-0.78 -2.74,-0.52 -1.6,-0.85 -1.78,-0.47 -1.12,-0.48 -1.17,-0.71 -1.51,-3.55 -1.63,-1.57 -0.56,-1.62 0.28,-1.46 -0.5,-2.57 1.16,-0.13 1.01,-1.01 1.1,-1.46 0.69,-0.58 -0.03,-0.91 -0.6,-0.63 -0.16,-1.1 0.8,-0.35 0.17,-1.64 -1.12,-1.57 0.99,-0.34 3.07,0.04 z", - "UA": "m 564.63,292.74 1.04,0.19 0.71,-1.04 0.85,0.23 2.91,-0.44 1.79,2.57 -0.7,0.92 0.23,1.39 2.24,0.21 1,1.93 -0.06,0.87 3.56,1.54 2.15,-0.69 1.73,2.04 1.64,-0.04 4.13,1.4 0.03,1.27 -1.13,2.23 0.61,2.33 -0.44,1.39 -2.71,0.31 -1.44,1.16 -0.09,1.83 -2.24,0.33 -1.87,1.32 -2.62,0.21 -2.42,1.52 -1.32,1.03 1.49,1.47 1.37,0.96 2.86,-0.24 -0.55,1.42 -3.07,0.68 -3.81,2.27 -1.55,-0.79 0.61,-1.85 -3.06,-1.16 0.5,-0.77 3.16,-1.63 -0.4,-0.81 -0.45,0.41 -0.44,-0.22 -4.36,-1.02 -0.19,-1.51 -2.6,0.5 -1.04,2.23 -2.17,2.95 -1.28,-0.68 -1.31,0.64 -1.25,-0.73 0.7,-0.44 0.49,-1.37 0.77,-1.29 -0.2,-0.72 0.59,-0.32 0.27,0.56 1.66,0.11 0.74,-0.29 -0.52,-0.42 0.19,-0.6 -0.98,-1.04 -0.4,-1.72 -1.02,-0.67 0.2,-1.41 -1.27,-1.12 -1.15,-0.16 -2.07,-1.31 -1.86,0.42 -0.67,0.62 -1.18,-0.01 -0.71,0.98 -2.07,0.4 -0.95,0.64 -1.31,-1.01 -1.79,-0.02 -1.74,-0.46 -1.21,0.89 -0.2,-1.12 -1.55,-1.14 0.55,-1.71 0.77,-1.1 0.62,0.24 -0.73,-1.92 2.55,-3.61 1.39,-0.51 0.3,-1.24 -1.41,-3.89 1.34,-0.17 1.54,-1.23 2.17,-0.1 2.83,0.36 3.13,1.08 2.21,0.09 1.05,0.65 1.05,-0.78 0.74,1.05 2.53,-0.22 1.11,0.43 0.19,-2.26 0.86,-1 z", - "UG": "m 564.85,466.5 -3.07,-0.04 -0.99,0.34 -1.67,0.86 -0.68,-0.29 0.02,-2.1 0.65,-1.06 0.16,-2.24 0.59,-1.29 1.07,-1.46 1.08,-0.74 0.9,-0.99 -1.12,-0.37 0.17,-3.26 1.15,-0.77 1.78,0.63 2.26,-0.65 1.97,0 1.73,-1.28 1.33,1.94 0.33,1.4 1.23,3.2 -1.02,2.03 -1.38,1.84 -0.8,1.13 0.02,2.95 z", - "US": "m 109.5,280.05 0,0 -1.54,-1.83 -2.47,-1.57 -0.79,-4.36 -3.61,-4.13 -1.51,-4.94 -2.69,-0.34 -4.46,-0.13 -3.29,-1.54 -5.8,-5.64 -2.68,-1.05 -4.9,-1.99 -3.88,0.48 -5.51,-2.59 -3.33,-2.43 -3.11,1.21 0.58,3.93 -1.55,0.36 -3.24,1.16 -2.47,1.86 -3.11,1.16 -0.4,-3.24 1.26,-5.53 2.98,-1.77 -0.77,-1.46 -3.57,3.22 -1.91,3.77 -4.04,3.95 2.05,2.65 -2.65,3.85 -3.01,2.21 -2.81,1.59 -0.69,2.29 -4.38,2.63 -0.89,2.36 -3.28,2.13 -1.92,-0.38 -2.62,1.38 -2.85,1.67 -2.33,1.63 -4.81,1.38 -0.44,-0.81 3.07,-2.27 2.74,-1.51 2.99,-2.71 3.48,-0.56 1.38,-2.06 3.89,-3.05 0.63,-1.03 2.07,-1.83 0.48,-4 1.43,-3.17 -3.23,1.64 -0.9,-0.93 -1.52,1.95 -1.83,-2.73 -0.76,1.94 -1.05,-2.7 -2.8,2.17 -1.72,0 -0.24,-3.23 0.51,-2.02 -1.81,-1.98 -3.65,1.07 -2.37,-2.63 -1.92,-1.36 -0.01,-3.25 -2.16,-2.48 1.08,-3.41 2.29,-3.37 1,-3.15 2.27,-0.45 1.92,0.99 2.26,-3.01 2.04,0.54 2.14,-1.96 -0.52,-2.92 -1.57,-1.16 2.08,-2.52 -1.72,0.07 -2.98,1.43 -0.85,1.43 -2.21,-1.43 -3.97,0.73 -4.11,-1.56 -1.18,-2.65 -3.55,-3.91 3.94,-2.87 6.25,-3.41 h 2.31 l -0.38,3.48 5.92,-0.27 -2.28,-4.34 -3.45,-2.72 -1.99,-3.64 -2.69,-3.17 -3.85,-2.38 1.57,-4.03 4.97,-0.25 3.54,-3.58 0.67,-3.92 2.86,-3.91 2.73,-0.95 5.31,-3.76 2.58,0.57 4.31,-4.61 4.24,1.83 2.03,3.87 1.25,-1.65 4.74,0.51 -0.17,1.95 4.29,1.43 2.86,-0.84 5.91,2.64 5.39,0.78 2.16,1.07 3.73,-1.34 4.25,2.46 3.05,1.13 -0.02,27.65 -0.01,35.43 2.76,0.17 2.73,1.56 1.96,2.44 2.49,3.6 2.73,-3.05 2.81,-1.79 1.49,2.85 1.89,2.23 2.57,2.42 1.75,3.79 2.87,5.88 4.77,3.2 0.08,3.12 -1.6,2.32 z m 175.93,34.43 -1.25,-1.19 -1.88,0.7 -0.93,-1.08 -2.14,3.1 -0.86,3.15 -1,1.82 -1.19,0.62 -0.9,0.2 -0.28,0.98 -5.17,0 -4.26,0.03 -1.27,0.73 -2.87,2.73 0.29,0.54 0.17,1.51 -2.1,1.27 -2.3,-0.32 -2.2,-0.14 -1.33,0.44 0.25,1.15 0,0 0.05,0.37 -2.42,2.27 -2.11,1.09 -1.44,0.51 -1.66,1.03 -2.03,0.5 -1.4,-0.19 -1.73,-0.77 0.96,-1.45 0.62,-1.32 1.32,-2.09 -0.14,-1.57 -0.5,-2.24 -1.04,-0.39 -1.74,1.7 -0.56,-0.03 -0.14,-0.97 1.54,-1.56 0.26,-1.79 -0.23,-1.79 -2.08,-1.55 -2.38,-0.8 -0.39,1.52 -0.62,0.4 -0.5,1.95 -0.26,-1.33 -1.12,0.95 -0.7,1.32 -0.73,1.92 -0.14,1.64 0.93,2.38 -0.08,2.51 -1.14,1.84 -0.57,0.52 -0.76,0.41 -0.95,0.02 -0.26,-0.25 -0.76,-1.98 -0.02,-0.98 0.08,-0.94 -0.35,-1.87 0.53,-2.18 0.63,-2.71 1.46,-3.03 -0.42,0.01 -2.06,2.54 -0.38,-0.46 1.1,-1.42 1.67,-2.57 1.91,-0.36 2.19,-0.8 2.21,0.42 0.09,0.02 2.47,-0.36 -1.4,-1.61 -0.75,-0.13 -0.86,-0.16 -0.59,-1.14 -2.75,0.36 -2.49,0.9 -1.97,-1.55 -1.59,-0.52 0.9,-2.17 -2.48,1.37 -2.25,1.33 -2.16,1.04 -1.72,-1.4 -2.81,0.85 0.01,-0.6 1.9,-1.73 1.99,-1.65 2.86,-1.37 -3.45,-1.09 -2.27,0.55 -2.72,-1.3 -2.86,-0.67 -1.96,-0.26 -0.87,-0.72 -0.5,-2.35 -0.95,0.02 -0.01,1.64 -5.8,0 -9.59,0 -9.53,0 -8.42,0 h -8.41 -8.27 -8.55 -2.76 -8.32 -7.96 l 0.95,3.47 0.45,3.41 -0.69,1.09 -1.49,-3.91 -4.05,-1.42 -0.34,0.82 0.82,1.94 0.89,3.53 0.51,5.42 -0.34,3.59 -0.34,3.54 -1.1,3.61 0.9,2.9 0.1,3.2 -0.61,3.05 1.49,1.99 0.39,2.95 2.17,2.99 1.24,1.17 -0.1,0.82 2.34,4.85 2.72,3.45 0.34,1.87 0.71,0.55 2.6,0.33 1,0.91 1.57,0.17 0.31,0.96 1.31,0.4 1.82,1.92 0.47,1.7 3.19,-0.25 3.56,-0.36 -0.26,0.65 4.23,1.6 6.4,2.31 5.58,-0.02 2.22,0 0.01,-1.35 4.86,0 1.02,1.16 1.43,1.03 1.67,1.43 0.93,1.69 0.7,1.77 1.45,0.97 2.33,0.96 1.77,-2.53 2.29,-0.06 1.98,1.28 1.41,2.18 0.97,1.86 1.65,1.8 0.62,2.19 0.79,1.47 2.19,0.96 1.99,0.68 1.09,-0.09 -0.53,-1.06 -0.14,-1.5 0.03,-2.16 0.65,-1.42 1.53,-1.51 2.79,-1.37 2.55,-2.37 2.36,-0.75 1.74,-0.23 2.04,0.74 2.45,-0.4 2.09,1.69 2.03,0.1 1.05,-0.61 1.04,0.47 0.53,-0.42 -0.6,-0.63 0.05,-1.3 -0.5,-0.86 1.16,-0.5 2.14,-0.22 2.49,0.36 3.17,-0.41 1.76,0.8 1.36,1.5 0.5,0.16 2.83,-1.46 1.09,0.49 2.19,2.68 0.79,1.75 -0.58,2.1 0.42,1.23 1.3,2.4 1.49,2.68 1.07,0.71 0.44,1.35 1.38,0.37 0.84,-0.39 0.7,-1.89 0.12,-1.21 0.09,-2.1 -1.33,-3.65 -0.02,-1.37 -1.25,-2.25 -0.94,-2.75 -0.5,-2.25 0.43,-2.31 1.32,-1.94 1.58,-1.57 3.08,-2.16 0.4,-1.12 1.42,-1.23 1.4,-0.22 1.84,-1.98 2.9,-1.01 1.78,-2.53 -0.39,-3.46 -0.29,-1.21 -0.8,-0.24 -0.12,-3.35 -1.93,-1.14 1.85,0.56 -0.6,-2.26 0.54,-1.55 0.33,2.97 1.43,1.36 -0.87,2.4 0.26,0.14 1.58,-2.81 0.9,-1.38 -0.04,-1.35 -0.7,-0.64 -0.58,-1.94 0.92,0.9 0.62,0.19 0.21,0.92 2.04,-2.78 0.61,-2.62 -0.83,-0.17 0.85,-1.02 -0.08,0.45 1.79,-0.01 3.93,-1.11 -0.83,-0.7 -4.12,0.7 2.34,-1.07 1.63,-0.18 1.22,-0.19 2.07,-0.65 1.35,0.07 1.89,-0.61 0.22,-1.07 -0.84,-0.84 0.29,1.37 -1.16,-0.09 -0.93,-1.99 0.03,-2.01 0.48,-0.86 1.48,-2.28 2.96,-1.15 2.88,-1.34 2.99,-1.9 -0.48,-1.29 -1.83,-2.25 -0.03,-5.56 z m -239.56,-50.44 -1.5,0.8 -2.55,1.86 0.43,2.42 1.43,1.32 2.8,-1.95 2.43,-2.47 -1.19,-1.63 -1.85,-0.35 z m -45.62,-28.57 2.04,-1.26 0.23,-0.68 -2.27,-0.67 v 2.61 z m 8.5,15.37 -2.77,0.97 1.7,1.52 1.84,1.04 1.72,-0.87 -0.27,-2.15 -2.22,-0.51 z m 97.35,32.5 -2.69,0.38 -1.32,-0.62 -0.17,1.52 0.52,2.07 1.42,1.46 1.04,2.13 1.69,2.1 1.12,0.01 -2.44,-3.7 0.83,-5.35 z m -68.72,120.68 -1,-0.28 -0.27,0.26 0.02,0.19 0.32,0.24 0.48,0.63 0.94,-0.21 0.23,-0.36 -0.72,-0.47 z m -2.99,-0.54 1.5,0.09 0.09,-0.32 -1.38,-0.13 -0.21,0.36 z m 5.89,3.29 -0.5,-0.26 -1.07,-0.5 -0.21,-0.06 -0.16,0.28 0.19,0.58 -0.49,0.48 -0.14,0.33 0.46,1.08 -0.08,0.83 0.7,0.42 0.41,-0.49 0.9,-0.46 1.1,-0.63 0.07,-0.16 -0.71,-1.04 -0.47,-0.4 z m -7.86,-5.14 -0.75,0.41 0.11,0.12 0.36,0.68 0.98,0.11 0.2,0.04 0.15,-0.17 -0.81,-0.99 -0.24,-0.2 z m -4.4,-1.56 -0.43,0.3 -0.15,0.22 0.94,0.55 0.33,-0.3 -0.06,-0.7 -0.63,-0.07 z", - "UY": "m 313.93,552.04 1.82,-0.34 2.81,2.5 1.04,-0.09 2.89,2.08 2.2,1.82 1.62,2.25 -1.24,1.57 0.78,1.9 -1.21,2.12 -3.17,1.88 -2.07,-0.68 -1.52,0.37 -2.59,-1.46 -1.9,0.11 -1.71,-1.87 0.22,-2.16 0.61,-0.74 -0.03,-3.3 0.75,-3.37 z", - "UZ": "m 662.01,351.2 0.08,-2.16 -3.73,-1.52 -2.93,-1.75 -1.83,-1.69 -3.21,-2.51 -1.38,-3.79 -0.94,-0.67 -3.03,0.17 -1.07,-0.77 -0.3,-2.99 -3.78,-2 -2.36,2.2 -2.4,1.3 0.46,1.88 -3.16,0.05 -0.11,-14.13 7.22,-2.35 0.52,0.35 4.35,2.84 2.29,1.48 2.68,3.5 3.29,-0.56 4.81,-0.3 3.35,2.8 -0.21,3.8 1.37,0.03 0.57,3.06 3.57,0.12 0.76,1.75 1.05,-0.02 1.23,-2.65 3.69,-2.61 1.61,-0.7 0.83,0.37 -2.35,2.43 2.07,1.4 2,-0.93 3.32,1.96 -3.59,2.64 -2.13,-0.36 -1.16,0.1 -0.4,-1.02 0.58,-1.71 -3.75,0.86 -0.89,2.35 -1.33,2.01 -2.34,-0.17 -0.73,1.59 2.06,0.86 0.6,2.66 -1.57,3.57 -2.12,-0.74 z", - "VE": "m 275.5,430.6 -0.08,0.67 -1.65,0.33 0.92,1.29 -0.04,1.49 -1.23,1.64 1.06,2.24 1.21,-0.18 0.63,-2.04 -0.87,-1 -0.14,-2.14 3.49,-1.16 -0.39,-1.34 0.98,-0.9 1.01,2 1.97,0.05 1.82,1.58 0.11,0.94 2.51,0.02 3,-0.29 1.61,1.27 2.14,0.35 1.57,-0.88 0.03,-0.72 3.48,-0.17 3.36,-0.04 -2.38,0.84 0.95,1.34 2.25,0.21 2.12,1.39 0.45,2.26 1.46,-0.07 1.1,0.67 -2.22,1.65 -0.25,1.03 0.96,1.04 -0.69,0.52 -1.73,0.45 0.06,1.3 -0.76,0.77 1.89,2.12 0.38,0.79 -1.03,1.07 -3.14,1.04 -2.01,0.44 -0.81,0.66 -2.23,-0.7 -2.08,-0.36 -0.52,0.26 1.25,0.72 -0.11,1.87 0.39,1.76 2.37,0.24 0.16,0.58 -2.01,0.8 -0.32,1.18 -1.16,0.45 -2.08,0.65 -0.54,0.86 -2.18,0.18 -1.55,-1.48 -0.85,-2.77 -0.75,-0.98 -1.02,-0.61 1.42,-1.39 -0.09,-0.63 -0.8,-0.83 -0.56,-1.85 0.22,-2.01 0.62,-0.94 0.51,-1.5 -0.99,-0.49 -1.6,0.32 -2.02,-0.15 -1.13,0.3 -1.98,-2.41 -1.63,-0.36 -3.6,0.27 -0.67,-0.98 -0.69,-0.23 -0.1,-0.59 0.33,-1.04 -0.22,-1.13 -0.62,-0.62 -0.36,-1.3 -1.44,-0.18 0.77,-1.66 0.35,-2.01 0.81,-1.06 1.09,-0.81 0.71,-1.42 z", - "VN": "m 778.46,402.12 -3.74,2.56 -2.34,2.81 -0.62,2.05 2.15,3.09 2.62,3.82 2.54,1.79 1.71,2.33 1.28,5.32 -0.38,5.02 -2.33,1.87 -3.22,1.83 -2.28,2.36 -3.5,2.62 -1.02,-1.81 0.79,-1.91 -2.08,-1.61 2.43,-1.14 2.94,-0.2 -1.23,-1.73 4.71,-2.19 0.35,-3.42 -0.65,-1.92 0.51,-2.88 -0.71,-2.04 -2.12,-2.02 -1.77,-2.57 -2.33,-3.46 -3.36,-1.76 0.81,-1.07 1.79,-0.77 -1.09,-2.59 -3.45,-0.03 -1.26,-2.72 -1.64,-2.37 1.51,-0.74 2.23,0.02 2.73,-0.35 2.39,-1.62 1.35,1.14 2.57,0.55 -0.45,1.74 1.34,1.22 z", - "VU": "m 946.12,510.15 -0.92,0.38 -0.94,-1.27 0.1,-0.78 1.76,1.67 z m -2.07,-4.44 0.46,2.33 -0.75,-0.36 -0.58,0.16 -0.4,-0.8 -0.06,-2.21 1.33,0.88 z", - "YE": "m 624.41,416.58 -2.03,0.79 -0.54,1.28 -0.07,0.99 -2.79,1.22 -4.48,1.35 -2.51,2.03 -1.23,0.15 -0.84,-0.17 -1.64,1.2 -1.79,0.55 -2.35,0.15 -0.71,0.16 -0.61,0.75 -0.74,0.21 -0.43,0.73 -1.39,-0.06 -0.9,0.38 -1.94,-0.14 -0.73,-1.67 0.08,-1.57 -0.45,-0.85 -0.55,-2.12 -0.81,-1.19 0.56,-0.14 -0.29,-1.32 0.34,-0.56 -0.12,-1.26 1.23,-0.93 -0.29,-1.23 0.75,-1.43 1.15,0.76 0.76,-0.27 3.23,-0.07 0.52,0.3 2.71,0.29 1.07,-0.15 0.7,0.97 1.31,-0.48 2.01,-3.07 2.62,-1.32 8.08,-1.13 2.2,4.84 z", - "ZA": "m 563.88,548.96 -0.55,0.46 -1.19,1.63 -0.78,1.66 -1.59,2.33 -3.17,3.38 -1.98,1.98 -2.12,1.51 -2.93,1.3 -1.43,0.17 -0.36,0.93 -1.7,-0.5 -1.39,0.64 -3.04,-0.65 -1.7,0.41 -1.16,-0.18 -2.89,1.33 -2.39,0.54 -1.73,1.28 -1.28,0.08 -1.19,-1.21 -0.95,-0.06 -1.21,-1.51 -0.13,0.47 -0.37,-0.91 0.02,-1.96 -0.91,-2.23 0.9,-0.6 -0.07,-2.53 -1.84,-3.05 -1.41,-2.74 0,-0.01 -2.01,-4.15 1.34,-1.57 1.11,0.87 0.47,1.36 1.26,0.23 1.76,0.6 1.51,-0.23 2.5,-1.63 0,-11.52 0.76,0.46 1.66,2.93 -0.26,1.89 0.63,1.1 2.01,-0.32 1.4,-1.39 1.33,-0.93 0.69,-1.48 1.37,-0.72 1.18,0.38 1.34,0.87 2.28,0.15 1.79,-0.72 0.28,-0.96 0.49,-1.47 1.53,-0.25 0.84,-1.15 0.93,-2.03 2.52,-2.26 3.97,-2.22 1.14,0.03 1.36,0.51 0.94,-0.36 1.49,0.3 1.34,4.26 0.73,2.17 -0.5,3.43 0.24,1.11 -1.42,-0.57 -0.81,0.22 -0.26,0.9 -0.77,1.17 0.03,1.08 1.67,1.7 1.64,-0.34 0.57,-1.39 2.13,0.03 -0.7,2.28 -0.33,2.62 -0.73,1.43 -1.9,1.62 z m -7.13,-0.96 -1.22,-0.98 -1.31,0.65 -1.52,1.25 -1.5,2.03 2.1,2.48 1,-0.32 0.52,-1.03 1.56,-0.5 0.48,-1.05 0.86,-1.56 -0.97,-0.97 z", - "ZM": "m 567.36,489.46 1.32,1.26 0.71,2.4 -0.48,0.77 -0.56,2.3 0.54,2.36 -0.88,0.99 -0.85,2.66 1.47,0.74 -8.51,2.38 0.27,2.05 -2.13,0.4 -1.59,1.15 -0.34,1.01 -1.01,0.22 -2.44,2.4 -1.55,1.89 -0.95,0.07 -0.91,-0.34 -3.13,-0.32 -0.5,-0.22 -0.03,-0.24 -1.1,-0.66 -1.82,-0.17 -2.3,0.67 -1.83,-1.82 -1.89,-2.38 0.13,-9.16 5.84,0.04 -0.24,-0.99 0.42,-1.07 -0.49,-1.33 0.32,-1.38 -0.3,-0.88 0.97,0.07 0.16,0.88 1.31,-0.07 1.78,0.26 0.94,1.29 2.24,0.4 1.72,-0.9 0.63,1.49 2.15,0.4 1.03,1.22 1.15,1.57 2.15,0.03 -0.24,-3.08 -0.77,0.51 -1.96,-1.1 -0.76,-0.51 0.35,-2.85 0.5,-3.35 -0.63,-1.25 0.8,-1.8 0.75,-0.33 3.77,-0.48 1.1,0.29 1.17,0.71 1.12,0.48 1.78,0.47 z", - "ZW": "m 562.96,527.25 -1.49,-0.3 -0.95,0.36 -1.35,-0.51 -1.14,-0.03 -1.79,-1.36 -2.17,-0.46 -0.82,-1.9 -0.01,-1.05 -1.2,-0.32 -3.17,-3.25 -0.89,-1.71 -0.56,-0.52 -1.08,-2.35 3.13,0.32 0.91,0.34 0.95,-0.07 1.55,-1.89 2.44,-2.4 1.01,-0.22 0.34,-1.01 1.59,-1.15 2.13,-0.4 0.18,1.08 2.34,-0.06 1.3,0.61 0.6,0.72 1.34,0.21 1.45,0.94 0.01,3.69 -0.55,2.04 -0.12,2.2 0.45,0.88 -0.31,1.74 -0.43,0.27 -0.74,2.15 z" - } - } - } - }); - - return Mapael; - -})); diff --git a/htdocs/public/high/plugins/jquery-mapael/maps/world_countries_mercator.min.js b/htdocs/public/high/plugins/jquery-mapael/maps/world_countries_mercator.min.js deleted file mode 100644 index a0ed0502..00000000 --- a/htdocs/public/high/plugins/jquery-mapael/maps/world_countries_mercator.min.js +++ /dev/null @@ -1,14 +0,0 @@ -/*! - * - * Jquery Mapael - Dynamic maps jQuery plugin (based on raphael.js) - * Requires Mapael - * - * Map of World by country - * Mercator projection - * - * @source http://www.amcharts.com/svg-maps/?map=world - */ -!function(a){"object"==typeof exports?module.exports=a(require("jquery"),require("mapael")):"function"==typeof define&&define.amd?define(["jquery","mapael"],a):a(jQuery,jQuery.mapael)}(function(a,b){"use strict";return a.extend(!0,b,{maps:{world_countries_mercator:{width:1008.77,height:651.44,leftLongitude:-169.6,rightLongitude:190.25,topLatitude:83.68,bottomLatitude:-55.55,_projectLongitude:function(a){return a*Math.PI/180},_projectLatitude:function(a){var b=Math.sin(a*Math.PI/180);return.5*Math.log((1+b)/(1-b))},getCoords:function(a,b){var c=this;void 0===c._xLeftPrime&&(c._xLeftPrime=c._projectLongitude(c.leftLongitude)),void 0===c._xRightPrime&&(c._xRightPrime=c._projectLongitude(c.rightLongitude)),void 0===c._yTopPrime&&(c._yTopPrime=c._projectLatitude(c.topLatitude)),void 0===c._yBottomPrime&&(c._yBottomPrime=c._projectLatitude(c.bottomLatitude));var d=c._projectLongitude(b),e=c._projectLatitude(a),f=(d-c._xLeftPrime)*(c.width/(c._xRightPrime-c._xLeftPrime)),g=(c._yTopPrime-e)*(c.height/(c._yTopPrime-c._yBottomPrime));return{x:f,y:g}},elems:{AE:"m 620.12,393.97 0.5,-0.15 0.11,0.84 2.19,-0.48 2.32,0.08 1.69,0.09 1.92,-2.07 2.1,-1.98 1.77,-1.9 0.53,1.05 0.38,2.44 -1.43,0.01 -0.23,2 0.5,0.42 -1.27,0.6 -0.01,1.25 -0.82,1.26 -0.07,1.21 -0.57,0.64 -8.42,-1.52 -1.08,-3.08 z",AF:"m 647.13,357.15 2.86,1.3 2.11,-0.46 0.59,-1.55 2.21,-0.52 1.58,-1.05 0.56,-2.79 2.36,-0.68 0.44,-1.25 1.33,0.94 0.84,0.11 1.56,0.03 2.12,0.74 0.85,0.42 2.03,-1.12 0.95,0.67 0.9,-1.6 1.68,0.07 0.43,-0.52 0.3,-1.43 1.21,-1.23 1.51,0.8 -0.3,1.09 0.85,0.17 -0.27,2.95 1.11,1.15 0.98,-0.74 1.25,-0.34 1.74,-1.57 1.93,0.26 2.9,0 0.5,1.01 -1.64,0.39 -1.42,0.65 -3.22,0.4 -3.01,0.73 -1.64,1.51 0.66,1.46 0.33,1.7 -1.4,1.43 0.12,1.3 -0.77,1.22 -2.67,-0.11 1.1,2.22 -1.78,0.85 -1.19,2 0.15,1.98 -1.1,0.92 -1.03,-0.3 -2.15,0.43 -0.3,0.91 -2.09,0 -1.56,1.84 -0.1,2.75 -3.65,1.33 -1.95,-0.28 -0.57,0.7 -1.67,-0.4 -2.81,0.48 -4.69,-1.64 2.54,-2.93 -0.23,-2.1 -2.12,-0.55 -0.22,-2.09 -0.92,-2.64 1.2,-1.83 -1.22,-0.49 0.77,-2.45 z",AL:"m 533.23,334.91 -0.35,1.27 0.4,1.59 1.16,0.9 -0.06,0.97 -0.91,0.54 -0.17,1.19 -1.3,1.76 -0.48,-0.25 -0.05,-0.8 -1.56,-1.23 -0.24,-1.75 0.24,-2.53 0.38,-1.16 -0.47,-0.59 -0.19,-1.19 1.22,-1.87 0.17,0.72 0.76,-0.34 0.6,1.02 0.67,0.38 z",AM:"m 597.7,337.75 3.9,-0.58 0.58,0.98 1.07,0.64 -0.57,0.92 1.5,1.26 -0.79,1.16 1.19,0.99 1.26,0.59 0.06,2.5 -1.02,0.1 -1.14,-2.08 0.01,-0.55 -1.24,0.01 -0.83,-0.98 -0.58,0.1 -1.11,-1.06 -2.08,-0.91 0.27,-1.79 z",AO:"m 521.28,480.03 0.69,2.09 0.8,1.68 0.64,0.91 1.07,1.47 1.85,-0.23 0.93,-0.4 1.55,0.4 0.42,-0.7 0.7,-1.64 1.74,-0.11 0.15,-0.49 1.43,-0.01 -0.24,1.01 3.4,-0.02 0.05,1.77 0.57,1.09 -0.41,1.7 0.21,1.74 0.94,1.05 -0.15,3.37 0.69,-0.26 1.22,0.07 1.74,-0.42 1.28,0.17 0.3,0.88 -0.32,1.38 0.49,1.34 -0.42,1.07 0.24,0.99 -5.84,-0.04 -0.13,9.16 1.89,2.38 1.83,1.82 -5.15,1.19 -6.79,-0.41 -1.94,-1.4 -11.37,0.13 -0.42,0.21 -1.67,-1.32 -1.82,-0.09 -1.68,0.5 -1.35,0.56 -0.26,-1.83 0.39,-2.55 0.97,-2.65 0.15,-1.24 0.91,-2.59 0.67,-1.17 1.61,-1.87 0.9,-1.27 0.29,-2.11 -0.15,-1.61 -0.84,-1.01 -0.75,-1.72 -0.69,-1.69 0.15,-0.59 0.86,-1.12 -0.85,-2.72 -0.57,-1.88 -1.4,-1.77 0.27,-0.54 1.16,-0.38 0.81,0.05 0.98,-0.34 8.27,0.01 z m -10.91,-0.54 -0.71,0.3 -0.75,-2.1 1.13,-1.21 0.85,-0.47 1.05,0.96 -1.02,0.59 -0.46,0.72 -0.09,1.21 z",AR:"m 291.85,649.16 -2.66,0.25 -1.43,-1.73 -1.69,-0.13 -3,0 0,-10.57 1.08,2.15 1.4,3.53 3.65,2.87 3.93,1.21 -1.28,2.42 z m 1.5,-122.44 1.65,2.18 1.09,-2.43 3.2,0.12 0.45,0.64 5.15,4.94 2.29,0.46 3.43,2.26 2.89,1.2 0.4,1.36 -2.76,4.73 2.83,0.85 3.15,0.48 2.22,-0.5 2.54,-2.4 0.46,-2.74 1.39,-0.59 1.41,1.79 -0.06,2.49 -2.36,1.73 -1.88,1.28 -3.16,3.08 -3.74,4.37 -0.7,2.59 -0.75,3.37 0.03,3.3 -0.61,0.74 -0.22,2.17 -0.19,1.76 3.56,2.91 -0.38,2.37 1.75,1.51 -0.14,1.7 -2.69,4.52 -4.16,1.91 -5.62,0.75 -3.08,-0.36 0.59,2.15 -0.57,2.72 0.52,1.85 -1.68,1.3 -2.87,0.51 -2.7,-1.35 -1.08,0.97 0.39,3.71 1.89,1.14 1.54,-1.19 0.84,1.96 -2.58,1.18 -2.25,2.38 -0.41,3.91 -0.66,2.11 -2.65,0.01 -2.2,2.04 -0.8,3.01 2.76,2.98 2.68,0.83 -0.96,3.73 -3.31,2.38 -1.82,5.03 -2.56,1.72 -1.15,2.06 0.91,4.64 1.87,2.63 -1.18,-0.23 -2.6,-0.71 -6.78,-0.61 -1.16,-2.63 0.05,-3.33 -1.87,0.28 -0.99,-1.6 -0.25,-4.6 2.15,-1.88 0.89,-2.68 -0.33,-2.11 1.49,-3.52 1.02,-5.35 -0.3,-2.33 1.22,-0.75 -0.3,-1.48 -1.3,-0.78 0.92,-1.63 -1.27,-1.46 -0.65,-4.4 1.13,-0.77 -0.47,-4.54 0.66,-3.75 0.75,-3.22 1.68,-1.3 -0.85,-3.46 -0.01,-3.22 2.12,-2.26 -0.06,-2.87 1.6,-3.31 0.01,-3.09 -0.73,-0.61 -1.29,-5.69 1.73,-3.34 -0.27,-3.11 1,-2.9 1.84,-2.96 1.98,-1.95 -0.84,-1.23 0.59,-1 -0.09,-5.14 3.05,-1.51 0.96,-3.16 -0.34,-0.76 2.34,-2.72 3.62,0.72 z",AT:"m 523.11,310.1 -0.21,1.71 -1.58,0.01 0.54,0.89 -0.93,2.65 -0.53,0.69 -2.45,0.1 -1.42,0.92 -2.32,-0.31 -4.01,-1.05 -0.62,-1.43 -2.77,0.72 -0.33,0.77 -1.7,-0.58 -1.43,-0.11 -1.27,-0.74 0.43,-1.01 -0.11,-0.74 0.85,-0.22 1.42,1.14 0.4,-1.09 2.47,0.18 2.01,-0.74 1.34,0.12 0.87,0.85 0.27,-0.7 -0.4,-2.72 1.01,-0.54 0.98,-1.95 2.09,1.37 1.57,-1.74 0.99,-0.32 2.18,1.3 1.31,-0.22 1.3,0.8 -0.23,0.54 z",AU:"m 883.18,588.41 2.71,1.28 1.53,-0.51 2.19,-0.71 1.68,0.25 0.2,4.43 -0.96,1.3 -0.29,3.06 -0.98,-1.05 -1.95,2.67 -0.58,-0.21 -1.72,-0.12 -1.73,-3.28 -0.38,-2.5 -1.62,-3.25 0.07,-1.7 1.83,0.34 z m -5.15,-86.06 1.01,2.25 1.8,-1.08 0.93,1.22 1.35,1.13 -0.29,1.28 0.6,2.48 0.43,1.45 0.71,0.35 0.76,2.5 -0.27,1.52 0.91,1.99 3.04,1.54 1.98,1.41 1.88,1.29 -0.37,0.72 1.6,1.87 1.09,3.25 1.12,-0.66 1.14,1.31 0.69,-0.46 0.48,3.21 1.99,1.87 1.3,1.17 2.19,2.49 0.79,2.49 0.07,1.77 -0.19,1.94 1.34,2.68 -0.16,2.81 -0.49,1.48 -0.76,2.87 0.06,1.86 -0.55,2.34 -1.24,3 -2.08,1.63 -1.02,2.59 -0.94,1.67 -0.83,2.93 -1.08,1.71 -0.71,2.58 -0.36,2.4 0.14,1.11 -1.61,1.22 -3.14,0.13 -2.59,1.45 -1.29,1.38 -1.69,1.54 -2.32,-1.58 -1.72,-0.63 0.44,-1.85 -1.53,0.67 -2.46,2.58 -2.42,-0.97 -1.59,-0.56 -1.6,-0.25 -2.71,-1.03 -1.81,-2.18 -0.52,-2.66 -0.65,-1.75 -1.38,-1.4 -2.7,-0.41 0.92,-1.66 -0.68,-2.52 -1.37,2.35 -2.5,0.63 1.47,-1.88 0.42,-1.95 1.08,-1.65 -0.22,-2.47 -2.28,2.85 -1.75,1.15 -1.07,2.69 -2.19,-1.4 0.09,-1.79 -1.75,-2.43 -1.48,-1.25 0.53,-0.77 -3.6,-2 -1.97,-0.09 -2.7,-1.6 -5.02,0.31 -3.63,1.18 -3.19,1.1 -2.68,-0.22 -2.97,1.7 -2.43,0.77 -0.54,1.75 -1.04,1.36 -2.38,0.08 -1.76,0.3 -2.48,-0.61 -2.02,0.37 -1.92,0.15 -1.67,1.8 -0.82,-0.15 -1.41,0.96 -1.35,1.08 -2.05,-0.13 -1.88,0 -2.97,-2.17 -1.51,-0.64 0.06,-1.93 1.39,-0.46 0.48,-0.76 -0.1,-1.2 0.34,-2.3 -0.31,-1.95 -1.48,-3.29 -0.46,-1.85 0.12,-1.83 -1.12,-2.08 -0.07,-0.93 -1.24,-1.26 -0.35,-2.47 -1.6,-2.48 -0.39,-1.33 1.23,1.35 -0.95,-2.88 1.39,0.9 0.83,1.2 -0.05,-1.59 -1.39,-2.43 -0.27,-0.97 -0.65,-0.92 0.3,-1.77 0.57,-0.75 0.38,-1.52 -0.3,-1.77 1.16,-2.17 0.21,2.29 1.18,-2.07 2.28,-1 1.37,-1.28 2.14,-1.1 1.27,-0.23 0.77,0.37 2.21,-1.11 1.7,-0.33 0.42,-0.65 0.74,-0.27 1.55,0.07 2.95,-0.87 1.52,-1.31 0.72,-1.58 1.64,-1.49 0.13,-1.17 0.07,-1.59 1.96,-2.47 1.18,2.51 1.19,-0.58 -1,-1.38 0.88,-1.41 1.24,0.63 0.34,-2.21 1.53,-1.42 0.68,-1.14 1.41,-0.49 0.04,-0.8 1.23,0.34 0.05,-0.72 1.23,-0.41 1.36,-0.39 2.07,1.32 1.56,1.71 1.75,0.02 1.78,0.27 -0.59,-1.58 1.34,-2.3 1.26,-0.75 -0.44,-0.71 1.22,-1.63 1.7,-1.01 1.43,0.34 2.36,-0.54 -0.05,-1.45 -2.05,-0.94 1.49,-0.41 1.86,0.7 1.49,1.17 2.36,0.73 0.8,-0.29 1.74,0.88 1.64,-0.82 1.05,0.25 0.66,-0.55 1.29,1.41 -0.75,1.53 -1.06,1.16 -0.96,0.1 0.33,1.15 -0.82,1.43 -1,1.41 0.2,0.81 2.23,1.6 2.16,0.93 1.44,1 2.03,1.72 0.79,0 1.47,0.75 0.43,0.9 2.68,0.99 1.85,-1 0.55,-1.57 0.57,-1.29 0.35,-1.59 0.85,-2.3 -0.39,-1.39 0.2,-0.84 -0.32,-1.64 0.37,-2.16 0.54,-0.58 -0.44,-0.95 0.68,-1.51 0.53,-1.56 0.07,-0.81 1.04,-1.06 0.79,1.39 0.19,1.78 0.7,0.34 0.12,1.2 1.02,1.45 0.21,1.62 -0.08,1.01 z",AZ:"m 601.68,342.71 0.83,0.97 1.24,-0.01 -0.01,0.56 1.14,2.08 -1.92,-0.48 -1.42,-1.66 -0.44,-1.37 0.58,-0.09 z m 6.65,-5.43 1.24,0.25 0.48,-0.95 1.67,-1.51 1.47,1.97 1.43,2.62 1.31,0.17 0.86,0.99 -2.31,0.29 -0.49,2.82 -0.48,1.26 -1.03,0.84 0.08,1.77 -0.7,0.18 -1.75,-1.87 0.97,-1.78 -0.83,-1.06 -1.05,0.27 -3.31,2.66 -0.06,-2.5 -1.26,-0.59 -1.19,-0.99 0.79,-1.16 -1.49,-1.26 0.56,-0.92 -1.07,-0.64 -0.58,-0.97 0.69,-0.61 2.09,1.07 1.51,0.22 0.38,-0.43 -1.38,-2.02 0.73,-0.52 0.79,0.13 1.93,2.27 z",BA:"m 528.79,323.36 1.02,-0.01 -0.7,1.72 1.35,1.5 -0.41,1.82 -0.66,0.17 -0.53,0.36 -0.91,0.89 -0.41,2.1 -2.48,-1.44 -1.06,-1.61 -1.07,-0.85 -1.29,-1.45 -0.6,-1.21 -1.38,-1.83 0.59,-1.64 1.01,0.91 0.6,-0.82 1.31,-0.09 2.41,0.66 1.94,-0.06 z",BD:"m 735.34,400.66 -0.05,2.15 -0.98,-0.46 0.18,2.41 -0.8,-1.56 -0.16,-1.52 -0.54,-1.45 -1.17,-1.76 -2.58,-0.12 0.26,1.25 -0.88,1.67 -1.2,-0.61 -0.41,0.55 -0.79,-0.33 -1.08,-0.27 -0.44,-2.48 -0.97,-2.28 0.47,-1.84 -1.72,-0.82 0.62,-1.12 1.75,-1.15 -2.02,-1.63 0.99,-2.11 2.22,1.34 1.34,0.16 0.25,2.15 2.66,0.42 2.61,-0.05 1.61,0.53 -1.29,2.59 -1.26,0.18 -0.86,1.73 1.53,1.58 0.46,-1.94 0.78,-0.01 z",BE:"m 484.8,296.16 2.05,0.35 2.6,-0.93 1.77,1.95 1.55,1.04 -0.32,2.97 -0.73,0.16 -0.31,2.43 -2.45,-1.97 -1.44,0.34 -1.96,-2.06 -1.3,-1.77 -1.3,-0.07 -0.41,-1.56 z",BF:"m 467.58,436.65 -1.92,-0.73 -1.32,0.11 -0.98,0.71 -1.26,-0.6 -0.49,-0.93 -1.26,-0.62 -0.19,-1.64 0.77,-1.21 -0.07,-0.96 2.23,-2.36 0.41,-1.96 0.77,-0.7 1.36,0.38 1.17,-0.58 0.38,-0.74 2.18,-1.28 0.53,-0.9 2.62,-1.2 1.55,-0.41 0.7,0.55 1.79,-0.01 -0.22,1.4 0.38,1.31 1.58,1.87 0.08,1.38 3.24,0.65 -0.07,1.95 -0.61,0.86 -1.37,0.26 -0.57,1.24 -0.96,0.32 -2.46,-0.06 -1.3,-0.22 -0.9,0.46 -1.24,-0.21 -4.87,0.13 -0.07,1.61 z",BG:"m 539.03,325.81 0.81,1.6 1.08,-0.29 2.16,0.61 4.12,0.2 1.39,-0.99 3.3,-0.9 2.04,1.41 1.65,0.41 -1.46,1.59 -1.02,2.73 0.9,2.16 -2.41,-0.51 -2.86,1.18 -0.03,1.86 -2.55,0.35 -1.97,-1.3 -2.25,1.03 -2.07,-0.11 -0.2,-2.47 -1.41,-1.21 0.47,-0.54 -0.31,-0.45 0.47,-1.21 1.07,-1.19 -1.36,-1.66 -0.25,-1.42 z",BI:"m 557.77,476.18 -0.18,-3.37 -0.71,-1.26 1.71,0.22 0.86,-1.59 1.49,0.18 0.16,1.1 0.6,0.63 0.03,0.91 -0.69,0.58 -1.1,1.46 -1.01,1.01 z",BJ:"m 483.05,446.17 -2.32,0.33 -0.69,-1.94 0.13,-6.46 -0.57,-0.58 -0.1,-1.39 -0.98,-0.99 -0.85,-0.83 0.36,-1.5 0.96,-0.32 0.57,-1.24 1.37,-0.26 0.61,-0.86 0.94,-0.83 1.01,-0.01 2.14,1.64 -0.11,0.95 0.63,1.68 -0.55,1.14 0.29,0.76 -1.36,1.75 -0.86,0.87 -0.53,1.77 0.07,1.79 z",BN:"m 795.71,451.02 1.11,-1.05 2.39,-1.53 -0.13,1.38 -0.16,1.78 -1.34,-0.09 -0.59,0.95 z",BO:"m 299.29,526.6 -3.2,-0.13 -1.09,2.43 -1.65,-2.18 -3.67,-0.73 -2.33,2.72 -2.03,0.41 -1.1,-4.15 -1.5,-3.34 0.88,-2.87 -1.47,-1.25 -0.37,-2.12 -1.38,-2 1.77,-3.14 -1.21,-2.44 0.65,-0.97 -0.51,-1.07 1.1,-1.44 0.06,-2.44 0.13,-2.02 0.61,-0.96 -2.43,-4.58 2.09,0.24 1.44,-0.07 0.63,-0.85 2.45,-1.15 1.47,-1.06 3.67,-0.48 -0.29,2.12 0.34,1.09 -0.23,1.9 3.05,2.55 3.14,0.47 1.1,1.07 1.9,0.57 1.16,0.83 1.76,-0.03 1.63,0.85 0.12,1.66 0.55,0.84 0.04,1.25 -0.82,0.04 1.08,3.37 5.37,0.12 -0.41,1.68 0.3,1.15 1.53,0.82 0.67,1.82 -0.5,2.32 -0.77,1.29 0.27,1.69 -0.88,0.61 -0.04,-0.91 -2.62,-1.51 -2.6,-0.05 -4.89,0.86 -1.34,2.62 -0.07,1.6 -1.11,3.59 z",BR:"m 313.93,552.04 3.74,-4.37 3.17,-3.08 1.88,-1.28 2.36,-1.73 0.06,-2.49 -1.41,-1.79 -1.39,0.59 0.55,-1.78 0.38,-1.82 0,-1.68 -1.01,-0.55 -1.05,0.49 -1.04,-0.13 -0.33,-1.18 -0.26,-2.77 -0.53,-0.9 -1.89,-0.82 -1.14,0.59 -2.96,-0.58 0.18,-4.06 -0.83,-1.66 0.88,-0.61 -0.27,-1.69 0.77,-1.29 0.5,-2.32 -0.67,-1.82 -1.53,-0.82 -0.3,-1.15 0.41,-1.68 -5.37,-0.12 -1.08,-3.37 0.82,-0.04 -0.04,-1.25 -0.55,-0.84 -0.12,-1.66 -1.63,-0.85 -1.76,0.03 -1.16,-0.83 -1.9,-0.57 -1.1,-1.07 -3.14,-0.47 -3.05,-2.55 0.23,-1.9 -0.34,-1.09 0.29,-2.12 -3.67,0.48 -1.47,1.06 -2.45,1.15 -0.63,0.85 -1.44,0.07 -2.09,-0.24 -1.58,0.49 -1.28,-0.33 0.19,-4.3 -2.3,1.66 -2.47,-0.07 -1.06,-1.51 -1.86,-0.16 0.59,-1.21 -1.56,-1.72 -1.17,-2.53 0.74,-0.51 0,-1.19 1.7,-0.81 -0.28,-1.51 0.71,-0.98 0.21,-1.3 3.2,-1.91 2.3,-0.53 0.37,-0.42 2.53,0.13 1.26,-7.65 0.07,-1.21 -0.44,-1.59 -1.24,-1.02 0.01,-2.02 1.58,-0.46 0.56,0.29 0.09,-1.07 -1.64,-0.29 -0.03,-1.74 5.46,0.06 0.93,-0.96 0.78,0.88 0.54,1.65 0.53,-0.35 1.55,1.48 2.18,-0.18 0.54,-0.86 2.08,-0.65 1.16,-0.45 0.32,-1.18 2.01,-0.8 -0.16,-0.58 -2.37,-0.24 -0.39,-1.76 0.11,-1.87 -1.25,-0.72 0.52,-0.26 2.08,0.36 2.23,0.7 0.81,-0.66 2.01,-0.44 3.14,-1.04 1.03,-1.07 -0.38,-0.79 1.46,-0.12 0.66,0.64 -0.37,1.23 0.96,0.42 0.65,1.3 -0.78,0.98 -0.45,2.38 0.72,1.41 0.2,1.29 1.73,1.3 1.38,0.14 0.31,-0.54 0.88,-0.12 1.27,-0.49 0.91,-0.74 1.55,0.23 0.68,-0.1 1.53,0.23 0.25,-0.57 -0.47,-0.55 0.28,-0.81 1.13,0.25 1.33,-0.29 1.6,0.59 1.23,0.58 0.87,-0.76 0.62,0.12 0.39,0.79 1.34,-0.2 1.07,-1.06 0.86,-2.06 1.66,-2.55 0.96,-0.13 0.69,1.54 1.57,4.88 1.5,0.46 0.08,1.92 -2.11,2.29 0.87,0.84 4.96,0.44 0.1,2.79 2.13,-1.83 3.53,1.01 4.65,1.7 1.37,1.63 -0.46,1.54 3.26,-0.86 5.46,1.48 4.19,-0.11 4.14,2.31 3.58,3.13 2.16,0.8 2.4,0.12 1.02,0.88 0.95,3.57 0.47,1.69 -1.12,4.66 -1.43,1.84 -3.95,3.94 -1.79,3.21 -2.07,2.48 -0.7,0.06 -0.79,2.1 0.2,5.4 -0.78,4.48 -0.3,1.93 -0.88,1.15 -0.5,3.94 -2.84,3.88 -0.48,3.09 -2.27,1.31 -0.66,1.81 -3.04,-0.01 -4.41,1.17 -1.98,1.35 -3.14,0.89 -3.3,2.44 -2.37,3.06 -0.41,2.32 0.47,1.73 -0.53,3.18 -0.63,1.55 -1.96,1.75 -3.11,5.68 -2.47,2.59 -1.91,1.54 -1.27,3.16 -1.86,1.91 -0.78,-1.9 1.24,-1.57 -1.62,-2.25 -2.2,-1.82 -2.89,-2.08 -1.04,0.09 -2.81,-2.5 z",BS:"m 258.11,395.45 -0.69,0.15 -0.71,-1.76 -1.05,-0.89 0.61,-1.95 0.84,0.12 0.98,2.55 0.02,1.78 z m -0.8,-8.69 -3.06,0.5 -0.2,-1.15 1.32,-0.25 1.85,0.09 0.09,0.81 z m 2.3,-0.03 -0.48,2.21 -0.52,-0.4 0.05,-1.63 -1.26,-1.23 -0.01,-0.36 2.22,1.41 z",BT:"m 732.61,383.03 1.14,1 -0.2,1.93 -2.29,0.09 -2.36,-0.21 -1.77,0.49 -2.55,-1.19 -0.05,-0.63 1.85,-2.34 1.51,-0.8 2.01,0.73 1.48,0.08 z",BW:"m 547.42,516.2 0.56,0.52 0.89,1.71 3.17,3.25 1.2,0.32 0.01,1.05 0.82,1.9 2.17,0.46 1.79,1.36 -3.97,2.22 -2.52,2.26 -0.93,2.03 -0.84,1.15 -1.53,0.25 -0.49,1.47 -0.29,0.96 -1.79,0.72 -2.28,-0.15 -1.34,-0.86 -1.18,-0.38 -1.37,0.72 -0.69,1.48 -1.33,0.93 -1.4,1.39 -2.01,0.32 -0.62,-1.09 0.26,-1.9 -1.67,-2.93 -0.75,-0.46 0,-8.86 2.76,-0.11 0.08,-10.57 2.09,-0.09 4.32,-1.03 1.08,1.21 1.78,-1.15 0.86,-0.01 1.58,-0.66 0.5,0.22 z",BY:"m 541.35,284.32 2.71,0.04 3.04,-1.8 0.65,-2.72 2.3,-1.57 -0.26,-2.2 1.7,-0.84 3.02,-1.93 2.95,1.26 0.4,1.23 1.47,-0.59 2.74,1.18 0.27,2.31 -0.6,1.32 1.76,3.15 1.14,0.87 -0.17,0.86 1.89,0.83 0.81,1.25 -1.09,1.02 -2.26,-0.16 -0.54,0.44 0.66,1.54 0.69,2.93 -2.41,0.27 -0.86,1 -0.19,2.26 -1.11,-0.43 -2.53,0.22 -0.74,-1.05 -1.05,0.78 -1.05,-0.65 -2.21,-0.09 -3.13,-1.08 -2.83,-0.36 -2.17,0.1 -1.54,1.23 -1.34,0.17 -0.05,-2.01 -0.87,-2.12 1.68,-0.94 0.02,-1.85 -0.78,-1.78 z",BZ:"m 225.56,413.21 -0.02,-0.43 0.34,-0.14 0.51,0.35 1,-1.77 0.53,-0.04 0.01,0.43 0.53,0.01 -0.04,0.8 -0.46,1.27 0.25,0.45 -0.29,1.05 0.17,0.27 -0.32,1.47 -0.55,0.78 -0.51,0.09 -0.56,1 -0.83,0 0.22,-3.28 z",CA:"m 199.18,96.48 -0.22,-5.9 3.63,0.58 1.63,0.96 3.35,4.92 -0.76,4.97 -4.15,2.77 -2.28,-3.12 -1.2,-5.18 z m 13.21,12.65 0.33,-1.49 -1.97,-2.45 -5.65,-0.19 0.75,3.68 5.25,0.83 1.29,-0.38 z m 36.35,46.95 3.08,5.1 0.81,0.57 3.07,-1.27 3.02,0.2 2.98,0.28 -0.25,-2.64 -4.84,-5.38 -6.42,-1.08 -1.35,0.67 -0.1,3.55 z m -65.43,-62.7 -2.71,4.19 6.24,0.52 4.61,4.44 4.58,1.5 -1.09,-5.68 -2.14,-6.73 -7.58,-5.35 -5.5,-2.04 0.2,5.69 3.39,3.46 z m 25.9,-10.24 5.13,-0.12 -2.22,4 -0.04,5.3 3.01,5.76 5.81,1.77 4.96,-0.99 5.18,-10.73 3.85,-4.45 -3.38,-4.97 -2.21,-10.65 -4.6,-3.19 -4.72,-3.68 -3.58,-9.56 -6.52,0.94 1.23,4.15 -2.87,1.25 -1.94,5.32 -1.94,7.46 1.78,7.26 3.07,5.13 z m -63.75,53.38 3.92,1.95 12.67,-1.3 -5.82,4.77 0.36,3.43 4.26,-0.24 7.07,-4.58 9.5,-1.67 1.71,-5.22 -0.49,-5.57 -2.94,-0.5 -2.5,1.93 -1.1,-4.13 -0.95,-5.7 -2.9,-1.42 -2.57,4.41 4.01,11.05 -4.9,-0.85 -4.98,-6.79 -7.89,-4 -2.64,3.32 -3.82,11.11 z m 22.56,-42.06 -3.65,-2.9 -1.5,-0.66 -2.88,4.28 -0.05,2 4.66,0.01 3.42,-2.73 z m -1.46,12.35 0.93,-3.99 -3.95,-2.12 -4.09,1.39 -2.27,4.26 4.16,4.21 5.22,-3.75 z m 29.09,33.24 4.62,-1.11 1.28,-8.25 -0.09,-5.95 -2.14,-5.56 -0.22,1.6 -3.94,-0.7 -4.22,4.09 -3.02,-0.37 0.18,8.92 4.6,-0.87 -0.06,6.47 3.01,1.73 z m -3.28,45.61 -5.06,-3.93 -4.71,-4.21 -0.87,-6.18 -1.76,-8.92 -3.14,-3.84 -2.79,-1.55 -2.47,1.42 1.99,9.59 -1.41,3.73 -2.29,-8.98 -2.56,-3.11 -3.17,4.81 -3.9,-4.76 -6.24,2.87 1.4,-4.46 -2.87,-1.87 -7.51,5.84 -1.95,3.71 -2.35,6.77 4.9,2.32 4.33,-0.12 -6.5,3.46 1.48,3.13 3.98,0.17 5.99,-0.67 5.42,1.96 -3.66,1.44 -3.95,-0.37 -4.33,1.41 -1.87,0.87 3.45,6.35 2.49,-0.88 3.83,2.15 1.52,3.65 4.99,-0.73 7.1,-1.16 5.26,-2.65 3.26,-0.48 4.82,2.12 5.07,1.22 0.94,-2.86 -1.79,-3.05 4.6,-0.64 0.33,-3.57 z m 7.74,-0.98 -1.96,3.54 -2.47,2.49 3.83,3.54 2.28,-0.85 3.78,2.36 1.74,-2.73 -1.71,-3.03 -0.84,-1.53 -1.68,-1.46 -2.97,-2.33 z m -17.61,-29.45 -2.13,-2.17 -3.76,0.4 -0.95,1.38 4.37,6.75 2.47,-6.36 z m 28.69,13.17 3.01,-6.93 3.34,-1.85 4.19,-8.74 -5.36,-2.47 -5.84,-0.36 -2.78,2.77 -1.47,4.23 -0.04,4.82 1.75,8.19 3.2,0.34 z m 17.15,-23 5.76,-0.18 8.04,-1.61 3.59,1.28 4.18,-2.26 1.75,-2.84 -0.63,-4.52 -3,-4.23 -4.56,-0.8 -5.71,0.97 -4.46,2.44 -4.09,-0.94 -3.78,-0.5 -1.78,-2.7 -3.22,-2.61 0.64,-4.43 -2.42,-3.98 -5.52,0.03 -3.11,-3.99 -5.78,-0.8 -1.06,5.1 3.25,3.74 5.8,1.45 2.81,5.09 0.34,5.6 0.97,5.99 7.45,3.42 4.54,1.28 z m -89.02,-18.27 5.21,-5.05 2.62,-0.59 2.16,-4.23 0.38,-9.77 -3.85,1.91 -4.3,-0.18 -5.76,8.19 -4.76,8.98 3.8,2.51 4.5,-1.77 z m 72.18,16.17 1.53,-4.14 -1.02,-3.46 -2.45,-3.92 -4.03,3.02 -1.49,4.92 3.4,2.79 4.06,0.79 z m -8.31,11.44 -0.73,-2.88 -5,1.26 -3.34,-2.11 -3.32,4.8 3.09,6.28 -5.72,-1.17 -0.06,3.01 6.97,7.05 1.94,3.38 2.7,0.73 4.6,-3.41 0.5,-8.21 -4.24,-4.07 2.61,-4.66 z m -73.99,153.74 -1.16,-2.34 -2.8,-1.77 -1.39,-2.05 -0.95,-1.5 -2.64,-0.46 -1.72,-0.67 -2.94,-0.96 -0.24,1.02 1.08,2.38 2.89,0.78 0.5,1.23 2.51,1.5 0.84,1.51 4.6,1.92 1.42,-0.59 z m 121.7,-77.63 -2,-2.11 -2.06,0.5 -0.25,-3.06 -3.21,-2.04 -3.07,-2.27 -1.63,-1.75 -1.43,1.03 -0.52,-2.96 -2.03,-0.55 -0.96,6.13 -0.36,5.11 -2.44,3.14 3.8,-0.6 0.96,3.65 3.99,-3.23 2.78,-3.38 1.57,2.86 4.36,1.51 2.5,-1.98 z m -120.53,-52.55 7.38,-4.18 v -3.87 l 3.48,-6.41 6.88,-6.69 3.52,-2.47 -3.01,-4.2 -2.72,-2.95 -7.16,-0.57 -4,-2.16 -9.48,1.63 2.74,6.23 -2.43,6.43 -1.94,6.87 -1.2,3.86 6.47,4.69 1.47,3.79 z m 134.24,27.31 0.32,-1.01 -0.03,-3.17 -2.19,-2.08 -2.57,1.05 -1.19,4.17 0.7,3.56 3.14,-0.36 1.82,-2.16 z m 23.82,7.54 4.41,6.6 3.45,2.85 4.92,-7.87 0.87,-4.93 -4.41,-0.47 -4.03,-6.7 -4.45,-1.64 -6.6,-4.97 5.15,-3.63 -2.65,-7.54 -2.44,-3.35 -6.77,-3.35 -2.92,-5.55 -5.21,1.99 -0.36,-3.86 -3.86,-4.32 -6.22,-4.71 -2.65,3.71 -5.55,2.66 0.42,-6.06 -4.81,-10.05 -7.11,4.06 -2.59,7.7 -2.21,-5.92 2.06,-6.37 -7.24,2.65 -2.88,3.99 -2.15,8.42 0.89,9.05 3.98,0.04 -2.93,3.92 2.33,2.96 4.55,1.25 5.93,2.42 10.2,1.82 5.08,-1.04 1.5,-2.42 2.21,2.79 2.47,0.46 2.97,4.96 -1.8,1.98 5.68,2.63 4.29,3.68 1.08,2.55 0.77,3.24 -3.63,6.93 -0.98,3.44 0.94,2.42 -5.77,0.86 -5.27,0.12 -1.85,4.87 2.37,2.23 8.11,-1.03 -0.04,-1.89 4.08,3.15 4.18,3.28 -0.98,1.77 3.4,3.02 6.02,3.53 7.6,2.39 -0.46,-2.09 -2.92,-3.67 -3.96,-5.37 7.03,5 3.54,1.66 0.97,-4.44 -1.82,-6.3 -1.16,-1.73 -3.81,-3.03 -2.95,-3.91 0.35,-3.94 3.64,-0.9 z M 222.6,51.59 l 2.34,7.29 4.96,5.88 9.81,-1.09 6.31,1.97 -4.38,6.05 -2.21,-1.78 -7.66,-0.71 1.19,8.31 3.96,6.04 -0.8,5.2 -4.97,3.46 -2.27,5.47 4.55,2.65 3.82,8.55 -7.5,-5.7 -1.71,0.94 1.38,9.38 -5.18,2.83 0.35,5.85 5.3,0.63 4.17,1.44 8.24,-1.84 7.33,3.27 7.49,-7.19 -0.06,-3.02 -4.79,0.48 -0.39,-2.84 3.92,-3.83 1.33,-5.15 4.33,-3.83 2.66,-4.76 -2.32,-7.1 1.94,-2.65 -3.86,-1.89 8.49,-1.63 1.79,-3.15 5.78,-2.6 4.8,-13.47 4.57,-4.94 6.62,-11.12 -6.1,0.1 2.54,-4.3 6.78,-3.99 6.84,-8.9 0.12,-5.73 -5.13,-6.04 -6.02,-2.93 -7.49,-1.82 -6.07,-1.49 -6.07,-1.5 -8.1,3.98 -1.49,-2.53 -8.57,0.98 -5.03,2.57 -3.7,3.65 -2.13,11.74 -3.06,-6.01 -3.48,-1.14 -4.12,7.97 -5.5,3.35 -3.27,0.66 -4.17,3.84 0.61,6.65 3.28,5.49 z m 74.4,265 -0.98,-1.98 -1.06,1.26 0.7,1.36 3.56,1.71 1.04,-0.26 1.38,-1.66 -2.6,0.11 -2.04,-0.54 z m -57,-77.86 0.61,1.63 1.98,0.14 3.28,-3.34 0.06,-1.19 -3.85,-0.06 -2.08,2.82 z m 62.13,66.44 -2.87,-1.8 -3.69,-1.09 -0.97,0.37 2.61,2.04 3.63,1.34 1.36,-0.08 -0.07,-0.78 z m 24.88,4.79 -0.36,-2.24 -1.96,0.72 0.87,-3.11 -2.8,-1.32 -1.29,1.05 -2.49,-1.18 0.98,-1.51 -1.88,-0.93 -1.83,1.47 1.86,-3.82 1.5,-2.8 0.54,-1.22 -1.3,-0.2 -2.43,1.55 -1.74,2.53 -2.9,6.92 -2.35,2.56 1.22,1.14 -1.75,1.47 0.43,1.23 5.44,0.13 3.01,-0.25 2.69,1.01 -1.98,1.93 1.67,0.14 3.25,-3.58 0.78,0.53 -0.61,3.37 1.84,0.77 1.27,-0.15 1.18,-3.61 -0.86,-2.6 z m -21.19,4.76 -2.81,4.56 -4.63,0.58 -3.64,-2.01 -0.92,-3.07 -0.89,-4.46 2.65,-2.83 -2.48,-2.09 -4.19,0.43 -5.88,3.53 -4.5,5.45 -2.38,0.67 3.23,-3.8 4.04,-5.57 3.57,-1.9 2.35,-3.11 2.9,-0.3 4.21,0.03 6,0.92 4.74,-0.71 3.53,-3.62 4.62,-1.59 2.01,-1.58 2.04,-1.71 -0.2,-5.19 -1.13,-1.77 -2.18,-0.63 -1.11,-4.05 -1.8,-1.55 -4.47,-1.26 -2.52,-2.82 -3.73,-2.83 1.13,-3.2 -3.1,-6.26 -3.65,-6.89 -2.18,-4.98 -1.86,2.61 -2.68,6.05 -4.06,2.97 -2.03,-3.16 -2.56,-0.85 -0.93,-6.99 0.08,-4.8 -5,-0.44 -0.85,-2.27 -3.45,-3.44 -2.61,-2.04 -2.32,1.58 -2.88,-0.58 -4.81,-1.65 -1.95,1.4 0.94,9.18 1.22,5.12 -3.31,5.75 3.41,4.02 1.9,4.44 0.23,3.42 -1.55,3.5 -3.18,3.46 -4.49,2.28 1.98,2.53 1.46,7.4 -1.52,4.68 -2.16,1.46 -4.17,-4.28 -2.03,-5.17 -0.87,-4.76 0.46,-4.19 -3.05,-0.47 -4.63,-0.28 -2.97,-2.08 -3.51,-1.37 -2.01,-2.38 -2.8,-1.94 -5.21,-2.23 -3.92,1.02 -1.31,-3.95 -1.26,-4.99 -4.12,-0.9 0.15,-6.41 1.09,-4.48 3.04,-6.6 3.43,-4.9 3.26,-0.77 0.19,-4.05 2.21,-2.68 4.01,-0.42 3.25,-4.39 0.82,-2.9 2.7,-5.73 0.84,-3.5 2.9,2.11 3.9,-1.08 5.49,-4.96 0.36,-3.54 -1.98,-3.98 2.09,-4.06 -0.17,-3.87 -3.76,-3.95 -4.14,-1.19 -3.98,-0.62 -0.15,8.71 -2.04,6.56 -2.93,5.3 -2.71,-4.95 0.84,-5.61 -3.35,-5.02 -3.75,6.09 0.01,-7.99 -5.21,-1.63 2.49,-4.01 -3.81,-9.59 -2.84,-3.91 -3.7,-1.44 -3.32,6.43 -0.22,9.34 3.27,3.29 3,4.91 -1.27,7.71 -2.26,-0.2 -1.78,5.88 0.02,-7 -4.34,-2.58 -2.49,1.33 0.32,4.67 -4.09,-0.18 -4.35,1.17 -4.95,-3.35 -3.13,0.6 -2.82,-4.11 -2.26,-1.84 -2.24,0.77 -3.41,0.35 -1.81,2.61 2.86,3.19 -3.05,3.72 -2.99,-4.42 -2.39,1.3 -7.57,0.87 -5.07,-1.59 3.94,-3.74 -3.78,-3.9 -2.75,0.5 -3.86,-1.32 -6.56,-2.89 -4.29,-3.37 -3.4,-0.47 -1.06,2.36 -3.44,1.31 -0.38,-6.15 -3.73,5.5 -4.74,-7.32 -1.94,-0.89 -0.63,3.91 -2.09,1.9 -1.93,-3.39 -4.59,2.05 -4.2,3.55 -4.17,-0.98 -3.4,2.5 -2.46,3.28 -2.92,-0.72 -4.41,-3.8 -5.23,-1.94 -0.02,27.65 -0.01,35.43 2.76,0.17 2.73,1.56 1.96,2.44 2.49,3.6 2.73,-3.05 2.81,-1.79 1.49,2.85 1.89,2.23 2.57,2.42 1.75,3.79 2.87,5.88 4.77,3.2 0.08,3.12 -1.56,2.35 0.06,2.48 3.39,3.45 0.49,3.76 3.59,1.96 -0.4,2.79 1.56,3.96 5.08,1.82 2,1.89 5.43,4.23 0.38,0.01 h 7.96 8.32 2.76 8.55 8.27 8.41 l 8.42,0 9.53,0 9.59,0 5.8,0 0.01,-1.64 0.95,-0.02 0.5,2.35 0.87,0.72 1.96,0.26 2.86,0.67 2.72,1.3 2.27,-0.55 3.45,1.09 1.14,-1.66 1.59,-0.66 0.62,-1.03 0.63,-0.55 2.61,0.86 1.93,0.1 0.67,0.57 0.94,2.38 3.15,0.63 -0.49,1.18 1.11,1.21 -0.48,1.56 1.18,0.51 -0.59,1.37 0.75,0.13 0.53,-0.6 0.55,0.9 2.1,0.5 2.13,0.04 2.27,0.41 2.51,0.78 0.91,1.26 1.82,3.04 -0.9,1.3 -2.28,-0.54 -1.42,-2.44 0.36,2.49 -1.34,2.17 0.15,1.84 -0.23,1.07 -1.81,1.27 -1.32,2.09 -0.62,1.32 1.54,0.24 2.08,-1.2 1.23,-1.06 0.83,-0.17 1.54,0.38 0.75,-0.59 1.37,-0.48 2.44,-0.47 v 0 l 0,0 -0.25,-1.15 -0.13,0.04 -0.86,0.2 -1.12,-0.36 0.84,-1.32 0.85,-0.46 1.98,-0.56 2.37,-0.53 1.24,0.73 0.78,-0.85 0.89,-0.54 0.6,0.29 0.03,0.06 2.87,-2.73 1.27,-0.73 4.26,-0.03 5.17,0 0.28,-0.98 0.9,-0.2 1.19,-0.62 1,-1.82 0.86,-3.15 2.14,-3.1 0.93,1.08 1.88,-0.7 1.25,1.19 0,5.52 1.83,2.25 3.12,-0.48 4.49,-0.13 -4.87,3.26 0.11,3.29 2.13,0.28 3.13,-2.79 2.78,-1.58 6.21,-2.35 3.47,-2.62 -1.81,-1.46 -0.29,-2.92 z m -53.66,-71.1 1.1,-3.12 -0.71,-1.23 -1.15,-0.13 -1.08,1.8 -0.13,0.41 0.74,1.77 1.23,0.5 z m -142.66,36.43 0,0 1.56,-2.35 -1.56,2.35 z m -3.4,3.29 -2.69,0.38 -1.32,-0.62 -0.17,1.52 0.52,2.07 1.42,1.46 1.04,2.13 1.69,2.1 1.12,0.01 -2.44,-3.7 0.83,-5.35 z",CD:"m 561.96,453.86 -0.17,3.26 1.12,0.37 -0.9,0.99 -1.08,0.74 -1.07,1.46 -0.59,1.29 -0.16,2.24 -0.65,1.06 -0.02,2.1 -0.81,0.78 -0.1,1.66 -0.39,0.21 -0.26,1.53 0.71,1.26 0.18,3.37 0.5,2.57 -0.28,1.46 0.56,1.62 1.63,1.57 1.51,3.55 -1.1,-0.29 -3.77,0.48 -0.75,0.33 -0.8,1.8 0.63,1.25 -0.5,3.35 -0.35,2.85 0.76,0.51 1.96,1.1 0.77,-0.51 0.24,3.08 -2.15,-0.03 -1.15,-1.57 -1.03,-1.22 -2.15,-0.4 -0.63,-1.49 -1.72,0.9 -2.24,-0.4 -0.94,-1.29 -1.78,-0.26 -1.31,0.07 -0.16,-0.88 -0.97,-0.07 -1.28,-0.17 -1.73,0.42 -1.22,-0.07 -0.7,0.26 0.15,-3.37 -0.93,-1.05 -0.21,-1.73 0.41,-1.7 -0.56,-1.09 -0.05,-1.76 -3.41,0.02 0.25,-1.01 -1.43,0.01 -0.15,0.49 -1.74,0.11 -0.71,1.63 -0.42,0.71 -1.55,-0.4 -0.92,0.4 -1.86,0.22 -1.07,-1.47 -0.64,-0.91 -0.81,-1.68 -0.69,-2.09 -8.27,-0.03 -0.99,0.33 -0.81,-0.05 -1.16,0.38 -0.39,-0.87 0.71,-0.3 0.09,-1.22 0.46,-0.72 1.02,-0.58 0.74,0.28 0.96,-1.07 1.52,0.03 0.18,0.79 1.05,0.5 1.65,-1.76 1.63,-1.36 0.71,-0.89 -0.09,-2.3 1.22,-2.71 1.28,-1.43 1.85,-1.34 0.32,-0.89 0.07,-1.02 0.46,-0.97 -0.15,-1.58 0.35,-2.47 0.55,-1.74 0.84,-1.49 0.16,-1.68 0.25,-1.95 1.1,-1.42 1.5,-0.9 2.31,0.95 1.78,1.03 2.05,0.28 2.09,0.54 0.84,-1.68 0.39,-0.22 1.27,0.28 3.13,-1.39 1.1,0.59 0.91,-0.08 0.42,-0.68 1.04,-0.24 2.11,0.29 1.8,0.06 0.93,-0.29 1.69,2.31 1.26,0.33 0.75,-0.47 1.3,0.19 1.56,-0.59 0.67,1.19 z",CF:"m 518.34,442.91 2.32,-0.22 0.52,-0.72 0.46,0.06 0.7,0.63 3.53,-1.07 1.19,-1.1 1.47,-0.99 -0.28,-0.99 0.79,-0.26 2.71,0.18 2.64,-1.31 2.02,-3.09 1.43,-1.14 1.77,-0.49 0.32,1.22 1.62,1.77 0,1.15 -0.45,1.18 0.18,0.87 0.97,0.81 2.14,1.24 1.53,1.13 0.03,0.92 1.88,1.46 1.17,1.21 0.71,1.68 2.1,1.11 0.45,0.89 -0.93,0.29 -1.8,-0.06 -2.11,-0.29 -1.04,0.24 -0.42,0.68 -0.91,0.08 -1.1,-0.59 -3.13,1.39 -1.27,-0.28 -0.39,0.22 -0.84,1.68 -2.09,-0.54 -2.05,-0.28 -1.78,-1.03 -2.31,-0.95 -1.5,0.9 -1.1,1.42 -0.25,1.95 -1.8,-0.16 -1.9,-0.47 -1.67,1.48 -1.47,2.6 -0.3,-0.81 -0.12,-1.27 -1.28,-0.9 -1.04,-1.44 -0.24,-1 -1.32,-1.46 0.22,-0.83 -0.28,-1.18 0.22,-2.17 0.67,-0.51 z",CG:"m 511.94,476.97 -1.05,-0.96 -0.85,0.47 -1.13,1.2 -2.3,-2.95 2.13,-1.54 -1.05,-1.85 0.96,-0.7 1.89,-0.34 0.22,-1.24 1.5,1.34 2.48,0.12 0.86,-1.32 0.35,-1.85 -0.31,-2.18 -1.32,-1.64 1.21,-3.23 -0.7,-0.55 -2.08,0.22 -0.79,-1.43 0.21,-1.22 3.53,0.11 2.27,0.73 2.23,0.66 0.2,-1.5 1.47,-2.6 1.67,-1.48 1.9,0.47 1.8,0.16 -0.16,1.68 -0.84,1.49 -0.55,1.74 -0.35,2.47 0.15,1.58 -0.46,0.97 -0.07,1.02 -0.32,0.89 -1.85,1.34 -1.28,1.43 -1.22,2.71 0.09,2.3 -0.71,0.89 -1.63,1.36 -1.65,1.76 -1.05,-0.5 -0.18,-0.79 -1.52,-0.03 -0.96,1.07 z",CH:"m 502.4,312.59 0.11,0.74 -0.43,1.01 1.27,0.74 1.43,0.11 -0.22,1.67 -1.23,0.69 -2.08,-0.51 -0.61,1.63 -1.33,0.13 -0.49,-0.64 -1.57,1.36 -1.35,0.19 -1.21,-0.86 -0.96,-1.77 -1.34,0.64 0.04,-1.84 2.05,-2.31 -0.09,-1.05 1.28,0.39 0.77,-0.71 2.38,0.03 0.58,-0.9 z",CI:"m 467.49,449.71 -1.27,0.03 -1.96,-0.55 -1.79,0.03 -3.33,0.49 -1.94,0.81 -2.78,1.02 -0.54,-0.07 0.21,-2.3 0.27,-0.35 -0.08,-1.11 -1.19,-1.17 -0.89,-0.19 -0.82,-0.77 0.61,-1.24 -0.28,-1.36 0.13,-0.82 0.45,0 0.16,-1.23 -0.22,-0.54 0.27,-0.39 1.04,-0.34 -0.69,-2.26 -0.65,-1.16 0.23,-0.97 0.56,-0.21 0.36,-0.26 0.78,0.42 2.16,0.03 0.52,-0.83 0.48,0.06 0.81,-0.32 0.44,1.21 0.65,-0.36 1.16,-0.42 1.26,0.62 0.49,0.93 1.26,0.6 0.98,-0.71 1.32,-0.11 1.92,0.73 0.74,4.01 -1.18,2.36 -0.73,3.17 1.21,2.41 z",CL:"m 283.06,636.98 0,10.57 3,0 1.69,0.13 -0.93,1.98 -2.4,1.53 -1.38,-0.16 -1.66,-0.4 -2.04,-1.48 -2.94,-0.71 -3.53,-2.71 -2.86,-2.57 -3.86,-5.25 2.31,0.97 3.94,3.13 3.72,1.7 1.45,-2.17 0.91,-3.2 2.58,-1.91 2,0.55 z m 1.16,-112.01 1.1,4.15 2.02,-0.41 0.34,0.76 -0.96,3.16 -3.05,1.51 0.09,5.14 -0.59,1 0.84,1.23 -1.98,1.95 -1.84,2.96 -1,2.9 0.27,3.11 -1.73,3.34 1.29,5.69 0.73,0.61 -0.01,3.09 -1.6,3.31 0.06,2.87 -2.12,2.26 0.01,3.22 0.85,3.46 -1.68,1.3 -0.75,3.22 -0.66,3.75 0.47,4.54 -1.13,0.77 0.65,4.4 1.27,1.46 -0.92,1.63 1.3,0.78 0.3,1.48 -1.22,0.75 0.3,2.33 -1.02,5.35 -1.49,3.52 0.33,2.11 -0.89,2.68 -2.15,1.88 0.25,4.6 0.99,1.6 1.87,-0.28 -0.05,3.33 1.16,2.63 6.78,0.61 2.6,0.71 -2.49,-0.03 -1.35,1.13 -2.53,1.67 -0.45,4.38 -1.19,0.11 -3.16,-1.54 -3.21,-3.25 0,0 -3.49,-2.63 -0.88,-2.87 0.79,-2.62 -1.41,-2.94 -0.36,-7.34 1.19,-4.03 2.96,-3.19 -4.26,-1.19 2.67,-3.57 0.95,-6.56 3.12,1.37 1.46,-7.97 -1.88,-1 -0.88,4.75 -1.77,-0.54 0.88,-5.42 0.96,-6.84 1.29,-2.48 -0.81,-3.5 -0.23,-3.98 1.18,-0.11 1.72,-5.6 1.94,-5.43 1.19,-4.97 -0.65,-4.91 0.84,-2.67 -0.34,-3.96 1.64,-3.87 0.51,-6.04 0.9,-6.37 0.88,-6.75 -0.21,-4.87 -0.58,-4.15 1.44,-0.75 0.75,-1.5 1.37,1.99 0.37,2.12 1.47,1.25 -0.88,2.87 1.51,3.34 z",CM:"m 512.17,457.32 -0.35,-0.15 -1.66,0.36 -1.71,-0.38 -1.33,0.19 -4.56,-0.07 0.41,-2.2 -1.1,-1.84 -1.28,-0.48 -0.57,-1.25 -0.72,-0.4 0.04,-0.77 0.72,-1.98 1.33,-2.7 0.81,-0.03 1.67,-1.64 1.07,-0.04 1.57,1.15 1.93,-0.95 0.26,-1.16 0.63,-1.14 0.43,-1.42 1.5,-1.16 0.57,-1.97 0.59,-0.63 0.4,-1.47 0.74,-1.81 2.36,-2.2 0.15,-0.95 0.31,-0.51 -1.11,-1.14 0.09,-0.9 0.79,-0.17 1.11,1.83 0.19,1.89 -0.1,1.89 1.52,2.57 -1.56,-0.03 -0.79,0.2 -1.28,-0.28 -0.61,1.33 1.65,1.65 1.22,0.48 0.4,1.17 0.88,1.93 -0.44,0.77 -1.41,2.84 -0.67,0.51 -0.22,2.17 0.28,1.18 -0.22,0.83 1.32,1.46 0.24,1 1.04,1.44 1.28,0.9 0.12,1.27 0.3,0.81 -0.2,1.5 -2.23,-0.66 -2.27,-0.73 z",CN:"m 784.88,410.66 -2.42,1.41 -2.3,-0.91 -0.08,-2.53 1.38,-1.34 3.06,-0.83 1.61,0.07 0.63,1.13 -1.23,1.3 -0.65,1.7 z m 48.56,-107.52 4.88,1.38 3.32,3.03 1.13,3.95 4.26,0 2.43,-1.65 4.63,-1.24 -1.47,3.76 -1.09,1.51 -0.96,4.46 -1.89,3.89 -3.4,-0.7 -2.41,1.4 0.74,3.36 -0.4,4.55 -1.43,0.1 0.02,1.93 -1.81,-2.24 -1.11,2.13 -4.33,1.62 0.44,1.97 -2.42,-0.14 -1.33,-1.17 -1.93,2.64 -3.09,1.98 -2.28,2.35 -3.92,1.06 -2.06,1.69 -3.02,0.98 1.49,-1.67 -0.59,-1.41 2.22,-2.45 -1.48,-1.93 -2.44,1.3 -3.17,2.54 -1.73,2.34 -2.75,0.17 -1.43,1.68 1.48,2.41 2.29,0.58 0.09,1.58 2.22,1.02 3.14,-2.51 2.49,1.37 1.81,0.09 0.46,1.84 -3.97,0.97 -1.31,1.87 -2.73,1.73 -1.44,2.39 3.02,1.86 1.1,3.31 1.71,3.05 1.9,2.53 -0.05,2.43 -1.76,0.89 0.67,1.73 1.65,1 -0.43,2.61 -0.71,2.52 -1.57,0.28 -2.05,3.41 -2.27,4.09 -2.6,3.68 -3.86,2.82 -3.9,2.55 -3.16,0.35 -1.71,1.34 -0.97,-0.98 -1.59,1.5 -3.92,1.5 -2.97,0.46 -0.96,3.15 -1.55,0.17 -0.74,-2.16 0.66,-1.16 -3.76,-0.96 -1.33,0.49 -2.82,-0.78 -1.33,-1.22 0.44,-1.74 -2.56,-0.55 -1.35,-1.14 -2.39,1.62 -2.73,0.35 -2.24,-0.02 -1.5,0.74 -1.45,0.44 0.42,3.43 -1.5,-0.08 -0.25,-0.7 -0.08,-1.24 -2.06,0.87 -1.21,-0.55 -2.08,-1.13 0.82,-2.51 -1.78,-0.59 -0.67,-2.8 -2.96,0.51 0.34,-3.63 2.66,-2.58 0.11,-2.57 -0.08,-2.4 -1.22,-0.75 -0.94,-1.86 -1.64,0.24 -3.02,-0.47 0.95,-1.33 -1.31,-1.99 -2,1.35 -2.36,-0.78 -3.23,2.03 -2.55,2.36 -2.26,0.39 -1.23,-0.85 -1.48,-0.08 -2,-0.73 -1.51,0.8 -1.85,2.34 -0.24,-2.48 -1.71,0.66 -3.27,-0.31 -3.17,-0.73 -2.28,-1.39 -2.18,-0.63 -0.94,-1.53 -1.58,-0.46 -2.83,-2.09 -2.25,-0.99 -1.16,0.77 -3.9,-2.26 -2.75,-2.07 -0.79,-3.63 2.01,0.44 0.09,-1.69 -1.12,-1.71 0.28,-2.74 -3.01,-3.99 -4.61,-1.39 -0.83,-2.66 -2.07,-1.63 -0.5,-1.01 -0.42,-2.01 0.1,-1.38 -1.7,-0.81 -0.92,0.36 -0.71,-3.32 0.8,-0.83 -0.39,-0.85 2.68,-1.73 1.94,-0.72 2.97,0.49 1.06,-2.35 3.6,-0.44 1,-1.48 4.42,-2.03 0.39,-0.85 -0.22,-2.17 1.92,-1 -2.52,-6.75 5.55,-1.58 1.44,-0.89 2.02,-7.26 5.56,1.35 1.56,-1.86 0.13,-4.19 2.33,-0.39 2.13,-2.83 1.1,-0.35 0.74,2.97 2.36,2.23 4,1.57 1.93,3.32 -1.08,4.73 1.01,1.73 3.33,0.68 3.78,0.55 3.39,2.45 1.73,0.43 1.28,3.57 1.65,2.27 3.09,-0.09 5.79,0.85 3.73,-0.53 2.77,0.57 4.15,2.29 3.39,0 1.24,1.16 3.26,-2.01 4.53,-1.31 4.2,-0.14 3.28,-1.34 2.01,-2.05 1.96,-1.3 -0.45,-1.28 -0.9,-1.5 1.47,-2.54 1.58,0.36 2.88,0.8 2.79,-2.1 4.28,-1.55 2.05,-2.66 1.97,-1.16 4.07,-0.54 2.21,0.46 0.31,-1.45 -2.54,-2.89 -2.25,-1.33 -2.16,1.54 -2.77,-0.65 -1.59,0.53 -0.72,-1.71 1.98,-4.23 1.37,-3.25 3.37,1.63 3.95,-2.74 -0.03,-1.93 2.53,-4.73 1.56,-1.45 -0.04,-2.52 -1.54,-1.1 2.32,-2.31 3.48,-0.84 3.72,-0.13 4.2,1.39 2.46,1.71 1.73,4.61 1.05,1.94 0.98,2.73 1.05,4.31 z",CO:"m 264.17,464.06 -1.2,-0.66 -1.38,-0.92 -0.8,0.44 -2.38,-0.39 -0.68,-1.2 -0.52,0.05 -2.81,-1.59 -0.38,-0.87 1.05,-0.21 -0.12,-1.39 0.65,-1.01 1.39,-0.19 1.19,-1.75 1.07,-1.46 -1.04,-0.67 0.53,-1.62 -0.63,-2.56 0.6,-0.73 -0.44,-2.37 -1.14,-1.5 0.36,-1.36 0.91,0.2 0.53,-0.84 -0.65,-1.65 0.34,-0.42 1.44,0.09 2.11,-1.97 1.15,-0.3 0.03,-0.93 0.52,-2.39 1.61,-1.32 1.76,-0.05 0.22,-0.59 2.2,0.23 2.21,-1.43 1.09,-0.64 1.35,-1.37 1,0.17 0.73,0.75 -0.54,0.96 -1.8,0.48 -0.71,1.42 -1.09,0.81 -0.81,1.06 -0.35,2.01 -0.77,1.66 1.44,0.18 0.36,1.3 0.62,0.62 0.22,1.13 -0.33,1.04 0.1,0.59 0.69,0.23 0.67,0.98 3.6,-0.27 1.63,0.36 1.98,2.41 1.13,-0.3 2.02,0.15 1.6,-0.32 0.99,0.49 -0.51,1.5 -0.62,0.94 -0.22,2.01 0.56,1.85 0.8,0.83 0.09,0.63 -1.42,1.39 1.02,0.61 0.75,0.98 0.85,2.77 -0.53,0.35 -0.54,-1.65 -0.78,-0.88 -0.93,0.96 -5.46,-0.06 0.03,1.74 1.64,0.29 -0.09,1.07 -0.56,-0.29 -1.58,0.46 -0.01,2.02 1.24,1.02 0.44,1.59 -0.07,1.21 -1.26,7.65 -1.4,-1.49 -0.84,-0.06 1.81,-2.84 -2.15,-1.31 -1.68,0.24 -1.01,-0.48 -1.55,0.74 -2.09,-0.35 -1.65,-2.92 -1.3,-0.72 -0.89,-1.32 -1.86,-1.32 z", -CR:"m 242.88,440.65 -1.52,-0.63 -0.57,-0.59 0.32,-0.49 -0.1,-0.62 -0.78,-0.68 -1.1,-0.55 -0.97,-0.36 -0.18,-0.83 -0.74,-0.51 0.18,0.83 -0.56,0.67 -0.64,-0.78 -0.9,-0.28 -0.38,-0.57 0.02,-0.86 0.37,-0.9 -0.79,-0.4 0.64,-0.54 0.42,-0.37 1.85,0.75 0.64,-0.37 0.89,0.24 0.47,0.58 0.82,0.19 0.67,-0.6 0.72,1.54 1.08,1.14 1.32,1.21 -1.09,0.25 0.02,1.13 0.58,0.42 -0.42,0.34 0.11,0.51 -0.23,0.57 z",CU:"m 244.83,397.19 2.43,0.22 2.2,0.03 2.63,1.03 1.12,1.11 2.62,-0.34 0.99,0.7 2.38,1.87 1.74,1.35 0.92,-0.04 1.68,0.61 -0.21,0.84 2.07,0.12 2.12,1.22 -0.33,0.69 -1.87,0.38 -1.89,0.15 -1.93,-0.24 -4.01,0.29 1.88,-1.66 -1.14,-0.77 -1.81,-0.2 -0.97,-0.86 -0.67,-1.7 -1.58,0.11 -2.62,-0.8 -0.84,-0.63 -3.65,-0.47 -0.98,-0.59 1.05,-0.75 -2.75,-0.15 -2.01,1.56 -1.17,0.04 -0.4,0.74 -1.38,0.33 -1.2,-0.29 1.48,-0.93 0.6,-1.09 1.27,-0.67 1.43,-0.59 2.13,-0.29 z",CY:"m 570.56,358.54 1.89,-1.46 -2.55,1.02 -2.02,-0.05 -0.4,0.83 -0.2,0.02 -1.33,0.12 0.65,1.37 1.37,0.44 2.88,-1.38 -0.09,-0.27 z",CZ:"m 523.06,308.11 -1.3,-0.8 -1.31,0.22 -2.18,-1.3 -0.99,0.32 -1.57,1.74 -2.09,-1.37 -1.58,-1.83 -1.43,-1.04 -0.3,-1.82 -0.49,-1.3 2.04,-0.95 1.04,-1.1 2.01,-0.86 0.71,-0.84 0.74,0.51 1.25,-0.47 1.33,1.43 2.09,0.39 -0.17,1.21 1.52,0.9 0.42,-1.13 1.92,0.49 0.27,1.37 2.08,0.26 1.29,2.13 -0.83,0.01 -0.44,0.77 -0.64,0.19 -0.18,0.97 -0.54,0.21 -0.08,0.39 -0.95,0.44 -1.25,-0.07 z",DE:"m 503.32,279.17 0.05,1.88 2.84,1.12 -0.03,1.7 2.85,-0.9 1.57,-1.31 3.17,1.89 1.32,1.51 0.66,2.39 -0.78,1.25 1.01,1.65 0.7,2.45 -0.22,1.56 1.15,2.86 -1.25,0.47 -0.74,-0.51 -0.71,0.84 -2.01,0.86 -1.04,1.1 -2.04,0.95 0.49,1.3 0.3,1.82 1.43,1.04 1.58,1.83 -0.98,1.95 -1.01,0.54 0.4,2.72 -0.27,0.7 -0.87,-0.85 -1.34,-0.12 -2.01,0.74 -2.47,-0.18 -0.4,1.09 -1.42,-1.14 -0.85,0.22 -3,-1.26 -0.58,0.9 -2.38,-0.03 0.35,-2.98 1.42,-2.9 -4.04,-0.78 -1.32,-1.13 0.16,-1.89 -0.56,-0.98 0.32,-2.97 -0.48,-4.69 1.69,0 0.71,-1.71 0.7,-4.23 -0.53,-1.58 0.55,-1 2.34,-0.26 0.52,1.04 1.91,-2.33 -0.64,-1.79 -0.13,-2.75 2.12,0.64 z",DJ:"m 596.3,427.97 0.66,0.88 -0.09,1.19 -1.6,0.68 1.21,0.77 -1.04,1.52 -0.62,-0.5 -0.67,0.2 -1.57,-0.05 -0.05,-0.86 -0.21,-0.79 0.94,-1.33 0.99,-1.26 1.2,0.25 z",DK:"m 511.08,276.09 -1.68,3.97 -2.93,-2.76 -0.39,-2.05 4.11,-1.66 0.89,2.5 z m -4.98,-4.25 -0.69,1.9 -0.83,-0.55 -2.02,3.59 0.76,2.39 -1.79,0.74 -2.12,-0.64 -1.14,-2.72 -0.08,-5.12 0.47,-1.38 0.8,-1.54 2.47,-0.32 0.98,-1.43 2.26,-1.47 -0.1,2.68 -0.83,1.68 0.34,1.43 1.52,0.76 z",DO:"m 274.43,407.6 0.35,-0.51 2.19,0.02 1.66,0.76 0.74,-0.08 0.51,1.05 1.53,-0.06 -0.09,0.88 1.25,0.11 1.38,1.08 -1.04,1.2 -1.34,-0.64 -1.28,0.12 -0.92,-0.14 -0.51,0.54 -1.08,0.18 -0.42,-0.72 -0.93,0.43 -1.12,2 -0.72,-0.46 -0.15,-0.84 0.06,-0.8 -0.72,-0.88 0.68,-0.5 0.22,-1.13 z",DZ:"m 509.15,396.33 -9.61,5.75 -8.12,5.85 -3.95,1.32 -3.11,0.29 -0.03,-1.88 -1.3,-0.48 -1.75,-0.85 -0.66,-1.39 -9.46,-6.55 -9.46,-6.65 -10.55,-7.53 0.06,-0.61 0,-0.21 -0.03,-3.75 4.53,-2.36 2.8,-0.49 2.29,-0.86 1.08,-1.62 3.28,-1.29 0.12,-2.41 1.62,-0.29 1.27,-1.21 3.67,-0.56 0.51,-1.28 -0.74,-0.71 -0.97,-3.53 -0.16,-2.05 -1.06,-2.18 2.69,-1.87 3.04,-0.6 1.77,-1.43 2.7,-1.05 4.75,-0.62 4.64,-0.29 1.41,0.52 2.64,-1.37 3,-0.03 1.14,0.81 1.91,-0.21 -0.57,1.79 0.45,3.28 -0.66,2.82 -1.73,1.88 0.25,2.53 2.29,1.98 0.03,0.81 1.72,1.33 1.2,5.86 0.91,2.84 0.15,1.48 -0.49,2.59 0.2,1.44 -0.36,1.72 0.25,1.97 -1.12,1.29 1.66,2.26 0.11,1.32 0.99,1.71 1.31,-0.56 2.22,1.42 z",EC:"m 250.35,473.12 1.49,-2.08 -0.61,-1.22 -1.07,1.3 -1.68,-1.23 0.57,-0.78 -0.47,-2.53 0.98,-0.42 0.52,-1.73 1.06,-1.8 -0.2,-1.13 1.54,-0.6 1.92,-1.11 2.81,1.59 0.52,-0.05 0.68,1.2 2.38,0.39 0.8,-0.44 1.38,0.92 1.2,0.66 0.39,2.11 -0.87,1.81 -3.06,2.92 -3.37,1.1 -1.72,2.43 -0.53,1.88 -1.59,1.15 -1.17,-1.41 -1.14,-0.3 -1.16,0.22 -0.07,-1.02 0.8,-0.66 z",EE:"m 543.67,264.96 0.33,-3.12 -1.03,0.67 -1.78,-1.9 -0.25,-3.11 3.55,-1.53 3.53,-0.81 3.04,0.92 2.9,-0.17 0.42,0.96 -1.99,3.14 0.83,4.96 -1.2,1.66 -2.32,-0.01 -2.41,-1.94 -1.23,-0.65 z",EG:"m 573.42,377.53 -0.79,1.29 -0.6,2.4 -0.76,1.64 -0.66,0.56 -0.93,-1.02 -1.27,-1.42 -2,-4.57 -0.28,0.29 1.16,3.37 1.72,3.18 2.12,4.88 1.03,1.68 0.9,1.74 2.52,3.4 -0.56,0.53 0.09,1.97 3.27,2.71 0.49,0.62 -11.12,0 -10.88,0 -11.27,0 0,-11.23 0,-11.18 -0.84,-2.58 0.72,-2 -0.43,-1.39 1.01,-1.57 3.73,-0.05 2.7,0.86 2.78,0.97 1.3,0.5 2.16,-1.03 1.15,-0.93 2.48,-0.27 1.99,0.41 0.77,1.62 0.65,-1.07 2.24,0.77 2.19,0.19 1.38,-0.82 z",EH:"m 438.82,383.31 3.62,0.01 8.75,0.03 0,0 0,0 -8.75,-0.03 -3.62,-0.01 -0.11,0.09 -0.05,0.04 -1.78,3.2 -1.86,1.14 -1.02,1.91 -0.06,1.65 -0.75,1.79 -0.94,0.49 -1.56,1.94 -0.96,2.15 0.18,1.02 -0.92,1.57 -1.08,0.82 -0.13,1.39 -0.12,1.27 0.61,-1 10.98,0.02 -0.53,-4.35 0.69,-1.55 2.62,-0.27 -0.09,-7.86 9.21,0.17 0,-4.73 0.06,-0.61 0,-0.21 z",ER:"m 594.25,428.42 -0.96,-0.93 -1.15,-1.67 -1.24,-0.92 -0.73,-1 -2.44,-1.15 -1.92,-0.03 -0.68,-0.61 -1.64,0.68 -1.7,-1.31 -0.88,2.15 -3.26,-0.6 -0.3,-1.15 1.21,-4.25 0.27,-1.93 0.88,-0.9 2.07,-0.48 1.42,-1.67 1.63,3.38 0.77,2.67 1.54,1.41 3.82,2.72 1.56,1.64 1.52,1.66 0.88,0.98 1.38,0.86 -0.85,0.7 z",ES:"m 450.17,334.81 0.14,-2.68 -1.14,-1.66 3.96,-2.77 3.43,0.7 3.77,-0.03 2.98,0.66 2.33,-0.2 4.53,0.12 1.12,1.49 5.16,1.73 1.02,-0.82 3.16,1.72 3.25,-0.49 0.15,2.19 -2.66,2.49 -3.59,0.78 -0.25,1.24 -1.73,2.03 -1.08,2.96 1.09,2.05 -1.62,1.6 -0.6,2.3 -2.12,0.7 -1.99,2.69 -3.55,0.05 -2.68,-0.06 -1.75,1.22 -1.07,1.31 -1.38,-0.29 -1.03,-1.17 -0.8,-2 -2.62,-0.54 -0.23,-1.16 1.04,-1.32 0.38,-0.96 -0.96,-1.06 0.77,-2.35 -1.12,-2.17 1.21,-0.3 0.11,-1.72 0.46,-0.53 0.03,-2.88 1.3,-1 -0.78,-1.88 -1.64,-0.13 -0.48,0.47 -1.65,0.01 -0.71,-1.84 -1.14,0.55 z",ET:"m 581.79,421.48 1.7,1.31 1.64,-0.68 0.68,0.61 1.92,0.03 2.44,1.15 0.73,1 1.24,0.92 1.15,1.67 0.96,0.93 -0.99,1.26 -0.94,1.33 0.21,0.79 0.05,0.86 1.57,0.05 0.67,-0.2 0.62,0.5 -0.61,1.01 1.04,1.56 1.03,1.36 1.07,1.01 9.17,3.34 2.36,-0.02 -7.93,8.42 -3.65,0.12 -2.5,1.97 -1.79,0.05 -0.77,0.88 -1.92,0 -1.13,-0.94 -2.56,1.17 -0.83,1.16 -1.87,-0.22 -0.62,-0.32 -0.66,0.07 -0.88,-0.02 -3.55,-2.38 -1.95,0 -0.96,-0.91 0,-1.57 -1.46,-0.47 -1.65,-3.05 -1.28,-0.65 -0.5,-1.12 -1.42,-1.37 -1.72,-0.2 0.96,-1.61 1.48,-0.07 0.42,-0.86 -0.03,-2.53 0.83,-2.96 1.32,-0.8 0.29,-1.16 1.2,-2.17 1.69,-1.42 1.14,-2.81 0.45,-2.47 3.26,0.6 z",FK:"m 303.91,633.38 3.36,-2.69 2.39,1.12 1.68,-1.79 2.24,2.01 -0.84,1.58 -3.79,1.36 -1.26,-1.59 -2.38,2.05 z",FI:"m 555.67,193.35 -0.41,5.4 4.3,4.99 -2.59,5.48 3.26,7.96 -1.89,5.76 2.53,4.86 -1.15,4.14 4.15,4.26 -1.06,3.1 -2.6,3.45 -6,7.41 -5.09,0.45 -4.93,2.07 -4.56,1.18 -1.63,-3.07 -2.71,-1.87 0.62,-5.72 -1.36,-5.41 1.34,-3.58 2.54,-3.94 6.41,-7.02 1.88,-1.39 -0.3,-2.84 -3.9,-3.22 -0.94,-2.7 -0.08,-11.12 -4.37,-5.15 -3.74,-3.81 1.68,-2.08 3.12,4.15 3.66,-0.39 3.01,1.87 2.67,-3.44 1.38,-5.85 4.35,-2.78 3.6,3.26 z",FJ:"m 980.78,508.86 -0.35,1.4 -0.23,0.16 -1.78,0.72 -1.79,0.61 -0.36,-1.09 1.4,-0.6 0.89,-0.16 1.64,-0.91 0.58,-0.13 z m -5.84,4.31 -1.27,-0.36 -1.08,1 0.27,1.29 1.55,0.36 1.74,-0.4 0.46,-1.53 -0.96,-0.84 -0.71,0.48 z",FR:"m 502.31,333.79 -0.93,2.89 -1.27,-0.76 -0.65,-2.53 0.57,-1.41 1.81,-1.45 0.47,3.26 z m -16.75,-33.35 1.96,2.06 1.44,-0.34 2.45,1.97 0.63,0.37 0.81,-0.09 1.32,1.12 4.04,0.79 -1.42,2.9 -0.36,2.98 -0.77,0.71 -1.28,-0.38 0.09,1.05 -2.05,2.3 -0.04,1.84 1.34,-0.63 0.96,1.77 -0.12,1.13 0.83,1.5 -0.97,1.21 0.72,3.04 1.52,0.49 -0.32,1.68 -2.54,2.17 -5.53,-1.04 -4.08,1.24 -0.32,2.29 -3.25,0.49 -3.15,-1.72 -1.02,0.82 -5.16,-1.73 -1.12,-1.49 1.45,-2.32 0.53,-7.88 -2.89,-4.26 -2.07,-2.09 -4.29,-1.6 -0.28,-3.07 3.64,-0.92 4.71,1.09 -0.89,-4.84 2.65,1.85 6.53,-3.37 0.84,-3.61 2.45,-0.9 0.41,1.56 1.3,0.07 1.3,1.79 z",GA:"m 506.61,474.73 -2.88,-2.82 -1.86,-2.3 -1.7,-2.88 0.09,-0.92 0.61,-0.9 0.68,-2.02 0.57,-2.07 0.95,-0.16 4.07,0.03 -0.02,-3.35 1.33,-0.19 1.71,0.38 1.66,-0.36 0.35,0.15 -0.21,1.22 0.79,1.43 2.08,-0.22 0.7,0.55 -1.21,3.23 1.32,1.64 0.31,2.18 -0.35,1.85 -0.86,1.32 -2.48,-0.12 -1.5,-1.34 -0.22,1.24 -1.89,0.34 -0.96,0.7 1.05,1.85 z",GB:"m 459.63,281.25 -1.5,3.29 -2.12,-0.98 -1.73,0.07 0.58,-2.57 -0.58,-2.6 2.35,-0.2 3,2.99 z m 7.45,-20.76 -3,5.73 2.86,-0.72 3.07,0.03 -0.73,4.22 -2.52,4.53 2.9,0.32 0.22,0.52 2.5,5.79 1.92,0.77 1.73,5.41 0.8,1.84 3.4,0.88 -0.34,2.93 -1.43,1.33 1.12,2.33 -2.52,2.33 -3.75,-0.04 -4.77,1.21 -1.31,-0.87 -1.85,2.06 -2.59,-0.5 -1.97,1.67 -1.49,-0.87 4.11,-4.64 2.51,-0.97 -0.02,0 -4.38,-0.75 -0.79,-1.8 2.93,-1.41 -1.54,-2.48 0.53,-3.06 4.17,0.42 0,0 0.41,-2.74 -1.88,-2.95 -0.04,-0.07 -3.4,-0.85 -0.67,-1.32 1.02,-2.2 -0.92,-1.37 -1.51,2.34 -0.16,-4.8 -1.42,-2.59 1.02,-5.36 2.18,-4.31 2.24,0.42 3.36,-0.41 z",GE:"m 592.01,336.1 0.42,-1.6 -0.7,-2.57 -1.62,-1.41 -1.55,-0.44 -1.03,-1.17 0.34,-0.46 2.37,0.66 4.13,0.62 3.82,1.83 0.49,0.71 1.7,-0.6 2.62,0.8 0.85,1.55 1.77,0.87 -0.73,0.51 1.38,2.02 -0.38,0.43 -1.51,-0.22 -2.09,-1.06 -0.69,0.6 -3.9,0.58 -2.7,-1.82 z",GF:"m 328.14,456.66 -1.07,1.06 -1.34,0.2 -0.38,-0.78 -0.63,-0.12 -0.87,0.76 -1.22,-0.57 0.71,-1.19 0.24,-1.27 0.48,-1.2 -1.09,-1.65 -0.22,-1.91 1.46,-2.41 0.95,0.31 2.06,0.66 2.97,2.36 0.46,1.14 -1.66,2.55 -0.85,2.06 z",GH:"m 478.48,447.09 -4.4,1.64 -1.56,0.96 -2.53,0.81 -2.5,-0.79 0.13,-1.11 -1.21,-2.41 0.73,-3.17 1.18,-2.36 -0.74,-4.01 -0.39,-2.13 0.07,-1.61 4.87,-0.13 1.24,0.21 0.9,-0.46 1.3,0.22 -0.21,0.89 1.17,1.46 0,2.05 0.27,2.22 0.7,1.03 -0.62,2.53 0.22,1.4 0.75,1.78 z",GL:"m 344.38,24.16 9.42,-13.61 9.84,1.07 3.57,-8.95 9.91,-2.42 22.4,3.15 17.54,18.59 -5.18,8.3 -10.73,0.93 -15.09,2.03 1.41,3.64 9.93,-2.24 8.44,6.91 5.45,-6.12 2.33,7.15 -3.08,10.97 7.14,-6.93 13.61,-7.55 8.41,3.81 1.57,8.12 -11.43,12.66 -1.58,3.9 -8.96,2.86 6.49,0.79 -3.28,11.51 -2.26,9.59 0.09,15.26 3.37,8.34 -4.38,0.51 -4.61,3.88 5.17,6.3 0.66,9.62 -3,1.02 3.63,9.15 -6.22,0.75 3.25,4.14 -0.92,3.51 -3.95,1.51 -3.91,0.03 3.51,6.48 0.04,4.13 -5.55,-3.83 -1.44,2.49 3.78,2.29 3.68,5.48 1.06,6.95 -5,1.62 -2.16,-3.26 -3.47,-4.98 0.96,5.87 -3.25,4.41 7.38,0.35 3.87,0.45 -7.52,7.03 -7.62,6.13 -8.2,2.61 -3.09,0.04 -2.9,2.87 -3.9,7.63 -6.03,4.89 -1.94,0.29 -3.74,1.67 -4.02,1.59 -2.41,4.12 -0.04,4.56 -1.41,4.16 -4.58,4.95 1.13,4.71 -1.26,4.85 -1.43,5.56 -3.95,0.34 -4.14,-4.63 -5.61,-0.03 -2.72,-3.18 -1.87,-5.8 -4.86,-7.68 -1.42,-4.15 -0.38,-5.89 -3.89,-6.27 1.01,-5.17 -1.87,-2.53 2.77,-8.65 4.22,-2.85 1.11,-3.26 0.59,-6.26 -3.21,2.86 -1.52,1.19 -2.52,1.14 -3.44,-2.61 -0.19,-5.55 1.1,-4.48 2.6,-0.12 5.72,2.25 -4.82,-5.43 -2.51,-3.01 -2.79,1.24 -2.34,-2.19 3.13,-8.5 -1.7,-3.53 -2.23,-6.74 -3.37,-10.91 -3.57,-4.17 0.03,-4.63 -7.53,-6.69 -5.95,-0.85 -7.49,0.47 -6.84,0.86 -3.26,-3.75 -4.87,-7.66 7.36,-3.97 5.65,-0.68 -12,-3.36 -6.32,-5.44 0.39,-5.34 10.61,-6.87 10.27,-7.16 1.08,-5.64 -7.56,-5.76 2.44,-6.64 9.71,-12.33 4.08,-1.98 -1.17,-8.57 6.64,-5.24 8.62,-3.21 8.62,-0.18 3.06,6.3 7.44,-11.32 6.69,7.78 3.93,1.59 5.83,6.41 L 344,33.25 z",GM:"m 428.28,426.68 0.36,-1.27 3.05,-0.09 0.64,-0.67 0.89,-0.05 1.1,0.71 0.87,0.01 0.93,-0.48 0.56,0.82 -1.21,0.65 -1.22,-0.05 -1.2,-0.61 -1.04,0.66 -0.5,0.03 -0.68,0.4 z",GN:"m 451.84,442.16 -0.79,-0.07 -0.57,1.13 -0.8,-0.01 -0.54,-0.6 0.18,-1.13 -1.17,-1.72 -0.73,0.31 -0.6,0.07 -0.77,0.16 0.03,-1.03 -0.45,-0.74 0.09,-0.82 -0.61,-1.19 -0.78,-1.01 -2.24,0 -0.65,0.53 -0.78,0.06 -0.48,0.61 -0.32,0.79 -1.5,1.24 -1.23,-1.67 -1.09,-1.11 -0.72,-0.36 -0.7,-0.57 -0.31,-1.25 -0.41,-0.62 -0.82,-0.47 1.25,-1.38 0.85,0.05 0.73,-0.48 0.62,0 0.44,-0.38 -0.24,-0.94 0.31,-0.3 0.05,-0.97 1.35,0.03 2.02,0.7 0.62,-0.07 0.21,-0.31 1.52,0.22 0.41,-0.16 0.16,1.05 0.45,-0.01 0.73,-0.38 0.46,0.1 0.78,0.72 1.2,0.23 0.77,-0.62 0.91,-0.38 0.67,-0.4 0.56,0.08 0.62,0.62 0.34,0.79 1.15,1.19 -0.58,0.73 -0.11,0.92 0.6,-0.28 0.35,0.34 -0.15,0.84 0.86,0.82 -0.56,0.21 -0.23,0.97 0.65,1.16 0.69,2.26 -1.04,0.34 -0.27,0.39 0.22,0.54 -0.16,1.23 z",GQ:"m 502.12,460.82 -0.53,-0.42 0.97,-3.13 4.56,0.07 0.02,3.35 -4.07,-0.03 z",GR:"m 541.95,356.96 1.53,1.16 2.18,-0.19 2.09,0.24 -0.07,0.6 1.53,-0.41 -0.35,1.01 -4.04,0.29 0.03,-0.56 -3.42,-0.67 0.52,-1.47 z m 8.15,-20.96 -0.87,2.33 -0.67,0.41 -1.71,-0.1 -1.46,-0.35 -3.4,0.96 1.94,2.06 -1.42,0.59 -1.56,0 -1.48,-1.88 -0.53,0.8 0.63,2.18 1.4,1.7 -1.06,0.79 1.56,1.65 1.39,1.03 0.04,2 -1.36,-1.15 -1.24,0.21 0.83,1.8 -0.92,0.19 -1,-0.69 1.2,3.95 -0.58,0 -0.45,-1.25 -0.57,-0.02 -0.26,1.32 -0.45,-0.3 0.1,-0.74 -0.56,-1.04 H 537 l 0.12,0.84 -0.25,0.27 -0.62,-0.54 -0.38,-1.01 0.52,-0.57 -0.36,-0.74 -0.41,-0.38 -0.42,-0.09 -0.49,-0.94 0.58,-0.52 0.36,-0.48 0.56,0.1 0.25,-0.41 0.59,-0.16 0.68,0.46 0.55,0.17 0.39,-0.62 -0.94,-0.08 -0.56,-0.19 -1.25,0.28 -1.22,0.05 -1.09,-1.64 -0.18,-0.25 0.17,-0.64 -1.42,-1.15 -0.19,-1.03 1.3,-1.76 0.17,-1.19 0.91,-0.53 0.06,-0.97 1.83,-0.33 1.07,-0.81 1.52,0.07 0.46,-0.65 0.53,-0.12 2.07,0.11 2.25,-1.02 1.98,1.3 2.55,-0.35 0.03,-1.86 1.38,0.93 z",GT:"m 222.89,425 -1.44,-0.5 -1.75,-0.05 -1.28,-0.57 -1.51,-1.18 0.07,-0.84 0.32,-0.68 -0.39,-0.54 1.35,-2.36 3.59,-0.01 0.08,-0.98 -0.46,-0.18 -0.31,-0.63 -1.04,-0.67 -1.04,-0.98 1.27,0 0,-1.65 2.62,0 2.59,0.03 -0.02,2.31 -0.22,3.28 0.83,0 0.92,0.53 0.24,-0.44 0.82,0.37 -1.27,1.11 -1.33,0.81 -0.2,0.55 0.22,0.56 -0.58,0.74 -0.66,0.17 0.15,0.34 -0.52,0.32 -0.96,0.72 z",GW:"m 433.08,432.69 -1.5,-1.19 -1.18,-0.18 -0.64,-0.81 0.01,-0.43 -0.85,-0.6 -0.18,-0.61 1.49,-0.47 0.93,0.09 0.75,-0.32 5.18,0.12 -0.05,0.97 -0.31,0.3 0.24,0.94 -0.44,0.38 -0.62,0 -0.73,0.48 -0.85,-0.05 z",GY:"m 307.95,440.25 1.84,1.03 1.74,1.83 0.07,1.45 1.06,0.07 1.5,1.36 1.11,0.98 -0.45,2.52 -1.7,0.73 0.15,0.65 -0.52,1.45 1.25,2.02 0.89,0.01 0.37,1.57 1.71,2.42 -0.68,0.1 -1.55,-0.23 -0.91,0.74 -1.27,0.49 -0.88,0.12 -0.31,0.54 -1.38,-0.14 -1.73,-1.3 -0.2,-1.29 -0.72,-1.41 0.45,-2.38 0.78,-0.98 -0.65,-1.3 -0.96,-0.42 0.37,-1.23 -0.66,-0.64 -1.46,0.12 -1.89,-2.12 0.76,-0.77 -0.06,-1.3 1.73,-0.45 0.69,-0.52 -0.96,-1.04 0.25,-1.03 z",HN:"m 230.68,427.15 -0.48,-0.89 -0.86,-0.25 0.2,-1.15 -0.38,-0.31 -0.58,-0.2 -1.23,0.34 -0.1,-0.39 -0.85,-0.46 -0.6,-0.57 -0.83,-0.24 0.58,-0.74 -0.22,-0.56 0.2,-0.55 1.33,-0.81 1.27,-1.11 0.29,0.12 0.62,-0.51 0.8,-0.04 0.26,0.23 0.44,-0.14 1.3,0.26 1.3,-0.08 0.9,-0.32 0.33,-0.32 0.89,0.15 0.67,0.2 0.73,-0.07 0.56,-0.25 1.28,0.4 0.45,0.06 0.85,0.54 0.81,0.65 1.02,0.44 0.74,0.8 -0.96,-0.06 -0.39,0.39 -0.97,0.38 -0.71,0 -0.62,0.37 -0.56,-0.13 -0.48,-0.44 -0.29,0.08 -0.36,0.69 -0.27,-0.03 -0.05,0.6 -0.98,0.79 -0.51,0.34 -0.29,0.36 -0.83,-0.58 -0.6,0.76 -0.59,-0.02 -0.66,0.07 0.06,1.41 -0.41,0.02 -0.35,0.66 z",HR:"m 528.3,319.18 0.68,1.55 0.89,1.14 -1.08,1.49 -1.27,-0.88 -1.94,0.06 -2.41,-0.66 -1.31,0.09 -0.6,0.82 -1.01,-0.91 -0.59,1.64 1.38,1.83 0.6,1.21 1.29,1.45 1.07,0.85 1.06,1.61 2.48,1.44 -0.31,0.64 -2.63,-1.4 -1.63,-1.38 -2.56,-1.14 -2.36,-2.85 0.57,-0.3 -1.28,-1.64 -0.06,-1.34 -1.8,-0.62 -0.86,1.71 -0.83,-1.33 0.07,-1.38 0.1,-0.06 1.95,0.14 0.52,-0.68 0.95,0.65 1.1,0.08 -0.01,-1.12 0.97,-0.41 0.28,-1.62 2.23,-1.08 0.89,0.5 2.1,1.73 2.31,0.77 z",HT:"m 270.29,407 1.71,0.13 2.43,0.47 0.25,1.61 -0.22,1.13 -0.68,0.5 0.72,0.88 -0.06,0.8 -1.86,-0.5 -1.32,0.2 -1.71,-0.21 -1.31,0.55 -1.51,-0.92 0.25,-0.95 2.58,0.41 2.12,0.24 1.01,-0.66 -1.28,-1.27 0.02,-1.13 -1.77,-0.46 z",HU:"m 520.93,315.36 0.93,-2.65 -0.54,-0.89 1.58,-0.01 0.21,-1.71 1.43,1.07 1.03,0.46 2.36,-0.51 0.22,-0.84 1.12,-0.13 1.36,-0.65 0.3,0.27 1.32,-0.52 0.66,-1 0.92,-0.25 3,1.28 0.6,-0.43 1.55,1.14 0.2,1.12 -1.71,0.87 -1.33,2.8 -1.69,2.76 -2.25,0.76 -1.75,-0.17 -2.15,1.05 -1.05,0.6 -2.31,-0.77 -2.1,-1.73 -0.89,-0.5 -0.55,-1.37 z",ID:"m 813.97,492.31 -1.18,0.05 -3.72,-1.98 2.61,-0.56 1.47,0.86 0.98,0.86 -0.16,0.77 z m 10.43,-0.28 -2.4,0.62 -0.34,-0.34 0.25,-0.96 1.21,-1.72 2.77,-1.12 0.28,0.56 0.05,0.86 -1.82,2.1 z m -18.32,-5.77 1.01,0.75 1.73,-0.23 0.7,1.2 -3.24,0.57 -1.94,0.38 -1.51,-0.02 0.96,-1.62 1.54,-0.02 0.75,-1.01 z m 14.03,-0.01 -0.41,1.56 -4.21,0.8 -3.73,-0.35 -0.01,-1.03 2.23,-0.59 1.76,0.84 1.87,-0.21 2.5,-1.02 z m -40.04,-3.69 5.37,0.28 0.62,-1.16 5.2,1.35 1.02,1.82 4.21,0.51 3.44,1.67 -3.2,1.07 -3.08,-1.13 -2.54,0.08 -2.91,-0.21 -2.62,-0.51 -3.25,-1.07 -2.06,-0.28 -1.17,0.35 -5.11,-1.16 -0.49,-1.21 -2.57,-0.21 1.92,-2.68 3.4,0.17 2.26,1.09 1.16,0.21 0.4,1.02 z m 73.18,-1.58 -1.44,1.91 -0.27,-2.11 0.5,-1.01 0.59,-0.95 0.64,0.82 -0.02,1.34 z m -20.96,-7.71 -1.05,0.93 -1.94,-0.51 -0.55,-1.2 2.84,-0.13 0.7,0.91 z m 9.04,-1.01 1.02,2.13 -2.37,-1.15 -2.34,-0.23 -1.58,0.18 -1.94,-0.1 0.67,-1.53 3.46,-0.12 3.08,0.82 z m 10.29,-5.42 0.78,4.51 2.9,1.67 2.34,-2.96 3.22,-1.68 2.49,0 2.4,0.97 2.08,1 3.01,0.53 0.05,9.1 0.05,9.16 -2.5,-2.31 -2.85,-0.57 -0.69,0.8 -3.55,0.09 1.19,-2.29 1.77,-0.78 -0.73,-3.05 -1.35,-2.35 -5.44,-2.37 -2.31,-0.23 -4.21,-2.58 -0.83,1.36 -1.08,0.25 -0.64,-1.02 -0.01,-1.21 -2.14,-1.37 3.02,-1 2,0.05 -0.24,-0.74 -4.1,-0.01 -1.11,-1.66 -2.5,-0.51 -1.19,-1.38 3.78,-0.67 1.44,-0.91 4.5,1.14 0.45,1.02 z m -24.96,-7.16 -2.25,2.76 -2.11,0.54 -2.7,-0.54 -4.67,0.14 -2.45,0.4 -0.4,2.11 2.51,2.48 1.51,-1.26 5.23,-0.95 -0.23,1.28 -1.22,-0.4 -1.22,1.63 -2.47,1.08 2.65,3.57 -0.51,0.96 2.52,3.22 -0.02,1.84 -1.5,0.82 -1.1,-0.98 1.36,-2.29 -2.75,1.08 -0.7,-0.77 0.36,-1.08 -2.02,-1.64 0.21,-2.72 -1.87,0.85 0.24,3.25 0.11,4 -1.78,0.41 -1.2,-0.82 0.8,-2.57 -0.43,-2.69 -1.18,-0.02 -0.87,-1.91 1.16,-1.83 0.4,-2.21 1.41,-4.2 0.59,-1.15 2.38,-2.07 2.19,0.82 3.54,0.39 3.22,-0.12 2.77,-2.02 0.49,0.61 z m 9.67,0.8 -0.15,2.43 -1.45,-0.27 -0.43,1.69 1.16,1.47 -0.79,0.33 -1.13,-1.76 -0.83,-3.56 0.56,-2.23 0.93,-1.01 0.2,1.52 1.66,0.24 0.27,1.15 z m -30.32,-1.94 3.14,2.58 -3.32,0.33 -0.94,1.9 0.12,2.52 -2.7,1.91 -0.06,2.77 -1.08,4.27 -0.41,-0.99 -3.19,1.26 -1.11,-1.71 -2,-0.16 -1.4,-0.89 -3.33,1 -1.02,-1.35 -1.84,0.15 -2.31,-0.32 -0.43,-3.74 -1.4,-0.77 -1.35,-2.38 -0.39,-2.44 0.33,-2.58 1.67,-1.85 0.47,1.86 1.92,1.57 1.81,-0.57 1.79,0.2 1.63,-1.41 1.34,-0.24 2.65,0.78 2.29,-0.59 1.44,-3.88 1.08,-0.97 0.97,-3.17 3.22,0 2.43,0.47 -1.59,2.52 2.06,2.64 -0.49,1.28 z m -33.81,21.42 -3.1,0.06 -2.36,-2.34 -3.6,-2.28 -1.2,-1.69 -2.12,-2.27 -1.39,-2.09 -2.13,-3.9 -2.46,-2.32 -0.82,-2.39 -1.03,-2.17 -2.53,-1.75 -1.47,-2.39 -2.11,-1.56 -2.92,-3.08 -0.25,-1.42 1.81,0.11 4.34,0.54 2.48,2.73 2.17,1.89 1.55,1.16 2.66,3 2.85,0.04 2.36,1.91 1.62,2.33 2.13,1.27 -1.12,2.27 1.61,0.97 1.01,0.07 0.48,1.94 0.98,1.56 2.06,0.25 1.36,1.76 -0.7,3.47 -0.16,4.32 z",IE:"m 458.13,284.54 0.46,3.36 -2.12,4.12 -4.97,2.68 -3.97,-0.68 2.27,-4.78 -1.46,-4.77 3.81,-3.75 2.12,-2.27 0.58,2.6 -0.58,2.57 1.74,-0.06 z",IL:"m 575.66,367.07 -0.49,1.05 -1.02,-0.46 -0.58,2.2 0.7,0.36 -0.71,0.46 -0.13,0.86 1.32,-0.45 0.07,1.27 -1.4,5.17 -1.84,-5.55 0.81,-1.08 -0.19,-0.19 0.74,-1.53 0.57,-2.5 0.4,-0.84 0.08,-0.03 0.94,0 0.26,-0.58 0.75,-0.05 0.04,1.37 -0.38,0.5 z",IN:"m 693.75,357.69 3.01,3.99 -0.28,2.74 1.11,1.71 -0.09,1.69 -2.01,-0.44 0.79,3.63 2.75,2.06 3.9,2.27 -1.78,1.46 -1.09,2.99 2.72,1.2 2.64,1.55 3.66,1.77 3.84,0.41 1.62,1.59 2.16,0.29 3.38,0.73 2.33,-0.05 0.32,-1.24 -0.37,-1.99 0.22,-1.35 1.71,-0.67 0.24,2.48 0.05,0.63 2.55,1.19 1.77,-0.49 2.36,0.21 2.29,-0.09 0.2,-1.93 -1.14,-1 2.26,-0.4 2.55,-2.35 3.23,-2.03 2.35,0.78 2,-1.34 1.32,1.98 -0.95,1.34 3.02,0.47 0.22,1.2 -0.99,0.58 0.23,1.93 -2,-0.57 -3.63,2.16 0.08,1.78 -1.54,2.6 -0.15,1.5 -1.25,2.52 -2.19,-0.7 -0.11,3.15 -0.63,1.03 0.3,1.28 -1.39,0.72 -1.47,-4.8 -0.78,0.01 -0.46,1.94 -1.53,-1.58 0.86,-1.73 1.26,-0.18 1.29,-2.59 -1.61,-0.53 -2.61,0.05 -2.66,-0.42 -0.25,-2.15 -1.34,-0.16 -2.22,-1.34 -0.99,2.11 2.02,1.63 -1.75,1.15 -0.62,1.12 1.72,0.82 -0.47,1.84 0.97,2.28 0.44,2.48 -0.41,1.1 -1.9,-0.04 -3.46,0.62 0.16,2.25 -1.5,1.76 -4.03,2 -3.14,3.46 -2.11,1.85 -2.79,1.91 0,1.34 -1.4,0.72 -2.53,1.03 -1.31,0.16 -0.84,2.2 0.58,3.75 0.15,2.37 -1.18,2.71 -0.02,4.83 -1.45,0.14 -1.27,2.15 0.85,0.93 -2.56,0.8 -0.94,1.92 -1.13,0.81 -2.65,-2.63 -1.3,-3.96 -1.08,-2.86 -0.98,-1.34 -1.49,-2.74 -0.69,-3.58 -0.49,-1.8 -2.55,-3.97 -1.16,-5.64 -0.84,-3.77 0.01,-3.58 -0.54,-2.8 -4.08,1.79 -1.98,-0.36 -3.66,-3.63 1.35,-1.09 -0.83,-1.18 -3.29,-2.58 1.87,-2.04 6.17,0.01 -0.56,-2.64 -1.57,-1.56 -0.32,-2.39 -1.84,-1.4 3.09,-3.3 3.26,0.24 2.93,-3.32 1.76,-3.26 2.72,-3.24 -0.04,-2.33 2.39,-1.91 -2.27,-1.63 -0.97,-2.25 -0.99,-2.95 1.37,-1.46 4.26,0.83 3.12,-0.51 z",IQ:"m 602.86,356.02 1.83,1.04 0.22,2 -1.42,1.17 -0.65,2.64 1.95,3.18 3.43,1.82 1.45,2.5 -0.46,2.37 0.89,0 0.03,1.73 1.55,1.69 -1.66,-0.15 -1.89,-0.27 -2.06,3.08 -5.21,-0.26 -7.9,-6.49 -4.18,-2.29 -3.38,-0.89 -1.13,-4.04 6.21,-3.5 1.06,-4.12 -0.27,-2.52 1.54,-0.86 1.44,-2.18 1.2,-0.55 3.26,0.46 0.99,0.89 1.34,-0.59 z",IR:"m 626.69,351.78 2.47,-0.68 1.99,-2.02 1.87,0.1 1.23,-0.66 2,0.33 3.1,1.79 2.24,0.39 3.2,3.09 2.09,0.12 0.25,2.91 -1.14,4.25 -0.77,2.45 1.22,0.49 -1.2,1.83 0.92,2.64 0.22,2.09 2.12,0.55 0.23,2.1 -2.54,2.93 1.38,1.68 1.13,1.93 2.68,1.4 0.08,2.77 1.34,0.51 0.23,1.44 -4.04,1.61 -1.06,3.6 -5.27,-0.93 -3.06,-0.71 -3.16,-0.41 -1.2,-3.81 -1.34,-0.56 -2.16,0.56 -2.82,1.51 -3.43,-1.03 -2.83,-2.41 -2.7,-0.9 -1.87,-3.01 -2.07,-4.27 -1.51,0.52 -1.78,-1.07 -1.05,1.26 -1.55,-1.69 -0.03,-1.73 -0.89,0 0.46,-2.37 -1.45,-2.5 -3.43,-1.82 -1.95,-3.18 0.65,-2.64 1.42,-1.17 -0.22,-2 -1.83,-1.04 -1.82,-4.14 -1.53,-2.83 0.54,-1.09 -0.87,-4.12 1.92,-1.03 0.44,1.37 1.42,1.66 1.92,0.47 1.02,-0.1 3.31,-2.66 1.05,-0.27 0.82,1.07 -0.96,1.78 1.75,1.86 0.69,-0.17 0.89,2.61 2.66,0.73 1.95,1.76 3.98,0.6 4.38,-0.92 z",IS:"m 434.82,212.68 -0.64,4.48 3.16,4.6 -3.64,5.01 -8.09,4.38 -2.42,1.15 -3.69,-0.93 -7.82,-2.01 2.76,-2.84 -6.1,-3.2 4.96,-1.28 -0.12,-1.97 -5.88,-1.57 1.89,-4.47 4.25,-1.03 4.37,4.68 4.26,-3.75 3.53,1.96 4.57,-3.71 z",IT:"m 519.02,348.13 -1.01,2.78 0.42,1.09 -0.59,1.79 -2.14,-1.31 -1.43,-0.38 -3.91,-1.79 0.39,-1.82 3.28,0.32 2.86,-0.39 2.13,-0.29 z m -17.69,-10.82 1.68,2.62 -0.39,4.81 -1.27,-0.23 -1.14,1.2 -1.06,-0.95 -0.11,-4.38 -0.64,-2.1 1.54,0.19 1.39,-1.16 z m 8.87,-21.6 4.01,1.05 -0.3,1.99 0.67,1.71 -2.23,-0.58 -2.28,1.42 0.16,1.97 -0.34,1.12 0.92,1.99 2.63,1.95 1.41,3.17 3.12,3.05 2.2,-0.02 0.68,0.83 -0.79,0.74 2.51,1.35 2.06,1.12 2.4,1.92 0.29,0.68 -0.52,1.31 -1.56,-1.7 -2.44,-0.6 -1.18,2.36 2.03,1.34 -0.33,1.88 -1.17,0.21 -1.5,3.06 -1.17,0.27 0.01,-1.08 0.57,-1.91 0.61,-0.77 -1.09,-2.09 -0.86,-1.83 -1.16,-0.46 -0.83,-1.58 -1.8,-0.67 -1.21,-1.49 -2.07,-0.24 -2.19,-1.68 -2.56,-2.45 -1.91,-2.19 -0.87,-3.8 -1.4,-0.45 -2.28,-1.29 -1.29,0.53 -1.62,1.8 -1.17,0.28 0.32,-1.68 -1.52,-0.49 -0.72,-3.04 0.97,-1.21 -0.83,-1.5 0.12,-1.13 1.21,0.86 1.35,-0.19 1.57,-1.36 0.49,0.64 1.34,-0.13 0.61,-1.63 2.07,0.51 1.24,-0.68 0.22,-1.67 1.7,0.58 0.33,-0.78 2.77,-0.71 0.6,1.39 z",JM:"m 258.01,411.21 1.89,0.26 1.49,0.71 0.46,0.8 -1.97,0.05 -0.85,0.49 -1.57,-0.47 -1.6,-1.07 0.33,-0.67 1.18,-0.2 z",JO:"m 575.17,368.12 0.49,-1.05 3.12,1.32 5.49,-3.54 1.13,4.04 -0.53,0.49 -5.62,1.65 2.8,3.26 -0.93,0.54 -0.46,1.09 -2.14,0.44 -0.67,1.16 -1.22,0.98 -3.12,-0.51 -0.09,-0.46 1.4,-5.17 -0.07,-1.27 0.42,-0.96 z",JP:"m 853.01,362.26 0.36,1.15 -1.58,2.03 -1.15,-1.07 -1.44,0.78 -0.74,1.95 -1.83,-0.95 0.02,-1.58 1.55,-2 1.59,0.39 1.15,-1.42 2.07,0.72 z m 17.77,-10.28 -1.06,2.78 0.49,1.73 -1.46,2.42 -3.58,1.6 -4.93,0.21 -4,3.84 -1.88,-1.29 -0.11,-2.52 -4.88,0.75 -3.32,1.59 -3.28,0.06 2.84,2.46 -1.87,5.61 -1.81,1.37 -1.36,-1.27 0.69,-2.96 -1.77,-0.96 -1.14,-2.28 2.65,-1.03 1.47,-2.11 2.82,-1.75 2.06,-2.33 5.58,-1.02 3,0.7 2.93,-6.17 1.87,1.67 4.11,-3.51 1.59,-1.38 1.76,-4.38 -0.48,-4.1 1.18,-2.33 2.98,-0.68 1.53,5.11 -0.08,2.94 -2.59,3.6 0.05,3.63 z m 8.23,-25.93 1.97,0.83 1.98,-1.65 0.62,4.35 -4.16,1.05 -2.46,3.76 -4.41,-2.58 -1.53,4.12 -3.12,0.06 -0.39,-3.74 1.39,-2.94 3,-0.21 0.82,-5.38 0.83,-3.09 3.29,4.12 2.17,1.3 z",KE:"m 590.44,466.03 1.66,2.29 -1.96,1.12 -0.69,1.16 -1.06,0.2 -0.39,1.97 -0.9,1.12 -0.55,1.86 -1.13,0.92 -4.02,-2.79 -0.2,-1.62 -10.16,-5.67 -0.48,-0.31 -0.02,-2.95 0.8,-1.13 1.38,-1.84 1.02,-2.03 -1.23,-3.2 -0.33,-1.4 -1.33,-1.94 1.72,-1.67 1.9,-1.84 1.46,0.47 0,1.57 0.96,0.91 1.95,0 3.55,2.38 0.88,0.02 0.66,-0.07 0.62,0.32 1.87,0.22 0.83,-1.16 2.56,-1.17 1.13,0.94 1.92,0 -2.45,3.17 z",KG:"m 674.47,333.36 0.63,-1.66 1.84,-0.54 4.62,1.31 0.43,-2.24 1.59,-0.8 4,1.61 1.02,-0.42 4.65,0.1 4.16,0.4 1.4,1.37 1.73,0.55 -0.39,0.86 -4.42,2.03 -1,1.48 -3.6,0.44 -1.06,2.35 -2.97,-0.49 -1.93,0.72 -2.68,1.72 0.39,0.85 -0.8,0.83 -5.3,0.55 -3.47,-1.17 -3.04,0.28 0.27,-2.1 3.05,0.61 1.03,-1.13 2.13,0.36 3.59,-2.64 -3.32,-1.96 -2,0.93 -2.07,-1.4 2.35,-2.43 z",KH:"m 765.69,433.85 -1.14,-1.48 -1.41,-2.94 -0.67,-3.45 1.8,-2.38 3.62,-0.55 2.63,0.41 2.31,1.13 1.27,-1.99 2.49,1.06 0.65,1.92 -0.35,3.42 -4.71,2.19 1.23,1.73 -2.94,0.2 -2.43,1.14 z",KP:"m 841.8,332.87 0.39,0.67 -1.06,-0.23 -1.22,1.27 -0.84,1.28 0.11,2.67 -1.45,0.81 -0.5,0.65 -1.06,1.08 -1.87,0.6 -1.21,0.98 -0.09,1.57 -0.33,0.4 1.12,0.58 1.59,1.58 -0.41,0.86 -1.19,0.23 -1.98,0.17 -1.09,1.6 -1.26,-0.12 -0.17,0.32 -1.36,-0.67 -0.34,0.66 -0.82,0.29 -0.1,-0.66 -0.73,-0.32 -0.75,-0.57 0.77,-1.57 0.66,-0.42 -0.25,-0.65 0.71,-1.94 -0.19,-0.59 -1.63,-0.4 -1.32,-0.97 2.28,-2.35 3.09,-1.98 1.93,-2.65 1.33,1.17 2.42,0.14 -0.44,-1.97 4.33,-1.63 1.12,-2.13 z",KR:"m 835.38,346.78 2.42,4.18 0.69,2.27 0.02,3.98 -1.05,1.88 -2.54,0.66 -2.24,1.41 -2.53,0.29 -0.31,-1.85 0.52,-2.57 -1.24,-3.6 2.08,-0.59 -1.92,-3 0.17,-0.32 1.26,0.12 1.09,-1.6 1.98,-0.17 1.19,-0.23 z",XK:"m 533.72,334.17 -0.13,0.77 -0.36,-0.03 -0.18,-1.37 -0.67,-0.38 -0.6,-1.02 0.52,-0.85 0.67,-0.28 0.39,-1.26 0.5,-0.22 0.4,0.54 0.53,0.24 0.36,0.61 0.46,0.18 0.55,0.7 0.4,-0.02 -0.32,0.93 -0.33,0.45 0.09,0.28 -0.63,0.14 z",KW:"m 610.02,376.01 0.58,1.41 -0.25,0.73 0.9,2.41 -1.98,0.08 -0.7,-1.51 -2.5,-0.31 2.06,-3.08 z",KZ:"m 674.47,333.36 -1.61,0.7 -3.69,2.61 -1.23,2.65 -1.05,0.02 -0.76,-1.75 -3.57,-0.12 -0.57,-3.06 -1.37,-0.03 0.21,-3.8 -3.35,-2.8 -4.81,0.3 -3.29,0.56 -2.68,-3.5 -2.29,-1.48 -4.35,-2.84 -0.52,-0.35 -7.22,2.35 0.11,14.13 -1.44,0.18 -1.96,-2.93 -1.9,-1.06 -3.18,0.79 -1.24,1.25 -0.16,-0.92 0.69,-1.57 -0.53,-1.32 -3.25,-1.3 -1.27,-3.47 -1.54,-0.98 -0.1,-1.28 2.73,0.37 0.11,-2.88 2.38,-0.64 2.45,0.59 0.51,-3.91 -0.5,-2.51 -2.81,0.2 -2.38,-1 -3.25,1.79 -2.61,0.86 -1.43,-0.66 0.29,-2.1 -1.79,-2.76 -2.08,0.11 -2.38,-2.83 1.62,-3.22 -0.82,-0.87 2.23,-4.77 2.89,2.53 0.35,-3.19 5.78,-4.85 4.38,-0.12 6.19,3.1 3.31,1.79 2.98,-1.87 4.44,-0.08 3.59,2.29 0.82,-1.31 3.93,0.19 0.71,-2.11 -4.55,-3.09 2.69,-2.23 -0.52,-1.25 2.69,-1.21 -2.02,-3.2 1.28,-1.62 10.49,-1.66 1.37,-1.19 7.02,-1.79 2.52,-2.04 5.04,1.06 0.88,5.01 2.93,-1.16 3.6,1.63 -0.23,2.58 2.69,-0.27 7.02,-4.49 -1.02,1.5 3.58,3.66 6.26,11.58 1.5,-2.33 3.86,2.56 4.03,-1.14 1.54,0.8 1.35,2.55 1.96,0.84 1.2,1.85 3.61,-0.58 1.49,2.63 -2.14,2.83 -2.33,0.4 -0.13,4.18 -1.56,1.86 -5.56,-1.35 -2.02,7.26 -1.44,0.89 -5.55,1.58 2.52,6.75 -1.92,1 0.22,2.16 -1.73,-0.55 -1.4,-1.37 -4.16,-0.4 -4.65,-0.1 -1.02,0.42 -4,-1.61 -1.59,0.8 -0.43,2.24 -4.62,-1.31 -1.84,0.54 z",LA:"m 770.52,423.46 0.91,-1.3 0.13,-2.44 -2.27,-2.53 -0.18,-2.87 -2.13,-2.38 -2.12,-0.2 -0.56,1.02 -1.65,0.08 -0.84,-0.51 -2.95,1.74 -0.07,-2.62 0.69,-3.11 -1.89,-0.13 -0.16,-1.78 -1.22,-0.92 0.6,-1.1 2.39,-1.94 0.25,0.7 1.49,0.08 -0.42,-3.43 1.45,-0.44 1.64,2.37 1.26,2.72 3.45,0.03 1.09,2.59 -1.79,0.77 -0.81,1.07 3.36,1.76 2.33,3.46 1.77,2.57 2.12,2.02 0.71,2.04 -0.51,2.88 -2.49,-1.06 -1.27,1.99 z",LB:"m 575.94,365.18 -0.75,0.05 -0.26,0.58 -0.94,0 1,-2.73 1.39,-2.38 0.06,-0.12 1.26,0.18 0.46,1.32 -1.53,1.27 z",LK:"m 704.82,442.62 -0.42,2.92 -1.17,0.8 -2.44,0.64 -1.34,-2.23 -0.49,-4.03 1.27,-4.58 1.93,1.57 1.31,1.98 z",LR:"m 453.88,451.47 -0.74,0.02 -2.89,-1.33 -2.54,-2.13 -2.39,-1.53 -1.89,-1.81 0.67,-0.9 0.15,-0.81 1.26,-1.53 1.31,-1.31 0.6,-0.07 0.73,-0.31 1.17,1.72 -0.18,1.13 0.54,0.6 0.8,0.01 0.57,-1.13 0.79,0.07 -0.13,0.82 0.28,1.36 -0.61,1.24 0.82,0.77 0.89,0.19 1.19,1.17 0.08,1.11 -0.27,0.35 z",LS:"m 556.75,548 0.98,0.96 -0.86,1.56 -0.48,1.05 -1.56,0.5 -0.52,1.04 -1,0.32 -2.1,-2.49 1.49,-2.03 1.52,-1.25 1.31,-0.64 z",LT:"m 539.24,282.34 -0.23,-1.22 0.3,-1.33 -1.24,-0.77 -2.93,-0.86 -0.6,-4.16 3.21,-1.55 4.7,0.33 2.76,-0.5 0.39,1.05 1.49,0.32 2.7,2.42 0.26,2.2 -2.3,1.57 -0.65,2.72 -3.04,1.8 -2.71,-0.04 -0.67,-1.46 z",LU:"m 492.45,301.54 0.56,0.98 -0.16,1.89 -0.81,0.1 -0.63,-0.38 0.31,-2.43 z",LV:"m 534.54,274 0.1,-3.81 1.38,-3.24 2.64,-1.78 2.22,3.88 2.25,-0.1 0.54,-3.99 2.39,-0.93 1.23,0.65 2.41,1.94 2.32,0.01 1.35,1.19 0.23,2.49 0.91,2.99 -3.02,1.93 -1.7,0.84 -2.7,-2.42 -1.49,-0.32 -0.39,-1.05 -2.76,0.5 -4.7,-0.33 z",LY:"m 517.14,398.18 -1.98,1.12 -1.58,-1.66 -4.43,-1.31 -1.23,-1.91 -2.22,-1.42 -1.31,0.56 -0.99,-1.71 -0.11,-1.32 -1.66,-2.26 1.12,-1.29 -0.25,-1.97 0.36,-1.72 -0.2,-1.44 0.49,-2.59 -0.15,-1.48 -0.91,-2.84 1.37,-0.75 0.24,-1.38 -0.3,-1.35 1.93,-1.26 0.86,-1.05 1.37,-0.95 0.16,-2.55 3.29,1.15 1.18,-0.29 2.34,0.56 3.72,1.47 1.31,2.92 2.52,0.64 3.95,1.36 2.99,1.61 1.37,-0.84 1.34,-1.49 -0.65,-2.51 0.88,-1.6 2.02,-1.55 1.93,-0.45 3.79,0.68 0.96,1.48 1.04,0.01 0.89,0.56 2.79,0.39 0.68,1.08 -1.01,1.57 0.43,1.39 -0.72,2 0.84,2.58 0,11.18 0,11.23 0,5.96 -3.22,0.01 -0.04,1.24 -11.18,-5.7 -11.19,-5.77 z",MA:"m 451.21,383.39 -0.03,-3.75 4.53,-2.36 2.8,-0.49 2.29,-0.86 1.08,-1.62 3.28,-1.29 0.12,-2.41 1.62,-0.29 1.27,-1.21 3.67,-0.56 0.51,-1.28 -0.74,-0.71 -0.97,-3.53 -0.16,-2.05 -1.06,-2.18 -1.22,-0.04 -2.9,-0.75 -2.67,0.24 -1.69,-1.46 -2.06,-0.02 -0.89,2.11 -1.87,3.51 -2.08,1.39 -2.81,1.53 -1.8,2.24 -0.38,1.74 -1.07,2.82 0.7,4.03 -2.34,2.68 -1.4,0.85 -2.21,2.17 -2.61,0.35 -1.3,1.12 3.62,0.01 8.75,0.03 0,0 0,0 -8.75,-0.03 -3.62,-0.01 z",MD:"m 550.14,309.7 0.67,-0.62 1.86,-0.42 2.07,1.31 1.15,0.16 1.27,1.12 -0.2,1.41 1.02,0.67 0.4,1.72 0.98,1.04 -0.19,0.6 0.52,0.42 -0.74,0.29 -1.66,-0.11 -0.27,-0.57 -0.59,0.33 0.2,0.72 -0.77,1.29 -0.49,1.37 -0.7,0.44 -0.51,-1.83 0.3,-1.72 -0.09,-1.79 -1.62,-2.44 -0.89,-1.75 -0.87,-1.24 z",ME:"m 531.02,332.48 -0.17,-0.72 -1.22,1.87 0.19,1.19 -0.59,-0.29 -0.78,-1.23 -1.22,-0.75 0.31,-0.64 0.41,-2.1 0.91,-0.89 0.53,-0.36 0.74,0.66 0.41,0.54 0.92,0.41 1.07,0.79 -0.23,0.33 -0.52,0.85 z",MG:"m 614.42,498.65 0.74,1.21 0.69,1.89 0.46,3.46 0.72,1.35 -0.28,1.38 -0.49,0.86 -0.96,-1.7 -0.52,0.86 0.53,2.14 -0.25,1.24 -0.77,0.67 -0.18,2.48 -1.1,3.42 -1.38,4.09 -1.74,5.67 -1.07,4.21 -1.27,3.55 -2.28,0.73 -2.45,1.31 -1.61,-0.79 -2.23,-1.1 -0.77,-1.62 -0.19,-2.71 -0.98,-2.42 -0.26,-2.17 0.5,-2.16 1.29,-0.52 0.01,-0.99 1.34,-2.26 0.25,-1.88 -0.65,-1.4 -0.53,-1.85 -0.22,-2.7 0.98,-1.63 0.37,-1.85 1.4,-0.1 1.57,-0.6 1.03,-0.52 1.24,-0.04 1.59,-1.65 2.31,-1.78 0.84,-1.44 -0.38,-1.23 1.19,0.35 1.55,-1.99 0.05,-1.72 0.93,-1.28 z",MK:"m 533.23,334.91 0.36,0.03 0.13,-0.77 1.65,-0.59 0.63,-0.14 0.96,-0.22 1.29,-0.06 1.41,1.21 0.2,2.47 -0.54,0.12 -0.46,0.65 -1.52,-0.07 -1.07,0.81 -1.83,0.32 -1.16,-0.9 -0.4,-1.59 z",ML:"m 441.38,422.47 0.94,-0.52 0.47,-1.7 0.89,-0.07 1.96,0.8 1.58,-0.57 1.08,0.19 0.43,-0.64 11.25,-0.04 0.62,-2.03 -0.49,-0.36 -1.35,-12.68 -1.35,-13.06 4.29,-0.05 9.46,6.65 9.46,6.55 0.66,1.39 1.75,0.85 1.3,0.48 0.03,1.88 3.11,-0.29 0.01,6.75 -1.54,1.94 -0.24,1.79 -2.49,0.45 -3.82,0.25 -1.04,1.03 -1.8,0.11 -1.79,0.01 -0.7,-0.55 -1.55,0.41 -2.62,1.2 -0.53,0.9 -2.18,1.28 -0.38,0.74 -1.17,0.58 -1.36,-0.38 -0.77,0.7 -0.41,1.96 -2.23,2.36 0.07,0.96 -0.77,1.21 0.19,1.64 -1.16,0.42 -0.65,0.36 -0.44,-1.21 -0.81,0.32 -0.48,-0.06 -0.52,0.83 -2.16,-0.03 -0.78,-0.42 -0.36,0.26 -0.86,-0.82 0.15,-0.84 -0.35,-0.34 -0.6,0.28 0.11,-0.92 0.58,-0.73 -1.15,-1.19 -0.34,-0.79 -0.62,-0.62 -0.56,-0.08 -0.67,0.4 -0.91,0.38 -0.77,0.62 -1.2,-0.23 -0.78,-0.72 -0.46,-0.1 -0.73,0.38 -0.45,0.01 -0.16,-1.05 0.13,-0.89 -0.24,-1.1 -1.05,-0.81 -0.55,-1.64 z",MM:"m 754.61,406.2 -1.64,1.28 -1.98,0.14 -1.28,3.19 -1.18,0.53 1.36,2.57 1.78,2.13 1.14,1.92 -1.02,2.52 -0.97,0.53 0.67,1.45 1.87,2.28 0.32,1.6 -0.05,1.33 1.1,2.6 -1.54,2.65 -1.36,2.91 -0.27,-2.1 0.86,-2.18 -0.94,-1.68 0.23,-3.11 -1.14,-1.48 -0.91,-3.44 -0.51,-3.66 -1.21,-2.4 -1.85,1.46 -3.19,2.06 -1.57,-0.26 -1.74,-0.67 0.97,-3.61 -0.58,-2.74 -2.2,-3.39 0.34,-1.07 -1.64,-0.38 -1.99,-2.42 -0.18,-2.41 0.98,0.46 0.05,-2.15 1.39,-0.72 -0.3,-1.28 0.63,-1.03 0.11,-3.15 2.19,0.7 1.25,-2.52 0.15,-1.5 1.54,-2.6 -0.08,-1.78 3.63,-2.16 2,0.57 -0.23,-1.93 0.99,-0.58 -0.22,-1.2 1.64,-0.24 0.94,1.86 1.22,0.75 0.09,2.4 -0.12,2.57 -2.65,2.58 -0.34,3.63 2.96,-0.5 0.67,2.8 1.78,0.59 -0.82,2.5 2.08,1.13 1.22,0.55 2.05,-0.87 0.09,1.24 -2.39,1.94 -0.6,1.1 z",MN:"m 721.54,305.13 2.96,-0.74 5.35,-3.74 4.27,-2.07 2.43,1.35 2.93,0.06 1.87,2.05 2.8,0.15 4.06,1.09 2.72,-3.03 -1.14,-2.6 2.91,-4.66 3.14,1.87 2.54,0.53 3.3,1.15 0.53,3.32 3.99,1.84 2.65,-0.81 3.54,-0.57 2.81,0.58 2.75,2.09 1.7,2.2 2.6,-0.04 3.53,0.69 2.58,-1.06 3.69,-0.71 4.11,-3.06 1.68,0.47 1.47,1.46 3.34,-0.36 -1.36,3.25 -1.98,4.22 0.72,1.71 1.59,-0.53 2.76,0.65 2.16,-1.54 2.25,1.33 2.54,2.89 -0.31,1.45 -2.21,-0.46 -4.07,0.54 -1.98,1.16 -2.05,2.66 -4.28,1.55 -2.79,2.1 -2.88,-0.8 -1.58,-0.36 -1.47,2.54 0.89,1.5 0.46,1.28 -1.97,1.3 -2.01,2.05 -3.27,1.33 -4.21,0.15 -4.53,1.31 -3.26,2.01 -1.24,-1.16 -3.39,0 -4.15,-2.29 -2.77,-0.57 -3.73,0.53 -5.79,-0.85 -3.09,0.09 -1.64,-2.27 -1.28,-3.57 -1.73,-0.43 -3.39,-2.45 -3.78,-0.55 -3.33,-0.68 -1.01,-1.73 1.08,-4.73 -1.93,-3.31 -4,-1.57 -2.36,-2.23 z", -MR:"m 441.38,422.47 -1.85,-1.98 -1.7,-2.13 -1.86,-0.77 -1.34,-0.85 -1.57,0.03 -1.36,0.63 -1.4,-0.25 -0.96,0.93 -0.24,-1.56 0.78,-1.44 0.35,-2.75 -0.31,-2.91 -0.34,-1.47 0.28,-1.47 -0.72,-1.42 -1.48,-1.28 0.61,-1 10.98,0.02 -0.53,-4.35 0.69,-1.55 2.62,-0.27 -0.09,-7.86 9.21,0.17 0,-4.73 10.55,7.53 -4.29,0.05 1.35,13.06 1.35,12.68 0.49,0.36 -0.62,2.03 -11.25,0.04 -0.43,0.64 -1.08,-0.19 -1.58,0.57 -1.96,-0.8 -0.89,0.07 -0.47,1.7 z",MW:"m 572.4,495.94 -0.78,2.16 0.78,3.72 0.98,-0.04 1.01,0.92 1.17,2.08 0.24,3.72 -1.21,0.61 -0.86,2.01 -1.83,-1.79 -0.2,-2.04 0.59,-1.35 -0.17,-1.15 -1.1,-0.73 -0.78,0.26 -1.61,-1.38 -1.47,-0.74 0.85,-2.66 0.88,-0.99 -0.54,-2.36 0.56,-2.3 0.48,-0.77 -0.71,-2.4 -1.32,-1.26 2.74,0.52 0.57,0.78 0.95,1.32 z",MX:"m 203.14,388.97 -1.09,2.71 -0.49,2.21 -0.21,4.08 -0.27,1.47 0.49,1.64 0.87,1.47 0.56,2.31 1.86,2.21 0.65,1.69 1.1,1.45 2.98,0.79 1.16,1.22 2.46,-0.82 2.13,-0.29 2.1,-0.53 1.77,-0.51 1.78,-1.2 0.67,-1.73 0.23,-2.49 0.49,-0.87 1.89,-0.79 2.97,-0.69 2.48,0.1 1.7,-0.25 0.67,0.63 -0.09,1.44 -1.51,1.77 -0.66,1.81 0.51,0.51 -0.42,1.28 -0.7,2.29 -0.71,-0.75 -0.59,0.05 -0.53,0.04 -1,1.77 -0.51,-0.35 -0.34,0.14 0.02,0.43 -2.59,-0.03 -2.62,0 0,1.65 -1.27,0 1.04,0.98 1.04,0.67 0.31,0.63 0.46,0.18 -0.08,0.98 -3.59,0.01 -1.35,2.36 0.39,0.54 -0.32,0.68 -0.07,0.84 -3.17,-3.11 -1.45,-0.94 -2.29,-0.76 -1.56,0.21 -2.26,1.09 -1.41,0.29 -1.98,-0.76 -2.1,-0.56 -2.62,-1.33 -2.1,-0.41 -3.18,-1.35 -2.34,-1.4 -0.71,-0.78 -1.57,-0.17 -2.87,-0.93 -1.17,-1.34 -3.01,-1.67 -1.4,-1.87 -0.67,-1.45 0.93,-0.29 -0.29,-0.85 0.65,-0.77 0.01,-1.04 -0.94,-1.34 -0.26,-1.2 -0.94,-1.52 -2.47,-3.02 -2.82,-2.39 -1.36,-1.91 -2.41,-1.26 -0.51,-0.76 0.43,-1.92 -1.43,-0.73 -1.66,-1.52 -0.7,-2.19 -1.51,-0.26 -1.62,-1.66 -1.32,-1.55 -0.12,-1 -1.51,-2.42 -0.99,-2.48 0.04,-1.25 -2.03,-1.29 -0.93,0.14 -1.6,-0.9 -0.45,1.33 0.46,1.56 0.27,2.43 0.97,1.33 2.08,2.21 0.46,0.75 0.43,0.22 0.36,1.1 0.5,-0.05 0.57,2.04 0.85,0.8 0.59,1.11 1.77,1.6 0.93,2.89 0.83,1.35 0.78,1.44 0.15,1.62 1.35,0.1 1.13,1.39 1.02,1.36 -0.07,0.54 -1.18,1.11 -0.5,-0.01 -0.74,-1.85 -1.83,-1.73 -2.02,-1.48 -1.44,-0.78 0.09,-2.25 -0.42,-1.68 -1.34,-0.96 -1.93,-1.39 -0.37,0.4 -0.7,-0.82 -1.73,-0.75 -1.65,-1.83 0.2,-0.24 1.15,0.18 1.04,-1.18 0.11,-1.43 -2.16,-2.27 -1.64,-0.89 -1.04,-2.01 -1.04,-2.12 -1.3,-2.61 -1.14,-2.96 3.19,-0.25 3.56,-0.36 -0.26,0.64 4.23,1.61 6.4,2.31 5.58,-0.03 2.22,0 0,-1.35 4.86,0 1.02,1.17 1.44,1.03 1.66,1.43 0.93,1.69 0.7,1.76 1.45,0.97 2.33,0.96 1.76,-2.53 2.3,-0.06 1.97,1.28 1.41,2.18 0.97,1.86 1.65,1.8 0.62,2.19 0.79,1.47 2.18,0.96 1.99,0.68 z",MY:"m 758.9,446.32 0.22,1.44 1.85,-0.33 0.92,-1.15 0.64,0.26 1.66,1.69 1.18,1.87 0.16,1.88 -0.3,1.27 0.27,0.96 0.21,1.65 0.99,0.77 1.1,2.46 -0.05,0.94 -1.99,0.19 -2.65,-2.06 -3.32,-2.21 -0.33,-1.42 -1.62,-1.87 -0.39,-2.31 -1.01,-1.52 0.31,-2.04 -0.62,-1.19 0.49,-0.5 2.28,1.22 z m 49.19,4.83 -2.06,0.95 -2.43,-0.47 -3.22,0 -0.97,3.17 -1.08,0.97 -1.44,3.88 -2.29,0.59 -2.65,-0.78 -1.34,0.24 -1.63,1.41 -1.79,-0.2 -1.81,0.57 -1.92,-1.57 -0.47,-1.86 2.05,0.96 2.17,-0.52 0.56,-2.36 1.2,-0.53 3.36,-0.6 2.01,-2.21 1.38,-1.77 1.28,1.45 0.59,-0.95 1.34,0.09 0.16,-1.78 0.13,-1.38 2.16,-1.95 1.41,-2.19 1.13,-0.01 1.44,1.42 0.13,1.22 1.85,0.78 2.34,0.84 -0.2,1.1 -1.88,0.14 0.49,1.35 z",MZ:"m 572.4,495.94 2.11,-0.23 3.37,0.8 0.74,-0.36 1.95,-0.07 1,-0.85 1.68,0.04 3.06,-1.1 2.23,-1.64 0.46,1.27 -0.12,2.83 0.35,2.5 0.11,4.48 0.49,1.4 -0.83,2.07 -1.09,2.01 -1.79,1.8 -2.56,1.11 -3.16,1.41 -3.17,3.15 -1.08,0.54 -1.96,2.09 -1.15,0.69 -0.24,2.12 1.33,2.25 0.55,1.76 0.04,0.9 0.49,-0.15 -0.08,2.96 -0.45,1.41 0.66,0.52 -0.42,1.27 -1.17,1.09 -2.31,1.04 -3.37,1.66 -1.23,1.15 0.24,1.3 0.71,0.21 -0.24,1.64 -2.12,-0.02 -0.24,-1.38 -0.42,-1.39 -0.24,-1.11 0.5,-3.43 -0.73,-2.17 -1.34,-4.26 2.95,-3.41 0.74,-2.15 0.43,-0.27 0.31,-1.74 -0.45,-0.88 0.12,-2.2 0.55,-2.04 -0.01,-3.69 -1.45,-0.94 -1.34,-0.21 -0.6,-0.72 -1.3,-0.61 -2.34,0.06 -0.18,-1.08 -0.27,-2.05 8.51,-2.38 1.61,1.38 0.78,-0.26 1.1,0.73 0.17,1.15 -0.59,1.35 0.2,2.04 1.83,1.79 0.86,-2.01 1.21,-0.61 -0.24,-3.72 -1.17,-2.08 -1.01,-0.92 -0.98,0.04 -0.78,-3.72 z",NA:"m 521.33,546.79 -2.08,-2.39 -1.1,-2.3 -0.62,-3.03 -0.69,-2.25 -0.94,-4.72 -0.06,-3.63 -0.36,-1.64 -1.09,-1.24 -1.45,-2.47 -1.47,-3.57 -0.61,-1.85 -2.29,-2.87 -0.17,-2.25 1.35,-0.55 1.68,-0.5 1.82,0.09 1.67,1.32 0.42,-0.21 11.37,-0.12 1.94,1.4 6.79,0.41 5.15,-1.19 2.3,-0.67 1.82,0.17 1.1,0.66 0.03,0.24 -1.58,0.66 -0.86,0.01 -1.78,1.15 -1.08,-1.21 -4.32,1.03 -2.09,0.09 -0.08,10.57 -2.76,0.11 0,8.86 -0.01,11.52 -2.5,1.63 -1.5,0.23 -1.77,-0.6 -1.26,-0.23 -0.47,-1.36 -1.11,-0.87 z",NC:"m 940.33,523.73 2.3,1.86 1.45,1.38 -1.06,0.73 -1.55,-0.82 -2,-1.35 -1.81,-1.59 -1.85,-2.1 -0.39,-1.01 1.2,0.05 1.58,1.01 1.23,1.01 z",NE:"m 481.54,430.13 0.07,-1.95 -3.24,-0.65 -0.08,-1.38 -1.58,-1.87 -0.38,-1.31 0.22,-1.4 1.8,-0.11 1.04,-1.03 3.82,-0.25 2.49,-0.45 0.24,-1.79 1.54,-1.94 -0.01,-6.75 3.95,-1.32 8.12,-5.85 9.61,-5.75 4.43,1.31 1.58,1.66 1.98,-1.12 0.69,4.67 1.05,0.78 0.05,0.95 1.16,1.02 -0.61,1.28 -1.08,5.98 -0.14,3.79 -3.58,2.74 -1.21,3.8 1.17,1.06 -0.01,1.85 1.8,0.07 -0.28,1.34 -0.79,0.17 -0.09,0.9 -0.53,0.07 -1.89,-3.13 -0.66,-0.12 -2.19,1.6 -2.17,-0.83 -1.51,-0.17 -0.81,0.4 -1.65,-0.08 -1.65,1.22 -1.43,0.07 -3.39,-1.48 -1.33,0.7 -1.43,-0.05 -1.05,-1.08 -2.82,-1.07 -3.01,0.34 -0.73,0.62 -0.39,1.65 -0.81,1.15 -0.19,2.54 -2.14,-1.64 -1.01,0.01 z",NG:"m 499.34,450.33 -2.91,1 -1.07,-0.14 -1.08,0.62 -2.24,-0.06 -1.5,-1.75 -0.92,-2.02 -1.99,-1.84 -2.11,0.03 -2.47,0 0.16,-4.53 -0.07,-1.79 0.53,-1.77 0.86,-0.87 1.36,-1.75 -0.29,-0.76 0.55,-1.14 -0.63,-1.68 0.11,-0.95 0.19,-2.54 0.81,-1.15 0.39,-1.65 0.73,-0.62 3.01,-0.34 2.82,1.07 1.05,1.08 1.43,0.05 1.33,-0.7 3.39,1.48 1.43,-0.07 1.65,-1.22 1.65,0.08 0.81,-0.4 1.51,0.17 2.17,0.83 2.19,-1.6 0.66,0.12 1.89,3.13 0.53,-0.07 1.11,1.14 -0.31,0.51 -0.15,0.95 -2.36,2.2 -0.74,1.81 -0.4,1.47 -0.59,0.63 -0.57,1.97 -1.5,1.16 -0.43,1.42 -0.63,1.14 -0.26,1.16 -1.93,0.95 -1.57,-1.15 -1.07,0.04 -1.67,1.64 -0.81,0.03 -1.33,2.7 z",NI:"m 235.18,432.56 -0.97,-0.9 -1.31,-1.15 -0.62,-0.96 -1.18,-0.89 -1.41,-1.29 0.31,-0.44 0.47,0.43 0.21,-0.21 0.87,-0.11 0.35,-0.66 0.41,-0.02 -0.06,-1.41 0.66,-0.07 0.59,0.02 0.6,-0.76 0.83,0.58 0.29,-0.36 0.51,-0.34 0.98,-0.79 0.05,-0.6 0.27,0.03 0.36,-0.69 0.29,-0.08 0.48,0.44 0.56,0.13 0.62,-0.37 0.71,0 0.97,-0.38 0.39,-0.39 0.96,0.06 -0.24,0.28 -0.14,0.64 0.28,1.05 -0.64,0.98 -0.3,1.15 -0.1,1.27 0.16,0.73 0.07,1.29 -0.43,0.28 -0.26,1.22 0.19,0.75 -0.58,0.73 0.14,0.76 0.42,0.47 -0.67,0.6 -0.82,-0.19 -0.47,-0.58 -0.89,-0.24 -0.64,0.37 -1.85,-0.75 z",NL:"m 492.53,286.23 2.33,0.13 0.53,1.58 -0.7,4.23 -0.71,1.71 -1.69,0 0.48,4.69 -1.55,-1.04 -1.77,-1.95 -2.6,0.93 -2.05,-0.35 1.44,-1.24 2.46,-6.74 z",NO:"m 554.48,175.86 8.77,6.24 -3.61,2.23 3.07,5.11 -4.77,3.19 -2.26,0.72 1.19,-5.59 -3.6,-3.25 -4.35,2.78 -1.38,5.85 -2.67,3.44 -3.01,-1.87 -3.66,0.38 -3.12,-4.15 -1.68,2.09 -1.74,0.32 -0.41,5.08 -5.28,-1.22 -0.74,4.22 -2.69,-0.03 -1.85,5.24 -2.8,7.87 -4.35,9.5 1.02,2.23 -0.98,2.55 -2.78,-0.11 -1.82,5.91 0.17,8.04 1.79,2.98 -0.93,6.73 -2.33,3.81 -1.24,3.15 -1.88,-3.35 -5.54,6.27 -3.74,1.24 -3.88,-2.71 -1,-5.86 -0.89,-13.26 2.58,-3.88 7.4,-5.18 5.54,-6.59 5.13,-9.3 6.74,-13.76 4.7,-5.67 7.71,-9.89 6.15,-3.59 4.61,0.44 4.27,-6.99 5.11,0.38 5.03,-1.74 z",NP:"m 722.58,382.7 -0.22,1.35 0.37,1.99 -0.32,1.24 -2.33,0.05 -3.38,-0.73 -2.16,-0.29 -1.62,-1.59 -3.84,-0.41 -3.66,-1.77 -2.64,-1.55 -2.72,-1.2 1.09,-2.99 1.78,-1.46 1.16,-0.78 2.25,1 2.83,2.09 1.57,0.46 0.94,1.53 2.18,0.63 2.28,1.39 3.17,0.73 z",NZ:"m 960.63,588.88 0.64,1.53 1.99,-1.5 0.81,1.57 0,1.57 -1.04,1.74 -1.83,2.8 -1.43,1.54 1.03,1.86 -2.16,0.05 -2.4,1.46 -0.75,2.57 -1.59,4.03 -2.2,1.8 -1.4,1.16 -2.58,-0.09 -1.82,-1.34 -3.05,-0.28 -0.47,-1.48 1.51,-2.96 3.53,-3.87 1.81,-0.73 2.01,-1.47 2.4,-2.01 1.68,-1.98 1.25,-2.81 1.06,-0.95 0.42,-2.07 1.97,-1.7 0.61,1.56 z m 4.46,-17.02 2.03,3.67 0.06,-2.38 1.27,0.95 0.42,2.65 2.26,1.15 1.89,0.28 1.6,-1.35 1.42,0.41 -0.68,3.15 -0.85,2.09 -2.14,-0.07 -0.75,1.1 0.26,1.56 -0.41,0.68 -1.06,1.97 -1.39,2.53 -2.17,1.49 -0.48,-0.98 -1.17,-0.54 1.62,-3.04 -0.92,-2.01 -3.02,-1.45 0.08,-1.31 2.03,-1.25 0.47,-2.74 -0.13,-2.28 -1.14,-2.34 0.08,-0.61 -1.34,-1.43 -2.21,-3.04 -1.17,-2.41 1.04,-0.27 1.53,1.89 2.18,0.89 0.79,3.04 z",OM:"m 640.54,403.43 -1.05,2.04 -1.27,-0.16 -0.58,0.71 -0.45,1.5 0.34,1.98 -0.26,0.36 -1.29,-0.01 -1.75,1.1 -0.27,1.43 -0.64,0.62 -1.74,-0.02 -1.1,0.74 0.01,1.18 -1.36,0.81 -1.55,-0.27 -1.88,0.98 -1.3,0.16 -0.92,-2.04 -2.19,-4.84 8.41,-2.96 1.87,-5.97 -1.29,-2.14 0.07,-1.22 0.82,-1.26 0.01,-1.25 1.27,-0.6 -0.5,-0.42 0.23,-2 1.43,-0.01 1.26,2.09 1.57,1.11 2.06,0.4 1.66,0.55 1.27,1.74 0.76,1 1,0.38 -0.01,0.67 -1.02,1.79 -0.45,0.84 -1.17,0.99 z m -6.92,-14.54 -0.37,0.56 -0.53,-1.06 0.82,-1.06 0.35,0.27 -0.27,1.29 z",PA:"m 257.13,443.46 -0.93,-0.81 -0.6,-1.52 0.69,-0.75 -0.71,-0.19 -0.52,-0.93 -1.4,-0.78 -1.23,0.18 -0.56,0.98 -1.14,0.7 -0.61,0.1 -0.27,0.59 1.33,1.52 -0.76,0.36 -0.41,0.42 -1.3,0.14 -0.49,-1.68 -0.36,0.48 -0.93,-0.16 -0.56,-1.14 -1.15,-0.18 -0.73,-0.33 -1.2,0 -0.09,0.61 -0.32,-0.42 0.15,-0.56 0.23,-0.57 -0.11,-0.51 0.42,-0.34 -0.58,-0.42 -0.02,-1.13 1.09,-0.25 1,1.01 -0.06,0.6 1.12,0.12 0.27,-0.23 0.77,0.7 1.38,-0.21 1.19,-0.71 1.7,-0.57 0.96,-0.84 1.55,0.16 -0.11,0.28 1.57,0.1 1.25,0.49 0.91,0.84 1.06,0.78 -0.34,0.42 0.65,1.65 -0.53,0.84 -0.91,-0.2 z",PE:"m 280.38,513.39 -0.75,1.51 -1.44,0.74 -2.81,-1.68 -0.25,-1.2 -5.55,-2.92 -5.03,-3.17 -2.17,-1.78 -1.16,-2.37 0.46,-0.83 -2.37,-3.75 -2.77,-5.24 -2.64,-5.62 -1.15,-1.29 -0.88,-2.06 -2.18,-1.84 -2,-1.13 0.91,-1.25 -1.36,-2.67 0.87,-1.95 2.24,-1.77 0.33,1.17 -0.8,0.66 0.07,1.02 1.16,-0.22 1.14,0.3 1.17,1.41 1.59,-1.15 0.53,-1.88 1.72,-2.43 3.37,-1.1 3.06,-2.92 0.87,-1.81 -0.39,-2.11 0.75,-0.27 1.86,1.32 0.89,1.32 1.3,0.72 1.65,2.92 2.09,0.35 1.55,-0.74 1.01,0.48 1.68,-0.24 2.15,1.31 -1.81,2.84 0.84,0.06 1.4,1.49 -2.53,-0.13 -0.37,0.42 -2.3,0.53 -3.2,1.91 -0.21,1.3 -0.71,0.98 0.28,1.51 -1.7,0.81 0,1.19 -0.74,0.51 1.17,2.53 1.56,1.72 -0.59,1.21 1.86,0.16 1.06,1.51 2.47,0.07 2.3,-1.66 -0.19,4.3 1.28,0.33 1.58,-0.49 2.43,4.58 -0.61,0.96 -0.13,2.02 -0.06,2.44 -1.1,1.44 0.51,1.07 -0.65,0.97 1.21,2.44 z",PG:"m 912.57,482.67 -0.79,0.28 -1.21,-1.08 -1.23,-1.78 -0.6,-2.13 0.39,-0.27 0.3,0.83 0.85,0.63 1.36,1.77 1.32,0.95 -0.39,0.8 z m -10.93,-3.75 -1.47,0.23 -0.44,0.79 -1.53,0.68 -1.44,0.66 -1.49,0 -2.3,-0.81 -1.6,-0.78 0.23,-0.87 2.51,0.41 1.53,-0.22 0.42,-1.34 0.4,-0.07 0.27,1.49 1.6,-0.21 0.79,-0.96 1.57,-1 -0.31,-1.65 1.68,-0.05 0.57,0.46 -0.06,1.55 -0.93,1.69 z m -13.43,5.35 2.5,1.84 1.82,2.99 1.61,-0.09 -0.11,1.25 2.17,0.48 -0.84,0.53 2.98,1.19 -0.31,0.82 -1.86,0.2 -0.69,-0.73 -2.41,-0.32 -2.83,-0.43 -2.18,-1.8 -1.59,-1.55 -1.46,-2.46 -3.66,-1.23 -2.38,0.8 -1.71,0.93 0.36,2.08 -2.2,0.97 -1.57,-0.47 -2.9,-0.12 -0.05,-9.16 -0.05,-9.1 4.87,1.92 5.18,1.6 1.93,1.43 1.56,1.41 0.43,1.65 4.67,1.73 0.68,1.49 -2.58,0.3 0.62,1.85 z m 16.67,-8.09 -0.88,0.74 -0.53,-1.65 -0.65,-1.08 -1.27,-0.91 -1.6,-1.19 -2.02,-0.82 0.78,-0.67 1.51,0.78 0.95,0.61 1.18,0.67 1.12,1.17 1.07,0.89 0.34,1.46 z",PH:"m 829.84,440.11 0.29,1.87 0.17,1.58 -0.96,2.57 -1.02,-2.86 -1.31,1.42 0.9,2.06 -0.8,1.31 -3.3,-1.63 -0.79,-2.03 0.86,-1.33 -1.78,-1.33 -0.88,1.17 -1.32,-0.11 -2.08,1.57 -0.46,-0.82 1.1,-2.37 1.77,-0.79 1.53,-1.06 0.99,1.27 2.13,-0.77 0.46,-1.26 1.98,-0.08 -0.17,-2.18 2.27,1.34 0.24,1.42 0.18,1.04 z m -6.71,-5.26 -1.01,0.93 -0.88,1.79 -0.88,0.84 -1.73,-1.95 0.58,-0.76 0.7,-0.79 0.31,-1.76 1.55,-0.17 -0.45,1.91 2.08,-2.74 -0.27,2.7 z m -15.36,2.72 -3.73,2.67 1.38,-1.97 2.03,-1.74 1.68,-1.96 1.47,-2.82 0.5,2.31 -1.85,1.56 -1.48,1.95 z m 9.48,-7.3 1.68,0.88 1.78,0 -0.05,1.19 -1.3,1.2 -1.78,0.85 -0.1,-1.32 0.2,-1.45 -0.43,-1.35 z m 10.14,-0.77 0.79,3.18 -2.16,-0.75 0.06,0.95 0.69,1.75 -1.33,0.63 -0.12,-1.99 -0.84,-0.15 -0.44,-1.72 1.65,0.23 -0.04,-1.08 -1.71,-2.18 2.69,0.06 0.76,1.07 z m -11.14,-2.59 -0.74,2.47 -1.2,-1.42 -1.43,-2.18 2.4,0.1 0.97,1.03 z m -0.58,-15.74 1.73,0.84 0.86,-0.76 0.25,0.75 -0.46,1.22 0.96,2.09 -0.74,2.42 -1.65,0.96 -0.44,2.33 0.63,2.29 1.49,0.32 1.24,-0.34 3.5,1.59 -0.27,1.56 0.92,0.69 -0.29,1.32 -2.18,-1.4 -1.04,-1.5 -0.72,1.05 -1.79,-1.72 -2.55,0.42 -1.4,-0.63 0.14,-1.19 0.88,-0.73 -0.84,-0.67 -0.36,1.04 -1.38,-1.65 -0.42,-1.26 -0.1,-2.77 1.13,0.96 0.29,-4.55 0.91,-2.66 1.7,-0.02 z",PL:"m 517.61,297.22 -1.15,-2.86 0.22,-1.56 -0.7,-2.45 -1.01,-1.65 0.78,-1.25 -0.66,-2.39 1.92,-1.39 4.37,-2.22 3.54,-1.64 2.79,0.82 0.21,1.18 2.71,0.06 3.45,0.55 5.16,-0.08 1.44,0.52 0.67,1.46 0.12,2.09 0.78,1.78 -0.02,1.85 -1.68,0.94 0.87,2.12 0.05,2.01 1.41,3.89 -0.3,1.24 -1.39,0.51 -2.55,3.61 0.72,1.92 -0.61,-0.25 -2.66,-1.64 -2.02,0.6 -1.32,-0.44 -1.66,0.92 -1.41,-1.52 -1.16,0.58 -0.16,-0.26 -1.29,-2.13 -2.08,-0.26 -0.27,-1.37 -1.92,-0.49 -0.42,1.13 -1.52,-0.9 0.17,-1.21 -2.09,-0.39 z",PK:"m 686.24,352.01 2.07,1.63 0.83,2.66 4.61,1.39 -2.71,2.86 -3.12,0.51 -4.26,-0.83 -1.37,1.46 0.99,2.95 0.97,2.25 2.27,1.63 -2.39,1.91 0.04,2.33 -2.72,3.24 -1.76,3.26 -2.93,3.32 -3.26,-0.24 -3.09,3.3 1.84,1.4 0.32,2.39 1.57,1.56 0.56,2.64 -6.17,-0.01 -1.87,2.04 -2.05,-0.77 -0.84,-2.2 -2.17,-2.34 -5.16,0.58 -4.56,0.05 -3.95,0.44 1.06,-3.6 4.04,-1.61 -0.23,-1.44 -1.34,-0.51 -0.08,-2.77 -2.68,-1.4 -1.13,-1.93 -1.38,-1.68 4.69,1.64 2.81,-0.48 1.67,0.4 0.57,-0.7 1.95,0.28 3.65,-1.33 0.1,-2.75 1.56,-1.84 2.09,0 0.3,-0.91 2.15,-0.43 1.03,0.3 1.1,-0.92 -0.15,-1.98 1.19,-2 1.78,-0.85 -1.1,-2.22 2.67,0.11 0.77,-1.22 -0.12,-1.3 1.4,-1.43 -0.33,-1.7 -0.66,-1.46 1.64,-1.51 3.01,-0.73 3.22,-0.4 1.42,-0.65 z",PR:"m 289.66,411.14 1.43,0.26 0.51,0.58 -0.72,0.74 -2.11,-0.02 -1.64,0.1 -0.16,-1.25 0.39,-0.43 z",PS:"m 575.17,368.12 0,2.01 -0.42,0.96 -1.32,0.45 0.13,-0.86 0.71,-0.46 -0.7,-0.36 0.58,-2.2 z",PT:"m 450.17,334.81 1.02,-0.95 1.14,-0.55 0.71,1.84 1.65,-0.01 0.48,-0.47 1.64,0.13 0.78,1.88 -1.3,1 -0.03,2.88 -0.46,0.53 -0.11,1.72 -1.21,0.3 1.12,2.17 -0.77,2.35 0.96,1.06 -0.38,0.96 -1.04,1.32 0.23,1.16 -1.12,0.91 -1.48,-0.49 -1.45,0.38 0.43,-2.74 -0.26,-2.18 -1.26,-0.33 -0.67,-1.35 0.23,-2.36 1.11,-1.31 0.2,-1.47 0.59,-2.21 -0.07,-1.57 -0.56,-1.34 z",PY:"m 299.74,527.24 1.11,-3.59 0.07,-1.6 1.34,-2.62 4.89,-0.86 2.6,0.05 2.62,1.51 0.04,0.91 0.83,1.66 -0.18,4.06 2.96,0.58 1.14,-0.59 1.89,0.82 0.53,0.9 0.26,2.77 0.33,1.18 1.04,0.13 1.05,-0.49 1.01,0.55 0,1.68 -0.38,1.82 -0.55,1.78 -0.46,2.75 -2.54,2.4 -2.22,0.5 -3.15,-0.48 -2.82,-0.85 2.76,-4.73 -0.41,-1.37 -2.88,-1.2 -3.43,-2.26 -2.29,-0.46 z",QA:"m 617.97,392.41 -0.19,-2.24 0.76,-1.62 0.76,-0.34 0.85,0.97 0.05,1.81 -0.61,1.81 -0.78,0.22 z",RO:"m 539.18,311.11 1.21,-0.89 1.74,0.46 1.79,0.02 1.3,1.01 0.96,-0.64 2.07,-0.4 0.71,-0.98 1.18,0.01 0.85,0.4 0.87,1.24 0.89,1.75 1.62,2.44 0.09,1.79 -0.3,1.72 0.51,1.83 1.25,0.73 1.31,-0.64 1.28,0.68 0.06,1.03 -1.36,0.84 -0.85,-0.36 -0.78,4.71 -1.65,-0.41 -2.04,-1.41 -3.3,0.9 -1.39,0.99 -4.12,-0.2 -2.16,-0.61 -1.08,0.29 -0.81,-1.6 -0.51,-0.68 0.65,-0.66 -0.7,-0.49 -0.88,0.88 -1.63,-1.14 -0.22,-1.63 -1.71,-0.94 -0.31,-1.27 -1.52,-1.58 2.25,-0.76 1.69,-2.76 1.33,-2.8 z",RS:"m 534.03,321.15 1.71,0.94 0.22,1.63 1.63,1.14 0.88,-0.88 0.7,0.49 -0.65,0.66 0.51,0.68 -0.69,0.88 0.25,1.42 1.36,1.66 -1.07,1.19 -0.47,1.21 0.31,0.45 -0.47,0.54 -1.29,0.06 -0.96,0.22 -0.09,-0.28 0.33,-0.45 0.32,-0.93 -0.4,0.02 -0.55,-0.7 -0.46,-0.18 -0.36,-0.61 -0.53,-0.24 -0.4,-0.54 -0.5,0.22 -0.39,1.26 -0.67,0.28 0.23,-0.33 -1.07,-0.79 -0.92,-0.41 -0.41,-0.54 -0.74,-0.66 0.66,-0.17 0.41,-1.82 -1.35,-1.5 0.7,-1.72 -1.02,0.01 1.08,-1.49 -0.89,-1.14 -0.68,-1.55 2.15,-1.05 1.75,0.17 1.52,1.58 z",RU:"m 1008.52,216 -2.78,2.97 -4.6,0.7 -0.07,6.46 -1.12,1.35 -2.63,-0.19 -2.14,-2.26 -3.73,-1.92 -0.63,-2.89 -2.85,-1.1 -3.19,0.87 -1.52,-2.37 0.61,-2.55 -3.36,1.64 1.26,3.19 -1.59,2.83 -0.02,0.04 -3.6,2.89 -3.63,-0.48 2.53,3.44 1.67,5.2 1.29,1.67 0.33,2.53 -0.72,1.6 -5.23,-1.32 -7.84,4.51 -2.49,0.69 -4.29,4.1 -4.07,3.5 -1.03,2.55 -4.01,-3.9 -7.31,4.42 -1.28,-2.08 -2.7,2.39 -3.75,-0.76 -0.9,3.63 -3.36,5.22 0.1,2.14 3.19,1.17 -0.38,7.46 -2.6,0.19 -1.2,4.15 1.17,2.1 -4.9,2.47 -0.97,5.4 -4.18,1.14 -0.84,4.66 -4.04,4.18 -1.04,-3.08 -1.2,-6.69 -1.56,-10.65 1.35,-6.95 2.37,-3.07 0.15,-2.44 4.36,-1.18 5.01,-6.78 4.83,-5.73 5.04,-4.57 2.25,-8.37 -3.41,0.51 -1.68,4.92 -7.11,6.36 -2.3,-7.14 -7.24,2 -7.02,9.56 2.32,3.38 -6.26,1.42 -4.33,0.56 0.2,-3.95 -4.36,-0.84 -3.47,2.7 -8.57,-0.94 -9.22,1.62 -9.08,10.33 -10.75,11.78 4.42,0.61 1.38,3 2.72,1.05 1.79,-2.38 3.08,0.31 4.05,5.19 0.09,3.92 -2.19,4.51 -0.24,5.27 -1.26,6.85 -4.23,6.01 -0.94,2.82 -3.81,4.66 -3.78,4.53 -1.81,2.28 -3.74,2.25 -1.77,0.05 -1.76,-1.86 -3.76,2.79 -0.44,1.26 -0.39,-0.66 -0.02,-1.93 1.43,-0.1 0.4,-4.55 -0.74,-3.36 2.41,-1.4 3.4,0.7 1.89,-3.89 0.96,-4.46 1.09,-1.51 1.47,-3.76 -4.63,1.24 -2.43,1.65 -4.26,0 -1.13,-3.95 -3.32,-3.03 -4.88,-1.38 -1.04,-4.28 -0.98,-2.73 -1.05,-1.94 -1.73,-4.61 -2.46,-1.71 -4.2,-1.39 -3.72,0.13 -3.48,0.84 -2.32,2.31 1.54,1.1 0.04,2.52 -1.56,1.45 -2.53,4.72 0.03,1.93 -3.95,2.74 -3.37,-1.63 -3.35,0.36 -1.47,-1.46 -1.68,-0.47 -4.11,3.06 -3.69,0.71 -2.58,1.06 -3.53,-0.7 -2.6,0.04 -1.7,-2.2 -2.75,-2.09 -2.81,-0.58 -3.55,0.57 -2.65,0.81 -3.98,-1.84 -0.53,-3.32 -3.3,-1.15 -2.54,-0.53 -3.14,-1.87 -2.9,4.66 1.14,2.6 -2.73,3.03 -4.05,-1.09 -2.8,-0.16 -1.87,-2.04 -2.92,-0.06 -2.44,-1.35 -4.26,2.07 -5.35,3.74 -2.96,0.74 -1.1,0.35 -1.49,-2.63 -3.61,0.58 -1.19,-1.84 -1.96,-0.85 -1.35,-2.55 -1.55,-0.8 -4.03,1.14 -3.86,-2.57 -1.49,2.33 -6.27,-11.58 -3.58,-3.66 1.03,-1.5 -7.03,4.49 -2.69,0.27 0.23,-2.58 -3.6,-1.63 -2.93,1.17 -0.88,-5.01 -5.04,-1.06 -2.52,2.03 -7.02,1.79 -1.37,1.19 -10.49,1.66 -1.29,1.62 2.02,3.21 -2.69,1.2 0.53,1.25 -2.69,2.22 4.54,3.1 -0.7,2.11 -3.94,-0.19 -0.81,1.31 -3.59,-2.29 -4.45,0.09 -2.98,1.87 -3.32,-1.79 -6.18,-3.1 -4.38,0.12 -5.79,4.85 -0.35,3.19 -2.88,-2.53 -2.24,4.77 0.82,0.87 -1.62,3.21 2.38,2.84 2.08,-0.12 1.79,2.76 -0.28,2.1 1.42,0.66 -1.28,2.39 -2.72,0.66 -2.79,4.09 2.55,3.7 -0.28,2.59 3.06,4.46 -1.67,1.51 -0.48,0.95 -1.24,-0.25 -1.93,-2.27 -0.79,-0.13 -1.76,-0.87 -0.86,-1.55 -2.62,-0.79 -1.7,0.6 -0.49,-0.71 -3.82,-1.83 -4.13,-0.62 -2.37,-0.66 -0.34,0.45 -3.57,-3.27 -3.2,-1.48 -2.42,-2.32 2.04,-0.64 2.33,-3.35 -1.57,-1.6 4.13,-1.67 -0.07,-0.9 -2.52,0.66 0.09,-1.83 1.45,-1.16 2.71,-0.31 0.44,-1.4 -0.62,-2.33 1.14,-2.23 -0.03,-1.26 -4.13,-1.41 -1.64,0.05 -1.73,-2.04 -2.15,0.69 -3.56,-1.54 0.06,-0.87 -1,-1.93 -2.24,-0.22 -0.23,-1.39 0.7,-0.91 -1.79,-2.58 -2.91,0.44 -0.85,-0.23 -0.71,1.04 -1.05,-0.18 -0.69,-2.94 -0.66,-1.54 0.54,-0.44 2.26,0.16 1.09,-1.02 -0.81,-1.25 -1.89,-0.83 0.17,-0.86 -1.14,-0.87 -1.76,-3.15 0.6,-1.31 -0.27,-2.31 -2.74,-1.18 -1.47,0.59 -0.4,-1.24 -2.95,-1.26 -0.9,-2.99 -0.24,-2.49 -1.35,-1.19 1.2,-1.66 -0.83,-4.96 2,-3.13 -0.42,-0.96 3.19,-3.07 -2.94,-2.68 6,-7.41 2.6,-3.45 1.05,-3.1 -4.15,-4.26 1.15,-4.15 -2.52,-4.85 1.89,-5.76 -3.26,-7.96 2.59,-5.48 -4.29,-4.99 0.41,-5.4 2.26,-0.72 4.77,-3.19 2.89,-2.81 4.61,4.86 7.68,1.88 10.59,8.65 2.15,3.51 0.19,4.8 -3.11,3.69 -4.58,1.85 -12.52,-5.31 -2.06,0.9 4.57,5.1 0.18,3.15 0.18,6.75 3.61,1.97 2.19,1.66 0.36,-3.11 -1.69,-2.8 1.78,-2.51 6.78,4.1 2.36,-1.59 -1.89,-4.88 6.53,-6.74 2.59,0.4 2.62,2.43 1.63,-4.81 -2.34,-4.28 1.37,-4.41 -2.06,-4.69 7.84,2.44 1.6,4.18 -3.55,0.91 0.02,4.04 2.21,2.44 4.33,-1.54 0.69,-4.61 5.86,-3.52 9.79,-6.54 2.11,0.38 -2.76,4.64 3.48,0.78 2.01,-2.58 5.25,-0.21 4.16,-3.19 3.2,4.62 3.19,-5.09 -2.94,-4.58 1.46,-2.66 8.28,2.44 3.88,2.49 10.16,8.8 1.88,-3.97 -2.85,-4.11 -0.08,-1.68 -3.38,-0.78 0.92,-3.83 -1.5,-6.49 -0.08,-2.74 5.17,-7.99 1.84,-8.42 2.08,-1.88 7.42,2.51 0.58,5.18 -2.66,7.28 1.74,2.78 0.9,5.94 -0.64,11.07 3.09,4.73 -1.2,5.01 -5.49,10.2 3.21,1.02 1.12,-2.51 3.08,-1.82 0.74,-3.55 2.43,-3.49 -1.63,-4.26 1.31,-5.08 -3.07,-0.64 -0.67,-4.42 2.24,-8.28 -3.64,-7.03 5.02,-6.04 -0.65,-6.62 1.4,-0.22 1.47,5.19 -1.11,8.67 3,1.59 -1.28,-6.37 4.69,-3.58 5.82,-0.49 5.18,5.18 -2.49,-7.62 -0.28,-10.28 4.88,-2.02 6.74,0.44 6.08,-1.32 -2.28,-5.38 3.25,-7.02 3.22,-0.3 5.45,-5.51 7.4,-1.51 0.94,-3.15 7.36,-1.08 2.29,2.61 6.29,-6.24 5.15,0.2 0.77,-5.24 2.68,-5.33 6.62,-5.31 4.81,4.21 -3.82,3.13 6.35,1.92 0.76,6.03 2.56,-2.94 8.2,0.16 6.32,5.84 2.25,4.35 -0.7,5.85 -3.1,3.24 -7.37,5.92 -2.11,3.08 3.48,1.43 4.15,2.55 2.52,-1.91 1.43,6.39 1.23,-2.56 4.48,-1.57 9,1.65 0.68,4.58 11.72,1.43 0.16,-7.47 5.95,1.74 4.48,-0.05 4.53,5.14 1.29,6.04 -1.66,3.84 3.52,6.98 4.41,3.49 2.71,-9.18 4.5,4 4.78,-2.38 5.43,2.72 2.07,-2.47 4.59,1.24 -2.02,-8.4 3.7,-4.07 25.32,6.06 2.39,5.35 7.34,6.65 11.32,-1.62 5.58,1.41 2.33,3.5 -0.34,6.02 3.45,2.29 3.75,-1.64 4.97,-0.21 5.29,1.57 5.31,-0.89 4.88,6.99 3.47,-2.48 -2.27,-5.07 1.25,-3.62 8.95,2.29 5.83,-0.49 8.06,3.84 3.92,3.44 6.87,5.86 7.35,7.34 -0.24,4.44 1.89,1.74 -0.65,-5.15 7.61,1.07 5.55,6.53 z m -127.43,90.5 -2.82,-7.68 -1.16,-4.51 0.07,-4.5 -0.97,-4.5 -0.73,-3.15 -1.25,0.67 1.11,2.21 -2.59,2.17 -0.25,6.3 1.64,4.41 -0.12,5.85 -0.65,3.24 0.32,4.54 -0.31,4.01 0.52,3.4 1.84,-3.13 2.13,2.44 0.08,-2.84 -2.73,-4.23 1.72,-6.11 4.15,1.41 z m -343.02,-27.48 -2.94,-0.86 -3.87,1.58 -0.64,2.13 3.45,0.55 5.16,-0.07 -0.22,-1.23 0.3,-1.33 -1.24,-0.77 z M 980.2,178.9 l 3.66,-0.52 2.89,-2.06 0.24,-1.19 -4.06,-2.51 -2.38,-0.02 -0.36,0.37 -3.57,3.64 0.5,2.73 3.08,-0.44 z m -109.88,-27.09 -2.66,3.92 0.49,0.52 5.75,1.08 4.25,-0.07 -0.34,-2.57 -3.98,-3.81 -3.51,0.93 z m 24.57,-9.53 3.24,-4.25 -7.04,-2.88 -5.23,-1.68 -0.67,3.59 5.21,4.27 4.49,0.95 z m -25.13,-1.69 10.33,0.3 2.21,-8.14 -10.13,-6.07 -7.4,-0.51 -3.7,2.18 -1.51,7.75 5.55,7.01 4.65,-2.52 z m -247.12,25.94 -2.87,1.96 0.41,4.83 5.08,2.35 0.74,3.82 9.16,1.1 1.66,-0.74 -5.36,-7.11 -0.57,-7.52 4.39,-9.14 4.18,-9.82 8.71,-10.17 8.56,-5.34 9.93,-5.74 1.88,-3.71 -1.95,-4.83 -5.46,1.6 -4.8,4.49 -9.33,2.22 -9.26,7.41 -6.27,5.85 0.76,4.87 -6.71,9.03 2.58,1.22 -5.56,8.27 0.1,5.1 z m 147.48,-67.94 0.83,-5.72 -7.11,-8.34 -2.11,-0.98 -2.3,1.7 -5.12,18.6 15.81,-5.26 z m -164.23,-29.31 3.04,3.88 3.28,-2.69 0.39,-2.72 2.52,-1.27 3.76,-2.23 1.08,-2.62 -4.16,-3.85 -2.64,2.9 -1.61,4.12 -0.57,-4.65 -4.26,0.21 -5.47,3.14 6.24,0.52 -1.6,5.26 z m 131.25,13.04 4.65,5.73 7.81,4.2 6.12,-1.8 0.69,-13.62 -6.46,-16.04 -5.45,-9.02 -6.07,4.11 -7.28,11.83 3.83,3.27 2.16,11.34 z",RW:"m 560.79,466.8 1.12,1.57 -0.17,1.64 -0.8,0.35 -1.49,-0.18 -0.86,1.59 -1.71,-0.22 0.26,-1.53 0.39,-0.21 0.1,-1.66 0.81,-0.78 0.68,0.29 z",SA:"m 595.45,417.47 -0.36,-1.24 -0.85,-0.88 -0.22,-1.17 -1.44,-1.04 -1.5,-2.46 -0.79,-2.41 -1.94,-2.04 -1.25,-0.48 -1.86,-2.85 -0.32,-2.08 0.12,-1.79 -1.61,-3.36 -1.31,-1.19 -1.52,-0.63 -0.92,-1.76 0.15,-0.69 -0.78,-1.6 -0.82,-0.69 -1.09,-2.32 -1.71,-2.52 -1.43,-2.16 -1.39,0.01 0.43,-1.74 0.13,-1.11 0.34,-1.28 3.12,0.51 1.22,-0.98 0.67,-1.16 2.14,-0.44 0.46,-1.09 0.93,-0.54 -2.8,-3.26 5.62,-1.65 0.53,-0.49 3.38,0.89 4.18,2.29 7.9,6.49 5.21,0.26 2.5,0.31 0.7,1.51 1.98,-0.08 1.1,2.73 1.38,0.71 0.48,1.11 1.91,1.31 0.17,1.29 -0.28,1.03 0.36,1.04 0.8,0.87 0.38,1.01 0.42,0.75 0.84,0.61 0.78,-0.22 0.53,1.17 0.11,0.71 1.08,3.08 8.42,1.52 0.57,-0.64 1.28,2.14 -1.87,5.97 -8.41,2.96 -8.08,1.13 -2.62,1.32 -2.01,3.07 -1.31,0.48 -0.7,-0.97 -1.07,0.15 -2.71,-0.29 -0.52,-0.3 -3.23,0.07 -0.76,0.27 -1.15,-0.76 -0.75,1.43 0.29,1.23 z",SB:"m 930.06,493 0.78,0.97 -1.96,-0.02 -1.07,-1.74 1.67,0.69 0.58,0.1 z m -3.55,-1.73 -1.09,0.06 -1.72,-0.29 -0.59,-0.44 0.18,-1.12 1.85,0.44 0.91,0.59 0.46,0.76 z m 2.32,-0.77 -0.42,0.52 -2.08,-2.45 -0.58,-1.68 h 0.95 l 1.01,2.25 1.12,1.36 z m -5.06,-3.56 0.12,0.57 -2.2,-1.19 -1.54,-1.01 -1.05,-0.94 0.42,-0.29 1.29,0.67 2.3,1.29 0.66,0.9 z m -6.55,-2.78 -0.56,0.16 -1.23,-0.64 -1.15,-1.15 0.14,-0.47 1.67,1.18 1.13,0.92 z",SD:"m 570.73,437.15 -0.39,-0.05 0.05,-1.41 -0.34,-0.97 -1.44,-1.12 -0.34,-2.05 0.34,-2.1 -1.3,-0.19 -0.19,0.63 -1.69,0.15 0.68,0.83 0.24,1.71 -1.54,1.56 -1.4,2.04 -1.44,0.29 -2.36,-1.65 -1.06,0.58 -0.29,0.83 -1.44,0.53 -0.1,0.58 -2.79,0 -0.39,-0.58 -2.02,-0.1 -1.01,0.49 -0.77,-0.25 -1.44,-1.65 -0.48,-0.77 -2.03,0.39 -0.77,1.31 -0.72,2.52 -0.96,0.53 -0.86,0.31 -0.23,-0.14 -0.97,-0.81 -0.18,-0.87 0.45,-1.18 0,-1.15 -1.62,-1.77 -0.32,-1.22 0.03,-0.69 -1.03,-0.83 -0.03,-1.66 -0.58,-1.1 -0.99,0.17 0.28,-1.05 0.73,-1.2 -0.32,-1.18 0.92,-0.88 -0.58,-0.67 0.74,-1.78 1.28,-2.13 2.42,0.2 -0.14,-11.61 0.04,-1.24 3.22,-0.01 0,-5.96 11.27,0 10.88,0 11.12,0 0.9,2.94 -0.61,0.54 0.41,3.06 1.03,3.52 1.06,0.73 1.54,1.08 -1.42,1.67 -2.07,0.48 -0.88,0.9 -0.27,1.93 -1.21,4.25 0.3,1.15 -0.45,2.47 -1.14,2.81 -1.69,1.42 -1.2,2.17 -0.29,1.16 -1.32,0.8 -0.83,2.96 z",SE:"m 537.7,217.74 -2.72,4.69 0.44,4.02 -4.46,5.13 -5.41,5.34 -2.05,8.41 2,4.07 2.68,3.14 -2.57,6.23 -2.92,1.26 -1.07,8.84 -1.59,4.76 -3.4,-0.49 -1.59,3.95 -3.25,0.23 -0.89,-4.71 -2.35,-5.81 -2.13,-7.5 1.24,-3.15 2.33,-3.81 0.93,-6.73 -1.79,-2.98 -0.18,-8.04 1.83,-5.91 2.78,0.11 0.97,-2.55 -1.02,-2.23 4.35,-9.5 2.81,-7.87 1.85,-5.24 2.69,0.02 0.75,-4.21 5.28,1.22 0.41,-5.08 1.74,-0.33 3.74,3.81 4.37,5.15 0.08,11.12 0.94,2.7 z",SI:"m 514.21,316.76 2.32,0.31 1.42,-0.92 2.45,-0.1 0.53,-0.69 0.47,0.05 0.55,1.37 -2.23,1.08 -0.28,1.62 -0.97,0.41 0.01,1.12 -1.1,-0.08 -0.95,-0.65 -0.52,0.68 -1.95,-0.14 0.62,-0.36 -0.67,-1.71 z",SJ:"m 544.83,104.74 -6.26,5.36 -4.95,-3.02 1.94,-3.42 -1.69,-4.34 5.81,-2.78 1.11,5.18 4.04,3.02 z m -18.15,-26.68 9.23,11.29 -7.06,5.66 -1.56,10.09 -2.46,2.49 -1.33,10.51 -3.38,0.48 -6.03,-7.64 2.54,-4.62 -4.2,-3.86 -5.46,-11.82 -2.18,-11.79 7.64,-5.69 1.54,5.56 3.99,-0.22 1.06,-5.43 4.12,-0.56 3.54,5.55 z m 20.17,-11.46 5.5,5.8 -4.16,8.52 -8.13,1.81 -8.27,-2.56 -0.5,-4.32 -4.02,-0.28 -3.07,-7.48 8.66,-4.72 4.07,4.08 2.84,-5.09 7.08,4.24 z",SK:"m 528.36,304.27 0.16,0.26 1.16,-0.58 1.41,1.52 1.66,-0.92 1.32,0.44 2.02,-0.6 2.66,1.64 -0.77,1.11 -0.55,1.71 -0.6,0.43 -3,-1.28 -0.92,0.25 -0.66,1 -1.32,0.52 -0.3,-0.27 -1.36,0.65 -1.12,0.13 -0.22,0.84 -2.36,0.51 -1.03,-0.46 -1.43,-1.07 -0.28,-1.45 0.23,-0.54 0.39,-0.93 1.25,0.07 0.95,-0.44 0.08,-0.39 0.54,-0.21 0.18,-0.97 0.64,-0.19 0.44,-0.77 z",SL:"m 443.43,444.69 -0.76,-0.21 -2.01,-1.13 -1.46,-1.5 -0.49,-1.03 -0.35,-2.08 1.5,-1.24 0.32,-0.79 0.48,-0.61 0.78,-0.06 0.65,-0.53 2.24,0 0.78,1.01 0.61,1.19 -0.09,0.82 0.45,0.74 -0.03,1.03 0.77,-0.16 -1.31,1.31 -1.26,1.53 -0.15,0.81 z",SN:"m 428.64,425.41 -1.16,-2.24 -1.4,-1.02 1.24,-0.55 1.36,-2.03 0.66,-1.49 0.96,-0.93 1.4,0.25 1.36,-0.63 1.57,-0.03 1.34,0.85 1.86,0.77 1.7,2.13 1.85,1.98 0.13,1.79 0.55,1.64 1.05,0.81 0.24,1.1 -0.13,0.89 -0.41,0.16 -1.52,-0.22 -0.21,0.31 -0.62,0.07 -2.02,-0.7 -1.35,-0.03 -5.18,-0.12 -0.75,0.32 -0.93,-0.09 -1.49,0.47 -0.46,-2.19 2.55,0.06 0.68,-0.4 0.5,-0.03 1.04,-0.66 1.2,0.61 1.22,0.05 1.21,-0.65 -0.56,-0.82 -0.93,0.48 -0.87,-0.01 -1.1,-0.71 -0.89,0.05 -0.64,0.67 z",SO:"m 618.88,430.68 -0.07,-0.79 -1.06,0.01 -1.33,0.98 -1.49,0.28 -1.29,0.42 -0.89,0.06 -1.6,0.1 -1,0.52 -1.39,0.19 -2.47,0.88 -3.05,0.33 -2.65,0.73 -1.39,-0.01 -1.26,-1.19 -0.55,-1.17 -0.91,-0.53 -1.04,1.52 -0.61,1.01 1.04,1.56 1.03,1.36 1.07,1.01 9.17,3.34 2.36,-0.02 -7.93,8.42 -3.65,0.12 -2.5,1.97 -1.79,0.05 -0.77,0.88 -2.45,3.17 0.03,10.15 1.66,2.29 0.63,-0.66 0.65,-1.46 3.07,-3.38 2.61,-2.12 4.2,-2.76 2.8,-2.26 3.3,-3.81 2.39,-3.13 2.41,-4.1 1.73,-3.59 1.35,-3.15 0.79,-3.05 0.6,-1.02 -0.01,-1.5 z",SR:"m 315.27,446.97 3.36,0.56 0.3,-0.51 2.27,-0.2 3.01,0.76 -1.46,2.4 0.22,1.91 1.11,1.66 -0.49,1.2 -0.25,1.27 -0.72,1.17 -1.6,-0.59 -1.33,0.29 -1.13,-0.25 -0.28,0.81 0.47,0.55 -0.25,0.57 -1.53,-0.23 -1.71,-2.42 -0.37,-1.57 -0.89,-0.01 -1.25,-2.02 0.52,-1.45 -0.15,-0.65 1.7,-0.73 z",SS:"m 570.73,437.15 0.03,2.2 -0.42,0.86 -1.48,0.07 -0.96,1.61 1.72,0.2 1.42,1.37 0.5,1.12 1.28,0.65 1.65,3.05 -1.9,1.84 -1.72,1.67 -1.73,1.28 -1.97,0 -2.26,0.65 -1.78,-0.63 -1.15,0.77 -2.47,-1.86 -0.67,-1.19 -1.56,0.59 -1.3,-0.19 -0.75,0.47 -1.26,-0.33 -1.69,-2.31 -0.45,-0.89 -2.1,-1.11 -0.71,-1.68 -1.17,-1.21 -1.88,-1.46 -0.03,-0.92 -1.53,-1.13 -1.91,-1.1 0.86,-0.31 0.96,-0.53 0.72,-2.52 0.77,-1.31 2.03,-0.39 0.48,0.77 1.44,1.65 0.77,0.25 1.01,-0.49 2.02,0.1 0.39,0.58 2.79,0 0.1,-0.58 1.44,-0.53 0.29,-0.83 1.06,-0.58 2.36,1.65 1.44,-0.29 1.4,-2.04 1.54,-1.56 -0.24,-1.71 -0.68,-0.83 1.69,-0.15 0.19,-0.63 1.3,0.19 -0.34,2.1 0.34,2.05 1.44,1.12 0.34,0.97 -0.05,1.41 z",SV:"m 229.34,426.01 -0.31,0.67 -1.62,-0.04 -1.01,-0.27 -1.16,-0.57 -1.56,-0.18 -0.79,-0.62 0.09,-0.42 0.96,-0.72 0.52,-0.32 -0.15,-0.34 0.66,-0.17 0.83,0.24 0.6,0.57 0.85,0.46 0.1,0.39 1.23,-0.34 0.58,0.2 0.38,0.31 z",SY:"m 584.27,364.85 -5.49,3.54 -3.12,-1.32 -0.06,-0.02 0.38,-0.5 -0.04,-1.37 0.69,-1.83 1.53,-1.27 -0.46,-1.32 -1.26,-0.18 -0.26,-2.61 0.68,-1.41 0.75,-0.75 0.75,-0.76 0.16,-1.94 0.91,0.68 3.09,-0.97 1.49,0.65 2.31,-0.01 3.22,-1.31 1.52,0.06 3.19,-0.54 -1.44,2.18 -1.54,0.86 0.27,2.52 -1.06,4.12 z",SZ:"m 565.43,540.99 -0.57,1.39 -1.64,0.33 -1.68,-1.69 -0.02,-1.08 0.76,-1.17 0.27,-0.9 0.81,-0.22 1.41,0.57 0.42,1.39 z",TD:"m 516.15,427.51 0.28,-1.34 -1.8,-0.07 0.01,-1.85 -1.17,-1.06 1.21,-3.8 3.58,-2.74 0.14,-3.79 1.08,-5.98 0.61,-1.28 -1.16,-1.02 -0.05,-0.95 -1.05,-0.78 -0.69,-4.67 2.83,-1.66 11.19,5.77 11.18,5.7 0.14,11.61 -2.42,-0.2 -1.28,2.13 -0.74,1.78 0.58,0.67 -0.92,0.88 0.32,1.18 -0.73,1.2 -0.28,1.05 0.99,-0.17 0.58,1.1 0.03,1.66 1.03,0.83 -0.03,0.69 -1.77,0.49 -1.43,1.14 -2.02,3.09 -2.64,1.31 -2.71,-0.18 -0.79,0.26 0.28,0.99 -1.47,0.99 -1.19,1.1 -3.53,1.07 -0.7,-0.63 -0.46,-0.06 -0.52,0.72 -2.32,0.22 0.44,-0.77 -0.88,-1.93 -0.4,-1.17 -1.22,-0.48 -1.65,-1.65 0.61,-1.33 1.28,0.28 0.79,-0.2 1.56,0.03 -1.52,-2.57 0.1,-1.89 -0.19,-1.89 z",TF:"m 668.79,619.28 1.8,1.33 2.65,0.54 0.1,0.81 -0.78,1.96 -4.31,0.28 -0.07,-2.29 0.42,-1.76 z",TG:"m 480.73,446.5 -2.25,0.59 -0.63,-0.98 -0.75,-1.78 -0.22,-1.4 0.62,-2.53 -0.7,-1.03 -0.27,-2.22 0,-2.05 -1.17,-1.46 0.21,-0.89 2.46,0.06 -0.36,1.5 0.85,0.83 0.98,0.99 0.1,1.39 0.57,0.58 -0.13,6.46 z",TH:"m 763.14,429.43 -2.52,-1.31 -2.4,0.06 0.41,-2.25 -2.47,0.02 -0.22,3.14 -1.51,4.15 -0.91,2.5 0.19,2.05 1.82,0.09 1.14,2.57 0.51,2.43 1.56,1.61 1.7,0.33 1.45,1.45 -0.91,1.15 -1.86,0.34 -0.22,-1.44 -2.28,-1.23 -0.49,0.5 -1.11,-1.07 -0.48,-1.39 -1.49,-1.59 -1.36,-1.33 -0.46,1.65 -0.53,-1.56 0.31,-1.76 0.82,-2.71 1.36,-2.91 1.54,-2.65 -1.1,-2.6 0.05,-1.33 -0.32,-1.6 -1.87,-2.28 -0.67,-1.45 0.97,-0.53 1.02,-2.52 -1.14,-1.92 -1.78,-2.13 -1.36,-2.57 1.18,-0.53 1.28,-3.19 1.98,-0.14 1.64,-1.28 1.6,-0.69 1.22,0.92 0.16,1.78 1.89,0.13 -0.69,3.11 0.07,2.62 2.95,-1.74 0.84,0.51 1.65,-0.08 0.56,-1.02 2.12,0.2 2.13,2.38 0.18,2.87 2.27,2.53 -0.13,2.44 -0.91,1.3 -2.63,-0.41 -3.62,0.55 -1.8,2.38 z",TJ:"m 674.62,340.87 -1.03,1.13 -3.05,-0.61 -0.27,2.1 3.04,-0.28 3.47,1.17 5.3,-0.55 0.71,3.33 0.92,-0.36 1.7,0.81 -0.09,1.38 0.42,2.01 -2.9,0 -1.93,-0.26 -1.74,1.57 -1.25,0.34 -0.98,0.74 -1.11,-1.15 0.27,-2.95 -0.85,-0.17 0.3,-1.09 -1.51,-0.8 -1.21,1.23 -0.3,1.43 -0.43,0.52 -1.68,-0.07 -0.9,1.6 -0.95,-0.67 -2.03,1.12 -0.85,-0.42 1.57,-3.57 -0.6,-2.66 -2.06,-0.86 0.73,-1.59 2.34,0.17 1.33,-2.01 0.89,-2.35 3.75,-0.86 -0.58,1.71 0.4,1.02 z",TL:"m 825.9,488.5 0.33,-0.66 2.41,-0.63 1.96,-0.1 0.87,-0.35 1.06,0.35 -1.03,0.76 -2.92,1.23 -2.35,0.82 -0.05,-0.86 z",TM:"m 647.13,357.15 -0.25,-2.91 -2.09,-0.12 -3.2,-3.09 -2.24,-0.39 -3.1,-1.79 -2,-0.33 -1.23,0.66 -1.87,-0.1 -1.99,2.02 -2.47,0.68 -0.52,-2.49 0.41,-3.73 -2.19,-1.22 0.72,-2.48 -1.86,-0.22 0.62,-3.09 2.64,0.91 2.47,-1.19 -2.05,-2.23 -0.8,-2.14 -2.26,0.96 -0.28,2.73 -0.88,-2.41 1.24,-1.25 3.18,-0.79 1.9,1.06 1.96,2.93 1.44,-0.18 3.16,-0.05 -0.46,-1.88 2.4,-1.3 2.36,-2.2 3.78,2 0.3,2.99 1.07,0.77 3.03,-0.17 0.94,0.67 1.38,3.79 3.21,2.51 1.83,1.69 2.93,1.75 3.73,1.52 -0.08,2.16 -0.84,-0.11 -1.33,-0.94 -0.44,1.25 -2.36,0.68 -0.56,2.79 -1.58,1.05 -2.21,0.52 -0.59,1.55 -2.11,0.46 z",TN:"m 502.09,374.94 -1.2,-5.86 -1.72,-1.33 -0.03,-0.81 -2.29,-1.98 -0.25,-2.53 1.73,-1.88 0.66,-2.82 -0.45,-3.28 0.57,-1.79 3.06,-1.41 1.96,0.42 -0.08,1.77 2.38,-1.29 0.2,0.67 -1.41,1.71 -0.01,1.6 0.97,0.85 -0.37,2.96 -1.85,1.71 0.53,1.83 1.45,0.06 0.71,1.59 1.07,0.52 -0.16,2.55 -1.37,0.95 -0.86,1.05 -1.93,1.26 0.3,1.35 -0.24,1.38 z",TR:"m 579,336.85 4.02,1.43 3.27,-0.57 2.41,0.33 3.31,-1.94 2.99,-0.18 2.7,1.83 0.48,1.3 -0.27,1.79 2.08,0.91 1.1,1.06 -1.92,1.03 0.88,4.11 -0.55,1.1 1.53,2.82 -1.34,0.59 -0.98,-0.89 -3.26,-0.45 -1.2,0.55 -3.19,0.54 -1.51,-0.06 -3.23,1.31 -2.31,0.01 -1.49,-0.66 -3.09,0.97 -0.92,-0.68 -0.15,1.94 -0.75,0.76 -0.75,0.76 -1.03,-1.57 1.06,-1.3 -1.71,0.3 -2.35,-0.8 -1.93,2 -4.26,0.39 -2.27,-1.86 -3.02,-0.12 -0.65,1.44 -1.94,0.41 -2.71,-1.85 -3.06,0.06 -1.66,-3.48 -2.05,-1.96 1.36,-2.78 -1.78,-1.72 3.11,-3.48 4.32,-0.15 1.18,-2.81 5.34,0.49 3.37,-2.42 3.27,-1.06 4.64,-0.08 4.91,2.64 z m -27.25,2.39 -2.34,1.98 -0.88,-1.71 0.04,-0.76 0.67,-0.41 0.87,-2.33 -1.37,-0.99 2.86,-1.18 2.41,0.5 0.33,1.44 2.45,1.2 -0.51,0.91 -3.33,0.2 -1.2,1.15 z", -TT:"m 302.56,433.49 1.61,-0.37 0.59,0.1 -0.11,2.11 -2.34,0.31 -0.51,-0.25 0.82,-0.78 z",TW:"m 816.95,393.52 -1.69,4.87 -1.2,2.48 -1.48,-2.55 -0.32,-2.25 1.65,-3 2.25,-2.32 1.28,0.91 z",TZ:"m 570.56,466.28 0.48,0.31 10.16,5.67 0.2,1.62 4.02,2.79 -1.29,3.45 0.16,1.59 1.8,1.02 0.08,0.73 -0.77,1.7 0.16,0.85 -0.18,1.35 0.98,1.76 1.16,2.79 1.02,0.62 -2.23,1.64 -3.06,1.1 -1.68,-0.04 -1,0.85 -1.95,0.07 -0.74,0.36 -3.37,-0.8 -2.11,0.23 -0.78,-3.86 -0.95,-1.32 -0.57,-0.78 -2.74,-0.52 -1.6,-0.85 -1.78,-0.47 -1.12,-0.48 -1.17,-0.71 -1.51,-3.55 -1.63,-1.57 -0.56,-1.62 0.28,-1.46 -0.5,-2.57 1.16,-0.13 1.01,-1.01 1.1,-1.46 0.69,-0.58 -0.03,-0.91 -0.6,-0.63 -0.16,-1.1 0.8,-0.35 0.17,-1.64 -1.12,-1.57 0.99,-0.34 3.07,0.04 z",UA:"m 564.63,292.74 1.04,0.19 0.71,-1.04 0.85,0.23 2.91,-0.44 1.79,2.57 -0.7,0.92 0.23,1.39 2.24,0.21 1,1.93 -0.06,0.87 3.56,1.54 2.15,-0.69 1.73,2.04 1.64,-0.04 4.13,1.4 0.03,1.27 -1.13,2.23 0.61,2.33 -0.44,1.39 -2.71,0.31 -1.44,1.16 -0.09,1.83 -2.24,0.33 -1.87,1.32 -2.62,0.21 -2.42,1.52 -1.32,1.03 1.49,1.47 1.37,0.96 2.86,-0.24 -0.55,1.42 -3.07,0.68 -3.81,2.27 -1.55,-0.79 0.61,-1.85 -3.06,-1.16 0.5,-0.77 3.16,-1.63 -0.4,-0.81 -0.45,0.41 -0.44,-0.22 -4.36,-1.02 -0.19,-1.51 -2.6,0.5 -1.04,2.23 -2.17,2.95 -1.28,-0.68 -1.31,0.64 -1.25,-0.73 0.7,-0.44 0.49,-1.37 0.77,-1.29 -0.2,-0.72 0.59,-0.32 0.27,0.56 1.66,0.11 0.74,-0.29 -0.52,-0.42 0.19,-0.6 -0.98,-1.04 -0.4,-1.72 -1.02,-0.67 0.2,-1.41 -1.27,-1.12 -1.15,-0.16 -2.07,-1.31 -1.86,0.42 -0.67,0.62 -1.18,-0.01 -0.71,0.98 -2.07,0.4 -0.95,0.64 -1.31,-1.01 -1.79,-0.02 -1.74,-0.46 -1.21,0.89 -0.2,-1.12 -1.55,-1.14 0.55,-1.71 0.77,-1.1 0.62,0.24 -0.73,-1.92 2.55,-3.61 1.39,-0.51 0.3,-1.24 -1.41,-3.89 1.34,-0.17 1.54,-1.23 2.17,-0.1 2.83,0.36 3.13,1.08 2.21,0.09 1.05,0.65 1.05,-0.78 0.74,1.05 2.53,-0.22 1.11,0.43 0.19,-2.26 0.86,-1 z",UG:"m 564.85,466.5 -3.07,-0.04 -0.99,0.34 -1.67,0.86 -0.68,-0.29 0.02,-2.1 0.65,-1.06 0.16,-2.24 0.59,-1.29 1.07,-1.46 1.08,-0.74 0.9,-0.99 -1.12,-0.37 0.17,-3.26 1.15,-0.77 1.78,0.63 2.26,-0.65 1.97,0 1.73,-1.28 1.33,1.94 0.33,1.4 1.23,3.2 -1.02,2.03 -1.38,1.84 -0.8,1.13 0.02,2.95 z",US:"m 109.5,280.05 0,0 -1.54,-1.83 -2.47,-1.57 -0.79,-4.36 -3.61,-4.13 -1.51,-4.94 -2.69,-0.34 -4.46,-0.13 -3.29,-1.54 -5.8,-5.64 -2.68,-1.05 -4.9,-1.99 -3.88,0.48 -5.51,-2.59 -3.33,-2.43 -3.11,1.21 0.58,3.93 -1.55,0.36 -3.24,1.16 -2.47,1.86 -3.11,1.16 -0.4,-3.24 1.26,-5.53 2.98,-1.77 -0.77,-1.46 -3.57,3.22 -1.91,3.77 -4.04,3.95 2.05,2.65 -2.65,3.85 -3.01,2.21 -2.81,1.59 -0.69,2.29 -4.38,2.63 -0.89,2.36 -3.28,2.13 -1.92,-0.38 -2.62,1.38 -2.85,1.67 -2.33,1.63 -4.81,1.38 -0.44,-0.81 3.07,-2.27 2.74,-1.51 2.99,-2.71 3.48,-0.56 1.38,-2.06 3.89,-3.05 0.63,-1.03 2.07,-1.83 0.48,-4 1.43,-3.17 -3.23,1.64 -0.9,-0.93 -1.52,1.95 -1.83,-2.73 -0.76,1.94 -1.05,-2.7 -2.8,2.17 -1.72,0 -0.24,-3.23 0.51,-2.02 -1.81,-1.98 -3.65,1.07 -2.37,-2.63 -1.92,-1.36 -0.01,-3.25 -2.16,-2.48 1.08,-3.41 2.29,-3.37 1,-3.15 2.27,-0.45 1.92,0.99 2.26,-3.01 2.04,0.54 2.14,-1.96 -0.52,-2.92 -1.57,-1.16 2.08,-2.52 -1.72,0.07 -2.98,1.43 -0.85,1.43 -2.21,-1.43 -3.97,0.73 -4.11,-1.56 -1.18,-2.65 -3.55,-3.91 3.94,-2.87 6.25,-3.41 h 2.31 l -0.38,3.48 5.92,-0.27 -2.28,-4.34 -3.45,-2.72 -1.99,-3.64 -2.69,-3.17 -3.85,-2.38 1.57,-4.03 4.97,-0.25 3.54,-3.58 0.67,-3.92 2.86,-3.91 2.73,-0.95 5.31,-3.76 2.58,0.57 4.31,-4.61 4.24,1.83 2.03,3.87 1.25,-1.65 4.74,0.51 -0.17,1.95 4.29,1.43 2.86,-0.84 5.91,2.64 5.39,0.78 2.16,1.07 3.73,-1.34 4.25,2.46 3.05,1.13 -0.02,27.65 -0.01,35.43 2.76,0.17 2.73,1.56 1.96,2.44 2.49,3.6 2.73,-3.05 2.81,-1.79 1.49,2.85 1.89,2.23 2.57,2.42 1.75,3.79 2.87,5.88 4.77,3.2 0.08,3.12 -1.6,2.32 z m 175.93,34.43 -1.25,-1.19 -1.88,0.7 -0.93,-1.08 -2.14,3.1 -0.86,3.15 -1,1.82 -1.19,0.62 -0.9,0.2 -0.28,0.98 -5.17,0 -4.26,0.03 -1.27,0.73 -2.87,2.73 0.29,0.54 0.17,1.51 -2.1,1.27 -2.3,-0.32 -2.2,-0.14 -1.33,0.44 0.25,1.15 0,0 0.05,0.37 -2.42,2.27 -2.11,1.09 -1.44,0.51 -1.66,1.03 -2.03,0.5 -1.4,-0.19 -1.73,-0.77 0.96,-1.45 0.62,-1.32 1.32,-2.09 -0.14,-1.57 -0.5,-2.24 -1.04,-0.39 -1.74,1.7 -0.56,-0.03 -0.14,-0.97 1.54,-1.56 0.26,-1.79 -0.23,-1.79 -2.08,-1.55 -2.38,-0.8 -0.39,1.52 -0.62,0.4 -0.5,1.95 -0.26,-1.33 -1.12,0.95 -0.7,1.32 -0.73,1.92 -0.14,1.64 0.93,2.38 -0.08,2.51 -1.14,1.84 -0.57,0.52 -0.76,0.41 -0.95,0.02 -0.26,-0.25 -0.76,-1.98 -0.02,-0.98 0.08,-0.94 -0.35,-1.87 0.53,-2.18 0.63,-2.71 1.46,-3.03 -0.42,0.01 -2.06,2.54 -0.38,-0.46 1.1,-1.42 1.67,-2.57 1.91,-0.36 2.19,-0.8 2.21,0.42 0.09,0.02 2.47,-0.36 -1.4,-1.61 -0.75,-0.13 -0.86,-0.16 -0.59,-1.14 -2.75,0.36 -2.49,0.9 -1.97,-1.55 -1.59,-0.52 0.9,-2.17 -2.48,1.37 -2.25,1.33 -2.16,1.04 -1.72,-1.4 -2.81,0.85 0.01,-0.6 1.9,-1.73 1.99,-1.65 2.86,-1.37 -3.45,-1.09 -2.27,0.55 -2.72,-1.3 -2.86,-0.67 -1.96,-0.26 -0.87,-0.72 -0.5,-2.35 -0.95,0.02 -0.01,1.64 -5.8,0 -9.59,0 -9.53,0 -8.42,0 h -8.41 -8.27 -8.55 -2.76 -8.32 -7.96 l 0.95,3.47 0.45,3.41 -0.69,1.09 -1.49,-3.91 -4.05,-1.42 -0.34,0.82 0.82,1.94 0.89,3.53 0.51,5.42 -0.34,3.59 -0.34,3.54 -1.1,3.61 0.9,2.9 0.1,3.2 -0.61,3.05 1.49,1.99 0.39,2.95 2.17,2.99 1.24,1.17 -0.1,0.82 2.34,4.85 2.72,3.45 0.34,1.87 0.71,0.55 2.6,0.33 1,0.91 1.57,0.17 0.31,0.96 1.31,0.4 1.82,1.92 0.47,1.7 3.19,-0.25 3.56,-0.36 -0.26,0.65 4.23,1.6 6.4,2.31 5.58,-0.02 2.22,0 0.01,-1.35 4.86,0 1.02,1.16 1.43,1.03 1.67,1.43 0.93,1.69 0.7,1.77 1.45,0.97 2.33,0.96 1.77,-2.53 2.29,-0.06 1.98,1.28 1.41,2.18 0.97,1.86 1.65,1.8 0.62,2.19 0.79,1.47 2.19,0.96 1.99,0.68 1.09,-0.09 -0.53,-1.06 -0.14,-1.5 0.03,-2.16 0.65,-1.42 1.53,-1.51 2.79,-1.37 2.55,-2.37 2.36,-0.75 1.74,-0.23 2.04,0.74 2.45,-0.4 2.09,1.69 2.03,0.1 1.05,-0.61 1.04,0.47 0.53,-0.42 -0.6,-0.63 0.05,-1.3 -0.5,-0.86 1.16,-0.5 2.14,-0.22 2.49,0.36 3.17,-0.41 1.76,0.8 1.36,1.5 0.5,0.16 2.83,-1.46 1.09,0.49 2.19,2.68 0.79,1.75 -0.58,2.1 0.42,1.23 1.3,2.4 1.49,2.68 1.07,0.71 0.44,1.35 1.38,0.37 0.84,-0.39 0.7,-1.89 0.12,-1.21 0.09,-2.1 -1.33,-3.65 -0.02,-1.37 -1.25,-2.25 -0.94,-2.75 -0.5,-2.25 0.43,-2.31 1.32,-1.94 1.58,-1.57 3.08,-2.16 0.4,-1.12 1.42,-1.23 1.4,-0.22 1.84,-1.98 2.9,-1.01 1.78,-2.53 -0.39,-3.46 -0.29,-1.21 -0.8,-0.24 -0.12,-3.35 -1.93,-1.14 1.85,0.56 -0.6,-2.26 0.54,-1.55 0.33,2.97 1.43,1.36 -0.87,2.4 0.26,0.14 1.58,-2.81 0.9,-1.38 -0.04,-1.35 -0.7,-0.64 -0.58,-1.94 0.92,0.9 0.62,0.19 0.21,0.92 2.04,-2.78 0.61,-2.62 -0.83,-0.17 0.85,-1.02 -0.08,0.45 1.79,-0.01 3.93,-1.11 -0.83,-0.7 -4.12,0.7 2.34,-1.07 1.63,-0.18 1.22,-0.19 2.07,-0.65 1.35,0.07 1.89,-0.61 0.22,-1.07 -0.84,-0.84 0.29,1.37 -1.16,-0.09 -0.93,-1.99 0.03,-2.01 0.48,-0.86 1.48,-2.28 2.96,-1.15 2.88,-1.34 2.99,-1.9 -0.48,-1.29 -1.83,-2.25 -0.03,-5.56 z m -239.56,-50.44 -1.5,0.8 -2.55,1.86 0.43,2.42 1.43,1.32 2.8,-1.95 2.43,-2.47 -1.19,-1.63 -1.85,-0.35 z m -45.62,-28.57 2.04,-1.26 0.23,-0.68 -2.27,-0.67 v 2.61 z m 8.5,15.37 -2.77,0.97 1.7,1.52 1.84,1.04 1.72,-0.87 -0.27,-2.15 -2.22,-0.51 z m 97.35,32.5 -2.69,0.38 -1.32,-0.62 -0.17,1.52 0.52,2.07 1.42,1.46 1.04,2.13 1.69,2.1 1.12,0.01 -2.44,-3.7 0.83,-5.35 z m -68.72,120.68 -1,-0.28 -0.27,0.26 0.02,0.19 0.32,0.24 0.48,0.63 0.94,-0.21 0.23,-0.36 -0.72,-0.47 z m -2.99,-0.54 1.5,0.09 0.09,-0.32 -1.38,-0.13 -0.21,0.36 z m 5.89,3.29 -0.5,-0.26 -1.07,-0.5 -0.21,-0.06 -0.16,0.28 0.19,0.58 -0.49,0.48 -0.14,0.33 0.46,1.08 -0.08,0.83 0.7,0.42 0.41,-0.49 0.9,-0.46 1.1,-0.63 0.07,-0.16 -0.71,-1.04 -0.47,-0.4 z m -7.86,-5.14 -0.75,0.41 0.11,0.12 0.36,0.68 0.98,0.11 0.2,0.04 0.15,-0.17 -0.81,-0.99 -0.24,-0.2 z m -4.4,-1.56 -0.43,0.3 -0.15,0.22 0.94,0.55 0.33,-0.3 -0.06,-0.7 -0.63,-0.07 z",UY:"m 313.93,552.04 1.82,-0.34 2.81,2.5 1.04,-0.09 2.89,2.08 2.2,1.82 1.62,2.25 -1.24,1.57 0.78,1.9 -1.21,2.12 -3.17,1.88 -2.07,-0.68 -1.52,0.37 -2.59,-1.46 -1.9,0.11 -1.71,-1.87 0.22,-2.16 0.61,-0.74 -0.03,-3.3 0.75,-3.37 z",UZ:"m 662.01,351.2 0.08,-2.16 -3.73,-1.52 -2.93,-1.75 -1.83,-1.69 -3.21,-2.51 -1.38,-3.79 -0.94,-0.67 -3.03,0.17 -1.07,-0.77 -0.3,-2.99 -3.78,-2 -2.36,2.2 -2.4,1.3 0.46,1.88 -3.16,0.05 -0.11,-14.13 7.22,-2.35 0.52,0.35 4.35,2.84 2.29,1.48 2.68,3.5 3.29,-0.56 4.81,-0.3 3.35,2.8 -0.21,3.8 1.37,0.03 0.57,3.06 3.57,0.12 0.76,1.75 1.05,-0.02 1.23,-2.65 3.69,-2.61 1.61,-0.7 0.83,0.37 -2.35,2.43 2.07,1.4 2,-0.93 3.32,1.96 -3.59,2.64 -2.13,-0.36 -1.16,0.1 -0.4,-1.02 0.58,-1.71 -3.75,0.86 -0.89,2.35 -1.33,2.01 -2.34,-0.17 -0.73,1.59 2.06,0.86 0.6,2.66 -1.57,3.57 -2.12,-0.74 z",VE:"m 275.5,430.6 -0.08,0.67 -1.65,0.33 0.92,1.29 -0.04,1.49 -1.23,1.64 1.06,2.24 1.21,-0.18 0.63,-2.04 -0.87,-1 -0.14,-2.14 3.49,-1.16 -0.39,-1.34 0.98,-0.9 1.01,2 1.97,0.05 1.82,1.58 0.11,0.94 2.51,0.02 3,-0.29 1.61,1.27 2.14,0.35 1.57,-0.88 0.03,-0.72 3.48,-0.17 3.36,-0.04 -2.38,0.84 0.95,1.34 2.25,0.21 2.12,1.39 0.45,2.26 1.46,-0.07 1.1,0.67 -2.22,1.65 -0.25,1.03 0.96,1.04 -0.69,0.52 -1.73,0.45 0.06,1.3 -0.76,0.77 1.89,2.12 0.38,0.79 -1.03,1.07 -3.14,1.04 -2.01,0.44 -0.81,0.66 -2.23,-0.7 -2.08,-0.36 -0.52,0.26 1.25,0.72 -0.11,1.87 0.39,1.76 2.37,0.24 0.16,0.58 -2.01,0.8 -0.32,1.18 -1.16,0.45 -2.08,0.65 -0.54,0.86 -2.18,0.18 -1.55,-1.48 -0.85,-2.77 -0.75,-0.98 -1.02,-0.61 1.42,-1.39 -0.09,-0.63 -0.8,-0.83 -0.56,-1.85 0.22,-2.01 0.62,-0.94 0.51,-1.5 -0.99,-0.49 -1.6,0.32 -2.02,-0.15 -1.13,0.3 -1.98,-2.41 -1.63,-0.36 -3.6,0.27 -0.67,-0.98 -0.69,-0.23 -0.1,-0.59 0.33,-1.04 -0.22,-1.13 -0.62,-0.62 -0.36,-1.3 -1.44,-0.18 0.77,-1.66 0.35,-2.01 0.81,-1.06 1.09,-0.81 0.71,-1.42 z",VN:"m 778.46,402.12 -3.74,2.56 -2.34,2.81 -0.62,2.05 2.15,3.09 2.62,3.82 2.54,1.79 1.71,2.33 1.28,5.32 -0.38,5.02 -2.33,1.87 -3.22,1.83 -2.28,2.36 -3.5,2.62 -1.02,-1.81 0.79,-1.91 -2.08,-1.61 2.43,-1.14 2.94,-0.2 -1.23,-1.73 4.71,-2.19 0.35,-3.42 -0.65,-1.92 0.51,-2.88 -0.71,-2.04 -2.12,-2.02 -1.77,-2.57 -2.33,-3.46 -3.36,-1.76 0.81,-1.07 1.79,-0.77 -1.09,-2.59 -3.45,-0.03 -1.26,-2.72 -1.64,-2.37 1.51,-0.74 2.23,0.02 2.73,-0.35 2.39,-1.62 1.35,1.14 2.57,0.55 -0.45,1.74 1.34,1.22 z",VU:"m 946.12,510.15 -0.92,0.38 -0.94,-1.27 0.1,-0.78 1.76,1.67 z m -2.07,-4.44 0.46,2.33 -0.75,-0.36 -0.58,0.16 -0.4,-0.8 -0.06,-2.21 1.33,0.88 z",YE:"m 624.41,416.58 -2.03,0.79 -0.54,1.28 -0.07,0.99 -2.79,1.22 -4.48,1.35 -2.51,2.03 -1.23,0.15 -0.84,-0.17 -1.64,1.2 -1.79,0.55 -2.35,0.15 -0.71,0.16 -0.61,0.75 -0.74,0.21 -0.43,0.73 -1.39,-0.06 -0.9,0.38 -1.94,-0.14 -0.73,-1.67 0.08,-1.57 -0.45,-0.85 -0.55,-2.12 -0.81,-1.19 0.56,-0.14 -0.29,-1.32 0.34,-0.56 -0.12,-1.26 1.23,-0.93 -0.29,-1.23 0.75,-1.43 1.15,0.76 0.76,-0.27 3.23,-0.07 0.52,0.3 2.71,0.29 1.07,-0.15 0.7,0.97 1.31,-0.48 2.01,-3.07 2.62,-1.32 8.08,-1.13 2.2,4.84 z",ZA:"m 563.88,548.96 -0.55,0.46 -1.19,1.63 -0.78,1.66 -1.59,2.33 -3.17,3.38 -1.98,1.98 -2.12,1.51 -2.93,1.3 -1.43,0.17 -0.36,0.93 -1.7,-0.5 -1.39,0.64 -3.04,-0.65 -1.7,0.41 -1.16,-0.18 -2.89,1.33 -2.39,0.54 -1.73,1.28 -1.28,0.08 -1.19,-1.21 -0.95,-0.06 -1.21,-1.51 -0.13,0.47 -0.37,-0.91 0.02,-1.96 -0.91,-2.23 0.9,-0.6 -0.07,-2.53 -1.84,-3.05 -1.41,-2.74 0,-0.01 -2.01,-4.15 1.34,-1.57 1.11,0.87 0.47,1.36 1.26,0.23 1.76,0.6 1.51,-0.23 2.5,-1.63 0,-11.52 0.76,0.46 1.66,2.93 -0.26,1.89 0.63,1.1 2.01,-0.32 1.4,-1.39 1.33,-0.93 0.69,-1.48 1.37,-0.72 1.18,0.38 1.34,0.87 2.28,0.15 1.79,-0.72 0.28,-0.96 0.49,-1.47 1.53,-0.25 0.84,-1.15 0.93,-2.03 2.52,-2.26 3.97,-2.22 1.14,0.03 1.36,0.51 0.94,-0.36 1.49,0.3 1.34,4.26 0.73,2.17 -0.5,3.43 0.24,1.11 -1.42,-0.57 -0.81,0.22 -0.26,0.9 -0.77,1.17 0.03,1.08 1.67,1.7 1.64,-0.34 0.57,-1.39 2.13,0.03 -0.7,2.28 -0.33,2.62 -0.73,1.43 -1.9,1.62 z m -7.13,-0.96 -1.22,-0.98 -1.31,0.65 -1.52,1.25 -1.5,2.03 2.1,2.48 1,-0.32 0.52,-1.03 1.56,-0.5 0.48,-1.05 0.86,-1.56 -0.97,-0.97 z",ZM:"m 567.36,489.46 1.32,1.26 0.71,2.4 -0.48,0.77 -0.56,2.3 0.54,2.36 -0.88,0.99 -0.85,2.66 1.47,0.74 -8.51,2.38 0.27,2.05 -2.13,0.4 -1.59,1.15 -0.34,1.01 -1.01,0.22 -2.44,2.4 -1.55,1.89 -0.95,0.07 -0.91,-0.34 -3.13,-0.32 -0.5,-0.22 -0.03,-0.24 -1.1,-0.66 -1.82,-0.17 -2.3,0.67 -1.83,-1.82 -1.89,-2.38 0.13,-9.16 5.84,0.04 -0.24,-0.99 0.42,-1.07 -0.49,-1.33 0.32,-1.38 -0.3,-0.88 0.97,0.07 0.16,0.88 1.31,-0.07 1.78,0.26 0.94,1.29 2.24,0.4 1.72,-0.9 0.63,1.49 2.15,0.4 1.03,1.22 1.15,1.57 2.15,0.03 -0.24,-3.08 -0.77,0.51 -1.96,-1.1 -0.76,-0.51 0.35,-2.85 0.5,-3.35 -0.63,-1.25 0.8,-1.8 0.75,-0.33 3.77,-0.48 1.1,0.29 1.17,0.71 1.12,0.48 1.78,0.47 z",ZW:"m 562.96,527.25 -1.49,-0.3 -0.95,0.36 -1.35,-0.51 -1.14,-0.03 -1.79,-1.36 -2.17,-0.46 -0.82,-1.9 -0.01,-1.05 -1.2,-0.32 -3.17,-3.25 -0.89,-1.71 -0.56,-0.52 -1.08,-2.35 3.13,0.32 0.91,0.34 0.95,-0.07 1.55,-1.89 2.44,-2.4 1.01,-0.22 0.34,-1.01 1.59,-1.15 2.13,-0.4 0.18,1.08 2.34,-0.06 1.3,0.61 0.6,0.72 1.34,0.21 1.45,0.94 0.01,3.69 -0.55,2.04 -0.12,2.2 0.45,0.88 -0.31,1.74 -0.43,0.27 -0.74,2.15 z"}}}}),b}); \ No newline at end of file diff --git a/htdocs/public/high/plugins/jquery-mapael/maps/world_countries_miller.js b/htdocs/public/high/plugins/jquery-mapael/maps/world_countries_miller.js deleted file mode 100644 index 639782b7..00000000 --- a/htdocs/public/high/plugins/jquery-mapael/maps/world_countries_miller.js +++ /dev/null @@ -1,322 +0,0 @@ -/*! - * - * Jquery Mapael - Dynamic maps jQuery plugin (based on raphael.js) - * Requires Mapael - * - * Map of World by country - * Miller projection - * - * @source http://code.highcharts.com/mapdata/ - */ -(function (factory) { - if (typeof exports === 'object') { - // CommonJS - module.exports = factory(require('jquery'), require('mapael')); - } else if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['jquery', 'mapael'], factory); - } else { - // Browser globals - factory(jQuery, jQuery.mapael); - } -}(function ($, Mapael) { - - "use strict"; - - $.extend(true, Mapael, { - maps: { - world_countries_miller: { - /* - * map-specific constants - * (set by user) - */ - // Width of the map, in pixel - width : 700.9375, - // Height of the map, in pixel - height : 337.375, - // Longitude of the left side of the map, in degree - leftLongitude: -175.0, - // Longitude of the right side of the map, in degree - rightLongitude: 190.0, - // Latitude of the top of the map, in degree - topLatitude: 84.0, - // Latitude of the bottom of the map, in degree - bottomLatitude: -56.0, - /* - * Transform a longitude coordinate into projection-specific x' coordinate - * Note: this is not in pixel - * - * @param lon longitude value in degree - * @return x' projection-specific value - */ - _projectLongitude: function (lon) { - // Compute longitude in radian - return lon * Math.PI / 180; - }, - /* - * Transform a latitude coordinate into projection-specific y' coordinate - * Note: this is not in pixel - * - * @param lat latitude value in degree - * @return y' projection-specific value - */ - _projectLatitude: function (lat) { - // Compute latitude in radian - var latRad = lat * Math.PI / 180; - return 1.25 * Math.log( Math.tan( Math.PI / 4 + 0.4 * latRad ) ); - }, - /* - * Get x,y point from lat,lon coordinate - * - * Principle: - * (lat, lon) are inputs - * Projection(lat, lon) = (x', y') - * Transformation(x', y') = (x, y) - * - * Source: http://jkwiens.com/2009/01/23/miller-projection/ - * - * @param lat latitude value in degree - * @param lon longitude value in degree - * @return {x, y} coordinate in pixel - */ - getCoords: function (lat, lon) { - var self = this; - - // Project map boundaries with projection (only once for performance) - if (self._xLeftPrime === undefined) self._xLeftPrime = self._projectLongitude(self.leftLongitude); - if (self._xRightPrime === undefined) self._xRightPrime = self._projectLongitude(self.rightLongitude); - if (self._yTopPrime === undefined) self._yTopPrime = self._projectLatitude(self.topLatitude); - if (self._yBottomPrime === undefined) self._yBottomPrime = self._projectLatitude(self.bottomLatitude); - - // Compute x' and y' (projection-specific value) - var xPrime = self._projectLongitude(lon); - var yPrime = self._projectLatitude(lat); - - // Compute x and y - var x = (xPrime - self._xLeftPrime) * (self.width / (self._xRightPrime - self._xLeftPrime)); - var y = (self._yTopPrime - yPrime) * (self.height / (self._yTopPrime - self._yBottomPrime)); - - return {x: x, y: y}; - }, - elems: { - "FO" : "m 322.53,80.19 0.9,0.8 0,0.3 -1,-0.7 z", - "UM" : "m 26.03,206.59 0,0 -0.1,0 0.1,0 z", - "US" : "m 100.93,117.39 0.2,0.1 -0.6,-0.2 0,-0.3 z m 0.2,-0.6 0.2,0.1 -0.3,0.2 -0.3,-0.1 z m -19,-15.8 0.2,0 0,0.4 -0.3,-0.4 z m -0.1,-0.7 0.3,0.3 -0.2,0.2 -0.2,-0.1 z m -0.5,0 0.8,1.3 -0.9,-0.7 -0.1,-0.7 z m 3.3,0.1 -0.1,0.3 -0.4,0 0.1,-0.7 z m -3.7,-0.5 0.1,0.3 -0.4,0 0,-0.3 z m 2.8,-0.3 0.3,0.4 -0.2,0.4 -0.2,-0.6 z m -3.5,-0.1 0.4,-0.1 0,0.3 -0.4,0.3 z m 0.7,0.1 -0.1,0 -0.2,-0.3 0.3,0 z m -1.1,-1.3 0.3,-0.4 0.8,-0.2 -0.2,0.3 z m 2.6,-0.8 0.8,0.3 -0.4,0.5 -0.7,-0.4 z m -0.3,-0.6 0,0.4 -0.8,-0.2 0.3,-0.3 z m 1,0.2 0.1,0.6 -0.5,-0.4 0,-0.6 z m -1.4,-1.2 0.6,0.6 -0.4,0.2 -0.3,0 z m -1.7,-0.8 1.5,0.5 -0.3,1.2 -1,0 z m -3.5,-0.4 -0.1,0.6 -0.4,0.1 0.2,-0.5 z m -1.5,-2.1 -0.2,0.4 -0.2,-0.2 0.2,-0.5 z m 91.6,25.5 -0.2,0.4 -1,0.5 -0.1,-0.2 z m 3,6.8 -0.2,0.6 -0.4,0.7 -0.2,-0.4 z m 2.8,-1 0,0.4 -0.3,0 0.2,-0.4 z m 3.7,-0.7 0.1,0.3 -0.6,0 0.3,-0.2 z m -96.8,-24.9 -0.6,-2.5 0.8,-0.1 0.6,0.7 z m -61.3,4.8 -0.9,1.5 -2.4,0.4 -2.2,1.3 1.2,-1.5 2.3,0 0,-1 z m 59.3,-7.9 -0.4,-1.4 1,0.8 0.4,3 z m -0.7,-2.2 -0.3,1.3 -1.4,-1.2 1.1,-1.3 z m 1.1,-1.2 1.4,0.4 0.5,2.3 -1,-0.2 z m -66.2,-14.8 1.6,0.2 -2,1.1 -1.9,-1.3 -2.2,-0.4 3,-0.6 z m 89,39.1 -0.1,0.1 0,-0.1 z m 45.7,49.9 -0.1,-0.8 -0.5,-0.2 -1.5,-2.5 -1.5,-2.5 -0.2,-0.1 -0.1,-0.1 -2.1,-0.7 -1.6,1.9 -2.6,-1.4 -0.7,-1.8 -3.2,-2.6 -3.2,0 0,0.9 -5.5,0 -7.2,-2.4 0.2,-0.5 -4.6,0.4 -0.3,-1.2 -2.4,-2 -2.5,-0.1 -1.5,-1.1 -3.4,-5.7 -0.2,-1.3 -2.3,-2.5 -0.3,-2 -1,-1.4 0.6,-2.3 -0.9,-3.2 0.8,-2.4 0.5,-4 -1.3,-6.7 3.6,0.6 -0.1,-0.2 0.7,0.6 -0.7,-0.7 0,0 0.3,-0.4 -0.3,0.3 0,-1.8 52.8,0 4.8,1.2 2.3,1.2 3.6,0.1 -2.8,1.2 -2,1.7 2.5,-0.2 0.6,0.7 3.5,-1.6 0.1,0.1 -0.1,-0.1 1.1,-0.6 0.6,0.1 -1.1,0.9 1.8,1.4 4.6,-0.7 0.9,0.8 0.7,-0.2 0,0.5 -1.2,1.1 -4.3,-0.1 -2,3.2 1.4,-0.6 -1.1,3.6 0.1,2.3 1,1.5 1.3,-0.6 0.8,-2.5 -0.6,-1.5 0.5,-2.5 3.2,-2.7 2.1,1.1 0.3,2.4 -1,0.8 2.3,0.2 0.5,2.1 -0.2,0.9 -0.3,0.2 -0.3,-0.3 -0.5,0.8 -0.7,1.4 1.8,0.7 1.6,-0.3 4.8,-2.4 0.5,-0.8 -0.3,-0.4 0,-0.4 4.5,-0.1 1.8,-2.7 1,-0.9 1,-0.3 0,0 6.2,-0.1 2.3,-2 0.5,-2 1.5,-1.8 2.7,0.9 0,3.2 0.4,0.3 0.4,0 -0.1,0.8 0.6,0.2 0.3,0.9 -2.4,1 0.1,0.1 -0.4,0.4 0,-0.3 0,0 -0.7,0.3 0.3,-0.1 0,0.4 -0.3,0 -0.1,-0.3 -0.4,0.2 -2.9,1.8 -0.1,3.7 -4.4,1.1 -2.2,1.4 -0.1,1.9 -2.9,4 -1.5,-2.8 0.3,3 -0.4,2.2 0.9,-0.1 0.5,2.8 -1.5,2.2 -1.2,-0.1 -1.6,1.8 -2.3,1.4 -3.8,3.1 -0.6,2.1 1.8,4.7 0.9,3.4 -0.6,3.4 -1.4,0 -2,-2.7 -1.3,-2.9 0.4,-2.1 -2.7,-2.5 -1.8,1 -2.1,-1.4 -5.3,-0.3 -1.5,0.6 0.9,2.4 -1.6,-0.9 -1.3,0.8 -1.9,-1.4 -1.3,0.4 -3.4,-0.3 -4.6,2.8 -2,3.1 0.8,1.7 -2.1,-0.2 z m -65.4,-67.3 -0.3,0.2 -0.2,-0.4 0.5,0 0,0 0.3,-1.3 2.3,3 -0.1,1.4 -1.6,-1.8 -1,-0.7 z m -43.4,79.5 -0.5,-0.5 0,0 0.5,0.2 0,0.3 0,0 z m 0,0 2.3,2 -2.1,0.9 -0.2,-2.9 0,0 z m 47.3,-77.4 -0.1,0.3 -0.3,-0.2 0.4,-0.1 0,0 z m -5.8,-8.9 0.1,0.1 -0.6,-0.1 0,-0.2 -0.3,-0.2 -3.7,0.5 -3.1,-2.4 -3,-1.3 -5.6,-1.7 -2.8,-0.1 -3.5,-0.9 0,-1.1 -3.5,0 0.4,2.5 -3.2,0 -0.7,0.9 -4.1,1.5 1.3,-1.3 -1.3,-0.4 0.9,-2.8 1.8,-0.9 -0.2,-0.9 -3.4,2.4 -0.7,1.7 -2.7,1.5 1.5,1.3 -1.9,2.4 -3.6,1.6 -2.1,2.7 -0.9,-0.5 -2.1,2.2 -1.9,0.1 -3.2,1.2 -1.6,1.4 -4.7,1.2 0.5,-1.3 2.4,-0.6 3.7,-2.2 2.2,0.3 -0.3,-1.2 2.8,-1.5 2.2,-2 1.3,-3.7 -3.7,1.3 -2.5,-1.8 -2.7,1.4 0.1,-2.6 -1.2,-1.8 -2.5,0.9 -2.6,-1.5 -1.1,1 -2.1,0.4 -1.5,-1 3.4,-0.3 2.1,-1.6 -3,-1.9 0.7,-1.5 3.1,-3.7 1.5,0.7 1.8,-1.2 3.1,-1 -1.2,-2.1 0.5,-1.6 -3.8,1.7 -5.8,-0.6 -3.6,-3.5 5.3,-2.3 3,-0.5 0.1,1.6 3.5,0.3 0.3,-3.3 -3.9,-0.3 -0.8,-1.6 -4.8,-2.4 0.8,-1.8 3.6,-0.2 2.4,-1.5 -0.1,-0.9 2.4,-2.4 2,0 2.3,-1.6 3.1,-0.1 2.3,-1.7 3.3,0.7 1.9,1.2 3.4,-0.3 0.7,1.4 5.3,-0.3 4,1.3 4.8,0.7 2.5,-0.5 4.4,1.6 0,29.2 3.5,0.6 3,2.4 0.4,1 2,-2 1.7,-0.6 1,1.5 3,2.5 3,5 3.4,1.8 0.1,1.7 0,0 -1.8,1.3 0.1,-2.4 -0.3,-0.1 -0.3,-0.6 -0.4,0.4 -0.6,-0.2 -0.5,-1.3 -2.1,-2 -2.2,-3.1 z m -38.1,3.7 -1.1,-1.2 3,-2 1.7,-1.6 0.4,2.8 -2.9,1.7 -3.7,3.4 z m -3.9,82.1 -3,-1 2.1,0.2 0.9,0.8 z m 47.8,-76.9 0.1,-0.2 0,0.2 -0.1,0 0,0 z", - "JP" : "m 606.33,125.09 0,-0.1 0.6,0.4 -0.3,0.1 z m -15.5,25.1 -1.3,0.7 -2.1,-0.3 2.8,-3.2 3.7,-0.5 2.2,0.3 3,-4.4 -0.5,1.4 2.4,-0.6 0.4,-1.6 1.8,-0.6 1.1,-2.6 -0.4,-1.2 1.1,-3.2 0.7,1 1.3,-0.7 1.2,3.9 -1.8,2.3 -0.1,2.2 -0.9,2.4 0.5,1.2 -1.7,1.8 -0.3,-1.4 -3,1.8 -3.2,0.3 0.7,0.7 -1.8,1.4 -1.7,-0.6 0.6,-1.7 -3.2,0.3 -1.5,0.9 1.1,0.3 1.3,-1.2 0.9,0.5 -0.9,2.3 -0.9,-0.6 -2.2,1.7 -0.5,-1.6 z m -6.8,2 -0.4,-2 1.3,1.7 1.2,-1.1 2.4,0.6 0.6,1.3 -1.4,3.4 -2.1,0.2 -0.1,-3.3 z m 21.7,-19.1 -1,1 -0.6,-2.9 1.1,-1.6 1.9,0 0.9,-5.1 3.6,3.2 2.4,0.9 0.9,1.4 -2.6,0.5 -1.8,2.4 -2.7,-1.5 -2.9,0.7 z", - "SC" : "m 442.43,226.39 0.2,0.3 -0.1,0.2 -0.5,-0.7 z", - "IN" : "m 504.93,175.49 0.1,0 0,0.5 -0.2,-0.1 z m 0.1,-12.1 1.3,-0.3 0.2,1.4 1.7,1.2 4.4,-0.4 -0.9,-1.7 1.9,-0.4 3.9,-2.9 1.2,0.6 1.6,-0.7 2.3,2.4 -1.2,1.8 -3.2,1.8 0,1.5 -1.8,3.8 -1.5,-0.3 -0.2,3.3 -1.2,0.8 -0.8,-3.5 -1.1,1.5 -0.8,-1.3 2.5,-2.7 -0.8,-0.5 -3.2,0.1 -1,-1.7 -2.7,-1 -0.7,1.2 1.6,1.5 -1.7,1 1.4,0.7 -0.4,1.4 1,3 -1.6,1.1 -0.1,-1 -1.9,1 -1.6,3.2 -1.7,0.1 -2.6,3.2 -3.5,2.5 0.1,0.8 -3.9,1.8 -0.5,1.3 0.6,3.2 -0.9,2.6 0,3.3 -4.5,4.3 -1.9,-1.6 -1.3,-4.2 -2,-3.4 -0.9,-3.3 -1.7,-3 -1.5,-7.4 0.4,-1.3 -1,-3.6 -0.5,2.2 -2.1,1 -1.3,-0.4 -2.1,-2.1 1.8,-1.2 -2.9,-1.2 -0.9,-1.4 1.3,-0.8 2.1,0.2 2.1,-1.1 -3,-4.3 1.9,-2.5 2.7,0.2 2,-2.3 0.9,-1.8 2.2,-2.5 -0.1,-1.3 1.5,-0.9 -2.4,-2.2 -0.5,-2.5 1.1,-0.9 2.8,0.6 2.4,-1.3 1.4,-0.9 0.9,1.8 1.3,0.7 -0.3,1.7 1.4,1.7 -2.2,0.5 0.7,2.5 4.4,2.4 -1.3,0.9 -0.6,1.9 5.2,2.8 3.5,0.3 2.4,1.6 2.9,0.4 1.6,-0.7 z", - "FR" : "m 228.83,121.39 -0.4,0.1 -0.1,-0.8 0.2,0.5 z m 125.6,9.9 -0.5,2.9 -0.8,-0.5 -0.1,-2.3 z m 301.9,127.2 -0.6,2.6 -3,-1.6 -1.7,-1.7 -0.4,-1.4 4.2,3.2 z m -187.7,60.9 2.7,0.3 -0.8,1.5 -2.5,0 z m -253.1,-136.4 0.1,-0.1 0,0.2 z m 135.1,-54.4 0,0.1 -0.1,0 0,0 -0.1,0.1 -2.4,1.4 -4.2,-1 -1.7,1.4 0.3,1.2 -1.3,0.2 -1,-0.3 -0.1,0 0,0 -0.5,-0.1 0.1,-0.3 -0.6,0.1 -2.8,-0.2 -3.4,-1.7 0.6,-0.4 0.9,-5.8 -1.8,-2.4 -1.6,-1.1 -3.6,-1.4 -0.1,-1.2 3.2,-0.8 0.7,0.9 2.5,-0.3 -1,-2.7 3.3,1.1 0.7,-1 2.7,-1.3 0,-1.7 1.8,-0.5 3.1,2.8 3.2,1.1 0.3,0.2 0.7,0 3.6,1.2 -1.2,3.4 -2.8,2.4 0.2,0.7 0.1,-0.2 0.2,0 0.8,-0.1 -0.1,0.7 0.5,0.5 -0.8,1.9 z m -118,79 0.4,-0.8 1.9,0.6 2.4,2.7 -2.5,3.5 -3.1,-0.3 1.2,-2.1 -0.9,-2.8 z", - "FM" : "m 639.23,204.49 0.2,0.1 0,0.2 -0.2,0 z", - "CN" : "m 544.43,180.89 1.7,-1.7 2.1,-0.3 0.6,0.9 -1.1,2 -1.4,1 -1.9,-0.7 z m -37.9,-16.4 -0.2,-1.4 -1.3,0.3 -3,-0.5 -1.1,0.4 -1.7,-0.9 -1.9,-1.9 -1.1,0.1 -2.8,-2.4 -2,0.3 -4.4,-2.4 -0.7,-2.5 2.2,-0.5 -1.4,-1.7 0.3,-1.7 -1.3,-0.7 -0.9,-1.8 -0.8,0.1 -1.1,-0.4 -1.6,-1.8 -2.7,-1.2 -0.3,-0.2 1,-0.3 -0.3,-2.8 -1.8,-0.1 -0.3,-2 0.6,-1.3 3,-1.3 0.3,0.7 2.1,-1.4 2.5,-0.3 0.5,-0.7 3.5,-1.9 1.2,-2.2 -1.4,-4.4 4.2,-1.2 1.4,-4 3.3,0.9 1.5,-0.5 0.5,-3.3 3,-1.7 0.3,-0.1 0.6,-0.1 0.3,1.4 2.1,1.5 2.4,0.8 1.4,2.6 -0.3,3.3 5,0.6 3.6,1.5 1.9,3.7 10.1,0.5 0.7,0.7 3.3,1 2.8,0 3,-1.2 5.2,-0.4 4.7,-2.9 -1,-1.7 1.1,-1.5 3.1,0.8 1.8,-1.5 2.1,-0.2 1.8,-2 3.2,-1 2.7,0.3 0.4,-0.8 -2.6,-2.6 -1.5,0 -0.1,0.1 -0.3,0.4 -3.2,0.2 -0.7,-1.1 2.3,-4.1 2,0.7 2.8,-1.2 -0.1,-0.9 1.8,-3.3 1.3,-1.1 -1.4,-1.7 1.5,-1.3 4.7,-0.8 4.7,1.5 4.5,8.8 2.5,0.3 2.8,2.7 0.4,1.6 2.7,-0.1 3.7,-1.7 0.7,1.7 -1.2,1.1 -0.5,2.4 -2,2.8 -0.5,-0.6 -1.1,0.2 -2,0.9 0.6,1.9 -0.5,2.8 -0.9,0.7 -1.3,-1 -0.3,1.2 -3.2,1.1 0.2,1.4 -2.9,-0.7 -1.2,1.8 -3.1,1.8 -3.6,1.5 -2.6,1.5 0.3,-1.4 1.9,-2.5 -2.1,-1 -1.4,1.7 -1.8,0.6 -1,1.6 -2.4,0.2 0.7,2.1 1.4,0 1.2,2.3 2.4,-1.6 1.7,0.9 2.1,0.1 -3.7,2 -3,3.1 2,1.6 1.2,3.5 1.8,1.5 0.3,2.2 -1.9,0.8 2.7,1.5 -1.5,1.1 0.1,2 -1.3,0.7 -2.9,4.1 0.6,1.2 -1.8,0.6 -4.5,4.4 -3.3,0.2 -1.1,1.2 -1.1,-1.6 -0.1,1.8 -5.5,1.5 -1.5,2.2 -0.3,-2.4 -2.5,-0.8 -0.9,0.8 -2.7,-1.8 0.4,-0.8 -2.8,-1.2 -2.6,1.7 -2.8,-0.5 -0.7,0.7 -1.2,0.3 0.4,2.3 -1,-0.9 -1.9,0.3 -0.5,-1.3 -1.5,-0.2 0.7,-1.8 -1.2,-0.2 -0.6,-1.8 -1.8,0.4 0.1,-2.4 1.9,-1.7 0,-3.5 -2.2,-1.9 -0.4,0.6 -2.3,-2.4 -1.6,0.7 -1.2,-0.6 -3.9,2.9 -1.9,0.4 -2.7,-1.3 z", - "PT" : "m 322.13,143.49 -3.1,0.4 0.5,-2.6 -1.4,-1.1 1.5,-4.7 -0.1,-2.7 4.2,0.1 0.7,0.8 -1.4,1.3 -0.1,4.5 z", - "SW" : "m 185.73,187.29 0,0 0,0 z", - "SH" : "m 561.73,188.69 0,0 0,0 0,0 z", - "BR" : "m 241.13,217.99 2.5,0.3 -0.8,2.2 -3.4,0.6 -0.4,-2.2 z m -7.3,66.1 0.8,-1.6 -0.1,-0.3 -4.7,-3.8 -0.8,0.5 -1.5,-2.1 -1.5,0.2 3.5,-4.1 3.7,-2.2 -0.1,-3.1 -1.4,-0.1 0.1,-0.1 -0.1,-0.2 0.7,-1.5 0,-1.3 -2.2,-0.2 -0.4,-2.6 -1.5,-1.1 -3,-0.1 0.3,-2.2 -0.7,-1.6 1.2,-3.9 -1.6,-1.8 -0.2,-1.8 -3.2,-0.1 -0.6,-4.8 -2.6,-0.5 -2.4,-1.7 -2.5,-0.4 -1.9,-2.5 -0.1,-2.9 -2.3,0.5 -3.2,2 -2.4,0 -2.1,0.1 0.3,-3 -1.3,0.9 -1.9,0.2 -3.5,-4.8 1.7,-2.2 0.4,-2.4 4.1,-1.8 1.5,0.1 1,-5.3 -1.2,-2.4 0.4,-3.6 3.3,0 1.5,-0.7 0.9,1.6 2.6,1.1 2.7,-1.7 1.5,-1.6 -1.3,-0.1 -1.2,-2.9 5.9,-0.5 1.6,-1.8 1.4,0.2 0.9,2.2 -0.9,2.3 0.5,1.6 1.8,1.3 3.2,-1.6 1.2,0.2 1,-1.1 2.6,0.3 3.1,0.3 2.5,-3.5 1.2,0.3 0.7,3.2 1.5,1 0.2,3.1 -3,0.9 1.4,2.6 2.7,0.3 2.9,-2.7 5.2,1.5 0.7,2.6 1.8,-0.8 4,1.2 3.1,-0.1 2.9,1.6 2.5,2.3 3.1,0.4 1.5,3.9 -1,3.9 -3.1,3 -2.2,3.6 -1.7,1.2 0.2,5.1 -0.6,3.5 -0.9,1.1 -0.1,2.3 -2.7,4.2 0.2,0.9 -2,2 -4.4,0 -5,2.7 -1.7,1.3 -1.5,2.3 0.4,2.7 -0.7,2.3 -2,2 -1,2.1 -1.7,-0.6 -0.4,1.9 -1.5,1.4 -0.8,2.9 -1.4,1.3 -0.3,-0.2 z", - "KI" : "m 34.93,213.89 0.2,0.4 0.2,0.2 -0.4,-0.1 z", - "PH" : "m 574.43,195.49 1.3,-0.2 -1.5,-1.5 1.7,-0.1 1.1,2.8 -1.3,-0.2 -0.5,1.8 z m -8.8,0.5 0.2,-1.8 0.9,0.5 -1.1,1.3 z m -0.4,0.4 0,0 0.4,-0.4 0,0 0,0 -0.4,0.4 z m 4.6,1.5 0.1,-3.5 2.2,1.5 -0.4,1.1 2.1,-0.8 -0.1,1.8 -1.9,2.5 -1.2,-1.5 0.4,-1.7 z m 4.4,5.8 -1.6,-0.8 -1.8,0.2 -1,2.5 0.2,-2.6 2.5,-1.9 1,1.1 1.7,-1.7 1.4,0.1 0,-2 1.6,2.3 0.5,3 -0.7,1 -0.9,-1.1 -0.8,1.3 0.1,2 -2.2,-1.1 z m 0.3,-12.1 -0.7,3.8 -1.2,-1 -0.5,-2.4 -1.2,-1 0.1,1.6 -1.7,-1.6 -1,1.1 1,0.9 -0.9,1.4 -1.6,-2.5 1.2,-0.1 -1.8,-2.4 -0.5,-3 1.1,0.4 -0.1,-2.8 1.6,-2.9 -0.2,0.8 2.3,0.8 0.5,2.2 -0.7,1.7 -1.2,0.6 0.3,3.4 1.5,-0.3 z m -9.3,4.8 0.3,1.3 -4.6,3.9 4.3,-5.2 z", - "MX" : "m 170.23,178.09 -0.5,0.6 0,-0.3 0.1,-0.3 z m -38.2,-2.3 0.3,0.1 0.6,0.8 -0.5,-0.4 z m -10.1,-5.6 0.3,0 0.2,0.3 0,0.1 z m -0.4,-1 -0.1,0.4 -0.1,0 0.1,-0.4 z m -5.8,-6.3 -0.1,0.1 -0.2,-0.2 0.3,-0.5 z m -5.8,-1.7 -0.1,0 -0.1,-0.5 0.2,0.2 z m 10.9,0.4 0.2,-1 0.5,0.4 -0.3,0.5 z m -1.8,-1.7 0.6,0.5 0.1,0.6 -0.9,-0.8 z m 23.5,-0.1 -0.1,0.2 0.4,0 1.5,2.5 1.5,2.5 0.4,0.5 0.2,0.5 1.8,1 2.1,0.2 -1,3 -0.4,4 1.4,3.7 2.5,3.8 2.6,1.2 5,-1 1.8,-1 1.1,-3.7 4.2,-1.2 2.7,0.7 -1.3,2.1 -0.8,3.9 -0.9,-0.5 -1.1,1.2 -0.5,0.1 -3.5,0 -0.9,1.1 2,1.8 -2.6,0.6 -0.9,2.9 -3.2,-3 -1.8,-0.7 -3.3,1.5 -4.2,-1.7 -4.4,-1.4 -1.4,-1.2 -3.3,-0.9 -2.8,-2 -1.4,-2.1 1,-2.1 -1.2,-2.3 -4.8,-5.3 -2.2,-1.1 0,-1.9 -2.1,-1.3 -3,-3.4 -1.9,-3.8 0.1,-0.7 -2.9,-1.3 -0.2,3.3 2,1.9 6,9 -0.2,1.3 1.6,0.2 0.6,1.9 -0.8,0.7 -0.8,-1.4 -3.5,-2.6 -0.2,-2.4 -2.6,-1.4 -2.8,-2.3 1.7,-0.2 0.2,-1.1 -3.1,-2.7 -0.7,-2.2 -2.1,-3.6 4.6,-0.4 -0.2,0.5 7.2,2.4 5.5,0 0,-0.9 3.2,0 3.2,2.6 0.7,1.8 2.6,1.4 1.6,-1.9 z m 7,8.5 -0.4,1 0.2,0.8 0.5,-1.8 z", - "ES" : "m 306.83,163.39 -2,-0.6 -1.3,0.1 1.9,-1 z m 23.8,-15.8 0.1,0.1 -0.1,0 0,-0.1 z m -4.7,-1.3 0.2,0.1 0,0.1 -0.1,-0.1 z m 0.1,-0.5 -1.5,-0.3 -0.7,-1.5 -1.7,-0.5 0.8,-4 0.1,-4.5 1.4,-1.3 -0.7,-0.8 -4.2,-0.1 -0.9,-2.7 2.5,-1.4 1.3,0.4 7,0.1 3.4,0.3 3.4,1.7 2.8,0.2 0.2,0.4 0.3,-0.2 0.5,0.1 0,0 0,-0.1 0.1,0.1 0,0 1,0.3 1.3,-0.2 0.1,1 -2.3,1.6 -2,0.5 -2.5,3.5 1,1.6 -1.4,1 -0.4,1.6 -1.8,0.6 -0.8,1.2 -4.5,0.2 -1.7,1.2 z", - "BU" : "m 183.13,187.49 0,0 0,0 0,0 z", - "MV" : "m 476.83,206.89 0.5,0.7 -0.6,0 0.2,-0.4 z", - "SP" : "m 558.13,197.09 0,0 -0.1,0 0.1,0 z", - "GB" : "m 330.13,90.09 0.1,0.2 -0.2,0.1 -0.3,-0.3 z m 0.2,-0.8 0,0.5 0.3,0.1 -0.8,-0.1 z m 0.5,-0.2 -0.4,-0.2 0.8,0.3 -0.2,0.2 z m 3.5,-3.1 -0.5,1.4 -0.1,-1 -0.6,-0.3 z m 0.2,-0.9 0.3,0.1 -0.8,0.2 0.2,-0.5 z m 0.3,-0.4 -0.1,0.3 -0.3,0 0.1,-0.4 z m -154.3,95.9 0.1,-0.1 0.4,0.1 -0.3,0.1 z m 18.7,-4.9 -0.4,0 -0.1,-0.2 0.3,0.1 z m -1,-0.2 -0.1,0.2 -0.3,0 0.3,-0.1 z m 124.5,-81.9 0,-1.5 1.6,-0.9 -0.2,1.3 z m -100.7,234.1 1.4,-2.7 2,0.4 0.3,0.8 z m 179.2,-179.3 -0.1,0 -0.1,0 -0.1,-0.1 0,0 0.1,0.1 -0.2,0 0,-0.1 0,0 0,-0.1 0.1,0 0.3,0 0,0 -0.2,0 z m -0.3,-0.1 0,0 0,0 z m -74.8,-2.5 -0.1,0.1 0,-0.1 z m 73.4,3.3 -0.2,0 -0.3,0 0.1,-0.1 z m -77.1,-48.5 1.8,-0.6 1.5,1.7 -1.4,1.4 -2,0 -1.7,-0.9 z m 2.3,-6.2 2,-3.6 3.8,0 -2,2 1.1,0.6 3,0.1 0.3,0.6 -2.7,3.8 3,1.3 0.8,2.5 2.1,1.4 0.8,2.7 -0.6,0.5 3.2,0.3 -0.2,1.8 -1.7,1.5 1.3,0.9 -2.1,1 -7.1,0.3 -3.8,1 2.4,-2.5 2.1,0 -2.5,-1.5 -1.8,-0.2 2.1,-1 0.1,-2.5 1.9,-0.4 0.6,-2.1 -1.5,-0.9 0.5,-0.9 -2,-0.1 0.1,1.3 -1.4,-1.1 0.9,-1.8 -2,-2.4 -1.7,-0.7 1.5,-0.4 -1.9,-1.8 z", - "GR" : "m 386.63,147.99 -3,0.5 -2.3,-0.8 1.3,-0.6 z m 2.5,-2.3 1.2,-0.6 -0.3,0.8 -0.5,0.5 z m -0.8,-0.9 -0.4,-0.2 0.4,-0.4 -0.1,0.3 z m -0.5,-1 0.2,0.1 -0.2,0.2 0.1,-0.2 z m -3.3,0.2 0.7,-0.5 0.1,0.4 -0.4,0.8 z m 2.2,-1.4 -0.5,0.2 -0.2,-0.1 0.2,-0.1 z m 1.2,-0.3 0.2,0.1 -0.5,0.1 -0.4,-0.2 z m -1.7,-1.8 0.2,0.6 -0.4,-0.1 -0.2,-0.5 z m -1.2,-3.3 -0.4,0.1 0.4,-1.1 0.4,0 z m -8.5,-1.5 0.2,-0.1 -0.2,0.1 -0.1,-0.1 0,-0.1 0.1,-0.1 0.2,0 1.5,-0.6 2,-0.5 3,-0.6 1.4,0.8 2.1,-1.1 0.6,0.7 -1.2,1.5 -1.9,-0.6 -2.5,0.8 1.3,1.1 -3.4,-0.7 -0.1,1 5.4,5.8 -2.8,-1.9 0.3,1.3 -1.7,-0.6 -0.9,0.9 0.9,2.5 -2.5,-0.6 -1,-3.3 -2.6,-3.3 0.7,-0.3 z m 10.4,3.3 0.3,0.4 -0.3,0.2 -1.2,-0.5 1.1,-0.3 0,0 z", - "AS" : "m 9.63,245.09 -0.1,0 -0.1,0.2 -0.2,-0.1 z", - "DK" : "m 357.83,100.89 1,0.8 -0.6,0 -0.8,-0.3 z m -1.7,0.1 0.3,0.1 -0.2,0.1 -0.4,-0.4 z m 4.2,-0.3 -0.7,0.4 0,-0.3 0.3,-0.1 z m -5.3,-0.2 0.5,0.4 -0.1,0.2 -0.4,-0.1 z m 2,0.4 -0.2,0.5 -0.2,-0.2 0.7,-0.9 z m 3.4,-2 -1.2,2.7 -1.7,-2.6 2.2,-1.3 z m -6.1,2.4 -1.1,-0.3 -0.3,0 -1.1,-4.4 3.2,-1.5 1.6,-1.8 -0.7,2.3 1.4,1.3 -0.9,0.9 0.6,2.3 -2.4,-0.5 z", - "GL" : "m 234.93,60.89 0.2,0.2 -0.5,0.1 -0.2,-0.2 z m 1.5,-0.8 -1.8,0.4 0.2,-0.2 0.7,-0.2 z m -4.8,-5.7 -0.5,0 -0.2,-0.4 0.5,0.1 z m 2.2,-2.3 -0.9,-0.3 0.7,-0.7 0.5,0.7 z m -2.9,-4.6 -0.9,0.6 -0.2,-0.3 1.1,-0.5 z m -1.2,-1.6 -0.4,0.4 -0.7,-0.2 0.5,-0.2 z m 1.3,-0.1 -1.1,0.9 -0.1,-0.8 0.7,-0.2 z m -1.8,-2.8 0.9,0.5 -0.3,0 -1,-0.5 z m -0.7,-1.2 0.6,0.1 -1.2,0.1 0,-0.4 z m -0.4,-2.3 -1.1,0 -0.9,0 1.6,-0.3 z m -25.1,-8 -0.8,0 0.1,-0.2 0.8,-0.1 z m -5,-3.6 1.6,0.3 -0.6,0.2 -1.6,-0.3 z m 2.5,-0.2 1.3,0.4 -1.6,0 -0.4,-0.3 z m 102.6,-10.6 -2.2,1.3 -1.8,-0.7 3.2,-1.1 z m -94.9,-3 0.6,0.2 -0.4,0.1 -0.2,-0.1 z m 30,-6 -1.7,-0.1 -2.1,-0.5 0.8,-1 z m -4.8,50.1 0.6,-0.6 -3,-0.9 0.3,-1.7 3,0 2.4,1.4 -0.3,1.1 z m 1.4,12.1 -0.3,0 0,-0.2 0,-0.1 -0.2,-0.1 -0.7,-2.6 2.6,-1.4 -3.2,-0.5 1.5,-3.6 3.8,-1.2 0.7,-3.9 -1.2,-0.9 -4.6,-1.4 -1.4,-1.2 4.1,0.1 3.4,1.3 -1.5,-2.1 -2,-1.1 -0.3,0.2 -0.9,-0.1 0.3,-0.6 0.2,0 -0.3,-0.2 2.3,-0.6 -1.9,-0.2 -0.8,0.5 -0.5,-0.5 0.8,0 0.2,0 -2.2,-0.2 0.3,1 -2.6,0.2 -1.2,-1.1 0.6,-0.6 -0.3,-0.2 0.4,-0.1 0.1,0.1 1.2,-1.2 0.5,-2.1 -1,-0.4 0.1,-0.1 -0.8,-0.3 -0.1,0 -0.2,-0.1 0.8,-1.2 -1.5,-0.9 0.7,-0.9 -1.4,-0.7 0.5,-1.1 -1.8,-2.2 -2.1,-0.5 -0.9,-1.2 0.4,-1.4 -4.7,-1.7 -5,-0.8 -1,0.9 -4.2,-0.5 -0.5,1.3 -3.7,-0.5 -2.4,-1.3 3.2,-1.2 -4.6,-0.4 -1.8,-0.8 0.8,-0.8 4.9,-0.8 3,0.1 1,-1 -5.7,0.6 -0.5,-0.9 -3.5,-0.4 -3,-1.6 0.6,-1.5 6.2,-1.2 2.5,-1.2 4,-0.1 2.1,-1.7 -0.4,-2.3 -3.8,-0.1 -0.8,-1.3 4.5,-1.9 0.6,-1 3.5,-1 2.7,0.7 1.5,-2 -1.3,-1.1 5.5,-1.7 7.9,-1.2 1.7,1.2 -0.4,2.6 1.6,-2.3 3,0.7 3.7,-0.2 -2.2,-1 -1,-1.7 4,0.3 5.8,1.9 1.6,1.2 1.8,-0.3 -1.4,-0.9 0.4,-0.3 -4.1,-1.2 -2.8,-2 1.3,0.7 2.6,-0.2 3.6,1.3 -0.6,1.4 2,-1.4 -3.9,-1.8 9.1,0.1 -8.9,-0.5 -2.3,-0.5 1.5,-0.6 1.8,0.5 0.9,-0.9 4.8,-0.3 4.4,0.2 1.9,0.1 0.3,-1.2 3.7,-0.5 8.2,-0.5 3.5,0.2 9.6,1.4 -0.8,0.5 -9,0.3 -8,1.1 5.9,-0.4 3.4,-0.6 5.2,0.3 4.1,-0.5 1.4,1.3 3.5,0.4 2.5,0.9 -2.1,1.3 -14.2,1 -5.6,1.3 2.1,0.1 7.5,-1.1 6,0.4 -0.1,0.9 -3.1,0.8 -0.1,0.9 5,-1.5 1.1,-1.3 3.4,-0.3 0.3,2.6 -3.6,2.7 2.2,-0.4 6.4,-3.7 3,1.2 2.4,-1.2 3.6,0.1 3.6,0.8 1.3,0.8 -3.8,2 -2.3,0.1 0.5,1 -2.1,0.6 -3.2,-0.1 2.4,1.2 -1.2,0.8 -4.5,0.5 -3,0.9 2.2,0.8 -0.7,1.4 1.2,1 -1.8,0.6 0.9,1.3 -2,-0.6 -1.6,2.5 -0.2,1.6 4.2,-0.2 -0.3,0.8 2.9,0.4 -2.9,0.4 -2.8,-0.5 0.7,1.1 4.1,0.7 -0.8,2.8 0.4,2.3 -1.1,-2.1 0.7,-1.2 -3.4,-0.7 -2.3,1.2 0,1.6 3.4,-0.1 1.1,3.4 3.9,1.4 -2.1,0.2 -1.8,2.7 -3.6,0.7 1.3,2.4 -1.9,-0.1 -1.4,0.8 -3.3,-1.2 -4.1,1.3 1.1,0.3 -0.2,-0.1 2.3,-0.9 2.4,1.3 2.5,0.6 0.1,0.8 -2,-0.3 1.8,1 -1.3,0.1 0.9,1.2 -4.2,-1.7 -0.2,-0.8 1.5,0 -1.6,-0.3 -1.2,-0.5 -1,0.5 2.2,1.8 3.9,1.8 -1.1,0.7 2.4,1.6 0.7,2.5 -3.6,0.4 -1.8,-2.3 -3,-1.7 0.5,1.4 -4.5,1 -0.6,1.8 1.8,-0.2 -1.5,0 0.8,-1.1 4.5,-1.1 0,1.4 -1.7,0.7 -1.2,0 -2,1.3 1.1,0.3 3.8,-1.4 3.4,1 2.2,0 -1.6,1.6 -1.7,0.4 -4.1,2.8 -3.4,0.5 -2.6,1.2 -5,0.5 -2.6,1.6 0.2,0.8 -2.7,3 -3.3,1.7 -2.8,0.8 -0.3,-2.1 -1,1.8 -3.1,0.7 1.3,0.4 -1.5,1 -1.1,2 0.6,2 -3.1,3.4 -0.9,5 -1.6,1.2 0.4,1.5 -2.1,0.2 -2,-0.9 -0.2,-1.3 -4.7,-0.6 -2.1,-1.6 -0.5,-2.2 -1.9,-1 0.3,-1.4 -2.4,-1.6 0.2,-2.8 -1.5,0.8 0.1,-2.6 z", - "GU" : "m 613.53,191.99 -0.2,0.4 -0.1,-0.3 0.5,-0.5 z", - "MP" : "m 615.13,188.99 0.1,-0.4 0.3,-0.1 -0.2,0.3 z", - "PR" : "m 211.33,182.59 -1.8,0.7 -1.7,0 0,-1.2 z", - "VI" : "m 212.33,183.59 0.4,0 -0.7,0.2 0.1,-0.2 z", - "CA" : "m 175.63,27.69 -3.1,-0.2 0.9,-2.2 -2.3,-0.5 -2.3,0.3 0,-1.4 1.7,-1.5 2.6,-0.5 3.9,0.5 2.7,-0.3 -4.8,-0.3 -1.4,-2.9 -2.7,-0.6 0,-2.5 5.1,0.3 3.1,1.7 0.9,1.2 0.4,-1.6 -3.3,-1.5 9.9,-1.3 -3.7,-0.1 6.4,-1.3 -5.8,0.4 -6.3,1.3 -1.8,-1 -1,1.1 -4.5,-0.4 1.2,-1.8 -2.2,1.7 -4.1,-1.2 5.2,-0.5 0.3,-0.6 -6.3,0.5 -1,-0.7 3.7,-1.9 -4,1 1.8,-1.2 -4.6,0 1.8,-1 5.7,-1.2 6.3,0.6 -3.8,-0.7 2.7,-0.7 -0.8,-0.9 5.3,0.8 5.7,1.6 -5.2,-2 1.2,-1.4 2.9,0.6 -1.9,-1.1 3.2,0.1 -0.5,-0.8 5.8,0.3 1.9,-0.9 3.7,0.3 0.7,0.6 1.7,-1 6.3,-0.2 0.1,0.6 6.2,0.5 -4.3,1.2 2.3,-0.1 5.2,-1.2 3.4,1.9 2.6,0.1 0.5,1.4 -5.9,2.2 -1.9,-0.2 -2.4,1.2 -6.6,1.6 10.6,-1.8 -7.2,3.6 -4.5,2.7 -1.6,1.8 -3.6,-0.2 0.4,1.1 -5.3,0.8 -2.8,-0.5 0.1,0.8 5.5,0.2 0,0.8 -3.2,-0.4 -3.4,0.3 4.1,0.3 2.2,0.9 -0.3,0.8 -3.3,0.2 2.7,0.7 -0.9,1.1 -3.9,1.2 -1.3,1.8 -4.8,0.2 3.4,1 -0.7,0.7 2.8,-0.2 0.3,1.2 -2.9,1.4 0.8,1.8 -1.7,-0.1 0.8,-1.6 -3.3,0.7 0.5,-1.2 -6,-0.2 -0.9,0.6 -5.8,-0.5 -5.1,-0.2 -0.9,-0.9 4.3,-1.7 1.2,-0.9 -1,-1.8 1.9,-0.4 2.4,0.8 0.3,1.1 z m 0,0 0,0 0,0 0,0 0,0 0,0 1,-0.1 1.2,-2.1 -2.2,2.2 0,0 0,0 0,0 z m 9.3,102.5 0,0.2 0.3,0.2 -4.7,0.7 -2.4,1.4 -0.9,-0.7 1.2,0 -0.4,-0.5 0.3,-0.2 0.2,-0.9 1.3,-0.8 0.8,-4.4 2.3,1.8 0.7,-0.7 -1.9,-2.7 -6.5,-1 0,-0.5 -0.7,0.2 -0.7,-3.5 -1.9,-0.2 -1.1,-1.9 -3.1,-0.6 -2.9,2.5 -3.6,-0.1 -2.3,-1.2 -4.8,-1.2 -52.8,0 -0.4,-0.2 -0.2,0.2 -0.1,0 -0.4,-0.9 -2.7,-1.5 0.2,-0.7 -0.4,-0.1 0,0.1 0.3,0.2 -0.3,0.1 -0.2,-0.4 -0.5,-0.1 0,-0.1 -0.2,-0.2 -0.1,0.2 -0.6,-0.1 -0.1,0 -0.6,-0.1 0.5,0.1 0,0 -0.3,0 0.3,0.1 0.1,0 0.4,0.1 0.4,0.4 -0.1,0.1 0.3,0.3 0,0 1.2,1.6 2,1.6 -0.1,-0.5 0.5,0.3 0.5,0 -0.8,0.2 0.3,0.3 -0.5,0.7 -2.1,-0.6 -3.7,-2.1 -0.1,-0.5 0.1,-0.1 -0.3,-0.5 0,0 -0.1,-0.2 -1.9,-0.4 -1.2,-1.7 1,-0.3 2.6,0.8 0.1,-0.1 -0.2,-0.1 0.6,0 0.2,-0.2 -0.2,-0.2 -0.6,0.4 -2.3,-1.3 -0.3,-2.3 -0.3,0.8 -0.3,-0.3 0.2,-0.4 0.4,-0.1 0,0 0,-0.1 0.1,-0.2 -0.2,0.1 0,-0.1 0.2,0 -0.1,-0.3 -0.1,0.1 -0.2,-1.3 -1,-0.9 -0.5,1.2 -0.6,-0.9 0.1,-0.3 -0.3,0 0,-0.3 0.3,-0.2 0,0.4 0.1,-0.4 0.7,0.3 -0.2,-0.2 0.4,-2 -0.8,1 0.4,-0.1 -0.1,0.3 -0.4,0.2 -0.1,-0.2 -0.3,0.5 -2.2,-2.4 0.9,-1.9 0,-0.7 -0.1,-1.7 -3.4,-1.8 -3,-5 -3,-2.5 -1,-1.5 -1.7,0.6 -2,2 -0.4,-1 -3,-2.4 -3.5,-0.6 0,-29.2 3.6,0.5 3.6,1.9 2.6,0.1 0.1,-1.3 3.9,-0.7 1.1,0.3 5.4,-2.6 1.7,0.5 -4.7,1.7 -1.7,1.6 3.1,-1.8 0.6,1.1 1.1,-1.4 6.2,-2 0.9,1.8 2.3,1.4 1.8,-2.7 0.2,2.6 2.4,-0.5 0.4,-1.2 2.9,0.3 2.2,1.2 4.3,1.3 3.9,0.7 0.1,-0.6 3.4,1.5 0.2,1 -1.7,-0.1 -1.1,1.1 3.2,0.8 4.4,-0.1 2.3,-0.8 2.3,0.7 0.6,1.3 1.6,0.3 0.8,2.4 0.7,-1.9 -1.5,-1.9 4.5,-3.1 -3.8,1.6 -2.3,-0.4 1.1,-1.1 4.7,-0.9 0.9,1.8 1.6,1 2.2,0.1 3.5,1.1 1.6,-0.6 4.5,0.2 1.5,0.7 -2.2,-2.6 2.8,-0.3 0.8,1.4 1.8,-0.9 -1.1,2.7 2.2,1.9 -0.3,-3.8 1.2,0.1 2.4,-2.7 -2,0.3 0.6,-2.3 -3.6,-1.4 -0.7,-1.7 0.2,-3.3 2.4,-2.3 1.1,-0.2 -1,0.1 0,-1.8 -1.1,-1.2 0,-3.1 0.9,-1.4 3,-0.6 2.7,0.7 4,0.3 -3.2,3.9 -1,0.5 -3.4,-0.2 1.3,1.1 -1.2,1.6 -0.8,0.1 2.5,1.9 0.3,2.1 2.9,2.5 -2.5,1.5 2,0.7 2.6,2.1 0.3,2.1 1.2,-2.7 1.4,-0.6 1.9,1.7 -0.9,1.5 1.7,3.8 3.1,-3.1 0.5,-2.2 1.8,-1 -1.5,-0.8 0,-1.7 2.2,-0.3 0.9,0.2 0,-0.1 0.6,0.1 -0.1,0.1 1.9,0.4 2.4,1.5 -0.9,1 1.1,0.9 -2.7,0.6 2.7,3.3 -0.5,1.5 -3.5,2.1 -2,-2 1.3,2.5 -3,-0.3 -0.4,-0.9 -2.5,0.4 1.8,0.9 -2.9,2.6 -1.1,0 -3.3,-1.9 1.2,1.9 3.8,0.3 -1.8,3.2 -2,0.8 -1.8,-0.7 -0.4,1.6 -1.5,0.2 0,0.1 0.6,0.2 -0.1,0.1 -0.1,-0.2 -0.4,-0.1 0.6,1.5 -3.9,1.7 -3.2,4.8 -0.9,2.6 0.8,3.5 2.4,-0.1 1.4,3.6 -0.5,1.4 3.2,-0.9 4.1,1.1 2.5,2.2 5.7,2.2 4.4,0.5 0.3,3.3 -0.3,2.2 4.9,4.7 2.4,-3.1 -0.9,-1.8 -0.3,-2.9 -1.2,-1.3 3.8,-1.7 2.1,-2 0.3,-2.1 -1.1,-3.2 -2.8,-1.8 2.4,-3.4 -1.7,-3 1.2,-1.8 -1.2,-2.4 1.3,-0.9 5.2,1.3 2.1,-1 3.8,2.4 -0.2,0.9 4.6,1.7 -0.8,0.7 0.7,4.7 1.3,-0.1 2.1,2.3 3.6,-2.1 0.5,-2.5 1.3,-1.8 0.9,0.4 0.4,1.4 0.2,-0.4 0.2,0.3 -0.3,0.2 -0.1,-0.1 0.2,1 1.3,0.3 0.9,1.9 3,4.2 -1.1,1.3 4.1,4 4.8,1.7 -1.4,0.7 1.7,1.3 2.5,0.7 0.4,3.2 -2.6,2 -3.1,0.6 -2.4,2.2 -3.6,0.6 -1.2,-0.5 -7.8,0 -1.8,2.4 -3.2,1.4 -1.7,2.4 -2.7,2.5 -3.2,1.3 -3.3,2.9 -1,0.3 -1,0.9 -6.1,1.4 -1.6,1.3 1.4,0.1 0,0.2 z m -90.5,-17.9 0,0 0,0 z m 5.8,2.8 -0.1,-0.3 -0.2,0.1 0,0.1 z m -7.8,-7.2 0.3,-0.4 -1,0.4 -0.3,0.8 z m 57.5,-44.6 -0.4,0.1 0.1,0.3 0.3,-0.2 z m -54.8,52.4 0.3,0.1 0,-0.2 -0.1,-0.1 z m -0.2,-0.3 -0.1,-0.2 -0.2,0 0,0.2 z m 117.6,-39.5 0,2.5 -1.1,0.4 -2.5,-0.6 -1.9,-1.4 -0.2,1.1 3.2,2.7 -0.6,1 -4.4,-1.2 -2,-1.2 -4,-1.6 0.3,-1.2 -2.1,-0.8 -1.6,-2.4 -2.3,0.8 -2.2,-0.8 -1.7,1.3 -2.2,-0.5 -0.5,-1.8 1.3,-1.6 3.2,0.8 3,-1 1.4,0.2 -1.9,-2.2 2.9,-1.9 1.5,-1.7 -1.6,-3.2 -1.6,-0.3 -3.1,-2.3 -2.2,1.2 0,-1.2 1.9,-0.7 -4,-2 0,-1.2 -2.4,-0.5 0.3,1.5 -5.7,-0.9 -0.7,1.2 -7.9,-1.1 -4.6,-1.2 -1.7,-2.2 4.2,0.5 -1.4,-0.9 -3.3,-0.4 -0.5,-2.1 1,-3.2 1.2,-1.8 2.2,-1.6 2.1,-0.5 3,0.2 -3,3.6 0.5,3 3,2.6 -1.2,-3.6 1.9,0.6 -2.3,-1.9 1,-2.2 4.5,-1.9 2.5,0.1 2.4,3.6 -1.1,2.8 2,-1.9 1.7,1.7 0.9,-2 1.6,-0.6 4.6,0.9 -0.2,1.3 2,0.2 0,1.2 2.3,1.7 1.1,-1.4 2.6,1.4 -1.8,0.6 -0.1,0.4 0.6,-0.3 0.6,0.4 1.3,-0.6 -0.8,1.9 2.5,-1.1 3,1.1 2.4,2.9 -1.4,0.2 0.2,0.1 -0.4,0.3 0.4,0.1 0.4,-0.3 0.4,0.2 -0.5,0.2 0.7,0.1 0.8,1.1 -1.8,0.4 -0.7,0.8 -0.2,0 -0.4,-0.1 0.5,0.2 -0.4,0.5 2.8,0.6 0.6,0.8 0.2,-0.2 0.4,0 0,0.3 -0.6,-0.1 0.6,0.8 2.5,-0.4 2,2.5 0.2,0 0.4,-0.1 0.5,0.1 -0.1,0 0.8,0.1 -0.7,1.2 2.6,-0.4 1,2.1 -2.1,0.5 -0.1,1.7 -2,0.7 0.2,1.7 -1.9,-0.6 -4.4,-4.5 -2,0.2 1.5,1.5 -1.6,1.4 4.5,2.5 -0.2,0.8 2,1.6 0,0.2 0,0 0.1,0.4 0.3,0.3 z m -14.4,-23.2 -0.1,0.3 0.6,-0.2 -0.3,0.1 z m 8,4.1 -1.4,0.1 0.8,0.2 z m -5.8,64.5 -0.2,0 0.5,-0.4 0,0.2 z m -100.9,-5.5 0.3,0.4 0.4,0.2 -0.3,-0.1 z m 114.1,-2 4.3,1.4 -0.7,0.7 -2.6,-0.8 z m -116.5,-0.2 -0.2,-0.3 0.2,-0.1 0.2,0.3 z m -5.6,-3.7 -0.4,0 -0.1,-0.4 0.3,-0.2 z m 93.5,-1.6 -0.5,0.3 -0.6,0.2 0,-0.3 z m -99.5,0 -0.1,0.1 -0.1,0.2 0,-0.4 z m 5.4,0.2 -0.2,-0.2 0.2,-0.2 0.1,0 z m -0.1,-0.5 -0.1,0.2 -0.4,0 0.2,-0.2 z m -0.8,-0.7 0.1,0.4 -0.1,0.2 -0.2,-0.5 z m 0.3,-0.3 0.1,0.3 -0.1,0.2 -0.4,-0.4 z m -6,-0.3 0.4,0 0,0.2 -0.3,0.1 z m 6.3,0.9 -0.2,-0.6 0.2,-0.5 0.2,0.8 z m -1.8,-1.1 0.7,0.5 0,0.3 -0.3,-0.2 z m 2,0.5 0,-0.2 -0.1,-0.2 0.3,0 z m -2.5,-1.2 0.1,0.3 -0.2,0 -0.2,-0.4 z m 0.3,-0.2 0.2,0.4 -0.2,0 -0.2,-0.5 z m 91.9,-0.2 0.6,0.1 0.8,1.3 -2.6,-0.9 z m 3,0.2 0.1,0.1 -0.3,0.1 0.1,-0.3 z m -94,-0.5 -0.3,0.1 -0.1,-0.1 0.3,-0.5 z m -3.1,-0.3 0.1,-0.5 1.2,0.7 -0.1,0.6 z m 0.9,-0.4 -0.5,0 -0.1,-0.2 0.4,-0.2 z m 0.6,-0.1 0.9,0.8 -0.5,0.3 -1.4,-1.6 z m -1.7,-1.2 0.6,0.1 0.2,0.3 -0.7,0.4 z m -0.8,-1.3 0.7,0 0.1,0.6 -0.6,-0.2 z m 99.2,-0.8 -0.6,0.2 -0.1,-0.1 1.2,-0.2 z m -98,0.4 0,-0.1 0.5,-0.6 -0.1,0.5 z m 98.6,-3.5 0.4,-1 0.2,0 -0.1,0.7 z m -1.2,-1.5 0,0.5 -0.7,0.6 0.6,-0.6 z m -0.5,-0.7 -0.2,0.1 0.2,-0.3 0.2,0.3 z m 23.6,-3.9 -0.3,-0.1 0.1,-0.2 0.1,0 z m -2.9,-2 -0.6,0.1 0,-0.5 0.5,0 z m -21.7,-1.9 0.3,-0.2 0.1,0.2 -0.2,0.1 z m 0.7,-0.6 0.2,0.1 -0.2,0.2 -0.3,0.1 z m 29.3,-2 0.5,0.8 -0.5,-0.2 -0.2,-0.3 z m -6.5,0 0.5,0.3 -0.3,0.5 -0.8,0 z m -19.4,-0.8 -0.2,0.2 -0.7,0.2 0.2,-0.2 z m 25.7,-2.3 -0.1,0.9 -1.2,-0.8 0.8,-0.3 z m -1.9,-0.6 0.2,0.3 -0.5,-0.2 0.3,-0.2 z m -51.8,-0.3 -0.4,0.3 -0.3,-0.2 0.4,0 z m 53.2,0 0.5,0.5 -0.7,0 -0.2,-0.3 z m -27.5,-1.3 0.2,1.2 -0.8,1.2 -0.9,-1.7 z m -24.8,0 0.1,-0.1 0.4,0 -0.2,0.2 z m 53,-0.5 0.6,0 -0.4,0.5 -0.6,-0.1 z m -25.1,0 -0.5,-0.1 0.9,0 -0.3,0.1 z m 24.8,0 -0.5,0 0.2,-0.1 0.2,-0.1 z m -18.4,-0.5 0.8,0.1 0.2,0.2 -0.8,-0.1 z m 7,-0.4 1.2,0.8 -1.1,0.1 -0.9,-1 z m -21.6,-0.4 0.3,0.9 -2.3,1.5 -1.5,-0.9 1.2,-1.3 z m 29.3,0.1 0,0.1 -0.5,-0.5 0.2,0.1 z m -22.3,-1.6 1.4,0.1 0.3,0.8 -0.7,0.3 z m 27.3,-0.4 -0.2,0.4 0,0.5 -0.4,-0.9 z m -24.8,-0.2 1.1,0.6 -0.8,0.2 -0.9,-0.5 z m 24.7,-0.3 -0.2,0 0,-0.2 0.3,0.1 z m -25.5,-0.7 -0.4,0.2 -0.4,-0.1 0,-0.1 z m 24.1,-0.6 -0.1,0 -0.1,-0.4 0.3,0.2 z m -16.4,-0.9 -0.1,0.6 -0.1,-0.1 -0.1,-0.6 z m 15.8,-0.7 0.1,0.3 -0.8,0.4 0.4,-0.6 z m 5.4,-3.2 0.4,0 0.2,0.3 -0.6,-0.1 z m -39.9,-0.3 -0.4,0.1 -0.1,-0.2 0.4,0 z m -3.4,-0.7 0.6,0.6 0.1,1 -0.8,-0.7 z m 1.4,-0.2 1.1,0.5 0.7,1.1 -1.4,-0.5 z m 2.3,-0.6 0.4,0.1 -0.1,0.3 -0.6,-0.3 z m 39.7,-2.8 0.1,0 -0.9,0.5 0.3,-0.5 z m -86.1,0.3 -0.3,0 -0.2,-0.3 0.1,-0.1 z m -1,-1 -0.1,0.3 -0.3,-0.4 0.4,-0.2 z m -1,-0.5 0.2,0 -0.1,0.3 -0.3,-0.3 z m 85.4,0.1 -0.4,0 0.1,-0.4 0.3,0.3 z m -84.5,-0.1 -0.4,0 0.1,-0.4 0.2,0 z m -10.1,-1.2 -0.4,0 0.9,-0.1 0,0.1 z m 9.9,0.1 -0.4,0 0.1,-0.2 0.2,-0.1 z m -2.1,-0.3 0.5,0.1 -0.1,0.2 -0.4,-0.2 z m -0.4,-0.2 0.1,0.2 -0.3,-0.2 0,-0.2 z m -1,-0.4 0.5,-0.2 -0.6,0.4 -0.6,0.2 z m 68.2,0.3 1.6,0.3 0,0.7 -1.9,-0.1 z m -23.2,0.4 -0.4,0.7 -0.7,-0.6 0.4,-1.3 z m -48.4,-0.9 -0.2,0 0.1,-0.3 0.3,0 z m 69,-0.3 0.9,0.2 0.2,2.3 -1.6,1 -2.1,0 -0.7,-1.5 1.2,-1.8 z m -6.5,0.4 -0.3,-0.1 0,-0.4 0.7,0.2 z m -5.9,-0.6 0.2,0.1 -0.2,0.1 -0.3,-0.2 z m 15.2,0.4 -0.5,-0.6 0.3,0 0.3,0.3 z m -70.1,-1.1 0,0.1 0.1,0.2 -0.7,0 z m 11.9,0.6 -1,-0.5 0.8,-0.1 0.4,0.2 z m 49.7,-0.8 -0.1,0.5 -0.6,0 0.5,-0.4 z m 7.8,0.3 -0.5,0 -0.2,-0.3 0.2,-0.1 z m -0.7,0 0.1,0.7 -1.1,-0.6 0.3,-0.7 z m -51.5,-0.8 -0.1,0.7 -1,-0.4 0.6,-0.4 z m 3.1,-0.4 -0.5,0.6 -0.4,-0.1 0,-0.8 z m 0.3,-0.1 -0.4,-0.2 0.2,-0.5 0.2,0.2 z m -69,-0.6 0.1,0.1 -0.4,-0.1 0,-0.2 z m 65.8,0.1 0.1,-0.5 0.2,0.1 -0.1,0.3 z m 21.3,-0.9 0.2,0.4 -0.3,0.1 -0.1,-0.5 z m 23.2,-0.1 0,0.5 -0.8,1.1 -1.1,-0.1 z m -109.4,-0.7 0.3,-0.2 -0.3,0.7 -0.5,-0.2 z m 103.1,0.5 0.4,0.1 0.1,0.2 -0.8,-0.2 z m -16.2,0.2 -0.3,0.5 -0.3,-0.3 0.3,-0.3 z m 25.2,-0.1 0.7,0.1 -0.9,0.9 -0.5,-0.5 z m -46.4,-0.5 0.6,0.3 -0.5,0.3 -0.2,-0.2 z m 8.8,0 1,0 0,0.7 -0.8,-0.4 z m 1.9,-0.2 0.6,0.3 -0.7,0.7 0,-0.8 z m -82.7,0.1 -0.5,0.2 -0.2,-0.2 0.2,-0.2 z m 116.6,-0.3 -1.1,0.7 -0.6,-0.1 1.1,-0.8 z m -3.3,-0.5 0.3,0.7 -2.3,-0.2 1,-0.4 z m -5.4,0.2 -0.1,0.1 -0.5,-0.2 0.3,-0.1 z m -17.8,-0.2 0.1,-0.2 0.5,0.2 -0.1,0.3 z m -10.6,-0.3 -0.2,0 -0.1,-0.1 0.3,0 z m 19.8,-0.7 0.8,0 -0.4,0.5 -1.1,-0.5 z m -47.2,-0.7 -0.9,0.1 -0.3,-0.3 0.8,0.2 z m -9.2,-0.8 0.6,0 -0.9,0.2 -0.3,-0.2 z m -0.8,0 -0.7,0 -0.1,-0.1 0.1,-0.1 z m -21.5,-0.2 -0.3,0 -0.2,0.2 0.3,-0.4 z m 52.5,-0.3 0.4,0 0.5,0.8 -0.8,-0.3 z m 52.7,-2.6 0.7,-0.1 -0.4,0.5 -0.5,-0.2 z m 0.8,-0.4 -0.5,0 0.2,-0.4 0.3,0 z m -61,-6.4 -1.3,1.7 -2.3,-2.1 -0.2,-1.1 2.7,-0.1 z m 0.4,-11.5 0.7,-1.4 2.5,1.4 0.7,1.2 -2.6,0.5 z m 27,-5.3 1.2,1.2 -0.8,0.5 -2.1,-0.8 z m -28.2,0.9 1.1,1.1 -1.5,-0.1 -1.6,-2.3 z m 37.2,91.2 -0.2,0 -0.5,0 0.2,-0.2 z m -4.1,-2.7 0.2,0.2 -0.7,0 0.1,-0.3 z m 10.5,6.8 0.6,0.1 0.2,1.1 -2.7,-0.8 z m -2,0.2 -0.1,0.2 -0.3,-0.1 0.2,-0.2 z m -1.4,-0.8 0.5,0.2 -0.4,0.3 -0.2,-0.3 z m 14.7,5 -0.3,0.1 0.1,-0.2 0.5,0 z m -36.9,-101.2 4.6,0.2 -0.5,1.1 -4.8,-0.1 z m 68.6,96.9 -2.3,1.3 -1,-1.4 1.8,-2.4 0.3,1.8 z m -4.3,-3 0.1,1.9 -1.1,1.2 -1.3,-1.1 2.2,-0.2 z m -134.6,-14.3 -0.4,-0.5 1.4,-0.3 0.2,1.5 z m -1.3,-3.2 2.6,0.1 -0.7,2.3 -1.6,-0.5 z m 102.4,-5 -0.9,0.4 1.4,-2 0.4,0.6 z m -29,-63.2 2.3,1.8 -0.2,2.4 -2.9,-0.2 -2.9,-1.1 0.8,-1.8 z m -28.2,-10.5 -3.3,-0.2 -3.7,0.4 -0.3,-0.5 5.4,-1.5 1.7,0.7 z m 25.9,-0.7 2,0.6 -0.1,1 -3.8,1.4 -1.7,-1.1 -1.2,-1.9 0.5,-1.4 3.8,0.9 z m 55,101.8 -0.6,-0.2 0.1,-0.8 -0.5,-0.1 -0.3,-0.2 0,-3.2 -2.7,-0.9 -1.5,1.8 -0.5,2 -2.3,2 -6.2,0.1 2.3,-1 0.7,-1.5 5,-2.3 2.9,-3 5.4,-2.4 2.4,0 1.4,0.8 -0.2,1.1 -2.1,1.1 -2.1,-0.3 1.7,1.1 2.2,-0.5 -1.2,1.6 2,2.8 3.1,1 1,-0.6 1.8,1.3 -4,1.5 -1.5,0 -3.3,2.9 -1.2,-1.5 0.4,-1.1 2.2,-1.4 0.6,-1.8 -2.6,1.7 z m -12.4,-1 0.3,-0.2 -0.1,0.4 -0.1,0.2 -0.8,0 0.5,-0.3 -0.2,0.1 0.2,-0.3 0.3,-0.1 z m -96.9,-9.5 -0.8,-0.5 0.6,0.1 0.2,0.4 0,0 z m 7.2,-80.5 -0.7,-1.4 -0.9,1.1 -2.1,-0.1 -0.8,-1.2 2.5,-0.8 5.2,-3.7 4.6,-0.8 1.9,1 -1.6,0.5 0.7,2 -2.3,0.7 -0.7,1.7 -2.2,2.3 -1.5,-0.4 3.3,-2 -0.1,-2.6 -1.5,0.2 -1.1,2.5 z m 127.6,85 1.8,-1 0.5,1.4 -0.6,1.8 -2.4,-0.3 0.8,-1.2 -2.2,0.2 -1.5,1.1 0.1,-2 -6.7,0.3 -0.5,-0.8 1.4,-1.6 3.8,-6.9 2.1,0.9 -2.1,2.3 2.4,0.3 -0.4,1.4 3,-0.9 1.2,1.2 -0.8,1.7 1.6,0.3 z m -60.8,-43.2 -3,0.3 1.8,-1.5 -0.4,-1.6 0.9,-3.7 0.9,-0.5 1.3,2.2 0.4,-0.8 4.3,2.3 1.6,1.6 2.5,1.3 -1.5,1.1 -4.9,-2 -0.2,1 -3.1,2 z m -23.8,-20 2.2,1.3 2,2.1 1.2,0.1 -2.5,1.3 -1.8,-0.3 -4.1,-1.6 2.3,-1.1 z m -11.4,-3 4.7,2.2 1.2,1.1 -2.9,-0.1 -0.8,1.5 1.5,-0.3 0.3,1.4 -2.9,0.9 -5.8,-1.3 -0.1,-1.1 -1.6,1.6 -3.1,1 -8.2,0.9 -0.9,-2.5 -4.4,-0.3 -2.8,-2.4 0.9,-0.4 5.4,-0.7 5.1,0.2 -1.3,-0.8 -3.5,-0.8 -3.9,0.6 -3,-0.2 -1.5,-1.5 4.4,-1.2 0.5,-0.6 -4.5,0.6 0.2,-1 -1.9,0.1 0,-1 1.8,-1.1 -0.9,-0.8 2.4,-1.7 5.3,-1.8 1.2,0.9 0.4,2 1.4,-1.5 3.4,1.1 -0.8,1.5 2,-1.1 1.6,0.4 -1.8,-1.9 1.2,0.1 2.8,1.5 1.7,3.4 0.9,-1 -1,-0.8 -0.6,-2.3 0.2,-2.9 1.6,1.3 1.3,-0.1 2.1,1.6 0.2,1.2 1.8,3.2 -0.5,1.8 z m 49.5,-10.5 3.6,2.1 -0.1,1 -7.1,-0.1 -1.5,-1.6 -0.1,-1.7 z m -35.2,6.4 -3.1,0.9 -1.2,1.4 -3.6,-3.3 -2.3,-0.5 -1.8,-1.8 1.6,-1 1.2,1.4 1.7,-0.1 0.4,-1.4 -2.7,-1.4 1,-0.9 5.6,-1.3 0.8,-1.5 -0.5,2.1 1.5,0.3 0.2,1.7 -2.3,1.3 2.1,0.3 0.8,-0.8 1,2.7 z m -48,-9.7 2.7,1 4,0 2.3,0.7 3,2.3 -7.4,3.1 -1.9,1.7 -0.9,2.4 -4.7,1.4 -1.9,-2.1 -3.5,-1 2,-4 2.1,-2.6 -1.9,-2.2 z m 40.7,-1.8 -0.8,-1.6 1.8,-0.9 -5.4,0.6 -1.4,-1 2.2,-0.9 0.7,-1.9 3.9,2.1 -2.6,-2.5 0.4,-0.7 6.3,1 0.5,4 -1.2,1.8 z m -18.6,-3.4 1.4,-0.8 -2.1,-0.8 3.1,-2.3 0.5,3.3 2.8,0.6 0.9,-0.7 2.1,0.7 0,1.3 3.7,1.5 -2,0.5 -2,-1.2 -0.7,1.1 -4.6,0.6 -0.8,-0.6 -5.4,2.2 -3.9,0.2 -1.4,-1 3.1,-1.1 2,0 1.6,-1 -5.8,0.7 -0.2,-1.2 -1.7,1.6 -4.9,-0.9 3.1,-4.5 1.9,-0.7 0,-1 0.9,0.2 0.9,2.1 1.8,-0.3 3,1.7 0.4,1.2 4.5,0.2 0.1,-0.9 z m 58.7,3.9 -1.5,1 -3.1,0.6 -3.3,-0.4 -7.9,0.4 -2.3,-0.8 -2.1,0.5 -4,-0.9 -0.9,-1.7 0.7,-2.5 -1.9,-2 -1.8,0.4 -3.4,-0.5 -1.9,-2.4 2,-0.3 4,0.6 1.2,1.2 3.1,-0.3 4,2 -1.6,0.5 3.8,2.1 4.2,0 4.4,-1.2 5,0.2 2.8,1.2 0,1.2 -1.5,0.5 z m -59.1,-10.4 -3.6,0.8 -2.1,-0.9 -0.7,-1.2 -1.1,0.5 -1.8,-1.1 1.5,-0.5 2.1,0.8 4.8,-0.9 2,0.6 z m 12.5,-7.8 2.5,1.5 1.5,-0.3 4,2.1 -0.6,0.6 1.6,2.3 -4.2,0.2 0.3,-1.5 -3.3,0 0.1,-0.7 -3.3,0.4 -1.1,-0.9 2.8,0 -1,-2.1 -2.8,-0.1 0.3,-1.4 z m 24.9,-5.3 2.7,0.2 0.5,1.5 1.1,-1.1 1.5,0.1 1.4,2.2 -0.4,1.5 3.1,0 1.2,1.2 -3,1 -4.8,3.8 -5.8,-0.2 -4.3,-3.2 2,-0.9 2.6,0.1 -1.4,-1.3 -2.6,0.9 -3.5,-0.7 -1.8,-3.2 3.6,0.4 -3.3,-1 1,-1.3 1.6,-0.2 -0.6,-0.8 1.3,-1.2 3.2,-0.1 -2.4,-0.8 2.2,-0.5 2.8,1 z m -64.2,100.3 0.2,0.1 -0.1,0.1 -0.1,-0.2 0,0 z", - "ST" : "m 348.93,217.59 -0.3,-0.3 0.4,-0.3 0.2,0.3 z", - "CV" : "m 290.83,188.39 0.5,0.4 0,0.4 -0.5,-0.2 z", - "DM" : "m 218.73,187.89 0.3,0.3 -0.2,0.4 -0.2,-0.5 z", - "NL" : "m 346.93,104.89 -0.7,0.2 0.1,-0.2 0.8,-0.1 z m -131.3,78.2 -0.1,0 0,-0.1 z m 127.1,-72.9 0.8,0 0.9,0 -0.8,0.4 z m 7.4,-4.8 -0.4,2.6 -1.2,1 -0.7,2.7 -1.9,-1.8 -1.5,0.3 -0.8,-0.6 2.4,-3.5 2.6,-1.6 z", - "JM" : "m 188.03,182.19 2.4,1.1 -2,0.4 -2.2,-1.1 z", - "WS" : "m 6.43,243.59 0.1,0.6 -0.5,0 -0.5,-0.6 z", - "OM" : "m 444.03,168.69 -0.1,0.1 0,-0.2 0.3,0 z m -0.4,-1.7 0.6,-0.6 -0.2,1.5 -0.2,-0.1 z m -7.8,14.2 5.7,-2 1.3,-3.9 -0.9,-1.5 1.2,-4.4 1.1,-0.2 1.5,2.1 3.1,0.8 2,2.7 -4.1,5 0.3,1.3 -2.2,0.9 -0.6,1.3 -1.8,0.2 -0.8,1.6 -3.7,0.7 -0.7,-1.3 z", - "VC" : "m 219.13,192.79 -0.1,-0.3 0.2,-0.3 0,0.3 z", - "TR" : "m 386.03,136.89 -0.4,0.2 -0.2,-0.1 0.5,-0.3 z m 3.9,-4.1 2.1,1.7 -3,0.6 -0.7,0.8 -2.2,-0.3 1.2,-1.5 -0.6,-0.7 1.4,-0.8 z m 32.2,5.3 -1.6,0.6 0.5,3.1 1,1.8 -3.9,-0.4 -0.7,0.5 -0.3,-0.5 -4.7,1.3 -2.9,-0.3 -3.1,0.1 -1.4,2 0.2,-2.2 -1.3,0.8 -1.5,-0.4 -3.3,1.6 -1.5,-1.2 -2.6,-0.7 -0.5,1.4 -1.4,0.3 -2.6,-2.1 -2.2,-0.6 0.1,-1.4 -1.9,-0.7 1.6,-1.3 -1.2,-0.8 -0.1,-0.2 -0.5,-0.3 1.2,-2.1 4.6,-0.1 0.1,-1.8 3.9,0.3 4,-2.1 5,0.6 3,1.6 3.7,-0.1 1.3,0.4 2.7,-1.3 2.4,-0.2 1.2,1.1 0.5,2.2 2.1,1 z", - "BD" : "m 512.93,177.09 -1.5,-3.5 -2.5,2 -2.1,-0.6 -1,-3 0.4,-1.4 -1.4,-0.7 1.7,-1 -1.6,-1.5 0.7,-1.2 2.7,1 1,1.7 3.2,-0.1 0.8,0.5 -2.5,2.7 0.8,1.3 1.1,-1.5 0.8,3.5 0.1,1.3 z", - "LC" : "m 219.63,191.49 -0.3,-0.3 0.3,-0.4 0.1,0.3 z", - "NR" : "m 655.93,218.79 0,0 -0.1,-0.1 0.1,0 z", - "NO" : "m 376.13,55.29 -0.4,0.2 -0.4,-0.2 0.4,-0.4 z m -1.5,0.3 -0.5,-0.2 -0.4,-0.6 1.2,0.5 z m 5.1,-1.2 0.6,0.4 -1.1,-0.1 0.1,-0.3 z m 1.6,-0.8 0.3,0.5 -1.1,0.6 -0.5,-0.4 z m 0.6,-0.4 0.6,0.4 -0.8,0.3 -0.2,-0.6 z m -0.8,-0.4 -0.6,0.9 -1.8,0.3 0.7,-0.8 z m 1.3,-0.6 0,0.3 -0.3,-0.1 0.1,-0.3 z m 3,-0.5 0.6,0.5 -0.8,0.3 -0.5,-0.4 z m -8,-28.6 1.5,1.4 -2.3,0.2 -1.7,-1.2 z m 10.1,-0.2 -0.6,-0.3 0.3,-0.4 0.5,0.4 z m 4.4,-1.2 -1.8,0.4 -0.5,-0.1 1.1,-0.5 z m -16.9,-0.9 1.2,0.3 -0.9,0.3 -0.6,-0.2 z m -0.1,-1 -0.9,0.1 -0.1,-0.2 0.1,-0.1 z m 25.8,-3.7 -1.6,0.4 -2.3,0.2 -0.2,-0.2 z m -17.7,-0.8 -0.5,0.1 0.1,-0.3 0,-0.1 z m -0.4,-0.5 0.2,0.1 -0.2,0.1 -0.4,-0.1 z m -8.1,0.1 -0.2,-0.1 0.2,-0.1 0.3,0.1 z m 2.6,-0.9 -0.4,0.1 -0.2,-0.1 0.4,-0.1 z m -1,0.2 0,-0.3 -0.5,-0.3 0.8,0.2 z m -4.7,43 1.2,0 2.3,-1.3 0.6,0.6 0.2,-0.1 0.1,0 0.1,-0.2 0.3,-0.3 -0.2,-0.2 0.4,-0.1 0.1,0 1.1,-1 0.2,0 0,0.1 0.1,0.1 0,-0.1 2.3,0.3 3.2,-2 2.5,-0.3 -1.6,1.3 0.1,1.4 3,-3 -0.4,2 2.1,-2.5 4.6,1.3 2.1,1.5 -1.8,0.8 -2.7,-0.4 4,1.3 -1.7,1.5 -1.9,1.1 0.8,-1.5 -2.8,-2 -3.6,1.3 -0.8,2.7 -1.4,1.1 -1.8,-0.9 -2.9,0.4 -1.4,-1.9 -2,0.8 -1.3,2.3 -3.5,-0.6 -0.5,1.8 -1.1,-0.4 -2.2,2.2 0.5,1.2 -3.6,3 0,2.5 -1.7,2.3 0.6,1.8 -2.4,0.2 -1.4,2 0.7,3 -0.3,1.6 1.3,1.1 -1.2,1.1 0.5,2.5 -1.2,0.7 -0.8,2.5 -1.9,-0.7 -3.7,2.8 -1.8,0.6 -2,-0.2 -2.5,-2.9 0.8,-2.6 -1.9,-2.9 1.3,-1.5 -1,-0.8 1.5,-1.5 2.6,-1.1 -0.1,-0.6 3.6,-1.3 -1.9,-0.2 1.9,-1.2 2.5,1.5 2.6,-1.5 -2.9,0.9 -0.7,-0.8 3.2,-3.2 1.5,-0.8 0.3,-1.2 2.7,-4.7 3.8,-2.7 -1.5,-0.2 3.2,-1.3 -0.7,-0.6 2.2,-1.1 -0.8,-1.1 1,-1.6 1.8,-0.1 1.4,-1 -0.1,-1 0.9,1 z m 22.4,-0.9 -0.3,-0.3 -0.3,0.5 0.7,-0.2 z m -9.5,-24.6 0,-0.2 1,-0.7 -1,0.9 0,0 z m -20.5,28.4 2,-0.6 1.3,-1.5 0.9,2.1 -1.8,1.3 -4.3,0.8 0.2,-0.6 3.4,-0.7 z m 17,-31.5 -1.3,-0.8 -3.2,0.1 1.4,-2 -1.4,-0.7 3.9,-0.7 1.3,1.6 1.5,0.2 z m -14.5,-10.2 1.6,-1.6 4.5,2.7 0.1,1.2 5,1.3 -4.9,1.6 -1.5,4.1 -0.9,0.1 -1.7,3.6 -4.7,-2.5 -0.9,-1.4 5.5,-1.4 -5.9,0.4 -0.2,-1.2 2.8,-0.2 1.4,-1 -1.9,-1.6 -0.1,1.4 -3.3,0.8 -1.9,-1.7 0.3,1.7 -2.1,-1 -1.2,-1.9 1.7,-0.3 -1.2,-2.5 0.6,-0.6 2.1,0.1 3.2,-0.9 0.2,1.4 1.2,-1.1 1.5,0.9 2,2.9 z m 15.5,-2.7 5.8,0.6 0.7,1.4 -2.3,1.5 -3.7,1.4 -2.1,-0.2 -0.1,-0.8 -4,0.2 -2.2,-1.1 4.2,-0.4 0.1,-0.5 -6,0.5 0.1,-1.4 -1.9,-0.4 0.6,-0.7 2.3,0.8 2,-1.4 1,0.9 1.8,-0.3 1,1.2 0.7,-2.2 0.5,1.5 z m 2.5,16 -0.2,0.2 0.1,-0.2 0.1,0 0,0 z", - "KN" : "m 216.43,184.69 -0.5,-0.3 0.1,-0.1 0.2,0.2 z", - "BH" : "m 432.93,166.69 0.3,0.1 -0.1,0.8 -0.2,-0.4 z", - "TO" : "m 1.43,258.89 -0.1,0.1 -0.7,-0.3 0.4,-0.1 z", - "FI" : "m 375.83,86.59 -0.1,0.3 -0.6,0.1 0.3,-0.2 z m -0.8,0.1 0.1,-0.1 -0.2,0.4 -0.3,-0.2 z m 0.3,-0.5 -0.6,0.5 -0.9,-0.5 0.9,-0.3 z m 2.3,0.1 0,0.2 0.7,-0.1 -0.8,0.3 z m 1.6,0.7 0.1,-0.6 0.7,0.2 -0.6,0.7 z m -2.2,-1.7 0.1,0.3 -0.1,0.3 0,-0.4 z m 0,-8.1 0.2,0.3 -0.3,0.2 -0.2,-0.3 z m 6.9,-5.4 -0.5,0.3 -0.1,-0.2 0.2,-0.1 z m -5.9,13.9 -0.3,-0.1 -0.8,-4.4 0.5,-3.7 1.7,-0.3 4.6,-4.7 0.9,0.1 0.2,-2.2 -2.3,-0.9 -1,-2 0.7,-1.2 -1.1,-2.2 0.4,-1.6 -5.7,-3.5 2,-0.8 1.4,1.9 2.9,-0.4 1.8,0.9 1.4,-1.1 0.8,-2.7 3.6,-1.3 2.8,2 -0.8,1.5 -1,1.7 0.5,1 2.5,1.8 -1.7,2.7 1.5,2.3 -0.6,3.6 1.9,3 -1.1,0.8 3,2.5 -0.6,1.2 -3.9,3.8 -2.7,2 -7.7,1.6 -2.6,-0.9 0.1,-0.1 -0.3,0 0,0 -0.8,-0.2 0.2,0.1 -0.1,0.2 -0.3,-0.3 z", - "ID" : "m 593.33,228.59 1,0 -1.1,2.3 -0.1,-1.6 -1.9,-1.3 z m -51.2,-5.5 -1.9,0.6 -1.4,-1.8 0.5,-1.1 1.1,2.5 z m 19.2,10.6 2.9,-0.2 0,0.7 -3.9,0.9 -2.2,-0.5 1,-1.2 z m 20.3,-20.3 -0.2,1.9 1.6,2 -1.7,-0.4 -0.5,3.4 -1.2,-2 1.1,-0.1 -0.5,-2.7 z m -7.9,22.2 0.5,0.3 0.3,-0.6 0.3,-0.1 0.6,-0.3 0.1,0.4 0.2,0.6 -1.1,1.2 -1.9,0.5 z m -11.7,-25.7 -0.4,0.3 0,-0.4 z m 44.2,12.8 0,8.2 0,4.2 -1.8,-1.9 -4.6,0.6 0.7,-1.5 1.6,-0.6 -2,-3.9 -3.5,-1.5 -1.5,-0.1 -3,-1.8 -1.4,1.2 -1.3,-2.7 3.4,-0.6 -2.5,-0.1 -3.5,-1.9 -1.1,-2.3 1.9,1.3 2.8,-0.8 2.4,0.6 0.3,2.8 1.6,2.2 2.5,-1.5 -0.2,-1.7 3.2,-0.3 3.9,1.7 z m -39.3,14.7 -2.9,-1.4 1.4,-0.4 1,-2 4,0.6 1.3,-0.8 5.4,-0.4 -3.3,1.1 -0.5,-0.5 -3.9,1.1 -3.5,-0.1 1.7,2.2 z m -23.2,-4.7 -3.5,-0.8 -2,-1.2 1.1,-1.7 4.4,0.7 0.5,0.9 3.6,0.4 0.9,-1 2.2,0.9 6,-0.1 0,3.8 -3.8,-1 -1.1,0.3 -3.7,-0.5 -2.6,-0.9 z m 37.9,-9.1 -2.7,1.5 -1.4,-0.9 -0.1,-1.9 0.3,1.4 1.9,0.5 1.7,-0.9 3,-0.2 2,0.6 0.4,1.4 z m -10.2,5 -1.6,-0.4 1.8,-1.9 -2.7,0.3 0.2,-1.1 -2.3,-1.5 -0.2,4.3 -1.8,-0.3 0.5,-2 -1.6,-3.2 1.1,-1.3 1.3,-5.1 1.7,-1.2 1.3,0.5 4.4,0.5 2.3,-1.8 -1.2,2.5 -8,0.1 -0.6,1.2 1.3,2.2 1.9,-1.7 3.3,0.3 -0.2,2.1 -1.1,-1.2 -2.2,1.5 1.8,2.4 1,2.3 z m -10,-18.7 -0.4,1.6 1.4,1.9 -0.5,0.8 2.2,1.6 -2.4,0.6 -0.6,2.4 -1.6,1.7 0,1.4 -1.2,2.7 -2.6,1.1 -0.7,-1.5 -2.3,-0.4 -2.4,0.7 -0.1,-1.5 -2.8,0.5 -0.6,-3.6 -0.9,0.3 -1.2,-4 1.5,-2.4 1.7,2.3 4.7,-1.3 2.9,0.2 1.8,-3 0.8,-2.6 z m -37,-0.1 2.9,1.9 2.3,2.5 1.3,-0.5 4,3.6 -0.7,1.9 1.9,0.5 0.7,2.6 1.7,0 0.8,1.7 -0.4,4.5 -2.1,0.5 -6,-5.1 -1.5,-2 -1,-2.6 -1.8,-2 -1.8,0.5 1.6,3.3 -0.7,-0.1 -1.1,-3.2 1.5,-1.2 -1.1,-2.5 -2.3,-0.2 1.2,2 -0.5,0.8 -1,-2.9 -1.4,-0.5 1.7,0.3 0.5,-1.3 -4.1,-3.7 -0.3,-1.9 2.2,1.1 2,0 z", - "MU" : "m 446.83,256.49 -0.1,0.8 -0.6,0 0.3,-0.9 z", - "SE" : "m 371.43,89.89 0,0 0.1,-0.3 0.2,-0.1 z m 7.4,-19.2 0,-0.4 0.3,0.2 0,0.2 z m 3.7,-1.2 -4.4,0.9 -1.3,2.7 0.8,0.7 -1.5,1.7 -3.4,2.1 -2.3,2.1 -1.4,3.2 0.4,1.9 1.2,0.4 2.2,2.5 -1.2,1.7 -3.3,1.5 -0.6,2 0.6,2.7 0.7,-1.2 1.9,0.2 1.3,-1.8 -0.1,1.9 -3.1,0 -1.2,2.7 -3.4,0.3 -1,2 -2.3,0 -1.2,-4.1 -1.5,-2.9 0.2,0 0.2,-0.3 -0.5,0.1 0,0.2 -0.5,-1.1 0.4,-1.8 0.8,-2.5 1.2,-0.7 -0.5,-2.5 1.2,-1.1 -1.3,-1.1 0.3,-1.6 -0.7,-3 1.4,-2 2.4,-0.2 -0.6,-1.8 1.7,-2.3 0,-2.5 3.6,-3 -0.5,-1.2 2.2,-2.2 1.1,0.4 0.5,-1.8 3.5,0.6 1.3,-2.3 5.7,3.5 -0.4,1.6 1.1,2.2 -0.7,1.2 z m -23.7,22.4 -0.6,0.2 0.1,0.3 0.6,-0.2 z", - "TT" : "m 219.73,197.09 -0.2,1.3 -0.9,-0.3 -0.4,-0.8 z", - "MY" : "m 528.33,207.39 0,0.4 -0.2,-0.1 0,-0.3 z m 33.7,2.5 -0.4,-0.1 0.1,0 -0.3,0.1 -3.3,-0.5 -0.8,2.6 -1.8,3 -2.9,-0.2 -4.7,1.3 -1.7,-2.3 2.6,1 0.6,-1.6 0.2,0 0,-0.3 0,-0.2 3,-0.9 1.9,-2.8 1.2,1.1 0.7,-1.6 0.1,-0.1 0,0.2 0.6,1 -0.4,-1.2 1.9,-2.3 2.2,-1 3.8,2.8 -2.1,0.6 0.8,1 -1.4,0.3 z m -34,-4.4 1.8,0.4 0.1,1.2 1.8,-1.2 2.6,2.7 0,3.6 1.6,3 -1.7,-0.4 -4,-2.5 -1.1,-1.9 z", - "PA" : "m 187.13,203.99 -1.2,-2.6 -2,-0.7 -1.7,1.7 0.9,1.2 -3.4,0.4 0.1,-1.8 -2.2,0.3 -0.3,-0.6 0,-0.1 0,0 0,0 0,0 0.9,-2.3 0.9,1.2 2,0.3 2.7,-1.6 2.3,0.4 2,1.4 0.4,1.4 z", - "PW" : "m 593.83,203.79 0,-0.2 0.1,-0.3 0.2,0 z", - "TV" : "m 679.43,233.99 0,0 0,-0.1 0,0.1 z", - "MH" : "m 663.83,204.19 0.3,0.1 0.1,0 -0.1,0 z", - "CL" : "m 195.93,330.49 2.3,1.1 -1.4,0.9 -1.8,-1.9 z m -3.3,-14 1,2.1 0.1,3.2 -2.2,-0.8 1.3,-0.9 -1.3,-1 0.1,-1.9 z m 2.9,-12.8 -0.4,2.3 -2,0.7 1.1,-1.6 0.3,-2.5 z m 9.4,24.9 0,5.6 -0.2,0 0.2,0.1 -0.1,0.2 -2.5,-0.3 -1.1,1.1 -1.4,-2.5 1.6,-1.8 0.2,2 2.6,0.3 -2.1,-0.9 -0.6,-2.8 1.9,-1.5 z m -3.4,-75.6 0.8,-0.1 0.9,-1.5 1,2.8 1,1 -0.6,2 1.1,1.7 0.6,3 1.3,0 -0.3,2.4 -2.3,1.6 0.5,4.3 -1,0.5 -1.6,2.6 -1.8,6.6 1.6,3.8 -1.2,3.9 0,1.9 -1.2,1 -0.3,2.6 0.6,2.2 -1,0.5 -1.1,4.1 0.4,3.1 -0.8,2.1 1,2.1 -0.8,2 1.4,1.3 -1.1,4.6 -1.2,1.7 0.5,1 -2.5,3 0.8,3 1.6,-0.3 -0.2,2.3 1,1.1 3.7,0.1 2.9,0.9 -1.3,-0.4 -3,1.4 -0.6,2.7 -4.2,-1.4 0.5,-1.1 -2.2,-0.3 -0.6,-1.5 1.4,0.3 -0.3,-2.5 -2.4,-1.2 1.6,-0.9 -0.3,-4.5 -0.6,-2.2 0.9,-2.3 -2.2,-0.3 1.8,-2.9 0.9,1.4 1.5,-1.7 -0.3,-1.1 -2,-0.1 1.1,-2.4 0.5,2.3 2.1,-6.3 -0.9,-1.3 -1.5,0.6 -0.4,-1.8 1.3,-3.3 -0.8,-3.9 0.9,-1.3 1.1,-3.4 0.8,-1 1.6,-5.9 -0.5,-4.5 0.7,-0.6 -0.5,-2.1 1.2,-2.7 0.9,-4.6 -0.3,-4.6 1,-3.3 z m 6.1,81.7 1.3,0.8 -4,-0.3 3,2 -1.4,0 -2,-1.9 -1.9,0.6 -0.2,-1 4.7,-0.3 0.3,0 z", - "TH" : "m 532.13,194.49 0.1,0.1 0.2,0.3 -0.3,0 z m -0.4,11.4 -1.8,1.2 -0.1,-1.2 -1.8,-0.4 -1.6,-2.3 -2.1,-1.7 1,-3.5 1.7,-2.8 -0.9,-3.7 -1.7,-2.1 1.1,-2.6 -2.7,-4.6 1.2,-2.6 0.9,0.3 3,-1.3 0.7,1.6 1.5,0 -0.2,4 1.8,-1.5 1,0.8 1.5,-1.2 1.2,0.2 1.6,1.9 -0.2,1.6 1.7,1.6 -0.8,2.7 -3,-0.2 -2.5,1.7 1.1,3.7 -2.1,-2 -1.6,0.2 0,-1.7 -1.8,0.1 0,2.4 -1.4,3 -0.1,2.7 1.2,-0.2 1.1,4.1 2.1,0.6 z", - "GD" : "m 218.33,194.79 -0.2,0 0,-0.3 0.2,-0.1 z", - "EE" : "m 379.63,90.99 0.8,0.6 -1.6,0.6 -0.7,-1 z m 1.4,-0.1 -0.3,0.2 -0.3,-0.2 0.2,-0.2 z m -0.3,-1.2 0.3,0 0,0.2 -0.4,0 z m -0.9,0.1 0.6,0.4 -1,0.5 -0.9,-0.7 z m 9.5,0 -1.4,0.6 1.3,2.2 -0.2,0.5 -0.4,0.8 -1.6,0 -2.3,-1.5 -1.9,0.6 -1.5,-2 -0.1,-1.8 4.8,-1.2 3.9,0.4 0.2,0.2 0.1,0.2 -0.1,0 -0.2,0.1 0,0 0.1,0 0,0 0.1,0 -0.1,0 -0.2,0 -0.2,0.4 z", - "AG" : "m 218.03,184.89 0.2,0.2 -0.3,0 -0.1,-0.2 z", - "TW" : "m 565.23,172.19 1,0 1.9,-3.1 1.6,-0.1 -1,3.9 -1.1,2.5 z", - "BB" : "m 222.33,192.79 -0.2,-0.1 0.1,-0.4 0.3,0.3 z", - "IT" : "m 359.93,141.89 6.3,-0.8 -0.8,1.2 -0.2,2.4 -1.2,-0.3 z m -5.6,-7.3 0.8,1.5 -0.5,3.1 -2.2,0.4 0.1,-3 -0.5,-1.3 z m -3.7,-6 -1.7,-3.1 0.8,-1.9 2,-0.8 1.5,0.4 2.2,-0.7 0.9,-1.2 3.3,-0.5 0.4,0.9 2.5,0.4 -0.6,0.6 0.6,1.7 -0.9,-0.5 -2.1,1.1 0.5,2.6 2.3,1.6 0.9,2.2 2.1,1.5 1.7,0 -0.2,1 4,1.9 0.9,1.2 -2.8,-0.9 -1,1.9 1.2,0.6 -2.1,3.3 0.3,-1.9 -1.1,-2.9 -3.7,-2.6 -1.2,0 -3.6,-3 -2.1,-3.4 -2.5,-1 z m 9.5,4.4 0,0 0,0 0,0 z m 0,-4.6 0.1,-0.2 -0.1,0 -0.1,0.1 z", - "MT" : "m 363.63,146.09 0.5,0.2 0,0.3 -0.3,-0.1 z", - "VU" : "m 656.83,245.19 1.4,1.2 0.7,3.8 -1.7,-0.8 -1.6,-2.6 z", - "SG" : "m 535.13,214.99 0.3,0.2 -0.3,0.2 -0.4,-0.1 z", - "CY" : "m 400.93,148.29 0,0 0,0 z m 0.5,-0.1 0.2,0.2 -0.4,0 -0.2,-0.2 0.2,0 0.2,0 z m -0.5,0.1 0,0 0.1,0.1 0,0 z m -0.1,0.1 -0.2,0.3 -1.1,0.4 -0.4,-0.1 -0.1,0.1 -0.9,-0.9 0.6,-0.3 0.1,0.1 0,-0.1 0.1,0 0,0 0.1,0 0,0 0,0 0,0 1.3,0.1 0.5,0.3 z", - "LK" : "m 489.33,199.29 1.6,0.6 2,3.4 -0.1,1.9 -2.2,1.3 -1,-0.4 -0.6,-3.7 0.8,-2.7 z", - "KM" : "m 419.53,240.59 -0.5,-0.4 0.1,-0.7 0.3,0 z", - "FJ" : "m 675.43,250.99 2.2,0.1 0,-1 3.1,-1.2 -3.2,2.4 0.9,0.5 -0.4,2.4 -0.7,-1.3 -1.5,-0.3 z", - "RU" : "m 621.23,124.99 -2.1,0.7 -1.5,1.4 -2.9,1.4 1.3,-1.6 4.8,-2.3 z m -189,-65.8 -2.9,0.8 -0.5,-1.8 1.8,-0.8 1.7,0.8 z m 17.7,-4.7 2.2,1.5 -1.8,0.7 -1.9,-1.3 z m 22.6,-10.7 1,0.4 -3.4,0.7 0.1,-1.3 z m 80.8,-3.8 -1.1,1 -2.5,-0.9 1,-0.8 z m -107.6,-23.8 -2.8,0.4 0.6,-1 4.7,-0.6 0.7,2.5 z m -4.8,-1.3 -0.5,1.2 -3.3,0.2 0.5,-1.1 2.8,0.6 z m 2.9,-2.7 4.8,0.2 -3.3,1.7 -2.1,0.2 -3.5,-0.8 z m 16.4,-0.5 1.4,1.2 -4.5,1.1 -1.1,-0.7 2.9,-0.6 z m -13.1,-2.3 1,1 -1.4,1.6 -3.5,-0.2 z m -34.3,120.1 -1.9,-1.7 -4.6,-2.5 1.8,-0.4 0.6,-2.6 2.8,-1.3 -2.1,-0.3 1.2,-1.8 1.8,0.1 -0.1,-2.3 0.8,-1.2 -1.8,-1.5 -3.4,-1.4 -3.4,0.2 -1.1,-2.2 -1.7,-0.1 0.5,-1.3 -1.2,-1.5 -3.9,0.6 -1,-2.3 2.8,-1.1 -1.8,-1 -1.7,-4.8 -5.2,-1.4 -1,-1.9 -0.6,-1.9 0.4,-0.8 0.2,-0.5 0.4,-1.3 -0.3,-1.5 0.3,-0.5 0.2,-0.3 0.2,-0.1 0,0 -0.1,0 0,0 0,0 0.1,0 0.2,-0.1 -0.1,-0.2 -0.2,-0.2 0.2,-0.9 3.3,-1 -3.9,-1.1 2.7,-2 3.9,-3.8 0.6,-1.2 -3,-2.5 1.1,-0.8 -1.9,-3 0.6,-3.6 -1.5,-2.3 1.7,-2.7 -2.5,-1.8 -0.5,-1 1,-1.7 1.9,-1.1 1.7,-1.5 2.3,-0.6 2.1,0.8 -2.1,0.6 7.5,1.3 9.8,5 0.6,1.5 -1.8,2.6 -2.1,0.9 -2.7,0.1 -8.5,-2 -2.4,-1.3 5.2,4.5 -0.9,1.1 0.9,1.6 1.5,-1 2.4,0 4.9,1.9 1.7,-0.8 -1.2,-2.5 2.9,-1.4 2.4,-2.3 3.1,2.9 0.6,-2.6 -1.3,-1.6 0.8,-3.5 -1.8,-1.2 5,0.5 1.5,2 -2.6,0.4 -0.8,1.3 1.7,1.4 3.7,-0.3 0.5,-2.1 1.5,-0.3 4.5,-2.5 4.4,-1.4 1,1.9 1.4,0.5 2.5,-1.6 2.5,0.4 3,-1.5 1.5,2.2 2.4,-2.6 -1.5,-1.6 1.2,-0.9 6.5,1 2.9,1.6 3,0.9 2,1.6 1.6,-2 -1.2,-0.1 -0.9,-1.8 -2.3,-0.3 1,-3.9 -1.7,0.1 0.9,-2.1 3,-1.9 0.9,-3.1 1.2,-0.7 3.8,-0.1 2.4,0.7 0.1,1.6 -2,2.6 1.6,1.5 -0.4,2.9 0.2,4.6 2.1,1.4 -1,2.6 -1.1,0.4 -1.9,3.1 -2.3,1 3.3,0.3 2.7,-1.8 2.4,-2.8 -0.6,-3.4 3.7,-1 1.8,1.6 -0.4,2.5 1.9,-1.6 -0.8,-2.1 -4.2,-1.3 -3.3,0.2 -0.5,-1.8 1.6,-2.7 -2.5,-3.2 0.9,-1.4 2.7,-1 -0.4,-2.9 1.8,-2.4 2.1,0.3 -2.3,2.7 0.4,1.8 -1,3 4.9,0.9 0.9,-0.4 -3.7,-1 -0.6,-1.3 1.8,-0.5 1.2,0.8 0.6,-1.7 2.4,-2.9 0.5,2.6 4.5,2.5 2.9,-0.1 -1.9,1.5 1.1,1 0.7,2.4 1.1,-0.5 -1.2,-2.7 0.9,-1.4 -2.8,-2.3 -2.8,-1 -0.7,-2.4 0.4,-1.4 12.5,-1.1 -0.5,-1.1 -2.8,-2.2 3.1,0.5 -0.5,-1.3 2.1,-0.2 4.1,-2.2 6.9,-1.1 -1.2,-0.7 3.2,-0.1 2.3,-0.9 -0.9,-1.5 1.6,-1.3 0.5,2.6 -1.1,0.8 1.2,1.1 2.6,-0.5 2,-2.1 3.8,-0.1 0.6,-2.2 4,-2.3 2.8,-0.2 2.2,0.6 -1.3,1.5 4.3,1.2 -2,1.5 2.8,-0.1 0.1,-0.8 6.2,0 2.6,0.5 0.2,1.6 1.4,0 0.6,2.5 -2.1,-1.1 2,2.3 -7,3.6 -3.6,2.6 -1.8,0.1 -1.5,1.5 2.6,0.1 6.1,-1.9 -2.5,-0.1 0.8,-1.1 4.5,1.2 1.5,-0.7 0.6,1.4 3.7,-0.8 5.9,0.5 -0.2,1.1 3.6,1.1 5.2,0.4 1.1,-1.3 -0.5,-1.2 2.5,-1.3 0.3,0.7 3.2,1.1 1.2,-0.5 4.6,2 -1,3.4 -2,-1.3 3.6,4.6 2.2,1.4 1.2,-0.5 1.9,-3.5 2.2,1.6 1.6,0.2 2.8,-0.9 2,0.3 3.3,-0.3 2.5,0.6 -1.6,-2.5 0.6,-1.2 3.9,-1 7.4,0.8 2.9,0.9 -2,0.4 0.5,1.3 2,-1.8 4.6,0.6 0.9,0.9 -2,0.7 4.7,1.4 1.4,1.5 2.8,0.1 4.3,-0.8 5,0.4 2.2,1.1 0.8,1.5 -0.8,1.2 2.7,1.5 5.6,-1.1 1.6,0.7 4,0.2 2.5,-1.8 2.3,0.5 -0.5,1 -2.1,-0.4 0.5,1.6 2.4,1.5 2.6,-0.9 -0.7,-3.6 9.4,0.9 3.5,0.8 7.3,2.9 0.3,0.7 6.5,2.9 1.6,3.7 0.8,-1.4 4.4,0 3.9,2.7 -1.6,1.6 -3.1,0.3 -0.9,2.6 0.8,0.9 -2.2,0.3 -2.6,-1.6 -2.2,-0.6 -0.1,-1.2 -2,-0.7 -3,0.3 -2.2,-2.1 0.8,1.8 -0.8,1.5 -4,1.5 -3.5,-0.6 3.1,2 0.5,-0.5 2.6,5 -1,1.3 -2,-0.8 -2.6,0.2 -6.2,2.7 -2.8,2.1 -2.7,1.2 -0.4,1.4 -2.2,-1.8 -4.4,0.8 -1.6,1.3 0.6,-1.8 -3.1,2 -2.2,-0.8 -0.9,1.6 1.2,1.7 1.6,0.1 -2.2,1.2 -0.8,-1.5 -2.1,2.5 2.6,1 -1.1,2.6 1.2,1.6 -2.4,0.1 -0.7,1.4 0.7,2 -4,1.8 -0.8,2.4 -1.9,1 -1.7,3.4 -3.8,3.5 -1,-0.1 2.9,-1.9 -1.2,-5 -1.1,-6.2 0.9,-4 2.8,-2.9 2.9,-1.7 1.7,-2 3.8,-3 0.1,-0.6 4,-2.7 0.2,-2.7 2.1,-0.4 -1.2,-0.9 -2.5,0.5 -0.6,2.1 -5.4,3.6 -0.7,-1 1.1,-3 -5.5,0.5 -4.9,4.1 -1.6,2.5 2.1,0.9 -3.5,-0.2 -3.8,1.1 -1.2,-1.8 -2.2,-0.8 -1.6,1.5 -9.3,-0.5 -2.5,0.6 -3.2,2.3 -0.8,1.5 -3.5,2.4 -2.1,2.4 -4.5,3.2 2.5,0.8 0.3,-1 2.7,-0.1 -1.5,2.6 1.1,1.2 1.6,-1.9 2,0 3.2,3 -1.9,6.7 0.2,2.4 -0.7,2.7 -1.8,1.7 -2.2,3.7 -4.3,4.4 -1.4,2.1 -3.8,1.9 -2.6,-1.5 -2.1,2.4 -0.1,-0.3 -0.2,-0.3 0.9,-0.7 0.5,-2.8 -0.6,-1.9 2,-0.9 0.7,1.7 0.9,-1.3 2,-2.8 0.5,-2.4 1.2,-1.1 -0.7,-1.7 -3.7,1.7 -2.7,0.1 -0.4,-1.6 -2.8,-2.7 -2.5,-0.3 -4.5,-8.8 -4.7,-1.5 -4.7,0.8 -1.5,1.3 1.4,1.7 -1.3,1.1 -1.8,3.3 0.1,0.9 -2.8,1.2 -2,-0.7 -2.5,-0.2 -2.1,-1 -2.4,1.7 -4.4,1.2 -4.2,-0.5 -1.2,-1.5 -5,-1.4 -3.1,0.9 -2.7,-1.2 -0.2,-1.8 -6.3,-2.1 -2.1,2.9 1,1.2 -1.9,2 -5.2,-0.7 -0.7,-1.4 -3.6,-0.7 -8.7,4.2 -0.6,0.1 -0.3,0.1 -1.4,-1.3 -2.6,0.1 -3.5,-3.6 -3.8,0.7 -1.4,-1.4 -1.4,1.2 -4,-6.3 -2.6,-1.8 0.3,-1.3 -4.7,2.3 -1.4,-1 -4.5,-0.4 -0.6,-3.1 -4.9,0.2 -0.2,0.7 -5.7,1.6 -8.1,1.2 0.5,1.6 1.6,0.4 -2.7,1.1 0.7,0.9 -1.7,1.2 2.6,1.1 -0.2,1.7 -2.7,-0.2 -0.4,0.8 -2.2,-1.2 -4,-0.1 -1.7,1.3 -2.2,-0.8 -2.2,-1.7 -5.3,-0.3 -3.6,2.7 -0.5,1.9 -1.7,-1.6 -1.2,1.6 0.2,1.5 -1,2 1.2,1.4 1.8,0.1 2.2,3.5 -3,1.5 -1.8,2.5 1.7,2.1 -0.3,1.7 2.2,2.7 -1.6,1.5 -2.5,-1.6 -3.1,-1.9 -1.7,0.4 -2.1,-1.4 z m 271.5,-79 1.5,0.9 -0.9,0.7 -4,0.2 -2.3,0.6 0.2,-1.5 2.6,-1.2 z m -78.8,-8.9 2.7,0.1 2.6,1.4 -0.4,1.3 -5.1,-1.1 z m -92.9,-23.7 -1.9,-1.1 5,0.6 -2.1,1.1 z m -86.5,-4.2 2.6,-0.3 -4.2,1.7 -1.9,-0.9 z m 25.7,-0.9 2.6,-0.7 1.1,1.5 -2.3,1.7 -2.6,-0.1 -0.9,-1 z m -77.7,89.4 1.2,-0.6 -1.5,0.6 0,0 0.6,-1.2 1.9,-1 0.2,0 -0.9,0.9 1.4,-0.8 3,1 -0.1,1.4 -0.2,0 z m 144,-85.5 -1.4,0.2 -1,0.2 -4.2,-1.3 2.4,-1 0.5,-2.2 5.2,-1.3 4.2,2.6 -1.4,0.3 0,1.8 -3.6,0.6 4.3,-0.3 1.5,1.3 1.6,-0.8 1.4,1.6 -1,3.7 -3.2,0.1 -1.8,-0.8 -3.4,-0.2 -2.4,-2.2 z m 92.4,98.5 -1.3,3.3 1.6,3.6 -1.8,-0.2 -0.7,1.7 -0.5,-1.7 0.7,-3.3 -0.4,-2.1 0.5,-5.8 -1.1,-1.5 0.2,-4.2 2,-0.8 -0.5,-1.6 1.4,3 0.3,4.2 1.6,5.7 z m -166.2,-71 -2,3.4 1.4,3.7 2.9,1.9 -0.9,0.8 -3.3,-0.9 -0.5,0.7 -3.6,-1.1 0.6,-1.2 -1.3,-0.6 0.2,1.2 -2.9,-1.9 -0.1,-1.3 1.8,-0.5 1.4,-3.7 3.5,-1.2 z m 173.7,-7.9 2.4,-0.4 1.4,0.6 3.3,0.6 -0.5,0.9 -4.6,0.3 -4.1,-1.7 0.7,-1.3 z m -11.1,-3.4 2.3,1.3 2.7,0.1 2.7,1.3 -2.6,1.9 -2.9,-1.4 0.3,1.1 2,0.6 -2.6,0.4 -1,-0.6 -5.4,1.3 -2.1,-0.8 -2,-1.9 -1.6,-0.4 -1.1,0.3 0.4,-1.9 2.6,1 0.8,-1.4 2.8,-1 4,2.4 z m -141.2,-3.3 2.3,0.6 0.3,1.2 -3.5,1.9 -11,3 -4.3,3.4 -1.8,-0.5 0.1,1.4 -2.8,3.5 -3.4,-0.7 -1.5,0.5 -1.1,-1.7 2.2,-0.8 1.4,-2.5 2.9,-2.9 2.2,-0.7 1,-1.2 4.5,-0.8 0,-0.7 2.5,0.3 3.2,-0.5 z m 63.7,-7.4 0.3,-1.4 2.4,-1.3 1.6,0.5 -0.4,1.2 1.7,-0.5 2.4,1.3 2,2.5 -1.7,-0.9 -2.9,0.9 -4.7,0.3 -2.3,0.9 -1.5,-0.3 z m -103.8,-6.5 5.7,-1.5 -1.2,-0.6 2.6,-1.1 2.6,1.5 -3.8,0.9 0.9,2.2 -1.3,-0.7 z", - "VA" : "m 360.13,132.99 0,0 0,0 0,0 z", - "SM" : "m 360.13,128.39 -0.1,-0.1 0.1,-0.1 0.1,0 z", - "KZ" : "m 451.63,123.39 -2.1,0.7 0.6,1.3 -1.4,-0.8 0.4,-0.3 -0.6,0.2 -5.1,1.3 0.1,8.5 -0.9,0.1 -2.6,-2.4 -1.3,0.5 0,0 0,0 0,0 -0.8,0.3 0,0 0,0 0,0 -1.2,0.5 0.5,-2.2 -1.5,-0.3 -3.1,-4.2 2.1,-1.6 2.1,-0.2 1.1,-1.4 0,-2.1 -1.8,0.1 -1.8,-0.7 -3.8,1.9 -2.2,-3.5 -1.8,-0.1 -1.2,-1.4 1,-2 -0.2,-1.5 1.2,-1.6 1.7,1.6 0.5,-1.9 3.6,-2.7 5.3,0.3 2.2,1.7 2.2,0.8 1.7,-1.3 4,0.1 2.2,1.2 0.4,-0.8 2.7,0.2 0.2,-1.7 -2.6,-1.1 1.7,-1.2 -0.7,-0.9 2.7,-1.1 -1.6,-0.4 -0.5,-1.6 8.1,-1.2 5.7,-1.6 0.2,-0.7 4.9,-0.2 0.6,3.1 4.5,0.4 1.4,1 4.7,-2.3 -0.3,1.3 2.6,1.8 4,6.3 1.4,-1.2 1.4,1.4 3.8,-0.7 3.5,3.6 2.6,-0.1 1.4,1.3 -3,1.7 -0.5,3.3 -1.5,0.5 -3.3,-0.9 -1.4,4 -4.2,1.2 1.4,4.4 -1.2,2.2 -3.4,-1.6 -6.2,0.1 -1.9,-1 -1.3,2 -3.2,-1 -1.7,1.4 -3.6,2 -0.9,1.7 -1.3,-1.3 -2.3,0 -0.4,-1.8 -0.9,-0.1 -0.5,-2 -1.6,-1.9 -5.6,0.5 -1.9,-2.1 -1.8,-1.1 -0.7,-2 1.3,-0.5 z m 0.3,0 0.1,0 0,0.1 1.5,-0.7 z m -19.5,2.7 -0.4,-0.2 0.1,-0.3 0.6,0 z", - "AZ" : "m 422.53,134.89 -0.1,0.1 0,-0.1 0.1,0 z m 0.4,0.2 -0.1,0 0,-0.1 0,0 z m 0.5,0.8 0,-0.1 0.1,0 -0.1,0.1 z m -1.3,2.2 -0.1,-0.1 1.9,0.3 0.7,1.5 -1.3,-0.3 z m 3.1,-5.1 2.5,1.6 1.6,-1.5 1.9,2.8 -1.3,4.9 -1.7,-0.9 -0.1,-2 -2.8,1.9 -1.6,-2.6 0.6,-0.4 -1.9,-2.4 2.9,0.5 z", - "TJ" : "m 471.53,135.09 0,0.1 -0.1,-0.2 0,0 z m 0,2.5 0.1,0.1 -0.2,0.1 -0.2,-0.2 z m 5.8,0.9 0.3,2 1.8,0.1 0.3,2.8 -3.1,-0.5 -3.2,1.7 0,-2.6 -2,-1 -0.9,1.8 -1.6,0.9 -2.9,-0.2 1.1,-2.3 -0.4,-1.6 -1.5,-0.6 2.1,-0.7 1.9,-2.8 2,-0.5 0.9,1.8 -1.9,0 -1.2,1.6 4.1,-0.2 1.5,0.9 z", - "LS" : "m 390.23,273.89 0.9,-0.3 1.5,1.6 -2.6,2.8 -2,-2.2 z", - "UZ" : "m 473.73,137.49 -0.2,0 0,-0.1 0.2,-0.1 z m -1.2,-0.3 0.1,0.3 -0.3,0.1 -0.2,-0.5 z m -22.4,-11.8 -0.5,1 1.4,1.2 0.3,-1.5 1.8,1.1 1.9,2.1 5.6,-0.5 1.6,1.9 0.5,2 0.9,0.1 0.4,1.8 2.3,0 1.3,1.3 0.9,-1.7 3.6,-2 -1.5,1.5 2.4,1 0.6,-0.7 2.7,1.5 -2.8,1.5 -1.4,-0.2 -0.9,-1.8 -2,0.5 -1.9,2.8 -2.1,0.7 1.5,0.6 0.4,1.6 -1.1,2.3 -1,0 -1.4,-0.3 0.1,-1.5 -1.8,-0.5 -6.1,-3.9 -0.9,-2.3 -3.6,-0.9 -0.4,-2.1 -2.5,-1.1 -1.8,1.5 -0.4,-0.4 -0.7,0.9 -0.1,1.5 -1.9,-0.1 -0.1,-8.5 5.1,-1.3 -0.6,2.6 0.8,-2.5 z m 21.4,9.7 -0.1,-0.1 0,0 0.1,0.2 z", - "MA" : "m 330.63,147.69 0.1,0 0.1,0.3 1.2,0.1 0.9,0.8 0.2,3.2 1.2,1.5 -0.4,0.9 -2.4,-0.1 -2.2,1.1 0,1.9 -4,2.3 -3.7,0.5 -1.9,1.5 0,2.1 -0.3,1.1 -1.8,0.5 -3.1,0 -1.3,1.7 -0.7,2.4 -3.1,2.9 -0.3,2.2 -1.2,1.7 -4.2,0.1 2.7,-5.2 1.4,-1.4 0.7,-2.9 1.7,-1.1 1.3,-2.6 2.8,-0.8 1.7,-1.4 1.9,-2.9 -0.5,-2.1 1.1,-2.5 1.4,-1.5 3.3,-1.6 1.7,-3.8 1,-0.3 0.1,0.1 0.1,0.1 1.8,1.5 2.7,-0.4 0,0 z", - "CO" : "m 185.43,214.99 0.2,-1.4 1.6,-1 1.4,-2.2 -0.4,-1.1 0,-4 -1.1,-1.3 1.4,-1.4 -0.4,-1.4 0.9,0.3 2.5,-1.8 0.2,-2.1 2.7,-1.5 1.6,0.1 3.4,-2.2 0.3,1.1 -1.2,0.4 -1.8,2.4 -0.2,2.1 1.2,1.8 0.5,2.5 3.8,0.2 1.3,1.6 3.8,-0.1 -0.8,3.1 1.1,2.2 -1,1 1.2,0.9 0.6,2.2 -0.9,-1.6 -1.5,0.7 -3.3,0 -0.4,3.6 1.2,2.4 -1,5.3 -1.5,-0.8 1.4,-2.1 -1.9,-1 -2.6,0.5 -1.6,-0.4 -0.8,-1.8 -3.2,-2.2 -1.9,-1.1 -2.2,-0.4 z", - "TL" : "m 573.73,235.59 0.4,-0.2 0.4,-0.1 -0.3,0.6 z m 1.7,-0.7 0.5,-0.7 3.5,-0.6 -1,1.2 -2.7,1.1 -0.2,-0.6 z", - "TZ" : "m 403.23,239.89 0,-0.2 -0.1,-0.1 0,-0.1 -0.3,-0.1 0,-0.1 0,0 0,-0.1 -0.5,-2.5 -0.4,-0.4 -0.2,-0.2 0,0 -0.2,-0.2 0,0 0,0 -0.2,0.1 -0.1,0.3 -1,-0.2 -0.9,-0.4 -1.8,-0.6 -1.6,-1 -2.3,-5.1 -0.5,-2.8 2.2,-2.3 -0.5,-1.6 0.5,-1.5 -0.7,-1 0.7,-0.1 1.8,0 0,0.1 0.1,-0.1 0,0 0.2,2.7 2.5,0.1 1.6,-2.7 6.9,3.8 0.2,1.1 2.7,2 1.3,1.1 -1.1,0.9 0.5,1.3 -0.4,4.4 2.1,3.4 -5.7,2.4 z", - "AR" : "m 204.93,334.29 0.1,0.2 -0.2,0 z m 26.8,-66.8 1.4,0.1 0.1,3.1 -3.7,2.2 -3.5,4.1 -1.2,3.6 0,1.2 -0.7,3.9 2.8,2.5 -0.5,0.9 1.4,2.2 -1.8,2.8 -2.8,1.2 -3.5,0.7 -2.3,-0.2 -0.5,4.4 -2.8,0.7 -2.1,-1.1 -0.3,2.9 0.9,1.1 1.6,-0.8 0.3,1.5 -1.6,-0.5 0,1 -1.7,1.6 -0.5,3.2 -1.2,0 -2.1,1.4 -0.6,1.3 1.6,2.1 1.6,0.1 0,2.4 -3.1,2.4 -0.6,2.4 -1.9,0.8 -0.6,1.7 1.4,3.5 -2.9,-0.9 -3.7,-0.1 -1,-1.1 0.2,-2.3 -1.6,0.3 -0.8,-3 2.5,-3 -0.5,-1 1.2,-1.7 1.1,-4.6 -1.4,-1.3 0.8,-2 -1,-2.1 0.8,-2.1 -0.4,-3.1 1.1,-4.1 1,-0.5 -0.6,-2.2 0.3,-2.6 1.2,-1 0,-1.9 1.2,-3.9 -1.6,-3.8 1.8,-6.6 1.6,-2.6 1,-0.5 -0.5,-4.3 2.3,-1.6 0.3,-2.4 1.9,-2 3.1,0.8 0.5,1.3 0.8,-1.7 2.4,0.5 3.2,3.1 1.8,0.4 4.8,2.9 -2,3.9 5.4,0.2 1.9,-1.6 z m -26.8,66.7 0,-5.6 0.3,1.7 2.2,2 2.8,1.6 2.4,0.6 -3.7,0.4 -1.3,-0.2 -0.5,-0.1 z", - "SA" : "m 429.03,161.99 0.9,1.9 2.4,1.9 0,1.9 1.3,2 0.3,0.4 0.4,-0.1 0.2,0.6 0.5,0.1 1.9,2.7 5,0.4 0.9,1.5 -1.3,3.9 -5.7,2 -5.5,0.8 -1.8,0.9 -1.4,2 -4.4,-0.6 -3.8,0.2 -0.7,1.9 -3,-4.6 -0.5,-1.6 -2.5,-1.9 -1.1,-1.7 0,-2.5 -1.2,-2.4 -1.8,-1 -0.5,-1.9 -3.9,-5.8 -1.2,-0.2 0.7,-2.5 2.1,0.3 3.7,-2.7 -2,-2.1 4.2,-1.3 2.5,0.4 3.1,1.8 5,3.9 3.6,0.2 1.7,0.2 z", - "PK" : "m 479.03,143.89 2.7,1.2 1.6,1.8 0.5,1.2 -2.4,1.3 -2.8,-0.6 -1.1,0.9 0.5,2.5 2.4,2.2 -1.5,0.9 0.1,1.3 -2.2,2.5 -0.9,1.8 -2,2.3 -2.7,-0.2 -1.9,2.5 3,4.3 -2.1,1.1 -2.1,-0.2 -1.3,0.8 -1.6,-0.4 -1.9,-2.8 -5.4,0.5 -3.7,0 0.5,-2.1 2.4,-0.8 -0.7,-3.3 -1.6,-0.7 -2,-2.7 3.1,1 3.1,0 4,-0.9 0.3,-2.3 3.4,-1.9 2.3,-0.2 0.4,-2.5 1.5,-0.5 -0.6,-1.5 2,-0.1 1.1,-2.4 -0.9,-1.9 2.7,-1.7 z", - "YE" : "m 435.83,181.19 1.4,3.3 0.7,1.3 -1.6,2 -5.1,1.7 -1.7,1.4 -1.3,0 -2.5,1.2 -1.7,0.1 -3.6,1.5 -0.9,-0.5 -1.4,-5.3 0.1,-1.5 0.7,-1.9 3.8,-0.2 4.4,0.6 1.4,-2 1.8,-0.9 z", - "AE" : "m 444.03,167.89 0.2,0.2 0,1.1 -1.1,0.2 -1.2,4.4 -5,-0.4 -1.9,-2.7 4.9,0.2 3.7,-3.9 0.2,0.8 z m 0,0.8 0.2,-0.1 -0.3,0 0,0.2 z", - "KE" : "m 411.33,226.69 -2.7,-2 -0.2,-1.1 -6.9,-3.8 0.3,-1.6 -0.4,-0.9 1.8,-2.7 -0.1,-1.5 -1.8,-3.4 2.8,-1.5 1,0.8 1.7,0.3 2.4,1.6 2.8,0.4 2.3,-1.7 2.2,0.6 -1.8,2.2 0,7 1.1,1.6 -2.6,2 z", - "PE" : "m 192.13,217.99 3.2,2.2 0.8,1.8 1.6,0.4 2.6,-0.5 1.9,1 -1.4,2.1 1.5,0.8 -1.5,-0.1 -4.1,1.8 -0.4,2.4 -1.7,2.2 3.5,4.8 1.9,-0.2 1.3,-0.9 -0.3,3 2.1,-0.1 1.7,3 -0.8,2.2 0.4,1 -0.9,2.6 -1.3,0.6 1.8,0.8 0.1,0 0.1,0 -0.2,0.5 0.1,0.1 -1.2,1.5 0.3,0.4 -0.9,1.5 -0.8,0.1 -2.1,-2 -7.1,-3.8 -2.1,-2.5 0.1,-1.4 -2.7,-4 -2.5,-5.9 -1.9,-2.7 -2.2,-1.4 -0.3,-3.5 1.8,-1.6 -0.4,1.3 2.8,1.8 1.4,-3.1 3.2,-1.5 2.1,-2 z", - "DO" : "m 198.63,182.19 0,0 -0.1,-0.1 0,0 -0.1,-0.1 0.6,-0.3 -0.1,-1.9 1.4,-0.5 2.1,0.6 0.6,1.1 2.4,0.9 -1.1,0.4 -3.4,0 -1.4,1.6 -0.6,-0.8 0.1,-0.6 z", - "HT" : "m 198.63,182.19 0,0 -0.1,-0.1 0,0 z m 0.3,-2.4 0.1,1.9 -0.6,0.3 0.1,0.2 0.1,0 0.4,0.3 -0.1,0.6 -3,-0.4 -1.1,0.4 -0.7,-1.3 3,0.5 -0.1,-2 -1.3,-0.7 z", - "PG" : "m 606.23,235.09 0,-4.2 0,-8.2 5.8,2.3 1,0 2.4,2 -0.1,1.2 3.3,0.9 0.8,1.4 -1.8,0.1 0.5,1.4 1.8,1.1 2.1,2.8 3.3,0.2 -0.5,1.8 -5.2,-0.7 -1.7,-1.4 -1.9,-2.6 -4.5,-1 -0.7,2.7 -1.4,0.7 z m 17.2,-12.6 -0.6,-1.7 1.1,1.5 3.5,1.6 2.1,2 -0.5,1.1 -1.2,-2.4 z m -0.6,7.3 -3,-1.1 5.6,-0.6 1.2,-0.9 -0.2,-1.5 1.7,0.3 -0.5,2 -3.2,1.7 z", - "AO" : "m 359.73,228.69 0,-0.5 -0.4,-0.9 1.4,-1.2 0.6,0.5 -1.2,0.8 z m 21.3,23 -4.9,0.7 -3.9,-0.5 -0.6,-0.7 -8.6,0 -1.5,-0.9 -2.7,0.6 0,-2.8 1.4,-4.6 2.2,-2.3 0.2,-3 -1.4,-3.1 0.7,-1.4 -2.1,-4.3 1.7,-0.5 6.6,0.1 0.7,2.7 1.2,1.5 3.3,-0.2 0.4,-1.9 4.3,0.5 0,4.1 0.7,1 0.2,2.6 3.3,-0.8 0,4.1 -3.8,0 0,6.2 z", - "KH" : "m 542.13,189.59 0,4.6 -3.4,2.5 -2.4,1.2 -1.6,-0.2 -1.4,-2.2 -1.1,-3.7 2.5,-1.7 3,0.2 3.1,0.1 z", - "VN" : "m 536.33,197.89 2.4,-1.2 3.4,-2.5 0,-4.6 0.3,-1.1 -2.2,-3.4 -3.4,-3.5 -1.7,-1 2.1,-1.5 -1.7,-1.8 -1.8,0.2 -0.3,-1.4 -1.6,-1.7 0.7,-0.7 2.8,0.5 2.6,-1.7 2.8,1.2 -0.4,0.8 2.7,1.8 -2,1.1 -1.7,1.8 -0.8,2 1.9,3 4.1,4.1 1.4,4.8 -0.9,3 -3.3,1.9 -1.1,-0.3 -0.4,1.9 -3.3,1.4 0,-2.7 z", - "MZ" : "m 403.03,243.59 -0.3,-2.5 0.5,-1.2 4.8,0.3 5.7,-2.4 0.8,8.3 -1.8,3.2 -5.4,2.8 -4.2,4 -0.5,1.1 1.6,3.3 -0.7,5 -2.6,1 -2.4,1.8 0.8,1.8 -1.1,0 -0.4,0 -0.2,-1.2 -0.2,-0.6 0.1,-3.1 -1.3,-4.1 2.1,-2.2 1.2,-2.5 -0.5,-1.1 0.5,-2.2 -0.1,-3.3 -4.9,-2 -0.4,-1.3 5.7,-1.9 0.9,1.1 1.3,-0.4 -0.2,2.9 1.7,1.3 1.3,-1 0.1,-2.7 z", - "CR" : "m 176.13,196.89 0.4,0.8 1.7,1.8 -0.9,2.3 0,0 -0.3,-0.5 -5.1,-3.3 0.3,-1.4 2.6,0.2 z m 1.5,5.6 -0.3,-0.6 0,-0.1 0,0 z", - "BJ" : "m 343.23,195.39 0.4,2.1 -2,3 -0.1,5.1 -1.6,0.2 -0.5,0.1 -0.1,-5.4 -1.3,-3.7 1,-0.9 1.9,-0.9 0.8,-0.9 z", - "NG" : "m 341.53,205.59 0.1,-5.1 2,-3 -0.4,-2.1 1,-3.4 2.6,-0.8 2.8,1.7 1.7,-0.7 3.4,1 1,-0.8 2.5,-0.2 2,0.6 2.1,-1.3 0.9,1.3 1.2,1.7 -4.7,7.4 -1.8,3.6 -1.4,-1.3 -3.3,2.5 -0.5,1.9 -4.6,1 -1.1,-0.7 -2.3,-3.2 z", - "IR" : "m 422.03,143.59 -1,-1.8 -0.5,-3.1 1.6,-0.6 1.2,1.4 1.3,0.3 0.5,-0.1 0.2,0.1 2.8,-1.9 0.1,2 1.7,0.9 0.2,1.5 2.3,0.8 1.7,1.4 1.6,0.4 4,-0.6 -0.2,-1.1 2.9,-1.6 3.4,-0.4 0.3,0.6 2.8,0.6 2.9,2.4 1.6,0.1 0.2,2.1 -1.4,5.5 0.5,3.3 1.7,0.2 0.2,1.1 -1.8,2.1 2,2.7 1.6,0.7 0.7,3.3 -2.4,0.8 -0.5,2.1 -3.2,-0.3 -5,-0.9 -0.5,-2.2 -1.3,-0.7 -3,1.5 -6.5,-3 -2.6,-4.7 -2.1,-0.4 -0.8,0.9 -1.6,-2.2 0.3,-1.6 -0.9,-1.3 -2.1,-1.2 -1.7,-2.2 1.8,-3.9 -2,-0.4 z", - "SV" : "m 168.13,192.09 -1.8,0.3 -2.5,-0.9 -0.1,-0.2 1.5,-1.1 3.2,1.1 z", - "SL" : "m 314.33,204.59 -2.8,-1.3 -0.7,-2.8 1.5,-1.5 2.4,-0.3 1.9,2.9 -0.6,1.4 z", - "GW" : "m 307.53,196.79 -1.7,-0.5 -1.6,-2.1 3,-0.7 2.8,0 0,1.9 -1.9,0.4 z", - "HR" : "m 371.73,131.79 -1.3,-0.9 -0.3,-0.2 0.4,0.2 1.1,0.6 0,0.1 z m -9.4,-7.2 3.3,0.1 0.6,-1.8 1.7,-0.7 1.6,1.3 3,0.1 0.2,1.8 0,0.7 -4,-1 -2.2,0.3 0.8,2.2 2.6,3 -1.7,-0.4 -3.5,-2.5 0,-2.2 -1.7,0.7 z", - "BZ" : "m 165.63,183.49 0.5,-0.1 1.1,-1.2 0.2,3 -1.4,2.1 -0.6,0 z", - "ZA" : "m 397.83,270.09 0.4,0 1.1,0 -1,3.5 -2.3,2.1 -1.5,2.7 -2.9,3 -3.4,2.7 -4.3,1.4 -4.4,-0.4 -1.3,0.7 -4.3,0.9 -2.2,-2 -1.3,-2.1 0.9,-0.4 -0.2,-2 -1.7,-2.9 -1.6,-3.6 1.2,-1.2 0.6,1.4 3.3,0.5 1.6,-1.1 0,-7.5 1.7,2.8 -0.3,1.6 1.9,-0.1 2,-1.8 0.6,-1.4 3.4,1.1 1.5,-0.4 0.5,-1.8 1.9,-0.9 0.3,-1.3 2.3,-2 2.2,-0.9 1.9,0.3 1.8,0.1 1.3,4.1 -0.1,3.1 -1,-0.5 -1.1,1.4 0.6,1.6 z m -7.6,3.8 -2.2,1.9 2,2.2 2.6,-2.8 -1.5,-1.6 z", - "CF" : "m 380.03,196.89 1.5,2.1 -0.3,2 1.4,0.2 2.2,2.6 2,1.3 0.1,1.1 1.9,1.9 -3.5,-0.6 -5.9,2.3 -3.7,-0.4 -1.7,-1.4 -2.2,1.5 0.1,1.7 -2.2,-0.5 -1.7,0.5 -0.7,2.3 -0.2,-1.1 -1.8,-1.8 -1.5,-4.3 2.1,-2.9 2.5,0 3.5,-1 0.9,-1.8 2.6,-0.3 3.9,-3.5 z", - "SD" : "m 382.63,201.19 -1.4,-0.2 0.3,-2 -1.5,-2.1 -1.2,-3.5 -0.3,-2 0.9,-0.7 1.1,-3 1.7,-0.1 0,-7.4 0,-1 1.9,0 0,-4 12,0 10.8,0 0.8,2.4 0.4,4.2 2.1,1.4 -3.1,1.8 -1.1,3.8 0.2,1.7 -0.8,3 -0.8,0.1 -1.6,3.7 -0.5,-0.3 -1,2.7 -1.7,-2.6 0.1,-2.7 -2.2,0.4 0.6,1.9 -2.2,2.4 -2.4,-0.9 -2.2,1.8 -4.4,-0.4 -1.4,-1.7 -1.4,0.2 z", - "CD" : "m 392.23,224.09 -0.2,3.3 0.8,3.1 2,2.9 -3.2,0.5 -1.1,1.2 0.4,0.6 0.3,0.8 -0.6,3.1 1.3,1.8 1.4,-0.4 0,2.5 -1.1,0 -3.9,-3.6 -0.9,0.8 -2.6,-0.7 -0.1,-0.9 -1.9,0.4 -0.6,-1 -3.3,0.8 -0.2,-2.6 -0.7,-1 0,-4.1 -4.3,-0.5 -0.4,1.9 -3.3,0.2 -1.2,-1.5 -0.7,-2.7 -6.6,-0.1 -1.4,0.4 -0.4,-0.6 0.4,-1.3 1.2,-0.8 2.5,-0.7 0.9,1 2.6,-2.8 0.1,-2.3 2.9,-3 0.6,-5.1 1,-2.5 -0.1,-1.7 2.2,-1.5 1.7,1.4 3.7,0.4 5.9,-2.3 3.5,0.6 1.8,1.5 2.7,-0.5 2,2 -0.2,2 1,0.5 -1.4,1.3 -0.1,0.5 -1,0.8 -0.5,1.7 -0.7,0.8 0.6,0 -0.1,0.8 0,0.9 -0.4,0.3 -0.3,0.3 -0.5,0.5 -0.1,1 0,0.3 0.2,0.1 0.4,0.7 z", - "KW" : "m 429.03,161.99 -1.9,-1 -1.7,-0.2 1.1,-1.8 1.6,-0.1 0.3,1.4 z", - "DE" : "m 353.93,119.39 0,0 0,0 z m -1,-18.4 0.3,0 1.1,0.3 3.9,2.3 2,-1.5 2.2,-0.3 0.7,1.4 0.4,0.4 -0.1,0 0.1,0.1 -0.3,-0.3 0.4,0.8 -0.3,2.2 1,0.7 0.3,4.4 -4.4,1.2 -0.2,1.6 2.7,2.4 -2,1.6 0.5,1.5 -1.6,-0.5 -2.3,0.7 -2.4,-0.3 -1.3,-0.7 0.3,0.4 -1.4,0.2 -1.7,0 1.2,-3.4 -3.6,-1.2 0.3,-0.9 -0.7,-0.8 0.5,-0.4 -0.7,-1.2 0.7,-2.7 1.2,-1 0.4,-2.6 0.2,-1.3 2.4,0.5 0.8,-0.9 z", - "BE" : "m 347.83,111.69 0.7,1.2 -0.5,0.4 -0.8,0.6 0.2,0.9 -3.2,-1.1 -3.1,-2.8 1.2,-0.6 0.4,-0.1 0.9,0.4 0.8,-0.4 0.1,0.1 -0.1,-0.1 1.5,-0.3 z", - "IE" : "m 322.43,100.59 -1.8,1.6 1.7,0.9 2,0 0.5,3 -0.7,2 -2.3,0.3 -2.2,1.3 -2.1,0.3 -1.2,-1.2 2.9,-3.5 -2.1,-0.3 0.3,-2.5 2.4,0.2 0.6,-2.4 z", - "KP" : "m 586.53,132.09 -2,1.7 0.1,1.6 -4.2,2.5 -0.1,1.3 1.7,1.2 -2.3,0.7 -0.9,1 -2.1,-0.4 -0.4,0.8 -1.1,-1.9 1.3,-1.8 -2.1,-1.7 3.1,-1.8 1.2,-1.8 2.9,0.7 -0.2,-1.4 3.2,-1.1 0.3,-1.2 1.3,1 0.2,0.3 z", - "KR" : "m 578.83,142.09 0.9,-1 2.3,-0.7 1.9,2.9 0.2,3.9 -1.6,1.7 -1,-0.4 -1.1,1.1 -2.2,-0.4 z", - "GY" : "m 221.43,201.49 1.7,1 3.7,3.7 -0.1,1.1 -1.6,2.5 3,4.3 -1.2,-0.2 -3.2,1.6 -1.8,-1.3 -0.5,-1.6 0.9,-2.3 -0.9,-2.2 -1.4,-0.2 -1.2,-1.4 0.3,-1.2 1.7,-1.1 -0.4,-1.3 z", - "HN" : "m 167.43,187.59 4.4,-0.5 3.1,0.3 2.2,1.6 -3.2,0.4 -1.8,1.6 -1.9,0.4 -1.1,1.5 -0.4,-0.5 -0.6,-0.3 0.3,-0.8 -3.2,-1.1 0.4,-1.3 z", - "MM" : "m 512.93,177.09 0.7,-0.5 -0.1,-1.3 1.2,-0.8 0.2,-3.3 1.5,0.3 1.8,-3.8 0,-1.5 3.2,-1.8 1.2,-1.8 0.4,-0.6 2.2,1.9 0,3.5 -1.9,1.7 -0.1,2.4 1.8,-0.4 0.6,1.8 1.2,0.2 -0.7,1.8 1.5,0.2 0.5,1.3 1.9,-0.3 -0.9,0.5 -1.2,2 -3,1.3 -0.9,-0.3 -1.2,2.6 2.7,4.6 -1.1,2.6 1.7,2.1 0.9,3.7 -1.7,2.8 -0.3,-5.5 -1.5,-3.2 -0.3,-2.8 -0.8,-1.4 -3.4,2.5 -2.4,-0.6 0.8,-2.9 -1.2,-3.7 -1.8,-1.2 z", - "GA" : "m 355.03,215.89 3,0 0,-2.3 0,-0.2 3.7,0.3 -0.1,1.7 2.4,0.6 -1.2,2.2 1.2,0.7 -0.7,3.6 -3.2,-1.1 -1.7,0.8 0.5,2.6 -1.3,0.5 -3.6,-4 -1.1,-2.4 1.1,-0.3 0.1,-1.9 z", - "GQ" : "m 358.03,213.59 0,2.3 -3,0 -0.8,-0.4 0.8,-2.2 0.4,0.3 z", - "NI" : "m 172.23,196.59 -3.7,-3.4 0.6,-0.3 1.1,-1.5 1.9,-0.4 1.8,-1.6 3.2,-0.4 -1.4,7 0.4,0.9 -1.3,-0.1 z", - "LV" : "m 388.63,93.89 0.6,1.9 1,1.9 -1.1,0.9 -1.9,0.4 -3.3,-2.1 -0.8,0.5 -4.5,-0.5 -2,1 0,-2.1 1.3,-2 1.7,-0.5 2,2.1 1.4,-0.7 -0.2,-1.7 1.9,-0.6 2.3,1.5 z", - "UG" : "m 397.23,219.69 0,-0.1 0,0.1 z m -4.3,0.7 0,-0.9 0.1,-0.8 0.5,-0.6 -0.4,-0.2 0.5,-1.7 1,-0.8 1.8,-1.3 -0.3,-0.5 -1,-0.5 0.2,-2 5.1,-0.5 0.9,-0.9 1.8,3.4 0.1,1.5 -1.8,2.7 -2.7,0.2 -1.6,2.2 -1.8,0 -0.7,0.1 -1,0.8 z", - "MW" : "m 403.13,239.59 0,-0.1 0,0 z m -0.3,-0.3 0,0 0,-0.1 0,0.1 z m -0.9,-3 -0.2,-0.2 0,0 z m -0.4,-0.4 0,0 0,0 z m -2.2,-0.2 0.9,0.4 1,0.2 0.8,3.8 0,3.2 1,0.3 1.9,2.2 -0.1,2.7 -1.3,1 -1.7,-1.3 0.2,-2.9 -1.3,0.4 -0.9,-1.1 -0.7,-0.6 1,-2.3 -0.2,-3.2 0.8,-0.5 z", - "AM" : "m 425.33,139.79 -0.2,-0.1 -0.5,0.1 -0.7,-1.5 -1.9,-0.3 -2.1,-1 -0.5,-2.2 1.5,-0.3 1.5,-0.1 1.9,2.4 -0.6,0.4 z m -2.8,-4.9 0,0 -0.1,0 0,0.1 z m 0.4,0.2 -0.1,-0.1 0,0 0,0.1 z m 0.5,0.8 0,0 0.1,-0.1 -0.1,0 z", - "SX" : "m 419.13,195.79 1.9,2 2.9,-0.8 1.3,0.4 1.8,-1 3,-0.1 0,3.4 -1.9,2.8 -1.9,0 -5.6,-1.9 -2.7,-3.1 0.6,-0.7 z", - "TM" : "m 445.53,132.89 1.5,0.6 -0.4,-1.1 1.8,-1.5 2.5,1.1 0.4,2.1 3.6,0.9 0.9,2.3 6.1,3.9 1.8,0.5 -0.1,1.5 -1.4,-0.5 -1.9,1.1 -0.6,1.8 -4.2,2.4 -1.9,-1 -0.2,-2.1 -1.6,-0.1 -2.9,-2.4 -2.8,-0.6 -0.3,-0.6 -3.4,0.4 -2.9,1.6 0.1,-3.5 -0.8,-2.3 -1.6,-0.2 0.4,-2.1 1.5,0.8 1.9,-1.1 -1.5,-2.2 -0.8,-0.1 0,0 1.3,-0.5 2.6,2.4 0.9,-0.1 1.9,0.1 z m -7.6,-0.1 0.2,-0.3 0.6,0 0,0 -0.8,0.3 0,0 z m 0,0 -0.5,1.3 -0.7,-0.8 1.2,-0.5 0,0 z", - "ZM" : "m 390.93,235.69 1.2,-1.4 -0.5,-0.4 3.2,-0.5 0.9,1.1 0.2,-0.4 1.6,1 1.8,0.6 1.4,2.3 -0.8,0.5 0.2,3.2 -1,2.3 0.7,0.6 -5.7,1.9 0.4,1.3 -3,0.8 -0.2,0.9 -1.2,0.6 -1.1,0.6 -1,1.6 -0.6,0.2 -2.8,-0.5 -2,-0.6 -1.6,0.3 -2.6,-2.9 0,-6.2 3.8,0 0,-4.1 0.6,1 1.9,-0.4 0.1,0.9 2.6,0.7 0.9,-0.8 3.9,3.6 1.1,0 0,-2.5 -1.4,0.4 -1.3,-1.8 0.6,-3.1 z", - "NC" : "m 401.23,148.19 -0.3,0 -0.1,0 -0.6,-0.3 -1.2,0 0,0 0,0 0,0 -0.1,0 0,0 3.6,-1.1 -1.1,1.4 z m -2.5,-0.3 0.1,0 -0.1,0.1 z", - "MR" : "m 319.73,164.49 6,3.8 1.3,0.9 -3.3,0 2,18.9 -10,0.1 -1.9,-0.2 -1,1.5 -4,-3.7 -3.8,0.4 -0.4,1.2 1,-4.2 -1,-2.8 0.7,-1.6 -1.7,-1.1 0.2,-1.1 7.6,0 0,-3.4 1.9,-0.9 0,-5.1 6.3,0 z", - "DZ" : "m 327.03,169.19 -1.3,-0.9 -6,-3.8 0,-0.7 0,-2.1 1.9,-1.5 3.7,-0.5 4,-2.3 0,-1.9 2.2,-1.1 2.4,0.1 0.4,-0.9 -1.2,-1.5 -0.2,-3.2 -0.9,-0.8 6.3,-3 3.6,-0.7 3.5,-0.2 0.9,0.5 4.1,-0.9 2.3,0.3 -0.4,1.1 -0.3,3.9 -1.4,1.6 1.6,2.9 1.4,1 0.9,3.8 0.6,2.3 0,5.4 -0.8,0.8 1.2,2.6 2.9,1.1 0.8,1.6 -8.6,5.3 -3.2,2.8 -3,0.6 -2.2,0 0.2,-1.3 -2.5,-0.8 -1.4,-1.8 z", - "LT" : "m 377.03,100.09 -0.2,-1.2 -0.2,-1 2,-1 4.5,0.5 0.8,-0.5 3.3,2.1 0.3,0.9 -1.7,1 -0.8,1.7 -2,1.1 -1.8,-0.1 0,-0.6 -1.3,-0.5 0.1,-1.4 z m -0.7,-0.1 0.3,-0.6 -0.1,0.6 z", - "ET" : "m 416.33,196.19 -0.2,0.2 0.2,0.2 0.3,0.3 1.9,-0.1 -0.6,0.7 2.7,3.1 5.6,1.9 1.9,0 -5.8,5.9 -1.8,-0.1 -4,1.9 -2.2,-0.6 -2.3,1.7 -2.8,-0.4 -2.4,-1.6 -1.7,-0.3 -2.3,-3.9 -2,-1.9 -1.2,-0.3 0.3,-1.3 1.4,0.1 0.2,-2 1,-2.7 0.5,0.3 1.6,-3.7 0.8,-0.1 0.8,-3 2.6,-1.2 5.7,1.5 2.9,3.1 -1.2,1.8 z", - "ER" : "m 417.43,193.89 -2.9,-3.1 -5.7,-1.5 -2.6,1.2 -0.2,-1.7 1.1,-3.8 3.1,-1.8 2.1,5.6 2.8,0.9 3.7,3.8 -0.8,0.6 z", - "GH" : "m 338.53,206.19 -6.2,2.6 -2,-0.7 0,-0.1 0.3,0.1 0.2,-0.1 -0.7,-3.3 1.4,-2.6 -0.4,-2.4 -0.1,-2.9 5,-0.3 1,1.8 0.3,6.4 z", - "SI" : "m 362.33,124.59 0,-0.1 0.2,-0.1 -0.6,-1.7 0.6,-0.6 1.6,0.4 3,-1.2 0.3,0 0.5,0.9 -1.7,0.7 -0.6,1.8 z", - "GT" : "m 166.03,187.29 0.6,0.3 0.8,0 -1.8,1.3 -0.4,1.3 -1.5,1.1 0.1,0.2 -2.4,-0.4 -1.7,-1.2 0.9,-2.9 2.6,-0.6 -2,-1.8 0.9,-1.1 3.5,0 -0.2,3.8 z", - "BA" : "m 370.13,130.69 -0.2,-0.1 0,0 -2.6,-3 -0.8,-2.2 2.2,-0.3 4,1 0.7,-0.1 -0.4,3.2 -1.4,1.3 0,1 -1.1,-0.6 z", - "JO" : "m 404.13,156.59 0.2,-0.2 -0.2,-0.1 -0.1,0 0.1,-0.2 0.2,0 0.1,-0.9 0,-1.8 0.3,-0.3 2,1 3.8,-2.3 0.6,1.9 0.1,0.8 -4.2,1.3 2,2.1 -3.7,2.7 -2.1,-0.3 0.1,-0.4 -0.1,-0.1 0.4,-1.8 z", - "SY" : "m 410.53,151.79 -3.8,2.3 -2,-1 0.3,-0.4 -0.1,-1 1.5,-1.7 -1.3,-0.9 -0.1,-1.7 0,-1.1 1.4,-2 3.1,-0.1 2.9,0.3 4.7,-1.3 0.3,0.5 -1.9,1.3 -0.3,3.8 -1,1 z", - "MC" : "m 350.53,128.69 0,0.1 -0.1,0 0.1,-0.1 z", - "AL" : "m 376.43,135.29 0,0 0,-0.1 z m -3,-2.8 0,-0.3 0,-0.2 0.6,-0.8 0.7,0.3 0.8,0.8 0.2,0.7 -0.3,0.8 0.4,1 0,0.4 0.2,0 0.2,0 0.2,0 -0.1,0.1 0.1,0 0,0.1 -0.1,0.1 0.1,0 0,0.1 0.1,0.1 0,0.1 0,-0.1 -1.2,2 -0.7,0.3 -1.4,-2.2 0.2,-2.7 -0.1,-0.3 z m 0,-0.4 0,0 -0.1,0 z", - "UY" : "m 234.53,282.19 -0.9,1 0.2,0.9 0,0.2 0.3,0.2 -0.8,1.4 -2.2,1.2 -2.3,0 -3.3,-1 -1,-1.2 0.3,-3.1 0,-1.2 1.2,-3.6 1.5,-0.2 1.5,2.1 0.8,-0.5 z", - "CNM" : "m 401.43,148.19 0,0 0,0 -0.2,0 0,0 z m -2.7,-0.3 0,0 0,0.1 0.1,-0.1 0,0 0,0.1 z m 0.2,0 0,0 0,0 0.1,0 0,0 z m 1.9,0.3 0,0.1 0,0 -0.5,-0.3 -1.3,-0.1 0,0 1.2,0 z", - "MN" : "m 561.33,119.09 0.7,-0.2 -0.3,-0.3 1.5,0 2.6,2.6 -0.4,0.8 -2.7,-0.3 -3.2,1 -1.8,2 -2.1,0.2 -1.8,1.5 -3.1,-0.8 -1.1,1.5 1,1.7 -4.7,2.9 -5.2,0.4 -3,1.2 -2.8,0 -3.3,-1 -0.7,-0.7 -10.1,-0.5 -1.9,-3.7 -3.6,-1.5 -5,-0.6 0.3,-3.3 -1.4,-2.6 -2.4,-0.8 -2.1,-1.5 -0.3,-1.4 8.7,-4.2 3.6,0.7 0.7,1.4 5.2,0.7 1.9,-2 -1,-1.2 2.1,-2.9 6.3,2.1 0.2,1.8 2.7,1.2 3.1,-0.9 5,1.4 1.2,1.5 4.2,0.5 4.4,-1.2 2.4,-1.7 2.1,1 2.5,0.2 -2.3,4.1 0.7,1.1 z", - "RW" : "m 391.83,222.89 -0.2,-0.1 0,-0.3 0.9,-0.9 -0.3,-0.6 0.3,-0.3 0.4,-0.3 0.7,0.2 1,-0.8 0.7,1 -0.5,1.5 -1.3,0.5 z", - "SO" : "m 416.53,210.19 4,-1.9 1.8,0.1 5.8,-5.9 1.9,-2.8 0,-3.4 4.5,-1.1 -0.9,4.5 -5.5,9.6 -3.7,3.8 -4.9,3.5 -3.7,4.4 -1.1,-1.6 0,-7 z", - "BO" : "m 204.03,248.89 -0.1,-0.3 0.3,0.3 -0.1,0 z m -0.8,2.5 -0.3,-0.4 1.2,-1.5 0.9,-0.4 -1.5,-1.6 0.9,-2.6 -0.4,-1 0.8,-2.2 -1.7,-3 2.4,0 3.2,-2 2.3,-0.5 0.1,2.9 1.9,2.5 2.5,0.4 2.4,1.7 2.6,0.5 0.6,4.8 3.2,0.1 0.2,1.8 1.6,1.8 -1.2,3.9 -1.8,-1.7 -5.1,0.7 -0.9,1.8 -0.8,3.4 -2.4,-0.5 -0.8,1.7 -0.5,-1.3 -3.1,-0.8 -1.9,2 -1.3,0 -0.6,-3 -1.1,-1.7 0.6,-2 -1,-1 z", - "CM" : "m 361.73,213.69 -3.7,-0.3 0,0.2 -2.6,0 -0.4,-0.3 -0.3,-2.9 -2,-1.8 0.5,-1.9 3.3,-2.5 1.4,1.3 1.8,-3.6 4.7,-7.4 -1.2,-1.7 0.5,-0.1 -0.1,0.4 0.4,-0.1 1.3,2.7 -0.2,1.5 1.2,1.5 -2.9,0 -0.4,0.7 2.3,2.2 0.6,1.8 -2.1,2.9 1.5,4.3 1.8,1.8 0.2,1.1 -0.1,1 -3,-0.9 z m 2.1,-21 0,0.1 0,-0.1 z", - "CG" : "m 361.73,213.69 2.5,-0.1 3,0.9 0.1,-1 0.7,-2.3 1.7,-0.5 2.2,0.5 -1,2.5 -0.6,5.1 -2.9,3 -0.1,2.3 -2.6,2.8 -0.9,-1 -2.5,0.7 -0.6,-0.5 -1.4,1.2 -0.4,-0.8 -1.3,-1.2 1.3,-0.5 -0.5,-2.6 1.7,-0.8 3.2,1.1 0.7,-3.6 -1.2,-0.7 1.2,-2.2 -2.4,-0.6 z", - "EH" : "m 303.63,177.69 -0.1,-0.2 0.2,-1.1 4.2,-0.1 1.2,-1.7 0.3,-2.2 3.1,-2.9 0.7,-2.4 1.3,-1.7 3.1,0 1.8,-0.5 0.3,-1.1 0,0.7 -0.1,2.7 -6.3,0 0,5.1 -1.9,0.9 0,3.4 -7.6,0 z", - "RS" : "m 373.03,129.19 0.4,-3.2 -0.7,0.1 0,-0.7 -0.2,-1.8 1.2,-0.6 1.3,0.1 2.4,2.3 -0.2,0.9 2.5,1.3 -0.6,1 1.1,1.6 -1.1,1.8 -0.8,0 -0.7,0.2 0.3,-1 -1.9,-1.4 -0.8,1 -1.4,-0.8 z", - "ME" : "m 373.03,129.19 0.8,0.8 1.4,0.8 -0.6,0.3 0.1,0.4 -0.7,-0.3 -0.6,0.8 0,0.1 -0.1,0 -0.4,0 0.5,0.4 -0.1,0.3 0.1,0.3 -1.2,-1 -0.5,-0.3 -0.1,-0.2 0,-0.1 0,-1 z", - "TG" : "m 338.03,196.79 1.3,3.7 0.1,5.4 -0.4,0.1 -0.5,0.2 -1.2,-1.5 -0.3,-6.4 -1,-1.8 1.2,0.3 z", - "LA" : "m 542.13,189.59 -1.3,0.8 -3.1,-0.1 0.8,-2.7 -1.7,-1.6 0.2,-1.6 -1.6,-1.9 -1.2,-0.2 -1.5,1.2 -1,-0.8 -1.8,1.5 0.2,-4 -1.5,0 -0.7,-1.6 1.2,-2 0.9,-0.5 1,0.9 -0.4,-2.3 1.2,-0.3 1.6,1.7 0.3,1.4 1.8,-0.2 1.7,1.8 -2.1,1.5 1.7,1 3.4,3.5 2.2,3.4 z", - "AF" : "m 479.73,143.39 -1,0.3 0.3,0.2 -3.8,0.4 -2.7,1.7 0.9,1.9 -1.1,2.4 -2,0.1 0.6,1.5 -1.5,0.5 -0.4,2.5 -2.3,0.2 -3.4,1.9 -0.3,2.3 -4,0.9 -3.1,0 -3.1,-1 1.8,-2.1 -0.2,-1.1 -1.7,-0.2 -0.5,-3.3 1.4,-5.5 1.9,1 4.2,-2.4 0.6,-1.8 1.9,-1.1 1.4,0.5 1.4,0.3 1,0 2.9,0.2 1.6,-0.9 0.9,-1.8 2,1 0,2.6 3.2,-1.7 z", - "UA" : "m 378.73,117.59 0.3,-0.7 0.4,-1 0.2,-1.1 2.8,-2.5 -0.9,-2.5 1.5,-0.9 2.6,-0.1 2.9,0.8 3.9,0.6 2.3,-0.5 0.8,-1.3 1.6,-0.1 3.9,-0.6 1.2,1.5 -0.5,1.3 1.7,0.1 1.1,2.2 3.4,-0.2 3.4,1.4 1.8,1.5 -0.8,1.2 0.1,2.3 -1.8,-0.1 -1.2,1.8 -4.4,1.1 -2.1,1.2 1.5,2.5 -3.1,1.7 -2.1,-2.9 1.7,-0.7 -3.9,-0.7 1.2,-0.6 -2.3,-0.4 -2.6,2.4 -0.2,1 -1.7,-0.1 -1.1,-0.5 1.4,-2.4 2.2,0.2 -1.9,-2.8 0.3,-0.8 -2.9,-1.4 -2.2,0.4 -2.6,0.9 -4.5,-0.1 -0.5,-0.4 z m 15.3,4.9 0.5,0.7 0.2,-0.2 -0.6,-0.6 z m 7.4,0.7 1.8,1 -0.3,-0.9 -1.2,-0.6 z", - "SK" : "m 379.43,115.89 -0.4,1 -0.3,0.7 -3.2,-0.3 -1.1,0.9 -4,1 -1.3,-0.6 -0.6,-0.9 0.2,-0.6 2.2,-1.2 1.4,-1.1 5.8,0.4 z", - "JK" : "m 485.23,147.19 -1.4,0.9 -0.5,-1.2 1.1,0.4 z", - "BG" : "m 391.03,128.69 -1.7,3.1 0.6,1 -1.8,-0.2 -1.4,0.8 -2.1,1.1 -1.4,-0.8 -3,0.6 0.1,-1 -1.2,-1.3 1.1,-1.8 -1.1,-1.6 0.6,-1 1.2,0.8 3.9,0.5 3.2,-1.2 z", - "QA" : "m 433.63,169.69 -0.2,-1.5 1.6,-0.8 -0.7,2.6 -0.4,0.1 z", - "LI" : "m 354.53,120.39 0.2,0.3 -0.1,0.2 -0.2,-0.1 z", - "AT" : "m 354.63,120.89 0.1,-0.2 -0.2,-0.3 0.3,-0.4 -0.2,-0.2 0.2,0 0.1,-0.1 2.4,0.3 2.3,-0.7 1.6,0.5 -0.5,-1.5 2,-1.6 1.7,0.4 0.5,-0.9 3.8,0.9 -0.2,0.6 0.6,0.9 -1.1,0.6 -0.9,2.1 -3,1.2 -1.6,-0.4 -2.5,-0.4 -0.4,-0.9 -3.3,0.5 -0.7,0.1 z", - "SZ" : "m 397.43,268.29 0.2,0.6 0.2,1.2 -1.9,0.7 -0.6,-1.6 1.1,-1.4 z", - "HU" : "m 378.73,117.59 0.9,0.7 0.5,0.4 -1.7,1.1 -1.6,2.9 -1.8,0.4 -1.3,-0.1 -1.2,0.6 -3,-0.1 -1.6,-1.3 -0.5,-0.9 -0.3,0 0.9,-2.1 1.1,-0.6 1.3,0.6 4,-1 1.1,-0.9 z", - "RO" : "m 379.73,127.59 -2.5,-1.3 0.2,-0.9 -2.4,-2.3 1.8,-0.4 1.6,-2.9 1.7,-1.1 4.5,0.1 2.6,-0.9 0.8,0.3 2.4,3.7 -0.1,2.8 1.1,0.5 1.7,0.1 -2,2.1 -0.1,1.3 -3,-1 -3.2,1.2 -3.9,-0.5 z", - "NE" : "m 343.23,195.39 -1.5,-1.3 -0.8,0.9 -0.4,-1.3 -2.3,-0.9 -1.5,-3.6 2.1,-0.7 4.2,-0.2 1.3,-2 0.1,-5.4 3,-0.6 3.2,-2.8 8.6,-5.3 2.9,0.7 1.4,1.1 1.5,-0.8 0.3,3.1 1.6,2.2 -0.5,0.9 -0.5,5.9 -3.9,4.9 0.3,1.3 -2.1,1.3 -2,-0.6 -2.5,0.2 -1,0.8 -3.4,-1 -1.7,0.7 -2.8,-1.7 -2.6,0.8 z", - "LU" : "m 348.43,114.99 -0.7,0 -0.3,-0.2 -0.2,-0.9 0.8,-0.6 0.7,0.8 z", - "AD" : "m 339.03,131.39 0.6,-0.1 -0.1,0.3 -0.3,0.2 z", - "CI" : "m 331.13,199.69 0.4,2.4 -1.4,2.6 0.7,3.3 -5.7,0.2 -3.3,1.3 0.1,-2.8 -2.1,-1.3 0.2,-2 1.2,-3.6 -0.2,-1.4 3.3,-0.2 1.4,-0.3 1.6,1.4 2.8,-0.5 z m -0.8,8.4 -0.3,-0.1 0.3,0 z", - "LR" : "m 320.03,203.39 -0.2,2 2.1,1.3 -0.1,2.8 -3.3,-1.5 -4.2,-3.4 1.7,-1.6 0.6,-1.4 1.5,0.3 0.7,2.2 z", - "BN" : "m 556.53,208.59 0.2,-0.1 0,-0.1 0.4,1.2 z m -2,0.4 1.1,-0.2 0.8,-0.3 -0.7,1.6 z", - "IQ" : "m 429.23,158.99 -0.8,-0.2 -0.3,0.1 -1.6,0.1 -1.1,1.8 -3.6,-0.2 -5,-3.9 -3.1,-1.8 -2.5,-0.4 -0.1,-0.8 -0.6,-1.9 3.7,-2 1,-1 0.3,-3.8 1.9,-1.3 0.7,-0.5 3.9,0.4 1,2.6 2,0.4 -1.8,3.9 1.7,2.2 2.1,1.2 0.9,1.3 -0.3,1.6 z", - "GE" : "m 422.43,134.39 -1.5,0.1 -1.5,0.3 -1.2,-1.1 -2.4,0.2 -0.1,-2.6 -2.9,-1.8 5.5,0.6 2.1,1.4 1.7,-0.4 3.1,1.9 0.1,1.9 z", - "GM" : "m 304.23,192.79 -0.1,-0.6 0.5,-0.4 3.2,-0.4 -1.8,1.2 z", - "CH" : "m 353.93,119.39 0,0 0,0 0,0 0.6,0.4 0.1,0 0.2,0.2 -0.3,0.4 -0.1,0.4 0.2,0.1 1,0.5 0.7,-0.1 -0.9,1.2 -2.2,0.7 -1.5,-0.4 -2,0.8 -0.5,-0.5 0.1,-0.7 -0.3,-0.3 -0.5,0.4 -0.3,0.2 -0.2,-0.7 2.8,-2.4 1.7,0 z", - "TD" : "m 364.03,192.99 0.6,-0.2 -0.8,-0.1 0,0 -0.2,-0.1 0.1,0.1 -0.5,0.1 -0.9,-1.3 -0.3,-1.3 3.9,-4.9 0.5,-5.9 0.5,-0.9 -1.6,-2.2 -0.3,-3.1 1.9,-0.9 15.3,7.9 0,7.4 -1.7,0.1 -1.1,3 -0.9,0.7 0.3,2 1.2,3.5 -0.7,-0.1 -3.9,3.5 -2.6,0.3 -0.9,1.8 -3.5,1 -2.5,0 -0.6,-1.8 -2.3,-2.2 0.4,-0.7 2.9,0 -1.2,-1.5 0.2,-1.5 z", - "KV" : "m 375.73,132.99 -0.2,-0.7 -0.8,-0.8 -0.1,-0.4 0.6,-0.3 0.8,-1 1.9,1.4 -0.3,1 -0.9,0.1 z", - "LB" : "m 403.53,152.39 0.9,-1.7 0.7,-1.6 1.3,0.9 -1.5,1.7 -0.7,0.7 z", - "DJ" : "m 418.53,196.79 -1.9,0.1 -0.3,-0.3 0.2,-0.2 -0.2,-0.2 -0.1,-0.5 1.2,-1.8 0.6,0.2 0.8,-0.6 0.5,1.4 -0.2,0.9 z", - "BI" : "m 393.13,226.19 -0.6,-1 -0.3,-1.1 0,-0.5 -0.4,-0.7 1.7,-0.1 1.3,-0.5 0.5,1.6 z", - "SR" : "m 231.73,213.29 -2.6,-0.3 -1,1.1 -3,-4.3 1.6,-2.5 0.5,-1 5.6,0.4 -0.2,0.9 -0.6,0.8 0.9,2.8 z", - "IL" : "m 401.83,156.19 1.2,-2.1 0.5,-1.7 0.7,0 0.7,-0.7 0.1,1 -0.3,0.4 -0.3,0.3 0,1.8 -0.4,0.5 0.1,0.4 -0.1,0.2 0.1,0 -0.1,0.2 0.1,0.1 -0.5,1.4 -0.4,1.8 -0.1,0.2 0,0 -0.1,-0.5 z", - "ML" : "m 325.73,197.89 -1.4,0.3 -3.3,0.2 -0.8,-2.3 -1.5,-2.2 -2.9,1.1 -1.3,-0.9 -1.4,-2.6 -0.3,-2 1,-1.5 1.9,0.2 10,-0.1 -2,-18.9 3.3,0 11.5,7.8 1.4,1.8 2.5,0.8 -0.2,1.3 2.2,0 -0.1,5.4 -1.3,2 -4.2,0.2 -2.1,0.7 -1.8,-0.3 -2.7,1.8 -1.4,0.2 -1.3,1.7 -1,-0.5 -1,2.4 -1.1,0.4 z", - "SN" : "m 304.23,194.19 -0.1,-0.9 0.1,-0.5 1.8,-0.2 1.8,-1.2 -3.2,0.4 -1.1,-2.6 1.1,-1.8 0.4,-1.2 3.8,-0.4 4,3.7 0.3,2 1.4,2.6 -1.9,0.1 -2.6,-0.7 -2.8,0 z", - "GN" : "m 314.53,194.09 1.3,0.9 2.9,-1.1 1.5,2.2 0.8,2.3 0.2,1.4 -1.2,3.6 -1.2,0.7 -0.7,-2.2 -1.5,-0.3 -1.9,-2.9 -2.4,0.3 -1.5,1.5 -1,-1.5 -2.3,-2.2 0.6,-1 1.9,-0.4 0,-1.9 2.6,0.7 z", - "ZW" : "m 384.63,251.99 2.8,0.5 0.6,-0.2 2.1,-2.2 0,0 1.2,-0.6 0.2,-0.9 3,-0.8 4.9,2 0.1,3.3 -0.5,2.2 0.5,1.1 -1.2,2.5 -2.1,2.2 -1.8,-0.1 -1.9,-0.3 -2.6,-1.2 -0.6,-2.2 -3,-2 z", - "PL" : "m 373.83,102.19 -0.4,0.5 0.7,-0.5 5.6,0.3 0.2,0 1.3,0.5 0,0.6 0.8,3.3 -1.4,0.9 0.9,2 0.9,2.5 -2.8,2.5 -0.2,1.1 -1.3,-0.7 -5.8,-0.4 -0.5,-0.9 -4.1,-1.7 -3.1,-0.7 -0.3,-4.4 -1,-0.7 0.3,-2.2 0.7,-0.4 -0.8,-0.1 -0.1,-0.1 0.1,0 3.7,-1 0.8,-0.7 3.3,-0.7 0.6,1.1 1.9,-0.1 z", - "MK" : "m 376.43,135.29 0,0 0,0.1 z m 2.7,-3.3 1.2,1.3 -0.1,1 -2,0.5 -1.5,0.6 -0.3,-0.4 0,0.3 0,-0.1 0,0 -0.2,0 -0.2,0 0.1,-0.4 -0.3,0 -0.4,-1 0.3,-0.8 1,-0.7 0.9,-0.1 0.7,-0.2 z", - "PY" : "m 232.43,264.39 -0.3,0.8 -0.4,2 0.1,0.2 -0.1,0.1 -0.3,2.2 -1.9,1.6 -5.4,-0.2 2,-3.9 -4.8,-2.9 -1.8,-0.4 -3.2,-3.1 0.8,-3.4 0.9,-1.8 5.1,-0.7 1.8,1.7 0.7,1.6 -0.3,2.2 3,0.1 1.5,1.1 0.4,2.6 z", - "BY" : "m 381.53,109.79 -0.9,-2 1.4,-0.9 -0.8,-3.3 1.8,0.1 2,-1.1 0.8,-1.7 1.7,-1 -0.3,-0.9 1.9,-0.4 1.1,-0.9 5.2,1.4 1.7,4.8 1.8,1 -2.8,1.1 1,2.3 -1.6,0.1 -0.8,1.3 -2.3,0.5 -3.9,-0.6 -2.9,-0.8 -2.6,0.1 z", - "CZ" : "m 372.33,114.79 -1.4,1.1 -2.2,1.2 -3.8,-0.9 -0.5,0.9 -1.7,-0.4 -2.7,-2.4 0.2,-1.6 4.4,-1.2 3.1,0.7 4.1,1.7 z", - "BF" : "m 338.03,196.79 -0.8,0 -1.2,-0.3 -5,0.3 0.1,2.9 -1,-0.9 -2.8,0.5 -1.6,-1.4 0.7,-3 1.1,-0.4 1,-2.4 1,0.5 1.3,-1.7 1.4,-0.2 2.7,-1.8 1.8,0.3 1.5,3.6 2.3,0.9 0.4,1.3 -1.9,0.9 z", - "NA" : "m 381.03,251.69 1.6,-0.3 2,0.6 -3.2,1.3 -0.5,-0.9 -4.5,0.6 0.1,7.2 -2,0.1 0,5.5 0,7.5 -1.6,1.1 -3.3,-0.5 -0.6,-1.4 -1.2,1.2 -2.2,-2.6 -1.4,-5.6 -0.4,-4.6 -1.9,-2.9 -1.6,-3.5 -1,-1.1 -0.5,-2.5 2.7,-0.6 1.5,0.9 8.6,0 0.6,0.7 3.9,0.5 z", - "LY" : "m 365.03,173.19 -1.5,0.8 -1.4,-1.1 -2.9,-0.7 -0.8,-1.6 -2.9,-1.1 -1.2,-2.6 0.8,-0.8 0,-5.4 -0.6,-2.3 1.4,-1.4 -0.3,-1.1 2.8,-2.2 -0.1,-1.5 1.6,0.8 1.9,-0.2 3.5,1.1 1.7,2.3 2.5,0.4 3.3,1.8 1.3,-0.5 0.3,-2.7 1.2,-1.7 2.1,-0.8 2.8,0.7 0,0.6 3.6,0.8 0.3,0.6 -0.9,3.1 0.6,2.1 0,14.6 0,4 -1.9,0 0,1 -15.3,-7.9 z", - "TN" : "m 358.33,152.19 0.1,1.5 -2.8,2.2 0.3,1.1 -1.4,1.4 -0.9,-3.8 -1.4,-1 -1.6,-2.9 1.4,-1.6 0.3,-3.9 0.4,-1.1 2.2,-0.9 2.7,4.6 -1.9,2 0.4,1.3 1.4,-0.2 z", - "BT" : "m 506.53,164.49 2.5,-2.2 2.7,1.3 0.9,1.7 -4.4,0.4 z", - "MD" : "m 390.33,124.69 0.1,-2.8 -2.4,-3.7 -0.8,-0.3 2.2,-0.4 2.9,1.4 -0.3,0.8 1.9,2.8 -2.2,-0.2 z", - "SS" : "m 401.33,209.69 -0.9,0.9 -5.1,0.5 -2,-2 -2.7,0.5 -1.8,-1.5 -1.9,-1.9 -0.1,-1.1 -2,-1.3 -2.2,-2.6 1.7,-3.1 1.4,-0.2 1.4,1.7 4.4,0.4 2.2,-1.8 2.4,0.9 2.2,-2.4 -0.6,-1.9 2.2,-0.4 -0.1,2.7 1.7,2.6 -0.2,2 -1.4,-0.1 -0.3,1.3 1.2,0.3 2,1.9 2.3,3.9 -1,-0.8 z", - "BW" : "m 384.63,251.99 1.7,3.3 3,2 0.6,2.2 2.6,1.2 -2.2,0.9 -2.3,2 -0.3,1.3 -1.9,0.9 -0.5,1.8 -1.5,0.4 -3.4,-1.1 -0.6,1.4 -2,1.8 -1.9,0.1 0.3,-1.6 -1.7,-2.8 0,-5.5 2,-0.1 -0.1,-7.2 4.5,-0.6 0.5,0.9 z", - "BS" : "m 191.33,169.99 -1.3,-1.4 0,0 0,0 0.5,0.3 0.8,1.1 z m 0,0 0.8,0.9 0.5,2.1 4.4,1.5 -4,-1 -2.2,-1.6 1.1,-1.1 -0.6,-0.8 z m -1.3,-1.4 -1.6,-1.2 -1.4,1.5 0.7,2.9 -1.3,-1.9 0.1,-1.1 1.9,-1.9 1.6,1.7 0,0 z", - "NZ" : "m 661.13,313.49 -2.7,-0.1 -0.2,1.4 -0.8,-2.2 -1.8,0.1 -0.6,-1 0.9,-1.6 2.7,-2.6 2.6,-1.1 2.7,-2.2 1.9,-3.9 1.2,-0.9 0.7,1.8 1.4,-0.9 0.7,2.2 -3.4,4.3 -2.1,1.3 -1.3,3.3 z m 12.3,-12.7 -1.6,1.1 -1.2,-0.7 1.2,-2.3 -2.8,-2 1.6,-1.3 0.4,-2.3 -0.9,-2.5 -2.4,-3.1 1.5,-0.5 2.4,2.7 1.4,1.1 0.2,2 2.8,0.7 2.2,-0.5 -1.4,3 -0.9,-0.1 z", - "CU" : "m 188.73,178.29 -3,-0.4 -1.1,-1.8 -2.4,-1 -2.6,-0.2 -0.1,-1 -1.7,-0.1 -3.3,1.9 0.2,-1.2 2.2,-1.3 2.3,-0.4 3.8,0.3 1.6,1.4 0.9,-0.3 0.8,0 3.4,2.7 3.5,1.1 0.9,1.1 -6.6,0.5 z", - "EC" : "m 182.53,224.19 1,-1.4 -2.1,-0.6 0,-2.4 1.6,-2.1 -0.1,-1.3 2.5,-1.4 2.6,1.5 2.2,0.4 1.9,1.1 -0.5,2.7 -2.1,2 -3.2,1.5 -1.4,3.1 -2.8,-1.8 z", - "AU" : "m 617.53,306.39 -1.6,0 -1.5,-2.2 -1.1,-3.5 0,-1.4 -1.2,-0.9 4.1,2.5 3.8,-1.3 0.1,2.7 -0.5,3.3 -0.9,-0.8 z m -1.4,-54.7 0.6,2.8 5.1,2.8 0.9,3.5 2.3,0.9 0.2,1.8 1.9,1.1 1.4,2.1 1.4,-0.3 -0.6,1.6 1,3.3 0.1,3 -2.1,7.5 -1.4,0.9 -3.1,6.5 -0.4,3.5 -3.2,0.7 -3.5,2 -2.9,-0.5 0.1,-1.3 -2.8,2.1 -2.2,-1.1 -3.3,-0.7 -1.8,-1.9 -0.3,-2.6 -1.1,-1 -4.4,1.1 1.2,-1 -0.6,-1.5 2,-3.8 -1.2,0 -3.4,3.9 -0.9,-2.3 -1.7,-1.5 -0.3,-1.5 -3.7,-0.9 -2.1,-1.2 -4.1,0.5 -3.2,1.2 -2.1,-0.1 -4,2 -1.1,1.6 -6.8,0 -3,2.1 -2.4,0.4 -2.3,-0.5 -1.9,-1.6 1.3,-1.7 0.1,-3.5 -1.4,-3 0,-1.6 -1.5,-2.8 -0.3,-1.6 -2.1,-3.2 1.1,-0.5 1.1,1.9 0.1,-1.4 -1.3,-2.5 0.4,-3.9 4.3,-3.1 3.5,-0.8 6.2,-2 2.6,-2.9 -0.3,-1.8 1.5,-1.3 1.1,1.8 0.1,-2.6 1.6,0.3 0,-2.1 1.3,-1.2 2.9,-0.8 0.6,-1 2.4,1.9 2.8,0.8 -0.6,-1.3 3.1,-4.8 -1.8,-0.3 0.7,-1.1 2,0.1 0,2 2.4,-0.3 -0.2,-2.2 1.1,1.3 3.7,1.1 2.7,-0.9 0.8,1 -1.9,2.8 -0.9,2.2 2.1,1.6 4.7,2.3 1.9,1.6 1.6,-0.5 1.6,-4.6 -0.1,-5 0.7,-0.9 0.3,-3.6 0.9,1.1 1.8,5.8 0.8,1.5 1,-0.7 1.7,1.5 0.1,2.7 z", - "VE" : "m 199.73,195.09 -1.1,0.5 0.6,1.7 -1,1.7 1.2,1.5 0.9,-1.3 -1.1,-2.1 2.8,-1.2 2.4,0 1.8,1.9 3.2,-0.4 2.9,1.1 1.6,-1 2.3,-0.3 0.9,1.4 2.8,1.3 -0.2,0.9 1.7,0.7 -1,1.4 0.4,1.3 -1.7,1.1 -0.3,1.2 1.2,1.4 -1.6,1.8 -5.9,0.5 1.2,2.9 1.3,0.1 -1.5,1.6 -2.7,1.7 -2.6,-1.1 -0.6,-2.2 -1.2,-0.9 1,-1 -1.1,-2.2 0.8,-3.1 -3.8,0.1 -1.3,-1.6 -3.8,-0.2 -0.5,-2.5 -1.2,-1.8 0.2,-2.1 1.8,-2.4 z", - "SB" : "m 644.23,236.59 -1.9,-0.1 0,-2.4 -2.9,-1.9 -1.4,0.8 1.2,1.3 -2.6,-1.1 0.1,-1.7 3.3,0.7 2.3,1.4 0.5,1.4 1.7,-0.8 z", - "MG" : "m 431.73,249.49 -4.3,14.5 -1,2.3 -3.7,1.2 -2.1,-1.2 -0.5,-3.1 -1.1,-2.4 0.6,-1.9 1.8,-2.6 -1,-5 1,-2.5 2.2,-0.4 3.6,-1.7 1.4,-3.3 0.9,0.1 1.1,-2.9 1.3,2.1 1,4.7 -1.6,0.2 z", - "IS" : "m 290.23,72.39 4.3,-0.5 -0.3,-1.1 -2.3,-0.6 -2.6,0.2 1.5,-0.8 0.6,-1.4 1.9,0.4 -0.2,-1.2 2.4,1.5 -0.4,1.4 1.1,0.6 1.6,-2.4 3.4,-0.2 1.4,0.7 2.1,-0.7 -0.1,-1 3.6,1.4 -0.3,1 2,0.7 0.5,1.4 -2,2.1 -6.1,2.1 -1.9,1 -2.8,-0.5 -1.9,-1 -2.9,0.1 1.9,-1.7 -1.4,-1.3 z", - "EG" : "m 403.13,159.99 -1.2,3.6 -2,-1.7 -1.4,-2.9 0.2,2.1 1.9,2.4 0.8,2.4 2.9,5.4 0.3,2.1 2.3,1.8 -10.8,0 -12,0 0,-14.6 -0.6,-2.1 0.9,-3.1 4.2,0.7 3.3,1.1 2.5,-1.4 2.3,0.1 1,0.8 4.1,-0.5 1.2,3.3 z", - "KG" : "m 477.33,138.49 -2.7,0.6 -1.5,-0.9 -4.1,0.2 1.2,-1.6 1.9,0 1.4,0.2 2.8,-1.5 -2.7,-1.5 -0.6,0.7 -2.4,-1 1.5,-1.5 1.7,-1.4 3.2,1 1.3,-2 1.9,1 6.2,-0.1 3.4,1.6 -3.5,1.9 -0.5,0.7 -2.5,0.3 -2.1,1.4 -0.3,-0.7 -3,1.3 z m -5.8,-0.9 -0.3,0 0.2,0.2 0.2,-0.1 z m 2.2,-0.1 0,-0.2 -0.2,0.1 0,0.1 z m -1.2,-0.3 -0.4,-0.1 0.2,0.5 0.3,-0.1 z", - "NP" : "m 505.03,163.39 0.1,2.3 -1.6,0.7 -2.9,-0.4 -2.4,-1.6 -3.5,-0.3 -5.2,-2.8 0.6,-1.9 1.3,-0.9 2,-0.3 2.8,2.4 1.1,-0.1 1.9,1.9 1.7,0.9 1.1,-0.4 z" - } - } - } - }); - - return Mapael; - -})); diff --git a/htdocs/public/high/plugins/jquery-mapael/maps/world_countries_miller.min.js b/htdocs/public/high/plugins/jquery-mapael/maps/world_countries_miller.min.js deleted file mode 100644 index be9d3d17..00000000 --- a/htdocs/public/high/plugins/jquery-mapael/maps/world_countries_miller.min.js +++ /dev/null @@ -1,13 +0,0 @@ -/*! - * - * Jquery Mapael - Dynamic maps jQuery plugin (based on raphael.js) - * Requires Mapael - * - * Map of World by country - * Miller projection - * - * @source http://code.highcharts.com/mapdata/ - */ -!function(a){"object"==typeof exports?module.exports=a(require("jquery"),require("mapael")):"function"==typeof define&&define.amd?define(["jquery","mapael"],a):a(jQuery,jQuery.mapael)}(function(a,b){"use strict";return a.extend(!0,b,{maps:{world_countries_miller:{width:700.9375,height:337.375,leftLongitude:-175,rightLongitude:190,topLatitude:84,bottomLatitude:-56,_projectLongitude:function(a){return a*Math.PI/180},_projectLatitude:function(a){var b=a*Math.PI/180;return 1.25*Math.log(Math.tan(Math.PI/4+.4*b))},getCoords:function(a,b){var c=this;void 0===c._xLeftPrime&&(c._xLeftPrime=c._projectLongitude(c.leftLongitude)),void 0===c._xRightPrime&&(c._xRightPrime=c._projectLongitude(c.rightLongitude)),void 0===c._yTopPrime&&(c._yTopPrime=c._projectLatitude(c.topLatitude)),void 0===c._yBottomPrime&&(c._yBottomPrime=c._projectLatitude(c.bottomLatitude));var d=c._projectLongitude(b),e=c._projectLatitude(a),f=(d-c._xLeftPrime)*(c.width/(c._xRightPrime-c._xLeftPrime)),g=(c._yTopPrime-e)*(c.height/(c._yTopPrime-c._yBottomPrime));return{x:f,y:g}},elems:{FO:"m 322.53,80.19 0.9,0.8 0,0.3 -1,-0.7 z",UM:"m 26.03,206.59 0,0 -0.1,0 0.1,0 z",US:"m 100.93,117.39 0.2,0.1 -0.6,-0.2 0,-0.3 z m 0.2,-0.6 0.2,0.1 -0.3,0.2 -0.3,-0.1 z m -19,-15.8 0.2,0 0,0.4 -0.3,-0.4 z m -0.1,-0.7 0.3,0.3 -0.2,0.2 -0.2,-0.1 z m -0.5,0 0.8,1.3 -0.9,-0.7 -0.1,-0.7 z m 3.3,0.1 -0.1,0.3 -0.4,0 0.1,-0.7 z m -3.7,-0.5 0.1,0.3 -0.4,0 0,-0.3 z m 2.8,-0.3 0.3,0.4 -0.2,0.4 -0.2,-0.6 z m -3.5,-0.1 0.4,-0.1 0,0.3 -0.4,0.3 z m 0.7,0.1 -0.1,0 -0.2,-0.3 0.3,0 z m -1.1,-1.3 0.3,-0.4 0.8,-0.2 -0.2,0.3 z m 2.6,-0.8 0.8,0.3 -0.4,0.5 -0.7,-0.4 z m -0.3,-0.6 0,0.4 -0.8,-0.2 0.3,-0.3 z m 1,0.2 0.1,0.6 -0.5,-0.4 0,-0.6 z m -1.4,-1.2 0.6,0.6 -0.4,0.2 -0.3,0 z m -1.7,-0.8 1.5,0.5 -0.3,1.2 -1,0 z m -3.5,-0.4 -0.1,0.6 -0.4,0.1 0.2,-0.5 z m -1.5,-2.1 -0.2,0.4 -0.2,-0.2 0.2,-0.5 z m 91.6,25.5 -0.2,0.4 -1,0.5 -0.1,-0.2 z m 3,6.8 -0.2,0.6 -0.4,0.7 -0.2,-0.4 z m 2.8,-1 0,0.4 -0.3,0 0.2,-0.4 z m 3.7,-0.7 0.1,0.3 -0.6,0 0.3,-0.2 z m -96.8,-24.9 -0.6,-2.5 0.8,-0.1 0.6,0.7 z m -61.3,4.8 -0.9,1.5 -2.4,0.4 -2.2,1.3 1.2,-1.5 2.3,0 0,-1 z m 59.3,-7.9 -0.4,-1.4 1,0.8 0.4,3 z m -0.7,-2.2 -0.3,1.3 -1.4,-1.2 1.1,-1.3 z m 1.1,-1.2 1.4,0.4 0.5,2.3 -1,-0.2 z m -66.2,-14.8 1.6,0.2 -2,1.1 -1.9,-1.3 -2.2,-0.4 3,-0.6 z m 89,39.1 -0.1,0.1 0,-0.1 z m 45.7,49.9 -0.1,-0.8 -0.5,-0.2 -1.5,-2.5 -1.5,-2.5 -0.2,-0.1 -0.1,-0.1 -2.1,-0.7 -1.6,1.9 -2.6,-1.4 -0.7,-1.8 -3.2,-2.6 -3.2,0 0,0.9 -5.5,0 -7.2,-2.4 0.2,-0.5 -4.6,0.4 -0.3,-1.2 -2.4,-2 -2.5,-0.1 -1.5,-1.1 -3.4,-5.7 -0.2,-1.3 -2.3,-2.5 -0.3,-2 -1,-1.4 0.6,-2.3 -0.9,-3.2 0.8,-2.4 0.5,-4 -1.3,-6.7 3.6,0.6 -0.1,-0.2 0.7,0.6 -0.7,-0.7 0,0 0.3,-0.4 -0.3,0.3 0,-1.8 52.8,0 4.8,1.2 2.3,1.2 3.6,0.1 -2.8,1.2 -2,1.7 2.5,-0.2 0.6,0.7 3.5,-1.6 0.1,0.1 -0.1,-0.1 1.1,-0.6 0.6,0.1 -1.1,0.9 1.8,1.4 4.6,-0.7 0.9,0.8 0.7,-0.2 0,0.5 -1.2,1.1 -4.3,-0.1 -2,3.2 1.4,-0.6 -1.1,3.6 0.1,2.3 1,1.5 1.3,-0.6 0.8,-2.5 -0.6,-1.5 0.5,-2.5 3.2,-2.7 2.1,1.1 0.3,2.4 -1,0.8 2.3,0.2 0.5,2.1 -0.2,0.9 -0.3,0.2 -0.3,-0.3 -0.5,0.8 -0.7,1.4 1.8,0.7 1.6,-0.3 4.8,-2.4 0.5,-0.8 -0.3,-0.4 0,-0.4 4.5,-0.1 1.8,-2.7 1,-0.9 1,-0.3 0,0 6.2,-0.1 2.3,-2 0.5,-2 1.5,-1.8 2.7,0.9 0,3.2 0.4,0.3 0.4,0 -0.1,0.8 0.6,0.2 0.3,0.9 -2.4,1 0.1,0.1 -0.4,0.4 0,-0.3 0,0 -0.7,0.3 0.3,-0.1 0,0.4 -0.3,0 -0.1,-0.3 -0.4,0.2 -2.9,1.8 -0.1,3.7 -4.4,1.1 -2.2,1.4 -0.1,1.9 -2.9,4 -1.5,-2.8 0.3,3 -0.4,2.2 0.9,-0.1 0.5,2.8 -1.5,2.2 -1.2,-0.1 -1.6,1.8 -2.3,1.4 -3.8,3.1 -0.6,2.1 1.8,4.7 0.9,3.4 -0.6,3.4 -1.4,0 -2,-2.7 -1.3,-2.9 0.4,-2.1 -2.7,-2.5 -1.8,1 -2.1,-1.4 -5.3,-0.3 -1.5,0.6 0.9,2.4 -1.6,-0.9 -1.3,0.8 -1.9,-1.4 -1.3,0.4 -3.4,-0.3 -4.6,2.8 -2,3.1 0.8,1.7 -2.1,-0.2 z m -65.4,-67.3 -0.3,0.2 -0.2,-0.4 0.5,0 0,0 0.3,-1.3 2.3,3 -0.1,1.4 -1.6,-1.8 -1,-0.7 z m -43.4,79.5 -0.5,-0.5 0,0 0.5,0.2 0,0.3 0,0 z m 0,0 2.3,2 -2.1,0.9 -0.2,-2.9 0,0 z m 47.3,-77.4 -0.1,0.3 -0.3,-0.2 0.4,-0.1 0,0 z m -5.8,-8.9 0.1,0.1 -0.6,-0.1 0,-0.2 -0.3,-0.2 -3.7,0.5 -3.1,-2.4 -3,-1.3 -5.6,-1.7 -2.8,-0.1 -3.5,-0.9 0,-1.1 -3.5,0 0.4,2.5 -3.2,0 -0.7,0.9 -4.1,1.5 1.3,-1.3 -1.3,-0.4 0.9,-2.8 1.8,-0.9 -0.2,-0.9 -3.4,2.4 -0.7,1.7 -2.7,1.5 1.5,1.3 -1.9,2.4 -3.6,1.6 -2.1,2.7 -0.9,-0.5 -2.1,2.2 -1.9,0.1 -3.2,1.2 -1.6,1.4 -4.7,1.2 0.5,-1.3 2.4,-0.6 3.7,-2.2 2.2,0.3 -0.3,-1.2 2.8,-1.5 2.2,-2 1.3,-3.7 -3.7,1.3 -2.5,-1.8 -2.7,1.4 0.1,-2.6 -1.2,-1.8 -2.5,0.9 -2.6,-1.5 -1.1,1 -2.1,0.4 -1.5,-1 3.4,-0.3 2.1,-1.6 -3,-1.9 0.7,-1.5 3.1,-3.7 1.5,0.7 1.8,-1.2 3.1,-1 -1.2,-2.1 0.5,-1.6 -3.8,1.7 -5.8,-0.6 -3.6,-3.5 5.3,-2.3 3,-0.5 0.1,1.6 3.5,0.3 0.3,-3.3 -3.9,-0.3 -0.8,-1.6 -4.8,-2.4 0.8,-1.8 3.6,-0.2 2.4,-1.5 -0.1,-0.9 2.4,-2.4 2,0 2.3,-1.6 3.1,-0.1 2.3,-1.7 3.3,0.7 1.9,1.2 3.4,-0.3 0.7,1.4 5.3,-0.3 4,1.3 4.8,0.7 2.5,-0.5 4.4,1.6 0,29.2 3.5,0.6 3,2.4 0.4,1 2,-2 1.7,-0.6 1,1.5 3,2.5 3,5 3.4,1.8 0.1,1.7 0,0 -1.8,1.3 0.1,-2.4 -0.3,-0.1 -0.3,-0.6 -0.4,0.4 -0.6,-0.2 -0.5,-1.3 -2.1,-2 -2.2,-3.1 z m -38.1,3.7 -1.1,-1.2 3,-2 1.7,-1.6 0.4,2.8 -2.9,1.7 -3.7,3.4 z m -3.9,82.1 -3,-1 2.1,0.2 0.9,0.8 z m 47.8,-76.9 0.1,-0.2 0,0.2 -0.1,0 0,0 z",JP:"m 606.33,125.09 0,-0.1 0.6,0.4 -0.3,0.1 z m -15.5,25.1 -1.3,0.7 -2.1,-0.3 2.8,-3.2 3.7,-0.5 2.2,0.3 3,-4.4 -0.5,1.4 2.4,-0.6 0.4,-1.6 1.8,-0.6 1.1,-2.6 -0.4,-1.2 1.1,-3.2 0.7,1 1.3,-0.7 1.2,3.9 -1.8,2.3 -0.1,2.2 -0.9,2.4 0.5,1.2 -1.7,1.8 -0.3,-1.4 -3,1.8 -3.2,0.3 0.7,0.7 -1.8,1.4 -1.7,-0.6 0.6,-1.7 -3.2,0.3 -1.5,0.9 1.1,0.3 1.3,-1.2 0.9,0.5 -0.9,2.3 -0.9,-0.6 -2.2,1.7 -0.5,-1.6 z m -6.8,2 -0.4,-2 1.3,1.7 1.2,-1.1 2.4,0.6 0.6,1.3 -1.4,3.4 -2.1,0.2 -0.1,-3.3 z m 21.7,-19.1 -1,1 -0.6,-2.9 1.1,-1.6 1.9,0 0.9,-5.1 3.6,3.2 2.4,0.9 0.9,1.4 -2.6,0.5 -1.8,2.4 -2.7,-1.5 -2.9,0.7 z",SC:"m 442.43,226.39 0.2,0.3 -0.1,0.2 -0.5,-0.7 z",IN:"m 504.93,175.49 0.1,0 0,0.5 -0.2,-0.1 z m 0.1,-12.1 1.3,-0.3 0.2,1.4 1.7,1.2 4.4,-0.4 -0.9,-1.7 1.9,-0.4 3.9,-2.9 1.2,0.6 1.6,-0.7 2.3,2.4 -1.2,1.8 -3.2,1.8 0,1.5 -1.8,3.8 -1.5,-0.3 -0.2,3.3 -1.2,0.8 -0.8,-3.5 -1.1,1.5 -0.8,-1.3 2.5,-2.7 -0.8,-0.5 -3.2,0.1 -1,-1.7 -2.7,-1 -0.7,1.2 1.6,1.5 -1.7,1 1.4,0.7 -0.4,1.4 1,3 -1.6,1.1 -0.1,-1 -1.9,1 -1.6,3.2 -1.7,0.1 -2.6,3.2 -3.5,2.5 0.1,0.8 -3.9,1.8 -0.5,1.3 0.6,3.2 -0.9,2.6 0,3.3 -4.5,4.3 -1.9,-1.6 -1.3,-4.2 -2,-3.4 -0.9,-3.3 -1.7,-3 -1.5,-7.4 0.4,-1.3 -1,-3.6 -0.5,2.2 -2.1,1 -1.3,-0.4 -2.1,-2.1 1.8,-1.2 -2.9,-1.2 -0.9,-1.4 1.3,-0.8 2.1,0.2 2.1,-1.1 -3,-4.3 1.9,-2.5 2.7,0.2 2,-2.3 0.9,-1.8 2.2,-2.5 -0.1,-1.3 1.5,-0.9 -2.4,-2.2 -0.5,-2.5 1.1,-0.9 2.8,0.6 2.4,-1.3 1.4,-0.9 0.9,1.8 1.3,0.7 -0.3,1.7 1.4,1.7 -2.2,0.5 0.7,2.5 4.4,2.4 -1.3,0.9 -0.6,1.9 5.2,2.8 3.5,0.3 2.4,1.6 2.9,0.4 1.6,-0.7 z",FR:"m 228.83,121.39 -0.4,0.1 -0.1,-0.8 0.2,0.5 z m 125.6,9.9 -0.5,2.9 -0.8,-0.5 -0.1,-2.3 z m 301.9,127.2 -0.6,2.6 -3,-1.6 -1.7,-1.7 -0.4,-1.4 4.2,3.2 z m -187.7,60.9 2.7,0.3 -0.8,1.5 -2.5,0 z m -253.1,-136.4 0.1,-0.1 0,0.2 z m 135.1,-54.4 0,0.1 -0.1,0 0,0 -0.1,0.1 -2.4,1.4 -4.2,-1 -1.7,1.4 0.3,1.2 -1.3,0.2 -1,-0.3 -0.1,0 0,0 -0.5,-0.1 0.1,-0.3 -0.6,0.1 -2.8,-0.2 -3.4,-1.7 0.6,-0.4 0.9,-5.8 -1.8,-2.4 -1.6,-1.1 -3.6,-1.4 -0.1,-1.2 3.2,-0.8 0.7,0.9 2.5,-0.3 -1,-2.7 3.3,1.1 0.7,-1 2.7,-1.3 0,-1.7 1.8,-0.5 3.1,2.8 3.2,1.1 0.3,0.2 0.7,0 3.6,1.2 -1.2,3.4 -2.8,2.4 0.2,0.7 0.1,-0.2 0.2,0 0.8,-0.1 -0.1,0.7 0.5,0.5 -0.8,1.9 z m -118,79 0.4,-0.8 1.9,0.6 2.4,2.7 -2.5,3.5 -3.1,-0.3 1.2,-2.1 -0.9,-2.8 z",FM:"m 639.23,204.49 0.2,0.1 0,0.2 -0.2,0 z",CN:"m 544.43,180.89 1.7,-1.7 2.1,-0.3 0.6,0.9 -1.1,2 -1.4,1 -1.9,-0.7 z m -37.9,-16.4 -0.2,-1.4 -1.3,0.3 -3,-0.5 -1.1,0.4 -1.7,-0.9 -1.9,-1.9 -1.1,0.1 -2.8,-2.4 -2,0.3 -4.4,-2.4 -0.7,-2.5 2.2,-0.5 -1.4,-1.7 0.3,-1.7 -1.3,-0.7 -0.9,-1.8 -0.8,0.1 -1.1,-0.4 -1.6,-1.8 -2.7,-1.2 -0.3,-0.2 1,-0.3 -0.3,-2.8 -1.8,-0.1 -0.3,-2 0.6,-1.3 3,-1.3 0.3,0.7 2.1,-1.4 2.5,-0.3 0.5,-0.7 3.5,-1.9 1.2,-2.2 -1.4,-4.4 4.2,-1.2 1.4,-4 3.3,0.9 1.5,-0.5 0.5,-3.3 3,-1.7 0.3,-0.1 0.6,-0.1 0.3,1.4 2.1,1.5 2.4,0.8 1.4,2.6 -0.3,3.3 5,0.6 3.6,1.5 1.9,3.7 10.1,0.5 0.7,0.7 3.3,1 2.8,0 3,-1.2 5.2,-0.4 4.7,-2.9 -1,-1.7 1.1,-1.5 3.1,0.8 1.8,-1.5 2.1,-0.2 1.8,-2 3.2,-1 2.7,0.3 0.4,-0.8 -2.6,-2.6 -1.5,0 -0.1,0.1 -0.3,0.4 -3.2,0.2 -0.7,-1.1 2.3,-4.1 2,0.7 2.8,-1.2 -0.1,-0.9 1.8,-3.3 1.3,-1.1 -1.4,-1.7 1.5,-1.3 4.7,-0.8 4.7,1.5 4.5,8.8 2.5,0.3 2.8,2.7 0.4,1.6 2.7,-0.1 3.7,-1.7 0.7,1.7 -1.2,1.1 -0.5,2.4 -2,2.8 -0.5,-0.6 -1.1,0.2 -2,0.9 0.6,1.9 -0.5,2.8 -0.9,0.7 -1.3,-1 -0.3,1.2 -3.2,1.1 0.2,1.4 -2.9,-0.7 -1.2,1.8 -3.1,1.8 -3.6,1.5 -2.6,1.5 0.3,-1.4 1.9,-2.5 -2.1,-1 -1.4,1.7 -1.8,0.6 -1,1.6 -2.4,0.2 0.7,2.1 1.4,0 1.2,2.3 2.4,-1.6 1.7,0.9 2.1,0.1 -3.7,2 -3,3.1 2,1.6 1.2,3.5 1.8,1.5 0.3,2.2 -1.9,0.8 2.7,1.5 -1.5,1.1 0.1,2 -1.3,0.7 -2.9,4.1 0.6,1.2 -1.8,0.6 -4.5,4.4 -3.3,0.2 -1.1,1.2 -1.1,-1.6 -0.1,1.8 -5.5,1.5 -1.5,2.2 -0.3,-2.4 -2.5,-0.8 -0.9,0.8 -2.7,-1.8 0.4,-0.8 -2.8,-1.2 -2.6,1.7 -2.8,-0.5 -0.7,0.7 -1.2,0.3 0.4,2.3 -1,-0.9 -1.9,0.3 -0.5,-1.3 -1.5,-0.2 0.7,-1.8 -1.2,-0.2 -0.6,-1.8 -1.8,0.4 0.1,-2.4 1.9,-1.7 0,-3.5 -2.2,-1.9 -0.4,0.6 -2.3,-2.4 -1.6,0.7 -1.2,-0.6 -3.9,2.9 -1.9,0.4 -2.7,-1.3 z",PT:"m 322.13,143.49 -3.1,0.4 0.5,-2.6 -1.4,-1.1 1.5,-4.7 -0.1,-2.7 4.2,0.1 0.7,0.8 -1.4,1.3 -0.1,4.5 z",SW:"m 185.73,187.29 0,0 0,0 z",SH:"m 561.73,188.69 0,0 0,0 0,0 z",BR:"m 241.13,217.99 2.5,0.3 -0.8,2.2 -3.4,0.6 -0.4,-2.2 z m -7.3,66.1 0.8,-1.6 -0.1,-0.3 -4.7,-3.8 -0.8,0.5 -1.5,-2.1 -1.5,0.2 3.5,-4.1 3.7,-2.2 -0.1,-3.1 -1.4,-0.1 0.1,-0.1 -0.1,-0.2 0.7,-1.5 0,-1.3 -2.2,-0.2 -0.4,-2.6 -1.5,-1.1 -3,-0.1 0.3,-2.2 -0.7,-1.6 1.2,-3.9 -1.6,-1.8 -0.2,-1.8 -3.2,-0.1 -0.6,-4.8 -2.6,-0.5 -2.4,-1.7 -2.5,-0.4 -1.9,-2.5 -0.1,-2.9 -2.3,0.5 -3.2,2 -2.4,0 -2.1,0.1 0.3,-3 -1.3,0.9 -1.9,0.2 -3.5,-4.8 1.7,-2.2 0.4,-2.4 4.1,-1.8 1.5,0.1 1,-5.3 -1.2,-2.4 0.4,-3.6 3.3,0 1.5,-0.7 0.9,1.6 2.6,1.1 2.7,-1.7 1.5,-1.6 -1.3,-0.1 -1.2,-2.9 5.9,-0.5 1.6,-1.8 1.4,0.2 0.9,2.2 -0.9,2.3 0.5,1.6 1.8,1.3 3.2,-1.6 1.2,0.2 1,-1.1 2.6,0.3 3.1,0.3 2.5,-3.5 1.2,0.3 0.7,3.2 1.5,1 0.2,3.1 -3,0.9 1.4,2.6 2.7,0.3 2.9,-2.7 5.2,1.5 0.7,2.6 1.8,-0.8 4,1.2 3.1,-0.1 2.9,1.6 2.5,2.3 3.1,0.4 1.5,3.9 -1,3.9 -3.1,3 -2.2,3.6 -1.7,1.2 0.2,5.1 -0.6,3.5 -0.9,1.1 -0.1,2.3 -2.7,4.2 0.2,0.9 -2,2 -4.4,0 -5,2.7 -1.7,1.3 -1.5,2.3 0.4,2.7 -0.7,2.3 -2,2 -1,2.1 -1.7,-0.6 -0.4,1.9 -1.5,1.4 -0.8,2.9 -1.4,1.3 -0.3,-0.2 z",KI:"m 34.93,213.89 0.2,0.4 0.2,0.2 -0.4,-0.1 z",PH:"m 574.43,195.49 1.3,-0.2 -1.5,-1.5 1.7,-0.1 1.1,2.8 -1.3,-0.2 -0.5,1.8 z m -8.8,0.5 0.2,-1.8 0.9,0.5 -1.1,1.3 z m -0.4,0.4 0,0 0.4,-0.4 0,0 0,0 -0.4,0.4 z m 4.6,1.5 0.1,-3.5 2.2,1.5 -0.4,1.1 2.1,-0.8 -0.1,1.8 -1.9,2.5 -1.2,-1.5 0.4,-1.7 z m 4.4,5.8 -1.6,-0.8 -1.8,0.2 -1,2.5 0.2,-2.6 2.5,-1.9 1,1.1 1.7,-1.7 1.4,0.1 0,-2 1.6,2.3 0.5,3 -0.7,1 -0.9,-1.1 -0.8,1.3 0.1,2 -2.2,-1.1 z m 0.3,-12.1 -0.7,3.8 -1.2,-1 -0.5,-2.4 -1.2,-1 0.1,1.6 -1.7,-1.6 -1,1.1 1,0.9 -0.9,1.4 -1.6,-2.5 1.2,-0.1 -1.8,-2.4 -0.5,-3 1.1,0.4 -0.1,-2.8 1.6,-2.9 -0.2,0.8 2.3,0.8 0.5,2.2 -0.7,1.7 -1.2,0.6 0.3,3.4 1.5,-0.3 z m -9.3,4.8 0.3,1.3 -4.6,3.9 4.3,-5.2 z",MX:"m 170.23,178.09 -0.5,0.6 0,-0.3 0.1,-0.3 z m -38.2,-2.3 0.3,0.1 0.6,0.8 -0.5,-0.4 z m -10.1,-5.6 0.3,0 0.2,0.3 0,0.1 z m -0.4,-1 -0.1,0.4 -0.1,0 0.1,-0.4 z m -5.8,-6.3 -0.1,0.1 -0.2,-0.2 0.3,-0.5 z m -5.8,-1.7 -0.1,0 -0.1,-0.5 0.2,0.2 z m 10.9,0.4 0.2,-1 0.5,0.4 -0.3,0.5 z m -1.8,-1.7 0.6,0.5 0.1,0.6 -0.9,-0.8 z m 23.5,-0.1 -0.1,0.2 0.4,0 1.5,2.5 1.5,2.5 0.4,0.5 0.2,0.5 1.8,1 2.1,0.2 -1,3 -0.4,4 1.4,3.7 2.5,3.8 2.6,1.2 5,-1 1.8,-1 1.1,-3.7 4.2,-1.2 2.7,0.7 -1.3,2.1 -0.8,3.9 -0.9,-0.5 -1.1,1.2 -0.5,0.1 -3.5,0 -0.9,1.1 2,1.8 -2.6,0.6 -0.9,2.9 -3.2,-3 -1.8,-0.7 -3.3,1.5 -4.2,-1.7 -4.4,-1.4 -1.4,-1.2 -3.3,-0.9 -2.8,-2 -1.4,-2.1 1,-2.1 -1.2,-2.3 -4.8,-5.3 -2.2,-1.1 0,-1.9 -2.1,-1.3 -3,-3.4 -1.9,-3.8 0.1,-0.7 -2.9,-1.3 -0.2,3.3 2,1.9 6,9 -0.2,1.3 1.6,0.2 0.6,1.9 -0.8,0.7 -0.8,-1.4 -3.5,-2.6 -0.2,-2.4 -2.6,-1.4 -2.8,-2.3 1.7,-0.2 0.2,-1.1 -3.1,-2.7 -0.7,-2.2 -2.1,-3.6 4.6,-0.4 -0.2,0.5 7.2,2.4 5.5,0 0,-0.9 3.2,0 3.2,2.6 0.7,1.8 2.6,1.4 1.6,-1.9 z m 7,8.5 -0.4,1 0.2,0.8 0.5,-1.8 z",ES:"m 306.83,163.39 -2,-0.6 -1.3,0.1 1.9,-1 z m 23.8,-15.8 0.1,0.1 -0.1,0 0,-0.1 z m -4.7,-1.3 0.2,0.1 0,0.1 -0.1,-0.1 z m 0.1,-0.5 -1.5,-0.3 -0.7,-1.5 -1.7,-0.5 0.8,-4 0.1,-4.5 1.4,-1.3 -0.7,-0.8 -4.2,-0.1 -0.9,-2.7 2.5,-1.4 1.3,0.4 7,0.1 3.4,0.3 3.4,1.7 2.8,0.2 0.2,0.4 0.3,-0.2 0.5,0.1 0,0 0,-0.1 0.1,0.1 0,0 1,0.3 1.3,-0.2 0.1,1 -2.3,1.6 -2,0.5 -2.5,3.5 1,1.6 -1.4,1 -0.4,1.6 -1.8,0.6 -0.8,1.2 -4.5,0.2 -1.7,1.2 z",BU:"m 183.13,187.49 0,0 0,0 0,0 z",MV:"m 476.83,206.89 0.5,0.7 -0.6,0 0.2,-0.4 z",SP:"m 558.13,197.09 0,0 -0.1,0 0.1,0 z",GB:"m 330.13,90.09 0.1,0.2 -0.2,0.1 -0.3,-0.3 z m 0.2,-0.8 0,0.5 0.3,0.1 -0.8,-0.1 z m 0.5,-0.2 -0.4,-0.2 0.8,0.3 -0.2,0.2 z m 3.5,-3.1 -0.5,1.4 -0.1,-1 -0.6,-0.3 z m 0.2,-0.9 0.3,0.1 -0.8,0.2 0.2,-0.5 z m 0.3,-0.4 -0.1,0.3 -0.3,0 0.1,-0.4 z m -154.3,95.9 0.1,-0.1 0.4,0.1 -0.3,0.1 z m 18.7,-4.9 -0.4,0 -0.1,-0.2 0.3,0.1 z m -1,-0.2 -0.1,0.2 -0.3,0 0.3,-0.1 z m 124.5,-81.9 0,-1.5 1.6,-0.9 -0.2,1.3 z m -100.7,234.1 1.4,-2.7 2,0.4 0.3,0.8 z m 179.2,-179.3 -0.1,0 -0.1,0 -0.1,-0.1 0,0 0.1,0.1 -0.2,0 0,-0.1 0,0 0,-0.1 0.1,0 0.3,0 0,0 -0.2,0 z m -0.3,-0.1 0,0 0,0 z m -74.8,-2.5 -0.1,0.1 0,-0.1 z m 73.4,3.3 -0.2,0 -0.3,0 0.1,-0.1 z m -77.1,-48.5 1.8,-0.6 1.5,1.7 -1.4,1.4 -2,0 -1.7,-0.9 z m 2.3,-6.2 2,-3.6 3.8,0 -2,2 1.1,0.6 3,0.1 0.3,0.6 -2.7,3.8 3,1.3 0.8,2.5 2.1,1.4 0.8,2.7 -0.6,0.5 3.2,0.3 -0.2,1.8 -1.7,1.5 1.3,0.9 -2.1,1 -7.1,0.3 -3.8,1 2.4,-2.5 2.1,0 -2.5,-1.5 -1.8,-0.2 2.1,-1 0.1,-2.5 1.9,-0.4 0.6,-2.1 -1.5,-0.9 0.5,-0.9 -2,-0.1 0.1,1.3 -1.4,-1.1 0.9,-1.8 -2,-2.4 -1.7,-0.7 1.5,-0.4 -1.9,-1.8 z",GR:"m 386.63,147.99 -3,0.5 -2.3,-0.8 1.3,-0.6 z m 2.5,-2.3 1.2,-0.6 -0.3,0.8 -0.5,0.5 z m -0.8,-0.9 -0.4,-0.2 0.4,-0.4 -0.1,0.3 z m -0.5,-1 0.2,0.1 -0.2,0.2 0.1,-0.2 z m -3.3,0.2 0.7,-0.5 0.1,0.4 -0.4,0.8 z m 2.2,-1.4 -0.5,0.2 -0.2,-0.1 0.2,-0.1 z m 1.2,-0.3 0.2,0.1 -0.5,0.1 -0.4,-0.2 z m -1.7,-1.8 0.2,0.6 -0.4,-0.1 -0.2,-0.5 z m -1.2,-3.3 -0.4,0.1 0.4,-1.1 0.4,0 z m -8.5,-1.5 0.2,-0.1 -0.2,0.1 -0.1,-0.1 0,-0.1 0.1,-0.1 0.2,0 1.5,-0.6 2,-0.5 3,-0.6 1.4,0.8 2.1,-1.1 0.6,0.7 -1.2,1.5 -1.9,-0.6 -2.5,0.8 1.3,1.1 -3.4,-0.7 -0.1,1 5.4,5.8 -2.8,-1.9 0.3,1.3 -1.7,-0.6 -0.9,0.9 0.9,2.5 -2.5,-0.6 -1,-3.3 -2.6,-3.3 0.7,-0.3 z m 10.4,3.3 0.3,0.4 -0.3,0.2 -1.2,-0.5 1.1,-0.3 0,0 z",AS:"m 9.63,245.09 -0.1,0 -0.1,0.2 -0.2,-0.1 z",DK:"m 357.83,100.89 1,0.8 -0.6,0 -0.8,-0.3 z m -1.7,0.1 0.3,0.1 -0.2,0.1 -0.4,-0.4 z m 4.2,-0.3 -0.7,0.4 0,-0.3 0.3,-0.1 z m -5.3,-0.2 0.5,0.4 -0.1,0.2 -0.4,-0.1 z m 2,0.4 -0.2,0.5 -0.2,-0.2 0.7,-0.9 z m 3.4,-2 -1.2,2.7 -1.7,-2.6 2.2,-1.3 z m -6.1,2.4 -1.1,-0.3 -0.3,0 -1.1,-4.4 3.2,-1.5 1.6,-1.8 -0.7,2.3 1.4,1.3 -0.9,0.9 0.6,2.3 -2.4,-0.5 z",GL:"m 234.93,60.89 0.2,0.2 -0.5,0.1 -0.2,-0.2 z m 1.5,-0.8 -1.8,0.4 0.2,-0.2 0.7,-0.2 z m -4.8,-5.7 -0.5,0 -0.2,-0.4 0.5,0.1 z m 2.2,-2.3 -0.9,-0.3 0.7,-0.7 0.5,0.7 z m -2.9,-4.6 -0.9,0.6 -0.2,-0.3 1.1,-0.5 z m -1.2,-1.6 -0.4,0.4 -0.7,-0.2 0.5,-0.2 z m 1.3,-0.1 -1.1,0.9 -0.1,-0.8 0.7,-0.2 z m -1.8,-2.8 0.9,0.5 -0.3,0 -1,-0.5 z m -0.7,-1.2 0.6,0.1 -1.2,0.1 0,-0.4 z m -0.4,-2.3 -1.1,0 -0.9,0 1.6,-0.3 z m -25.1,-8 -0.8,0 0.1,-0.2 0.8,-0.1 z m -5,-3.6 1.6,0.3 -0.6,0.2 -1.6,-0.3 z m 2.5,-0.2 1.3,0.4 -1.6,0 -0.4,-0.3 z m 102.6,-10.6 -2.2,1.3 -1.8,-0.7 3.2,-1.1 z m -94.9,-3 0.6,0.2 -0.4,0.1 -0.2,-0.1 z m 30,-6 -1.7,-0.1 -2.1,-0.5 0.8,-1 z m -4.8,50.1 0.6,-0.6 -3,-0.9 0.3,-1.7 3,0 2.4,1.4 -0.3,1.1 z m 1.4,12.1 -0.3,0 0,-0.2 0,-0.1 -0.2,-0.1 -0.7,-2.6 2.6,-1.4 -3.2,-0.5 1.5,-3.6 3.8,-1.2 0.7,-3.9 -1.2,-0.9 -4.6,-1.4 -1.4,-1.2 4.1,0.1 3.4,1.3 -1.5,-2.1 -2,-1.1 -0.3,0.2 -0.9,-0.1 0.3,-0.6 0.2,0 -0.3,-0.2 2.3,-0.6 -1.9,-0.2 -0.8,0.5 -0.5,-0.5 0.8,0 0.2,0 -2.2,-0.2 0.3,1 -2.6,0.2 -1.2,-1.1 0.6,-0.6 -0.3,-0.2 0.4,-0.1 0.1,0.1 1.2,-1.2 0.5,-2.1 -1,-0.4 0.1,-0.1 -0.8,-0.3 -0.1,0 -0.2,-0.1 0.8,-1.2 -1.5,-0.9 0.7,-0.9 -1.4,-0.7 0.5,-1.1 -1.8,-2.2 -2.1,-0.5 -0.9,-1.2 0.4,-1.4 -4.7,-1.7 -5,-0.8 -1,0.9 -4.2,-0.5 -0.5,1.3 -3.7,-0.5 -2.4,-1.3 3.2,-1.2 -4.6,-0.4 -1.8,-0.8 0.8,-0.8 4.9,-0.8 3,0.1 1,-1 -5.7,0.6 -0.5,-0.9 -3.5,-0.4 -3,-1.6 0.6,-1.5 6.2,-1.2 2.5,-1.2 4,-0.1 2.1,-1.7 -0.4,-2.3 -3.8,-0.1 -0.8,-1.3 4.5,-1.9 0.6,-1 3.5,-1 2.7,0.7 1.5,-2 -1.3,-1.1 5.5,-1.7 7.9,-1.2 1.7,1.2 -0.4,2.6 1.6,-2.3 3,0.7 3.7,-0.2 -2.2,-1 -1,-1.7 4,0.3 5.8,1.9 1.6,1.2 1.8,-0.3 -1.4,-0.9 0.4,-0.3 -4.1,-1.2 -2.8,-2 1.3,0.7 2.6,-0.2 3.6,1.3 -0.6,1.4 2,-1.4 -3.9,-1.8 9.1,0.1 -8.9,-0.5 -2.3,-0.5 1.5,-0.6 1.8,0.5 0.9,-0.9 4.8,-0.3 4.4,0.2 1.9,0.1 0.3,-1.2 3.7,-0.5 8.2,-0.5 3.5,0.2 9.6,1.4 -0.8,0.5 -9,0.3 -8,1.1 5.9,-0.4 3.4,-0.6 5.2,0.3 4.1,-0.5 1.4,1.3 3.5,0.4 2.5,0.9 -2.1,1.3 -14.2,1 -5.6,1.3 2.1,0.1 7.5,-1.1 6,0.4 -0.1,0.9 -3.1,0.8 -0.1,0.9 5,-1.5 1.1,-1.3 3.4,-0.3 0.3,2.6 -3.6,2.7 2.2,-0.4 6.4,-3.7 3,1.2 2.4,-1.2 3.6,0.1 3.6,0.8 1.3,0.8 -3.8,2 -2.3,0.1 0.5,1 -2.1,0.6 -3.2,-0.1 2.4,1.2 -1.2,0.8 -4.5,0.5 -3,0.9 2.2,0.8 -0.7,1.4 1.2,1 -1.8,0.6 0.9,1.3 -2,-0.6 -1.6,2.5 -0.2,1.6 4.2,-0.2 -0.3,0.8 2.9,0.4 -2.9,0.4 -2.8,-0.5 0.7,1.1 4.1,0.7 -0.8,2.8 0.4,2.3 -1.1,-2.1 0.7,-1.2 -3.4,-0.7 -2.3,1.2 0,1.6 3.4,-0.1 1.1,3.4 3.9,1.4 -2.1,0.2 -1.8,2.7 -3.6,0.7 1.3,2.4 -1.9,-0.1 -1.4,0.8 -3.3,-1.2 -4.1,1.3 1.1,0.3 -0.2,-0.1 2.3,-0.9 2.4,1.3 2.5,0.6 0.1,0.8 -2,-0.3 1.8,1 -1.3,0.1 0.9,1.2 -4.2,-1.7 -0.2,-0.8 1.5,0 -1.6,-0.3 -1.2,-0.5 -1,0.5 2.2,1.8 3.9,1.8 -1.1,0.7 2.4,1.6 0.7,2.5 -3.6,0.4 -1.8,-2.3 -3,-1.7 0.5,1.4 -4.5,1 -0.6,1.8 1.8,-0.2 -1.5,0 0.8,-1.1 4.5,-1.1 0,1.4 -1.7,0.7 -1.2,0 -2,1.3 1.1,0.3 3.8,-1.4 3.4,1 2.2,0 -1.6,1.6 -1.7,0.4 -4.1,2.8 -3.4,0.5 -2.6,1.2 -5,0.5 -2.6,1.6 0.2,0.8 -2.7,3 -3.3,1.7 -2.8,0.8 -0.3,-2.1 -1,1.8 -3.1,0.7 1.3,0.4 -1.5,1 -1.1,2 0.6,2 -3.1,3.4 -0.9,5 -1.6,1.2 0.4,1.5 -2.1,0.2 -2,-0.9 -0.2,-1.3 -4.7,-0.6 -2.1,-1.6 -0.5,-2.2 -1.9,-1 0.3,-1.4 -2.4,-1.6 0.2,-2.8 -1.5,0.8 0.1,-2.6 z",GU:"m 613.53,191.99 -0.2,0.4 -0.1,-0.3 0.5,-0.5 z",MP:"m 615.13,188.99 0.1,-0.4 0.3,-0.1 -0.2,0.3 z",PR:"m 211.33,182.59 -1.8,0.7 -1.7,0 0,-1.2 z",VI:"m 212.33,183.59 0.4,0 -0.7,0.2 0.1,-0.2 z",CA:"m 175.63,27.69 -3.1,-0.2 0.9,-2.2 -2.3,-0.5 -2.3,0.3 0,-1.4 1.7,-1.5 2.6,-0.5 3.9,0.5 2.7,-0.3 -4.8,-0.3 -1.4,-2.9 -2.7,-0.6 0,-2.5 5.1,0.3 3.1,1.7 0.9,1.2 0.4,-1.6 -3.3,-1.5 9.9,-1.3 -3.7,-0.1 6.4,-1.3 -5.8,0.4 -6.3,1.3 -1.8,-1 -1,1.1 -4.5,-0.4 1.2,-1.8 -2.2,1.7 -4.1,-1.2 5.2,-0.5 0.3,-0.6 -6.3,0.5 -1,-0.7 3.7,-1.9 -4,1 1.8,-1.2 -4.6,0 1.8,-1 5.7,-1.2 6.3,0.6 -3.8,-0.7 2.7,-0.7 -0.8,-0.9 5.3,0.8 5.7,1.6 -5.2,-2 1.2,-1.4 2.9,0.6 -1.9,-1.1 3.2,0.1 -0.5,-0.8 5.8,0.3 1.9,-0.9 3.7,0.3 0.7,0.6 1.7,-1 6.3,-0.2 0.1,0.6 6.2,0.5 -4.3,1.2 2.3,-0.1 5.2,-1.2 3.4,1.9 2.6,0.1 0.5,1.4 -5.9,2.2 -1.9,-0.2 -2.4,1.2 -6.6,1.6 10.6,-1.8 -7.2,3.6 -4.5,2.7 -1.6,1.8 -3.6,-0.2 0.4,1.1 -5.3,0.8 -2.8,-0.5 0.1,0.8 5.5,0.2 0,0.8 -3.2,-0.4 -3.4,0.3 4.1,0.3 2.2,0.9 -0.3,0.8 -3.3,0.2 2.7,0.7 -0.9,1.1 -3.9,1.2 -1.3,1.8 -4.8,0.2 3.4,1 -0.7,0.7 2.8,-0.2 0.3,1.2 -2.9,1.4 0.8,1.8 -1.7,-0.1 0.8,-1.6 -3.3,0.7 0.5,-1.2 -6,-0.2 -0.9,0.6 -5.8,-0.5 -5.1,-0.2 -0.9,-0.9 4.3,-1.7 1.2,-0.9 -1,-1.8 1.9,-0.4 2.4,0.8 0.3,1.1 z m 0,0 0,0 0,0 0,0 0,0 0,0 1,-0.1 1.2,-2.1 -2.2,2.2 0,0 0,0 0,0 z m 9.3,102.5 0,0.2 0.3,0.2 -4.7,0.7 -2.4,1.4 -0.9,-0.7 1.2,0 -0.4,-0.5 0.3,-0.2 0.2,-0.9 1.3,-0.8 0.8,-4.4 2.3,1.8 0.7,-0.7 -1.9,-2.7 -6.5,-1 0,-0.5 -0.7,0.2 -0.7,-3.5 -1.9,-0.2 -1.1,-1.9 -3.1,-0.6 -2.9,2.5 -3.6,-0.1 -2.3,-1.2 -4.8,-1.2 -52.8,0 -0.4,-0.2 -0.2,0.2 -0.1,0 -0.4,-0.9 -2.7,-1.5 0.2,-0.7 -0.4,-0.1 0,0.1 0.3,0.2 -0.3,0.1 -0.2,-0.4 -0.5,-0.1 0,-0.1 -0.2,-0.2 -0.1,0.2 -0.6,-0.1 -0.1,0 -0.6,-0.1 0.5,0.1 0,0 -0.3,0 0.3,0.1 0.1,0 0.4,0.1 0.4,0.4 -0.1,0.1 0.3,0.3 0,0 1.2,1.6 2,1.6 -0.1,-0.5 0.5,0.3 0.5,0 -0.8,0.2 0.3,0.3 -0.5,0.7 -2.1,-0.6 -3.7,-2.1 -0.1,-0.5 0.1,-0.1 -0.3,-0.5 0,0 -0.1,-0.2 -1.9,-0.4 -1.2,-1.7 1,-0.3 2.6,0.8 0.1,-0.1 -0.2,-0.1 0.6,0 0.2,-0.2 -0.2,-0.2 -0.6,0.4 -2.3,-1.3 -0.3,-2.3 -0.3,0.8 -0.3,-0.3 0.2,-0.4 0.4,-0.1 0,0 0,-0.1 0.1,-0.2 -0.2,0.1 0,-0.1 0.2,0 -0.1,-0.3 -0.1,0.1 -0.2,-1.3 -1,-0.9 -0.5,1.2 -0.6,-0.9 0.1,-0.3 -0.3,0 0,-0.3 0.3,-0.2 0,0.4 0.1,-0.4 0.7,0.3 -0.2,-0.2 0.4,-2 -0.8,1 0.4,-0.1 -0.1,0.3 -0.4,0.2 -0.1,-0.2 -0.3,0.5 -2.2,-2.4 0.9,-1.9 0,-0.7 -0.1,-1.7 -3.4,-1.8 -3,-5 -3,-2.5 -1,-1.5 -1.7,0.6 -2,2 -0.4,-1 -3,-2.4 -3.5,-0.6 0,-29.2 3.6,0.5 3.6,1.9 2.6,0.1 0.1,-1.3 3.9,-0.7 1.1,0.3 5.4,-2.6 1.7,0.5 -4.7,1.7 -1.7,1.6 3.1,-1.8 0.6,1.1 1.1,-1.4 6.2,-2 0.9,1.8 2.3,1.4 1.8,-2.7 0.2,2.6 2.4,-0.5 0.4,-1.2 2.9,0.3 2.2,1.2 4.3,1.3 3.9,0.7 0.1,-0.6 3.4,1.5 0.2,1 -1.7,-0.1 -1.1,1.1 3.2,0.8 4.4,-0.1 2.3,-0.8 2.3,0.7 0.6,1.3 1.6,0.3 0.8,2.4 0.7,-1.9 -1.5,-1.9 4.5,-3.1 -3.8,1.6 -2.3,-0.4 1.1,-1.1 4.7,-0.9 0.9,1.8 1.6,1 2.2,0.1 3.5,1.1 1.6,-0.6 4.5,0.2 1.5,0.7 -2.2,-2.6 2.8,-0.3 0.8,1.4 1.8,-0.9 -1.1,2.7 2.2,1.9 -0.3,-3.8 1.2,0.1 2.4,-2.7 -2,0.3 0.6,-2.3 -3.6,-1.4 -0.7,-1.7 0.2,-3.3 2.4,-2.3 1.1,-0.2 -1,0.1 0,-1.8 -1.1,-1.2 0,-3.1 0.9,-1.4 3,-0.6 2.7,0.7 4,0.3 -3.2,3.9 -1,0.5 -3.4,-0.2 1.3,1.1 -1.2,1.6 -0.8,0.1 2.5,1.9 0.3,2.1 2.9,2.5 -2.5,1.5 2,0.7 2.6,2.1 0.3,2.1 1.2,-2.7 1.4,-0.6 1.9,1.7 -0.9,1.5 1.7,3.8 3.1,-3.1 0.5,-2.2 1.8,-1 -1.5,-0.8 0,-1.7 2.2,-0.3 0.9,0.2 0,-0.1 0.6,0.1 -0.1,0.1 1.9,0.4 2.4,1.5 -0.9,1 1.1,0.9 -2.7,0.6 2.7,3.3 -0.5,1.5 -3.5,2.1 -2,-2 1.3,2.5 -3,-0.3 -0.4,-0.9 -2.5,0.4 1.8,0.9 -2.9,2.6 -1.1,0 -3.3,-1.9 1.2,1.9 3.8,0.3 -1.8,3.2 -2,0.8 -1.8,-0.7 -0.4,1.6 -1.5,0.2 0,0.1 0.6,0.2 -0.1,0.1 -0.1,-0.2 -0.4,-0.1 0.6,1.5 -3.9,1.7 -3.2,4.8 -0.9,2.6 0.8,3.5 2.4,-0.1 1.4,3.6 -0.5,1.4 3.2,-0.9 4.1,1.1 2.5,2.2 5.7,2.2 4.4,0.5 0.3,3.3 -0.3,2.2 4.9,4.7 2.4,-3.1 -0.9,-1.8 -0.3,-2.9 -1.2,-1.3 3.8,-1.7 2.1,-2 0.3,-2.1 -1.1,-3.2 -2.8,-1.8 2.4,-3.4 -1.7,-3 1.2,-1.8 -1.2,-2.4 1.3,-0.9 5.2,1.3 2.1,-1 3.8,2.4 -0.2,0.9 4.6,1.7 -0.8,0.7 0.7,4.7 1.3,-0.1 2.1,2.3 3.6,-2.1 0.5,-2.5 1.3,-1.8 0.9,0.4 0.4,1.4 0.2,-0.4 0.2,0.3 -0.3,0.2 -0.1,-0.1 0.2,1 1.3,0.3 0.9,1.9 3,4.2 -1.1,1.3 4.1,4 4.8,1.7 -1.4,0.7 1.7,1.3 2.5,0.7 0.4,3.2 -2.6,2 -3.1,0.6 -2.4,2.2 -3.6,0.6 -1.2,-0.5 -7.8,0 -1.8,2.4 -3.2,1.4 -1.7,2.4 -2.7,2.5 -3.2,1.3 -3.3,2.9 -1,0.3 -1,0.9 -6.1,1.4 -1.6,1.3 1.4,0.1 0,0.2 z m -90.5,-17.9 0,0 0,0 z m 5.8,2.8 -0.1,-0.3 -0.2,0.1 0,0.1 z m -7.8,-7.2 0.3,-0.4 -1,0.4 -0.3,0.8 z m 57.5,-44.6 -0.4,0.1 0.1,0.3 0.3,-0.2 z m -54.8,52.4 0.3,0.1 0,-0.2 -0.1,-0.1 z m -0.2,-0.3 -0.1,-0.2 -0.2,0 0,0.2 z m 117.6,-39.5 0,2.5 -1.1,0.4 -2.5,-0.6 -1.9,-1.4 -0.2,1.1 3.2,2.7 -0.6,1 -4.4,-1.2 -2,-1.2 -4,-1.6 0.3,-1.2 -2.1,-0.8 -1.6,-2.4 -2.3,0.8 -2.2,-0.8 -1.7,1.3 -2.2,-0.5 -0.5,-1.8 1.3,-1.6 3.2,0.8 3,-1 1.4,0.2 -1.9,-2.2 2.9,-1.9 1.5,-1.7 -1.6,-3.2 -1.6,-0.3 -3.1,-2.3 -2.2,1.2 0,-1.2 1.9,-0.7 -4,-2 0,-1.2 -2.4,-0.5 0.3,1.5 -5.7,-0.9 -0.7,1.2 -7.9,-1.1 -4.6,-1.2 -1.7,-2.2 4.2,0.5 -1.4,-0.9 -3.3,-0.4 -0.5,-2.1 1,-3.2 1.2,-1.8 2.2,-1.6 2.1,-0.5 3,0.2 -3,3.6 0.5,3 3,2.6 -1.2,-3.6 1.9,0.6 -2.3,-1.9 1,-2.2 4.5,-1.9 2.5,0.1 2.4,3.6 -1.1,2.8 2,-1.9 1.7,1.7 0.9,-2 1.6,-0.6 4.6,0.9 -0.2,1.3 2,0.2 0,1.2 2.3,1.7 1.1,-1.4 2.6,1.4 -1.8,0.6 -0.1,0.4 0.6,-0.3 0.6,0.4 1.3,-0.6 -0.8,1.9 2.5,-1.1 3,1.1 2.4,2.9 -1.4,0.2 0.2,0.1 -0.4,0.3 0.4,0.1 0.4,-0.3 0.4,0.2 -0.5,0.2 0.7,0.1 0.8,1.1 -1.8,0.4 -0.7,0.8 -0.2,0 -0.4,-0.1 0.5,0.2 -0.4,0.5 2.8,0.6 0.6,0.8 0.2,-0.2 0.4,0 0,0.3 -0.6,-0.1 0.6,0.8 2.5,-0.4 2,2.5 0.2,0 0.4,-0.1 0.5,0.1 -0.1,0 0.8,0.1 -0.7,1.2 2.6,-0.4 1,2.1 -2.1,0.5 -0.1,1.7 -2,0.7 0.2,1.7 -1.9,-0.6 -4.4,-4.5 -2,0.2 1.5,1.5 -1.6,1.4 4.5,2.5 -0.2,0.8 2,1.6 0,0.2 0,0 0.1,0.4 0.3,0.3 z m -14.4,-23.2 -0.1,0.3 0.6,-0.2 -0.3,0.1 z m 8,4.1 -1.4,0.1 0.8,0.2 z m -5.8,64.5 -0.2,0 0.5,-0.4 0,0.2 z m -100.9,-5.5 0.3,0.4 0.4,0.2 -0.3,-0.1 z m 114.1,-2 4.3,1.4 -0.7,0.7 -2.6,-0.8 z m -116.5,-0.2 -0.2,-0.3 0.2,-0.1 0.2,0.3 z m -5.6,-3.7 -0.4,0 -0.1,-0.4 0.3,-0.2 z m 93.5,-1.6 -0.5,0.3 -0.6,0.2 0,-0.3 z m -99.5,0 -0.1,0.1 -0.1,0.2 0,-0.4 z m 5.4,0.2 -0.2,-0.2 0.2,-0.2 0.1,0 z m -0.1,-0.5 -0.1,0.2 -0.4,0 0.2,-0.2 z m -0.8,-0.7 0.1,0.4 -0.1,0.2 -0.2,-0.5 z m 0.3,-0.3 0.1,0.3 -0.1,0.2 -0.4,-0.4 z m -6,-0.3 0.4,0 0,0.2 -0.3,0.1 z m 6.3,0.9 -0.2,-0.6 0.2,-0.5 0.2,0.8 z m -1.8,-1.1 0.7,0.5 0,0.3 -0.3,-0.2 z m 2,0.5 0,-0.2 -0.1,-0.2 0.3,0 z m -2.5,-1.2 0.1,0.3 -0.2,0 -0.2,-0.4 z m 0.3,-0.2 0.2,0.4 -0.2,0 -0.2,-0.5 z m 91.9,-0.2 0.6,0.1 0.8,1.3 -2.6,-0.9 z m 3,0.2 0.1,0.1 -0.3,0.1 0.1,-0.3 z m -94,-0.5 -0.3,0.1 -0.1,-0.1 0.3,-0.5 z m -3.1,-0.3 0.1,-0.5 1.2,0.7 -0.1,0.6 z m 0.9,-0.4 -0.5,0 -0.1,-0.2 0.4,-0.2 z m 0.6,-0.1 0.9,0.8 -0.5,0.3 -1.4,-1.6 z m -1.7,-1.2 0.6,0.1 0.2,0.3 -0.7,0.4 z m -0.8,-1.3 0.7,0 0.1,0.6 -0.6,-0.2 z m 99.2,-0.8 -0.6,0.2 -0.1,-0.1 1.2,-0.2 z m -98,0.4 0,-0.1 0.5,-0.6 -0.1,0.5 z m 98.6,-3.5 0.4,-1 0.2,0 -0.1,0.7 z m -1.2,-1.5 0,0.5 -0.7,0.6 0.6,-0.6 z m -0.5,-0.7 -0.2,0.1 0.2,-0.3 0.2,0.3 z m 23.6,-3.9 -0.3,-0.1 0.1,-0.2 0.1,0 z m -2.9,-2 -0.6,0.1 0,-0.5 0.5,0 z m -21.7,-1.9 0.3,-0.2 0.1,0.2 -0.2,0.1 z m 0.7,-0.6 0.2,0.1 -0.2,0.2 -0.3,0.1 z m 29.3,-2 0.5,0.8 -0.5,-0.2 -0.2,-0.3 z m -6.5,0 0.5,0.3 -0.3,0.5 -0.8,0 z m -19.4,-0.8 -0.2,0.2 -0.7,0.2 0.2,-0.2 z m 25.7,-2.3 -0.1,0.9 -1.2,-0.8 0.8,-0.3 z m -1.9,-0.6 0.2,0.3 -0.5,-0.2 0.3,-0.2 z m -51.8,-0.3 -0.4,0.3 -0.3,-0.2 0.4,0 z m 53.2,0 0.5,0.5 -0.7,0 -0.2,-0.3 z m -27.5,-1.3 0.2,1.2 -0.8,1.2 -0.9,-1.7 z m -24.8,0 0.1,-0.1 0.4,0 -0.2,0.2 z m 53,-0.5 0.6,0 -0.4,0.5 -0.6,-0.1 z m -25.1,0 -0.5,-0.1 0.9,0 -0.3,0.1 z m 24.8,0 -0.5,0 0.2,-0.1 0.2,-0.1 z m -18.4,-0.5 0.8,0.1 0.2,0.2 -0.8,-0.1 z m 7,-0.4 1.2,0.8 -1.1,0.1 -0.9,-1 z m -21.6,-0.4 0.3,0.9 -2.3,1.5 -1.5,-0.9 1.2,-1.3 z m 29.3,0.1 0,0.1 -0.5,-0.5 0.2,0.1 z m -22.3,-1.6 1.4,0.1 0.3,0.8 -0.7,0.3 z m 27.3,-0.4 -0.2,0.4 0,0.5 -0.4,-0.9 z m -24.8,-0.2 1.1,0.6 -0.8,0.2 -0.9,-0.5 z m 24.7,-0.3 -0.2,0 0,-0.2 0.3,0.1 z m -25.5,-0.7 -0.4,0.2 -0.4,-0.1 0,-0.1 z m 24.1,-0.6 -0.1,0 -0.1,-0.4 0.3,0.2 z m -16.4,-0.9 -0.1,0.6 -0.1,-0.1 -0.1,-0.6 z m 15.8,-0.7 0.1,0.3 -0.8,0.4 0.4,-0.6 z m 5.4,-3.2 0.4,0 0.2,0.3 -0.6,-0.1 z m -39.9,-0.3 -0.4,0.1 -0.1,-0.2 0.4,0 z m -3.4,-0.7 0.6,0.6 0.1,1 -0.8,-0.7 z m 1.4,-0.2 1.1,0.5 0.7,1.1 -1.4,-0.5 z m 2.3,-0.6 0.4,0.1 -0.1,0.3 -0.6,-0.3 z m 39.7,-2.8 0.1,0 -0.9,0.5 0.3,-0.5 z m -86.1,0.3 -0.3,0 -0.2,-0.3 0.1,-0.1 z m -1,-1 -0.1,0.3 -0.3,-0.4 0.4,-0.2 z m -1,-0.5 0.2,0 -0.1,0.3 -0.3,-0.3 z m 85.4,0.1 -0.4,0 0.1,-0.4 0.3,0.3 z m -84.5,-0.1 -0.4,0 0.1,-0.4 0.2,0 z m -10.1,-1.2 -0.4,0 0.9,-0.1 0,0.1 z m 9.9,0.1 -0.4,0 0.1,-0.2 0.2,-0.1 z m -2.1,-0.3 0.5,0.1 -0.1,0.2 -0.4,-0.2 z m -0.4,-0.2 0.1,0.2 -0.3,-0.2 0,-0.2 z m -1,-0.4 0.5,-0.2 -0.6,0.4 -0.6,0.2 z m 68.2,0.3 1.6,0.3 0,0.7 -1.9,-0.1 z m -23.2,0.4 -0.4,0.7 -0.7,-0.6 0.4,-1.3 z m -48.4,-0.9 -0.2,0 0.1,-0.3 0.3,0 z m 69,-0.3 0.9,0.2 0.2,2.3 -1.6,1 -2.1,0 -0.7,-1.5 1.2,-1.8 z m -6.5,0.4 -0.3,-0.1 0,-0.4 0.7,0.2 z m -5.9,-0.6 0.2,0.1 -0.2,0.1 -0.3,-0.2 z m 15.2,0.4 -0.5,-0.6 0.3,0 0.3,0.3 z m -70.1,-1.1 0,0.1 0.1,0.2 -0.7,0 z m 11.9,0.6 -1,-0.5 0.8,-0.1 0.4,0.2 z m 49.7,-0.8 -0.1,0.5 -0.6,0 0.5,-0.4 z m 7.8,0.3 -0.5,0 -0.2,-0.3 0.2,-0.1 z m -0.7,0 0.1,0.7 -1.1,-0.6 0.3,-0.7 z m -51.5,-0.8 -0.1,0.7 -1,-0.4 0.6,-0.4 z m 3.1,-0.4 -0.5,0.6 -0.4,-0.1 0,-0.8 z m 0.3,-0.1 -0.4,-0.2 0.2,-0.5 0.2,0.2 z m -69,-0.6 0.1,0.1 -0.4,-0.1 0,-0.2 z m 65.8,0.1 0.1,-0.5 0.2,0.1 -0.1,0.3 z m 21.3,-0.9 0.2,0.4 -0.3,0.1 -0.1,-0.5 z m 23.2,-0.1 0,0.5 -0.8,1.1 -1.1,-0.1 z m -109.4,-0.7 0.3,-0.2 -0.3,0.7 -0.5,-0.2 z m 103.1,0.5 0.4,0.1 0.1,0.2 -0.8,-0.2 z m -16.2,0.2 -0.3,0.5 -0.3,-0.3 0.3,-0.3 z m 25.2,-0.1 0.7,0.1 -0.9,0.9 -0.5,-0.5 z m -46.4,-0.5 0.6,0.3 -0.5,0.3 -0.2,-0.2 z m 8.8,0 1,0 0,0.7 -0.8,-0.4 z m 1.9,-0.2 0.6,0.3 -0.7,0.7 0,-0.8 z m -82.7,0.1 -0.5,0.2 -0.2,-0.2 0.2,-0.2 z m 116.6,-0.3 -1.1,0.7 -0.6,-0.1 1.1,-0.8 z m -3.3,-0.5 0.3,0.7 -2.3,-0.2 1,-0.4 z m -5.4,0.2 -0.1,0.1 -0.5,-0.2 0.3,-0.1 z m -17.8,-0.2 0.1,-0.2 0.5,0.2 -0.1,0.3 z m -10.6,-0.3 -0.2,0 -0.1,-0.1 0.3,0 z m 19.8,-0.7 0.8,0 -0.4,0.5 -1.1,-0.5 z m -47.2,-0.7 -0.9,0.1 -0.3,-0.3 0.8,0.2 z m -9.2,-0.8 0.6,0 -0.9,0.2 -0.3,-0.2 z m -0.8,0 -0.7,0 -0.1,-0.1 0.1,-0.1 z m -21.5,-0.2 -0.3,0 -0.2,0.2 0.3,-0.4 z m 52.5,-0.3 0.4,0 0.5,0.8 -0.8,-0.3 z m 52.7,-2.6 0.7,-0.1 -0.4,0.5 -0.5,-0.2 z m 0.8,-0.4 -0.5,0 0.2,-0.4 0.3,0 z m -61,-6.4 -1.3,1.7 -2.3,-2.1 -0.2,-1.1 2.7,-0.1 z m 0.4,-11.5 0.7,-1.4 2.5,1.4 0.7,1.2 -2.6,0.5 z m 27,-5.3 1.2,1.2 -0.8,0.5 -2.1,-0.8 z m -28.2,0.9 1.1,1.1 -1.5,-0.1 -1.6,-2.3 z m 37.2,91.2 -0.2,0 -0.5,0 0.2,-0.2 z m -4.1,-2.7 0.2,0.2 -0.7,0 0.1,-0.3 z m 10.5,6.8 0.6,0.1 0.2,1.1 -2.7,-0.8 z m -2,0.2 -0.1,0.2 -0.3,-0.1 0.2,-0.2 z m -1.4,-0.8 0.5,0.2 -0.4,0.3 -0.2,-0.3 z m 14.7,5 -0.3,0.1 0.1,-0.2 0.5,0 z m -36.9,-101.2 4.6,0.2 -0.5,1.1 -4.8,-0.1 z m 68.6,96.9 -2.3,1.3 -1,-1.4 1.8,-2.4 0.3,1.8 z m -4.3,-3 0.1,1.9 -1.1,1.2 -1.3,-1.1 2.2,-0.2 z m -134.6,-14.3 -0.4,-0.5 1.4,-0.3 0.2,1.5 z m -1.3,-3.2 2.6,0.1 -0.7,2.3 -1.6,-0.5 z m 102.4,-5 -0.9,0.4 1.4,-2 0.4,0.6 z m -29,-63.2 2.3,1.8 -0.2,2.4 -2.9,-0.2 -2.9,-1.1 0.8,-1.8 z m -28.2,-10.5 -3.3,-0.2 -3.7,0.4 -0.3,-0.5 5.4,-1.5 1.7,0.7 z m 25.9,-0.7 2,0.6 -0.1,1 -3.8,1.4 -1.7,-1.1 -1.2,-1.9 0.5,-1.4 3.8,0.9 z m 55,101.8 -0.6,-0.2 0.1,-0.8 -0.5,-0.1 -0.3,-0.2 0,-3.2 -2.7,-0.9 -1.5,1.8 -0.5,2 -2.3,2 -6.2,0.1 2.3,-1 0.7,-1.5 5,-2.3 2.9,-3 5.4,-2.4 2.4,0 1.4,0.8 -0.2,1.1 -2.1,1.1 -2.1,-0.3 1.7,1.1 2.2,-0.5 -1.2,1.6 2,2.8 3.1,1 1,-0.6 1.8,1.3 -4,1.5 -1.5,0 -3.3,2.9 -1.2,-1.5 0.4,-1.1 2.2,-1.4 0.6,-1.8 -2.6,1.7 z m -12.4,-1 0.3,-0.2 -0.1,0.4 -0.1,0.2 -0.8,0 0.5,-0.3 -0.2,0.1 0.2,-0.3 0.3,-0.1 z m -96.9,-9.5 -0.8,-0.5 0.6,0.1 0.2,0.4 0,0 z m 7.2,-80.5 -0.7,-1.4 -0.9,1.1 -2.1,-0.1 -0.8,-1.2 2.5,-0.8 5.2,-3.7 4.6,-0.8 1.9,1 -1.6,0.5 0.7,2 -2.3,0.7 -0.7,1.7 -2.2,2.3 -1.5,-0.4 3.3,-2 -0.1,-2.6 -1.5,0.2 -1.1,2.5 z m 127.6,85 1.8,-1 0.5,1.4 -0.6,1.8 -2.4,-0.3 0.8,-1.2 -2.2,0.2 -1.5,1.1 0.1,-2 -6.7,0.3 -0.5,-0.8 1.4,-1.6 3.8,-6.9 2.1,0.9 -2.1,2.3 2.4,0.3 -0.4,1.4 3,-0.9 1.2,1.2 -0.8,1.7 1.6,0.3 z m -60.8,-43.2 -3,0.3 1.8,-1.5 -0.4,-1.6 0.9,-3.7 0.9,-0.5 1.3,2.2 0.4,-0.8 4.3,2.3 1.6,1.6 2.5,1.3 -1.5,1.1 -4.9,-2 -0.2,1 -3.1,2 z m -23.8,-20 2.2,1.3 2,2.1 1.2,0.1 -2.5,1.3 -1.8,-0.3 -4.1,-1.6 2.3,-1.1 z m -11.4,-3 4.7,2.2 1.2,1.1 -2.9,-0.1 -0.8,1.5 1.5,-0.3 0.3,1.4 -2.9,0.9 -5.8,-1.3 -0.1,-1.1 -1.6,1.6 -3.1,1 -8.2,0.9 -0.9,-2.5 -4.4,-0.3 -2.8,-2.4 0.9,-0.4 5.4,-0.7 5.1,0.2 -1.3,-0.8 -3.5,-0.8 -3.9,0.6 -3,-0.2 -1.5,-1.5 4.4,-1.2 0.5,-0.6 -4.5,0.6 0.2,-1 -1.9,0.1 0,-1 1.8,-1.1 -0.9,-0.8 2.4,-1.7 5.3,-1.8 1.2,0.9 0.4,2 1.4,-1.5 3.4,1.1 -0.8,1.5 2,-1.1 1.6,0.4 -1.8,-1.9 1.2,0.1 2.8,1.5 1.7,3.4 0.9,-1 -1,-0.8 -0.6,-2.3 0.2,-2.9 1.6,1.3 1.3,-0.1 2.1,1.6 0.2,1.2 1.8,3.2 -0.5,1.8 z m 49.5,-10.5 3.6,2.1 -0.1,1 -7.1,-0.1 -1.5,-1.6 -0.1,-1.7 z m -35.2,6.4 -3.1,0.9 -1.2,1.4 -3.6,-3.3 -2.3,-0.5 -1.8,-1.8 1.6,-1 1.2,1.4 1.7,-0.1 0.4,-1.4 -2.7,-1.4 1,-0.9 5.6,-1.3 0.8,-1.5 -0.5,2.1 1.5,0.3 0.2,1.7 -2.3,1.3 2.1,0.3 0.8,-0.8 1,2.7 z m -48,-9.7 2.7,1 4,0 2.3,0.7 3,2.3 -7.4,3.1 -1.9,1.7 -0.9,2.4 -4.7,1.4 -1.9,-2.1 -3.5,-1 2,-4 2.1,-2.6 -1.9,-2.2 z m 40.7,-1.8 -0.8,-1.6 1.8,-0.9 -5.4,0.6 -1.4,-1 2.2,-0.9 0.7,-1.9 3.9,2.1 -2.6,-2.5 0.4,-0.7 6.3,1 0.5,4 -1.2,1.8 z m -18.6,-3.4 1.4,-0.8 -2.1,-0.8 3.1,-2.3 0.5,3.3 2.8,0.6 0.9,-0.7 2.1,0.7 0,1.3 3.7,1.5 -2,0.5 -2,-1.2 -0.7,1.1 -4.6,0.6 -0.8,-0.6 -5.4,2.2 -3.9,0.2 -1.4,-1 3.1,-1.1 2,0 1.6,-1 -5.8,0.7 -0.2,-1.2 -1.7,1.6 -4.9,-0.9 3.1,-4.5 1.9,-0.7 0,-1 0.9,0.2 0.9,2.1 1.8,-0.3 3,1.7 0.4,1.2 4.5,0.2 0.1,-0.9 z m 58.7,3.9 -1.5,1 -3.1,0.6 -3.3,-0.4 -7.9,0.4 -2.3,-0.8 -2.1,0.5 -4,-0.9 -0.9,-1.7 0.7,-2.5 -1.9,-2 -1.8,0.4 -3.4,-0.5 -1.9,-2.4 2,-0.3 4,0.6 1.2,1.2 3.1,-0.3 4,2 -1.6,0.5 3.8,2.1 4.2,0 4.4,-1.2 5,0.2 2.8,1.2 0,1.2 -1.5,0.5 z m -59.1,-10.4 -3.6,0.8 -2.1,-0.9 -0.7,-1.2 -1.1,0.5 -1.8,-1.1 1.5,-0.5 2.1,0.8 4.8,-0.9 2,0.6 z m 12.5,-7.8 2.5,1.5 1.5,-0.3 4,2.1 -0.6,0.6 1.6,2.3 -4.2,0.2 0.3,-1.5 -3.3,0 0.1,-0.7 -3.3,0.4 -1.1,-0.9 2.8,0 -1,-2.1 -2.8,-0.1 0.3,-1.4 z m 24.9,-5.3 2.7,0.2 0.5,1.5 1.1,-1.1 1.5,0.1 1.4,2.2 -0.4,1.5 3.1,0 1.2,1.2 -3,1 -4.8,3.8 -5.8,-0.2 -4.3,-3.2 2,-0.9 2.6,0.1 -1.4,-1.3 -2.6,0.9 -3.5,-0.7 -1.8,-3.2 3.6,0.4 -3.3,-1 1,-1.3 1.6,-0.2 -0.6,-0.8 1.3,-1.2 3.2,-0.1 -2.4,-0.8 2.2,-0.5 2.8,1 z m -64.2,100.3 0.2,0.1 -0.1,0.1 -0.1,-0.2 0,0 z",ST:"m 348.93,217.59 -0.3,-0.3 0.4,-0.3 0.2,0.3 z",CV:"m 290.83,188.39 0.5,0.4 0,0.4 -0.5,-0.2 z",DM:"m 218.73,187.89 0.3,0.3 -0.2,0.4 -0.2,-0.5 z",NL:"m 346.93,104.89 -0.7,0.2 0.1,-0.2 0.8,-0.1 z m -131.3,78.2 -0.1,0 0,-0.1 z m 127.1,-72.9 0.8,0 0.9,0 -0.8,0.4 z m 7.4,-4.8 -0.4,2.6 -1.2,1 -0.7,2.7 -1.9,-1.8 -1.5,0.3 -0.8,-0.6 2.4,-3.5 2.6,-1.6 z",JM:"m 188.03,182.19 2.4,1.1 -2,0.4 -2.2,-1.1 z",WS:"m 6.43,243.59 0.1,0.6 -0.5,0 -0.5,-0.6 z",OM:"m 444.03,168.69 -0.1,0.1 0,-0.2 0.3,0 z m -0.4,-1.7 0.6,-0.6 -0.2,1.5 -0.2,-0.1 z m -7.8,14.2 5.7,-2 1.3,-3.9 -0.9,-1.5 1.2,-4.4 1.1,-0.2 1.5,2.1 3.1,0.8 2,2.7 -4.1,5 0.3,1.3 -2.2,0.9 -0.6,1.3 -1.8,0.2 -0.8,1.6 -3.7,0.7 -0.7,-1.3 z",VC:"m 219.13,192.79 -0.1,-0.3 0.2,-0.3 0,0.3 z",TR:"m 386.03,136.89 -0.4,0.2 -0.2,-0.1 0.5,-0.3 z m 3.9,-4.1 2.1,1.7 -3,0.6 -0.7,0.8 -2.2,-0.3 1.2,-1.5 -0.6,-0.7 1.4,-0.8 z m 32.2,5.3 -1.6,0.6 0.5,3.1 1,1.8 -3.9,-0.4 -0.7,0.5 -0.3,-0.5 -4.7,1.3 -2.9,-0.3 -3.1,0.1 -1.4,2 0.2,-2.2 -1.3,0.8 -1.5,-0.4 -3.3,1.6 -1.5,-1.2 -2.6,-0.7 -0.5,1.4 -1.4,0.3 -2.6,-2.1 -2.2,-0.6 0.1,-1.4 -1.9,-0.7 1.6,-1.3 -1.2,-0.8 -0.1,-0.2 -0.5,-0.3 1.2,-2.1 4.6,-0.1 0.1,-1.8 3.9,0.3 4,-2.1 5,0.6 3,1.6 3.7,-0.1 1.3,0.4 2.7,-1.3 2.4,-0.2 1.2,1.1 0.5,2.2 2.1,1 z", -BD:"m 512.93,177.09 -1.5,-3.5 -2.5,2 -2.1,-0.6 -1,-3 0.4,-1.4 -1.4,-0.7 1.7,-1 -1.6,-1.5 0.7,-1.2 2.7,1 1,1.7 3.2,-0.1 0.8,0.5 -2.5,2.7 0.8,1.3 1.1,-1.5 0.8,3.5 0.1,1.3 z",LC:"m 219.63,191.49 -0.3,-0.3 0.3,-0.4 0.1,0.3 z",NR:"m 655.93,218.79 0,0 -0.1,-0.1 0.1,0 z",NO:"m 376.13,55.29 -0.4,0.2 -0.4,-0.2 0.4,-0.4 z m -1.5,0.3 -0.5,-0.2 -0.4,-0.6 1.2,0.5 z m 5.1,-1.2 0.6,0.4 -1.1,-0.1 0.1,-0.3 z m 1.6,-0.8 0.3,0.5 -1.1,0.6 -0.5,-0.4 z m 0.6,-0.4 0.6,0.4 -0.8,0.3 -0.2,-0.6 z m -0.8,-0.4 -0.6,0.9 -1.8,0.3 0.7,-0.8 z m 1.3,-0.6 0,0.3 -0.3,-0.1 0.1,-0.3 z m 3,-0.5 0.6,0.5 -0.8,0.3 -0.5,-0.4 z m -8,-28.6 1.5,1.4 -2.3,0.2 -1.7,-1.2 z m 10.1,-0.2 -0.6,-0.3 0.3,-0.4 0.5,0.4 z m 4.4,-1.2 -1.8,0.4 -0.5,-0.1 1.1,-0.5 z m -16.9,-0.9 1.2,0.3 -0.9,0.3 -0.6,-0.2 z m -0.1,-1 -0.9,0.1 -0.1,-0.2 0.1,-0.1 z m 25.8,-3.7 -1.6,0.4 -2.3,0.2 -0.2,-0.2 z m -17.7,-0.8 -0.5,0.1 0.1,-0.3 0,-0.1 z m -0.4,-0.5 0.2,0.1 -0.2,0.1 -0.4,-0.1 z m -8.1,0.1 -0.2,-0.1 0.2,-0.1 0.3,0.1 z m 2.6,-0.9 -0.4,0.1 -0.2,-0.1 0.4,-0.1 z m -1,0.2 0,-0.3 -0.5,-0.3 0.8,0.2 z m -4.7,43 1.2,0 2.3,-1.3 0.6,0.6 0.2,-0.1 0.1,0 0.1,-0.2 0.3,-0.3 -0.2,-0.2 0.4,-0.1 0.1,0 1.1,-1 0.2,0 0,0.1 0.1,0.1 0,-0.1 2.3,0.3 3.2,-2 2.5,-0.3 -1.6,1.3 0.1,1.4 3,-3 -0.4,2 2.1,-2.5 4.6,1.3 2.1,1.5 -1.8,0.8 -2.7,-0.4 4,1.3 -1.7,1.5 -1.9,1.1 0.8,-1.5 -2.8,-2 -3.6,1.3 -0.8,2.7 -1.4,1.1 -1.8,-0.9 -2.9,0.4 -1.4,-1.9 -2,0.8 -1.3,2.3 -3.5,-0.6 -0.5,1.8 -1.1,-0.4 -2.2,2.2 0.5,1.2 -3.6,3 0,2.5 -1.7,2.3 0.6,1.8 -2.4,0.2 -1.4,2 0.7,3 -0.3,1.6 1.3,1.1 -1.2,1.1 0.5,2.5 -1.2,0.7 -0.8,2.5 -1.9,-0.7 -3.7,2.8 -1.8,0.6 -2,-0.2 -2.5,-2.9 0.8,-2.6 -1.9,-2.9 1.3,-1.5 -1,-0.8 1.5,-1.5 2.6,-1.1 -0.1,-0.6 3.6,-1.3 -1.9,-0.2 1.9,-1.2 2.5,1.5 2.6,-1.5 -2.9,0.9 -0.7,-0.8 3.2,-3.2 1.5,-0.8 0.3,-1.2 2.7,-4.7 3.8,-2.7 -1.5,-0.2 3.2,-1.3 -0.7,-0.6 2.2,-1.1 -0.8,-1.1 1,-1.6 1.8,-0.1 1.4,-1 -0.1,-1 0.9,1 z m 22.4,-0.9 -0.3,-0.3 -0.3,0.5 0.7,-0.2 z m -9.5,-24.6 0,-0.2 1,-0.7 -1,0.9 0,0 z m -20.5,28.4 2,-0.6 1.3,-1.5 0.9,2.1 -1.8,1.3 -4.3,0.8 0.2,-0.6 3.4,-0.7 z m 17,-31.5 -1.3,-0.8 -3.2,0.1 1.4,-2 -1.4,-0.7 3.9,-0.7 1.3,1.6 1.5,0.2 z m -14.5,-10.2 1.6,-1.6 4.5,2.7 0.1,1.2 5,1.3 -4.9,1.6 -1.5,4.1 -0.9,0.1 -1.7,3.6 -4.7,-2.5 -0.9,-1.4 5.5,-1.4 -5.9,0.4 -0.2,-1.2 2.8,-0.2 1.4,-1 -1.9,-1.6 -0.1,1.4 -3.3,0.8 -1.9,-1.7 0.3,1.7 -2.1,-1 -1.2,-1.9 1.7,-0.3 -1.2,-2.5 0.6,-0.6 2.1,0.1 3.2,-0.9 0.2,1.4 1.2,-1.1 1.5,0.9 2,2.9 z m 15.5,-2.7 5.8,0.6 0.7,1.4 -2.3,1.5 -3.7,1.4 -2.1,-0.2 -0.1,-0.8 -4,0.2 -2.2,-1.1 4.2,-0.4 0.1,-0.5 -6,0.5 0.1,-1.4 -1.9,-0.4 0.6,-0.7 2.3,0.8 2,-1.4 1,0.9 1.8,-0.3 1,1.2 0.7,-2.2 0.5,1.5 z m 2.5,16 -0.2,0.2 0.1,-0.2 0.1,0 0,0 z",KN:"m 216.43,184.69 -0.5,-0.3 0.1,-0.1 0.2,0.2 z",BH:"m 432.93,166.69 0.3,0.1 -0.1,0.8 -0.2,-0.4 z",TO:"m 1.43,258.89 -0.1,0.1 -0.7,-0.3 0.4,-0.1 z",FI:"m 375.83,86.59 -0.1,0.3 -0.6,0.1 0.3,-0.2 z m -0.8,0.1 0.1,-0.1 -0.2,0.4 -0.3,-0.2 z m 0.3,-0.5 -0.6,0.5 -0.9,-0.5 0.9,-0.3 z m 2.3,0.1 0,0.2 0.7,-0.1 -0.8,0.3 z m 1.6,0.7 0.1,-0.6 0.7,0.2 -0.6,0.7 z m -2.2,-1.7 0.1,0.3 -0.1,0.3 0,-0.4 z m 0,-8.1 0.2,0.3 -0.3,0.2 -0.2,-0.3 z m 6.9,-5.4 -0.5,0.3 -0.1,-0.2 0.2,-0.1 z m -5.9,13.9 -0.3,-0.1 -0.8,-4.4 0.5,-3.7 1.7,-0.3 4.6,-4.7 0.9,0.1 0.2,-2.2 -2.3,-0.9 -1,-2 0.7,-1.2 -1.1,-2.2 0.4,-1.6 -5.7,-3.5 2,-0.8 1.4,1.9 2.9,-0.4 1.8,0.9 1.4,-1.1 0.8,-2.7 3.6,-1.3 2.8,2 -0.8,1.5 -1,1.7 0.5,1 2.5,1.8 -1.7,2.7 1.5,2.3 -0.6,3.6 1.9,3 -1.1,0.8 3,2.5 -0.6,1.2 -3.9,3.8 -2.7,2 -7.7,1.6 -2.6,-0.9 0.1,-0.1 -0.3,0 0,0 -0.8,-0.2 0.2,0.1 -0.1,0.2 -0.3,-0.3 z",ID:"m 593.33,228.59 1,0 -1.1,2.3 -0.1,-1.6 -1.9,-1.3 z m -51.2,-5.5 -1.9,0.6 -1.4,-1.8 0.5,-1.1 1.1,2.5 z m 19.2,10.6 2.9,-0.2 0,0.7 -3.9,0.9 -2.2,-0.5 1,-1.2 z m 20.3,-20.3 -0.2,1.9 1.6,2 -1.7,-0.4 -0.5,3.4 -1.2,-2 1.1,-0.1 -0.5,-2.7 z m -7.9,22.2 0.5,0.3 0.3,-0.6 0.3,-0.1 0.6,-0.3 0.1,0.4 0.2,0.6 -1.1,1.2 -1.9,0.5 z m -11.7,-25.7 -0.4,0.3 0,-0.4 z m 44.2,12.8 0,8.2 0,4.2 -1.8,-1.9 -4.6,0.6 0.7,-1.5 1.6,-0.6 -2,-3.9 -3.5,-1.5 -1.5,-0.1 -3,-1.8 -1.4,1.2 -1.3,-2.7 3.4,-0.6 -2.5,-0.1 -3.5,-1.9 -1.1,-2.3 1.9,1.3 2.8,-0.8 2.4,0.6 0.3,2.8 1.6,2.2 2.5,-1.5 -0.2,-1.7 3.2,-0.3 3.9,1.7 z m -39.3,14.7 -2.9,-1.4 1.4,-0.4 1,-2 4,0.6 1.3,-0.8 5.4,-0.4 -3.3,1.1 -0.5,-0.5 -3.9,1.1 -3.5,-0.1 1.7,2.2 z m -23.2,-4.7 -3.5,-0.8 -2,-1.2 1.1,-1.7 4.4,0.7 0.5,0.9 3.6,0.4 0.9,-1 2.2,0.9 6,-0.1 0,3.8 -3.8,-1 -1.1,0.3 -3.7,-0.5 -2.6,-0.9 z m 37.9,-9.1 -2.7,1.5 -1.4,-0.9 -0.1,-1.9 0.3,1.4 1.9,0.5 1.7,-0.9 3,-0.2 2,0.6 0.4,1.4 z m -10.2,5 -1.6,-0.4 1.8,-1.9 -2.7,0.3 0.2,-1.1 -2.3,-1.5 -0.2,4.3 -1.8,-0.3 0.5,-2 -1.6,-3.2 1.1,-1.3 1.3,-5.1 1.7,-1.2 1.3,0.5 4.4,0.5 2.3,-1.8 -1.2,2.5 -8,0.1 -0.6,1.2 1.3,2.2 1.9,-1.7 3.3,0.3 -0.2,2.1 -1.1,-1.2 -2.2,1.5 1.8,2.4 1,2.3 z m -10,-18.7 -0.4,1.6 1.4,1.9 -0.5,0.8 2.2,1.6 -2.4,0.6 -0.6,2.4 -1.6,1.7 0,1.4 -1.2,2.7 -2.6,1.1 -0.7,-1.5 -2.3,-0.4 -2.4,0.7 -0.1,-1.5 -2.8,0.5 -0.6,-3.6 -0.9,0.3 -1.2,-4 1.5,-2.4 1.7,2.3 4.7,-1.3 2.9,0.2 1.8,-3 0.8,-2.6 z m -37,-0.1 2.9,1.9 2.3,2.5 1.3,-0.5 4,3.6 -0.7,1.9 1.9,0.5 0.7,2.6 1.7,0 0.8,1.7 -0.4,4.5 -2.1,0.5 -6,-5.1 -1.5,-2 -1,-2.6 -1.8,-2 -1.8,0.5 1.6,3.3 -0.7,-0.1 -1.1,-3.2 1.5,-1.2 -1.1,-2.5 -2.3,-0.2 1.2,2 -0.5,0.8 -1,-2.9 -1.4,-0.5 1.7,0.3 0.5,-1.3 -4.1,-3.7 -0.3,-1.9 2.2,1.1 2,0 z",MU:"m 446.83,256.49 -0.1,0.8 -0.6,0 0.3,-0.9 z",SE:"m 371.43,89.89 0,0 0.1,-0.3 0.2,-0.1 z m 7.4,-19.2 0,-0.4 0.3,0.2 0,0.2 z m 3.7,-1.2 -4.4,0.9 -1.3,2.7 0.8,0.7 -1.5,1.7 -3.4,2.1 -2.3,2.1 -1.4,3.2 0.4,1.9 1.2,0.4 2.2,2.5 -1.2,1.7 -3.3,1.5 -0.6,2 0.6,2.7 0.7,-1.2 1.9,0.2 1.3,-1.8 -0.1,1.9 -3.1,0 -1.2,2.7 -3.4,0.3 -1,2 -2.3,0 -1.2,-4.1 -1.5,-2.9 0.2,0 0.2,-0.3 -0.5,0.1 0,0.2 -0.5,-1.1 0.4,-1.8 0.8,-2.5 1.2,-0.7 -0.5,-2.5 1.2,-1.1 -1.3,-1.1 0.3,-1.6 -0.7,-3 1.4,-2 2.4,-0.2 -0.6,-1.8 1.7,-2.3 0,-2.5 3.6,-3 -0.5,-1.2 2.2,-2.2 1.1,0.4 0.5,-1.8 3.5,0.6 1.3,-2.3 5.7,3.5 -0.4,1.6 1.1,2.2 -0.7,1.2 z m -23.7,22.4 -0.6,0.2 0.1,0.3 0.6,-0.2 z",TT:"m 219.73,197.09 -0.2,1.3 -0.9,-0.3 -0.4,-0.8 z",MY:"m 528.33,207.39 0,0.4 -0.2,-0.1 0,-0.3 z m 33.7,2.5 -0.4,-0.1 0.1,0 -0.3,0.1 -3.3,-0.5 -0.8,2.6 -1.8,3 -2.9,-0.2 -4.7,1.3 -1.7,-2.3 2.6,1 0.6,-1.6 0.2,0 0,-0.3 0,-0.2 3,-0.9 1.9,-2.8 1.2,1.1 0.7,-1.6 0.1,-0.1 0,0.2 0.6,1 -0.4,-1.2 1.9,-2.3 2.2,-1 3.8,2.8 -2.1,0.6 0.8,1 -1.4,0.3 z m -34,-4.4 1.8,0.4 0.1,1.2 1.8,-1.2 2.6,2.7 0,3.6 1.6,3 -1.7,-0.4 -4,-2.5 -1.1,-1.9 z",PA:"m 187.13,203.99 -1.2,-2.6 -2,-0.7 -1.7,1.7 0.9,1.2 -3.4,0.4 0.1,-1.8 -2.2,0.3 -0.3,-0.6 0,-0.1 0,0 0,0 0,0 0.9,-2.3 0.9,1.2 2,0.3 2.7,-1.6 2.3,0.4 2,1.4 0.4,1.4 z",PW:"m 593.83,203.79 0,-0.2 0.1,-0.3 0.2,0 z",TV:"m 679.43,233.99 0,0 0,-0.1 0,0.1 z",MH:"m 663.83,204.19 0.3,0.1 0.1,0 -0.1,0 z",CL:"m 195.93,330.49 2.3,1.1 -1.4,0.9 -1.8,-1.9 z m -3.3,-14 1,2.1 0.1,3.2 -2.2,-0.8 1.3,-0.9 -1.3,-1 0.1,-1.9 z m 2.9,-12.8 -0.4,2.3 -2,0.7 1.1,-1.6 0.3,-2.5 z m 9.4,24.9 0,5.6 -0.2,0 0.2,0.1 -0.1,0.2 -2.5,-0.3 -1.1,1.1 -1.4,-2.5 1.6,-1.8 0.2,2 2.6,0.3 -2.1,-0.9 -0.6,-2.8 1.9,-1.5 z m -3.4,-75.6 0.8,-0.1 0.9,-1.5 1,2.8 1,1 -0.6,2 1.1,1.7 0.6,3 1.3,0 -0.3,2.4 -2.3,1.6 0.5,4.3 -1,0.5 -1.6,2.6 -1.8,6.6 1.6,3.8 -1.2,3.9 0,1.9 -1.2,1 -0.3,2.6 0.6,2.2 -1,0.5 -1.1,4.1 0.4,3.1 -0.8,2.1 1,2.1 -0.8,2 1.4,1.3 -1.1,4.6 -1.2,1.7 0.5,1 -2.5,3 0.8,3 1.6,-0.3 -0.2,2.3 1,1.1 3.7,0.1 2.9,0.9 -1.3,-0.4 -3,1.4 -0.6,2.7 -4.2,-1.4 0.5,-1.1 -2.2,-0.3 -0.6,-1.5 1.4,0.3 -0.3,-2.5 -2.4,-1.2 1.6,-0.9 -0.3,-4.5 -0.6,-2.2 0.9,-2.3 -2.2,-0.3 1.8,-2.9 0.9,1.4 1.5,-1.7 -0.3,-1.1 -2,-0.1 1.1,-2.4 0.5,2.3 2.1,-6.3 -0.9,-1.3 -1.5,0.6 -0.4,-1.8 1.3,-3.3 -0.8,-3.9 0.9,-1.3 1.1,-3.4 0.8,-1 1.6,-5.9 -0.5,-4.5 0.7,-0.6 -0.5,-2.1 1.2,-2.7 0.9,-4.6 -0.3,-4.6 1,-3.3 z m 6.1,81.7 1.3,0.8 -4,-0.3 3,2 -1.4,0 -2,-1.9 -1.9,0.6 -0.2,-1 4.7,-0.3 0.3,0 z",TH:"m 532.13,194.49 0.1,0.1 0.2,0.3 -0.3,0 z m -0.4,11.4 -1.8,1.2 -0.1,-1.2 -1.8,-0.4 -1.6,-2.3 -2.1,-1.7 1,-3.5 1.7,-2.8 -0.9,-3.7 -1.7,-2.1 1.1,-2.6 -2.7,-4.6 1.2,-2.6 0.9,0.3 3,-1.3 0.7,1.6 1.5,0 -0.2,4 1.8,-1.5 1,0.8 1.5,-1.2 1.2,0.2 1.6,1.9 -0.2,1.6 1.7,1.6 -0.8,2.7 -3,-0.2 -2.5,1.7 1.1,3.7 -2.1,-2 -1.6,0.2 0,-1.7 -1.8,0.1 0,2.4 -1.4,3 -0.1,2.7 1.2,-0.2 1.1,4.1 2.1,0.6 z",GD:"m 218.33,194.79 -0.2,0 0,-0.3 0.2,-0.1 z",EE:"m 379.63,90.99 0.8,0.6 -1.6,0.6 -0.7,-1 z m 1.4,-0.1 -0.3,0.2 -0.3,-0.2 0.2,-0.2 z m -0.3,-1.2 0.3,0 0,0.2 -0.4,0 z m -0.9,0.1 0.6,0.4 -1,0.5 -0.9,-0.7 z m 9.5,0 -1.4,0.6 1.3,2.2 -0.2,0.5 -0.4,0.8 -1.6,0 -2.3,-1.5 -1.9,0.6 -1.5,-2 -0.1,-1.8 4.8,-1.2 3.9,0.4 0.2,0.2 0.1,0.2 -0.1,0 -0.2,0.1 0,0 0.1,0 0,0 0.1,0 -0.1,0 -0.2,0 -0.2,0.4 z",AG:"m 218.03,184.89 0.2,0.2 -0.3,0 -0.1,-0.2 z",TW:"m 565.23,172.19 1,0 1.9,-3.1 1.6,-0.1 -1,3.9 -1.1,2.5 z",BB:"m 222.33,192.79 -0.2,-0.1 0.1,-0.4 0.3,0.3 z",IT:"m 359.93,141.89 6.3,-0.8 -0.8,1.2 -0.2,2.4 -1.2,-0.3 z m -5.6,-7.3 0.8,1.5 -0.5,3.1 -2.2,0.4 0.1,-3 -0.5,-1.3 z m -3.7,-6 -1.7,-3.1 0.8,-1.9 2,-0.8 1.5,0.4 2.2,-0.7 0.9,-1.2 3.3,-0.5 0.4,0.9 2.5,0.4 -0.6,0.6 0.6,1.7 -0.9,-0.5 -2.1,1.1 0.5,2.6 2.3,1.6 0.9,2.2 2.1,1.5 1.7,0 -0.2,1 4,1.9 0.9,1.2 -2.8,-0.9 -1,1.9 1.2,0.6 -2.1,3.3 0.3,-1.9 -1.1,-2.9 -3.7,-2.6 -1.2,0 -3.6,-3 -2.1,-3.4 -2.5,-1 z m 9.5,4.4 0,0 0,0 0,0 z m 0,-4.6 0.1,-0.2 -0.1,0 -0.1,0.1 z",MT:"m 363.63,146.09 0.5,0.2 0,0.3 -0.3,-0.1 z",VU:"m 656.83,245.19 1.4,1.2 0.7,3.8 -1.7,-0.8 -1.6,-2.6 z",SG:"m 535.13,214.99 0.3,0.2 -0.3,0.2 -0.4,-0.1 z",CY:"m 400.93,148.29 0,0 0,0 z m 0.5,-0.1 0.2,0.2 -0.4,0 -0.2,-0.2 0.2,0 0.2,0 z m -0.5,0.1 0,0 0.1,0.1 0,0 z m -0.1,0.1 -0.2,0.3 -1.1,0.4 -0.4,-0.1 -0.1,0.1 -0.9,-0.9 0.6,-0.3 0.1,0.1 0,-0.1 0.1,0 0,0 0.1,0 0,0 0,0 0,0 1.3,0.1 0.5,0.3 z",LK:"m 489.33,199.29 1.6,0.6 2,3.4 -0.1,1.9 -2.2,1.3 -1,-0.4 -0.6,-3.7 0.8,-2.7 z",KM:"m 419.53,240.59 -0.5,-0.4 0.1,-0.7 0.3,0 z",FJ:"m 675.43,250.99 2.2,0.1 0,-1 3.1,-1.2 -3.2,2.4 0.9,0.5 -0.4,2.4 -0.7,-1.3 -1.5,-0.3 z",RU:"m 621.23,124.99 -2.1,0.7 -1.5,1.4 -2.9,1.4 1.3,-1.6 4.8,-2.3 z m -189,-65.8 -2.9,0.8 -0.5,-1.8 1.8,-0.8 1.7,0.8 z m 17.7,-4.7 2.2,1.5 -1.8,0.7 -1.9,-1.3 z m 22.6,-10.7 1,0.4 -3.4,0.7 0.1,-1.3 z m 80.8,-3.8 -1.1,1 -2.5,-0.9 1,-0.8 z m -107.6,-23.8 -2.8,0.4 0.6,-1 4.7,-0.6 0.7,2.5 z m -4.8,-1.3 -0.5,1.2 -3.3,0.2 0.5,-1.1 2.8,0.6 z m 2.9,-2.7 4.8,0.2 -3.3,1.7 -2.1,0.2 -3.5,-0.8 z m 16.4,-0.5 1.4,1.2 -4.5,1.1 -1.1,-0.7 2.9,-0.6 z m -13.1,-2.3 1,1 -1.4,1.6 -3.5,-0.2 z m -34.3,120.1 -1.9,-1.7 -4.6,-2.5 1.8,-0.4 0.6,-2.6 2.8,-1.3 -2.1,-0.3 1.2,-1.8 1.8,0.1 -0.1,-2.3 0.8,-1.2 -1.8,-1.5 -3.4,-1.4 -3.4,0.2 -1.1,-2.2 -1.7,-0.1 0.5,-1.3 -1.2,-1.5 -3.9,0.6 -1,-2.3 2.8,-1.1 -1.8,-1 -1.7,-4.8 -5.2,-1.4 -1,-1.9 -0.6,-1.9 0.4,-0.8 0.2,-0.5 0.4,-1.3 -0.3,-1.5 0.3,-0.5 0.2,-0.3 0.2,-0.1 0,0 -0.1,0 0,0 0,0 0.1,0 0.2,-0.1 -0.1,-0.2 -0.2,-0.2 0.2,-0.9 3.3,-1 -3.9,-1.1 2.7,-2 3.9,-3.8 0.6,-1.2 -3,-2.5 1.1,-0.8 -1.9,-3 0.6,-3.6 -1.5,-2.3 1.7,-2.7 -2.5,-1.8 -0.5,-1 1,-1.7 1.9,-1.1 1.7,-1.5 2.3,-0.6 2.1,0.8 -2.1,0.6 7.5,1.3 9.8,5 0.6,1.5 -1.8,2.6 -2.1,0.9 -2.7,0.1 -8.5,-2 -2.4,-1.3 5.2,4.5 -0.9,1.1 0.9,1.6 1.5,-1 2.4,0 4.9,1.9 1.7,-0.8 -1.2,-2.5 2.9,-1.4 2.4,-2.3 3.1,2.9 0.6,-2.6 -1.3,-1.6 0.8,-3.5 -1.8,-1.2 5,0.5 1.5,2 -2.6,0.4 -0.8,1.3 1.7,1.4 3.7,-0.3 0.5,-2.1 1.5,-0.3 4.5,-2.5 4.4,-1.4 1,1.9 1.4,0.5 2.5,-1.6 2.5,0.4 3,-1.5 1.5,2.2 2.4,-2.6 -1.5,-1.6 1.2,-0.9 6.5,1 2.9,1.6 3,0.9 2,1.6 1.6,-2 -1.2,-0.1 -0.9,-1.8 -2.3,-0.3 1,-3.9 -1.7,0.1 0.9,-2.1 3,-1.9 0.9,-3.1 1.2,-0.7 3.8,-0.1 2.4,0.7 0.1,1.6 -2,2.6 1.6,1.5 -0.4,2.9 0.2,4.6 2.1,1.4 -1,2.6 -1.1,0.4 -1.9,3.1 -2.3,1 3.3,0.3 2.7,-1.8 2.4,-2.8 -0.6,-3.4 3.7,-1 1.8,1.6 -0.4,2.5 1.9,-1.6 -0.8,-2.1 -4.2,-1.3 -3.3,0.2 -0.5,-1.8 1.6,-2.7 -2.5,-3.2 0.9,-1.4 2.7,-1 -0.4,-2.9 1.8,-2.4 2.1,0.3 -2.3,2.7 0.4,1.8 -1,3 4.9,0.9 0.9,-0.4 -3.7,-1 -0.6,-1.3 1.8,-0.5 1.2,0.8 0.6,-1.7 2.4,-2.9 0.5,2.6 4.5,2.5 2.9,-0.1 -1.9,1.5 1.1,1 0.7,2.4 1.1,-0.5 -1.2,-2.7 0.9,-1.4 -2.8,-2.3 -2.8,-1 -0.7,-2.4 0.4,-1.4 12.5,-1.1 -0.5,-1.1 -2.8,-2.2 3.1,0.5 -0.5,-1.3 2.1,-0.2 4.1,-2.2 6.9,-1.1 -1.2,-0.7 3.2,-0.1 2.3,-0.9 -0.9,-1.5 1.6,-1.3 0.5,2.6 -1.1,0.8 1.2,1.1 2.6,-0.5 2,-2.1 3.8,-0.1 0.6,-2.2 4,-2.3 2.8,-0.2 2.2,0.6 -1.3,1.5 4.3,1.2 -2,1.5 2.8,-0.1 0.1,-0.8 6.2,0 2.6,0.5 0.2,1.6 1.4,0 0.6,2.5 -2.1,-1.1 2,2.3 -7,3.6 -3.6,2.6 -1.8,0.1 -1.5,1.5 2.6,0.1 6.1,-1.9 -2.5,-0.1 0.8,-1.1 4.5,1.2 1.5,-0.7 0.6,1.4 3.7,-0.8 5.9,0.5 -0.2,1.1 3.6,1.1 5.2,0.4 1.1,-1.3 -0.5,-1.2 2.5,-1.3 0.3,0.7 3.2,1.1 1.2,-0.5 4.6,2 -1,3.4 -2,-1.3 3.6,4.6 2.2,1.4 1.2,-0.5 1.9,-3.5 2.2,1.6 1.6,0.2 2.8,-0.9 2,0.3 3.3,-0.3 2.5,0.6 -1.6,-2.5 0.6,-1.2 3.9,-1 7.4,0.8 2.9,0.9 -2,0.4 0.5,1.3 2,-1.8 4.6,0.6 0.9,0.9 -2,0.7 4.7,1.4 1.4,1.5 2.8,0.1 4.3,-0.8 5,0.4 2.2,1.1 0.8,1.5 -0.8,1.2 2.7,1.5 5.6,-1.1 1.6,0.7 4,0.2 2.5,-1.8 2.3,0.5 -0.5,1 -2.1,-0.4 0.5,1.6 2.4,1.5 2.6,-0.9 -0.7,-3.6 9.4,0.9 3.5,0.8 7.3,2.9 0.3,0.7 6.5,2.9 1.6,3.7 0.8,-1.4 4.4,0 3.9,2.7 -1.6,1.6 -3.1,0.3 -0.9,2.6 0.8,0.9 -2.2,0.3 -2.6,-1.6 -2.2,-0.6 -0.1,-1.2 -2,-0.7 -3,0.3 -2.2,-2.1 0.8,1.8 -0.8,1.5 -4,1.5 -3.5,-0.6 3.1,2 0.5,-0.5 2.6,5 -1,1.3 -2,-0.8 -2.6,0.2 -6.2,2.7 -2.8,2.1 -2.7,1.2 -0.4,1.4 -2.2,-1.8 -4.4,0.8 -1.6,1.3 0.6,-1.8 -3.1,2 -2.2,-0.8 -0.9,1.6 1.2,1.7 1.6,0.1 -2.2,1.2 -0.8,-1.5 -2.1,2.5 2.6,1 -1.1,2.6 1.2,1.6 -2.4,0.1 -0.7,1.4 0.7,2 -4,1.8 -0.8,2.4 -1.9,1 -1.7,3.4 -3.8,3.5 -1,-0.1 2.9,-1.9 -1.2,-5 -1.1,-6.2 0.9,-4 2.8,-2.9 2.9,-1.7 1.7,-2 3.8,-3 0.1,-0.6 4,-2.7 0.2,-2.7 2.1,-0.4 -1.2,-0.9 -2.5,0.5 -0.6,2.1 -5.4,3.6 -0.7,-1 1.1,-3 -5.5,0.5 -4.9,4.1 -1.6,2.5 2.1,0.9 -3.5,-0.2 -3.8,1.1 -1.2,-1.8 -2.2,-0.8 -1.6,1.5 -9.3,-0.5 -2.5,0.6 -3.2,2.3 -0.8,1.5 -3.5,2.4 -2.1,2.4 -4.5,3.2 2.5,0.8 0.3,-1 2.7,-0.1 -1.5,2.6 1.1,1.2 1.6,-1.9 2,0 3.2,3 -1.9,6.7 0.2,2.4 -0.7,2.7 -1.8,1.7 -2.2,3.7 -4.3,4.4 -1.4,2.1 -3.8,1.9 -2.6,-1.5 -2.1,2.4 -0.1,-0.3 -0.2,-0.3 0.9,-0.7 0.5,-2.8 -0.6,-1.9 2,-0.9 0.7,1.7 0.9,-1.3 2,-2.8 0.5,-2.4 1.2,-1.1 -0.7,-1.7 -3.7,1.7 -2.7,0.1 -0.4,-1.6 -2.8,-2.7 -2.5,-0.3 -4.5,-8.8 -4.7,-1.5 -4.7,0.8 -1.5,1.3 1.4,1.7 -1.3,1.1 -1.8,3.3 0.1,0.9 -2.8,1.2 -2,-0.7 -2.5,-0.2 -2.1,-1 -2.4,1.7 -4.4,1.2 -4.2,-0.5 -1.2,-1.5 -5,-1.4 -3.1,0.9 -2.7,-1.2 -0.2,-1.8 -6.3,-2.1 -2.1,2.9 1,1.2 -1.9,2 -5.2,-0.7 -0.7,-1.4 -3.6,-0.7 -8.7,4.2 -0.6,0.1 -0.3,0.1 -1.4,-1.3 -2.6,0.1 -3.5,-3.6 -3.8,0.7 -1.4,-1.4 -1.4,1.2 -4,-6.3 -2.6,-1.8 0.3,-1.3 -4.7,2.3 -1.4,-1 -4.5,-0.4 -0.6,-3.1 -4.9,0.2 -0.2,0.7 -5.7,1.6 -8.1,1.2 0.5,1.6 1.6,0.4 -2.7,1.1 0.7,0.9 -1.7,1.2 2.6,1.1 -0.2,1.7 -2.7,-0.2 -0.4,0.8 -2.2,-1.2 -4,-0.1 -1.7,1.3 -2.2,-0.8 -2.2,-1.7 -5.3,-0.3 -3.6,2.7 -0.5,1.9 -1.7,-1.6 -1.2,1.6 0.2,1.5 -1,2 1.2,1.4 1.8,0.1 2.2,3.5 -3,1.5 -1.8,2.5 1.7,2.1 -0.3,1.7 2.2,2.7 -1.6,1.5 -2.5,-1.6 -3.1,-1.9 -1.7,0.4 -2.1,-1.4 z m 271.5,-79 1.5,0.9 -0.9,0.7 -4,0.2 -2.3,0.6 0.2,-1.5 2.6,-1.2 z m -78.8,-8.9 2.7,0.1 2.6,1.4 -0.4,1.3 -5.1,-1.1 z m -92.9,-23.7 -1.9,-1.1 5,0.6 -2.1,1.1 z m -86.5,-4.2 2.6,-0.3 -4.2,1.7 -1.9,-0.9 z m 25.7,-0.9 2.6,-0.7 1.1,1.5 -2.3,1.7 -2.6,-0.1 -0.9,-1 z m -77.7,89.4 1.2,-0.6 -1.5,0.6 0,0 0.6,-1.2 1.9,-1 0.2,0 -0.9,0.9 1.4,-0.8 3,1 -0.1,1.4 -0.2,0 z m 144,-85.5 -1.4,0.2 -1,0.2 -4.2,-1.3 2.4,-1 0.5,-2.2 5.2,-1.3 4.2,2.6 -1.4,0.3 0,1.8 -3.6,0.6 4.3,-0.3 1.5,1.3 1.6,-0.8 1.4,1.6 -1,3.7 -3.2,0.1 -1.8,-0.8 -3.4,-0.2 -2.4,-2.2 z m 92.4,98.5 -1.3,3.3 1.6,3.6 -1.8,-0.2 -0.7,1.7 -0.5,-1.7 0.7,-3.3 -0.4,-2.1 0.5,-5.8 -1.1,-1.5 0.2,-4.2 2,-0.8 -0.5,-1.6 1.4,3 0.3,4.2 1.6,5.7 z m -166.2,-71 -2,3.4 1.4,3.7 2.9,1.9 -0.9,0.8 -3.3,-0.9 -0.5,0.7 -3.6,-1.1 0.6,-1.2 -1.3,-0.6 0.2,1.2 -2.9,-1.9 -0.1,-1.3 1.8,-0.5 1.4,-3.7 3.5,-1.2 z m 173.7,-7.9 2.4,-0.4 1.4,0.6 3.3,0.6 -0.5,0.9 -4.6,0.3 -4.1,-1.7 0.7,-1.3 z m -11.1,-3.4 2.3,1.3 2.7,0.1 2.7,1.3 -2.6,1.9 -2.9,-1.4 0.3,1.1 2,0.6 -2.6,0.4 -1,-0.6 -5.4,1.3 -2.1,-0.8 -2,-1.9 -1.6,-0.4 -1.1,0.3 0.4,-1.9 2.6,1 0.8,-1.4 2.8,-1 4,2.4 z m -141.2,-3.3 2.3,0.6 0.3,1.2 -3.5,1.9 -11,3 -4.3,3.4 -1.8,-0.5 0.1,1.4 -2.8,3.5 -3.4,-0.7 -1.5,0.5 -1.1,-1.7 2.2,-0.8 1.4,-2.5 2.9,-2.9 2.2,-0.7 1,-1.2 4.5,-0.8 0,-0.7 2.5,0.3 3.2,-0.5 z m 63.7,-7.4 0.3,-1.4 2.4,-1.3 1.6,0.5 -0.4,1.2 1.7,-0.5 2.4,1.3 2,2.5 -1.7,-0.9 -2.9,0.9 -4.7,0.3 -2.3,0.9 -1.5,-0.3 z m -103.8,-6.5 5.7,-1.5 -1.2,-0.6 2.6,-1.1 2.6,1.5 -3.8,0.9 0.9,2.2 -1.3,-0.7 z",VA:"m 360.13,132.99 0,0 0,0 0,0 z",SM:"m 360.13,128.39 -0.1,-0.1 0.1,-0.1 0.1,0 z",KZ:"m 451.63,123.39 -2.1,0.7 0.6,1.3 -1.4,-0.8 0.4,-0.3 -0.6,0.2 -5.1,1.3 0.1,8.5 -0.9,0.1 -2.6,-2.4 -1.3,0.5 0,0 0,0 0,0 -0.8,0.3 0,0 0,0 0,0 -1.2,0.5 0.5,-2.2 -1.5,-0.3 -3.1,-4.2 2.1,-1.6 2.1,-0.2 1.1,-1.4 0,-2.1 -1.8,0.1 -1.8,-0.7 -3.8,1.9 -2.2,-3.5 -1.8,-0.1 -1.2,-1.4 1,-2 -0.2,-1.5 1.2,-1.6 1.7,1.6 0.5,-1.9 3.6,-2.7 5.3,0.3 2.2,1.7 2.2,0.8 1.7,-1.3 4,0.1 2.2,1.2 0.4,-0.8 2.7,0.2 0.2,-1.7 -2.6,-1.1 1.7,-1.2 -0.7,-0.9 2.7,-1.1 -1.6,-0.4 -0.5,-1.6 8.1,-1.2 5.7,-1.6 0.2,-0.7 4.9,-0.2 0.6,3.1 4.5,0.4 1.4,1 4.7,-2.3 -0.3,1.3 2.6,1.8 4,6.3 1.4,-1.2 1.4,1.4 3.8,-0.7 3.5,3.6 2.6,-0.1 1.4,1.3 -3,1.7 -0.5,3.3 -1.5,0.5 -3.3,-0.9 -1.4,4 -4.2,1.2 1.4,4.4 -1.2,2.2 -3.4,-1.6 -6.2,0.1 -1.9,-1 -1.3,2 -3.2,-1 -1.7,1.4 -3.6,2 -0.9,1.7 -1.3,-1.3 -2.3,0 -0.4,-1.8 -0.9,-0.1 -0.5,-2 -1.6,-1.9 -5.6,0.5 -1.9,-2.1 -1.8,-1.1 -0.7,-2 1.3,-0.5 z m 0.3,0 0.1,0 0,0.1 1.5,-0.7 z m -19.5,2.7 -0.4,-0.2 0.1,-0.3 0.6,0 z",AZ:"m 422.53,134.89 -0.1,0.1 0,-0.1 0.1,0 z m 0.4,0.2 -0.1,0 0,-0.1 0,0 z m 0.5,0.8 0,-0.1 0.1,0 -0.1,0.1 z m -1.3,2.2 -0.1,-0.1 1.9,0.3 0.7,1.5 -1.3,-0.3 z m 3.1,-5.1 2.5,1.6 1.6,-1.5 1.9,2.8 -1.3,4.9 -1.7,-0.9 -0.1,-2 -2.8,1.9 -1.6,-2.6 0.6,-0.4 -1.9,-2.4 2.9,0.5 z",TJ:"m 471.53,135.09 0,0.1 -0.1,-0.2 0,0 z m 0,2.5 0.1,0.1 -0.2,0.1 -0.2,-0.2 z m 5.8,0.9 0.3,2 1.8,0.1 0.3,2.8 -3.1,-0.5 -3.2,1.7 0,-2.6 -2,-1 -0.9,1.8 -1.6,0.9 -2.9,-0.2 1.1,-2.3 -0.4,-1.6 -1.5,-0.6 2.1,-0.7 1.9,-2.8 2,-0.5 0.9,1.8 -1.9,0 -1.2,1.6 4.1,-0.2 1.5,0.9 z",LS:"m 390.23,273.89 0.9,-0.3 1.5,1.6 -2.6,2.8 -2,-2.2 z",UZ:"m 473.73,137.49 -0.2,0 0,-0.1 0.2,-0.1 z m -1.2,-0.3 0.1,0.3 -0.3,0.1 -0.2,-0.5 z m -22.4,-11.8 -0.5,1 1.4,1.2 0.3,-1.5 1.8,1.1 1.9,2.1 5.6,-0.5 1.6,1.9 0.5,2 0.9,0.1 0.4,1.8 2.3,0 1.3,1.3 0.9,-1.7 3.6,-2 -1.5,1.5 2.4,1 0.6,-0.7 2.7,1.5 -2.8,1.5 -1.4,-0.2 -0.9,-1.8 -2,0.5 -1.9,2.8 -2.1,0.7 1.5,0.6 0.4,1.6 -1.1,2.3 -1,0 -1.4,-0.3 0.1,-1.5 -1.8,-0.5 -6.1,-3.9 -0.9,-2.3 -3.6,-0.9 -0.4,-2.1 -2.5,-1.1 -1.8,1.5 -0.4,-0.4 -0.7,0.9 -0.1,1.5 -1.9,-0.1 -0.1,-8.5 5.1,-1.3 -0.6,2.6 0.8,-2.5 z m 21.4,9.7 -0.1,-0.1 0,0 0.1,0.2 z",MA:"m 330.63,147.69 0.1,0 0.1,0.3 1.2,0.1 0.9,0.8 0.2,3.2 1.2,1.5 -0.4,0.9 -2.4,-0.1 -2.2,1.1 0,1.9 -4,2.3 -3.7,0.5 -1.9,1.5 0,2.1 -0.3,1.1 -1.8,0.5 -3.1,0 -1.3,1.7 -0.7,2.4 -3.1,2.9 -0.3,2.2 -1.2,1.7 -4.2,0.1 2.7,-5.2 1.4,-1.4 0.7,-2.9 1.7,-1.1 1.3,-2.6 2.8,-0.8 1.7,-1.4 1.9,-2.9 -0.5,-2.1 1.1,-2.5 1.4,-1.5 3.3,-1.6 1.7,-3.8 1,-0.3 0.1,0.1 0.1,0.1 1.8,1.5 2.7,-0.4 0,0 z",CO:"m 185.43,214.99 0.2,-1.4 1.6,-1 1.4,-2.2 -0.4,-1.1 0,-4 -1.1,-1.3 1.4,-1.4 -0.4,-1.4 0.9,0.3 2.5,-1.8 0.2,-2.1 2.7,-1.5 1.6,0.1 3.4,-2.2 0.3,1.1 -1.2,0.4 -1.8,2.4 -0.2,2.1 1.2,1.8 0.5,2.5 3.8,0.2 1.3,1.6 3.8,-0.1 -0.8,3.1 1.1,2.2 -1,1 1.2,0.9 0.6,2.2 -0.9,-1.6 -1.5,0.7 -3.3,0 -0.4,3.6 1.2,2.4 -1,5.3 -1.5,-0.8 1.4,-2.1 -1.9,-1 -2.6,0.5 -1.6,-0.4 -0.8,-1.8 -3.2,-2.2 -1.9,-1.1 -2.2,-0.4 z",TL:"m 573.73,235.59 0.4,-0.2 0.4,-0.1 -0.3,0.6 z m 1.7,-0.7 0.5,-0.7 3.5,-0.6 -1,1.2 -2.7,1.1 -0.2,-0.6 z",TZ:"m 403.23,239.89 0,-0.2 -0.1,-0.1 0,-0.1 -0.3,-0.1 0,-0.1 0,0 0,-0.1 -0.5,-2.5 -0.4,-0.4 -0.2,-0.2 0,0 -0.2,-0.2 0,0 0,0 -0.2,0.1 -0.1,0.3 -1,-0.2 -0.9,-0.4 -1.8,-0.6 -1.6,-1 -2.3,-5.1 -0.5,-2.8 2.2,-2.3 -0.5,-1.6 0.5,-1.5 -0.7,-1 0.7,-0.1 1.8,0 0,0.1 0.1,-0.1 0,0 0.2,2.7 2.5,0.1 1.6,-2.7 6.9,3.8 0.2,1.1 2.7,2 1.3,1.1 -1.1,0.9 0.5,1.3 -0.4,4.4 2.1,3.4 -5.7,2.4 z",AR:"m 204.93,334.29 0.1,0.2 -0.2,0 z m 26.8,-66.8 1.4,0.1 0.1,3.1 -3.7,2.2 -3.5,4.1 -1.2,3.6 0,1.2 -0.7,3.9 2.8,2.5 -0.5,0.9 1.4,2.2 -1.8,2.8 -2.8,1.2 -3.5,0.7 -2.3,-0.2 -0.5,4.4 -2.8,0.7 -2.1,-1.1 -0.3,2.9 0.9,1.1 1.6,-0.8 0.3,1.5 -1.6,-0.5 0,1 -1.7,1.6 -0.5,3.2 -1.2,0 -2.1,1.4 -0.6,1.3 1.6,2.1 1.6,0.1 0,2.4 -3.1,2.4 -0.6,2.4 -1.9,0.8 -0.6,1.7 1.4,3.5 -2.9,-0.9 -3.7,-0.1 -1,-1.1 0.2,-2.3 -1.6,0.3 -0.8,-3 2.5,-3 -0.5,-1 1.2,-1.7 1.1,-4.6 -1.4,-1.3 0.8,-2 -1,-2.1 0.8,-2.1 -0.4,-3.1 1.1,-4.1 1,-0.5 -0.6,-2.2 0.3,-2.6 1.2,-1 0,-1.9 1.2,-3.9 -1.6,-3.8 1.8,-6.6 1.6,-2.6 1,-0.5 -0.5,-4.3 2.3,-1.6 0.3,-2.4 1.9,-2 3.1,0.8 0.5,1.3 0.8,-1.7 2.4,0.5 3.2,3.1 1.8,0.4 4.8,2.9 -2,3.9 5.4,0.2 1.9,-1.6 z m -26.8,66.7 0,-5.6 0.3,1.7 2.2,2 2.8,1.6 2.4,0.6 -3.7,0.4 -1.3,-0.2 -0.5,-0.1 z",SA:"m 429.03,161.99 0.9,1.9 2.4,1.9 0,1.9 1.3,2 0.3,0.4 0.4,-0.1 0.2,0.6 0.5,0.1 1.9,2.7 5,0.4 0.9,1.5 -1.3,3.9 -5.7,2 -5.5,0.8 -1.8,0.9 -1.4,2 -4.4,-0.6 -3.8,0.2 -0.7,1.9 -3,-4.6 -0.5,-1.6 -2.5,-1.9 -1.1,-1.7 0,-2.5 -1.2,-2.4 -1.8,-1 -0.5,-1.9 -3.9,-5.8 -1.2,-0.2 0.7,-2.5 2.1,0.3 3.7,-2.7 -2,-2.1 4.2,-1.3 2.5,0.4 3.1,1.8 5,3.9 3.6,0.2 1.7,0.2 z",PK:"m 479.03,143.89 2.7,1.2 1.6,1.8 0.5,1.2 -2.4,1.3 -2.8,-0.6 -1.1,0.9 0.5,2.5 2.4,2.2 -1.5,0.9 0.1,1.3 -2.2,2.5 -0.9,1.8 -2,2.3 -2.7,-0.2 -1.9,2.5 3,4.3 -2.1,1.1 -2.1,-0.2 -1.3,0.8 -1.6,-0.4 -1.9,-2.8 -5.4,0.5 -3.7,0 0.5,-2.1 2.4,-0.8 -0.7,-3.3 -1.6,-0.7 -2,-2.7 3.1,1 3.1,0 4,-0.9 0.3,-2.3 3.4,-1.9 2.3,-0.2 0.4,-2.5 1.5,-0.5 -0.6,-1.5 2,-0.1 1.1,-2.4 -0.9,-1.9 2.7,-1.7 z",YE:"m 435.83,181.19 1.4,3.3 0.7,1.3 -1.6,2 -5.1,1.7 -1.7,1.4 -1.3,0 -2.5,1.2 -1.7,0.1 -3.6,1.5 -0.9,-0.5 -1.4,-5.3 0.1,-1.5 0.7,-1.9 3.8,-0.2 4.4,0.6 1.4,-2 1.8,-0.9 z",AE:"m 444.03,167.89 0.2,0.2 0,1.1 -1.1,0.2 -1.2,4.4 -5,-0.4 -1.9,-2.7 4.9,0.2 3.7,-3.9 0.2,0.8 z m 0,0.8 0.2,-0.1 -0.3,0 0,0.2 z",KE:"m 411.33,226.69 -2.7,-2 -0.2,-1.1 -6.9,-3.8 0.3,-1.6 -0.4,-0.9 1.8,-2.7 -0.1,-1.5 -1.8,-3.4 2.8,-1.5 1,0.8 1.7,0.3 2.4,1.6 2.8,0.4 2.3,-1.7 2.2,0.6 -1.8,2.2 0,7 1.1,1.6 -2.6,2 z",PE:"m 192.13,217.99 3.2,2.2 0.8,1.8 1.6,0.4 2.6,-0.5 1.9,1 -1.4,2.1 1.5,0.8 -1.5,-0.1 -4.1,1.8 -0.4,2.4 -1.7,2.2 3.5,4.8 1.9,-0.2 1.3,-0.9 -0.3,3 2.1,-0.1 1.7,3 -0.8,2.2 0.4,1 -0.9,2.6 -1.3,0.6 1.8,0.8 0.1,0 0.1,0 -0.2,0.5 0.1,0.1 -1.2,1.5 0.3,0.4 -0.9,1.5 -0.8,0.1 -2.1,-2 -7.1,-3.8 -2.1,-2.5 0.1,-1.4 -2.7,-4 -2.5,-5.9 -1.9,-2.7 -2.2,-1.4 -0.3,-3.5 1.8,-1.6 -0.4,1.3 2.8,1.8 1.4,-3.1 3.2,-1.5 2.1,-2 z",DO:"m 198.63,182.19 0,0 -0.1,-0.1 0,0 -0.1,-0.1 0.6,-0.3 -0.1,-1.9 1.4,-0.5 2.1,0.6 0.6,1.1 2.4,0.9 -1.1,0.4 -3.4,0 -1.4,1.6 -0.6,-0.8 0.1,-0.6 z",HT:"m 198.63,182.19 0,0 -0.1,-0.1 0,0 z m 0.3,-2.4 0.1,1.9 -0.6,0.3 0.1,0.2 0.1,0 0.4,0.3 -0.1,0.6 -3,-0.4 -1.1,0.4 -0.7,-1.3 3,0.5 -0.1,-2 -1.3,-0.7 z",PG:"m 606.23,235.09 0,-4.2 0,-8.2 5.8,2.3 1,0 2.4,2 -0.1,1.2 3.3,0.9 0.8,1.4 -1.8,0.1 0.5,1.4 1.8,1.1 2.1,2.8 3.3,0.2 -0.5,1.8 -5.2,-0.7 -1.7,-1.4 -1.9,-2.6 -4.5,-1 -0.7,2.7 -1.4,0.7 z m 17.2,-12.6 -0.6,-1.7 1.1,1.5 3.5,1.6 2.1,2 -0.5,1.1 -1.2,-2.4 z m -0.6,7.3 -3,-1.1 5.6,-0.6 1.2,-0.9 -0.2,-1.5 1.7,0.3 -0.5,2 -3.2,1.7 z",AO:"m 359.73,228.69 0,-0.5 -0.4,-0.9 1.4,-1.2 0.6,0.5 -1.2,0.8 z m 21.3,23 -4.9,0.7 -3.9,-0.5 -0.6,-0.7 -8.6,0 -1.5,-0.9 -2.7,0.6 0,-2.8 1.4,-4.6 2.2,-2.3 0.2,-3 -1.4,-3.1 0.7,-1.4 -2.1,-4.3 1.7,-0.5 6.6,0.1 0.7,2.7 1.2,1.5 3.3,-0.2 0.4,-1.9 4.3,0.5 0,4.1 0.7,1 0.2,2.6 3.3,-0.8 0,4.1 -3.8,0 0,6.2 z",KH:"m 542.13,189.59 0,4.6 -3.4,2.5 -2.4,1.2 -1.6,-0.2 -1.4,-2.2 -1.1,-3.7 2.5,-1.7 3,0.2 3.1,0.1 z",VN:"m 536.33,197.89 2.4,-1.2 3.4,-2.5 0,-4.6 0.3,-1.1 -2.2,-3.4 -3.4,-3.5 -1.7,-1 2.1,-1.5 -1.7,-1.8 -1.8,0.2 -0.3,-1.4 -1.6,-1.7 0.7,-0.7 2.8,0.5 2.6,-1.7 2.8,1.2 -0.4,0.8 2.7,1.8 -2,1.1 -1.7,1.8 -0.8,2 1.9,3 4.1,4.1 1.4,4.8 -0.9,3 -3.3,1.9 -1.1,-0.3 -0.4,1.9 -3.3,1.4 0,-2.7 z",MZ:"m 403.03,243.59 -0.3,-2.5 0.5,-1.2 4.8,0.3 5.7,-2.4 0.8,8.3 -1.8,3.2 -5.4,2.8 -4.2,4 -0.5,1.1 1.6,3.3 -0.7,5 -2.6,1 -2.4,1.8 0.8,1.8 -1.1,0 -0.4,0 -0.2,-1.2 -0.2,-0.6 0.1,-3.1 -1.3,-4.1 2.1,-2.2 1.2,-2.5 -0.5,-1.1 0.5,-2.2 -0.1,-3.3 -4.9,-2 -0.4,-1.3 5.7,-1.9 0.9,1.1 1.3,-0.4 -0.2,2.9 1.7,1.3 1.3,-1 0.1,-2.7 z",CR:"m 176.13,196.89 0.4,0.8 1.7,1.8 -0.9,2.3 0,0 -0.3,-0.5 -5.1,-3.3 0.3,-1.4 2.6,0.2 z m 1.5,5.6 -0.3,-0.6 0,-0.1 0,0 z",BJ:"m 343.23,195.39 0.4,2.1 -2,3 -0.1,5.1 -1.6,0.2 -0.5,0.1 -0.1,-5.4 -1.3,-3.7 1,-0.9 1.9,-0.9 0.8,-0.9 z",NG:"m 341.53,205.59 0.1,-5.1 2,-3 -0.4,-2.1 1,-3.4 2.6,-0.8 2.8,1.7 1.7,-0.7 3.4,1 1,-0.8 2.5,-0.2 2,0.6 2.1,-1.3 0.9,1.3 1.2,1.7 -4.7,7.4 -1.8,3.6 -1.4,-1.3 -3.3,2.5 -0.5,1.9 -4.6,1 -1.1,-0.7 -2.3,-3.2 z",IR:"m 422.03,143.59 -1,-1.8 -0.5,-3.1 1.6,-0.6 1.2,1.4 1.3,0.3 0.5,-0.1 0.2,0.1 2.8,-1.9 0.1,2 1.7,0.9 0.2,1.5 2.3,0.8 1.7,1.4 1.6,0.4 4,-0.6 -0.2,-1.1 2.9,-1.6 3.4,-0.4 0.3,0.6 2.8,0.6 2.9,2.4 1.6,0.1 0.2,2.1 -1.4,5.5 0.5,3.3 1.7,0.2 0.2,1.1 -1.8,2.1 2,2.7 1.6,0.7 0.7,3.3 -2.4,0.8 -0.5,2.1 -3.2,-0.3 -5,-0.9 -0.5,-2.2 -1.3,-0.7 -3,1.5 -6.5,-3 -2.6,-4.7 -2.1,-0.4 -0.8,0.9 -1.6,-2.2 0.3,-1.6 -0.9,-1.3 -2.1,-1.2 -1.7,-2.2 1.8,-3.9 -2,-0.4 z",SV:"m 168.13,192.09 -1.8,0.3 -2.5,-0.9 -0.1,-0.2 1.5,-1.1 3.2,1.1 z",SL:"m 314.33,204.59 -2.8,-1.3 -0.7,-2.8 1.5,-1.5 2.4,-0.3 1.9,2.9 -0.6,1.4 z",GW:"m 307.53,196.79 -1.7,-0.5 -1.6,-2.1 3,-0.7 2.8,0 0,1.9 -1.9,0.4 z",HR:"m 371.73,131.79 -1.3,-0.9 -0.3,-0.2 0.4,0.2 1.1,0.6 0,0.1 z m -9.4,-7.2 3.3,0.1 0.6,-1.8 1.7,-0.7 1.6,1.3 3,0.1 0.2,1.8 0,0.7 -4,-1 -2.2,0.3 0.8,2.2 2.6,3 -1.7,-0.4 -3.5,-2.5 0,-2.2 -1.7,0.7 z",BZ:"m 165.63,183.49 0.5,-0.1 1.1,-1.2 0.2,3 -1.4,2.1 -0.6,0 z",ZA:"m 397.83,270.09 0.4,0 1.1,0 -1,3.5 -2.3,2.1 -1.5,2.7 -2.9,3 -3.4,2.7 -4.3,1.4 -4.4,-0.4 -1.3,0.7 -4.3,0.9 -2.2,-2 -1.3,-2.1 0.9,-0.4 -0.2,-2 -1.7,-2.9 -1.6,-3.6 1.2,-1.2 0.6,1.4 3.3,0.5 1.6,-1.1 0,-7.5 1.7,2.8 -0.3,1.6 1.9,-0.1 2,-1.8 0.6,-1.4 3.4,1.1 1.5,-0.4 0.5,-1.8 1.9,-0.9 0.3,-1.3 2.3,-2 2.2,-0.9 1.9,0.3 1.8,0.1 1.3,4.1 -0.1,3.1 -1,-0.5 -1.1,1.4 0.6,1.6 z m -7.6,3.8 -2.2,1.9 2,2.2 2.6,-2.8 -1.5,-1.6 z",CF:"m 380.03,196.89 1.5,2.1 -0.3,2 1.4,0.2 2.2,2.6 2,1.3 0.1,1.1 1.9,1.9 -3.5,-0.6 -5.9,2.3 -3.7,-0.4 -1.7,-1.4 -2.2,1.5 0.1,1.7 -2.2,-0.5 -1.7,0.5 -0.7,2.3 -0.2,-1.1 -1.8,-1.8 -1.5,-4.3 2.1,-2.9 2.5,0 3.5,-1 0.9,-1.8 2.6,-0.3 3.9,-3.5 z",SD:"m 382.63,201.19 -1.4,-0.2 0.3,-2 -1.5,-2.1 -1.2,-3.5 -0.3,-2 0.9,-0.7 1.1,-3 1.7,-0.1 0,-7.4 0,-1 1.9,0 0,-4 12,0 10.8,0 0.8,2.4 0.4,4.2 2.1,1.4 -3.1,1.8 -1.1,3.8 0.2,1.7 -0.8,3 -0.8,0.1 -1.6,3.7 -0.5,-0.3 -1,2.7 -1.7,-2.6 0.1,-2.7 -2.2,0.4 0.6,1.9 -2.2,2.4 -2.4,-0.9 -2.2,1.8 -4.4,-0.4 -1.4,-1.7 -1.4,0.2 z",CD:"m 392.23,224.09 -0.2,3.3 0.8,3.1 2,2.9 -3.2,0.5 -1.1,1.2 0.4,0.6 0.3,0.8 -0.6,3.1 1.3,1.8 1.4,-0.4 0,2.5 -1.1,0 -3.9,-3.6 -0.9,0.8 -2.6,-0.7 -0.1,-0.9 -1.9,0.4 -0.6,-1 -3.3,0.8 -0.2,-2.6 -0.7,-1 0,-4.1 -4.3,-0.5 -0.4,1.9 -3.3,0.2 -1.2,-1.5 -0.7,-2.7 -6.6,-0.1 -1.4,0.4 -0.4,-0.6 0.4,-1.3 1.2,-0.8 2.5,-0.7 0.9,1 2.6,-2.8 0.1,-2.3 2.9,-3 0.6,-5.1 1,-2.5 -0.1,-1.7 2.2,-1.5 1.7,1.4 3.7,0.4 5.9,-2.3 3.5,0.6 1.8,1.5 2.7,-0.5 2,2 -0.2,2 1,0.5 -1.4,1.3 -0.1,0.5 -1,0.8 -0.5,1.7 -0.7,0.8 0.6,0 -0.1,0.8 0,0.9 -0.4,0.3 -0.3,0.3 -0.5,0.5 -0.1,1 0,0.3 0.2,0.1 0.4,0.7 z",KW:"m 429.03,161.99 -1.9,-1 -1.7,-0.2 1.1,-1.8 1.6,-0.1 0.3,1.4 z",DE:"m 353.93,119.39 0,0 0,0 z m -1,-18.4 0.3,0 1.1,0.3 3.9,2.3 2,-1.5 2.2,-0.3 0.7,1.4 0.4,0.4 -0.1,0 0.1,0.1 -0.3,-0.3 0.4,0.8 -0.3,2.2 1,0.7 0.3,4.4 -4.4,1.2 -0.2,1.6 2.7,2.4 -2,1.6 0.5,1.5 -1.6,-0.5 -2.3,0.7 -2.4,-0.3 -1.3,-0.7 0.3,0.4 -1.4,0.2 -1.7,0 1.2,-3.4 -3.6,-1.2 0.3,-0.9 -0.7,-0.8 0.5,-0.4 -0.7,-1.2 0.7,-2.7 1.2,-1 0.4,-2.6 0.2,-1.3 2.4,0.5 0.8,-0.9 z",BE:"m 347.83,111.69 0.7,1.2 -0.5,0.4 -0.8,0.6 0.2,0.9 -3.2,-1.1 -3.1,-2.8 1.2,-0.6 0.4,-0.1 0.9,0.4 0.8,-0.4 0.1,0.1 -0.1,-0.1 1.5,-0.3 z",IE:"m 322.43,100.59 -1.8,1.6 1.7,0.9 2,0 0.5,3 -0.7,2 -2.3,0.3 -2.2,1.3 -2.1,0.3 -1.2,-1.2 2.9,-3.5 -2.1,-0.3 0.3,-2.5 2.4,0.2 0.6,-2.4 z",KP:"m 586.53,132.09 -2,1.7 0.1,1.6 -4.2,2.5 -0.1,1.3 1.7,1.2 -2.3,0.7 -0.9,1 -2.1,-0.4 -0.4,0.8 -1.1,-1.9 1.3,-1.8 -2.1,-1.7 3.1,-1.8 1.2,-1.8 2.9,0.7 -0.2,-1.4 3.2,-1.1 0.3,-1.2 1.3,1 0.2,0.3 z",KR:"m 578.83,142.09 0.9,-1 2.3,-0.7 1.9,2.9 0.2,3.9 -1.6,1.7 -1,-0.4 -1.1,1.1 -2.2,-0.4 z",GY:"m 221.43,201.49 1.7,1 3.7,3.7 -0.1,1.1 -1.6,2.5 3,4.3 -1.2,-0.2 -3.2,1.6 -1.8,-1.3 -0.5,-1.6 0.9,-2.3 -0.9,-2.2 -1.4,-0.2 -1.2,-1.4 0.3,-1.2 1.7,-1.1 -0.4,-1.3 z",HN:"m 167.43,187.59 4.4,-0.5 3.1,0.3 2.2,1.6 -3.2,0.4 -1.8,1.6 -1.9,0.4 -1.1,1.5 -0.4,-0.5 -0.6,-0.3 0.3,-0.8 -3.2,-1.1 0.4,-1.3 z",MM:"m 512.93,177.09 0.7,-0.5 -0.1,-1.3 1.2,-0.8 0.2,-3.3 1.5,0.3 1.8,-3.8 0,-1.5 3.2,-1.8 1.2,-1.8 0.4,-0.6 2.2,1.9 0,3.5 -1.9,1.7 -0.1,2.4 1.8,-0.4 0.6,1.8 1.2,0.2 -0.7,1.8 1.5,0.2 0.5,1.3 1.9,-0.3 -0.9,0.5 -1.2,2 -3,1.3 -0.9,-0.3 -1.2,2.6 2.7,4.6 -1.1,2.6 1.7,2.1 0.9,3.7 -1.7,2.8 -0.3,-5.5 -1.5,-3.2 -0.3,-2.8 -0.8,-1.4 -3.4,2.5 -2.4,-0.6 0.8,-2.9 -1.2,-3.7 -1.8,-1.2 z",GA:"m 355.03,215.89 3,0 0,-2.3 0,-0.2 3.7,0.3 -0.1,1.7 2.4,0.6 -1.2,2.2 1.2,0.7 -0.7,3.6 -3.2,-1.1 -1.7,0.8 0.5,2.6 -1.3,0.5 -3.6,-4 -1.1,-2.4 1.1,-0.3 0.1,-1.9 z",GQ:"m 358.03,213.59 0,2.3 -3,0 -0.8,-0.4 0.8,-2.2 0.4,0.3 z",NI:"m 172.23,196.59 -3.7,-3.4 0.6,-0.3 1.1,-1.5 1.9,-0.4 1.8,-1.6 3.2,-0.4 -1.4,7 0.4,0.9 -1.3,-0.1 z",LV:"m 388.63,93.89 0.6,1.9 1,1.9 -1.1,0.9 -1.9,0.4 -3.3,-2.1 -0.8,0.5 -4.5,-0.5 -2,1 0,-2.1 1.3,-2 1.7,-0.5 2,2.1 1.4,-0.7 -0.2,-1.7 1.9,-0.6 2.3,1.5 z",UG:"m 397.23,219.69 0,-0.1 0,0.1 z m -4.3,0.7 0,-0.9 0.1,-0.8 0.5,-0.6 -0.4,-0.2 0.5,-1.7 1,-0.8 1.8,-1.3 -0.3,-0.5 -1,-0.5 0.2,-2 5.1,-0.5 0.9,-0.9 1.8,3.4 0.1,1.5 -1.8,2.7 -2.7,0.2 -1.6,2.2 -1.8,0 -0.7,0.1 -1,0.8 z",MW:"m 403.13,239.59 0,-0.1 0,0 z m -0.3,-0.3 0,0 0,-0.1 0,0.1 z m -0.9,-3 -0.2,-0.2 0,0 z m -0.4,-0.4 0,0 0,0 z m -2.2,-0.2 0.9,0.4 1,0.2 0.8,3.8 0,3.2 1,0.3 1.9,2.2 -0.1,2.7 -1.3,1 -1.7,-1.3 0.2,-2.9 -1.3,0.4 -0.9,-1.1 -0.7,-0.6 1,-2.3 -0.2,-3.2 0.8,-0.5 z",AM:"m 425.33,139.79 -0.2,-0.1 -0.5,0.1 -0.7,-1.5 -1.9,-0.3 -2.1,-1 -0.5,-2.2 1.5,-0.3 1.5,-0.1 1.9,2.4 -0.6,0.4 z m -2.8,-4.9 0,0 -0.1,0 0,0.1 z m 0.4,0.2 -0.1,-0.1 0,0 0,0.1 z m 0.5,0.8 0,0 0.1,-0.1 -0.1,0 z",SX:"m 419.13,195.79 1.9,2 2.9,-0.8 1.3,0.4 1.8,-1 3,-0.1 0,3.4 -1.9,2.8 -1.9,0 -5.6,-1.9 -2.7,-3.1 0.6,-0.7 z",TM:"m 445.53,132.89 1.5,0.6 -0.4,-1.1 1.8,-1.5 2.5,1.1 0.4,2.1 3.6,0.9 0.9,2.3 6.1,3.9 1.8,0.5 -0.1,1.5 -1.4,-0.5 -1.9,1.1 -0.6,1.8 -4.2,2.4 -1.9,-1 -0.2,-2.1 -1.6,-0.1 -2.9,-2.4 -2.8,-0.6 -0.3,-0.6 -3.4,0.4 -2.9,1.6 0.1,-3.5 -0.8,-2.3 -1.6,-0.2 0.4,-2.1 1.5,0.8 1.9,-1.1 -1.5,-2.2 -0.8,-0.1 0,0 1.3,-0.5 2.6,2.4 0.9,-0.1 1.9,0.1 z m -7.6,-0.1 0.2,-0.3 0.6,0 0,0 -0.8,0.3 0,0 z m 0,0 -0.5,1.3 -0.7,-0.8 1.2,-0.5 0,0 z",ZM:"m 390.93,235.69 1.2,-1.4 -0.5,-0.4 3.2,-0.5 0.9,1.1 0.2,-0.4 1.6,1 1.8,0.6 1.4,2.3 -0.8,0.5 0.2,3.2 -1,2.3 0.7,0.6 -5.7,1.9 0.4,1.3 -3,0.8 -0.2,0.9 -1.2,0.6 -1.1,0.6 -1,1.6 -0.6,0.2 -2.8,-0.5 -2,-0.6 -1.6,0.3 -2.6,-2.9 0,-6.2 3.8,0 0,-4.1 0.6,1 1.9,-0.4 0.1,0.9 2.6,0.7 0.9,-0.8 3.9,3.6 1.1,0 0,-2.5 -1.4,0.4 -1.3,-1.8 0.6,-3.1 z",NC:"m 401.23,148.19 -0.3,0 -0.1,0 -0.6,-0.3 -1.2,0 0,0 0,0 0,0 -0.1,0 0,0 3.6,-1.1 -1.1,1.4 z m -2.5,-0.3 0.1,0 -0.1,0.1 z",MR:"m 319.73,164.49 6,3.8 1.3,0.9 -3.3,0 2,18.9 -10,0.1 -1.9,-0.2 -1,1.5 -4,-3.7 -3.8,0.4 -0.4,1.2 1,-4.2 -1,-2.8 0.7,-1.6 -1.7,-1.1 0.2,-1.1 7.6,0 0,-3.4 1.9,-0.9 0,-5.1 6.3,0 z",DZ:"m 327.03,169.19 -1.3,-0.9 -6,-3.8 0,-0.7 0,-2.1 1.9,-1.5 3.7,-0.5 4,-2.3 0,-1.9 2.2,-1.1 2.4,0.1 0.4,-0.9 -1.2,-1.5 -0.2,-3.2 -0.9,-0.8 6.3,-3 3.6,-0.7 3.5,-0.2 0.9,0.5 4.1,-0.9 2.3,0.3 -0.4,1.1 -0.3,3.9 -1.4,1.6 1.6,2.9 1.4,1 0.9,3.8 0.6,2.3 0,5.4 -0.8,0.8 1.2,2.6 2.9,1.1 0.8,1.6 -8.6,5.3 -3.2,2.8 -3,0.6 -2.2,0 0.2,-1.3 -2.5,-0.8 -1.4,-1.8 z",LT:"m 377.03,100.09 -0.2,-1.2 -0.2,-1 2,-1 4.5,0.5 0.8,-0.5 3.3,2.1 0.3,0.9 -1.7,1 -0.8,1.7 -2,1.1 -1.8,-0.1 0,-0.6 -1.3,-0.5 0.1,-1.4 z m -0.7,-0.1 0.3,-0.6 -0.1,0.6 z",ET:"m 416.33,196.19 -0.2,0.2 0.2,0.2 0.3,0.3 1.9,-0.1 -0.6,0.7 2.7,3.1 5.6,1.9 1.9,0 -5.8,5.9 -1.8,-0.1 -4,1.9 -2.2,-0.6 -2.3,1.7 -2.8,-0.4 -2.4,-1.6 -1.7,-0.3 -2.3,-3.9 -2,-1.9 -1.2,-0.3 0.3,-1.3 1.4,0.1 0.2,-2 1,-2.7 0.5,0.3 1.6,-3.7 0.8,-0.1 0.8,-3 2.6,-1.2 5.7,1.5 2.9,3.1 -1.2,1.8 z",ER:"m 417.43,193.89 -2.9,-3.1 -5.7,-1.5 -2.6,1.2 -0.2,-1.7 1.1,-3.8 3.1,-1.8 2.1,5.6 2.8,0.9 3.7,3.8 -0.8,0.6 z",GH:"m 338.53,206.19 -6.2,2.6 -2,-0.7 0,-0.1 0.3,0.1 0.2,-0.1 -0.7,-3.3 1.4,-2.6 -0.4,-2.4 -0.1,-2.9 5,-0.3 1,1.8 0.3,6.4 z",SI:"m 362.33,124.59 0,-0.1 0.2,-0.1 -0.6,-1.7 0.6,-0.6 1.6,0.4 3,-1.2 0.3,0 0.5,0.9 -1.7,0.7 -0.6,1.8 z",GT:"m 166.03,187.29 0.6,0.3 0.8,0 -1.8,1.3 -0.4,1.3 -1.5,1.1 0.1,0.2 -2.4,-0.4 -1.7,-1.2 0.9,-2.9 2.6,-0.6 -2,-1.8 0.9,-1.1 3.5,0 -0.2,3.8 z",BA:"m 370.13,130.69 -0.2,-0.1 0,0 -2.6,-3 -0.8,-2.2 2.2,-0.3 4,1 0.7,-0.1 -0.4,3.2 -1.4,1.3 0,1 -1.1,-0.6 z",JO:"m 404.13,156.59 0.2,-0.2 -0.2,-0.1 -0.1,0 0.1,-0.2 0.2,0 0.1,-0.9 0,-1.8 0.3,-0.3 2,1 3.8,-2.3 0.6,1.9 0.1,0.8 -4.2,1.3 2,2.1 -3.7,2.7 -2.1,-0.3 0.1,-0.4 -0.1,-0.1 0.4,-1.8 z",SY:"m 410.53,151.79 -3.8,2.3 -2,-1 0.3,-0.4 -0.1,-1 1.5,-1.7 -1.3,-0.9 -0.1,-1.7 0,-1.1 1.4,-2 3.1,-0.1 2.9,0.3 4.7,-1.3 0.3,0.5 -1.9,1.3 -0.3,3.8 -1,1 z",MC:"m 350.53,128.69 0,0.1 -0.1,0 0.1,-0.1 z",AL:"m 376.43,135.29 0,0 0,-0.1 z m -3,-2.8 0,-0.3 0,-0.2 0.6,-0.8 0.7,0.3 0.8,0.8 0.2,0.7 -0.3,0.8 0.4,1 0,0.4 0.2,0 0.2,0 0.2,0 -0.1,0.1 0.1,0 0,0.1 -0.1,0.1 0.1,0 0,0.1 0.1,0.1 0,0.1 0,-0.1 -1.2,2 -0.7,0.3 -1.4,-2.2 0.2,-2.7 -0.1,-0.3 z m 0,-0.4 0,0 -0.1,0 z",UY:"m 234.53,282.19 -0.9,1 0.2,0.9 0,0.2 0.3,0.2 -0.8,1.4 -2.2,1.2 -2.3,0 -3.3,-1 -1,-1.2 0.3,-3.1 0,-1.2 1.2,-3.6 1.5,-0.2 1.5,2.1 0.8,-0.5 z",CNM:"m 401.43,148.19 0,0 0,0 -0.2,0 0,0 z m -2.7,-0.3 0,0 0,0.1 0.1,-0.1 0,0 0,0.1 z m 0.2,0 0,0 0,0 0.1,0 0,0 z m 1.9,0.3 0,0.1 0,0 -0.5,-0.3 -1.3,-0.1 0,0 1.2,0 z", -MN:"m 561.33,119.09 0.7,-0.2 -0.3,-0.3 1.5,0 2.6,2.6 -0.4,0.8 -2.7,-0.3 -3.2,1 -1.8,2 -2.1,0.2 -1.8,1.5 -3.1,-0.8 -1.1,1.5 1,1.7 -4.7,2.9 -5.2,0.4 -3,1.2 -2.8,0 -3.3,-1 -0.7,-0.7 -10.1,-0.5 -1.9,-3.7 -3.6,-1.5 -5,-0.6 0.3,-3.3 -1.4,-2.6 -2.4,-0.8 -2.1,-1.5 -0.3,-1.4 8.7,-4.2 3.6,0.7 0.7,1.4 5.2,0.7 1.9,-2 -1,-1.2 2.1,-2.9 6.3,2.1 0.2,1.8 2.7,1.2 3.1,-0.9 5,1.4 1.2,1.5 4.2,0.5 4.4,-1.2 2.4,-1.7 2.1,1 2.5,0.2 -2.3,4.1 0.7,1.1 z",RW:"m 391.83,222.89 -0.2,-0.1 0,-0.3 0.9,-0.9 -0.3,-0.6 0.3,-0.3 0.4,-0.3 0.7,0.2 1,-0.8 0.7,1 -0.5,1.5 -1.3,0.5 z",SO:"m 416.53,210.19 4,-1.9 1.8,0.1 5.8,-5.9 1.9,-2.8 0,-3.4 4.5,-1.1 -0.9,4.5 -5.5,9.6 -3.7,3.8 -4.9,3.5 -3.7,4.4 -1.1,-1.6 0,-7 z",BO:"m 204.03,248.89 -0.1,-0.3 0.3,0.3 -0.1,0 z m -0.8,2.5 -0.3,-0.4 1.2,-1.5 0.9,-0.4 -1.5,-1.6 0.9,-2.6 -0.4,-1 0.8,-2.2 -1.7,-3 2.4,0 3.2,-2 2.3,-0.5 0.1,2.9 1.9,2.5 2.5,0.4 2.4,1.7 2.6,0.5 0.6,4.8 3.2,0.1 0.2,1.8 1.6,1.8 -1.2,3.9 -1.8,-1.7 -5.1,0.7 -0.9,1.8 -0.8,3.4 -2.4,-0.5 -0.8,1.7 -0.5,-1.3 -3.1,-0.8 -1.9,2 -1.3,0 -0.6,-3 -1.1,-1.7 0.6,-2 -1,-1 z",CM:"m 361.73,213.69 -3.7,-0.3 0,0.2 -2.6,0 -0.4,-0.3 -0.3,-2.9 -2,-1.8 0.5,-1.9 3.3,-2.5 1.4,1.3 1.8,-3.6 4.7,-7.4 -1.2,-1.7 0.5,-0.1 -0.1,0.4 0.4,-0.1 1.3,2.7 -0.2,1.5 1.2,1.5 -2.9,0 -0.4,0.7 2.3,2.2 0.6,1.8 -2.1,2.9 1.5,4.3 1.8,1.8 0.2,1.1 -0.1,1 -3,-0.9 z m 2.1,-21 0,0.1 0,-0.1 z",CG:"m 361.73,213.69 2.5,-0.1 3,0.9 0.1,-1 0.7,-2.3 1.7,-0.5 2.2,0.5 -1,2.5 -0.6,5.1 -2.9,3 -0.1,2.3 -2.6,2.8 -0.9,-1 -2.5,0.7 -0.6,-0.5 -1.4,1.2 -0.4,-0.8 -1.3,-1.2 1.3,-0.5 -0.5,-2.6 1.7,-0.8 3.2,1.1 0.7,-3.6 -1.2,-0.7 1.2,-2.2 -2.4,-0.6 z",EH:"m 303.63,177.69 -0.1,-0.2 0.2,-1.1 4.2,-0.1 1.2,-1.7 0.3,-2.2 3.1,-2.9 0.7,-2.4 1.3,-1.7 3.1,0 1.8,-0.5 0.3,-1.1 0,0.7 -0.1,2.7 -6.3,0 0,5.1 -1.9,0.9 0,3.4 -7.6,0 z",RS:"m 373.03,129.19 0.4,-3.2 -0.7,0.1 0,-0.7 -0.2,-1.8 1.2,-0.6 1.3,0.1 2.4,2.3 -0.2,0.9 2.5,1.3 -0.6,1 1.1,1.6 -1.1,1.8 -0.8,0 -0.7,0.2 0.3,-1 -1.9,-1.4 -0.8,1 -1.4,-0.8 z",ME:"m 373.03,129.19 0.8,0.8 1.4,0.8 -0.6,0.3 0.1,0.4 -0.7,-0.3 -0.6,0.8 0,0.1 -0.1,0 -0.4,0 0.5,0.4 -0.1,0.3 0.1,0.3 -1.2,-1 -0.5,-0.3 -0.1,-0.2 0,-0.1 0,-1 z",TG:"m 338.03,196.79 1.3,3.7 0.1,5.4 -0.4,0.1 -0.5,0.2 -1.2,-1.5 -0.3,-6.4 -1,-1.8 1.2,0.3 z",LA:"m 542.13,189.59 -1.3,0.8 -3.1,-0.1 0.8,-2.7 -1.7,-1.6 0.2,-1.6 -1.6,-1.9 -1.2,-0.2 -1.5,1.2 -1,-0.8 -1.8,1.5 0.2,-4 -1.5,0 -0.7,-1.6 1.2,-2 0.9,-0.5 1,0.9 -0.4,-2.3 1.2,-0.3 1.6,1.7 0.3,1.4 1.8,-0.2 1.7,1.8 -2.1,1.5 1.7,1 3.4,3.5 2.2,3.4 z",AF:"m 479.73,143.39 -1,0.3 0.3,0.2 -3.8,0.4 -2.7,1.7 0.9,1.9 -1.1,2.4 -2,0.1 0.6,1.5 -1.5,0.5 -0.4,2.5 -2.3,0.2 -3.4,1.9 -0.3,2.3 -4,0.9 -3.1,0 -3.1,-1 1.8,-2.1 -0.2,-1.1 -1.7,-0.2 -0.5,-3.3 1.4,-5.5 1.9,1 4.2,-2.4 0.6,-1.8 1.9,-1.1 1.4,0.5 1.4,0.3 1,0 2.9,0.2 1.6,-0.9 0.9,-1.8 2,1 0,2.6 3.2,-1.7 z",UA:"m 378.73,117.59 0.3,-0.7 0.4,-1 0.2,-1.1 2.8,-2.5 -0.9,-2.5 1.5,-0.9 2.6,-0.1 2.9,0.8 3.9,0.6 2.3,-0.5 0.8,-1.3 1.6,-0.1 3.9,-0.6 1.2,1.5 -0.5,1.3 1.7,0.1 1.1,2.2 3.4,-0.2 3.4,1.4 1.8,1.5 -0.8,1.2 0.1,2.3 -1.8,-0.1 -1.2,1.8 -4.4,1.1 -2.1,1.2 1.5,2.5 -3.1,1.7 -2.1,-2.9 1.7,-0.7 -3.9,-0.7 1.2,-0.6 -2.3,-0.4 -2.6,2.4 -0.2,1 -1.7,-0.1 -1.1,-0.5 1.4,-2.4 2.2,0.2 -1.9,-2.8 0.3,-0.8 -2.9,-1.4 -2.2,0.4 -2.6,0.9 -4.5,-0.1 -0.5,-0.4 z m 15.3,4.9 0.5,0.7 0.2,-0.2 -0.6,-0.6 z m 7.4,0.7 1.8,1 -0.3,-0.9 -1.2,-0.6 z",SK:"m 379.43,115.89 -0.4,1 -0.3,0.7 -3.2,-0.3 -1.1,0.9 -4,1 -1.3,-0.6 -0.6,-0.9 0.2,-0.6 2.2,-1.2 1.4,-1.1 5.8,0.4 z",JK:"m 485.23,147.19 -1.4,0.9 -0.5,-1.2 1.1,0.4 z",BG:"m 391.03,128.69 -1.7,3.1 0.6,1 -1.8,-0.2 -1.4,0.8 -2.1,1.1 -1.4,-0.8 -3,0.6 0.1,-1 -1.2,-1.3 1.1,-1.8 -1.1,-1.6 0.6,-1 1.2,0.8 3.9,0.5 3.2,-1.2 z",QA:"m 433.63,169.69 -0.2,-1.5 1.6,-0.8 -0.7,2.6 -0.4,0.1 z",LI:"m 354.53,120.39 0.2,0.3 -0.1,0.2 -0.2,-0.1 z",AT:"m 354.63,120.89 0.1,-0.2 -0.2,-0.3 0.3,-0.4 -0.2,-0.2 0.2,0 0.1,-0.1 2.4,0.3 2.3,-0.7 1.6,0.5 -0.5,-1.5 2,-1.6 1.7,0.4 0.5,-0.9 3.8,0.9 -0.2,0.6 0.6,0.9 -1.1,0.6 -0.9,2.1 -3,1.2 -1.6,-0.4 -2.5,-0.4 -0.4,-0.9 -3.3,0.5 -0.7,0.1 z",SZ:"m 397.43,268.29 0.2,0.6 0.2,1.2 -1.9,0.7 -0.6,-1.6 1.1,-1.4 z",HU:"m 378.73,117.59 0.9,0.7 0.5,0.4 -1.7,1.1 -1.6,2.9 -1.8,0.4 -1.3,-0.1 -1.2,0.6 -3,-0.1 -1.6,-1.3 -0.5,-0.9 -0.3,0 0.9,-2.1 1.1,-0.6 1.3,0.6 4,-1 1.1,-0.9 z",RO:"m 379.73,127.59 -2.5,-1.3 0.2,-0.9 -2.4,-2.3 1.8,-0.4 1.6,-2.9 1.7,-1.1 4.5,0.1 2.6,-0.9 0.8,0.3 2.4,3.7 -0.1,2.8 1.1,0.5 1.7,0.1 -2,2.1 -0.1,1.3 -3,-1 -3.2,1.2 -3.9,-0.5 z",NE:"m 343.23,195.39 -1.5,-1.3 -0.8,0.9 -0.4,-1.3 -2.3,-0.9 -1.5,-3.6 2.1,-0.7 4.2,-0.2 1.3,-2 0.1,-5.4 3,-0.6 3.2,-2.8 8.6,-5.3 2.9,0.7 1.4,1.1 1.5,-0.8 0.3,3.1 1.6,2.2 -0.5,0.9 -0.5,5.9 -3.9,4.9 0.3,1.3 -2.1,1.3 -2,-0.6 -2.5,0.2 -1,0.8 -3.4,-1 -1.7,0.7 -2.8,-1.7 -2.6,0.8 z",LU:"m 348.43,114.99 -0.7,0 -0.3,-0.2 -0.2,-0.9 0.8,-0.6 0.7,0.8 z",AD:"m 339.03,131.39 0.6,-0.1 -0.1,0.3 -0.3,0.2 z",CI:"m 331.13,199.69 0.4,2.4 -1.4,2.6 0.7,3.3 -5.7,0.2 -3.3,1.3 0.1,-2.8 -2.1,-1.3 0.2,-2 1.2,-3.6 -0.2,-1.4 3.3,-0.2 1.4,-0.3 1.6,1.4 2.8,-0.5 z m -0.8,8.4 -0.3,-0.1 0.3,0 z",LR:"m 320.03,203.39 -0.2,2 2.1,1.3 -0.1,2.8 -3.3,-1.5 -4.2,-3.4 1.7,-1.6 0.6,-1.4 1.5,0.3 0.7,2.2 z",BN:"m 556.53,208.59 0.2,-0.1 0,-0.1 0.4,1.2 z m -2,0.4 1.1,-0.2 0.8,-0.3 -0.7,1.6 z",IQ:"m 429.23,158.99 -0.8,-0.2 -0.3,0.1 -1.6,0.1 -1.1,1.8 -3.6,-0.2 -5,-3.9 -3.1,-1.8 -2.5,-0.4 -0.1,-0.8 -0.6,-1.9 3.7,-2 1,-1 0.3,-3.8 1.9,-1.3 0.7,-0.5 3.9,0.4 1,2.6 2,0.4 -1.8,3.9 1.7,2.2 2.1,1.2 0.9,1.3 -0.3,1.6 z",GE:"m 422.43,134.39 -1.5,0.1 -1.5,0.3 -1.2,-1.1 -2.4,0.2 -0.1,-2.6 -2.9,-1.8 5.5,0.6 2.1,1.4 1.7,-0.4 3.1,1.9 0.1,1.9 z",GM:"m 304.23,192.79 -0.1,-0.6 0.5,-0.4 3.2,-0.4 -1.8,1.2 z",CH:"m 353.93,119.39 0,0 0,0 0,0 0.6,0.4 0.1,0 0.2,0.2 -0.3,0.4 -0.1,0.4 0.2,0.1 1,0.5 0.7,-0.1 -0.9,1.2 -2.2,0.7 -1.5,-0.4 -2,0.8 -0.5,-0.5 0.1,-0.7 -0.3,-0.3 -0.5,0.4 -0.3,0.2 -0.2,-0.7 2.8,-2.4 1.7,0 z",TD:"m 364.03,192.99 0.6,-0.2 -0.8,-0.1 0,0 -0.2,-0.1 0.1,0.1 -0.5,0.1 -0.9,-1.3 -0.3,-1.3 3.9,-4.9 0.5,-5.9 0.5,-0.9 -1.6,-2.2 -0.3,-3.1 1.9,-0.9 15.3,7.9 0,7.4 -1.7,0.1 -1.1,3 -0.9,0.7 0.3,2 1.2,3.5 -0.7,-0.1 -3.9,3.5 -2.6,0.3 -0.9,1.8 -3.5,1 -2.5,0 -0.6,-1.8 -2.3,-2.2 0.4,-0.7 2.9,0 -1.2,-1.5 0.2,-1.5 z",KV:"m 375.73,132.99 -0.2,-0.7 -0.8,-0.8 -0.1,-0.4 0.6,-0.3 0.8,-1 1.9,1.4 -0.3,1 -0.9,0.1 z",LB:"m 403.53,152.39 0.9,-1.7 0.7,-1.6 1.3,0.9 -1.5,1.7 -0.7,0.7 z",DJ:"m 418.53,196.79 -1.9,0.1 -0.3,-0.3 0.2,-0.2 -0.2,-0.2 -0.1,-0.5 1.2,-1.8 0.6,0.2 0.8,-0.6 0.5,1.4 -0.2,0.9 z",BI:"m 393.13,226.19 -0.6,-1 -0.3,-1.1 0,-0.5 -0.4,-0.7 1.7,-0.1 1.3,-0.5 0.5,1.6 z",SR:"m 231.73,213.29 -2.6,-0.3 -1,1.1 -3,-4.3 1.6,-2.5 0.5,-1 5.6,0.4 -0.2,0.9 -0.6,0.8 0.9,2.8 z",IL:"m 401.83,156.19 1.2,-2.1 0.5,-1.7 0.7,0 0.7,-0.7 0.1,1 -0.3,0.4 -0.3,0.3 0,1.8 -0.4,0.5 0.1,0.4 -0.1,0.2 0.1,0 -0.1,0.2 0.1,0.1 -0.5,1.4 -0.4,1.8 -0.1,0.2 0,0 -0.1,-0.5 z",ML:"m 325.73,197.89 -1.4,0.3 -3.3,0.2 -0.8,-2.3 -1.5,-2.2 -2.9,1.1 -1.3,-0.9 -1.4,-2.6 -0.3,-2 1,-1.5 1.9,0.2 10,-0.1 -2,-18.9 3.3,0 11.5,7.8 1.4,1.8 2.5,0.8 -0.2,1.3 2.2,0 -0.1,5.4 -1.3,2 -4.2,0.2 -2.1,0.7 -1.8,-0.3 -2.7,1.8 -1.4,0.2 -1.3,1.7 -1,-0.5 -1,2.4 -1.1,0.4 z",SN:"m 304.23,194.19 -0.1,-0.9 0.1,-0.5 1.8,-0.2 1.8,-1.2 -3.2,0.4 -1.1,-2.6 1.1,-1.8 0.4,-1.2 3.8,-0.4 4,3.7 0.3,2 1.4,2.6 -1.9,0.1 -2.6,-0.7 -2.8,0 z",GN:"m 314.53,194.09 1.3,0.9 2.9,-1.1 1.5,2.2 0.8,2.3 0.2,1.4 -1.2,3.6 -1.2,0.7 -0.7,-2.2 -1.5,-0.3 -1.9,-2.9 -2.4,0.3 -1.5,1.5 -1,-1.5 -2.3,-2.2 0.6,-1 1.9,-0.4 0,-1.9 2.6,0.7 z",ZW:"m 384.63,251.99 2.8,0.5 0.6,-0.2 2.1,-2.2 0,0 1.2,-0.6 0.2,-0.9 3,-0.8 4.9,2 0.1,3.3 -0.5,2.2 0.5,1.1 -1.2,2.5 -2.1,2.2 -1.8,-0.1 -1.9,-0.3 -2.6,-1.2 -0.6,-2.2 -3,-2 z",PL:"m 373.83,102.19 -0.4,0.5 0.7,-0.5 5.6,0.3 0.2,0 1.3,0.5 0,0.6 0.8,3.3 -1.4,0.9 0.9,2 0.9,2.5 -2.8,2.5 -0.2,1.1 -1.3,-0.7 -5.8,-0.4 -0.5,-0.9 -4.1,-1.7 -3.1,-0.7 -0.3,-4.4 -1,-0.7 0.3,-2.2 0.7,-0.4 -0.8,-0.1 -0.1,-0.1 0.1,0 3.7,-1 0.8,-0.7 3.3,-0.7 0.6,1.1 1.9,-0.1 z",MK:"m 376.43,135.29 0,0 0,0.1 z m 2.7,-3.3 1.2,1.3 -0.1,1 -2,0.5 -1.5,0.6 -0.3,-0.4 0,0.3 0,-0.1 0,0 -0.2,0 -0.2,0 0.1,-0.4 -0.3,0 -0.4,-1 0.3,-0.8 1,-0.7 0.9,-0.1 0.7,-0.2 z",PY:"m 232.43,264.39 -0.3,0.8 -0.4,2 0.1,0.2 -0.1,0.1 -0.3,2.2 -1.9,1.6 -5.4,-0.2 2,-3.9 -4.8,-2.9 -1.8,-0.4 -3.2,-3.1 0.8,-3.4 0.9,-1.8 5.1,-0.7 1.8,1.7 0.7,1.6 -0.3,2.2 3,0.1 1.5,1.1 0.4,2.6 z",BY:"m 381.53,109.79 -0.9,-2 1.4,-0.9 -0.8,-3.3 1.8,0.1 2,-1.1 0.8,-1.7 1.7,-1 -0.3,-0.9 1.9,-0.4 1.1,-0.9 5.2,1.4 1.7,4.8 1.8,1 -2.8,1.1 1,2.3 -1.6,0.1 -0.8,1.3 -2.3,0.5 -3.9,-0.6 -2.9,-0.8 -2.6,0.1 z",CZ:"m 372.33,114.79 -1.4,1.1 -2.2,1.2 -3.8,-0.9 -0.5,0.9 -1.7,-0.4 -2.7,-2.4 0.2,-1.6 4.4,-1.2 3.1,0.7 4.1,1.7 z",BF:"m 338.03,196.79 -0.8,0 -1.2,-0.3 -5,0.3 0.1,2.9 -1,-0.9 -2.8,0.5 -1.6,-1.4 0.7,-3 1.1,-0.4 1,-2.4 1,0.5 1.3,-1.7 1.4,-0.2 2.7,-1.8 1.8,0.3 1.5,3.6 2.3,0.9 0.4,1.3 -1.9,0.9 z",NA:"m 381.03,251.69 1.6,-0.3 2,0.6 -3.2,1.3 -0.5,-0.9 -4.5,0.6 0.1,7.2 -2,0.1 0,5.5 0,7.5 -1.6,1.1 -3.3,-0.5 -0.6,-1.4 -1.2,1.2 -2.2,-2.6 -1.4,-5.6 -0.4,-4.6 -1.9,-2.9 -1.6,-3.5 -1,-1.1 -0.5,-2.5 2.7,-0.6 1.5,0.9 8.6,0 0.6,0.7 3.9,0.5 z",LY:"m 365.03,173.19 -1.5,0.8 -1.4,-1.1 -2.9,-0.7 -0.8,-1.6 -2.9,-1.1 -1.2,-2.6 0.8,-0.8 0,-5.4 -0.6,-2.3 1.4,-1.4 -0.3,-1.1 2.8,-2.2 -0.1,-1.5 1.6,0.8 1.9,-0.2 3.5,1.1 1.7,2.3 2.5,0.4 3.3,1.8 1.3,-0.5 0.3,-2.7 1.2,-1.7 2.1,-0.8 2.8,0.7 0,0.6 3.6,0.8 0.3,0.6 -0.9,3.1 0.6,2.1 0,14.6 0,4 -1.9,0 0,1 -15.3,-7.9 z",TN:"m 358.33,152.19 0.1,1.5 -2.8,2.2 0.3,1.1 -1.4,1.4 -0.9,-3.8 -1.4,-1 -1.6,-2.9 1.4,-1.6 0.3,-3.9 0.4,-1.1 2.2,-0.9 2.7,4.6 -1.9,2 0.4,1.3 1.4,-0.2 z",BT:"m 506.53,164.49 2.5,-2.2 2.7,1.3 0.9,1.7 -4.4,0.4 z",MD:"m 390.33,124.69 0.1,-2.8 -2.4,-3.7 -0.8,-0.3 2.2,-0.4 2.9,1.4 -0.3,0.8 1.9,2.8 -2.2,-0.2 z",SS:"m 401.33,209.69 -0.9,0.9 -5.1,0.5 -2,-2 -2.7,0.5 -1.8,-1.5 -1.9,-1.9 -0.1,-1.1 -2,-1.3 -2.2,-2.6 1.7,-3.1 1.4,-0.2 1.4,1.7 4.4,0.4 2.2,-1.8 2.4,0.9 2.2,-2.4 -0.6,-1.9 2.2,-0.4 -0.1,2.7 1.7,2.6 -0.2,2 -1.4,-0.1 -0.3,1.3 1.2,0.3 2,1.9 2.3,3.9 -1,-0.8 z",BW:"m 384.63,251.99 1.7,3.3 3,2 0.6,2.2 2.6,1.2 -2.2,0.9 -2.3,2 -0.3,1.3 -1.9,0.9 -0.5,1.8 -1.5,0.4 -3.4,-1.1 -0.6,1.4 -2,1.8 -1.9,0.1 0.3,-1.6 -1.7,-2.8 0,-5.5 2,-0.1 -0.1,-7.2 4.5,-0.6 0.5,0.9 z",BS:"m 191.33,169.99 -1.3,-1.4 0,0 0,0 0.5,0.3 0.8,1.1 z m 0,0 0.8,0.9 0.5,2.1 4.4,1.5 -4,-1 -2.2,-1.6 1.1,-1.1 -0.6,-0.8 z m -1.3,-1.4 -1.6,-1.2 -1.4,1.5 0.7,2.9 -1.3,-1.9 0.1,-1.1 1.9,-1.9 1.6,1.7 0,0 z",NZ:"m 661.13,313.49 -2.7,-0.1 -0.2,1.4 -0.8,-2.2 -1.8,0.1 -0.6,-1 0.9,-1.6 2.7,-2.6 2.6,-1.1 2.7,-2.2 1.9,-3.9 1.2,-0.9 0.7,1.8 1.4,-0.9 0.7,2.2 -3.4,4.3 -2.1,1.3 -1.3,3.3 z m 12.3,-12.7 -1.6,1.1 -1.2,-0.7 1.2,-2.3 -2.8,-2 1.6,-1.3 0.4,-2.3 -0.9,-2.5 -2.4,-3.1 1.5,-0.5 2.4,2.7 1.4,1.1 0.2,2 2.8,0.7 2.2,-0.5 -1.4,3 -0.9,-0.1 z",CU:"m 188.73,178.29 -3,-0.4 -1.1,-1.8 -2.4,-1 -2.6,-0.2 -0.1,-1 -1.7,-0.1 -3.3,1.9 0.2,-1.2 2.2,-1.3 2.3,-0.4 3.8,0.3 1.6,1.4 0.9,-0.3 0.8,0 3.4,2.7 3.5,1.1 0.9,1.1 -6.6,0.5 z",EC:"m 182.53,224.19 1,-1.4 -2.1,-0.6 0,-2.4 1.6,-2.1 -0.1,-1.3 2.5,-1.4 2.6,1.5 2.2,0.4 1.9,1.1 -0.5,2.7 -2.1,2 -3.2,1.5 -1.4,3.1 -2.8,-1.8 z",AU:"m 617.53,306.39 -1.6,0 -1.5,-2.2 -1.1,-3.5 0,-1.4 -1.2,-0.9 4.1,2.5 3.8,-1.3 0.1,2.7 -0.5,3.3 -0.9,-0.8 z m -1.4,-54.7 0.6,2.8 5.1,2.8 0.9,3.5 2.3,0.9 0.2,1.8 1.9,1.1 1.4,2.1 1.4,-0.3 -0.6,1.6 1,3.3 0.1,3 -2.1,7.5 -1.4,0.9 -3.1,6.5 -0.4,3.5 -3.2,0.7 -3.5,2 -2.9,-0.5 0.1,-1.3 -2.8,2.1 -2.2,-1.1 -3.3,-0.7 -1.8,-1.9 -0.3,-2.6 -1.1,-1 -4.4,1.1 1.2,-1 -0.6,-1.5 2,-3.8 -1.2,0 -3.4,3.9 -0.9,-2.3 -1.7,-1.5 -0.3,-1.5 -3.7,-0.9 -2.1,-1.2 -4.1,0.5 -3.2,1.2 -2.1,-0.1 -4,2 -1.1,1.6 -6.8,0 -3,2.1 -2.4,0.4 -2.3,-0.5 -1.9,-1.6 1.3,-1.7 0.1,-3.5 -1.4,-3 0,-1.6 -1.5,-2.8 -0.3,-1.6 -2.1,-3.2 1.1,-0.5 1.1,1.9 0.1,-1.4 -1.3,-2.5 0.4,-3.9 4.3,-3.1 3.5,-0.8 6.2,-2 2.6,-2.9 -0.3,-1.8 1.5,-1.3 1.1,1.8 0.1,-2.6 1.6,0.3 0,-2.1 1.3,-1.2 2.9,-0.8 0.6,-1 2.4,1.9 2.8,0.8 -0.6,-1.3 3.1,-4.8 -1.8,-0.3 0.7,-1.1 2,0.1 0,2 2.4,-0.3 -0.2,-2.2 1.1,1.3 3.7,1.1 2.7,-0.9 0.8,1 -1.9,2.8 -0.9,2.2 2.1,1.6 4.7,2.3 1.9,1.6 1.6,-0.5 1.6,-4.6 -0.1,-5 0.7,-0.9 0.3,-3.6 0.9,1.1 1.8,5.8 0.8,1.5 1,-0.7 1.7,1.5 0.1,2.7 z",VE:"m 199.73,195.09 -1.1,0.5 0.6,1.7 -1,1.7 1.2,1.5 0.9,-1.3 -1.1,-2.1 2.8,-1.2 2.4,0 1.8,1.9 3.2,-0.4 2.9,1.1 1.6,-1 2.3,-0.3 0.9,1.4 2.8,1.3 -0.2,0.9 1.7,0.7 -1,1.4 0.4,1.3 -1.7,1.1 -0.3,1.2 1.2,1.4 -1.6,1.8 -5.9,0.5 1.2,2.9 1.3,0.1 -1.5,1.6 -2.7,1.7 -2.6,-1.1 -0.6,-2.2 -1.2,-0.9 1,-1 -1.1,-2.2 0.8,-3.1 -3.8,0.1 -1.3,-1.6 -3.8,-0.2 -0.5,-2.5 -1.2,-1.8 0.2,-2.1 1.8,-2.4 z",SB:"m 644.23,236.59 -1.9,-0.1 0,-2.4 -2.9,-1.9 -1.4,0.8 1.2,1.3 -2.6,-1.1 0.1,-1.7 3.3,0.7 2.3,1.4 0.5,1.4 1.7,-0.8 z",MG:"m 431.73,249.49 -4.3,14.5 -1,2.3 -3.7,1.2 -2.1,-1.2 -0.5,-3.1 -1.1,-2.4 0.6,-1.9 1.8,-2.6 -1,-5 1,-2.5 2.2,-0.4 3.6,-1.7 1.4,-3.3 0.9,0.1 1.1,-2.9 1.3,2.1 1,4.7 -1.6,0.2 z",IS:"m 290.23,72.39 4.3,-0.5 -0.3,-1.1 -2.3,-0.6 -2.6,0.2 1.5,-0.8 0.6,-1.4 1.9,0.4 -0.2,-1.2 2.4,1.5 -0.4,1.4 1.1,0.6 1.6,-2.4 3.4,-0.2 1.4,0.7 2.1,-0.7 -0.1,-1 3.6,1.4 -0.3,1 2,0.7 0.5,1.4 -2,2.1 -6.1,2.1 -1.9,1 -2.8,-0.5 -1.9,-1 -2.9,0.1 1.9,-1.7 -1.4,-1.3 z",EG:"m 403.13,159.99 -1.2,3.6 -2,-1.7 -1.4,-2.9 0.2,2.1 1.9,2.4 0.8,2.4 2.9,5.4 0.3,2.1 2.3,1.8 -10.8,0 -12,0 0,-14.6 -0.6,-2.1 0.9,-3.1 4.2,0.7 3.3,1.1 2.5,-1.4 2.3,0.1 1,0.8 4.1,-0.5 1.2,3.3 z",KG:"m 477.33,138.49 -2.7,0.6 -1.5,-0.9 -4.1,0.2 1.2,-1.6 1.9,0 1.4,0.2 2.8,-1.5 -2.7,-1.5 -0.6,0.7 -2.4,-1 1.5,-1.5 1.7,-1.4 3.2,1 1.3,-2 1.9,1 6.2,-0.1 3.4,1.6 -3.5,1.9 -0.5,0.7 -2.5,0.3 -2.1,1.4 -0.3,-0.7 -3,1.3 z m -5.8,-0.9 -0.3,0 0.2,0.2 0.2,-0.1 z m 2.2,-0.1 0,-0.2 -0.2,0.1 0,0.1 z m -1.2,-0.3 -0.4,-0.1 0.2,0.5 0.3,-0.1 z",NP:"m 505.03,163.39 0.1,2.3 -1.6,0.7 -2.9,-0.4 -2.4,-1.6 -3.5,-0.3 -5.2,-2.8 0.6,-1.9 1.3,-0.9 2,-0.3 2.8,2.4 1.1,-0.1 1.9,1.9 1.7,0.9 1.1,-0.4 z"}}}}),b}); \ No newline at end of file diff --git a/htdocs/public/high/plugins/jquery-mapael/raphael-min.js b/htdocs/public/high/plugins/jquery-mapael/raphael-min.js deleted file mode 100644 index 1f8a3059..00000000 --- a/htdocs/public/high/plugins/jquery-mapael/raphael-min.js +++ /dev/null @@ -1,11 +0,0 @@ -// ┌────────────────────────────────────────────────────────────────────┐ \\ -// │ Raphaël 2.1.4 - JavaScript Vector Library │ \\ -// ├────────────────────────────────────────────────────────────────────┤ \\ -// │ Copyright © 2008-2012 Dmitry Baranovskiy (http://raphaeljs.com) │ \\ -// │ Copyright © 2008-2012 Sencha Labs (http://sencha.com) │ \\ -// ├────────────────────────────────────────────────────────────────────┤ \\ -// │ Licensed under the MIT (http://raphaeljs.com/license.html) license.│ \\ -// └────────────────────────────────────────────────────────────────────┘ \\ -!function(a){var b,c,d="0.4.2",e="hasOwnProperty",f=/[\.\/]/,g="*",h=function(){},i=function(a,b){return a-b},j={n:{}},k=function(a,d){a=String(a);var e,f=c,g=Array.prototype.slice.call(arguments,2),h=k.listeners(a),j=0,l=[],m={},n=[],o=b;b=a,c=0;for(var p=0,q=h.length;q>p;p++)"zIndex"in h[p]&&(l.push(h[p].zIndex),h[p].zIndex<0&&(m[h[p].zIndex]=h[p]));for(l.sort(i);l[j]<0;)if(e=m[l[j++]],n.push(e.apply(d,g)),c)return c=f,n;for(p=0;q>p;p++)if(e=h[p],"zIndex"in e)if(e.zIndex==l[j]){if(n.push(e.apply(d,g)),c)break;do if(j++,e=m[l[j]],e&&n.push(e.apply(d,g)),c)break;while(e)}else m[e.zIndex]=e;else if(n.push(e.apply(d,g)),c)break;return c=f,b=o,n.length?n:null};k._events=j,k.listeners=function(a){var b,c,d,e,h,i,k,l,m=a.split(f),n=j,o=[n],p=[];for(e=0,h=m.length;h>e;e++){for(l=[],i=0,k=o.length;k>i;i++)for(n=o[i].n,c=[n[m[e]],n[g]],d=2;d--;)b=c[d],b&&(l.push(b),p=p.concat(b.f||[]));o=l}return p},k.on=function(a,b){if(a=String(a),"function"!=typeof b)return function(){};for(var c=a.split(f),d=j,e=0,g=c.length;g>e;e++)d=d.n,d=d.hasOwnProperty(c[e])&&d[c[e]]||(d[c[e]]={n:{}});for(d.f=d.f||[],e=0,g=d.f.length;g>e;e++)if(d.f[e]==b)return h;return d.f.push(b),function(a){+a==+a&&(b.zIndex=+a)}},k.f=function(a){var b=[].slice.call(arguments,1);return function(){k.apply(null,[a,null].concat(b).concat([].slice.call(arguments,0)))}},k.stop=function(){c=1},k.nt=function(a){return a?new RegExp("(?:\\.|\\/|^)"+a+"(?:\\.|\\/|$)").test(b):b},k.nts=function(){return b.split(f)},k.off=k.unbind=function(a,b){if(!a)return void(k._events=j={n:{}});var c,d,h,i,l,m,n,o=a.split(f),p=[j];for(i=0,l=o.length;l>i;i++)for(m=0;mi;i++)for(c=p[i];c.n;){if(b){if(c.f){for(m=0,n=c.f.length;n>m;m++)if(c.f[m]==b){c.f.splice(m,1);break}!c.f.length&&delete c.f}for(d in c.n)if(c.n[e](d)&&c.n[d].f){var q=c.n[d].f;for(m=0,n=q.length;n>m;m++)if(q[m]==b){q.splice(m,1);break}!q.length&&delete c.n[d].f}}else{delete c.f;for(d in c.n)c.n[e](d)&&c.n[d].f&&delete c.n[d].f}c=c.n}},k.once=function(a,b){var c=function(){return k.unbind(a,c),b.apply(this,arguments)};return k.on(a,c)},k.version=d,k.toString=function(){return"You are running Eve "+d},"undefined"!=typeof module&&module.exports?module.exports=k:"undefined"!=typeof define?define("eve",[],function(){return k}):a.eve=k}(window||this),function(a,b){"function"==typeof define&&define.amd?define(["eve"],function(c){return b(a,c)}):b(a,a.eve||"function"==typeof require&&require("eve"))}(this,function(a,b){function c(a){if(c.is(a,"function"))return u?a():b.on("raphael.DOMload",a);if(c.is(a,V))return c._engine.create[D](c,a.splice(0,3+c.is(a[0],T))).add(a);var d=Array.prototype.slice.call(arguments,0);if(c.is(d[d.length-1],"function")){var e=d.pop();return u?e.call(c._engine.create[D](c,d)):b.on("raphael.DOMload",function(){e.call(c._engine.create[D](c,d))})}return c._engine.create[D](c,arguments)}function d(a){if("function"==typeof a||Object(a)!==a)return a;var b=new a.constructor;for(var c in a)a[z](c)&&(b[c]=d(a[c]));return b}function e(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return a.push(a.splice(c,1)[0])}function f(a,b,c){function d(){var f=Array.prototype.slice.call(arguments,0),g=f.join("␀"),h=d.cache=d.cache||{},i=d.count=d.count||[];return h[z](g)?(e(i,g),c?c(h[g]):h[g]):(i.length>=1e3&&delete h[i.shift()],i.push(g),h[g]=a[D](b,f),c?c(h[g]):h[g])}return d}function g(){return this.hex}function h(a,b){for(var c=[],d=0,e=a.length;e-2*!b>d;d+=2){var f=[{x:+a[d-2],y:+a[d-1]},{x:+a[d],y:+a[d+1]},{x:+a[d+2],y:+a[d+3]},{x:+a[d+4],y:+a[d+5]}];b?d?e-4==d?f[3]={x:+a[0],y:+a[1]}:e-2==d&&(f[2]={x:+a[0],y:+a[1]},f[3]={x:+a[2],y:+a[3]}):f[0]={x:+a[e-2],y:+a[e-1]}:e-4==d?f[3]=f[2]:d||(f[0]={x:+a[d],y:+a[d+1]}),c.push(["C",(-f[0].x+6*f[1].x+f[2].x)/6,(-f[0].y+6*f[1].y+f[2].y)/6,(f[1].x+6*f[2].x-f[3].x)/6,(f[1].y+6*f[2].y-f[3].y)/6,f[2].x,f[2].y])}return c}function i(a,b,c,d,e){var f=-3*b+9*c-9*d+3*e,g=a*f+6*b-12*c+6*d;return a*g-3*b+3*c}function j(a,b,c,d,e,f,g,h,j){null==j&&(j=1),j=j>1?1:0>j?0:j;for(var k=j/2,l=12,m=[-.1252,.1252,-.3678,.3678,-.5873,.5873,-.7699,.7699,-.9041,.9041,-.9816,.9816],n=[.2491,.2491,.2335,.2335,.2032,.2032,.1601,.1601,.1069,.1069,.0472,.0472],o=0,p=0;l>p;p++){var q=k*m[p]+k,r=i(q,a,c,e,g),s=i(q,b,d,f,h),t=r*r+s*s;o+=n[p]*N.sqrt(t)}return k*o}function k(a,b,c,d,e,f,g,h,i){if(!(0>i||j(a,b,c,d,e,f,g,h)o;)m/=2,n+=(i>k?1:-1)*m,k=j(a,b,c,d,e,f,g,h,n);return n}}function l(a,b,c,d,e,f,g,h){if(!(O(a,c)O(e,g)||O(b,d)O(f,h))){var i=(a*d-b*c)*(e-g)-(a-c)*(e*h-f*g),j=(a*d-b*c)*(f-h)-(b-d)*(e*h-f*g),k=(a-c)*(f-h)-(b-d)*(e-g);if(k){var l=i/k,m=j/k,n=+l.toFixed(2),o=+m.toFixed(2);if(!(n<+P(a,c).toFixed(2)||n>+O(a,c).toFixed(2)||n<+P(e,g).toFixed(2)||n>+O(e,g).toFixed(2)||o<+P(b,d).toFixed(2)||o>+O(b,d).toFixed(2)||o<+P(f,h).toFixed(2)||o>+O(f,h).toFixed(2)))return{x:l,y:m}}}}function m(a,b,d){var e=c.bezierBBox(a),f=c.bezierBBox(b);if(!c.isBBoxIntersect(e,f))return d?0:[];for(var g=j.apply(0,a),h=j.apply(0,b),i=O(~~(g/5),1),k=O(~~(h/5),1),m=[],n=[],o={},p=d?0:[],q=0;i+1>q;q++){var r=c.findDotsAtSegment.apply(c,a.concat(q/i));m.push({x:r.x,y:r.y,t:q/i})}for(q=0;k+1>q;q++)r=c.findDotsAtSegment.apply(c,b.concat(q/k)),n.push({x:r.x,y:r.y,t:q/k});for(q=0;i>q;q++)for(var s=0;k>s;s++){var t=m[q],u=m[q+1],v=n[s],w=n[s+1],x=Q(u.x-t.x)<.001?"y":"x",y=Q(w.x-v.x)<.001?"y":"x",z=l(t.x,t.y,u.x,u.y,v.x,v.y,w.x,w.y);if(z){if(o[z.x.toFixed(4)]==z.y.toFixed(4))continue;o[z.x.toFixed(4)]=z.y.toFixed(4);var A=t.t+Q((z[x]-t[x])/(u[x]-t[x]))*(u.t-t.t),B=v.t+Q((z[y]-v[y])/(w[y]-v[y]))*(w.t-v.t);A>=0&&1.001>=A&&B>=0&&1.001>=B&&(d?p++:p.push({x:z.x,y:z.y,t1:P(A,1),t2:P(B,1)}))}}return p}function n(a,b,d){a=c._path2curve(a),b=c._path2curve(b);for(var e,f,g,h,i,j,k,l,n,o,p=d?0:[],q=0,r=a.length;r>q;q++){var s=a[q];if("M"==s[0])e=i=s[1],f=j=s[2];else{"C"==s[0]?(n=[e,f].concat(s.slice(1)),e=n[6],f=n[7]):(n=[e,f,e,f,i,j,i,j],e=i,f=j);for(var t=0,u=b.length;u>t;t++){var v=b[t];if("M"==v[0])g=k=v[1],h=l=v[2];else{"C"==v[0]?(o=[g,h].concat(v.slice(1)),g=o[6],h=o[7]):(o=[g,h,g,h,k,l,k,l],g=k,h=l);var w=m(n,o,d);if(d)p+=w;else{for(var x=0,y=w.length;y>x;x++)w[x].segment1=q,w[x].segment2=t,w[x].bez1=n,w[x].bez2=o;p=p.concat(w)}}}}}return p}function o(a,b,c,d,e,f){null!=a?(this.a=+a,this.b=+b,this.c=+c,this.d=+d,this.e=+e,this.f=+f):(this.a=1,this.b=0,this.c=0,this.d=1,this.e=0,this.f=0)}function p(){return this.x+H+this.y+H+this.width+" × "+this.height}function q(a,b,c,d,e,f){function g(a){return((l*a+k)*a+j)*a}function h(a,b){var c=i(a,b);return((o*c+n)*c+m)*c}function i(a,b){var c,d,e,f,h,i;for(e=a,i=0;8>i;i++){if(f=g(e)-a,Q(f)e)return c;if(e>d)return d;for(;d>c;){if(f=g(e),Q(f-a)f?c=e:d=e,e=(d-c)/2+c}return e}var j=3*b,k=3*(d-b)-j,l=1-j-k,m=3*c,n=3*(e-c)-m,o=1-m-n;return h(a,1/(200*f))}function r(a,b){var c=[],d={};if(this.ms=b,this.times=1,a){for(var e in a)a[z](e)&&(d[_(e)]=a[e],c.push(_(e)));c.sort(lb)}this.anim=d,this.top=c[c.length-1],this.percents=c}function s(a,d,e,f,g,h){e=_(e);var i,j,k,l,m,n,p=a.ms,r={},s={},t={};if(f)for(v=0,x=ic.length;x>v;v++){var u=ic[v];if(u.el.id==d.id&&u.anim==a){u.percent!=e?(ic.splice(v,1),k=1):j=u,d.attr(u.totalOrigin);break}}else f=+s;for(var v=0,x=a.percents.length;x>v;v++){if(a.percents[v]==e||a.percents[v]>f*a.top){e=a.percents[v],m=a.percents[v-1]||0,p=p/a.top*(e-m),l=a.percents[v+1],i=a.anim[e];break}f&&d.attr(a.anim[a.percents[v]])}if(i){if(j)j.initstatus=f,j.start=new Date-j.ms*f;else{for(var y in i)if(i[z](y)&&(db[z](y)||d.paper.customAttributes[z](y)))switch(r[y]=d.attr(y),null==r[y]&&(r[y]=cb[y]),s[y]=i[y],db[y]){case T:t[y]=(s[y]-r[y])/p;break;case"colour":r[y]=c.getRGB(r[y]);var A=c.getRGB(s[y]);t[y]={r:(A.r-r[y].r)/p,g:(A.g-r[y].g)/p,b:(A.b-r[y].b)/p};break;case"path":var B=Kb(r[y],s[y]),C=B[1];for(r[y]=B[0],t[y]=[],v=0,x=r[y].length;x>v;v++){t[y][v]=[0];for(var D=1,F=r[y][v].length;F>D;D++)t[y][v][D]=(C[v][D]-r[y][v][D])/p}break;case"transform":var G=d._,H=Pb(G[y],s[y]);if(H)for(r[y]=H.from,s[y]=H.to,t[y]=[],t[y].real=!0,v=0,x=r[y].length;x>v;v++)for(t[y][v]=[r[y][v][0]],D=1,F=r[y][v].length;F>D;D++)t[y][v][D]=(s[y][v][D]-r[y][v][D])/p;else{var K=d.matrix||new o,L={_:{transform:G.transform},getBBox:function(){return d.getBBox(1)}};r[y]=[K.a,K.b,K.c,K.d,K.e,K.f],Nb(L,s[y]),s[y]=L._.transform,t[y]=[(L.matrix.a-K.a)/p,(L.matrix.b-K.b)/p,(L.matrix.c-K.c)/p,(L.matrix.d-K.d)/p,(L.matrix.e-K.e)/p,(L.matrix.f-K.f)/p]}break;case"csv":var M=I(i[y])[J](w),N=I(r[y])[J](w);if("clip-rect"==y)for(r[y]=N,t[y]=[],v=N.length;v--;)t[y][v]=(M[v]-r[y][v])/p;s[y]=M;break;default:for(M=[][E](i[y]),N=[][E](r[y]),t[y]=[],v=d.paper.customAttributes[y].length;v--;)t[y][v]=((M[v]||0)-(N[v]||0))/p}var O=i.easing,P=c.easing_formulas[O];if(!P)if(P=I(O).match(Z),P&&5==P.length){var Q=P;P=function(a){return q(a,+Q[1],+Q[2],+Q[3],+Q[4],p)}}else P=nb;if(n=i.start||a.start||+new Date,u={anim:a,percent:e,timestamp:n,start:n+(a.del||0),status:0,initstatus:f||0,stop:!1,ms:p,easing:P,from:r,diff:t,to:s,el:d,callback:i.callback,prev:m,next:l,repeat:h||a.times,origin:d.attr(),totalOrigin:g},ic.push(u),f&&!j&&!k&&(u.stop=!0,u.start=new Date-p*f,1==ic.length))return kc();k&&(u.start=new Date-u.ms*f),1==ic.length&&jc(kc)}b("raphael.anim.start."+d.id,d,a)}}function t(a){for(var b=0;be;e++)for(i=a[e],f=1,h=i.length;h>f;f+=2)c=b.x(i[f],i[f+1]),d=b.y(i[f],i[f+1]),i[f]=c,i[f+1]=d;return a};if(c._g=A,c.type=A.win.SVGAngle||A.doc.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")?"SVG":"VML","VML"==c.type){var sb,tb=A.doc.createElement("div");if(tb.innerHTML='',sb=tb.firstChild,sb.style.behavior="url(#default#VML)",!sb||"object"!=typeof sb.adj)return c.type=G;tb=null}c.svg=!(c.vml="VML"==c.type),c._Paper=C,c.fn=v=C.prototype=c.prototype,c._id=0,c._oid=0,c.is=function(a,b){return b=M.call(b),"finite"==b?!Y[z](+a):"array"==b?a instanceof Array:"null"==b&&null===a||b==typeof a&&null!==a||"object"==b&&a===Object(a)||"array"==b&&Array.isArray&&Array.isArray(a)||W.call(a).slice(8,-1).toLowerCase()==b},c.angle=function(a,b,d,e,f,g){if(null==f){var h=a-d,i=b-e;return h||i?(180+180*N.atan2(-i,-h)/S+360)%360:0}return c.angle(a,b,f,g)-c.angle(d,e,f,g)},c.rad=function(a){return a%360*S/180},c.deg=function(a){return Math.round(180*a/S%360*1e3)/1e3},c.snapTo=function(a,b,d){if(d=c.is(d,"finite")?d:10,c.is(a,V)){for(var e=a.length;e--;)if(Q(a[e]-b)<=d)return a[e]}else{a=+a;var f=b%a;if(d>f)return b-f;if(f>a-d)return b-f+a}return b};c.createUUID=function(a,b){return function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(a,b).toUpperCase()}}(/[xy]/g,function(a){var b=16*N.random()|0,c="x"==a?b:3&b|8;return c.toString(16)});c.setWindow=function(a){b("raphael.setWindow",c,A.win,a),A.win=a,A.doc=A.win.document,c._engine.initWin&&c._engine.initWin(A.win)};var ub=function(a){if(c.vml){var b,d=/^\s+|\s+$/g;try{var e=new ActiveXObject("htmlfile");e.write(""),e.close(),b=e.body}catch(g){b=createPopup().document.body}var h=b.createTextRange();ub=f(function(a){try{b.style.color=I(a).replace(d,G);var c=h.queryCommandValue("ForeColor");return c=(255&c)<<16|65280&c|(16711680&c)>>>16,"#"+("000000"+c.toString(16)).slice(-6)}catch(e){return"none"}})}else{var i=A.doc.createElement("i");i.title="Raphaël Colour Picker",i.style.display="none",A.doc.body.appendChild(i),ub=f(function(a){return i.style.color=a,A.doc.defaultView.getComputedStyle(i,G).getPropertyValue("color")})}return ub(a)},vb=function(){return"hsb("+[this.h,this.s,this.b]+")"},wb=function(){return"hsl("+[this.h,this.s,this.l]+")"},xb=function(){return this.hex},yb=function(a,b,d){if(null==b&&c.is(a,"object")&&"r"in a&&"g"in a&&"b"in a&&(d=a.b,b=a.g,a=a.r),null==b&&c.is(a,U)){var e=c.getRGB(a);a=e.r,b=e.g,d=e.b}return(a>1||b>1||d>1)&&(a/=255,b/=255,d/=255),[a,b,d]},zb=function(a,b,d,e){a*=255,b*=255,d*=255;var f={r:a,g:b,b:d,hex:c.rgb(a,b,d),toString:xb};return c.is(e,"finite")&&(f.opacity=e),f};c.color=function(a){var b;return c.is(a,"object")&&"h"in a&&"s"in a&&"b"in a?(b=c.hsb2rgb(a),a.r=b.r,a.g=b.g,a.b=b.b,a.hex=b.hex):c.is(a,"object")&&"h"in a&&"s"in a&&"l"in a?(b=c.hsl2rgb(a),a.r=b.r,a.g=b.g,a.b=b.b,a.hex=b.hex):(c.is(a,"string")&&(a=c.getRGB(a)),c.is(a,"object")&&"r"in a&&"g"in a&&"b"in a?(b=c.rgb2hsl(a),a.h=b.h,a.s=b.s,a.l=b.l,b=c.rgb2hsb(a),a.v=b.b):(a={hex:"none"},a.r=a.g=a.b=a.h=a.s=a.v=a.l=-1)),a.toString=xb,a},c.hsb2rgb=function(a,b,c,d){this.is(a,"object")&&"h"in a&&"s"in a&&"b"in a&&(c=a.b,b=a.s,d=a.o,a=a.h),a*=360;var e,f,g,h,i;return a=a%360/60,i=c*b,h=i*(1-Q(a%2-1)),e=f=g=c-i,a=~~a,e+=[i,h,0,0,h,i][a],f+=[h,i,i,h,0,0][a],g+=[0,0,h,i,i,h][a],zb(e,f,g,d)},c.hsl2rgb=function(a,b,c,d){this.is(a,"object")&&"h"in a&&"s"in a&&"l"in a&&(c=a.l,b=a.s,a=a.h),(a>1||b>1||c>1)&&(a/=360,b/=100,c/=100),a*=360;var e,f,g,h,i;return a=a%360/60,i=2*b*(.5>c?c:1-c),h=i*(1-Q(a%2-1)),e=f=g=c-i/2,a=~~a,e+=[i,h,0,0,h,i][a],f+=[h,i,i,h,0,0][a],g+=[0,0,h,i,i,h][a],zb(e,f,g,d)},c.rgb2hsb=function(a,b,c){c=yb(a,b,c),a=c[0],b=c[1],c=c[2];var d,e,f,g;return f=O(a,b,c),g=f-P(a,b,c),d=0==g?null:f==a?(b-c)/g:f==b?(c-a)/g+2:(a-b)/g+4,d=(d+360)%6*60/360,e=0==g?0:g/f,{h:d,s:e,b:f,toString:vb}},c.rgb2hsl=function(a,b,c){c=yb(a,b,c),a=c[0],b=c[1],c=c[2];var d,e,f,g,h,i;return g=O(a,b,c),h=P(a,b,c),i=g-h,d=0==i?null:g==a?(b-c)/i:g==b?(c-a)/i+2:(a-b)/i+4,d=(d+360)%6*60/360,f=(g+h)/2,e=0==i?0:.5>f?i/(2*f):i/(2-2*f),{h:d,s:e,l:f,toString:wb}},c._path2string=function(){return this.join(",").replace(gb,"$1")};c._preload=function(a,b){var c=A.doc.createElement("img");c.style.cssText="position:absolute;left:-9999em;top:-9999em",c.onload=function(){b.call(this),this.onload=null,A.doc.body.removeChild(this)},c.onerror=function(){A.doc.body.removeChild(this)},A.doc.body.appendChild(c),c.src=a};c.getRGB=f(function(a){if(!a||(a=I(a)).indexOf("-")+1)return{r:-1,g:-1,b:-1,hex:"none",error:1,toString:g};if("none"==a)return{r:-1,g:-1,b:-1,hex:"none",toString:g};!(fb[z](a.toLowerCase().substring(0,2))||"#"==a.charAt())&&(a=ub(a));var b,d,e,f,h,i,j=a.match(X);return j?(j[2]&&(e=ab(j[2].substring(5),16),d=ab(j[2].substring(3,5),16),b=ab(j[2].substring(1,3),16)),j[3]&&(e=ab((h=j[3].charAt(3))+h,16),d=ab((h=j[3].charAt(2))+h,16),b=ab((h=j[3].charAt(1))+h,16)),j[4]&&(i=j[4][J](eb),b=_(i[0]),"%"==i[0].slice(-1)&&(b*=2.55),d=_(i[1]),"%"==i[1].slice(-1)&&(d*=2.55),e=_(i[2]),"%"==i[2].slice(-1)&&(e*=2.55),"rgba"==j[1].toLowerCase().slice(0,4)&&(f=_(i[3])),i[3]&&"%"==i[3].slice(-1)&&(f/=100)),j[5]?(i=j[5][J](eb),b=_(i[0]),"%"==i[0].slice(-1)&&(b*=2.55),d=_(i[1]),"%"==i[1].slice(-1)&&(d*=2.55),e=_(i[2]),"%"==i[2].slice(-1)&&(e*=2.55),("deg"==i[0].slice(-3)||"°"==i[0].slice(-1))&&(b/=360),"hsba"==j[1].toLowerCase().slice(0,4)&&(f=_(i[3])),i[3]&&"%"==i[3].slice(-1)&&(f/=100),c.hsb2rgb(b,d,e,f)):j[6]?(i=j[6][J](eb),b=_(i[0]),"%"==i[0].slice(-1)&&(b*=2.55),d=_(i[1]),"%"==i[1].slice(-1)&&(d*=2.55),e=_(i[2]),"%"==i[2].slice(-1)&&(e*=2.55),("deg"==i[0].slice(-3)||"°"==i[0].slice(-1))&&(b/=360),"hsla"==j[1].toLowerCase().slice(0,4)&&(f=_(i[3])),i[3]&&"%"==i[3].slice(-1)&&(f/=100),c.hsl2rgb(b,d,e,f)):(j={r:b,g:d,b:e,toString:g},j.hex="#"+(16777216|e|d<<8|b<<16).toString(16).slice(1),c.is(f,"finite")&&(j.opacity=f),j)):{r:-1,g:-1,b:-1,hex:"none",error:1,toString:g}},c),c.hsb=f(function(a,b,d){return c.hsb2rgb(a,b,d).hex}),c.hsl=f(function(a,b,d){return c.hsl2rgb(a,b,d).hex}),c.rgb=f(function(a,b,c){return"#"+(16777216|c|b<<8|a<<16).toString(16).slice(1)}),c.getColor=function(a){var b=this.getColor.start=this.getColor.start||{h:0,s:1,b:a||.75},c=this.hsb2rgb(b.h,b.s,b.b);return b.h+=.075,b.h>1&&(b.h=0,b.s-=.2,b.s<=0&&(this.getColor.start={h:0,s:1,b:b.b})),c.hex},c.getColor.reset=function(){delete this.start},c.parsePathString=function(a){if(!a)return null;var b=Ab(a);if(b.arr)return Cb(b.arr);var d={a:7,c:6,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,z:0},e=[];return c.is(a,V)&&c.is(a[0],V)&&(e=Cb(a)),e.length||I(a).replace(hb,function(a,b,c){var f=[],g=b.toLowerCase();if(c.replace(jb,function(a,b){b&&f.push(+b)}),"m"==g&&f.length>2&&(e.push([b][E](f.splice(0,2))),g="l",b="m"==b?"l":"L"),"r"==g)e.push([b][E](f));else for(;f.length>=d[g]&&(e.push([b][E](f.splice(0,d[g]))),d[g]););}),e.toString=c._path2string,b.arr=Cb(e),e},c.parseTransformString=f(function(a){if(!a)return null;var b=[];return c.is(a,V)&&c.is(a[0],V)&&(b=Cb(a)),b.length||I(a).replace(ib,function(a,c,d){{var e=[];M.call(c)}d.replace(jb,function(a,b){b&&e.push(+b)}),b.push([c][E](e))}),b.toString=c._path2string,b});var Ab=function(a){var b=Ab.ps=Ab.ps||{};return b[a]?b[a].sleep=100:b[a]={sleep:100},setTimeout(function(){for(var c in b)b[z](c)&&c!=a&&(b[c].sleep--,!b[c].sleep&&delete b[c])}),b[a]};c.findDotsAtSegment=function(a,b,c,d,e,f,g,h,i){var j=1-i,k=R(j,3),l=R(j,2),m=i*i,n=m*i,o=k*a+3*l*i*c+3*j*i*i*e+n*g,p=k*b+3*l*i*d+3*j*i*i*f+n*h,q=a+2*i*(c-a)+m*(e-2*c+a),r=b+2*i*(d-b)+m*(f-2*d+b),s=c+2*i*(e-c)+m*(g-2*e+c),t=d+2*i*(f-d)+m*(h-2*f+d),u=j*a+i*c,v=j*b+i*d,w=j*e+i*g,x=j*f+i*h,y=90-180*N.atan2(q-s,r-t)/S;return(q>s||t>r)&&(y+=180),{x:o,y:p,m:{x:q,y:r},n:{x:s,y:t},start:{x:u,y:v},end:{x:w,y:x},alpha:y}},c.bezierBBox=function(a,b,d,e,f,g,h,i){c.is(a,"array")||(a=[a,b,d,e,f,g,h,i]);var j=Jb.apply(null,a);return{x:j.min.x,y:j.min.y,x2:j.max.x,y2:j.max.y,width:j.max.x-j.min.x,height:j.max.y-j.min.y}},c.isPointInsideBBox=function(a,b,c){return b>=a.x&&b<=a.x2&&c>=a.y&&c<=a.y2},c.isBBoxIntersect=function(a,b){var d=c.isPointInsideBBox;return d(b,a.x,a.y)||d(b,a.x2,a.y)||d(b,a.x,a.y2)||d(b,a.x2,a.y2)||d(a,b.x,b.y)||d(a,b.x2,b.y)||d(a,b.x,b.y2)||d(a,b.x2,b.y2)||(a.xb.x||b.xa.x)&&(a.yb.y||b.ya.y)},c.pathIntersection=function(a,b){return n(a,b)},c.pathIntersectionNumber=function(a,b){return n(a,b,1)},c.isPointInsidePath=function(a,b,d){var e=c.pathBBox(a);return c.isPointInsideBBox(e,b,d)&&n(a,[["M",b,d],["H",e.x2+10]],1)%2==1},c._removedFactory=function(a){return function(){b("raphael.log",null,"Raphaël: you are calling to method “"+a+"” of removed object",a)}};var Bb=c.pathBBox=function(a){var b=Ab(a);if(b.bbox)return d(b.bbox);if(!a)return{x:0,y:0,width:0,height:0,x2:0,y2:0};a=Kb(a);for(var c,e=0,f=0,g=[],h=[],i=0,j=a.length;j>i;i++)if(c=a[i],"M"==c[0])e=c[1],f=c[2],g.push(e),h.push(f);else{var k=Jb(e,f,c[1],c[2],c[3],c[4],c[5],c[6]);g=g[E](k.min.x,k.max.x),h=h[E](k.min.y,k.max.y),e=c[5],f=c[6]}var l=P[D](0,g),m=P[D](0,h),n=O[D](0,g),o=O[D](0,h),p=n-l,q=o-m,r={x:l,y:m,x2:n,y2:o,width:p,height:q,cx:l+p/2,cy:m+q/2};return b.bbox=d(r),r},Cb=function(a){var b=d(a);return b.toString=c._path2string,b},Db=c._pathToRelative=function(a){var b=Ab(a);if(b.rel)return Cb(b.rel);c.is(a,V)&&c.is(a&&a[0],V)||(a=c.parsePathString(a));var d=[],e=0,f=0,g=0,h=0,i=0;"M"==a[0][0]&&(e=a[0][1],f=a[0][2],g=e,h=f,i++,d.push(["M",e,f]));for(var j=i,k=a.length;k>j;j++){var l=d[j]=[],m=a[j];if(m[0]!=M.call(m[0]))switch(l[0]=M.call(m[0]),l[0]){case"a":l[1]=m[1],l[2]=m[2],l[3]=m[3],l[4]=m[4],l[5]=m[5],l[6]=+(m[6]-e).toFixed(3),l[7]=+(m[7]-f).toFixed(3);break;case"v":l[1]=+(m[1]-f).toFixed(3);break;case"m":g=m[1],h=m[2];default:for(var n=1,o=m.length;o>n;n++)l[n]=+(m[n]-(n%2?e:f)).toFixed(3)}else{l=d[j]=[],"m"==m[0]&&(g=m[1]+e,h=m[2]+f);for(var p=0,q=m.length;q>p;p++)d[j][p]=m[p]}var r=d[j].length;switch(d[j][0]){case"z":e=g,f=h;break;case"h":e+=+d[j][r-1];break;case"v":f+=+d[j][r-1];break;default:e+=+d[j][r-2],f+=+d[j][r-1]}}return d.toString=c._path2string,b.rel=Cb(d),d},Eb=c._pathToAbsolute=function(a){var b=Ab(a);if(b.abs)return Cb(b.abs);if(c.is(a,V)&&c.is(a&&a[0],V)||(a=c.parsePathString(a)),!a||!a.length)return[["M",0,0]];var d=[],e=0,f=0,g=0,i=0,j=0;"M"==a[0][0]&&(e=+a[0][1],f=+a[0][2],g=e,i=f,j++,d[0]=["M",e,f]);for(var k,l,m=3==a.length&&"M"==a[0][0]&&"R"==a[1][0].toUpperCase()&&"Z"==a[2][0].toUpperCase(),n=j,o=a.length;o>n;n++){if(d.push(k=[]),l=a[n],l[0]!=bb.call(l[0]))switch(k[0]=bb.call(l[0]),k[0]){case"A":k[1]=l[1],k[2]=l[2],k[3]=l[3],k[4]=l[4],k[5]=l[5],k[6]=+(l[6]+e),k[7]=+(l[7]+f);break;case"V":k[1]=+l[1]+f;break;case"H":k[1]=+l[1]+e;break;case"R":for(var p=[e,f][E](l.slice(1)),q=2,r=p.length;r>q;q++)p[q]=+p[q]+e,p[++q]=+p[q]+f;d.pop(),d=d[E](h(p,m));break;case"M":g=+l[1]+e,i=+l[2]+f;default:for(q=1,r=l.length;r>q;q++)k[q]=+l[q]+(q%2?e:f)}else if("R"==l[0])p=[e,f][E](l.slice(1)),d.pop(),d=d[E](h(p,m)),k=["R"][E](l.slice(-2));else for(var s=0,t=l.length;t>s;s++)k[s]=l[s];switch(k[0]){case"Z":e=g,f=i;break;case"H":e=k[1];break;case"V":f=k[1];break;case"M":g=k[k.length-2],i=k[k.length-1];default:e=k[k.length-2],f=k[k.length-1]}}return d.toString=c._path2string,b.abs=Cb(d),d},Fb=function(a,b,c,d){return[a,b,c,d,c,d]},Gb=function(a,b,c,d,e,f){var g=1/3,h=2/3;return[g*a+h*c,g*b+h*d,g*e+h*c,g*f+h*d,e,f]},Hb=function(a,b,c,d,e,g,h,i,j,k){var l,m=120*S/180,n=S/180*(+e||0),o=[],p=f(function(a,b,c){var d=a*N.cos(c)-b*N.sin(c),e=a*N.sin(c)+b*N.cos(c);return{x:d,y:e}});if(k)y=k[0],z=k[1],w=k[2],x=k[3];else{l=p(a,b,-n),a=l.x,b=l.y,l=p(i,j,-n),i=l.x,j=l.y;var q=(N.cos(S/180*e),N.sin(S/180*e),(a-i)/2),r=(b-j)/2,s=q*q/(c*c)+r*r/(d*d);s>1&&(s=N.sqrt(s),c=s*c,d=s*d);var t=c*c,u=d*d,v=(g==h?-1:1)*N.sqrt(Q((t*u-t*r*r-u*q*q)/(t*r*r+u*q*q))),w=v*c*r/d+(a+i)/2,x=v*-d*q/c+(b+j)/2,y=N.asin(((b-x)/d).toFixed(9)),z=N.asin(((j-x)/d).toFixed(9));y=w>a?S-y:y,z=w>i?S-z:z,0>y&&(y=2*S+y),0>z&&(z=2*S+z),h&&y>z&&(y-=2*S),!h&&z>y&&(z-=2*S)}var A=z-y;if(Q(A)>m){var B=z,C=i,D=j;z=y+m*(h&&z>y?1:-1),i=w+c*N.cos(z),j=x+d*N.sin(z),o=Hb(i,j,c,d,e,0,h,C,D,[z,B,w,x])}A=z-y;var F=N.cos(y),G=N.sin(y),H=N.cos(z),I=N.sin(z),K=N.tan(A/4),L=4/3*c*K,M=4/3*d*K,O=[a,b],P=[a+L*G,b-M*F],R=[i+L*I,j-M*H],T=[i,j];if(P[0]=2*O[0]-P[0],P[1]=2*O[1]-P[1],k)return[P,R,T][E](o);o=[P,R,T][E](o).join()[J](",");for(var U=[],V=0,W=o.length;W>V;V++)U[V]=V%2?p(o[V-1],o[V],n).y:p(o[V],o[V+1],n).x;return U},Ib=function(a,b,c,d,e,f,g,h,i){var j=1-i;return{x:R(j,3)*a+3*R(j,2)*i*c+3*j*i*i*e+R(i,3)*g,y:R(j,3)*b+3*R(j,2)*i*d+3*j*i*i*f+R(i,3)*h}},Jb=f(function(a,b,c,d,e,f,g,h){var i,j=e-2*c+a-(g-2*e+c),k=2*(c-a)-2*(e-c),l=a-c,m=(-k+N.sqrt(k*k-4*j*l))/2/j,n=(-k-N.sqrt(k*k-4*j*l))/2/j,o=[b,h],p=[a,g];return Q(m)>"1e12"&&(m=.5),Q(n)>"1e12"&&(n=.5),m>0&&1>m&&(i=Ib(a,b,c,d,e,f,g,h,m),p.push(i.x),o.push(i.y)),n>0&&1>n&&(i=Ib(a,b,c,d,e,f,g,h,n),p.push(i.x),o.push(i.y)),j=f-2*d+b-(h-2*f+d),k=2*(d-b)-2*(f-d),l=b-d,m=(-k+N.sqrt(k*k-4*j*l))/2/j,n=(-k-N.sqrt(k*k-4*j*l))/2/j,Q(m)>"1e12"&&(m=.5),Q(n)>"1e12"&&(n=.5),m>0&&1>m&&(i=Ib(a,b,c,d,e,f,g,h,m),p.push(i.x),o.push(i.y)),n>0&&1>n&&(i=Ib(a,b,c,d,e,f,g,h,n),p.push(i.x),o.push(i.y)),{min:{x:P[D](0,p),y:P[D](0,o)},max:{x:O[D](0,p),y:O[D](0,o)}}}),Kb=c._path2curve=f(function(a,b){var c=!b&&Ab(a);if(!b&&c.curve)return Cb(c.curve);for(var d=Eb(a),e=b&&Eb(b),f={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},g={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},h=(function(a,b,c){var d,e,f={T:1,Q:1};if(!a)return["C",b.x,b.y,b.x,b.y,b.x,b.y];switch(!(a[0]in f)&&(b.qx=b.qy=null),a[0]){case"M":b.X=a[1],b.Y=a[2];break;case"A":a=["C"][E](Hb[D](0,[b.x,b.y][E](a.slice(1))));break;case"S":"C"==c||"S"==c?(d=2*b.x-b.bx,e=2*b.y-b.by):(d=b.x,e=b.y),a=["C",d,e][E](a.slice(1));break;case"T":"Q"==c||"T"==c?(b.qx=2*b.x-b.qx,b.qy=2*b.y-b.qy):(b.qx=b.x,b.qy=b.y),a=["C"][E](Gb(b.x,b.y,b.qx,b.qy,a[1],a[2]));break;case"Q":b.qx=a[1],b.qy=a[2],a=["C"][E](Gb(b.x,b.y,a[1],a[2],a[3],a[4]));break;case"L":a=["C"][E](Fb(b.x,b.y,a[1],a[2]));break;case"H":a=["C"][E](Fb(b.x,b.y,a[1],b.y));break;case"V":a=["C"][E](Fb(b.x,b.y,b.x,a[1]));break;case"Z":a=["C"][E](Fb(b.x,b.y,b.X,b.Y))}return a}),i=function(a,b){if(a[b].length>7){a[b].shift();for(var c=a[b];c.length;)k[b]="A",e&&(l[b]="A"),a.splice(b++,0,["C"][E](c.splice(0,6)));a.splice(b,1),p=O(d.length,e&&e.length||0)}},j=function(a,b,c,f,g){a&&b&&"M"==a[g][0]&&"M"!=b[g][0]&&(b.splice(g,0,["M",f.x,f.y]),c.bx=0,c.by=0,c.x=a[g][1],c.y=a[g][2],p=O(d.length,e&&e.length||0))},k=[],l=[],m="",n="",o=0,p=O(d.length,e&&e.length||0);p>o;o++){d[o]&&(m=d[o][0]),"C"!=m&&(k[o]=m,o&&(n=k[o-1])),d[o]=h(d[o],f,n),"A"!=k[o]&&"C"==m&&(k[o]="C"),i(d,o),e&&(e[o]&&(m=e[o][0]),"C"!=m&&(l[o]=m,o&&(n=l[o-1])),e[o]=h(e[o],g,n),"A"!=l[o]&&"C"==m&&(l[o]="C"),i(e,o)),j(d,e,f,g,o),j(e,d,g,f,o);var q=d[o],r=e&&e[o],s=q.length,t=e&&r.length;f.x=q[s-2],f.y=q[s-1],f.bx=_(q[s-4])||f.x,f.by=_(q[s-3])||f.y,g.bx=e&&(_(r[t-4])||g.x),g.by=e&&(_(r[t-3])||g.y),g.x=e&&r[t-2],g.y=e&&r[t-1]}return e||(c.curve=Cb(d)),e?[d,e]:d},null,Cb),Lb=(c._parseDots=f(function(a){for(var b=[],d=0,e=a.length;e>d;d++){var f={},g=a[d].match(/^([^:]*):?([\d\.]*)/);if(f.color=c.getRGB(g[1]),f.color.error)return null;f.color=f.color.hex,g[2]&&(f.offset=g[2]+"%"),b.push(f)}for(d=1,e=b.length-1;e>d;d++)if(!b[d].offset){for(var h=_(b[d-1].offset||0),i=0,j=d+1;e>j;j++)if(b[j].offset){i=b[j].offset;break}i||(i=100,j=e),i=_(i);for(var k=(i-h)/(j-d+1);j>d;d++)h+=k,b[d].offset=h+"%"}return b}),c._tear=function(a,b){a==b.top&&(b.top=a.prev),a==b.bottom&&(b.bottom=a.next),a.next&&(a.next.prev=a.prev),a.prev&&(a.prev.next=a.next)}),Mb=(c._tofront=function(a,b){b.top!==a&&(Lb(a,b),a.next=null,a.prev=b.top,b.top.next=a,b.top=a)},c._toback=function(a,b){b.bottom!==a&&(Lb(a,b),a.next=b.bottom,a.prev=null,b.bottom.prev=a,b.bottom=a)},c._insertafter=function(a,b,c){Lb(a,c),b==c.top&&(c.top=a),b.next&&(b.next.prev=a),a.next=b.next,a.prev=b,b.next=a},c._insertbefore=function(a,b,c){Lb(a,c),b==c.bottom&&(c.bottom=a),b.prev&&(b.prev.next=a),a.prev=b.prev,b.prev=a,a.next=b},c.toMatrix=function(a,b){var c=Bb(a),d={_:{transform:G},getBBox:function(){return c}};return Nb(d,b),d.matrix}),Nb=(c.transformPath=function(a,b){return rb(a,Mb(a,b))},c._extractTransform=function(a,b){if(null==b)return a._.transform;b=I(b).replace(/\.{3}|\u2026/g,a._.transform||G);var d=c.parseTransformString(b),e=0,f=0,g=0,h=1,i=1,j=a._,k=new o;if(j.transform=d||[],d)for(var l=0,m=d.length;m>l;l++){var n,p,q,r,s,t=d[l],u=t.length,v=I(t[0]).toLowerCase(),w=t[0]!=v,x=w?k.invert():0;"t"==v&&3==u?w?(n=x.x(0,0),p=x.y(0,0),q=x.x(t[1],t[2]),r=x.y(t[1],t[2]),k.translate(q-n,r-p)):k.translate(t[1],t[2]):"r"==v?2==u?(s=s||a.getBBox(1),k.rotate(t[1],s.x+s.width/2,s.y+s.height/2),e+=t[1]):4==u&&(w?(q=x.x(t[2],t[3]),r=x.y(t[2],t[3]),k.rotate(t[1],q,r)):k.rotate(t[1],t[2],t[3]),e+=t[1]):"s"==v?2==u||3==u?(s=s||a.getBBox(1),k.scale(t[1],t[u-1],s.x+s.width/2,s.y+s.height/2),h*=t[1],i*=t[u-1]):5==u&&(w?(q=x.x(t[3],t[4]),r=x.y(t[3],t[4]),k.scale(t[1],t[2],q,r)):k.scale(t[1],t[2],t[3],t[4]),h*=t[1],i*=t[2]):"m"==v&&7==u&&k.add(t[1],t[2],t[3],t[4],t[5],t[6]),j.dirtyT=1,a.matrix=k}a.matrix=k,j.sx=h,j.sy=i,j.deg=e,j.dx=f=k.e,j.dy=g=k.f,1==h&&1==i&&!e&&j.bbox?(j.bbox.x+=+f,j.bbox.y+=+g):j.dirtyT=1}),Ob=function(a){var b=a[0];switch(b.toLowerCase()){case"t":return[b,0,0];case"m":return[b,1,0,0,1,0,0];case"r":return 4==a.length?[b,0,a[2],a[3]]:[b,0];case"s":return 5==a.length?[b,1,1,a[3],a[4]]:3==a.length?[b,1,1]:[b,1]}},Pb=c._equaliseTransform=function(a,b){b=I(b).replace(/\.{3}|\u2026/g,a),a=c.parseTransformString(a)||[],b=c.parseTransformString(b)||[]; -for(var d,e,f,g,h=O(a.length,b.length),i=[],j=[],k=0;h>k;k++){if(f=a[k]||Ob(b[k]),g=b[k]||Ob(f),f[0]!=g[0]||"r"==f[0].toLowerCase()&&(f[2]!=g[2]||f[3]!=g[3])||"s"==f[0].toLowerCase()&&(f[3]!=g[3]||f[4]!=g[4]))return;for(i[k]=[],j[k]=[],d=0,e=O(f.length,g.length);e>d;d++)d in f&&(i[k][d]=f[d]),d in g&&(j[k][d]=g[d])}return{from:i,to:j}};c._getContainer=function(a,b,d,e){var f;return f=null!=e||c.is(a,"object")?a:A.doc.getElementById(a),null!=f?f.tagName?null==b?{container:f,width:f.style.pixelWidth||f.offsetWidth,height:f.style.pixelHeight||f.offsetHeight}:{container:f,width:b,height:d}:{container:1,x:a,y:b,width:d,height:e}:void 0},c.pathToRelative=Db,c._engine={},c.path2curve=Kb,c.matrix=function(a,b,c,d,e,f){return new o(a,b,c,d,e,f)},function(a){function b(a){return a[0]*a[0]+a[1]*a[1]}function d(a){var c=N.sqrt(b(a));a[0]&&(a[0]/=c),a[1]&&(a[1]/=c)}a.add=function(a,b,c,d,e,f){var g,h,i,j,k=[[],[],[]],l=[[this.a,this.c,this.e],[this.b,this.d,this.f],[0,0,1]],m=[[a,c,e],[b,d,f],[0,0,1]];for(a&&a instanceof o&&(m=[[a.a,a.c,a.e],[a.b,a.d,a.f],[0,0,1]]),g=0;3>g;g++)for(h=0;3>h;h++){for(j=0,i=0;3>i;i++)j+=l[g][i]*m[i][h];k[g][h]=j}this.a=k[0][0],this.b=k[1][0],this.c=k[0][1],this.d=k[1][1],this.e=k[0][2],this.f=k[1][2]},a.invert=function(){var a=this,b=a.a*a.d-a.b*a.c;return new o(a.d/b,-a.b/b,-a.c/b,a.a/b,(a.c*a.f-a.d*a.e)/b,(a.b*a.e-a.a*a.f)/b)},a.clone=function(){return new o(this.a,this.b,this.c,this.d,this.e,this.f)},a.translate=function(a,b){this.add(1,0,0,1,a,b)},a.scale=function(a,b,c,d){null==b&&(b=a),(c||d)&&this.add(1,0,0,1,c,d),this.add(a,0,0,b,0,0),(c||d)&&this.add(1,0,0,1,-c,-d)},a.rotate=function(a,b,d){a=c.rad(a),b=b||0,d=d||0;var e=+N.cos(a).toFixed(9),f=+N.sin(a).toFixed(9);this.add(e,f,-f,e,b,d),this.add(1,0,0,1,-b,-d)},a.x=function(a,b){return a*this.a+b*this.c+this.e},a.y=function(a,b){return a*this.b+b*this.d+this.f},a.get=function(a){return+this[I.fromCharCode(97+a)].toFixed(4)},a.toString=function(){return c.svg?"matrix("+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)].join()+")":[this.get(0),this.get(2),this.get(1),this.get(3),0,0].join()},a.toFilter=function(){return"progid:DXImageTransform.Microsoft.Matrix(M11="+this.get(0)+", M12="+this.get(2)+", M21="+this.get(1)+", M22="+this.get(3)+", Dx="+this.get(4)+", Dy="+this.get(5)+", sizingmethod='auto expand')"},a.offset=function(){return[this.e.toFixed(4),this.f.toFixed(4)]},a.split=function(){var a={};a.dx=this.e,a.dy=this.f;var e=[[this.a,this.c],[this.b,this.d]];a.scalex=N.sqrt(b(e[0])),d(e[0]),a.shear=e[0][0]*e[1][0]+e[0][1]*e[1][1],e[1]=[e[1][0]-e[0][0]*a.shear,e[1][1]-e[0][1]*a.shear],a.scaley=N.sqrt(b(e[1])),d(e[1]),a.shear/=a.scaley;var f=-e[0][1],g=e[1][1];return 0>g?(a.rotate=c.deg(N.acos(g)),0>f&&(a.rotate=360-a.rotate)):a.rotate=c.deg(N.asin(f)),a.isSimple=!(+a.shear.toFixed(9)||a.scalex.toFixed(9)!=a.scaley.toFixed(9)&&a.rotate),a.isSuperSimple=!+a.shear.toFixed(9)&&a.scalex.toFixed(9)==a.scaley.toFixed(9)&&!a.rotate,a.noRotation=!+a.shear.toFixed(9)&&!a.rotate,a},a.toTransformString=function(a){var b=a||this[J]();return b.isSimple?(b.scalex=+b.scalex.toFixed(4),b.scaley=+b.scaley.toFixed(4),b.rotate=+b.rotate.toFixed(4),(b.dx||b.dy?"t"+[b.dx,b.dy]:G)+(1!=b.scalex||1!=b.scaley?"s"+[b.scalex,b.scaley,0,0]:G)+(b.rotate?"r"+[b.rotate,0,0]:G)):"m"+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)]}}(o.prototype);var Qb=navigator.userAgent.match(/Version\/(.*?)\s/)||navigator.userAgent.match(/Chrome\/(\d+)/);v.safari="Apple Computer, Inc."==navigator.vendor&&(Qb&&Qb[1]<4||"iP"==navigator.platform.slice(0,2))||"Google Inc."==navigator.vendor&&Qb&&Qb[1]<8?function(){var a=this.rect(-99,-99,this.width+99,this.height+99).attr({stroke:"none"});setTimeout(function(){a.remove()})}:mb;for(var Rb=function(){this.returnValue=!1},Sb=function(){return this.originalEvent.preventDefault()},Tb=function(){this.cancelBubble=!0},Ub=function(){return this.originalEvent.stopPropagation()},Vb=function(a){var b=A.doc.documentElement.scrollTop||A.doc.body.scrollTop,c=A.doc.documentElement.scrollLeft||A.doc.body.scrollLeft;return{x:a.clientX+c,y:a.clientY+b}},Wb=function(){return A.doc.addEventListener?function(a,b,c,d){var e=function(a){var b=Vb(a);return c.call(d,a,b.x,b.y)};if(a.addEventListener(b,e,!1),F&&L[b]){var f=function(b){for(var e=Vb(b),f=b,g=0,h=b.targetTouches&&b.targetTouches.length;h>g;g++)if(b.targetTouches[g].target==a){b=b.targetTouches[g],b.originalEvent=f,b.preventDefault=Sb,b.stopPropagation=Ub;break}return c.call(d,b,e.x,e.y)};a.addEventListener(L[b],f,!1)}return function(){return a.removeEventListener(b,e,!1),F&&L[b]&&a.removeEventListener(L[b],f,!1),!0}}:A.doc.attachEvent?function(a,b,c,d){var e=function(a){a=a||A.win.event;var b=A.doc.documentElement.scrollTop||A.doc.body.scrollTop,e=A.doc.documentElement.scrollLeft||A.doc.body.scrollLeft,f=a.clientX+e,g=a.clientY+b;return a.preventDefault=a.preventDefault||Rb,a.stopPropagation=a.stopPropagation||Tb,c.call(d,a,f,g)};a.attachEvent("on"+b,e);var f=function(){return a.detachEvent("on"+b,e),!0};return f}:void 0}(),Xb=[],Yb=function(a){for(var c,d=a.clientX,e=a.clientY,f=A.doc.documentElement.scrollTop||A.doc.body.scrollTop,g=A.doc.documentElement.scrollLeft||A.doc.body.scrollLeft,h=Xb.length;h--;){if(c=Xb[h],F&&a.touches){for(var i,j=a.touches.length;j--;)if(i=a.touches[j],i.identifier==c.el._drag.id){d=i.clientX,e=i.clientY,(a.originalEvent?a.originalEvent:a).preventDefault();break}}else a.preventDefault();var k,l=c.el.node,m=l.nextSibling,n=l.parentNode,o=l.style.display;A.win.opera&&n.removeChild(l),l.style.display="none",k=c.el.paper.getElementByPoint(d,e),l.style.display=o,A.win.opera&&(m?n.insertBefore(l,m):n.appendChild(l)),k&&b("raphael.drag.over."+c.el.id,c.el,k),d+=g,e+=f,b("raphael.drag.move."+c.el.id,c.move_scope||c.el,d-c.el._drag.x,e-c.el._drag.y,d,e,a)}},Zb=function(a){c.unmousemove(Yb).unmouseup(Zb);for(var d,e=Xb.length;e--;)d=Xb[e],d.el._drag={},b("raphael.drag.end."+d.el.id,d.end_scope||d.start_scope||d.move_scope||d.el,a);Xb=[]},$b=c.el={},_b=K.length;_b--;)!function(a){c[a]=$b[a]=function(b,d){return c.is(b,"function")&&(this.events=this.events||[],this.events.push({name:a,f:b,unbind:Wb(this.shape||this.node||A.doc,a,b,d||this)})),this},c["un"+a]=$b["un"+a]=function(b){for(var d=this.events||[],e=d.length;e--;)d[e].name!=a||!c.is(b,"undefined")&&d[e].f!=b||(d[e].unbind(),d.splice(e,1),!d.length&&delete this.events);return this}}(K[_b]);$b.data=function(a,d){var e=kb[this.id]=kb[this.id]||{};if(0==arguments.length)return e;if(1==arguments.length){if(c.is(a,"object")){for(var f in a)a[z](f)&&this.data(f,a[f]);return this}return b("raphael.data.get."+this.id,this,e[a],a),e[a]}return e[a]=d,b("raphael.data.set."+this.id,this,d,a),this},$b.removeData=function(a){return null==a?kb[this.id]={}:kb[this.id]&&delete kb[this.id][a],this},$b.getData=function(){return d(kb[this.id]||{})},$b.hover=function(a,b,c,d){return this.mouseover(a,c).mouseout(b,d||c)},$b.unhover=function(a,b){return this.unmouseover(a).unmouseout(b)};var ac=[];$b.drag=function(a,d,e,f,g,h){function i(i){(i.originalEvent||i).preventDefault();var j=i.clientX,k=i.clientY,l=A.doc.documentElement.scrollTop||A.doc.body.scrollTop,m=A.doc.documentElement.scrollLeft||A.doc.body.scrollLeft;if(this._drag.id=i.identifier,F&&i.touches)for(var n,o=i.touches.length;o--;)if(n=i.touches[o],this._drag.id=n.identifier,n.identifier==this._drag.id){j=n.clientX,k=n.clientY;break}this._drag.x=j+m,this._drag.y=k+l,!Xb.length&&c.mousemove(Yb).mouseup(Zb),Xb.push({el:this,move_scope:f,start_scope:g,end_scope:h}),d&&b.on("raphael.drag.start."+this.id,d),a&&b.on("raphael.drag.move."+this.id,a),e&&b.on("raphael.drag.end."+this.id,e),b("raphael.drag.start."+this.id,g||f||this,i.clientX+m,i.clientY+l,i)}return this._drag={},ac.push({el:this,start:i}),this.mousedown(i),this},$b.onDragOver=function(a){a?b.on("raphael.drag.over."+this.id,a):b.unbind("raphael.drag.over."+this.id)},$b.undrag=function(){for(var a=ac.length;a--;)ac[a].el==this&&(this.unmousedown(ac[a].start),ac.splice(a,1),b.unbind("raphael.drag.*."+this.id));!ac.length&&c.unmousemove(Yb).unmouseup(Zb),Xb=[]},v.circle=function(a,b,d){var e=c._engine.circle(this,a||0,b||0,d||0);return this.__set__&&this.__set__.push(e),e},v.rect=function(a,b,d,e,f){var g=c._engine.rect(this,a||0,b||0,d||0,e||0,f||0);return this.__set__&&this.__set__.push(g),g},v.ellipse=function(a,b,d,e){var f=c._engine.ellipse(this,a||0,b||0,d||0,e||0);return this.__set__&&this.__set__.push(f),f},v.path=function(a){a&&!c.is(a,U)&&!c.is(a[0],V)&&(a+=G);var b=c._engine.path(c.format[D](c,arguments),this);return this.__set__&&this.__set__.push(b),b},v.image=function(a,b,d,e,f){var g=c._engine.image(this,a||"about:blank",b||0,d||0,e||0,f||0);return this.__set__&&this.__set__.push(g),g},v.text=function(a,b,d){var e=c._engine.text(this,a||0,b||0,I(d));return this.__set__&&this.__set__.push(e),e},v.set=function(a){!c.is(a,"array")&&(a=Array.prototype.splice.call(arguments,0,arguments.length));var b=new mc(a);return this.__set__&&this.__set__.push(b),b.paper=this,b.type="set",b},v.setStart=function(a){this.__set__=a||this.set()},v.setFinish=function(){var a=this.__set__;return delete this.__set__,a},v.getSize=function(){var a=this.canvas.parentNode;return{width:a.offsetWidth,height:a.offsetHeight}},v.setSize=function(a,b){return c._engine.setSize.call(this,a,b)},v.setViewBox=function(a,b,d,e,f){return c._engine.setViewBox.call(this,a,b,d,e,f)},v.top=v.bottom=null,v.raphael=c;var bc=function(a){var b=a.getBoundingClientRect(),c=a.ownerDocument,d=c.body,e=c.documentElement,f=e.clientTop||d.clientTop||0,g=e.clientLeft||d.clientLeft||0,h=b.top+(A.win.pageYOffset||e.scrollTop||d.scrollTop)-f,i=b.left+(A.win.pageXOffset||e.scrollLeft||d.scrollLeft)-g;return{y:h,x:i}};v.getElementByPoint=function(a,b){var c=this,d=c.canvas,e=A.doc.elementFromPoint(a,b);if(A.win.opera&&"svg"==e.tagName){var f=bc(d),g=d.createSVGRect();g.x=a-f.x,g.y=b-f.y,g.width=g.height=1;var h=d.getIntersectionList(g,null);h.length&&(e=h[h.length-1])}if(!e)return null;for(;e.parentNode&&e!=d.parentNode&&!e.raphael;)e=e.parentNode;return e==c.canvas.parentNode&&(e=d),e=e&&e.raphael?c.getById(e.raphaelid):null},v.getElementsByBBox=function(a){var b=this.set();return this.forEach(function(d){c.isBBoxIntersect(d.getBBox(),a)&&b.push(d)}),b},v.getById=function(a){for(var b=this.bottom;b;){if(b.id==a)return b;b=b.next}return null},v.forEach=function(a,b){for(var c=this.bottom;c;){if(a.call(b,c)===!1)return this;c=c.next}return this},v.getElementsByPoint=function(a,b){var c=this.set();return this.forEach(function(d){d.isPointInside(a,b)&&c.push(d)}),c},$b.isPointInside=function(a,b){var d=this.realPath=qb[this.type](this);return this.attr("transform")&&this.attr("transform").length&&(d=c.transformPath(d,this.attr("transform"))),c.isPointInsidePath(d,a,b)},$b.getBBox=function(a){if(this.removed)return{};var b=this._;return a?((b.dirty||!b.bboxwt)&&(this.realPath=qb[this.type](this),b.bboxwt=Bb(this.realPath),b.bboxwt.toString=p,b.dirty=0),b.bboxwt):((b.dirty||b.dirtyT||!b.bbox)&&((b.dirty||!this.realPath)&&(b.bboxwt=0,this.realPath=qb[this.type](this)),b.bbox=Bb(rb(this.realPath,this.matrix)),b.bbox.toString=p,b.dirty=b.dirtyT=0),b.bbox)},$b.clone=function(){if(this.removed)return null;var a=this.paper[this.type]().attr(this.attr());return this.__set__&&this.__set__.push(a),a},$b.glow=function(a){if("text"==this.type)return null;a=a||{};var b={width:(a.width||10)+(+this.attr("stroke-width")||1),fill:a.fill||!1,opacity:a.opacity||.5,offsetx:a.offsetx||0,offsety:a.offsety||0,color:a.color||"#000"},c=b.width/2,d=this.paper,e=d.set(),f=this.realPath||qb[this.type](this);f=this.matrix?rb(f,this.matrix):f;for(var g=1;c+1>g;g++)e.push(d.path(f).attr({stroke:b.color,fill:b.fill?b.color:"none","stroke-linejoin":"round","stroke-linecap":"round","stroke-width":+(b.width/c*g).toFixed(3),opacity:+(b.opacity/c).toFixed(3)}));return e.insertBefore(this).translate(b.offsetx,b.offsety)};var cc=function(a,b,d,e,f,g,h,i,l){return null==l?j(a,b,d,e,f,g,h,i):c.findDotsAtSegment(a,b,d,e,f,g,h,i,k(a,b,d,e,f,g,h,i,l))},dc=function(a,b){return function(d,e,f){d=Kb(d);for(var g,h,i,j,k,l="",m={},n=0,o=0,p=d.length;p>o;o++){if(i=d[o],"M"==i[0])g=+i[1],h=+i[2];else{if(j=cc(g,h,i[1],i[2],i[3],i[4],i[5],i[6]),n+j>e){if(b&&!m.start){if(k=cc(g,h,i[1],i[2],i[3],i[4],i[5],i[6],e-n),l+=["C"+k.start.x,k.start.y,k.m.x,k.m.y,k.x,k.y],f)return l;m.start=l,l=["M"+k.x,k.y+"C"+k.n.x,k.n.y,k.end.x,k.end.y,i[5],i[6]].join(),n+=j,g=+i[5],h=+i[6];continue}if(!a&&!b)return k=cc(g,h,i[1],i[2],i[3],i[4],i[5],i[6],e-n),{x:k.x,y:k.y,alpha:k.alpha}}n+=j,g=+i[5],h=+i[6]}l+=i.shift()+i}return m.end=l,k=a?n:b?m:c.findDotsAtSegment(g,h,i[0],i[1],i[2],i[3],i[4],i[5],1),k.alpha&&(k={x:k.x,y:k.y,alpha:k.alpha}),k}},ec=dc(1),fc=dc(),gc=dc(0,1);c.getTotalLength=ec,c.getPointAtLength=fc,c.getSubpath=function(a,b,c){if(this.getTotalLength(a)-c<1e-6)return gc(a,b).end;var d=gc(a,c,1);return b?gc(d,b).end:d},$b.getTotalLength=function(){var a=this.getPath();if(a)return this.node.getTotalLength?this.node.getTotalLength():ec(a)},$b.getPointAtLength=function(a){var b=this.getPath();if(b)return fc(b,a)},$b.getPath=function(){var a,b=c._getPath[this.type];if("text"!=this.type&&"set"!=this.type)return b&&(a=b(this)),a},$b.getSubpath=function(a,b){var d=this.getPath();if(d)return c.getSubpath(d,a,b)};var hc=c.easing_formulas={linear:function(a){return a},"<":function(a){return R(a,1.7)},">":function(a){return R(a,.48)},"<>":function(a){var b=.48-a/1.04,c=N.sqrt(.1734+b*b),d=c-b,e=R(Q(d),1/3)*(0>d?-1:1),f=-c-b,g=R(Q(f),1/3)*(0>f?-1:1),h=e+g+.5;return 3*(1-h)*h*h+h*h*h},backIn:function(a){var b=1.70158;return a*a*((b+1)*a-b)},backOut:function(a){a-=1;var b=1.70158;return a*a*((b+1)*a+b)+1},elastic:function(a){return a==!!a?a:R(2,-10*a)*N.sin(2*(a-.075)*S/.3)+1},bounce:function(a){var b,c=7.5625,d=2.75;return 1/d>a?b=c*a*a:2/d>a?(a-=1.5/d,b=c*a*a+.75):2.5/d>a?(a-=2.25/d,b=c*a*a+.9375):(a-=2.625/d,b=c*a*a+.984375),b}};hc.easeIn=hc["ease-in"]=hc["<"],hc.easeOut=hc["ease-out"]=hc[">"],hc.easeInOut=hc["ease-in-out"]=hc["<>"],hc["back-in"]=hc.backIn,hc["back-out"]=hc.backOut;var ic=[],jc=a.requestAnimationFrame||a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame||a.msRequestAnimationFrame||function(a){setTimeout(a,16)},kc=function(){for(var a=+new Date,d=0;dh))if(i>h){var q=j(h/i);for(var r in k)if(k[z](r)){switch(db[r]){case T:f=+k[r]+q*i*l[r];break;case"colour":f="rgb("+[lc($(k[r].r+q*i*l[r].r)),lc($(k[r].g+q*i*l[r].g)),lc($(k[r].b+q*i*l[r].b))].join(",")+")";break;case"path":f=[];for(var t=0,u=k[r].length;u>t;t++){f[t]=[k[r][t][0]];for(var v=1,w=k[r][t].length;w>v;v++)f[t][v]=+k[r][t][v]+q*i*l[r][t][v];f[t]=f[t].join(H)}f=f.join(H);break;case"transform":if(l[r].real)for(f=[],t=0,u=k[r].length;u>t;t++)for(f[t]=[k[r][t][0]],v=1,w=k[r][t].length;w>v;v++)f[t][v]=k[r][t][v]+q*i*l[r][t][v];else{var x=function(a){return+k[r][a]+q*i*l[r][a]};f=[["m",x(0),x(1),x(2),x(3),x(4),x(5)]]}break;case"csv":if("clip-rect"==r)for(f=[],t=4;t--;)f[t]=+k[r][t]+q*i*l[r][t];break;default:var y=[][E](k[r]);for(f=[],t=n.paper.customAttributes[r].length;t--;)f[t]=+y[t]+q*i*l[r][t]}o[r]=f}n.attr(o),function(a,c,d){setTimeout(function(){b("raphael.anim.frame."+a,c,d)})}(n.id,n,e.anim)}else{if(function(a,d,e){setTimeout(function(){b("raphael.anim.frame."+d.id,d,e),b("raphael.anim.finish."+d.id,d,e),c.is(a,"function")&&a.call(d)})}(e.callback,n,e.anim),n.attr(m),ic.splice(d--,1),e.repeat>1&&!e.next){for(g in m)m[z](g)&&(p[g]=e.totalOrigin[g]);e.el.attr(p),s(e.anim,e.el,e.anim.percents[0],null,e.totalOrigin,e.repeat-1)}e.next&&!e.stop&&s(e.anim,e.el,e.next,null,e.totalOrigin,e.repeat)}}}c.svg&&n&&n.paper&&n.paper.safari(),ic.length&&jc(kc)},lc=function(a){return a>255?255:0>a?0:a};$b.animateWith=function(a,b,d,e,f,g){var h=this;if(h.removed)return g&&g.call(h),h;var i=d instanceof r?d:c.animation(d,e,f,g);s(i,h,i.percents[0],null,h.attr());for(var j=0,k=ic.length;k>j;j++)if(ic[j].anim==b&&ic[j].el==a){ic[k-1].start=ic[j].start;break}return h},$b.onAnimation=function(a){return a?b.on("raphael.anim.frame."+this.id,a):b.unbind("raphael.anim.frame."+this.id),this},r.prototype.delay=function(a){var b=new r(this.anim,this.ms);return b.times=this.times,b.del=+a||0,b},r.prototype.repeat=function(a){var b=new r(this.anim,this.ms);return b.del=this.del,b.times=N.floor(O(a,0))||1,b},c.animation=function(a,b,d,e){if(a instanceof r)return a;(c.is(d,"function")||!d)&&(e=e||d||null,d=null),a=Object(a),b=+b||0;var f,g,h={};for(g in a)a[z](g)&&_(g)!=g&&_(g)+"%"!=g&&(f=!0,h[g]=a[g]);if(f)return d&&(h.easing=d),e&&(h.callback=e),new r({100:h},b);if(e){var i=0;for(var j in a){var k=ab(j);a[z](j)&&k>i&&(i=k)}i+="%",!a[i].callback&&(a[i].callback=e)}return new r(a,b)},$b.animate=function(a,b,d,e){var f=this;if(f.removed)return e&&e.call(f),f;var g=a instanceof r?a:c.animation(a,b,d,e);return s(g,f,g.percents[0],null,f.attr()),f},$b.setTime=function(a,b){return a&&null!=b&&this.status(a,P(b,a.ms)/a.ms),this},$b.status=function(a,b){var c,d,e=[],f=0;if(null!=b)return s(a,this,-1,P(b,1)),this;for(c=ic.length;c>f;f++)if(d=ic[f],d.el.id==this.id&&(!a||d.anim==a)){if(a)return d.status;e.push({anim:d.anim,status:d.status})}return a?0:e},$b.pause=function(a){for(var c=0;cb;b++)!a[b]||a[b].constructor!=$b.constructor&&a[b].constructor!=mc||(this[this.items.length]=this.items[this.items.length]=a[b],this.length++)},nc=mc.prototype;nc.push=function(){for(var a,b,c=0,d=arguments.length;d>c;c++)a=arguments[c],!a||a.constructor!=$b.constructor&&a.constructor!=mc||(b=this.items.length,this[b]=this.items[b]=a,this.length++);return this},nc.pop=function(){return this.length&&delete this[this.length--],this.items.pop()},nc.forEach=function(a,b){for(var c=0,d=this.items.length;d>c;c++)if(a.call(b,this.items[c],c)===!1)return this;return this};for(var oc in $b)$b[z](oc)&&(nc[oc]=function(a){return function(){var b=arguments;return this.forEach(function(c){c[a][D](c,b)})}}(oc));return nc.attr=function(a,b){if(a&&c.is(a,V)&&c.is(a[0],"object"))for(var d=0,e=a.length;e>d;d++)this.items[d].attr(a[d]);else for(var f=0,g=this.items.length;g>f;f++)this.items[f].attr(a,b);return this},nc.clear=function(){for(;this.length;)this.pop()},nc.splice=function(a,b){a=0>a?O(this.length+a,0):a,b=O(0,P(this.length-a,b));var c,d=[],e=[],f=[];for(c=2;cc;c++)e.push(this[a+c]);for(;cc?f[c]:d[c-g];for(c=this.items.length=this.length-=b-g;this[c];)delete this[c++];return new mc(e)},nc.exclude=function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]==a)return this.splice(b,1),!0},nc.animate=function(a,b,d,e){(c.is(d,"function")||!d)&&(e=d||null);var f,g,h=this.items.length,i=h,j=this;if(!h)return this;e&&(g=function(){!--h&&e.call(j)}),d=c.is(d,U)?d:g;var k=c.animation(a,b,d,g);for(f=this.items[--i].animate(k);i--;)this.items[i]&&!this.items[i].removed&&this.items[i].animateWith(f,k,k),this.items[i]&&!this.items[i].removed||h--;return this},nc.insertAfter=function(a){for(var b=this.items.length;b--;)this.items[b].insertAfter(a);return this},nc.getBBox=function(){for(var a=[],b=[],c=[],d=[],e=this.items.length;e--;)if(!this.items[e].removed){var f=this.items[e].getBBox();a.push(f.x),b.push(f.y),c.push(f.x+f.width),d.push(f.y+f.height)}return a=P[D](0,a),b=P[D](0,b),c=O[D](0,c),d=O[D](0,d),{x:a,y:b,x2:c,y2:d,width:c-a,height:d-b}},nc.clone=function(a){a=this.paper.set();for(var b=0,c=this.items.length;c>b;b++)a.push(this.items[b].clone());return a},nc.toString=function(){return"Raphaël‘s set"},nc.glow=function(a){var b=this.paper.set();return this.forEach(function(c){var d=c.glow(a);null!=d&&d.forEach(function(a){b.push(a)})}),b},nc.isPointInside=function(a,b){var c=!1;return this.forEach(function(d){return d.isPointInside(a,b)?(c=!0,!1):void 0}),c},c.registerFont=function(a){if(!a.face)return a;this.fonts=this.fonts||{};var b={w:a.w,face:{},glyphs:{}},c=a.face["font-family"];for(var d in a.face)a.face[z](d)&&(b.face[d]=a.face[d]);if(this.fonts[c]?this.fonts[c].push(b):this.fonts[c]=[b],!a.svg){b.face["units-per-em"]=ab(a.face["units-per-em"],10);for(var e in a.glyphs)if(a.glyphs[z](e)){var f=a.glyphs[e];if(b.glyphs[e]={w:f.w,k:{},d:f.d&&"M"+f.d.replace(/[mlcxtrv]/g,function(a){return{l:"L",c:"C",x:"z",t:"m",r:"l",v:"c"}[a]||"M"})+"z"},f.k)for(var g in f.k)f[z](g)&&(b.glyphs[e].k[g]=f.k[g])}}return a},v.getFont=function(a,b,d,e){if(e=e||"normal",d=d||"normal",b=+b||{normal:400,bold:700,lighter:300,bolder:800}[b]||400,c.fonts){var f=c.fonts[a];if(!f){var g=new RegExp("(^|\\s)"+a.replace(/[^\w\d\s+!~.:_-]/g,G)+"(\\s|$)","i");for(var h in c.fonts)if(c.fonts[z](h)&&g.test(h)){f=c.fonts[h];break}}var i;if(f)for(var j=0,k=f.length;k>j&&(i=f[j],i.face["font-weight"]!=b||i.face["font-style"]!=d&&i.face["font-style"]||i.face["font-stretch"]!=e);j++);return i}},v.print=function(a,b,d,e,f,g,h,i){g=g||"middle",h=O(P(h||0,1),-1),i=O(P(i||1,3),1);var j,k=I(d)[J](G),l=0,m=0,n=G;if(c.is(e,"string")&&(e=this.getFont(e)),e){j=(f||16)/e.face["units-per-em"];for(var o=e.face.bbox[J](w),p=+o[0],q=o[3]-o[1],r=0,s=+o[1]+("baseline"==g?q+ +e.face.descent:q/2),t=0,u=k.length;u>t;t++){if("\n"==k[t])l=0,x=0,m=0,r+=q*i;else{var v=m&&e.glyphs[k[t-1]]||{},x=e.glyphs[k[t]];l+=m?(v.w||e.w)+(v.k&&v.k[k[t]]||0)+e.w*h:0,m=1}x&&x.d&&(n+=c.transformPath(x.d,["t",l*j,r*j,"s",j,j,p,s,"t",(a-p)/j,(b-s)/j]))}}return this.path(n).attr({fill:"#000",stroke:"none"})},v.add=function(a){if(c.is(a,"array"))for(var b,d=this.set(),e=0,f=a.length;f>e;e++)b=a[e]||{},x[z](b.type)&&d.push(this[b.type]().attr(b));return d},c.format=function(a,b){var d=c.is(b,V)?[0][E](b):arguments;return a&&c.is(a,U)&&d.length-1&&(a=a.replace(y,function(a,b){return null==d[++b]?G:d[b]})),a||G},c.fullfill=function(){var a=/\{([^\}]+)\}/g,b=/(?:(?:^|\.)(.+?)(?=\[|\.|$|\()|\[('|")(.+?)\2\])(\(\))?/g,c=function(a,c,d){var e=d;return c.replace(b,function(a,b,c,d,f){b=b||d,e&&(b in e&&(e=e[b]),"function"==typeof e&&f&&(e=e()))}),e=(null==e||e==d?a:e)+""};return function(b,d){return String(b).replace(a,function(a,b){return c(a,b,d)})}}(),c.ninja=function(){return B.was?A.win.Raphael=B.is:delete Raphael,c},c.st=nc,b.on("raphael.DOMload",function(){u=!0}),function(a,b,d){function e(){/in/.test(a.readyState)?setTimeout(e,9):c.eve("raphael.DOMload")}null==a.readyState&&a.addEventListener&&(a.addEventListener(b,d=function(){a.removeEventListener(b,d,!1),a.readyState="complete"},!1),a.readyState="loading"),e()}(document,"DOMContentLoaded"),function(){if(c.svg){var a="hasOwnProperty",b=String,d=parseFloat,e=parseInt,f=Math,g=f.max,h=f.abs,i=f.pow,j=/[, ]+/,k=c.eve,l="",m=" ",n="http://www.w3.org/1999/xlink",o={block:"M5,0 0,2.5 5,5z",classic:"M5,0 0,2.5 5,5 3.5,3 3.5,2z",diamond:"M2.5,0 5,2.5 2.5,5 0,2.5z",open:"M6,1 1,3.5 6,6",oval:"M2.5,0A2.5,2.5,0,0,1,2.5,5 2.5,2.5,0,0,1,2.5,0z"},p={};c.toString=function(){return"Your browser supports SVG.\nYou are running Raphaël "+this.version};var q=function(d,e){if(e){"string"==typeof d&&(d=q(d));for(var f in e)e[a](f)&&("xlink:"==f.substring(0,6)?d.setAttributeNS(n,f.substring(6),b(e[f])):d.setAttribute(f,b(e[f])))}else d=c._g.doc.createElementNS("http://www.w3.org/2000/svg",d),d.style&&(d.style.webkitTapHighlightColor="rgba(0,0,0,0)");return d},r=function(a,e){var j="linear",k=a.id+e,m=.5,n=.5,o=a.node,p=a.paper,r=o.style,s=c._g.doc.getElementById(k);if(!s){if(e=b(e).replace(c._radial_gradient,function(a,b,c){if(j="radial",b&&c){m=d(b),n=d(c);var e=2*(n>.5)-1;i(m-.5,2)+i(n-.5,2)>.25&&(n=f.sqrt(.25-i(m-.5,2))*e+.5)&&.5!=n&&(n=n.toFixed(5)-1e-5*e)}return l}),e=e.split(/\s*\-\s*/),"linear"==j){var t=e.shift();if(t=-d(t),isNaN(t))return null;var u=[0,0,f.cos(c.rad(t)),f.sin(c.rad(t))],v=1/(g(h(u[2]),h(u[3]))||1);u[2]*=v,u[3]*=v,u[2]<0&&(u[0]=-u[2],u[2]=0),u[3]<0&&(u[1]=-u[3],u[3]=0)}var w=c._parseDots(e);if(!w)return null;if(k=k.replace(/[\(\)\s,\xb0#]/g,"_"),a.gradient&&k!=a.gradient.id&&(p.defs.removeChild(a.gradient),delete a.gradient),!a.gradient){s=q(j+"Gradient",{id:k}),a.gradient=s,q(s,"radial"==j?{fx:m,fy:n}:{x1:u[0],y1:u[1],x2:u[2],y2:u[3],gradientTransform:a.matrix.invert()}),p.defs.appendChild(s);for(var x=0,y=w.length;y>x;x++)s.appendChild(q("stop",{offset:w[x].offset?w[x].offset:x?"100%":"0%","stop-color":w[x].color||"#fff"}))}}return q(o,{fill:"url('"+document.location+"#"+k+"')",opacity:1,"fill-opacity":1}),r.fill=l,r.opacity=1,r.fillOpacity=1,1},s=function(a){var b=a.getBBox(1);q(a.pattern,{patternTransform:a.matrix.invert()+" translate("+b.x+","+b.y+")"})},t=function(d,e,f){if("path"==d.type){for(var g,h,i,j,k,m=b(e).toLowerCase().split("-"),n=d.paper,r=f?"end":"start",s=d.node,t=d.attrs,u=t["stroke-width"],v=m.length,w="classic",x=3,y=3,z=5;v--;)switch(m[v]){case"block":case"classic":case"oval":case"diamond":case"open":case"none":w=m[v];break;case"wide":y=5;break;case"narrow":y=2;break;case"long":x=5;break;case"short":x=2}if("open"==w?(x+=2,y+=2,z+=2,i=1,j=f?4:1,k={fill:"none",stroke:t.stroke}):(j=i=x/2,k={fill:t.stroke,stroke:"none"}),d._.arrows?f?(d._.arrows.endPath&&p[d._.arrows.endPath]--,d._.arrows.endMarker&&p[d._.arrows.endMarker]--):(d._.arrows.startPath&&p[d._.arrows.startPath]--,d._.arrows.startMarker&&p[d._.arrows.startMarker]--):d._.arrows={},"none"!=w){var A="raphael-marker-"+w,B="raphael-marker-"+r+w+x+y+"-obj"+d.id;c._g.doc.getElementById(A)?p[A]++:(n.defs.appendChild(q(q("path"),{"stroke-linecap":"round",d:o[w],id:A})),p[A]=1);var C,D=c._g.doc.getElementById(B);D?(p[B]++,C=D.getElementsByTagName("use")[0]):(D=q(q("marker"),{id:B,markerHeight:y,markerWidth:x,orient:"auto",refX:j,refY:y/2}),C=q(q("use"),{"xlink:href":"#"+A,transform:(f?"rotate(180 "+x/2+" "+y/2+") ":l)+"scale("+x/z+","+y/z+")","stroke-width":(1/((x/z+y/z)/2)).toFixed(4)}),D.appendChild(C),n.defs.appendChild(D),p[B]=1),q(C,k);var E=i*("diamond"!=w&&"oval"!=w);f?(g=d._.arrows.startdx*u||0,h=c.getTotalLength(t.path)-E*u):(g=E*u,h=c.getTotalLength(t.path)-(d._.arrows.enddx*u||0)),k={},k["marker-"+r]="url(#"+B+")",(h||g)&&(k.d=c.getSubpath(t.path,g,h)),q(s,k),d._.arrows[r+"Path"]=A,d._.arrows[r+"Marker"]=B,d._.arrows[r+"dx"]=E,d._.arrows[r+"Type"]=w,d._.arrows[r+"String"]=e}else f?(g=d._.arrows.startdx*u||0,h=c.getTotalLength(t.path)-g):(g=0,h=c.getTotalLength(t.path)-(d._.arrows.enddx*u||0)),d._.arrows[r+"Path"]&&q(s,{d:c.getSubpath(t.path,g,h)}),delete d._.arrows[r+"Path"],delete d._.arrows[r+"Marker"],delete d._.arrows[r+"dx"],delete d._.arrows[r+"Type"],delete d._.arrows[r+"String"];for(k in p)if(p[a](k)&&!p[k]){var F=c._g.doc.getElementById(k);F&&F.parentNode.removeChild(F)}}},u={"":[0],none:[0],"-":[3,1],".":[1,1],"-.":[3,1,1,1],"-..":[3,1,1,1,1,1],". ":[1,3],"- ":[4,3],"--":[8,3],"- .":[4,3,1,3],"--.":[8,3,1,3],"--..":[8,3,1,3,1,3]},v=function(a,c,d){if(c=u[b(c).toLowerCase()]){for(var e=a.attrs["stroke-width"]||"1",f={round:e,square:e,butt:0}[a.attrs["stroke-linecap"]||d["stroke-linecap"]]||0,g=[],h=c.length;h--;)g[h]=c[h]*e+(h%2?1:-1)*f;q(a.node,{"stroke-dasharray":g.join(",")})}},w=function(d,f){var i=d.node,k=d.attrs,m=i.style.visibility;i.style.visibility="hidden";for(var o in f)if(f[a](o)){if(!c._availableAttrs[a](o))continue;var p=f[o];switch(k[o]=p,o){case"blur":d.blur(p);break;case"title":var u=i.getElementsByTagName("title");if(u.length&&(u=u[0]))u.firstChild.nodeValue=p;else{u=q("title");var w=c._g.doc.createTextNode(p);u.appendChild(w),i.appendChild(u)}break;case"href":case"target":var x=i.parentNode;if("a"!=x.tagName.toLowerCase()){var z=q("a");x.insertBefore(z,i),z.appendChild(i),x=z}"target"==o?x.setAttributeNS(n,"show","blank"==p?"new":p):x.setAttributeNS(n,o,p);break;case"cursor":i.style.cursor=p;break;case"transform":d.transform(p);break;case"arrow-start":t(d,p);break;case"arrow-end":t(d,p,1);break;case"clip-rect":var A=b(p).split(j);if(4==A.length){d.clip&&d.clip.parentNode.parentNode.removeChild(d.clip.parentNode);var B=q("clipPath"),C=q("rect");B.id=c.createUUID(),q(C,{x:A[0],y:A[1],width:A[2],height:A[3]}),B.appendChild(C),d.paper.defs.appendChild(B),q(i,{"clip-path":"url(#"+B.id+")"}),d.clip=C}if(!p){var D=i.getAttribute("clip-path");if(D){var E=c._g.doc.getElementById(D.replace(/(^url\(#|\)$)/g,l));E&&E.parentNode.removeChild(E),q(i,{"clip-path":l}),delete d.clip}}break;case"path":"path"==d.type&&(q(i,{d:p?k.path=c._pathToAbsolute(p):"M0,0"}),d._.dirty=1,d._.arrows&&("startString"in d._.arrows&&t(d,d._.arrows.startString),"endString"in d._.arrows&&t(d,d._.arrows.endString,1)));break;case"width":if(i.setAttribute(o,p),d._.dirty=1,!k.fx)break;o="x",p=k.x;case"x":k.fx&&(p=-k.x-(k.width||0));case"rx":if("rx"==o&&"rect"==d.type)break;case"cx":i.setAttribute(o,p),d.pattern&&s(d),d._.dirty=1;break;case"height":if(i.setAttribute(o,p),d._.dirty=1,!k.fy)break;o="y",p=k.y;case"y":k.fy&&(p=-k.y-(k.height||0));case"ry":if("ry"==o&&"rect"==d.type)break;case"cy":i.setAttribute(o,p),d.pattern&&s(d),d._.dirty=1;break;case"r":"rect"==d.type?q(i,{rx:p,ry:p}):i.setAttribute(o,p),d._.dirty=1;break;case"src":"image"==d.type&&i.setAttributeNS(n,"href",p);break;case"stroke-width":(1!=d._.sx||1!=d._.sy)&&(p/=g(h(d._.sx),h(d._.sy))||1),i.setAttribute(o,p),k["stroke-dasharray"]&&v(d,k["stroke-dasharray"],f),d._.arrows&&("startString"in d._.arrows&&t(d,d._.arrows.startString),"endString"in d._.arrows&&t(d,d._.arrows.endString,1));break;case"stroke-dasharray":v(d,p,f);break;case"fill":var F=b(p).match(c._ISURL);if(F){B=q("pattern");var G=q("image");B.id=c.createUUID(),q(B,{x:0,y:0,patternUnits:"userSpaceOnUse",height:1,width:1}),q(G,{x:0,y:0,"xlink:href":F[1]}),B.appendChild(G),function(a){c._preload(F[1],function(){var b=this.offsetWidth,c=this.offsetHeight;q(a,{width:b,height:c}),q(G,{width:b,height:c}),d.paper.safari()})}(B),d.paper.defs.appendChild(B),q(i,{fill:"url(#"+B.id+")"}),d.pattern=B,d.pattern&&s(d);break}var H=c.getRGB(p);if(H.error){if(("circle"==d.type||"ellipse"==d.type||"r"!=b(p).charAt())&&r(d,p)){if("opacity"in k||"fill-opacity"in k){var I=c._g.doc.getElementById(i.getAttribute("fill").replace(/^url\(#|\)$/g,l));if(I){var J=I.getElementsByTagName("stop");q(J[J.length-1],{"stop-opacity":("opacity"in k?k.opacity:1)*("fill-opacity"in k?k["fill-opacity"]:1)})}}k.gradient=p,k.fill="none";break}}else delete f.gradient,delete k.gradient,!c.is(k.opacity,"undefined")&&c.is(f.opacity,"undefined")&&q(i,{opacity:k.opacity}),!c.is(k["fill-opacity"],"undefined")&&c.is(f["fill-opacity"],"undefined")&&q(i,{"fill-opacity":k["fill-opacity"]});H[a]("opacity")&&q(i,{"fill-opacity":H.opacity>1?H.opacity/100:H.opacity});case"stroke":H=c.getRGB(p),i.setAttribute(o,H.hex),"stroke"==o&&H[a]("opacity")&&q(i,{"stroke-opacity":H.opacity>1?H.opacity/100:H.opacity}),"stroke"==o&&d._.arrows&&("startString"in d._.arrows&&t(d,d._.arrows.startString),"endString"in d._.arrows&&t(d,d._.arrows.endString,1));break;case"gradient":("circle"==d.type||"ellipse"==d.type||"r"!=b(p).charAt())&&r(d,p);break; -case"opacity":k.gradient&&!k[a]("stroke-opacity")&&q(i,{"stroke-opacity":p>1?p/100:p});case"fill-opacity":if(k.gradient){I=c._g.doc.getElementById(i.getAttribute("fill").replace(/^url\(#|\)$/g,l)),I&&(J=I.getElementsByTagName("stop"),q(J[J.length-1],{"stop-opacity":p}));break}default:"font-size"==o&&(p=e(p,10)+"px");var K=o.replace(/(\-.)/g,function(a){return a.substring(1).toUpperCase()});i.style[K]=p,d._.dirty=1,i.setAttribute(o,p)}}y(d,f),i.style.visibility=m},x=1.2,y=function(d,f){if("text"==d.type&&(f[a]("text")||f[a]("font")||f[a]("font-size")||f[a]("x")||f[a]("y"))){var g=d.attrs,h=d.node,i=h.firstChild?e(c._g.doc.defaultView.getComputedStyle(h.firstChild,l).getPropertyValue("font-size"),10):10;if(f[a]("text")){for(g.text=f.text;h.firstChild;)h.removeChild(h.firstChild);for(var j,k=b(f.text).split("\n"),m=[],n=0,o=k.length;o>n;n++)j=q("tspan"),n&&q(j,{dy:i*x,x:g.x}),j.appendChild(c._g.doc.createTextNode(k[n])),h.appendChild(j),m[n]=j}else for(m=h.getElementsByTagName("tspan"),n=0,o=m.length;o>n;n++)n?q(m[n],{dy:i*x,x:g.x}):q(m[0],{dy:0});q(h,{x:g.x,y:g.y}),d._.dirty=1;var p=d._getBBox(),r=g.y-(p.y+p.height/2);r&&c.is(r,"finite")&&q(m[0],{dy:r})}},z=function(a){return a.parentNode&&"a"===a.parentNode.tagName.toLowerCase()?a.parentNode:a},A=function(a,b){this[0]=this.node=a,a.raphael=!0,this.id=c._oid++,a.raphaelid=this.id,this.matrix=c.matrix(),this.realPath=null,this.paper=b,this.attrs=this.attrs||{},this._={transform:[],sx:1,sy:1,deg:0,dx:0,dy:0,dirty:1},!b.bottom&&(b.bottom=this),this.prev=b.top,b.top&&(b.top.next=this),b.top=this,this.next=null},B=c.el;A.prototype=B,B.constructor=A,c._engine.path=function(a,b){var c=q("path");b.canvas&&b.canvas.appendChild(c);var d=new A(c,b);return d.type="path",w(d,{fill:"none",stroke:"#000",path:a}),d},B.rotate=function(a,c,e){if(this.removed)return this;if(a=b(a).split(j),a.length-1&&(c=d(a[1]),e=d(a[2])),a=d(a[0]),null==e&&(c=e),null==c||null==e){var f=this.getBBox(1);c=f.x+f.width/2,e=f.y+f.height/2}return this.transform(this._.transform.concat([["r",a,c,e]])),this},B.scale=function(a,c,e,f){if(this.removed)return this;if(a=b(a).split(j),a.length-1&&(c=d(a[1]),e=d(a[2]),f=d(a[3])),a=d(a[0]),null==c&&(c=a),null==f&&(e=f),null==e||null==f)var g=this.getBBox(1);return e=null==e?g.x+g.width/2:e,f=null==f?g.y+g.height/2:f,this.transform(this._.transform.concat([["s",a,c,e,f]])),this},B.translate=function(a,c){return this.removed?this:(a=b(a).split(j),a.length-1&&(c=d(a[1])),a=d(a[0])||0,c=+c||0,this.transform(this._.transform.concat([["t",a,c]])),this)},B.transform=function(b){var d=this._;if(null==b)return d.transform;if(c._extractTransform(this,b),this.clip&&q(this.clip,{transform:this.matrix.invert()}),this.pattern&&s(this),this.node&&q(this.node,{transform:this.matrix}),1!=d.sx||1!=d.sy){var e=this.attrs[a]("stroke-width")?this.attrs["stroke-width"]:1;this.attr({"stroke-width":e})}return this},B.hide=function(){return!this.removed&&this.paper.safari(this.node.style.display="none"),this},B.show=function(){return!this.removed&&this.paper.safari(this.node.style.display=""),this},B.remove=function(){var a=z(this.node);if(!this.removed&&a.parentNode){var b=this.paper;b.__set__&&b.__set__.exclude(this),k.unbind("raphael.*.*."+this.id),this.gradient&&b.defs.removeChild(this.gradient),c._tear(this,b),a.parentNode.removeChild(a),this.removeData();for(var d in this)this[d]="function"==typeof this[d]?c._removedFactory(d):null;this.removed=!0}},B._getBBox=function(){if("none"==this.node.style.display){this.show();var a=!0}var b,c=!1;this.paper.canvas.parentElement?b=this.paper.canvas.parentElement.style:this.paper.canvas.parentNode&&(b=this.paper.canvas.parentNode.style),b&&"none"==b.display&&(c=!0,b.display="");var d={};try{d=this.node.getBBox()}catch(e){d={x:this.node.clientLeft,y:this.node.clientTop,width:this.node.clientWidth,height:this.node.clientHeight}}finally{d=d||{},c&&(b.display="none")}return a&&this.hide(),d},B.attr=function(b,d){if(this.removed)return this;if(null==b){var e={};for(var f in this.attrs)this.attrs[a](f)&&(e[f]=this.attrs[f]);return e.gradient&&"none"==e.fill&&(e.fill=e.gradient)&&delete e.gradient,e.transform=this._.transform,e}if(null==d&&c.is(b,"string")){if("fill"==b&&"none"==this.attrs.fill&&this.attrs.gradient)return this.attrs.gradient;if("transform"==b)return this._.transform;for(var g=b.split(j),h={},i=0,l=g.length;l>i;i++)b=g[i],h[b]=b in this.attrs?this.attrs[b]:c.is(this.paper.customAttributes[b],"function")?this.paper.customAttributes[b].def:c._availableAttrs[b];return l-1?h:h[g[0]]}if(null==d&&c.is(b,"array")){for(h={},i=0,l=b.length;l>i;i++)h[b[i]]=this.attr(b[i]);return h}if(null!=d){var m={};m[b]=d}else null!=b&&c.is(b,"object")&&(m=b);for(var n in m)k("raphael.attr."+n+"."+this.id,this,m[n]);for(n in this.paper.customAttributes)if(this.paper.customAttributes[a](n)&&m[a](n)&&c.is(this.paper.customAttributes[n],"function")){var o=this.paper.customAttributes[n].apply(this,[].concat(m[n]));this.attrs[n]=m[n];for(var p in o)o[a](p)&&(m[p]=o[p])}return w(this,m),this},B.toFront=function(){if(this.removed)return this;var a=z(this.node);a.parentNode.appendChild(a);var b=this.paper;return b.top!=this&&c._tofront(this,b),this},B.toBack=function(){if(this.removed)return this;var a=z(this.node),b=a.parentNode;b.insertBefore(a,b.firstChild),c._toback(this,this.paper);this.paper;return this},B.insertAfter=function(a){if(this.removed||!a)return this;var b=z(this.node),d=z(a.node||a[a.length-1].node);return d.nextSibling?d.parentNode.insertBefore(b,d.nextSibling):d.parentNode.appendChild(b),c._insertafter(this,a,this.paper),this},B.insertBefore=function(a){if(this.removed||!a)return this;var b=z(this.node),d=z(a.node||a[0].node);return d.parentNode.insertBefore(b,d),c._insertbefore(this,a,this.paper),this},B.blur=function(a){var b=this;if(0!==+a){var d=q("filter"),e=q("feGaussianBlur");b.attrs.blur=a,d.id=c.createUUID(),q(e,{stdDeviation:+a||1.5}),d.appendChild(e),b.paper.defs.appendChild(d),b._blur=d,q(b.node,{filter:"url(#"+d.id+")"})}else b._blur&&(b._blur.parentNode.removeChild(b._blur),delete b._blur,delete b.attrs.blur),b.node.removeAttribute("filter");return b},c._engine.circle=function(a,b,c,d){var e=q("circle");a.canvas&&a.canvas.appendChild(e);var f=new A(e,a);return f.attrs={cx:b,cy:c,r:d,fill:"none",stroke:"#000"},f.type="circle",q(e,f.attrs),f},c._engine.rect=function(a,b,c,d,e,f){var g=q("rect");a.canvas&&a.canvas.appendChild(g);var h=new A(g,a);return h.attrs={x:b,y:c,width:d,height:e,rx:f||0,ry:f||0,fill:"none",stroke:"#000"},h.type="rect",q(g,h.attrs),h},c._engine.ellipse=function(a,b,c,d,e){var f=q("ellipse");a.canvas&&a.canvas.appendChild(f);var g=new A(f,a);return g.attrs={cx:b,cy:c,rx:d,ry:e,fill:"none",stroke:"#000"},g.type="ellipse",q(f,g.attrs),g},c._engine.image=function(a,b,c,d,e,f){var g=q("image");q(g,{x:c,y:d,width:e,height:f,preserveAspectRatio:"none"}),g.setAttributeNS(n,"href",b),a.canvas&&a.canvas.appendChild(g);var h=new A(g,a);return h.attrs={x:c,y:d,width:e,height:f,src:b},h.type="image",h},c._engine.text=function(a,b,d,e){var f=q("text");a.canvas&&a.canvas.appendChild(f);var g=new A(f,a);return g.attrs={x:b,y:d,"text-anchor":"middle",text:e,"font-family":c._availableAttrs["font-family"],"font-size":c._availableAttrs["font-size"],stroke:"none",fill:"#000"},g.type="text",w(g,g.attrs),g},c._engine.setSize=function(a,b){return this.width=a||this.width,this.height=b||this.height,this.canvas.setAttribute("width",this.width),this.canvas.setAttribute("height",this.height),this._viewBox&&this.setViewBox.apply(this,this._viewBox),this},c._engine.create=function(){var a=c._getContainer.apply(0,arguments),b=a&&a.container,d=a.x,e=a.y,f=a.width,g=a.height;if(!b)throw new Error("SVG container not found.");var h,i=q("svg"),j="overflow:hidden;";return d=d||0,e=e||0,f=f||512,g=g||342,q(i,{height:g,version:1.1,width:f,xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"}),1==b?(i.style.cssText=j+"position:absolute;left:"+d+"px;top:"+e+"px",c._g.doc.body.appendChild(i),h=1):(i.style.cssText=j+"position:relative",b.firstChild?b.insertBefore(i,b.firstChild):b.appendChild(i)),b=new c._Paper,b.width=f,b.height=g,b.canvas=i,b.clear(),b._left=b._top=0,h&&(b.renderfix=function(){}),b.renderfix(),b},c._engine.setViewBox=function(a,b,c,d,e){k("raphael.setViewBox",this,this._viewBox,[a,b,c,d,e]);var f,h,i=this.getSize(),j=g(c/i.width,d/i.height),l=this.top,n=e?"xMidYMid meet":"xMinYMin";for(null==a?(this._vbSize&&(j=1),delete this._vbSize,f="0 0 "+this.width+m+this.height):(this._vbSize=j,f=a+m+b+m+c+m+d),q(this.canvas,{viewBox:f,preserveAspectRatio:n});j&&l;)h="stroke-width"in l.attrs?l.attrs["stroke-width"]:1,l.attr({"stroke-width":h}),l._.dirty=1,l._.dirtyT=1,l=l.prev;return this._viewBox=[a,b,c,d,!!e],this},c.prototype.renderfix=function(){var a,b=this.canvas,c=b.style;try{a=b.getScreenCTM()||b.createSVGMatrix()}catch(d){a=b.createSVGMatrix()}var e=-a.e%1,f=-a.f%1;(e||f)&&(e&&(this._left=(this._left+e)%1,c.left=this._left+"px"),f&&(this._top=(this._top+f)%1,c.top=this._top+"px"))},c.prototype.clear=function(){c.eve("raphael.clear",this);for(var a=this.canvas;a.firstChild;)a.removeChild(a.firstChild);this.bottom=this.top=null,(this.desc=q("desc")).appendChild(c._g.doc.createTextNode("Created with Raphaël "+c.version)),a.appendChild(this.desc),a.appendChild(this.defs=q("defs"))},c.prototype.remove=function(){k("raphael.remove",this),this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas);for(var a in this)this[a]="function"==typeof this[a]?c._removedFactory(a):null};var C=c.st;for(var D in B)B[a](D)&&!C[a](D)&&(C[D]=function(a){return function(){var b=arguments;return this.forEach(function(c){c[a].apply(c,b)})}}(D))}}(),function(){if(c.vml){var a="hasOwnProperty",b=String,d=parseFloat,e=Math,f=e.round,g=e.max,h=e.min,i=e.abs,j="fill",k=/[, ]+/,l=c.eve,m=" progid:DXImageTransform.Microsoft",n=" ",o="",p={M:"m",L:"l",C:"c",Z:"x",m:"t",l:"r",c:"v",z:"x"},q=/([clmz]),?([^clmz]*)/gi,r=/ progid:\S+Blur\([^\)]+\)/g,s=/-?[^,\s-]+/g,t="position:absolute;left:0;top:0;width:1px;height:1px;behavior:url(#default#VML)",u=21600,v={path:1,rect:1,image:1},w={circle:1,ellipse:1},x=function(a){var d=/[ahqstv]/gi,e=c._pathToAbsolute;if(b(a).match(d)&&(e=c._path2curve),d=/[clmz]/g,e==c._pathToAbsolute&&!b(a).match(d)){var g=b(a).replace(q,function(a,b,c){var d=[],e="m"==b.toLowerCase(),g=p[b];return c.replace(s,function(a){e&&2==d.length&&(g+=d+p["m"==b?"l":"L"],d=[]),d.push(f(a*u))}),g+d});return g}var h,i,j=e(a);g=[];for(var k=0,l=j.length;l>k;k++){h=j[k],i=j[k][0].toLowerCase(),"z"==i&&(i="x");for(var m=1,r=h.length;r>m;m++)i+=f(h[m]*u)+(m!=r-1?",":o);g.push(i)}return g.join(n)},y=function(a,b,d){var e=c.matrix();return e.rotate(-a,.5,.5),{dx:e.x(b,d),dy:e.y(b,d)}},z=function(a,b,c,d,e,f){var g=a._,h=a.matrix,k=g.fillpos,l=a.node,m=l.style,o=1,p="",q=u/b,r=u/c;if(m.visibility="hidden",b&&c){if(l.coordsize=i(q)+n+i(r),m.rotation=f*(0>b*c?-1:1),f){var s=y(f,d,e);d=s.dx,e=s.dy}if(0>b&&(p+="x"),0>c&&(p+=" y")&&(o=-1),m.flip=p,l.coordorigin=d*-q+n+e*-r,k||g.fillsize){var t=l.getElementsByTagName(j);t=t&&t[0],l.removeChild(t),k&&(s=y(f,h.x(k[0],k[1]),h.y(k[0],k[1])),t.position=s.dx*o+n+s.dy*o),g.fillsize&&(t.size=g.fillsize[0]*i(b)+n+g.fillsize[1]*i(c)),l.appendChild(t)}m.visibility="visible"}};c.toString=function(){return"Your browser doesn’t support SVG. Falling down to VML.\nYou are running Raphaël "+this.version};var A=function(a,c,d){for(var e=b(c).toLowerCase().split("-"),f=d?"end":"start",g=e.length,h="classic",i="medium",j="medium";g--;)switch(e[g]){case"block":case"classic":case"oval":case"diamond":case"open":case"none":h=e[g];break;case"wide":case"narrow":j=e[g];break;case"long":case"short":i=e[g]}var k=a.node.getElementsByTagName("stroke")[0];k[f+"arrow"]=h,k[f+"arrowlength"]=i,k[f+"arrowwidth"]=j},B=function(e,i){e.attrs=e.attrs||{};var l=e.node,m=e.attrs,p=l.style,q=v[e.type]&&(i.x!=m.x||i.y!=m.y||i.width!=m.width||i.height!=m.height||i.cx!=m.cx||i.cy!=m.cy||i.rx!=m.rx||i.ry!=m.ry||i.r!=m.r),r=w[e.type]&&(m.cx!=i.cx||m.cy!=i.cy||m.r!=i.r||m.rx!=i.rx||m.ry!=i.ry),s=e;for(var t in i)i[a](t)&&(m[t]=i[t]);if(q&&(m.path=c._getPath[e.type](e),e._.dirty=1),i.href&&(l.href=i.href),i.title&&(l.title=i.title),i.target&&(l.target=i.target),i.cursor&&(p.cursor=i.cursor),"blur"in i&&e.blur(i.blur),(i.path&&"path"==e.type||q)&&(l.path=x(~b(m.path).toLowerCase().indexOf("r")?c._pathToAbsolute(m.path):m.path),e._.dirty=1,"image"==e.type&&(e._.fillpos=[m.x,m.y],e._.fillsize=[m.width,m.height],z(e,1,1,0,0,0))),"transform"in i&&e.transform(i.transform),r){var y=+m.cx,B=+m.cy,D=+m.rx||+m.r||0,E=+m.ry||+m.r||0;l.path=c.format("ar{0},{1},{2},{3},{4},{1},{4},{1}x",f((y-D)*u),f((B-E)*u),f((y+D)*u),f((B+E)*u),f(y*u)),e._.dirty=1}if("clip-rect"in i){var G=b(i["clip-rect"]).split(k);if(4==G.length){G[2]=+G[2]+ +G[0],G[3]=+G[3]+ +G[1];var H=l.clipRect||c._g.doc.createElement("div"),I=H.style;I.clip=c.format("rect({1}px {2}px {3}px {0}px)",G),l.clipRect||(I.position="absolute",I.top=0,I.left=0,I.width=e.paper.width+"px",I.height=e.paper.height+"px",l.parentNode.insertBefore(H,l),H.appendChild(l),l.clipRect=H)}i["clip-rect"]||l.clipRect&&(l.clipRect.style.clip="auto")}if(e.textpath){var J=e.textpath.style;i.font&&(J.font=i.font),i["font-family"]&&(J.fontFamily='"'+i["font-family"].split(",")[0].replace(/^['"]+|['"]+$/g,o)+'"'),i["font-size"]&&(J.fontSize=i["font-size"]),i["font-weight"]&&(J.fontWeight=i["font-weight"]),i["font-style"]&&(J.fontStyle=i["font-style"])}if("arrow-start"in i&&A(s,i["arrow-start"]),"arrow-end"in i&&A(s,i["arrow-end"],1),null!=i.opacity||null!=i["stroke-width"]||null!=i.fill||null!=i.src||null!=i.stroke||null!=i["stroke-width"]||null!=i["stroke-opacity"]||null!=i["fill-opacity"]||null!=i["stroke-dasharray"]||null!=i["stroke-miterlimit"]||null!=i["stroke-linejoin"]||null!=i["stroke-linecap"]){var K=l.getElementsByTagName(j),L=!1;if(K=K&&K[0],!K&&(L=K=F(j)),"image"==e.type&&i.src&&(K.src=i.src),i.fill&&(K.on=!0),(null==K.on||"none"==i.fill||null===i.fill)&&(K.on=!1),K.on&&i.fill){var M=b(i.fill).match(c._ISURL);if(M){K.parentNode==l&&l.removeChild(K),K.rotate=!0,K.src=M[1],K.type="tile";var N=e.getBBox(1);K.position=N.x+n+N.y,e._.fillpos=[N.x,N.y],c._preload(M[1],function(){e._.fillsize=[this.offsetWidth,this.offsetHeight]})}else K.color=c.getRGB(i.fill).hex,K.src=o,K.type="solid",c.getRGB(i.fill).error&&(s.type in{circle:1,ellipse:1}||"r"!=b(i.fill).charAt())&&C(s,i.fill,K)&&(m.fill="none",m.gradient=i.fill,K.rotate=!1)}if("fill-opacity"in i||"opacity"in i){var O=((+m["fill-opacity"]+1||2)-1)*((+m.opacity+1||2)-1)*((+c.getRGB(i.fill).o+1||2)-1);O=h(g(O,0),1),K.opacity=O,K.src&&(K.color="none")}l.appendChild(K);var P=l.getElementsByTagName("stroke")&&l.getElementsByTagName("stroke")[0],Q=!1;!P&&(Q=P=F("stroke")),(i.stroke&&"none"!=i.stroke||i["stroke-width"]||null!=i["stroke-opacity"]||i["stroke-dasharray"]||i["stroke-miterlimit"]||i["stroke-linejoin"]||i["stroke-linecap"])&&(P.on=!0),("none"==i.stroke||null===i.stroke||null==P.on||0==i.stroke||0==i["stroke-width"])&&(P.on=!1);var R=c.getRGB(i.stroke);P.on&&i.stroke&&(P.color=R.hex),O=((+m["stroke-opacity"]+1||2)-1)*((+m.opacity+1||2)-1)*((+R.o+1||2)-1);var S=.75*(d(i["stroke-width"])||1);if(O=h(g(O,0),1),null==i["stroke-width"]&&(S=m["stroke-width"]),i["stroke-width"]&&(P.weight=S),S&&1>S&&(O*=S)&&(P.weight=1),P.opacity=O,i["stroke-linejoin"]&&(P.joinstyle=i["stroke-linejoin"]||"miter"),P.miterlimit=i["stroke-miterlimit"]||8,i["stroke-linecap"]&&(P.endcap="butt"==i["stroke-linecap"]?"flat":"square"==i["stroke-linecap"]?"square":"round"),"stroke-dasharray"in i){var T={"-":"shortdash",".":"shortdot","-.":"shortdashdot","-..":"shortdashdotdot",". ":"dot","- ":"dash","--":"longdash","- .":"dashdot","--.":"longdashdot","--..":"longdashdotdot"};P.dashstyle=T[a](i["stroke-dasharray"])?T[i["stroke-dasharray"]]:o}Q&&l.appendChild(P)}if("text"==s.type){s.paper.canvas.style.display=o;var U=s.paper.span,V=100,W=m.font&&m.font.match(/\d+(?:\.\d*)?(?=px)/);p=U.style,m.font&&(p.font=m.font),m["font-family"]&&(p.fontFamily=m["font-family"]),m["font-weight"]&&(p.fontWeight=m["font-weight"]),m["font-style"]&&(p.fontStyle=m["font-style"]),W=d(m["font-size"]||W&&W[0])||10,p.fontSize=W*V+"px",s.textpath.string&&(U.innerHTML=b(s.textpath.string).replace(/"));var X=U.getBoundingClientRect();s.W=m.w=(X.right-X.left)/V,s.H=m.h=(X.bottom-X.top)/V,s.X=m.x,s.Y=m.y+s.H/2,("x"in i||"y"in i)&&(s.path.v=c.format("m{0},{1}l{2},{1}",f(m.x*u),f(m.y*u),f(m.x*u)+1));for(var Y=["x","y","text","font","font-family","font-weight","font-style","font-size"],Z=0,$=Y.length;$>Z;Z++)if(Y[Z]in i){s._.dirty=1;break}switch(m["text-anchor"]){case"start":s.textpath.style["v-text-align"]="left",s.bbx=s.W/2;break;case"end":s.textpath.style["v-text-align"]="right",s.bbx=-s.W/2;break;default:s.textpath.style["v-text-align"]="center",s.bbx=0}s.textpath.style["v-text-kern"]=!0}},C=function(a,f,g){a.attrs=a.attrs||{};var h=(a.attrs,Math.pow),i="linear",j=".5 .5";if(a.attrs.gradient=f,f=b(f).replace(c._radial_gradient,function(a,b,c){return i="radial",b&&c&&(b=d(b),c=d(c),h(b-.5,2)+h(c-.5,2)>.25&&(c=e.sqrt(.25-h(b-.5,2))*(2*(c>.5)-1)+.5),j=b+n+c),o}),f=f.split(/\s*\-\s*/),"linear"==i){var k=f.shift();if(k=-d(k),isNaN(k))return null}var l=c._parseDots(f);if(!l)return null;if(a=a.shape||a.node,l.length){a.removeChild(g),g.on=!0,g.method="none",g.color=l[0].color,g.color2=l[l.length-1].color;for(var m=[],p=0,q=l.length;q>p;p++)l[p].offset&&m.push(l[p].offset+n+l[p].color);g.colors=m.length?m.join():"0% "+g.color,"radial"==i?(g.type="gradientTitle",g.focus="100%",g.focussize="0 0",g.focusposition=j,g.angle=0):(g.type="gradient",g.angle=(270-k)%360),a.appendChild(g)}return 1},D=function(a,b){this[0]=this.node=a,a.raphael=!0,this.id=c._oid++,a.raphaelid=this.id,this.X=0,this.Y=0,this.attrs={},this.paper=b,this.matrix=c.matrix(),this._={transform:[],sx:1,sy:1,dx:0,dy:0,deg:0,dirty:1,dirtyT:1},!b.bottom&&(b.bottom=this),this.prev=b.top,b.top&&(b.top.next=this),b.top=this,this.next=null},E=c.el;D.prototype=E,E.constructor=D,E.transform=function(a){if(null==a)return this._.transform;var d,e=this.paper._viewBoxShift,f=e?"s"+[e.scale,e.scale]+"-1-1t"+[e.dx,e.dy]:o;e&&(d=a=b(a).replace(/\.{3}|\u2026/g,this._.transform||o)),c._extractTransform(this,f+a);var g,h=this.matrix.clone(),i=this.skew,j=this.node,k=~b(this.attrs.fill).indexOf("-"),l=!b(this.attrs.fill).indexOf("url(");if(h.translate(1,1),l||k||"image"==this.type)if(i.matrix="1 0 0 1",i.offset="0 0",g=h.split(),k&&g.noRotation||!g.isSimple){j.style.filter=h.toFilter();var m=this.getBBox(),p=this.getBBox(1),q=m.x-p.x,r=m.y-p.y;j.coordorigin=q*-u+n+r*-u,z(this,1,1,q,r,0)}else j.style.filter=o,z(this,g.scalex,g.scaley,g.dx,g.dy,g.rotate);else j.style.filter=o,i.matrix=b(h),i.offset=h.offset();return null!==d&&(this._.transform=d,c._extractTransform(this,d)),this},E.rotate=function(a,c,e){if(this.removed)return this;if(null!=a){if(a=b(a).split(k),a.length-1&&(c=d(a[1]),e=d(a[2])),a=d(a[0]),null==e&&(c=e),null==c||null==e){var f=this.getBBox(1);c=f.x+f.width/2,e=f.y+f.height/2}return this._.dirtyT=1,this.transform(this._.transform.concat([["r",a,c,e]])),this}},E.translate=function(a,c){return this.removed?this:(a=b(a).split(k),a.length-1&&(c=d(a[1])),a=d(a[0])||0,c=+c||0,this._.bbox&&(this._.bbox.x+=a,this._.bbox.y+=c),this.transform(this._.transform.concat([["t",a,c]])),this)},E.scale=function(a,c,e,f){if(this.removed)return this;if(a=b(a).split(k),a.length-1&&(c=d(a[1]),e=d(a[2]),f=d(a[3]),isNaN(e)&&(e=null),isNaN(f)&&(f=null)),a=d(a[0]),null==c&&(c=a),null==f&&(e=f),null==e||null==f)var g=this.getBBox(1);return e=null==e?g.x+g.width/2:e,f=null==f?g.y+g.height/2:f,this.transform(this._.transform.concat([["s",a,c,e,f]])),this._.dirtyT=1,this},E.hide=function(){return!this.removed&&(this.node.style.display="none"),this},E.show=function(){return!this.removed&&(this.node.style.display=o),this},E.auxGetBBox=c.el.getBBox,E.getBBox=function(){var a=this.auxGetBBox();if(this.paper&&this.paper._viewBoxShift){var b={},c=1/this.paper._viewBoxShift.scale;return b.x=a.x-this.paper._viewBoxShift.dx,b.x*=c,b.y=a.y-this.paper._viewBoxShift.dy,b.y*=c,b.width=a.width*c,b.height=a.height*c,b.x2=b.x+b.width,b.y2=b.y+b.height,b}return a},E._getBBox=function(){return this.removed?{}:{x:this.X+(this.bbx||0)-this.W/2,y:this.Y-this.H,width:this.W,height:this.H}},E.remove=function(){if(!this.removed&&this.node.parentNode){this.paper.__set__&&this.paper.__set__.exclude(this),c.eve.unbind("raphael.*.*."+this.id),c._tear(this,this.paper),this.node.parentNode.removeChild(this.node),this.shape&&this.shape.parentNode.removeChild(this.shape);for(var a in this)this[a]="function"==typeof this[a]?c._removedFactory(a):null;this.removed=!0}},E.attr=function(b,d){if(this.removed)return this;if(null==b){var e={};for(var f in this.attrs)this.attrs[a](f)&&(e[f]=this.attrs[f]);return e.gradient&&"none"==e.fill&&(e.fill=e.gradient)&&delete e.gradient,e.transform=this._.transform,e}if(null==d&&c.is(b,"string")){if(b==j&&"none"==this.attrs.fill&&this.attrs.gradient)return this.attrs.gradient;for(var g=b.split(k),h={},i=0,m=g.length;m>i;i++)b=g[i],h[b]=b in this.attrs?this.attrs[b]:c.is(this.paper.customAttributes[b],"function")?this.paper.customAttributes[b].def:c._availableAttrs[b];return m-1?h:h[g[0]]}if(this.attrs&&null==d&&c.is(b,"array")){for(h={},i=0,m=b.length;m>i;i++)h[b[i]]=this.attr(b[i]);return h}var n;null!=d&&(n={},n[b]=d),null==d&&c.is(b,"object")&&(n=b);for(var o in n)l("raphael.attr."+o+"."+this.id,this,n[o]);if(n){for(o in this.paper.customAttributes)if(this.paper.customAttributes[a](o)&&n[a](o)&&c.is(this.paper.customAttributes[o],"function")){var p=this.paper.customAttributes[o].apply(this,[].concat(n[o]));this.attrs[o]=n[o];for(var q in p)p[a](q)&&(n[q]=p[q])}n.text&&"text"==this.type&&(this.textpath.string=n.text),B(this,n)}return this},E.toFront=function(){return!this.removed&&this.node.parentNode.appendChild(this.node),this.paper&&this.paper.top!=this&&c._tofront(this,this.paper),this},E.toBack=function(){return this.removed?this:(this.node.parentNode.firstChild!=this.node&&(this.node.parentNode.insertBefore(this.node,this.node.parentNode.firstChild),c._toback(this,this.paper)),this)},E.insertAfter=function(a){return this.removed?this:(a.constructor==c.st.constructor&&(a=a[a.length-1]),a.node.nextSibling?a.node.parentNode.insertBefore(this.node,a.node.nextSibling):a.node.parentNode.appendChild(this.node),c._insertafter(this,a,this.paper),this)},E.insertBefore=function(a){return this.removed?this:(a.constructor==c.st.constructor&&(a=a[0]),a.node.parentNode.insertBefore(this.node,a.node),c._insertbefore(this,a,this.paper),this)},E.blur=function(a){var b=this.node.runtimeStyle,d=b.filter;return d=d.replace(r,o),0!==+a?(this.attrs.blur=a,b.filter=d+n+m+".Blur(pixelradius="+(+a||1.5)+")",b.margin=c.format("-{0}px 0 0 -{0}px",f(+a||1.5))):(b.filter=d,b.margin=0,delete this.attrs.blur),this},c._engine.path=function(a,b){var c=F("shape");c.style.cssText=t,c.coordsize=u+n+u,c.coordorigin=b.coordorigin;var d=new D(c,b),e={fill:"none",stroke:"#000"};a&&(e.path=a),d.type="path",d.path=[],d.Path=o,B(d,e),b.canvas.appendChild(c);var f=F("skew");return f.on=!0,c.appendChild(f),d.skew=f,d.transform(o),d},c._engine.rect=function(a,b,d,e,f,g){var h=c._rectPath(b,d,e,f,g),i=a.path(h),j=i.attrs;return i.X=j.x=b,i.Y=j.y=d,i.W=j.width=e,i.H=j.height=f,j.r=g,j.path=h,i.type="rect",i},c._engine.ellipse=function(a,b,c,d,e){{var f=a.path();f.attrs}return f.X=b-d,f.Y=c-e,f.W=2*d,f.H=2*e,f.type="ellipse",B(f,{cx:b,cy:c,rx:d,ry:e}),f},c._engine.circle=function(a,b,c,d){{var e=a.path();e.attrs}return e.X=b-d,e.Y=c-d,e.W=e.H=2*d,e.type="circle",B(e,{cx:b,cy:c,r:d}),e},c._engine.image=function(a,b,d,e,f,g){var h=c._rectPath(d,e,f,g),i=a.path(h).attr({stroke:"none"}),k=i.attrs,l=i.node,m=l.getElementsByTagName(j)[0];return k.src=b,i.X=k.x=d,i.Y=k.y=e,i.W=k.width=f,i.H=k.height=g,k.path=h,i.type="image",m.parentNode==l&&l.removeChild(m),m.rotate=!0,m.src=b,m.type="tile",i._.fillpos=[d,e],i._.fillsize=[f,g],l.appendChild(m),z(i,1,1,0,0,0),i},c._engine.text=function(a,d,e,g){var h=F("shape"),i=F("path"),j=F("textpath");d=d||0,e=e||0,g=g||"",i.v=c.format("m{0},{1}l{2},{1}",f(d*u),f(e*u),f(d*u)+1),i.textpathok=!0,j.string=b(g),j.on=!0,h.style.cssText=t,h.coordsize=u+n+u,h.coordorigin="0 0";var k=new D(h,a),l={fill:"#000",stroke:"none",font:c._availableAttrs.font,text:g};k.shape=h,k.path=i,k.textpath=j,k.type="text",k.attrs.text=b(g),k.attrs.x=d,k.attrs.y=e,k.attrs.w=1,k.attrs.h=1,B(k,l),h.appendChild(j),h.appendChild(i),a.canvas.appendChild(h);var m=F("skew");return m.on=!0,h.appendChild(m),k.skew=m,k.transform(o),k},c._engine.setSize=function(a,b){var d=this.canvas.style;return this.width=a,this.height=b,a==+a&&(a+="px"),b==+b&&(b+="px"),d.width=a,d.height=b,d.clip="rect(0 "+a+" "+b+" 0)",this._viewBox&&c._engine.setViewBox.apply(this,this._viewBox),this},c._engine.setViewBox=function(a,b,d,e,f){c.eve("raphael.setViewBox",this,this._viewBox,[a,b,d,e,f]);var g,h,i=this.getSize(),j=i.width,k=i.height;return f&&(g=k/e,h=j/d,j>d*g&&(a-=(j-d*g)/2/g),k>e*h&&(b-=(k-e*h)/2/h)),this._viewBox=[a,b,d,e,!!f],this._viewBoxShift={dx:-a,dy:-b,scale:i},this.forEach(function(a){a.transform("...")}),this};var F;c._engine.initWin=function(a){var b=a.document;b.styleSheets.length<31?b.createStyleSheet().addRule(".rvml","behavior:url(#default#VML)"):b.styleSheets[0].addRule(".rvml","behavior:url(#default#VML)");try{!b.namespaces.rvml&&b.namespaces.add("rvml","urn:schemas-microsoft-com:vml"),F=function(a){return b.createElement("')}}catch(c){F=function(a){return b.createElement("<"+a+' xmlns="urn:schemas-microsoft.com:vml" class="rvml">')}}},c._engine.initWin(c._g.win),c._engine.create=function(){var a=c._getContainer.apply(0,arguments),b=a.container,d=a.height,e=a.width,f=a.x,g=a.y;if(!b)throw new Error("VML container not found.");var h=new c._Paper,i=h.canvas=c._g.doc.createElement("div"),j=i.style;return f=f||0,g=g||0,e=e||512,d=d||342,h.width=e,h.height=d,e==+e&&(e+="px"),d==+d&&(d+="px"),h.coordsize=1e3*u+n+1e3*u,h.coordorigin="0 0",h.span=c._g.doc.createElement("span"),h.span.style.cssText="position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;",i.appendChild(h.span),j.cssText=c.format("top:0;left:0;width:{0};height:{1};display:inline-block;position:relative;clip:rect(0 {0} {1} 0);overflow:hidden",e,d),1==b?(c._g.doc.body.appendChild(i),j.left=f+"px",j.top=g+"px",j.position="absolute"):b.firstChild?b.insertBefore(i,b.firstChild):b.appendChild(i),h.renderfix=function(){},h},c.prototype.clear=function(){c.eve("raphael.clear",this),this.canvas.innerHTML=o,this.span=c._g.doc.createElement("span"),this.span.style.cssText="position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;",this.canvas.appendChild(this.span),this.bottom=this.top=null},c.prototype.remove=function(){c.eve("raphael.remove",this),this.canvas.parentNode.removeChild(this.canvas);for(var a in this)this[a]="function"==typeof this[a]?c._removedFactory(a):null;return!0};var G=c.st;for(var H in E)E[a](H)&&!G[a](H)&&(G[H]=function(a){return function(){var b=arguments;return this.forEach(function(c){c[a].apply(c,b)})}}(H))}}(),B.was?A.win.Raphael=c:Raphael=c,"object"==typeof exports&&(module.exports=c),c}); \ No newline at end of file diff --git a/htdocs/public/high/plugins/jquery-sparkline/jquery.sparkline.min.js b/htdocs/public/high/plugins/jquery-sparkline/jquery.sparkline.min.js deleted file mode 100644 index fa616bf9..00000000 --- a/htdocs/public/high/plugins/jquery-sparkline/jquery.sparkline.min.js +++ /dev/null @@ -1,5 +0,0 @@ -/* jquery.sparkline 2.1.2 - http://omnipotent.net/jquery.sparkline/ -** Licensed under the New BSD License - see above site for details */ - -(function(a,b,c){(function(a){typeof define=="function"&&define.amd?define(["jquery"],a):jQuery&&!jQuery.fn.sparkline&&a(jQuery)})(function(d){"use strict";var e={},f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L=0;f=function(){return{common:{type:"line",lineColor:"#00f",fillColor:"#cdf",defaultPixelsPerValue:3,width:"auto",height:"auto",composite:!1,tagValuesAttribute:"values",tagOptionsPrefix:"spark",enableTagOptions:!1,enableHighlight:!0,highlightLighten:1.4,tooltipSkipNull:!0,tooltipPrefix:"",tooltipSuffix:"",disableHiddenCheck:!1,numberFormatter:!1,numberDigitGroupCount:3,numberDigitGroupSep:",",numberDecimalMark:".",disableTooltips:!1,disableInteraction:!1},line:{spotColor:"#f80",highlightSpotColor:"#5f5",highlightLineColor:"#f22",spotRadius:1.5,minSpotColor:"#f80",maxSpotColor:"#f80",lineWidth:1,normalRangeMin:c,normalRangeMax:c,normalRangeColor:"#ccc",drawNormalOnTop:!1,chartRangeMin:c,chartRangeMax:c,chartRangeMinX:c,chartRangeMaxX:c,tooltipFormat:new h(' {{prefix}}{{y}}{{suffix}}')},bar:{barColor:"#3366cc",negBarColor:"#f44",stackedBarColor:["#3366cc","#dc3912","#ff9900","#109618","#66aa00","#dd4477","#0099c6","#990099"],zeroColor:c,nullColor:c,zeroAxis:!0,barWidth:4,barSpacing:1,chartRangeMax:c,chartRangeMin:c,chartRangeClip:!1,colorMap:c,tooltipFormat:new h(' {{prefix}}{{value}}{{suffix}}')},tristate:{barWidth:4,barSpacing:1,posBarColor:"#6f6",negBarColor:"#f44",zeroBarColor:"#999",colorMap:{},tooltipFormat:new h(' {{value:map}}'),tooltipValueLookups:{map:{"-1":"Loss",0:"Draw",1:"Win"}}},discrete:{lineHeight:"auto",thresholdColor:c,thresholdValue:0,chartRangeMax:c,chartRangeMin:c,chartRangeClip:!1,tooltipFormat:new h("{{prefix}}{{value}}{{suffix}}")},bullet:{targetColor:"#f33",targetWidth:3,performanceColor:"#33f",rangeColors:["#d3dafe","#a8b6ff","#7f94ff"],base:c,tooltipFormat:new h("{{fieldkey:fields}} - {{value}}"),tooltipValueLookups:{fields:{r:"Range",p:"Performance",t:"Target"}}},pie:{offset:0,sliceColors:["#3366cc","#dc3912","#ff9900","#109618","#66aa00","#dd4477","#0099c6","#990099"],borderWidth:0,borderColor:"#000",tooltipFormat:new h(' {{value}} ({{percent.1}}%)')},box:{raw:!1,boxLineColor:"#000",boxFillColor:"#cdf",whiskerColor:"#000",outlierLineColor:"#333",outlierFillColor:"#fff",medianColor:"#f00",showOutliers:!0,outlierIQR:1.5,spotRadius:1.5,target:c,targetColor:"#4a2",chartRangeMax:c,chartRangeMin:c,tooltipFormat:new h("{{field:fields}}: {{value}}"),tooltipFormatFieldlistKey:"field",tooltipValueLookups:{fields:{lq:"Lower Quartile",med:"Median",uq:"Upper Quartile",lo:"Left Outlier",ro:"Right Outlier",lw:"Left Whisker",rw:"Right Whisker"}}}}},E='.jqstooltip { position: absolute;left: 0px;top: 0px;visibility: hidden;background: rgb(0, 0, 0) transparent;background-color: rgba(0,0,0,0.6);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000, endColorstr=#99000000);-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000, endColorstr=#99000000)";color: white;font: 10px arial, san serif;text-align: left;white-space: nowrap;padding: 5px;border: 1px solid white;z-index: 10000;}.jqsfield { color: white;font: 10px arial, san serif;text-align: left;}',g=function(){var a,b;return a=function(){this.init.apply(this,arguments)},arguments.length>1?(arguments[0]?(a.prototype=d.extend(new arguments[0],arguments[arguments.length-1]),a._super=arguments[0].prototype):a.prototype=arguments[arguments.length-1],arguments.length>2&&(b=Array.prototype.slice.call(arguments,1,-1),b.unshift(a.prototype),d.extend.apply(d,b))):a.prototype=arguments[0],a.prototype.cls=a,a},d.SPFormatClass=h=g({fre:/\{\{([\w.]+?)(:(.+?))?\}\}/g,precre:/(\w+)\.(\d+)/,init:function(a,b){this.format=a,this.fclass=b},render:function(a,b,d){var e=this,f=a,g,h,i,j,k;return this.format.replace(this.fre,function(){var a;return h=arguments[1],i=arguments[3],g=e.precre.exec(h),g?(k=g[2],h=g[1]):k=!1,j=f[h],j===c?"":i&&b&&b[i]?(a=b[i],a.get?b[i].get(j)||j:b[i][j]||j):(n(j)&&(d.get("numberFormatter")?j=d.get("numberFormatter")(j):j=s(j,k,d.get("numberDigitGroupCount"),d.get("numberDigitGroupSep"),d.get("numberDecimalMark"))),j)})}}),d.spformat=function(a,b){return new h(a,b)},i=function(a,b,c){return ac?c:a},j=function(a,c){var d;return c===2?(d=b.floor(a.length/2),a.length%2?a[d]:(a[d-1]+a[d])/2):a.length%2?(d=(a.length*c+c)/4,d%1?(a[b.floor(d)]+a[b.floor(d)-1])/2:a[d-1]):(d=(a.length*c+2)/4,d%1?(a[b.floor(d)]+a[b.floor(d)-1])/2:a[d-1])},k=function(a){var b;switch(a){case"undefined":a=c;break;case"null":a=null;break;case"true":a=!0;break;case"false":a=!1;break;default:b=parseFloat(a),a==b&&(a=b)}return a},l=function(a){var b,c=[];for(b=a.length;b--;)c[b]=k(a[b]);return c},m=function(a,b){var c,d,e=[];for(c=0,d=a.length;c0;h-=c)a.splice(h,0,e);return a.join("")},o=function(a,b,c){var d;for(d=b.length;d--;){if(c&&b[d]===null)continue;if(b[d]!==a)return!1}return!0},p=function(a){var b=0,c;for(c=a.length;c--;)b+=typeof a[c]=="number"?a[c]:0;return b},r=function(a){return d.isArray(a)?a:[a]},q=function(b){var c;a.createStyleSheet?a.createStyleSheet().cssText=b:(c=a.createElement("style"),c.type="text/css",a.getElementsByTagName("head")[0].appendChild(c),c[typeof a.body.style.WebkitAppearance=="string"?"innerText":"innerHTML"]=b)},d.fn.simpledraw=function(b,e,f,g){var h,i;if(f&&(h=this.data("_jqs_vcanvas")))return h;if(d.fn.sparkline.canvas===!1)return!1;if(d.fn.sparkline.canvas===c){var j=a.createElement("canvas");if(!j.getContext||!j.getContext("2d")){if(!a.namespaces||!!a.namespaces.v)return d.fn.sparkline.canvas=!1,!1;a.namespaces.add("v","urn:schemas-microsoft-com:vml","#default#VML"),d.fn.sparkline.canvas=function(a,b,c,d){return new J(a,b,c)}}else d.fn.sparkline.canvas=function(a,b,c,d){return new I(a,b,c,d)}}return b===c&&(b=d(this).innerWidth()),e===c&&(e=d(this).innerHeight()),h=d.fn.sparkline.canvas(b,e,this,g),i=d(this).data("_jqs_mhandler"),i&&i.registerCanvas(h),h},d.fn.cleardraw=function(){var a=this.data("_jqs_vcanvas");a&&a.reset()},d.RangeMapClass=t=g({init:function(a){var b,c,d=[];for(b in a)a.hasOwnProperty(b)&&typeof b=="string"&&b.indexOf(":")>-1&&(c=b.split(":"),c[0]=c[0].length===0?-Infinity:parseFloat(c[0]),c[1]=c[1].length===0?Infinity:parseFloat(c[1]),c[2]=a[b],d.push(c));this.map=a,this.rangelist=d||!1},get:function(a){var b=this.rangelist,d,e,f;if((f=this.map[a])!==c)return f;if(b)for(d=b.length;d--;){e=b[d];if(e[0]<=a&&e[1]>=a)return e[2]}return c}}),d.range_map=function(a){return new t(a)},u=g({init:function(a,b){var c=d(a);this.$el=c,this.options=b,this.currentPageX=0,this.currentPageY=0,this.el=a,this.splist=[],this.tooltip=null,this.over=!1,this.displayTooltips=!b.get("disableTooltips"),this.highlightEnabled=!b.get("disableHighlight")},registerSparkline:function(a){this.splist.push(a),this.over&&this.updateDisplay()},registerCanvas:function(a){var b=d(a.canvas);this.canvas=a,this.$canvas=b,b.mouseenter(d.proxy(this.mouseenter,this)),b.mouseleave(d.proxy(this.mouseleave,this)),b.click(d.proxy(this.mouseclick,this))},reset:function(a){this.splist=[],this.tooltip&&a&&(this.tooltip.remove(),this.tooltip=c)},mouseclick:function(a){var b=d.Event("sparklineClick");b.originalEvent=a,b.sparklines=this.splist,this.$el.trigger(b)},mouseenter:function(b){d(a.body).unbind("mousemove.jqs"),d(a.body).bind("mousemove.jqs",d.proxy(this.mousemove,this)),this.over=!0,this.currentPageX=b.pageX,this.currentPageY=b.pageY,this.currentEl=b.target,!this.tooltip&&this.displayTooltips&&(this.tooltip=new v(this.options),this.tooltip.updatePosition(b.pageX,b.pageY)),this.updateDisplay()},mouseleave:function(){d(a.body).unbind("mousemove.jqs");var b=this.splist,c=b.length,e=!1,f,g;this.over=!1,this.currentEl=null,this.tooltip&&(this.tooltip.remove(),this.tooltip=null);for(g=0;g",l},_drawCircle:function(a,b,d,e,f,g,h){var i,j,k;return b-=e,d-=e,i=f===c?' stroked="false" ':' strokeWeight="'+h+'px" strokeColor="'+f+'" ',j=g===c?' filled="false"':' fillColor="'+g+'" filled="true" ',k='',k},_drawPieSlice:function(a,d,e,f,g,h,i,j){var k,l,m,n,o,p,q,r;if(g===h)return"";h-g===2*b.PI&&(g=0,h=2*b.PI),l=d+b.round(b.cos(g)*f),m=e+b.round(b.sin(g)*f),n=d+b.round(b.cos(h)*f),o=e+b.round(b.sin(h)*f);if(l===n&&m===o){if(h-g'+" ",r)},_drawRect:function(a,b,c,d,e,f,g){return this._drawShape(a,[[b,c],[b,c+e],[b+d,c+e],[b+d,c],[b,c]],f,g)},reset:function(){this.group.innerHTML=""},appendShape:function(a){var b=this["_draw"+a.type].apply(this,a.args);return this.rendered?this.group.insertAdjacentHTML("beforeEnd",b):this.prerender+=b,this.lastShapeId=a.id,a.id},replaceWithShape:function(a,b){var c=d("#jqsshape"+a),e=this["_draw"+b.type].apply(this,b.args);c[0].outerHTML=e},replaceWithShapes:function(a,b){var c=d("#jqsshape"+a[0]),e="",f=b.length,g;for(g=0;g
    ",{"class":"jq-toast-single"}),o+='',this.options.allowToastClose&&(o+='×'),this.options.text instanceof Array){this.options.heading&&(o+='

    '+this.options.heading+"

    "),o+='
      ';for(var i=0;i'+this.options.text[i]+"";o+="
    "}else this.options.heading&&(o+='

    '+this.options.heading+"

    "),o+=this.options.text;this._toastEl.html(o),this.options.bgColor!==!1&&this._toastEl.css("background-color",this.options.bgColor),this.options.textColor!==!1&&this._toastEl.css("color",this.options.textColor),this.options.textAlign&&this._toastEl.css("text-align",this.options.textAlign),this.options.icon!==!1&&(this._toastEl.addClass("jq-has-icon"),-1!==t.inArray(this.options.icon,this._defaultIcons)&&this._toastEl.addClass("jq-icon-"+this.options.icon))},position:function(){"string"==typeof this.options.position&&-1!==t.inArray(this.options.position,this._positionClasses)?"bottom-center"===this.options.position?this._container.css({left:t(o).outerWidth()/2-this._container.outerWidth()/2,bottom:20}):"top-center"===this.options.position?this._container.css({left:t(o).outerWidth()/2-this._container.outerWidth()/2,top:20}):"mid-center"===this.options.position?this._container.css({left:t(o).outerWidth()/2-this._container.outerWidth()/2,top:t(o).outerHeight()/2-this._container.outerHeight()/2}):this._container.addClass(this.options.position):"object"==typeof this.options.position?this._container.css({top:this.options.position.top?this.options.position.top:"auto",bottom:this.options.position.bottom?this.options.position.bottom:"auto",left:this.options.position.left?this.options.position.left:"auto",right:this.options.position.right?this.options.position.right:"auto"}):this._container.addClass("bottom-left")},bindToast:function(){var t=this;this._toastEl.on("afterShown",function(){t.processLoader()}),this._toastEl.find(".close-jq-toast-single").on("click",function(o){o.preventDefault(),"fade"===t.options.showHideTransition?(t._toastEl.trigger("beforeHide"),t._toastEl.fadeOut(function(){t._toastEl.trigger("afterHidden")})):"slide"===t.options.showHideTransition?(t._toastEl.trigger("beforeHide"),t._toastEl.slideUp(function(){t._toastEl.trigger("afterHidden")})):(t._toastEl.trigger("beforeHide"),t._toastEl.hide(function(){t._toastEl.trigger("afterHidden")}))}),"function"==typeof this.options.beforeShow&&this._toastEl.on("beforeShow",function(){t.options.beforeShow()}),"function"==typeof this.options.afterShown&&this._toastEl.on("afterShown",function(){t.options.afterShown()}),"function"==typeof this.options.beforeHide&&this._toastEl.on("beforeHide",function(){t.options.beforeHide()}),"function"==typeof this.options.afterHidden&&this._toastEl.on("afterHidden",function(){t.options.afterHidden()})},addToDom:function(){var o=t(".jq-toast-wrap");if(0===o.length?(o=t("
    ",{"class":"jq-toast-wrap"}),t("body").append(o)):(!this.options.stack||isNaN(parseInt(this.options.stack,10)))&&o.empty(),o.find(".jq-toast-single:hidden").remove(),o.append(this._toastEl),this.options.stack&&!isNaN(parseInt(this.options.stack),10)){var i=o.find(".jq-toast-single").length,s=i-this.options.stack;s>0&&t(".jq-toast-wrap").find(".jq-toast-single").slice(0,s).remove()}this._container=o},canAutoHide:function(){return this.options.hideAfter!==!1&&!isNaN(parseInt(this.options.hideAfter,10))},processLoader:function(){if(!this.canAutoHide()||this.options.loader===!1)return!1;var t=this._toastEl.find(".jq-toast-loader"),o=(this.options.hideAfter-400)/1e3+"s",i=this.options.loaderBg,s=t.attr("style")||"";s=s.substring(0,s.indexOf("-webkit-transition")),s+="-webkit-transition: width "+o+" ease-in; -o-transition: width "+o+" ease-in; transition: width "+o+" ease-in; background-color: "+i+";",t.attr("style",s).addClass("jq-toast-loaded")},animate:function(){var t=this;if(this._toastEl.hide(),this._toastEl.trigger("beforeShow"),"fade"===this.options.showHideTransition.toLowerCase()?this._toastEl.fadeIn(function(){t._toastEl.trigger("afterShown")}):"slide"===this.options.showHideTransition.toLowerCase()?this._toastEl.slideDown(function(){t._toastEl.trigger("afterShown")}):this._toastEl.show(function(){t._toastEl.trigger("afterShown")}),this.canAutoHide()){var t=this;o.setTimeout(function(){"fade"===t.options.showHideTransition.toLowerCase()?(t._toastEl.trigger("beforeHide"),t._toastEl.fadeOut(function(){t._toastEl.trigger("afterHidden")})):"slide"===t.options.showHideTransition.toLowerCase()?(t._toastEl.trigger("beforeHide"),t._toastEl.slideUp(function(){t._toastEl.trigger("afterHidden")})):(t._toastEl.trigger("beforeHide"),t._toastEl.hide(function(){t._toastEl.trigger("afterHidden")}))},this.options.hideAfter)}},reset:function(o){"all"===o?t(".jq-toast-wrap").remove():this._toastEl.remove()},update:function(t){this.prepareOptions(t,this.options),this.setup(),this.bindToast()}};t.toast=function(t){var o=Object.create(i);return o.init(t,this),{reset:function(t){o.reset(t)},update:function(t){o.update(t)}}},t.toast.options={text:"",heading:"",showHideTransition:"fade",allowToastClose:!0,hideAfter:3e3,loader:!0,loaderBg:"#9EC600",stack:5,position:"bottom-left",bgColor:!1,textColor:!1,textAlign:"left",icon:!1,beforeShow:function(){},afterShown:function(){},beforeHide:function(){},afterHidden:function(){}}}(jQuery,window,document); \ No newline at end of file diff --git a/htdocs/public/high/plugins/jquery-ui/jquery-ui.min.css b/htdocs/public/high/plugins/jquery-ui/jquery-ui.min.css deleted file mode 100644 index efccc476..00000000 --- a/htdocs/public/high/plugins/jquery-ui/jquery-ui.min.css +++ /dev/null @@ -1,7 +0,0 @@ -/*! jQuery UI - v1.11.4 - 2015-03-11 -* http://jqueryui.com -* Includes: core.css, accordion.css, autocomplete.css, button.css, datepicker.css, dialog.css, draggable.css, menu.css, progressbar.css, resizable.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css -* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS%2CTahoma%2CVerdana%2CArial%2Csans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=gloss_wave&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=highlight_soft&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=glass&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=glass&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=highlight_soft&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=diagonals_thick&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=diagonals_thick&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=flat&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px -* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */ - -.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0 0;padding:.5em .5em .5em .7em;min-height:0;font-size:100%}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-button{display:inline-block;position:relative;padding:0;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:normal}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-dialog{overflow:hidden;position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-se{width:12px;height:12px;right:-5px;bottom:-5px;background-position:16px 16px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:none}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{position:relative;margin:0;padding:3px 1em 3px .4em;cursor:pointer;min-height:0;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,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");height:100%;filter:alpha(opacity=25);opacity:0.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable{-ms-touch-action:none;touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:bold;line-height:1.5;padding:2px 0.4em;margin:0.5em 0 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-button{display:inline-block;overflow:hidden;position:relative;text-decoration:none;cursor:pointer}.ui-selectmenu-button span.ui-icon{right:0.5em;left:auto;margin-top:-8px;position:absolute;top:50%}.ui-selectmenu-button span.ui-selectmenu-text{text-align:left;padding:0.4em 2.1em 0.4em 1em;display:block;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top:none;border-bottom:none;border-right:none}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #ddd;background:#eee url("images/ui-bg_highlight-soft_100_eeeeee_1x100.png") 50% top repeat-x;color:#333}.ui-widget-content a{color:#333}.ui-widget-header{border:1px solid #e78f08;background:#f6a828 url("images/ui-bg_gloss-wave_35_f6a828_500x100.png") 50% 50% repeat-x;color:#fff;font-weight:bold}.ui-widget-header a{color:#fff}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #ccc;background:#f6f6f6 url("images/ui-bg_glass_100_f6f6f6_1x400.png") 50% 50% repeat-x;font-weight:bold;color:#1c94c4}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#1c94c4;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #fbcb09;background:#fdf5ce url("images/ui-bg_glass_100_fdf5ce_1x400.png") 50% 50% repeat-x;font-weight:bold;color:#c77405}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited{color:#c77405;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #fbd850;background:#fff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;font-weight:bold;color:#eb8f00}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#eb8f00;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fed22f;background:#ffe45c url("images/ui-bg_highlight-soft_75_ffe45c_1x100.png") 50% top repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#b81900 url("images/ui-bg_diagonals-thick_18_b81900_40x40.png") 50% 50% repeat;color:#fff}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#fff}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#fff}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_ffffff_256x240.png")}.ui-state-default .ui-icon{background-image:url("images/ui-icons_ef8c08_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url("images/ui-icons_ef8c08_256x240.png")}.ui-state-active .ui-icon{background-image:url("images/ui-icons_ef8c08_256x240.png")}.ui-state-highlight .ui-icon{background-image:url("images/ui-icons_228ef1_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_ffd27a_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#666 url("images/ui-bg_diagonals-thick_20_666666_40x40.png") 50% 50% repeat;opacity:.5;filter:Alpha(Opacity=50)}.ui-widget-shadow{margin:-5px 0 0 -5px;padding:5px;background:#000 url("images/ui-bg_flat_10_000000_40x100.png") 50% 50% repeat-x;opacity:.2;filter:Alpha(Opacity=20);border-radius:5px} \ No newline at end of file diff --git a/htdocs/public/high/plugins/jquery-ui/jquery-ui.min.js b/htdocs/public/high/plugins/jquery-ui/jquery-ui.min.js deleted file mode 100644 index 5824d129..00000000 --- a/htdocs/public/high/plugins/jquery-ui/jquery-ui.min.js +++ /dev/null @@ -1,13 +0,0 @@ -/*! jQuery UI - v1.11.4 - 2015-03-11 -* http://jqueryui.com -* Includes: core.js, widget.js, mouse.js, position.js, accordion.js, autocomplete.js, button.js, datepicker.js, dialog.js, draggable.js, droppable.js, effect.js, effect-blind.js, effect-bounce.js, effect-clip.js, effect-drop.js, effect-explode.js, effect-fade.js, effect-fold.js, effect-highlight.js, effect-puff.js, effect-pulsate.js, effect-scale.js, effect-shake.js, effect-size.js, effect-slide.js, effect-transfer.js, menu.js, progressbar.js, resizable.js, selectable.js, selectmenu.js, slider.js, sortable.js, spinner.js, tabs.js, tooltip.js -* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */ - -(function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)})(function(e){function t(t,s){var n,a,o,r=t.nodeName.toLowerCase();return"area"===r?(n=t.parentNode,a=n.name,t.href&&a&&"map"===n.nodeName.toLowerCase()?(o=e("img[usemap='#"+a+"']")[0],!!o&&i(o)):!1):(/^(input|select|textarea|button|object)$/.test(r)?!t.disabled:"a"===r?t.href||s:s)&&i(t)}function i(t){return e.expr.filters.visible(t)&&!e(t).parents().addBack().filter(function(){return"hidden"===e.css(this,"visibility")}).length}function s(e){for(var t,i;e.length&&e[0]!==document;){if(t=e.css("position"),("absolute"===t||"relative"===t||"fixed"===t)&&(i=parseInt(e.css("zIndex"),10),!isNaN(i)&&0!==i))return i;e=e.parent()}return 0}function n(){this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},e.extend(this._defaults,this.regional[""]),this.regional.en=e.extend(!0,{},this.regional[""]),this.regional["en-US"]=e.extend(!0,{},this.regional.en),this.dpDiv=a(e("
    "))}function a(t){var i="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return t.delegate(i,"mouseout",function(){e(this).removeClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&e(this).removeClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&e(this).removeClass("ui-datepicker-next-hover")}).delegate(i,"mouseover",o)}function o(){e.datepicker._isDisabledDatepicker(v.inline?v.dpDiv.parent()[0]:v.input[0])||(e(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),e(this).addClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&e(this).addClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&e(this).addClass("ui-datepicker-next-hover"))}function r(t,i){e.extend(t,i);for(var s in i)null==i[s]&&(t[s]=i[s]);return t}function h(e){return function(){var t=this.element.val();e.apply(this,arguments),this._refresh(),t!==this.element.val()&&this._trigger("change")}}e.ui=e.ui||{},e.extend(e.ui,{version:"1.11.4",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),e.fn.extend({scrollParent:function(t){var i=this.css("position"),s="absolute"===i,n=t?/(auto|scroll|hidden)/:/(auto|scroll)/,a=this.parents().filter(function(){var t=e(this);return s&&"static"===t.css("position")?!1:n.test(t.css("overflow")+t.css("overflow-y")+t.css("overflow-x"))}).eq(0);return"fixed"!==i&&a.length?a:e(this[0].ownerDocument||document)},uniqueId:function(){var e=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++e)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&e(this).removeAttr("id")})}}),e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return function(i){return!!e.data(i,t)}}):function(t,i,s){return!!e.data(t,s[3])},focusable:function(i){return t(i,!isNaN(e.attr(i,"tabindex")))},tabbable:function(i){var s=e.attr(i,"tabindex"),n=isNaN(s);return(n||s>=0)&&t(i,!n)}}),e("").outerWidth(1).jquery||e.each(["Width","Height"],function(t,i){function s(t,i,s,a){return e.each(n,function(){i-=parseFloat(e.css(t,"padding"+this))||0,s&&(i-=parseFloat(e.css(t,"border"+this+"Width"))||0),a&&(i-=parseFloat(e.css(t,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],a=i.toLowerCase(),o={innerWidth:e.fn.innerWidth,innerHeight:e.fn.innerHeight,outerWidth:e.fn.outerWidth,outerHeight:e.fn.outerHeight};e.fn["inner"+i]=function(t){return void 0===t?o["inner"+i].call(this):this.each(function(){e(this).css(a,s(this,t)+"px")})},e.fn["outer"+i]=function(t,n){return"number"!=typeof t?o["outer"+i].call(this,t):this.each(function(){e(this).css(a,s(this,t,!0,n)+"px")})}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}),e("").data("a-b","a").removeData("a-b").data("a-b")&&(e.fn.removeData=function(t){return function(i){return arguments.length?t.call(this,e.camelCase(i)):t.call(this)}}(e.fn.removeData)),e.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),e.fn.extend({focus:function(t){return function(i,s){return"number"==typeof i?this.each(function(){var t=this;setTimeout(function(){e(t).focus(),s&&s.call(t)},i)}):t.apply(this,arguments)}}(e.fn.focus),disableSelection:function(){var e="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.bind(e+".ui-disableSelection",function(e){e.preventDefault()})}}(),enableSelection:function(){return this.unbind(".ui-disableSelection")},zIndex:function(t){if(void 0!==t)return this.css("zIndex",t);if(this.length)for(var i,s,n=e(this[0]);n.length&&n[0]!==document;){if(i=n.css("position"),("absolute"===i||"relative"===i||"fixed"===i)&&(s=parseInt(n.css("zIndex"),10),!isNaN(s)&&0!==s))return s;n=n.parent()}return 0}}),e.ui.plugin={add:function(t,i,s){var n,a=e.ui[t].prototype;for(n in s)a.plugins[n]=a.plugins[n]||[],a.plugins[n].push([i,s[n]])},call:function(e,t,i,s){var n,a=e.plugins[t];if(a&&(s||e.element[0].parentNode&&11!==e.element[0].parentNode.nodeType))for(n=0;a.length>n;n++)e.options[a[n][0]]&&a[n][1].apply(e.element,i)}};var l=0,u=Array.prototype.slice;e.cleanData=function(t){return function(i){var s,n,a;for(a=0;null!=(n=i[a]);a++)try{s=e._data(n,"events"),s&&s.remove&&e(n).triggerHandler("remove")}catch(o){}t(i)}}(e.cleanData),e.widget=function(t,i,s){var n,a,o,r,h={},l=t.split(".")[0];return t=t.split(".")[1],n=l+"-"+t,s||(s=i,i=e.Widget),e.expr[":"][n.toLowerCase()]=function(t){return!!e.data(t,n)},e[l]=e[l]||{},a=e[l][t],o=e[l][t]=function(e,t){return this._createWidget?(arguments.length&&this._createWidget(e,t),void 0):new o(e,t)},e.extend(o,a,{version:s.version,_proto:e.extend({},s),_childConstructors:[]}),r=new i,r.options=e.widget.extend({},r.options),e.each(s,function(t,s){return e.isFunction(s)?(h[t]=function(){var e=function(){return i.prototype[t].apply(this,arguments)},n=function(e){return i.prototype[t].apply(this,e)};return function(){var t,i=this._super,a=this._superApply;return this._super=e,this._superApply=n,t=s.apply(this,arguments),this._super=i,this._superApply=a,t}}(),void 0):(h[t]=s,void 0)}),o.prototype=e.widget.extend(r,{widgetEventPrefix:a?r.widgetEventPrefix||t:t},h,{constructor:o,namespace:l,widgetName:t,widgetFullName:n}),a?(e.each(a._childConstructors,function(t,i){var s=i.prototype;e.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete a._childConstructors):i._childConstructors.push(o),e.widget.bridge(t,o),o},e.widget.extend=function(t){for(var i,s,n=u.call(arguments,1),a=0,o=n.length;o>a;a++)for(i in n[a])s=n[a][i],n[a].hasOwnProperty(i)&&void 0!==s&&(t[i]=e.isPlainObject(s)?e.isPlainObject(t[i])?e.widget.extend({},t[i],s):e.widget.extend({},s):s);return t},e.widget.bridge=function(t,i){var s=i.prototype.widgetFullName||t;e.fn[t]=function(n){var a="string"==typeof n,o=u.call(arguments,1),r=this;return a?this.each(function(){var i,a=e.data(this,s);return"instance"===n?(r=a,!1):a?e.isFunction(a[n])&&"_"!==n.charAt(0)?(i=a[n].apply(a,o),i!==a&&void 0!==i?(r=i&&i.jquery?r.pushStack(i.get()):i,!1):void 0):e.error("no such method '"+n+"' for "+t+" widget instance"):e.error("cannot call methods on "+t+" prior to initialization; "+"attempted to call method '"+n+"'")}):(o.length&&(n=e.widget.extend.apply(null,[n].concat(o))),this.each(function(){var t=e.data(this,s);t?(t.option(n||{}),t._init&&t._init()):e.data(this,s,new i(n,this))})),r}},e.Widget=function(){},e.Widget._childConstructors=[],e.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
    ",options:{disabled:!1,create:null},_createWidget:function(t,i){i=e(i||this.defaultElement||this)[0],this.element=e(i),this.uuid=l++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=e(),this.hoverable=e(),this.focusable=e(),i!==this&&(e.data(i,this.widgetFullName,this),this._on(!0,this.element,{remove:function(e){e.target===i&&this.destroy()}}),this.document=e(i.style?i.ownerDocument:i.document||i),this.window=e(this.document[0].defaultView||this.document[0].parentWindow)),this.options=e.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:e.noop,_getCreateEventData:e.noop,_create:e.noop,_init:e.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData(e.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled "+"ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:e.noop,widget:function(){return this.element},option:function(t,i){var s,n,a,o=t;if(0===arguments.length)return e.widget.extend({},this.options);if("string"==typeof t)if(o={},s=t.split("."),t=s.shift(),s.length){for(n=o[t]=e.widget.extend({},this.options[t]),a=0;s.length-1>a;a++)n[s[a]]=n[s[a]]||{},n=n[s[a]];if(t=s.pop(),1===arguments.length)return void 0===n[t]?null:n[t];n[t]=i}else{if(1===arguments.length)return void 0===this.options[t]?null:this.options[t];o[t]=i}return this._setOptions(o),this},_setOptions:function(e){var t;for(t in e)this._setOption(t,e[t]);return this},_setOption:function(e,t){return this.options[e]=t,"disabled"===e&&(this.widget().toggleClass(this.widgetFullName+"-disabled",!!t),t&&(this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus"))),this},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_on:function(t,i,s){var n,a=this;"boolean"!=typeof t&&(s=i,i=t,t=!1),s?(i=n=e(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),e.each(s,function(s,o){function r(){return t||a.options.disabled!==!0&&!e(this).hasClass("ui-state-disabled")?("string"==typeof o?a[o]:o).apply(a,arguments):void 0}"string"!=typeof o&&(r.guid=o.guid=o.guid||r.guid||e.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+a.eventNamespace,u=h[2];u?n.delegate(u,l,r):i.bind(l,r)})},_off:function(t,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,t.unbind(i).undelegate(i),this.bindings=e(this.bindings.not(t).get()),this.focusable=e(this.focusable.not(t).get()),this.hoverable=e(this.hoverable.not(t).get())},_delay:function(e,t){function i(){return("string"==typeof e?s[e]:e).apply(s,arguments)}var s=this;return setTimeout(i,t||0)},_hoverable:function(t){this.hoverable=this.hoverable.add(t),this._on(t,{mouseenter:function(t){e(t.currentTarget).addClass("ui-state-hover")},mouseleave:function(t){e(t.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(t){this.focusable=this.focusable.add(t),this._on(t,{focusin:function(t){e(t.currentTarget).addClass("ui-state-focus")},focusout:function(t){e(t.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(t,i,s){var n,a,o=this.options[t];if(s=s||{},i=e.Event(i),i.type=(t===this.widgetEventPrefix?t:this.widgetEventPrefix+t).toLowerCase(),i.target=this.element[0],a=i.originalEvent)for(n in a)n in i||(i[n]=a[n]);return this.element.trigger(i,s),!(e.isFunction(o)&&o.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},e.each({show:"fadeIn",hide:"fadeOut"},function(t,i){e.Widget.prototype["_"+t]=function(s,n,a){"string"==typeof n&&(n={effect:n});var o,r=n?n===!0||"number"==typeof n?i:n.effect||i:t;n=n||{},"number"==typeof n&&(n={duration:n}),o=!e.isEmptyObject(n),n.complete=a,n.delay&&s.delay(n.delay),o&&e.effects&&e.effects.effect[r]?s[t](n):r!==t&&s[r]?s[r](n.duration,n.easing,a):s.queue(function(i){e(this)[t](),a&&a.call(s[0]),i()})}}),e.widget;var d=!1;e(document).mouseup(function(){d=!1}),e.widget("ui.mouse",{version:"1.11.4",options:{cancel:"input,textarea,button,select,option",distance:1,delay:0},_mouseInit:function(){var t=this;this.element.bind("mousedown."+this.widgetName,function(e){return t._mouseDown(e)}).bind("click."+this.widgetName,function(i){return!0===e.data(i.target,t.widgetName+".preventClickEvent")?(e.removeData(i.target,t.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.unbind("."+this.widgetName),this._mouseMoveDelegate&&this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(t){if(!d){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(t),this._mouseDownEvent=t;var i=this,s=1===t.which,n="string"==typeof this.options.cancel&&t.target.nodeName?e(t.target).closest(this.options.cancel).length:!1;return s&&!n&&this._mouseCapture(t)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=this._mouseStart(t)!==!1,!this._mouseStarted)?(t.preventDefault(),!0):(!0===e.data(t.target,this.widgetName+".preventClickEvent")&&e.removeData(t.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(e){return i._mouseMove(e)},this._mouseUpDelegate=function(e){return i._mouseUp(e)},this.document.bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate),t.preventDefault(),d=!0,!0)):!0}},_mouseMove:function(t){if(this._mouseMoved){if(e.ui.ie&&(!document.documentMode||9>document.documentMode)&&!t.button)return this._mouseUp(t);if(!t.which)return this._mouseUp(t)}return(t.which||t.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(t),t.preventDefault()):(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,t)!==!1,this._mouseStarted?this._mouseDrag(t):this._mouseUp(t)),!this._mouseStarted)},_mouseUp:function(t){return this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,t.target===this._mouseDownEvent.target&&e.data(t.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(t)),d=!1,!1},_mouseDistanceMet:function(e){return Math.max(Math.abs(this._mouseDownEvent.pageX-e.pageX),Math.abs(this._mouseDownEvent.pageY-e.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),function(){function t(e,t,i){return[parseFloat(e[0])*(p.test(e[0])?t/100:1),parseFloat(e[1])*(p.test(e[1])?i/100:1)]}function i(t,i){return parseInt(e.css(t,i),10)||0}function s(t){var i=t[0];return 9===i.nodeType?{width:t.width(),height:t.height(),offset:{top:0,left:0}}:e.isWindow(i)?{width:t.width(),height:t.height(),offset:{top:t.scrollTop(),left:t.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:t.outerWidth(),height:t.outerHeight(),offset:t.offset()}}e.ui=e.ui||{};var n,a,o=Math.max,r=Math.abs,h=Math.round,l=/left|center|right/,u=/top|center|bottom/,d=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,p=/%$/,f=e.fn.position;e.position={scrollbarWidth:function(){if(void 0!==n)return n;var t,i,s=e("
    "),a=s.children()[0];return e("body").append(s),t=a.offsetWidth,s.css("overflow","scroll"),i=a.offsetWidth,t===i&&(i=s[0].clientWidth),s.remove(),n=t-i},getScrollInfo:function(t){var i=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),s=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),n="scroll"===i||"auto"===i&&t.widthi?"left":t>0?"right":"center",vertical:0>a?"top":s>0?"bottom":"middle"};d>m&&m>r(t+i)&&(h.horizontal="center"),c>g&&g>r(s+a)&&(h.vertical="middle"),h.important=o(r(t),r(i))>o(r(s),r(a))?"horizontal":"vertical",n.using.call(this,e,h)}),u.offset(e.extend(M,{using:l}))})},e.ui.position={fit:{left:function(e,t){var i,s=t.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=e.left-t.collisionPosition.marginLeft,h=n-r,l=r+t.collisionWidth-a-n;t.collisionWidth>a?h>0&&0>=l?(i=e.left+h+t.collisionWidth-a-n,e.left+=h-i):e.left=l>0&&0>=h?n:h>l?n+a-t.collisionWidth:n:h>0?e.left+=h:l>0?e.left-=l:e.left=o(e.left-r,e.left)},top:function(e,t){var i,s=t.within,n=s.isWindow?s.scrollTop:s.offset.top,a=t.within.height,r=e.top-t.collisionPosition.marginTop,h=n-r,l=r+t.collisionHeight-a-n;t.collisionHeight>a?h>0&&0>=l?(i=e.top+h+t.collisionHeight-a-n,e.top+=h-i):e.top=l>0&&0>=h?n:h>l?n+a-t.collisionHeight:n:h>0?e.top+=h:l>0?e.top-=l:e.top=o(e.top-r,e.top)}},flip:{left:function(e,t){var i,s,n=t.within,a=n.offset.left+n.scrollLeft,o=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=e.left-t.collisionPosition.marginLeft,u=l-h,d=l+t.collisionWidth-o-h,c="left"===t.my[0]?-t.elemWidth:"right"===t.my[0]?t.elemWidth:0,p="left"===t.at[0]?t.targetWidth:"right"===t.at[0]?-t.targetWidth:0,f=-2*t.offset[0];0>u?(i=e.left+c+p+f+t.collisionWidth-o-a,(0>i||r(u)>i)&&(e.left+=c+p+f)):d>0&&(s=e.left-t.collisionPosition.marginLeft+c+p+f-h,(s>0||d>r(s))&&(e.left+=c+p+f))},top:function(e,t){var i,s,n=t.within,a=n.offset.top+n.scrollTop,o=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=e.top-t.collisionPosition.marginTop,u=l-h,d=l+t.collisionHeight-o-h,c="top"===t.my[1],p=c?-t.elemHeight:"bottom"===t.my[1]?t.elemHeight:0,f="top"===t.at[1]?t.targetHeight:"bottom"===t.at[1]?-t.targetHeight:0,m=-2*t.offset[1];0>u?(s=e.top+p+f+m+t.collisionHeight-o-a,(0>s||r(u)>s)&&(e.top+=p+f+m)):d>0&&(i=e.top-t.collisionPosition.marginTop+p+f+m-h,(i>0||d>r(i))&&(e.top+=p+f+m))}},flipfit:{left:function(){e.ui.position.flip.left.apply(this,arguments),e.ui.position.fit.left.apply(this,arguments)},top:function(){e.ui.position.flip.top.apply(this,arguments),e.ui.position.fit.top.apply(this,arguments)}}},function(){var t,i,s,n,o,r=document.getElementsByTagName("body")[0],h=document.createElement("div");t=document.createElement(r?"div":"body"),s={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},r&&e.extend(s,{position:"absolute",left:"-1000px",top:"-1000px"});for(o in s)t.style[o]=s[o];t.appendChild(h),i=r||document.documentElement,i.insertBefore(t,i.firstChild),h.style.cssText="position: absolute; left: 10.7432222px;",n=e(h).offset().left,a=n>10&&11>n,t.innerHTML="",i.removeChild(t)}()}(),e.ui.position,e.widget("ui.accordion",{version:"1.11.4",options:{active:0,animate:{},collapsible:!1,event:"click",header:"> li > :first-child,> :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},hideProps:{borderTopWidth:"hide",borderBottomWidth:"hide",paddingTop:"hide",paddingBottom:"hide",height:"hide"},showProps:{borderTopWidth:"show",borderBottomWidth:"show",paddingTop:"show",paddingBottom:"show",height:"show"},_create:function(){var t=this.options;this.prevShow=this.prevHide=e(),this.element.addClass("ui-accordion ui-widget ui-helper-reset").attr("role","tablist"),t.collapsible||t.active!==!1&&null!=t.active||(t.active=0),this._processPanels(),0>t.active&&(t.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():e()}},_createIcons:function(){var t=this.options.icons;t&&(e("").addClass("ui-accordion-header-icon ui-icon "+t.header).prependTo(this.headers),this.active.children(".ui-accordion-header-icon").removeClass(t.header).addClass(t.activeHeader),this.headers.addClass("ui-accordion-icons"))},_destroyIcons:function(){this.headers.removeClass("ui-accordion-icons").children(".ui-accordion-header-icon").remove()},_destroy:function(){var e;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"),this.headers.removeClass("ui-accordion-header ui-accordion-header-active ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("aria-controls").removeAttr("tabIndex").removeUniqueId(),this._destroyIcons(),e=this.headers.next().removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled").css("display","").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeUniqueId(),"content"!==this.options.heightStyle&&e.css("height","")},_setOption:function(e,t){return"active"===e?(this._activate(t),void 0):("event"===e&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(t)),this._super(e,t),"collapsible"!==e||t||this.options.active!==!1||this._activate(0),"icons"===e&&(this._destroyIcons(),t&&this._createIcons()),"disabled"===e&&(this.element.toggleClass("ui-state-disabled",!!t).attr("aria-disabled",t),this.headers.add(this.headers.next()).toggleClass("ui-state-disabled",!!t)),void 0)},_keydown:function(t){if(!t.altKey&&!t.ctrlKey){var i=e.ui.keyCode,s=this.headers.length,n=this.headers.index(t.target),a=!1;switch(t.keyCode){case i.RIGHT:case i.DOWN:a=this.headers[(n+1)%s];break;case i.LEFT:case i.UP:a=this.headers[(n-1+s)%s];break;case i.SPACE:case i.ENTER:this._eventHandler(t);break;case i.HOME:a=this.headers[0];break;case i.END:a=this.headers[s-1]}a&&(e(t.target).attr("tabIndex",-1),e(a).attr("tabIndex",0),a.focus(),t.preventDefault())}},_panelKeyDown:function(t){t.keyCode===e.ui.keyCode.UP&&t.ctrlKey&&e(t.currentTarget).prev().focus()},refresh:function(){var t=this.options;this._processPanels(),t.active===!1&&t.collapsible===!0||!this.headers.length?(t.active=!1,this.active=e()):t.active===!1?this._activate(0):this.active.length&&!e.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(t.active=!1,this.active=e()):this._activate(Math.max(0,t.active-1)):t.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){var e=this.headers,t=this.panels;this.headers=this.element.find(this.options.header).addClass("ui-accordion-header ui-state-default ui-corner-all"),this.panels=this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom").filter(":not(.ui-accordion-content-active)").hide(),t&&(this._off(e.not(this.headers)),this._off(t.not(this.panels)))},_refresh:function(){var t,i=this.options,s=i.heightStyle,n=this.element.parent();this.active=this._findActive(i.active).addClass("ui-accordion-header-active ui-state-active ui-corner-top").removeClass("ui-corner-all"),this.active.next().addClass("ui-accordion-content-active").show(),this.headers.attr("role","tab").each(function(){var t=e(this),i=t.uniqueId().attr("id"),s=t.next(),n=s.uniqueId().attr("id");t.attr("aria-controls",n),s.attr("aria-labelledby",i)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}).next().attr({"aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}).next().attr({"aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._createIcons(),this._setupEvents(i.event),"fill"===s?(t=n.height(),this.element.siblings(":visible").each(function(){var i=e(this),s=i.css("position");"absolute"!==s&&"fixed"!==s&&(t-=i.outerHeight(!0))}),this.headers.each(function(){t-=e(this).outerHeight(!0)}),this.headers.next().each(function(){e(this).height(Math.max(0,t-e(this).innerHeight()+e(this).height()))}).css("overflow","auto")):"auto"===s&&(t=0,this.headers.next().each(function(){t=Math.max(t,e(this).css("height","").height())}).height(t))},_activate:function(t){var i=this._findActive(t)[0];i!==this.active[0]&&(i=i||this.active[0],this._eventHandler({target:i,currentTarget:i,preventDefault:e.noop}))},_findActive:function(t){return"number"==typeof t?this.headers.eq(t):e()},_setupEvents:function(t){var i={keydown:"_keydown"};t&&e.each(t.split(" "),function(e,t){i[t]="_eventHandler"}),this._off(this.headers.add(this.headers.next())),this._on(this.headers,i),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._hoverable(this.headers),this._focusable(this.headers)},_eventHandler:function(t){var i=this.options,s=this.active,n=e(t.currentTarget),a=n[0]===s[0],o=a&&i.collapsible,r=o?e():n.next(),h=s.next(),l={oldHeader:s,oldPanel:h,newHeader:o?e():n,newPanel:r};t.preventDefault(),a&&!i.collapsible||this._trigger("beforeActivate",t,l)===!1||(i.active=o?!1:this.headers.index(n),this.active=a?e():n,this._toggle(l),s.removeClass("ui-accordion-header-active ui-state-active"),i.icons&&s.children(".ui-accordion-header-icon").removeClass(i.icons.activeHeader).addClass(i.icons.header),a||(n.removeClass("ui-corner-all").addClass("ui-accordion-header-active ui-state-active ui-corner-top"),i.icons&&n.children(".ui-accordion-header-icon").removeClass(i.icons.header).addClass(i.icons.activeHeader),n.next().addClass("ui-accordion-content-active")))},_toggle:function(t){var i=t.newPanel,s=this.prevShow.length?this.prevShow:t.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=i,this.prevHide=s,this.options.animate?this._animate(i,s,t):(s.hide(),i.show(),this._toggleComplete(t)),s.attr({"aria-hidden":"true"}),s.prev().attr({"aria-selected":"false","aria-expanded":"false"}),i.length&&s.length?s.prev().attr({tabIndex:-1,"aria-expanded":"false"}):i.length&&this.headers.filter(function(){return 0===parseInt(e(this).attr("tabIndex"),10)}).attr("tabIndex",-1),i.attr("aria-hidden","false").prev().attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_animate:function(e,t,i){var s,n,a,o=this,r=0,h=e.css("box-sizing"),l=e.length&&(!t.length||e.index()",delay:300,options:{icons:{submenu:"ui-icon-carat-1-e"},items:"> *",menus:"ul",position:{my:"left-1 top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().addClass("ui-menu ui-widget ui-widget-content").toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length).attr({role:this.options.role,tabIndex:0}),this.options.disabled&&this.element.addClass("ui-state-disabled").attr("aria-disabled","true"),this._on({"mousedown .ui-menu-item":function(e){e.preventDefault()},"click .ui-menu-item":function(t){var i=e(t.target);!this.mouseHandled&&i.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),i.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&e(this.document[0].activeElement).closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(t){if(!this.previousFilter){var i=e(t.currentTarget); -i.siblings(".ui-state-active").removeClass("ui-state-active"),this.focus(t,i)}},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(e,t){var i=this.active||this.element.find(this.options.items).eq(0);t||this.focus(e,i)},blur:function(t){this._delay(function(){e.contains(this.element[0],this.document[0].activeElement)||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(e){this._closeOnDocumentClick(e)&&this.collapseAll(e),this.mouseHandled=!1}})},_destroy:function(){this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeClass("ui-menu ui-widget ui-widget-content ui-menu-icons ui-front").removeAttr("role").removeAttr("tabIndex").removeAttr("aria-labelledby").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-disabled").removeUniqueId().show(),this.element.find(".ui-menu-item").removeClass("ui-menu-item").removeAttr("role").removeAttr("aria-disabled").removeUniqueId().removeClass("ui-state-hover").removeAttr("tabIndex").removeAttr("role").removeAttr("aria-haspopup").children().each(function(){var t=e(this);t.data("ui-menu-submenu-carat")&&t.remove()}),this.element.find(".ui-menu-divider").removeClass("ui-menu-divider ui-widget-content")},_keydown:function(t){var i,s,n,a,o=!0;switch(t.keyCode){case e.ui.keyCode.PAGE_UP:this.previousPage(t);break;case e.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case e.ui.keyCode.HOME:this._move("first","first",t);break;case e.ui.keyCode.END:this._move("last","last",t);break;case e.ui.keyCode.UP:this.previous(t);break;case e.ui.keyCode.DOWN:this.next(t);break;case e.ui.keyCode.LEFT:this.collapse(t);break;case e.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case e.ui.keyCode.ENTER:case e.ui.keyCode.SPACE:this._activate(t);break;case e.ui.keyCode.ESCAPE:this.collapse(t);break;default:o=!1,s=this.previousFilter||"",n=String.fromCharCode(t.keyCode),a=!1,clearTimeout(this.filterTimer),n===s?a=!0:n=s+n,i=this._filterMenuItems(n),i=a&&-1!==i.index(this.active.next())?this.active.nextAll(".ui-menu-item"):i,i.length||(n=String.fromCharCode(t.keyCode),i=this._filterMenuItems(n)),i.length?(this.focus(t,i),this.previousFilter=n,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}o&&t.preventDefault()},_activate:function(e){this.active.is(".ui-state-disabled")||(this.active.is("[aria-haspopup='true']")?this.expand(e):this.select(e))},refresh:function(){var t,i,s=this,n=this.options.icons.submenu,a=this.element.find(this.options.menus);this.element.toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length),a.filter(":not(.ui-menu)").addClass("ui-menu ui-widget ui-widget-content ui-front").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=e(this),i=t.parent(),s=e("").addClass("ui-menu-icon ui-icon "+n).data("ui-menu-submenu-carat",!0);i.attr("aria-haspopup","true").prepend(s),t.attr("aria-labelledby",i.attr("id"))}),t=a.add(this.element),i=t.find(this.options.items),i.not(".ui-menu-item").each(function(){var t=e(this);s._isDivider(t)&&t.addClass("ui-widget-content ui-menu-divider")}),i.not(".ui-menu-item, .ui-menu-divider").addClass("ui-menu-item").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),i.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!e.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(e,t){"icons"===e&&this.element.find(".ui-menu-icon").removeClass(this.options.icons.submenu).addClass(t.submenu),"disabled"===e&&this.element.toggleClass("ui-state-disabled",!!t).attr("aria-disabled",t),this._super(e,t)},focus:function(e,t){var i,s;this.blur(e,e&&"focus"===e.type),this._scrollIntoView(t),this.active=t.first(),s=this.active.addClass("ui-state-focus").removeClass("ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",s.attr("id")),this.active.parent().closest(".ui-menu-item").addClass("ui-state-active"),e&&"keydown"===e.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),i=t.children(".ui-menu"),i.length&&e&&/^mouse/.test(e.type)&&this._startOpening(i),this.activeMenu=t.parent(),this._trigger("focus",e,{item:t})},_scrollIntoView:function(t){var i,s,n,a,o,r;this._hasScroll()&&(i=parseFloat(e.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(e.css(this.activeMenu[0],"paddingTop"))||0,n=t.offset().top-this.activeMenu.offset().top-i-s,a=this.activeMenu.scrollTop(),o=this.activeMenu.height(),r=t.outerHeight(),0>n?this.activeMenu.scrollTop(a+n):n+r>o&&this.activeMenu.scrollTop(a+n-o+r))},blur:function(e,t){t||clearTimeout(this.timer),this.active&&(this.active.removeClass("ui-state-focus"),this.active=null,this._trigger("blur",e,{item:this.active}))},_startOpening:function(e){clearTimeout(this.timer),"true"===e.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(e)},this.delay))},_open:function(t){var i=e.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(t.parents(".ui-menu")).hide().attr("aria-hidden","true"),t.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(i)},collapseAll:function(t,i){clearTimeout(this.timer),this.timer=this._delay(function(){var s=i?this.element:e(t&&t.target).closest(this.element.find(".ui-menu"));s.length||(s=this.element),this._close(s),this.blur(t),this.activeMenu=s},this.delay)},_close:function(e){e||(e=this.active?this.active.parent():this.element),e.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false").end().find(".ui-state-active").not(".ui-state-focus").removeClass("ui-state-active")},_closeOnDocumentClick:function(t){return!e(t.target).closest(".ui-menu").length},_isDivider:function(e){return!/[^\-\u2014\u2013\s]/.test(e.text())},collapse:function(e){var t=this.active&&this.active.parent().closest(".ui-menu-item",this.element);t&&t.length&&(this._close(),this.focus(e,t))},expand:function(e){var t=this.active&&this.active.children(".ui-menu ").find(this.options.items).first();t&&t.length&&(this._open(t.parent()),this._delay(function(){this.focus(e,t)}))},next:function(e){this._move("next","first",e)},previous:function(e){this._move("prev","last",e)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(e,t,i){var s;this.active&&(s="first"===e||"last"===e?this.active["first"===e?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[e+"All"](".ui-menu-item").eq(0)),s&&s.length&&this.active||(s=this.activeMenu.find(this.options.items)[t]()),this.focus(i,s)},nextPage:function(t){var i,s,n;return this.active?(this.isLastItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return i=e(this),0>i.offset().top-s-n}),this.focus(t,i)):this.focus(t,this.activeMenu.find(this.options.items)[this.active?"last":"first"]())),void 0):(this.next(t),void 0)},previousPage:function(t){var i,s,n;return this.active?(this.isFirstItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return i=e(this),i.offset().top-s+n>0}),this.focus(t,i)):this.focus(t,this.activeMenu.find(this.options.items).first())),void 0):(this.next(t),void 0)},_hasScroll:function(){return this.element.outerHeight()",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var t,i,s,n=this.element[0].nodeName.toLowerCase(),a="textarea"===n,o="input"===n;this.isMultiLine=a?!0:o?!1:this.element.prop("isContentEditable"),this.valueMethod=this.element[a||o?"val":"text"],this.isNewMenu=!0,this.element.addClass("ui-autocomplete-input").attr("autocomplete","off"),this._on(this.element,{keydown:function(n){if(this.element.prop("readOnly"))return t=!0,s=!0,i=!0,void 0;t=!1,s=!1,i=!1;var a=e.ui.keyCode;switch(n.keyCode){case a.PAGE_UP:t=!0,this._move("previousPage",n);break;case a.PAGE_DOWN:t=!0,this._move("nextPage",n);break;case a.UP:t=!0,this._keyEvent("previous",n);break;case a.DOWN:t=!0,this._keyEvent("next",n);break;case a.ENTER:this.menu.active&&(t=!0,n.preventDefault(),this.menu.select(n));break;case a.TAB:this.menu.active&&this.menu.select(n);break;case a.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(n),n.preventDefault());break;default:i=!0,this._searchTimeout(n)}},keypress:function(s){if(t)return t=!1,(!this.isMultiLine||this.menu.element.is(":visible"))&&s.preventDefault(),void 0;if(!i){var n=e.ui.keyCode;switch(s.keyCode){case n.PAGE_UP:this._move("previousPage",s);break;case n.PAGE_DOWN:this._move("nextPage",s);break;case n.UP:this._keyEvent("previous",s);break;case n.DOWN:this._keyEvent("next",s)}}},input:function(e){return s?(s=!1,e.preventDefault(),void 0):(this._searchTimeout(e),void 0)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(e){return this.cancelBlur?(delete this.cancelBlur,void 0):(clearTimeout(this.searching),this.close(e),this._change(e),void 0)}}),this._initSource(),this.menu=e("
    "),item:'
  • ',events:["open","close","change","radixChange"]};a.extend(true,this,b)},createInstance:function(){var b=this;b._Long();b._regex={2:new RegExp(/([0-1])/),8:new RegExp(/([0-7])/),10:new RegExp(/([0-9\-])/),16:new RegExp(/([0-9]|[a-f])/i)};b.render()},render:function(){var e=this;e._radixNumber=e._getRadix(e.radix);if(e.value!==""){e._number=new e.longObj.math.Long.fromString((e.value).toString(),e._radixNumber)}if(e.baseHost){e.host=e.baseHost;e.element=e.host[0]}if(this.element.nodeName.toLowerCase()==="div"){this.baseHost=this.element;var b=this.host.find("input");var d=false;a.each(b,function(){var f=this.type;if(f===null||f==="text"||f==="textarea"){b=a(this);d=true;return false}});if(!d){throw new Error("jqxFormattedInput: Missing Text Input in the Input Group")}if(b.length>0){this.baseHost=a(this.element);this.host=b;this.element=b[0];this.baseHost.addClass(this.toThemeProperty("jqx-widget"));this.baseHost.addClass(this.toThemeProperty("jqx-rc-all"));this.baseHost.addClass(this.toThemeProperty("jqx-input-group"));var c=this.baseHost.children();a.each(c,function(f){a(this).addClass(e.toThemeProperty("jqx-input-group-addon"));a(this).removeClass(e.toThemeProperty("jqx-rc-all"));if(f===0){a(this).addClass(e.toThemeProperty("jqx-rc-l"))}if(f===c.length-1){a(this).addClass(e.toThemeProperty("jqx-rc-r"))}if(this!==e.element){a(this).addClass(e.toThemeProperty("jqx-fill-state-normal"))}if(this.nodeName.toLowerCase()==="div"){e.appendSpinButtons=function(i){e._spinButtonsContainer=a(i);e._spinButtonsContainer.addClass(e.toThemeProperty("jqx-formatted-input-spin-buttons-container"));var h='
    ';e._upbutton=a(h);e._spinButtonsContainer.append(e._upbutton);e._downbutton=a(h);e._spinButtonsContainer.append(e._downbutton);e._upArrow=e._upbutton.find("div");e._upArrow.addClass(e.toThemeProperty("jqx-icon-arrow-up"));e._downArrow=e._downbutton.find("div");e._downArrow.addClass(e.toThemeProperty("jqx-icon-arrow-down"));e._spinButtonsStepLong=new e.longObj.math.Long.fromNumber(e.spinButtonsStep)};var g=function(h){e._addon=a(h);e._addon.addClass(e.toThemeProperty("jqx-formatted-input-addon"));if(!e._arrow){e._arrow=a('
    ');e._arrow.appendTo(e._addon)}};if(e.rtl===false){if(!e._spinButtonsContainer&&e.spinButtons===true){e.appendSpinButtons(this)}else{if(!e._addon&&e.dropDown===true&&((f===2)||(f===1&&e.spinButtons===false))){g(this)}}}else{if(!e._addon&&e.dropDown===true){g(this);if(e.spinButtons===true){e._addon.addClass(e.toThemeProperty("jqx-formatted-input-addon-rtl"))}}else{if(!e._spinButtonsContainer&&e.spinButtons===true&&((f===1)||(f===0&&e.dropDown===false))){e.appendSpinButtons(this);e._spinButtonsContainer.addClass(e.toThemeProperty("jqx-formatted-input-spin-buttons-container-rtl"));if(e.dropDown===true){e._addon.addClass(e.toThemeProperty("jqx-formatted-input-addon-rtl"))}}}}}})}}e._inputAndAddon=e.host;if(e.baseHost){if(e._spinButtonsContainer){e._inputAndAddon=e._inputAndAddon.add(e._spinButtonsContainer)}if(e._addon){e._inputAndAddon=e._inputAndAddon.add(e._addon)}}e.removeHandlers();this.addHandlers();if(this.rtl){this.host.addClass(this.toThemeProperty("jqx-rtl"))}this.host.attr("role","textbox");a.jqx.aria(this,"aria-autocomplete","both");a.jqx.aria(this,"aria-disabled",this.disabled);a.jqx.aria(this,"aria-readonly",false);a.jqx.aria(this,"aria-multiline",false);a.jqx.aria(this,"aria-haspopup",true);if(e.value!==""&&e.value!==null){if(e.upperCase===true){e.host.addClass(e.toThemeProperty("jqx-formatted-input-upper-case"))}else{e.host.addClass(e.toThemeProperty("jqx-formatted-input-lower-case"))}if(e._radixNumber===10&&e.decimalNotation==="exponential"){e.element.value=e._getDecimalNotation("exponential")}else{e.element.value=e.value}}else{if(e._spinButtonsContainer){e._spinButtonsContainer.addClass(e.toThemeProperty("jqx-fill-state-disabled"))}}if(e._radixNumber!==10&&e.min.toString()==="-9223372036854775808"){e._minLong=new e.longObj.math.Long.fromNumber(e.min)}else{e._setMinMax("min")}if(e._radixNumber!==10&&e.max.toString()==="9223372036854775807"){e._maxLong=new e.longObj.math.Long.fromNumber(e.max)}else{e._setMinMax("max")}},_refreshClasses:function(c){var b=c?"addClass":"removeClass";this.host[b](this.toThemeProperty("jqx-widget-content"));this.host[b](this.toThemeProperty("jqx-input"));this.host[b](this.toThemeProperty("jqx-formatted-input"));this.host[b](this.toThemeProperty("jqx-widget"));this.$popup[b](this.toThemeProperty("jqx-popup"));if(a.jqx.browser.msie){this.$popup[b](this.toThemeProperty("jqx-noshadow"))}this.$popup[b](this.toThemeProperty("jqx-input-popup"));this.$popup[b](this.toThemeProperty("jqx-menu"));this.$popup[b](this.toThemeProperty("jqx-menu-vertical"));this.$popup[b](this.toThemeProperty("jqx-menu-dropdown"));this.$popup[b](this.toThemeProperty("jqx-widget"));this.$popup[b](this.toThemeProperty("jqx-widget-content"));if(this.roundedCorners){this.host[b](this.toThemeProperty("jqx-rc-all"));this.$popup[b](this.toThemeProperty("jqx-rc-all"));if(this.baseHost){this.baseHost[b](this.toThemeProperty("jqx-rc-all"));if(this.rtl===false){this.host[b](this.toThemeProperty("jqx-rc-l"));if(this._addon){this._addon[b](this.toThemeProperty("jqx-rc-r"))}}else{this.host[b](this.toThemeProperty("jqx-rc-r"));if(this._addon){this._addon[b](this.toThemeProperty("jqx-rc-l"))}}}}else{this.host.removeClass(this.toThemeProperty("jqx-rc-all"));this.$popup.removeClass(this.toThemeProperty("jqx-rc-all"));if(this.baseHost){this.baseHost.removeClass(this.toThemeProperty("jqx-rc-all"));if(this.rtl===false){this.host.removeClass(this.toThemeProperty("jqx-rc-l"));if(this._addon){this._addon.removeClass(this.toThemeProperty("jqx-rc-r"))}}else{this.host.removeClass(this.toThemeProperty("jqx-rc-r"));if(this._addon){this._addon.removeClass(this.toThemeProperty("jqx-rc-l"))}}}}if(this.disabled){this.host[b](this.toThemeProperty("jqx-fill-state-disabled"));if(this.baseHost){if(this._spinButtonsContainer){this._spinButtonsContainer[b](this.toThemeProperty("jqx-fill-state-disabled"))}if(this._addon){this._addon[b](this.toThemeProperty("jqx-fill-state-disabled"))}}}else{this.host.removeClass(this.toThemeProperty("jqx-fill-state-disabled"));if(this.baseHost&&this.value!==""&&this.value!==null){if(this._spinButtonsContainer){this._spinButtonsContainer.removeClass(this.toThemeProperty("jqx-fill-state-disabled"))}if(this._addon){this._addon.removeClass(this.toThemeProperty("jqx-fill-state-disabled"))}}}},selectAll:function(){var b=this.host;setTimeout(function(){if("selectionStart" in b[0]){b[0].focus();b[0].setSelectionRange(0,b[0].value.length)}else{var c=b[0].createTextRange();c.collapse(true);c.moveEnd("character",b[0].value.length);c.moveStart("character",0);c.select()}},10)},selectLast:function(){var b=this.host;this.selectStart(b[0].value.length)},selectFirst:function(){this.selectStart(0)},selectStart:function(c){var b=this.host;setTimeout(function(){if("selectionStart" in b[0]){b[0].focus();b[0].setSelectionRange(c,c)}else{var d=b[0].createTextRange();d.collapse(true);d.moveEnd("character",c);d.moveStart("character",c);d.select()}},10)},focus:function(){try{this.host.focus();var c=this;setTimeout(function(){c.host.focus()},25)}catch(b){}},refresh:function(){var f=this;this._refreshClasses(false);this._refreshClasses(true);if(!this.baseHost){if(this.width){this.host.width(this.width)}if(this.height){this.host.height(this.height)}}else{if(this.width){this.baseHost.width(this.width)}if(this.height){this.baseHost.height(this.height);var e=0;var j=this.baseHost.height()-2;if(a.jqx.browser.msie&&a.jqx.browser.version<8){this.baseHost.css("display","inline-block")}a.each(this.baseHost.children(),function(){a(this).css("height","100%");if(a.jqx.browser.msie&&a.jqx.browser.version<8){a(this).css("height",j+"px")}if(this!==f.element){e+=a(this).outerWidth()}});var c=(typeof f.width==="string"&&f.width.charAt(f.width.length-1)==="%")?1:0;this.host.css("width",this.baseHost.width()-e-c+"px");if(a.jqx.browser.msie&&a.jqx.browser.version<9){if(f._spinButtonsContainer){if(f.rtl===false||f.rtl===true&&f._addon){f._spinButtonsContainer.css("border-left-width","0")}}if(f._addon){if(f.rtl===false){f._addon.css("border-left-width","0")}else{if(!f._spinButtonsContainer){f._addon.css("border-right-width","0")}}}var h=0;if(a.jqx.browser.version<8){var g=0;var d=parseInt(f.host.css("border-left-width"),10)+parseInt(f.host.css("border-right-width"),10);var i=parseInt(f.host.css("padding-left"),10)+parseInt(f.host.css("padding-right"),10);if(f._spinButtonsContainer){d+=parseInt(f._spinButtonsContainer.css("border-left-width"),10)+parseInt(f._spinButtonsContainer.css("border-right-width"),10);i+=parseInt(f._spinButtonsContainer.css("padding-left"),10)+parseInt(f._spinButtonsContainer.css("padding-right"),10);if(!f._addon){g=2}}if(f._addon){d+=parseInt(f._addon.css("border-left-width"),10)+parseInt(f._addon.css("border-right-width"),10);i+=parseInt(f._addon.css("padding-left"),10)+parseInt(f._addon.css("padding-right"),10);if(!f._spinButtonsContainer){g=2}}f.host.width(f.host.width()-(i+d)-g);h=6}f.host.height(f.baseHost.height()-(parseInt(f.host.css("border-top-width"),10)+parseInt(f.host.css("border-bottom-width"),10)+parseInt(f.host.css("padding-top"),10)+parseInt(f.host.css("padding-bottom"),10)+h));var b=f.host.height()+"px";f.host.css("min-height",b);f.host.css("line-height",b)}}}this.host.attr("disabled",this.disabled);if(!this.host.attr("placeholder")){this._refreshPlaceHolder()}},_refreshPlaceHolder:function(){if("placeholder" in this.element){this.host.attr("placeHolder",this.placeHolder)}else{var b=this;if(this.element.value===""){this.element.value=this.placeHolder;this.host.focus(function(){if(b.element.value===b.placeHolder){b.element.value=""}});this.host.blur(function(){if(b.element.value===""||b.element.value===b.placeHolder){b.element.value=b.placeHolder}})}}},destroy:function(){this.removeHandlers();if(this.baseHost){a.jqx.utilities.resize(this.baseHost,null,true);this.baseHost.remove()}else{a.jqx.utilities.resize(this.host,null,true);this.host.remove()}if(this.$popup){this.$popup.remove()}},propertyChangedHandler:function(b,d,g,f){if(d==="placeHolder"){b._refreshPlaceHolder();return}if(d==="theme"){a.jqx.utilities.setTheme(g,f,b.host);return}if(d==="disabled"){a.jqx.aria(b,"aria-disabled",b.disabled)}if(d==="value"&&g.toString().toUpperCase()!==f.toString().toUpperCase()){b.val(f);return}if(g!==f&&d==="radix"){b._changeRadix(f);return}if(g!==f&&d==="decimalNotation"&&b._radixNumber===10){if(f==="exponential"){b.element.value=b._getDecimalNotation("exponential")}else{b.element.value=b._number.toString(10)}}if(g!==f&&(d==="min"||d==="max")){b._setMinMax(d);b._validateValue(b.value,true);b.value=b.element.value;return}if(g!==f&&(d==="upperCase")&&b.element.value!==""){if(f===true){b.host.removeClass(b.toThemeProperty("jqx-formatted-input-lower-case"));b.host.addClass(b.toThemeProperty("jqx-formatted-input-upper-case"))}else{b.host.removeClass(b.toThemeProperty("jqx-formatted-input-upper-case"));b.host.addClass(b.toThemeProperty("jqx-formatted-input-lower-case"))}return}function c(i,j){var k=b.host.width();var h=i.outerWidth();if(j===false){b.host.width(k+h);i.hide();if(b.rtl===true){if(b.spinButtons===true){b._spinButtonsContainer.addClass(b.toThemeProperty("jqx-formatted-input-spin-buttons-container-rtl-border"))}if(b.dropDown===true){b._addon.removeClass(b.toThemeProperty("jqx-formatted-input-addon-rtl"))}}}else{b.host.width(k-h);i.show();if(b.rtl===true&&b.spinButtons===true&&b.dropDown===true){b._spinButtonsContainer.removeClass(b.toThemeProperty("jqx-formatted-input-spin-buttons-container-rtl-border"));b._addon.addClass(b.toThemeProperty("jqx-formatted-input-addon-rtl"))}}}function e(j,l){if(l===true){var k=a("
    ");if(b.baseHost){var h=b.baseHost.children("div");if((b.rtl===false&&j==="spinButtons")||(b.rtl===true&&j==="dropDown")){h.before(k)}else{h.after(k)}b.render();b.host.width(b.host.width()-k.outerWidth())}else{var n=b.element.id;b.host.removeAttr("id");b.host.wrap('
    ');var m=a("#"+n);if(b.rtl===false){m.append(k)}else{m.prepend(k)}var i=b.host.data();i.jqxFormattedInput.host=m;i.jqxFormattedInput.element=m[0];b.baseHost=m;b.baseHost.data(i);b.render();b.refresh()}}}if(d==="spinButtons"){if(g!==f){if(b._spinButtonsContainer){c(b._spinButtonsContainer,f)}else{e("spinButtons",f)}return}else{return}}if(g!==f&&d==="spinButtonsStep"){b._spinButtonsStepLong=new b.longObj.math.Long.fromNumber(f)}if(d==="dropDown"){if(g!==f){if(b._addon){c(b._addon,f)}else{e("dropDown",f)}return}else{return}}b.refresh()},select:function(d,e,b){var c=this;if(!b){b=c.$popup.find(".jqx-fill-state-pressed").attr("data-value")}c._changeRadix(parseInt(b,10));c._setMaxLength(true);c.close()},val:function(g){var f=this;if((g||g==="")&&!(typeof g==="object"&&a.isEmptyObject(g)===true)&&g!=="binary"&&g!=="octal"&&g!=="decimal"&&g!=="exponential"&&g!=="scientific"&&g!=="engineering"&&g!=="hexadecimal"){g=g.toString();if(g.toUpperCase()!==f.element.value.toString().toUpperCase()){var b=f.element.value;if(f.upperCase===true){g=g.toUpperCase()}var e=g.split("");for(var c=0;c=96&&o<=105){m=o-96;o=o-48}if(k.altKey===true){if(o===40){if(j._addon){this.open()}return}else{if(o===38){if(j._addon){this.close()}return}}}if(k.ctrlKey===true){if(o===67){return}else{if(o===65){j.selectAll();return}}}var d=[8,9,13,37,38,39,40,46,88];var i=j._regex[""+j._radixNumber+""];if(d.indexOf(o)===-1&&(!i.test(m)&&!i.test(k.key)&&!i.test(k["char"]))){k.preventDefault();return false}else{var l=j.host[0].selectionStart;var g=j.host[0].selectionEnd-l;var f=this._getCaretPosition(this.host[0]);var b=this.element.value;var c=b.split("");if(o===8){if(g>0){c.splice(l,g)}else{c.splice(f-1,1)}}else{if(o===46){if(g>0){c.splice(l,g)}else{c.splice(f,1)}}else{if(o===88){if(k.ctrlKey===true){if(g>0){c.splice(l,g)}}else{k.preventDefault()}}else{if(o===189){if(c[0]==="-"){c.splice(0,1);j._minus=false}else{c.splice(0,0,"-");j._minus=true}k.preventDefault()}else{var h=d.indexOf(o)===-1?m:"";if(g>0){c.splice(l,g);c.splice(l,0,h)}else{c.splice(f,0,h)}}}}}c=c.join("");if(c!==b){var n=j._validateValue(c,false);if(n===false){j._inputAndAddon.addClass(j.toThemeProperty("jqx-input-invalid"))}else{j._inputAndAddon.removeClass(j.toThemeProperty("jqx-input-invalid"))}}}},keypress:function(c){var b=this;if(b.suppressKeyPressRepeat){return}b.move(c)},keyup:function(c){var b=this;switch(c.keyCode){case 40:case 38:case 16:case 17:case 18:break;case 9:case 13:if(this._opened){this.select(c,this)}else{b._change()}break;case 27:if(!this._opened){return}this.close();break;case 189:if(b._radixNumber===10){if(b._minus===true){b.element.value="-"+b.element.value}else{b.element.value=b.element.value.slice(1)}}break}c.stopPropagation();c.preventDefault();if(b.element.value!==""){if(b.upperCase){b.host.addClass(b.toThemeProperty("jqx-formatted-input-upper-case"))}else{b.host.addClass(b.toThemeProperty("jqx-formatted-input-lower-case"))}if(b._spinButtonsContainer){b._spinButtonsContainer.removeClass(b.toThemeProperty("jqx-fill-state-disabled"))}}else{b.host.removeClass(b.toThemeProperty("jqx-formatted-input-upper-case jqx-formatted-input-lower-case"));if(b._spinButtonsContainer){b._spinButtonsContainer.addClass(b.toThemeProperty("jqx-fill-state-disabled"))}}},_getCaretPosition:function(b){var d=0;if(document.selection){b.focus();var c=document.selection.createRange();c.moveStart("character",-b.value.length);d=c.text.length}else{if(b.selectionStart||b.selectionStart==="0"){d=b.selectionStart}}return(d)},onBlur:function(){var b=this;if(b._opened){b.close()}b._setMaxLength();b._inputAndAddon.removeClass(b.toThemeProperty("jqx-fill-state-focus"));b._change();if(b._radixNumber===10&&b.decimalNotation==="exponential"){b.element.value=b._getDecimalNotation("exponential")}b._refreshPlaceHolder()},onFocus:function(){var b=this;b._setMaxLength(true);b._inputAndAddon.addClass(b.toThemeProperty("jqx-fill-state-focus"));if(b._radixNumber===10&&b.decimalNotation==="exponential"){b.element.value=b._number.toString(10)}},click:function(c){c.stopPropagation();c.preventDefault();var b=a(c.target).attr("data-value");this.select(c,this,b)},mouseenter:function(b){this.$popup.find(".jqx-fill-state-pressed").removeClass(this.toThemeProperty("jqx-fill-state-pressed"));a(b.currentTarget).addClass(this.toThemeProperty("jqx-fill-state-pressed"))},_change:function(){var c=this;var b=c.value;var d=c._validateValue(c.element.value,true);c._inputAndAddon.removeClass(c.toThemeProperty("jqx-input-invalid"));if(d.toUpperCase()!==b.toString().toUpperCase()){c._raiseEvent("2",{value:d,oldValue:b,radix:c._radixNumber});c.value=d}},_getRadix:function(b){switch(b){case 10:case"decimal":return 10;case 2:case"binary":return 2;case 8:case"octal":return 8;case 16:case"hexadecimal":return 16}},_setPopupOptions:function(){var b=this;b._popupOptions=new Array();if(b.value!==""){b._popupOptions.push(b._number.toString(2)+" (BIN)");b._popupOptions.push(b._number.toString(8)+" (OCT)");b._popupOptions.push(b._number.toString(10)+" (DEC)");b._popupOptions.push(b._number.toString(16)+" (HEX)")}else{b._popupOptions.push("BIN");b._popupOptions.push("OCT");b._popupOptions.push("DEC");b._popupOptions.push("HEX")}},_validateValue:function(e,g){var d=this;if(e!==""){var f=new d.longObj.math.Long.fromString((e).toString(),d._radixNumber);if(f.lessThan(d._minLong)){if(g){d._number=d._minLong;var c=d._minLong.toString(d._radixNumber);if(d._radixNumber===16&&d.upperCase===true){c=c.toUpperCase()}d.element.value=c;return c}else{return false}}else{if(f.greaterThan(d._maxLong)){if(g){d._number=d._maxLong;var b=d._maxLong.toString(d._radixNumber);if(d._radixNumber===16&&d.upperCase===true){b=b.toUpperCase()}d.element.value=b;return b}else{return false}}else{if(g){d._number=f;d.element.value=e;return e}else{return true}}}}else{if(g){d.element.value="";return e}else{return true}}},_getNegativeDecimal:function(l,h){var o=l;if(h===8){var n=new Array();for(var f=0;f<11;f++){var b=parseInt(l.charAt(f),8).toString(2);while(b.length!==3){b="0"+b}n.push(b)}o=n.join("");if(o.charAt(0)==="0"){o=o.slice(1)}}else{if(h===16){var p=new Array();for(var e=0;e<8;e++){var m=parseInt(l.charAt(e),16).toString(2);while(m.length!==4){m="0"+m}p.push(m)}o=p.join("")}}var d="";for(var c=0;c=0){k=k.toFixed(j)}var i=k+"×10"+e._toSuperScript((parseInt(m,10)-l).toString());return i}var g=h(f);if(c==="scientific"){return d(g)}else{if(c==="engineering"){return b(g)}else{return g}}},_toSuperScript:function(h,g){var f="-0123456789";var d="⁻⁰¹²³⁴⁵⁶⁷⁸⁹";var c="";for(var e=0;e=0;n--){var q=s.charAt(n);var b;if(q==="0"){if(d===true){b="1";d=false}else{b="0"}}else{if(d===true){b="0"}else{b="1"}}g=b+""+g}switch(r){case 2:return g;case 8:g="00"+g;var f="";for(var m=22;m>=1;m--){var p=g[m*3-3]+""+g[m*3-2]+""+g[m*3-1];f=parseInt(p,2).toString(8)+""+f}return f;case 16:var e="";for(var h=16;h>=1;h--){var c=g[h*4-4]+""+g[h*4-3]+""+g[h*4-2]+""+g[h*4-1];e=parseInt(c,2).toString(16)+""+e}return e}},_Long:function(){var c=this;c.longObj=new Object();var b=c.longObj;b.math=new Object();b.math.Long=new Object();b.math.Long=function(d,e){this.lowBits=d|0;this.highBits=e|0};b.math.Long.IntCache={};b.math.Long.fromInt=function(d){if(-128<=d&&d<128){var f=b.math.Long.IntCache[d];if(f){return f}}var e=new b.math.Long(d|0,d<0?-1:0);if(-128<=d&&d<128){b.math.Long.IntCache[d]=e}return e};b.math.Long.fromNumber=function(d){if(isNaN(d)||!isFinite(d)){return b.math.Long.ZERO}else{if(d<=-b.math.Long.TWO_PWR_63_DBL_){return b.math.Long.MIN_VALUE}else{if(d+1>=b.math.Long.TWO_PWR_63_DBL_){return b.math.Long.MAX_VALUE}else{if(d<0){return b.math.Long.fromNumber(-d).negate()}else{return new b.math.Long((d%b.math.Long.TWO_PWR_32_DBL_)|0,(d/b.math.Long.TWO_PWR_32_DBL_)|0)}}}}};b.math.Long.fromBits=function(d,e){return new b.math.Long(d,e)};b.math.Long.fromString=function(f,j){if(f.length===0){throw new Error("number format error: empty string")}var g=j||10;if(g<2||36=0){throw new Error('number format error: interior "-" character: '+f)}}var k=b.math.Long.fromNumber(Math.pow(g,8));var m=b.math.Long.ZERO;for(var e=0;e=0)?this.lowBits:b.math.Long.TWO_PWR_32_DBL_+this.lowBits};b.math.Long.prototype.getNumBitsAbs=function(){if(this.isNegative()){if(this.equals(b.math.Long.MIN_VALUE)){return 64}else{return this.negate().getNumBitsAbs()}}else{var e=this.highBits!==0?this.highBits:this.lowBits;for(var d=31;d>0;d--){if((e&(1<0};b.math.Long.prototype.greaterThanOrEqual=function(d){return this.compare(d)>=0};b.math.Long.prototype.compare=function(e){if(this.equals(e)){return 0}var d=this.isNegative();var f=e.isNegative();if(d&&!f){return -1}if(!d&&f){return 1}if(this.subtract(e).isNegative()){return -1}else{return 1}};b.math.Long.prototype.negate=function(){if(this.equals(b.math.Long.MIN_VALUE)){return b.math.Long.MIN_VALUE}else{return this.not().add(b.math.Long.ONE)}};b.math.Long.prototype.add=function(k){var i=this.highBits>>>16;var e=this.highBits&65535;var l=this.lowBits>>>16;var f=this.lowBits&65535;var n=k.highBits>>>16;var g=k.highBits&65535;var o=k.lowBits>>>16;var h=k.lowBits&65535;var p=0,j=0,d=0,m=0;m+=f+h;d+=m>>>16;m&=65535;d+=l+o;j+=d>>>16;d&=65535;j+=e+g;p+=j>>>16;j&=65535;p+=i+n;p&=65535;return b.math.Long.fromBits((d<<16)|m,(p<<16)|j)};b.math.Long.prototype.subtract=function(d){return this.add(d.negate())};b.math.Long.prototype.multiply=function(k){if(this.isZero()){return b.math.Long.ZERO}else{if(k.isZero()){return b.math.Long.ZERO}}if(this.equals(b.math.Long.MIN_VALUE)){return k.isOdd()?b.math.Long.MIN_VALUE:b.math.Long.ZERO}else{if(k.equals(b.math.Long.MIN_VALUE)){return this.isOdd()?b.math.Long.MIN_VALUE:b.math.Long.ZERO}}if(this.isNegative()){if(k.isNegative()){return this.negate().multiply(k.negate())}else{return this.negate().multiply(k).negate()}}else{if(k.isNegative()){return this.multiply(k.negate()).negate()}}if(this.lessThan(b.math.Long.TWO_PWR_24_)&&k.lessThan(b.math.Long.TWO_PWR_24_)){return b.math.Long.fromNumber(this.toNumber()*k.toNumber())}var i=this.highBits>>>16;var e=this.highBits&65535;var l=this.lowBits>>>16;var f=this.lowBits&65535;var n=k.highBits>>>16;var g=k.highBits&65535;var o=k.lowBits>>>16;var h=k.lowBits&65535;var p=0,j=0,d=0,m=0;m+=f*h;d+=m>>>16;m&=65535;d+=l*h;j+=d>>>16;d&=65535;d+=f*o;j+=d>>>16;d&=65535;j+=e*h;p+=j>>>16;j&=65535;j+=l*o;p+=j>>>16;j&=65535;j+=f*g;p+=j>>>16;j&=65535;p+=i*h+e*o+l*g+f*n;p&=65535;return b.math.Long.fromBits((d<<16)|m,(p<<16)|j)};b.math.Long.prototype.div=function(f){if(f.isZero()){throw new Error("division by zero")}else{if(this.isZero()){return b.math.Long.ZERO}}var i,k;if(this.equals(b.math.Long.MIN_VALUE)){if(f.equals(b.math.Long.ONE)||f.equals(b.math.Long.NEG_ONE)){return b.math.Long.MIN_VALUE}else{if(f.equals(b.math.Long.MIN_VALUE)){return b.math.Long.ONE}else{var d=this.shiftRight(1);i=d.div(f).shiftLeft(1);if(i.equals(b.math.Long.ZERO)){return f.isNegative()?b.math.Long.ONE:b.math.Long.NEG_ONE}else{k=this.subtract(f.multiply(i));var m=i.add(k.div(f));return m}}}}else{if(f.equals(b.math.Long.MIN_VALUE)){return b.math.Long.ZERO}}if(this.isNegative()){if(f.isNegative()){return this.negate().div(f.negate())}else{return this.negate().div(f).negate()}}else{if(f.isNegative()){return this.div(f.negate()).negate()}}var g=b.math.Long.ZERO;k=this;while(k.greaterThanOrEqual(f)){i=Math.max(1,Math.floor(k.toNumber()/f.toNumber()));var l=Math.ceil(Math.log(i)/Math.LN2);var j=(l<=48)?1:Math.pow(2,l-48);var e=b.math.Long.fromNumber(i);var h=e.multiply(f);while(h.isNegative()||h.greaterThan(k)){i-=j;e=b.math.Long.fromNumber(i);h=e.multiply(f)}if(e.isZero()){e=b.math.Long.ONE}g=g.add(e);k=k.subtract(h)}return g};b.math.Long.prototype.modulo=function(d){return this.subtract(this.div(d).multiply(d))};b.math.Long.prototype.not=function(){return b.math.Long.fromBits(~this.lowBits,~this.highBits)};b.math.Long.prototype.and=function(d){return b.math.Long.fromBits(this.lowBits&d.lowBits,this.highBits&d.highBits)};b.math.Long.prototype.or=function(d){return b.math.Long.fromBits(this.lowBits|d.lowBits,this.highBits|d.highBits)};b.math.Long.prototype.xor=function(d){return b.math.Long.fromBits(this.lowBits^d.lowBits,this.highBits^d.highBits)};b.math.Long.prototype.shiftLeft=function(f){f&=63;if(f===0){return this}else{var d=this.lowBits;if(f<32){var e=this.highBits;return b.math.Long.fromBits(d<>>(32-f)))}else{return b.math.Long.fromBits(0,d<<(f-32))}}};b.math.Long.prototype.shiftRight=function(f){f&=63;if(f===0){return this}else{var e=this.highBits;if(f<32){var d=this.lowBits;return b.math.Long.fromBits((d>>>f)|(e<<(32-f)),e>>f)}else{return b.math.Long.fromBits(e>>(f-32),e>=0?0:-1)}}};b.math.Long.prototype.shiftRightUnsigned=function(f){f&=63;if(f===0){return this}else{var e=this.highBits;if(f<32){var d=this.lowBits;return b.math.Long.fromBits((d>>>f)|(e<<(32-f)),e>>>f)}else{if(f===32){return b.math.Long.fromBits(e,0)}else{return b.math.Long.fromBits(e>>>(f-32),0)}}}}}})})(jqxBaseFramework);(function(a){a.jqx.jqxWidget("jqxRibbon","",{});a.extend(a.jqx._jqxRibbon.prototype,{defineInstance:function(){var b={width:null,height:"auto",mode:"default",position:"top",selectedIndex:-1,selectionMode:"click",popupCloseMode:"click",animationType:"fade",animationDelay:400,scrollPosition:"both",disabled:false,rtl:false,scrollStep:10,scrollDelay:30,reorder:false,initContent:null,_roundedCorners:true,_removeByDrag:false,events:["select","unselect","change","_removeByDrag","reorder"]};a.extend(true,this,b)},createInstance:function(){var b=this;b._browser=a.jqx.browser;if(b.mode!=="popup"&&b.selectedIndex===-1){b.selectedIndex=0}b._originalHTML=b.host.html();b._render(true)},render:function(){this._render()},refresh:function(b){if(b!==true){this._render()}},destroy:function(){var b=this;b._removeHandlers();b.host.remove()},selectAt:function(b){this._selectAt(b)},clearSelection:function(){this._clearSelection()},disableAt:function(b){var c=this;c._items[b]._disabled=true;a(c._items[b]).addClass(c.toThemeProperty("jqx-fill-state-disabled"));if(b===c.selectedIndex){c._clearSelection()}},enableAt:function(b){var c=this;c._items[b]._disabled=false;a(c._items[b]).removeClass(c.toThemeProperty("jqx-fill-state-disabled"))},hideAt:function(b){var c=this;a(c._items[b]).css("display","none");c._checkScrollButtons();if(b===c.selectedIndex){c._clearSelection()}else{c._updatePositions()}},showAt:function(b){var c=this;if(c._orientation==="horizontal"){a(c._items[b]).css("display","inline-block")}else{a(c._items[b]).css("display","inherit")}c._checkScrollButtons();c._updatePositions()},val:function(b){var c=this;if(b){c._selectAt(b)}else{return c.selectedIndex}},addAt:function(b,e){var c=this;c._removeHandlers();var f=a('
  • '+e.title+"
  • ");var d=a('
    ');d.append(e.content);switch(c.position){case"top":f.addClass(c.toThemeProperty("jqx-rc-t"));d.addClass(c.toThemeProperty("jqx-rc-b"));break;case"bottom":f.addClass(c.toThemeProperty("jqx-rc-b"));d.addClass(c.toThemeProperty("jqx-rc-t"));break;case"left":f.addClass(c.toThemeProperty("jqx-rc-l"));d.addClass(c.toThemeProperty("jqx-rc-r"));break;case"right":f.addClass(c.toThemeProperty("jqx-rc-r"));d.addClass(c.toThemeProperty("jqx-rc-l"));break}if(c.mode==="popup"){d.addClass(c.toThemeProperty("jqx-ribbon-content-section-popup"));if(c._orientation==="horizontal"){d.addClass(c.toThemeProperty("jqx-ribbon-content-section-horizontal-popup"))}else{d.addClass(c.toThemeProperty("jqx-ribbon-content-section-vertical-popup"))}}if(c.rtl===true){f.addClass(c.toThemeProperty("jqx-ribbon-item-rtl"))}if(c._items.length-1>=b){a(c._items[b]).before(f);a(c._contentSections[b]).before(d)}else{c._header.append(f);c._content.append(d)}c._updateItems();c._addHandlers();c._checkScrollButtons();if(b<=c.selectedIndex){c.selectedIndex++}c._updatePositions()},removeAt:function(b){var c=this;if(b===c.selectedIndex){c._clearSelection()}a(c._items[b]).add(c._contentSections[b]).remove();c._updateItems();c._updatePositions()},updateAt:function(b,c){var d=this;a(d._items[b]).html(c.newTitle);a(d._contentSections[b]).html(c.newContent);d._items[b]._isInitialized=false;if(d.initContent&&b===d.selectedIndex){d.initContent(b);d._items[b]._isInitialized=true}d._updatePositions()},setPopupLayout:function(c,f,d,b){var e=this;if(e.mode==="popup"){if(!a(e._contentSections[c]).attr("data-width")){if(a(e._contentSections[c])[0].style.width){a(e._contentSections[c]).attr("data-width",a(e._contentSections[c])[0].style.width)}if(a(e._contentSections[c])[0].style.height){a(e._contentSections[c]).attr("data-height",a(e._contentSections[c])[0].style.height)}}if(d){a(e._contentSections[c]).css("width",d)}if(b){a(e._contentSections[c]).css("height",b)}e._contentSections[c]._layout=f;e._positionContent(c)}},propertyChangedHandler:function(c,d,f,e){if(e!==f){switch(d){case"width":case"height":c.host.css(d,e);c._updateSize();break;case"position":c._render();break;case"mode":c._content.width("auto");c._removeHandlers(null,f);c._render();break;case"selectedIndex":c._selectAt(e,f);break;case"selectionMode":c._removeHandlers(f);c._addHandlers();break;case"scrollPosition":c._scrollButtons.removeClass(c.toThemeProperty("jqx-ribbon-scrollbutton-"+f));c._scrollButtons.addClass(c.toThemeProperty("jqx-ribbon-scrollbutton-"+e));var b=a(c._scrollButtons[0]);var g=a(c._scrollButtons[1]);c._scrollButtons.removeClass(c.toThemeProperty("jqx-rc-tr"));c._scrollButtons.removeClass(c.toThemeProperty("jqx-rc-bl"));b.removeClass(c.toThemeProperty("jqx-rc-tl"));g.removeClass(c.toThemeProperty("jqx-rc-br"));c._scrollButtonRc(b,g);c._checkScrollButtons();c._updatePositions();break;case"disabled":if(e===true){c._removeHandlers();c.host.addClass(c.toThemeProperty("jqx-fill-state-disabled"))}else{c.host.removeClass(c.toThemeProperty("jqx-fill-state-disabled"));c._addHandlers()}break;case"theme":a.jqx.utilities.setTheme(f,e,c.host);break;case"rtl":if(e===true){c._header.addClass(c.toThemeProperty("jqx-ribbon-header-rtl"));c._items.addClass(c.toThemeProperty("jqx-ribbon-item-rtl"))}else{c._header.removeClass(c.toThemeProperty("jqx-ribbon-header-rtl"));c._items.removeClass(c.toThemeProperty("jqx-ribbon-item-rtl"))}c._positionSelectionToken(c.selectedIndex);break}}},_raiseEvent:function(g,e){var c=this.events[g];var f=new jQuery.Event(c);f.owner=this;f.args=e;var b;try{b=this.host.trigger(f)}catch(d){}return b},_render:function(c){var d=this;if(c!==true){d._removeHandlers()}d._selectionTokenOffsetY=0;switch(d._browser.browser){case"mozilla":d._browserWidthRtlFlag=0;d._browserScrollRtlFlag=1;d._selectionTokenOffsetX=1;break;case"msie":d._browserWidthRtlFlag=0;d._browserScrollRtlFlag=-1;if(d._browser.version==="8.0"){d._selectionTokenOffsetX=1}else{if(d._browser.version==="7.0"){d._selectionTokenOffsetX=0;if(d.mode==="popup"&&(d.position==="bottom"||d.position==="right")){d._selectionTokenOffsetY=2}}else{d._selectionTokenOffsetX=0}}break;default:d._browserWidthRtlFlag=1;d._browserScrollRtlFlag=1;d._selectionTokenOffsetX=0}if(c===true){var b=d.host.children();d._header=a(b[0]);d._content=a(b[1]);d._checkStructure(b)}d._header.css("float","none");d._content.css("padding","0px");d.host.width(d.width);d.host.height(d.height);if(d.position==="bottom"||d.position==="right"){d._content.after(d._header)}if(d.position==="top"||d.position==="bottom"){d._orientation="horizontal"}else{d._orientation="vertical"}if(d.position==="right"){d._header.css("float","right")}else{if(d.position==="left"){d._header.css("float","left")}}d._contentSections=d._content.children();a.each(d._contentSections,function(){if(a(this).attr("data-width")!==undefined){a(this).css("width",a(this).attr("data-width"));a(this).css("height",a(this).attr("data-height"));a(this).removeAttr("data-width");a(this).removeAttr("data-height")}});if(c===true){d._selectionToken=a('
    ');d.host.append(d._selectionToken)}d._updateItems();d._addClasses();if(c===true){d._appendScrollButtons();d._checkScrollButtons()}d._allowSelection=true;if(d.selectedIndex!==-1){a(d._items[d.selectedIndex]).addClass(d.toThemeProperty("jqx-widget-content")).addClass(d.toThemeProperty("jqx-ribbon-item-selected"));d._positionSelectionToken(d.selectedIndex);a(d._contentSections[d.selectedIndex]).css("display","block");if(d.initContent){d.initContent(d.selectedIndex);d._items[d.selectedIndex]._isInitialized=true}}if(!d.disabled){d._addHandlers()}else{d.host.addClass(d.toThemeProperty("jqx-fill-state-disabled"))}a.jqx.utilities.resize(d.host,function(){d._updateSize()})},_updateSize:function(){var b=this;if(b._browser.version==="7.0"&&b._browser.browser==="msie"){if(b._orientation==="horizontal"){b._header.css("width",(b.host.width()-parseInt(b._header.css("padding-left"),10)-parseInt(b._header.css("padding-right"),10)-parseInt(b._header.css("border-left-width"),10)-parseInt(b._header.css("border-right-width"),10)));b._contentSections.width(b._content.width()-parseInt(b._contentSections.css("border-left-width"),10)-parseInt(b._contentSections.css("border-right-width"),10)-parseInt(b._contentSections.css("padding-left"),10)-parseInt(b._contentSections.css("padding-right"),10));if(b.mode==="default"&&typeof b.height==="string"&&b.height.indexOf("%")!==-1){b._contentSections.height(b._content.height()-b._header.height()-parseInt(b._contentSections.css("border-bottom-width"),10)-parseInt(b._contentSections.css("border-top-width"),10)-1)}}else{b._header.css("height",(b.host.height()-parseInt(b._header.css("padding-top"),10)-parseInt(b._header.css("padding-bottom"),10)-parseInt(b._header.css("border-top-width"),10)-parseInt(b._header.css("border-bottom-width"),10)));b._contentSections.height(b._content.height()-parseInt(b._contentSections.css("border-top-width"),10)-parseInt(b._contentSections.css("border-bottom-width"),10)-parseInt(b._contentSections.css("padding-top"),10)-parseInt(b._contentSections.css("padding-bottom"),10));if(b.mode==="default"&&typeof b.width==="string"&&b.height.indexOf("%")!==-1){var c=b.position==="left"?parseInt(b._contentSections.css("border-left-width"),10)+parseInt(b._contentSections.css("border-right-width"),10)+1:0;b._contentSections.width(b._content.width()-b._header.width()-c)}}}b._checkScrollButtons(true);b._updatePositions();if(b.mode==="popup"){b._positionPopup()}},_stopAnimation:function(){var b=this;if(!b._allowSelection){b.selectedIndex=b._animatingIndex;a(b._contentSections[b._animatingIndex]).finish();b._clearSelection(true,b._animatingIndex);b._allowSelection=true}},_selectAt:function(b,e){var c=this;if(e===undefined){e=c.selectedIndex}if(b!==e){c._stopAnimation();if(c._allowSelection){c._animatingIndex=b;c._clearSelection(true,e);c._allowSelection=false;c._selecting=b;if(c.selectionMode==="click"){a(c._items[b]).removeClass(c.toThemeProperty("jqx-fill-state-hover"));a(c._items[b]).removeClass(c.toThemeProperty("jqx-ribbon-item-hover"))}if(c.mode==="popup"&&c._roundedCorners){c._header.removeClass(c.toThemeProperty("jqx-rc-all"));switch(c.position){case"top":c._header.add(c._items).addClass(c.toThemeProperty("jqx-rc-t"));c._contentSections.addClass(c.toThemeProperty("jqx-rc-b"));break;case"bottom":c._header.add(c._items).addClass(c.toThemeProperty("jqx-rc-b"));c._contentSections.addClass(c.toThemeProperty("jqx-rc-t"));break;case"left":c._header.add(c._items).addClass(c.toThemeProperty("jqx-rc-l"));c._contentSections.addClass(c.toThemeProperty("jqx-rc-r"));break;case"right":c._header.add(c._items).addClass(c.toThemeProperty("jqx-rc-r"));c._contentSections.addClass(c.toThemeProperty("jqx-rc-l"));break}}a(c._items[b]).addClass(c.toThemeProperty("jqx-widget-content")).addClass(c.toThemeProperty("jqx-ribbon-item-selected"));c._selectionToken.css("display","block");c._updatePositions(b);switch(c.animationType){case"fade":a(c._contentSections[b]).fadeToggle(c.animationDelay,function(){c._animationComplete(b,e)});break;case"slide":var d=c.position;if(d==="top"){d="up"}else{if(d==="bottom"){d="down"}}c.slideAnimation=c._slide(a(c._contentSections[b]),{mode:"show",direction:d,duration:c.animationDelay},b,e);break;case"none":a(c._contentSections[b]).css("display","block");c._animationComplete(b,e);break}}else{}}},_clearSelection:function(b,e){var c=this;if(c.mode==="popup"){if(c._roundedCorners){c._header.addClass(c.toThemeProperty("jqx-rc-all"))}}c._selecting=-1;if(e===undefined){e=c.selectedIndex}a(c._items[e]).removeClass(c.toThemeProperty("jqx-widget-content")).removeClass(c.toThemeProperty("jqx-ribbon-item-selected"));c._selectionToken.css("display","none");if(b!==true&&c.animationType!=="none"){if(c.animationType==="fade"){a(c._contentSections[e]).fadeOut(c.animationDelay,function(){c._clearSelectionComplete(e)})}else{if(c.animationType==="slide"){var d=c.position;if(d==="top"){d="up"}else{if(d==="bottom"){d="down"}}c._stopAnimation();e=c.selectedIndex;c.slideAnimation=c._slide(a(c._contentSections[e]),{mode:"hide",direction:d,duration:c.animationDelay},e);c.selectedIndex=-1}}}else{a(c._contentSections[e]).css("display","none");c._clearSelectionComplete(e,b)}},_addHandlers:function(){var g=this,b=g.element.id;var i=function(m){if(g.popupCloseMode==="click"&&g.mode==="popup"){if(m.target.tagName==="svg"){return}var l=a(m.target).closest(".jqx-ribbon");if(l.length>0&&l.attr("id")!==b){g._clearSelection();return}if(m.target.className.indexOf("jqx-ribbon-content-popup")!==-1){g._clearSelection();return}if(a(m.target).ischildof(g.host)){return}var k=false;a.each(a(m.target).parents(),function(){if(this.className!==undefined){if(this.className.indexOf){if(this.className.indexOf("jqx-ribbon")!==-1){k=true;return false}if(this.className.indexOf("jqx-ribbon")!==-1){if(b===this.id){k=true}return false}}}});if(!k){g._clearSelection()}}};if(g.selectionMode==="click"){g.addHandler(g._items,"click.ribbon"+b,function(l){var m=a(l.target).closest("li")[0],k=m._index;if(!g._items[k]._disabled){if(k!==g.selectedIndex){g._selectAt(k)}else{if(g.mode==="popup"){if(g.popupCloseMode!=="none"){a(m).addClass(g.toThemeProperty("jqx-fill-state-hover"));a(m).addClass(g.toThemeProperty("jqx-ribbon-item-hover"));g._clearSelection()}}}}});var d=function(k){return((g._selecting!==k&&g._allowSelection===false)||((g._selecting===-1||g.selectedIndex!==k)&&g._allowSelection===true))&&!g._items[k]._disabled};g.addHandler(g._items,"mouseenter.ribbon"+b,function(k){var l=a(k.target).closest("li")[0];if(d(l._index)){a(l).addClass(g.toThemeProperty("jqx-fill-state-hover"));a(l).addClass(g.toThemeProperty("jqx-ribbon-item-hover"))}});g.addHandler(g._items,"mouseleave.ribbon"+b,function(k){var l=a(k.target).closest("li")[0];if(d(l._index)){a(l).removeClass(g.toThemeProperty("jqx-fill-state-hover"));a(l).removeClass(g.toThemeProperty("jqx-ribbon-item-hover"))}});if(g.mode==="popup"){g.addHandler(g.host,"mouseleave.ribbon"+b,function(){if(g.popupCloseMode==="mouseLeave"&&g.mode==="popup"){g._clearSelection()}});g.addHandler(g._contentSections,"mouseleave.ribbon"+b,function(){if(g.popupCloseMode==="mouseLeave"&&g.mode==="popup"){g._clearSelection()}});g.addHandler(a(document),"mousedown.ribbon"+b,function(k){i(k)})}var j=false,e;if(g._removeByDrag===true){g._items.addClass(g.toThemeProperty("jqx-ribbon-item-docking-layout"))}g.addHandler(g._items,"mousedown.ribbon"+b,function(k){var l=a(k.target).closest("li")[0];if((g.reorder===true||g._removeByDrag===true)&&l._index===g.selectedIndex){j=true;e=l._index;l.style.cursor="move"}});g.addHandler(g.host,"mouseup.ribbon"+b,function(){j=false;g._items.css("cursor","")});g.addHandler(g._items,"mouseenter.ribbon"+b,function(n){if(g.reorder===true&&j===true){var l=a(n.target).closest("li")[0]._index,m=a(g._items[e]).html(),k=a(g._contentSections[e]).contents().detach();g._supressSelectionEvents=true;g._oldReorderIndex=e;g.removeAt(e);g.clearSelection();g.addAt(l,{title:m,content:k});g.selectAt(l);setTimeout(function(){a(g._items[l]).mousedown()},0)}});g.addHandler(g._header,"mouseleave.ribbon"+b,function(k){if(g._removeByDrag===true&&j===true){g._raiseEvent("3",{draggedIndex:e,x:k.pageX,y:k.pageY});if(g._items.length>1){g.removeAt(e)}j=false;k.target.style.cursor=""}})}else{if(g.selectionMode==="hover"){g.addHandler(g._items,"mouseenter.ribbon"+b,function(l){var k=a(l.target).closest("li")[0]._index;if(!g._items[k]._disabled&&k!==g.selectedIndex){g._selectAt(k)}});if(g.mode==="popup"){g.addHandler(g.host,"mouseleave.ribbon"+b,function(){if(g.popupCloseMode==="mouseLeave"&&g.mode==="popup"){g._clearSelection()}});g.addHandler(g._contentSections,"mouseleave.ribbon"+b,function(){if(g.popupCloseMode==="mouseLeave"&&g.mode==="popup"){g._clearSelection()}});g.addHandler(a(document),"mousedown.ribbon"+b,function(k){i(k)});g.addHandler(g._items,"click.ribbon"+b,function(l){var k=a(l.target).closest("li")[0]._index;if(!g._items[k]._disabled){if(g.mode==="popup"){if(g.popupCloseMode!=="none"){g._clearSelection()}}}})}}}var h=(g.rtl&&g._browser.browser==="msie")?-1:1;var c=a(g._scrollButtons[0]);g.addHandler(c,"mousedown.ribbon"+b,function(){if(g._orientation==="horizontal"){g._timeoutNear=setInterval(function(){var k=g._header.scrollLeft();g._header.scrollLeft(k-g.scrollStep*h);g._updatePositions()},g.scrollDelay)}else{g._timeoutNear=setInterval(function(){var k=g._header.scrollTop();g._header.scrollTop(k-g.scrollStep);g._updatePositions()},g.scrollDelay)}return false});g.addHandler(c,"mouseup.ribbon"+b,function(){clearInterval(g._timeoutNear)});var f=a(g._scrollButtons[1]);g.addHandler(f,"mousedown.ribbon"+b,function(){if(g._orientation==="horizontal"){g._timeoutFar=setInterval(function(){var k=g._header.scrollLeft();g._header.scrollLeft(k+g.scrollStep*h);g._updatePositions()},g.scrollDelay)}else{g._timeoutFar=setInterval(function(){var k=g._header.scrollTop();g._header.scrollTop(k+g.scrollStep);g._updatePositions()},g.scrollDelay)}return false});g.addHandler(f,"mouseup.ribbon"+b,function(){clearInterval(g._timeoutFar)})},_removeHandlers:function(f,e){var c=this,g=c.element.id;if(!f){f=c.selectionMode}if(!e){e=c.mode}c.removeHandler(c._items,"mouseenter.ribbon"+g);if(f==="click"){c.removeHandler(c._items,"click.ribbon"+g);c.removeHandler(c._items,"mouseleave.ribbon"+g);c.removeHandler(c._items,"mousedown.ribbon"+g);c.removeHandler(c.host,"mouseup.ribbon"+g);c.removeHandler(c._header,"mouseleave.ribbon"+g)}else{if(f==="hover"){if(e==="popup"){c.removeHandler(c.host,"mouseleave.ribbon"+g)}}}var b=a(c._scrollButtons[0]);c.removeHandler(b,"mousedown.ribbon"+g);c.removeHandler(b,"mouseup.ribbon"+g);var d=a(c._scrollButtons[1]);c.removeHandler(d,"mousedown.ribbon"+g);c.removeHandler(d,"mouseup.ribbon"+g)},_checkStructure:function(c){var d=this;var f=c.length;if(f!==2){throw new Error("jqxRibbon: Invalid HTML structure. You need to add a ul and a div to the widget container.")}var b=d._header.children().length;var e=d._content.children().length;if(b!==e){throw new Error("jqxRibbon: Invalid HTML structure. For each list item you must have a corresponding div element.")}},_addClasses:function(){var d=this;d._contentSections.removeClass();d._content.removeClass();d._header.removeClass(d.toThemeProperty("jqx-rc-all jqx-widget-header jqx-disableselect jqx-rc-t jqx-rc-b jqx-rc-l jqx-rc-r jqx-rc-all jqx-ribbon-header-"+d._orientation+"-popup jqx-ribbon-header-bottom jqx-ribbon-header-auto jqx-ribbon-header-right jqx-ribbon-header-rtl"));d._items.removeClass(d.toThemeProperty("jqx-fill-state-disabled jqx-ribbon-item-rtl jqx-widget-content jqx-ribbon-item-selected jqx-rc-t jqx-rc-b jqx-rc-l jqx-rc-r jqx-ribbon-item-docking-layout jqx-ribbon-item jqx-ribbon-item-"+d.position));d.host.removeClass();d.host.addClass(d.toThemeProperty("jqx-widget")+" "+d.toThemeProperty("jqx-ribbon"));d._header.addClass(d.toThemeProperty("jqx-widget-header")+" "+d.toThemeProperty("jqx-disableselect")+" "+d.toThemeProperty("jqx-ribbon-header")+" "+d.toThemeProperty("jqx-ribbon-header-"+d._orientation));d._items.addClass(d.toThemeProperty("jqx-ribbon-item")+" "+d.toThemeProperty("jqx-ribbon-item-"+d.position));d._content.addClass(d.toThemeProperty("jqx-widget-content")+" "+d.toThemeProperty("jqx-ribbon-content")+" "+d.toThemeProperty("jqx-ribbon-content-"+d._orientation));d._contentSections.addClass(d.toThemeProperty("jqx-widget-content")+" "+d.toThemeProperty("jqx-ribbon-content-section")+" "+d.toThemeProperty("jqx-ribbon-content-section-"+d.position));if(d._roundedCorners){switch(d.position){case"top":d._header.add(d._items).addClass(d.toThemeProperty("jqx-rc-t"));d._contentSections.addClass(d.toThemeProperty("jqx-rc-b"));break;case"bottom":d._header.add(d._items).addClass(d.toThemeProperty("jqx-rc-b"));d._contentSections.addClass(d.toThemeProperty("jqx-rc-t"));break;case"left":d._header.add(d._items).addClass(d.toThemeProperty("jqx-rc-l"));d._contentSections.addClass(d.toThemeProperty("jqx-rc-r"));break;case"right":d._header.add(d._items).addClass(d.toThemeProperty("jqx-rc-r"));d._contentSections.addClass(d.toThemeProperty("jqx-rc-l"));break}}else{switch(d.position){case"top":d._items.addClass(d.toThemeProperty("jqx-rc-t"));break;case"bottom":d._items.addClass(d.toThemeProperty("jqx-rc-b"));break;case"left":d._items.addClass(d.toThemeProperty("jqx-rc-l"));break;case"right":d._items.addClass(d.toThemeProperty("jqx-rc-r"));break}}var c,b;if(d.mode==="popup"){if(d.selectedIndex===-1){if(d._roundedCorners){d.host.addClass(d.toThemeProperty("jqx-rc-all"));d._header.addClass(d.toThemeProperty("jqx-rc-all"))}}d.host.addClass(d.toThemeProperty("jqx-ribbon-popup"));d._header.addClass(d.toThemeProperty("jqx-ribbon-header-"+d._orientation+"-popup"));d._content.addClass(d.toThemeProperty("jqx-ribbon-content-popup"));d._contentSections.addClass(d.toThemeProperty("jqx-ribbon-content-section-popup"));d._contentSections.addClass(d.toThemeProperty("jqx-ribbon-content-popup-"+d.position));if(d._orientation==="horizontal"){d._contentSections.addClass(d.toThemeProperty("jqx-ribbon-content-section-horizontal-popup"))}else{d._contentSections.addClass(d.toThemeProperty("jqx-ribbon-content-section-vertical-popup"))}d._positionPopup()}else{if(d._orientation==="horizontal"){if(d.height!=="auto"){b=d._header.outerHeight();if(d.position==="top"){d._content.css("padding-top",b)}else{d._header.addClass(d.toThemeProperty("jqx-ribbon-header-bottom"));d._content.css("padding-bottom",b)}}else{d._header.addClass(d.toThemeProperty("jqx-ribbon-header-auto"))}}else{if(d._orientation==="vertical"){if(d.width!=="auto"){c=d._header.outerWidth();if(d.position==="left"){d._content.css("padding-left",c)}else{d._header.addClass(d.toThemeProperty("jqx-ribbon-header-right"));d._content.css("padding-right",c)}}else{d.host.addClass(d.toThemeProperty("jqx-ribbon-auto"));d._header.addClass(d.toThemeProperty("jqx-ribbon-header-auto"));d._content.addClass(d.toThemeProperty("jqx-ribbon-content-auto-width"))}}}}if(d._browser.version==="7.0"&&d._browser.browser==="msie"){if(d._orientation==="horizontal"){d._header.css("width",(d.host.width()-parseInt(d._header.css("padding-left"),10)-parseInt(d._header.css("padding-right"),10)-parseInt(d._header.css("border-left-width"),10)-parseInt(d._header.css("border-right-width"),10)));d._items.height(d._items.height()-parseInt(d._items.css("padding-top"),10)-parseInt(d._items.css("padding-bottom"),10)-parseInt(d._items.css("border-top-width"),10)-parseInt(d._items.css("border-bottom-width"),10));d._contentSections.width(d._contentSections.width()-parseInt(d._contentSections.css("border-left-width"),10)-parseInt(d._contentSections.css("border-right-width"),10)-parseInt(d._contentSections.css("padding-left"),10)-parseInt(d._contentSections.css("padding-right"),10));if(d.mode==="default"){if(d.height!=="auto"){if(d.position==="top"){d._contentSections.css("padding-top",b)}else{d._contentSections.css("padding-bottom",b)}d._content.css("height",d.host.height()+2);d._contentSections.css("height",d._content.height()-parseInt(d._contentSections.css("border-bottom-width"),10)-parseInt(d._contentSections.css("border-top-width"),10)-1)}}else{}}else{var e;if(d.position==="left"){d._content.addClass(d.toThemeProperty("jqx-ribbon-content-left"));e=parseInt(d._contentSections.css("border-left-width"),10)+parseInt(d._contentSections.css("border-right-width"),10)+1}else{d._content.addClass(d.toThemeProperty("jqx-ribbon-content-right"));e=0}d._header.css("height",(d.host.height()-parseInt(d._header.css("padding-top"),10)-parseInt(d._header.css("padding-bottom"),10)-parseInt(d._header.css("border-top-width"),10)-parseInt(d._header.css("border-bottom-width"),10)));d._items.width(d._items.width()-parseInt(d._items.css("padding-left"),10)-parseInt(d._items.css("padding-right"),10)-parseInt(d._items.css("border-left-width"),10)-parseInt(d._items.css("border-right-width"),10));d._contentSections.height(d._contentSections.height()-parseInt(d._contentSections.css("border-top-width"),10)-parseInt(d._contentSections.css("border-bottom-width"),10)-parseInt(d._contentSections.css("padding-top"),10)-parseInt(d._contentSections.css("padding-bottom"),10));if(d.mode==="default"){if(d.width!=="auto"){if(d.position==="left"){d._contentSections.css("padding-left",c)}else{d._contentSections.css("padding-right",c)}d._contentSections.width(d._content.width()-d._header.width()-e)}}else{}}}if(d.rtl===true){d._header.addClass(d.toThemeProperty("jqx-ribbon-header-rtl"));d._items.addClass(d.toThemeProperty("jqx-ribbon-item-rtl"))}},_positionPopup:function(){var e=this;var c=(e._browser.version==="7.0"&&e._browser.browser==="msie");switch(e.position){case"top":e._content.css("top",e._header.outerHeight());break;case"bottom":if(!c){e._content.css("bottom",e._header.outerHeight())}else{e._content.css("bottom",e._header.height())}break;case"left":e._content.css("left",e._header.outerWidth());break;case"right":e._content.css("right",e._header.outerWidth());if(c){var b=e._content.children();for(var d=0;d
    ';var b=a(e);var f=a(e);var c=(d._orientation==="horizontal")?["left","right"]:["up","down"];b.find(".jqx-ribbon-scrollbutton-inner").addClass(d.toThemeProperty("jqx-icon-arrow-"+c[0]));f.find(".jqx-ribbon-scrollbutton-inner").addClass(d.toThemeProperty("jqx-icon-arrow-"+c[1]));b.addClass(d.toThemeProperty("jqx-ribbon-scrollbutton-lt"));f.addClass(d.toThemeProperty("jqx-ribbon-scrollbutton-rb"));d._scrollButtons=b.add(f);d.host.append(d._scrollButtons);if(d._orientation==="horizontal"){d._scrollButtons.height(d._header.height())}else{d._scrollButtons.width(d._header.width())}d._scrollButtonRc(b,f);if(!d.roundedCorners){return}switch(d.position){case"top":case"bottom":b.css("margin-left","-1px");f.css("margin-right","-1px");break;case"right":case"left":b.css("margin-top","-1px");f.css("margin-bottom","-1px");break}},_scrollButtonRc:function(b,d){var c=this;if(!c.roundedCorners){return}switch(c.position){case"top":if(c.scrollPosition!=="far"){b.addClass(c.toThemeProperty("jqx-rc-tl"))}if(c.scrollPosition!=="near"){d.addClass(c.toThemeProperty("jqx-rc-tr"))}break;case"bottom":if(c.scrollPosition!=="far"){b.addClass(c.toThemeProperty("jqx-rc-bl"))}if(c.scrollPosition!=="near"){d.addClass(c.toThemeProperty("jqx-rc-br"))}break;case"left":if(c.scrollPosition!=="far"){b.addClass(c.toThemeProperty("jqx-rc-tl"))}if(c.scrollPosition!=="near"){d.addClass(c.toThemeProperty("jqx-rc-bl"))}break;case"right":if(c.scrollPosition!=="far"){b.addClass(c.toThemeProperty("jqx-rc-tr"))}if(c.scrollPosition!=="near"){d.addClass(c.toThemeProperty("jqx-rc-br"))}break}},_updateItems:function(){var c=this;c._items=c._header.children();c._items.attr("unselectable","on");c._contentSections=c._content.children();for(var b=0;bc){m=c-b}}e.css(j,m)};var i;switch(e[0]._layout){case"near":i=h-k;d(i);break;case"far":i=h-k-(b-l);d(i);break;case"center":i=h-k-(b-l)/2;d(i);break;default:e.css(j,"")}},_checkScrollButtons:function(d){var f=this;var g=0;a.each(f._items,function(){var i=a(this);if(i.css("display")!=="none"){g+=(f._orientation==="horizontal")?i.outerWidth(true):i.outerHeight(true)}});var h=f._orientation==="horizontal"?["margin-left","margin-right"]:["margin-top","margin-bottom"];var b=(f._orientation==="horizontal")?f._header.width():f._header.height();if(!f._itemMargins){f._itemMargins=[];f._itemMargins.push(a(f._items[0]).css(h[0]));f._itemMargins.push(a(f._items[f._items.length-1]).css(h[1]))}if(g>b){f._scrollButtons.css("display","block");var e=f.rtl?f._itemMargins[0]:17;var c=f.rtl?f._itemMargins[0]:17;switch(f.scrollPosition){case"near":c=0;e=34;break;case"far":c=34;e=17;break}a(f._items[0]).css(h[0],e);a(f._items[f._items.length-1]).css(h[1],c)}else{a(f._items[0]).css(h[0],f._itemMargins[0]);a(f._items[f._items.length-1]).css(h[1],f._itemMargins[1]);f._scrollButtons.css("display","none")}if(d===true){if(f._orientation==="horizontal"){f._scrollButtons.height(f._header.height())}else{f._scrollButtons.width(f._header.width())}}},_positionSelectionToken:function(h){var i=this;if(h!==-1){var e=a(i._items[h]);var j,b,d,k,g;if(i._orientation==="horizontal"){var f,m;if(i.rtl===true){if(i._browserWidthRtlFlag===1){f=i._header[0].scrollWidth-i._header[0].clientWidth}else{f=0}m=i._browserScrollRtlFlag}else{f=0;m=1}d=e[0].offsetLeft+f-i._header[0].scrollLeft*m-i._selectionTokenOffsetX+2;g=i._header.outerHeight()-1;var c=e.width()+parseInt(e.css("padding-left"),10)+parseInt(e.css("padding-right"),10);if(i.position==="top"){j=g-i._selectionTokenOffsetY;b=""}else{j="";b=g-i._selectionTokenOffsetY}i._selectionToken.css({top:j,bottom:b,left:d,width:c})}else{j=e[0].offsetTop-i._header[0].scrollTop-i._selectionTokenOffsetX+2;g=i._header.outerWidth()-1;var l=e.height()+parseInt(e.css("padding-top"),10)+parseInt(e.css("padding-bottom"),10);if(i.position==="left"){d=g-i._selectionTokenOffsetY;k=""}else{d="";k=g-i._selectionTokenOffsetY}i._selectionToken.css({top:j,left:d,right:k,height:l})}}},_updatePositions:function(b){var c=this;if(isNaN(b)){b=c.selectedIndex}if(b!==-1){c._positionSelectionToken(b);if(c.mode==="popup"&&c._contentSections[b]._layout!=="default"){c._positionContent(b)}if(c.mode==="popup"&&(c.position==="left"||c.position==="right")){c._content.width("auto");var d=c._contentSections[b].style.width&&c._contentSections[b].style.width.toString().indexOf("%")>=0;if(d){c._content[0].style.width=c._contentSections[b].style.width;c._content.width(a(c._contentSections[b]).width()-c._header.width())}else{c._content.width(a(c._contentSections[b]).width())}}}},_animationComplete:function(c,e){var d=this,b=e!==-1?e:null;d._content.css("pointer-events","auto");if(d._supressSelectionEvents!==true){d._raiseEvent("0",{selectedIndex:c});d._raiseEvent("2",{unselectedIndex:b,selectedIndex:c})}else{if(c!==d._oldReorderIndex){d._raiseEvent("4",{newIndex:c,oldIndex:d._oldReorderIndex})}d._supressSelectionEvents=false}d.selectedIndex=c;if(d.initContent&&d._items[c]._isInitialized===false){d.initContent(c);d._items[c]._isInitialized=true}d._allowSelection=true;d._selecting=null},_clearSelectionComplete:function(d,b){var c=this;c._selecting=null;if(d===undefined){d=c.selectedIndex}if(d!==-1){c._content.css("pointer-events","none");if(c._supressSelectionEvents!==true){c._raiseEvent("1",{unselectedIndex:d})}}if(b!==true){c.selectedIndex=-1}},_slide:function(f,e,m,s){var q=this;if(!q.activeAnimations){q.activeAnimations=[]}if(q.activeAnimations.length>0){for(var k=0;k0){u.data(h+v[o],u[0].style[v[o]])}}},restore:function(u,w){var v,o;for(o=0;o
    ").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),i={width:o.width(),height:o.height()},w=document.activeElement;try{w.id}catch(v){w=document.body}o.wrap(x);if(o[0]===w||a.contains(o[0],w)){a(w).focus()}x=o.parent();if(o.css("position")==="static"){x.css({position:"relative"});o.css({position:"relative"})}else{a.extend(u,{position:o.css("position"),zIndex:o.css("z-index")});a.each(["top","left","bottom","right"],function(y,z){u[z]=o.css(z);if(isNaN(parseInt(u[z],10))){u[z]="auto"}});o.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}o.css(i);return x.css(u).show()},removeWrapper:function(i){var o=document.activeElement;if(i.parent().is(".ui-effects-wrapper")){i.parent().replaceWith(i);if(i[0]===o||a.contains(i[0],o)){a(o).focus()}}return i}};var p=["position","top","bottom","left","right","width","height"],l=e.mode,t=l==="show",r=e.direction||"left",g=(r==="up"||r==="down")?"top":"left",c=(r==="up"||r==="left"),b,j={};d.save(f,p);f.show();b=e.distance||f[g==="top"?"outerHeight":"outerWidth"](true);d.createWrapper(f).css({overflow:"hidden"});if(t){f.css(g,c?(isNaN(b)?"-"+b:-b):b)}j[g]=(t?(c?"+=":"-="):(c?"-=":"+="))+b;var n=function(){f.clearQueue();f.stop(true,true)};q.activeAnimations.push(f);f.animate(j,{duration:e.duration,easing:e.easing,complete:function(){q.activeAnimations.pop(f);if(l==="show"){q._animationComplete(m,s)}else{if(l==="hide"){f.hide();q._clearSelectionComplete(m)}}d.restore(f,p);d.removeWrapper(f)}});return n}})})(jqxBaseFramework);(function(a){a.jqx.jqxWidget("jqxNavBar","",{});a.extend(a.jqx._jqxNavBar.prototype,{defineInstance:function(){var b={height:"auto",minimizedHeight:30,popupAnimationDelay:250,minimizeButtonPosition:"left",width:"100%",selectedItem:0,selection:true,disabled:false,rtl:false,minimized:false,columns:null,minimizedTitle:"",orientation:"horizontal",events:["change"]};a.extend(true,this,b)},createInstance:function(b){this.render()},render:function(){var b=this;if(b.ul&&b.ul.parent()[0]!==b.element){b.ul.detach();b.host.children().remove();b.host.append(b.ul);if(b.popup){b.popup.remove()}b.host.height(null);b.host.removeClass(b.toThemeProperty("jqx-widget-header"));b.host.removeClass(b.toThemeProperty("jqx-navbar-minimized"))}b.ul=b.host.children();b._items=b.ul.children();a.each(b._items,function(){a(this).removeClass()});if(this.width!==null&&(this.width.toString().indexOf("%")>=0||this.width.toString().indexOf("px")>=0)){this.element.style.width=this.width}else{this.element.style.width=this.width+"px"}b._layoutItems();b._addClasses();b._addHandlers();b._handleMinimize();a.jqx.utilities.resize(this.host,function(){b._resizePopup()})},_layoutItems:function(){var k=this;var t=1;var s=0;var o=this.height===null||this.height==="auto";if(k.orientation==="horizontal"){if(k._items.length>5){var c=50+"%";k._items.css("width",c);var q=k.height;t=Math.ceil(k._items.length/2);if(!o){var p;var h=false;if(q.toString().indexOf("%")>=0){p=parseInt(q)/t;p+="%";h=true}else{p=parseInt(q)/t}s=2;if(h){k._items.css("height",p);k._items.css("line-height",k._items.height()+"px")}else{k._items.height(p);k._items.css("line-height",p+"px")}}}else{var c=k.host.width/2;var g=k._items.length;var c=100/g+"%";k._items.css("width",c);if(!o){if(k.height.toString().indexOf("%")>=0){k._items.css("height",p);k._items.css("line-height",k.height)}else{k._items.height(k.height);k._items.css("line-height",parseInt(k.height)+"px")}}s=g}if(k.columns){var q=k.height;var l=0;for(var e=0;e=k.columns.length){l=0;if(k.columns.length!==k._items.length){t++}}}var h=false;var p;if(q.toString().indexOf("%")>=0){p=parseInt(q)/t;p+="%";h=true}else{p=parseInt(q)/t}if(!o){if(h){k._items.css("height",p);k._items.css("line-height",k._items.height()+"px")}else{k._items.height(p);k._items.css("line-height",p+"px")}}s=k.columns.length}}else{var q=k.height;var l=0;for(var e=0;e=0){p=parseInt(q)/t;p+="%";h=true}else{p=parseInt(q)/t}if(h){k._items.css("height",p);k._items.css("line-height",k._items.height()+"px")}else{k._items.height(p);k._items.css("line-height",p+"px")}}s=1}if(k.selection){var b=0;var f=k._items.length/s;var n=false;if(f1&&e>0){a(k._items[b]).css("border-top-width","1px");a(k._items[b]).css("border-top-style","solid")}if(n&&e===t-2&&d===s-1){a(k._items[b]).css("border-bottom-width","1px");a(k._items[b]).css("border-bottom-style","solid")}b++}}}if(a.jqx.browser.msie&&a.jqx.browser.version<8){k._items.css("padding-left","0px");k._items.css("padding-right","0px");a.each(k._items,function(){a(this).css("border-left-width","0px");a(this).css("border-right-width","0px");a(this).css("position","relative");a(this).css("margin-left","-1px")});k.host.css("border","none")}},_handlePopupHeight:function(){var b=this;if(!b.minimized){return}var d;var c=false;if(b.height.toString().indexOf("%")>=0){b.host.css("height",b.height);d=b.host.height()-b.minimizedHeight-1;c=true}if(c){b.popup.height(d);b.ul.height(d);b.host.height(b.minimizedHeight);b._layoutItems()}},_handleMinimize:function(){var d=this;if(d.minimized){var f=d.host;f.height(d.minimizedHeight);f.css("box-sizing","border-box");f.addClass(d.toThemeProperty("jqx-widget-header"));f.addClass(d.toThemeProperty("jqx-navbar-minimized"));var c=a('
    ');f.append(c);c.css("float",d.minimizeButtonPosition);var e=a('
    ');e.append(d.minimizedTitle);e.css("float",d.minimizeButtonPosition==="left"?"right":"left");if(d.minimizedHeight!=="auto"){if(d.minimizedHeight.toString().indexOf("%")>=0){e.css("line-height",d.minimizedHeight)}else{e.css("line-height",parseInt(d.minimizedHeight)+"px")}}f.append(e);c.addClass(d.toThemeProperty("jqx-menu-minimized-button"));f.removeClass(d.toThemeProperty("jqx-widget-content"));d.ul.detach();var b=a("
    ");b.addClass(d.toThemeProperty("jqx-widget jqx-widget-content jqx-popup jqx-navbar jqx-navbar-popup"));b.append(d.ul);d.popup=b;a(document.body).append(b);d.opened=false;c.click(function(){if(!d.opened){d.open()}else{d.close()}});d.button=c}},close:function(){var b=this;b.popup.fadeOut(b.popupAnimationDelay);b.opened=false},open:function(){var b=this;b.popup.fadeIn(b.popupAnimationDelay);b.popup.css("top",parseInt(b.host.coord().top)+b.host.outerHeight()-1);b.popup.width(b.host.width());var c=b.host.coord().left;b.popup.css("left",c);if(c.toString().indexOf(".5")>=0){b.popup.width(b.host.width()-0.5)}b._handlePopupHeight();b.opened=true},_resizePopup:function(){var b=this;if(b.minimized&&b.popup){b.popup.width(b.host.width());var c=b.host.coord().left;b.popup.css("left",c);if(c.toString().indexOf(".5")>=0){b.popup.width(b.host.width()-0.5)}b.popup.css("top",parseInt(b.host.coord().top)+b.host.outerHeight()-1);b._handlePopupHeight()}},selectAt:function(c){var d=this;if(!d.selection){return}a(d._items[d.selectedItem]).removeClass(d.toThemeProperty("jqx-fill-state-pressed"));a(d._items[c]).addClass(d.toThemeProperty("jqx-fill-state-pressed"));var b=d.selectedItem;d.selectedItem=c;d._raiseEvent("0",{selectedItem:c,oldSelectedItem:b})},getSelectedIndex:function(){return this.selectedItem},destroy:function(){var b=this;b._removeHandlers();b.host.remove()},propertyChangedHandler:function(b,c,e,d){b.render()},_raiseEvent:function(h,e){var g=this;var c=g.events[h];var f=new a.Event(c);f.owner=g;f.args=e;try{var b=g.host.trigger(f)}catch(d){}return b},_removeHandlers:function(){var b=this;b.removeHandler(b._items,"click.navbar"+b.element.id);b.removeHandler(b._items,"mouseenter.navbar"+b.element.id);b.removeHandler(b._items,"mouseleave.navbar"+b.element.id)},_addClasses:function(){var b=this;b.host.addClass(b.toThemeProperty("jqx-navbar"));if(b.disabled){b.host.addClass(b.toThemeProperty("jqx-fill-state-disabled"))}b._items.addClass(b.toThemeProperty("jqx-navbar-block"));if(b.selection){b.host.addClass(b.toThemeProperty("jqx-widget"));b.host.addClass(b.toThemeProperty("jqx-widget-content"));b.host.addClass(b.toThemeProperty("jqx-fill-state-normal"));b._items.addClass(b.toThemeProperty("jqx-fill-state-normal"));b._items.addClass(b.toThemeProperty("jqx-button"));if(b.selectedItem!==-1){a(b._items[b.selectedItem]).addClass(b.toThemeProperty("jqx-fill-state-pressed"))}}else{this.host.css("border","none")}if(b.rtl){b._items.addClass(b.toThemeProperty("jqx-navbar-block-rtl"))}},_addHandlers:function(){var b=this;b.addHandler(b._items,"click.navbar"+b.element.id,function(d){if(!b.disabled&&b.selection){var c=a(b._items).index(this);b.selectAt(c)}});b.addHandler(b._items,"mouseenter.navbar"+b.element.id,function(c){if(!b.disabled&&b.selection){a(c.target).addClass(b.toThemeProperty("jqx-fill-state-hover"))}});b.addHandler(b._items,"mouseleave.navbar"+b.element.id,function(c){if(!b.disabled&&b.selection){a(c.target).removeClass(b.toThemeProperty("jqx-fill-state-hover"))}})}})})(jqxBaseFramework);(function(a){a.jqx.jqxWidget("jqxFileUpload","",{});a.extend(a.jqx._jqxFileUpload.prototype,{defineInstance:function(){var b={width:null,height:"auto",uploadUrl:"",fileInputName:"",autoUpload:false,multipleFilesUpload:true,accept:null,browseTemplate:"",uploadTemplate:"",cancelTemplate:"",localization:null,renderFiles:null,disabled:false,rtl:false,events:["select","remove","uploadStart","uploadEnd"]};a.extend(true,this,b)},createInstance:function(){var b=this;if(b.host.jqxButton===undefined){throw new Error("jqxFileUpload: Missing reference to jqxbuttons.js")}if(a.jqx.browser.msie){if(a.jqx.browser.version<11){b._ieOldWebkit=true;if(a.jqx.browser.version<8){b._ie7=true}}}else{if(a.jqx.browser.webkit){b._ieOldWebkit=true}}b._fluidWidth=typeof b.width==="string"&&b.width.charAt(b.width.length-1)==="%";b._fluidHeight=typeof b.height==="string"&&b.height.charAt(b.height.length-1)==="%";b._render(true)},_render:function(b){var c=this;c._setSize();c._addClasses();if(b===true){c._appendElements()}else{c._removeHandlers()}c._addHandlers();if(c._ie7){c._borderAndPadding("width",c.host);if(c.height!=="auto"){c._borderAndPadding("height",c.host)}}a.jqx.utilities.resize(c.host,null,true);a.jqx.utilities.resize(c.host,function(){if(c._fluidWidth){if(c._ie7){c.host.css("width",c.width);c._borderAndPadding("width",c.host)}for(var f=0;f0){for(var b=c._fileRows.length-1;b>=0;b--){c._uploadQueue.push(c._fileRows[b])}c._uploadFile(c._fileRows[0])}},cancelFile:function(b){var c=this;c._removeSingleFileRow(c._fileRows[b])},cancelAll:function(){var c=this;if(c._fileRows.length>0){for(var b=0;b8){e._uploadButton[o](e.toThemeProperty("jqx-file-upload-button-upload-rtl-ie"))}for(var i=0;i'+c+"");g.host.append(g._browseButton);g._browseButton.jqxButton({theme:g.theme,width:b,template:g.browseTemplate,disabled:g.disabled});g._browseButton.after('
    ');g._bottomButtonsContainer=a('
    ');g.host.append(g._bottomButtonsContainer);g._uploadButton=a('");g._bottomButtonsContainer.append(g._uploadButton);g._uploadButton.jqxButton({theme:g.theme,width:e,template:g.uploadTemplate,disabled:g.disabled});g._cancelButton=a('");g._bottomButtonsContainer.append(g._cancelButton);g._cancelButton.jqxButton({theme:g.theme,width:f,template:g.cancelTemplate,disabled:g.disabled});g._bottomButtonsContainer.after('
    ');if(g.rtl){g._browseButton.addClass(g.toThemeProperty("jqx-file-upload-button-browse-rtl"));g._cancelButton.addClass(g.toThemeProperty("jqx-file-upload-button-cancel-rtl"));g._uploadButton.addClass(g.toThemeProperty("jqx-file-upload-button-upload-rtl"));if(a.jqx.browser.msie&&a.jqx.browser.version>8){g._uploadButton.addClass(g.toThemeProperty("jqx-file-upload-button-upload-rtl-ie"))}}g._uploadIframe=a('');g.host.append(g._uploadIframe);g._iframeInitialized=false;g._uploadQueue=[];g._forms=[];g._addFormAndFileInput();g._fileRows=[]},_addFormAndFileInput:function(){var f=this;var i=f.element.id;var e=a('
    ');f.host.append(e);var d=a('');if(f.accept){d.attr("accept",f.accept)}e.append(d);if(f._ieOldWebkit){var c=f._browseButton.position();var g=f._browseButton.outerWidth();var h=f._browseButton.outerHeight();var b=f.rtl&&f._ie7?12:0;e.css({left:c.left-b,top:c.top,width:g,height:h});e.addClass(f.toThemeProperty("jqx-file-upload-form-ie9"));d.addClass(f.toThemeProperty("jqx-file-upload-file-input-ie9"));f.addHandler(e,"mouseenter.jqxFileUpload"+i,function(){f._browseButton.addClass(f.toThemeProperty("jqx-fill-state-hover"))});f.addHandler(e,"mouseleave.jqxFileUpload"+i,function(){f._browseButton.removeClass(f.toThemeProperty("jqx-fill-state-hover"))});f.addHandler(e,"mousedown.jqxFileUpload"+i,function(){f._browseButton.addClass(f.toThemeProperty("jqx-fill-state-pressed"))});f.addHandler(a(document),"mouseup.jqxFileUpload"+i,function(){if(f._browseButton.hasClass("jqx-fill-state-pressed")){f._browseButton.removeClass(f.toThemeProperty("jqx-fill-state-pressed"))}})}f.addHandler(d,"change.jqxFileUpload"+i,function(){var l=this.value,j;if(!a.jqx.browser.mozilla){if(l.indexOf("fakepath")!==-1){l=l.slice(12)}else{l=l.slice(l.lastIndexOf("\\")+1)}}if(a.jqx.browser.msie&&a.jqx.browser.version<10){j="IE9 and earlier do not support getting the file size."}else{j=this.files[0].size}var k=f._addFileRow(l,e,d,j);if(f._fileRows.length===1){f._browseButton.css("margin-bottom","10px");f._hideButtons(false)}if(f._ieOldWebkit){f.removeHandler(e,"mouseenter.jqxFileUpload"+i);f.removeHandler(e,"mouseleave.jqxFileUpload"+i);f.removeHandler(e,"mousedown.jqxFileUpload"+i)}f._addFormAndFileInput();f.removeHandler(d,"change.jqxFileUpload"+i);if(f.autoUpload===true){f._uploadFile(k)}});if(f._ieOldWebkit===true){f.addHandler(d,"click.jqxFileUpload"+i,function(j){if(f.multipleFilesUpload===false&&f._fileRows.length>0){j.preventDefault()}})}f._forms.push({form:e,fileInput:d})},_addFileRow:function(f,b,e,d){var h=this,l,g,m,j,n,i="Cancel",k="Upload File";l=a('
    ');if(h._fileRows.length===0){h._browseButton.after(l)}else{h._fileRows[h._fileRows.length-1].fileRow.after(l)}if(!h.renderFiles){g=a('
    '+f+"
    ");l.append(g);if(h.localization){if(h.localization.cancelFileTooltip){i=h.localization.cancelFileTooltip}if(h.localization.uploadFileTooltip){k=h.localization.uploadFileTooltip}}j=a('
    ');l.append(j);n=a('
    ');l.append(n);m=a('
    ');l.append(m);if(h.rtl){g.addClass(h.toThemeProperty("jqx-file-upload-file-name-rtl"));j.addClass(h.toThemeProperty("jqx-file-upload-file-cancel-rtl"));n.addClass(h.toThemeProperty("jqx-file-upload-file-upload-rtl"));m.addClass(h.toThemeProperty("jqx-file-upload-loading-element-rtl"))}h._setMaxWidth({fileNameContainer:g,uploadFile:n,cancelFile:j})}else{l.html(h.renderFiles(f))}if(h._ie7){h._borderAndPadding("width",l);h._borderAndPadding("height",l);if(!h.renderFiles){h._borderAndPadding("height",g);h._borderAndPadding("height",n);h._borderAndPadding("height",j)}}var c={fileRow:l,fileNameContainer:g,fileName:f,uploadFile:n,cancelFile:j,loadingElement:m,form:b,fileInput:e,index:h._fileRows.length};h._addFileHandlers(c);h._fileRows.push(c);h._raiseEvent("0",{file:f,size:d});return c},_setMaxWidth:function(c){var e=this;var f=c.cancelFile.outerWidth(true)+c.uploadFile.outerWidth(true);var b=e._ie7?6:0;var d=e.host.width()-parseInt(e.host.css("padding-left"),10)-parseInt(e.host.css("padding-right"),10)-f-b-7;c.fileNameContainer.css("max-width",d)},_addFileHandlers:function(b){var c=this;if(!c.renderFiles){var d=c.element.id;c.addHandler(b.uploadFile,"mouseenter.jqxFileUpload"+d,function(){if(c.disabled===false){b.uploadFile.addClass(c.toThemeProperty("jqx-fill-state-hover"))}});c.addHandler(b.uploadFile,"mouseleave.jqxFileUpload"+d,function(){if(c.disabled===false){b.uploadFile.removeClass(c.toThemeProperty("jqx-fill-state-hover"))}});c.addHandler(b.uploadFile,"click.jqxFileUpload"+d,function(){if(c.disabled===false){c._uploadFile(b)}});c.addHandler(b.cancelFile,"mouseenter.jqxFileUpload"+d,function(){if(c.disabled===false){b.cancelFile.addClass(c.toThemeProperty("jqx-fill-state-hover"))}});c.addHandler(b.cancelFile,"mouseleave.jqxFileUpload"+d,function(){if(c.disabled===false){b.cancelFile.removeClass(c.toThemeProperty("jqx-fill-state-hover"))}});c.addHandler(b.cancelFile,"click.jqxFileUpload"+d,function(){if(c.disabled===false){c._removeSingleFileRow(b)}})}},_removeSingleFileRow:function(c){var d=this;d._removeFileRow(c);d._fileRows.splice(c.index,1);if(d._fileRows.length===0){setTimeout(function(){d._browseButton.css("margin-bottom",0)},400);d._hideButtons(true)}else{for(var b=0;b0){b._uploadFile(b._uploadQueue[b._uploadQueue.length-1])}}})},_removeHandlers:function(b){var d=this;var e=d.element.id;d.removeHandler(d._browseButton,"click.jqxFileUpload"+e);d.removeHandler(d._uploadButton,"click.jqxFileUpload"+e);d.removeHandler(d._cancelButton,"click.jqxFileUpload"+e);d.removeHandler(d._uploadIframe,"load.jqxFileUpload"+e);if(b===true){var c=d._forms[d._forms.length-1];d.removeHandler(c.fileInput,"change.jqxFileUpload"+e);if(d._ieOldWebkit){d.removeHandler(c.form,"mouseenter.jqxFileUpload"+e);d.removeHandler(c.form,"mouseleave.jqxFileUpload"+e);d.removeHandler(c.form,"mousedown.jqxFileUpload"+e);d.removeHandler(a("body"),"mouseup.jqxFileUpload"+e)}}}})})(jqxBaseFramework);(function(a){a.jqx.jqxWidget("jqxLoader","",{});a.extend(a.jqx._jqxLoader.prototype,{defineInstance:function(){var b={width:200,height:150,text:"Loading...",html:null,textPosition:"bottom",imagePosition:"center",isModal:false,autoOpen:false,rtl:false,events:["create"]};a.extend(true,this,b)},createInstance:function(b){var c=this;c._render(true);c._raiseEvent("0")},render:function(){this._render()},open:function(d,c){var b=this;if(this.width!==null&&this.width.toString().indexOf("%")!==-1){b.host.css("width",this.width)}if(this.height!==null&&this.height.toString().indexOf("%")!==-1){b.host.css("height",this.height)}b.host.show();b.host.css("left",-b.host.width()/2);b.host.css("top",-b.host.height()/2);if(d&&c){b.host.css("left",d);b.host.css("top",c)}if(b.isModal){b._modal.show()}},close:function(){var b=this;b.host.hide();if(b.isModal){b._modal.hide()}},_checkBrowser:function(){var b=this;if(a.jqx.browser.browser==="msie"){if(a.jqx.browser.version==="7.0"){if(b.isModal===false){b.host.addClass(b.toThemeProperty("jqx-loader-ie-transparency"))}b.host.css("top",Math.max(0,((a(window).height()-a(b.host).outerHeight())/2)+a(window).scrollTop())+"px");b.host.css("left",Math.max(0,((a(window).width()-a(b.host).outerWidth())/2)+a(window).scrollLeft())+"px");a(window).resize(function(){b.host.css("top",Math.max(0,((a(window).height()-a(b.host).outerHeight())/2)+a(window).scrollTop())+"px");b.host.css("left",Math.max(0,((a(window).width()-a(b.host).outerWidth())/2)+a(window).scrollLeft())+"px")});this.host.css({"margin-top":"0","margin-left":"0"})}else{if(a.jqx.browser.version==="8.0"){if(b.isModal===false){b.host.addClass(b.toThemeProperty("jqx-loader-ie-transparency"))}}}}},_textPos:function(){var b=this;this._text=b.host.children("div:eq(1)");if(this._image){this._image.css("background-position-y",b.imagePosition)}if(b.textPosition==="top"){this._text.addClass(b.toThemeProperty("jqx-loader-text-top"));this._text.removeClass(b.toThemeProperty("jqx-loader-text-bottom"));this._text.removeClass(b.toThemeProperty("jqx-loader-text-left"));this._text.removeClass(b.toThemeProperty("jqx-loader-text-right"))}else{if(b.textPosition==="bottom"){this._text.addClass(b.toThemeProperty("jqx-loader-text-bottom"));this._text.removeClass(b.toThemeProperty("jqx-loader-text-top"));this._text.removeClass(b.toThemeProperty("jqx-loader-text-left"));this._text.removeClass(b.toThemeProperty("jqx-loader-text-right"))}else{if(b.textPosition==="left"){this._text.addClass(b.toThemeProperty("jqx-loader-text-left"));this._text.removeClass(b.toThemeProperty("jqx-loader-text-right"));this._text.removeClass(b.toThemeProperty("jqx-loader-text-top"));this._text.removeClass(b.toThemeProperty("jqx-loader-text-bottom"))}else{if(b.textPosition==="right"){this._text.addClass(b.toThemeProperty("jqx-loader-text-right"));this._text.removeClass(b.toThemeProperty("jqx-loader-text-left"));this._text.removeClass(b.toThemeProperty("jqx-loader-text-top"));this._text.removeClass(b.toThemeProperty("jqx-loader-text-bottom"))}}}}},refresh:function(b){if(b!==true){this._render(false)}},destroy:function(){var b=this;b._removeHandlers();b.host.remove()},propertyChangedHandler:function(b,c,e,d){if(d!==e){switch(c){case"width":b.host.width(d);break;case"height":b.host.height(d);break;case"text":b._text.text(d);break;case"html":b.host.html(d);break;case"textPosition":b._textPos(d);break;case"rtl":if(d===true){b._text.addClass(b.toThemeProperty("jqx-loader-rtl"))}else{b._text.removeClass(b.toThemeProperty("jqx-loader-rtl"))}break}}},_raiseEvent:function(h,e){var g=this;var c=g.events[h];var f=new a.Event(c);f.owner=g;f.args=e;try{var b=g.host.trigger(f)}catch(d){}return b},_render:function(b){var c=this;c.host.width(c.width);c.host.height(c.height);if(c.autoOpen===false){c.host.hide()}if(b){if(c.html===null){c.host.append('
    '+c.text+"
    ");c._image=c.host.children("div:eq(0)");c._text=c.host.children("div:eq(1)")}else{c.host.html(this.html)}if(c.isModal===true){var d=c.host.css("display");c._modal=a('
    ');a("body").append(c._modal)}}c._checkBrowser();c._textPos();c._addClass();c._removeHandlers();c._addHandlers()},_addHandlers:function(){var b=this;if(b.isModal===true){b.addHandler(a(document),"keyup.loader"+b.element.id,function(c){if(c.keyCode===27){b.close()}})}},_removeHandlers:function(){var b=this;b.removeHandler(a(document),"keyup.loader"+b.element.id)},_addClass:function(){var b=this;b.host.addClass(b.toThemeProperty("jqx-widget"));b.host.addClass(b.toThemeProperty("jqx-loader"));b.host.addClass(b.toThemeProperty("jqx-rc-all"));b.host.addClass(b.toThemeProperty("jqx-fill-state-normal"));if(b.rtl){b._text.addClass(b.toThemeProperty("jqx-loader-rtl"))}if(a.jqx.browser.msie){b.host.addClass(this.toThemeProperty("jqx-noshadow"))}b.host.addClass(this.toThemeProperty("jqx-rc-t"));b.host.addClass(this.toThemeProperty("jqx-rc-b"));b.host.addClass(this.toThemeProperty("jqx-popup"))}})})(jqxBaseFramework);(function(a){a.jqx.jqxWidget("jqxTextArea","",{});a.extend(a.jqx._jqxTextArea.prototype,{defineInstance:function(){var b=this;var c={disabled:false,filter:b._filter,sort:b._sort,highlight:b._highlight,dropDownWidth:null,renderer:b._renderer,opened:false,$popup:a("
      "),source:[],roundedCorners:true,searchMode:"default",placeHolder:"",width:null,height:null,rtl:false,displayMember:"",valueMember:"",popupZIndex:20000,items:8,item:'
    • ',minLength:1,maxLength:null,scrollBarSize:a.jqx.utilities.scrollBarSize,query:"",changeType:null,events:["change","select","open","close"]};a.extend(true,b,c)},createInstance:function(){var b=this;b.render();b.isInitialized=true},render:function(){var c=this,f=c.element.id;if(c.isInitialized===true){c.refresh();return}if(a.jqx.utilities.scrollBarSize!==15){c.scrollBarSize=a.jqx.utilities.scrollBarSize}var b=a('
      ');var e=a('
      ');c._id=c.element.id;if(c.element.tagName.toLowerCase()==="div"){c._baseHost=c.host;c.host.append(b);b.append('');b.append(e)}else{if(c.element.tagName.toLowerCase()==="textarea"){c._baseHost=a(c.element);c._baseHost.wrap("
      ");c._baseHost.wrap(b);c._baseHost.after(e);c.host=c._baseHost.parent().parent();c.host[0].style.cssText=c.element.style.cssText;c.element.style.cssText="";c._baseHost.addClass(c.toThemeProperty("jqx-text-area-element"))}}var d=c.host;c.wrapper=b;c.textarea=d.find("textarea");c._addClasses();if(!d.jqxButton){throw new Error("jqxTextArea: Missing reference to jqxbuttons.js.")}if(!d.jqxScrollBar){throw new Error("jqxTextArea: Missing reference to jqxscrollbar.js.")}if(null===c.width&&d[0].style&&null!==d[0].style.width){c.width=d[0].style.width}if(null===c.height&&d[0].style&&null!==d[0].style.height){c.height=d[0].style.height}c._setSize();c.vScrollBar=e;e.jqxScrollBar({vertical:true,width:15,height:"100%",max:c.height,theme:c.theme});if(a.trim(c.textarea.val())===""){c.textarea.val("")}c.textarea.attr("placeholder",c.placeHolder);if(c.maxLength!==null){c.textarea.attr("maxlength",c.maxLength)}if(a.jqx.browser.msie&&a.jqx.browser.version<10&&c.textarea.val()===""){c.textarea.val(c.placeHolder)}if((c.source instanceof Array&&c.source.length)||c.source._source||a.isFunction(c.source)){c._oldsource=c.source;c._updateSource();c._addPopupClasses();a.jqx.aria(c,"aria-haspopup",true)}c._arrange();c._addHandlers()},refresh:function(c){if(c!==true){var b=this;b._setSize();b._arrange();b._removeHandlers();b._addHandlers();if(b.opened===true){b.open()}}},_arrange:function(){var d=this;var e=d.textarea;var c=e[0].scrollHeight-e.height();var b=e[0].scrollHeight-e.height();if(b<0){b=0}d.vScrollBar.jqxScrollBar({max:b,value:e[0].scrollTop});if(c<5){e.width(d.host.width());d.vScrollBar.css("visibility","hidden")}else{e.width(d.host.width()-d.scrollBarSize);d.vScrollBar.css("visibility","visible");d._arrangeScrollbars(d.scrollBarSize)}},val:function(e){var d=this,c=d.textarea,f=c[0].value,b;if(a.jqx.browser.msie&&a.jqx.browser.version<10&&f===d.placeHolder){f=""}if(arguments.length===0||(typeof e==="object"&&a.isEmptyObject(e)===true)){if(d.displayMember!==""&&d.valueMember!==""&&d.selectedItem){if(f===""){return""}return d.selectedItem}return f}if(e&&e.label){if(d.selectedItem&&e.label===d.selectedItem.label&&e.value===d.selectedItem.value){return e.label}d.selectedItem={label:e.label,value:e.value};d.host.attr("data-value",e.value);d.host.attr("data-label",e.label);c[0].value=e.label;b=e.label}else{if(f===e){return e}c[0].value=e;d.host.attr("data-value",e);d.host.attr("data-label",e);b=e}d._arrange();d._raiseEvent("0");return b},focus:function(){this.textarea.focus()},selectAll:function(){var b=this.textarea;setTimeout(function(){if("selectionStart" in b[0]){b[0].focus();b[0].setSelectionRange(0,b[0].value.length)}else{var c=b[0].createTextRange();c.collapse(true);c.moveEnd("character",b[0].value.length);c.moveStart("character",0);c.select()}},10)},_arrangeScrollbars:function(b){var k=this;var d=k.host.width();var j=k.host.height();var i=k.vScrollBar;var h=i[0].style.visibility!=="hidden";var g=2;var f=2;i.width(b);i.height(parseInt(j,10)-g+"px");i.css({left:parseInt(d,10)-parseInt(b,10)-g-f+"px",top:"0px"});if(k.rtl){i.css({left:"0px"});var c=h?(parseInt(b,10)-2)+"px":0;if(k.textarea.children().css("direction")!=="rtl"){var e=false;if(a.jqx.browser.msie&&a.jqx.browser.version<8){e=true}if(!e){k.textarea.css("padding-left",c)}}}else{if(i.css("visibility")!=="hidden"){k.textarea.css("width",k.host.width()-k.vScrollBar.outerWidth())}}i.jqxScrollBar("refresh")},destroy:function(){var b=this;if(b.opened){b._removeItemHandlers()}b.$popup.remove();b.vScrollBar.jqxScrollBar("destroy");b._removeHandlers();b.host.remove()},propertyChangedHandler:function(b,c,e,d){if(b.isInitialized===undefined||b.isInitialized===false){return}if(d!==e){switch(c){case"theme":b.vScrollBar.jqxScrollBar({theme:b.theme});break;case"width":b.host.css("width",d);b._arrange();break;case"height":b.host.css("height",d);b._arrange();break;case"source":b._oldsource=d;b._updateSource();break;case"displayMember":case"valueMember":b.source=b._oldsource;b._updateSource();break;case"opened":if(d===true){b.open()}else{b.close()}break;case"maxLength":b.textarea.attr("maxlength",d);break;case"placeHolder":b.textarea.attr("placeholder",d);if(a.jqx.browser.msie&&a.jqx.browser.version<10&&b.textarea.val()===e){b.textarea.val(d)}break;case"scrollBarSize":b._arrange();break;case"dropDownWidth":b.$popup.width(d);break;case"roundedCorners":if(d===true){b.host.add(b.$popup).addClass(b.toThemeProperty("jqx-rc-all"))}else{b.host.add(b.$popup).removeClass(b.toThemeProperty("jqx-rc-all"))}break;case"disabled":b.vScrollBar.jqxScrollBar({disabled:d});if(d===true){b.host.addClass(b.toThemeProperty("jqx-fill-state-disabled"));b.textarea.attr("disabled","")}else{b.host.removeClass(b.toThemeProperty("jqx-fill-state-disabled"));b.textarea.removeAttr("disabled")}a.jqx.aria(b,"aria-disabled",d);break;case"rtl":if(d===true){b.textarea.addClass(b.toThemeProperty("jqx-text-area-element-rtl"))}else{b.textarea.removeClass(b.toThemeProperty("jqx-text-area-element-rtl"))}b._arrange();break}}},_raiseEvent:function(h,c){var e=this;if(c===undefined){c={owner:null}}var d=e.events[h];c.owner=e;var g=new a.Event(d);g.owner=e;if(h==0){c.type=this.changeType;this.changeType=null}g.args=c;if(g.preventDefault){g.preventDefault()}var f;if(d==="change"||e._baseHost[0].tagName.toLowerCase()==="div"){f=e.host}else{f=e._baseHost}var b=f.trigger(g);return b},_addHandlers:function(){var c=this,f=c.element.id,e=c.host,d=c.textarea;a.jqx.utilities.resize(c._baseHost,function(){c._ttimer=setTimeout(function(){c._arrange()},100)},false,true);var b=a.jqx.browser.mozilla?"wheel":"mousewheel";c.addHandler(e,b+".jqxTextArea"+f,function(g){c.wheel(g,c)});c.addHandler(e,"mouseenter.jqxTextArea"+f,function(){c.focused=true});c.addHandler(e,"mouseleave.jqxTextArea"+f,function(){c.focused=false});c.addHandler(e,"focus.jqxTextArea"+f,function(){c.focused=true});c.addHandler(e,"blur.jqxTextArea"+f,function(){c.focused=false});c.addHandler(c.wrapper,"scroll.jqxTextArea"+f,function(){if(c.wrapper[0].scrollTop!==0){c.wrapper[0].scrollTop=0}if(c.wrapper[0].scrollLeft!==0){c.wrapper[0].scrollLeft=0}});c.addHandler(d,"change.jqxTextArea"+f,function(g){g.stopPropagation();g.preventDefault();c._arrange();c._raiseEvent("0")});c.addHandler(d,"select.jqxTextArea"+f,function(g){g.stopPropagation();g.preventDefault()});c.addHandler(d,"scroll.jqxTextArea"+f,function(){c._arrange()});c.addHandler(d,"focus.jqxTextArea"+f,function(){c.host.addClass(c.toThemeProperty("jqx-fill-state-focus"));if(a.jqx.browser.msie&&a.jqx.browser.version<10&&c.textarea.val()===c.placeHolder){c.textarea.val("")}});c.addHandler(d,"blur.jqxTextArea"+f,function(){c.host.removeClass(c.toThemeProperty("jqx-fill-state-focus"));if(a.jqx.browser.msie&&a.jqx.browser.version<10){var g=c.textarea.val();if(g===""){c.textarea.val(c.placeHolder)}else{if(c.maxLength!==null&&g.length>c.maxLength){c.textarea.val(g.substr(0,c.maxLength))}}}});c.addHandler(d,"keydown.jqxTextArea"+f,function(g){c._suppressKeyPressRepeat=~a.inArray(g.keyCode,[40,38,9,13,27]);c.changeType="keyboard";c._move(g)});c.addHandler(d,"keypress.jqxTextArea"+f,function(g){if(c.maxLength!==null&&a.jqx.browser.msie&&a.jqx.browser.version<10&&d.val().length>c.maxLength){return false}if(c._suppressKeyPressRepeat){return}c._move(g)});c.addHandler(d,"keyup.jqxTextArea"+f,function(g){switch(g.keyCode){case 40:case 38:case 16:case 17:case 18:break;case 9:case 13:if(!c.opened){return}c._select();break;case 27:if(!c.opened){return}c.close();break;default:if(c.timer){clearTimeout(c.timer)}c.timer=setTimeout(function(){c._suggest()},300)}g.stopPropagation();g.preventDefault();c._arrange()});c.addHandler(c.vScrollBar,"valueChanged.jqxTextArea"+f,function(g){d.scrollTop(g.currentValue)});c.addHandler(c.$popup,"mousedown.jqxTextArea"+f,function(g){g.stopPropagation();g.preventDefault();c.changeType="mouse";c._select()})},_removeHandlers:function(){var b=this,e=b.element.id,d=b.host,c=b.textarea;a.jqx.utilities.resize(b._baseHost,null,true);b.removeHandler(d,"mousewheel.jqxTextArea"+e);b.removeHandler(d,"mouseenter.jqxTextArea"+e);b.removeHandler(d,"mouseleave.jqxTextArea"+e);b.removeHandler(d,"focus.jqxTextArea"+e);b.removeHandler(d,"blur.jqxTextArea"+e);b.removeHandler(b.wrapper,"scroll.jqxTextArea"+e);b.removeHandler(c,"change.jqxTextArea"+e);b.removeHandler(c,"select.jqxTextArea"+e);b.removeHandler(c,"scroll.jqxTextArea"+e);b.removeHandler(c,"focus.jqxTextArea"+e);b.removeHandler(c,"blur.jqxTextArea"+e);b.removeHandler(c,"keydown.jqxTextArea"+e);b.removeHandler(c,"keypress.jqxTextArea"+e);b.removeHandler(c,"keyup.jqxTextArea"+e);b.removeHandler(b.vScrollBar,"valueChanged.jqxTextArea"+e);b.removeHandler(b.$popup,"mousedown.jqxTextArea"+e)},_addItemHandlers:function(){var b=this;b.addHandler(b.$popup.find("li"),"mouseenter.jqxTextArea"+b.element.id,function(c){b.$popup.find(".jqx-fill-state-pressed").removeClass(b.toThemeProperty("jqx-fill-state-pressed"));a(c.currentTarget).addClass(b.toThemeProperty("jqx-fill-state-pressed"))})},_removeItemHandlers:function(){var b=this;b.removeHandler(b.$popup.find("li"),"mouseenter.jqxTextArea"+b.element.id)},wheel:function(d,c){var e=0;if(d.originalEvent&&a.jqx.browser.msie&&d.originalEvent.wheelDelta){e=d.originalEvent.wheelDelta/120}if(!d){d=window.event}if(d.wheelDelta){e=d.wheelDelta/120}else{if(d.detail){e=-d.detail/3}else{if(d.originalEvent.wheelDelta){e=d.originalEvent.wheelDelta/120}else{if(d.originalEvent.detail){e=-d.originalEvent.detail/3}else{if(d.originalEvent.deltaY){e=-d.originalEvent.deltaY/3}}}}}if(e){var b=c._handleDelta(e);if(!b){if(d.preventDefault){d.preventDefault()}}if(!b){return b}else{return false}}if(d.preventDefault){d.preventDefault()}d.returnValue=false},_handleDelta:function(f){var c=this,d=c.vScrollBar.jqxScrollBar("getInstance");if(c.focused){var e=d.value;if(f<0){c.scrollDown()}else{c.scrollUp()}var b=d.value;if(e!==b){return false}}return true},scrollDown:function(){var b=this;if(b.vScrollBar.css("visibility")==="hidden"){return false}var d=b.vScrollBar.jqxScrollBar("getInstance");var c=Math.min(d.value+d.largestep,d.max);d.setPosition(c);b._arrange();return true},scrollUp:function(){var b=this;if(b.vScrollBar.css("visibility")==="hidden"){return false}var d=b.vScrollBar.jqxScrollBar("getInstance");var c=Math.max(d.value-d.largestep,d.min);d.setPosition(c);b._arrange();return true},_setSize:function(){var b=this;b.host.css("width",b.width);b.host.css("height",b.height)},_addClasses:function(){var b=this;b.host.addClass(b.toThemeProperty("jqx-panel"));b.host.addClass(b.toThemeProperty("jqx-widget"));b.host.addClass(b.toThemeProperty("jqx-widget-content"));b.host.addClass(b.toThemeProperty("jqx-text-area"));b.textarea.addClass(b.toThemeProperty("jqx-widget"));b.textarea.addClass(b.toThemeProperty("jqx-widget-content"));if(b.roundedCorners===true){b.host.addClass(b.toThemeProperty("jqx-rc-all"))}if(b.disabled===true){b.host.addClass(b.toThemeProperty("jqx-fill-state-disabled"));b.textarea.attr("disabled","");a.jqx.aria(b,"aria-disabled",true)}else{a.jqx.aria(b,"aria-disabled",false)}if(b.rtl===true){b.textarea.addClass(b.toThemeProperty("jqx-text-area-element-rtl"))}},_addPopupClasses:function(){var c=this,b=c.$popup;b.addClass(c.toThemeProperty("jqx-popup"));if(a.jqx.browser.msie){b.addClass(c.toThemeProperty("jqx-noshadow"))}b.addClass(c.toThemeProperty("jqx-input-popup"));b.addClass(c.toThemeProperty("jqx-menu"));b.addClass(c.toThemeProperty("jqx-menu-vertical"));b.addClass(c.toThemeProperty("jqx-menu-dropdown"));b.addClass(c.toThemeProperty("jqx-widget"));b.addClass(c.toThemeProperty("jqx-widget-content"));if(c.roundedCorners){b.addClass(c.toThemeProperty("jqx-rc-all"))}},_updateSource:function(){var d=this;var b=function(f){var e=[];e=a.map(f,function(h){if(h===undefined){return null}if(typeof h==="string"||h instanceof String){return{label:h,value:h}}if(typeof h!=="string"&&h instanceof String===false){var g="";var i="";if(d.displayMember!==""&&d.displayMember!==undefined){if(h[d.displayMember]){g=h[d.displayMember]}}if(d.valueMember!==""&&d.valueMember!==undefined){i=h[d.valueMember]}if(g===""){g=h.label}if(i===""){i=h.value}return{label:g,value:i}}return h});return e};if(d.source&&d.source._source){d.adapter=d.source;if(d.adapter._source.localdata){d.adapter.unbindBindingUpdate(d.element.id);d.adapter.bindBindingUpdate(d.element.id,function(){d.source=b(d.adapter.records)})}else{var c={};if(d.adapter._options.data){a.extend(d.adapter._options.data,c)}else{if(d.source._source.data){a.extend(c,d.source._source.data)}d.adapter._options.data=c}d.adapter.unbindDownloadComplete(d.element.id);d.adapter.bindDownloadComplete(d.element.id,function(){d.source=b(d.adapter.records)})}d.source.dataBind();return}if(!a.isFunction(d.source)){d.source=b(d.source)}},open:function(){var d=this;if(a.jqx.isHidden(d.host)){return}var c=a.extend({},d.host.coord(true),{height:d.host[0].offsetHeight});if(d.$popup.parent().length===0){var f=d._id+"_popup";d.$popup[0].id=f;a.jqx.aria(d,"aria-owns",f)}d.$popup.appendTo(a(document.body)).css({position:"absolute",zIndex:d.popupZIndex,top:c.top+c.height,left:c.left}).show();var b=0;var e=d.$popup.children();a.each(e,function(){b+=a(this).outerHeight(true)-1});d.$popup.height(b);d.opened=true;d._raiseEvent("2",{popup:d.$popup});a.jqx.aria(d,"aria-expanded",true);d._addItemHandlers();return d},close:function(){var b=this;b._removeItemHandlers();b.$popup.hide();b.opened=false;b._raiseEvent("3",{popup:b.$popup});a.jqx.aria(b,"aria-expanded",false);return b},_suggest:function(){var c=this,b;c.query=c.textarea[0].value;if(!c.query||c.query.length=0){e.push(f)}else{if(h.toString().toLowerCase().indexOf(b.query.toString().toLowerCase())>=0){g.push(f)}}}}return j.concat(e,g)},_render:function(b){var c=this;b=a(b).map(function(e,f){var h=f;if(f.value!==undefined){if(f.label!==undefined){e=a(c.item).attr({"data-name":f.label,"data-value":f.value})}else{e=a(c.item).attr({"data-name":f.value,"data-value":f.value})}}else{if(f.label!==undefined){e=a(c.item).attr({"data-value":f.label,"data-name":f.label})}else{if(c.displayMember!==undefined&&c.displayMember!==""){e=a(c.item).attr({"data-name":f[c.displayMember],"data-value":f[c.valueMember]})}else{e=a(c.item).attr({"data-value":f,"data-name":f})}}}if(f.label){h=f.label}else{if(c.displayMember){h=f[c.displayMember]}}e.find("a").html(c.highlight(h));var g="",d="";if(c.roundedCorners===true){g=" "+c.toThemeProperty("jqx-rc-all")}if(c.rtl){d=" "+c.toThemeProperty("jqx-rtl")}e[0].className=c.toThemeProperty("jqx-item")+" "+c.toThemeProperty("jqx-menu-item")+g+d;return e[0]});b.first().addClass(c.toThemeProperty("jqx-fill-state-pressed"));c.$popup.html(b);if(!c.dropDownWidth){c.$popup.width(c.host.outerWidth()-6)}else{c.$popup.width(c.dropDownWidth)}return c},_highlight:function(c){var d=this.query;d=d.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");var b=new RegExp("("+d+")","ig");return c.replace(b,function(e,f){return""+f+""})},_select:function(){var b=this;var d=b.$popup.find(".jqx-fill-state-pressed").attr("data-value");var c=b.$popup.find(".jqx-fill-state-pressed").attr("data-name");b.textarea[0].value=b.renderer(c,b.textarea[0].value);b.selectedItem={label:c,value:d};b.host.attr("data-value",d);b.host.attr("data-label",c);b._raiseEvent("1",{item:{label:c,value:d}});b._arrange();b.textarea[0].scrollTop=b.textarea[0].scrollHeight;b._raiseEvent("0");return b.close()},_renderer:function(b){return b},_move:function(c){var b=this;if(!b.opened){return}switch(c.keyCode){case 9:case 13:case 27:c.preventDefault();break;case 38:if(!c.shiftKey){c.preventDefault();b._prev()}break;case 40:if(!c.shiftKey){c.preventDefault();b._next()}break}c.stopPropagation()},_next:function(){var b=this,d=b.$popup.find(".jqx-fill-state-pressed").removeClass(b.toThemeProperty("jqx-fill-state-pressed")),c=d.next();if(!c.length){c=a(b.$popup.find("li")[0])}c.addClass(b.toThemeProperty("jqx-fill-state-pressed"))},_prev:function(){var b=this,d=b.$popup.find(".jqx-fill-state-pressed").removeClass(b.toThemeProperty("jqx-fill-state-pressed")),c=d.prev();if(!c.length){c=b.$popup.find("li").last()}c.addClass(b.toThemeProperty("jqx-fill-state-pressed"))}})})(jqxBaseFramework);(function(a){a.jqx.jqxWidget("jqxPopover","",{});a.extend(a.jqx._jqxPopover.prototype,{defineInstance:function(){var b={arrowOffsetValue:null,animationType:"fade",position:"bottom",animationOpenDelay:"fast",animationCloseDelay:"fast",autoClose:true,isModal:false,height:null,initContent:null,offset:null,rtl:false,showArrow:true,showCloseButton:false,selector:null,title:"",width:null,_toggleElement:null,_popover:null,_popoverTop:0,_popoverLeft:0,_init:false,_ie8:(a.jqx.browser.msie&&a.jqx.browser.version===8),_ie7:(a.jqx.browser.msie&&a.jqx.browser.version<8),_left:0,_top:0,events:["open","close"]};a.extend(true,this,b)},createInstance:function(){var b=this;b._content=b.host.children()},render:function(){var h=this;var c=h.element.id;h._content.detach();h._toggleElement=a(h.selector);if(h._toggleElement.length===0){throw new Error('jqxPopover: Invalid Popover toggler: "'+h.selector+'".')}else{if(h._toggleElement===null){throw new Error("jqxPopover: Missing Popover toggler.")}}var k=a('
      ');a("body").append(k);var g=h.host.data();h.host.detach();h.host=k;h.host.data(g);h.element=k[0];h.element.id=c;h._popover=a("#"+c);var j=h._popover.find(".jqx-popover-title");j.append(h.title);var i=h._popover.find(".jqx-popover-content");i.append(h._content);h._popover.hide();h._removeHandlers();h._addHandlers();h._popover.addClass(h.position);j.addClass(h.toThemeProperty("jqx-widget-header"));h._popover.addClass(h.toThemeProperty("jqx-widget jqx-widget-content jqx-rc-all"));if(h.showArrow){h._popover.addClass(h.toThemeProperty("jqx-popover-arrow-"+h.position))}if(h.rtl){j.addClass(h.toThemeProperty("jqx-rtl"));j.css("direction","rtl");i.css("direction","rtl")}if(h.showCloseButton){var d=a('
      ');var e=a('
      ');d.append(e);j.append(d);j.css("min-height","16px");d.addClass(h.toThemeProperty("jqx-popover-close-button"));h.closeButton=e;if(h.rtl){d.addClass(h.toThemeProperty("jqx-popover-close-button-rtl"))}}if(h.arrowOffsetValue){if(h.position=="bottom"||h.position=="top"){var b=h._popover.find(".jqx-popover-arrow").css("margin-left");h._popover.find(".jqx-popover-arrow").css("margin-left",parseInt(b)+h.arrowOffsetValue)}else{var f=h._popover.find(".jqx-popover-arrow").css("margin-top");h._popover.find(".jqx-popover-arrow").css("margin-top",parseInt(f)+h.arrowOffsetValue)}}if(h.width||h.height){h._popover.css("width",h.width);h._popover.css("height",h.height)}},refresh:function(b){this.render()},destroy:function(){var b=this;if(b.length!==0){b._removeHandlers();b._popover.remove();b._removeModalBackground()}},propertyChangedHandler:function(b,c,f,e){var d=this;d.render()},_stickToToggleElement:function(){var g=this;g._popover.css("left","0px");g._popover.css("top","0px");var j=g._toggleElement;var e=j.offset();var b=j.outerHeight();var h=j.outerWidth();var d=g._popover.height();var i=g._popover.width();switch(g.position){case"left":g._popoverTop=e.top-d/2+b/2;g._popoverLeft=e.left-g._popover.outerWidth();break;case"right":g._popoverTop=e.top-d/2+b/2;g._popoverLeft=e.left+h;break;case"top":g._popoverTop=e.top-g._popover.outerHeight();g._popoverLeft=e.left-i/2+h/2;break;case"bottom":g._popoverTop=e.top+b;g._popoverLeft=e.left-i/2+h/2;break}var c=g.offset?g.offset.left:0;var f=g.offset?g.offset.top:0;g._popover.css("top",f+g._popoverTop);g._popover.css("left",c+g._popoverLeft)},open:function(){var c=this;c._stickToToggleElement();function d(){c._popover.show();c._raiseEvent("0");c._isOpen=true}function b(){if(c.initContent&&c._init===false){c.initContent();c._init=true;c._stickToToggleElement()}}if(c._ie7===true){d();b();return}switch(c.animationType){case"fade":c._popover.fadeIn(c.animationOpenDelay,function(){c._raiseEvent("0");b();c._isOpen=true});break;case"none":d();b();break}c._makeModalBackground()},close:function(){var c=this;if(!c._isOpen){return}function b(){c._popover.hide();c._raiseEvent("1");c._isOpen=false}if(c._ie7===true){b();return}switch(c.animationType){case"fade":c._popover.fadeOut(c.animationCloseDelay,function(){c._raiseEvent("1");c._isOpen=false});break;case"none":b();break}c._removeModalBackground()},_raiseEvent:function(f,c){if(c===undefined){c={owner:null}}var d=this.events[f];c.owner=this;var e=new a.Event(d);e.owner=this;e.args=c;if(e.preventDefault){e.preventDefault()}var b=this._popover.trigger(e);return b},_makeModalBackground:function(){var b=this;if(b.isModal===true){b.modalBackground=a("
      ");b.modalBackground.addClass(this.toThemeProperty("jqx-popover-modal-background"));a(document.body).prepend(b.modalBackground);a(document.body).addClass(b.toThemeProperty("jqx-unselectable"));b.host.addClass(b.toThemeProperty("jqx-selectable"))}},_removeModalBackground:function(){var b=this;if((b.isModal===true)&&(b.modalBackground!==undefined)){b.modalBackground.remove();a(document.body).removeClass(b.toThemeProperty("jqx-unselectable"));b.host.removeClass(b.toThemeProperty("jqx-selectable"))}},_addHandlers:function(){var b=this,c=b.element.id;b.addHandler(a(document),"keydown.jqxPopover"+c,function(d){if(d.keyCode==27){b.close()}});b.addHandler(a(document),"click.jqxPopover"+c,function(d){if(b.closeButton&&d.target==b.closeButton[0]){b.close()}if(b.autoClose===true){if(d.target!=b.element&&!a(d.target).ischildof(b._popover)){if(!b.isModal){b.close()}}}});b.addHandler(a(window),"resize.jqxPopover"+c,function(d){if(b.element.style.display!="none"){b._stickToToggleElement()}});if(b.selector){b.addHandler(b._toggleElement,"click.jqxPopover"+c,function(d){d.stopPropagation();if(b.host.css("display")!="none"){b.close()}else{b.open()}})}},_removeHandlers:function(){var b=this,c=b.element.id;b.removeHandler(a(document),"click.jqxPopover"+c);if(b.selector){b.removeHandler(b._toggleElement,"click.jqxPopover"+c)}b.removeHandler(a(document),"keydown.jqxPopover"+c);b.removeHandler(a(window),"resize.jqxPopover"+c)}})})(jqxBaseFramework);(function(a){a.jqx.jqxWidget("jqxLayout","",{});a.extend(a.jqx._jqxLayout.prototype,{defineInstance:function(){var b={width:null,height:null,minGroupWidth:100,minGroupHeight:100,layout:[],resizable:true,contextMenu:false,rtl:false,events:["create","resize","pin","unpin"]};a.extend(true,this,b)},createInstance:function(){var b=this;b._originalElement=b.host.clone();b._coordinates=[];b._ie7=a.jqx.browser.msie&&a.jqx.browser.version<8;b._touchDevice=a.jqx.mobile.isTouchDevice();b._initialization=true;b.render()},render:function(){var e=this,g,b,h;e._tabbedGroupsList=[];if(e.dockingLayout){e._overlayGroups=[];if(e._initialization===false){g=e.dockingLayout._overlay.detach();b=e.dockingLayout._dropOverlay.detach();h=e.dockingLayout._edgeOverlays.detach()}}if(e._rendered===true){e._detachContent(e.layout[0].items)}e.host.empty();if(!e.host.jqxRibbon){throw new Error("jqxLayout: Missing reference to jqxribbon.js.")}e._setSize();e._addClasses();e._removeHandlers();if(!e._rendered){if(e.layout[0].type!=="layoutGroup"){throw new Error('jqxLayout: Invalid layout structure. The first member of the layout array has to be with type: "layoutGroup".')}var f=e.layout[0].items[0].width,d=e.layout[0].items[0].height;if(!(f&&typeof f==="string"&&f.charAt(f.length-1)==="%"||d&&typeof d==="string"&&d.charAt(d.length-1)==="%")){e.layout[0].initialPxWidth=e.host.width();e.layout[0].initialPxHeight=e.host.height();e._pxToPercent(e.layout[0],true)}}e._createLayout(e.layout,e.host,{type:"host"},0);if(e.resizable===true){e._addResizeFeedbacks();e._getGroupCoordinates();e._addHandlers()}if(e.contextMenu===true){e._initMenu()}if(e._initialization===true){e._initialization=false;e._raiseEvent("0");a.jqx.utilities.resize(e.host,function(){e.render()})}else{if(e.dockingLayout){if(!e._ie7){e.host.append(g,b,h)}else{a("body").append(g,b,h)}e.dockingLayout._trackFloatGroups()}}for(var c=0;c0){a("."+b.element.id+"FloatGroup").jqxWindow({theme:f})}}break;case"layout":case"resizable":b.render();break;case"contextMenu":if(f===true&&!b._menuInitialized){b.render()}break;case"rtl":var c=a("."+b.element.id+"FloatGroup");if(c.length>0){c.jqxWindow({rtl:f})}var e=b.host.add(c);if(f===true){e.find(".jqx-layout-pseudo-window-title-ltr").removeClass(b.toThemeProperty("jqx-layout-pseudo-window-title-ltr")).addClass(b.toThemeProperty("jqx-layout-pseudo-window-title-rtl"));e.find(".jqx-layout-pseudo-window-pin-background-ltr").removeClass(b.toThemeProperty("jqx-layout-pseudo-window-pin-background-ltr")).addClass(b.toThemeProperty("jqx-layout-pseudo-window-pin-background-rtl"));e.find(".jqx-layout-pseudo-window-close-background-ltr").removeClass(b.toThemeProperty("jqx-layout-pseudo-window-close-background-ltr")).addClass(b.toThemeProperty("jqx-layout-pseudo-window-close-background-rtl"));e.find(".jqx-layout-ribbon-header").removeClass(b.toThemeProperty("jqx-layout-ribbon-header-ltr")).addClass(b.toThemeProperty("jqx-layout-ribbon-header-rtl"))}else{e.find(".jqx-layout-pseudo-window-title-rtl").removeClass(b.toThemeProperty("jqx-layout-pseudo-window-title-rtl")).addClass(b.toThemeProperty("jqx-layout-pseudo-window-title-ltr"));e.find(".jqx-layout-pseudo-window-pin-background-rtl").removeClass(b.toThemeProperty("jqx-layout-pseudo-window-pin-background-rtl")).addClass(b.toThemeProperty("jqx-layout-pseudo-window-pin-background-ltr"));e.find(".jqx-layout-pseudo-window-close-background-rtl").removeClass(b.toThemeProperty("jqx-layout-pseudo-window-close-background-rtl")).addClass(b.toThemeProperty("jqx-layout-pseudo-window-close-background-ltr"));e.find(".jqx-layout-ribbon-header").removeClass(b.toThemeProperty("jqx-layout-ribbon-header-rtl")).addClass(b.toThemeProperty("jqx-layout-ribbon-header-ltr"))}e.find(".jqx-ribbon").jqxRibbon({rtl:f});break}}}else{b.render()}},_raiseEvent:function(f,c){if(c===undefined){c={owner:null}}var d=this.events[f];c.owner=this;var e=new a.Event(d);e.owner=this;e.args=c;if(e.preventDefault){e.preventDefault()}var b=this.host.trigger(e);return b},_setSize:function(){var b=this;b.host.css({width:b.width,height:b.height})},_addClasses:function(){var b=this;b.host.addClass(b.toThemeProperty("jqx-layout jqx-widget jqx-widget-content jqx-rc-all"))},_getPercentage:function(c,b,d){return(c/b.widget[d]())*100},_addHandlers:function(){var g=this,b=g.element.id,d,j;g._resize={allowed:false};g._clickedToResize=false;function i(l,o){for(var m=0;m=n.x.from&&l<=n.x.to&&o>=n.y.from&&o<=n.y.to){if(n.orientation==="horizontal"){g.element.style.cursor="col-resize"}else{g.element.style.cursor="row-resize"}g._resize={allowed:true,widget:n.widget,side:n.side};break}else{g.element.style.cursor="default";g._resize.allowed=false}}}function k(l){if(g._resize.allowed===true){var r=g._resize.widget,w=r.current.parent,x=g._percentToPx("width",r.current.minWidth,w),t=g._percentToPx("height",r.current.minHeight,w),n=w.items[r.current.index-1],q=w.items[r.current.index+1];g._resizeStartPosition={x:l.pageX,y:l.pageY};if(!x){x=g._percentToPx("width",g.minGroupWidth,w)}if(!t){t=g._percentToPx("height",g.minGroupHeight,w)}switch(g._resize.side){case"left":var u=g._percentToPx("width",n.minWidth,w);if(!u){u=g._percentToPx("width",g.minGroupWidth,w)}d=n.widget.offset().left+u;j=r.offset().left+r.width()-x;break;case"right":var m=g._percentToPx("width",q.minWidth,w);if(!m){m=g._percentToPx("width",g.minGroupWidth,w)}d=r.offset().left+x;j=q.widget.offset().left+q.widget.width()-m;break;case"top":var v=g._percentToPx("height",n.minHeight,w);if(!v){v=g._percentToPx("height",g.minGroupHeight,w)}d=n.widget.offset().top+v;j=r.offset().top+r.height()-t;break;case"bottom":var o=g._percentToPx("height",q.minHeight,w);if(!o){o=g._percentToPx("height",g.minGroupHeight,w)}d=r.offset().top+t;j=q.widget.offset().top+q.widget.height()-o;break}var p=function(z,A){A=(typeof A==="undefined")?{top:0,left:0}:A;if(z!==top){var y=z.frameElement.getBoundingClientRect();A.left+=y.left;A.top+=y.top;A=p(z.parent,A)}return A},s;g._clickedToResize=true;g._overlay[0].style.display="block";if(g._resize.side==="left"||g._resize.side==="right"){g._verticalFeedback[0].style.height=g._resize.widget.height()+"px";s=g._ie7?p(window).top:0;g._verticalFeedback.offset({top:g._resize.widget.offset().top-g.host.offset().top+a(window).scrollTop()-s})}else{g._horizontalFeedback[0].style.width=g._resize.widget.width()+"px";s=g._ie7?p(window).left:0;g._horizontalFeedback.offset({left:g._resize.widget.offset().left-g.host.offset().left+a(window).scrollLeft()+1-s})}}}function c(n,o,t,r,m){var p=m.charAt(0).toUpperCase()+m.slice(1),s=o.parent,l,q;if(n){l=g._percentToPx(m,t["min"+p],s);q=parseFloat(t[m])/100*o.parent.widget[m]()-r}else{l=g._percentToPx(m,o["min"+p],s);q=parseFloat(o[m])/100*o.parent.widget[m]()-r}if(!l){l=g._percentToPx(m,g["minGroup"+p],s)}if(q=v}w=Math.abs(p-v);if(w===0){r();return}if(q){s=g._getPercentage(c(true,u,y,w,"width"),u.parent,"width");w=Math.abs(s-parseFloat(y.width));y.width=s+"%";u.width=parseFloat(u.width)+w+"%"}else{s=g._getPercentage(c(false,u,y,w,"width"),u.parent,"width");w=Math.abs(s-parseFloat(u.width));u.width=s+"%";y.width=parseFloat(y.width)+w+"%"}if(u.width===n){r();return}}else{n=u.height;if(g._resize.side==="top"){y=u.parent.items[u.index-1];v=m;q=o=v}w=Math.abs(o-v);if(w===0){r();return}if(q){s=g._getPercentage(c(true,u,y,w,"height"),u.parent,"height");w=Math.abs(s-parseFloat(y.height));y.height=s+"%";u.height=parseFloat(u.height)+w+"%"}else{s=g._getPercentage(c(false,u,y,w,"height"),u.parent,"height");w=Math.abs(s-parseFloat(u.height));u.height=s+"%";y.height=parseFloat(y.height)+w+"%"}if(u.height===n){r();return}}r();g.render();g._raiseEvent("1",{item:u})}}function f(m){if(g._clickedToResize===true){var l=m.pageX,n=m.pageY;if(g._resize.side==="left"||g._resize.side==="right"){g._verticalFeedback[0].style.display="block";if(lj){l=j;g._verticalFeedback.addClass(g.toThemeProperty("jqx-layout-resize-feedback-warning"))}else{g._verticalFeedback.removeClass(g.toThemeProperty("jqx-layout-resize-feedback-warning"))}}g._verticalFeedback.offset({left:l-2})}else{g._horizontalFeedback[0].style.display="block";if(nj){n=j;g._horizontalFeedback.addClass(g.toThemeProperty("jqx-layout-resize-feedback-warning"))}else{g._horizontalFeedback.removeClass(g.toThemeProperty("jqx-layout-resize-feedback-warning"))}}g._horizontalFeedback.offset({top:n-2});g._horizontalFeedback.offset({left:g._resize.widget.offset().left+a(window).scrollLeft()+1})}}}g._docUP=e;if(!g._touchDevice){g.addHandler(g.host,"mousemove.jqxLayout"+b,function(m){if(g._clickedToResize===false&&(!g.dockingLayout||g.dockingLayout&&g.dockingLayout._windowDragged!==true)){var l=m.pageX,n=m.pageY;i(l,n)}});g.addHandler(a(document),"mousemove.jqxLayout"+b,function(l){f(l)});g.addHandler(g.host,"mousedown.jqxLayout"+b,function(l){k(l)});g.addHandler(a(document),"mouseup.jqxLayout"+b,function(l){e(l)})}else{g.addHandler(a(document),"touchstart.jqxDockingLayout"+b,function(m){var l=m.originalEvent.touches[0];i(l.pageX,l.pageY);k(l)});g.addHandler(a(document),"touchmove.jqxDockingLayout"+b,function(m){var l=m.originalEvent.touches[0];f(l)});g.addHandler(a(document),"touchend.jqxDockingLayout"+b,function(m){var l=m.originalEvent.changedTouches[0];e(l)})}g.addHandler(a(document),"selectstart.jqxLayout"+b,function(){if(g._clickedToResize===true){return false}});if(g.dockingLayout){try{if(document.referrer!==""||window.frameElement){if(window.top.document.addEventListener){window.top.document.addEventListener("mouseup",g._mouseupHandler,false)}else{if(window.top.document.attachEvent){window.top.document.attachEvent("onmouseup",g._mouseupHandler)}}}}catch(h){}}},_removeHandlers:function(){var c=this,d=c.element.id;if(!c._touchDevice){c.removeHandler(c.host,"mousemove.jqxLayout"+d);c.removeHandler(a(document),"mousemove.jqxLayout"+d);c.removeHandler(c.host,"mousedown.jqxLayout"+d);c.removeHandler(a(document),"mouseup.jqxLayout"+d)}else{c.removeHandler(a(document),"touchstart.jqxLayout"+d);c.removeHandler(a(document),"touchmove.jqxLayout"+d);c.removeHandler(a(document),"touchend.jqxLayout"+d)}c.removeHandler(a(document),"selectstart.jqxLayout"+d);if(c.dockingLayout){try{if(document.referrer!==""||window.frameElement){if(window.top.document.removeEventListener){window.top.document.removeEventListener("mouseup",c._mouseupHandler,false)}else{if(window.top.document.detachEvent){window.top.document.detachEvent("onmouseup",c._mouseupHandler)}}}}catch(b){}}a("."+d+"FloatGroup").off("close")},_createLayout:function(o,e,k){function m(w){var v=e.children(),x=v.eq(0),i=v.eq(1);x.text(w.title);if(!w.content){c=f._originalElement.find('[data-container="'+w.contentContainer+'"]').html()}else{c=w.content}if(c===undefined){c=""}i.html(c)}var f=this,d=k.type;for(var s=0;s
      ");b.addClass(f.toThemeProperty("jqx-layout-group-default"));if(p.orientation==="horizontal"){b.addClass(f.toThemeProperty("jqx-layout-group-default-horizontal"))}e.append(b);if(d==="host"){b.addClass(f.toThemeProperty("jqx-layout-group-root"))}else{var r=k.orientation==="horizontal"?p.width:"100%";var n=k.orientation==="horizontal"?"100%":p.height;b.css({width:r,height:n})}break;case"tabbedGroup":if(d!=="floatGroup"){b=a('
        ');e.append(b);f._addRightClickHandler(b.find(".jqx-layout-window-header"),b)}else{b=a('
          ');e.children().eq(1).append(b)}break;case"documentGroup":case"autoHideGroup":b=a("
            ");e.append(b);if(p.type==="documentGroup"){b.find("ul").addClass("jqx-layout-ribbon-header jqx-layout-ribbon-header-"+(f.rtl?"rtl":"ltr"))}if(f._ie7&&p.type==="autoHideGroup"){b.css("z-index",9999-500*s)}break;case"floatGroup":if(!f._rendered||p.programmaticallyAdded===true){if(!f.dockingLayout){throw new Error("Float groups are only available in the jqxDockingLayout widget. Initialize a jqxDockingLayout (requires jqxdockinglayout.js) instead of a jqxLayout.")}b=a('
            ');e.append(b);if(p.programmaticallyAdded===true){delete p.programmaticallyAdded}}else{continue}break;case"layoutPanel":b={};if(d==="tabbedGroup"){var t=e.find(".jqx-layout-window-header").text();if(t===""){e.find(".jqx-layout-window-header div:eq(0)").text(p.title)}l=a("
          • "+p.title+"
          • ");e.find(".jqx-layout-ribbon-header").append(l);if(!f._rendered&&!p.docked){c=f._originalElement.find('[data-container="'+p.contentContainer+'"]').html();if(c===undefined){c=""}}else{c=p.detachedContent}q=a("
            ");q.append(c);e.find(".jqx-layout-ribbon-content").append(q);f._addRightClickHandler(l,b)}else{if(d==="autoHideGroup"){a(e.children()[0]).append("
          • "+p.title+"
          • ");if(!f._rendered){c=f._originalElement.find('[data-container="'+p.contentContainer+'"]').html();if(c===undefined){c=""}}else{c=p.detachedContent}q=a("
            ");q.append(c);var h;if(k.alignment==="left"||k.alignment==="right"){h="jqx-layout-group-auto-hide-content-vertical"}else{h="jqx-layout-group-auto-hide-content-horizontal"}q.addClass(f.toThemeProperty(h));var g=a('
            '+p.title+"
            ");g.children().append(q);a(e.children()[1]).append(g);f._addRightClickHandler(g.find(".jqx-layout-window"),b)}else{if(d==="floatGroup"){m(p)}}}break;case"documentPanel":b={};if(d==="floatGroup"){m(p)}else{l=a("
          • "+p.title+"
          • ");a(e.children()[0]).append(l);if(!f._rendered){c=f._originalElement.find('[data-container="'+p.contentContainer+'"]').html();if(c===undefined){c=""}}else{c=p.detachedContent}q=a("
            ");q.append(c);a(e.children()[1]).append(q);f._addRightClickHandler(l,b)}break}if(p.items&&p.items.length>0){var j=b;f._createLayout(p.items,j,p)}f._createWidget(k,e,p,b,s);if(f.dockingLayout&&(p.type==="documentGroup"||p.type==="tabbedGroup"||(p.type==="layoutGroup"&&p.items.length===0))){var u={element:b,width:b.width(),height:b.height(),offset:b.offset(),settings:p};f._overlayGroups.push(u);if(p.parent.type==="floatGroup"){p.parent._overlayGroup=u}}}},_createWidget:function(m,k,i,e,g){var f=this,b=m.orientation==="horizontal"?i.width:"100%",l=m.orientation==="horizontal"?"100%":i.height,d=false;i.parent=m;i.widget=e;i.index=g;if(i.widget){i.widget.current=i}function h(){var o=0;for(var n=0;n
            ');p.append(c);j+=16}if((e==="tabbedGroup"&&d.current.allowPin!==false)||(e==="autoHideGroup"&&d.current.parent.allowUnpin!==false)){var l;switch(e){case"tabbedGroup":l="jqx-layout-pseudo-window-pin-icon";d.pinned=false;break;case"autoHideGroup":l="jqx-layout-pseudo-window-pinned-icon";d.pinned=true;break}h=a('
            ');if(c){h.addClass(i.toThemeProperty("jqx-layout-pseudo-window-pin-background-"+f))}else{if(i.rtl===false){h.css("right",0)}}p.append(h);j+=16;if(i.dockingLayout&&e==="autoHideGroup"){i.dockingLayout._addAutoHideGroupHandlers(d.current,p,d.current.title,a(d.children()[1]).contents())}}u.css("max-width",p.width()-j);var o=a(d.children()[1]);o.css("height",1+d.height()-p.outerHeight());o.css("margin-left","-1px");o.css("margin-right","-1px");i._addWindowPanelHandlers(c,h,d);return u},_addWindowPanelHandlers:function(g,c,b){var f=this,h=f.element.id,e=b.current,d=e.type;if(g){f.addHandler(g,"click.jqxLayout"+h,function(){if(d==="tabbedGroup"&&e.items.length>1){var i=b.find(".jqx-ribbon-item-selected")[0]._index;f._close(e.items[i])}else{b.fadeOut(function(){f._close(e);b.remove()})}})}if(c){f.addHandler(c,"click.jqxLayout"+h,function(){if(d==="tabbedGroup"&&e.pinValid===true){f._pin(e)}else{if(d==="layoutPanel"){f._unPin(e.parent)}}})}},_getGroupCoordinates:function(){var d=this;d._coordinates=[];function b(e){return e==="layoutGroup"||e==="tabbedGroup"||e==="documentGroup"}function c(n){for(var j=0;j');b._verticalFeedback=a('
            ');b._overlay=a('
            ');if(b.dockingLayout&&b.dockingLayout._windowDragged){b._overlay[0].style.display="block"}b.host.append(b._horizontalFeedback,b._verticalFeedback,b._overlay)},_detachContent:function(h,d){function c(l){if(l.prevent===true){l.prevent=false}else{var i=l.parent.widget.find(".jqx-ribbon-content-section").eq(l.index);f=i.contents().detach();i.remove();l.detachedContent=f;if(d===true){l.prevent=true}}}for(var e=h.length-1;e>=0;e--){var k=h[e],j=k.type,f;if(j==="layoutGroup"||j==="tabbedGroup"||j==="documentGroup"||j==="autoHideGroup"||j==="floatGroup"){if(k.items&&k.items.length>0){this._detachContent(k.items)}}else{if(j==="layoutPanel"){if(k.parent.type==="tabbedGroup"){c(k)}else{if(k.parent.type==="autoHideGroup"){if(k.prevent===true){k.prevent=false}else{if(k.parent.alignment==="left"||k.parent.alignment==="right"){var b=k.parent.widget.find(".jqx-layout-group-auto-hide-content-vertical").eq(e);f=b.contents().detach();b.remove()}else{var g=k.parent.widget.find(".jqx-layout-group-auto-hide-content-horizontal").eq(e);f=g.contents().detach();g.remove()}k.detachedContent=f;if(d===true){k.prevent=true}}}}}else{if(j==="documentPanel"){c(k)}}}}},_pxToPercent:function(f,b){function g(k,j){var h,i;k=parseInt(k,10);if(b){i=e.host[j]()}else{i=f["initialPx"+j.charAt(0).toUpperCase()+j.slice(1)]}h=(100*k/i).toString()+"%";return h}var e=this;for(var d=0;d0){e._pxToPercent(c,false)}}},_percentToPx:function(d,c,b){if(c===undefined){return undefined}else{if(typeof c!=="string"||(typeof c==="string"&&c.charAt(c.length-1)!=="%")){return parseFloat(c)}else{return parseFloat(c.slice(0,c.length-1))/100*b.widget[d]()}}},_swapPanelsInLayout:function(f,d,c){var e=f[d];f[d]=f[c];f[d].index=d;f[c]=e;f[c].index=c},_initMenu:function(){var c=this;if(!c._menuInitialized){var f=c.element.id,e="",d=function(h,g,i){c._menu.jqxMenu("disable","dockOption"+f,h);c._menu.jqxMenu("disable","autoHideOption"+f,g);c._menu.jqxMenu("disable","closeOption"+f,i)};if(!c.host.jqxMenu){throw new Error("jqxLayout: Missing reference to jqxmenu.js.")}if(c.dockingLayout){e='
          • Float
          • '}c._menu=a('
              '+e+'
            • Dock
            • Auto Hide
            • Close
            ');a("body").append(c._menu);c._menu.jqxMenu({theme:c.theme,width:100,height:"auto",autoOpenPopup:false,mode:"popup",popupZIndex:99999,rtl:c.rtl});c._menuInitialized=true;c._menu.on("itemclick",function(g){c._handleMenuItemClick(a(g.target).text())});var b=function(g){if(c.dockingLayout){return g.allowClose===false}else{return g.allowClose!==true}};c._menu.on("shown",function(){switch(c._contextMenuTarget.type){case"tabbedGroup":d(true,c._contextMenuTarget.allowPin===false||c._contextMenuTarget.pinValid===false,b(c._contextMenuTarget));break;case"layoutPanel":var g=c._contextMenuTarget.parent;if(g.type==="tabbedGroup"){d(true,g.allowPin===false||c._isMiddleTabbedGroup(g),b(g))}else{if(g.type==="autoHideGroup"){d(g.allowUnpin===false,true,b(c._contextMenuTarget))}}break;case"documentPanel":d(true,true,b(c._contextMenuTarget));break}})}},_addRightClickHandler:function(d,b){var c=this;if(c.contextMenu===true){c.addHandler(d,"mousedown.jqxLayout"+c.element.id,function(e){if(c.contextMenu===true&&((e.which&&e.which===3)||(e.button&&e.button===2))){var f=a(window).scrollTop(),g=a(window).scrollLeft();c._contextMenuTarget=b.current;c._menu.jqxMenu("open",parseInt(e.clientX,10)+5+g,parseInt(e.clientY,10)+5+f)}});c.addHandler(d,"contextmenu.jqxLayout"+c.element.id,function(){if(c.contextMenu===true){return false}})}},_handleMenuItemClick:function(f){var e=this,c=e._contextMenuTarget.type,b=e._contextMenuTarget.parent;switch(f){case"Float":switch(c){case"tabbedGroup":e.dockingLayout._floatTabbedGroup(e._contextMenuTarget,e._contextMenuTarget.widget);break;case"layoutPanel":if(b.type==="tabbedGroup"){e.dockingLayout._removeByDragHandler(undefined,b,b.widget,e._contextMenuTarget.index,false)}else{if(b.type==="autoHideGroup"){var d=e._contextMenuTarget.parent.widget.find(".jqx-ribbon-content").children().eq(e._contextMenuTarget.index).find(".jqx-layout-window").children().eq(1).contents();e.dockingLayout._floatAutoHideGroup(e._contextMenuTarget,e._contextMenuTarget.title,d)}}break;case"documentPanel":e.dockingLayout._removeByDragHandler(undefined,b,b.widget,e._contextMenuTarget.index,false);break}break;case"Dock":e._unPin(e._contextMenuTarget.parent);break;case"Auto Hide":switch(c){case"tabbedGroup":e._pin(e._contextMenuTarget);break;case"layoutPanel":e._pin(e._contextMenuTarget.parent);break}break;case"Close":switch(c){case"tabbedGroup":e._close(e._contextMenuTarget);break;case"layoutPanel":if(e._contextMenuTarget.parent.items.length>1){e._close(e._contextMenuTarget)}else{e._close(e._contextMenuTarget.parent)}break;case"documentPanel":e._closeDocumentPanel(e._contextMenuTarget.index,e._contextMenuTarget.parent.items,e._contextMenuTarget.parent,e._contextMenuTarget.parent.widget,false);break}}},_closeDocumentPanel:function(c,f,b,j,e){var g=this;if(e===false){j.jqxRibbon("removeAt",c)}if(f.length>1){var h=false;f[c].removed=true;g._updateLayout(f);for(var d=0;d1;if(d){if(c.parent.items.length===2){var b=c.index===0?1:0;if(c.parent.items[b].type==="autoHideGroup"){d=false}}}if(d){d=d&&!e._isMiddleTabbedGroup(c)}c.pinValid=d;if(d===false){c.widget.find(".jqx-layout-pseudo-window-pin-background").addClass("jqx-fill-state-disabled")}},_mouseupHandler:function(d){var c=this;try{if(c.dockingLayout){c._docUP(d);c.dockingLayout._windowCreate=false;c.dockingLayout._hideOverlays()}}catch(b){}}})})(jqxBaseFramework);(function(a){a.jqx.jqxWidget("jqxDockingLayout","jqxLayout",{});a.extend(a.jqx._jqxDockingLayout.prototype,{defineInstance:function(){if(this.base===null){throw new Error("jqxDockingLayout: Missing reference to jqxlayout.js.")}this.base.dockingLayout=this;var b={events:["float","dock"]};a.extend(true,this,b)},createInstance:function(){var b=this;if(!b.base.host.jqxWindow){throw new Error("jqxDockingLayout: Missing reference to jqxwindow.js.")}b._oldIE=a.jqx.browser.msie&&a.jqx.browser.version<9;b._addClasses();b._createOverlay();b._createEdgeOverlays()},loadLayout:function(b){if(b!==undefined&&a.isEmptyObject(b)===false){var c=this.base,d=c.element.id;if(a("."+d+"FloatGroup").length>0){a("."+d+"FloatGroup").off();a("."+d+"FloatGroup").jqxWindow("destroy")}c.loadLayout(b)}},destroy:function(){var b=this,c=b.base,d=c.element.id;if(a("."+d+"FloatGroup").length>0){a("."+d+"FloatGroup").off();a("."+d+"FloatGroup").jqxWindow("destroy")}b._removeHandlers();c.destroy()},addFloatGroup:function(c,k,d,j,h,e,g){var b=this.base,i={type:"floatGroup",width:c,height:k,position:d,items:[],programmaticallyAdded:true},f={type:j,title:h,content:e,initContent:g};i.items.push(f);b.layout.push(i);b.render()},_raiseEvent:function(f,c){if(c===undefined){c={owner:null}}var d=this.events[f];c.owner=this;var e=new a.Event(d);e.owner=this;e.args=c;if(e.preventDefault){e.preventDefault()}var b=this.base.host.trigger(e);return b},_addClasses:function(){var b=this.base;b.host.addClass(b.toThemeProperty("jqx-docking-layout"))},_removeHandlers:function(){var b=this,c=b.base,d=c.element.id;b.removeHandler(a(document),"mousemove.jqxDockingLayout"+d);b.removeHandler(c.host,"mouseleave.jqxDockingLayout"+d);if(c._touchDevice){b.removeHandler(a(document),"touchmove.jqxDockingLayout"+d);b.removeHandler(a(document),"touchend.jqxDockingLayout"+d)}},_removeByDragHandler:function(b,i,e,g,d){if(g===undefined){g=b.args.draggedIndex}if(d===undefined){d=true}if(!e.hasClass("jqx-ribbon")){e=e.find(".jqx-ribbon")}var f=this,j=i.items,c=j[g],h=i.widget.find(".jqx-ribbon-content-section").eq(g).contents().detach();f._createFloatGroup(b,c.title,h,"documentGroup",i,c);f.base._closeDocumentPanel(g,j,i,e,d)},_floatTabbedGroup:function(h,f,b){var g=this,l,d,j=[],c=f.find(".jqx-ribbon");for(var e=0;e
            ');a("body").append(d);if(f==="documentGroup"){if(B){o=B.args.x;n=B.args.y}v=F.widget.width();u=F.widget.height();D=z}else{if(f==="tabbedGroup"){if(B){o=B.pageX;n=B.pageY}v=F.widget.width();u=F.widget.height();D="";b=a("
            ");var G=a("
            "),E=a('
              ');for(var C=0;C");var r=a("
            • "+h.title+"
            • ");E.append(r);t.append(z[C]);G.append(t)}b.append(E);b.append(G);D=b}else{if(f==="autoHideGroup"){if(B){o=B.pageX;n=B.pageY}v=F.parent.widget.find(".jqx-ribbon-content").width();u=F.parent.widget.height();D=z}}}if(!o&&!n){var c=g.host.offset();o=(g.host.width()-v)/2+c.left+100;n=(g.host.height()-u)/2+c.top+10}d.on("moved close",function(j){l._hideOverlays();var i=d.current;if(j.type==="moved"){i.position.x=j.args.x;i.position.y=j.args.y;if(i._overlayGroup){l._updateOverlayGroup(i._overlayGroup)}l._clearTextSelection();l._windowCreate=false;l._hideOverlays()}else{if(i._overlayGroup){i._overlayGroup.removed=true;l._updateOverlayGroups()}i.removed=true;g._updateLayout(g.layout)}});d.on("resized",function(j){var i=d.current,k=a(this).offset();i.width=j.args.width;i.height=j.args.height;i.position.x=k.left;i.position.y=k.top;if(i._overlayGroup){l._updateOverlayGroup(i._overlayGroup)}});d.jqxWindow({theme:g.theme,title:H,content:D,width:v,maxWidth:null,height:u,maxHeight:null,position:{x:o-100,y:n-10},closeButtonAction:"close",rtl:g.rtl,initContent:function(){var k=d.find(".jqx-window-header"),i=g._touchDevice?"touchstart":"mousedown",j;if(f==="autoHideGroup"){j=F.parent}else{j=F}if(B){l._draggedWindow={fromGroup:j,fromPanel:p,title:H,element:d};k.trigger("mousedown",[o,n]);l._windowDragged=true;l._windowCreate=true;l._interval();if(g.resizable){g._overlay[0].style.display="block"}l._showEdgeOverlays()}k.on(i,function(){l._windowDragged=true;if(d.current._overlayGroup){d.current._overlayGroup.self=true}l._interval();if(g.resizable){g._overlay[0].style.display="block"}l._draggedWindow={fromGroup:j,fromPanel:p,title:H,element:d};l._showEdgeOverlays()});k.on("mouseup",function(){l._hideOverlays();l._windowCreate=false});if(f==="tabbedGroup"){b.jqxRibbon({theme:g.theme,width:"100%",height:"100%",position:"bottom",selectedIndex:e,selectionMode:"click",animationType:"none",rtl:g.rtl,reorder:true,_removeByDrag:true});b.on("select",function(x){if(!(x.owner.widgetName&&x.owner.widgetName!=="jqxRibbon")){var y=d.current.items[0].items[x.args.selectedIndex];d.jqxWindow("setTitle",y.title);y.selected=true}});b.on("unselect",function(x){if(!(x.owner.widgetName&&x.owner.widgetName!=="jqxRibbon")){d.current.items[0].items[x.args.unselectedIndex].selected=false}});b.on("reorder",function(x){g._swapPanelsInLayout(d.current.items[0].items,x.args.newIndex,x.args.oldIndex)});b.on("_removeByDrag",function(x){l._removeByDragHandler(x,d.current.items[0],b);if(d.current.items[0].items.length===1){b.jqxRibbon({_removeByDrag:false})}})}}});var m={type:"floatGroup",parent:{type:"host"},widget:d,position:{x:o-100,y:n-10},index:g.layout.length,width:v,height:u},s,q;d.current=m;if(p){m.items=[];g._copyItem(p,m.items);s=m.items;q=m}else{m.items=[{type:"tabbedGroup",items:[],parent:m,widget:b}];s=m.items[0].items;for(var A=0;A');var c=a('
              ');e._overlay.append(c);e._overlayCenter=e._overlay.find(".jqx-docking-layout-overlay-square-center").children();e._dropOverlay=a('
              ');if(!f._ie7){f.host.append(e._overlay,e._dropOverlay)}else{a("body").append(e._overlay,e._dropOverlay)}e._addOverlayHandlers();e._squares=e._overlay.find(".jqx-docking-layout-overlay-square-top").add(e._overlay.find(".jqx-docking-layout-overlay-square-left")).add(e._overlay.find(".jqx-docking-layout-overlay-square-center")).add(e._overlay.find(".jqx-docking-layout-overlay-square-right")).add(e._overlay.find(".jqx-docking-layout-overlay-square-bottom"));e._sansCenter=e._squares.not(".jqx-docking-layout-overlay-square-center").find(".jqx-docking-layout-overlay-inner-square");var d=false;function h(k,j,m,l){e._dropOverlay.show();e._dropOverlay[0].style.width=k+"px";e._dropOverlay[0].style.height=j+"px";e._dropOverlay.offset({left:m,top:l})}function g(l){l=l.closest(".jqx-docking-layout-overlay-square");d=l;if(l.find(".jqx-docking-layout-overlay-inner-square").hasClass("jqx-fill-state-disabled")){return}var m=e._dropToGroup.element.width(),k=e._dropToGroup.element.height(),j=e._dropToGroup.element.offset();if(l.hasClass("jqx-docking-layout-overlay-square-top")){h(m,k/2,j.left,j.top)}else{if(l.hasClass("jqx-docking-layout-overlay-square-left")){h(m/2,k,j.left,j.top)}else{if(l.hasClass("jqx-docking-layout-overlay-square-center")&&!e._overlayCenter.hasClass("jqx-docking-layout-square-disabled")){h(m,k,j.left,j.top)}else{if(l.hasClass("jqx-docking-layout-overlay-square-right")){h(m/2,k,j.left+m/2,j.top)}else{if(l.hasClass("jqx-docking-layout-overlay-square-bottom")){h(m,k/2,j.left,j.top+k/2)}else{if(f._touchDevice){e._dropOverlay.hide();d=false}}}}}}}function b(t){var l=e._dropToGroup.settings;if(t.find(".jqx-docking-layout-overlay-inner-square").hasClass("jqx-fill-state-disabled")){e._hideOverlays();return}if(t.hasClass("jqx-docking-layout-overlay-square-top")){e._dropHandler(0,"vertical","height","top")}else{if(t.hasClass("jqx-docking-layout-overlay-square-left")){e._dropHandler(0,"horizontal","width","left")}else{if(t.hasClass("jqx-docking-layout-overlay-square-center")){var p=e._getDraggedWindowInformation(),s=p.title,q=p.content,k,r;if(l.type==="documentGroup"){k=l.widget;r="documentPanel"}else{if(l.type==="tabbedGroup"){if(l.parent.type==="floatGroup"){k=l.widget}else{k=l.widget.find(".jqx-ribbon")}r="layoutPanel"}}if(l.type==="layoutGroup"){e._dropToEmptyLayoutGroup(p)}else{for(var n=0;n=d&&l<=d+b&&k>=j&&k<=j+m){if(((o.settings.type==="documentGroup"&&g._draggedWindow.fromGroup.type==="documentGroup")||(o.settings.type==="tabbedGroup"&&(g._draggedWindow.fromGroup.type==="tabbedGroup"||g._draggedWindow.fromGroup.type==="autoHideGroup"))||(o.settings.type==="layoutGroup"))&&o.settings.allowDrop!==false){g._overlayCenter.removeClass(c.toThemeProperty("jqx-fill-state-disabled"))}else{g._overlayCenter.addClass(c.toThemeProperty("jqx-fill-state-disabled"));if(o.settings.parent.type==="floatGroup"){return}}if(o.settings.parent.type==="floatGroup"){g._sansCenter.addClass(c.toThemeProperty("jqx-fill-state-disabled"))}else{g._sansCenter.removeClass(c.toThemeProperty("jqx-fill-state-disabled"))}g._overlay[0].style.display="block";g._overlay.offset({left:parseInt(d+b/2-h/2,10),top:parseInt(j+m/2-n/2,10)});g._dropToGroup=o;return}}}g._overlay[0].style.display="none"},_dropHandler:function(p,u,w,z){var f=this,d=f.base,h=f._dropToGroup.settings,c=h.parent,m=f._getDraggedWindowInformation(),A=m.title,r=m.content,o=m.groupType,y=m.itemType,l=[],b,v;if(c.orientation===u){b=h.index+p;v={type:o,parent:c};v[w]=f._draggedWindow.element[w]();for(var t=0;t
              ',j='
              ',i;if(e==="left"||e==="top"){i=g+j}else{i=j+g}var f=a('
              '+i+"
              ");return f}var c=this,d=c.base;c._leftOverlay=b("left");c._rightOverlay=b("right");c._topOverlay=b("top");c._bottomOverlay=b("bottom");c._edgeOverlays=c._leftOverlay.add(c._rightOverlay).add(c._topOverlay).add(c._bottomOverlay);if(!d._ie7){d.host.append(c._edgeOverlays)}else{a("body").append(c._edgeOverlays)}c._addEdgeOverlaysHandlers()},_addEdgeOverlaysHandlers:function(){function g(k,j,m,l){d._dropOverlay.show();d._dropOverlay[0].style.width=k;d._dropOverlay[0].style.height=j;d._dropOverlay.offset({left:m,top:l})}var d=this,e=d.base,i=e.element.id,c,f=false;function h(j){c=e.host.offset();j=a(j).closest(".jqx-docking-layout-overlay-square-edge")[0];f=j;switch(j){case d._leftOverlay[0]:g("100px",e.host.height()+"px",c.left,c.top);break;case d._rightOverlay[0]:g("100px",e.host.height()+"px",c.left+e.host.width()-100,c.top);break;case d._topOverlay[0]:g(e.host.width()+"px","100px",c.left,c.top);break;case d._bottomOverlay[0]:g(e.host.width()+"px","100px",c.left,c.top+e.host.height()-100);break;default:if(e._touchDevice){f=false}}}function b(j){switch(j){case d._leftOverlay[0]:d._dropToEdge("left",0,"horizontal","width");break;case d._rightOverlay[0]:d._dropToEdge("right",e.layout[0].items.length-1,"horizontal","width");break;case d._topOverlay[0]:d._dropToEdge("top",0,"vertical","height");break;case d._bottomOverlay[0]:d._dropToEdge("bottom",e.layout[0].items.length-1,"vertical","height");break}}if(!e._touchDevice){d.addHandler(d._edgeOverlays,"mouseenter.jqxDockingLayout"+i,function(){h(this)});d.addHandler(d._edgeOverlays,"mouseleave.jqxDockingLayout"+i,function(){d._dropOverlay.hide()});d.addHandler(d._edgeOverlays,"mouseup.jqxDockingLayout"+i,function(){b(this)})}else{d.addHandler(a(document),"touchmove.jqxDockingLayout"+i,function(k){if(d._windowDragged){k.preventDefault();var l=k.originalEvent.touches[0],j=a(document.elementFromPoint(l.pageX,l.pageY));h(j)}});d.addHandler(a(document),"touchend.jqxDockingLayout"+i,function(){if(f!==false){b(f);f=false}})}},_dropToEdge:function(c,d,u,w){var f=this,b=f.base,h=b.layout[0],m=f._getDraggedWindowInformation(),z=m.title,r=m.content,o=m.groupType,y=m.itemType,l=[],v,q;f._removeFloatGroupObject(f._draggedWindow.element.current);if(h.orientation===u){v={type:o,parent:h};v[w]=f._draggedWindow.element[w]();for(var t=0;t=0;b--){var c=d[b];if(c.removed===true){d.splice(b,1)}}},_clearTextSelection:function(){try{if(document.selection){document.selection.empty()}else{if(window.getSelection){if(window.getSelection().empty){window.getSelection().empty()}else{if(window.getSelection().removeAllRanges){window.getSelection().removeAllRanges()}}}}}catch(b){}}})})(jqxBaseFramework);(function(a){a.jqx.jqxWidget("jqxResponsivePanel","",{});a.extend(a.jqx._jqxResponsivePanel.prototype,{defineInstance:function(){var b={width:null,height:null,collapseBreakpoint:1000,collapseWidth:null,toggleButton:null,toggleButtonSize:30,animationType:"fade",animationDirection:"left",animationShowDelay:"fast",animationHideDelay:"fast",autoClose:true,initContent:null,_collapsed:false,_opened:false,_init:false,_ie7:(a.jqx.browser.msie&&a.jqx.browser.version<8),events:["collapse","expand","open","close"]};a.extend(true,this,b)},createInstance:function(){var b=this;if(b.initContent&&b._init===false){b.initContent();b._init=true}b._render(true)},_render:function(c){var d=this;if(c===true&&d.toggleButton){d._toggleButton=a(d.toggleButton);if(d._toggleButton.length===0){throw new Error('jqxResponsivePanel: Invalid toggleButton selector: "'+d.toggleButton+'".')}var b=a('
              ');d._toggleButton.append(b)}d._setSize();d._addClasses();if(c===false){d._removeHandlers()}d._addHandlers();d._checkWindowSize()},render:function(){this._render(false)},refresh:function(b){if(b!==true){this._checkWindowSize()}},destroy:function(b){var c=this;c._removeHandlers();c.host.remove();if(b!==true&&c.toggleButton){c._toggleButton.remove()}},propertyChangedHandler:function(b,c,e,d){if(d!==e&&c!=="toggleButton"&&c!=="initContent"){switch(c){case"width":case"height":b.host.css(c,d);break;case"collapseBreakpoint":b._checkWindowSize();break;case"toggleButtonSize":if(b.toggleButton){b._toggleButton.css({width:d,height:d})}break;default:b.render()}}},open:function(){var b=this;if(b._collapsed===true&&b._opened===false){function d(){b.host.show();b._opened=true;b._raiseEvent("2");if(b.initContent&&b._init===false){b.initContent();b._init=true}}if(b._ie7===true){d();return}switch(b.animationType){case"fade":b.host.fadeIn(b.animationShowDelay,function(){b._raiseEvent("2");b._opened=true;if(b.initContent&&b._init===false){b.initContent();b._init=true}});break;case"slide":var c=b.animationDirection;if(c==="top"){c="up"}else{if(c==="bottom"){c="down"}}b._slide(b.host,{mode:"show",direction:c,duration:b.animationShowDelay});break;case"none":d();break}}},close:function(){var b=this;if(b._collapsed===true&&b._opened===true){if(b._ie7===true){b.host.hide();b._opened=false;b._raiseEvent("3");return}switch(b.animationType){case"fade":b.host.fadeOut(b.animationHideDelay,function(){b._opened=false;b._raiseEvent("3")});break;case"slide":var c=b.animationDirection;if(c==="top"){c="up"}else{if(c==="bottom"){c="down"}}b._slide(b.host,{mode:"hide",direction:c,duration:b.animationHideDelay});break;case"none":b.host.hide();b._opened=false;b._raiseEvent("3");break}}},_raiseEvent:function(f,c){if(c===undefined){c={owner:null}}var d=this.events[f];c.owner=this;var e=new a.Event(d);e.owner=this;e.args=c;if(e.preventDefault){e.preventDefault()}var b=this.host.trigger(e);return b},_setSize:function(){var b=this;b.host.css("width",b.width);b.host.css("height",b.height);if(b.toggleButton){b._toggleButton.css({width:b.toggleButtonSize,height:b.toggleButtonSize})}},_addClasses:function(){var b=this;b.host.addClass(b.toThemeProperty("jqx-responsive-panel"));b.host.addClass(b.toThemeProperty("jqx-widget"));b.host.addClass(b.toThemeProperty("jqx-widget-content"));b.host.addClass(b.toThemeProperty("jqx-rc-all"));if(b.toggleButton){b._toggleButton.addClass(b.toThemeProperty("jqx-responsive-panel-button"));b._toggleButton.addClass(b.toThemeProperty("jqx-fill-state-normal"));b._toggleButton.addClass(b.toThemeProperty("jqx-rc-all"))}},isCollapsed:function(){return this._collapsed},isOpened:function(){return this._opened},_addHandlers:function(){var b=this,c=b.element.id;b.addHandler(b.host,"click.jqxResponsivePanel"+c,function(d){d.stopPropagation()});b.addHandler(a(document),"click.jqxResponsivePanel"+c,function(){if(b._collapsed===true&&b.autoClose===true){b.close()}});b.addHandler(a(window),"resize.jqxResponsivePanel"+c,function(){setTimeout(function(){b._checkWindowSize()},0)});if(b.toggleButton){b.addHandler(b._toggleButton,"mouseenter.jqxResponsivePanel"+c,function(){b._toggleButton.addClass(b.toThemeProperty("jqx-fill-state-hover"))});b.addHandler(b._toggleButton,"mouseleave.jqxResponsivePanel"+c,function(){b._toggleButton.removeClass(b.toThemeProperty("jqx-fill-state-hover"))});b.addHandler(b._toggleButton,"mousedown.jqxResponsivePanel"+c,function(){b._toggleButton.addClass(b.toThemeProperty("jqx-fill-state-pressed"))});b.addHandler(a(document),"mouseup.jqxResponsivePanel"+c,function(){b._toggleButton.removeClass(b.toThemeProperty("jqx-fill-state-pressed"))});b.addHandler(b._toggleButton,"click.jqxResponsivePanel"+c,function(d){d.stopPropagation();if(b._opened===true){b.close()}else{b.open()}})}},_removeHandlers:function(){var b=this,c=b.element.id;b.removeHandler(b.host,"click.jqxResponsivePanel"+c);b.removeHandler(a(document),"click.jqxResponsivePanel"+c);b.removeHandler(a(window),"resize.jqxResponsivePanel"+c);if(b.toggleButton){b.removeHandler(b._toggleButton,"mouseenter.jqxResponsivePanel"+c);b.removeHandler(b._toggleButton,"mouseleave.jqxResponsivePanel"+c);b.removeHandler(b._toggleButton,"mousedown.jqxResponsivePanel"+c);b.removeHandler(a(document),"mouseup.jqxResponsivePanel"+c);b.removeHandler(b._toggleButton,"click.jqxResponsivePanel"+c)}},_checkWindowSize:function(){var c=this;var b=this.host.parent().width();if(c._collapsed===false&&b<=c.collapseBreakpoint){if(c.toggleButton){c._toggleButton.show()}if(c._opened===false){c.host.hide()}c.host.removeClass(c.toThemeProperty("jqx-responsive-panel-expanded"));c.host.addClass(c.toThemeProperty("jqx-responsive-panel-collapsed"));c._collapsed=true;c._raiseEvent("0");if(c.collapseWidth){c.host.width(c.collapseWidth)}c.host.trigger("resize")}else{if(c._collapsed===true&&b>c.collapseBreakpoint){if(c.collapseWidth){c.host.width(c.width)}if(c.toggleButton){c._toggleButton.hide()}if(c._opened===false){c.host.show()}c.host.removeClass(c.toThemeProperty("jqx-responsive-panel-collapsed"));c.host.addClass(c.toThemeProperty("jqx-responsive-panel-expanded"));c._collapsed=false;c._raiseEvent("1");if(c.initContent&&c._init===false){c.initContent();c._init=true}c.host.trigger("resize")}}},_slide:function(f,e){var m=this;if(!m.activeAnimations){m.activeAnimations=[]}if(m.activeAnimations.length>0){for(var k=0;k0){s.data(h+t[o],s[0].style[t[o]])}}},restore:function(s,u){var t,o;for(o=0;o").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),i={width:o.width(),height:o.height()},u=document.activeElement;try{u.id}catch(t){u=document.body}o.wrap(v);if(o[0]===u||a.contains(o[0],u)){a(u).focus()}v=o.parent();if(o.css("position")==="static"){v.css({position:"relative"});o.css({position:"relative"})}else{a.extend(s,{position:o.css("position"),zIndex:o.css("z-index")});a.each(["top","left","bottom","right"],function(w,x){s[x]=o.css(x);if(isNaN(parseInt(s[x],10))){s[x]="auto"}});o.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}o.css(i);return v.css(s).show()},removeWrapper:function(i){var o=document.activeElement;if(i.parent().is(".ui-effects-wrapper")){i.parent().replaceWith(i);if(i[0]===o||a.contains(i[0],o)){a(o).focus()}}return i}};var p=["position","top","bottom","left","right","width","height"],l=e.mode,r=l==="show",q=e.direction||"left",g=(q==="up"||q==="down")?"top":"left",c=(q==="up"||q==="left"),b,j={};d.save(f,p);f.show();b=e.distance||f[g==="top"?"outerHeight":"outerWidth"](true);d.createWrapper(f).css({overflow:"hidden"});if(r){f.css(g,c?(isNaN(b)?"-"+b:-b):b)}j[g]=(r?(c?"+=":"-="):(c?"-=":"+="))+b;var n=function(){f.clearQueue();f.stop(true,true)};m.activeAnimations.push(f);f.animate(j,{duration:e.duration,easing:e.easing,complete:function(){m.activeAnimations.pop(f);if(l==="show"){m._opened=true;m._raiseEvent("2");if(m.initContent&&m._init===false){m.initContent();m._init=true}}else{if(l==="hide"){f.hide();m._opened=false;m._raiseEvent("3")}}d.restore(f,p);d.removeWrapper(f)}});return n}})})(jqxBaseFramework);(function(a){a.jqx.jqxWidget("jqxTagCloud","",{});a.extend(a.jqx._jqxTagCloud.prototype,{defineInstance:function(){var b={width:null,height:null,source:null,disabled:false,rtl:false,valueMember:"value",displayMember:"label",urlMember:"url",urlBase:"",autoBind:true,takeTopWeightedItems:false,displayLimit:null,minValueToDisplay:0,maxValueToDisplay:0,minFontSize:10,maxFontSize:24,fontSizeUnit:"px",displayValue:false,sortBy:"none",alterTextCase:"none",sortOrder:"ascending",textColor:null,minColor:null,maxColor:null,tagRenderer:null};a.extend(true,this,b);return b},createInstance:function(){var b=this;b.render();b.dataBind(b.source,true)},dataBind:function(b,c){var h=this;h.records=[];var e=b._source?true:false;var i;if(e){i=b;b=b._source}else{b.datafields=[{name:h.displayMember},{name:h.valueMember},{name:h.urlMember}];i=new a.jqx.dataAdapter(b,{autoBind:true})}var j=function(){if(b.type!==undefined){i._options.type=b.type}if(b.formatdata!==undefined){i._options.formatData=b.formatdata}if(b.contenttype!==undefined){i._options.contentType=b.contenttype}if(b.async!==undefined){i._options.async=b.async}};var f=function(k){k._setSourceData(i);k._raiseEvent(1,{records:k.records});k._renderTags()};j(this);switch(b.datatype){case"local":case"array":default:if(b.localdata!=null||a.isArray(b)){i.unbindBindingUpdate(h.element.id);if(h.autoBind||(!h.autoBind&&!c)){i.dataBind()}f(h);i.bindBindingUpdate(h.element.id,function(k){f(h,k)})}break;case"json":case"jsonp":case"xml":case"xhtml":case"script":case"text":case"csv":case"tab":if(b.localdata!=null){i.unbindBindingUpdate(h.element.id);if(h.autoBind||(!h.autoBind&&!c)){i.dataBind()}f(h);i.bindBindingUpdate(h.element.id,function(){f(h)});return}var d={};if(i._options.data){a.extend(i._options.data,d)}else{if(b.data){a.extend(d,b.data)}i._options.data=d}var g=function(){f(h)};i.unbindDownloadComplete(h.element.id);i.bindDownloadComplete(h.element.id,g);if(h.autoBind||(!h.autoBind&&!c)){i.dataBind()}}h._raiseEvent(2,{records:h.records})},destroy:function(){var b=this;b.removeHandler(b._el,"keydown");b.removeHandler(b._el,"click");b.host.empty();b.host.remove()},findTagIndex:function(c){var d=this;for(var b=0;b=b){d.hiddenList[g]++}}d._renderTags()}})}else{d.records.splice(b,0,e);for(var c=b+1;c=b){d.hiddenList[c]++}}d._renderTags()}},updateAt:function(b,d){var c=this;if(d[this.displayMember]===undefined){throw new Error("jqxTagCloud: Update tag requires a valid displayMember field to be supplied in the parameter")}d.index=b;d.uid=c.records[b].uid;if(c.source.updateTag&&typeof(c.source.updateTag)==="function"){c.source.updateTag(b,d,function(e){if(e){a.each(d,function(f,g){c.records[b][f]=g});c._renderTags()}})}else{a.each(d,function(e,f){c.records[b][e]=f});c._renderTags()}},removeAt:function(b){var d=this;if(d.source.deleteTag&&typeof(d.source.deleteTag)==="function"){d.source.deleteTag(b,function(f){if(f){d.records.splice(b,1);for(var e=b;eb){d.hiddenList[e]--}else{if(d.hiddenList[e]===b){d.hiddentList.splice(b,1)}}}}})}else{d.records.splice(b,1);for(var c=b;cb){d.hiddenList[c]--}else{if(d.hiddenList[c]===b){d.hiddentList.splice(b,1)}}}}d._renderTags()},hideItem:function(b){var d=this;if(!(typeof(b)!=="number"||d.hiddenList.indexOf(b)!==-1)){d.hiddenList.push(b);var e=-1;for(var c=0;c");b.host.addClass(b.toThemeProperty("jqx-widget jqx-tag-cloud"));b._setRtl();b.host.append(b._el);b.focusedItem=null;b.minColor=b._parseColor(b.minColor);b.maxColor=b._parseColor(b.maxColor);b.displayLimit=parseInt(b.displayLimit);if(b.disabled){b.host.addClass(b.toThemeProperty("jqx-fill-state-disabled"))}b.addHandler(b._el,"click",function(d){if(a(document.activeElement).parents("#"+b._el[0].parentElement.id).length){}else{if(b.focusedItem!=null){a(b.focusedItem).focus()}else{a(b._el).find("a")[0].focus();b.focusedItem=document.activeElement}}if(b.disabled){d.preventDefault()}if(d.target.tagName.toLowerCase()==="a"){d.target.focus();b.focusedItem=document.activeElement}if(d.target.tagName.toLowerCase()==="li"){a(d.target).find("a").focus();b.focusedItem=document.activeElement}var c=a(d.target).closest("li").index();if(c!==-1){b._raiseEvent(0,{label:b.renderedData[c][b.displayMember],url:b.renderedData[c][b.urlMember],value:b.renderedData[c][b.valueMember],visibleIndex:c,index:b.renderedData[c].index,target:a(d.target).closest("li")[0],originalEvent:d})}});b._addKeyboardSupport()},resize:function(c,b){var d=this;d.width=c;d.height=b;d._updateSize()},propertyChangedHandler:function(b,c,f,e){var d=this;if(c==="source"){d.dataBind(b.source)}if(c==="displayLimit"){d[c]=parseInt(e)}if(c==="minColor"||c==="maxColor"){d[c]=d._parseColor(e)}if(c==="rtl"){d._setRtl();return}if(c==="width"||c==="height"){d._updateSize();return}if(c==="textColor"){if(!(d.minColor&&d.maxColor)){d._updateColor();return}}d._renderTags()},_alterCase:function(d){var c=this;function e(f){return f.replace(/\w\S*/g,function(g){return g.charAt(0).toUpperCase()+g.substr(1).toLowerCase()})}if(c.alterTextCase!=="none"){switch(c.alterTextCase){case"allLower":for(var b=0;b");var l="";if(null!==m.tagRenderer&&typeof(m.tagRenderer)==="function"){l=m.tagRenderer.apply(m,arguments)}else{l=k[m.displayMember]+(m.displayValue?"("+k[m.valueMember]+")":"")}l=a('
              '+H+"")}}else{if(P.indexOf("jqx-data-table")>=0||P.indexOf("jqx-grid")>=0){if(h(K).find("tr").length>0){h(K).replaceWith('
              '+H+"
              ")}else{h(K).replaceWith('
              ')}}else{if(P.indexOf("jqx-list-box")>=0||P.indexOf("jqx-drop-down-list")>=0||P.indexOf("jqx-combo-box")>=0){if(h(K).find("option").length>0){h(K).replaceWith('")}else{if(h(K).find("li").length>0){h(K).replaceWith('
                '+H+"
              ")}else{h(K).replaceWith('
              ')}}}else{if(P.indexOf("jqx-list-menu")>=0){h(K).replaceWith('
                '+H+"
              ")}else{if(P.indexOf("jqx-tooltip")>=0){var F=h(K).children();F.detach();h(F).insertAfter(h(K));h.each(I,function(){if(h(F)[0]){h(F)[0].setAttribute(this.name,this.value)}});h(K).remove();K=F}else{h(K).replaceWith(L)}}}}}}}}M=Q.find("#jqx-ngwidget").removeAttr("id");h.each(I,function(){if(h(M)[0]){h(M)[0].setAttribute(this.name,this.value)}})}var O=K[0];if(M&&M.length){O=M[0]}var N=this;if(O.id==""){if(i==c[E]){c[E]=0}O.id=E+c[E]++}h.each(S,function(T,U){if(T!==E&&T!="jqxNgModel"&&T.indexOf("jqxOn")==-1&&T!="jqxData"&&T!="jqxWatchSettings"&&T!="jqxCreated"&&T!="jqxSource"&&T!="jqxCreate"&&T!="jqxSettings"&&T.indexOf("jqx")>=0){if(!e[O.id]){e[O.id]=new Array()}e[O.id].push({label:T,value:S.$attr[T]})}});return h(O)}function t(G,H){function F(L){H.filesCount=0;var I=L.length;if(L.scripts){var K=L.scripts.length;for(var N in L.deps){K++;var M=L.deps[N];K+=M.length}I=K}var J=function(S,P){var R=0;var O=0;var Q=function(){var Y=S[R];var T=h('script[src*="'+Y+'"]').length;if(T===0){var V=document.getElementsByTagName("head")[0];var U=document.createElement("script");U.type="text/javascript";var X=function(){H.filesCount++;O++;g[Y]=false;if(r[Y]!=i){h.each(r[Y],function(){this.documentReady=true;if(this.scriptsLoaded){this.scriptsLoaded()}})}r[Y]=true;if(H.filesCount==I){H.documentReady=true;if(H.scriptsLoaded){H.scriptsLoaded()}return}if(O===S.length&&P){P()}};if(U.addEventListener){U.addEventListener("load",X,false)}else{if(window.attachEvent){U.attachEvent("onreadystatechange",function(){if(U.readyState=="complete"||U.readyState=="loaded"){X()}})}}g[Y]=true;var W=l;if(Y=="globalize.js"){W=l+"globalization/"}U.src=W+Y;V.appendChild(U);R++;if(R0){F=F[0]}var H=q.element(F);var G=H.injector();if(E==i){E=F.innerHTML}G.invoke(["$compile","$rootScope",function(K,I){var J=H.html(E).scope();K(H)(J||I);if(!/^\$(digest|apply)$/.test(I.$$phase)){I.$digest()}else{if(!/^\$(digest|apply)$/.test(J.$$phase)){J.$digest()}}}])};function o(E){var F={};var G=function(V,O,U,J,I){if(h(O).attr("data-jqx-ng-include")){h(O).removeAttr("data-jqx-ng-include");var K=h(O.children()).detach();O=w(O,true,U,E);O.append(K);z(O)(V);var T=true;for(var N in U){if(N.toString().indexOf("jqx")==-1){continue}if(V[U[N]]!=i){T=false}if(U[N].split(".").length>1){var L=U[N].split(".");for(var M=0;M0){this._removeHandlers();if(this.showTooltip==true){this.host.jqxTooltip("destroy")}this.host.empty()}this.host.addClass(this.toThemeProperty("jqx-widget"));this.host.addClass(this.toThemeProperty("jqx-bulletchart"));this.host.width(this.width);this.host.height(this.height);var n=this.host.width();var d=this.host.height();var l;var j=this.rtl?"rtl":"ltr";if(this.orientation=="horizontal"){l=a("
              "+this.title+"
              "+this.description+"
              ")}else{if(this.orientation=="vertical"){l=a("
              "+this.title+"
              "+this.description+"
              ")}}this.host.append(l);var k=l.outerWidth();var g=l.outerHeight();l.remove();var e,h,i,b,o,m,f,c;if(this.orientation=="horizontal"){e="jqx-bulletchart-title-container-horizontal";h="jqx-bulletchart-chart-container-horizontal";i=this._checkPercentage(this.barSize,this.host);b=k;o=this.barSize;m=0;f=n-b;c=o;if(this.width&&this.width.toString().indexOf("%")>=0){var f=parseFloat(parseFloat(f*100)/n).toString()+"%";var b=parseFloat(parseFloat(b*100)/n).toString()+"%";this._percentageWidth=true}}else{if(this.orientation=="vertical"){e="jqx-bulletchart-title-container-vertical";h="jqx-bulletchart-chart-container-vertical";i=0;b="100%";o=g;m=this._checkPercentage(this.barSize,this.host);f=this.barSize;c=d-o}}if(this.rtl==false||(this.rtl==true&&this.orientation=="vertical")){this.host.append("
              ")}this.host.append("
              ");if(this.rtl==true&&this.orientation=="horizontal"){this.host.append("
              ")}this._titleContainer=a("#"+this.element.id+"titleContainer");this._chartContainer=a("#"+this.element.id+"ChartContainer");this._titleContainer.css({width:b,height:o});this._chartContainer.css({width:f,height:c});this._min=this.ranges[0].startValue;this._max=this.ranges[this.ranges.length-1].endValue;this._interval=this._max-this._min;this._valueToPixelsHorizontal=this._chartContainer.width()/this._interval;this._valueToPixelsVertical=this._chartContainer.height()/this._interval;this._checkValues();this._appendRanges();this._appendPointerAndTarget();this._appendTitleAndDescription();if(this.ticks.position!="none"){this._appendTicksAndLabels()}if(this.disabled==true){this.host.addClass(this.toThemeProperty("jqx-fill-state-disabled"))}if(this.showTooltip==true){if(this.host.jqxTooltip!=undefined){this._initializeTooltip();this.host.data().jqxWidget=this}else{throw new Error("jqxBulletChart: Missing reference to the following module: 'jqxtooltip.js'.")}}this._updateValue(this.pointer.value,0,true)},refresh:function(b){if(!b){this.render()}},val:function(b){if(arguments.length==0||(b!=null&&typeof(b)=="object")){return this.pointer.value}else{if(b>this._max){b=this._max}else{if(bthis._max){this.pointer.value=this._max}else{if(this.pointer.valuethis._max){this.target.value=this._max}else{if(this.target.value
              "}else{if(this.orientation=="vertical"){var b=(f.startValue-this._min)*this._valueToPixelsVertical;var k=(f.endValue-f.startValue)*this._valueToPixelsVertical;l="
              "}}e+=l}this._chartContainer.append(e)},_appendPointerAndTarget:function(){var o="";var m=this.element.id+"Pointer";var f=this.element.id+"Target";var l=this.pointer.size;var k=this.target.value;var e=this.target.size;var j=k>0?0:parseInt(e);var p=this.pointer.color.length>0?"":this.toThemeProperty("jqx-fill-state-pressed");var g=this.target.color.length>0?"":this.toThemeProperty("jqx-fill-state-pressed");if(this.orientation=="horizontal"){var c=this._normaliseValue(l);var n=this._checkPercentage(l,this._chartContainer);var d=this.rtl?"right":"left";var t=(k-this._min)*this._valueToPixelsHorizontal-j;var u=t+parseInt(e)-this._chartContainer.width();if(t<0){t=0}else{if(u>0){t-=u}}var i=this._normaliseValue(e);o+="
              ";o+="
              "}else{if(this.orientation=="vertical"){var r=this._chartContainer.width();var q=this._normaliseValue(l);var s=this._checkPercentage(l,this._chartContainer);var b=(k-this._min)*this._valueToPixelsVertical-j;var u=b+parseInt(e)-this._chartContainer.height();if(b<0){b=0}else{if(u>0){b-=u}}var h=this._normaliseValue(e);o+="
              ";o+="
              "}}this._chartContainer.append(o)},_updatePointer:function(c,i){var h=a("#"+this.element.id+"Pointer");if(c.value>this._max){this.pointer.value=this._max}else{if(c.valuethis._max){this.target.value=this._max}else{if(b.value0?0:k;if(this.orientation=="horizontal"){var i=this.rtl?"right":"left";var j=(h-this._min)*this._valueToPixelsHorizontal-c;var g=j+k-this._chartContainer.width();if(j<0){j=0}else{if(g>0){j-=g}}if(this.rtl==false){e.css("left",j)}else{e.css("right",j)}e.width(k)}else{if(this.orientation=="vertical"){var f=(h-this._min)*this._valueToPixelsVertical-c;var g=f+k-this._chartContainer.height();if(f<0){f=0}else{if(g>0){f-=g}}e.css({bottom:f,height:k})}}if(this.showTooltip==true){this._updateTooltip()}}if(b.label!=d.label){if(this.showTooltip==true){this._updateTooltip()}}if(b.color!=d.color){if(b.color==""){e.css("background-color","");e.addClass(this.toThemeProperty("jqx-fill-state-pressed"))}else{e.removeClass(this.toThemeProperty("jqx-fill-state-pressed"));e.css("background-color",b.color)}}},_appendTitleAndDescription:function(){var d;if(this.orientation=="horizontal"){if(this.rtl==true){d=this.toThemeProperty("jqx-bulletchart-title-description-rtl")}else{d=this.toThemeProperty("jqx-bulletchart-title-description-ltr")}}else{d=this.toThemeProperty("jqx-bulletchart-title-description-vertical")}var g=this.rtl?"rtl":"ltr";var b="
              "+this.title+"
              "+this.description+"
              ";var e=a("
              "+b+"
              ");this._titleContainer.append(e);var h=e.children();var c=a(h[0]).height()+a(h[1]).height();e.remove();var f;if(this.orientation=="horizontal"){if(this.rtl==false){f=this.toThemeProperty("jqx-bulletchart-title-inner-container")+" "+this.toThemeProperty("jqx-bulletchart-title-inner-container-ltr")}else{f=this.toThemeProperty("jqx-bulletchart-title-inner-container")+" "+this.toThemeProperty("jqx-bulletchart-title-inner-container-rtl")}}else{f=""}this._titleContainer.append("
              "+b+"
              ")},_appendTicksAndLabels:function(){var o=a("
              ");this._chartContainer.append(o);var j="";var e=this._min<0?true:false;var b=this.ticks.size;if(this.orientation=="horizontal"){var k=this._titleContainer.width();var r=this._chartContainer.offset().top-this.host.offset().top;if(this.ticks.position=="both"||this.ticks.position=="far"){var l=this._chartContainer.height()+r}for(var h=0;h<=this._interval;h+=this.ticks.interval){var c=h*this._valueToPixelsHorizontal+k;if(h+this.ticks.interval>this._interval){c-=1}if(e){var d=(h+this._min)==0?true:false;if(d){j+="
              ";e=false}}var n=this._labelValue(h);o.html(n);var p=c-o.width()/2;var m=this.rtl?"right":"left";if(this.ticks.position=="both"||this.ticks.position=="far"){j+="
              ";j+="
              "+n+"
              "}if(this.ticks.position=="both"||this.ticks.position=="near"){j+="
              ";j+="
              "+n+"
              "}}}else{if(this.orientation=="vertical"){var g=this._chartContainer.offset().left-this.host.offset().left;if(this.ticks.position=="both"||this.ticks.position=="far"){var q=this._chartContainer.width()}for(var h=0;h<=this._interval;h+=this.ticks.interval){var f=h*this._valueToPixelsVertical;if(h+this.ticks.interval>this._interval){f-=1}if(e){var d=(h+this._min)==0?true:false;if(d){j+="
              ";e=false}}if(this.ticks.position=="both"||this.ticks.position=="near"){j+="
              ";var n=this._labelValue(h,"near");o.html(n);var p=o.height()/2-1;j+="
              "+n+"
              "}if(this.ticks.position=="both"||this.ticks.position=="far"){j+="
              ";var n=this._labelValue(h,"far");o.html(n);var p=o.height()/2-1;j+="
              "+n+"
              "}}}}this.host.append(j);o.remove()},_labelValue:function(d,b){var e=d+this._min;var c;if(this.labelsFormatFunction){c=this.labelsFormatFunction(e,b)}else{c=a.jqx.dataFormat.formatnumber(e,this.labelsFormat)}return c},_initializeTooltip:function(){var c=this;var d=this._tooltipContent();this.host.jqxTooltip({theme:this.theme,position:"mouse",content:d,trigger:"none",autoHide:false,rtl:this.rtl});this.host.jqxTooltip("getInstance").val=a.proxy(this.val,this);var b=a("#"+this.element.id+"Pointer, #"+this.element.id+"Target");this.addHandler(b,"mouseenter.bulletchart"+this.element.id,function(e){if(c.disabled==false){c.host.jqxTooltip("open",e.pageX,e.pageY);if(e.target.id==c.element.id+"Pointer"&&c.pointer.color==""||e.target.id==c.element.id+"Target"&&c.target.color==""){a(e.target).removeClass(c.toThemeProperty("jqx-fill-state-pressed"));a(e.target).addClass(c.toThemeProperty("jqx-fill-state-hover"))}}});this.addHandler(b,"mouseleave.bulletchart"+this.element.id,function(e){if(c.disabled==false){c.host.jqxTooltip("close");if(e.target.id==c.element.id+"Pointer"&&c.pointer.color==""||e.target.id==c.element.id+"Target"&&c.target.color==""){a(e.target).removeClass(c.toThemeProperty("jqx-fill-state-hover"));a(e.target).addClass(c.toThemeProperty("jqx-fill-state-pressed"))}}})},_updateTooltip:function(){this.host.jqxTooltip({content:this._tooltipContent()})},_tooltipContent:function(){var c;if(this.tooltipFormatFunction){c=this.tooltipFormatFunction(this.pointer.value,this.target.value)}else{var b=a.jqx.dataFormat.formatnumber(this.pointer.value,this.labelsFormat);var d=a.jqx.dataFormat.formatnumber(this.target.value,this.labelsFormat);c="
              "+this.pointer.label+": "+b+"
              "+this.target.label+": "+d+"
              "}return c},_updateValue:function(m,d,k){var j=this;var c=a("#"+this.element.id+"Pointer");var g,h,l,n;var f=function(p,r,q){if(j._min>=0){if(p=="vertical"){c.css("bottom",0)}else{if(j.rtl==true&&p=="horizontal"){c.css("right",0)}}g=(m-j._min)*r}else{if(m>=0){if(p=="horizontal"){if(j.rtl==true){h="right";l="left"}else{h="left"}}else{if(p=="vertical"){h="bottom";l="top"}}var o=-j._min*r}else{if(p=="horizontal"){if(j.rtl==true){h="left"}else{h="right";l="left"}}else{if(p=="vertical"){h="top"}}var o=q+j._min*r}c.css(h,o);if(l){c.css(l,"")}if(m*d<0){if(p=="horizontal"){c.width(0)}else{if(p=="vertical"){c.height(0)}}}g=Math.abs(m*r)}return g};var i=function(){if(!k){j._raiseEvent("0")}};if(this.orientation=="horizontal"){var e=f("horizontal",this._valueToPixelsHorizontal,this._chartContainer.width());setTimeout(function(){c.animate({width:e},j.animationDuration,i)},0)}else{if(this.orientation=="vertical"){var b=f("vertical",this._valueToPixelsVertical,this._chartContainer.height());setTimeout(function(){c.animate({height:b},j.animationDuration,i)},0)}}},_checkPercentage:function(f,d){var c=-1;if(f.indexOf){c=f.indexOf("%")}var g=function(h){if(!f.indexOf||f.indexOf("px")==-1){return h}else{return parseFloat(h.slice(0,f.indexOf("px")))}};var e=function(h){return parseFloat(h.slice(0,c))};if(c==-1){var b;if(this.orientation=="horizontal"){b=d.height()}else{if(this.orientation=="vertical"){b=d.width()}}return((b-g(f))/2)+"px"}else{return((100-e(f))/2)+"%"}},_normaliseValue:function(b){if(!b.indexOf||(b.indexOf("px")==-1&&b.indexOf("%")==-1)){return b+"px"}else{return b}}})})(jqxBaseFramework); \ No newline at end of file diff --git a/htdocs/public/jqwidgets/jqxbuttongroup.js b/htdocs/public/jqwidgets/jqxbuttongroup.js deleted file mode 100644 index 77bf4dc5..00000000 --- a/htdocs/public/jqwidgets/jqxbuttongroup.js +++ /dev/null @@ -1,7 +0,0 @@ -/* -jQWidgets v4.0.0 (2016-Jan) -Copyright (c) 2011-2016 jQWidgets. -License: http://jqwidgets.com/license/ -*/ - -(function(a){a.jqx.jqxWidget("jqxButtonGroup","",{});a.extend(a.jqx._jqxButtonGroup.prototype,{defineInstance:function(){var b={mode:"default",roundedCorners:true,disabled:false,enableHover:false,orientation:"horizontal",width:null,height:null,_eventsMap:{mousedown:a.jqx.mobile.getTouchEventName("touchstart"),mouseup:a.jqx.mobile.getTouchEventName("touchend")},_events:["selected","unselected","buttonclick"],_buttonId:{},_selected:null,_pressed:null,rtl:false,_baseId:"group_button",aria:{"aria-disabled":{name:"disabled",type:"boolean"}}};a.extend(true,this,b);return b},createInstance:function(b){var c=this;c._isTouchDevice=a.jqx.mobile.isTouchDevice();a.jqx.aria(c);c.addHandler(c.host,"selectstart",function(d){if(!c.disabled){d.preventDefault()}})},refresh:function(){var b=this;if(b.width){if(b.width.toString()&&b.width.indexOf("%")>=0){b.element.style.width=b.width}else{b.host.width(b.width)}}if(b.height){b.host.height(b.height)}b._refreshButtons()},render:function(){this.refresh()},resize:function(){this.refresh()},_getEvent:function(c){var b=this;if(b._isTouchDevice){var d=b._eventsMap[c]||c;d+="."+b.element.id;return d}c+="."+b.element.id;return c},_refreshButtons:function(){var f=this;if(f.lastElement){f.lastElement.remove()}f.lastElement=a("
              ");var c=f.host.children(),e=c.length,g;switch(f.mode){case"radio":f.host.attr("role","radiogroup");break;case"checkbox":case"default":f.host.attr("role","group");break}var d=new Number(100/e).toFixed(2);for(var b=0;b");return b},_removeStyles:function(b){var c=this;var d=c.toThemeProperty;c.host.removeClass("jqx-widget");c.host.removeClass("jqx-rc-all");b.removeClass(d.call(this,"jqx-fill-state-normal"));b.removeClass(d.call(this,"jqx-group-button-normal"));b.removeClass(d.call(this,"jqx-rc-tl"));b.removeClass(d.call(this,"jqx-rc-bl"));b.removeClass(d.call(this,"jqx-rc-tr"));b.removeClass(d.call(this,"jqx-rc-br"));b.css("margin-left",0)},_addStyles:function(c,b,e){var d=this;var f=this.toThemeProperty;d.host.addClass(f.call(this,"jqx-widget"));d.host.addClass(f.call(this,"jqx-rc-all"));d.host.addClass(f.call(this,"jqx-buttongroup"));c.addClass(f.call(this,"jqx-button"));c.addClass(f.call(this,"jqx-group-button-normal"));c.addClass(f.call(this,"jqx-fill-state-normal"));if(d.roundedCorners){if(b===0){d._addRoundedCorners(c,true)}else{if(b===e-1){d._addRoundedCorners(c,false)}}}if(d.orientation=="horizontal"){c.css("margin-left",-parseInt(c.css("border-left-width"),10))}else{c.css("margin-top",-parseInt(c.css("border-left-width"),10))}},_addRoundedCorners:function(b,d){var c=this;var e=c.toThemeProperty;if(c.orientation=="horizontal"){if(d){b.addClass(e.call(this,"jqx-rc-tl"));b.addClass(e.call(this,"jqx-rc-bl"))}else{b.addClass(e.call(this,"jqx-rc-tr"));b.addClass(e.call(this,"jqx-rc-br"))}}else{if(d){b.addClass(e.call(this,"jqx-rc-tl"));b.addClass(e.call(this,"jqx-rc-tr"))}else{b.addClass(e.call(this,"jqx-rc-bl"));b.addClass(e.call(this,"jqx-rc-br"))}}},_centerContent:function(c,b){c.css({"margin-top":(b.height()-c.height())/2,"margin-left":(b.width()-c.width())/2});return c},_renderFromButton:function(b){var c=b.val();if(c==""){c=b.html()}var e;var d=b[0].id;b.wrap("
              ");e=b.parent();e.attr("style",b.attr("style"));b.remove();a.jqx.utilities.html(e,c);e[0].id=d;return e},_performLayout:function(b){if(this.orientation=="horizontal"){if(this.rtl){b.css("float","right")}else{b.css("float","left")}}else{b.css("float","none")}this._centerContent(a(b.children()),b)},_mouseEnterHandler:function(d){var b=d.data.self,c=a(d.currentTarget);if(b._isDisabled(c)||!b.enableHover){return}var f=b.toThemeProperty;c.addClass(f.call(b,"jqx-group-button-hover"));c.addClass(f.call(b,"jqx-fill-state-hover"))},_mouseLeaveHandler:function(d){var b=d.data.self,c=a(d.currentTarget);if(b._isDisabled(c)||!b.enableHover){return}var f=b.toThemeProperty;c.removeClass(f.call(b,"jqx-group-button-hover"));c.removeClass(f.call(b,"jqx-fill-state-hover"))},_mouseDownHandler:function(d){var b=d.data.self,c=a(d.currentTarget);if(b._isDisabled(c)){return}b._pressed=c;var f=b.toThemeProperty;c.addClass(f.call(b,"jqx-group-button-pressed"));c.addClass(f.call(b,"jqx-fill-state-pressed"))},_mouseUpHandler:function(d){var b=d.data.self,c=a(d.currentTarget);if(b._isDisabled(c)){return}b._handleSelection(c);b._pressed=null;c=b._buttonId[c[0].id];b._raiseEvent(2,{index:c.num,button:c.btn})},_isDisabled:function(b){if(!b||!b[0]){return false}return this._buttonId[b[0].id].disabled},_documentUpHandler:function(d){var b=d.data.self,c=b._pressed;if(c&&!b._buttonId[c[0].id].selected){c.removeClass(b.toThemeProperty("jqx-fill-state-pressed"));b._pressed=null}},_addButtonListeners:function(c){var e=this;var b=e.addHandler;var d=e._getEvent;b(c,d.call(e,"mouseenter"),e._mouseEnterHandler,{self:e});b(c,d.call(e,"mouseleave"),e._mouseLeaveHandler,{self:e});b(c,d.call(e,"mousedown"),e._mouseDownHandler,{self:e});b(c,d.call(e,"mouseup"),e._mouseUpHandler,{self:e});b(a(document),d.call(e,"mouseup"),e._documentUpHandler,{self:e})},_removeButtonListeners:function(c){var e=this;var b=e.removeHandler;var d=e._getEvent;b(c,d.call(e,"mouseenter"),e._mouseEnterHandler);b(c,d.call(e,"mouseleave"),e._mouseLeaveHandler);b(c,d.call(e,"mousedown"),e._mouseDownHandler);b(c,d.call(e,"mouseup"),e._mouseUpHandler);b(a(document),d.call(e,"mouseup"),e._documentUpHandler)},_handleSelection:function(b){var c=this;if(c.mode==="radio"){c._handleRadio(b)}else{if(c.mode==="checkbox"){c._handleCheckbox(b)}else{c._handleDefault(b)}}},_handleRadio:function(b){var d=this;var c=d._getSelectedButton();if(c&&c.btn[0].id!==b[0].id){d._unselectButton(c.btn,true)}for(var e in d._buttonId){d._buttonId[e].selected=true;d._unselectButton(d._buttonId[e].btn,false)}d._selectButton(b,true)},_handleCheckbox:function(c){var d=this;var b=d._buttonId[c[0].id];if(b.selected){d._unselectButton(b.btn,true)}else{d._selectButton(c,true)}},_handleDefault:function(b){var c=this;c._selectButton(b,false);for(var d in c._buttonId){c._buttonId[d].selected=true;c._unselectButton(c._buttonId[d].btn,false)}},_getSelectedButton:function(){var b=this;for(var c in b._buttonId){if(b._buttonId[c].selected){return b._buttonId[c]}}return null},_getSelectedButtons:function(){var c=this;var b=[];for(var d in c._buttonId){if(c._buttonId[d].selected){b.push(c._buttonId[d].num)}}return b},_getButtonByIndex:function(b){var c=this;var e;for(var d in c._buttonId){if(c._buttonId[d].num===b){return c._buttonId[d]}}return null},_selectButton:function(c,e){var d=this;var b=d._buttonId[c[0].id];if(b.selected){return}var f=d.toThemeProperty;b.btn.addClass(f.call(this,"jqx-group-button-pressed"));b.btn.addClass(f.call(this,"jqx-fill-state-pressed"));b.selected=true;if(e){d._raiseEvent(0,{index:b.num,button:b.btn})}a.jqx.aria(b.btn,"aria-checked",true)},_unselectButton:function(c,e){var d=this;var b=d._buttonId[c[0].id];if(!b.selected){return}var f=d.toThemeProperty;b.btn.removeClass(f.call(this,"jqx-group-button-pressed"));b.btn.removeClass(f.call(this,"jqx-fill-state-pressed"));b.selected=false;if(e){d._raiseEvent(1,{index:b.num,button:b.btn})}a.jqx.aria(b.btn,"aria-checked",false)},setSelection:function(b){var d=this;if(b===-1){d.clearSelection();return}if(d.mode==="checkbox"){if(typeof b==="number"){d._setSelection(b)}else{for(var c=0;c0){if(arguments.length==0||typeof(value)=="object"){return b.val()}b.val(value);c.refresh();return b.val()}if(arguments.length==0||typeof(value)=="object"){if(c.element.nodeName.toLowerCase()=="button"){return a(c.element).text()}return c.element.value}c.element.value=arguments[0];if(c.element.nodeName.toLowerCase()=="button"){a(c.element).text(arguments[0])}c.refresh()},_setSize:function(){var b=this;if(b.width!=null&&(b.width.toString().indexOf("px")!=-1||b.width.toString().indexOf("%")!=-1)){b.host.css("width",b.width)}else{if(b.width!=undefined&&!isNaN(b.width)){b.host.css("width",b.width)}}if(b.height!=null&&(b.height.toString().indexOf("px")!=-1||b.height.toString().indexOf("%")!=-1)){b.host.css("height",b.height)}else{if(b.height!=undefined&&!isNaN(b.height)){b.host.css("height",parseInt(b.height))}}},_removeHandlers:function(){var b=this;b.removeHandler(b.host,"selectstart");b.removeHandler(b.host,"click");b.removeHandler(b.host,"focus");b.removeHandler(b.host,"blur");b.removeHandler(b.host,"mouseenter");b.removeHandler(b.host,"mouseleave");b.removeHandler(b.host,"mousedown");b.removeHandler(a(document),"mouseup.button"+b.element.id,b.mouseupfunc);if(b.isTouchDevice){b.removeHandler(b.host,a.jqx.mobile.getTouchEventName("touchstart"));b.removeHandler(a(document),a.jqx.mobile.getTouchEventName("touchend")+"."+b.element.id)}b.mouseupfunc=null;delete b.mouseupfunc},focus:function(){this.host.focus()},destroy:function(){var b=this;b._removeHandlers();var c=a.data(b.element,"jqxButton");if(c){delete c.instance}b.host.removeClass();b.host.removeData();b.host.remove();delete b.set;delete b.get;delete b.call;delete b.element;delete b.host},render:function(){this.refresh()},refresh:function(){var c=this;if(c.overrideTheme){return}var e=c.toThemeProperty("jqx-fill-state-focus");var i=c.toThemeProperty("jqx-fill-state-disabled");var b=c.toThemeProperty("jqx-fill-state-normal");if(!c.enableDefault){b=""}var h=c.toThemeProperty("jqx-fill-state-hover");var f=c.toThemeProperty("jqx-fill-state-pressed");var g=c.toThemeProperty("jqx-fill-state-pressed");if(!c.enablePressed){f=""}var d="";if(!c.host){return}c.host[0].disabled=c.disabled;if(c.disabled){d=b+" "+i;if(c.template!=="default"&&c.template!==""){d+=" jqx-"+c.template}c.host.addClass(d);c._oldCSSCurrent=d;return}else{if(c.isMouseOver&&!c.isTouchDevice){if(c.isPressed){d=g}else{d=h}}else{if(c.isPressed){d=f}else{d=b}}}if(c.isFocused){d+=" "+e}if(c.template!=="default"&&c.template!==""){d+=" jqx-"+c.template}if(d!=c._oldCSSCurrent){if(c._oldCSSCurrent){c.host.removeClass(c._oldCSSCurrent)}c.host.addClass(d);c._oldCSSCurrent=d}if(c.rtl){c.host.addClass(c.toThemeProperty("jqx-rtl"));c.host.css("direction","rtl")}}});a.jqx.jqxWidget("jqxLinkButton","",{});a.extend(a.jqx._jqxLinkButton.prototype,{defineInstance:function(){this.disabled=false;this.height=null;this.width=null;this.rtl=false;this.href=null},createInstance:function(d){var c=this;this.host.onselectstart=function(){return false};this.host.attr("role","button");var b=this.height||this.host.height();var e=this.width||this.host.width();this.href=this.host.attr("href");this.target=this.host.attr("target");this.content=this.host.text();this.element.innerHTML="";this.host.append("");var f=this.host.find("input");f.addClass(this.toThemeProperty("jqx-reset"));f.width(e);f.height(b);f.val(this.content);this.host.find("tr").addClass(this.toThemeProperty("jqx-reset"));this.host.find("td").addClass(this.toThemeProperty("jqx-reset"));this.host.find("tbody").addClass(this.toThemeProperty("jqx-reset"));this.host.css("color","inherit");this.host.addClass(this.toThemeProperty("jqx-link"));f.css({width:e});f.css({height:b});var g=d==undefined?{}:d[0]||{};f.jqxButton(g);if(this.disabled){this.host[0].disabled=true}this.propertyChangeMap.disabled=function(h,j,i,k){h.host[0].disabled=k;h.host.find("input").jqxButton({disabled:k})};this.addHandler(f,"click",function(h){if(!this.disabled){c.onclick(h)}return false})},onclick:function(b){if(this.target!=null){window.open(this.href,this.target)}else{window.location=this.href}}});a.jqx.jqxWidget("jqxRepeatButton","jqxButton",{});a.extend(a.jqx._jqxRepeatButton.prototype,{defineInstance:function(){this.delay=50},createInstance:function(e){var c=this;var d=a.jqx.mobile.isTouchDevice();var b=!d?"mouseup."+this.base.element.id:"touchend."+this.base.element.id;var f=!d?"mousedown."+this.base.element.id:"touchstart."+this.base.element.id;this.addHandler(a(document),b,function(g){if(c.timeout!=null){clearTimeout(c.timeout);c.timeout=null;c.refresh()}if(c.timer!=undefined){clearInterval(c.timer);c.timer=null;c.refresh()}});this.addHandler(this.base.host,f,function(g){if(c.timer!=null){clearInterval(c.timer)}c.timeout=setTimeout(function(){clearInterval(c.timer);c.timer=setInterval(function(h){c.ontimer(h)},c.delay)},150)});this.mousemovefunc=function(g){if(!d){if(g.which==0){if(c.timer!=null){clearInterval(c.timer);c.timer=null}}}};this.addHandler(this.base.host,"mousemove",this.mousemovefunc)},destroy:function(){var c=a.jqx.mobile.isTouchDevice();var b=!c?"mouseup."+this.base.element.id:"touchend."+this.base.element.id;var e=!c?"mousedown."+this.base.element.id:"touchstart."+this.base.element.id;this.removeHandler(this.base.host,"mousemove",this.mousemovefunc);this.removeHandler(this.base.host,e);this.removeHandler(a(document),b);this.timer=null;delete this.mousemovefunc;delete this.timer;var d=a.data(this.base.element,"jqxRepeatButton");if(d){delete d.instance}a(this.base.element).removeData();this.base.destroy();delete this.base},stop:function(){clearInterval(this.timer);this.timer=null},ontimer:function(b){var b=new a.Event("click");if(this.base!=null&&this.base.host!=null){this.base.host.trigger(b)}}});a.jqx.jqxWidget("jqxToggleButton","jqxButton",{});a.extend(a.jqx._jqxToggleButton.prototype,{defineInstance:function(){this.toggled=false;this.uiToggle=true;this.aria={"aria-checked":{name:"toggled",type:"boolean"},"aria-disabled":{name:"disabled",type:"boolean"}}},createInstance:function(c){var b=this;b.base.overrideTheme=true;b.isTouchDevice=a.jqx.mobile.isTouchDevice();a.jqx.aria(this);b.propertyChangeMap.roundedCorners=function(d,f,e,g){d.base.host.removeClass(d.toThemeProperty(a.jqx.cssroundedcorners(e)));d.base.host.addClass(d.toThemeProperty(a.jqx.cssroundedcorners(g)))};b.propertyChangeMap.toggled=function(d,f,e,g){d.refresh()};b.propertyChangeMap.disabled=function(d,f,e,g){d.base.disabled=g;d.refresh()};b.addHandler(b.base.host,"click",function(d){if(!b.base.disabled&&b.uiToggle){b.toggle()}});if(!b.isTouchDevice){b.addHandler(b.base.host,"mouseenter",function(d){if(!b.base.disabled){b.refresh()}});b.addHandler(b.base.host,"mouseleave",function(d){if(!b.base.disabled){b.refresh()}})}b.addHandler(b.base.host,"mousedown",function(d){if(!b.base.disabled){b.refresh()}});b.addHandler(a(document),"mouseup.togglebutton"+b.base.element.id,function(d){if(!b.base.disabled){b.refresh()}})},destroy:function(){this._removeHandlers();this.base.destroy()},_removeHandlers:function(){this.removeHandler(this.base.host,"click");this.removeHandler(this.base.host,"mouseenter");this.removeHandler(this.base.host,"mouseleave");this.removeHandler(this.base.host,"mousedown");this.removeHandler(a(document),"mouseup.togglebutton"+this.base.element.id)},toggle:function(){this.toggled=!this.toggled;this.refresh();a.jqx.aria(this,"aria-checked",this.toggled)},unCheck:function(){this.toggled=false;this.refresh()},check:function(){this.toggled=true;this.refresh()},refresh:function(){var c=this;var h=c.base.toThemeProperty("jqx-fill-state-disabled");var b=c.base.toThemeProperty("jqx-fill-state-normal");if(!c.base.enableDefault){b=""}var g=c.base.toThemeProperty("jqx-fill-state-hover");var e=c.base.toThemeProperty("jqx-fill-state-pressed");var f=c.base.toThemeProperty("jqx-fill-state-pressed");var d="";c.base.host[0].disabled=c.base.disabled;if(c.base.disabled){d=b+" "+h;c.base.host.addClass(d);return}else{if(c.base.isMouseOver&&!c.isTouchDevice){if(c.base.isPressed||c.toggled){d=f}else{d=g}}else{if(c.base.isPressed||c.toggled){d=e}else{d=b}}}if(c.base.template!=="default"&&c.base.template!==""){d+=" jqx-"+c.base.template}if(c.base.host.hasClass(h)&&h!=d){c.base.host.removeClass(h)}if(c.base.host.hasClass(b)&&b!=d){c.base.host.removeClass(b)}if(c.base.host.hasClass(g)&&g!=d){c.base.host.removeClass(g)}if(c.base.host.hasClass(e)&&e!=d){c.base.host.removeClass(e)}if(c.base.host.hasClass(f)&&f!=d){c.base.host.removeClass(f)}if(!c.base.host.hasClass(d)){c.base.host.addClass(d)}}})})(jqxBaseFramework); \ No newline at end of file diff --git a/htdocs/public/jqwidgets/jqxcalendar.js b/htdocs/public/jqwidgets/jqxcalendar.js deleted file mode 100644 index 8dba1e01..00000000 --- a/htdocs/public/jqwidgets/jqxcalendar.js +++ /dev/null @@ -1,7 +0,0 @@ -/* -jQWidgets v4.0.0 (2016-Jan) -Copyright (c) 2011-2016 jQWidgets. -License: http://jqwidgets.com/license/ -*/ - -(function(a){a.jqx.jqxWidget("jqxCalendar","",{});a.extend(a.jqx._jqxCalendar.prototype,{defineInstance:function(){var b={disabled:false,restrictedDates:new Array(),multipleMonthRows:1,multipleMonthColumns:1,minDate:a.jqx._jqxDateTimeInput.getDateTime(new Date()),maxDate:a.jqx._jqxDateTimeInput.getDateTime(new Date()),min:new Date(1900,0,1),max:new Date(2100,0,1),navigationDelay:400,stepMonths:1,width:null,height:null,value:a.jqx._jqxDateTimeInput.getDateTime(new Date()),firstDayOfWeek:0,showWeekNumbers:false,showDayNames:true,enableWeekend:false,enableOtherMonthDays:true,showOtherMonthDays:true,rowHeaderWidth:25,columnHeaderHeight:20,titleHeight:25,dayNameFormat:"firstTwoLetters",monthNameFormat:"default",titleFormat:["MMMM yyyy","yyyy","yyyy","yyyy"],enableViews:true,readOnly:false,culture:"default",enableFastNavigation:true,enableHover:true,enableAutoNavigation:true,enableTooltips:false,backText:"Back",forwardText:"Forward",specialDates:new Array(),keyboardNavigation:true,selectionMode:"default",selectableDays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],todayString:"Today",clearString:"Clear",showFooter:false,selection:{from:null,to:null},canRender:true,_checkForHiddenParent:true,height:null,rtl:false,view:"month",views:["month","year","decade"],changing:null,change:null,localization:{backString:"Back",forwardString:"Forward",todayString:"Today",clearString:"Clear",calendar:{name:"Gregorian_USEnglish","/":"/",":":":",firstDay:0,days:{names:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],namesAbbr:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],namesShort:["Su","Mo","Tu","We","Th","Fr","Sa"]},months:{names:["January","February","March","April","May","June","July","August","September","October","November","December",""],namesAbbr:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",""]},AM:["AM","am","AM"],PM:["PM","pm","PM"],eras:[{name:"A.D.",start:null,offset:0}],twoDigitYearMax:2029,patterns:{d:"M/d/yyyy",D:"dddd, MMMM dd, yyyy",t:"h:mm tt",T:"h:mm:ss tt",f:"dddd, MMMM dd, yyyy h:mm tt",F:"dddd, MMMM dd, yyyy h:mm:ss tt",M:"MMMM dd",Y:"yyyy MMMM",S:"yyyy\u0027-\u0027MM\u0027-\u0027dd\u0027T\u0027HH\u0027:\u0027mm\u0027:\u0027ss",ISO:"yyyy-MM-dd hh:mm:ss"}}},events:["backButtonClick","nextButtonClick","valuechanged","cellMouseDown","cellMouseUp","cellSelected","cellUnselected","change","viewChange"]};a.extend(true,this,b);this.minDate._setYear(1900);this.minDate._setMonth(1);this.minDate._setDay(1);this.minDate._setHours(0);this.minDate._setMinutes(0);this.minDate._setSeconds(0);this.minDate._setMilliseconds(0);this.maxDate._setYear(2100);this.maxDate._setMonth(1);this.maxDate._setDay(1);this.maxDate._setHours(0);this.maxDate._setMinutes(0);this.maxDate._setSeconds(0);this.maxDate._setMilliseconds(0);this.value._setHours(0);this.value._setMinutes(0);this.value._setSeconds(0);this.value._setMilliseconds(0);return b},createInstance:function(e){this.setCalendarSize();if(this.element.id===""){this.element.id=a.jqx.utilities.createId()}if(a.type(this.value)=="date"){this.value=a.jqx._jqxDateTimeInput.getDateTime(this.value)}this.element.innerHTML="";this.host.attr("data-role","calendar");var i=this.element.id;var h=this;this.propertyChangeMap.width=function(j,l,k,m){h.setCalendarSize()};this.propertyChangeMap.height=function(j,l,k,m){h.setCalendarSize()};if(a.global){a.global.preferCulture(this.culture)}if(this.culture!="default"){if(a.global){a.global.preferCulture(this.culture);this.localization.calendar=a.global.culture.calendar}else{if(Globalize){var c=Globalize.culture(this.culture);this.localization.calendar=c.calendar}}this.firstDayOfWeek=this.localization.calendar.firstDay}if(this.localization.backString!="Back"){this.backText=this.localization.backString}if(this.localization.forwardString!="Forward"){this.forwardText=this.localization.forwardString}if(this.localization.todayString!="Today"&&this.localization.todayString){this.todayString=this.localization.todayString}if(this.localization.clearString!="Clear"&&this.localization.clearString){this.clearString=this.localization.clearString}if(this.localization.calendar&&this.localization.calendar.firstDay!=undefined&&this.culture!="default"){this.firstDayOfWeek=this.localization.calendar.firstDay}this.setMaxDate(this.max,false);this.setMinDate(this.min,false);if(!this.host.attr("tabIndex")){this.host.attr("tabIndex",0)}this.host.css("outline","none");this.host.addClass(this.toThemeProperty("jqx-calendar"));this.host.addClass(this.toThemeProperty("jqx-widget"));this.host.addClass(this.toThemeProperty("jqx-widget-content"));this.host.addClass(this.toThemeProperty("jqx-rc-all"));this._addInput();if(this.views.indexOf("month")==-1){this.view="year"}if(this.views.indexOf("year")==-1&&this.views.indexOf("month")==-1){this.view="decade"}this.addHandler(this.host,"keydown",function(k){var j=true;if(h.keyboardNavigation){if(h._handleKey!=undefined){j=h._handleKey(k);if(!j){if(k.stopPropagation){k.stopPropagation()}if(k.preventDefault){k.preventDefault()}}}}return j});var d=false;var g=this;var b=false;if(h.width!=null&&h.width.toString().indexOf("%")!=-1){b=true}if(h.height!=null&&h.height.toString().indexOf("%")!=-1){b=true}a.jqx.utilities.resize(this.host,function(){var j=g.host.find("#View"+h.element.id);if(!d){d=true;g.render()}else{g.refreshTitle(j)}if(b){if(h.refreshTimer){clearTimeout(h.refreshTimer)}h.refreshTimer=setTimeout(function(){h.refreshControl()},1)}},false,this._checkForHiddenParent);var f="View";this.propertyChangeMap.disabled=function(j,l,k,m){if(m){j.host.addClass(h.toThemeProperty("jqx-fill-state-disabled"))}else{j.host.removeClass(h.toThemeProperty("jqx-fill-state-disabled"))}h.refreshControl()}},_addInput:function(){var b=this.host.attr("name");this.input=a("");this.host.append(this.input);if(b){this.input.attr("name",b)}this.input.val(this.getDate().toString())},setCalendarSize:function(){if(this.width!=null&&this.width.toString().indexOf("px")!=-1){this.host.width(this.width)}else{if(this.width!=undefined&&!isNaN(this.width)){this.host.width(this.width)}}if(this.width!=null&&this.width.toString().indexOf("%")!=-1){this.host.css("width",this.width)}if(this.height!=null&&this.height.toString().indexOf("px")!=-1){this.host.height(this.height)}else{if(this.height!=undefined&&!isNaN(this.height)){this.host.height(this.height)}}if(this.height!=null&&this.height.toString().indexOf("%")!=-1){this.host.css("height",this.height)}},_getYearAndMonthPart:function(c){if(!c){return new Date(1900,0,1)}var b=new Date(c.getFullYear(),c.getMonth(),1);return b},_handleKey:function(p){if(this.readOnly){return true}var A=p.keyCode;var y=this;var b=this._getSelectedDate();if(b==undefined){if(this.view=="month"&&(A==37||A==38||A==39||A==40)){this.selectedDate=new Date(this.value.year,this.value.month-1,1);this._selectDate(this.selectedDate,"key");b=this.selectedDate}else{return true}}if(p.altKey){return true}if(this._animating){return false}if(this.view!="month"&&A==13){var d=this._getSelectedCell();this._setDateAndSwitchViews(d,p,"keyboard")}if(this.view=="year"){var w=b.getMonth();var j=this._getYearAndMonthPart(this.getMinDate());var m=this._getYearAndMonthPart(this.getMaxDate());switch(A){case 37:if(w==0){var h=new Date(b.getFullYear()-1,11,1);if(h>=j){this.selectedDate=h;this.navigateBackward()}else{if(this.selectedDate!=j){this.selectedDate=j;this.navigateBackward()}}}else{var h=new Date(b.getFullYear(),w-1,1);if(h>=j){this._selectDate(h,"key")}}return false;case 38:var h=new Date(b.getFullYear(),w-4,1);if(hm){h=m}if(w+4>11){this.selectedDate=h;this.navigateForward()}else{this._selectDate(h,"key")}return false;case 39:if(w==11){var h=new Date(b.getFullYear()+1,0,1);if(h<=m){this.selectedDate=h;this.navigateForward()}else{if(this.selectedDate!=m){this.selectedDate=m;this.navigateForward()}}}else{var h=new Date(b.getFullYear(),w+1,1);if(h<=m){this._selectDate(h,"key")}}return false}return true}if(this.view=="decade"){var o=this._renderStartDate.getFullYear();var k=this._renderEndDate.getFullYear();var n=b.getFullYear();var v=this.getMinDate().getFullYear();var c=this.getMaxDate().getFullYear();switch(A){case 37:if(n-1>=v){if(n<=o){this.selectedDate=new Date(n-1,b.getMonth(),1);this.navigateBackward()}else{this._selectDate(new Date(n-1,b.getMonth(),1),"key")}}return false;case 38:var x=n-4;if(n-4c){x=c}if(x>k){this.selectedDate=new Date(x,b.getMonth(),1);this.navigateForward()}else{this._selectDate(new Date(x,b.getMonth(),1),"key")}return false;case 39:if(n+1<=c){if(n==k){this.selectedDate=new Date(n+1,b.getMonth(),1);this.navigateForward()}else{this._selectDate(new Date(n+1,b.getMonth(),1),"key")}}return false}return true}var u=new a.jqx._jqxDateTimeInput.getDateTime(b);var f=this.getViewStart();var e=this.getViewEnd();var t=u;var s=a.data(this.element,"View"+this.element.id);if(s==undefined||s==null){return true}if(A==36){u._setDay(1);if(this._isDisabled(u.dateTime)){return false}this._selectDate(u.dateTime,"key");return false}if(A==35){var r=this.value._daysInMonth(this.value.year,this.value.month);u._setDay(r);if(this._isDisabled(u.dateTime)){return false}this._selectDate(u.dateTime,"key");return false}var g=1;if(p.ctrlKey){g=12}if(A==34){var z=this.navigateForward(g);if(z){u._addMonths(g);if(this._isDisabled(u.dateTime)){return false}this._selectDate(u.dateTime,"key")}return false}if(A==33){var z=this.navigateBackward(g);if(z){u._addMonths(-g);if(this._isDisabled(u.dateTime)){return false}this._selectDate(u.dateTime,"key")}return false}if(A==38){u._addDays(-7);if(u.dateTimethis.getMaxDate()){return false}if(u.dateTime>e){var z=this.navigateForward();if(!z){return false}}if(this._isDisabled(u.dateTime)){return false}this._selectDate(u.dateTime,"key");for(var q=0;q=u.dateTime){this.value.day=l.getDate();this.navigateForward();this._selectDate(u.dateTime,"key");break}}return false}}if(A==37){u._addDays(-1);if(u.dateTimethis.getMaxDate()){return false}if(this._isDisabled(u.dateTime)){return false}this.navigateBackward();this._selectDate(u.dateTime,"key");break}}return false}else{if(A==39){u._addDays(1);if(u.dateTime>this.getMaxDate()){return false}if(u.dateTime>e){var z=this.navigateForward();if(!z){return false}}if(this._isDisabled(u.dateTime)){return false}this._selectDate(u.dateTime,"key");for(var q=0;q=u.dateTime){if(u.dateTimethis.getMaxDate()){return false}this.navigateForward();this._selectDate(u.dateTime,"key");break}}return false}}return true},render:function(){if(!this.canRender){return}this.host.children().remove();var c=this._renderSingleCalendar("View"+this.element.id);var b=this;this.host.append(c)},addSpecialDate:function(b,c,d){if(this.multipleMonthRows==1&&this.multipleMonthColumns==1){var e=this.specialDates.length;this.specialDates[e]={Date:b,Class:c,Tooltip:d};this.refreshControl()}},refresh:function(b){this.render()},invalidate:function(){this.refreshControl()},refreshControl:function(){if(this.multipleMonthRows==1&&this.multipleMonthColumns==1){this.refreshSingleCalendar("View"+this.element.id,null)}},getViewStart:function(){var c=this.getVisibleDate();var b=this.getFirstDayOfWeek(c);return b.dateTime},getViewEnd:function(){var c=this.getViewStart();var b=new a.jqx._jqxDateTimeInput.getDateTime(c);b._addDays(41);return b.dateTime},refreshSingleCalendar:function(f,e){if(!this.canRender){return}var h=this.host.find("#"+f);var d=this.getVisibleDate();var b=this.getFirstDayOfWeek(d);this.refreshCalendarCells(h,b,f);this.refreshTitle(h);this.refreshRowHeader(h,f);if(this.selectedDate!=undefined){this._selectDate(this.selectedDate)}var g=this.host.height()-this.titleHeight-this.columnHeaderHeight;if(!this.showDayNames){g=this.host.height()-this.titleHeight}if(this.showFooter){g-=20}var c=h.find("#cellsTable"+f);var i=h.find("#calendarRowHeader"+f);c.height(g);i.height(g)},refreshRowHeader:function(s,m){if(!this.showWeekNumbers){return}var c=this.getVisibleDate();var h=this.getFirstDayOfWeek(c);var n=h.dayOfWeek;var t=this.getWeekOfYear(h);var f=new a.jqx._jqxDateTimeInput.getDateTime(new Date(h.dateTime));f._addDays(5);f.dayOfWeek=f.dateTime.getDay();var k=this.getWeekOfYear(f);var e=this.rowHeader.find("table");e.width(this.rowHeaderWidth);var g=h;var q=new Array();for(var p=0;p<6;p++){var o=t.toString();var b=new a.jqx._jqxCalendar.cell(g.dateTime);var l=p+1+this.element.id;var j=a(e[0].rows[p].cells[0]);b.element=j;b.row=p;b.column=0;var d=j.find("#headerCellContent"+l);d.addClass(this.toThemeProperty("jqx-calendar-row-cell"));d[0].innerHTML=t;q[p]=b;g=new a.jqx._jqxDateTimeInput.getDateTime(new Date(g._addWeeks(1)));t=this.getWeekOfYear(g)}var r=a.data(this.element,s[0].id);r.rowCells=q;this._refreshOtherMonthRows(r,m)},_refreshOtherMonthRows:function(f,e){if(this.showOtherMonthDays){return}this._displayLastRow(true,e);this._displayFirstRow(true,e);var d=false;var g=false;for(var c=0;c=f.cells.length-7){g=true}}}if(!d){this._displayFirstRow(false,e)}if(!g){this._displayLastRow(false,e)}},_displayLastRow:function(b,c){var g=this.host.find("#"+c);var f=g.find("#calendarRowHeader"+g[0].id).find("table");var d=null;if(this.showWeekNumbers){if(f[0].cells){var d=a(f[0].rows[5])}}var e=a(g.find("#cellTable"+g[0].id)[0].rows[5]);if(b){if(this.showWeekNumbers&&d){d.css("display","table-row")}e.css("display","table-row")}else{if(this.showWeekNumbers&&d){d.css("display","none")}e.css("display","none")}},_displayFirstRow:function(b,c){var e=this.host.find("#"+c);var d=e.find("#calendarRowHeader"+e[0].id).find("table");var f=null;if(this.showWeekNumbers){if(d[0].cells){var f=a(d[0].rows[0])}}var g=a(e.find("#cellTable"+e[0].id)[0].rows[0]);if(b){if(this.showWeekNumbers&&f){f.css("display","table-row")}g.css("display","table-row")}else{if(this.showWeekNumbers&&f){f.css("display","none")}g.css("display","none")}},_renderSingleCalendar:function(p,k){if(!this.canRender){return}var m=this.host.find("#"+p.toString());if(m!=null){m.remove()}var s=a("
              ");var b=this.getVisibleDate();var l=this.getFirstDayOfWeek(b);var e=new a.jqx._jqxDateTimeInput.getDateTime(l.dateTime);e._addMonths(1);var r=a.jqx._jqxCalendar.monthView(l,e,null,null,null,s);if(k==undefined||k==null){this.host.append(s);if(this.height!=undefined&&!isNaN(this.height)){s.height(this.height)}else{if(this.height!=null&&this.height.toString().indexOf("px")!=-1){s.height(this.height)}}if(this.width!=undefined&&!isNaN(this.width)){s.width(this.width)}else{if(this.width!=null&&this.width.toString().indexOf("px")!=-1){s.width(this.width)}}if(this.width!=null&&this.width.toString().indexOf("%")!=-1){s.width("100%")}if(this.height!=null&&this.height.toString().indexOf("%")!=-1){s.height("100%")}}else{k.append(s)}a.data(this.element,p,r);var q=this.host.height()-this.titleHeight-this.columnHeaderHeight;if(!this.showDayNames){q=this.host.height()-this.titleHeight}if(this.showFooter){q-=20}if(this.rowHeaderWidth<0){this.rowHeaderWidth=0}if(this.columnHeaderHeight<0){this.columnHeaderHeight=0}if(this.titleHeight<0){this.titleHeight=0}var g=this.rowHeaderWidth;var j=this.columnHeaderHeight;if(!this.showWeekNumbers){g=0}if(!this.showDayNames){j=0}var u="
              ";var c="
              ";var o="";s[0].innerHTML=u+c+o;this.header=s.find("#calendarHeader");this.header[0].id="calendarHeader"+p;this.header.addClass(this.toThemeProperty("calendar-header"));this.columnHeader=s.find("#calendarColumnHeader");this.columnHeader[0].id="calendarColumnHeader"+p;this.table=s.find("#cellsTable");this.table[0].id="cellsTable"+p;this.rowHeader=s.find("#calendarRowHeader");this.rowHeader[0].id="calendarRowHeader"+p;this.selectCell=s.find("#selectCell");this.selectCell[0].id="selectCell"+p;this.title=s.find("#calendarTitle");this.title[0].id="calendarTitle"+p;this.leftButton=s.find("#leftNavigationArrow");this.leftButton[0].id="leftNavigationArrow"+p;this.titleHeader=s.find("#calendarTitleHeader");this.titleHeader[0].id="calendarTitleHeader"+p;this.rightButton=s.find("#rightNavigationArrow");this.rightButton[0].id="rightNavigationArrow"+p;this.footer=s.find("#calendarFooter");this._footer=s.find("#footer");this._footer[0].id="footer"+p;this.footer[0].id="calendarFooter"+p;this.todayButton=s.find("#todayButton");this.todayButton[0].id="todayButton"+p;this.doneButton=s.find("#doneButton");this.doneButton[0].id="doneButton"+p;this.title.addClass(this.toThemeProperty("jqx-calendar-title-container"));var d=20;if(this.showFooter){this._footer.css("display","block")}s.find("tr").addClass(this.toThemeProperty("jqx-reset"));s.addClass(this.toThemeProperty("jqx-widget-content"));s.addClass(this.toThemeProperty("jqx-calendar-month-container"));this.month=s;this.selectCell.addClass(this.toThemeProperty("jqx-reset"));this.selectCell.addClass(this.toThemeProperty("jqx-calendar-top-left-header"));if(this.showWeekNumbers){this._renderRowHeader(s)}else{this.table[0].colSpan=3;this.columnHeader[0].colSpan=3;this.rowHeader.css("display","none");this.selectCell.css("display","none")}if(this.showFooter){this.footer.height(20);var i=a(""+this.todayString+"");i.appendTo(this.todayButton);var h=a(""+this.clearString+"");h.appendTo(this.doneButton);h.addClass(this.toThemeProperty("jqx-calendar-footer"));i.addClass(this.toThemeProperty("jqx-calendar-footer"));var n=this;var f="mousedown";if(a.jqx.mobile.isTouchDevice()){f=a.jqx.mobile.getTouchEventName("touchstart")}this.addHandler(i,f,function(){if(n.today){n.today()}else{n.setDate(new Date(),"mouse")}return false});this.addHandler(h,f,function(){if(n.clear){n.clear()}else{n.setDate(null,"mouse")}return false})}if(this.view!="month"){this.header.hide()}if(this.showDayNames&&this.view=="month"){this.renderColumnHeader(s)}this.oldView=this.view;this.renderCalendarCells(s,l,p);if(k==undefined||k==null){this.renderTitle(s)}this._refreshOtherMonthRows(r,p);s.find("tbody").css({border:"none",background:"transparent"});if(this.selectedDate!=undefined){this._selectDate(this.selectedDate)}var t=this;this.addHandler(this.host,"focus",function(){t.focus()});return s},_getTitleFormat:function(){switch(this.view){case"month":return this.titleFormat[0];case"year":return this.titleFormat[1];case"decade":return this.titleFormat[2];case"centuries":return this.titleFormat[3]}},renderTitle:function(t){var k=a("
              ");var l=a("
              ");var o=this.title;o.addClass(this.toThemeProperty("jqx-reset"));o.addClass(this.toThemeProperty("jqx-widget-header"));o.addClass(this.toThemeProperty("jqx-calendar-title-header"));var e=o.find("td");if(a.jqx.browser.msie&&a.jqx.browser.version<8){if(e.css("background-color")!="transparent"){var g=o.css("background-color");e.css("background-color",g)}if(e.css("background-image")!="transparent"){var d=o.css("background-image");var p=o.css("background-repeat");var c=o.css("background-position");e.css("background-image",d);e.css("background-repeat",p);e.css("background-position","left center scroll")}}else{e.css("background-color","transparent")}if(this.disabled){o.addClass(this.toThemeProperty("jqx-calendar-title-header-disabled"))}k.addClass(this.toThemeProperty("jqx-calendar-title-navigation"));k.addClass(this.toThemeProperty("jqx-icon-arrow-left"));k.appendTo(this.leftButton);var m=this.leftButton;l.addClass(this.toThemeProperty("jqx-calendar-title-navigation"));l.addClass(this.toThemeProperty("jqx-icon-arrow-right"));l.appendTo(this.rightButton);var b=this.rightButton;if(this.enableTooltips){if(a(m).jqxTooltip){a(m).jqxTooltip({name:this.element.id,position:"mouse",theme:this.theme,content:this.backText});a(b).jqxTooltip({name:this.element.id,position:"mouse",theme:this.theme,content:this.forwardText})}}var n=this.titleHeader;var v=this._format(this.value.dateTime,this._getTitleFormat(),this.culture);if(this.view=="decade"){var q=this._format(this._renderStartDate,this._getTitleFormat(),this.culture);var j=this._format(this._renderEndDate,this._getTitleFormat(),this.culture);v=q+" - "+j}else{if(this.view=="centuries"){var q=this._format(this._renderCenturyStartDate,this._getTitleFormat(),this.culture);var j=this._format(this._renderCenturyEndDate,this._getTitleFormat(),this.culture);v=q+" - "+j}}var f=a("
              "+v+"
              ");n.append(f);f.addClass(this.toThemeProperty("jqx-calendar-title-content"));var s=parseInt(k.width());var i=t.width()-2*s;var r=n.find(".jqx-calendar-title-content").width(i);a.data(k,"navigateLeft",this);a.data(l,"navigateRight",this);var h=a.jqx.mobile.isTouchDevice();if(!this.disabled){var u=this;this.addHandler(n,"mousedown",function(A){if(u.enableViews){if(!u._viewAnimating&&!u._animating){var x=u.view;u.oldView=x;switch(u.view){case"month":u.view="year";break;case"year":u.view="decade";break}if(u.views.indexOf("year")==-1&&u.view=="year"){u.view="decade"}if(u.views.indexOf("decade")==-1&&u.view=="decade"){u.view=x}if(x!=u.view){var z="View"+u.element.id;var B=u.host.find("#"+z);var y=u.getVisibleDate();var w=u.getFirstDayOfWeek(y);u.renderCalendarCells(B,w,z,true);u.refreshTitle(B);u._raiseEvent("8")}}return false}});this.addHandler(k,"mousedown",function(x){if(!u._animating){a.data(k,"navigateLeftRepeat",true);var w=a.data(k,"navigateLeft");if(w.enableFastNavigation&&!h){w.startRepeat(w,k,true,u.navigationDelay+200)}w.navigateBackward(1,"arrow");x.stopPropagation();x.preventDefault();return w._raiseEvent(0,x)}else{return false}});this.addHandler(k,"mouseup",function(w){a.data(k,"navigateLeftRepeat",false)});this.addHandler(k,"mouseleave",function(w){a.data(k,"navigateLeftRepeat",false)});this.addHandler(l,"mousedown",function(x){if(!u._animating){a.data(l,"navigateRightRepeat",true);var w=a.data(l,"navigateRight");if(w.enableFastNavigation&&!h){w.startRepeat(w,l,false,u.navigationDelay+200)}w.navigateForward(1,"arrow");x.stopPropagation();x.preventDefault();return w._raiseEvent(1,x)}else{return false}});this.addHandler(l,"mouseup",function(w){a.data(l,"navigateRightRepeat",false)});this.addHandler(l,"mouseleave",function(w){a.data(l,"navigateRightRepeat",false)})}},refreshTitle:function(f){var g=this._format(this.value.dateTime,this._getTitleFormat(),this.culture);if(this.view=="decade"){var d=this._format(this._renderStartDate,this._getTitleFormat(),this.culture);var b=this._format(this._renderEndDate,this._getTitleFormat(),this.culture);g=d+" - "+b}else{if(this.view=="centuries"){var d=this._format(this._renderCenturyStartDate,this._getTitleFormat(),this.culture);var b=this._format(this._renderCenturyEndDate,this._getTitleFormat(),this.culture);g=d+" - "+b}}var e=this.titleHeader;if(this.titleHeader){var c=e.find(".jqx-calendar-title-content");var h=a("
              "+g+"
              ");e.append(h);h.addClass(this.toThemeProperty("jqx-calendar-title-content"));if(c!=null){c.remove()}}},startRepeat:function(d,b,f,e){var c=window.setTimeout(function(){var g=a.data(b,"navigateLeftRepeat");if(!f){g=a.data(b,"navigateRightRepeat")}if(g){if(e<25){e=25}if(f){d.navigateBackward(1,"arrow");d.startRepeat(d,b,true,e)}else{d.navigateForward(1,"arrow");c=d.startRepeat(d,b,false,e)}}else{window.clearTimeout(c);return}},e)},navigateForward:function(h,g){if(h==undefined||h==null){h=this.stepMonths}var f=this.value.year;if(this.view=="decade"){f=this._renderStartDate.getFullYear()+12;if(this._renderEndDate.getFullYear()>=this.getMaxDate().getFullYear()){return}}else{if(this.view=="year"){f=this.value.year+1}else{if(this.view=="centuries"){f=this.value.year+100}}}if(this.view!="month"){var b=this.getMaxDate().getFullYear();if(bb){f=b}if(this.value.year==f){if(this.view==="decade"){if(this.value.year>this._renderEndDate.getFullYear()){this.value.year=f;this.value.month=1;this.value.day=1}else{return}}else{return}}this.value.year=f;this.value.month=1;this.value.day=1}var c=this.value.day;var i=this.value.month;if(i+h<=12){var e=this.value._daysInMonth(this.value.year,this.value.month+h);if(c>e){c=e}}if(this.view=="month"){var d=new Date(this.value.year,this.value.month-1+h,c);if(g=="arrow"&&this.selectableDays.length==7&&this.selectionMode!="range"){this.selectedDate=new Date(this.value.year,this.value.month-1+h,1)}}else{var d=new Date(this.value.year,this.value.month-1,c)}return this.navigateTo(d)},navigateBackward:function(g,f){if(g==undefined||g==null){g=this.stepMonths}var e=this.value.year;if(this.view=="decade"){e=this._renderStartDate.getFullYear()-12}else{if(this.view=="year"){e=this.value.year-1}else{if(this.view=="centuries"){e=this.value.year-100}}}if(this.view!="month"){var i=this.getMinDate().getFullYear();if(e=1){var d=this.value._daysInMonth(this.value.year,this.value.month-g);if(b>d){b=d}}if(this.view=="month"){var c=new Date(this.value.year,this.value.month-1-g,b);if(f=="arrow"&&this.selectableDays.length==7&&this.selectionMode!="range"){this.selectedDate=new Date(this.value.year,this.value.month-1-g,1)}}else{var c=new Date(this.value.year,this.value.month-1,b)}return this.navigateTo(c)},_isRestrictedRange:function(d,c){if(d>c){return true}var b=d;while(b.valueOf()<=c.valueOf()){if(this._isRestrictedDate(b)){return true}b.setDate(b.getDate()+1)}return false},_hasUnrestrictedRanges:function(d,c){if(d>c){return false}var b=d;while(b.valueOf()<=c.valueOf()){if(!this._isRestrictedDate(b)){return true}b.setDate(b.getDate()+1)}return false},_getNextUnrestrictedDay:function(d,c){if(d>c){return null}var b=d;while(b.valueOf()<=c.valueOf()){if(!this._isRestrictedDate(b)){return b}b.setDate(b.getDate()+1)}return null},_isRestrictedDate:function(d){var c=this;if(!a.isArray(c.restrictedDates)){return false}for(var g=0;g=f.valueOf()&&d.valueOf()<=e.valueOf()){return true}}else{if(b.getMonth()==d.getMonth()&&b.getDate()==d.getDate()&&b.getFullYear()==d.getFullYear()){return true}}}return false},_isDisabled:function(d){var e=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var b=d.getDay();var c=e[b];if(this.selectableDays.indexOf(c)==-1){return true}if(this._isRestrictedDate(d)){return true}return false},refreshCalendarCells:function(x,f,m){if(this.view=="year"||this.view=="decade"||this.view=="centuries"){this.refreshViews(x,f,m);return}var s=this.table;var q=s.find("#cellTable"+m.toString());var e=f;var c=new Array();var n=0;var u=new a.jqx._jqxDateTimeInput.getDateTime(new Date());for(var p=0;p<6;p++){for(var o=0;o<7;o++){var d=p+1;var h=o;if(this.rtl){h=6-h}var t=h+1;var l="#cell"+d+t+this.element.id;var w=new Date(e.dateTime.getFullYear(),e.dateTime.getMonth(),e.dateTime.getDate());var b=new a.jqx._jqxCalendar.cell(w);var g=a(q[0].rows[p].cells[t-1]);g[0].id=l.substring(1);b.element=g;b.row=p;b.column=o;b.isVisible=true;b.isOtherMonth=false;b.isToday=false;b.isWeekend=false;b.isHighlighted=false;b.isSelected=false;if(e.month!=this.value.month){b.isOtherMonth=true;b.isVisible=this.showOtherMonthDays}if(this._isRestrictedDate(w)){b.isRestricted=true;b.isDisabled=true}if(!b.isDisabled){if(wthis.getMaxDate()||this._isDisabled(w)){b.isDisabled=true}}if(e.month==u.month&&e.day==u.day&&e.year==u.year){b.isToday=true}if(e.isWeekend()){b.isWeekend=true}a.data(this.element,"cellContent"+l.substring(1),b);a.data(this.element,l.substring(1),b);c[n]=b;n++;a.jqx.utilities.html(g,e.day);this._applyCellStyle(b,g,g);e=new a.jqx._jqxDateTimeInput.getDateTime(new Date(e._addDays(1)))}}var v=a.data(this.element,x[0].id);if(v!=undefined&&v!=null){v.cells=c}this.renderedCells=c;this._refreshOtherMonthRows(v,m)},_getDecadeAndCenturiesData:function(){var k=new Array();var p=new Array();var c=this.getMaxDate().getFullYear()-this.getMinDate().getFullYear();if(c<12){c=12}var f=this.getMinDate();var b=this.getMaxDate();var l=this.value.dateTime.getFullYear();if(this.view=="decade"){if(l+12>b.getFullYear()){l=b.getFullYear()-11}if(l=f.getFullYear()&&n.getFullYear()<=b.getFullYear()){k.push("-"+n.getFullYear()+"-"+(n.getFullYear()+9));p.push(n);if(e==0){this._renderCenturyStartDate=n}this._renderCenturyEndDate=new Date(n.getFullYear()+9,0,1)}}break}}}}return{years:k,dates:p}},refreshViews:function(A,m,s){var B=this;var c=new Array();var w=A.find("#cellTable"+s.toString());var D=this._getDecadeAndCenturiesData();var l=D.years;var C=D.dates;var t=0;var f=this.getMinDate();var n=this.getMaxDate();for(var v=0;v<3;v++){for(var u=0;u<4;u++){var d=v+1;var q=u;if(this.rtl){q=3-q}var x=q+1;var z=new Date(this.value.dateTime);z.setDate(1);z.setMonth(v*4+q);var b=new a.jqx._jqxCalendar.cell(z);var e=w[0].rows["row"+(1+v)+this.element.id];var o=a(e.cells[u]);b.isSelected=false;b.isVisible=true;b.element=o;b.row=v;b.column=u;b.index=c.length;var p="";if(this.view=="year"){var h=this.localization.calendar.months.names;var g=h[v*4+q];switch(this.monthNameFormat){case"default":g=this.localization.calendar.months.namesAbbr[v*4+q];break;case"shortest":g=this.localization.calendar.months.namesShort[v*4+q];break;case"firstTwoLetters":g=g.substring(0,2);break;case"firstLetter":g=g.substring(0,1);break}p=g}else{if(this.view=="decade"||this.view=="centuries"){p=l[v*4+q];if(undefined==p){p="2013"}b.setDate(C[v*4+q])}}var z=b.getDate();if(this.view=="year"){if(z.getMonth()==this.getDate().getMonth()&&z.getFullYear()==this.getDate().getFullYear()){b.isSelected=true}}else{if(z.getFullYear()==this.getDate().getFullYear()){b.isSelected=true}}if(this.view=="year"){if(this._getYearAndMonthPart(z)this._getYearAndMonthPart(n)){b.isDisabled=true}}else{if(z.getFullYear()n.getFullYear()){b.isDisabled=true}}a.jqx.utilities.html(o,p);c[t]=b;t++}}var y=a.data(this.element,A[0].id);if(y!=undefined&&y!=null){y.cells=c}this.renderedCells=c;this._applyCellStyles()},_createViewClone:function(){var b=this.host.find(".jqx-calendar-month");var c=b.clone();c.css("position","absolute");c.css("top",b.position().top);return c},_addCellsTable:function(h,g){var e=this;var c=this.showFooter?20:0;if(this.view!="month"){g.height(this.host.height()-this.titleHeight)}else{g.height(this.host.height()-this.titleHeight-this.columnHeaderHeight-c)}this._viewAnimating=true;var b=this.host.find(".jqx-calendar-month-container");b.css("position","relative");var d=this.host.find(".jqx-calendar-month");var f=this._createViewClone();b.append(f);if(this.view!="month"){this.header.fadeOut(0);if(this.showWeekNumbers){this.rowHeader.fadeOut(0)}if(this.showFooter){this._footer.fadeOut(0)}}else{this.header.fadeIn(this.navigationDelay+200);if(this.showWeekNumbers){this.rowHeader.fadeIn(this.navigationDelay+200)}if(this.showFooter){this._footer.fadeIn(this.navigationDelay+200)}}h.children().remove();h.append(g);this._animateViews(f,g,function(){if(!e.selectedDate&&e.selectionMode!="range"){e.selectedDate=e.renderedCells[0].getDate()}try{e.renderedCells[0].element.focus();setTimeout(function(){e.renderedCells[0].element.focus()},10)}catch(i){}e._viewAnimating=false});g.addClass(this.toThemeProperty("jqx-calendar-view"))},_animateViews:function(c,b,e){var d=this;d._viewAnimating=true;if(d.oldView==d.view){c.remove();b.fadeOut(0);b.fadeIn(0);e();return}c.fadeOut(this.navigationDelay+100,function(){c.remove()});b.fadeOut(0);b.fadeIn(this.navigationDelay+200,function(){e()})},focus:function(){try{if(this.renderedCells&&this.renderedCells.length>0){var d=this;var c=false;if(!d.selectedDate&&d.selectionMode!="range"){this.setDate(new Date(),"mouse")}this.element.focus()}}catch(b){}},renderViews:function(E,n,v){var F=this;var e=new Array();var z=a("
              ");var q=this.host.find(".jqx-calendar-month-container");q.css("position","relative");var A=E.find("#cellsTable"+E[0].id);A[0].style.borderColor="transparent";var I=this._getDecadeAndCenturiesData();var m=I.years;var H=I.dates;var w=0;var g=this.getMinDate();var o=this.getMaxDate();var t=new Date(this.value.dateTime);t.setDate(1);for(var y=0;y<3;y++){for(var x=0;x<4;x++){var d=y+1;var u=x;if(this.rtl){u=3-u}var B=u+1;var f=z[0].rows["row"+(1+y)+this.element.id];var D=new Date(t);D.setMonth(y*4+u);var c=new a.jqx._jqxCalendar.cell(D);var p=a(f.cells[x]);c.isVisible=true;c.element=p;c.row=y;c.column=x;c.index=e.length;c.isSelected=false;var s="";if(this.view=="year"){if(D.getMonth()==this.getDate().getMonth()&&D.getFullYear()==this.getDate().getFullYear()){c.isSelected=true}var l=this.localization.calendar.months.names;var h=l[y*4+u];switch(this.monthNameFormat){case"default":h=this.localization.calendar.months.namesAbbr[y*4+u];break;case"shortest":h=this.localization.calendar.months.namesShort[y*4+u];break;case"firstTwoLetters":h=h.substring(0,2);break;case"firstLetter":h=h.substring(0,1);break}s=h}else{if(this.view=="decade"||this.view=="centuries"){s=m[y*4+u];c.setDate(H[y*4+u]);if(c.getDate().getFullYear()==this.getDate().getFullYear()){c.isSelected=true}if(undefined==s){s="2013"}}}var D=c.getDate();if(this.view=="year"){var b=new Date(D);b.setDate(1);b.setHours(0,0,0,0);b.setMonth(D.getMonth()+1);b=new Date(b.valueOf()-1);if(this._getYearAndMonthPart(D)this._getYearAndMonthPart(o)||!this._hasUnrestrictedRanges(D,b)){c.isDisabled=true}}else{var G=new Date(D);G.setMonth(0);G.setDate(1);G.setHours(0,0,0,0);G.setFullYear(D.getFullYear()+1);G=new Date(G.valueOf()-1);if(D.getFullYear()o.getFullYear()||!this._hasUnrestrictedRanges(D,G)){c.isDisabled=true}}a.jqx.utilities.html(p,s);e[w]=c;w++}}a.each(e,function(){var j=this.element;var i=this;if(!F.disabled){F.addHandler(j,"mousedown",function(k){F._setDateAndSwitchViews(i,k,"mouse")});F.addHandler(j,"mouseover",function(r){var k=F.renderedCells[i.index];if(F.view!="centuries"&&k.element.html().toLowerCase().indexOf("span")!=-1){return}k.isHighlighted=true;F._applyCellStyle(k,k.element,k.element)});F.addHandler(j,"mouseout",function(r){var k=F.renderedCells[i.index];if(F.view!="centuries"&&k.element.html().toLowerCase().indexOf("span")!=-1){return}k.isHighlighted=false;F._applyCellStyle(k,k.element,k.element)})}});var C=a.data(this.element,E[0].id);if(C!=undefined&&C!=null){C.cells=e}this.renderedCells=e;this._addCellsTable(A,z);this._applyCellStyles()},_setDateAndSwitchViews:function(m,d,j){if(!this._viewAnimating&&!this._animating){var g=this.getDate();var e=this.renderedCells[m.index].getDate();var k=this.value.dateTime.getDate();var l=new Date(e);if(this.views.indexOf("month")!=-1){l.setDate(k)}else{l.setDate(1);e.setDate(1)}if(l.getMonth()==e.getMonth()){e=l}var i=this.getMinDate();var c=this.getMaxDate();if(this.view=="year"){if(this._getYearAndMonthPart(e)this._getYearAndMonthPart(c)){return}}else{if(e.getFullYear()c.getFullYear()){return}}if(this.selectionMode!="range"){this._selectDate(e,j)}this.oldView=this.view;switch(this.view){case"year":this.view="month";break;case"decade":this.view="year";break}if(this.views.indexOf("month")==-1){this.view="year"}if(this.views.indexOf("year")==-1){this.view="decade"}if(this.view=="year"){if(this._getYearAndMonthPart(e)this._getYearAndMonthPart(c)){e=c}}else{if(e.getFullYear()c.getFullYear()){e=c}}if(this.changing&&(this.selectedDate&&(this.selectedDate.getFullYear()!=e.getFullYear()||this.selectedDate.getMonth()!=e.getMonth()||this.selectedDate.getDate()!=e.getDate()))){e=this.selectedDate}this.value._setYear(e.getFullYear());this.value._setDay(e.getDate());this.value._setMonth(e.getMonth()+1);this.value._setDay(e.getDate());var h=this.getVisibleDate();var b=this.getFirstDayOfWeek(h);var f="View"+this.element.id;this.renderCalendarCells(this.month,b,f,true);this.refreshTitle(this.month);if(this.showWeekNumbers){this.refreshRowHeader(this.month,f)}if(this.views.length==3){if(this.view=="month"){if(this.selectionMode!="range"){this._selectDate(this.selectedDate,"view")}else{var n=this;a.each(this.renderedCells,function(r){var o=this;var t=o.getDate();var p=a(o.element);var q=p;if(p.length==0){return false}var s=function(v){if(v==null){return new Date()}var u=new Date();u.setHours(0,0,0,0);u.setFullYear(v.getFullYear(),v.getMonth(),v.getDate());return u};if(!o.isOtherMonth&&s(t).toString()==s(e).toString()){n.value._setMonth(e.getMonth()+1);n.value._setDay(e.getDate());n.value._setYear(e.getFullYear())}o.isSelected=false;o.isDisabled=false;if(s(t)t){o.isDisabled=true}if(n._isDisabled(t)){o.isDisabled=true}if(!o.isDisabled){if(s(t)>=s(n.selection.from)&&s(t)<=s(n.selection.to)){o.isSelected=true}}});this._applyCellStyles()}}}if(this.view!="month"){if(this.oldView=="year"||(this.views.indexOf("year")==-1&&this.view=="decade")){if(j!="keyboard"){this._raiseEvent("3")}this._raiseEvent("5",{selectionType:"mouse"})}}this._raiseEvent("8")}},renderCalendarCells:function(D,m,s,q){if(this.view=="year"||this.view=="decade"||this.view=="centuries"){this.renderViews(D,m,s);return}var x=a("
              ");var y=this.table;y[0].style.borderColor="transparent";if(q==undefined){var g=y.find("#cellTable"+s.toString());if(g!=null){g.remove()}y.append(x)}var l=m;var b=this.showDayNames?1:0;var f=this.showWeekNumbers?1:0;var d=new Array();var t=0;var v=(D.width()-this.rowHeaderWidth-2)/7;if(!this.showWeekNumbers){v=(D.width()-2)/7}v=parseInt(v);var A=new a.jqx._jqxDateTimeInput.getDateTime(new Date());for(var w=0;w<6;w++){for(var u=0;u<7;u++){var e=w+1;var o=u;if(this.rtl){o=6-o}var z=o+1;var p="#cell"+e+z+this.element.id;var C=new Date(l.dateTime.getFullYear(),l.dateTime.getMonth(),l.dateTime.getDate());var c=new a.jqx._jqxCalendar.cell(C);var n=a(x[0].rows[w].cells[z-1]);n[0].id=p.substring(1);c.isVisible=true;c.isDisabled=false;if(l.month!=this.value.month){c.isOtherMonth=true;c.isVisible=this.showOtherMonthDays}if(this._isRestrictedDate(C)){c.isRestricted=true;c.isDisabled=true}if(!c.isDisabled){if(Cthis.getMaxDate()||this._isDisabled(C)){c.isDisabled=true}}if(l.month==A.month&&l.day==A.day&&l.year==A.year){c.isToday=true}if(l.isWeekend()){c.isWeekend=true}c.element=n;c.row=b;c.column=f;a.jqx.utilities.html(n,l.day);l=new a.jqx._jqxDateTimeInput.getDateTime(new Date(l._addDays(1)));a.data(this.element,"cellContent"+p.substring(1),c);a.data(this.element,""+p.substring(1),c);var E=this;this.addHandler(n,"mousedown",function(I){if(!E.readOnly&&!E.disabled){var H=a(I.target);var j=a.data(E.element,H[0].id);var i=E._raiseEvent(3,I);if(j!=null&&j!=undefined){var r=j.getDate();if(E.getMinDate()<=r&&r<=E.getMaxDate()){if(!j.isDisabled){if(j.isOtherMonth&&E.enableAutoNavigation){if(j.row<2){E.navigateBackward()}else{E.navigateForward()}E._selectDate(j.getDate(),"mouse",I.shiftKey)}else{var F=new Date(E.getDate());E._selectDate(j.getDate(),"mouse",I.shiftKey);E.value._setYear(r.getFullYear());E.value._setDay(1);E.value._setMonth(r.getMonth()+1);E.value._setDay(r.getDate());var G=E.host.find(".jqx-calendar-month");G.stop();G.css("margin-left","0px");var k=E.getDate();E._raiseEvent("2");if(j.isOtherMonth){E._raiseEvent("5",{selectionType:"mouse"})}}}}}return false}});if(!E.disabled){var h=function(F,j){if(!E.readOnly){var r=a(F.target);var i=a.data(E.element,r[0].id);if(i!=null&&i!=undefined){var k=i.getDate();if(E.getMinDate()<=k&&k<=E.getMaxDate()){i.isHighlighted=j;E._applyCellStyle(i,i.element,r)}}}};this.addHandler(n,"mouseenter",function(i){h(i,true);return false});this.addHandler(n,"mouseleave",function(i){h(i,false);return false})}f++;d[t]=c;t++}f=0;b++}var B=a.data(this.element,D[0].id);if(B!=undefined&&B!=null){B.cells=d}this.renderedCells=d;if(q!=undefined){this._addCellsTable(y,x)}this._applyCellStyles();this._refreshOtherMonthRows(B,s)},setMaxDate:function(b,c){if(b!=null&&typeof(b)=="string"){b=new Date(b);if(b=="Invalid Date"){return}}this.maxDate=a.jqx._jqxDateTimeInput.getDateTime(b);if(c!==false){this.render()}},getMaxDate:function(){if(this.maxDate!=null&&this.maxDate!=undefined){return this.maxDate.dateTime}return null},setMinDate:function(b,c){if(b!=null&&typeof(b)=="string"){b=new Date(b);if(b=="Invalid Date"){return}}this.minDate=a.jqx._jqxDateTimeInput.getDateTime(b);if(c!==false){this.render()}},getMinDate:function(){if(this.minDate!=null&&this.minDate!=undefined){return this.minDate.dateTime}return null},navigateTo:function(f,h){if(this.view=="month"){var g=this.getMinDate();var c=new Date(this.getMaxDate().getFullYear(),this.getMaxDate().getMonth()+1,this.getMaxDate().getDate());if((fthis._getYearAndMonthPart(c))){return false}}else{if(f&&(f.getFullYear()this.getMaxDate().getFullYear())){return false}}if(f==null){return false}if(h==undefined){var i=this;if(this._animating){return}this._animating=true;var d=this.host.find(".jqx-calendar-month-container");if(this._viewClone){this._viewClone.stop();this._viewClone.remove()}if(this._newViewClone){this._newViewClone.stop();this._newViewClone.remove()}var k=this.host.find(".jqx-calendar-month");k.stop();k.css("margin-left","0px");var b=k.clone();this._viewClone=b;var j=new Date(this.value.dateTime);this.value._setYear(f.getFullYear());this.value._setDay(f.getDate());this.value._setMonth(f.getMonth()+1);i.refreshControl();d.css("position","relative");b.css("position","absolute");b.css("top",k.position().top);d.append(b);if(a.jqx.browser.msie&&a.jqx.browser.version<8){this.month.css("position","relative");this.month.css("overflow","hidden");this.table.css("position","relative");this.table.css("overflow","hidden")}var e=-this.host.width();if(fo){w.isDisabled=true}if(k._isRestrictedDate(o)){w.isDisabled=true;w.isRestricted=true}if(!w.isDisabled&&k._isDisabled(o)){w.isDisabled=true}k._applyCellStyle(w,v,l);return true}if(r==0){if(g!="none"){if(k._clicks==undefined){k._clicks=0}k._clicks++;if(c){k._clicks++}if(k._clicks==1){k.selection={from:d,to:d}}else{var u=k.selection.from;var q=u<=d?u:d;var t=u<=d?d:u;if(q){var m=new Date(q.getFullYear(),q.getMonth(),q.getDate())}if(t){var n=new Date(t.getFullYear(),t.getMonth(),t.getDate(),23,59,59)}k.selection={from:m,to:n};k._clicks=0}}else{if(k.selection==null||k.selection.from==null){k.selection={from:d,to:d};if(k._clicks==undefined){k._clicks=0}k._clicks++;if(k._clicks==2){k._clicks=0}}}}var p=function(y){if(y==null){return new Date()}var x=new Date();x.setHours(0,0,0,0);x.setFullYear(y.getFullYear(),y.getMonth(),y.getDate());return x};if(!w.isOtherMonth&&p(o).toString()==p(d).toString()){k.value._setMonth(d.getMonth()+1);k.value._setDay(d.getDate());k.value._setYear(d.getFullYear());k._raiseEvent("2");k._raiseEvent("5",{selectionType:g})}w.isSelected=false;w.isDisabled=h;if(p(o)o){w.isDisabled=true}if(k._isRestrictedDate(o)){w.isRestricted=true;w.isDisabled=true}if(!w.isDisabled&&k._isDisabled(o)){w.isDisabled=true}if(!w.isDisabled){if(p(o)>=p(k.selection.from)&&p(o)<=p(k.selection.to)){w.isSelected=true}}else{if(!k.allowRestrictedDaysInRange&&p(o)>=p(k.selection.from)&&k.selection.to==k.selection.from){h=true}}}}}k._applyCellStyle(w,v,l)});if(k.selectionMode=="range"&&k._clicks==0){k._raiseEvent(7,{selectionType:g});return}else{if(k.selectionMode=="range"){return}}if(e!=d){k._raiseEvent(7,{selectionType:g});if(this.change){this.change(d)}}},_getSelectedDate:function(){var d=a.data(this.element,"View"+this.element.id);if(d==undefined||d==null){return}if(this.view!="month"){return this.selectedDate}for(var c=0;c0&&g.html().toLowerCase().indexOf("span")!=-1){g.css("cursor","default")}}}g.removeAttr("aria-selected");if(c.isSelected&&c.isVisible){b+=" "+this.toThemeProperty("jqx-calendar-cell-selected");b+=" "+this.toThemeProperty("jqx-fill-state-pressed");g.attr("aria-selected",true);this.host.removeAttr("aria-activedescendant").attr("aria-activedescendant",g[0].id);var f=c.getDate();if(this._isDisabled(f)){b+=" "+this.toThemeProperty("jqx-calendar-cell-selected-invalid")}}if(c.isHighlighted&&c.isVisible&&this.enableHover){if(!c.isDisabled){b+=" "+this.toThemeProperty("jqx-calendar-cell-hover");b+=" "+this.toThemeProperty("jqx-fill-state-hover")}}b+=" "+this.toThemeProperty("jqx-calendar-cell-"+this.view);if(c.isToday&&c.isVisible){b+=" "+this.toThemeProperty("jqx-calendar-cell-today")}g[0].className=b;if(this.specialDates.length>0){var h=this;a.each(this.specialDates,function(){if(this.Class!=undefined&&this.Class!=null&&this.Class!=""){g.removeClass(this.Class)}else{g.removeClass(e.toThemeProperty("jqx-calendar-cell-specialDate"))}var i=c.getDate();if(i.getFullYear()==this.Date.getFullYear()&&i.getMonth()==this.Date.getMonth()&&i.getDate()==this.Date.getDate()){if(c.tooltip==null&&this.Tooltip!=null){c.tooltip=this.Tooltip;if(a(g).jqxTooltip){var j=this.Class;a(g).jqxTooltip({value:{cell:c,specialDate:this.Date},name:h.element.id,content:this.Tooltip,position:"mouse",theme:h.theme,opening:function(k){if(g.hasClass(e.toThemeProperty("jqx-calendar-cell-specialDate"))){return true}if(g.hasClass(j)){return true}return false}})}}g.removeClass(e.toThemeProperty("jqx-calendar-cell-othermonth"));g.removeClass(e.toThemeProperty("jqx-calendar-cell-weekend"));if(this.Class==undefined||this.Class==""){g.addClass(e.toThemeProperty("jqx-calendar-cell-specialDate"));return false}else{g.addClass(this.Class);return false}}})}},_applyCellStyles:function(){var f=a.data(this.element,"View"+this.element.id);if(f==undefined||f==null){return}for(var e=0;e=0?c:c+7);var d=Math.floor((b.getTime()-e.getTime()-(b.getTimezoneOffset()-e.getTimezoneOffset())*60000)/86400000)+1;var g;if(c<4){g=Math.floor((d+c-1)/7)+1;if(g>52){nYear=new Date(b.getFullYear()+1,0,1);nday=nYear.getDay()-dowOffset;nday=nday>=0?nday:nday+7;g=nday<4?1:53}}else{g=Math.floor((d+c-1)/7)}return g},renderColumnHeader:function(w){if(!this.showDayNames){return}var t=a("
              ");t.find("table").addClass(this.toThemeProperty("jqx-reset"));t.find("tr").addClass(this.toThemeProperty("jqx-reset"));t.find("td").css({background:"transparent",padding:1,margin:0,border:"none"});t.addClass(this.toThemeProperty("jqx-reset"));t.addClass(this.toThemeProperty("jqx-widget-content"));t.addClass(this.toThemeProperty("jqx-calendar-column-header"));this.columnHeader.append(t);var d=this.getVisibleDate();var h=this.getFirstDayOfWeek(d);var m=h.dayOfWeek;var x=this.getWeekOfYear(h);var q=this.firstDayOfWeek;var v=this.localization.calendar.days.names;var n=new Array();var g=h;var o=(w.width()-this.rowHeaderWidth-2)/7;if(!this.showWeekNumbers){o=(w.width()-2)/7}for(var s=0;s<7;s++){var f=v[q];if(this.rtl){f=v[6-q]}switch(this.dayNameFormat){case"default":f=this.localization.calendar.days.namesAbbr[q];if(this.rtl){f=this.localization.calendar.days.namesAbbr[6-q]}break;case"shortest":f=this.localization.calendar.days.namesShort[q];if(this.rtl){f=this.localization.calendar.days.namesShort[6-q]}break;case"firstTwoLetters":f=f.substring(0,2);break;case"firstLetter":f=f.substring(0,1);break}var b=new a.jqx._jqxCalendar.cell(g.dateTime);var k=s+1;var l=k+this.element.id;var j=a(t[0].rows[0].cells[s]);var p=s;if(this.enableTooltips){if(a(j).jqxTooltip){a(j).jqxTooltip({name:this.element.id,content:v[q],theme:this.theme,position:"mouse"})}}if(q>=6){q=0}else{q++}s=p;b.element=j;b.row=0;b.column=s+1;var e=this._textwidth(f);var c="
              "+f+"
              ";j.append(c);j.find("#columnCell"+l).addClass(this.toThemeProperty("jqx-calendar-column-cell"));j.width(o);if(this.disabled){j.find("#columnCell"+l).addClass(this.toThemeProperty("jqx-calendar-column-cell-disabled"))}if(e>0&&o>0){while(e>j.width()){if(f.length==0){break}f=f.substring(0,f.length-1);a.jqx.utilities.html(j.find("#columnCell"+l),f);e=this._textwidth(f)}}n[s]=b;g=new a.jqx._jqxDateTimeInput.getDateTime(new Date(g._addDays(1)))}if(parseInt(this.columnHeader.width())>parseInt(this.host.width())){this.columnHeader.width(this.host.width())}var u=a.data(this.element,w[0].id);u.columnCells=n},_format:function(d,e,b){var f=false;try{if(Globalize!=undefined){f=true}}catch(c){}if(a.global){a.global.culture.calendar=this.localization.calendar;return a.global.format(d,e,this.culture)}else{if(f){try{if(Globalize.cultures[this.culture]){Globalize.cultures[this.culture].calendar=this.localization.calendar;return Globalize.format(d,e,this.culture)}else{return Globalize.format(d,e,this.culture)}}catch(c){return Globalize.format(d,e)}}else{if(a.jqx.dataFormat){return a.jqx.dataFormat.formatdate(d,e,this.localization.calendar)}}}},_textwidth:function(d){var c=a(""+d+"");c.addClass(this.toThemeProperty("jqx-calendar-column-cell"));a(this.host).append(c);var b=c.width();c.remove();return b},_textheight:function(d){var c=a(""+d+"");a(this.host).append(c);var b=c.height();c.remove();return b},_renderRowHeader:function(k){var g=this.getVisibleDate();var c=this.getFirstDayOfWeek(g);var f=c.dayOfWeek;var s=this.getWeekOfYear(c);var o=new a.jqx._jqxDateTimeInput.getDateTime(new Date(c.dateTime));o._addDays(5);o.dayOfWeek=o.dateTime.getDay();var m=this.getWeekOfYear(o);if(53==s&&o.dateTime.getMonth()==0){s=1}var l=a("
              ");l.find("table").addClass(this.toThemeProperty("jqx-reset"));l.find("td").addClass(this.toThemeProperty("jqx-reset"));l.find("tr").addClass(this.toThemeProperty("jqx-reset"));l.addClass(this.toThemeProperty("jqx-calendar-row-header"));l.width(this.rowHeaderWidth);this.rowHeader.append(l);var d=c;var r=new Array();for(var h=0;h<6;h++){var e=s.toString();var q=new a.jqx._jqxCalendar.cell(d.dateTime);var j=h+1+this.element.id;var p=a(l[0].rows[h].cells[0]);q.element=p;q.row=h;q.column=0;var b="
              "+e+"
              ";p.append(b);p.find("#headerCellContent"+j).addClass(this.toThemeProperty("jqx-calendar-row-cell"));r[h]=q;d=new a.jqx._jqxDateTimeInput.getDateTime(new Date(d._addWeeks(1)));s=this.getWeekOfYear(d)}var n=a.data(this.element,k[0].id);n.rowCells=r},getFirstDayOfWeek:function(e){var d=e;if(this.firstDayOfWeek<0||this.firstDayOfWeek>6){this.firstDayOfWeek=6}var c=d.dayOfWeek-this.firstDayOfWeek;if(c<=0){c+=7}var b=a.jqx._jqxDateTimeInput.getDateTime(d._addDays(-c));return b},getVisibleDate:function(){var c=new a.jqx._jqxDateTimeInput.getDateTime(new Date(this.value.dateTime));if(cthis.maxDate){this.visibleDate=this.maxDate}c.dateTime.setHours(0);var d=c.day;var b=a.jqx._jqxDateTimeInput.getDateTime(c._addDays(-d+1));c=b;return c},destroy:function(b){this.host.removeClass();if(b!=false){this.host.remove()}},_raiseEvent:function(d,i){if(i==undefined){i={owner:null}}var h=this.events[d];var g=i?i:{};g.owner=this;var c=new a.Event(h);c.owner=this;c.args=g;if(d==0||d==1||d==2||d==3||d==4||d==5||d==6||d==7||d==8){c.args.date=c.args.selectedDate=this.getDate();c.args.range=this.getRange();var e=this.getViewStart();var f=this.getViewEnd();c.args.view={from:e,to:f}}if(d==7){var b=g.selectionType;if(!b){b=null}if(b=="key"){b="keyboard"}if(b=="none"){b=null}g.type=b}var j=this.host.trigger(c);if(d==0||d==1){j=false}return j},propertyMap:function(b){if(b=="value"){if(this.selectionMode!="range"){return this.getDate()}else{return this.getRange()}}return null},updateSize:function(){var d=this.host.find("#View"+this.element.id);if(d.length>0){this.setCalendarSize();if(this.height!=undefined&&!isNaN(this.height)){d.height(this.height)}else{if(this.height!=null&&this.height.toString().indexOf("px")!=-1){d.height(this.height)}}if(this.width!=undefined&&!isNaN(this.width)){d.width(this.width)}else{if(this.width!=null&&this.width.toString().indexOf("px")!=-1){d.width(this.width)}}var c=this.host.height()-this.titleHeight-this.columnHeaderHeight;var b="View"+this.element.id;d.find("#cellsTable"+b).height(c);d.find("#calendarRowHeader"+b).height(c);this.refreshControl()}},resize:function(){this.updateSize()},clear:function(){if(this.selectionMode=="range"){this._clicks=1;this.setRange(null,null);this._raiseEvent(7)}else{this.setDate(null,"mouse")}this._clicks=0;this.selection={from:null,to:null}},today:function(){if(this.selectionMode=="range"){this.setRange(new Date(),new Date())}else{this.setDate(new Date(),"mouse")}},propertyChangedHandler:function(d,e,g,f){if(this.isInitialized==undefined||this.isInitialized==false){return}if(e=="enableHover"){return}if(e=="keyboardNavigation"){return}if(e=="localization"){if(this.localization){if(this.localization.backString){this.backText=this.localization.backString}if(this.localization.forwardString){this.forwardText=this.localization.forwardString}if(this.localization.todayString){this.todayString=this.localization.todayString}if(this.localization.clearString){this.clearString=this.localization.clearString}this.firstDayOfWeek=this.localization.calendar.firstDay}}if(e=="culture"){try{if(a.global){a.global.preferCulture(d.culture);d.localization.calendar=a.global.culture.calendar}else{if(Globalize){var b=Globalize.culture(d.culture);d.localization.calendar=b.calendar}}if(d.localization.calendar&&d.localization.calendar.firstDay!=undefined&&d.culture!="default"){d.firstDayOfWeek=d.localization.calendar.firstDay}}catch(c){}}if(e=="views"){if(d.views.indexOf("month")==-1){d.view="year"}if(d.views.indexOf("year")==-1&&d.views.indexOf("month")==-1){d.view="decade"}d.render();return}if(e=="showFooter"){d.render()}if(e=="width"||e=="height"){d.updateSize();return}else{if(e=="theme"){a.jqx.utilities.setTheme(g,f,d.host)}else{if(e=="rowHeaderWidth"||e=="showWeekNumbers"){d.render()}else{d.view="month";d.render()}}}}})})(jqxBaseFramework);(function(a){a.jqx._jqxCalendar.cell=function(c){var b={dateTime:new a.jqx._jqxDateTimeInput.getDateTime(c),_date:c,getDate:function(){return this._date},setDate:function(d){this.dateTime=new a.jqx._jqxDateTimeInput.getDateTime(d);this._date=d},isToday:false,isWeekend:false,isOtherMonth:false,isVisible:true,isSelected:false,isHighlighted:false,element:null,row:-1,column:-1,tooltip:null};return b};a.jqx._jqxCalendar.monthView=function(c,h,d,b,f,e){var g={start:c,end:h,cells:d,rowCells:b,columnCells:f,element:e};return g}})(jqxBaseFramework); \ No newline at end of file diff --git a/htdocs/public/jqwidgets/jqxchart.annotations.js b/htdocs/public/jqwidgets/jqxchart.annotations.js deleted file mode 100644 index d04b6b73..00000000 --- a/htdocs/public/jqwidgets/jqxchart.annotations.js +++ /dev/null @@ -1,7 +0,0 @@ -/* -jQWidgets v4.0.0 (2016-Jan) -Copyright (c) 2011-2016 jQWidgets. -License: http://jqwidgets.com/license/ -*/ - -(function(a){a.extend(a.jqx._jqxChart.prototype,{_moduleAnnotations:true,_renderAnnotation:function(f,g,c){var j=this.seriesGroups[f];var q=this.renderer;if(isNaN(f)){return}var l=this._get([this.getXAxisDataPointOffset(g.xValue,f),g.x]);var k=this._get([this.getValueAxisDataPointOffset(g.yValue,f),g.y]);var v=this._get([this.getXAxisDataPointOffset(g.xValue2,f),g.x2]);var e=this._get([this.getValueAxisDataPointOffset(g.yValue2,f),g.y2]);if(j.polar||j.spider){var r=this.getPolarDataPointOffset(g.xValue,g.yValue,f);if(r&&!isNaN(r.x)&&!isNaN(r.y)){l=r.x;k=r.y}else{l=g.x;k=g.y}}if(isNaN(k)||isNaN(l)){return false}if(j.orientation=="horizontal"){var w=l;l=k;k=w;w=v;v=e;e=w}if(g.offset){if(!isNaN(g.offset.x)){l+=g.offset.x;v+=g.offset.x}if(!isNaN(g.offset.y)){k+=g.offset.y;e+=g.offset.y}}var p=this._get([g.width,v-l]);var o=this._get([g.height,e-k]);var d;switch(g.type){case"rect":d=q.rect(l,k,p,o);break;case"circle":d=q.rect(l,k,g.radius);break;case"line":d=q.rect(l,k,v,e);break;case"path":d=q.path(g.path);break}q.attr(d,{fill:g.fillColor,stroke:g.lineColor,opacity:this._get([g.fillOpacity,g.opacity]),"stroke-opacity":this._get([g.lineOpacity,g.opacity]),"stroke-width":g.lineWidth,"stroke-dasharray":g.dashStyle||"none"});var u;if(g.text){var m=g.text;var z=0,h=0;if(m.offset){if(!isNaN(m.offset.x)){z+=m.offset.x}if(!isNaN(m.offset.y)){h+=m.offset.y}}u=q.text(m.value,l+z,k+h,NaN,NaN,m.angle,{},m.clip===true,m.horizontalAlignment||"center",m.verticalAlignment||"center",m.rotationPoint||"centermiddle");q.attr(u,{fill:m.fillColor,stroke:m.lineColor,"class":m["class"]})}var b=["click","mouseenter","mouseleave"];var n=this;for(var t=0;t=g.x&&f<=g.x+g.width&&i>=g.y&&i<=g.y+g.height){return}c._cancelTooltipTimer();c._hideToolTip(0);c._unselect()});c.addHandler(c.host,"click",function(g){if(c.enabled==false){return}var f=g.pageX||g.clientX||g.screenX;var j=g.pageY||g.clientY||g.screenY;var i=c.host.offset();if(c._isTouchDevice){var h=a.jqx.position(g);f=h.left;j=h.top}f-=i.left;j-=i.top;c._mouseX=f;c._mouseY=j;if(!isNaN(c._lastClickTs)){if((new Date()).valueOf()-c._lastClickTs<100){return}}this._hostClickTimer=setTimeout(function(){if(!c._isTouchDevice){c._cancelTooltipTimer();c._hideToolTip();c._unselect()}if(c._pointMarker&&c._pointMarker.element){var l=c.seriesGroups[c._pointMarker.gidx];var k=l.series[c._pointMarker.sidx];g.stopImmediatePropagation();c._raiseItemEvent("click",l,k,c._pointMarker.iidx)}},100)});var e=c.element.style;if(e){var b=false;if(e.width!=null){b|=e.width.toString().indexOf("%")!=-1}if(e.height!=null){b|=e.height.toString().indexOf("%")!=-1}if(b){a.jqx.utilities.resize(this.host,function(){if(c.timer){clearTimeout(c.timer)}var f=1;c.timer=setTimeout(function(){var g=c.enableAnimations;c.enableAnimations=false;c.refresh();c.enableAnimations=g},f)},false,true)}}},_refreshOnDownloadComlete:function(){var d=this;var e=this.source;if(e instanceof a.jqx.dataAdapter){var f=e._options;if(f==undefined||(f!=undefined&&!f.autoBind)){e.autoSync=false;e.dataBind()}var c=this.element.id;if(e.records.length==0){var b=function(){if(d.ready){d.ready()}d.refresh()};e.unbindDownloadComplete(c);e.bindDownloadComplete(c,b)}else{if(d.ready){d.ready()}}e.unbindBindingUpdate(c);e.bindBindingUpdate(c,function(){if(d._supressBindingRefresh){return}d.refresh()})}},propertyChangedHandler:function(b,c,e,d){if(this.isInitialized==undefined||this.isInitialized==false){return}if(c=="source"){this._refreshOnDownloadComlete()}this.refresh()},_initRenderer:function(b){if(!a.jqx.createRenderer){throw"Please include jqxdraw.js"}return a.jqx.createRenderer(this,b)},_internalRefresh:function(){var b=this;if(a.jqx.isHidden(b.host)){return}b._stopAnimations();if(!b.renderer||(!b._isToggleRefresh&&!b._isUpdate)){b._hideToolTip(0);b._isVML=false;b.host.empty();b._measureDiv=undefined;b._initRenderer(b.host)}var d=b.renderer;if(!d){return}var c=d.getRect();b._render({x:1,y:1,width:c.width,height:c.height});this._raiseEvent("refreshBegin",{instance:this});if(d instanceof a.jqx.HTML5Renderer){d.refresh()}b._isUpdate=false;this._raiseEvent("refreshEnd",{instance:this})},saveAsPNG:function(d,b,c){return this._saveAsImage("png",d,b,c)},saveAsJPEG:function(d,b,c){return this._saveAsImage("jpeg",d,b,c)},saveAsPDF:function(d,b,c){return this._saveAsImage("pdf",d,b,c)},_saveAsImage:function(e,h,b,c){var g=false;for(var d=0;d10){o=1}I.attr(ai,{"stroke-width":o,stroke:F})}else{if(a.jqx.browser.msie&&a.jqx.browser.version<9){I.attr(ai,{"stroke-width":1,stroke:m.backgroundColor||"white"})}}if(a.isFunction(m.drawBefore)){m.drawBefore(I,C)}var V={x:Y.left,y:Y.top,width:C.width-Y.left-Y.right,height:C.height-Y.top-Y.bottom};m._paddedRect=V;var e=m.titlePadding||{left:2,top:2,right:2,bottom:2};var l;if(m.title&&m.title.length>0){var S=m.toThemeProperty("jqx-chart-title-text",null);l=I.measureText(m.title,0,{"class":S});I.text(m.title,V.x+e.left,V.y+e.top,V.width-(e.left+e.right),l.height,0,{"class":S},true,"center","center");V.y+=l.height;V.height-=l.height}if(m.description&&m.description.length>0){var T=m.toThemeProperty("jqx-chart-title-description",null);l=I.measureText(m.description,0,{"class":T});I.text(m.description,V.x+e.left,V.y+e.top,V.width-(e.left+e.right),l.height,0,{"class":T},true,"center","center");V.y+=l.height;V.height-=l.height}if(m.title||m.description){V.y+=(e.bottom+e.top);V.height-=(e.bottom+e.top)}var b={x:V.x,y:V.y,width:V.width,height:V.height};m._plotRect=b;m._buildStats(b);var H=m._isPieOnlySeries();var s=m.seriesGroups;var E;var D={xAxis:{},valueAxis:{}};for(var Z=0;Z0){D.xAxis[ae]|=1}}}else{R=m._renderValueAxis(Z,f,true,b).width;if((D.valueAxis[O]&1)==1){R=0}else{if(R>0){D.valueAxis[O]|=1}}}}if(Q!="left"&&m.rtl==true){Q="right"}if(Q!="right"){Q="left"}if(r[Q+"Count"]>0&&r[Q]>0&&R>0){r[Q]+=U}p.push({width:R,position:Q,xRel:r[Q]});r[Q]+=R;r[Q+"Count"]++}var u=Math.max(1,Math.max(C.width,C.height));var ac={top:0,bottom:0,topCount:0,bottomCount:0};var W=[];for(Z=0;Z0){D.valueAxis[O]|=2}}}else{ab=m._renderXAxis(Z,{x:0,y:0,width:u,height:0},true).height;if((D.xAxis[ae]&2)==2){ab=0}else{if(ab>0){D.xAxis[ae]|=2}}}}if(Q!="top"){Q="bottom"}if(ac[Q+"Count"]>0&&ac[Q]>0&&ab>0){ac[Q]+=U}W.push({height:ab,position:Q,yRel:ac[Q]});ac[Q]+=ab;ac[Q+"Count"]++}m._createAnimationGroup("series");var t=(m.showLegend!=false);var B=!t?{width:0,height:0}:m._renderLegend(m.legendLayout?m._rect:V,true);if(this.legendLayout&&(!isNaN(this.legendLayout.left)||!isNaN(this.legendLayout.top))){B={width:0,height:0}}if(V.heightA.x+A.width){R=A.x+A.width-P}if(N+ab>A.y+A.height){ab=A.y+A.height-N}m._renderLegend({x:P,y:N,width:R,height:ab})}m._hasHorizontalLines=false;if(!H){for(Z=0;Zp){p=j.height}if(j.width>v){v=j.width}if(u){if(M!=0){E+=p}if(E>H.height){E=0;F+=v+2*N+f;v=j.width;D.width=F+v}}else{if(F!=0){F+=N}if(F+2*f+j.width>H.width&&j.widthB.width){J=true;var q=B.width;var Q=z;var U=Q.split(/\s+/).reverse();var m=[];var s="";var o=[];while(undefined!=(word=U.pop())){m.push(word);s=m.join(" ");var A=k.renderer.measureText(s,0,{"class":I});if(A.width>q&&o.length>0){m.pop();m=[word];s=m.join(" ")}o.push({text:s})}j.width=0;var b=0;for(var G=0;Gq&&o.length>0){m.pop();d+=A.height;m=[word];s=m.join(" ")}o.push({text:s,dy:d})}for(var G=0;Gd){n=f._elementRenderInfo[d].xAxis}var p=[];var I;if(O.labels.formatFunction){I=O.labels.formatFunction}var u;if(O.labels.formatSettings){u=a.extend({},O.labels.formatSettings)}if(q.type=="date"){if(q.dateFormat&&!I){if(u){u.dateFormat=u.dateFormat||q.dateFormat}else{u={dateFormat:q.dateFormat}}}else{if(!I&&(!u||(u&&!u.dateFormat))){I=this._getDefaultDTFormatFn(q.baseUnit||"day")}}}for(var N=0;N=S.filterRange.min&&T<=S.filterRange.max){v=S.useIndeces?(S.min+T).toString():(L==undefined?"":L.toString())}}var b={key:L,text:v,targetX:H,x:H};if(n&&n.itemOffsets[L]){b.x=n.itemOffsets[L].x;b.y=n.itemOffsets[L].y}p.push(b)}var C=f._getAnimProps(d);var t=C.enabled&&p.length<500?C.duration:0;if(f.enableAxisTextAnimation==false){t=0}var z={items:p,renderData:j};var e=f._renderAxis(W,D,O,{x:w.x,y:w.y,width:w.width,height:w.height},c,F,false,true,z,Q,t);if(W){e.width+=E}else{e.height+=E}return e},_animateAxisText:function(f,h){var c=f.items;var d=f.textSettings;for(var e=0;em){var l=n;n=m;m=l}var t=a.jqx._rnd(Math.abs(n-m)/(Math.PI*2),0.001,true);var q=Math.PI*2*f*t;var g=this._calcGroupOffsets(e,b).xoffsets;if(!g){return}var j=!(Math.abs(Math.abs(m-n)-Math.PI*2)>0.00001);if(i.spider){axisStats=this._getXAxisStats(e,this._getXAxis(e),q);var r=axisStats.interval;if(isNaN(r)||r==0){r=1}var d=(axisStats.max-axisStats.min)/r+(j?1:0);d=Math.round(d);if(d>2){var c=Math.cos(Math.abs(m-n)/2/d);c=a.jqx._rnd(c,0.01);if(c==0){c=1}var s=f/c;if(s>f&&h){f=s}}}f=a.jqx._ptrnd(f);return{x:p,y:o,r:f,adjR:this._get([s,f]),itemWidth:g.itemWidth,rangeLength:g.rangeLength,valuesOnTicks:h,startAngle:n,endAngle:m,isClosedCircle:j,axisSize:q}},_toPolarCoord:function(j,f,h,e){var c=Math.abs(j.startAngle-j.endAngle)/(Math.PI*2);var b=(h-f.x)*2*Math.PI*c/Math.max(1,f.width)+j.startAngle;var d=((f.height+f.y)-e)*j.r/Math.max(1,f.height);var i=j.x+d*Math.cos(b);var g=j.y+d*Math.sin(b);return{x:a.jqx._ptrnd(i),y:a.jqx._ptrnd(g)}},_renderSpiderAxis:function(A,k){var ap=this;var g=ap._getXAxis(A);var aB=this._getAxisSettings(g);if(!g||!aB.visible){return}var X=ap.seriesGroups[A];var S=ap._getPolarAxisCoords(A,k);if(!S){return}var M=a.jqx._ptrnd(S.x);var L=a.jqx._ptrnd(S.y);var t=S.adjR;var Y=S.startAngle;var W=S.endAngle;if(t<1){return}var aw=a.jqx._rnd(Math.abs(Y-W)/(Math.PI*2),0.001,true);var h=Math.PI*2*t*aw;var c=S.isClosedCircle;var w=this._renderData[A].xoffsets;if(!w.rangeLength){return}var T=w.axisStats.interval;if(isNaN(T)||T<1){T=1}var at=X.orientation=="horizontal";var aa=(at&&g.position=="right")||(!at&&g.position=="top");while(ap._renderData.lengthA){s=ap._elementRenderInfo[A].xAxis}var ar=[];var ag=this._getDataLen(A);for(var R=0;R=ag){continue}I=ap._getDataValue(ay,g.dataField);if(I==undefined){I=""}}var aq=ap._formatValue(I,z.formatSettings,z.formatFunction,A,undefined,ay);if(aq==undefined||aq.toString()==""){aq=af.useIndeces?(af.min+R).toString():(I==undefined?"":I.toString())}var d={key:I,text:aq,targetX:G,x:G};if(s&&s.itemOffsets[I]){d.x=s.itemOffsets[I].x;d.y=s.itemOffsets[I].y}ar.push(d)}var aA={items:ar,renderData:au};var l={stroke:e.color,fill:"none","stroke-width":e.width,"stroke-dasharray":e.dashStyle||""};if(!X.spider){if(aw==1){ae.circle(M,L,t,l)}else{var F=-Y/Math.PI*180;var aF=-W/Math.PI*180;this.renderer.pieslice(M,L,0,t,Math.min(F,aF),Math.max(F,aF),undefined,l)}}var N=ar.length;var m=2*Math.PI/(N);var am=Y;var f,D;if(e.visible&&az){if(!H&&!c){e.offsets.unshift({offset:-u.right})}for(var R=0;R0.01){continue}var q=a.jqx._ptrnd(M+t*Math.cos(C));var p=a.jqx._ptrnd(L+t*Math.sin(C));ae.line(M,L,q,p,l)}}if(U.visible&&az){var Q=5;var o={stroke:U.color,fill:"none","stroke-width":U.width,"stroke-dasharray":U.dashStyle||""};if(!H&&!c){U.offsets.unshift({offset:-u.right})}for(var R=0;R0.01){continue}var ac={x:M+t*Math.cos(C),y:L+t*Math.sin(C)};var ab={x:M+(t+Q)*Math.cos(C),y:L+(t+Q)*Math.sin(C)};ae.line(a.jqx._ptrnd(ac.x),a.jqx._ptrnd(ac.y),a.jqx._ptrnd(ab.x),a.jqx._ptrnd(ab.y),o)}}var ao=[];if(X.spider){var v=[];if(g.type=="date"){v=this._generateDTOffsets(aD,r,h,u,T,T,g.baseUnit,true,0,false,aj)}else{v=this._generateOffsets(aD,r,h,u,T,T,true,0,false,aj)}if(!H&&!c){v.unshift({offset:-u.right})}for(var R=0;R0.01){continue}ao.push(C)}au.offsetAngles=ao}var Z=ap._renderSpiderValueAxis(A,k,(H?S.adjR:S.r),ao);if(!Z){Z=[]}if(X.spider){if(!H){for(var R=0;R0?q.height+3*R:2*R;M+=o-(V?o:o/4)}else{M+=V?o:o/4}M+=P.top}else{N+=P.left+R+(q.width>0?q.width+R:0)+(D?z.width-q.width:0);M+=u}var T=0;var K=0;var r=C.items;l.itemOffsets={};if(this._isToggleRefresh||!this._isUpdate){d=0}var k=false;var j=0;for(var S=0;SK){K=f.width}if(f.height>T){T=f.height}j+=H?T:K;if(!U){if((H&&L>z.height+2)||(!H&&L>z.width+2)){break}var J=H?N+(D?(q.width==0?o:o-R):0):N+L;var I=H?M+L:M;l.itemOffsets[r[S].key]={x:J,y:I};if(!k){if(!isNaN(r[S].x)||!isNaN(r[S].y)&&d){k=true}}r[S].targetX=J;r[S].targetY=I;r[S].width=!H?b:z.width-P.left-P.right-2*R-o-((q.width>0)?q.width+R:0);r[S].height=H?b:z.height-P.top-P.bottom-2*R-o-((q.height>0)?q.height+R:0);r[S].visible=true}}l.avgWidth=r.length==0?0:j/r.length;if(!U){var s={items:r,textSettings:n};if(isNaN(d)||!k){d=0}this._animateAxisText(s,d==0?1:0);if(d!=0){var g=this;this._enqueueAnimation("series",undefined,undefined,d,function(i,h,w){g._animateAxisText(h,w)},s)}}G.width+=2*R+o+q.width+K+(H&&q.width>0?R:0);G.height+=2*R+o+q.height+T+(!H&&q.height>0?R:0);if(!H){G.height+=P.top+P.bottom}else{G.width+=P.left+P.right}var B={};if(!U&&Q.line.visible){var O={stroke:Q.line.color,"stroke-width":Q.line.width,"stroke-dasharray":Q.line.dashStyle||""};if(H){var J=z.x+z.width+(D?P.left:-P.right);J=a.jqx._ptrnd(J);this.renderer.line(J,z.y,J,z.y+z.height,O)}else{var I=a.jqx._ptrnd(z.y+(D?z.height-P.bottom:P.top));this.renderer.line(a.jqx._ptrnd(z.x),I,a.jqx._ptrnd(z.x+z.width+1),I,O)}}G.width=a.jqx._rup(G.width);G.height=a.jqx._rup(G.height);return G},_drawPlotAreaLines:function(j,w,f){var C=this.seriesGroups[j];var c=C.orientation!="horizontal";if(!this._renderData||this._renderData.length<=j){return}var H=w?"valueAxis":"xAxis";var u=this._renderData[j][H];if(!u){return}var m=this._renderData.axisDrawState;if(!m){m=this._renderData.axisDrawState={}}var z="",h;if(w){z="valueAxis_"+((C.valueAxis)?j:"")+(c?"swap":"");h=this._getValueAxis(j)}else{z="xAxis_"+((C.xAxis||C.categoryAxis)?j:"")+(c?"swap":"");h=this._getXAxis(j)}if(m[z]){m=m[z]}else{m=m[z]={}}if(!w){c=!c}var F=u.settings;if(!F){return}if(F.customDraw){return}var E=F.gridLines,p=F.tickMarks,t=F.padding;var e=u.rect;var k=this._plotRect;if(!E||!p){return}var o=0.5;var d=[];var b={stroke:E.color,"stroke-width":E.width,"stroke-dasharray":E.dashStyle||""};var B=w?e.y+e.height:e.x;var n=E.offsets;if(w&&!h.flip){n=a.extend([],n);n=n.reverse()}if(n&&n.length>0){for(var A=0;Ae.x+e.width+o){break}}if(f.gridLines&&E.visible!=false&&m.gridLines!=true){if(c){this.renderer.line(a.jqx._ptrnd(k.x),D,a.jqx._ptrnd(k.x+k.width),D,b)}else{this.renderer.line(D,a.jqx._ptrnd(k.y),D,a.jqx._ptrnd(k.y+k.height),b)}}d[D]=true;if(f.alternatingBackground&&(E.alternatingBackgroundColor||E.alternatingBackgroundColor2)&&m.alternatingBackground!=true){var l=((A%2)==0)?E.alternatingBackgroundColor2:E.alternatingBackgroundColor;if(l){var G;if(c){G=this.renderer.rect(a.jqx._ptrnd(k.x),B,a.jqx._ptrnd(k.width-1),D-B,b)}else{G=this.renderer.rect(B,a.jqx._ptrnd(k.y),D-B,a.jqx._ptrnd(k.height),b)}this.renderer.attr(G,{"stroke-width":0,fill:l,opacity:E.alternatingBackgroundOpacity||1})}B=D}}}var b={stroke:p.color,"stroke-width":p.width,"stroke-dasharray":p.dashStyle||""};if(f.tickMarks&&p.visible&&m.tickMarks!=true){var s=p.size;var n=p.offsets;for(var A=0;Ae.y+e.height+o){break}}else{if(D>e.x+e.width+o){break}}var v=!u.isMirror?-s:s;if(c){var r=e.x+e.width+(h.position=="right"?t.left:-t.right);if(!w){r=e.x+(u.isMirror?t.left:-t.right+e.width)}this.renderer.line(r,D,r+v,D,b)}else{var q=e.y+(u.isMirror?e.height:0);q+=u.isMirror?-t.bottom:t.top;q=a.jqx._ptrnd(q);this.renderer.line(D,q,D,q-v,b)}}}m.tickMarks=m.tickMarks||f.tickMarks;m.gridLines=m.gridLines||f.gridLines;m.alternatingBackground=m.alternatingBackground||f.alternatingBackground},_calcValueAxisItems:function(j,d,l){var n=this._stats.seriesGroups[j];if(!n||!n.isValid){return false}var w=this.seriesGroups[j];var b=w.orientation=="horizontal";var f=this._getValueAxis(j);var m=f.valuesOnTicks!=false;var e=f.dataField;var o=n.intervals;var s=d/o;var u=n.min;var r=n.mu;var c=f.logarithmicScale==true;var k=f.logarithmicScaleBase||10;var h=w.type.indexOf("stacked")!=-1&&w.type.indexOf("100")!=-1;if(c){r=!isNaN(f.unitInterval)?f.unitInterval:1}if(!m){o=Math.max(o-1,1)}while(this._renderData.length"9"){h=d.length-(e+1);if(h>=0){return Math.min(h,c)}}}if(h>0){k*=Math.pow(10,h)}while(Math.round(k)!=k&&hf){m=this._elementRenderInfo[f].valueAxis}for(var L=0;L1){if(isNaN(r)){r=s?0:c/2}for(var p=0;p=t-2){f[p].offset=t}}}if(u>d){var o=[];var j=Math.round(u/d);for(var p=0;ps){return f}if(p==s){if(v){f.push({offset:b?z/2:n.left,value:p})}else{if(b){f.push({offset:z/2,value:p})}}return f}var j=z-n.left-n.right;var w=p;var k=n.left;var e=k;c=Math.max(c,1);var m=c;var d=Math.min(1,c);if(c>1&&o!="millisecond"){c=1}while(a.jqx._ptrnd(e)<=a.jqx._ptrnd(n.left+j+(b?0:n.right))){f.push({offset:e,value:w});var B=new Date(w.valueOf());if(o=="millisecond"){B.setMilliseconds(w.getMilliseconds()+c)}else{if(o=="second"){B.setSeconds(w.getSeconds()+c)}else{if(o=="minute"){B.setMinutes(w.getMinutes()+c)}else{if(o=="hour"){var l=B.valueOf();B.setHours(w.getHours()+c);if(l==B.valueOf()){B.setHours(w.getHours()+c+1)}}else{if(o=="day"){B.setDate(w.getDate()+c)}else{if(o=="month"){B.setMonth(w.getMonth()+c)}else{if(o=="year"){B.setFullYear(w.getFullYear()+c)}}}}}}}w=B;e=k+(w.valueOf()-p.valueOf())*d/(s.valueOf()-p.valueOf())*j}if(g){for(var r=0;r1&&o!="millisecond"){var q=[];for(var r=0;r1){var q=[];q.push({offset:0,value:undefined});for(var r=1;r1){q.push({offset:q[t-1].offset+(q[t-1].offset-q[t-2].offset)})}else{q.push({offset:z,value:undefined})}f=q}if(A>c){var q=[];var h=Math.round(A/m);for(var r=0;rq.max.valueOf())){continue}}var Y=n.minValue;var E=n.maxValue;if(n.baselineValue){if(isNaN(Y)){Y=r}else{Y=Math.min(r,Y)}if(isNaN(E)){E=r}else{E=Math.max(r,E)}}var u=0,w=0;for(var k=0;kE)&&((isNaN(n.maxValue))?true:R<=n.maxValue)){E=R}if((isNaN(Y)||A=n.minValue)){Y=A}if(!isNaN(H)&&G&&!S){if(H>r){u+=H}else{if(HO||isNaN(O)){O=E}if(Yd||isNaN(d)){d=u}if(wd.gmin){f.gmin=d.gmin}if(isNaN(f.gmax)||f.gmaxd.logBase){f.logBase=d.logBase}if(isNaN(f.minPercent)||f.minPercent>d.minPercent){f.minPercent=d.minPercent}}for(var e=0;et){r/=j;b--;i++}c=Math.pow(j,b)}else{if(l&&!e){f=Math.max(f,A)}q=a.jqx._rnd(a.jqx.log(f,j),1,true);f=Math.pow(j,q);b=a.jqx._rnd(a.jqx.log(c,j),1,false);c=Math.pow(j,b)}s=j}if(cA){A=f}var v=d?c:a.jqx._rnd(l&&!e?B:c,s,false);var o=d?f:a.jqx._rnd(l&&!e?A:f,s,true);if(h&&o>100){o=100}if(h&&!d){o=(o>0)?100:0;v=(v<0)?-100:0;s=w.unitInterval;if(isNaN(s)||s<=0||s>=100){s=10}if((100%s)!=0){for(;s>=1;s--){if((100%s)==0){break}}}}if(isNaN(o)||isNaN(v)||isNaN(s)){return{}}if(isNaN(i)){i=parseInt(((o-v)/(s==0?1:s)).toFixed())}if(d&&!h){i=q-b;k=Math.pow(j,i)}if(i<1){return{}}var m={min:v,max:o,logarithmic:d,logBase:j,base:d?v:z,minPow:b,maxPow:q,mu:s,maxRange:k,intervals:i,hasStackValueReversal:n};return m},_getDataLen:function(c){var b=this.source;if(c!=undefined&&c!=-1&&this.seriesGroups[c].source){b=this.seriesGroups[c].source}if(b instanceof a.jqx.dataAdapter){b=b.records}if(b){return b.length}return 0},_getDataValue:function(b,e,d){var c=this.source;if(d!=undefined&&d!=-1){c=this.seriesGroups[d].source||c}if(c instanceof a.jqx.dataAdapter){c=c.records}if(!c||b<0||b>c.length-1){return undefined}if(a.isFunction(e)){return e(b,c)}return(e&&e!="")?c[b][e]:c[b]},_getDataValueAsNumber:function(b,e,c){var d=this._getDataValue(b,e,c);if(this._isDate(d)){return d.valueOf()}if(typeof(d)!="number"){d=parseFloat(d)}if(typeof(d)!="number"){d=undefined}return d},_isPieGroup:function(b){var c=this.seriesGroups[b];if(!c||!c.type){return false}return c.type.indexOf("pie")!=-1||c.type.indexOf("donut")!=-1},_renderPieSeries:function(e,c){var f=this._getDataLen(e);var g=this.seriesGroups[e];var m=this._calcGroupOffsets(e,c).offsets;for(var p=0;p360){t=0}var z=this._get([k.maxAngle,k.endAngle]);if(isNaN(z)||z<0||z>360){z=360}var o={rect:c,minAngle:t,maxAngle:z,groupIndex:e,serieIndex:p,settings:v,items:[]};for(var u=0;uo.groupIndex&&this._elementRenderInfo[o.groupIndex].series&&this._elementRenderInfo[o.groupIndex].series.length>o.serieIndex){j=this._elementRenderInfo[o.groupIndex].series[o.serieIndex]}var f=360*c;var u=this.seriesGroups[o.groupIndex];var n=this._getLabelsSettings(o.groupIndex,o.serieIndex,NaN);var m=n.visible;var b=[];for(var t=0;tz){p=z}z=e;if(t==b.length-1&&e!=b[0].from){e=o.maxAngle+b[0].from}}var r=this.renderer.pieSlicePath(w.x,w.y,w.innerRadius,w.outerRadius,p,e,w.centerOffset);this.renderer.attr(q.element,{d:r});var h=this._getColors(o.groupIndex,o.serieIndex,w.itemIndex,"radialGradient",w.outerRadius);var v=o.settings;q.colors=h;q.settings=v;this.renderer.attr(q.element,{fill:h.fillColor,stroke:h.lineColor,"stroke-width":v.stroke,"fill-opacity":v.opacity,"stroke-opacity":v.opacity,"stroke-dasharray":"none"||v.dashStyle});var k=u.series[o.serieIndex];if(m){this._showPieLabel(o.groupIndex,o.serieIndex,w.itemIndex,n)}if(c==1){this._installHandlers(q.element,"pieslice",o.groupIndex,o.serieIndex,w.itemIndex)}}},_showPieLabel:function(e,f,C,p,h){var k=this._renderData[e].offsets[f][C];if(k.elementInfo.labelElement){this.renderer.removeElement(k.elementInfo.labelElement)}if(!p){p=this._getLabelsSettings(e,f,NaN)}if(!p.visible){return}var D=k.fromAngle,F=k.toAngle;var l=Math.abs(D-F);var q=l>180?1:0;if(l>360){D=0;F=360}var r=D*Math.PI*2/360;var i=F*Math.PI*2/360;var j=l/2+D;j=j%360;var E=j*Math.PI*2/360;var v;if(p.autoRotate==true){v=j<90||j>270?360-j:180-j}var u=p.linesEnabled;var o=this._showLabel(e,f,C,{x:0,y:0,width:0,height:0},"center","center",true,false,false,v);var d=p.radius||k.outerRadius+Math.max(o.width,o.height);if(this._isPercent(d)){d=parseFloat(d)/100*Math.min(this._plotRect.width,this._plotRect.height)/2}d+=k.centerOffset;if(isNaN(h)){h=0}d+=h;var z=this.seriesGroups[e];var n=z.series[f];var B=a.jqx.getNum([n.offsetX,z.offsetX,this._plotRect.width/2]);var A=a.jqx.getNum([n.offsetY,z.offsetY,this._plotRect.height/2]);var c=this._plotRect.x+B;var b=this._plotRect.y+A;var w=this._adjustTextBoxPosition(c,b,o,d,j,k.outerRadius>d,p.linesAngles!=false,p.autoRotate==true);var m={};k.elementInfo.labelElement=this._showLabel(e,f,C,{x:w.x,y:w.y,width:o.width,height:o.height},"left","top",false,false,false,v,m);if(d>k.outerRadius+5&&u!=false){var t={lineColor:k.elementInfo.colors.lineColor,stroke:k.elementInfo.settings.stroke,opacity:k.elementInfo.settings.opacity,dashStyle:k.elementInfo.settings.dashStyle};k.elementInfo.labelArrowPath=this._updateLebelArrowPath(k.elementInfo.labelArrowPath,c,b,d,k.outerRadius+h,E,p.linesAngles!=false,t,m)}},_updateLebelArrowPath:function(d,j,f,h,l,g,o,e,r){var c=a.jqx._ptrnd(j+(h-0)*Math.cos(g));var n=a.jqx._ptrnd(f-(h-0)*Math.sin(g));var b=a.jqx._ptrnd(j+(l+2)*Math.cos(g));var m=a.jqx._ptrnd(f-(l+2)*Math.sin(g));var p=[];p.push({x:r.x+r.width/2,y:r.y});p.push({x:r.x+r.width/2,y:r.y+r.height});p.push({x:r.x,y:r.y+r.height/2});p.push({x:r.x+r.width,y:r.y+r.height/2});if(!o){p.push({x:r.x,y:r.y});p.push({x:r.x+r.width,y:r.y});p.push({x:r.x+r.width,y:r.y+r.height});p.push({x:r.x,y:r.y+r.height})}p=p.sort(function(s,i){return a.jqx._ptdist(s.x,s.y,j,f)-a.jqx._ptdist(i.x,i.y,j,f)});p=p.sort(function(s,i){return(Math.abs(s.x-j)+Math.abs(s.y-f))-(Math.abs(i.x-j)+Math.abs(i.y-f))});for(var k=0;k=t&&u=Math.PI-t&&u=Math.PI+t&&u<2*Math.PI-t){m=p/2*Math.sin(d)}else{if(u>=2*Math.PI-t&&u<2*Math.PI){m=l/2*Math.cos(d)}}}}}g+=Math.abs(m)+3;var k=a.jqx._ptrnd(f+g*Math.cos(d));var j=a.jqx._ptrnd(e-g*Math.sin(d));k-=n.width/2;j-=n.height/2;return{x:k,y:j}}if(!c){if(!i){if(s>=0&&s<45||s>=315&&s<360){j-=n.height/2}else{if(s>=45&&s<135){j-=n.height;k-=n.width/2}else{if(s>=135&&s<225){j-=n.height/2;k-=n.width}else{if(s>=225&&s<315){k-=n.width/2}}}}}else{if(s>=90&&s<270){j-=n.height/2;k-=n.width}else{j-=n.height/2}}}else{k-=n.width/2;j-=n.height/2}return{x:k,y:j}},_isColumnType:function(b){return(b.indexOf("column")!=-1||b.indexOf("waterfall")!=-1)},_getColumnGroupsCount:function(c){var e=0;c=c||"vertical";var f=this.seriesGroups;for(var d=0;dQ){var I=h;h=Q;Q=I}if(t.spider){var G=r.xAxis.offsetAngles;var H="";var M=[p,q];var B=G;if(d.isClosedCircle){B=a.extend([],G);B.push(B[0])}for(var L in M){for(var N=0;N1){O=1}this.renderer.attr(J,{fill:W,"fill-opacity":O,stroke:R,"stroke-opacity":O,"stroke-width":u,"stroke-dasharray":c.dashStyle})}},_getColumnGroupWidth:function(m,h,o){var e=this.seriesGroups[m];var l=e.type.indexOf("stacked")!=-1;var d=l?1:e.series.length;var k=this._getColumnGroupsCount(e.orientation);if(isNaN(k)||0==k){k=1}var n=h.rangeLength>=1?h.itemWidth:o*0.9;var c=e.columnsMinWidth;if(isNaN(c)){c=1}if(!isNaN(e.columnsMaxWidth)){c=Math.min(e.columnsMaxWidth,c)}if(c>n&&h.length>0){n=Math.max(n,o*0.9/h.length)}var i=c;if(!l){var f=e.seriesGapPercent;if(isNaN(f)||f<0){f=10}f/=100;var b=c;b*=(1+f);i+=e.series.length*b}var j=Math.max(n/k,i);return{requiredWidth:i,availableWidth:n,targetWidth:j}},_getColumnSerieWidthAndOffset:function(d,e){var m=this.seriesGroups[d];var u=m.series[e];var c=m.orientation=="horizontal";var b=this._plotRect;if(c){b={x:b.y,y:b.x,width:b.height,height:b.width}}var v=this._calcGroupOffsets(d,b);if(!v||v.xoffsets.length==0){return}var l=true;var w=this._getColumnGroupsCount(m.orientation);if(m.type=="candlestick"||m.type=="ohlc"){w=1}var q=this._getColumnGroupIndex(d);var r=this._getColumnGroupWidth(d,v.xoffsets,c?b.height:b.width);var h=0;var f=r.targetWidth;if(this.columnSeriesOverlap==true||(Math.round(f)>Math.round(r.availableWidth/w))){w=1;q=0}if(l){h-=(f*w)/2}h+=f*q;var D=m.columnsGapPercent;if(D<=0){D=0}if(isNaN(D)||D>=100){D=25}D/=100;var k=f*D;if(k+r.requiredWidth>r.targetWidth){k=Math.max(0,r.targetWidth-r.requiredWidth)}if(Math.round(f)>Math.round(r.availableWidth)){k=0}f-=k;h+=k/2;var z=m.seriesGapPercent;if(isNaN(z)||z<0){z=10}var n=m.type.indexOf("stacked")!=-1;var t=f;if(!n){t/=m.series.length}var A=this._get([m.seriesGap,(f*z/100)/(m.series.length-1)]);if(m.polar==true||m.spider==true||n||m.series.length<=1){A=0}var o=A*(m.series.length-1);if(m.series.length>1&&o>f-m.series.length*1){o=f-m.series.length*1;A=o/Math.max(1,(m.series.length-1))}var g=t-(o/m.series.length);var C=0;var i=m.columnsMaxWidth;if(!isNaN(i)){if(g>i){C=g-i;g=i}}var B=C/2;var j=0;if(!n){var E=(f-(g*m.series.length)-o)/2;var p=Math.max(0,e);j=E+g*e+p*A}else{j=C/2}return{width:g,offset:h+j}},_renderColumnSeries:function(f,c){var j=this.seriesGroups[f];if(!j.series||j.series.length==0){return}var h=this._getDataLen(f);var e=j.orientation=="horizontal";var A=c;if(e){A={x:c.y,y:c.x,width:c.height,height:c.width}}var p=this._calcGroupOffsets(f,A);if(!p||p.xoffsets.length==0){return}var m;if(j.polar==true||j.spider==true){m=this._getPolarAxisCoords(f,A)}var r={groupIndex:f,rect:c,vertical:!e,seriesCtx:[],renderData:p,polarAxisCoords:m};r.columnGroupWidth=this._getColumnGroupWidth(f,p.xoffsets,e?A.height:A.width);var g=this._getGroupGradientType(f);for(var t=0;te){d=e}if(isNaN(d)){return NaN}return d},_getColumnVOffsets:function(n,j,e,D,u,c){var p=this.seriesGroups[j];var H=this._getPercent(p.columnsTopWidthPercent,100,0,100);var v=this._getPercent(p.columnsBottomWidthPercent,100,0,100);if(H==0&&v==0){v=100}var J=this._getPercent(p.columnsNeckHeightPercent,NaN,0,100)/100;var E=this._getPercent(p.columnsNeckWidthPercent,100,0,100)/100;var r=[];var I=NaN;for(var q=0;qj&&b[j].series.length>k){var F=n.xoffsets.xvalues[D];g=b[j].series[k][F];if(g&&!isNaN(g.from)&&!isNaN(g.to)){o=g.from+(o-g.from)*c;P=g.to+(P-g.to)*c;z=g.xoffset+(z-g.xoffset)*c}}if(!g){P=o+(P-o)*(u?1:c)}if(isNaN(o)){o=isNaN(I)?n.baseOffset:I}if(!isNaN(P)&&u){I=P}else{I=o}if(isNaN(P)){P=o}var C={from:o,to:P,xOffset:z};if(H!=100||v!=100){C.funnel=true;C.toWidthPercent=H;C.fromWidthPercent=v}r.push(C)}if(u&&r.length>1&&!(this._elementRenderInfo&&this._elementRenderInfo.length>j)){var l=0,m=0,K=-Infinity,w=Infinity,L=Infinity,B=-Infinity;for(var M=0;M=r[M].from){m+=r[M].to-r[M].from;L=Math.min(L,r[M].from);B=Math.max(B,r[M].to)}else{l+=r[M].from-r[M].to;K=Math.max(K,r[M].from);w=Math.min(w,r[M].to)}}}var O=l;var t=m;l*=c;m*=c;var d=0,f=0;for(var M=0;M=r[M].from){var A=r[M].to-r[M].from;if(A+f>m){A=Math.max(0,m-f);r[M].to=r[M].from+A}if(H!=100||v!=100){r[M].funnel=true;if(!isNaN(J)&&t*J>=f){r[M].fromWidthPercent=E*100}else{r[M].fromWidthPercent=(Math.abs(r[M].from-L)/t)*(H-v)+v}if(!isNaN(J)&&t*J>=(0+(f+A))){r[M].toWidthPercent=E*100}else{r[M].toWidthPercent=(Math.abs(r[M].to-L)/t)*(H-v)+v}}f+=A}else{var A=r[M].from-r[M].to;if(A+d>l){A=Math.max(0,l-d);r[M].to=r[M].from-A}if(H!=100||v!=100){r[M].funnel=true;if(!isNaN(J)&&O*J>=d){r[M].fromWidthPercent=E*100}else{r[M].fromWidthPercent=(Math.abs(r[M].from-K)/O)*(H-v)+v}if(!isNaN(J)&&O*J>=(0+(d+A))){r[M].toWidthPercent=E*100}else{r[M].toWidthPercent=(Math.abs(r[M].to-K)/O)*(H-v)+v}}d+=A}}}return r},_columnAsPieSlice:function(d,k,m,o){var e=this._toPolarCoord(m,k,o.x,o.y);var f=this._toPolarCoord(m,k,o.x,o.y+o.height);var l=a.jqx._ptdist(m.x,m.y,f.x,f.y);var i=a.jqx._ptdist(m.x,m.y,e.x,e.y);var c=k.width;var n=Math.abs(m.startAngle-m.endAngle)*180/Math.PI;var b=-((o.x-k.x)*n)/c;var h=-((o.x+o.width-k.x)*n)/c;var j=m.startAngle;j=360*j/(Math.PI*2);b-=j;h-=j;if(d){if(d.element!=undefined){var g=this.renderer.pieSlicePath(m.x,m.y,l,i,h,b,0);g+=" Z";this.renderer.attr(d.element,{d:g})}else{d.element=this.renderer.pieslice(m.x,m.y,l,i,h,b,0)}}return{fromAngle:h,toAngle:b,innerRadius:l,outerRadius:i}},_setRenderInfo:function(e,b,d,c){this._renderData[e].offsets[b][d].elementInfo=c},_getRenderInfo:function(d,b,c){return this._renderData[d].offsets[b][c].elementInfo||{}},_animColumns:function(ai,d){var p=this;var q=ai.groupIndex;var B=this.seriesGroups[q];var v=ai.renderData;var aa=B.type.indexOf("waterfall")!=-1;var G=this._getXAxis(q);var I=B.type.indexOf("stacked")!=-1;var e=ai.polarAxisCoords;var A=this._getGroupGradientType(q);var s=ai.columnGroupWidth.targetWidth;var z=-1;for(var ab=0;abah.xAdjust){aj=ah.xAdjust}if(isNaN(t)||t=1){D=0.25}var f=D*r;var Z=ai.renderData.xoffsets;var S=-1;var O={};var R=B.skipOverlappingPoints==true;for(var ad=Z.first;ad<=Z.last;ad++){var V=Z.data[ad];if(isNaN(V)){continue}if(S!=-1&&Math.abs(V-S)<(r-1+f)&&R){continue}else{S=V}var F=this._getColumnVOffsets(v,q,ai.seriesCtx,ad,I,d);var L=false;if(aa){for(var C=0;C1||T<0){T=1}}var X=B.columnsBottomWidthPercent/100;if(isNaN(X)){X=1}else{if(X>1||X<0){X=1}}var o=ai.vertical?Q.width:Q.height;ag.x=ag.x-o/2+o/2*T;if(L){var b=o*T/2;af.x=af.x+o/2-(G.flip?-b:b)}else{var b=o*X/2;af.x=af.x+o/2-(G.flip?-b:b)}if(!ai.vertical){this._swapXY([ag]);this._swapXY([af])}this.renderer.line(ag.x,ag.y,af.x,af.y,{stroke:M.color,"stroke-width":ae.stroke,"stroke-opacity":ae.opacity,"fill-opacity":ae.opacity,"stroke-dasharray":ae.dashStyle})}}}if(d==1&&n!=0){O[I?-1:C]={y:ak,x:(ai.vertical?Q.x+Q.width:Q.y+Q.height),color:W.lineColor}}}if(e){var U=this._toPolarCoord(e,ai.rect,Q.x+Q.width/2,Q.y);var o=this._showLabel(q,m,ad,Q,undefined,undefined,true);var J=H.outerRadius+10;labelOffset=this._adjustTextBoxPosition(e.x,e.y,o,J,(H.fromAngle+H.toAngle)/2,true,false,false);P=this._showLabel(q,m,ad,{x:labelOffset.x,y:labelOffset.y},undefined,undefined,false,false,false)}else{P=this._showLabel(q,m,ad,Q,undefined,undefined,false,false,k)}c={element:u,labelElement:P};p._setRenderInfo(q,m,ad,c);if(d==1){this._installHandlers(u,"column",q,m,ad)}}}},_getTrapezoidPath:function(g,h,f){var l="";var b=g.fromWidthPercent/100;var c=g.toWidthPercent/100;if(!h){var e=g.width;g.width=g.height;g.height=e;e=g.x;g.x=g.y;g.y=e}var j=g.x+g.width/2;var k=[{x:j-g.width*(!f?b:c)/2,y:g.y+g.height},{x:j-g.width*(!f?c:b)/2,y:g.y},{x:j+g.width*(!f?c:b)/2,y:g.y},{x:j+g.width*(!f?b:c)/2,y:g.y+g.height}];if(!h){this._swapXY(k)}l+="M "+a.jqx._ptrnd(k[0].x)+","+a.jqx._ptrnd(k[0].y);for(var d=1;dw.offset){c=w.offset}if(isNaN(r)||rn){break}E=l;var D=t.items[A]=t.items[A]||{};for(var z in q){var F=t.self._getDataValueAsNumber(A,g.series[t.seriesIndex]["dataField"+q[z]],t.groupIndex);if(isNaN(F)){break}var k=t.renderData.offsets[t.seriesIndex][A][q[z]];if(isNaN(k)){break}D[q[z]]=k}l+=t.inverse?t.rect.y:t.rect.x;if(t.polarAxisCoords){var s=this._toPolarCoord(t.polarAxisCoords,this._plotRect,l,k);l=s.x;k=s.y}l=a.jqx._ptrnd(l);for(var f in q){D[f]=a.jqx._ptrnd(D[f])}var h=t.colors;if(!h){h=t.self._getColors(t.groupIndex,t.seriesIndex,A,t.gradientType)}if(!t.isOHLC){var u=D.lineElement;if(!u){u=t.inverse?this.renderer.line(D.Low,l,D.High,l):this.renderer.line(l,D.Low,l,D.High);this.renderer.attr(u,{fill:h.fillColor,"fill-opacity":t["fill-opacity"],"stroke-opacity":t["fill-opacity"],stroke:h.lineColor,"stroke-width":t["stroke-width"],"stroke-dasharray":t["stroke-dasharray"]});D.lineElement=u}var p=D.stickElement;l-=e/2;if(!p){var d=h.fillColor;if(D.Close<=D.Open&&h.fillColorAlt){d=h.fillColorAlt}p=t.inverse?this.renderer.rect(Math.min(D.Open,D.Close),l,Math.abs(D.Close-D.Open),e):this.renderer.rect(l,Math.min(D.Open,D.Close),e,Math.abs(D.Close-D.Open));this.renderer.attr(p,{fill:d,"fill-opacity":t["fill-opacity"],"stroke-opacity":t["fill-opacity"],stroke:h.lineColor,"stroke-width":t["stroke-width"],"stroke-dasharray":t["stroke-dasharray"]});D.stickElement=p}if(b==1){this._installHandlers(p,"column",t.groupIndex,t.seriesIndex,A)}}else{var o="M"+l+","+D.Low+" L"+l+","+D.High+" M"+(l-e/2)+","+D.Open+" L"+l+","+D.Open+" M"+(l+e/2)+","+D.Close+" L"+l+","+D.Close;if(t.inverse){o="M"+D.Low+","+l+" L"+D.High+","+l+" M"+D.Open+","+(l-e/2)+" L"+D.Open+","+l+" M"+D.Close+","+l+" L"+D.Close+","+(l+e/2)}var u=D.lineElement;if(!u){u=this.renderer.path(o,{});this.renderer.attr(u,{fill:h.fillColor,"fill-opacity":t["fill-opacity"],"stroke-opacity":t["fill-opacity"],stroke:h.lineColor,"stroke-width":t["stroke-width"],"stroke-dasharray":t["stroke-dasharray"]});D.lineElement=u}if(b==1){this._installHandlers(u,"column",t.groupIndex,t.seriesIndex,A)}}}},_renderScatterSeries:function(e,C,E){var t=this.seriesGroups[e];if(!t.series||t.series.length==0){return}var f=t.type.indexOf("bubble")!=-1;var u=t.orientation=="horizontal";var m=C;if(u){m={x:C.y,y:C.x,width:C.height,height:C.width}}var n=this._calcGroupOffsets(e,m);if(!n||n.xoffsets.length==0){return}var M=m.width;var c;if(t.polar||t.spider){c=this._getPolarAxisCoords(e,m);M=2*c.r}var U=this._alignValuesWithTicks(e);var q=this._getGroupGradientType(e);if(!E){E="to"}for(var g=0;gw){w=B}}}}var j=J.minRadius||J.minSymbolSize;if(isNaN(j)){j=M/50}var D=J.maxRadius||J.maxSymbolSize;if(isNaN(D)){D=M/25}if(j>D){D=j}var L=J.radius;if(isNaN(L)&&!isNaN(J.symbolSize)){L=(J.symbolType=="circle")?J.symbolSize/2:J.symbolSize}else{L=5}var F=this._getAnimProps(e,g);var A=F.enabled&&!this._isToggleRefresh&&n.xoffsets.length<5000?F.duration:0;var v={groupIndex:e,seriesIndex:g,symbolType:J.symbolType,symbolSize:J.symbolSize,"fill-opacity":S.opacity,"stroke-opacity":S.opacity,"stroke-width":S.stroke,"stroke-dasharray":S.dashStyle,items:[],polarAxisCoords:c};for(var R=n.xoffsets.first;R<=n.xoffsets.last;R++){var B=this._getDataValueAsNumber(R,z,e);if(typeof(B)!="number"){continue}var I=n.xoffsets.data[R];var G=n.xoffsets.xvalues[R];var H=n.offsets[g][R][E];if(Hm.y+m.height){continue}if(isNaN(I)||isNaN(H)){continue}if(u){var P=I;I=H;H=P+C.y}else{I+=C.x}var N=L;if(f){var o=this._getDataValueAsNumber(R,(J.radiusDataField||J.sizeDataField),e);if(typeof(o)!="number"){continue}N=j+(D-j)*(o-T)/Math.max(1,w-T);if(isNaN(N)){N=j}}n.offsets[g][R].radius=N;var k=NaN,O=NaN;var p=0;var b=this._elementRenderInfo;if(G!=undefined&&b&&b.length>e&&b[e].series.length>g){var d=b[e].series[g][G];if(d&&!isNaN(d.to)){k=d.to;O=d.xoffset;p=L;if(u){var P=O;O=k;k=P+C.y}else{O+=C.x}if(f){p=j+(D-j)*(d.valueRadius-T)/Math.max(1,w-T);if(isNaN(p)){p=j}}}}if(l){K=this._getColors(e,g,R,q)}v.items.push({from:p,to:N,itemIndex:R,fill:K.fillColor,stroke:K.lineColor,x:I,y:H,xFrom:O,yFrom:k})}this._animR(v,0);var h=this;var Q;this._enqueueAnimation("series",undefined,undefined,A,function(s,i,r){h._animR(i,r)},v)}},_animR:function(o,g){var j=o.items;var p=o.symbolType||"circle";var c=o.symbolSize;for(var e=0;e=1){this._installHandlers(d,"circle",o.groupIndex,o.seriesIndex,n.itemIndex)}this._setRenderInfo(o.groupIndex,o.seriesIndex,j[e].itemIndex,{element:d,labelElement:h})}},_showToolTip:function(n,l,G,z,e){var u=this;var k=u._getXAxis(G);var b=u._getValueAxis(G);if(u._ttEl&&G==u._ttEl.gidx&&z==u._ttEl.sidx&&e==u._ttEl.iidx){return}var j=u.seriesGroups[G];var o=j.series[z];var h=u.enableCrosshairs&&!(j.polar||j.spider);if(u._pointMarker){n=parseInt(u._pointMarker.x+5);l=parseInt(u._pointMarker.y-5)}else{h=false}var i=h&&u.showToolTips==false;n=a.jqx._ptrnd(n);l=a.jqx._ptrnd(l);var H=u._ttEl==undefined;if(j.showToolTips==false||o.showToolTips==false){return}var g=u._get([o.toolTipFormatSettings,j.toolTipFormatSettings,b.toolTipFormatSettings,u.toolTipFormatSettings]);var r=u._get([o.toolTipFormatFunction,j.toolTipFormatFunction,b.toolTipFormatFunction,u.toolTipFormatFunction]);var m=u._getColors(G,z,e);var s=u._getDataValue(e,k.dataField,G);if(k.dataField==undefined||k.dataField==""){s=e}if(k.type=="date"){s=u._castAsDate(s,(g?g.dateFormat:undefined)||k.dateFormat)}var q="";if(a.isFunction(r)){var v={};var B=0;for(var c in o){if(c.indexOf("dataField")==0){v[c.substring(9,c.length).toLowerCase()]=u._getDataValue(e,o[c],G);B++}}if(B==0){v=u._getDataValue(e,undefined,G)}else{if(B==1){v=v[""]}}q=r(v,e,o,j,s,k)}else{q=u._getFormattedValue(G,z,e,g,r);var d=this._getAxisSettings(k);var L=d.toolTipFormatSettings;var f=d.toolTipFormatFunction;if(!f&&!L&&k.type=="date"){f=this._getDefaultDTFormatFn(k.baseUnit||"day")}var K=u._formatValue(s,L,f,G,z,e);if(!u._isPieGroup(G)){var p=(k.displayText||k.dataField||"");if(p.length>0){q=p+": "+K+"
              "+q}else{q=K+"
              "+q}}else{s=u._getDataValue(e,o.displayText||o.dataField,G);K=u._formatValue(s,L,f,G,z,e);q=K+": "+q}}if(!u._ttEl){u._ttEl={}}u._ttEl.sidx=z;u._ttEl.gidx=G;u._ttEl.iidx=e;rect=u.renderer.getRect();if(h){var D=a.jqx._ptrnd(u._pointMarker.x);var C=a.jqx._ptrnd(u._pointMarker.y);if(u._ttEl.vLine&&u._ttEl.hLine){u.renderer.attr(u._ttEl.vLine,{x1:D,x2:D});u.renderer.attr(u._ttEl.hLine,{y1:C,y2:C})}else{var A=u.crosshairsColor||u._defaultLineColor;u._ttEl.vLine=u.renderer.line(D,u._plotRect.y,D,u._plotRect.y+u._plotRect.height,{stroke:A,"stroke-width":u.crosshairsLineWidth||1,"stroke-dasharray":u.crosshairsDashStyle||""});u._ttEl.hLine=u.renderer.line(u._plotRect.x,C,u._plotRect.x+u._plotRect.width,C,{stroke:A,"stroke-width":u.crosshairsLineWidth||1,"stroke-dasharray":u.crosshairsDashStyle||""})}}if(!i&&u.showToolTips!=false){var E=o.toolTipClass||j.toolTipClass||this.toThemeProperty("jqx-chart-tooltip-text",null);var I=o.toolTipBackground||j.toolTipBackground||"#FFFFFF";var J=o.toolTipLineColor||j.toolTipLineColor||m.lineColor;var w=this.getItemCoord(G,z,e);var F=0;if(u._pointMarker&&u._pointMarker.element){F=o.symbolSizeSelected;if(isNaN(F)){F=o.symbolSize}if(isNaN(F)||F>50||F<0){F=j.symbolSize}if(isNaN(F)||F>50||F<0){F=8}}u._createTooltip(w,j,q,{css:E,fill:I,stroke:J,symbolSize:F})}},_fitTooltip:function(c,h,j,k,e){var d={};var b=2+e/2;var f=7;if(h.x-j.width-f-b>c.x&&h.y+h.height/2-j.height/2>c.y&&h.y+h.height/2+j.height/2c.y&&h.y+h.height/2+j.height/2c.y&&h.x+h.width/2-j.width/2>c.x&&h.x+h.width/2+j.width/2c.x&&h.x+h.width/2+j.width/2h.height||((k.type.indexOf("stackedcolumn")!=-1||k.type.indexOf("stackedwaterfall")!=-1)&&k.orientation!="horizontal")){if(d.left){return d.left}if(d.right){return d.right}}else{if(d.top){return d.top}if(d.bottom){return d.bottom}}for(var g in d){if(d[g]){return d[g]}}return{arrowLocation:""}},_createTooltip:function(C,j,u,v){var p=this;var t=j.type;var A=false;var B=p._ttEl.box;if(!B){A=true;B=p._ttEl.box=document.createElement("div");var e=10000000;B.style.position="absolute";B.style.cursor="default";a(b).css({"z-index":e,"box-sizing":"content-box"});a(document.body).append(B);var b=document.createElement("div");b.id="arrowOuterDiv";b.style.width="0px";b.style.height="0px";b.style.position="absolute";a(b).css({"z-index":e+1,"box-sizing":"content-box"});var g=document.createElement("div");g.id="arrowInnerDiv";g.style.width="0px";g.style.height="0px";g.style.position="absolute";var s=document.createElement("div");s.id="contentDiv";s.style.position="absolute";a(s).css({"box-sizing":"content-box"});a(s).addClass("jqx-rc-all jqx-button");a(s).appendTo(a(B));a(b).appendTo(a(B));a(g).appendTo(a(B));a(g).css({"z-index":e+2,"box-sizing":"content-box"})}if(!u||u.length==0){a(B).fadeTo(0,0);return}s=a(B).find("#contentDiv")[0];b=a(B).find("#arrowOuterDiv")[0];g=a(B).find("#arrowInnerDiv")[0];s.style.backgroundColor=v.fill;s.style.borderColor=v.stroke;var l=""+u+"";a(s).html(l);var o=this._measureHtml(l,"jqx-rc-all jqx-button");rect=p._plotRect;if(o.width>rect.width||o.height>rect.height){return}var n={width:o.width,height:o.height};arrowLocation="";var z=5;var q=7;var r=p._isColumnType(t);x=Math.max(C.x,rect.x);y=Math.max(C.y,rect.y);if(p.toolTipAlignment=="dataPoint"){if(t.indexOf("pie")!=-1||t.indexOf("donut")!=-1){var k=(C.fromAngle+C.toAngle)/2;k=k*(Math.PI/180);var f=(!isNaN(C.innerRadius)&&C.innerRadius>0)?(C.innerRadius+C.outerRadius)/2:C.outerRadius*0.75;x=C.x=C.center.x+Math.cos(k)*f;y=C.y=C.center.y-Math.sin(k)*f;C.width=C.height=1}else{if(r&&(j.polar||j.spider)){C.width=C.height=1}}var w=this._fitTooltip(this._plotRect,C,n,j,v.symbolSize);if(w.arrowLocation!=""){arrowLocation=w.arrowLocation;x=w.x;y=w.y;n.width=w.width;n.height=w.height}}else{arrowLocation=""}if(arrowLocation=="top"||arrowLocation=="bottom"){n.height+=q;x-=q/2;if(arrowLocation=="bottom"){y-=q}}else{if(arrowLocation=="left"||arrowLocation=="right"){n.width+=q;y-=q/2;if(arrowLocation=="right"){x-=q}}}if(x+n.width>rect.x+rect.width){arrowLocation="";x=rect.x+rect.width-n.width}if(y+n.height>rect.y+rect.height){arrowLocation="";y=rect.y+rect.height-n.height}var h={x:0,y:0},d={x:0,y:0};a(s).css({width:o.width,height:o.height,left:0,top:0});b.style["margin-top"]=b.style["margin-left"]=0;g.style["margin-top"]=g.style["margin-left"]=0;s.style["margin-top"]=s.style["margin-left"]=0;var i=q+"px solid";var c=q+"px solid transparent";switch(arrowLocation){case"left":h={x:0,y:(o.height-q)/2};contentPostion={x:q,y:0};s.style["margin-left"]=q+"px";b.style["margin-left"]=0+"px";b.style["margin-top"]=h.y+"px";b.style["border-left"]="";b.style["border-right"]=i+" "+v.stroke;b.style["border-top"]=c;b.style["border-bottom"]=c;g.style["margin-left"]=1+"px";g.style["margin-top"]=h.y+"px";g.style["border-left"]="";g.style["border-right"]=i+" "+v.fill;g.style["border-top"]=c;g.style["border-bottom"]=c;break;case"right":h={x:n.width-q,y:(o.height-q)/2};contentPostion={x:0,y:0};b.style["margin-left"]=h.x+"px";b.style["margin-top"]=h.y+"px";b.style["border-left"]=i+" "+v.stroke;b.style["border-right"]="";b.style["border-top"]=c;b.style["border-bottom"]=c;g.style["margin-left"]=h.x-1+"px";g.style["margin-top"]=h.y+"px";g.style["border-left"]=i+" "+v.fill;g.style["border-right"]="";g.style["border-top"]=c;g.style["border-bottom"]=c;break;case"top":h={x:n.width/2-q/2,y:0};contentPostion={x:0,y:q};s.style["margin-top"]=contentPostion.y+"px";b.style["margin-left"]=h.x+"px";b.style["border-top"]="";b.style["border-bottom"]=i+" "+v.stroke;b.style["border-left"]=c;b.style["border-right"]=c;g.style["margin-left"]=h.x+"px";g.style["margin-top"]=1+"px";g.style["border-top"]="";g.style["border-bottom"]=i+" "+v.fill;g.style["border-left"]=c;g.style["border-right"]=c;break;case"bottom":h={x:n.width/2-q/2,y:n.height-q};contentPostion={x:0,y:0};b.style["margin-left"]=h.x+"px";b.style["margin-top"]=h.y+"px";b.style["border-top"]=i+" "+v.stroke;b.style["border-bottom"]="";b.style["border-left"]=c;b.style["border-right"]=c;g.style["margin-left"]=h.x+"px";g.style["margin-top"]=h.y-1+"px";g.style["border-top"]=i+" "+v.fill;g.style["border-bottom"]="";g.style["border-left"]=c;g.style["border-right"]=c;break}if(arrowLocation==""){a(b).hide();a(g).hide()}else{a(b).show();a(g).show()}a(B).css({width:n.width+"px",height:n.height+"px"});var m=p.host.coord();if(A){a(B).fadeOut(0,0);B.style.left=x+m.left+"px";B.style.top=y+m.top+"px"}a(B).clearQueue();a(B).animate({left:x+m.left,top:y+m.top,opacity:1},p.toolTipMoveDuration,"easeInOutCirc");a(B).fadeTo(400,1)},_measureHtml:function(c,b){var e=this._measureDiv;if(!e){this._measureDiv=e=document.createElement("div");e.style.position="absolute";e.style.cursor="default";e.style.overflow="hidden";e.style.display="none";a(e).addClass(b);this.host.append(e)}a(e).html(c);var d={width:a(e).width()+2,height:a(e).height()+2};if(a.jqx.browser&&a.jqx.browser.mozilla){d.height+=3}return d},_hideToolTip:function(b){if(!this._ttEl){return}if(this._ttEl.box){if(b==0){a(this._ttEl.box).hide()}else{a(this._ttEl.box).fadeOut()}}this._hideCrosshairs();this._ttEl.gidx=undefined},_hideCrosshairs:function(){if(!this._ttEl){return}if(this._ttEl.vLine){this.renderer.removeElement(this._ttEl.vLine);this._ttEl.vLine=undefined}if(this._ttEl.hLine){this.renderer.removeElement(this._ttEl.hLine);this._ttEl.hLine=undefined}},_get:function(b){return a.jqx.getByPriority(b)},_getAxisSettings:function(f){if(!f){return{}}var l=this;var k=f.gridLines||{};var n={visible:this._get([k.visible,f.showGridLines,true]),color:l._get([k.color,f.gridLinesColor,l._defaultLineColor]),unitInterval:l._get([k.unitInterval,k.interval,f.gridLinesInterval]),step:l._get([k.step,f.gridLinesStep]),dashStyle:l._get([k.dashStyle,f.gridLinesDashStyle]),width:l._get([k.lineWidth,1]),offsets:[],alternatingBackgroundColor:f.alternatingBackgroundColor,alternatingBackgroundColor2:f.alternatingBackgroundColor2,alternatingBackgroundOpacity:f.alternatingBackgroundOpacity};var d=f.tickMarks||{};var h={visible:this._get([d.visible,f.showTickMarks,true]),color:l._get([d.color,f.tickMarksColor,l._defaultLineColor]),unitInterval:l._get([d.unitInterval,d.interval,f.tickMarksInterval]),step:l._get([d.step,f.tickMarksStep]),dashStyle:l._get([d.dashStyle,f.tickMarksDashStyle]),width:l._get([d.lineWidth,1]),size:l._get([d.size,4]),offsets:[]};var e=f.title||{};var c={visible:l._get([e.visible,true]),text:l._get([f.description,e.text]),style:l._get([f.descriptionClass,e["class"],l.toThemeProperty("jqx-chart-axis-description",null)]),halign:l._get([f.horizontalDescriptionAlignment,e.horizontalAlignment,"center"]),valign:l._get([f.verticalDescriptionAlignment,e.verticalAlignment,"center"]),angle:0,rotationPoint:l._get([e.rotationPoint,"centercenter"]),offset:l._get([e.offset,{x:0,y:0}])};var i=f.line||{};var b={visible:l._get([i.visible,true]),color:l._get([i.color,n.color,l._defaultLineColor]),dashStyle:l._get([i.dashStyle,n.dashStyle,""]),width:l._get([i.lineWidth,1])};var j=f.padding||{};j={left:j.left||0,right:j.right||0,top:j.top||0,bottom:j.bottom||0};var g=this._getAxisLabelsSettings(f);var m={visible:this._get([f.visible,f.showValueAxis,f.showXAxis,f.showCategoryAxis,true]),customDraw:this._get([f.customDraw,false]),gridLines:n,tickMarks:h,line:b,title:c,labels:g,padding:j,toolTipFormatFunction:this._get([f.toolTipFormatFunction,f.formatFunction,g.formatFunction]),toolTipFormatSettings:this._get([f.toolTipFormatSettings,f.formatSettings,g.formatSettings])};return m},_getAxisLabelsSettings:function(d){var b=this;var e=d.labels||{};var c={visible:b._get([d.showLabels,e.visible,true]),unitInterval:b._get([e.unitInterval,e.interval,d.labelsInterval]),step:b._get([e.step,d.labelsStep]),angle:b._get([d.textRotationAngle,e.angle,0]),style:b._get([d["class"],e["class"],b.toThemeProperty("jqx-chart-axis-text",null)]),halign:b._get([d.horizontalTextAlignment,e.horizontalAlignment,"center"]),valign:b._get([d.verticalTextAlignment,e.verticalAlignment,"center"]),textRotationPoint:b._get([d.textRotationPoint,e.rotationPoint,"auto"]),textOffset:b._get([d.textOffset,e.offset,{x:0,y:0}]),autoRotate:b._get([d.labelsAutoRotate,e.autoRotate,false]),formatSettings:b._get([d.formatSettings,e.formatSettings,undefined]),formatFunction:b._get([d.formatFunction,e.formatFunction,undefined])};return c},_getLabelsSettings:function(p,l,h,t){var j=this.seriesGroups[p];var r=j.series[l];var m=isNaN(h)?undefined:this._getDataValue(h,r.dataField,p);var k=t||["Visible","Offset","Angle","HorizontalAlignment","VerticalAlignment","Class","BackgroundColor","BorderColor","BorderOpacity","Padding","Opacity","BackgroundOpacity","LinesAngles","LinesEnabled","AutoRotate","Radius"];var q={};for(var f=0;f0){if(t==""||t=="center"){p+=(s-C.width)/2}else{if(t=="right"){p+=(s-C.width)}}}if(H>0){if(i==""||i=="center"){n+=(H-C.height)/2}else{if(i=="bottom"){n+=(H-C.height)}}}p+=b.x+G.x;n+=b.y+G.y;var o=this._plotRect;if(p<=o.x){p=o.x+2}if(n<=o.y){n=o.y+2}var l={width:Math.max(C.width,1),height:Math.max(C.height,1)};if(n+l.height>=o.y+o.height){n=o.y+o.height-(q?(l.height+q.height)/2:l.height)-2}if(p+l.width>=o.x+o.width){p=o.x+o.width-l.width-2}var d;var A=I.backgroundColor;var D=I.borderColor;var z=I.padding;if(A||D){d=this.renderer.beginGroup();var b=this.renderer.rect(p-z.left,n-z.top,C.width+z.left+z.right,C.height+z.bottom+z.bottom,{fill:A||"transparent","fill-opacity":I.backgroundOpacity||1,stroke:D||"transparent","stroke-opacity":I.borderOpacity,"stroke-width":1})}var u=this.renderer.text(v,p,n,C.width,C.height,g,{"class":I["class"],opacity:I.opacity||1},false,"center","center");if(B){B.x=p-z.left;B.y=n-z.top;B.width=C.width+z.left+z.right;B.height=C.height+z.bottom+z.bottom}if(this._isVML){this.renderer.removeElement(u);this.renderer.getContainer()[0].appendChild(u)}if(d){this.renderer.endGroup()}return d||u},_getAnimProps:function(j,f){var e=this.seriesGroups[j];var c=!isNaN(f)?e.series[f]:undefined;var b=this.enableAnimations==true;if(e.enableAnimations){b=e.enableAnimations==true}if(c&&c.enableAnimations){b=c.enableAnimations==true}var i=this.animationDuration;if(isNaN(i)){i=1000}var d=e.animationDuration;if(!isNaN(d)){i=d}if(c){var h=c.animationDuration;if(!isNaN(h)){i=h}}if(i>5000){i=1000}return{enabled:b,duration:i}},_isColorTransition:function(f,d,e,g){if(g-1=0;n--){var g=this._getSerieSettings(k,n);var ah={groupIndex:k,rect:z,serieIndex:n,swapXY:aj,isArea:s,isSpline:ae,isRange:O,isPolar:af,settings:g,segments:[],pointsLength:0};var j=this._isSerieVisible(k,n);if(!j){this._linesRenderInfo[k][n]=ah;continue}var J=H.series[n];if(J.customDraw){continue}var w=a.isFunction(J.colorFunction);var U=D.xoffsets.first;var G=U;var N=this._getColors(k,n,NaN,this._getGroupGradientType(k));var ab=false;var u;do{var W=[];var T=[];var r=[];var P=-1;var p=0,o=0;var R=NaN;var E=NaN;var ai=NaN;if(D.xoffsets.length<1){continue}var S=this._getAnimProps(k,n);var L=S.enabled&&!this._isToggleRefresh&&D.xoffsets.length<10000&&this._isVML!=true?S.duration:0;var v=U;u=false;var d=this._getColors(k,n,U,this._getGroupGradientType(k));for(var ad=U;ad<=D.xoffsets.last;ad++){U=ad;var X=D.xoffsets.data[ad];var V=D.xoffsets.xvalues[ad];if(isNaN(X)){continue}X=Math.max(X,1);p=X;o=D.offsets[n][ad].to;var aa=D.offsets[n][ad].from;if(isNaN(o)||isNaN(aa)){if(J.emptyPointsDisplay=="connect"){continue}else{if(J.emptyPointsDisplay=="zero"){if(isNaN(o)){o=D.baseOffset}if(isNaN(aa)){aa=D.baseOffset}}else{u=true;break}}}if(w&&this._isColorTransition(k,n,D,U)){if(W.length>1){U--;break}}var c=this._elementRenderInfo;if(c&&c.length>k&&c[k].series.length>n){var f=c[k].series[n][V];var ai=a.jqx._ptrnd(f?f.to:undefined);var I=a.jqx._ptrnd(z.x+(f?f.xoffset:undefined));r.push(aj?{y:I,x:ai,index:ad}:{x:I,y:ai,index:ad})}G=ad;if(g.stroke<2){if(o-z.y<=1){o=z.y+1}if(aa-z.y<=1){aa=z.y+1}if(z.y+z.height-o<=1){o=z.y+z.height-1}if(z.y+z.height-aa<=1){aa=z.y+z.height-1}}if(!s&&e){if(o<=z.y){o=z.y+1}if(o>=z.y+z.height){o=z.y+z.height-1}if(aa<=z.y){aa=z.y+1}if(aa>=z.y+z.height){aa=z.y+z.height-1}}X=Math.max(X,1);p=X+z.x;if(H.skipOverlappingPoints==true&&!isNaN(R)&&Math.abs(R-p)<=1){continue}if(t&&!isNaN(R)&&!isNaN(E)){if(E!=o){W.push(aj?{y:p,x:a.jqx._ptrnd(E)}:{x:p,y:a.jqx._ptrnd(E)})}}W.push(aj?{y:p,x:a.jqx._ptrnd(o),index:ad}:{x:p,y:a.jqx._ptrnd(o),index:ad});T.push(aj?{y:p,x:a.jqx._ptrnd(aa),index:ad}:{x:p,y:a.jqx._ptrnd(aa),index:ad});R=p;E=o;if(isNaN(ai)){ai=o}}if(W.length==0){U++;continue}var F=W[W.length-1].index;if(w){N=this._getColors(k,n,F,this._getGroupGradientType(k))}var l=z.x+D.xoffsets.data[v];var Z=z.x+D.xoffsets.data[G];if(s&&H.alignEndPointsWithIntervals==true){var B=C?-1:1;if(l>z.x){l=z.x}if(ZD.x+D.width||t.yD.y+D.height){continue}if(v!="none"){var n=this._getColors(f,g,u.pointsArray[B].index,this._getGroupGradientType(f));var e=this._drawSymbol(v,t.x,t.y,n.fillColorSymbol,C.opacity,n.lineColorSymbol,C.opacity,1,undefined,E);u.symbolElements.push(e)}if(p){var k=(B>0?r[B-1]:r[B]).split(",");k={x:parseFloat(k[0]),y:parseFloat(k[1])};var m=(B0){s+=" "}var k=o[u].y;var l=o[u].x;var b=!z?k:f;var d=l;if(n&&n.length>u){b=n[u].y;d=n[u].x;if(isNaN(b)||isNaN(d)){b=k;d=l}}j=d;if(t<=o.length&&u>0&&u==t){d=o[u-1].x;b=o[u-1].y}if(c){l=a.jqx._ptrnd((l-b)*(z?e:1)+b);k=a.jqx._ptrnd(k)}else{l=a.jqx._ptrnd((l-d)*e+d);k=a.jqx._ptrnd((k-b)*e+b)}if(m){var q=this._toPolarCoord(m,this._plotRect,l,k);l=q.x;k=q.y}s+=l+","+k}return s},_buildLineCmd:function(k,o,g,s,e,m,d,r,c,j,f,b){var p=k;var l=b?d+","+g:g+","+d;var h=b?d+","+s:s+","+d;if(r&&!c&&!o){p=l+" "+k+" "+h}if(f){p=this._getBezierPoints(p)}var n=p.split(" ");if(n.length==0){return""}if(n.length==1){var q=n[0].split(",");return"M "+n[0]+" L"+(parseFloat(q[0])+1)+","+(parseFloat(q[1])+1)}var i=n[0].replace("M","");if(r&&!c){if(!o){p="M "+l+" L "+i+" "+p}else{p="M "+i+" L "+i+(f?"":(" L "+i+" "))+p}}else{if(!f){p="M "+i+" L "+i+" "+p}}if((c&&j)||o){p+=" Z"}return p},_getSerieSettings:function(h,b){var g=this.seriesGroups[h];var f=g.type.indexOf("area")!=-1;var e=g.type.indexOf("line")!=-1;var c=g.series[b];var j=c.dashStyle||g.dashStyle||"";var d=c.opacity||g.opacity;if(isNaN(d)||d<0||d>1){d=1}var i=c.lineWidth;if(isNaN(i)&&i!="auto"){i=g.lineWidth}if(i=="auto"||isNaN(i)||i<0||i>15){if(f){i=2}else{if(e){i=3}else{i=1}}}return{stroke:i,opacity:d,dashStyle:j}},_getColors:function(u,p,d,e,b){var k=this.seriesGroups[u];var o=k.series[p];var c=this._get([o.useGradientColors,k.useGradientColors,k.useGradient,true]);var l=this._getSeriesColors(u,p,d);if(!l.fillColor){l.fillColor=r;l.fillColorSelected=a.jqx.adjustColor(r,1.1);l.fillColorAlt=a.jqx.adjustColor(r,4);l.fillColorAltSelected=a.jqx.adjustColor(r,3);l.lineColor=l.symbolColor=a.jqx.adjustColor(r,0.9);l.lineColorSelected=l.symbolColorSelected=a.jqx.adjustColor(r,0.9)}var h=[[0,1.4],[100,1]];var f=[[0,1],[25,1.1],[50,1.4],[100,1]];var n=[[0,1.3],[90,1.2],[100,1]];var j=NaN;if(!isNaN(b)){j=b==2?h:f}if(c){var q={};for(var s in l){q[s]=l[s]}l=q;if(e=="verticalLinearGradient"||e=="horizontalLinearGradient"){var g=e=="verticalLinearGradient"?j||h:j||f;var m=["fillColor","fillColorSelected","fillColorAlt","fillColorAltSelected"];for(var v in m){var r=l[m[v]];if(r){l[m[v]]=this.renderer._toLinearGradient(r,e=="verticalLinearGradient",g)}}}else{if(e=="radialGradient"){var t;var j=h;if((k.type=="pie"||k.type=="donut"||k.polar)&&d!=undefined&&this._renderData[u]&&this._renderData[u].offsets[p]){t=this._renderData[u].offsets[p][d];j=n}l.fillColor=this.renderer._toRadialGradient(l.fillColor,j,t);l.fillColorSelected=this.renderer._toRadialGradient(l.fillColorSelected,j,t)}}}return l},_installHandlers:function(c,f,i,h,d){if(!this.enableEvents){return false}var j=this;var e=this.seriesGroups[i];var k=this.seriesGroups[i].series[h];var b=e.type.indexOf("line")!=-1||e.type.indexOf("area")!=-1;if(!b&&!(e.enableSelection==false||k.enableSelection==false)){this.renderer.addHandler(c,"mousemove",function(m){var l=j._selected;if(l&&l.isLineType&&l.linesUnselectMode=="click"&&!(l.group==i&&l.series==h)){return}var g=m.pageX||m.clientX||m.screenX;var o=m.pageY||m.clientY||m.screenY;var n=j.host.offset();g-=n.left;o-=n.top;if(j._mouseX==g&&j._mouseY==o){return}if(j._ttEl){if(j._ttEl.gidx==i&&j._ttEl.sidx==h&&j._ttEl.iidx==d){return}}j._startTooltipTimer(i,h,d)});this.renderer.addHandler(c,"mouseout",function(l){return;if(!isNaN(j._lastClickTs)&&(new Date()).valueOf()-j._lastClickTs<100){return}if(d!=undefined){j._cancelTooltipTimer()}if(b){return}var g=j._selected;if(g&&g.isLineType&&g.linesUnselectMode=="click"&&!(g.group==i&&g.series==h)){return}j._unselect()})}if(!(e.enableSelection==false||k.enableSelection==false)){this.renderer.addHandler(c,"mouseover",function(l){var g=j._selected;if(g&&g.isLineType&&g.linesUnselectMode=="click"&&!(g.group==i&&g.series==h)){return}j._select(c,f,i,h,d,d)})}this.renderer.addHandler(c,"click",function(g){clearTimeout(j._hostClickTimer);j._lastClickTs=(new Date()).valueOf();if(b&&(f!="symbol"&&f!="pointMarker")){return}if(j._isColumnType(e.type)){j._unselect()}if(isNaN(d)){return}g.stopImmediatePropagation();j._raiseItemEvent("click",e,k,d)})},_getHorizontalOffset:function(A,s,k,j){var c=this._plotRect;var h=this._getDataLen(A);if(h==0){return{index:undefined,value:k}}var p=this._calcGroupOffsets(A,this._plotRect);if(p.xoffsets.length==0){return{index:undefined,value:undefined}}var n=k;var m=j;var w=this.seriesGroups[A];var l;if(w.polar||w.spider){l=this._getPolarAxisCoords(A,c)}var e=this._getXAxis(A).flip==true;var b,o,v,f;for(var t=p.xoffsets.first;t<=p.xoffsets.last;t++){var u=p.xoffsets.data[t];var d=p.offsets[s][t].to;var q=0;if(l){var r=this._toPolarCoord(l,c,u+c.x,d);u=r.x;d=r.y;q=a.jqx._ptdist(n,m,u,d)}else{if(w.orientation=="horizontal"){u+=c.y;var z=d;d=u;u=z;q=a.jqx._ptdist(n,m,u,d)}else{u+=c.x;q=Math.abs(n-u)}}if(isNaN(b)||b>q){b=q;o=t;v=u;f=d}}return{index:o,value:p.xoffsets.data[o],polarAxisCoords:l,x:v,y:f}},onmousemove:function(l,k){if(this._mouseX==l&&this._mouseY==k){return}this._mouseX=l;this._mouseY=k;if(!this._selected){return}var B=this._selected.group;var r=this._selected.series;var w=this.seriesGroups[B];var o=w.series[r];var b=this._plotRect;if(this.renderer){b=this.renderer.getRect();b.x+=5;b.y+=5;b.width-=10;b.height-=10}if(lb.x+b.width||kb.y+b.height){this._hideToolTip();this._unselect();return}var e=w.orientation=="horizontal";var b=this._plotRect;if(w.type.indexOf("line")!=-1||w.type.indexOf("area")!=-1){var h=this._getHorizontalOffset(B,this._selected.series,l,k);var v=h.index;if(v==undefined){return}if(this._selected.item!=v){var q=this._linesRenderInfo[B][r].segments;var t=0;while(v>q[t].lastItemIndex){t++;if(t>=q.length){return}}var c=q[t].pathElement;var C=q[t].lastItemIndex;this._unselect(false);this._select(c,"path",B,r,v,C)}var n=this._getSymbol(this._selected.group,this._selected.series);if(n=="none"){n="circle"}var p=this._calcGroupOffsets(B,b);var d=p.offsets[this._selected.series][v].to;var u=d;if(w.type.indexOf("range")!=-1){u=p.offsets[this._selected.series][v].from}var m=e?l:k;if(!isNaN(u)&&Math.abs(m-u)1){f=w.opacity}if(isNaN(f)||f<0||f>1){f=1}var A=o.symbolSizeSelected;if(isNaN(A)){A=o.symbolSize}if(isNaN(A)||A>50||A<0){A=w.symbolSize}if(isNaN(A)||A>50||A<0){A=8}if(this.showToolTips||this.enableCrosshairs){this._pointMarker={type:n,x:l,y:k,gidx:B,sidx:r,iidx:v};this._pointMarker.element=this._drawSymbol(n,l,k,j.fillColorSymbolSelected,f,j.lineColorSymbolSelected,f,1,undefined,A);this._installHandlers(this._pointMarker.element,"pointMarker",B,r,v)}this._startTooltipTimer(B,this._selected.series,v)}},_drawSymbol:function(i,l,j,c,m,k,f,g,b,o){var e;var h=o||6;var d=h/2;switch(i){case"none":return undefined;case"circle":e=this.renderer.circle(l,j,h/2);break;case"square":h=h-1;d=h/2;e=this.renderer.rect(l-d,j-d,h,h);break;case"diamond":var n="M "+(l-d)+","+(j)+" L"+(l)+","+(j-d)+" L"+(l+d)+","+(j)+" L"+(l)+","+(j+d)+" Z";e=this.renderer.path(n);break;case"triangle_up":case"triangle":var n="M "+(l-d)+","+(j+d)+" L "+(l+d)+","+(j+d)+" L "+(l)+","+(j-d)+" Z";e=this.renderer.path(n);break;case"triangle_down":var n="M "+(l-d)+","+(j-d)+" L "+(l)+","+(j+d)+" L "+(l+d)+","+(j-d)+" Z";e=this.renderer.path(n);break;case"triangle_left":var n="M "+(l-d)+","+(j)+" L "+(l+d)+","+(j+d)+" L "+(l+d)+","+(j-d)+" Z";e=this.renderer.path(n);break;case"triangle_right":var n="M "+(l-d)+","+(j-d)+" L "+(l-d)+","+(j+d)+" L "+(l+d)+","+(j)+" Z";e=this.renderer.path(n);break;default:e=this.renderer.circle(l,j,h)}this.renderer.attr(e,{fill:c,"fill-opacity":m,stroke:k,"stroke-width":g,"stroke-opacity":f,"stroke-dasharray":b||""});if(i!="circle"){this.renderer.attr(e,{r:h/2});if(i!="square"){this.renderer.attr(e,{x:l,y:j})}}return e},_getSymbol:function(f,b){var c=["circle","square","diamond","triangle_up","triangle_down","triangle_left","triangle_right"];var e=this.seriesGroups[f];var d=e.series[b];var h;if(d.symbolType!=undefined){h=d.symbolType}if(h==undefined){h=e.symbolType}if(h=="default"){return c[b%c.length]}else{if(h!=undefined){return h}}return"none"},_startTooltipTimer:function(k,j,d,i,h,b,f){this._cancelTooltipTimer();var l=this;var e=l.seriesGroups[k];var c=this.toolTipShowDelay||this.toolTipDelay;if(isNaN(c)||c>10000||c<0){c=500}if(this._ttEl||(true==this.enableCrosshairs&&false==this.showToolTips)){c=0}if(!isNaN(b)){c=b}clearTimeout(this._tttimerHide);if(isNaN(i)){i=l._mouseX}if(isNaN(h)){h=l._mouseY-3}if(c==0){l._showToolTip(i,h,k,j,d)}this._tttimer=setTimeout(function(){if(c!=0){l._showToolTip(i,h,k,j,d)}var g=l.toolTipHideDelay;if(!isNaN(f)){g=f}if(isNaN(g)){g=4000}l._tttimerHide=setTimeout(function(){l._hideToolTip();l._unselect()},g)},c)},_cancelTooltipTimer:function(){clearTimeout(this._tttimer)},_getGroupGradientType:function(c){var b=this.seriesGroups[c];if(b.type.indexOf("area")!=-1){return b.orientation=="horizontal"?"horizontalLinearGradient":"verticalLinearGradient"}else{if(this._isColumnType(b.type)||b.type.indexOf("candle")!=-1){if(b.polar){return"radialGradient"}return b.orientation=="horizontal"?"verticalLinearGradient":"horizontalLinearGradient"}else{if(b.type.indexOf("scatter")!=-1||b.type.indexOf("bubble")!=-1||this._isPieGroup(c)){return"radialGradient"}}}return undefined},_select:function(h,l,o,n,i,m){if(this._selected){if((this._selected.item!=i||this._selected.series!=n||this._selected.group!=o)){this._unselect()}else{return}}var k=this.seriesGroups[o];var p=k.series[n];if(k.enableSelection==false||p.enableSelection==false){return}var f=k.type.indexOf("line")!=-1&&k.type.indexOf("area")==-1;this._selected={element:h,type:l,group:o,series:n,item:i,iidxBase:m,isLineType:f,linesUnselectMode:p.linesUnselectMode||k.linesUnselectMode};var b=this._getColors(o,n,m||i,this._getGroupGradientType(o));var c=b.fillColorSelected;if(f){c="none"}var e=this._getSerieSettings(o,n);var d=(l=="symbol")?b.lineColorSymbolSelected:b.lineColorSelected;c=(l=="symbol")?b.fillColorSymbolSelected:c;var j=(l=="symbol")?1:e.stroke;if(this.renderer.getAttr(h,"fill")==b.fillColorAlt){c=b.fillColorAltSelected}this.renderer.attr(h,{stroke:d,fill:c,"stroke-width":j});if(k.type.indexOf("pie")!=-1||k.type.indexOf("donut")!=-1){this._applyPieSelect()}this._raiseItemEvent("mouseover",k,p,i)},_applyPieSelect:function(){var c=this;c._createAnimationGroup("animPieSlice");var e=this._selected;if(!e){return}var f=this.getItemCoord(e.group,e.series,e.item);if(!f){return}var d=this._getRenderInfo(e.group,e.series,e.item);var b={element:d,coord:f};this._enqueueAnimation("animPieSlice",undefined,undefined,300,function(i,g,j){var l=g.coord;var h=l.selectedRadiusChange*j;var k=c.renderer.pieSlicePath(l.center.x,l.center.y,l.innerRadius==0?0:(l.innerRadius+h),l.outerRadius+h,l.fromAngle,l.toAngle,l.centerOffset);c.renderer.attr(g.element.element,{d:k});c._showPieLabel(e.group,e.series,e.item,undefined,h)},b);c._startAnimation("animPieSlice")},_applyPieUnselect:function(){this._stopAnimations();var b=this._selected;if(!b){return}var d=this.getItemCoord(b.group,b.series,b.item);if(!d||!d.center){return}var c=this.renderer.pieSlicePath(d.center.x,d.center.y,d.innerRadius,d.outerRadius,d.fromAngle,d.toAngle,d.centerOffset);this.renderer.attr(b.element,{d:c});this._showPieLabel(b.group,b.series,b.item,undefined,0)},_unselect:function(){var o=this;if(o._selected){var n=o._selected.group;var m=o._selected.series;var f=o._selected.item;var k=o._selected.iidxBase;var j=o._selected.type;var i=o.seriesGroups[n];var p=i.series[m];var e=i.type.indexOf("line")!=-1&&i.type.indexOf("area")==-1;var b=o._getColors(n,m,k||f,o._getGroupGradientType(n));var c=b.fillColor;if(e){c="none"}var d=o._getSerieSettings(n,m);var l=(j=="symbol")?b.lineColorSymbol:b.lineColor;c=(j=="symbol")?b.fillColorSymbol:c;if(this.renderer.getAttr(o._selected.element,"fill")==b.fillColorAltSelected){c=b.fillColorAlt}var h=(j=="symbol")?1:d.stroke;o.renderer.attr(o._selected.element,{stroke:l,fill:c,"stroke-width":h});if(i.type.indexOf("pie")!=-1||i.type.indexOf("donut")!=-1){this._applyPieUnselect()}o._selected=undefined;if(!isNaN(f)){o._raiseItemEvent("mouseout",i,p,f)}}if(o._pointMarker){if(o._pointMarker.element){o.renderer.removeElement(o._pointMarker.element);o._pointMarker.element=undefined}o._pointMarker=undefined;o._hideCrosshairs()}},_raiseItemEvent:function(f,g,e,c){var d=e[f]||g[f];var h=0;for(;h=1){c*=10}else{c/=10}for(var e=1;eMath.abs(g[e]*c-k)){l=e}else{break}}}while(l==g.length-1);return g[l]*c},_renderDataClone:function(){if(!this._renderData||this._isToggleRefresh){return}var d=this._elementRenderInfo=[];if(this._isSelectorRefresh){return}for(var h=0;h=this._renderData.length){return}var e=this.seriesGroups[d];var c=this._renderData[d].xAxis;if(!c){return}if(e.xAxis==undefined){for(var b=0;b<=d;b++){if(this.seriesGroups[b].xAxis==undefined){break}}c=this._renderData[b].xAxis}return c},getXAxisDataPointOffset:function(j,l){var k=this.seriesGroups[l];if(isNaN(j)){return NaN}renderData=this._getXAxisRenderData(l);if(!renderData){return NaN}var f=renderData.data.axisStats;var i=f.min.valueOf();var b=f.max.valueOf();var g=b-i;if(g==0){g=1}if(j.valueOf()>b||j.valueOf()ag.max){r=ag.max}if(r=r)?ah:ad}else{J=W[ac]}}var af=M*(J-r);if(K){af=M*(J-ap)}if(F&&ao){if(!am[ac]){am[ac]=true;af=M*(J-r)}else{af=M*J}}if(O){while(m.length<=ac){m.push({p:{value:0,height:0},n:{value:0,height:0}})}var B=(K||K)?ap:r;var aa=J>B?m[ac].p:m[ac].n;aa.value+=J;if(d){J=aa.value/(ag.psums[ac]+ag.nsums[ac])*100;af=(a.jqx.log(J,N)-ag.minPow)*M}else{af=a.jqx.log(aa.value,N)-a.jqx.log(B,N);af*=M}af-=aa.height;aa.height+=af}var R=ai;if(K){var t=0;if(O){t=(a.jqx.log(ap,N)-a.jqx.log(r,N))*M}else{t=(ap-r)*M}R+=A?t:-t}if(F){if(d&&!O){var w=(ag.psums[ac]-ag.nsums[ac]);if(J>r){af=(ag.psums[ac]/w)*c;if(ag.psums[ac]!=0){af*=J/ag.psums[ac]}}else{af=(ag.nsums[ac]/w)*c;if(ag.nsums[ac]!=0){af*=J/ag.nsums[ac]}}}if(ao){if(isNaN(I[ac])){I[ac]=R}R=I[ac]}}if(isNaN(S[ac])){S[ac]=0}var ae=S[ac];af=Math.abs(af);var V=af;if(af>=1){h_new=this._isVML?Math.round(af):a.jqx._ptrnd(af)-1;if(Math.abs(af-h_new)>0.5){af=Math.round(af)}else{af=h_new}}ae+=af-V;if(!F){ae=0}if(Math.abs(ae)>0.5){if(ae>0){af-=1;ae-=1}else{af+=1;ae+=1}}S[ac]=ae;if(ab==z.series.length-1&&d){var v=0;for(var X=0;X0.5){af=a.jqx._ptrnd(af+c-v)}else{var X=ab-1;while(X>=0){var G=Math.abs(T[X][ac].to-T[X][ac].from);if(G>1){if(T[X][ac].from>T[X][ac].to){T[X][ac].from+=c-v}break}X--}}}}if(A){af*=-1}var Q=JJ}var n=isNaN(ap)?J:{from:ap,to:J};if(Q){if(ao){I[ac]+=af}T[ab][ac]={from:R,to:R+af,value:n,valueRadius:e}}else{if(ao){I[ac]-=af}T[ab][ac]={from:R,to:R-af,value:n,valueRadius:e}}}}var u=this._renderData[l];u.baseOffset=ai;u.gbase=r;u.logBase=O?N:NaN;u.scale=M;u.offsets=!Z?T:this._applyWaterfall(T,s,l,ai,r,O?N:NaN,M,A,F);u.xoffsets=this._calculateXOffsets(l,L.width);return this._renderData[l]},_isPercent:function(b){return(typeof(b)==="string"&&b.length>0&&b.indexOf("%")==b.length-1)},_calcPieSeriesGroupOffsets:function(e,b){var z=this;var m=this._getDataLen(e);var n=this.seriesGroups[e];var A=this._renderData[e]={};var G=A.offsets=[];for(var C=0;C360){E=0}var M=this._get([t.maxAngle,t.endAngle]);if(isNaN(M)||M<0||M>360){M=360}var f=M-E;var o=t.initialAngle||0;if(oM){o=M}var c=t.centerOffset||0;var K=a.jqx.getNum([t.offsetX,n.offsetX,b.width/2]);var J=a.jqx.getNum([t.offsetY,n.offsetY,b.height/2]);var w=Math.min(b.width,b.height)/2;var v=o;var g=t.radius;if(z._isPercent(g)){g=parseFloat(g)/100*w}if(isNaN(g)){g=w*0.4}var l=t.innerRadius;if(z._isPercent(l)){l=parseFloat(l)/100*w}if(isNaN(l)||l>=g){l=0}var d=t.selectedRadiusChange;if(z._isPercent(d)){d=parseFloat(d)/100*(g-l)}if(isNaN(d)){d=0.1*(g-l)}G.push([]);var h=0;var j=0;for(var F=0;F0){h+=L}else{j+=L}}var r=h-j;if(r==0){r=1}for(var F=0;Fd){break}var c=this._estAxisInterval(k,p,q,d,o[l].key,g);var e=this._getDTIntCnt(k,p,c,o[l].key);if(b==-1||b=p){p=v}}if(c&&((!b&&d==k)||(b&&z==k))){j=false}if(j){e=0;p=Math.max(0,k-1)}if(isNaN(w)){w=e}if(isNaN(C)){C=p}if(b){if(!this._isDate(w)){w=this._isDate(C)?C:new Date()}if(!this._isDate(C)){C=this._isDate(w)?w:new Date()}}else{if(isNaN(w)){w=0}if(isNaN(C)){C=j?Math.max(0,k-1):w}}if(e==undefined){e=w}if(p==undefined){p=C}var r=m.rangeSelector;if(r){var s=r.minValue||w;if(s&&b){s=this._castAsDate(s,r.dateFormat||m.dateFormat)}var u=r.maxValue||C;if(u&&b){u=this._castAsDate(u,r.dateFormat||m.rangeSelector)}if(wu){w=s}if(C>u){C=u}}var E=m.unitInterval;var t,F;if(b){t=m.baseUnit;if(!t){t=this._getBestDTUnit(w,C,f,D)}F=t=="hour"||t=="minute"||t=="second"||t=="millisecond"}var E=m.unitInterval;if(isNaN(E)||E<=0){E=this._estAxisInterval(w,C,f,D,t)}var A={min:w,max:C};var l=this.seriesGroups[f];if(!b&&(l.polar||l.spider)){w=a.jqx._rnd(w,E,false);C=a.jqx._rnd(C,E,true)}return{min:w,max:C,dsRange:{min:e,max:p},filterRange:A,useIndeces:j,isDateTime:b,isTimeUnit:F,dateTimeUnit:t,interval:E}},_getDefaultDTFormatFn:function(d){var b=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];var c;if(d=="year"||d=="month"||d=="day"){c=function(e){return e.getDate()+"-"+b[e.getMonth()]+"-"+e.getFullYear()}}else{c=function(e){return e.getDate()+"-"+b[e.getMonth()]+"-"+e.getFullYear()+"
              "+e.getHours()+":"+e.getMinutes()+":"+e.getSeconds()}}return c},_getDTIntCnt:function(f,c,d,i){var e=0;var g=new Date(f);var h=new Date(c);if(d<=0){return 1}while(g.valueOf()0)?c:50);if(this._renderData&&this._renderData.length>m&&this._renderData[m].xAxis&&!isNaN(this._renderData[m].xAxis.avgWidth)){var o=Math.max(1,this._renderData[m].xAxis.avgWidth);if(o!=0&&isNaN(c)){f=0.9*b/o}}if(f<=1){return Math.abs(h-e)}var n=0;while(true){var l=g>=d.length?Math.pow(10,3+g-d.length):d[g];if(this._isDate(e)&&this._isDate(h)){n=this._getDTIntCnt(e,h,l,j)}else{n=(h-e)/l}if(n<=f){break}g++}var k=this.seriesGroups[m];if(k.spider||k.polar){if(2*l>h-e){l=h-e}}return l},_getPaddingSize:function(l,e,f,c,n,g,o){var h=l.min;var j=l.max;var b=l.interval;var d=l.dateTimeUnit;if(n){var k=(c/Math.max(1,j-h+b))*b;if(g){return{left:0,right:k}}else{if(f){return{left:0,right:0}}return{left:k/2,right:k/2}}}if(f&&!o){return{left:0,right:0}}if(this._isDate(h)&&this._isDate(j)){var m=this._getDTIntCnt(h,j,Math.min(b,j-h),d);var i=c/Math.max(2,m);return{left:i/2,right:i/2}}var m=Math.max(1,j-h);if(m==1){sz=c/4;return{left:sz,right:sz}}var i=c/(m+1);return{left:i/2,right:i/2}},_calculateXOffsets:function(e,E){var D=this.seriesGroups[e];var n=this._getXAxis(e);var v=[];var l=[];var m=this._getDataLen(e);var d=this._getXAxisStats(e,n,E);var u=d.min;var B=d.max;var b=d.isDateTime;var F=d.isTimeUnit;var C=this._hasColumnSeries();var c=D.polar||D.spider;var w=this._get([D.startAngle,D.minAngle,0]);var s=this._get([D.endAngle,D.maxAngle,360]);var p=c&&!(Math.abs(Math.abs(s-w)-360)>0.0001);var k=this._alignValuesWithTicks(e);var r=this._getPaddingSize(d,n,k,E,c,p,C);var H=B-u;var A=d.filterRange;if(H==0){H=1}var G=E-r.left-r.right;if(c&&k){r.left=r.right=0}var h=-1,o=-1;for(var z=0;zA.max){v.push(NaN);l.push(undefined);continue}v.push(a.jqx._ptrnd(r.left+(z-u)/H*G));l.push(t);if(h==-1){h=z}if(o==-1||oA.max){v.push(NaN);l.push(undefined);continue}var q=0;if(!b||(b&&F)){diffFromMin=t-u;q=(t-u)*G/H}else{q=(t.valueOf()-u.valueOf())/(B.valueOf()-u.valueOf())*G}q=a.jqx._ptrnd(r.left+q);v.push(q);l.push(t);if(h==-1){h=z}if(o==-1||othis.samplingThreshold){this._sampleXOffsets(E,v,l,h,o)}return{axisStats:d,data:v,xvalues:l,first:h,last:o,length:o==-1?0:o-h+1,itemWidth:f,intervalWidth:f*d.interval,rangeLength:H,useIndeces:d.useIndeces,padding:r,axisSize:G}},_sampleXOffsets:function(h,d,b,g,e){var e=NaN;for(var c=0;ch.colors.length){m-=h.colors.length;if(++f>=this.colorSchemes.length){f=0}h=this.colorSchemes[f]}d=h.colors[m%h.colors.length]}}}return d},_createColorsCache:function(){this._colorsCache={get:function(b){if(this._store[b]){return this._store[b]}},set:function(c,b){if(this._size<10000){this._store[c]=b;this._size++}},clear:function(){this._store={};this._size=0},_size:0,_store:{}}},_getSeriesColorsInternal:function(m,d,b){var f=this.seriesGroups[m];var o=f.series[d];if(!a.isFunction(o.colorFunction)&&f.type!="pie"&&f.type!="donut"){b=NaN}var h=m+"_"+d+"_"+(isNaN(b)?"NaN":b);if(this._colorsCache.get(h)){return this._colorsCache.get(h)}var c={lineColor:"#222222",lineColorSelected:"#151515",lineColorSymbol:"#222222",lineColorSymbolSelected:"#151515",fillColor:"#222222",fillColorSelected:"#333333",fillColorSymbol:"#222222",fillColorSymbolSelected:"#333333",fillColorAlt:"#222222",fillColorAltSelected:"#333333"};var i;if(a.isFunction(o.colorFunction)){var j=!isNaN(b)?this._getDataValue(b,o.dataField,m):NaN;if(f.type.indexOf("range")!=-1&&!isNaN(b)){var e=this._getDataValue(b,o.dataFieldFrom,m);var l=this._getDataValue(b,o.dataFieldTo,m);j={from:e,to:l}}i=o.colorFunction(j,b,o,f);if(typeof(i)=="object"){for(var k in i){c[k]=i[k]}}else{c.fillColor=i}}else{for(var k in c){if(o[k]){c[k]=o[k]}}if(!o.fillColor&&!o.color){c.fillColor=this._getColorFromScheme(m,d,b)}else{o.fillColor=o.fillColor||o.color}}var n={fillColor:{baseColor:"fillColor",adjust:1},fillColorSelected:{baseColor:"fillColor",adjust:1.1},fillColorSymbol:{baseColor:"fillColor",adjust:1},fillColorSymbolSelected:{baseColor:"fillColorSymbol",adjust:2},fillColorAlt:{baseColor:"fillColor",adjust:4},fillColorAltSelected:{baseColor:"fillColor",adjust:3},lineColor:{baseColor:"fillColor",adjust:0.95},lineColorSelected:{baseColor:"lineColor",adjust:0.95},lineColorSymbol:{baseColor:"lineColor",adjust:1},lineColorSymbolSelected:{baseColor:"lineColorSelected",adjust:1}};for(var k in c){if(typeof(i)!="object"||!i[k]){if(o[k]){c[k]=o[k]}}}for(var k in c){if(typeof(i)!="object"||!i[k]){if(!o[k]){c[k]=a.jqx.adjustColor(c[n[k].baseColor],n[k].adjust)}}}this._colorsCache.set(h,c);return c},_getItemColorFromScheme:function(d,f,k,h){if(d==undefined||d==""){d=this.colorSchemes[0].name}for(var g=0;g0){var u=0;for(var b in o){if(u>0&&m!=""){m+="
              "}var r="dataField"+(b.length>0?b.substring(0,1).toUpperCase()+b.substring(1):"");var q="displayText"+(b.length>0?b.substring(0,1).toUpperCase()+b.substring(1):"");var v=n[q]||n[r];var c=o[b];if(undefined!=c){c=this._formatValue(c,j,k,f,h,A)}else{continue}if(l===true){m+=c}else{m+=v+": "+c}u++}}else{if(undefined!=o){m=this._formatValue(o,j,k,f,h,A)}}return m||""},_isNumberAsString:function(d){if(typeof(d)!="string"){return false}d=a.trim(d);for(var b=0;b="0"&&c<="9")||c==","||c=="."){continue}if(c=="-"&&b==0){continue}if((c=="("&&b==0)||(c==")"&&b==d.length-1)){continue}return false}return true},_castAsDate:function(f,c){if(f instanceof Date&&!isNaN(f)){return f}if(typeof(f)=="string"){var b;if(c){b=a.jqx.dataFormat.parsedate(f,c);if(this._isDate(b)){return b}}if(this._autoDateFormats){for(var e=0;e0){if(b<0){d+=q;b=d.length-1}else{if(q!=="."){d=d.replace(".",q)}}while((d.length-1-b)-1)?b:d.length;var f=d.substring(b);var c=0;for(var j=b;j>0;j--,c++){if((c%3===0)&&(j!==b)&&(!g||(j>1)||(g&&l))){f=o+f}f=d.charAt(j-1)+f}d=f;if(g&&l){d="("+d+")"}return m+d+p},_defaultNumberFormat:{prefix:"",sufix:"",decimalSeparator:".",thousandsSeparator:",",decimalPlaces:2,negativeWithBrackets:false},_calculateControlPoints:function(g,f){var e=g[f],m=g[f+1],d=g[f+2],j=g[f+3],c=g[f+4],i=g[f+5];var l=0.4;var o=Math.sqrt(Math.pow(d-e,2)+Math.pow(j-m,2));var b=Math.sqrt(Math.pow(c-d,2)+Math.pow(i-j,2));var h=(o+b);if(h==0){h=1}var n=l*o/h;var k=l-n;return[d+n*(e-c),j+n*(m-i),d-k*(e-c),j-k*(m-i)]},_getBezierPoints:function(d){var c="";var h=[],e=[];var g=d.split(" ");for(var f=0;f=4&&(Math.abs(h[b-2]-h[b-4])<3||Math.abs(h[b-1]-h[b-3])<3||this._isVML)){c+=" L"+a.jqx._ptrnd(h[b-2])+","+a.jqx._ptrnd(h[b-1])+" "}else{if(b>=5){c+=" Q"+a.jqx._ptrnd(e[b*2-10])+","+a.jqx._ptrnd(e[b*2-9])+" "+a.jqx._ptrnd(h[b-2])+","+a.jqx._ptrnd(h[b-1])+" "}}return c},_animTickInt:50,_createAnimationGroup:function(b){if(!this._animGroups){this._animGroups={}}this._animGroups[b]={animations:[],startTick:NaN}},_startAnimation:function(c){var e=new Date();var b=e.getTime();this._animGroups[c].startTick=b;this._runAnimation();this._enableAnimTimer()},_enqueueAnimation:function(e,d,c,g,f,b,h){if(g<0){g=0}if(h==undefined){h="easeInOutSine"}this._animGroups[e].animations.push({key:d,properties:c,duration:g,fn:f,context:b,easing:h})},_stopAnimations:function(){clearTimeout(this._animtimer);this._animtimer=undefined;this._animGroups=undefined},_enableAnimTimer:function(){if(!this._animtimer){var b=this;this._animtimer=setTimeout(function(){b._runAnimation()},this._animTickInt)}},_runAnimation:function(q){if(this._animGroups){var t=new Date();var h=t.getTime();var o={};for(var l in this._animGroups){var s=this._animGroups[l].animations;var m=this._animGroups[l].startTick;var g=0;for(var n=0;ng){g=u.duration}var r=u.duration>0?b/u.duration:1;var k=r;if(u.easing&&u.duration!=0){k=a.easing[u.easing](r,b,0,1,u.duration)}if(r>1){r=1;k=1}if(u.fn){u.fn(u.key,u.context,k);continue}var f={};for(var l=0;lh){o[l]=({startTick:m,animations:s})}}this._animGroups=o;if(this.renderer instanceof a.jqx.HTML5Renderer){this.renderer.refresh()}}this._animtimer=null;for(var l in this._animGroups){this._enableAnimTimer();break}},_fixCoords:function(d,e){var b=this.seriesGroups[e].orientation=="horizontal";if(!b){return d}var c=d.x;d.x=d.y;d.y=c+this._plotRect.y-this._plotRect.x;var c=d.width;d.width=d.height;d.height=c;return d},getItemCoord:function(b,d,u){var k=this;if(k._isPieGroup(b)&&(!k._isSerieVisible(b,d,u)||!k._renderData||k._renderData.length<=b)){return{x:NaN,y:NaN}}if(!k._isSerieVisible(b,d)||!k._renderData||k._renderData.length<=b){return{x:NaN,y:NaN}}var q=k.seriesGroups[b];var j=q.series[d];var o=k._getItemCoord(b,d,u);if(k._isPieGroup(b)){if(isNaN(o.x)||isNaN(o.y)||isNaN(o.fromAngle)||isNaN(o.toAngle)){return{x:NaN,y:NaN}}var i=this._plotRect;var p=o.fromAngle*(Math.PI/180);var e=o.toAngle*(Math.PI/180);x1=i.x+o.center.x+Math.cos(p)*o.outerRadius;x2=i.x+o.center.x+Math.cos(e)*o.outerRadius;y1=i.y+o.center.y-Math.sin(p)*o.outerRadius;y2=i.y+o.center.y-Math.sin(e)*o.outerRadius;var h=Math.min(x1,x2);var m=Math.abs(x2-x1);var f=Math.min(y1,y2);var l=Math.abs(y2-y1);o={x:h,y:f,width:m,height:l,center:o.center,centerOffset:o.centerOffset,innerRadius:o.innerRadius,outerRadius:o.outerRadius,selectedRadiusChange:o.selectedRadiusChange,fromAngle:o.fromAngle,toAngle:o.toAngle};return o}if(q.type.indexOf("column")!=-1||q.type.indexOf("waterfall")!=-1){var v=this._getColumnSerieWidthAndOffset(b,d);o.height=Math.abs(o.y.to-o.y.from);o.y=Math.min(o.y.to,o.y.from);o.x+=v.offset;o.width=v.width}else{if(q.type.indexOf("ohlc")!=-1||q.type.indexOf("candlestick")!=-1){var v=this._getColumnSerieWidthAndOffset(b,d);var f=o.y;var t=Math.min(f.Open,f.Close,f.Low,f.High);var r=Math.max(f.Open,f.Close,f.Low,f.High);o.height=Math.abs(r-t);o.y=t;o.x+=v.offset;o.width=v.width}else{if(q.type.indexOf("line")!=-1||q.type.indexOf("area")!=-1){o.width=o.height=0;o.y=o.y.to}else{if(q.type.indexOf("bubble")!=-1||q.type.indexOf("scatter")!=-1){o.center={x:o.x,y:o.y.to};var c=o.y.radius;if(j.symbolType!="circle"&&j.symbolType!=undefined){c/=2}o.y=o.y.to;o.radius=c;o.width=2*c;o.height=2*c}}}}o=this._fixCoords(o,b);if(q.polar||q.spider){var n=this._toPolarCoord(this._renderData[b].polarCoords,this._plotRect,o.x,o.y);o.x=n.x;o.y=n.y;if(o.center){o.center=this._toPolarCoord(this._renderData[b].polarCoords,this._plotRect,o.center.x,o.center.y)}}if(q.type.indexOf("bubble")!=-1||q.type.indexOf("scatter")!=-1){o.x-=c;o.y-=c}return o},_getItemCoord:function(o,j,b){var e=this.seriesGroups[o],l,k;if(!e||!this._renderData){return{x:NaN,y:NaN}}var f=e.series[j];if(!f){return{x:NaN,y:NaN}}var h=this._plotRect;if(this._isPieGroup(o)){var m=this._renderData[o].offsets[j][b];if(!m){return{x:NaN,y:NaN}}var c=(m.fromAngle+m.toAngle)/2*(Math.PI/180);l=h.x+m.x+Math.cos(c)*m.outerRadius;k=h.y+m.y-Math.sin(c)*m.outerRadius;return{x:l,y:k,center:{x:m.x,y:m.y},centerOffset:m.centerOffset,innerRadius:m.innerRadius,outerRadius:m.outerRadius,selectedRadiusChange:m.selectedRadiusChange,fromAngle:m.fromAngle,toAngle:m.toAngle}}else{l=h.x+this._renderData[o].xoffsets.data[b];k=this._renderData[o].offsets[j][b];if(isNaN(l)||!k){return{x:NaN,y:NaN}}}var n={};for(var d in k){n[d]=k[d]}return{x:l,y:n}},_detectDateFormat:function(g,e){var d={en_US_d:"M/d/yyyy",en_US_D:"dddd, MMMM dd, yyyy",en_US_t:"h:mm tt",en_US_T:"h:mm:ss tt",en_US_f:"dddd, MMMM dd, yyyy h:mm tt",en_US_F:"dddd, MMMM dd, yyyy h:mm:ss tt",en_US_M:"MMMM dd",en_US_Y:"yyyy MMMM",en_US_S:"yyyy\u0027-\u0027MM\u0027-\u0027dd\u0027T\u0027HH\u0027:\u0027mm\u0027:\u0027ss",en_CA_d:"dd/MM/yyyy",en_CA_D:"MMMM-dd-yy",en_CA_f:"MMMM-dd-yy h:mm tt",en_CA_F:"MMMM-dd-yy h:mm:ss tt",ISO:"yyyy-MM-dd hh:mm:ss",ISO2:"yyyy-MM-dd HH:mm:ss",d1:"dd.MM.yyyy",d2:"dd-MM-yyyy",zone1:"yyyy-MM-ddTHH:mm:ss-HH:mm",zone2:"yyyy-MM-ddTHH:mm:ss+HH:mm",custom:"yyyy-MM-ddTHH:mm:ss.fff",custom2:"yyyy-MM-dd HH:mm:ss.fff",de_DE_d:"dd.MM.yyyy",de_DE_D:"dddd, d. MMMM yyyy",de_DE_t:"HH:mm",de_DE_T:"HH:mm:ss",de_DE_f:"dddd, d. MMMM yyyy HH:mm",de_DE_F:"dddd, d. MMMM yyyy HH:mm:ss",de_DE_M:"dd MMMM",de_DE_Y:"MMMM yyyy",fr_FR_d:"dd/MM/yyyy",fr_FR_D:"dddd d MMMM yyyy",fr_FR_t:"HH:mm",fr_FR_T:"HH:mm:ss",fr_FR_f:"dddd d MMMM yyyy HH:mm",fr_FR_F:"dddd d MMMM yyyy HH:mm:ss",fr_FR_M:"d MMMM",fr_FR_Y:"MMMM yyyy",it_IT_d:"dd/MM/yyyy",it_IT_D:"dddd d MMMM yyyy",it_IT_t:"HH:mm",it_IT_T:"HH:mm:ss",it_IT_f:"dddd d MMMM yyyy HH:mm",it_IT_F:"dddd d MMMM yyyy HH:mm:ss",it_IT_M:"dd MMMM",it_IT_Y:"MMMM yyyy",ru_RU_d:"dd.MM.yyyy",ru_RU_D:"d MMMM yyyy '?.'",ru_RU_t:"H:mm",ru_RU_T:"H:mm:ss",ru_RU_f:"d MMMM yyyy '?.' H:mm",ru_RU_F:"d MMMM yyyy '?.' H:mm:ss",ru_RU_Y:"MMMM yyyy",cs_CZ_d:"d.M.yyyy",cs_CZ_D:"d. MMMM yyyy",cs_CZ_t:"H:mm",cs_CZ_T:"H:mm:ss",cs_CZ_f:"d. MMMM yyyy H:mm",cs_CZ_F:"d. MMMM yyyy H:mm:ss",cs_CZ_M:"dd MMMM",cs_CZ_Y:"MMMM yyyy",he_IL_d:"dd MMMM yyyy",he_IL_D:"dddd dd MMMM yyyy",he_IL_t:"HH:mm",he_IL_T:"HH:mm:ss",he_IL_f:"dddd dd MMMM yyyy HH:mm",he_IL_F:"dddd dd MMMM yyyy HH:mm:ss",he_IL_M:"dd MMMM",he_IL_Y:"MMMM yyyy",hr_HR_d:"d.M.yyyy.",hr_HR_D:"d. MMMM yyyy.",hr_HR_t:"H:mm",hr_HR_T:"H:mm:ss",hr_HR_f:"d. MMMM yyyy. H:mm",hr_HR_F:"d. MMMM yyyy. H:mm:ss",hr_HR_M:"d. MMMM",hu_HU_d:"yyyy.MM.dd.",hu_HU_D:"yyyy. MMMM d.",hu_HU_t:"H:mm",hu_HU_T:"H:mm:ss",hu_HU_f:"yyyy. MMMM d. H:mm",hu_HU_F:"yyyy. MMMM d. H:mm:ss",hu_HU_M:"MMMM d.",hu_HU_Y:"yyyy. MMMM",jp_JP_d:"gg y/M/d",jp_JP_D:"gg y'?'M'?'d'?'",jp_JP_t:"H:mm",jp_JP_T:"H:mm:ss",jp_JP_f:"gg y'?'M'?'d'?' H:mm",jp_JP_F:"gg y'?'M'?'d'?' H:mm:ss",jp_JP_M:"M'?'d'?'",jp_JP_Y:"gg y'?'M'?'",lt_LT_d:"yyyy.MM.dd",lt_LT_D:"yyyy 'm.' MMMM d 'd.'",lt_LT_t:"HH:mm",lt_LT_T:"HH:mm:ss",lt_LT_f:"yyyy 'm.' MMMM d 'd.' HH:mm",lt_LT_F:"yyyy 'm.' MMMM d 'd.' HH:mm:ss",lt_LT_M:"MMMM d 'd.'",lt_LT_Y:"yyyy 'm.' MMMM",sa_IN_d:"dd-MM-yyyy",sa_IN_D:"dd MMMM yyyy dddd",sa_IN_t:"HH:mm",sa_IN_T:"HH:mm:ss",sa_IN_f:"dd MMMM yyyy dddd HH:mm",sa_IN_F:"dd MMMM yyyy dddd HH:mm:ss",sa_IN_M:"dd MMMM",basic_y:"yyyy",basic_ym:"yyyy-MM",basic_d:"yyyy-MM-dd",basic_dhm:"yyyy-MM-dd hh:mm",basic_bhms:"yyyy-MM-dd hh:mm:ss",basic2_ym:"MM-yyyy",basic2_d:"MM-dd-yyyy",basic2_dhm:"MM-dd-yyyy hh:mm",basic2_dhms:"MM-dd-yyyy hh:mm:ss",basic3_ym:"yyyy/MM",basic3_d:"yyyy/MM/dd",basic3_dhm:"yyyy/MM/dd hh:mm",basic3_bhms:"yyyy/MM/dd hh:mm:ss",basic4_ym:"MM/yyyy",basic4_d:"MM/dd/yyyy",basic4_dhm:"MM/dd/yyyy hh:mm",basic4_dhms:"MM/dd/yyyy hh:mm:ss"};if(e){d=a.extend({},d,e)}var c=[];if(!a.isArray(g)){c.push(g)}else{c=g}for(var f in d){d[f]={format:d[f],count:0}}for(var h=0;hk.count){k.key=f;k.count=d[f].count}}return k.key?d[k.key].format:""},_testXAxisDateFormat:function(h){var k=this;var d=k._getXAxis(h);var c=k._getDataLen(h);var e={};if(k.localization&&k.localization.patterns){for(var j in k.localization.patterns){e["local_"+j]=k.localization.patterns[j]}}var g=[];for(var f=0;f1){c-=1}if(c<1/6){return e+(d-e)*6*c}else{if(c<1/2){return d}else{if(c<2/3){return e+(d-e)*(2/3-c)*6}}}return e};a.jqx.rgbToHsl=function(j){var c=parseFloat(j[0])/255;var i=parseFloat(j[1])/255;var k=parseFloat(j[2])/255;var m=Math.max(c,i,k),e=Math.min(c,i,k);var f,o,d=(m+e)/2;if(m==e){f=o=0}else{var n=m-e;o=d>0.5?n/(2-m-e):n/(m+e);switch(m){case c:f=(i-k)/n+(id?c-0.5:c+0.5}return c};a.jqx._ptRotate=function(e,k,d,j,h){var c=Math.sqrt(Math.pow(Math.abs(e-d),2)+Math.pow(Math.abs(k-j),2));var f=Math.asin((e-d)/c);var i=f+h;e=d+Math.cos(i)*c;k=j+Math.sin(i)*c;return{x:e,y:k}};a.jqx._rup=function(d){var c=Math.round(d);if(d>c){c++}return c};a.jqx.log=function(d,c){return Math.log(d)/(c?Math.log(c):1)};a.jqx._mod=function(d,c){var e=Math.abs(d>c?c:d);var f=1;if(e!=0){while(e*f<100){f*=10}}d=d*f;c=c*f;return(d%c)/f};a.jqx._rnd=function(e,h,f,d){if(isNaN(e)){return e}if(undefined===d){d=true}var c=e-((d==true)?e%h:a.jqx._mod(e,h));if(e==c){return c}if(f){if(e>c){c+=h}}else{if(c>e){c-=h}}return(h==1)?Math.round(c):c};a.jqx.commonRenderer={pieSlicePath:function(m,l,j,u,D,E,e){if(!u){u=1}var o=Math.abs(D-E);var s=o>180?1:0;if(o>=360){E=D+359.99}var t=D*Math.PI*2/360;var k=E*Math.PI*2/360;var B=m,A=m,h=l,f=l;var p=!isNaN(j)&&j>0;if(p){e=0}if(e+j>0){if(e>0){var n=o/2+D;var C=n*Math.PI*2/360;m+=e*Math.cos(C);l-=e*Math.sin(C)}if(p){var z=j;B=m+z*Math.cos(t);h=l-z*Math.sin(t);A=m+z*Math.cos(k);f=l-z*Math.sin(k)}}var w=m+u*Math.cos(t);var v=m+u*Math.cos(k);var d=l-u*Math.sin(t);var c=l-u*Math.sin(k);var q="";var i=(Math.abs(Math.abs(E-D)-360)>0.02);if(p){q="M "+A+","+f;q+=" a"+j+","+j;q+=" 0 "+s+",1 "+(B-A)+","+(h-f);if(i){q+=" L"+w+","+d}else{q+=" M"+w+","+d}q+=" a"+u+","+u;q+=" 0 "+s+",0 "+(v-w)+","+(c-d);if(i){q+=" Z"}}else{q="M "+v+","+c;q+=" a"+u+","+u;q+=" 0 "+s+",1 "+(w-v)+","+(d-c);if(i){q+=" L"+m+","+l;q+=" Z"}}return q},measureText:function(q,h,i,p,n){var f=n._getTextParts(q,h,i);var k=f.width;var c=f.height;if(false==p){c/=0.6}var d={};if(isNaN(h)){h=0}if(h==0){d={width:a.jqx._rup(k),height:a.jqx._rup(c)}}else{var m=h*Math.PI*2/360;var e=Math.abs(Math.sin(m));var l=Math.abs(Math.cos(m));var j=Math.abs(k*e+c*l);var o=Math.abs(k*l+c*e);d={width:a.jqx._rup(o),height:a.jqx._rup(j)}}if(p){d.textPartsInfo=f}return d},alignTextInRect:function(t,p,c,u,o,q,k,s,f,e){var m=f*Math.PI*2/360;var d=Math.sin(m);var l=Math.cos(m);var n=o*d;var j=o*l;if(k=="center"||k==""||k=="undefined"){t=t+c/2}else{if(k=="right"){t=t+c}}if(s=="center"||s=="middle"||s==""||s=="undefined"){p=p+u/2}else{if(s=="bottom"){p+=u-q/2}else{if(s=="top"){p+=q/2}}}e=e||"";var h="middle";if(e.indexOf("top")!=-1){h="top"}else{if(e.indexOf("bottom")!=-1){h="bottom"}}var i="center";if(e.indexOf("left")!=-1){i="left"}else{if(e.indexOf("right")!=-1){i="right"}}if(i=="center"){t-=j/2;p-=n/2}else{if(i=="right"){t-=j;p-=n}}if(h=="top"){t-=q*d;p+=q*l}else{if(h=="middle"){t-=q*d/2;p+=q*l/2}}t=a.jqx._rup(t);p=a.jqx._rup(p);return{x:t,y:p}}};a.jqx.svgRenderer=function(){};a.jqx.svgRenderer.prototype={_svgns:"http://www.w3.org/2000/svg",init:function(h){var f="
              ";h.append(f);this.host=h;var c=h.find(".chartContainer");c[0].style.width=h.width()+"px";c[0].style.height=h.height()+"px";var j;try{var d=document.createElementNS(this._svgns,"svg");d.setAttribute("id","svgChart");d.setAttribute("version","1.1");d.setAttribute("width","100%");d.setAttribute("height","100%");d.setAttribute("overflow","hidden");c[0].appendChild(d);this.canvas=d}catch(i){return false}this._id=new Date().getTime();this.clear();this._layout();this._runLayoutFix();return true},getType:function(){return"SVG"},refresh:function(){},_runLayoutFix:function(){var c=this;this._fixLayout()},_fixLayout:function(){var i=a(this.canvas).position();var e=(parseFloat(i.left)==parseInt(i.left));var c=(parseFloat(i.top)==parseInt(i.top));if(a.jqx.browser.msie){var e=true,c=true;var f=this.host;var d=0,h=0;while(f&&f.position&&f[0].parentNode){var j=f.position();d+=parseFloat(j.left)-parseInt(j.left);h+=parseFloat(j.top)-parseInt(j.top);f=f.parent()}e=parseFloat(d)==parseInt(d);c=parseFloat(h)==parseInt(h)}if(!e){this.host.find("#tdLeft")[0].style.width="0.5px"}if(!c){this.host.find("#tdTop")[0].style.height="0.5px"}},_layout:function(){var d=a(this.canvas).offset();var c=this.host.find(".chartContainer");this._width=Math.max(a.jqx._rup(this.host.width())-1,0);this._height=Math.max(a.jqx._rup(this.host.height())-1,0);c[0].style.width=this._width;c[0].style.height=this._height;this._fixLayout()},getRect:function(){return{x:0,y:0,width:this._width,height:this._height}},getContainer:function(){var c=this.host.find(".chartContainer");return c},clear:function(){while(this.canvas.childElementCount>0){this.removeElement(this.canvas.firstElementChild)}this._defaultParent=undefined;this._defs=document.createElementNS(this._svgns,"defs");this._gradients={};this.canvas.appendChild(this._defs)},removeElement:function(e){if(undefined==e){return}this.removeHandler(e);try{while(e.firstChild){this.removeElement(e.firstChild)}if(e.parentNode){e.parentNode.removeChild(e)}else{this.canvas.removeChild(e)}}catch(d){var c=d}},_openGroups:[],beginGroup:function(){var c=this._activeParent();var d=document.createElementNS(this._svgns,"g");c.appendChild(d);this._openGroups.push(d);return d},endGroup:function(){if(this._openGroups.length==0){return}this._openGroups.pop()},_activeParent:function(){return this._openGroups.length==0?this.canvas:this._openGroups[this._openGroups.length-1]},createClipRect:function(e){var f=document.createElementNS(this._svgns,"clipPath");var d=document.createElementNS(this._svgns,"rect");this.attr(d,{x:e.x,y:e.y,width:e.width,height:e.height,fill:"none"});this._clipId=this._clipId||0;f.id="cl"+this._id+"_"+(++this._clipId).toString();f.appendChild(d);this._defs.appendChild(f);return f},getWindowHref:function(){var d=a.jqx.browser;if(d&&d.browser=="msie"&&d.version<10){return""}var c=window.location.href;if(!c){return c}c=c.replace(/([\('\)])/g,"\\$1");c=c.replace(/#.*$/,"");return c},setClip:function(e,d){var c="url("+this.getWindowHref()+"#"+d.id+")";return this.attr(e,{"clip-path":c})},_clipId:0,addHandler:function(c,e,d){if(a(c).on){a(c).on(e,d)}else{a(c).bind(e,d)}},removeHandler:function(c,e,d){if(a(c).off){a(c).off(e,d)}else{a(c).unbind(e,d)}},on:function(c,e,d){this.addHandler(c,e,d)},off:function(c,e,d){this.removeHandler(c,e,d)},shape:function(c,f){var d=document.createElementNS(this._svgns,c);if(!d){return undefined}for(var e in f){d.setAttribute(e,f[e])}this._activeParent().appendChild(d);return d},_getTextParts:function(t,j,k){var h={width:0,height:0,parts:[]};if(undefined===t){return h}var o=0.6;var u=t.toString().split("
              ");var q=this._activeParent();var m=document.createElementNS(this._svgns,"text");this.attr(m,k);for(var l=0;l0?4:0);h.parts.push({width:n,height:c,text:d})}q.removeChild(m);return h},_measureText:function(f,e,d,c){return a.jqx.commonRenderer.measureText(f,e,d,c,this)},measureText:function(e,d,c){return this._measureText(e,d,c,false)},text:function(z,t,s,E,C,K,M,L,v,m,d){var B=this._measureText(z,K,M,true);var l=B.textPartsInfo;var j=l.parts;var D;if(!v){v="center"}if(!m){m="center"}if(j.length>1||L){D=this.beginGroup()}if(L){var k=this.createClipRect({x:a.jqx._rup(t)-1,y:a.jqx._rup(s)-1,width:a.jqx._rup(E)+2,height:a.jqx._rup(C)+2});this.setClip(D,k)}var q=this._activeParent();var O=0,n=0;var c=0.6;O=l.width;n=l.height;if(isNaN(E)||E<=0){E=O}if(isNaN(C)||C<=0){C=n}var u=E||0;var J=C||0;if(!K||K==0){s+=n;if(m=="center"||m=="middle"){s+=(J-n)/2}else{if(m=="bottom"){s+=J-n}}if(!E){E=O}if(!C){C=n}var q=this._activeParent();var p=0;for(var I=j.length-1;I>=0;I--){var A=document.createElementNS(this._svgns,"text");this.attr(A,M);this.attr(A,{cursor:"default"});var H=A.ownerDocument.createTextNode(j[I].text);A.appendChild(H);var P=t;var o=j[I].width;var f=j[I].height;if(v=="center"){P+=(u-o)/2}else{if(v=="right"){P+=(u-o)}}this.attr(A,{x:a.jqx._rup(P),y:a.jqx._rup(s+p),width:a.jqx._rup(o),height:a.jqx._rup(f)});q.appendChild(A);p-=j[I].height+4}if(D){this.endGroup();return D}return A}var F=a.jqx.commonRenderer.alignTextInRect(t,s,E,C,O,n,v,m,K,d);t=F.x;s=F.y;var G=this.shape("g",{transform:"translate("+t+","+s+")"});var e=this.shape("g",{transform:"rotate("+K+")"});G.appendChild(e);var p=0;for(var I=j.length-1;I>=0;I--){var N=document.createElementNS(this._svgns,"text");this.attr(N,M);this.attr(N,{cursor:"default"});var H=N.ownerDocument.createTextNode(j[I].text);N.appendChild(H);var P=0;var o=j[I].width;var f=j[I].height;if(v=="center"){P+=(l.width-o)/2}else{if(v=="right"){P+=(l.width-o)}}this.attr(N,{x:a.jqx._rup(P),y:a.jqx._rup(p),width:a.jqx._rup(o),height:a.jqx._rup(f)});e.appendChild(N);p-=f+4}q.appendChild(G);if(D){this.endGroup()}return G},line:function(e,h,d,f,i){var c=this.shape("line",{x1:e,y1:h,x2:d,y2:f});this.attr(c,i);return c},path:function(d,e){var c=this.shape("path");c.setAttribute("d",d);if(e){this.attr(c,e)}return c},rect:function(c,j,d,f,i){c=a.jqx._ptrnd(c);j=a.jqx._ptrnd(j);d=Math.max(1,a.jqx._rnd(d,1,false));f=Math.max(1,a.jqx._rnd(f,1,false));var e=this.shape("rect",{x:c,y:j,width:d,height:f});if(i){this.attr(e,i)}return e},circle:function(c,h,e,f){var d=this.shape("circle",{cx:c,cy:h,r:e});if(f){this.attr(d,f)}return d},pieSlicePath:function(d,j,i,f,h,e,c){return a.jqx.commonRenderer.pieSlicePath(d,j,i,f,h,e,c)},pieslice:function(l,j,i,e,h,c,k,d){var f=this.pieSlicePath(l,j,i,e,h,c,k);var m=this.shape("path");m.setAttribute("d",f);if(d){this.attr(m,d)}return m},attr:function(c,e){if(!c||!e){return}for(var d in e){if(d=="textContent"){c.textContent=e[d]}else{c.setAttribute(d,e[d])}}},removeAttr:function(c,e){if(!c||!e){return}for(var d in e){if(d=="textContent"){c.textContent=""}else{c.removeAttribute(e[d])}}},getAttr:function(d,c){return d.getAttribute(c)},_gradients:{},_toLinearGradient:function(f,k,l){var d="grd"+this._id+f.replace("#","")+(k?"v":"h");var c="url("+this.getWindowHref()+"#"+d+")";if(this._gradients[c]){return c}var e=document.createElementNS(this._svgns,"linearGradient");this.attr(e,{x1:"0%",y1:"0%",x2:k?"0%":"100%",y2:k?"100%":"0%",id:d});for(var h=0;h
              ";j.append(h);this.host=j;var c=j.find(".chartContainer");c[0].style.width=j.width()+"px";c[0].style.height=j.height()+"px";var f=true;try{for(var d=0;d0&&document.childNodes[0].data&&document.childNodes[0].data.indexOf("DOCTYPE")!=-1)){if(f){document.namespaces.add("v","urn:schemas-microsoft-com:vml")}this._ie8mode=true}else{if(f){document.namespaces.add("v","urn:schemas-microsoft-com:vml");document.createStyleSheet().cssText="v\\:* { behavior: url(#default#VML); display: inline-block; }"}}this.canvas=c[0];this._width=Math.max(a.jqx._rup(c.width()),0);this._height=Math.max(a.jqx._rup(c.height()),0);c[0].style.width=this._width+2;c[0].style.height=this._height+2;this._id=new Date().getTime();this.clear();return true},getType:function(){return"VML"},refresh:function(){},getRect:function(){return{x:0,y:0,width:this._width,height:this._height}},getContainer:function(){var c=this.host.find(".chartContainer");return c},clear:function(){while(this.canvas.childElementCount>0){this.removeHandler(this.canvas.firstElementChild);this.canvas.removeChild(this.canvas.firstElementChild)}this._gradients={};this._defaultParent=undefined},removeElement:function(c){if(c!=null){this.removeHandler(c);c.parentNode.removeChild(c)}},_openGroups:[],beginGroup:function(){var c=this._activeParent();var d=document.createElement("v:group");d.style.position="absolute";d.coordorigin="0,0";d.coordsize=this._width+","+this._height;d.style.left=0;d.style.top=0;d.style.width=this._width;d.style.height=this._height;c.appendChild(d);this._openGroups.push(d);return d},endGroup:function(){if(this._openGroups.length==0){return}this._openGroups.pop()},_activeParent:function(){return this._openGroups.length==0?this.canvas:this._openGroups[this._openGroups.length-1]},createClipRect:function(c){var d=document.createElement("div");d.style.height=(c.height+1)+"px";d.style.width=(c.width+1)+"px";d.style.position="absolute";d.style.left=c.x+"px";d.style.top=c.y+"px";d.style.overflow="hidden";this._clipId=this._clipId||0;d.id="cl"+this._id+"_"+(++this._clipId).toString();this._activeParent().appendChild(d);return d},setClip:function(d,c){},_clipId:0,addHandler:function(c,e,d){if(a(c).on){a(c).on(e,d)}else{a(c).bind(e,d)}},removeHandler:function(c,e,d){if(a(c).off){a(c).off(e,d)}else{a(c).unbind(e,d)}},on:function(c,e,d){this.addHandler(c,e,d)},off:function(c,e,d){this.removeHandler(c,e,d)},_getTextParts:function(q,h,j){var f={width:0,height:0,parts:[]};var o=0.6;var s=q.toString().split("
              ");var p=this._activeParent();var l=document.createElement("v:textbox");this.attr(l,j);p.appendChild(l);for(var k=0;k0?2:0);f.parts.push({width:m,height:c,text:d})}p.removeChild(l);return f},_measureText:function(f,e,d,c){if(Math.abs(e)>45){e=90}else{e=0}return a.jqx.commonRenderer.measureText(f,e,d,c,this)},measureText:function(e,d,c){return this._measureText(e,d,c,false)},text:function(u,p,o,D,z,J,L,K,t,k){var E;if(L&&L.stroke){E=L.stroke}if(E==undefined){E="black"}var v=this._measureText(u,J,L,true);var f=v.textPartsInfo;var c=f.parts;var M=v.width;var l=v.height;if(isNaN(D)||D==0){D=M}if(isNaN(z)||z==0){z=l}var B;if(!t){t="center"}if(!k){k="center"}if(c.length>0||K){B=this.beginGroup()}if(K){var d=this.createClipRect({x:a.jqx._rup(p),y:a.jqx._rup(o),width:a.jqx._rup(D),height:a.jqx._rup(z)});this.setClip(B,d)}var n=this._activeParent();var s=D||0;var I=z||0;if(Math.abs(J)>45){J=90}else{J=0}var A=0,H=0;if(t=="center"){A+=(s-M)/2}else{if(t=="right"){A+=(s-M)}}if(k=="center"){H=(I-l)/2}else{if(k=="bottom"){H=I-l}}if(J==0){o+=l+H;p+=A}else{p+=M+A;o+=H}var m=0,N=0;var e;for(var G=c.length-1;G>=0;G--){var C=c[G];var q=(M-C.width)/2;if(J==0&&t=="left"){q=0}else{if(J==0&&t=="right"){q=M-C.width}else{if(J==90){q=(l-C.width)/2}}}var j=m-C.height;H=J==90?q:j;A=J==90?j:q;e=document.createElement("v:textbox");e.style.position="absolute";e.style.left=a.jqx._rup(p+A);e.style.top=a.jqx._rup(o+H);e.style.width=a.jqx._rup(C.width);e.style.height=a.jqx._rup(C.height);if(J==90){e.style.filter="progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";e.style.height=a.jqx._rup(C.height)+5}var F=document.createElement("span");F.appendChild(document.createTextNode(C.text));if(L&&L["class"]){F.className=L["class"]}e.appendChild(F);n.appendChild(e);m-=C.height+(G>0?2:0)}if(B){this.endGroup();return n}return e},shape:function(c,f){var d=document.createElement(this._createElementMarkup(c));if(!d){return undefined}for(var e in f){d.setAttribute(e,f[e])}this._activeParent().appendChild(d);return d},line:function(f,i,e,h,j){var c="M "+f+","+i+" L "+e+","+h+" X E";var d=this.path(c);this.attr(d,j);return d},_createElementMarkup:function(c){var d="";if(this._ie8mode){d=d.replace('style=""','style="behavior: url(#default#VML);"')}return d},path:function(d,e){var c=document.createElement(this._createElementMarkup("shape"));c.style.position="absolute";c.coordsize=this._width+" "+this._height;c.coordorigin="0 0";c.style.width=parseInt(this._width);c.style.height=parseInt(this._height);c.style.left=0+"px";c.style.top=0+"px";c.setAttribute("path",d);this._activeParent().appendChild(c);if(e){this.attr(c,e)}return c},rect:function(c,j,d,e,i){c=a.jqx._ptrnd(c);j=a.jqx._ptrnd(j);d=a.jqx._rup(d);e=a.jqx._rup(e);var f=this.shape("rect",i);f.style.position="absolute";f.style.left=c;f.style.top=j;f.style.width=d;f.style.height=e;f.strokeweight=0;if(i){this.attr(f,i)}return f},circle:function(c,h,e,f){var d=this.shape("oval");c=a.jqx._ptrnd(c-e);h=a.jqx._ptrnd(h-e);e=a.jqx._rup(e);d.style.position="absolute";d.style.left=c;d.style.top=h;d.style.width=e*2;d.style.height=e*2;if(f){this.attr(d,f)}return d},updateCircle:function(e,c,f,d){if(c==undefined){c=parseFloat(e.style.left)+parseFloat(e.style.width)/2}if(f==undefined){f=parseFloat(e.style.top)+parseFloat(e.style.height)/2}if(d==undefined){d=parseFloat(e.width)/2}c=a.jqx._ptrnd(c-d);f=a.jqx._ptrnd(f-d);d=a.jqx._rup(d);e.style.left=c;e.style.top=f;e.style.width=d*2;e.style.height=d*2},pieSlicePath:function(m,l,j,u,E,F,e){if(!u){u=1}var o=Math.abs(E-F);var s=o>180?1:0;if(o>360){E=0;F=360}var t=E*Math.PI*2/360;var k=F*Math.PI*2/360;var B=m,A=m,h=l,f=l;var p=!isNaN(j)&&j>0;if(p){e=0}if(e>0){var n=o/2+E;var D=n*Math.PI*2/360;m+=e*Math.cos(D);l-=e*Math.sin(D)}if(p){var z=j;B=a.jqx._ptrnd(m+z*Math.cos(t));h=a.jqx._ptrnd(l-z*Math.sin(t));A=a.jqx._ptrnd(m+z*Math.cos(k));f=a.jqx._ptrnd(l-z*Math.sin(k))}var w=a.jqx._ptrnd(m+u*Math.cos(t));var v=a.jqx._ptrnd(m+u*Math.cos(k));var d=a.jqx._ptrnd(l-u*Math.sin(t));var c=a.jqx._ptrnd(l-u*Math.sin(k));u=a.jqx._ptrnd(u);j=a.jqx._ptrnd(j);m=a.jqx._ptrnd(m);l=a.jqx._ptrnd(l);var i=Math.round(E*65535);var C=Math.round((F-E)*65536);if(j<0){j=1}var q="";if(p){q="M"+B+" "+h;q+=" AE "+m+" "+l+" "+j+" "+j+" "+i+" "+C;q+=" L "+v+" "+c;i=Math.round((E-F)*65535);C=Math.round(F*65536);q+=" AE "+m+" "+l+" "+u+" "+u+" "+C+" "+i;q+=" L "+B+" "+h}else{q="M"+m+" "+l;q+=" AE "+m+" "+l+" "+u+" "+u+" "+i+" "+C}q+=" X E";return q},pieslice:function(m,k,j,f,i,c,l,e){var h=this.pieSlicePath(m,k,j,f,i,c,l);var d=this.path(h,e);if(e){this.attr(d,e)}return d},_keymap:[{svg:"fill",vml:"fillcolor"},{svg:"stroke",vml:"strokecolor"},{svg:"stroke-width",vml:"strokeweight"},{svg:"stroke-dasharray",vml:"dashstyle"},{svg:"fill-opacity",vml:"fillopacity"},{svg:"stroke-opacity",vml:"strokeopacity"},{svg:"opacity",vml:"opacity"},{svg:"cx",vml:"style.left"},{svg:"cy",vml:"style.top"},{svg:"height",vml:"style.height"},{svg:"width",vml:"style.width"},{svg:"x",vml:"style.left"},{svg:"y",vml:"style.top"},{svg:"d",vml:"v"},{svg:"display",vml:"style.display"}],_translateParam:function(c){for(var d in this._keymap){if(this._keymap[d].svg==c){return this._keymap[d].vml}}return c},attr:function(d,f){if(!d||!f){return}for(var e in f){var c=this._translateParam(e);if(undefined==f[e]){continue}if(c=="fillcolor"&&f[e].indexOf("grd")!=-1){d.type=f[e]}else{if(c=="fillcolor"&&f[e]=="transparent"){d.style.filter="alpha(opacity=0)";d["-ms-filter"]="progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"}else{if(c=="opacity"||c=="fillopacity"){if(d.fill){d.fill.opacity=f[e]}}else{if(c=="textContent"){d.children[0].innerText=f[e]}else{if(c=="dashstyle"){d.dashstyle=f[e].replace(","," ")}else{if(c.indexOf("style.")==-1){d[c]=f[e]}else{d.style[c.replace("style.","")]=f[e]}}}}}}}},removeAttr:function(c,e){if(!c||!e){return}for(var d in e){c.removeAttribute(e[d])}},getAttr:function(e,d){var c=this._translateParam(d);if(c=="opacity"||c=="fillopacity"){if(e.fill){return e.fill.opacity}else{return 1}}if(c.indexOf("style.")==-1){return e[c]}return e.style[c.replace("style.","")]},_gradients:{},_toRadialGradient:function(c,e,d){return c},_toLinearGradient:function(j,m,n){if(this._ie8mode){return j}var e="grd"+j.replace("#","")+(m?"v":"h");var f="#"+e+"";if(this._gradients[f]){return f}var h=document.createElement(this._createElementMarkup("fill"));h.type="gradient";h.method="linear";h.angle=m?0:90;var d="";for(var k=0;k0){d+=", "}d+=l[0]+"% "+a.jqx.adjustColor(j,l[1])}h.colors=d;var c=document.createElement(this._createElementMarkup("shapetype"));c.appendChild(h);c.id=e;this.canvas.appendChild(c);return f}};a.jqx.HTML5Renderer=function(){};a.jqx.ptrnd=function(d){if(Math.abs(Math.round(d)-d)==0.5){return d}var c=Math.round(d);if(c
              ");this.canvas=c.find("#__jqxCanvasWrap");this.canvas[0].width=c.width();this.canvas[0].height=c.height();this.ctx=this.canvas[0].getContext("2d");this._elements={};this._maxId=0;this._gradientId=0;this._gradients={};this._currentPoint={x:0,y:0};this._lastCmd="";this._pos=0}catch(d){return false}return true},getType:function(){return"HTML5"},getContainer:function(){var c=this.host.find(".chartContainer");return c},getRect:function(){return{x:0,y:0,width:this.canvas[0].width-1,height:this.canvas[0].height-1}},beginGroup:function(){},endGroup:function(){},setClip:function(){},createClipRect:function(c){},addHandler:function(c,e,d){},removeHandler:function(c,e,d){},on:function(c,e,d){this.addHandler(c,e,d)},off:function(c,e,d){this.removeHandler(c,e,d)},clear:function(){this._elements={};this._maxId=0;this._renderers._gradients={};this._gradientId=0},removeElement:function(c){if(undefined==c){return}if(this._elements[c.id]){delete this._elements[c.id]}},shape:function(c,f){var d={type:c,id:this._maxId++};for(var e in f){d[e]=f[e]}this._elements[d.id]=d;return d},attr:function(c,e){for(var d in e){c[d]=e[d]}},removeAttr:function(c,e){for(var d in e){delete c[e[d]]}},rect:function(c,j,d,f,i){if(isNaN(c)){throw'Invalid value for "x"'}if(isNaN(j)){throw'Invalid value for "y"'}if(isNaN(d)){throw'Invalid value for "width"'}if(isNaN(f)){throw'Invalid value for "height"'}var e=this.shape("rect",{x:c,y:j,width:d,height:f});if(i){this.attr(e,i)}return e},path:function(c,e){var d=this.shape("path",e);this.attr(d,{d:c});return d},line:function(d,f,c,e,h){return this.path("M "+d+","+f+" L "+c+","+e,h)},circle:function(c,h,e,f){var d=this.shape("circle",{x:c,y:h,r:e});if(f){this.attr(d,f)}return d},pieSlicePath:function(d,j,i,f,h,e,c){return a.jqx.commonRenderer.pieSlicePath(d,j,i,f,h,e,c)},pieslice:function(l,j,i,f,h,c,k,d){var e=this.path(this.pieSlicePath(l,j,i,f,h,c,k),d);this.attr(e,{x:l,y:j,innerRadius:i,outerRadius:f,angleFrom:h,angleTo:c});return e},_getCSSStyle:function(d){var k=document.styleSheets;try{for(var f=0;f");for(var k=0;k0?4:0);f.parts.push({width:l,height:d,text:e})}return f},_measureText:function(f,e,d,c){return a.jqx.commonRenderer.measureText(f,e,d,c,this)},measureText:function(e,d,c){return this._measureText(e,d,c,false)},text:function(o,n,l,d,p,h,i,e,j,m,f){var q=this.shape("text",{text:o,x:n,y:l,width:d,height:p,angle:h,clip:e,halign:j,valign:m,rotateAround:f});if(i){this.attr(q,i)}q.fontFamily="Arial";q.fontSize="10pt";q.fontWeight="";q.color="#000000";if(i&&i["class"]){var c=this._getCSSStyle(i["class"]);q.fontFamily=c.fontFamily||q.fontFamily;q.fontSize=c.fontSize||q.fontSize;q.fontWeight=c.fontWeight||q.fontWeight;q.color=c.color||q.color}var k=this._measureText(o,0,i,true);this.attr(q,{textPartsInfo:k.textPartsInfo,textWidth:k.width,textHeight:k.height});if(d<=0||isNaN(d)){this.attr(q,{width:k.width})}if(p<=0||isNaN(p)){this.attr(q,{height:k.height})}return q},_toLinearGradient:function(d,j,h){if(this._renderers._gradients[d]){return d}var c=[];for(var f=0;f="0"&&e[c]<="9")||e[c]=="."||e[c]=="e"||(e[c]=="-"&&!f)||(e[c]=="-"&&c>=1&&e[c-1]=="e")){f=true;continue}if(!f&&(e[c]==" "||e[c]==",")){this._pos++;continue}break}var d=parseFloat(e.substring(this._pos,c));if(isNaN(d)){return undefined}this._pos=c;return d},_cmds:"mlcazq",_isRelativeCmd:function(c){return a.jqx.string.contains(this._cmds,c)},_parseCmd:function(c){for(var d=this._pos;d="0"&&c[d]<="9"){this._pos=d;if(this._lastCmd==""){break}else{return this._lastCmd}}}return undefined},_toAbsolutePoint:function(c){return{x:this._currentPoint.x+c.x,y:this._currentPoint.y+c.y}},path:function(E,N){var B=N.d;this._pos=0;this._lastCmd="";var n=undefined;this._currentPoint={x:0,y:0};E.beginPath();var I=0;while(this._pos1){j*=Math.sqrt(l);h*=Math.sqrt(l)}var t=(P==f?-1:1)*Math.sqrt(((Math.pow(j,2)*Math.pow(h,2))-(Math.pow(j,2)*Math.pow(K.y,2))-(Math.pow(h,2)*Math.pow(K.x,2)))/(Math.pow(j,2)*Math.pow(K.y,2)+Math.pow(h,2)*Math.pow(K.x,2)));if(isNaN(t)){t=0}var J={x:t*j*K.y/h,y:t*-h*K.x/j};var D={x:(k.x+q.x)/2+Math.cos(L)*J.x-Math.sin(L)*J.y,y:(k.y+q.y)/2+Math.sin(L)*J.x+Math.cos(L)*J.y};var C=function(i){return Math.sqrt(Math.pow(i[0],2)+Math.pow(i[1],2))};var z=function(m,i){return(m[0]*i[0]+m[1]*i[1])/(C(m)*C(i))};var O=function(m,i){return(m[0]*i[1]=1){M=0}if(f==0&&M>0){M=M-2*Math.PI}if(f==1&&M<0){M=M+2*Math.PI}var z=(j>h)?j:h;var A=(j>h)?1:j/h;var w=(j>h)?h/j:1;E.translate(D.x,D.y);E.rotate(L);E.scale(A,w);E.arc(0,0,z,G,G+M,1-f);E.scale(1/A,1/w);E.rotate(-L);E.translate(-D.x,-D.y);continue}if((H=="Z"||H=="z")&&n!=undefined){E.lineTo(n.x,n.y);this._currentPoint=n;continue}if(H=="C"||H=="c"){var e=this._parsePoint(B);var d=this._parsePoint(B);var c=this._parsePoint(B);E.bezierCurveTo(e.x,e.y,d.x,d.y,c.x,c.y);this._currentPoint=c;continue}if(H=="Q"||H=="q"){var e=this._parsePoint(B);var d=this._parsePoint(B);E.quadraticCurveTo(e.x,e.y,d.x,d.y);this._currentPoint=d;continue}}E.fill();E.stroke();E.closePath()},text:function(A,G){var p=a.jqx.ptrnd(G.x);var o=a.jqx.ptrnd(G.y);var v=a.jqx.ptrnd(G.width);var t=a.jqx.ptrnd(G.height);var s=G.halign;var k=G.valign;var D=G.angle;var c=G.rotateAround;var f=G.textPartsInfo;var e=f.parts;var E=G.clip;if(E==undefined){E=true}A.save();if(!s){s="center"}if(!k){k="center"}if(E){A.rect(p,o,v,t);A.clip()}var H=G.textWidth;var l=G.textHeight;var q=v||0;var C=t||0;A.fillStyle=G.color;A.font=G.fontWeight+" "+G.fontSize+" "+G.fontFamily;if(!D||D==0){o+=l;if(k=="center"||k=="middle"){o+=(C-l)/2}else{if(k=="bottom"){o+=C-l}}if(!v){v=H}if(!t){t=l}var n=0;for(var B=e.length-1;B>=0;B--){var u=e[B];var I=p;var m=e[B].width;var d=e[B].height;if(s=="center"){I+=(q-m)/2}else{if(s=="right"){I+=(q-m)}}A.fillText(u.text,I,o+n);n-=u.height+(B>0?4:0)}A.restore();return}var z=a.jqx.commonRenderer.alignTextInRect(p,o,v,t,H,l,s,k,D,c);p=z.x;o=z.y;var j=D*Math.PI*2/360;A.translate(p,o);A.rotate(j);var n=0;var F=f.width;for(var B=e.length-1;B>=0;B--){var I=0;if(s=="center"){I+=(F-e[B].width)/2}else{if(s=="right"){I+=(F-e[B].width)}}A.fillText(e[B].text,I,n);n-=e[B].height+4}A.restore()}},refresh:function(){this.ctx.clearRect(0,0,this.canvas[0].width,this.canvas[0].height);for(var c in this._elements){var d=this._elements[c];this._renderers.setFillStyle(this,d);this._renderers.setStroke(this,d);this._renderers[this._elements[c].type](this.ctx,d)}}};a.jqx.createRenderer=function(c,e){var d=c;var f=d.renderer=null;if(document.createElementNS&&(d.renderEngine!="HTML5"&&d.renderEngine!="VML")){f=new a.jqx.svgRenderer();if(!f.init(e)){if(d.renderEngine=="SVG"){throw"Your browser does not support SVG"}return null}}if(f==null&&d.renderEngine!="HTML5"){f=new a.jqx.vmlRenderer();if(!f.init(e)){if(d.renderEngine=="VML"){throw"Your browser does not support VML"}return null}d._isVML=true}if(f==null&&(d.renderEngine=="HTML5"||d.renderEngine==undefined)){f=new a.jqx.HTML5Renderer();if(!f.init(e)){throw"Your browser does not support HTML5 Canvas"}}d.renderer=f;return f},a.jqx._widgetToImage=function(q,k,f,o,i,h){var m=q;if(!m){return false}if(f==undefined||f==""){f="image."+k}var n=m.renderEngine;var d=m.enableAnimations;m.enableAnimations=false;m.renderEngine="HTML5";if(m.renderEngine!=n){try{m.refresh()}catch(j){m.renderEngine=n;m.refresh();m.enableAnimations=d;return false}}var c=m.renderer.getContainer().find("canvas")[0];var l=true;if(a.isFunction(h)){l=h(q,c)}var p=true;if(l){p=a.jqx.exportImage(c,k,f,o,i)}if(m.renderEngine!=n){m.renderEngine=n;m.refresh();m.enableAnimations=d}return p};a.jqx.getByPriority=function(c){var e=undefined;for(var d=0;d=j-20){p=j-20}var q=new pdfDataExport(a.jqx.pdfExport.orientation,"pt",a.jqx.pdfExport.paperSize);q.addImage(i,"JPEG",10,10,p,0);q.save(h);return}i=i.replace("data:image/"+o+";base64,","");if(k){a.ajax({dataType:"string",url:s,type:"POST",data:{content:i,fname:h},async:false,success:function(v,e,w){u=true},error:function(v,e,w){u=false}})}else{var d=document.createElement("form");d.method="POST";d.action=s;d.style.display="none";document.body.appendChild(d);var t=document.createElement("input");t.name="fname";t.value=h;t.style.display="none";var c=document.createElement("input");c.name="content";c.value=i;c.style.display="none";d.appendChild(t);d.appendChild(c);d.submit();document.body.removeChild(d);u=true}}}catch(n){u=false}return u}})(jqxBaseFramework);(function(a){jqxPlot=function(){};jqxPlot.prototype={get:function(e,c,d){return d!==undefined?e[c][d]:e[c]},min:function(h,e){var d=NaN;for(var c=0;cc){c=f}}return c},sum:function(h,d){var e=0;for(var c=0;cMath.max(k.min,k.max)){return NaN}var p=NaN;var n=1;if(k.type===undefined||k.type!="logarithmic"){var m=Math.abs(k.max-k.min);if(!m){m=1}n=Math.abs(e-Math.min(k.min,k.max))/m}else{if(k.type==="logarithmic"){var f=k.base;if(isNaN(f)){f=10}var j=Math.min(k.min,k.max);if(j<=0){j=1}var o=Math.max(k.min,k.max);if(o<=0){o=1}var h=a.jqx.log(o,f);o=Math.pow(f,h);var d=a.jqx.log(j,f);j=Math.pow(f,d);var c=a.jqx.log(e,f);n=Math.abs(c-d)/(h-d)}}if(l.type==="logarithmic"){var f=l.base;if(isNaN(f)){f=10}var h=a.jqx.log(l.max,f);var d=a.jqx.log(l.min,f);if(l.flip){n=1-n}var c=Math.min(d,h)+n*Math.abs(h-d);p=Math.pow(f,c)}else{p=Math.min(l.min,l.max)+n*Math.abs(l.max-l.min);if(l.flip){p=Math.max(l.min,l.max)-p+l.min}}return p},axis:function(q,s,m){if(m<=1){return[s,q]}var h=q;var k=s;if(isNaN(m)||m<2){m=2}var c=0;while(Math.round(q)!=q&&Math.round(s)!=s&&c<10){q*=10;s*=10;c++}var n=(s-q)/m;while(c<10&&Math.round(n)!=n){q*=10;s*=10;n*=10;c++}var w=[1,2,5];var j=0;var t=0;while(true){var o=t%w.length;var f=Math.floor(t/w.length);var p=Math.pow(10,f)*w[o];o=(t+1)%w.length;f=Math.floor((t+1)/w.length);var l=Math.pow(10,f)*w[o];if(n>=p&&n=i.x&&h<=i.x+i.width&&k>=i.y&&k<=i.y+i.height){return}d._cancelTooltipTimer();d._hideToolTip(0);d._unselect()});d.addHandler(d.host,"click",function(i){if(d.enabled==false){return}var h=i.pageX||i.clientX||i.screenX;var l=i.pageY||i.clientY||i.screenY;var k=d.host.offset();if(d._isTouchDevice){var j=a.jqx.position(i);h=j.left;l=j.top}h-=k.left;l-=k.top;d._mouseX=h;d._mouseY=l;if(!isNaN(d._lastClickTs)){if((new Date()).valueOf()-d._lastClickTs<100){return}}this._hostClickTimer=setTimeout(function(){if(!d._isTouchDevice){d._cancelTooltipTimer();d._hideToolTip();d._unselect()}if(d._pointMarker&&d._pointMarker.element){var n=d.seriesGroups[d._pointMarker.gidx];var m=n.series[d._pointMarker.sidx];i.stopImmediatePropagation();d._raiseItemEvent("click",n,m,d._pointMarker.iidx)}},100)});var f=d.element.style;if(f){var c=false;if(f.width!=null){c|=f.width.toString().indexOf("%")!=-1}if(f.height!=null){c|=f.height.toString().indexOf("%")!=-1}if(c){a.jqx.utilities.resize(this.host,function(){if(d.timer){clearTimeout(d.timer)}var h=1;d.timer=setTimeout(function(){var i=d.enableAnimations;d.enableAnimations=false;d.refresh();d.enableAnimations=i},h)},false,true)}}},_refreshOnDownloadComlete:function(){var e=this;var f=this.source;if(f instanceof a.jqx.dataAdapter){var h=f._options;if(h==undefined||(h!=undefined&&!h.autoBind)){f.autoSync=false;f.dataBind()}var d=this.element.id;if(f.records.length==0){var c=function(){if(e.ready){e.ready()}e.refresh()};f.unbindDownloadComplete(d);f.bindDownloadComplete(d,c)}else{if(e.ready){e.ready()}}f.unbindBindingUpdate(d);f.bindBindingUpdate(d,function(){if(e._supressBindingRefresh){return}e.refresh()})}},propertyChangedHandler:function(c,d,f,e){if(this.isInitialized==undefined||this.isInitialized==false){return}if(d=="source"){this._refreshOnDownloadComlete()}this.refresh()},_initRenderer:function(c){if(!a.jqx.createRenderer){throw"Please include jqxdraw.js"}return a.jqx.createRenderer(this,c)},_internalRefresh:function(){var c=this;if(a.jqx.isHidden(c.host)){return}c._stopAnimations();if(!c.renderer||(!c._isToggleRefresh&&!c._isUpdate)){c._hideToolTip(0);c._isVML=false;c.host.empty();c._measureDiv=undefined;c._initRenderer(c.host)}var e=c.renderer;if(!e){return}var d=e.getRect();c._render({x:1,y:1,width:d.width,height:d.height});this._raiseEvent("refreshBegin",{instance:this});if(e instanceof a.jqx.HTML5Renderer){e.refresh()}c._isUpdate=false;this._raiseEvent("refreshEnd",{instance:this})},saveAsPNG:function(e,c,d){return this._saveAsImage("png",e,c,d)},saveAsJPEG:function(e,c,d){return this._saveAsImage("jpeg",e,c,d)},saveAsPDF:function(e,c,d){return this._saveAsImage("pdf",e,c,d)},_saveAsImage:function(f,k,c,d){var j=false;for(var e=0;e10){p=1}K.attr(ak,{"stroke-width":p,stroke:H})}else{if(a.jqx.browser.msie&&a.jqx.browser.version<9){K.attr(ak,{"stroke-width":1,stroke:n.backgroundColor||"white"})}}if(a.isFunction(n.drawBefore)){n.drawBefore(K,E)}var X={x:aa.left,y:aa.top,width:E.width-aa.left-aa.right,height:E.height-aa.top-aa.bottom};n._paddedRect=X;var f=n.titlePadding||{left:2,top:2,right:2,bottom:2};var m;if(n.title&&n.title.length>0){var U=n.toThemeProperty("jqx-chart-title-text",null);m=K.measureText(n.title,0,{"class":U});K.text(n.title,X.x+f.left,X.y+f.top,X.width-(f.left+f.right),m.height,0,{"class":U},true,"center","center");X.y+=m.height;X.height-=m.height}if(n.description&&n.description.length>0){var V=n.toThemeProperty("jqx-chart-title-description",null);m=K.measureText(n.description,0,{"class":V});K.text(n.description,X.x+f.left,X.y+f.top,X.width-(f.left+f.right),m.height,0,{"class":V},true,"center","center");X.y+=m.height;X.height-=m.height}if(n.title||n.description){X.y+=(f.bottom+f.top);X.height-=(f.bottom+f.top)}var c={x:X.x,y:X.y,width:X.width,height:X.height};n._plotRect=c;n._buildStats(c);var J=n._isPieOnlySeries();var u=n.seriesGroups;var G;var F={xAxis:{},valueAxis:{}};for(var ab=0;ab0){F.xAxis[ag]|=1}}}else{T=n._renderValueAxis(ab,k,true,c).width;if((F.valueAxis[Q]&1)==1){T=0}else{if(T>0){F.valueAxis[Q]|=1}}}}if(S!="left"&&n.rtl==true){S="right"}if(S!="right"){S="left"}if(t[S+"Count"]>0&&t[S]>0&&T>0){t[S]+=W}q.push({width:T,position:S,xRel:t[S]});t[S]+=T;t[S+"Count"]++}var z=Math.max(1,Math.max(E.width,E.height));var ae={top:0,bottom:0,topCount:0,bottomCount:0};var Y=[];for(ab=0;ab0){F.valueAxis[Q]|=2}}}else{ad=n._renderXAxis(ab,{x:0,y:0,width:z,height:0},true).height;if((F.xAxis[ag]&2)==2){ad=0}else{if(ad>0){F.xAxis[ag]|=2}}}}if(S!="top"){S="bottom"}if(ae[S+"Count"]>0&&ae[S]>0&&ad>0){ae[S]+=W}Y.push({height:ad,position:S,yRel:ae[S]});ae[S]+=ad;ae[S+"Count"]++}n._createAnimationGroup("series");var v=(n.showLegend!=false);var D=!v?{width:0,height:0}:n._renderLegend(n.legendLayout?n._rect:X,true);if(this.legendLayout&&(!isNaN(this.legendLayout.left)||!isNaN(this.legendLayout.top))){D={width:0,height:0}}if(X.heightC.x+C.width){T=C.x+C.width-R}if(P+ad>C.y+C.height){ad=C.y+C.height-P}n._renderLegend({x:R,y:P,width:T,height:ad})}n._hasHorizontalLines=false;if(!J){for(ab=0;abq){q=k.height}if(k.width>w){w=k.width}if(v){if(N!=0){F+=q}if(F>I.height){F=0;G+=w+2*O+h;w=k.width;E.width=G+w}}else{if(G!=0){G+=O}if(G+2*h+k.width>I.width&&k.widthC.width){K=true;var s=C.width;var R=A;var V=R.split(/\s+/).reverse();var n=[];var u="";var p=[];while(undefined!=(word=V.pop())){n.push(word);u=n.join(" ");var B=l.renderer.measureText(u,0,{"class":J});if(B.width>s&&p.length>0){n.pop();n=[word];u=n.join(" ")}p.push({text:u})}k.width=0;var c=0;for(var H=0;Hs&&p.length>0){n.pop();e+=B.height;n=[word];u=n.join(" ")}p.push({text:u,dy:e})}for(var H=0;He){o=h._elementRenderInfo[e].xAxis}var q=[];var K;if(Q.labels.formatFunction){K=Q.labels.formatFunction}var w;if(Q.labels.formatSettings){w=a.extend({},Q.labels.formatSettings)}if(s.type=="date"){if(s.dateFormat&&!K){if(w){w.dateFormat=w.dateFormat||s.dateFormat}else{w={dateFormat:s.dateFormat}}}else{if(!K&&(!w||(w&&!w.dateFormat))){K=this._getDefaultDTFormatFn(s.baseUnit||"day")}}}for(var P=0;P=U.filterRange.min&&V<=U.filterRange.max){z=U.useIndeces?(U.min+V).toString():(N==undefined?"":N.toString())}}var c={key:N,text:z,targetX:J,x:J};if(o&&o.itemOffsets[N]){c.x=o.itemOffsets[N].x;c.y=o.itemOffsets[N].y}q.push(c)}var E=h._getAnimProps(e);var v=E.enabled&&q.length<500?E.duration:0;if(h.enableAxisTextAnimation==false){v=0}var B={items:q,renderData:k};var f=h._renderAxis(Y,F,Q,{x:A.x,y:A.y,width:A.width,height:A.height},d,H,false,true,B,S,v);if(Y){f.width+=G}else{f.height+=G}return f},_animateAxisText:function(h,k){var d=h.items;var e=h.textSettings;for(var f=0;fo){var n=p;p=o;o=n}var w=a.jqx._rnd(Math.abs(p-o)/(Math.PI*2),0.001,true);var t=Math.PI*2*h*w;var i=this._calcGroupOffsets(f,c).xoffsets;if(!i){return}var l=!(Math.abs(Math.abs(o-p)-Math.PI*2)>0.00001);if(k.spider){axisStats=this._getXAxisStats(f,this._getXAxis(f),t);var u=axisStats.interval;if(isNaN(u)||u==0){u=1}var e=(axisStats.max-axisStats.min)/u+(l?1:0);e=Math.round(e);if(e>2){var d=Math.cos(Math.abs(o-p)/2/e);d=a.jqx._rnd(d,0.01);if(d==0){d=1}var v=h/d;if(v>h&&j){h=v}}}h=a.jqx._ptrnd(h);return{x:s,y:q,r:h,adjR:this._get([v,h]),itemWidth:i.itemWidth,rangeLength:i.rangeLength,valuesOnTicks:j,startAngle:p,endAngle:o,isClosedCircle:l,axisSize:t}},_toPolarCoord:function(l,h,j,f){var d=Math.abs(l.startAngle-l.endAngle)/(Math.PI*2);var c=(j-h.x)*2*Math.PI*d/Math.max(1,h.width)+l.startAngle;var e=((h.height+h.y)-f)*l.r/Math.max(1,h.height);var k=l.x+e*Math.cos(c);var i=l.y+e*Math.sin(c);return{x:a.jqx._ptrnd(k),y:a.jqx._ptrnd(i)}},_renderSpiderAxis:function(D,m){var at=this;var k=at._getXAxis(D);var aE=this._getAxisSettings(k);if(!k||!aE.visible){return}var aa=at.seriesGroups[D];var V=at._getPolarAxisCoords(D,m);if(!V){return}var P=a.jqx._ptrnd(V.x);var O=a.jqx._ptrnd(V.y);var w=V.adjR;var ab=V.startAngle;var Z=V.endAngle;if(w<1){return}var az=a.jqx._rnd(Math.abs(ab-Z)/(Math.PI*2),0.001,true);var l=Math.PI*2*w*az;var d=V.isClosedCircle;var B=this._renderData[D].xoffsets;if(!B.rangeLength){return}var W=B.axisStats.interval;if(isNaN(W)||W<1){W=1}var aw=aa.orientation=="horizontal";var ad=(aw&&k.position=="right")||(!aw&&k.position=="top");while(at._renderData.lengthD){v=at._elementRenderInfo[D].xAxis}var av=[];var aj=this._getDataLen(D);for(var U=0;U=aj){continue}L=at._getDataValue(aB,k.dataField);if(L==undefined){L=""}}var au=at._formatValue(L,C.formatSettings,C.formatFunction,D,undefined,aB);if(au==undefined||au.toString()==""){au=ai.useIndeces?(ai.min+U).toString():(L==undefined?"":L.toString())}var e={key:L,text:au,targetX:J,x:J};if(v&&v.itemOffsets[L]){e.x=v.itemOffsets[L].x;e.y=v.itemOffsets[L].y}av.push(e)}var aD={items:av,renderData:ax};var n={stroke:f.color,fill:"none","stroke-width":f.width,"stroke-dasharray":f.dashStyle||""};if(!aa.spider){if(az==1){ah.circle(P,O,w,n)}else{var I=-ab/Math.PI*180;var aI=-Z/Math.PI*180;this.renderer.pieslice(P,O,0,w,Math.min(I,aI),Math.max(I,aI),undefined,n)}}var Q=av.length;var o=2*Math.PI/(Q);var ap=ab;var h,G;if(f.visible&&aC){if(!K&&!d){f.offsets.unshift({offset:-z.right})}for(var U=0;U0.01){continue}var t=a.jqx._ptrnd(P+w*Math.cos(F));var s=a.jqx._ptrnd(O+w*Math.sin(F));ah.line(P,O,t,s,n)}}if(X.visible&&aC){var T=5;var q={stroke:X.color,fill:"none","stroke-width":X.width,"stroke-dasharray":X.dashStyle||""};if(!K&&!d){X.offsets.unshift({offset:-z.right})}for(var U=0;U0.01){continue}var af={x:P+w*Math.cos(F),y:O+w*Math.sin(F)};var ae={x:P+(w+T)*Math.cos(F),y:O+(w+T)*Math.sin(F)};ah.line(a.jqx._ptrnd(af.x),a.jqx._ptrnd(af.y),a.jqx._ptrnd(ae.x),a.jqx._ptrnd(ae.y),q)}}var ar=[];if(aa.spider){var A=[];if(k.type=="date"){A=this._generateDTOffsets(aG,u,l,z,W,W,k.baseUnit,true,0,false,am)}else{A=this._generateOffsets(aG,u,l,z,W,W,true,0,false,am)}if(!K&&!d){A.unshift({offset:-z.right})}for(var U=0;U0.01){continue}ar.push(F)}ax.offsetAngles=ar}var ac=at._renderSpiderValueAxis(D,m,(K?V.adjR:V.r),ar);if(!ac){ac=[]}if(aa.spider){if(!K){for(var U=0;U0?t.height+3*U:2*U;P+=q-(Y?q:q/4)}else{P+=Y?q:q/4}P+=S.top}else{Q+=S.left+U+(t.width>0?t.width+U:0)+(G?C.width-t.width:0);P+=A}var W=0;var N=0;var u=F.items;n.itemOffsets={};if(this._isToggleRefresh||!this._isUpdate){e=0}var m=false;var l=0;for(var V=0;VN){N=j.width}if(j.height>W){W=j.height}l+=K?W:N;if(!X){if((K&&O>C.height+2)||(!K&&O>C.width+2)){break}var M=K?Q+(G?(t.width==0?q:q-U):0):Q+O;var L=K?P+O:P;n.itemOffsets[u[V].key]={x:M,y:L};if(!m){if(!isNaN(u[V].x)||!isNaN(u[V].y)&&e){m=true}}u[V].targetX=M;u[V].targetY=L;u[V].width=!K?c:C.width-S.left-S.right-2*U-q-((t.width>0)?t.width+U:0);u[V].height=K?c:C.height-S.top-S.bottom-2*U-q-((t.height>0)?t.height+U:0);u[V].visible=true}}n.avgWidth=u.length==0?0:l/u.length;if(!X){var v={items:u,textSettings:p};if(isNaN(e)||!m){e=0}this._animateAxisText(v,e==0?1:0);if(e!=0){var k=this;this._enqueueAnimation("series",undefined,undefined,e,function(i,h,w){k._animateAxisText(h,w)},v)}}J.width+=2*U+q+t.width+N+(K&&t.width>0?U:0);J.height+=2*U+q+t.height+W+(!K&&t.height>0?U:0);if(!K){J.height+=S.top+S.bottom}else{J.width+=S.left+S.right}var E={};if(!X&&T.line.visible){var R={stroke:T.line.color,"stroke-width":T.line.width,"stroke-dasharray":T.line.dashStyle||""};if(K){var M=C.x+C.width+(G?S.left:-S.right);M=a.jqx._ptrnd(M);this.renderer.line(M,C.y,M,C.y+C.height,R)}else{var L=a.jqx._ptrnd(C.y+(G?C.height-S.bottom:S.top));this.renderer.line(a.jqx._ptrnd(C.x),L,a.jqx._ptrnd(C.x+C.width+1),L,R)}}J.width=a.jqx._rup(J.width);J.height=a.jqx._rup(J.height);return J},_drawPlotAreaLines:function(k,A,h){var E=this.seriesGroups[k];var d=E.orientation!="horizontal";if(!this._renderData||this._renderData.length<=k){return}var J=A?"valueAxis":"xAxis";var w=this._renderData[k][J];if(!w){return}var n=this._renderData.axisDrawState;if(!n){n=this._renderData.axisDrawState={}}var B="",j;if(A){B="valueAxis_"+((E.valueAxis)?k:"")+(d?"swap":"");j=this._getValueAxis(k)}else{B="xAxis_"+((E.xAxis||E.categoryAxis)?k:"")+(d?"swap":"");j=this._getXAxis(k)}if(n[B]){n=n[B]}else{n=n[B]={}}if(!A){d=!d}var H=w.settings;if(!H){return}if(H.customDraw){return}var G=H.gridLines,q=H.tickMarks,v=H.padding;var f=w.rect;var l=this._plotRect;if(!G||!q){return}var p=0.5;var e=[];var c={stroke:G.color,"stroke-width":G.width,"stroke-dasharray":G.dashStyle||""};var D=A?f.y+f.height:f.x;var o=G.offsets;if(A&&!j.flip){o=a.extend([],o);o=o.reverse()}if(o&&o.length>0){for(var C=0;Cf.x+f.width+p){break}}if(h.gridLines&&G.visible!=false&&n.gridLines!=true){if(d){this.renderer.line(a.jqx._ptrnd(l.x),F,a.jqx._ptrnd(l.x+l.width),F,c)}else{this.renderer.line(F,a.jqx._ptrnd(l.y),F,a.jqx._ptrnd(l.y+l.height),c)}}e[F]=true;if(h.alternatingBackground&&(G.alternatingBackgroundColor||G.alternatingBackgroundColor2)&&n.alternatingBackground!=true){var m=((C%2)==0)?G.alternatingBackgroundColor2:G.alternatingBackgroundColor;if(m){var I;if(d){I=this.renderer.rect(a.jqx._ptrnd(l.x),D,a.jqx._ptrnd(l.width-1),F-D,c)}else{I=this.renderer.rect(D,a.jqx._ptrnd(l.y),F-D,a.jqx._ptrnd(l.height),c)}this.renderer.attr(I,{"stroke-width":0,fill:m,opacity:G.alternatingBackgroundOpacity||1})}D=F}}}var c={stroke:q.color,"stroke-width":q.width,"stroke-dasharray":q.dashStyle||""};if(h.tickMarks&&q.visible&&n.tickMarks!=true){var u=q.size;var o=q.offsets;for(var C=0;Cf.y+f.height+p){break}}else{if(F>f.x+f.width+p){break}}var z=!w.isMirror?-u:u;if(d){var t=f.x+f.width+(j.position=="right"?v.left:-v.right);if(!A){t=f.x+(w.isMirror?v.left:-v.right+f.width)}this.renderer.line(t,F,t+z,F,c)}else{var s=f.y+(w.isMirror?f.height:0);s+=w.isMirror?-v.bottom:v.top;s=a.jqx._ptrnd(s);this.renderer.line(F,s,F,s-z,c)}}}n.tickMarks=n.tickMarks||h.tickMarks;n.gridLines=n.gridLines||h.gridLines;n.alternatingBackground=n.alternatingBackground||h.alternatingBackground},_calcValueAxisItems:function(k,e,m){var o=this._stats.seriesGroups[k];if(!o||!o.isValid){return false}var A=this.seriesGroups[k];var c=A.orientation=="horizontal";var h=this._getValueAxis(k);var n=h.valuesOnTicks!=false;var f=h.dataField;var p=o.intervals;var u=e/p;var w=o.min;var t=o.mu;var d=h.logarithmicScale==true;var l=h.logarithmicScaleBase||10;var j=A.type.indexOf("stacked")!=-1&&A.type.indexOf("100")!=-1;if(d){t=!isNaN(h.unitInterval)?h.unitInterval:1}if(!n){p=Math.max(p-1,1)}while(this._renderData.length"9"){l=e.length-(f+1);if(l>=0){return Math.min(l,d)}}}if(l>0){m*=Math.pow(10,l)}while(Math.round(m)!=m&&lh){n=this._elementRenderInfo[h].valueAxis}for(var N=0;N1){if(isNaN(u)){u=v?0:d/2}for(var s=0;s=w-2){h[s].offset=w}}}if(z>e){var q=[];var l=Math.round(z/e);for(var s=0;sv){return h}if(s==v){if(A){h.push({offset:c?C/2:p.left,value:s})}else{if(c){h.push({offset:C/2,value:s})}}return h}var l=C-p.left-p.right;var B=s;var m=p.left;var f=m;d=Math.max(d,1);var o=d;var e=Math.min(1,d);if(d>1&&q!="millisecond"){d=1}while(a.jqx._ptrnd(f)<=a.jqx._ptrnd(p.left+l+(c?0:p.right))){h.push({offset:f,value:B});var E=new Date(B.valueOf());if(q=="millisecond"){E.setMilliseconds(B.getMilliseconds()+d)}else{if(q=="second"){E.setSeconds(B.getSeconds()+d)}else{if(q=="minute"){E.setMinutes(B.getMinutes()+d)}else{if(q=="hour"){var n=E.valueOf();E.setHours(B.getHours()+d);if(n==E.valueOf()){E.setHours(B.getHours()+d+1)}}else{if(q=="day"){E.setDate(B.getDate()+d)}else{if(q=="month"){E.setMonth(B.getMonth()+d)}else{if(q=="year"){E.setFullYear(B.getFullYear()+d)}}}}}}}B=E;f=m+(B.valueOf()-s.valueOf())*e/(v.valueOf()-s.valueOf())*l}if(j){for(var u=0;u1&&q!="millisecond"){var t=[];for(var u=0;u1){var t=[];t.push({offset:0,value:undefined});for(var u=1;u1){t.push({offset:t[w-1].offset+(t[w-1].offset-t[w-2].offset)})}else{t.push({offset:C,value:undefined})}h=t}if(D>d){var t=[];var k=Math.round(D/o);for(var u=0;ut.max.valueOf())){continue}}var ab=q.minValue;var H=q.maxValue;if(q.baselineValue){if(isNaN(ab)){ab=u}else{ab=Math.min(u,ab)}if(isNaN(H)){H=u}else{H=Math.max(u,H)}}var z=0,B=0;for(var m=0;mH)&&((isNaN(q.maxValue))?true:U<=q.maxValue)){H=U}if((isNaN(ab)||D=q.minValue)){ab=D}if(!isNaN(K)&&J&&!V){if(K>u){z+=K}else{if(KR||isNaN(R)){R=H}if(abe||isNaN(e)){e=z}if(Be.gmin){h.gmin=e.gmin}if(isNaN(h.gmax)||h.gmaxe.logBase){h.logBase=e.logBase}if(isNaN(h.minPercent)||h.minPercent>e.minPercent){h.minPercent=e.minPercent}}for(var f=0;fw){u/=l;c--;k++}d=Math.pow(l,c)}else{if(n&&!f){h=Math.max(h,D)}t=a.jqx._rnd(a.jqx.log(h,l),1,true);h=Math.pow(l,t);c=a.jqx._rnd(a.jqx.log(d,l),1,false);d=Math.pow(l,c)}v=l}if(dD){D=h}var A=e?d:a.jqx._rnd(n&&!f?E:d,v,false);var s=e?h:a.jqx._rnd(n&&!f?D:h,v,true);if(j&&s>100){s=100}if(j&&!e){s=(s>0)?100:0;A=(A<0)?-100:0;v=B.unitInterval;if(isNaN(v)||v<=0||v>=100){v=10}if((100%v)!=0){for(;v>=1;v--){if((100%v)==0){break}}}}if(isNaN(s)||isNaN(A)||isNaN(v)){return{}}if(isNaN(k)){k=parseInt(((s-A)/(v==0?1:v)).toFixed())}if(e&&!j){k=t-c;m=Math.pow(l,k)}if(k<1){return{}}var o={min:A,max:s,logarithmic:e,logBase:l,base:e?A:C,minPow:c,maxPow:t,mu:v,maxRange:m,intervals:k,hasStackValueReversal:q};return o},_getDataLen:function(d){var c=this.source;if(d!=undefined&&d!=-1&&this.seriesGroups[d].source){c=this.seriesGroups[d].source}if(c instanceof a.jqx.dataAdapter){c=c.records}if(c){return c.length}return 0},_getDataValue:function(c,f,e){var d=this.source;if(e!=undefined&&e!=-1){d=this.seriesGroups[e].source||d}if(d instanceof a.jqx.dataAdapter){d=d.records}if(!d||c<0||c>d.length-1){return undefined}if(a.isFunction(f)){return f(c,d)}return(f&&f!="")?d[c][f]:d[c]},_getDataValueAsNumber:function(c,f,d){var e=this._getDataValue(c,f,d);if(this._isDate(e)){return e.valueOf()}if(typeof(e)!="number"){e=parseFloat(e)}if(typeof(e)!="number"){e=undefined}return e},_isPieGroup:function(c){var d=this.seriesGroups[c];if(!d||!d.type){return false}return d.type.indexOf("pie")!=-1||d.type.indexOf("donut")!=-1},_renderPieSeries:function(f,d){var h=this._getDataLen(f);var j=this.seriesGroups[f];var o=this._calcGroupOffsets(f,d).offsets;for(var t=0;t360){w=0}var C=this._get([m.maxAngle,m.endAngle]);if(isNaN(C)||C<0||C>360){C=360}var q={rect:d,minAngle:w,maxAngle:C,groupIndex:f,serieIndex:t,settings:A,items:[]};for(var z=0;zp.groupIndex&&this._elementRenderInfo[p.groupIndex].series&&this._elementRenderInfo[p.groupIndex].series.length>p.serieIndex){k=this._elementRenderInfo[p.groupIndex].series[p.serieIndex]}var h=360*d;var w=this.seriesGroups[p.groupIndex];var o=this._getLabelsSettings(p.groupIndex,p.serieIndex,NaN);var n=o.visible;var c=[];for(var v=0;vB){q=B}B=f;if(v==c.length-1&&f!=c[0].from){f=p.maxAngle+c[0].from}}var u=this.renderer.pieSlicePath(A.x,A.y,A.innerRadius,A.outerRadius,q,f,A.centerOffset);this.renderer.attr(t.element,{d:u});var j=this._getColors(p.groupIndex,p.serieIndex,A.itemIndex,"radialGradient",A.outerRadius);var z=p.settings;t.colors=j;t.settings=z;this.renderer.attr(t.element,{fill:j.fillColor,stroke:j.lineColor,"stroke-width":z.stroke,"fill-opacity":z.opacity,"stroke-opacity":z.opacity,"stroke-dasharray":"none"||z.dashStyle});var l=w.series[p.serieIndex];if(n){this._showPieLabel(p.groupIndex,p.serieIndex,A.itemIndex,o)}if(d==1){this._installHandlers(t.element,"pieslice",p.groupIndex,p.serieIndex,A.itemIndex)}}},_showPieLabel:function(f,h,E,q,i){var l=this._renderData[f].offsets[h][E];if(l.elementInfo.labelElement){this.renderer.removeElement(l.elementInfo.labelElement)}if(!q){q=this._getLabelsSettings(f,h,NaN)}if(!q.visible){return}var F=l.fromAngle,H=l.toAngle;var m=Math.abs(F-H);var t=m>180?1:0;if(m>360){F=0;H=360}var u=F*Math.PI*2/360;var j=H*Math.PI*2/360;var k=m/2+F;k=k%360;var G=k*Math.PI*2/360;var z;if(q.autoRotate==true){z=k<90||k>270?360-k:180-k}var w=q.linesEnabled;var p=this._showLabel(f,h,E,{x:0,y:0,width:0,height:0},"center","center",true,false,false,z);var e=q.radius||l.outerRadius+Math.max(p.width,p.height);if(this._isPercent(e)){e=parseFloat(e)/100*Math.min(this._plotRect.width,this._plotRect.height)/2}e+=l.centerOffset;if(isNaN(i)){i=0}e+=i;var B=this.seriesGroups[f];var o=B.series[h];var D=a.jqx.getNum([o.offsetX,B.offsetX,this._plotRect.width/2]);var C=a.jqx.getNum([o.offsetY,B.offsetY,this._plotRect.height/2]);var d=this._plotRect.x+D;var c=this._plotRect.y+C;var A=this._adjustTextBoxPosition(d,c,p,e,k,l.outerRadius>e,q.linesAngles!=false,q.autoRotate==true);var n={};l.elementInfo.labelElement=this._showLabel(f,h,E,{x:A.x,y:A.y,width:p.width,height:p.height},"left","top",false,false,false,z,n);if(e>l.outerRadius+5&&w!=false){var v={lineColor:l.elementInfo.colors.lineColor,stroke:l.elementInfo.settings.stroke,opacity:l.elementInfo.settings.opacity,dashStyle:l.elementInfo.settings.dashStyle};l.elementInfo.labelArrowPath=this._updateLebelArrowPath(l.elementInfo.labelArrowPath,d,c,e,l.outerRadius+i,G,q.linesAngles!=false,v,n)}},_updateLebelArrowPath:function(e,l,h,k,n,j,q,f,u){var d=a.jqx._ptrnd(l+(k-0)*Math.cos(j));var p=a.jqx._ptrnd(h-(k-0)*Math.sin(j));var c=a.jqx._ptrnd(l+(n+2)*Math.cos(j));var o=a.jqx._ptrnd(h-(n+2)*Math.sin(j));var s=[];s.push({x:u.x+u.width/2,y:u.y});s.push({x:u.x+u.width/2,y:u.y+u.height});s.push({x:u.x,y:u.y+u.height/2});s.push({x:u.x+u.width,y:u.y+u.height/2});if(!q){s.push({x:u.x,y:u.y});s.push({x:u.x+u.width,y:u.y});s.push({x:u.x+u.width,y:u.y+u.height});s.push({x:u.x,y:u.y+u.height})}s=s.sort(function(v,i){return a.jqx._ptdist(v.x,v.y,l,h)-a.jqx._ptdist(i.x,i.y,l,h)});s=s.sort(function(v,i){return(Math.abs(v.x-l)+Math.abs(v.y-h))-(Math.abs(i.x-l)+Math.abs(i.y-h))});for(var m=0;m=v&&z=Math.PI-v&&z=Math.PI+v&&z<2*Math.PI-v){n=q/2*Math.sin(d)}else{if(z>=2*Math.PI-v&&z<2*Math.PI){n=m/2*Math.cos(d)}}}}}i+=Math.abs(n)+3;var l=a.jqx._ptrnd(f+i*Math.cos(d));var k=a.jqx._ptrnd(e-i*Math.sin(d));l-=o.width/2;k-=o.height/2;return{x:l,y:k}}if(!c){if(!j){if(u>=0&&u<45||u>=315&&u<360){k-=o.height/2}else{if(u>=45&&u<135){k-=o.height;l-=o.width/2}else{if(u>=135&&u<225){k-=o.height/2;l-=o.width}else{if(u>=225&&u<315){l-=o.width/2}}}}}else{if(u>=90&&u<270){k-=o.height/2;l-=o.width}else{k-=o.height/2}}}else{l-=o.width/2;k-=o.height/2}return{x:l,y:k}},_isColumnType:function(c){return(c.indexOf("column")!=-1||c.indexOf("waterfall")!=-1)},_getColumnGroupsCount:function(d){var f=0;d=d||"vertical";var h=this.seriesGroups;for(var e=0;eT){var L=m;m=T;T=L}if(w.spider){var J=u.xAxis.offsetAngles;var K="";var P=[s,t];var E=J;if(e.isClosedCircle){E=a.extend([],J);E.push(E[0])}for(var O in P){for(var Q=0;Q1){R=1}this.renderer.attr(M,{fill:Z,"fill-opacity":R,stroke:U,"stroke-opacity":R,"stroke-width":z,"stroke-dasharray":d.dashStyle})}},_getColumnGroupWidth:function(n,i,p){var f=this.seriesGroups[n];var m=f.type.indexOf("stacked")!=-1;var e=m?1:f.series.length;var l=this._getColumnGroupsCount(f.orientation);if(isNaN(l)||0==l){l=1}var o=i.rangeLength>=1?i.itemWidth:p*0.9;var d=f.columnsMinWidth;if(isNaN(d)){d=1}if(!isNaN(f.columnsMaxWidth)){d=Math.min(f.columnsMaxWidth,d)}if(d>o&&i.length>0){o=Math.max(o,p*0.9/i.length)}var j=d;if(!m){var h=f.seriesGapPercent;if(isNaN(h)||h<0){h=10}h/=100;var c=d;c*=(1+h);j+=f.series.length*c}var k=Math.max(o/l,j);return{requiredWidth:j,availableWidth:o,targetWidth:k}},_getColumnSerieWidthAndOffset:function(e,f){var o=this.seriesGroups[e];var z=o.series[f];var d=o.orientation=="horizontal";var c=this._plotRect;if(d){c={x:c.y,y:c.x,width:c.height,height:c.width}}var A=this._calcGroupOffsets(e,c);if(!A||A.xoffsets.length==0){return}var n=true;var B=this._getColumnGroupsCount(o.orientation);if(o.type=="candlestick"||o.type=="ohlc"){B=1}var u=this._getColumnGroupIndex(e);var v=this._getColumnGroupWidth(e,A.xoffsets,d?c.height:c.width);var j=0;var h=v.targetWidth;if(this.columnSeriesOverlap==true||(Math.round(h)>Math.round(v.availableWidth/B))){B=1;u=0}if(n){j-=(h*B)/2}j+=h*u;var G=o.columnsGapPercent;if(G<=0){G=0}if(isNaN(G)||G>=100){G=25}G/=100;var m=h*G;if(m+v.requiredWidth>v.targetWidth){m=Math.max(0,v.targetWidth-v.requiredWidth)}if(Math.round(h)>Math.round(v.availableWidth)){m=0}h-=m;j+=m/2;var C=o.seriesGapPercent;if(isNaN(C)||C<0){C=10}var p=o.type.indexOf("stacked")!=-1;var w=h;if(!p){w/=o.series.length}var D=this._get([o.seriesGap,(h*C/100)/(o.series.length-1)]);if(o.polar==true||o.spider==true||p||o.series.length<=1){D=0}var q=D*(o.series.length-1);if(o.series.length>1&&q>h-o.series.length*1){q=h-o.series.length*1;D=q/Math.max(1,(o.series.length-1))}var i=w-(q/o.series.length);var F=0;var k=o.columnsMaxWidth;if(!isNaN(k)){if(i>k){F=i-k;i=k}}var E=F/2;var l=0;if(!p){var H=(h-(i*o.series.length)-q)/2;var t=Math.max(0,f);l=H+i*f+t*D}else{l=F/2}return{width:i,offset:j+l}},_renderColumnSeries:function(h,d){var l=this.seriesGroups[h];if(!l.series||l.series.length==0){return}var k=this._getDataLen(h);var f=l.orientation=="horizontal";var D=d;if(f){D={x:d.y,y:d.x,width:d.height,height:d.width}}var t=this._calcGroupOffsets(h,D);if(!t||t.xoffsets.length==0){return}var o;if(l.polar==true||l.spider==true){o=this._getPolarAxisCoords(h,D)}var v={groupIndex:h,rect:d,vertical:!f,seriesCtx:[],renderData:t,polarAxisCoords:o};v.columnGroupWidth=this._getColumnGroupWidth(h,t.xoffsets,f?D.height:D.width);var j=this._getGroupGradientType(h);for(var w=0;wf){e=f}if(isNaN(e)){return NaN}return e},_getColumnVOffsets:function(p,l,f,G,z,d){var t=this.seriesGroups[l];var K=this._getPercent(t.columnsTopWidthPercent,100,0,100);var A=this._getPercent(t.columnsBottomWidthPercent,100,0,100);if(K==0&&A==0){A=100}var M=this._getPercent(t.columnsNeckHeightPercent,NaN,0,100)/100;var H=this._getPercent(t.columnsNeckWidthPercent,100,0,100)/100;var v=[];var L=NaN;for(var u=0;ul&&c[l].series.length>m){var I=p.xoffsets.xvalues[G];j=c[l].series[m][I];if(j&&!isNaN(j.from)&&!isNaN(j.to)){q=j.from+(q-j.from)*d;S=j.to+(S-j.to)*d;C=j.xoffset+(C-j.xoffset)*d}}if(!j){S=q+(S-q)*(z?1:d)}if(isNaN(q)){q=isNaN(L)?p.baseOffset:L}if(!isNaN(S)&&z){L=S}else{L=q}if(isNaN(S)){S=q}var F={from:q,to:S,xOffset:C};if(K!=100||A!=100){F.funnel=true;F.toWidthPercent=K;F.fromWidthPercent=A}v.push(F)}if(z&&v.length>1&&!(this._elementRenderInfo&&this._elementRenderInfo.length>l)){var n=0,o=0,N=-Infinity,B=Infinity,O=Infinity,E=-Infinity;for(var P=0;P=v[P].from){o+=v[P].to-v[P].from;O=Math.min(O,v[P].from);E=Math.max(E,v[P].to)}else{n+=v[P].from-v[P].to;N=Math.max(N,v[P].from);B=Math.min(B,v[P].to)}}}var R=n;var w=o;n*=d;o*=d;var e=0,h=0;for(var P=0;P=v[P].from){var D=v[P].to-v[P].from;if(D+h>o){D=Math.max(0,o-h);v[P].to=v[P].from+D}if(K!=100||A!=100){v[P].funnel=true;if(!isNaN(M)&&w*M>=h){v[P].fromWidthPercent=H*100}else{v[P].fromWidthPercent=(Math.abs(v[P].from-O)/w)*(K-A)+A}if(!isNaN(M)&&w*M>=(0+(h+D))){v[P].toWidthPercent=H*100}else{v[P].toWidthPercent=(Math.abs(v[P].to-O)/w)*(K-A)+A}}h+=D}else{var D=v[P].from-v[P].to;if(D+e>n){D=Math.max(0,n-e);v[P].to=v[P].from-D}if(K!=100||A!=100){v[P].funnel=true;if(!isNaN(M)&&R*M>=e){v[P].fromWidthPercent=H*100}else{v[P].fromWidthPercent=(Math.abs(v[P].from-N)/R)*(K-A)+A}if(!isNaN(M)&&R*M>=(0+(e+D))){v[P].toWidthPercent=H*100}else{v[P].toWidthPercent=(Math.abs(v[P].to-N)/R)*(K-A)+A}}e+=D}}}return v},_columnAsPieSlice:function(e,m,o,q){var f=this._toPolarCoord(o,m,q.x,q.y);var h=this._toPolarCoord(o,m,q.x,q.y+q.height);var n=a.jqx._ptdist(o.x,o.y,h.x,h.y);var k=a.jqx._ptdist(o.x,o.y,f.x,f.y);var d=m.width;var p=Math.abs(o.startAngle-o.endAngle)*180/Math.PI;var c=-((q.x-m.x)*p)/d;var j=-((q.x+q.width-m.x)*p)/d;var l=o.startAngle;l=360*l/(Math.PI*2);c-=l;j-=l;if(e){if(e.element!=undefined){var i=this.renderer.pieSlicePath(o.x,o.y,n,k,j,c,0);i+=" Z";this.renderer.attr(e.element,{d:i})}else{e.element=this.renderer.pieslice(o.x,o.y,n,k,j,c,0)}}return{fromAngle:j,toAngle:c,innerRadius:n,outerRadius:k}},_setRenderInfo:function(f,c,e,d){this._renderData[f].offsets[c][e].elementInfo=d},_getRenderInfo:function(e,c,d){return this._renderData[e].offsets[c][d].elementInfo||{}},_animColumns:function(al,e){var s=this;var t=al.groupIndex;var E=this.seriesGroups[t];var A=al.renderData;var ad=E.type.indexOf("waterfall")!=-1;var J=this._getXAxis(t);var L=E.type.indexOf("stacked")!=-1;var f=al.polarAxisCoords;var D=this._getGroupGradientType(t);var v=al.columnGroupWidth.targetWidth;var C=-1;for(var ae=0;aeak.xAdjust){am=ak.xAdjust}if(isNaN(w)||w=1){G=0.25}var h=G*u;var ac=al.renderData.xoffsets;var V=-1;var R={};var U=E.skipOverlappingPoints==true;for(var ag=ac.first;ag<=ac.last;ag++){var Y=ac.data[ag];if(isNaN(Y)){continue}if(V!=-1&&Math.abs(Y-V)<(u-1+h)&&U){continue}else{V=Y}var I=this._getColumnVOffsets(A,t,al.seriesCtx,ag,L,e);var O=false;if(ad){for(var F=0;F1||W<0){W=1}}var aa=E.columnsBottomWidthPercent/100;if(isNaN(aa)){aa=1}else{if(aa>1||aa<0){aa=1}}var q=al.vertical?T.width:T.height;aj.x=aj.x-q/2+q/2*W;if(O){var c=q*W/2;ai.x=ai.x+q/2-(J.flip?-c:c)}else{var c=q*aa/2;ai.x=ai.x+q/2-(J.flip?-c:c)}if(!al.vertical){this._swapXY([aj]);this._swapXY([ai])}this.renderer.line(aj.x,aj.y,ai.x,ai.y,{stroke:P.color,"stroke-width":ah.stroke,"stroke-opacity":ah.opacity,"fill-opacity":ah.opacity,"stroke-dasharray":ah.dashStyle})}}}if(e==1&&p!=0){R[L?-1:F]={y:an,x:(al.vertical?T.x+T.width:T.y+T.height),color:Z.lineColor}}}if(f){var X=this._toPolarCoord(f,al.rect,T.x+T.width/2,T.y);var q=this._showLabel(t,o,ag,T,undefined,undefined,true);var M=K.outerRadius+10;labelOffset=this._adjustTextBoxPosition(f.x,f.y,q,M,(K.fromAngle+K.toAngle)/2,true,false,false);S=this._showLabel(t,o,ag,{x:labelOffset.x,y:labelOffset.y},undefined,undefined,false,false,false)}else{S=this._showLabel(t,o,ag,T,undefined,undefined,false,false,m)}d={element:z,labelElement:S};s._setRenderInfo(t,o,ag,d);if(e==1){this._installHandlers(z,"column",t,o,ag)}}}},_getTrapezoidPath:function(j,k,h){var n="";var c=j.fromWidthPercent/100;var d=j.toWidthPercent/100;if(!k){var f=j.width;j.width=j.height;j.height=f;f=j.x;j.x=j.y;j.y=f}var l=j.x+j.width/2;var m=[{x:l-j.width*(!h?c:d)/2,y:j.y+j.height},{x:l-j.width*(!h?d:c)/2,y:j.y},{x:l+j.width*(!h?d:c)/2,y:j.y},{x:l+j.width*(!h?c:d)/2,y:j.y+j.height}];if(!k){this._swapXY(m)}n+="M "+a.jqx._ptrnd(m[0].x)+","+a.jqx._ptrnd(m[0].y);for(var e=1;eB.offset){d=B.offset}if(isNaN(u)||up){break}H=n;var G=w.items[D]=w.items[D]||{};for(var C in t){var I=w.self._getDataValueAsNumber(D,k.series[w.seriesIndex]["dataField"+t[C]],w.groupIndex);if(isNaN(I)){break}var m=w.renderData.offsets[w.seriesIndex][D][t[C]];if(isNaN(m)){break}G[t[C]]=m}n+=w.inverse?w.rect.y:w.rect.x;if(w.polarAxisCoords){var v=this._toPolarCoord(w.polarAxisCoords,this._plotRect,n,m);n=v.x;m=v.y}n=a.jqx._ptrnd(n);for(var h in t){G[h]=a.jqx._ptrnd(G[h])}var l=w.colors;if(!l){l=w.self._getColors(w.groupIndex,w.seriesIndex,D,w.gradientType)}if(!w.isOHLC){var z=G.lineElement;if(!z){z=w.inverse?this.renderer.line(G.Low,n,G.High,n):this.renderer.line(n,G.Low,n,G.High);this.renderer.attr(z,{fill:l.fillColor,"fill-opacity":w["fill-opacity"],"stroke-opacity":w["fill-opacity"],stroke:l.lineColor,"stroke-width":w["stroke-width"],"stroke-dasharray":w["stroke-dasharray"]});G.lineElement=z}var s=G.stickElement;n-=f/2;if(!s){var e=l.fillColor;if(G.Close<=G.Open&&l.fillColorAlt){e=l.fillColorAlt}s=w.inverse?this.renderer.rect(Math.min(G.Open,G.Close),n,Math.abs(G.Close-G.Open),f):this.renderer.rect(n,Math.min(G.Open,G.Close),f,Math.abs(G.Close-G.Open));this.renderer.attr(s,{fill:e,"fill-opacity":w["fill-opacity"],"stroke-opacity":w["fill-opacity"],stroke:l.lineColor,"stroke-width":w["stroke-width"],"stroke-dasharray":w["stroke-dasharray"]});G.stickElement=s}if(c==1){this._installHandlers(s,"column",w.groupIndex,w.seriesIndex,D)}}else{var q="M"+n+","+G.Low+" L"+n+","+G.High+" M"+(n-f/2)+","+G.Open+" L"+n+","+G.Open+" M"+(n+f/2)+","+G.Close+" L"+n+","+G.Close;if(w.inverse){q="M"+G.Low+","+n+" L"+G.High+","+n+" M"+G.Open+","+(n-f/2)+" L"+G.Open+","+n+" M"+G.Close+","+n+" L"+G.Close+","+(n+f/2)}var z=G.lineElement;if(!z){z=this.renderer.path(q,{});this.renderer.attr(z,{fill:l.fillColor,"fill-opacity":w["fill-opacity"],"stroke-opacity":w["fill-opacity"],stroke:l.lineColor,"stroke-width":w["stroke-width"],"stroke-dasharray":w["stroke-dasharray"]});G.lineElement=z}if(c==1){this._installHandlers(z,"column",w.groupIndex,w.seriesIndex,D)}}}},_renderScatterSeries:function(f,E,G){var v=this.seriesGroups[f];if(!v.series||v.series.length==0){return}var h=v.type.indexOf("bubble")!=-1;var w=v.orientation=="horizontal";var o=E;if(w){o={x:E.y,y:E.x,width:E.height,height:E.width}}var p=this._calcGroupOffsets(f,o);if(!p||p.xoffsets.length==0){return}var O=o.width;var d;if(v.polar||v.spider){d=this._getPolarAxisCoords(f,o);O=2*d.r}var W=this._alignValuesWithTicks(f);var u=this._getGroupGradientType(f);if(!G){G="to"}for(var j=0;jA){A=D}}}}var l=L.minRadius||L.minSymbolSize;if(isNaN(l)){l=O/50}var F=L.maxRadius||L.maxSymbolSize;if(isNaN(F)){F=O/25}if(l>F){F=l}var N=L.radius;if(isNaN(N)&&!isNaN(L.symbolSize)){N=(L.symbolType=="circle")?L.symbolSize/2:L.symbolSize}else{N=5}var H=this._getAnimProps(f,j);var C=H.enabled&&!this._isToggleRefresh&&p.xoffsets.length<5000?H.duration:0;var z={groupIndex:f,seriesIndex:j,symbolType:L.symbolType,symbolSize:L.symbolSize,"fill-opacity":U.opacity,"stroke-opacity":U.opacity,"stroke-width":U.stroke,"stroke-dasharray":U.dashStyle,items:[],polarAxisCoords:d};for(var T=p.xoffsets.first;T<=p.xoffsets.last;T++){var D=this._getDataValueAsNumber(T,B,f);if(typeof(D)!="number"){continue}var K=p.xoffsets.data[T];var I=p.xoffsets.xvalues[T];var J=p.offsets[j][T][G];if(Jo.y+o.height){continue}if(isNaN(K)||isNaN(J)){continue}if(w){var R=K;K=J;J=R+E.y}else{K+=E.x}var P=N;if(h){var q=this._getDataValueAsNumber(T,(L.radiusDataField||L.sizeDataField),f);if(typeof(q)!="number"){continue}P=l+(F-l)*(q-V)/Math.max(1,A-V);if(isNaN(P)){P=l}}p.offsets[j][T].radius=P;var m=NaN,Q=NaN;var t=0;var c=this._elementRenderInfo;if(I!=undefined&&c&&c.length>f&&c[f].series.length>j){var e=c[f].series[j][I];if(e&&!isNaN(e.to)){m=e.to;Q=e.xoffset;t=N;if(w){var R=Q;Q=m;m=R+E.y}else{Q+=E.x}if(h){t=l+(F-l)*(e.valueRadius-V)/Math.max(1,A-V);if(isNaN(t)){t=l}}}}if(n){M=this._getColors(f,j,T,u)}z.items.push({from:t,to:P,itemIndex:T,fill:M.fillColor,stroke:M.lineColor,x:K,y:J,xFrom:Q,yFrom:m})}this._animR(z,0);var k=this;var S;this._enqueueAnimation("series",undefined,undefined,C,function(X,i,s){k._animR(i,s)},z)}},_animR:function(q,j){var l=q.items;var s=q.symbolType||"circle";var d=q.symbolSize;for(var f=0;f=1){this._installHandlers(e,"circle",q.groupIndex,q.seriesIndex,p.itemIndex)}this._setRenderInfo(q.groupIndex,q.seriesIndex,l[f].itemIndex,{element:e,labelElement:k})}},_showToolTip:function(p,n,J,C,f){var z=this;var m=z._getXAxis(J);var c=z._getValueAxis(J);if(z._ttEl&&J==z._ttEl.gidx&&C==z._ttEl.sidx&&f==z._ttEl.iidx){return}var l=z.seriesGroups[J];var q=l.series[C];var j=z.enableCrosshairs&&!(l.polar||l.spider);if(z._pointMarker){p=parseInt(z._pointMarker.x+5);n=parseInt(z._pointMarker.y-5)}else{j=false}var k=j&&z.showToolTips==false;p=a.jqx._ptrnd(p);n=a.jqx._ptrnd(n);var K=z._ttEl==undefined;if(l.showToolTips==false||q.showToolTips==false){return}var i=z._get([q.toolTipFormatSettings,l.toolTipFormatSettings,c.toolTipFormatSettings,z.toolTipFormatSettings]);var v=z._get([q.toolTipFormatFunction,l.toolTipFormatFunction,c.toolTipFormatFunction,z.toolTipFormatFunction]);var o=z._getColors(J,C,f);var w=z._getDataValue(f,m.dataField,J);if(m.dataField==undefined||m.dataField==""){w=f}if(m.type=="date"){w=z._castAsDate(w,(i?i.dateFormat:undefined)||m.dateFormat)}var u="";if(a.isFunction(v)){var A={};var E=0;for(var d in q){if(d.indexOf("dataField")==0){A[d.substring(9,d.length).toLowerCase()]=z._getDataValue(f,q[d],J);E++}}if(E==0){A=z._getDataValue(f,undefined,J)}else{if(E==1){A=A[""]}}u=v(A,f,q,l,w,m)}else{u=z._getFormattedValue(J,C,f,i,v);var e=this._getAxisSettings(m);var O=e.toolTipFormatSettings;var h=e.toolTipFormatFunction;if(!h&&!O&&m.type=="date"){h=this._getDefaultDTFormatFn(m.baseUnit||"day")}var N=z._formatValue(w,O,h,J,C,f);if(!z._isPieGroup(J)){var s=(m.displayText||m.dataField||"");if(s.length>0){u=s+": "+N+"
              "+u}else{u=N+"
              "+u}}else{w=z._getDataValue(f,q.displayText||q.dataField,J);N=z._formatValue(w,O,h,J,C,f);u=N+": "+u}}if(!z._ttEl){z._ttEl={}}z._ttEl.sidx=C;z._ttEl.gidx=J;z._ttEl.iidx=f;rect=z.renderer.getRect();if(j){var G=a.jqx._ptrnd(z._pointMarker.x);var F=a.jqx._ptrnd(z._pointMarker.y);if(z._ttEl.vLine&&z._ttEl.hLine){z.renderer.attr(z._ttEl.vLine,{x1:G,x2:G});z.renderer.attr(z._ttEl.hLine,{y1:F,y2:F})}else{var D=z.crosshairsColor||z._defaultLineColor;z._ttEl.vLine=z.renderer.line(G,z._plotRect.y,G,z._plotRect.y+z._plotRect.height,{stroke:D,"stroke-width":z.crosshairsLineWidth||1,"stroke-dasharray":z.crosshairsDashStyle||""});z._ttEl.hLine=z.renderer.line(z._plotRect.x,F,z._plotRect.x+z._plotRect.width,F,{stroke:D,"stroke-width":z.crosshairsLineWidth||1,"stroke-dasharray":z.crosshairsDashStyle||""})}}if(!k&&z.showToolTips!=false){var H=q.toolTipClass||l.toolTipClass||this.toThemeProperty("jqx-chart-tooltip-text",null);var L=q.toolTipBackground||l.toolTipBackground||"#FFFFFF";var M=q.toolTipLineColor||l.toolTipLineColor||o.lineColor;var B=this.getItemCoord(J,C,f);var I=0;if(z._pointMarker&&z._pointMarker.element){I=q.symbolSizeSelected;if(isNaN(I)){I=q.symbolSize}if(isNaN(I)||I>50||I<0){I=l.symbolSize}if(isNaN(I)||I>50||I<0){I=8}}z._createTooltip(B,l,u,{css:H,fill:L,stroke:M,symbolSize:I})}},_fitTooltip:function(d,k,l,m,f){var e={};var c=2+f/2;var h=7;if(k.x-l.width-h-c>d.x&&k.y+k.height/2-l.height/2>d.y&&k.y+k.height/2+l.height/2d.y&&k.y+k.height/2+l.height/2d.y&&k.x+k.width/2-l.width/2>d.x&&k.x+k.width/2+l.width/2d.x&&k.x+k.width/2+l.width/2k.height||((m.type.indexOf("stackedcolumn")!=-1||m.type.indexOf("stackedwaterfall")!=-1)&&m.orientation!="horizontal")){if(e.left){return e.left}if(e.right){return e.right}}else{if(e.top){return e.top}if(e.bottom){return e.bottom}}for(var j in e){if(e[j]){return e[j]}}return{arrowLocation:""}},_createTooltip:function(F,l,z,A){var s=this;var w=l.type;var D=false;var E=s._ttEl.box;if(!E){D=true;E=s._ttEl.box=document.createElement("div");var f=10000000;E.style.position="absolute";E.style.cursor="default";a(c).css({"z-index":f,"box-sizing":"content-box"});a(document.body).append(E);var c=document.createElement("div");c.id="arrowOuterDiv";c.style.width="0px";c.style.height="0px";c.style.position="absolute";a(c).css({"z-index":f+1,"box-sizing":"content-box"});var i=document.createElement("div");i.id="arrowInnerDiv";i.style.width="0px";i.style.height="0px";i.style.position="absolute";var v=document.createElement("div");v.id="contentDiv";v.style.position="absolute";a(v).css({"box-sizing":"content-box"});a(v).addClass("jqx-rc-all jqx-button");a(v).appendTo(a(E));a(c).appendTo(a(E));a(i).appendTo(a(E));a(i).css({"z-index":f+2,"box-sizing":"content-box"})}if(!z||z.length==0){a(E).fadeTo(0,0);return}v=a(E).find("#contentDiv")[0];c=a(E).find("#arrowOuterDiv")[0];i=a(E).find("#arrowInnerDiv")[0];v.style.backgroundColor=A.fill;v.style.borderColor=A.stroke;var n=""+z+"";a(v).html(n);var q=this._measureHtml(n,"jqx-rc-all jqx-button");rect=s._plotRect;if(q.width>rect.width||q.height>rect.height){return}var p={width:q.width,height:q.height};arrowLocation="";var C=5;var t=7;var u=s._isColumnType(w);x=Math.max(F.x,rect.x);y=Math.max(F.y,rect.y);if(s.toolTipAlignment=="dataPoint"){if(w.indexOf("pie")!=-1||w.indexOf("donut")!=-1){var m=(F.fromAngle+F.toAngle)/2;m=m*(Math.PI/180);var h=(!isNaN(F.innerRadius)&&F.innerRadius>0)?(F.innerRadius+F.outerRadius)/2:F.outerRadius*0.75;x=F.x=F.center.x+Math.cos(m)*h;y=F.y=F.center.y-Math.sin(m)*h;F.width=F.height=1}else{if(u&&(l.polar||l.spider)){F.width=F.height=1}}var B=this._fitTooltip(this._plotRect,F,p,l,A.symbolSize);if(B.arrowLocation!=""){arrowLocation=B.arrowLocation;x=B.x;y=B.y;p.width=B.width;p.height=B.height}}else{arrowLocation=""}if(arrowLocation=="top"||arrowLocation=="bottom"){p.height+=t;x-=t/2;if(arrowLocation=="bottom"){y-=t}}else{if(arrowLocation=="left"||arrowLocation=="right"){p.width+=t;y-=t/2;if(arrowLocation=="right"){x-=t}}}if(x+p.width>rect.x+rect.width){arrowLocation="";x=rect.x+rect.width-p.width}if(y+p.height>rect.y+rect.height){arrowLocation="";y=rect.y+rect.height-p.height}var j={x:0,y:0},e={x:0,y:0};a(v).css({width:q.width,height:q.height,left:0,top:0});c.style["margin-top"]=c.style["margin-left"]=0;i.style["margin-top"]=i.style["margin-left"]=0;v.style["margin-top"]=v.style["margin-left"]=0;var k=t+"px solid";var d=t+"px solid transparent";switch(arrowLocation){case"left":j={x:0,y:(q.height-t)/2};contentPostion={x:t,y:0};v.style["margin-left"]=t+"px";c.style["margin-left"]=0+"px";c.style["margin-top"]=j.y+"px";c.style["border-left"]="";c.style["border-right"]=k+" "+A.stroke;c.style["border-top"]=d;c.style["border-bottom"]=d;i.style["margin-left"]=1+"px";i.style["margin-top"]=j.y+"px";i.style["border-left"]="";i.style["border-right"]=k+" "+A.fill;i.style["border-top"]=d;i.style["border-bottom"]=d;break;case"right":j={x:p.width-t,y:(q.height-t)/2};contentPostion={x:0,y:0};c.style["margin-left"]=j.x+"px";c.style["margin-top"]=j.y+"px";c.style["border-left"]=k+" "+A.stroke;c.style["border-right"]="";c.style["border-top"]=d;c.style["border-bottom"]=d;i.style["margin-left"]=j.x-1+"px";i.style["margin-top"]=j.y+"px";i.style["border-left"]=k+" "+A.fill;i.style["border-right"]="";i.style["border-top"]=d;i.style["border-bottom"]=d;break;case"top":j={x:p.width/2-t/2,y:0};contentPostion={x:0,y:t};v.style["margin-top"]=contentPostion.y+"px";c.style["margin-left"]=j.x+"px";c.style["border-top"]="";c.style["border-bottom"]=k+" "+A.stroke;c.style["border-left"]=d;c.style["border-right"]=d;i.style["margin-left"]=j.x+"px";i.style["margin-top"]=1+"px";i.style["border-top"]="";i.style["border-bottom"]=k+" "+A.fill;i.style["border-left"]=d;i.style["border-right"]=d;break;case"bottom":j={x:p.width/2-t/2,y:p.height-t};contentPostion={x:0,y:0};c.style["margin-left"]=j.x+"px";c.style["margin-top"]=j.y+"px";c.style["border-top"]=k+" "+A.stroke;c.style["border-bottom"]="";c.style["border-left"]=d;c.style["border-right"]=d;i.style["margin-left"]=j.x+"px";i.style["margin-top"]=j.y-1+"px";i.style["border-top"]=k+" "+A.fill;i.style["border-bottom"]="";i.style["border-left"]=d;i.style["border-right"]=d;break}if(arrowLocation==""){a(c).hide();a(i).hide()}else{a(c).show();a(i).show()}a(E).css({width:p.width+"px",height:p.height+"px"});var o=s.host.coord();if(D){a(E).fadeOut(0,0);E.style.left=x+o.left+"px";E.style.top=y+o.top+"px"}a(E).clearQueue();a(E).animate({left:x+o.left,top:y+o.top,opacity:1},s.toolTipMoveDuration,"easeInOutCirc");a(E).fadeTo(400,1)},_measureHtml:function(d,c){var f=this._measureDiv;if(!f){this._measureDiv=f=document.createElement("div");f.style.position="absolute";f.style.cursor="default";f.style.overflow="hidden";f.style.display="none";a(f).addClass(c);this.host.append(f)}a(f).html(d);var e={width:a(f).width()+2,height:a(f).height()+2};if(a.jqx.browser&&a.jqx.browser.mozilla){e.height+=3}return e},_hideToolTip:function(c){if(!this._ttEl){return}if(this._ttEl.box){if(c==0){a(this._ttEl.box).hide()}else{a(this._ttEl.box).fadeOut()}}this._hideCrosshairs();this._ttEl.gidx=undefined},_hideCrosshairs:function(){if(!this._ttEl){return}if(this._ttEl.vLine){this.renderer.removeElement(this._ttEl.vLine);this._ttEl.vLine=undefined}if(this._ttEl.hLine){this.renderer.removeElement(this._ttEl.hLine);this._ttEl.hLine=undefined}},_get:function(c){return a.jqx.getByPriority(c)},_getAxisSettings:function(h){if(!h){return{}}var n=this;var m=h.gridLines||{};var p={visible:this._get([m.visible,h.showGridLines,true]),color:n._get([m.color,h.gridLinesColor,n._defaultLineColor]),unitInterval:n._get([m.unitInterval,m.interval,h.gridLinesInterval]),step:n._get([m.step,h.gridLinesStep]),dashStyle:n._get([m.dashStyle,h.gridLinesDashStyle]),width:n._get([m.lineWidth,1]),offsets:[],alternatingBackgroundColor:h.alternatingBackgroundColor,alternatingBackgroundColor2:h.alternatingBackgroundColor2,alternatingBackgroundOpacity:h.alternatingBackgroundOpacity};var e=h.tickMarks||{};var j={visible:this._get([e.visible,h.showTickMarks,true]),color:n._get([e.color,h.tickMarksColor,n._defaultLineColor]),unitInterval:n._get([e.unitInterval,e.interval,h.tickMarksInterval]),step:n._get([e.step,h.tickMarksStep]),dashStyle:n._get([e.dashStyle,h.tickMarksDashStyle]),width:n._get([e.lineWidth,1]),size:n._get([e.size,4]),offsets:[]};var f=h.title||{};var d={visible:n._get([f.visible,true]),text:n._get([h.description,f.text]),style:n._get([h.descriptionClass,f["class"],n.toThemeProperty("jqx-chart-axis-description",null)]),halign:n._get([h.horizontalDescriptionAlignment,f.horizontalAlignment,"center"]),valign:n._get([h.verticalDescriptionAlignment,f.verticalAlignment,"center"]),angle:0,rotationPoint:n._get([f.rotationPoint,"centercenter"]),offset:n._get([f.offset,{x:0,y:0}])};var k=h.line||{};var c={visible:n._get([k.visible,true]),color:n._get([k.color,p.color,n._defaultLineColor]),dashStyle:n._get([k.dashStyle,p.dashStyle,""]),width:n._get([k.lineWidth,1])};var l=h.padding||{};l={left:l.left||0,right:l.right||0,top:l.top||0,bottom:l.bottom||0};var i=this._getAxisLabelsSettings(h);var o={visible:this._get([h.visible,h.showValueAxis,h.showXAxis,h.showCategoryAxis,true]),customDraw:this._get([h.customDraw,false]),gridLines:p,tickMarks:j,line:c,title:d,labels:i,padding:l,toolTipFormatFunction:this._get([h.toolTipFormatFunction,h.formatFunction,i.formatFunction]),toolTipFormatSettings:this._get([h.toolTipFormatSettings,h.formatSettings,i.formatSettings])};return o},_getAxisLabelsSettings:function(e){var c=this;var f=e.labels||{};var d={visible:c._get([e.showLabels,f.visible,true]),unitInterval:c._get([f.unitInterval,f.interval,e.labelsInterval]),step:c._get([f.step,e.labelsStep]),angle:c._get([e.textRotationAngle,f.angle,0]),style:c._get([e["class"],f["class"],c.toThemeProperty("jqx-chart-axis-text",null)]),halign:c._get([e.horizontalTextAlignment,f.horizontalAlignment,"center"]),valign:c._get([e.verticalTextAlignment,f.verticalAlignment,"center"]),textRotationPoint:c._get([e.textRotationPoint,f.rotationPoint,"auto"]),textOffset:c._get([e.textOffset,f.offset,{x:0,y:0}]),autoRotate:c._get([e.labelsAutoRotate,f.autoRotate,false]),formatSettings:c._get([e.formatSettings,f.formatSettings,undefined]),formatFunction:c._get([e.formatFunction,f.formatFunction,undefined])};return d},_getLabelsSettings:function(q,m,j,v){var k=this.seriesGroups[q];var u=k.series[m];var n=isNaN(j)?undefined:this._getDataValue(j,u.dataField,q);var l=v||["Visible","Offset","Angle","HorizontalAlignment","VerticalAlignment","Class","BackgroundColor","BorderColor","BorderOpacity","Padding","Opacity","BackgroundOpacity","LinesAngles","LinesEnabled","AutoRotate","Radius"];var t={};for(var h=0;h0){if(z==""||z=="center"){s+=(v-F.width)/2}else{if(z=="right"){s+=(v-F.width)}}}if(K>0){if(k==""||k=="center"){p+=(K-F.height)/2}else{if(k=="bottom"){p+=(K-F.height)}}}s+=c.x+J.x;p+=c.y+J.y;var q=this._plotRect;if(s<=q.x){s=q.x+2}if(p<=q.y){p=q.y+2}var n={width:Math.max(F.width,1),height:Math.max(F.height,1)};if(p+n.height>=q.y+q.height){p=q.y+q.height-(t?(n.height+t.height)/2:n.height)-2}if(s+n.width>=q.x+q.width){s=q.x+q.width-n.width-2}var e;var D=L.backgroundColor;var G=L.borderColor;var C=L.padding;if(D||G){e=this.renderer.beginGroup();var c=this.renderer.rect(s-C.left,p-C.top,F.width+C.left+C.right,F.height+C.bottom+C.bottom,{fill:D||"transparent","fill-opacity":L.backgroundOpacity||1,stroke:G||"transparent","stroke-opacity":L.borderOpacity,"stroke-width":1})}var A=this.renderer.text(B,s,p,F.width,F.height,j,{"class":L["class"],opacity:L.opacity||1},false,"center","center");if(E){E.x=s-C.left;E.y=p-C.top;E.width=F.width+C.left+C.right;E.height=F.height+C.bottom+C.bottom}if(this._isVML){this.renderer.removeElement(A);this.renderer.getContainer()[0].appendChild(A)}if(e){this.renderer.endGroup()}return e||A},_getAnimProps:function(k,h){var f=this.seriesGroups[k];var d=!isNaN(h)?f.series[h]:undefined;var c=this.enableAnimations==true;if(f.enableAnimations){c=f.enableAnimations==true}if(d&&d.enableAnimations){c=d.enableAnimations==true}var j=this.animationDuration;if(isNaN(j)){j=1000}var e=f.animationDuration;if(!isNaN(e)){j=e}if(d){var i=d.animationDuration;if(!isNaN(i)){j=i}}if(j>5000){j=1000}return{enabled:c,duration:j}},_isColorTransition:function(h,e,f,i){if(i-1=0;p--){var j=this._getSerieSettings(m,p);var ak={groupIndex:m,rect:C,serieIndex:p,swapXY:am,isArea:v,isSpline:ah,isRange:R,isPolar:ai,settings:j,segments:[],pointsLength:0};var l=this._isSerieVisible(m,p);if(!l){this._linesRenderInfo[m][p]=ak;continue}var M=K.series[p];if(M.customDraw){continue}var B=a.isFunction(M.colorFunction);var X=G.xoffsets.first;var J=X;var Q=this._getColors(m,p,NaN,this._getGroupGradientType(m));var ae=false;var z;do{var Z=[];var W=[];var u=[];var S=-1;var s=0,q=0;var U=NaN;var H=NaN;var al=NaN;if(G.xoffsets.length<1){continue}var V=this._getAnimProps(m,p);var O=V.enabled&&!this._isToggleRefresh&&G.xoffsets.length<10000&&this._isVML!=true?V.duration:0;var A=X;z=false;var e=this._getColors(m,p,X,this._getGroupGradientType(m));for(var ag=X;ag<=G.xoffsets.last;ag++){X=ag;var aa=G.xoffsets.data[ag];var Y=G.xoffsets.xvalues[ag];if(isNaN(aa)){continue}aa=Math.max(aa,1);s=aa;q=G.offsets[p][ag].to;var ad=G.offsets[p][ag].from;if(isNaN(q)||isNaN(ad)){if(M.emptyPointsDisplay=="connect"){continue}else{if(M.emptyPointsDisplay=="zero"){if(isNaN(q)){q=G.baseOffset}if(isNaN(ad)){ad=G.baseOffset}}else{z=true;break}}}if(B&&this._isColorTransition(m,p,G,X)){if(Z.length>1){X--;break}}var d=this._elementRenderInfo;if(d&&d.length>m&&d[m].series.length>p){var h=d[m].series[p][Y];var al=a.jqx._ptrnd(h?h.to:undefined);var L=a.jqx._ptrnd(C.x+(h?h.xoffset:undefined));u.push(am?{y:L,x:al,index:ag}:{x:L,y:al,index:ag})}J=ag;if(j.stroke<2){if(q-C.y<=1){q=C.y+1}if(ad-C.y<=1){ad=C.y+1}if(C.y+C.height-q<=1){q=C.y+C.height-1}if(C.y+C.height-ad<=1){ad=C.y+C.height-1}}if(!v&&f){if(q<=C.y){q=C.y+1}if(q>=C.y+C.height){q=C.y+C.height-1}if(ad<=C.y){ad=C.y+1}if(ad>=C.y+C.height){ad=C.y+C.height-1}}aa=Math.max(aa,1);s=aa+C.x;if(K.skipOverlappingPoints==true&&!isNaN(U)&&Math.abs(U-s)<=1){continue}if(w&&!isNaN(U)&&!isNaN(H)){if(H!=q){Z.push(am?{y:s,x:a.jqx._ptrnd(H)}:{x:s,y:a.jqx._ptrnd(H)})}}Z.push(am?{y:s,x:a.jqx._ptrnd(q),index:ag}:{x:s,y:a.jqx._ptrnd(q),index:ag});W.push(am?{y:s,x:a.jqx._ptrnd(ad),index:ag}:{x:s,y:a.jqx._ptrnd(ad),index:ag});U=s;H=q;if(isNaN(al)){al=q}}if(Z.length==0){X++;continue}var I=Z[Z.length-1].index;if(B){Q=this._getColors(m,p,I,this._getGroupGradientType(m))}var n=C.x+G.xoffsets.data[A];var ac=C.x+G.xoffsets.data[J];if(v&&K.alignEndPointsWithIntervals==true){var E=F?-1:1;if(n>C.x){n=C.x}if(acG.x+G.width||w.yG.y+G.height){continue}if(A!="none"){var p=this._getColors(h,j,z.pointsArray[E].index,this._getGroupGradientType(h));var f=this._drawSymbol(A,w.x,w.y,p.fillColorSymbol,F.opacity,p.lineColorSymbol,F.opacity,1,undefined,H);z.symbolElements.push(f)}if(s){var m=(E>0?u[E-1]:u[E]).split(",");m={x:parseFloat(m[0]),y:parseFloat(m[1])};var o=(E0){u+=" "}var l=p[w].y;var m=p[w].x;var c=!B?l:h;var e=m;if(o&&o.length>w){c=o[w].y;e=o[w].x;if(isNaN(c)||isNaN(e)){c=l;e=m}}k=e;if(v<=p.length&&w>0&&w==v){e=p[w-1].x;c=p[w-1].y}if(d){m=a.jqx._ptrnd((m-c)*(B?f:1)+c);l=a.jqx._ptrnd(l)}else{m=a.jqx._ptrnd((m-e)*f+e);l=a.jqx._ptrnd((l-c)*f+c)}if(n){var s=this._toPolarCoord(n,this._plotRect,m,l);m=s.x;l=s.y}u+=m+","+l}return u},_buildLineCmd:function(m,q,i,v,f,o,e,u,d,l,h,c){var s=m;var n=c?e+","+i:i+","+e;var j=c?e+","+v:v+","+e;if(u&&!d&&!q){s=n+" "+m+" "+j}if(h){s=this._getBezierPoints(s)}var p=s.split(" ");if(p.length==0){return""}if(p.length==1){var t=p[0].split(",");return"M "+p[0]+" L"+(parseFloat(t[0])+1)+","+(parseFloat(t[1])+1)}var k=p[0].replace("M","");if(u&&!d){if(!q){s="M "+n+" L "+k+" "+s}else{s="M "+k+" L "+k+(h?"":(" L "+k+" "))+s}}else{if(!h){s="M "+k+" L "+k+" "+s}}if((d&&l)||q){s+=" Z"}return s},_getSerieSettings:function(j,c){var i=this.seriesGroups[j];var h=i.type.indexOf("area")!=-1;var f=i.type.indexOf("line")!=-1;var d=i.series[c];var l=d.dashStyle||i.dashStyle||"";var e=d.opacity||i.opacity;if(isNaN(e)||e<0||e>1){e=1}var k=d.lineWidth;if(isNaN(k)&&k!="auto"){k=i.lineWidth}if(k=="auto"||isNaN(k)||k<0||k>15){if(h){k=2}else{if(f){k=3}else{k=1}}}return{stroke:k,opacity:e,dashStyle:l}},_getColors:function(z,s,e,f,c){var m=this.seriesGroups[z];var q=m.series[s];var d=this._get([q.useGradientColors,m.useGradientColors,m.useGradient,true]);var n=this._getSeriesColors(z,s,e);if(!n.fillColor){n.fillColor=u;n.fillColorSelected=a.jqx.adjustColor(u,1.1);n.fillColorAlt=a.jqx.adjustColor(u,4);n.fillColorAltSelected=a.jqx.adjustColor(u,3);n.lineColor=n.symbolColor=a.jqx.adjustColor(u,0.9);n.lineColorSelected=n.symbolColorSelected=a.jqx.adjustColor(u,0.9)}var k=[[0,1.4],[100,1]];var h=[[0,1],[25,1.1],[50,1.4],[100,1]];var p=[[0,1.3],[90,1.2],[100,1]];var l=NaN;if(!isNaN(c)){l=c==2?k:h}if(d){var t={};for(var v in n){t[v]=n[v]}n=t;if(f=="verticalLinearGradient"||f=="horizontalLinearGradient"){var j=f=="verticalLinearGradient"?l||k:l||h;var o=["fillColor","fillColorSelected","fillColorAlt","fillColorAltSelected"];for(var A in o){var u=n[o[A]];if(u){n[o[A]]=this.renderer._toLinearGradient(u,f=="verticalLinearGradient",j)}}}else{if(f=="radialGradient"){var w;var l=k;if((m.type=="pie"||m.type=="donut"||m.polar)&&e!=undefined&&this._renderData[z]&&this._renderData[z].offsets[s]){w=this._renderData[z].offsets[s][e];l=p}n.fillColor=this.renderer._toRadialGradient(n.fillColor,l,w);n.fillColorSelected=this.renderer._toRadialGradient(n.fillColorSelected,l,w)}}}return n},_installHandlers:function(d,h,j,i,e){if(!this.enableEvents){return false}var k=this;var f=this.seriesGroups[j];var l=this.seriesGroups[j].series[i];var c=f.type.indexOf("line")!=-1||f.type.indexOf("area")!=-1;if(!c&&!(f.enableSelection==false||l.enableSelection==false)){this.renderer.addHandler(d,"mousemove",function(o){var n=k._selected;if(n&&n.isLineType&&n.linesUnselectMode=="click"&&!(n.group==j&&n.series==i)){return}var m=o.pageX||o.clientX||o.screenX;var q=o.pageY||o.clientY||o.screenY;var p=k.host.offset();m-=p.left;q-=p.top;if(k._mouseX==m&&k._mouseY==q){return}if(k._ttEl){if(k._ttEl.gidx==j&&k._ttEl.sidx==i&&k._ttEl.iidx==e){return}}k._startTooltipTimer(j,i,e)});this.renderer.addHandler(d,"mouseout",function(n){return;if(!isNaN(k._lastClickTs)&&(new Date()).valueOf()-k._lastClickTs<100){return}if(e!=undefined){k._cancelTooltipTimer()}if(c){return}var m=k._selected;if(m&&m.isLineType&&m.linesUnselectMode=="click"&&!(m.group==j&&m.series==i)){return}k._unselect()})}if(!(f.enableSelection==false||l.enableSelection==false)){this.renderer.addHandler(d,"mouseover",function(n){var m=k._selected;if(m&&m.isLineType&&m.linesUnselectMode=="click"&&!(m.group==j&&m.series==i)){return}k._select(d,h,j,i,e,e)})}this.renderer.addHandler(d,"click",function(m){clearTimeout(k._hostClickTimer);k._lastClickTs=(new Date()).valueOf();if(c&&(h!="symbol"&&h!="pointMarker")){return}if(k._isColumnType(f.type)){k._unselect()}if(isNaN(e)){return}m.stopImmediatePropagation();k._raiseItemEvent("click",f,l,e)})},_getHorizontalOffset:function(C,u,l,k){var d=this._plotRect;var j=this._getDataLen(C);if(j==0){return{index:undefined,value:l}}var q=this._calcGroupOffsets(C,this._plotRect);if(q.xoffsets.length==0){return{index:undefined,value:undefined}}var o=l;var n=k;var A=this.seriesGroups[C];var m;if(A.polar||A.spider){m=this._getPolarAxisCoords(C,d)}var f=this._getXAxis(C).flip==true;var c,p,z,h;for(var v=q.xoffsets.first;v<=q.xoffsets.last;v++){var w=q.xoffsets.data[v];var e=q.offsets[u][v].to;var s=0;if(m){var t=this._toPolarCoord(m,d,w+d.x,e);w=t.x;e=t.y;s=a.jqx._ptdist(o,n,w,e)}else{if(A.orientation=="horizontal"){w+=d.y;var B=e;e=w;w=B;s=a.jqx._ptdist(o,n,w,e)}else{w+=d.x;s=Math.abs(o-w)}}if(isNaN(c)||c>s){c=s;p=v;z=w;h=e}}return{index:p,value:q.xoffsets.data[p],polarAxisCoords:m,x:z,y:h}},onmousemove:function(m,l){if(this._mouseX==m&&this._mouseY==l){return}this._mouseX=m;this._mouseY=l;if(!this._selected){return}var D=this._selected.group;var u=this._selected.series;var A=this.seriesGroups[D];var p=A.series[u];var c=this._plotRect;if(this.renderer){c=this.renderer.getRect();c.x+=5;c.y+=5;c.width-=10;c.height-=10}if(mc.x+c.width||lc.y+c.height){this._hideToolTip();this._unselect();return}var f=A.orientation=="horizontal";var c=this._plotRect;if(A.type.indexOf("line")!=-1||A.type.indexOf("area")!=-1){var j=this._getHorizontalOffset(D,this._selected.series,m,l);var z=j.index;if(z==undefined){return}if(this._selected.item!=z){var t=this._linesRenderInfo[D][u].segments;var v=0;while(z>t[v].lastItemIndex){v++;if(v>=t.length){return}}var d=t[v].pathElement;var E=t[v].lastItemIndex;this._unselect(false);this._select(d,"path",D,u,z,E)}var o=this._getSymbol(this._selected.group,this._selected.series);if(o=="none"){o="circle"}var q=this._calcGroupOffsets(D,c);var e=q.offsets[this._selected.series][z].to;var w=e;if(A.type.indexOf("range")!=-1){w=q.offsets[this._selected.series][z].from}var n=f?m:l;if(!isNaN(w)&&Math.abs(n-w)1){h=A.opacity}if(isNaN(h)||h<0||h>1){h=1}var C=p.symbolSizeSelected;if(isNaN(C)){C=p.symbolSize}if(isNaN(C)||C>50||C<0){C=A.symbolSize}if(isNaN(C)||C>50||C<0){C=8}if(this.showToolTips||this.enableCrosshairs){this._pointMarker={type:o,x:m,y:l,gidx:D,sidx:u,iidx:z};this._pointMarker.element=this._drawSymbol(o,m,l,k.fillColorSymbolSelected,h,k.lineColorSymbolSelected,h,1,undefined,C);this._installHandlers(this._pointMarker.element,"pointMarker",D,u,z)}this._startTooltipTimer(D,this._selected.series,z)}},_drawSymbol:function(k,n,l,d,o,m,h,i,c,q){var f;var j=q||6;var e=j/2;switch(k){case"none":return undefined;case"circle":f=this.renderer.circle(n,l,j/2);break;case"square":j=j-1;e=j/2;f=this.renderer.rect(n-e,l-e,j,j);break;case"diamond":var p="M "+(n-e)+","+(l)+" L"+(n)+","+(l-e)+" L"+(n+e)+","+(l)+" L"+(n)+","+(l+e)+" Z";f=this.renderer.path(p);break;case"triangle_up":case"triangle":var p="M "+(n-e)+","+(l+e)+" L "+(n+e)+","+(l+e)+" L "+(n)+","+(l-e)+" Z";f=this.renderer.path(p);break;case"triangle_down":var p="M "+(n-e)+","+(l-e)+" L "+(n)+","+(l+e)+" L "+(n+e)+","+(l-e)+" Z";f=this.renderer.path(p);break;case"triangle_left":var p="M "+(n-e)+","+(l)+" L "+(n+e)+","+(l+e)+" L "+(n+e)+","+(l-e)+" Z";f=this.renderer.path(p);break;case"triangle_right":var p="M "+(n-e)+","+(l-e)+" L "+(n-e)+","+(l+e)+" L "+(n+e)+","+(l)+" Z";f=this.renderer.path(p);break;default:f=this.renderer.circle(n,l,j)}this.renderer.attr(f,{fill:d,"fill-opacity":o,stroke:m,"stroke-width":i,"stroke-opacity":h,"stroke-dasharray":c||""});if(k!="circle"){this.renderer.attr(f,{r:j/2});if(k!="square"){this.renderer.attr(f,{x:n,y:l})}}return f},_getSymbol:function(h,c){var d=["circle","square","diamond","triangle_up","triangle_down","triangle_left","triangle_right"];var f=this.seriesGroups[h];var e=f.series[c];var i;if(e.symbolType!=undefined){i=e.symbolType}if(i==undefined){i=f.symbolType}if(i=="default"){return d[c%d.length]}else{if(i!=undefined){return i}}return"none"},_startTooltipTimer:function(l,k,e,j,i,c,h){this._cancelTooltipTimer();var m=this;var f=m.seriesGroups[l];var d=this.toolTipShowDelay||this.toolTipDelay;if(isNaN(d)||d>10000||d<0){d=500}if(this._ttEl||(true==this.enableCrosshairs&&false==this.showToolTips)){d=0}if(!isNaN(c)){d=c}clearTimeout(this._tttimerHide);if(isNaN(j)){j=m._mouseX}if(isNaN(i)){i=m._mouseY-3}if(d==0){m._showToolTip(j,i,l,k,e)}this._tttimer=setTimeout(function(){if(d!=0){m._showToolTip(j,i,l,k,e)}var n=m.toolTipHideDelay;if(!isNaN(h)){n=h}if(isNaN(n)){n=4000}m._tttimerHide=setTimeout(function(){m._hideToolTip();m._unselect()},n)},d)},_cancelTooltipTimer:function(){clearTimeout(this._tttimer)},_getGroupGradientType:function(d){var c=this.seriesGroups[d];if(c.type.indexOf("area")!=-1){return c.orientation=="horizontal"?"horizontalLinearGradient":"verticalLinearGradient"}else{if(this._isColumnType(c.type)||c.type.indexOf("candle")!=-1){if(c.polar){return"radialGradient"}return c.orientation=="horizontal"?"verticalLinearGradient":"horizontalLinearGradient"}else{if(c.type.indexOf("scatter")!=-1||c.type.indexOf("bubble")!=-1||this._isPieGroup(d)){return"radialGradient"}}}return undefined},_select:function(i,m,p,o,j,n){if(this._selected){if((this._selected.item!=j||this._selected.series!=o||this._selected.group!=p)){this._unselect()}else{return}}var l=this.seriesGroups[p];var q=l.series[o];if(l.enableSelection==false||q.enableSelection==false){return}var h=l.type.indexOf("line")!=-1&&l.type.indexOf("area")==-1;this._selected={element:i,type:m,group:p,series:o,item:j,iidxBase:n,isLineType:h,linesUnselectMode:q.linesUnselectMode||l.linesUnselectMode};var c=this._getColors(p,o,n||j,this._getGroupGradientType(p));var d=c.fillColorSelected;if(h){d="none"}var f=this._getSerieSettings(p,o);var e=(m=="symbol")?c.lineColorSymbolSelected:c.lineColorSelected;d=(m=="symbol")?c.fillColorSymbolSelected:d;var k=(m=="symbol")?1:f.stroke;if(this.renderer.getAttr(i,"fill")==c.fillColorAlt){d=c.fillColorAltSelected}this.renderer.attr(i,{stroke:e,fill:d,"stroke-width":k});if(l.type.indexOf("pie")!=-1||l.type.indexOf("donut")!=-1){this._applyPieSelect()}this._raiseItemEvent("mouseover",l,q,j)},_applyPieSelect:function(){var d=this;d._createAnimationGroup("animPieSlice");var f=this._selected;if(!f){return}var h=this.getItemCoord(f.group,f.series,f.item);if(!h){return}var e=this._getRenderInfo(f.group,f.series,f.item);var c={element:e,coord:h};this._enqueueAnimation("animPieSlice",undefined,undefined,300,function(k,i,l){var n=i.coord;var j=n.selectedRadiusChange*l;var m=d.renderer.pieSlicePath(n.center.x,n.center.y,n.innerRadius==0?0:(n.innerRadius+j),n.outerRadius+j,n.fromAngle,n.toAngle,n.centerOffset);d.renderer.attr(i.element.element,{d:m});d._showPieLabel(f.group,f.series,f.item,undefined,j)},c);d._startAnimation("animPieSlice")},_applyPieUnselect:function(){this._stopAnimations();var c=this._selected;if(!c){return}var e=this.getItemCoord(c.group,c.series,c.item);if(!e||!e.center){return}var d=this.renderer.pieSlicePath(e.center.x,e.center.y,e.innerRadius,e.outerRadius,e.fromAngle,e.toAngle,e.centerOffset);this.renderer.attr(c.element,{d:d});this._showPieLabel(c.group,c.series,c.item,undefined,0)},_unselect:function(){var p=this;if(p._selected){var o=p._selected.group;var n=p._selected.series;var h=p._selected.item;var l=p._selected.iidxBase;var k=p._selected.type;var j=p.seriesGroups[o];var q=j.series[n];var f=j.type.indexOf("line")!=-1&&j.type.indexOf("area")==-1;var c=p._getColors(o,n,l||h,p._getGroupGradientType(o));var d=c.fillColor;if(f){d="none"}var e=p._getSerieSettings(o,n);var m=(k=="symbol")?c.lineColorSymbol:c.lineColor;d=(k=="symbol")?c.fillColorSymbol:d;if(this.renderer.getAttr(p._selected.element,"fill")==c.fillColorAltSelected){d=c.fillColorAlt}var i=(k=="symbol")?1:e.stroke;p.renderer.attr(p._selected.element,{stroke:m,fill:d,"stroke-width":i});if(j.type.indexOf("pie")!=-1||j.type.indexOf("donut")!=-1){this._applyPieUnselect()}p._selected=undefined;if(!isNaN(h)){p._raiseItemEvent("mouseout",j,q,h)}}if(p._pointMarker){if(p._pointMarker.element){p.renderer.removeElement(p._pointMarker.element);p._pointMarker.element=undefined}p._pointMarker=undefined;p._hideCrosshairs()}},_raiseItemEvent:function(h,i,f,d){var e=f[h]||i[h];var j=0;for(;j=1){d*=10}else{d/=10}for(var f=1;fMath.abs(j[f]*d-m)){n=f}else{break}}}while(n==j.length-1);return j[n]*d},_renderDataClone:function(){if(!this._renderData||this._isToggleRefresh){return}var e=this._elementRenderInfo=[];if(this._isSelectorRefresh){return}for(var k=0;k=this._renderData.length){return}var f=this.seriesGroups[e];var d=this._renderData[e].xAxis;if(!d){return}if(f.xAxis==undefined){for(var c=0;c<=e;c++){if(this.seriesGroups[c].xAxis==undefined){break}}d=this._renderData[c].xAxis}return d},getXAxisDataPointOffset:function(l,n){var m=this.seriesGroups[n];if(isNaN(l)){return NaN}renderData=this._getXAxisRenderData(n);if(!renderData){return NaN}var h=renderData.data.axisStats;var k=h.min.valueOf();var c=h.max.valueOf();var i=c-k;if(i==0){i=1}if(l.valueOf()>c||l.valueOf()aj.max){u=aj.max}if(u=u)?ak:ag}else{M=Z[af]}}var ai=P*(M-u);if(N){ai=P*(M-at)}if(I&&ar){if(!ap[af]){ap[af]=true;ai=P*(M-u)}else{ai=P*M}}if(R){while(o.length<=af){o.push({p:{value:0,height:0},n:{value:0,height:0}})}var E=(N||N)?at:u;var ad=M>E?o[af].p:o[af].n;ad.value+=M;if(e){M=ad.value/(aj.psums[af]+aj.nsums[af])*100;ai=(a.jqx.log(M,Q)-aj.minPow)*P}else{ai=a.jqx.log(ad.value,Q)-a.jqx.log(E,Q);ai*=P}ai-=ad.height;ad.height+=ai}var U=al;if(N){var w=0;if(R){w=(a.jqx.log(at,Q)-a.jqx.log(u,Q))*P}else{w=(at-u)*P}U+=D?w:-w}if(I){if(e&&!R){var B=(aj.psums[af]-aj.nsums[af]);if(M>u){ai=(aj.psums[af]/B)*d;if(aj.psums[af]!=0){ai*=M/aj.psums[af]}}else{ai=(aj.nsums[af]/B)*d;if(aj.nsums[af]!=0){ai*=M/aj.nsums[af]}}}if(ar){if(isNaN(L[af])){L[af]=U}U=L[af]}}if(isNaN(V[af])){V[af]=0}var ah=V[af];ai=Math.abs(ai);var Y=ai;if(ai>=1){h_new=this._isVML?Math.round(ai):a.jqx._ptrnd(ai)-1;if(Math.abs(ai-h_new)>0.5){ai=Math.round(ai)}else{ai=h_new}}ah+=ai-Y;if(!I){ah=0}if(Math.abs(ah)>0.5){if(ah>0){ai-=1;ah-=1}else{ai+=1;ah+=1}}V[af]=ah;if(ae==C.series.length-1&&e){var A=0;for(var aa=0;aa0.5){ai=a.jqx._ptrnd(ai+d-A)}else{var aa=ae-1;while(aa>=0){var J=Math.abs(W[aa][af].to-W[aa][af].from);if(J>1){if(W[aa][af].from>W[aa][af].to){W[aa][af].from+=d-A}break}aa--}}}}if(D){ai*=-1}var T=MM}var p=isNaN(at)?M:{from:at,to:M};if(T){if(ar){L[af]+=ai}W[ae][af]={from:U,to:U+ai,value:p,valueRadius:l}}else{if(ar){L[af]-=ai}W[ae][af]={from:U,to:U-ai,value:p,valueRadius:l}}}}var z=this._renderData[n];z.baseOffset=al;z.gbase=u;z.logBase=R?Q:NaN;z.scale=P;z.offsets=!ac?W:this._applyWaterfall(W,v,n,al,u,R?Q:NaN,P,D,I);z.xoffsets=this._calculateXOffsets(n,O.width);return this._renderData[n]},_isPercent:function(c){return(typeof(c)==="string"&&c.length>0&&c.indexOf("%")==c.length-1)},_calcPieSeriesGroupOffsets:function(f,c){var C=this;var o=this._getDataLen(f);var p=this.seriesGroups[f];var D=this._renderData[f]={};var J=D.offsets=[];for(var F=0;F360){H=0}var P=this._get([w.maxAngle,w.endAngle]);if(isNaN(P)||P<0||P>360){P=360}var h=P-H;var q=w.initialAngle||0;if(qP){q=P}var d=w.centerOffset||0;var N=a.jqx.getNum([w.offsetX,p.offsetX,c.width/2]);var M=a.jqx.getNum([w.offsetY,p.offsetY,c.height/2]);var B=Math.min(c.width,c.height)/2;var A=q;var j=w.radius;if(C._isPercent(j)){j=parseFloat(j)/100*B}if(isNaN(j)){j=B*0.4}var n=w.innerRadius;if(C._isPercent(n)){n=parseFloat(n)/100*B}if(isNaN(n)||n>=j){n=0}var e=w.selectedRadiusChange;if(C._isPercent(e)){e=parseFloat(e)/100*(j-n)}if(isNaN(e)){e=0.1*(j-n)}J.push([]);var k=0;var l=0;for(var I=0;I0){k+=O}else{l+=O}}var v=k-l;if(v==0){v=1}for(var I=0;Ie){break}var d=this._estAxisInterval(m,s,t,e,q[n].key,k);var f=this._getDTIntCnt(m,s,d,q[n].key);if(c==-1||c=s){s=A}}if(d&&((!c&&e==m)||(c&&C==m))){l=false}if(l){f=0;s=Math.max(0,m-1)}if(isNaN(B)){B=f}if(isNaN(F)){F=s}if(c){if(!this._isDate(B)){B=this._isDate(F)?F:new Date()}if(!this._isDate(F)){F=this._isDate(B)?B:new Date()}}else{if(isNaN(B)){B=0}if(isNaN(F)){F=l?Math.max(0,m-1):B}}if(f==undefined){f=B}if(s==undefined){s=F}var u=o.rangeSelector;if(u){var v=u.minValue||B;if(v&&c){v=this._castAsDate(v,u.dateFormat||o.dateFormat)}var z=u.maxValue||F;if(z&&c){z=this._castAsDate(z,u.dateFormat||o.rangeSelector)}if(Bz){B=v}if(F>z){F=z}}var H=o.unitInterval;var w,I;if(c){w=o.baseUnit;if(!w){w=this._getBestDTUnit(B,F,h,G)}I=w=="hour"||w=="minute"||w=="second"||w=="millisecond"}var H=o.unitInterval;if(isNaN(H)||H<=0){H=this._estAxisInterval(B,F,h,G,w)}var D={min:B,max:F};var n=this.seriesGroups[h];if(!c&&(n.polar||n.spider)){B=a.jqx._rnd(B,H,false);F=a.jqx._rnd(F,H,true)}return{min:B,max:F,dsRange:{min:f,max:s},filterRange:D,useIndeces:l,isDateTime:c,isTimeUnit:I,dateTimeUnit:w,interval:H}},_getDefaultDTFormatFn:function(e){var c=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];var d;if(e=="year"||e=="month"||e=="day"){d=function(f){return f.getDate()+"-"+c[f.getMonth()]+"-"+f.getFullYear()}}else{d=function(f){return f.getDate()+"-"+c[f.getMonth()]+"-"+f.getFullYear()+"
              "+f.getHours()+":"+f.getMinutes()+":"+f.getSeconds()}}return d},_getDTIntCnt:function(h,d,e,k){var f=0;var i=new Date(h);var j=new Date(d);if(e<=0){return 1}while(i.valueOf()0)?d:50);if(this._renderData&&this._renderData.length>o&&this._renderData[o].xAxis&&!isNaN(this._renderData[o].xAxis.avgWidth)){var q=Math.max(1,this._renderData[o].xAxis.avgWidth);if(q!=0&&isNaN(d)){h=0.9*c/q}}if(h<=1){return Math.abs(k-f)}var p=0;while(true){var n=j>=e.length?Math.pow(10,3+j-e.length):e[j];if(this._isDate(f)&&this._isDate(k)){p=this._getDTIntCnt(f,k,n,l)}else{p=(k-f)/n}if(p<=h){break}j++}var m=this.seriesGroups[o];if(m.spider||m.polar){if(2*n>k-f){n=k-f}}return n},_getPaddingSize:function(n,f,h,d,p,i,q){var j=n.min;var l=n.max;var c=n.interval;var e=n.dateTimeUnit;if(p){var m=(d/Math.max(1,l-j+c))*c;if(i){return{left:0,right:m}}else{if(h){return{left:0,right:0}}return{left:m/2,right:m/2}}}if(h&&!q){return{left:0,right:0}}if(this._isDate(j)&&this._isDate(l)){var o=this._getDTIntCnt(j,l,Math.min(c,l-j),e);var k=d/Math.max(2,o);return{left:k/2,right:k/2}}var o=Math.max(1,l-j);if(o==1){sz=d/4;return{left:sz,right:sz}}var k=d/(o+1);return{left:k/2,right:k/2}},_calculateXOffsets:function(f,G){var F=this.seriesGroups[f];var o=this._getXAxis(f);var z=[];var m=[];var n=this._getDataLen(f);var e=this._getXAxisStats(f,o,G);var w=e.min;var D=e.max;var c=e.isDateTime;var H=e.isTimeUnit;var E=this._hasColumnSeries();var d=F.polar||F.spider;var A=this._get([F.startAngle,F.minAngle,0]);var u=this._get([F.endAngle,F.maxAngle,360]);var q=d&&!(Math.abs(Math.abs(u-A)-360)>0.0001);var l=this._alignValuesWithTicks(f);var t=this._getPaddingSize(e,o,l,G,d,q,E);var J=D-w;var C=e.filterRange;if(J==0){J=1}var I=G-t.left-t.right;if(d&&l){t.left=t.right=0}var j=-1,p=-1;for(var B=0;BC.max){z.push(NaN);m.push(undefined);continue}z.push(a.jqx._ptrnd(t.left+(B-w)/J*I));m.push(v);if(j==-1){j=B}if(p==-1||pC.max){z.push(NaN);m.push(undefined);continue}var s=0;if(!c||(c&&H)){diffFromMin=v-w;s=(v-w)*I/J}else{s=(v.valueOf()-w.valueOf())/(D.valueOf()-w.valueOf())*I}s=a.jqx._ptrnd(t.left+s);z.push(s);m.push(v);if(j==-1){j=B}if(p==-1||pthis.samplingThreshold){this._sampleXOffsets(G,z,m,j,p)}return{axisStats:e,data:z,xvalues:m,first:j,last:p,length:p==-1?0:p-j+1,itemWidth:h,intervalWidth:h*e.interval,rangeLength:J,useIndeces:e.useIndeces,padding:t,axisSize:I}},_sampleXOffsets:function(k,e,c,j,f){var f=NaN;for(var d=0;dl.colors.length){o-=l.colors.length;if(++h>=this.colorSchemes.length){h=0}l=this.colorSchemes[h]}e=l.colors[o%l.colors.length]}}}return e},_createColorsCache:function(){this._colorsCache={get:function(c){if(this._store[c]){return this._store[c]}},set:function(d,c){if(this._size<10000){this._store[d]=c;this._size++}},clear:function(){this._store={};this._size=0},_size:0,_store:{}}},_getSeriesColorsInternal:function(n,e,c){var h=this.seriesGroups[n];var p=h.series[e];if(!a.isFunction(p.colorFunction)&&h.type!="pie"&&h.type!="donut"){c=NaN}var i=n+"_"+e+"_"+(isNaN(c)?"NaN":c);if(this._colorsCache.get(i)){return this._colorsCache.get(i)}var d={lineColor:"#222222",lineColorSelected:"#151515",lineColorSymbol:"#222222",lineColorSymbolSelected:"#151515",fillColor:"#222222",fillColorSelected:"#333333",fillColorSymbol:"#222222",fillColorSymbolSelected:"#333333",fillColorAlt:"#222222",fillColorAltSelected:"#333333"};var j;if(a.isFunction(p.colorFunction)){var k=!isNaN(c)?this._getDataValue(c,p.dataField,n):NaN;if(h.type.indexOf("range")!=-1&&!isNaN(c)){var f=this._getDataValue(c,p.dataFieldFrom,n);var m=this._getDataValue(c,p.dataFieldTo,n);k={from:f,to:m}}j=p.colorFunction(k,c,p,h);if(typeof(j)=="object"){for(var l in j){d[l]=j[l]}}else{d.fillColor=j}}else{for(var l in d){if(p[l]){d[l]=p[l]}}if(!p.fillColor&&!p.color){d.fillColor=this._getColorFromScheme(n,e,c)}else{p.fillColor=p.fillColor||p.color}}var o={fillColor:{baseColor:"fillColor",adjust:1},fillColorSelected:{baseColor:"fillColor",adjust:1.1},fillColorSymbol:{baseColor:"fillColor",adjust:1},fillColorSymbolSelected:{baseColor:"fillColorSymbol",adjust:2},fillColorAlt:{baseColor:"fillColor",adjust:4},fillColorAltSelected:{baseColor:"fillColor",adjust:3},lineColor:{baseColor:"fillColor",adjust:0.95},lineColorSelected:{baseColor:"lineColor",adjust:0.95},lineColorSymbol:{baseColor:"lineColor",adjust:1},lineColorSymbolSelected:{baseColor:"lineColorSelected",adjust:1}};for(var l in d){if(typeof(j)!="object"||!j[l]){if(p[l]){d[l]=p[l]}}}for(var l in d){if(typeof(j)!="object"||!j[l]){if(!p[l]){d[l]=a.jqx.adjustColor(d[o[l].baseColor],o[l].adjust)}}}this._colorsCache.set(i,d);return d},_getItemColorFromScheme:function(e,h,m,l){if(e==undefined||e==""){e=this.colorSchemes[0].name}for(var k=0;k0){var w=0;for(var c in p){if(w>0&&n!=""){n+="
              "}var u="dataField"+(c.length>0?c.substring(0,1).toUpperCase()+c.substring(1):"");var t="displayText"+(c.length>0?c.substring(0,1).toUpperCase()+c.substring(1):"");var z=o[t]||o[u];var d=p[c];if(undefined!=d){d=this._formatValue(d,k,l,h,j,C)}else{continue}if(m===true){n+=d}else{n+=z+": "+d}w++}}else{if(undefined!=p){n=this._formatValue(p,k,l,h,j,C)}}return n||""},_isNumberAsString:function(e){if(typeof(e)!="string"){return false}e=a.trim(e);for(var c=0;c="0"&&d<="9")||d==","||d=="."){continue}if(d=="-"&&c==0){continue}if((d=="("&&c==0)||(d==")"&&c==e.length-1)){continue}return false}return true},_castAsDate:function(h,d){if(h instanceof Date&&!isNaN(h)){return h}if(typeof(h)=="string"){var c;if(d){c=a.jqx.dataFormat.parsedate(h,d);if(this._isDate(c)){return c}}if(this._autoDateFormats){for(var f=0;f0){if(c<0){e+=t;c=e.length-1}else{if(t!=="."){e=e.replace(".",t)}}while((e.length-1-c)-1)?c:e.length;var h=e.substring(c);var d=0;for(var l=c;l>0;l--,d++){if((d%3===0)&&(l!==c)&&(!j||(l>1)||(j&&n))){h=q+h}h=e.charAt(l-1)+h}e=h;if(j&&n){e="("+e+")"}return o+e+s},_defaultNumberFormat:{prefix:"",sufix:"",decimalSeparator:".",thousandsSeparator:",",decimalPlaces:2,negativeWithBrackets:false},_calculateControlPoints:function(i,h){var f=i[h],o=i[h+1],e=i[h+2],l=i[h+3],d=i[h+4],k=i[h+5];var n=0.4;var q=Math.sqrt(Math.pow(e-f,2)+Math.pow(l-o,2));var c=Math.sqrt(Math.pow(d-e,2)+Math.pow(k-l,2));var j=(q+c);if(j==0){j=1}var p=n*q/j;var m=n-p;return[e+p*(f-d),l+p*(o-k),e-m*(f-d),l-m*(o-k)]},_getBezierPoints:function(e){var d="";var k=[],f=[];var j=e.split(" ");for(var h=0;h=4&&(Math.abs(k[c-2]-k[c-4])<3||Math.abs(k[c-1]-k[c-3])<3||this._isVML)){d+=" L"+a.jqx._ptrnd(k[c-2])+","+a.jqx._ptrnd(k[c-1])+" "}else{if(c>=5){d+=" Q"+a.jqx._ptrnd(f[c*2-10])+","+a.jqx._ptrnd(f[c*2-9])+" "+a.jqx._ptrnd(k[c-2])+","+a.jqx._ptrnd(k[c-1])+" "}}return d},_animTickInt:50,_createAnimationGroup:function(c){if(!this._animGroups){this._animGroups={}}this._animGroups[c]={animations:[],startTick:NaN}},_startAnimation:function(e){var f=new Date();var c=f.getTime();this._animGroups[e].startTick=c;this._runAnimation();this._enableAnimTimer()},_enqueueAnimation:function(f,e,d,i,h,c,j){if(i<0){i=0}if(j==undefined){j="easeInOutSine"}this._animGroups[f].animations.push({key:e,properties:d,duration:i,fn:h,context:c,easing:j})},_stopAnimations:function(){clearTimeout(this._animtimer);this._animtimer=undefined;this._animGroups=undefined},_enableAnimTimer:function(){if(!this._animtimer){var c=this;this._animtimer=setTimeout(function(){c._runAnimation()},this._animTickInt)}},_runAnimation:function(t){if(this._animGroups){var w=new Date();var l=w.getTime();var s={};for(var n in this._animGroups){var v=this._animGroups[n].animations;var o=this._animGroups[n].startTick;var k=0;for(var q=0;qk){k=z.duration}var u=z.duration>0?c/z.duration:1;var m=u;if(z.easing&&z.duration!=0){m=a.easing[z.easing](u,c,0,1,z.duration)}if(u>1){u=1;m=1}if(z.fn){z.fn(z.key,z.context,m);continue}var h={};for(var n=0;nl){s[n]=({startTick:o,animations:v})}}this._animGroups=s;if(this.renderer instanceof a.jqx.HTML5Renderer){this.renderer.refresh()}}this._animtimer=null;for(var n in this._animGroups){this._enableAnimTimer();break}},_fixCoords:function(e,f){var c=this.seriesGroups[f].orientation=="horizontal";if(!c){return e}var d=e.x;e.x=e.y;e.y=d+this._plotRect.y-this._plotRect.x;var d=e.width;e.width=e.height;e.height=d;return e},getItemCoord:function(c,e,w){var l=this;if(l._isPieGroup(c)&&(!l._isSerieVisible(c,e,w)||!l._renderData||l._renderData.length<=c)){return{x:NaN,y:NaN}}if(!l._isSerieVisible(c,e)||!l._renderData||l._renderData.length<=c){return{x:NaN,y:NaN}}var t=l.seriesGroups[c];var k=t.series[e];var p=l._getItemCoord(c,e,w);if(l._isPieGroup(c)){if(isNaN(p.x)||isNaN(p.y)||isNaN(p.fromAngle)||isNaN(p.toAngle)){return{x:NaN,y:NaN}}var j=this._plotRect;var q=p.fromAngle*(Math.PI/180);var f=p.toAngle*(Math.PI/180);x1=j.x+p.center.x+Math.cos(q)*p.outerRadius;x2=j.x+p.center.x+Math.cos(f)*p.outerRadius;y1=j.y+p.center.y-Math.sin(q)*p.outerRadius;y2=j.y+p.center.y-Math.sin(f)*p.outerRadius;var i=Math.min(x1,x2);var n=Math.abs(x2-x1);var h=Math.min(y1,y2);var m=Math.abs(y2-y1);p={x:i,y:h,width:n,height:m,center:p.center,centerOffset:p.centerOffset,innerRadius:p.innerRadius,outerRadius:p.outerRadius,selectedRadiusChange:p.selectedRadiusChange,fromAngle:p.fromAngle,toAngle:p.toAngle};return p}if(t.type.indexOf("column")!=-1||t.type.indexOf("waterfall")!=-1){var z=this._getColumnSerieWidthAndOffset(c,e);p.height=Math.abs(p.y.to-p.y.from);p.y=Math.min(p.y.to,p.y.from);p.x+=z.offset;p.width=z.width}else{if(t.type.indexOf("ohlc")!=-1||t.type.indexOf("candlestick")!=-1){var z=this._getColumnSerieWidthAndOffset(c,e);var h=p.y;var v=Math.min(h.Open,h.Close,h.Low,h.High);var u=Math.max(h.Open,h.Close,h.Low,h.High);p.height=Math.abs(u-v);p.y=v;p.x+=z.offset;p.width=z.width}else{if(t.type.indexOf("line")!=-1||t.type.indexOf("area")!=-1){p.width=p.height=0;p.y=p.y.to}else{if(t.type.indexOf("bubble")!=-1||t.type.indexOf("scatter")!=-1){p.center={x:p.x,y:p.y.to};var d=p.y.radius;if(k.symbolType!="circle"&&k.symbolType!=undefined){d/=2}p.y=p.y.to;p.radius=d;p.width=2*d;p.height=2*d}}}}p=this._fixCoords(p,c);if(t.polar||t.spider){var o=this._toPolarCoord(this._renderData[c].polarCoords,this._plotRect,p.x,p.y);p.x=o.x;p.y=o.y;if(p.center){p.center=this._toPolarCoord(this._renderData[c].polarCoords,this._plotRect,p.center.x,p.center.y)}}if(t.type.indexOf("bubble")!=-1||t.type.indexOf("scatter")!=-1){p.x-=d;p.y-=d}return p},_getItemCoord:function(p,k,c){var f=this.seriesGroups[p],m,l;if(!f||!this._renderData){return{x:NaN,y:NaN}}var h=f.series[k];if(!h){return{x:NaN,y:NaN}}var j=this._plotRect;if(this._isPieGroup(p)){var n=this._renderData[p].offsets[k][c];if(!n){return{x:NaN,y:NaN}}var d=(n.fromAngle+n.toAngle)/2*(Math.PI/180);m=j.x+n.x+Math.cos(d)*n.outerRadius;l=j.y+n.y-Math.sin(d)*n.outerRadius;return{x:m,y:l,center:{x:n.x,y:n.y},centerOffset:n.centerOffset,innerRadius:n.innerRadius,outerRadius:n.outerRadius,selectedRadiusChange:n.selectedRadiusChange,fromAngle:n.fromAngle,toAngle:n.toAngle}}else{m=j.x+this._renderData[p].xoffsets.data[c];l=this._renderData[p].offsets[k][c];if(isNaN(m)||!l){return{x:NaN,y:NaN}}}var o={};for(var e in l){o[e]=l[e]}return{x:m,y:o}},_detectDateFormat:function(k,f){var e={en_US_d:"M/d/yyyy",en_US_D:"dddd, MMMM dd, yyyy",en_US_t:"h:mm tt",en_US_T:"h:mm:ss tt",en_US_f:"dddd, MMMM dd, yyyy h:mm tt",en_US_F:"dddd, MMMM dd, yyyy h:mm:ss tt",en_US_M:"MMMM dd",en_US_Y:"yyyy MMMM",en_US_S:"yyyy\u0027-\u0027MM\u0027-\u0027dd\u0027T\u0027HH\u0027:\u0027mm\u0027:\u0027ss",en_CA_d:"dd/MM/yyyy",en_CA_D:"MMMM-dd-yy",en_CA_f:"MMMM-dd-yy h:mm tt",en_CA_F:"MMMM-dd-yy h:mm:ss tt",ISO:"yyyy-MM-dd hh:mm:ss",ISO2:"yyyy-MM-dd HH:mm:ss",d1:"dd.MM.yyyy",d2:"dd-MM-yyyy",zone1:"yyyy-MM-ddTHH:mm:ss-HH:mm",zone2:"yyyy-MM-ddTHH:mm:ss+HH:mm",custom:"yyyy-MM-ddTHH:mm:ss.fff",custom2:"yyyy-MM-dd HH:mm:ss.fff",de_DE_d:"dd.MM.yyyy",de_DE_D:"dddd, d. MMMM yyyy",de_DE_t:"HH:mm",de_DE_T:"HH:mm:ss",de_DE_f:"dddd, d. MMMM yyyy HH:mm",de_DE_F:"dddd, d. MMMM yyyy HH:mm:ss",de_DE_M:"dd MMMM",de_DE_Y:"MMMM yyyy",fr_FR_d:"dd/MM/yyyy",fr_FR_D:"dddd d MMMM yyyy",fr_FR_t:"HH:mm",fr_FR_T:"HH:mm:ss",fr_FR_f:"dddd d MMMM yyyy HH:mm",fr_FR_F:"dddd d MMMM yyyy HH:mm:ss",fr_FR_M:"d MMMM",fr_FR_Y:"MMMM yyyy",it_IT_d:"dd/MM/yyyy",it_IT_D:"dddd d MMMM yyyy",it_IT_t:"HH:mm",it_IT_T:"HH:mm:ss",it_IT_f:"dddd d MMMM yyyy HH:mm",it_IT_F:"dddd d MMMM yyyy HH:mm:ss",it_IT_M:"dd MMMM",it_IT_Y:"MMMM yyyy",ru_RU_d:"dd.MM.yyyy",ru_RU_D:"d MMMM yyyy '?.'",ru_RU_t:"H:mm",ru_RU_T:"H:mm:ss",ru_RU_f:"d MMMM yyyy '?.' H:mm",ru_RU_F:"d MMMM yyyy '?.' H:mm:ss",ru_RU_Y:"MMMM yyyy",cs_CZ_d:"d.M.yyyy",cs_CZ_D:"d. MMMM yyyy",cs_CZ_t:"H:mm",cs_CZ_T:"H:mm:ss",cs_CZ_f:"d. MMMM yyyy H:mm",cs_CZ_F:"d. MMMM yyyy H:mm:ss",cs_CZ_M:"dd MMMM",cs_CZ_Y:"MMMM yyyy",he_IL_d:"dd MMMM yyyy",he_IL_D:"dddd dd MMMM yyyy",he_IL_t:"HH:mm",he_IL_T:"HH:mm:ss",he_IL_f:"dddd dd MMMM yyyy HH:mm",he_IL_F:"dddd dd MMMM yyyy HH:mm:ss",he_IL_M:"dd MMMM",he_IL_Y:"MMMM yyyy",hr_HR_d:"d.M.yyyy.",hr_HR_D:"d. MMMM yyyy.",hr_HR_t:"H:mm",hr_HR_T:"H:mm:ss",hr_HR_f:"d. MMMM yyyy. H:mm",hr_HR_F:"d. MMMM yyyy. H:mm:ss",hr_HR_M:"d. MMMM",hu_HU_d:"yyyy.MM.dd.",hu_HU_D:"yyyy. MMMM d.",hu_HU_t:"H:mm",hu_HU_T:"H:mm:ss",hu_HU_f:"yyyy. MMMM d. H:mm",hu_HU_F:"yyyy. MMMM d. H:mm:ss",hu_HU_M:"MMMM d.",hu_HU_Y:"yyyy. MMMM",jp_JP_d:"gg y/M/d",jp_JP_D:"gg y'?'M'?'d'?'",jp_JP_t:"H:mm",jp_JP_T:"H:mm:ss",jp_JP_f:"gg y'?'M'?'d'?' H:mm",jp_JP_F:"gg y'?'M'?'d'?' H:mm:ss",jp_JP_M:"M'?'d'?'",jp_JP_Y:"gg y'?'M'?'",lt_LT_d:"yyyy.MM.dd",lt_LT_D:"yyyy 'm.' MMMM d 'd.'",lt_LT_t:"HH:mm",lt_LT_T:"HH:mm:ss",lt_LT_f:"yyyy 'm.' MMMM d 'd.' HH:mm",lt_LT_F:"yyyy 'm.' MMMM d 'd.' HH:mm:ss",lt_LT_M:"MMMM d 'd.'",lt_LT_Y:"yyyy 'm.' MMMM",sa_IN_d:"dd-MM-yyyy",sa_IN_D:"dd MMMM yyyy dddd",sa_IN_t:"HH:mm",sa_IN_T:"HH:mm:ss",sa_IN_f:"dd MMMM yyyy dddd HH:mm",sa_IN_F:"dd MMMM yyyy dddd HH:mm:ss",sa_IN_M:"dd MMMM",basic_y:"yyyy",basic_ym:"yyyy-MM",basic_d:"yyyy-MM-dd",basic_dhm:"yyyy-MM-dd hh:mm",basic_bhms:"yyyy-MM-dd hh:mm:ss",basic2_ym:"MM-yyyy",basic2_d:"MM-dd-yyyy",basic2_dhm:"MM-dd-yyyy hh:mm",basic2_dhms:"MM-dd-yyyy hh:mm:ss",basic3_ym:"yyyy/MM",basic3_d:"yyyy/MM/dd",basic3_dhm:"yyyy/MM/dd hh:mm",basic3_bhms:"yyyy/MM/dd hh:mm:ss",basic4_ym:"MM/yyyy",basic4_d:"MM/dd/yyyy",basic4_dhm:"MM/dd/yyyy hh:mm",basic4_dhms:"MM/dd/yyyy hh:mm:ss"};if(f){e=a.extend({},e,f)}var d=[];if(!a.isArray(k)){d.push(k)}else{d=k}for(var h in e){e[h]={format:e[h],count:0}}for(var l=0;lm.count){m.key=h;m.count=e[h].count}}return m.key?e[m.key].format:""},_testXAxisDateFormat:function(k){var m=this;var e=m._getXAxis(k);var d=m._getDataLen(k);var f={};if(m.localization&&m.localization.patterns){for(var l in m.localization.patterns){f["local_"+l]=m.localization.patterns[l]}}var j=[];for(var h=0;h
              ");c.css({background:t,opacity:0.1,left:o.x,top:o.y,width:o.width,height:o.height});c.appendTo(n);while(this._sliders.length
              ";var d="
              ";var j="
              ";this._sliders[u]={element:c,host:n,_sliderInitialAbsoluteRect:{x:c.coord().left,y:c.coord().top,width:o.width,height:o.height},_hostInitialAbsolutePos:{x:n.coord().left,y:n.coord().top},getRect:function(){return{x:this.host.coord().left-this._hostInitialAbsolutePos.x+this._sliderInitialAbsoluteRect.x,y:this.host.coord().top-this._hostInitialAbsolutePos.y+this._sliderInitialAbsoluteRect.y,width:this._sliderInitialAbsoluteRect.width,height:this._sliderInitialAbsoluteRect.height}},rect:o,left:a(l),right:a(l),leftTop:a(d),rightTop:a(d),leftBorder:a(d),leftBar:a(j),rightBorder:a(d),rightBar:a(j)};this._sliders[u].left.appendTo(n);this._sliders[u].right.appendTo(n);this._sliders[u].leftTop.appendTo(n);this._sliders[u].rightTop.appendTo(n);this._sliders[u].leftBorder.appendTo(n);this._sliders[u].rightBorder.appendTo(n);this._sliders[u].leftBar.appendTo(n);this._sliders[u].rightBar.appendTo(n);var s=this._renderData[u].xAxis;var f=s.data.axisStats;var q=f.min.valueOf();var h=f.max.valueOf();var k=this._valueToOffset(u,q);var m=this._valueToOffset(u,h);if(k>m){var e=m;m=k;k=e}if(this.seriesGroups[u].orientation!="horizontal"){c.css({left:Math.round(o.x+k),top:o.y,width:Math.round(m-k),height:o.height})}else{c.css({top:Math.round(o.y+k),left:o.x,height:Math.round(m-k),width:o.width})}this._setSliderPositions(u,k,m)},_setSliderPositions:function(f,t,i){var v=this.seriesGroups[f];var e=this._getXAxis(f);var p=e.rangeSelector;var c=v.orientation=="horizontal";if(e.rangeSelector.renderTo){c=false}var k=e.position;if(p.renderTo&&p.position){k=p.position}var m=(c&&k=="right")||(!c&&k=="top");var o=this._sliders[f];var s=c?"top":"left";var h=c?"left":"top";var j=c?"height":"width";var q=c?"width":"height";var l=c?"y":"x";var n=c?"x":"y";var d=o.rect;o.left.css(s,d[l]);o.left.css(h,d[n]);o.left.css(j,t);o.left.css(q,d[q]);o.right.css(s,d[l]+i);o.right.css(h,d[n]);o.right.css(j,d[j]-i+1);o.right.css(q,d[q]);o.leftTop.css(s,d[l]);o.leftTop.css(h,d[n]+(((c&&k=="right")||(!c&&k!="top"))?0:d[q]));o.leftTop.css(j,t);o.leftTop.css(q,1);o.rightTop.css(s,d[l]+i);o.rightTop.css(h,d[n]+(((c&&k=="right")||(!c&&k!="top"))?0:d[q]));o.rightTop.css(j,d[j]-i+1);o.rightTop.css(q,1);o.leftBorder.css(s,d[l]+t);o.leftBorder.css(h,d[n]);o.leftBorder.css(j,1);o.leftBorder.css(q,d[q]);var u=d[q]/4;if(u>20){u=20}if(u<3){u=3}o.leftBar.css(s,d[l]+t-3);o.leftBar.css(h,d[n]+d[q]/2-u/2);o.leftBar.css(j,5);o.leftBar.css(q,u);o.rightBorder.css(s,d[l]+i);o.rightBorder.css(h,d[n]);o.rightBorder.css(j,1);o.rightBorder.css(q,d[q]);o.rightBar.css(s,d[l]+i-3);o.rightBar.css(h,d[n]+d[q]/2-u/2);o.rightBar.css(j,5);o.rightBar.css(q,u)},_resizeState:{},_onSliderMouseDown:function(e){e.stopImmediatePropagation();e.stopPropagation();var c=e.data.self;var d=c._sliders[e.data.groupIndex];if(!d){return}if(c._resizeState.state==undefined){c._testAndSetReadyResize(e)}if(c._resizeState.state!="ready"){return}a.jqx._rangeSelectorTarget=c;c._resizeState.state="resizing"},_valueToOffset:function(o,m){var n=this.seriesGroups[o];var e=this._sliders[o];var d=e.host.jqxChart("getInstance");var p=d._renderData[0].xAxis;var i=p.data.axisStats;var l=i.min.valueOf();var c=i.max.valueOf();var j=c-l;if(j==0){j=1}var f=this._getXAxis(o);var h=n.orientation=="horizontal"?"height":"width";var k=(m.valueOf()-l)/j;return e.getRect()[h]*(f.flip?(1-k):k)},_offsetToValue:function(q,h){var e=this._sliders[q];var p=this.seriesGroups[q];var f=this._getXAxis(q);var i=p.orientation=="horizontal"?"height":"width";var k=e.getRect()[i];if(k==0){k=1}var l=h/k;var d=e.host.jqxChart("getInstance");var o=d._renderData[0].xAxis;var j=o.data.axisStats;var m=j.min.valueOf();var c=j.max.valueOf();var n=h/k*(c-m)+m;if(f.flip==true){n=c-h/k*(c-m)}if(this._isDate(j.min)||this._isDate(j.max)){n=new Date(n)}else{if(f.dataField==undefined||j.useIndeces){n=Math.round(n)}if(nj.max){n=j.max}}return n},_onSliderMouseUp:function(s){var m=a.jqx._rangeSelectorTarget;if(!m){return}var i=s.data.groupIndex;var c=s.data.swapXY;var o=m._sliders[i];if(!o){return}if(m._resizeState.state!="resizing"){return}s.stopImmediatePropagation();s.stopPropagation();m._resizeState={};m.host.css("cursor","default");var j=!c?"left":"top";var d=!c?"width":"height";var q=!c?"x":"y";var p=o.element.coord()[j];var f=p+(!c?o.element.width():o.element.height());var e=o.getRect();var k=m._offsetToValue(i,p-e[q]);var t=m._offsetToValue(i,f-e[q]);var l=o.host.jqxChart("getInstance");var n=l._renderData[0].xAxis;var v=n.data.axisStats;if(!v.isTimeUnit&&(t.valueOf()-k.valueOf())>86400000){k.setHours(0,0,0,0);t.setDate(t.getDate()+1);t.setHours(0,0,0,0)}var h=m._getXAxis(i);if(h.flip){var u=k;k=t;t=u}m._selectorRange[i]={min:k,max:t};m._isSelectorRefresh=true;var w=m.enableAnimations;m._raiseEvent("rangeSelectionChanging",{instance:m,minValue:k,maxValue:t});m.enableAnimations=false;m.update();m.enableAnimations=w;m._raiseEvent("rangeSelectionChanged",{instance:m,minValue:k,maxValue:t})},_onSliderMouseMove:function(w){var q=w.data.self;var A=w.data.renderTo;var k=w.data.groupIndex;var t=q._sliders[k];var e=w.data.swapXY;if(!t){return}var h=t.getRect();var j=t.element;var B=a.jqx.position(w);var u=j.coord();var s=e?"left":"top";var o=!e?"left":"top";var i=e?"width":"height";var f=!e?"width":"height";var v=!e?"x":"y";if(q._resizeState.state=="resizing"){w.stopImmediatePropagation();w.stopPropagation();if(q._resizeState.side=="left"){var p=Math.round(B[o]-u[o]);var n=h[v];if(u[o]+p>=n&&u[o]+p<=n+h[f]){var l=parseInt(j.css(o));var d=Math.max(2,(e?j.height():j.width())-p);j.css(f,d);j.css(o,l+p)}}else{if(q._resizeState.side=="right"){var c=e?j.height():j.width();var p=Math.round(B[o]-u[o]-c);var n=h[v];if(u[o]+c+p>=n&&u[o]+p+c<=n+h[f]){var d=Math.max(2,c+p);j.css(f,d)}}else{if(q._resizeState.side=="move"){var c=e?j.height():j.width();var l=parseInt(j.css(o));var p=Math.round(B[o]-q._resizeState.startPos);if(u[o]+p>=h[v]&&u[o]+p+c<=h[v]+h[f]){q._resizeState.startPos=B[o];j.css(o,l+p)}}}}var z=parseInt(j.css(o))-t.rect[v];var m=z+(e?j.height():j.width());q._setSliderPositions(k,z,m)}else{q._testAndSetReadyResize(w)}},_testAndSetReadyResize:function(c){var t=c.data.self;var m=c.data.renderTo;var q=c.data.groupIndex;var d=t._sliders[q];var i=c.data.swapXY;var o=d.getRect();var f=d.element;var h=a.jqx.position(c);var j=f.coord();var l=i?"left":"top";var s=!i?"left":"top";var k=i?"width":"height";var n=!i?"width":"height";var e=!i?"x":"y";var p=t._isTouchDevice?30:5;if(h[l]>=j[l]&&h[l]<=j[l]+o[k]){if(Math.abs(h[s]-j[s])<=p){m.css("cursor",i?"row-resize":"col-resize");t._resizeState={state:"ready",side:"left"}}else{if(Math.abs(h[s]-j[s]-(!i?f.width():f.height()))<=p){m.css("cursor",i?"row-resize":"col-resize");t._resizeState={state:"ready",side:"right"}}else{if(h[s]+p>j[s]&&h[s]-p
              ");b.css({background:q,opacity:0.1,left:m.x,top:m.y,width:m.width,height:m.height});b.appendTo(l);while(this._sliders.length
              ";var c="
              ";var h="
              ";this._sliders[r]={element:b,host:l,_sliderInitialAbsoluteRect:{x:b.coord().left,y:b.coord().top,width:m.width,height:m.height},_hostInitialAbsolutePos:{x:l.coord().left,y:l.coord().top},getRect:function(){return{x:this.host.coord().left-this._hostInitialAbsolutePos.x+this._sliderInitialAbsoluteRect.x,y:this.host.coord().top-this._hostInitialAbsolutePos.y+this._sliderInitialAbsoluteRect.y,width:this._sliderInitialAbsoluteRect.width,height:this._sliderInitialAbsoluteRect.height}},rect:m,left:a(j),right:a(j),leftTop:a(c),rightTop:a(c),leftBorder:a(c),leftBar:a(h),rightBorder:a(c),rightBar:a(h)};this._sliders[r].left.appendTo(l);this._sliders[r].right.appendTo(l);this._sliders[r].leftTop.appendTo(l);this._sliders[r].rightTop.appendTo(l);this._sliders[r].leftBorder.appendTo(l);this._sliders[r].rightBorder.appendTo(l);this._sliders[r].leftBar.appendTo(l);this._sliders[r].rightBar.appendTo(l);var p=this._renderData[r].xAxis;var e=p.data.axisStats;var o=e.min.valueOf();var f=e.max.valueOf();var i=this._valueToOffset(r,o);var k=this._valueToOffset(r,f);if(i>k){var d=k;k=i;i=d}if(this.seriesGroups[r].orientation!="horizontal"){b.css({left:Math.round(m.x+i),top:m.y,width:Math.round(k-i),height:m.height})}else{b.css({top:Math.round(m.y+i),left:m.x,height:Math.round(k-i),width:m.width})}this._setSliderPositions(r,i,k)},_setSliderPositions:function(e,r,h){var t=this.seriesGroups[e];var d=this._getXAxis(e);var o=d.rangeSelector;var b=t.orientation=="horizontal";if(d.rangeSelector.renderTo){b=false}var j=d.position;if(o.renderTo&&o.position){j=o.position}var l=(b&&j=="right")||(!b&&j=="top");var n=this._sliders[e];var q=b?"top":"left";var f=b?"left":"top";var i=b?"height":"width";var p=b?"width":"height";var k=b?"y":"x";var m=b?"x":"y";var c=n.rect;n.left.css(q,c[k]);n.left.css(f,c[m]);n.left.css(i,r);n.left.css(p,c[p]);n.right.css(q,c[k]+h);n.right.css(f,c[m]);n.right.css(i,c[i]-h+1);n.right.css(p,c[p]);n.leftTop.css(q,c[k]);n.leftTop.css(f,c[m]+(((b&&j=="right")||(!b&&j!="top"))?0:c[p]));n.leftTop.css(i,r);n.leftTop.css(p,1);n.rightTop.css(q,c[k]+h);n.rightTop.css(f,c[m]+(((b&&j=="right")||(!b&&j!="top"))?0:c[p]));n.rightTop.css(i,c[i]-h+1);n.rightTop.css(p,1);n.leftBorder.css(q,c[k]+r);n.leftBorder.css(f,c[m]);n.leftBorder.css(i,1);n.leftBorder.css(p,c[p]);var s=c[p]/4;if(s>20){s=20}if(s<3){s=3}n.leftBar.css(q,c[k]+r-3);n.leftBar.css(f,c[m]+c[p]/2-s/2);n.leftBar.css(i,5);n.leftBar.css(p,s);n.rightBorder.css(q,c[k]+h);n.rightBorder.css(f,c[m]);n.rightBorder.css(i,1);n.rightBorder.css(p,c[p]);n.rightBar.css(q,c[k]+h-3);n.rightBar.css(f,c[m]+c[p]/2-s/2);n.rightBar.css(i,5);n.rightBar.css(p,s)},_resizeState:{},_onSliderMouseDown:function(d){d.stopImmediatePropagation();d.stopPropagation();var b=d.data.self;var c=b._sliders[d.data.groupIndex];if(!c){return}if(b._resizeState.state==undefined){b._testAndSetReadyResize(d)}if(b._resizeState.state!="ready"){return}a.jqx._rangeSelectorTarget=b;b._resizeState.state="resizing"},_valueToOffset:function(m,k){var l=this.seriesGroups[m];var d=this._sliders[m];var c=d.host.jqxChart("getInstance");var n=c._renderData[0].xAxis;var g=n.data.axisStats;var j=g.min.valueOf();var b=g.max.valueOf();var h=b-j;if(h==0){h=1}var e=this._getXAxis(m);var f=l.orientation=="horizontal"?"height":"width";var i=(k.valueOf()-j)/h;return d.getRect()[f]*(e.flip?(1-i):i)},_offsetToValue:function(o,f){var d=this._sliders[o];var n=this.seriesGroups[o];var e=this._getXAxis(o);var g=n.orientation=="horizontal"?"height":"width";var i=d.getRect()[g];if(i==0){i=1}var j=f/i;var c=d.host.jqxChart("getInstance");var m=c._renderData[0].xAxis;var h=m.data.axisStats;var k=h.min.valueOf();var b=h.max.valueOf();var l=f/i*(b-k)+k;if(e.flip==true){l=b-f/i*(b-k)}if(this._isDate(h.min)||this._isDate(h.max)){l=new Date(l)}else{if(e.dataField==undefined||h.useIndeces){l=Math.round(l)}if(lh.max){l=h.max}}return l},_onSliderMouseUp:function(p){var k=a.jqx._rangeSelectorTarget;if(!k){return}var g=p.data.groupIndex;var b=p.data.swapXY;var m=k._sliders[g];if(!m){return}if(k._resizeState.state!="resizing"){return}p.stopImmediatePropagation();p.stopPropagation();k._resizeState={};k.host.css("cursor","default");var h=!b?"left":"top";var c=!b?"width":"height";var o=!b?"x":"y";var n=m.element.coord()[h];var e=n+(!b?m.element.width():m.element.height());var d=m.getRect();var i=k._offsetToValue(g,n-d[o]);var q=k._offsetToValue(g,e-d[o]);var j=m.host.jqxChart("getInstance");var l=j._renderData[0].xAxis;var s=l.data.axisStats;if(!s.isTimeUnit&&(q.valueOf()-i.valueOf())>86400000){i.setHours(0,0,0,0);q.setDate(q.getDate()+1);q.setHours(0,0,0,0)}var f=k._getXAxis(g);if(f.flip){var r=i;i=q;q=r}k._selectorRange[g]={min:i,max:q};k._isSelectorRefresh=true;var t=k.enableAnimations;k._raiseEvent("rangeSelectionChanging",{instance:k,minValue:i,maxValue:q});k.enableAnimations=false;k.update();k.enableAnimations=t;k._raiseEvent("rangeSelectionChanged",{instance:k,minValue:i,maxValue:q})},_onSliderMouseMove:function(t){var o=t.data.self;var v=t.data.renderTo;var i=t.data.groupIndex;var q=o._sliders[i];var d=t.data.swapXY;if(!q){return}var f=q.getRect();var h=q.element;var w=a.jqx.position(t);var r=h.coord();var p=d?"left":"top";var m=!d?"left":"top";var g=d?"width":"height";var e=!d?"width":"height";var s=!d?"x":"y";if(o._resizeState.state=="resizing"){t.stopImmediatePropagation();t.stopPropagation();if(o._resizeState.side=="left"){var n=Math.round(w[m]-r[m]);var l=f[s];if(r[m]+n>=l&&r[m]+n<=l+f[e]){var j=parseInt(h.css(m));var c=Math.max(2,(d?h.height():h.width())-n);h.css(e,c);h.css(m,j+n)}}else{if(o._resizeState.side=="right"){var b=d?h.height():h.width();var n=Math.round(w[m]-r[m]-b);var l=f[s];if(r[m]+b+n>=l&&r[m]+n+b<=l+f[e]){var c=Math.max(2,b+n);h.css(e,c)}}else{if(o._resizeState.side=="move"){var b=d?h.height():h.width();var j=parseInt(h.css(m));var n=Math.round(w[m]-o._resizeState.startPos);if(r[m]+n>=f[s]&&r[m]+n+b<=f[s]+f[e]){o._resizeState.startPos=w[m];h.css(m,j+n)}}}}var u=parseInt(h.css(m))-q.rect[s];var k=u+(d?h.height():h.width());o._setSliderPositions(i,u,k)}else{o._testAndSetReadyResize(t)}},_testAndSetReadyResize:function(b){var q=b.data.self;var k=b.data.renderTo;var o=b.data.groupIndex;var c=q._sliders[o];var g=b.data.swapXY;var m=c.getRect();var e=c.element;var f=a.jqx.position(b);var h=e.coord();var j=g?"left":"top";var p=!g?"left":"top";var i=g?"width":"height";var l=!g?"width":"height";var d=!g?"x":"y";var n=q._isTouchDevice?30:5;if(f[j]>=h[j]&&f[j]<=h[j]+m[i]){if(Math.abs(f[p]-h[p])<=n){k.css("cursor",g?"row-resize":"col-resize");q._resizeState={state:"ready",side:"left"}}else{if(Math.abs(f[p]-h[p]-(!g?e.width():e.height()))<=n){k.css("cursor",g?"row-resize":"col-resize");q._resizeState={state:"ready",side:"right"}}else{if(f[p]+n>h[p]&&f[p]-n");this.host.append(this.input);if(b){this.input.attr("name",b)}this.input.val(this.checked);this.host.attr("role","checkbox");a.jqx.aria(this)}},render:function(){this.init=true;var d=this;this.setSize();this.propertyChangeMap.width=function(h,j,i,k){d.setSize()};this.propertyChangeMap.height=function(h,j,i,k){d.setSize()};this._removeHandlers();if(this.checkbox){this.checkbox.remove();this.checkbox=null}if(this.checkMark){this.checkMark.remove();this.checkMark=null}if(this.box){this.box.remove();this.box=null}if(this.clear){this.clear.remove();this.clear=null}if(this.boxSize==null){this.boxSize=13}var g=parseInt(this.boxSize)+"px";var f="13px";var e=Math.floor((parseInt(this.boxSize)-13)/2);var b=e;e+="px";b+="px";if(this.boxSize!="13px"){this.checkbox=a('
              ')}else{this.checkbox=a('
              ')}this.host.prepend(this.checkbox);if(!this.disabledContainer){if(!this.host.attr("tabIndex")){this.host.attr("tabIndex",0)}this.clear=a('
              ');this.host.append(this.clear)}this.checkMark=a(this.checkbox[0].firstChild.firstChild);this.box=this.checkbox;this.box.addClass(this.toThemeProperty("jqx-checkbox-default")+" "+this.toThemeProperty("jqx-fill-state-normal")+" "+this.toThemeProperty("jqx-rc-all"));if(this.disabled){this.disable()}if(!this.disabledContainer){this.host.addClass(this.toThemeProperty("jqx-widget"));this.host.addClass(this.toThemeProperty("jqx-checkbox"))}if(this.locked&&!this.disabledContainer){this.host.css("cursor","auto")}var c=this.element.getAttribute("checked");if(c=="checked"||c=="true"||c==true){this.checked=true}this._addInput();this._render();this._addHandlers();this.init=false},refresh:function(b){if(!b){this.setSize();this._render()}},resize:function(c,b){this.width=c;this.height=b;this.refresh()},setSize:function(){if(this.width!=null&&this.width.toString().indexOf("px")!=-1){this.host.width(this.width)}else{if(this.width!=undefined&&!isNaN(this.width)){this.host.width(this.width)}}if(this.height!=null&&this.height.toString().indexOf("px")!=-1){this.host.height(this.height)}else{if(this.height!=undefined&&!isNaN(this.height)){this.host.height(this.height)}}},_addHandlers:function(){var d=this;var c=a.jqx.mobile.isTouchDevice();var b="mousedown";if(c){b=a.jqx.mobile.getTouchEventName("touchend")}this.addHandler(this.box,b,function(e){if(!d.disabled&&!d.enableContainerClick&&!d.locked){d.changeType="mouse";d.toggle();if(d.updated){e.owner=d;d.updated(e,d.checked,d.oldChecked)}if(e.preventDefault){e.preventDefault()}return false}});if(!this.disabledContainer){this.addHandler(this.host,"keydown",function(e){if(!d.disabled&&!d.locked&&d.keyboardCheck){if(e.keyCode==32){if(!d._canFocus){return true}d.changeType="keyboard";d.toggle();if(d.updated){e.owner=d;d.updated(e,d.checked,d.oldChecked)}if(e.preventDefault){e.preventDefault()}return false}}});this.addHandler(this.host,b,function(e){if(!d.disabled&&d.enableContainerClick&&!d.locked){d.changeType="mouse";d.toggle();if(e.preventDefault){e.preventDefault()}if(d._canFocus){d.focus()}return false}});this.addHandler(this.host,"selectstart",function(e){if(!d.disabled&&d.enableContainerClick){if(e.preventDefault){e.preventDefault()}return false}});this.addHandler(this.host,"mouseup",function(e){if(!d.disabled&&d.enableContainerClick){if(e.preventDefault){e.preventDefault()}}});this.addHandler(this.host,"focus",function(e){if(!d.disabled&&!d.locked){if(!d._canFocus){return true}if(d.enableHover){d.box.addClass(d.toThemeProperty("jqx-checkbox-hover"))}d.box.addClass(d.toThemeProperty("jqx-fill-state-focus"));if(e.preventDefault){e.preventDefault()}d.hovered=true;return false}});this.addHandler(this.host,"blur",function(e){if(!d.disabled&&!d.locked){if(!d._canFocus){return true}if(d.enableHover){d.box.removeClass(d.toThemeProperty("jqx-checkbox-hover"))}d.box.removeClass(d.toThemeProperty("jqx-fill-state-focus"));if(e.preventDefault){e.preventDefault()}d.hovered=false;return false}});this.addHandler(this.host,"mouseenter",function(e){if(d.locked){d.host.css("cursor","arrow")}if(d.enableHover){if(!d.disabled&&d.enableContainerClick&&!d.locked){d.box.addClass(d.toThemeProperty("jqx-checkbox-hover"));d.box.addClass(d.toThemeProperty("jqx-fill-state-hover"));if(e.preventDefault){e.preventDefault()}d.hovered=true;return false}}});this.addHandler(this.host,"mouseleave",function(e){if(d.enableHover){if(!d.disabled&&d.enableContainerClick&&!d.locked){d.box.removeClass(d.toThemeProperty("jqx-checkbox-hover"));d.box.removeClass(d.toThemeProperty("jqx-fill-state-hover"));if(e.preventDefault){e.preventDefault()}d.hovered=false;return false}}});this.addHandler(this.box,"mouseenter",function(){if(d.locked){return}if(!d.disabled&&!d.enableContainerClick){d.box.addClass(d.toThemeProperty("jqx-checkbox-hover"));d.box.addClass(d.toThemeProperty("jqx-fill-state-hover"))}});this.addHandler(this.box,"mouseleave",function(){if(!d.disabled&&!d.enableContainerClick){d.box.removeClass(d.toThemeProperty("jqx-checkbox-hover"));d.box.removeClass(d.toThemeProperty("jqx-fill-state-hover"))}})}},focus:function(){try{this.host.focus()}catch(b){}},_removeHandlers:function(){var c=a.jqx.mobile.isTouchDevice();var b="mousedown";if(c){b="touchend"}if(this.box){this.removeHandler(this.box,b);this.removeHandler(this.box,"mouseenter");this.removeHandler(this.box,"mouseleave")}this.removeHandler(this.host,b);this.removeHandler(this.host,"mouseup");this.removeHandler(this.host,"selectstart");this.removeHandler(this.host,"mouseenter");this.removeHandler(this.host,"mouseleave");this.removeHandler(this.host,"keydown");this.removeHandler(this.host,"blur");this.removeHandler(this.host,"focus")},_render:function(){if(!this.disabled){if(this.enableContainerClick){this.host.css("cursor","pointer")}else{if(!this.init){this.host.css("cursor","auto")}}}else{this.disable()}if(this.rtl){this.box.addClass(this.toThemeProperty("jqx-checkbox-rtl"));this.host.addClass(this.toThemeProperty("jqx-rtl"))}this.updateStates()},_setState:function(c,b){if(this.checked!=c){this.checked=c;if(this.checked){this.checkMark[0].className=this.toThemeProperty("jqx-checkbox-check-checked")}else{if(this.checked==null){this.checkMark[0].className=this.toThemeProperty("jqx-checkbox-check-indeterminate")}else{this.checkMark[0].className=""}}}if(b===false||b===true){this.locked=b}},val:function(b){if(arguments.length==0||(b!=null&&typeof(b)=="object")){return this.checked}if(typeof b=="string"){if(b=="true"){this.check()}if(b=="false"){this.uncheck()}if(b==""){this.indeterminate()}}else{if(b==true){this.check()}if(b==false){this.uncheck()}if(b==null){this.indeterminate()}}return this.checked},check:function(){this.checked=true;var b=this;this.checkMark.removeClass();if(a.jqx.browser.msie||this.animationShowDelay==0){this.checkMark.addClass(this.toThemeProperty("jqx-checkbox-check-checked"))}else{this.checkMark.addClass(this.toThemeProperty("jqx-checkbox-check-checked"));this.checkMark.css("opacity",0);this.checkMark.stop().animate({opacity:1},this.animationShowDelay,function(){})}if(this.groupName!=null&&this.groupName.length>0){var c=a.find(this.toThemeProperty(".jqx-checkbox",true));a.each(c,function(){var d=a(this).jqxCheckBox("groupName");if(d==b.groupName&&this!=b.element){a(this).jqxCheckBox("uncheck")}})}this._raiseEvent("0",true);this._raiseEvent("3",{checked:true});if(this.input!=undefined){this.input.val(this.checked);a.jqx.aria(this,"aria-checked",this.checked)}},uncheck:function(){this.checked=false;var b=this;if(a.jqx.browser.msie||this.animationHideDelay==0){if(b.checkMark[0].className!=""){b.checkMark[0].className=""}}else{this.checkMark.css("opacity",1);this.checkMark.stop().animate({opacity:0},this.animationHideDelay,function(){if(b.checkMark[0].className!=""){b.checkMark[0].className=""}})}this._raiseEvent("1");this._raiseEvent("3",{checked:false});if(this.input!=undefined){this.input.val(this.checked);a.jqx.aria(this,"aria-checked",this.checked)}},indeterminate:function(){this.checked=null;this.checkMark.removeClass();if(a.jqx.browser.msie||this.animationShowDelay==0){this.checkMark.addClass(this.toThemeProperty("jqx-checkbox-check-indeterminate"))}else{this.checkMark.addClass(this.toThemeProperty("jqx-checkbox-check-indeterminate"));this.checkMark.css("opacity",0);this.checkMark.stop().animate({opacity:1},this.animationShowDelay,function(){})}this._raiseEvent("2");this._raiseEvent("3",{checked:null});if(this.input!=undefined){this.input.val(this.checked);a.jqx.aria(this,"aria-checked","undefined")}},toggle:function(){if(this.disabled){return}if(this.locked){return}if(this.groupName!=null&&this.groupName.length>0){if(this.checked!=true){this.checked=true;this.updateStates()}return}this.oldChecked=this.checked;if(this.checked==true){this.checked=this.hasThreeStates?null:false}else{this.checked=this.checked!=null}this.updateStates();if(this.input!=undefined){this.input.val(this.checked)}},updateStates:function(){if(this.checked){this.check()}else{if(this.checked==false){this.uncheck()}else{if(this.checked==null){this.indeterminate()}}}},disable:function(){this.disabled=true;if(this.checked==true){this.checkMark.addClass(this.toThemeProperty("jqx-checkbox-check-disabled"))}else{if(this.checked==null){this.checkMark.addClass(this.toThemeProperty("jqx-checkbox-check-indeterminate-disabled"))}}this.box.addClass(this.toThemeProperty("jqx-checkbox-disabled-box"));this.host.addClass(this.toThemeProperty("jqx-checkbox-disabled"));this.host.addClass(this.toThemeProperty("jqx-fill-state-disabled"));this.box.addClass(this.toThemeProperty("jqx-checkbox-disabled"));a.jqx.aria(this,"aria-disabled",this.disabled)},enable:function(){if(this.checked==true){this.checkMark.removeClass(this.toThemeProperty("jqx-checkbox-check-disabled"))}else{if(this.checked==null){this.checkMark.removeClass(this.toThemeProperty("jqx-checkbox-check-indeterminate-disabled"))}}this.box.removeClass(this.toThemeProperty("jqx-checkbox-disabled-box"));this.host.removeClass(this.toThemeProperty("jqx-checkbox-disabled"));this.host.removeClass(this.toThemeProperty("jqx-fill-state-disabled"));this.box.removeClass(this.toThemeProperty("jqx-checkbox-disabled"));this.disabled=false;a.jqx.aria(this,"aria-disabled",this.disabled)},destroy:function(){this.host.remove()},_raiseEvent:function(g,e){if(this.init){return}var c=this.events[g];var f=new a.Event(c);f.owner=this;if(!e){e={}}e.type=this.changeType;this.changeType=null;f.args=e;try{var b=this.host.trigger(f)}catch(d){}return b},propertyChangedHandler:function(b,c,e,d){if(this.isInitialized==undefined||this.isInitialized==false){return}if(c=="enableContainerClick"&&!b.disabled&&!b.locked){if(d){b.host.css("cursor","pointer")}else{b.host.css("cursor","auto")}}if(c=="rtl"){if(d){b.box.addClass(b.toThemeProperty("jqx-checkbox-rtl"));b.host.addClass(b.toThemeProperty("jqx-rtl"))}else{b.box.removeClass(b.toThemeProperty("jqx-checkbox-rtl"));b.host.removeClass(b.toThemeProperty("jqx-rtl"))}}if(c=="boxSize"){b.render()}if(c=="theme"){a.jqx.utilities.setTheme(e,d,b.host)}if(c=="checked"){if(d!=e){switch(d){case true:b.check();break;case false:b.uncheck();break;case null:b.indeterminate();break}}}if(c=="disabled"){if(d!=e){if(d){b.disable()}else{b.enable()}}}}})})(jqxBaseFramework); \ No newline at end of file diff --git a/htdocs/public/jqwidgets/jqxcolorpicker.js b/htdocs/public/jqwidgets/jqxcolorpicker.js deleted file mode 100644 index a0563f29..00000000 --- a/htdocs/public/jqwidgets/jqxcolorpicker.js +++ /dev/null @@ -1,7 +0,0 @@ -/* -jQWidgets v4.0.0 (2016-Jan) -Copyright (c) 2011-2016 jQWidgets. -License: http://jqwidgets.com/license/ -*/ - -(function(a){a.jqx.jqxWidget("jqxColorPicker","",{});a.extend(a.jqx._jqxColorPicker.prototype,{defineInstance:function(){var b={disabled:false,height:null,width:null,color:new a.jqx.color({hex:"ff0000"}),redString:"R:",greenString:"G:",blueString:"B:",showTransparent:false,colorMode:"saturation",_delayLoading:false,events:["colorchange"]};a.extend(true,this,b);return b},createInstance:function(c){this.render();var b=this;a.jqx.utilities.resize(this.host,function(){b._setSize();b.refresh()},false,!this._delayLoading)},render:function(){this.element.innerHTML="";var b=this;this._isTouchDevice=a.jqx.mobile.isTouchDevice();if(typeof this.color=="string"){this.color=new a.jqx.color({hex:this.color})}this._setSize();this.host.addClass(this.toThemeProperty("jqx-widget"));this.host.addClass(this.toThemeProperty("jqx-reset"));this.host.addClass(this.toThemeProperty("jqx-color-picker"));this.container=a("
              ");this.container.appendTo(this.host);this.colorMap=a("
              ");this.colorMap.appendTo(this.container);this.colorBar=a("
              ");this.colorBar.appendTo(this.container);this.colorPanel=a("
              ");this.colorPanel.appendTo(this.container);this.hexPanel=a("
              ");this.hexPanel.appendTo(this.colorPanel);this.hexPanel.append('#');this.hex=a("");this.hex.addClass(this.toThemeProperty("jqx-input"));this.hex.addClass(this.toThemeProperty("jqx-widget-content"));this.hex.appendTo(this.hexPanel);this.colorPanel.append('
              ');this.rgb=a("
              ");this.rgb.appendTo(this.colorPanel);this.red=a("");this.red.addClass(this.toThemeProperty("jqx-input"));this.red.addClass(this.toThemeProperty("jqx-widget-content"));this.rgb.append(''+this.redString+"");this.red.appendTo(this.rgb);this.green=a("");this.green.addClass(this.toThemeProperty("jqx-input"));this.green.addClass(this.toThemeProperty("jqx-widget-content"));this.rgb.append(''+this.greenString+"");this.green.appendTo(this.rgb);this.colorPanel.addClass(this.toThemeProperty("jqx-color-picker-map-overlay"));this._mapImageOverlayURL=this._getImageUrl(this.colorPanel);this.colorPanel.removeClass(this.toThemeProperty("jqx-color-picker-map-overlay"));this.blue=a("");this.blue.addClass(this.toThemeProperty("jqx-input"));this.blue.addClass(this.toThemeProperty("jqx-widget-content"));this.rgb.append(''+this.blueString+"");this.blue.appendTo(this.rgb);this.preview=a("
              ");this.preview.addClass(this.toThemeProperty("jqx-widget-content"));this.preview.appendTo(this.colorPanel);this.colorBarPointer=a("
              ");this.colorBarPointer.addClass(this.toThemeProperty("jqx-color-picker-bar-pointer"));this.colorMapPointer=a("
              ");this.colorMapPointer.addClass(this.toThemeProperty("jqx-color-picker-pointer"));this.transparent=a("");if(this.disabled){this.host.addClass(this.toThemeProperty("jqx-fill-state-disabled"));this.element.disabled=true}this._addHandlers()},val:function(b){if(arguments.length==0){return"#"+this.color.hex}this.setColor(b);return this.color.hex},_setPositionFromValue:function(){var d=this;var c=d.color.h;var i=100-d.color.v;var b=d.colorMap.height();var e=d.colorMap.width();var h=c*e/360;var g=i*b/100;if(this.colorMode=="saturation"){var f=100-d.color.s;f=f*b/100;d._saturation=100-d.color.s;d.colorMapPointer.css("margin-left",h-8);d.colorMapPointer.css("margin-top",g-8);d.colorBarPointer.css("margin-top",f-8);d.colorMapImageOverlay.css("opacity",(100-d.color.s)/100)}else{var c=d.color.s;var h=c*e/100;var g=i*b/100;var f=360-d.color.h;f=f*b/360;d._hue=d.color.h;d.colorMapPointer.css("margin-left",h-8);d.colorMapPointer.css("margin-top",g-8);d.colorBarPointer.css("margin-top",f-8)}},updateRGB:function(){var b=this;b.color.setRgb(b.red.val(),b.green.val(),b.blue.val());b._updateUI();b._raiseEvent("0",{color:b.color});b.color.transparent=false},_setPosition:function(f,c,h){var e=parseInt(f.pageX);var g=parseInt(c.offset().left);var b=parseInt(f.pageY);var d=parseInt(c.offset().top);if(this._isTouchDevice){var i=a.jqx.position(f);e=i.left;b=i.top}if(h[0].className.indexOf("jqx-color-picker-bar")==-1){h.css("margin-left",e-8-g)}if(b>=d&&b<=d+c.height()){h.css("margin-top",b-8-d)}},_handleKeyInput:function(c,d,b){if(c.disabled){return}if(!c._validateKey(d)){return d}b.val(c._setValueInRange(b.val(),0,255));this.updateRGB();this._setPositionFromValue()},_addHandlers:function(){var d=this;this.addHandler(this.colorMapPointer,"dragStart",function(j){j.preventDefault();return false});this.addHandler(this.colorBarPointer,"dragStart",function(j){j.preventDefault();return false});this.addHandler(this.transparent,"click",function(j){d._raiseEvent("0",{color:"transparent"});j.preventDefault();d.color.transparent=true});this.addHandler(this.host,"selectionstart",function(j){j.preventDefault();return false});this.addHandler(this.blue,"keyup blur",function(j){d._handleKeyInput(d,j,d.blue)});this.addHandler(this.green,"keyup blur",function(j){d._handleKeyInput(d,j,d.green)});this.addHandler(this.red,"keyup blur",function(j){d._handleKeyInput(d,j,d.red)});this.addHandler(this.hex,"keyup blur",function(j){if(d.disabled){return}if(!d._validateKey(j)){return j}if(d.hex.val().toString().length==6){d.hex.val(d.color.validateHex(d.hex.val()));d.color.setHex(d.hex.val());d._updateUI();d._setPositionFromValue();d._raiseEvent("0",{color:d.color})}});this.addHandler(this.colorMap,"dragstart",function(j){j.preventDefault();return false});var f=function(k){d._setPosition(k,d.colorMap,d.colorMapPointer);if(d.colorMode=="saturation"){var j=d._valuesFromMouse(k,d.colorMap,360,100);if(j.x>360){j.x=360}d.color.setHsv(j.x,d._saturation!=null?100-d._saturation:100,100-j.y)}else{var j=d._valuesFromMouse(k,d.colorMap,100,100);if(j.x>100){j.x=100}d.color.setHsv(d._hue!=null?d._hue:360,j.x,100-j.y)}d._updateUI();d._raiseEvent("0",{color:d.color});d.color.transparent=false};var c="mousedown.picker"+this.element.id;if(this._isTouchDevice){c=a.jqx.mobile.getTouchEventName("touchstart")+".picker"+this.element.id}this.addHandler(this.colorMap,c,function(j){if(d.disabled){return}d.beginDrag=true;f(j)});var b="mousemove.picker"+this.element.id;if(this._isTouchDevice){b=a.jqx.mobile.getTouchEventName("touchmove")+".picker"+this.element.id}this.addHandler(a(document),b,function(j){if(d.disabled){return}if(d.beginDrag==true){f(j);if(d._isTouchDevice){j.preventDefault()}}});if(!this._isTouchDevice){this.addHandler(this.colorBar,"dragstart",function(j){j.preventDefault();return false})}var e=function(k){d._setPosition(k,d.colorBar,d.colorBarPointer);if(d.colorMode=="saturation"){var j=d._valuesFromMouse(k,d.colorBar,100,100);d.color.s=j.y;d._saturation=j.y;d.colorMapImageOverlay.css("opacity",(d.color.s)/100);d.color.setHsv(d.color.h,100-d.color.s,d.color.v)}else{var j=d._valuesFromMouse(k,d.colorBar,100,360);d.color.h=360-j.y;d._hue=d.color.h;d.color.setHsv(d.color.h,d.color.s,d.color.v)}d._updateUI();d._raiseEvent("0",{color:d.color});d.color.transparent=false};var h="mousemove.colorBar"+this.element.id;var g="mousedown.colorBar"+this.element.id;var i="mouseup.colorBar"+this.element.id;if(this._isTouchDevice){h=a.jqx.mobile.getTouchEventName("touchmove")+".colorBar"+this.element.id;g=a.jqx.mobile.getTouchEventName("touchstart")+".colorBar"+this.element.id;i=a.jqx.mobile.getTouchEventName("touchend")+".colorBar"+this.element.id}this.addHandler(this.colorBar,g,function(j){if(d.disabled){return}d.beginDragBar=true;e(j)});this.addHandler(a(document),h,function(j){if(d.disabled){return}if(d.beginDragBar==true){e(j);if(d._isTouchDevice){j.preventDefault()}}});this.addHandler(a(document),i,function(j){if(d.disabled){return}d.beginDrag=false;d.beginDragBar=false})},_removeHandlers:function(){this.removeHandler(this.transparent,"click");this.removeHandler(this.host,"selectionstart");this.removeHandler(this.blue,"keyup blur");this.removeHandler(this.green,"keyup blur");this.removeHandler(this.red,"keyup blur");this.removeHandler(this.hex,"keyup blur");this.removeHandler(this.colorMap,"dragstart");this.removeHandler(this.colorBar,"dragstart");this.removeHandler(this.colorMapPointer,"dragStart");this.removeHandler(this.colorBarPointer,"dragStart");var g=this.element.id;var e="mousemove.colorBar"+g;var d="mousedown.colorBar"+g;var f="mouseup.colorBar"+g;var c="mousedown.picker"+g;var b="mousemove.picker"+g;if(this._isTouchDevice){e=a.jqx.mobile.getTouchEventName("touchmove")+".colorBar"+g;d=a.jqx.mobile.getTouchEventName("touchstart")+".colorBar"+g;f=a.jqx.mobile.getTouchEventName("touchend")+".colorBar"+g;c=a.jqx.mobile.getTouchEventName("touchstart")+".picker"+g;b=a.jqx.mobile.getTouchEventName("touchmove")+".picker"+g}this.removeHandler(this.colorMap,c);this.removeHandler(this.colorMap,b);this.removeHandler(this.colorBar,d);this.removeHandler(this.colorBar,e);this.removeHandler(a(document),b);this.removeHandler(a(document),e);this.removeHandler(a(document),f)},_raiseEvent:function(g,c){if(c==undefined){c={owner:null}}var d=this.events[g];var e=c?c:{};e.owner=this;var f=new a.Event(d);f.owner=this;f.args=e;var b=this.host.trigger(f);return b},setColor:function(b){if(!b){return}if(b=="transparent"){this.color.transparent=true;this.color.hex="000";this.color.r=0;this.color.g=0;this.color.b=0}else{if(b.r){this.color=new a.jqx.color({rgb:b})}else{if(b.substring(0,1)=="#"){this.color=new a.jqx.color({hex:b.substring(1)})}else{this.color=new a.jqx.color({hex:b})}}}this._updateUI();this._setPositionFromValue();this._raiseEvent("0",{color:this.color})},getColor:function(){return this.color},resize:function(c,b){this.width=c;this.height=b;this._setSize();this.refresh()},propertyChangedHandler:function(b,c,e,d){if(b.isInitialized==undefined||b.isInitialized==false){return}if(c=="colorMode"){b.refresh()}if(c=="color"){b._updateUI();b._setPositionFromValue();b._raiseEvent("0",{color:d})}if(c=="width"||c=="height"){b._setSize();b.refresh()}if(c=="showTransparent"){b.refresh()}if(c=="disabled"){this.element.disabled=d;if(d){b.host.addClass(b.toThemeProperty("jqx-fill-state-disabled"))}else{b.host.removeClass(b.toThemeProperty("jqx-fill-state-disabled"))}}},_valuesFromMouse:function(j,g,c,b){var k=0;var i=0;var f=g.offset();var p=g.height();var d=g.width();var n=j.pageX;var m=j.pageY;if(this._isTouchDevice){var l=a.jqx.position(j);n=l.left;m=l.top}if(nf.left+d){k=d}else{k=n-f.left+1}}if(mf.top+p){i=p}else{i=m-f.top+1}}var h=parseInt(k/d*c);var o=parseInt(i/p*b);return{x:h,y:o}},_validateKey:function(b){if(b.keyCode==9||b.keyCode==16||b.keyCode==38||b.keyCode==29||b.keyCode==40||b.keyCode==17||b.keyCode==37||(b.ctrlKey&&(b.keyCode=="c".charCodeAt()||b.keyCode=="v".charCodeAt()))||(b.ctrlKey&&(b.keyCode=="C".charCodeAt()||b.keyCode=="V".charCodeAt()))){return false}if(b.ctrlKey||b.shiftKey){return false}return true},_setValueInRange:function(d,c,b){if(d==""||isNaN(d)){return c}d=parseInt(d);if(d>b){return b}if(d0){this.blue.width(f/3);this.green.width(f/3);this.red.width(f/3);return}},_getColorPointer:function(){var b=a("
              ");b.addClass(this.toThemeProperty("jqx-color-picker-pointer"));return b},_getImageUrl:function(c){var b=c.css("backgroundImage");b=b.replace('url("',"");b=b.replace('")',"");b=b.replace("url(","");b=b.replace(")","");return b},refresh:function(){if(this._delayLoading){return}this._saturation=null;this._hue=null;this.colorMap.removeClass();this.colorBar.removeClass();this.colorMap.addClass(this.toThemeProperty("jqx-disableselect"));this.colorBar.addClass(this.toThemeProperty("jqx-disableselect"));this.colorPanel.addClass(this.toThemeProperty("jqx-color-picker-panel"));this.colorBar.css("background-image","");this.colorMap.css("background-image","");if(this.colorMode=="saturation"){this.colorMap.addClass(this.toThemeProperty("jqx-color-picker-map"));this.colorBar.addClass(this.toThemeProperty("jqx-color-picker-bar"))}else{this.colorMap.addClass(this.toThemeProperty("jqx-color-picker-map-hue"));this.colorBar.addClass(this.toThemeProperty("jqx-color-picker-bar-hue"))}this._barImageURL=this._getImageUrl(this.colorBar);this._mapImageURL=this._getImageUrl(this.colorMap);this._arrange();this.colorBar.children().remove();this.colorBarImageContainer=a("
              ");this.colorBarImageContainer.width(this.colorBar.width());this.colorBarImageContainer.height(this.colorBar.height());this.colorBarImageContainer.appendTo(this.colorBar);this.colorBarImage=a("");this.colorBarImage.appendTo(this.colorBarImageContainer);this.colorBarImage.attr("src",this._barImageURL);this.colorBar.css("background-image","none");this.colorBarImage.attr("width",this.colorBar.width());this.colorBarImage.attr("height",this.colorBar.height());this.colorBarPointer.appendTo(this.colorBar);this.colorMap.children().remove();this.colorMapImage=a("");this.colorMapImage.appendTo(this.colorMap);this.colorMapImage.attr("src",this._mapImageURL);this.colorMap.css("background-image","none");this.colorMapImage.attr("width",this.colorMap.width());this.colorMapImage.attr("height",this.colorMap.height());this.colorMapImageOverlay=a("");this.colorMapImageOverlay.prependTo(this.colorMap);this.colorMapImageOverlay.attr("src",this._mapImageOverlayURL);this.colorMapImageOverlay.attr("width",this.colorMap.width());this.colorMapImageOverlay.attr("height",this.colorMap.height());this.colorMapImageOverlay.css("opacity",0);this.colorMapPointer.appendTo(this.colorMap);if(this.showTransparent){this.transparent.appendTo(this.colorPanel)}this._updateUI();this._setPositionFromValue()}});a.jqx.color=function(d){var b={r:0,g:0,b:0,h:0,s:0,v:0,hex:"",hexToRgb:function(i){i=this.validateHex(i);var h="00",f="00",e="00";if(i.length==6){h=i.substring(0,2);f=i.substring(2,4);e=i.substring(4,6)}else{if(i.length>4){h=i.substring(4,i.length);i=i.substring(0,4)}if(i.length>2){f=i.substring(2,i.length);i=i.substring(0,2)}if(i.length>0){e=i.substring(0,i.length)}}return{r:this.hexToInt(h),g:this.hexToInt(f),b:this.hexToInt(e)}},validateHex:function(e){e=new String(e).toUpperCase();e=e.replace(/[^A-F0-9]/g,"0");if(e.length>6){e=e.substring(0,6)}return e},webSafeDec:function(e){e=Math.round(e/51);e*=51;return e},hexToWebSafe:function(i){var h,f,e;if(i.length==3){h=i.substring(0,1);f=i.substring(1,1);e=i.substring(2,1)}else{h=i.substring(0,2);f=i.substring(2,4);e=i.substring(4,6)}return intToHex(this.webSafeDec(this.hexToInt(h)))+this.intToHex(this.webSafeDec(this.hexToInt(f)))+this.intToHex(this.webSafeDec(this.hexToInt(e)))},rgbToWebSafe:function(e){return{r:this.webSafeDec(e.r),g:this.webSafeDec(e.g),b:this.webSafeDec(e.b)}},rgbToHex:function(e){return this.intToHex(e.r)+this.intToHex(e.g)+this.intToHex(e.b)},intToHex:function(f){var e=(parseInt(f).toString(16));if(e.length==1){e=("0"+e)}return e.toUpperCase()},hexToInt:function(e){return(parseInt(e,16))},hslToRgb:function(v){var n=parseInt(v.h)/360;var w=parseInt(v.s)/100;var k=parseInt(v.l)/100;if(k<=0.5){var f=k*(1+w)}else{var f=k+w-(k*w)}var i=2*k-f;var t=n+(1/3);var j=n;var m=n-(1/3);var e=Math.round(this.hueToRgb(i,f,t)*255);var o=Math.round(this.hueToRgb(i,f,j)*255);var u=Math.round(this.hueToRgb(i,f,m)*255);return{r:e,g:o,b:u}},hueToRgb:function(g,f,e){if(e<0){e+=1}else{if(e>1){e-=1}}if((e*6)<1){return g+(f-g)*e*6}else{if((e*2)<1){return f}else{if((e*3)<2){return g+(f-g)*((2/3)-e)*6}else{return g}}}},rgbToHsv:function(h){var k=h.r/255;var j=h.g/255;var f=h.b/255;hsv={h:0,s:0,v:0};var i=0;var e=0;if(k>=j&&k>=f){e=k;i=(j>f)?f:j}else{if(j>=f&&j>=k){e=j;i=(k>f)?f:k}else{e=f;i=(j>k)?k:j}}hsv.v=e;hsv.s=(e)?((e-i)/e):0;if(!hsv.s){hsv.h=0}else{delta=e-i;if(k==e){hsv.h=(j-f)/delta}else{if(j==e){hsv.h=2+(f-k)/delta}else{hsv.h=4+(k-j)/delta}}hsv.h=parseInt(hsv.h*60);if(hsv.h<0){hsv.h+=360}}hsv.s=parseInt(hsv.s*100);hsv.v=parseInt(hsv.v*100);return hsv},hsvToRgb:function(l){rgb={r:0,g:0,b:0};var k=l.h;var r=l.s;var n=l.v;if(r==0){if(n==0){rgb.r=rgb.g=rgb.b=0}else{rgb.r=rgb.g=rgb.b=parseInt(n*255/100)}}else{if(k==360){k=0}k/=60;r=r/100;n=n/100;var j=parseInt(k);var m=k-j;var g=n*(1-r);var e=n*(1-(r*m));var o=n*(1-(r*(1-m)));switch(j){case 0:rgb.r=n;rgb.g=o;rgb.b=g;break;case 1:rgb.r=e;rgb.g=n;rgb.b=g;break;case 2:rgb.r=g;rgb.g=n;rgb.b=o;break;case 3:rgb.r=g;rgb.g=e;rgb.b=n;break;case 4:rgb.r=o;rgb.g=g;rgb.b=n;break;case 5:rgb.r=n;rgb.g=g;rgb.b=e;break}rgb.r=parseInt(rgb.r*255);rgb.g=parseInt(rgb.g*255);rgb.b=parseInt(rgb.b*255)}return rgb},setRgb:function(h,f,e){var j=function(g){if(g<0||g>255){return 0}if(isNaN(parseInt(g))){return 0}return g};this.r=j(h);this.g=j(f);this.b=j(e);var i=this.rgbToHsv(this);this.h=i.h;this.s=i.s;this.v=i.v;this.hex=this.rgbToHex(this)},setHsl:function(g,f,e){this.h=g;this.s=f;this.l=e;var i=this.hslToRgb(this);this.r=i.r;this.g=i.g;this.b=i.b;this.hex=this.rgbToHex(i)},setHsv:function(g,f,e){this.h=g;this.s=f;this.v=e;var i=this.hsvToRgb(this);this.r=i.r;this.g=i.g;this.b=i.b;this.hex=this.rgbToHex(i)},setHex:function(e){this.hex=e;var g=this.hexToRgb(this.hex);this.r=g.r;this.g=g.g;this.b=g.b;var f=this.rgbToHsv(g);this.h=f.h;this.s=f.s;this.v=f.v}};if(d){if(d.hex){var c=b.validateHex(d.hex);b.setHex(c)}else{if(d.r){b.setRgb(d.r,d.g,d.b)}else{if(d.h){b.setHsv(d.h,d.s,d.v)}else{if(d.rgb){b.setRgb(d.rgb.r,d.rgb.g,d.rgb.b)}}}}}return b}})(jqxBaseFramework); \ No newline at end of file diff --git a/htdocs/public/jqwidgets/jqxcombobox.js b/htdocs/public/jqwidgets/jqxcombobox.js deleted file mode 100644 index 7e5f5d5a..00000000 --- a/htdocs/public/jqwidgets/jqxcombobox.js +++ /dev/null @@ -1,7 +0,0 @@ -/* -jQWidgets v4.0.0 (2016-Jan) -Copyright (c) 2011-2016 jQWidgets. -License: http://jqwidgets.com/license/ -*/ - -(function(a){a.jqx.jqxWidget("jqxComboBox","",{});a.extend(a.jqx._jqxComboBox.prototype,{defineInstance:function(){var b={disabled:false,width:200,height:25,items:new Array(),selectedIndex:-1,selectedItems:new Array(),_selectedItems:new Array(),source:null,scrollBarSize:a.jqx.utilities.scrollBarSize,arrowSize:18,enableHover:true,enableSelection:true,visualItems:new Array(),groups:new Array(),equalItemsWidth:true,itemHeight:-1,visibleItems:new Array(),emptyGroupText:"Group",emptyString:"",openDelay:250,closeDelay:300,animationType:"default",dropDownWidth:"auto",dropDownHeight:"200px",autoDropDownHeight:false,enableBrowserBoundsDetection:false,dropDownHorizontalAlignment:"left",searchMode:"startswithignorecase",autoComplete:false,remoteAutoComplete:false,remoteAutoCompleteDelay:500,selectionMode:"default",minLength:2,displayMember:"",valueMember:"",groupMember:"",searchMember:"",keyboardSelection:true,renderer:null,autoOpen:false,checkboxes:false,promptText:"",placeHolder:"",rtl:false,listBox:null,validateSelection:null,showCloseButtons:true,renderSelectedItem:null,search:null,popupZIndex:100000,searchString:null,multiSelect:false,showArrow:true,_disabledItems:new Array(),touchMode:"auto",autoBind:true,aria:{"aria-disabled":{name:"disabled",type:"boolean"}},events:["open","close","select","unselect","change","checkChange","bindingComplete"]};a.extend(true,this,b);return b},createInstance:function(b){var c=this;this.host.attr("role","combobox");a.jqx.aria(this,"aria-autocomplete","both");if(a.jqx._jqxListBox==null||a.jqx._jqxListBox==undefined){throw new Error("jqxComboBox: Missing reference to jqxlistbox.js.")}a.jqx.aria(this);if(this.promptText!=""){this.placeHolder=this.promptText}this.render()},render:function(){var n=this;var p=n.element.nodeName.toLowerCase();if(p=="select"||p=="ul"||p=="ol"){n.field=n.element;if(n.field.className){n._className=n.field.className}var m={title:n.field.title};if(n.field.id.length){m.id=n.field.id.replace(/[^\w]/g,"_")+"_jqxComboBox"}else{m.id=a.jqx.utilities.createId()+"_jqxComboBox"}var c=a("
              ",m);if(!n.width){n.width=a(n.field).width()}if(!n.height){n.height=a(n.field).outerHeight()}a(n.field).hide().after(c);var k=n.host.data();n.host=c;n.host.data(k);n.element=c[0];n.element.id=n.field.id;n.field.id=m.id;if(n._className){n.host.addClass(n._className);a(n.field).removeClass(n._className)}if(n.field.tabIndex){var f=n.field.tabIndex;n.field.tabIndex=-1;n.element.tabIndex=f}var s=a.jqx.parseSourceTag(n.field);n.source=s.items;if(n.selectedIndex==-1){n.selectedIndex=s.index}}n.removeHandlers();n.isanimating=false;n.id=a.jqx.utilities.createId();n.element.innerHTML="";var g=a("
              ");var m=l.host.parent();var q=l.host.data();q.jqxDataTable.host=m;q.jqxDataTable.element=m[0];l.host.parent()[0].id=l.element.id;try{l.host.parent()[0].style=l.element.style}catch(r){}l.element=m[0];l.host=m;l.host.data(q);var o={dataFields:w,localdata:z,datatype:"array"};var y=new b.jqx.dataAdapter(o);l.source=y}if(l.source&&!l.source.dataBind){l.source=new b.jqx.dataAdapter(l.source)}var x=l.source._source.datafields;if(x&&x.length>0){l._camelCase=l.source._source.dataFields!==undefined;l.selectionMode=l.selectionMode.toLowerCase()}if(l.host.attr("tabindex")==null){l.host.attr("tabindex","0")}l.host.attr("role","grid");l.host.attr("align","left");l.host.addClass(l.toTP("jqx-grid"));l.host.addClass(l.toTP("jqx-reset"));l.host.addClass(l.toTP("jqx-rc-all"));l.host.addClass(l.toTP("jqx-widget"));l.host.addClass(l.toTP("jqx-widget-content"));if(l._testmodules()){return}l.render(true);b.jqx.utilities.resize(l.host,function(){var A=b(window).width();var i=b(window).height();var j=l.host.width();var B=l.host.height();if(l._lastHostWidth!=j||l._lastHostHeight!=B){l._updatesize(l._lastHostWidth!=j,l._lastHostHeight!=B)}l._lastWidth=A;l._lastHeight=i;l._lastHostWidth=j;l._lastHostHeight=B})},getvaluebytype:function(h,d){var f=h;if(h==null){return h}if(this.gridlocalization.decimalseparator==","){if(h.indexOf(this.gridlocalization.decimalseparator)>=0){h=h.replace(this.gridlocalization.decimalseparator,".")}}if(h.indexOf(this.gridlocalization.currencysymbol)>=0){h=h.replace(this.gridlocalization.currencysymbol,"")}if(h.indexOf(this.gridlocalization.percentagesymbol)>=0){h=h.replace(this.gridlocalization.percentagesymbol,"")}if(b.isArray(h)&&d.type!="array"){for(var e=0;e
              ');var d=b('
              '+this.gridlocalization.loadtext+"
              ");d.addClass(this.toTP("jqx-rc-all"));this.dataloadelement.addClass(this.toTP("jqx-rc-all"));d.addClass(this.toTP("jqx-fill-state-normal"));this.dataloadelement.append(d);this.dataloadelement.width(this.width);this.dataloadelement.height(this.height);this.host.prepend(this.dataloadelement);if(this.source._source.url!=""){var c=false;if(this.height==="auto"||this.height===null||this.autoheight){if(this.maxHeight==999999){c=true}}if(c){this.host.height(100);this.dataloadelement.height(100)}else{this.host.height(this.height);this.dataloadelement.height(this.height)}var e=false;if(this.width==="auto"||this.width===null||this.autoWidth){e=true}if(e){this.host.width(300);this.dataloadelement.width(300)}else{this.host.width(this.width);this.dataloadelement.width(this.width)}}},_measureElement:function(d){var c=b("measure Text");c.addClass(this.toTP("jqx-widget"));b(document.body).append(c);if(d=="cell"){this._cellheight=c.height()}else{this._columnheight=c.height()}c.remove()},_testmodules:function(){var g="";var e=this;var c=function(){if(g.length!=""){g+=","}};if(!this.host.jqxScrollBar){c();g+=" jqxscrollbar.js"}if(!this.host.jqxButton){c();g+=" jqxbuttons.js"}if(!b.jqx.dataAdapter){c();g+=" jqxdata.js"}if(g!=""||this.editable||this.filterable||this.pageable){var d=[];var f=function(h){switch(h){case"checkbox":if(!e.host.jqxCheckBox&&!d.checkbox){d.checkbox=true;c();g+=" jqxcheckbox.js"}break;case"dropdownlist":if(!e.host.jqxDropDownList&&!d.dropdownlist){c();d.dropdownlist=true;g+=" jqxdropdownlist.js(requires: jqxlistbox.js)"}else{if(!e.host.jqxListBox&&!d.listbox){c();d.listbox=true;g+=" jqxlistbox.js"}}break}};if((this.filterable&&this.filterMode!="simple")||(this.pagerMode=="advanced"&&this.pageable)){f("dropdownlist")}if(g!=""){throw new Error("jqxDataTable: Missing references to the following module(s): "+g);this.host.remove();return true}}return false},focus:function(){try{this.wrapper.focus();this.host.focus();var d=this;setTimeout(function(){d.wrapper.focus();d.host.focus()},25);this.focused=true}catch(c){}},hiddenParent:function(){return b.jqx.isHidden(this.host)},isBindingCompleted:function(){return !this._loading},_updatesize:function(i,h){if(this._loading){return}var f=this;var g=f.host.width();var e=f.host.height();if(!f._oldWidth){f._oldWidth=g}if(!f._oldHeight){f._oldHeight=e}if(f._resizeTimer!=undefined){clearTimeout(f._resizeTimer);f._resizeTimer=null}var d=300;var c=function(){if(f._resizeTimer){clearTimeout(f._resizeTimer)}f.resizingGrid=true;if(b.jqx.isHidden(f.host)){return}f._updatecolumnwidths();f.refresh();f._oldWidth=g;f._oldHeight=e;f.resizingGrid=false};c();f._resizeTimer=setTimeout(function(){var k=f.host.width();var j=f.host.height();if(f._oldWidth!=k||f._oldHeight!=j){c()}},d)},resize:function(d,c){if(d!=undefined){this.width=d}if(c!=undefined){this.height=c}this._updatecolumnwidths();this.refresh()},isTouchDevice:function(){if(this.touchDevice!=undefined){return this.touchDevice}var c=b.jqx.mobile.isTouchDevice();this.touchDevice=c;if(this.touchmode==true){c=true;b.jqx.mobile.setMobileSimulator(this.element);this.touchDevice=c}else{if(this.touchmode==false){c=false}}if(c){this.touchDevice=true;this.host.addClass(this.toThemeProperty("jqx-touch"));this.host.find("jqx-widget-content").addClass(this.toThemeProperty("jqx-touch"));this.host.find("jqx-widget-header").addClass(this.toThemeProperty("jqx-touch"));this.scrollBarSize=this.touchScrollBarSize}return c},toTP:function(c){return this.toThemeProperty(c)},localizestrings:function(c,f){this._cellscache=new Array();if(b.jqx.dataFormat){b.jqx.dataFormat.cleardatescache()}if(this._loading){throw new Error("jqxDataTable: "+this.loadingErrorMessage);return false}if(c!=null){for(var h in c){if(h.toLowerCase()!==h){c[h.toLowerCase()]=c[h]}}var j=["pagergotopagestring","pagershowrowsstring","pagerrangestring","pagernextbuttonstring","pagerpreviousbuttonstring","pagerfirstbuttonstring","pagerlastbuttonstring","toppagerstring","firstDay","days","months","AM","PM","patterns","percentsymbol","currencysymbol","currencysymbolposition","decimalseparator","thousandsseparator","filterapplystring","filteraddnew","filtercancelstring","filterclearstring","filterstring","filterstringcomparisonoperators","filternumericcomparisonoperators","filterdatecomparisonoperators","filterbooleancomparisonoperators","emptydatastring","filterselectstring","todaystring","clearstring","validationstring","loadtext","filtersearchstring","loadingErrorMessage"];var g=this;for(var e=0;eg&&(this.source.records.length>0||(this.source.hierarchy&&this.source.hierarchy.length>0))){this.vScrollBar[0].style.visibility=e;n=4+parseInt(d);this.vScrollBar.jqxScrollBar({max:j-g})}else{this.vScrollBar[0].style.visibility="hidden"}if((h!=this.vScrollBar[0].style.visibility)){this._updatecolumnwidths();var i=this.table.height();if(j!=i){j=i;if(!q&&j>g&&(this.source.records.length>0||(this.source.hierarchy&&this.source.hierarchy.length>0))){this.vScrollBar[0].style.visibility=e;n=4+parseInt(d);this.vScrollBar.jqxScrollBar({max:j-g})}}}var o=this.table?this.table.width():0;if(o>3){o-=3}var c=parseInt(this.host.css("border-left-width"))+parseInt(this.host.css("border-right-width"));var r=c+this.host.width()-n;if(o>r&&!p){this.hScrollBar[0].style.visibility=e;this.hScrollBar.jqxScrollBar({max:o-r});n=4+parseInt(d);if(!q){if(j>g-n+4&&(this.source.records.length>0||(this.source.hierarchy&&this.source.hierarchy.length>0))){this.hScrollBar.jqxScrollBar({max:c+o-r});var f=this.vScrollBar[0].style.visibility==="hidden";this.vScrollBar[0].style.visibility=e;this._updatecolumnwidths();if(f){this.hScrollBar.jqxScrollBar({max:o-r+n+c})}var k=this.table?this.table.width():0;if(k>3){k-=3}if(k!=o){if(k"+e+"");d.addClass(this.toTP("jqx-widget"));d.addClass(this.toTP("jqx-grid"));d.addClass(this.toTP("jqx-grid-column-header"));d.addClass(this.toTP("jqx-widget-header"));b(document.body).append(d);var c=d.outerWidth()+20;d.remove();return c},_arrangeAutoHeight:function(e){if(!e){e=0}if(this.height==="auto"||this.height===null||this.autoheight){var h=this.table.height();var g=0;if(!this.columnGroups){g+=this.showHeader?this.columnsHeight:-1}else{g+=this.showHeader?this.columnsheader.height():-1}g+=this.showstatusbar?this.statusBarHeight:0;g+=this.showAggregates?this.aggregatesHeight:0;g+=this.showtoolbar?this.toolbarHeight:0;g+=this.pageable?this.pagerHeight:0;if(this.pagerPosition==="both"){g+=this.pageable?this.pagerHeight:0}g+=h;if(this.filterable){var f=this.filter.find(".filterrow");var c=this.filter.find(".filterrow-hidden");var d=1;if(c.length>0){d=0}g+=this.filterHeight-1+this.filterHeight*f.length*d}if(g+e>this.maxHeight){this.host.height(this.maxHeight)}else{this.host.height(g+e)}return true}return false},_arrangeAutoWidth:function(e){if(!e){e=0}if(this.width==="auto"||this.width===null||this.autowidth){var d=0;for(var f=0;fthis.maxWidth){this.host.width(this.maxWidth)}else{this.host.width(width+e)}return true}return false},_measureTopAndHeight:function(){var d=this.host.height();var h=0;if(this.showtoolbar){h+=this.toolbarHeight;d-=parseInt(this.toolbarHeight)}if(this.filterable){var g=this.filter.find(".filterrow");var e=this.filter.find(".filterrow-hidden");var f=1;if(e.length>0){f=0}h+=this.filterHeight;d-=parseInt(this.filterHeight);var c=f==1?g.length:0;h+=this.filterHeight*c;d-=this.filterHeight*c}if(this.pageable&&this.pagerPosition!="bottom"){h+=parseInt(this.pagerHeight)+1;if(d>this.pagerHeight&&this.pagerPosition==="both"){d-=parseInt(this.pagerHeight)}}return{top:h,height:d}},_arrange:function(){if(!this.table){return}this._arrangeAutoHeight();this._arrangeAutoWidth();var v=this.host.width();var r=this.host.height();var j=r;var i=this;if(this.pageable){if(this.pagerPosition==="bottom"){this.toppager[0].style.visibility="hidden";this.pager[0].style.visibility="inherit"}else{if(this.pagerPosition==="both"){this.toppager[0].style.visibility="inherit";this.pager[0].style.visibility="inherit"}else{if(this.pagerPosition==="top"){this.toppager[0].style.visibility="inherit";this.pager[0].style.visibility="hidden"}}}}else{this.toppager[0].style.visibility="hidden";this.pager[0].style.visibility="hidden"}var q=0;if(this.showtoolbar){this.toolbar.width(v);this.toolbar.height(this.toolbarHeight-1);this.toolbar.css("top",0);q+=this.toolbarHeight;r-=parseInt(this.toolbarHeight)}else{this.toolbar[0].style.height="0px"}if(this.filterable){this.filter.width(v);this.filter.css("top",q);var t=this.filter.find(".filterrow");var h=this.filter.find(".filterrow-hidden");var A=1;if(h.length>0){A=0}this.filter.height(this.filterHeight-1+this.filterHeight*t.length*A);q+=this.filterHeight;r-=parseInt(this.filterHeight);var x=A==1?t.length:0;q+=this.filterHeight*x;r-=this.filterHeight*x}if(this.showstatusbar){this.statusbar.width(!this.table?v:Math.max(v,this.table.width()));this.statusbar.height(this.statusBarHeight-1)}else{this.statusbar[0].style.height="0px"}if(this.showAggregates){this.aggregates.height(this.aggregatesHeight-1)}else{this.aggregates[0].style.height="0px"}if(this.pageable&&this.pagerPosition!="bottom"){this.toppager[0].style.width=v+"px";this.toppager[0].style.height=parseInt(this.pagerHeight)+"px";this.toppager[0].style.top=parseInt(q)+"px";q+=parseInt(this.pagerHeight)+1;if(r>this.pagerHeight){r-=parseInt(this.pagerHeight)}}else{if(this.toppager[0].style.width!=v+"px"){this.toppager[0].style.width=parseInt(v)+"px"}if(this.toppager[0].style.height!=this.pagerHeight+"px"){this.toppager[0].style.height=parseInt(this.pagerHeight)+"px"}if(this.toppager[0].style.top!=q+"px"){this.toppager[0].style.top=q+"px"}var y=this.pagerPosition!="bottom"?this.pagerHeight:0;var d=q+y+"px";if(this.content[0].style.top!=d){this.content[0].style.top=q+this.pagerHeight+"px"}}this._updateScrollbars(j);var c=parseInt(this.scrollBarSize);var n=4;var e=2;var f=0;if(this.vScrollBar[0].style.visibility!="hidden"){f=c+n}if(this.hScrollBar[0].style.visibility!="hidden"){e=c+n+2}if(this.showAggregates){if(this.hScrollBar[0].style.visibility==="hidden"){this.aggregates.width(!this.table?v:Math.max(v,this.table.width())+4)}else{this.aggregates.width("auto")}}if("hidden"!=this.vScrollBar[0].style.visibility||"hidden"!=this.hScrollBar[0].style.visibility){var w=this._arrangeAutoHeight(e-2);var s=this._arrangeAutoWidth(f+1);if(w||s){var v=this.host.width();this.toppager[0].style.width=parseInt(v)+"px";this.toolbar[0].style.width=parseInt(v)+"px";this.statusbar[0].style.width=parseInt(v)+"px";this.filter[0].style.width=parseInt(v)+"px"}if(w){var B=this._measureTopAndHeight();q=B.top;r=B.height}}var m=0;if(this.pageable){m=this.pagerHeight;if(this.pagerPosition!="top"){e+=this.pagerHeight}}if(this.showAggregates){e+=this.aggregatesHeight;m+=this.aggregatesHeight}if(this.showstatusbar){e+=this.statusBarHeight;m+=this.statusBarHeight}if(this.hScrollBar[0].style.height!=c+"px"){this.hScrollBar[0].style.height=parseInt(c)+"px"}if(this.hScrollBar[0].style.top!=q+r-n-c-m+"px"||this.hScrollBar[0].style.left!="0px"){this.hScrollBar[0].style.top=q+r-n-c-m-1+"px";this.hScrollBar[0].style.left="0px"}var l=this.hScrollBar[0].style.width;var g=false;var z=false;if(f==0){if(l!=(v-2)+"px"){this.hScrollBar[0].style.width=(v-2)+"px";g=true}}else{if(l!=(v-c-n)+"px"){this.hScrollBar[0].style.width=(v-c-n+"px");g=true}}if(this.vScrollBar[0].style.width!=c+"px"){this.vScrollBar[0].style.width=c+"px";z=true}if(this.vScrollBar[0].style.height!=parseInt(r)-e+"px"){this.vScrollBar[0].style.height=(parseInt(r)-e+"px");z=true}if(this.vScrollBar[0].style.left!=parseInt(v)-parseInt(c)-n+"px"||this.vScrollBar[0].style.top!=q+"px"){this.vScrollBar[0].style.top=q+"px";this.vScrollBar[0].style.left=parseInt(v)-parseInt(c)-n+"px"}if(this.rtl){this.vScrollBar.css({left:"0px",top:q});if(this.vScrollBar.css("visibility")!="hidden"){this.hScrollBar.css({left:c+2})}}var k=this.vScrollInstance;k.disabled=this.disabled;var u=this.hScrollInstance;u.disabled=this.disabled;if(g){u.refresh()}if(z){k.refresh()}var o=function(C){if((C.vScrollBar[0].style.visibility!="hidden")&&(C.hScrollBar[0].style.visibility!="hidden")){C.bottomRight[0].style.visibility="inherit";C.bottomRight[0].style.left=1+parseInt(C.vScrollBar.css("left"))+"px";C.bottomRight[0].style.top=parseInt(C.hScrollBar.css("top"))+"px";if(C.rtl){C.bottomRight.css("left","0px")}C.bottomRight[0].style.width=parseInt(c)+3+"px";C.bottomRight[0].style.height=parseInt(c)+4+"px";if(C.showAggregates){C.bottomRight.css("z-index",99);C.bottomRight.height(parseInt(c)+4+C.aggregatesHeight);C.bottomRight.css({top:parseInt(C.hScrollBar.css("top"))-C.aggregatesHeight})}}else{C.bottomRight[0].style.visibility="hidden"}};o(this);if(this.content[0].style.width!=v-f+"px"){this.content[0].style.width=v-f+"px"}if(this.content[0].style.height!=r-e+3+"px"){this.content[0].style.height=r-e+3+"px"}if(this.content[0].style.top!=q+"px"){this.content[0].style.top=parseInt(q)+"px"}if(this.rtl){this.content.css("left",f);if(this.filter&&(this.filter.children().length>0)){b(this.filter.children()).css("left",f)}if(this.table){var p=this.table.width();if(p0)){b(this.filter.children()).css("left",v-p+2)}}}}if(this.showAggregates){this.aggregates.css("top",q+r-this.aggregatesHeight-(this.pageable?this.pagerHeight:0)-(this.showstatusbar?(this.statusBarHeight+1):0));if(this.rtl){this.aggregates.css("left","0px")}if(this.hScrollBar.css("visibility")!="hidden"){this.hScrollBar.css({top:q+r-n-c-m+this.aggregatesHeight+"px"});this.aggregates.css("top",1+q+r-c-5-this.aggregatesHeight-(this.pageable?this.pagerHeight:0)-(this.showstatusbar?(this.statusBarHeight+1):0))}o(this)}if(this.showstatusbar){this.statusbar.css("top",q+r-this.statusBarHeight-(this.pageable?this.pagerHeight:0));if(this.rtl){if(this.hScrollBar.css("visibility")=="hidden"){this.statusbar.css("left",this.content.css("left"))}else{this.statusbar.css("left","0px")}}}if(this.pageable){this.pager[0].style.width=v+"px";this.pager[0].style.height=this.pagerHeight+"px";this.pager[0].style.top=parseInt(q)+parseInt(r)-parseInt(this.pagerHeight)-1+"px"}else{this.pager[0].style.height="0px"}this.vScrollBar[0].style.zIndex=this.tableZIndex+this.headerZIndex+10+this.columns.records.length;this.hScrollBar[0].style.zIndex=this.tableZIndex+this.headerZIndex+10+this.columns.records.length;if(v!=parseInt(this.dataloadelement[0].style.width)){this.dataloadelement[0].style.width=this.element.style.width}if(r!=parseInt(this.dataloadelement[0].style.height)){this.dataloadelement[0].style.height=this.element.style.height}this._hostwidth=v},scrollOffset:function(e,d){if(arguments.length==0||(e!=null&&typeof(e)=="object"&&!e.top)){return{left:this.hScrollBar.jqxScrollBar("value"),top:this.vScrollBar.jqxScrollBar("value")}}if(e!=null&&typeof(e)=="object"){var d=e.left;var c=e.top;var e=c}if(e==null||d==null||e==undefined||d==undefined){return}this.vScrollBar.jqxScrollBar("setPosition",e);this.hScrollBar.jqxScrollBar("setPosition",d)},scrollleft:function(c){if(c==null||c==undefined){return}if(this.hScrollBar.css("visibility")!="hidden"){this.hScrollBar.jqxScrollBar("setPosition",c)}},scrolltop:function(c){if(c==null||c==undefined){return}if(this.vScrollBar.css("visibility")!="hidden"){this.vScrollBar.jqxScrollBar("setPosition",c)}},beginUpdate:function(){this._updating=true;this._datachanged=false},endUpdate:function(c){this._updating=false;if(c===false){return}this._rendercolumnheaders();this.refresh()},updating:function(){return this._updating},databind:function(g,i,c){if(this.loadingstate===true){return}if(this.host.css("display")=="block"){if(this.autoShowLoadElement){b(this.dataloadelement).css("visibility","visible");b(this.dataloadelement).css("display","block");this.dataloadelement.width(this.host.width());this.dataloadelement.height(this.host.height())}else{b(this.dataloadelement).css("visibility","hidden");b(this.dataloadelement).css("display","none")}}var f=this;if(g==null){g={}}if(g.sortcomparer==undefined||g.sortcomparer==null){g.sortcomparer=null}if(g.filter==undefined||g.filter==null){g.filter=null}if(g.sort==undefined||g.sort==null){g.sort=null}if(g.data==undefined||g.data==null){g.data=null}var d=null;if(g!=null){d=g._source!=undefined?g._source.url:g.url}this.dataview=this.dataview||new b.jqx.dataView();this.dataview.pageable=this.pageable;this.dataview.grid=this;if(!f.initializedcall){if(g._source){if(this.sortable){if(g._source.sortcolumn!=undefined){this.sortcolumn=g._source.sortcolumn;this.source.sortcolumn=this.sortcolumn;this.dataview.sortfield=g._source.sortcolumn;g._source.sortcolumn=null}if(g._source.sortdirection!=undefined){this.dataview.sortfielddirection=g._source.sortdirection;var h=g._source.sortdirection;if(h=="a"||h=="asc"||h=="ascending"||h==true){var e=true}else{var e=false}if(h!=null){this.sortdirection={ascending:e,descending:!e}}else{this.sortdirection={ascending:false,descending:false}}}}}if(this.pageable){if(g._source){if(g._source.pagenum!=undefined){this.dataview.pagenum=g._source.pagenum}if(g._source.pagesize!=undefined){this.pageSize=g._source.pagesize;this.dataview.pagesize=g._source.pagesize}else{this.dataview.pagesize=g._source.pagesize;if(this.dataview.pagesize==undefined){this.dataview.pagesize=this.pageSize}}}}if(this.sortable){if(g.sortcolumn){this.dataview.sortfield=g.sortcolumn}if(g.sortdirection){this.dataview.sortfielddirection=g.sortdirection}}}this._loading=true;this.dataview.update=function(z){f._loading=false;f.rowsByKey=new Array();var m=f.source._source.datafields;if(f.groups&&f.groups.length>0){var u=Object.prototype.toString;var w=f.groups[0];Object.prototype.toString=(typeof w=="function")?w:function(){return this[w]};if(!f.source.records.sort){var v=new Array();var t=0;b.each(data,function(){v[startindex+t++]=this});data=v}f.source.records.sort(function(B,j){if(B===undefined){B=null}if(j===undefined){j=null}if(B===null&&j===null){return 0}if(B===null&&j!==null){return -1}if(B!==null&&j===null){return 1}var E=0;var D=0;if(B&&B.uid){E=B.uid}if(j&&j.uid){D=j.uid}B=B.toString();j=j.toString();if(b.jqx.dataFormat.isNumber(B)&&b.jqx.dataFormat.isNumber(j)){if(Bj){return 1}return 0}else{if(b.jqx.dataFormat.isDate(B)&&b.jqx.dataFormat.isDate(j)){if(Bj){return 1}return 0}else{if(!b.jqx.dataFormat.isNumber(B)&&!b.jqx.dataFormat.isNumber(j)){B=String(B).toLowerCase();j=String(j).toLowerCase()}}}try{if(Bj){return 1}}catch(C){var F=C}if(typeof(E)=="number"){if(ED){return 1}}return 0});Object.prototype.toString=u}for(var q=0;q0){var l=function(B){for(var C=0;C0){l(B[C].records)}}};l(A.records)}if(q===0){var k=false;if(m){for(var o=0;o-1||y.toString().indexOf(f.gridlocalization.percentsymbol)>-1){var r=y.toString().split(" ").length;var s=new Number(f._toNumber(y.toString()));if(!isNaN(s)&&r==1){m[o].type="number"}}if(b.jqx.dataFormat.isNumber(y)||(!isNaN(parseFloat(y))&&isFinite(y))){m[o].type="number"}if(b.jqx.dataFormat.isDate(y)){m[o].type="date"}}}}if(k){for(var o=0;og-c){this.hScrollBar.jqxScrollBar("setPosition",g-c)}else{if(g>e){this.hScrollBar.jqxScrollBar("setPosition",h+g-e)}}}},ensurerowvisiblebykey:function(o){if(this.vScrollBar[0].style.visibility==="hidden"){return false}var p=this._getuirow(o);if(!p){return}var m=this.vScrollBar.jqxScrollBar("value");var e=this.host.height();var g=0;if(!this.columnGroups){g+=this.showHeader?this.columnsHeight:0}else{g+=this.showHeader?this.columnsheader.height():0}if(this.filterable){g+=this.filter.height()}if(this.pageable){if(this.pagerPosition==="top"){g+=this.pagerHeight}}if(this.showtoolbar){g+=this.toolbarHeight}e-=g;if(this.pageable&&this.pagerPosition!=="top"){e-=this.pagerHeight}if(this.showstatusbar){e-=this.statusBarHeightt}if(this.showAggregates){e-=this.aggregatesHeight}if(this.hScrollBar.css("visibility")!="hidden"){e-=20}var n=this.host.coord().top+g;var f=m;var c=e+f;var i=p.coord().top+m-n;i=Math.round(i);var l=i+p.outerHeight();l=Math.round(l);if(Math.round(p.position().top)===0){return this.vScrollBar.jqxScrollBar("setPosition",0)}else{var j=b(this._table.children()[1]).children().length-1;var d=this._getuikey(j);var k=this._getuirow(d);if(k){if(k[0]===p[0]){return this.vScrollBar.jqxScrollBar("setPosition",this.vScrollBar.jqxScrollBar("max"))}}}if(ic){return this.vScrollBar.jqxScrollBar("setPosition",4+l-e-m)}},ensureRowVisible:function(c){var d=this._getkey(c);this.ensurerowvisiblebykey(d)},getColumn:function(c){var d=null;if(this.columns.records){b.each(this.columns.records,function(){if(this.datafield==c||this.displayfield==c){d=this;return false}})}return d},_setcolumnproperty:function(e,g,h){if(e==null||g==null||h==null){return null}var d=g;g=g.toLowerCase();var f=this.getColumn(e);if(f==null){return}var i=f[g];f[g]=h;f[d]=h;var c=this.getColumn(e);if(c!=null){c[g]=h}switch(g){case"filteritems":case"text":case"editable":case"resizable":case"draggable":case"hidden":case"hideable":case"renderer":case"cellsrenderer":case"align":case"aggregates":case"cellsalign":case"cellsformat":case"pinned":case"contenttype":case"filterable":case"groupable":case"cellclass":case"cellclassname":case"class":case"width":case"minwidth":case"maxwidth":if(g=="align"){this._rendercolumnheaders();this.refresh()}else{if(g=="text"||g=="class"||g=="hidden"||g=="pinned"||g=="resizable"||g=="renderer"){this._rendercolumnheaders();this.refresh()}else{if(g=="width"||g=="maxwidth"||g=="minwidth"){f._width=null;f._percentagewidth=null;this._updatecolumnwidths();this.refresh()}else{this.refresh()}}}break}},getColumnProperty:function(c,e){if(c==null||e==null){return null}e=e.toLowerCase();var d=this.getColumn(c);return d[e]},setColumnProperty:function(c,d,e){this._setcolumnproperty(c,d,e)},hideColumn:function(c){this._setcolumnproperty(c,"hidden",true)},showColumn:function(c){this._setcolumnproperty(c,"hidden",false)},updateBoundData:function(d,c){this.databind(this.source,d,c)},refresh:function(c){if(c!=true){if(b.jqx.isHidden(this.host)){return}this.vScrollInstance.setPosition(0);this._renderrows();this.updatepagerdetails();this._arrange();if(this._arrangeFilterRow){this._arrangeFilterRow()}this._renderhorizontalscroll();this._showicons();if(this.showAggregates){this._updateaggregates()}this._updateTouchScrolling()}},_updateTouchScrolling:function(){var d=this.that;if(d.isTouchDevice()){var f=b.jqx.mobile.getTouchEventName("touchstart");var e=b.jqx.mobile.getTouchEventName("touchend");var c=b.jqx.mobile.getTouchEventName("touchmove");if(d.gridcontent){d.removeHandler(d.gridcontent,f+".touchScroll");d.removeHandler(d.gridcontent,c+".touchScroll");d.removeHandler(d.gridcontent,e+".touchScroll");d.removeHandler(d.gridcontent,"touchcancel.touchScroll");b.jqx.mobile.touchScroll(d.gridcontent[0],Math.max(d.vScrollInstance.max,d.hScrollInstance.max),function(i,h){if(d.vScrollBar.css("visibility")!="hidden"){var g=d.vScrollInstance.value;d.vScrollInstance.setPosition(g+h)}if(d.hScrollBar.css("visibility")!="hidden"){var g=d.hScrollInstance.value;d.hScrollInstance.setPosition(g+i)}d.scrolled=new Date();d.vScrollInstance.thumbCapture=true},this.element.id,this.hScrollBar,this.vScrollBar)}}},_showicons:function(){if(!this.table){return}for(var e=0;e0){c.css("margin-right",4+h+"px")}else{c.css("margin-right","4px")}}else{if(h>0){c.css("margin-left",4+h+"px")}else{c.css("margin-left","4px")}}}}},render:function(j){var f="
              ";this.element.innerText="";this.element.innerHTML=f;this.wrapper=this.host.find("#wrapper"+this.element.id);this.content=this.host.find("#content"+this.element.id);this.content.addClass(this.toTP("jqx-reset"));var h=this.host.find("#verticalScrollBar"+this.element.id);var l=this.host.find("#horizontalScrollBar"+this.element.id);this.bottomRight=this.host.find("#bottomRight").addClass(this.toTP("jqx-grid-bottomright")).addClass(this.toTP("jqx-scrollbar-state-normal"));if(this.vScrollBar){this.vScrollBar.jqxScrollBar("destroy")}if(this.hScrollBar){this.hScrollBar.jqxScrollBar("destroy")}this.vScrollBar=h.jqxScrollBar({vertical:true,rtl:this.rtl,touchMode:this.touchmode,theme:this.theme,_triggervaluechanged:false});this.hScrollBar=l.jqxScrollBar({vertical:false,rtl:this.rtl,touchMode:this.touchmode,theme:this.theme,_triggervaluechanged:false});this.vScrollBar.css("visibility","hidden");this.hScrollBar.css("visibility","hidden");this.vScrollInstance=b.data(this.vScrollBar[0],"jqxScrollBar").instance;this.hScrollInstance=b.data(this.hScrollBar[0],"jqxScrollBar").instance;this.filter=this.host.find("#filter");this.filter[0].id="filter"+this.element.id;this.filter.addClass(this.toTP("jqx-widget-header"));this.filter.addClass(this.toTP("jqx-grid-toolbar"));this.pager=this.host.find("#pager");this.pager[0].id="pager"+this.element.id;this.toolbar=this.host.find("#toolbar");this.toolbar[0].id="toolbar"+this.element.id;this.toolbar.addClass(this.toTP("jqx-grid-toolbar"));this.toolbar.addClass(this.toTP("jqx-widget-header"));this.aggregates=this.host.find("#aggregates");this.aggregates[0].id="aggregates"+this.element.id;this.aggregates.addClass(this.toTP("jqx-grid-statusbar"));this.aggregates.addClass(this.toTP("jqx-widget-header"));this.statusbar=this.host.find("#statusbar");this.statusbar[0].id="statusbar"+this.element.id;this.statusbar.addClass(this.toTP("jqx-grid-statusbar"));this.statusbar.addClass(this.toTP("jqx-widget-header"));this.pager.addClass(this.toTP("jqx-grid-pager"));this.pager.addClass(this.toTP("jqx-widget-header"));this.toppager=this.host.find("#toppager");this.toppager.addClass(this.toTP("jqx-grid-pager-top"));this.toppager.addClass(this.toTP("jqx-widget-header"));this.gridtable=null;if(this.localizestrings){this.localizestrings();if(this.localization!=null){this.localizestrings(this.localization,false)}}this._builddataloadelement();this._cachedcolumns=this.columns;var c=this.source.datafields;if(c==null&&this.source._source){c=this.source._source.datafields}if(c){for(var d=0;d2){for(var k=0;k
              ');this.columnsheader.remove();this.columnsheader.addClass(this.toTP("jqx-widget-header"));this.columnsheader.addClass(this.toTP("jqx-grid-header"));if(!this.showHeader){this.columnsheader.css("display","none")}else{if(this.columnsheader){this.columnsheader.css("display","block")}}this.gridcontent=this.gridcontent||b('
              ');this.gridcontent.remove();var c=this.columnsHeight;c=this._preparecolumnGroups();this.columnsheader.height(c);this.content.append(this.columnsheader);this.content.append(this.gridcontent);this._rendercolumnheaders();this.tableheight=null;this.gridcontent.find("#contenttable"+this.element.id).remove();if(this.table!=null){this.table.remove();this.table=null}this.table=b('
              ');this.gridcontent.addClass(this.toTP("jqx-grid-content"));this.gridcontent.addClass(this.toTP("jqx-widget-content"));this.gridcontent.append(this.table);this._renderrows();if(this.filterable){this._renderfilter()}if(this.pageable){this._initpager()}this._arrange();if(this.renderStatusBar){this.renderStatusBar(this.statusbar)}if(this.rendertoolbar){this.rendertoolbar(this.toolbar)}if(this.showAggregates){this._updateaggregates()}if(this.disabled){this.host.addClass(this.toThemeProperty("jqx-fill-state-disabled"))}this._renderhorizontalscroll();this._showicons();this._addHandlers()},clear:function(){if(this.source){this.source.records=new Array();this.source.hierarchy=new Array()}this.dataview._filteredData=new Array();this.databind(null);this._render()},_initpager:function(){var g=this;var c=this.gridlocalization.pagergotopagestring;var i=this.gridlocalization.pagerrangestring;var d=this.gridlocalization.pagershowrowsstring;var h=(this.pagerHeight-17)/2;this.pagerdiv=this.pagerdiv||b('
              ');this.toppagerdiv=this.toppagerdiv||b('
              ');if(!this.pageable){this.pagerdiv.remove();this.toppagerdiv.remove();return}if(!this.pagerRenderer){this.pagerdiv.css("top",h);this.toppagerdiv.css("top",h);var f=function(s,E){var n=this;var r=b('
              ');var D=b('
              ');var t=b('
              ');var j=b('
              ');var m=b('
              ');var q=b('
              ');var z=b('
              ');var x=b('
              ');var p=b('
              ');r.attr("disabled",n.disabled);var A=b('
              ');A[0].id="gridpagerlist"+E+n.element.id;n.removeHandler(t,"mousedown");n.removeHandler(t,"mouseup");n.removeHandler(t,"click");n.removeHandler(j,"mousedown");n.removeHandler(j,"mouseup");n.removeHandler(j,"click");n.removeHandler(m,"mousedown");n.removeHandler(m,"mouseup");n.removeHandler(m,"click");n.removeHandler(q,"mousedown");n.removeHandler(q,"mouseup");n.removeHandler(q,"click");if(!n.rtl){j.attr("title",n.gridlocalization.pagerpreviousbuttonstring);t.attr("title",n.gridlocalization.pagernextbuttonstring)}else{t.attr("title",n.gridlocalization.pagerpreviousbuttonstring);j.attr("title",n.gridlocalization.pagernextbuttonstring)}if(b.jqx.browser.msie&&b.jqx.browser.version<8){p.css("padding-top","3px")}this["pagerfirst"+E]=m;this["pagerlast"+E]=q;this["pagernext"+E]=t;this["pagerprevious"+E]=j;this["pagergotoinput"+E]=r;this["pagerdetails"+E]=z;this["pagershowrows"+E]=x;this["pagergotolabel"+E]=D;this["pagershowrowscombo"+E]=A;this["pagerbuttons"+E]=p;if(n.pagerMode=="default"){if(!n.rtl){m.attr("title",n.gridlocalization.pagerfirstbuttonstring);q.attr("title",n.gridlocalization.pagerlastbuttonstring)}else{q.attr("title",n.gridlocalization.pagerfirstbuttonstring);m.attr("title",n.gridlocalization.pagerlastbuttonstring)}var v=b("
              ");v.addClass(n.toThemeProperty("jqx-icon-arrow-first"));m.wrapInner(v);var o=b("
              ");o.addClass(n.toThemeProperty("jqx-icon-arrow-last"));q.wrapInner(o);if(!n.rtl){s.append(m);s.append(j);s.append(p);s.append(t);s.append(q)}else{s.append(q);s.append(t);s.append(p);s.append(j);s.append(m)}q.jqxButton({cursor:"pointer",disabled:n.disabled,theme:n.theme});m.jqxButton({cursor:"pointer",disabled:n.disabled,theme:n.theme});var C=!n.rtl?"left":"right";p.css("float",C);q.css("float",C);m.css("float",C);t.css("float",C);j.css("float",C);z.css("float",n.rtl?"left":"right");if(n.rtl){z.css("margin-left","7px");z.css("margin-right","0px")}else{z.css("margin-left","0px");z.css("margin-right","7px")}}else{if(!n.rtl){s.append(t);s.append(j)}}t.jqxButton({cursor:"pointer",disabled:n.disabled,theme:n.theme});j.jqxButton({cursor:"pointer",disabled:n.disabled,theme:n.theme});var k=b("
              ");k.addClass(n.toThemeProperty("jqx-icon-arrow-left"));j.wrapInner(k);var l=b("
              ");l.addClass(n.toThemeProperty("jqx-icon-arrow-right"));t.wrapInner(l);if(!n.rtl){s.append(z)}if(n.pagerMode!="default"){if(!n.rtl){s.append(A);s.append(x);s.append(r);s.append(D)}else{s.append(D);s.append(r);s.append(x);s.append(A);s.append(z);s.append(t);s.append(j)}var u=n.pageSizeOptions;A.jqxDropDownList({_checkForHiddenParent:false,rtl:n.rtl,disabled:n.disabled,source:u,enableBrowserBoundsDetection:true,keyboardSelection:false,autoDropDownHeight:true,width:44,height:16,theme:n.theme});var B=0;for(var y=0;y=u[y]){B=y}}D[0].innerHTML=c;A.jqxDropDownList({selectedIndex:B});var w=r.find("input");w.addClass(n.toThemeProperty("jqx-input"));w.addClass(n.toThemeProperty("jqx-widget-content"));if(this.rtl){w.css("direction","rtl")}var n=this;this.removeHandler(A,"select");this.addHandler(A,"select",function(K){if(K.args){if(n.vScrollInstance){n.vScrollInstance.setPosition(0)}var I=K.args.index;n.pagershowrowscombotop.data().jqxDropDownList.instance.selectIndex(I);n.pagershowrowscombobottom.data().jqxDropDownList.instance.selectIndex(I);n.pagershowrowscombobottom.data().jqxDropDownList.instance.renderSelection("mouse");n.pagershowrowscombotop.data().jqxDropDownList.instance.renderSelection("mouse");var L=n.dataview.pagenum*n.dataview.pagesize;var H=u[I];var J=n.pageSize;n.pageSize=parseInt(H);if(isNaN(n.pageSize)){n.pageSize=10}if(H>=100){n.pagershowrowscombotop.jqxDropDownList({width:55});n.pagershowrowscombobottom.jqxDropDownList({width:55})}else{n.pagershowrowscombotop.jqxDropDownList({width:44});n.pagershowrowscombobottom.jqxDropDownList({width:44})}n.dataview.pagesize=n.pageSize;var G=Math.floor(L/n.dataview.pagesize);if(G!==n.dataview.pagenum||parseInt(H)!==parseInt(J)){n._raiseEvent("pageSizeChanged",{pagenum:G,oldpageSize:J,pageSize:n.dataview.pagesize});var F=n.goToPage(G);if(!F){if(!n.serverProcessing){n.refresh()}else{n.updateBoundData("pager")}}}}});var r=r.find("input");r.addClass(n.toThemeProperty("jqx-grid-pager-input"));r.addClass(n.toThemeProperty("jqx-rc-all"));this.removeHandler(r,"keydown");this.removeHandler(r,"change");n.addHandler(r,"keydown",function(F){if(F.keyCode>=65&&F.keyCode<=90){return false}if(F.keyCode=="13"){var G=r.val();G=parseInt(G);if(!isNaN(G)){n.goToPage(G-1)}return false}});n.addHandler(r,"change",function(){var F=r.val();F=parseInt(F);if(!isNaN(F)){n.goToPage(F-1)}})}x[0].innerHTML=d;n.addHandler(t,"mouseenter",function(){l.addClass(n.toThemeProperty("jqx-icon-arrow-right-hover"))});n.addHandler(j,"mouseenter",function(){k.addClass(n.toThemeProperty("jqx-icon-arrow-left-hover"))});n.addHandler(t,"mouseleave",function(){l.removeClass(n.toThemeProperty("jqx-icon-arrow-right-hover"))});n.addHandler(j,"mouseleave",function(){k.removeClass(n.toThemeProperty("jqx-icon-arrow-left-hover"))});n.addHandler(t,"mousedown",function(){l.addClass(n.toThemeProperty("jqx-icon-arrow-right-selected"))});n.addHandler(t,"mouseup",function(){l.removeClass(n.toThemeProperty("jqx-icon-arrow-right-selected"))});n.addHandler(j,"mousedown",function(){k.addClass(n.toThemeProperty("jqx-icon-arrow-left-selected"))});n.addHandler(j,"mouseup",function(){k.removeClass(n.toThemeProperty("jqx-icon-arrow-left-selected"))});if(n.pagerMode==="default"){n.addHandler(q,"mouseenter",function(){o.addClass(n.toThemeProperty("jqx-icon-arrow-last-hover"))});n.addHandler(m,"mouseenter",function(){v.addClass(n.toThemeProperty("jqx-icon-arrow-first-hover"))});n.addHandler(q,"mouseleave",function(){o.removeClass(n.toThemeProperty("jqx-icon-arrow-last-hover"))});n.addHandler(m,"mouseleave",function(){v.removeClass(n.toThemeProperty("jqx-icon-arrow-first-hover"))});n.addHandler(q,"mousedown",function(){o.addClass(n.toThemeProperty("jqx-icon-arrow-last-selected"))});n.addHandler(m,"mousedown",function(){v.addClass(n.toThemeProperty("jqx-icon-arrow-first-selected"))});n.addHandler(q,"mouseup",function(){o.removeClass(n.toThemeProperty("jqx-icon-arrow-last-selected"))});n.addHandler(m,"mouseup",function(){v.removeClass(n.toThemeProperty("jqx-icon-arrow-first-selected"))})}n.addHandler(b(document),"mouseup.pagerbuttons"+E+this.element.id,function(){l.removeClass(n.toThemeProperty("jqx-icon-arrow-right-selected"));k.removeClass(n.toThemeProperty("jqx-icon-arrow-left-selected"));if(o){o.removeClass(n.toThemeProperty("jqx-icon-arrow-last-selected"));v.removeClass(n.toThemeProperty("jqx-icon-arrow-first-selected"))}});n.addHandler(t,"click",function(){if(!t.jqxButton("disabled")){if(!n.rtl){n.goToNextPage()}else{n.goToPrevPage()}}});n.addHandler(j,"click",function(){if(!j.jqxButton("disabled")){if(!n.rtl){n.goToPrevPage()}else{n.goToNextPage()}}});if(this.pagerMode==="default"){n.addHandler(m,"click",function(){if(!m.jqxButton("disabled")){if(!n.rtl){n.goToPage(0)}else{var G=n.dataview.totalrecords;var F=Math.ceil(G/n.pageSize);n.goToPage(F-1)}}});n.addHandler(q,"click",function(){if(!q.jqxButton("disabled")){if(!n.rtl){var G=n.dataview.totalrecords;var F=Math.ceil(G/n.pageSize);n.goToPage(F-1)}else{n.goToPage(0)}}})}};this.pagerdiv.children().remove();this.toppagerdiv.children().remove();f.call(this,this.pagerdiv,"bottom");f.call(this,this.toppagerdiv,"top");this.pager.append(this.pagerdiv);this.toppager.append(this.toppagerdiv);this.updatepagerdetails()}else{this.pagerdiv.children().remove();this.toppager.children().remove();var e=this.pagerRenderer();if(e!=null){this.pagerdiv.append(b(e))}this.pager.append(this.pagerdiv);var e=this.pagerRenderer();if(e!=null){this.toppagerdiv.append(b(e))}this.toppager.append(this.toppagerdiv)}},_updatepagertheme:function(){},goToPage:function(f,h){if(this._loading){return false}if(this.editKey!=undefined){if(this.editSettings.saveOnPageChange){var e=this.endroweditbykey(this.editKey);if(!e){return false}}else{return false}}if(f==null||f==undefined){f=0}if(f==-1){f=0}if(f<0){return false}var d=this.dataview.totalrecords;var g=this.dataview.pagenum;var c=Math.ceil(d/this.pageSize);if(f>=c){if(this.dataview.totalrecords==0){this.dataview.pagenum=0;this.updatepagerdetails()}if(f>0){f=c-1}}if(this.dataview.pagenum!=f){if(this.pageable){this.dataview.pagenum=f;this._raiseEvent("pageChanged",{pagenum:f,oldpagenum:g,pageSize:this.dataview.pagesize})}if(!this.serverProcessing){this.refresh();if(h){if(b.isFunction(h)){h()}}}else{this.updateBoundData("pager",h)}return true}return false},goToPrevPage:function(e){if(this.dataview.pagenum>0){return this.goToPage(this.dataview.pagenum-1,e)}else{if(this.pagerMode!="default"&&this.pagerMode!="advanced"){var d=this.dataview.totalrecords;var c=Math.ceil(d/this.pageSize);return this.goToPage(c-1,e)}}return false},goToNextPage:function(e){var d=this.dataview.totalrecords;if(this.summaryrows){d+=this.summaryrows.length}var c=Math.ceil(d/this.pageSize);if(this.dataview.pagenum=this.dataview.totalrecords){u=this.dataview.totalrecords}var v=this.dataview.totalrecords;d++;var t=Math.ceil(v/this.dataview.pagesize);if(t>=1){t--}t++;if(this.pageSizeMode=="root"){t=Math.ceil(this.rootRecordsLength/this.dataview.pagesize);if(t>=1){t--}t++;v=this.rootRecordsLength;this.dataview.totalrecords=this.rootRecordsLength}if(this.pagerMode!="default"){if(this["pagergotoinputbottom"]){var k=this["pagergotoinputbottom"].find("input");k.val(this.dataview.pagenum+1);k.attr("title","1 - "+t);k=this["pagergotoinputtop"].find("input");k.val(this.dataview.pagenum+1);k.attr("title","1 - "+t)}}else{var o="";var n=this.pagerButtonsCount;if(n==0||!n){n=5}var s=0;if(this.rtl){s=n-1}while((this.rtl&&s>=0)||(!this.rtl&&st&&!this.rtl){break}else{if(this.rtl&&e>t){s--;continue}}if(!this.rtl){if(s==0&&e>n){o+="..."}}if(this.dataview.pagenum===e-1){c+=" "+this.toTP("jqx-fill-state-pressed")}if(!this.rtl){o+=""+e+"";if(s===n-1){var c=this.toTP("jqx-grid-pager-number");c+=" "+this.toTP("jqx-rc-all");if(t>=1+e){o+="..."}}}else{if(s===n-1){var c=this.toTP("jqx-grid-pager-number");c+=" "+this.toTP("jqx-rc-all");if(t>=1+e){o+="..."}}if(this.dataview.pagenum===e-1){c+=" "+this.toTP("jqx-fill-state-pressed")}o+=""+e+""}if(this.rtl){var c=this.toTP("jqx-grid-pager-number");c+=" "+this.toTP("jqx-rc-all");if(s==0&&e>n){o+="..."}}if(!this.rtl){s++}else{s--}}if(!this["pagerbuttonsbottom"]){return}var h=this["pagerbuttonsbottom"].find("a");this.removeHandler(h,"click");this.removeHandler(h,"mouseenter");this.removeHandler(h,"mouseleave");var h=this["pagerbuttonstop"].find("a");this.removeHandler(h,"click");this.removeHandler(h,"mouseenter");this.removeHandler(h,"mouseleave");this["pagerbuttonsbottom"][0].innerHTML=o;this["pagerbuttonstop"][0].innerHTML=o;if(this.disabled){this.host.find(".jqx-grid-pager-number").css("cursor","default")}var q=function(){h.click(function(i){if(j.disabled){return}var w=b(i.target).attr("data-page");j.goToPage(parseInt(w)-1)});h.mouseenter(function(i){if(j.disabled){return}b(i.target).addClass(j.toTP("jqx-fill-state-hover"))});h.mouseleave(function(i){if(j.disabled){return}b(i.target).removeClass(j.toTP("jqx-fill-state-hover"))})};if(this.pagerPosition==="both"||this.pagerPosition==="bottom"){var h=this["pagerbuttonsbottom"].find("a");q(h)}if(this.pagerPosition==="both"||this.pagerPosition==="top"){var h=this["pagerbuttonstop"].find("a");q(h)}}if(u==0&&uu){this.goToPrevPage()}},_preparecolumnGroups:function(){var o=this.columnsHeight;if(this.columnGroups){this.columnshierarchy=new Array();if(this.columnGroups.length){var m=this;for(var g=0;gi){return 1}return 0});for(var k=1;k0){if(this.hScrollInstance.value>2*10){this.hScrollInstance.setPosition(this.hScrollInstance.value-2*10)}else{this.hScrollInstance.setPosition(0)}}else{if(this.hScrollInstance.value0){return true}}if(undefined==e.editKey){return false}});this.addHandler(b(window),"jqxReady."+this.element.id,function(){e._updatecolumnwidths();e.refresh()});if(this.editable){this.addHandler(b(document),"mousedown.gridedit"+this.element.id,function(j){if(e.editable&&e.editSettings.saveOnBlur){if(e.editKey!=null){if(!e.vScrollInstance.isScrolling()&&!e.vScrollInstance.isScrolling()){var r=e.host.coord();var o=e.host.width();var k=e.host.height();var t=false;var h=false;var s=false;if(j.pageYr.top+k){t=true;h=true}if(j.pageXr.left+o){t=true;s=true}if(t){var l=function(x){var w=b(x.children()[0]).data();if(w&&!w.jqxWidget){w=x.data()}if(!w){w=x.data()}if(w.jqxWidget&&w.jqxWidget.container&&w.jqxWidget.container[0].style.display=="block"){var i=w.jqxWidget;var y=i.container.coord().top;var v=i.container.coord().top+i.container.height();if(h&&(j.pageYv)){t=true;i.close();return true}else{return false}}};var q=e._editors;if(q){for(var m=0;m0){var j=e._pinnedTable[0].rows[e.hoveredRow[0].rowIndex].cells;h(j)}}e.hoveredRow=null};this.addHandler(this.table,"mouseleave",function(h){c();if(e.wrapper){e.wrapper.parent().removeAttr("tabindex",0);e.wrapper.removeAttr("tabindex",1);e.content.removeAttr("tabindex",2)}});var f=function(n){if(!e.enableHover){return true}e.hoveredRow=n;if(!n){return true}var k=n[0].cells;var m=e.rowDetails&&!e.treeGrid;var p=m&&!e.treeGrid?1:0;var j=0;if(p>0&&e.rtl){p=0;j=1}for(var l=p;l=0){if(!k.expanded){e.showdetailsbykey(E)}else{e.hidedetailsbykey(E)}}else{if(A.target&&A.target.className.indexOf&&A.target.className.indexOf("jqx-grid-group")>=0&&e.treeGrid){if(!k.expanded){e.treeGrid.expandRow(E)}else{e.treeGrid.collapseRow(E)}f(e._getuirow(E));if(A.stopPropagation){A.stopPropagation()}if(A.preventDefault){A.preventDefault()}}else{if(A.target&&A.target.className.indexOf&&A.target.className.indexOf("checkbox")>=0&&e.treeGrid){if(!k.checked){e.treeGrid.checkRow(E)}else{e.treeGrid.uncheckRow(E)}f(e._getuirow(E));if(A.stopPropagation){A.stopPropagation()}}else{var l=b(p).index();var j=e.columns.records[l];if(A.stopPropagation){A.stopPropagation()}if(e.editable&&e.editKey==null){if(e._lastSelectedKey==E&&e.editSettings.editOnDoubleClick&&z){var t=e.beginroweditbykey(E,j);return true}}if(e.isTouchDevice()){if(e.scrolled&&new Date()-e.scrolled<500){if(!e.enableBrowserSelection){if(A.preventDefault){A.preventDefault()}}return false}}if(e.selectionMode==="singlerow"&&e.selectionMode!=="custom"){e.selectrowbykey(E,"mouse",false);e._lastSelectedKey=E;e._updateSelection();if(A.preventDefault){A.preventDefault()}u();return true}else{if(e.selectionMode!=="custom"){if(!A.ctrlKey&&!A.metaKey){e.clearSelection(false)}if(A.shiftKey){if(e._lastSelectedKey){var k=e.rowinfo[e._lastSelectedKey];e._doSelection(e._lastSelectedKey,true,false);var i=b(e._table.children()[1]).children(("[data-key="+e._lastSelectedKey+"]"));var m=i.index();var w=o.index();e._selectRange(w,m);e.selectrowbykey(E,"mouse",false);e._updateSelection();if(A.preventDefault){A.preventDefault()}u();return true}}}e._lastSelectedKey=E;e.clickTime=new Date();if(e.selectionMode!=="custom"){if(k){if(k.selected){e.unselectrowbykey(E,"mouse",false)}else{e.selectrowbykey(E,"mouse",false)}u()}}else{return true}e._updateSelection();if(!e.enableBrowserSelection){if(A.preventDefault){A.preventDefault()}}return true}}}}}})},_updateSelection:function(){var l=this;var r=b(l._table.children()[1]).children();var n=l._pinnedTable?b(l._pinnedTable.children()[1]).children():null;var e=l.rowDetails&&!l.treeGrid;var d=e?1:0;var f=0;if(d>0&&l.rtl){d=0;f=1}for(var h=0;he){var h=e;var d=c;while(hf){var d=d.prev();var g=d.attr("data-key");this._doSelection(g,true,false);h--}}}},_getuikey:function(d,g){var f=null;var e=b(this._table.children()[1]).children();f=b(e[d]).attr("data-key");if(b(e[d]).attr("data-role")){var c=b(e[d]);if(g=="next"){while(c){c=c.next();if(c){var h=c.attr("data-role");if(!h){f=c.attr("data-key");return f}}}}else{if(g=="prev"){while(c){c=c.prev();if(c){var h=c.attr("data-role");if(!h){f=c.attr("data-key");return f}}}}}return null}return f},getRows:function(){return this.source.records},getView:function(){var d=this;var e=this._names();var f=new Array();var c=function(k,h){if(!h){return}for(var j=0;j0){g.records=new Array();c(g.records,h[j].records)}}}}};c(f,this.dataViewRecords);return f},getKeys:function(){var d=new Array();var e=this.source.records;for(var c=0;c0){var h=0;for(var j=0;j0){continue}if(h===n+e){k=o.attr("data-key");return k}h++}return k}if(this.rowDetails){var h=0;for(var j=0;j0){return c}}catch(e){var d=b(this._table.children()[1]).children();for(var f=0;f0){return c}}catch(e){var d=b(this._pinnedTable.children()[1]).children();for(var f=0;f=33&&s<=40))){var z=-1;if(!this._searchString){this._searchString=""}if((s==8||s==46)&&this._searchString.length>=1){this._searchString=this._searchString.substr(0,this._searchString.length-1)}var e=String.fromCharCode(s);var H=(!isNaN(parseInt(e)));var J=false;if((s>=65&&s<=97)||H||s==8||s==32||s==46){if(!X.shiftKey){e=e.toLocaleLowerCase()}if(s!=8&&s!=32&&s!=46){if(!(this._searchString.length>0&&this._searchString.substr(0,1)==e)){this._searchString+=e}}if(s==32){this._searchString+=" "}this._searchTime=new Date();var n=this.getSelection();if(n.length>=1){var t=n[0].uid;var C=-1;for(var S=0;S0&&B[0]==t)){var B=this._getMatches(this._searchString)}}else{var B=this._getMatches(this._searchString)}if(B.length>0){var n=this.getSelection();if(n.length>=1){var c=B.indexOf(n[0].uid);if(c==-1){this.clearSelection(false);this.selectrowbykey(B[0])}else{var h=c+1;if(h>=B.length){h=0}this.clearSelection(false);this.selectrowbykey(B[h])}}else{this.clearSelection(false);this.selectrowbykey(B[0])}this._lastSearchString=this._searchString}}if(this._searchTimer!=undefined){clearTimeout(this._searchTimer)}if(s==27||s==13){this._searchString="";this._lastSearchString=""}this._searchTimer=setTimeout(function(){I._searchString="";I._lastSearchString=""},500);if(z>=0){return}if(J){return false}}}if(this.editKey!=undefined){if(s===27&&this.editSettings.cancelOnEsc){this.endroweditbykey(this.editKey,true)}else{if(s===13&&this.editSettings.saveOnEnter){if(X.target&&X.target.nodeName.toLowerCase()!="div"&&X.target.nodeName.toLowerCase()!="input"){return true}this.endroweditbykey(this.editKey,false)}else{if(this.editSettings.editSingleCell){if(this.editColumn){var P=this.columns.records.indexOf(this.editColumn);if(s==9&&P0){var M=this.editKey;var E=null;for(var S=P-1;S>=0;S--){if(this.columns.records[S].editable&&!this.columns.records[S].hidden){E=this.columns.records[S];break}}if(E){this.endroweditbykey(this.editKey,false);this.beginroweditbykey(M,E)}}}if(s==9){var o=this.rowinfo[this.editKey];var C=this.getrowindex(o);var v=this._getuirow(this.editKey);if(!X.shiftKey&&!y){var N=null;for(var S=0;S=0;S--){if(this.columns.records[S].editable&&!this.columns.records[S].hidden){N=this.columns.records[S];break}}if(N){while(v){v=v.prev();if(v){var D=v.attr("data-role");if(!D){var F=v.attr("data-key");break}}}if(F){this.clearSelection(false);this._lastSelectedKey=F;var o=this.rowsByKey[F];var C=this.getrowindex(o);var L=this.getrowdisplayindex(o);this._raiseEvent("rowSelect",{key:F,index:L,boundIndex:C,row:this.rowsByKey[F]});this.endroweditbykey(this.editKey,false);this._doSelection(F,true,true);this.beginroweditbykey(F,N)}}}}return false}}}}}return true}if(X.ctrlKey||X.metaKey){var f=String.fromCharCode(s).toLowerCase();if(f=="c"||f=="x"){var n=this.getSelection();if(n.length>=1){var w="";for(var K=0;K');O.val(w);b("body").append(O);O.select();setTimeout(function(){document.designMode="off";O.select();O.remove()},100)}}}}if(s===32&&this.treeGrid){if(this.treeGrid.checkboxes){var n=this.getSelection();if(n.length>1){for(var S=0;S0){if(this.dataview.filters.length>0){var m=this.rowinfo[t].row.records;for(var S=0;S0){while(this._getuirow(t)==null&&this.dataview.pagenum>0){this.goToPrevPage()}}}else{if(s==39){var v=this._getuirow(t);var U=null;if(v){var D=v.attr("data-role");if(!D){U=v.attr("data-key")}}if(this.pageable&&U==null){this.goToNextPage()}}}}return false}},_selection:function(c){if("selectionStart" in c[0]){var h=c[0];var i=h.selectionEnd-h.selectionStart;return{start:h.selectionStart,end:h.selectionEnd,length:i,text:h.value}}else{var f=document.selection.createRange();if(f==null){return{start:0,end:h.value.length,length:0}}var d=c[0].createTextRange();var g=d.duplicate();d.moveToBookmark(f.getBookmark());g.setEndPoint("EndToStart",d);var i=f.text.length;return{start:g.text.length,end:g.text.length+f.text.length,length:i,text:f.text}}},_doSelection:function(c,e,d){if(c==null){this.clearSelection();return}if(this.selectionMode==="singlerow"){this.clearSelection(false)}var f=this.rowinfo[c];if(f){f.selected=e;this.ensurerowvisiblebykey(c)}else{this.ensurerowvisiblebykey(c);var f=this.rowinfo[c];if(f){f.selected=e}else{this.rowinfo[c]={selected:e}}}if(this.selectionMode!="none"){if(d!==false){this._renderrows()}}},clearSelection:function(e){if(this.rowinfo){var f=this.getRows();for(var h in this.rowinfo){var g=this.rowinfo[h];if(g.selected){g.selected=false;var d=f.indexOf(g.row);var c=this.getrowdisplayindex(g.row);this._raiseEvent("rowUnselect",{key:h,index:c,boundIndex:d,row:g.row})}}}if(e!==false){this._renderrows()}},exportData:function(t){if(!b.jqx.dataAdapter.ArrayExporter){if(!this.treeGrid){throw"jqxDataTable: Missing reference to jqxdata.export.js!"}throw"jqxTreeGrid: Missing reference to jqxdata.export.js!"}var h=this.exportSettings.columnsHeader;if(h==undefined){h=true}var w=this.exportSettings.hiddenColumns;if(w==undefined){w=false}var P=this.exportSettings.serverURL;var I=this.exportSettings.characterSet;var ac=this.exportSettings.collapsedRecords;if(ac==undefined){ac=false}var F=this.exportSettings.fileName;if(F===undefined){F=this.treeGrid?"jqxTreeGrid_Data":"jqxDataTable_Data"}var s=this;var Y=this.getRows();if(this.exportSettings.recordsInView==true){Y=this.getView()}if(this.treeGrid&&this.treeGrid.virtualModeCreateRecords){var Y=this.treeGrid.getRows()}if(this.groups&&this.groups.length>0){var k=this.source.getGroupedRecords(this.groups,"records","label",null,"data",null,"parent",Y);var m=function(o,ae){for(var ag=0;ag0){var ah=m(j.records,new Array());for(var af=0;af0){if(p.length>0){var aa=this._names();for(var X=0;X0&&o){d(ae[af].records)}}};d(L);if(t!="xml"&&t!="json"){var u=p.length;for(var X=0;X0){o["Level"+o[aa.level]]=ae?"-":"+"}else{o["Level"+o[aa.level]]=""}}else{o["Level"+o[aa.level]]=""}if(o[aa.leaf]){o["Level"+o[aa.level]]=""}for(var ag=o[aa.level]+1;ag=g){aj=p.length-g-1}else{if(g>0&&ag1){var j=b(s._table[0].rows[1].cells[aj]);if(j.length==0){var j=b(s._table[0].rows[1].cells[0])}}if(ak.length==0){var ak=b(s._table[0].rows[0].cells[0])}var af=this;var ah=function(am){var ao=s.toThemeProperty;am.removeClass(ao("jqx-cell"));am.removeClass(ao("jqx-grid-cell-selected"));am.removeClass(ao("jqx-fill-state-pressed"));am.removeClass(ao("jqx-grid-cell-hover"));am.removeClass(ao("jqx-fill-state-hover"));if(af.customCellStyles){for(var an in af.customCellStyles){am.removeClass(af.customCellStyles[an])}}};ah(ak);if(j){ah(j)}if(this.displayfield==null){return true}if(s.showAggregates){if(s.getcolumnaggregateddata){A.push(s.getcolumnaggregateddata(this.displayfield,this.aggregates,true,Y))}}var ai=s._getexportcolumntype(this);if(this.exportable&&(!this.hidden||f)){Z[this.displayfield]={};Z[this.displayfield].text=this.text;Z[this.displayfield].width=parseInt(this.width);if(isNaN(Z[this.displayfield].width)){Z[this.displayfield].width=60}if(Z[this.displayfield].width>500){Z[this.displayfield].width=500}Z[this.displayfield].formatString=this.cellsFormat;Z[this.displayfield].localization=s.gridlocalization;Z[this.displayfield].type=ai;Z[this.displayfield].cellsAlign=this.cellsalign;Z[this.displayfield].hidden=!h;Z[this.displayfield].index=aj;Z[this.displayfield].maxIndex=p.length}E="cell"+B;var al=this.element;if(t!="json"&&t!="xml"){K="column"+z;var i=function(o,au,at,am,ar,ao,an,ap,aq){C[o]={index:1+an,maxIndex:p.length};if(ao.rtl){C[o].index=p.length-an}if(t=="html"||t=="xls"||t=="pdf"){if(au){C[o]["font-size"]=au.css("font-size");C[o]["font-weight"]=au.css("font-weight");C[o]["font-style"]=au.css("font-style");C[o]["background-color"]=ao._getexportcolor(au.css("background-color"));C[o]["color"]=ao._getexportcolor(au.css("color"));C[o]["border-color"]=ao._getexportcolor(au.css("border-top-color"))}if(at){C[o]["text-align"]=ar.align}else{C[o]["text-align"]=ar.cellsalign;C[o]["formatString"]=ar.cellsFormat;C[o]["dataType"]=ai}if(t=="html"||t=="pdf"){C[o]["border-top-width"]="0px";if(!ao.rtl){C[o]["border-left-width"]="0px";C[o]["border-right-width"]="1px"}else{C[o]["border-left-width"]="1px";C[o]["border-right-width"]="0px";if(an==p.length-g-1&&at){C[o]["border-right-width"]="1px"}}C[o]["border-bottom-width"]="1px";if(au){C[o]["border-top-style"]=au.css("border-top-style");C[o]["border-left-style"]=au.css("border-left-style");C[o]["border-right-style"]=au.css("border-right-style");C[o]["border-bottom-style"]=au.css("border-bottom-style")}if(at){if(an==0&&!ao.rtl){C[o]["border-left-width"]="1px"}else{if(an==p.length-1&&ao.rtl){C[o]["border-right-width"]="1px"}}if(au){C[o]["border-top-width"]="1px";C[o]["border-bottom-width"]=au.css("border-bottom-width")}}else{if(an==0&&!ao.rtl){C[o]["border-left-width"]="1px"}else{if(an==p.length-1&&ao.rtl){C[o]["border-right-width"]="1px"}}}if(au){C[o]["height"]=au.css("height")}if(ao.treeGrid&&!at){if(C[o].index-10&&this.treeGrid){var ab=g+1;if(this.rtl){ab=p.length-g}if(C["column"+ab]){var e=C["column"+ab];e.merge=g;e["border-left-width"]="1px";var H=C["cell"+ab];for(var X=0;X0){b.each(p,function(j){if(this.aggregates){for(var ae=0;ae0){var c=l;for(var u=0;u0){var c=this.getRows();for(var e=0;e0){var m=this.rowsByKey[G];if(this.treeGrid){var m=this.treeGrid.getRow(G)}if(m.level0){for(var y=0;y
              ";var r=this.getCellTextByKey(G,g.displayfield);d.innerHTML=cellContent;var e=b(d.firstChild);switch(g.columntype){case"textbox":case"default":var j=b("").appendTo(e);if(this.rtl){j.css("direction","rtl")}j.addClass(this.toThemeProperty("jqx-input"));j.addClass(this.toThemeProperty("jqx-widget-content"));j.addClass(this.toThemeProperty("jqx-cell-editor"));j[0].onfocus=function(i){setTimeout(function(){if(i){var H=b(i.target).parent().parent().index();if(H>=0){o.ensureColumnVisible(o.columns.records[H].datafield)}}else{var H=b(document.activeElement).parent().parent().index();if(H>=0){o.ensureColumnVisible(o.columns.records[H].datafield)}}if(o.content){o.content[0].scrollTop=0;o.content[0].scrollLeft=0}if(o.gridcontent){o.gridcontent[0].scrollLeft=0;o.gridcontent[0].scrollTop=0}},10)};if(!g.editable){j.attr("disabled",true);j.attr("readOnly",true);j.addClass(this.toThemeProperty("jqx-fill-state-disabled"))}else{if(!p){p=true;var f=b.jqx.browser.msie&&b.jqx.browser.version>10;if(!f){j.focus()}var c=j;setTimeout(function(){var I=c.val().length;if(!f){c.focus()}try{if("selectionStart" in c[0]){c[0].setSelectionRange(0,I)}else{var i=c[0].createTextRange();i.collapse(true);i.moveEnd("character",I);i.moveStart("character",0);i.select()}}catch(H){var J=H}},10)}}j.width(w);j.height(t);if(b.jqx.browser.msie&&b.jqx.browser.version<9){j.css("line-height",parseInt(t)+"px")}j.css("text-align",g.cellsalign);if(r===null){r=""}if(r==undefined){r=""}j.val(r);if(g.createeditor){var B=r;var r=this.getCellValueByKey(G,g.displayfield);g.createeditor(!this.treeGrid?n:G,r,j,B,w,t)}this._editors.push({column:g,editor:j});if(g.cellsFormat!=""){if(g.cellsFormat.indexOf("p")!=-1||g.cellsFormat.indexOf("c")!=-1||g.cellsFormat.indexOf("n")!=-1||g.cellsFormat.indexOf("f")!=-1){j.keydown(function(H){var N=H.charCode?H.charCode:H.keyCode?H.keyCode:0;var K=String.fromCharCode(N);var L=parseInt(K);if(isNaN(L)){return true}if(o._selection(j).length>0){return true}var J="";var I=j.val();if(g.cellsFormat.length>1){var M=parseInt(g.cellsFormat.substring(1));if(isNaN(M)){M=0}}else{var M=0}if(M>0){if(I.indexOf(o.gridlocalization.decimalseparator)!=-1){if(o._selection(j).start>I.indexOf(o.gridlocalization.decimalseparator)){return true}}}for(var O=0;O=11){return false}})}}if(g.initeditor){var B=r;var r=this.getCellValueByKey(G,g.displayfield);g.initeditor(!this.treeGrid?n:G,r,j,B,w,t)}break;case"custom":case"template":if(!this.editorsCache){this.editorsCache=new Array()}var k=b("
              ").appendTo(e);var x=b.trim(g.datafield).split(" ").join("");if(x.indexOf(".")!=-1){x=x.replace(".","")}var z=this.editorsCache["templateeditor_"+x];if(g.columntype=="custom"){var z=this.editorsCache["customeditor_"+x+"_"+G]}var B=r;var r=this.getCellValueByKey(G,g.displayfield);if(!z){var j=b("
              ");j.width(u);j.height(t);z=j;if(r===null){r=""}if(g.columntype!="custom"){this.editorsCache["templateeditor_"+x]=j}else{this.editorsCache["customeditor_"+x+"_"+G]=j}j.appendTo(k);if(g.createeditor){g.createeditor(!this.treeGrid?n:G,r,j,B,u,t)}}else{var j=z;j.width(u);j.height(t);j.appendTo(k)}if(g.initeditor){g.initeditor(!this.treeGrid?n:G,r,j,B,u,t)}this._editors.push({column:g,editor:j});break}}}this.editKey=G;this.beginUpdate();var F=this.getrowdisplayindex(m);this._raiseEvent("rowBeginEdit",{key:G,index:F,boundIndex:n,row:this.rowsByKey[G]});if(E){var m=this.rowsByKey[G];var v=null;var l=null;if(m){v=m[q.datafield];l=m[q.displayfield]}this._raiseEvent("cellBeginEdit",{value:v,displayValue:l,key:G,index:F,dataField:q.datafield,displayField:q.displayfield,boundIndex:n,row:this.rowsByKey[G]})}this.endUpdate(false)},_toNumber:function(f){if(!f.indexOf&&f!=undefined){f=f.toString()}if(f.indexOf(this.gridlocalization.currencysymbol)>-1){f=f.replace(this.gridlocalization.currencysymbol,"")}var c=function(l,j,k){var h=l;if(j==k){return l}var i=h.indexOf(j);while(i!=-1){h=h.replace(j,k);i=h.indexOf(j)}return h};f=c(f,this.gridlocalization.thousandsseparator,"");f=f.replace(this.gridlocalization.decimalseparator,".");if(f.indexOf(this.gridlocalization.percentsymbol)>-1){f=f.replace(this.gridlocalization.percentsymbol,"")}var g="";for(var d=0;d1){if(b.jqx.dataFormat){m=b.jqx.dataFormat.parsedate(e,h.cellsFormat,this.gridlocalization)}if(m=="Invalid Date"||m==null){m=""}}}}if(h.displayfield!=h.datafield){m={label:m,value:m}}break}}if(h.geteditorvalue){var c=this.getCellValueByKey(d,h.displayfield);m=h.geteditorvalue(!this.treeGrid?k:d,c,j)}}return m},_validateEditors:function(c){var k=this;var d=true;var s=k.rowsByKey[c];var l=k.getrowindex(s);var m=k._editors;var c=k.editKey;var p=k._getuirow(c);for(var h=0;h=0||G.indexOf("datetimeinput")>=0||G.indexOf("combobox")>=0||G.indexOf("menu")>=0){if(i.jqxWidget.isOpened){var F=i.jqxWidget.isOpened();if(F){i.jqxWidget.close()}}}}};var z="customeditor_"+v.displayfield+"_"+p;var y="templateeditor_"+v.displayfield;if(k.editorsCache[z]){var w=b(k.editorsCache[z]).data();var A=k.editorsCache[z];if(!w.jqxWidget&&b(A).children()[0]&&b(b(A).children()[0]).data().jqxWidget){w=b(b(A).children()[0]).data()}E(w);k.editorsCache[z].detach()}if(k.editorsCache[y]){k.editorsCache[y].detach();var w=b(k.editorsCache[y]).data();var A=k.editorsCache[y];if(!w.jqxWidget&&b(A).children()[0]&&b(b(A).children()[0]).data().jqxWidget){w=b(b(A).children()[0]).data()}E(w)}}if(C!=u){k.beginUpdate();k._raiseEvent("cellValueChanged",{value:C,oldValue:u,dataField:v.datafield,displayField:v.displayfield,key:p,index:l,row:t});k.endUpdate(false)}}};k.updaterowbykey(k.editKey,h,false,s)}}if(!d){return false}}k._detachEditors(e);return true},_detachEditors:function(l){var g=this;var m=g.rowsByKey[l];var i=g.getrowindex(m);if(g.editorsCache){for(var h in g.editorsCache){var f=b(g.editorsCache[h]).data();if(f&&f.jqxWidget){var c=f.jqxWidget.element.className;if(c.indexOf("dropdownlist")>=0||c.indexOf("datetimeinput")>=0||c.indexOf("combobox")>=0||c.indexOf("menu")>=0){if(f.jqxWidget.isOpened){var e=f.jqxWidget.isOpened();if(e){f.jqxWidget.close()}}}}b(g.editorsCache[h]).detach()}}g.beginUpdate();var d=g.getrowdisplayindex(m);if(g.editSettings.editSingleCell){var m=g.rowsByKey[l];var k=null;var j=null;if(m){k=m[g.editColumn.datafield];j=m[g.editColumn.displayfield]}g._raiseEvent("cellEndEdit",{value:k,displayValue:j,key:l,index:d,dataField:g.editColumn.datafield,displayField:g.editColumn.displayfield,boundIndex:i,row:g.rowsByKey[l]})}g._raiseEvent("rowEndEdit",{key:l,index:d,boundIndex:i,row:g.rowsByKey[l]});g.endUpdate(false);g.editColumn=null;g.editKey=null;g._renderrows();g._renderhorizontalscroll();g.host.focus();setTimeout(function(){g.host.focus()},10)},_showvalidationpopup:function(r,e,s,m){if(s==undefined){var s=this.gridlocalization.validationstring}m.addClass(this.toThemeProperty("jqx-grid-validation-label"));var p=b("
              ");var o=b("
              ");p.html(s);o.addClass(this.toThemeProperty("jqx-grid-validation-arrow-up"));p.addClass(this.toThemeProperty("jqx-grid-validation"));p.addClass(this.toThemeProperty("jqx-rc-all"));p.hide();o.hide();p.prependTo(this.table);o.prependTo(this.table);var h=this.hScrollInstance;var j=h.value;var g=parseInt(j);var l=this.getColumn(e).uielement;if(!r){return}var k=r;p.css("top",parseInt(k.position().top)+30+"px");var c=parseInt(p.css("top"));o.css("top",c-11);o.removeClass();o.addClass(this.toThemeProperty("jqx-grid-validation-arrow-up"));var f=false;if(c>=this._table.height()){o.removeClass(this.toThemeProperty("jqx-grid-validation-arrow-up"));o.addClass(this.toThemeProperty("jqx-grid-validation-arrow-down"));c=parseInt(k.position().top)-k.outerHeight()-5;if(c<0){c=0;o.removeClass(this.toThemeProperty("jqx-grid-validation-arrow-down"));f=true}p.css("top",c+"px");o.css("top",c+p.outerHeight()-9)}var n=-g+parseInt(b(l).position().left);var q=parseInt(this._table.css("left"));if(isNaN(q)){q=0}if(q!=0){g=0}o.css("left",g+n+30);var d=p.width();if(d+n>this.host.width()-20){var i=d+n-this.host.width()+40;n-=i}if(!f){p.css("left",g+n)}else{p.css("left",g+parseInt(b(l).position().left)-p.outerWidth())}m.mouseenter(function(){if(m.hasClass("jqx-grid-validation-label")){p.show();o.show()}});m.mouseleave(function(){p.hide();o.hide()});if(!this.popups){this.popups=new Array()}this.popups[this.popups.length]={validation:p,validationrow:o}},addRow:function(d,p,j,n){if(p!=undefined){this._datachanged=true;if(j==undefined){j="last"}var o=false;var k=this.that;if(d==null){var f=this.dataview.filters&&this.dataview.filters.length>0;var m=!f?this.dataview.totalrecords:this.source.records.length;if(!this.pageable){if(this.source._source.totalrecords){this.dataview.totalrecords=this.source._source.totalrecords}else{if(this.source._source.totalRecords){this.dataview.totalrecords=this.source._source.totalRecords}else{if(this.source.hierarchy.length!==0){this.dataview.totalrecords=this.source.hierarchy.length}else{this.dataview.totalrecords=this.source.records.length}}}var m=!f?this.dataview.totalrecords:this.source.records.length}if(!b.isArray(p)){d=this.dataview.getid(this.dataview.source.id,p,m);if(this.getColumn(this.dataview.source.id)){p[this.dataview.source.id]=d}}else{var c=new Array();b.each(p,function(e,q){var r=k.dataview.getid(k.dataview.source.id,p[e],m+e);c.push(r);if(k.getColumn(k.dataview.source.id)){p[e][k.dataview.source.id]=r}});d=c}}else{if(!b.isArray(p)){if(this.getColumn(this.dataview.source.id)){p[this.dataview.source.id]=d}}else{b.each(p,function(e,q){var r=d[e];if(k.getColumn(k.dataview.source.id)){p[e][k.dataview.source.id]=r}})}}var i=this.treeGrid?(this.treeGrid.virtualModeCreateRecords?true:false):false;var g=function(t,e,y,r){if(t._loading){throw new Error("jqxDataTable: "+t.loadingErrorMessage);return false}var q=t.vScrollInstance.value;var x=false;if(!b.isArray(y)){y.uid=e;t.rowsByKey[e]=y;if(e==n){n=null}x=t.source.addRecord(y,r,n,i)}else{b.each(y,function(z,A){var B=null;if(e!=null&&e[z]!=null){B=e[z]}this.uid=B;t.rowsByKey[B]=this;if(e==n){n=null}x=t.source.addRecord(this,r,n,i)})}if(t.groups&&t.groups.length>0){var u=Object.prototype.toString;var w=t.groups[0];Object.prototype.toString=(typeof w=="function")?w:function(){return this[w]};if(!t.source.records.sort){var v=new Array();var s=0;b.each(data,function(){v[startindex+s++]=this});data=v}t.source.records.sort(function(A,z){if(A===undefined){A=null}if(z===undefined){z=null}if(A===null&&z===null){return 0}if(A===null&&z!==null){return -1}if(A!==null&&z===null){return 1}var D=0;var C=0;if(A&&A.uid){D=A.uid}if(z&&z.uid){C=z.uid}A=A.toString();z=z.toString();if(b.jqx.dataFormat.isNumber(A)&&b.jqx.dataFormat.isNumber(z)){if(Az){return 1}return 0}else{if(b.jqx.dataFormat.isDate(A)&&b.jqx.dataFormat.isDate(z)){if(Az){return 1}return 0}else{if(!b.jqx.dataFormat.isNumber(A)&&!b.jqx.dataFormat.isNumber(z)){A=String(A).toLowerCase();z=String(z).toLowerCase()}}}try{if(Az){return 1}}catch(B){var E=B}if(typeof(D)=="number"){if(DC){return 1}}return 0});Object.prototype.toString=u}t.dataview._filteredData=null;t.dataview._sortData=null;t.dataview._sortHierarchyData=null;if(t._updating==undefined||t._updating==false){t.refresh()}if(t.source&&t.source._knockoutdatasource&&!t._updateFromAdapter&&t.autokoupdates){if(t.source._source._localdata){t.source.suspendKO=true;t.source._source._localdata.push(y);t.source.suspendKO=false}}t.vScrollInstance.setPosition(q);return x};if(this.source.addrow){var h=function(e,q){if(e==true||e==undefined){if(q!=undefined){d=q}g(k,d,p,j)}};try{if(!k.treeGrid){o=this.source.addrow(d,p,j,h)}else{o=this.source.addrow(d,p,j,n,h)}if(o==undefined){o=true}}catch(l){o=false}if(o==false){return false}}else{g(this,d,p,j)}return o}return false},deleteRow:function(c){var d=this._getkey(c);this.deleterowbykey(d)},deleterowbykey:function(g){if(g!=undefined){this._datachanged=true;var h=false;var f=this.that;var d=function(m,l){if(m._loading){throw new Error("jqxDataTable: "+m.loadingErrorMessage);return false}m.dataview._filteredData=null;m.dataview._sortData=null;m.dataview._sortHierarchyData=null;var o=false;var p=m.vScrollInstance.value;if(!b.isArray(l)){var o=false;if(m.rowsByKey[l]){o=true;if(m.rowinfo[l].selected){m.unselectrowbykey(l,false)}if(m.treeGrid){var n=m._names();var k=m.rowsByKey[l][n.parent]}delete m.rowsByKey[l];if(m.treeGrid){if(m.rowinfo[l]){var i=m.rowinfo[l].row.records;var j=function(q){for(var r=0;r0&&v.originalRecord){v.originalRecord[o.columns.records[u].datafield]=t[o.columns.records[u].datafield]}}r=true}};s(n);if(o.treeGrid){n=o.treeGrid.getRow(l);s(n)}}else{b.each(l,function(w,x){var v=o.rowsByKey[this];var u=function(z,y){if(!v){r=false}else{v[this]=t[w]}r=true};u(this,v);if(o.treeGrid){v=o.treeGrid.getRow(this);u(this,v)}})}var m=o.vScrollInstance.value;if(g==undefined||g==true){if(o._updating==undefined||o._updating==false){o._renderrows()}}if(o.showAggregates&&o._updatecolumnsaggregates){o._updatecolumnsaggregates()}if(o.source&&o.source._knockoutdatasource&&!o._updateFromAdapter&&o.autokoupdates){if(o.source._source._localdata){var n=o.rowsByKey[l];var p=o.getrowindex(n);var q=o.source._source._localdata()[p];o.source.suspendKO=true;o.source._source._localdata.replace(q,b.extend({},n));o.source.suspendKO=false}}o.vScrollInstance.setPosition(m);return r};if(this.source.updaterow){var e=function(l){if(l==true||l==undefined){d(f,c,k);if(i){i()}f._renderrows(false)}};try{j=this.source.updaterow(c,k,e);if(j==undefined){j=true}}catch(h){j=false}}else{j=d(f,c,k);if(j&&i){i()}f._renderrows(false)}return j}return false},lockRow:function(c){var d=this._getkey(c);this.lockrowbykey(d)},unlockRow:function(c){var d=this._getkey(c);this.unlockrowbykey(d)},lockrowbykey:function(c){if(this.rowinfo[c]){this.rowinfo[c].locked=true}else{this.rowinfo[c]={locked:true}}this._renderrows()},unlockrowbykey:function(c){if(this.rowinfo[c]){this.rowinfo[c].locked=false}else{this.rowinfo[c]={locked:false}}this._renderrows()},selectRow:function(c){var d=this._getkey(c);this.selectrowbykey(d)},unselectRow:function(c){var d=this._getkey(c);this.unselectrowbykey(d)},selectrowbykey:function(e,h,f){if(h!="keyboard"&&h!="mouse"){this._lastSelectedKey=e}var g=f!==false?true:false;this._doSelection(e,true,g);var i=this.rowsByKey[e];var d=this.getrowindex(i);var c=this.getrowdisplayindex(i);this._raiseEvent("rowSelect",{key:e,index:c,boundIndex:d,row:this.rowsByKey[e]})},unselectrowbykey:function(e,f){var g=f!==false?true:false;this._doSelection(e,false,g);var h=this.rowsByKey[e];var d=this.getrowindex(h);var c=this.getrowdisplayindex(h);this._raiseEvent("rowUnselect",{key:e,index:c,boundIndex:d,row:this.rowsByKey[e]})},getSelection:function(){var c=new Array();if(this.rowinfo){for(var e in this.rowinfo){var d=this.rowinfo[e];if(d.selected){c.push(d.row)}}}return c},showdetailsbykey:function(k){if(!this.rowDetails){return}var l=this.rowinfo[k];if(l){l.expanded=true;var f=b(this._table.children()[1]).children(("[data-key="+k+"]"));var i=b(this._pinnedTable.children()[1]).children(("[data-key="+k+"]"));if(f){var c=i.children();var h=b(c[0]);if(this.rtl){var h=b(c[c.length-1])}if(!this.rtl){h.removeClass(this.toThemeProperty("jqx-grid-group-collapse"));h.addClass(this.toThemeProperty("jqx-grid-group-expand"));h.removeClass(this.toThemeProperty("jqx-icon-arrow-right"));h.addClass(this.toThemeProperty("jqx-icon-arrow-down"))}else{h.removeClass(this.toThemeProperty("jqx-grid-group-collapse-rtl"));h.addClass(this.toThemeProperty("jqx-grid-group-expand-rtl"));h.removeClass(this.toThemeProperty("jqx-icon-arrow-left"));h.addClass(this.toThemeProperty("jqx-icon-arrow-down"))}f.next().show();var d=i.next();d.show();if(b.jqx.browser.msie&&b.jqx.browser.version<8){f.next().children().show();i.next().children().show()}if(!l.initialized){var j=l.detailsHeight;var m=this.initRowDetails(k,l.row,b(b(d).children().children().children()[0]),l);l.details=b(d).children().children().children()[0];l.initialized=true;if(m===false||l.detailsHeight!=j){if(m===false){l.expanded=false;l.nodetails=true;d.hide()}this._renderrows()}}this._updateScrollbars();if(this.height==="auto"||this.height===null||this.autoheight){this._arrange()}var g=this.getrowindex(l.row);var e=this.getrowdisplayindex(l.row);this._raiseEvent("rowExpand",{row:l.row,index:e,boundIndex:g,rowKey:k})}}},hidedetailsbykey:function(h){if(!this.rowDetails){return}var j=this.rowinfo[h];if(j){j.expanded=false;var d=b(this._table.children()[1]).children(("[data-key="+h+"]"));var e=b(this._pinnedTable.children()[1]).children(("[data-key="+h+"]"));if(d){var g=e.children();var i=b(g[0]);if(this.rtl){var i=b(g[g.length-1])}if(!this.rtl){i.addClass(this.toThemeProperty("jqx-grid-group-collapse"));i.removeClass(this.toThemeProperty("jqx-grid-group-expand"));i.addClass(this.toThemeProperty("jqx-icon-arrow-right"));i.removeClass(this.toThemeProperty("jqx-icon-arrow-down"))}else{i.addClass(this.toThemeProperty("jqx-grid-group-collapse-rtl"));i.removeClass(this.toThemeProperty("jqx-grid-group-expand-rtl"));i.addClass(this.toThemeProperty("jqx-icon-arrow-left"));i.removeClass(this.toThemeProperty("jqx-icon-arrow-down"))}d.next().hide();e.next().hide();if(b.jqx.browser.msie&&b.jqx.browser.version<8){d.next().children().hide();e.next().children().hide()}this._updateScrollbars();if(this.height==="auto"||this.height===null||this.autoheight){this._arrange()}var f=this.getrowindex(j.row);var c=this.getrowdisplayindex(j.row);this._raiseEvent("rowCollapse",{row:j.row,index:c,boundIndex:f,rowKey:h})}}},_getvirtualcolumnsindexes:function(d,l,h,k,c){if(this.rowDetails||this.rtl||this.editcell||(this.width&&this.width.toString().indexOf("%")>=0)||this.exporting){return{start:0,end:h+k}}var e=0;var i=-1;var f=h+k;if(this.autorowheight){return{start:0,end:h+k}}if(!c){for(var g=0;g=d&&i==-1){i=g}if(e>l+d){f=g;break}}}f++;if(f>h+k){f=h+k}if(i==-1){i=0}return{start:i,end:f}},_renderhorizontalscroll:function(){var t=this.hScrollInstance;var u=t.value;if(this.hScrollBar.css("visibility")==="hidden"){t.value=0;u=0}var h=parseInt(u);if(this.table==null){return}var q=this.columnsrow;var r=0;var i=this.columns.records.length-r;var e=this.columns.records;var l=this.source.records.length==0;if(this.rtl){if(this.hScrollBar.css("visibility")!="hidden"){h=t.max-h}}if(l&&!this._haspinned){this.table[0].style.left=-h+"px";q[0].style.marginLeft=-h+"px"}else{if(this._haspinned||this._haspinned==undefined){for(var w=0;w0:false;if(this.columns&&this.columns.records){for(var e=0;e0){if(filtertype==="stringfilter"){h.jqxDropDownList({selectedIndex:2})}else{h.jqxDropDownList({selectedIndex:0})}}}}},applyFilters:function(){if(this.editable){if(this.editKey!=null){var c=this.endroweditbykey(this.editKey)}}this.dataview._filteredData=null;this.dataview._sortData=null;this.dataview._sortHierarchyData=null;if(this.serverProcessing){this.dataview.pagenum=0;this.updateBoundData("filter")}else{this.goToPage(0);this.refresh()}if(arguments&&arguments.length>0){if(this._updateSimpleFilter){if(this.filtercolumnsList){var d=this.filtercolumnsList.jqxDropDownList("getSelectedItem").value;this._updateSimpleFilter(d)}}if(this._updateFilterRow){this._updateFilterRow()}}this._raiseEvent("filter",{filters:this.dataview.filters})},sortBy:function(d,f){this.dataview._filteredData=null;this.dataview._sortData=null;this.dataview._sortHierarchyData=null;if(this._loading){throw new Error("jqxDataTable: "+this.loadingErrorMessage);return false}if(this.editable){if(this.editKey!=null){var c=this.endroweditbykey(this.editKey)}}if(d==null){f=null;d=this.sortcolumn}if(d){var e=this;if(f=="a"||f=="asc"||f=="ascending"||f==true){ascending=true}else{ascending=false}if(f!=null){e.sortdirection={ascending:ascending,descending:!ascending}}else{e.sortdirection={ascending:false,descending:false}}if(f!=null){e.sortcolumn=d}else{e.sortcolumn=null}if(e.source.sort){e.dataview.sortfield=d;if(f==null){e.dataview.sortfielddirection=""}else{e.dataview.sortfielddirection=ascending?"asc":"desc"}if(e.source.sort&&!this._loading){e.source.sort(d,f)}}e.dataview.sortBy(d,f);e._raiseEvent("sort",{sortcolumn:this.sortcolumn,sortdirection:this.sortdirection})}if(!this.serverProcessing){this.refresh()}else{this.updateBoundData("sort")}},_togglesort:function(d){var f=this;if(this.disabled){return}if(d.sortable&&f.sortable){var c={sortcolumn:this.sortcolumn,sortdirection:this.sortdirection};var e=null;if(c.sortcolumn!=null&&c.sortcolumn==d.displayfield){e=c.sortdirection.ascending;if(e==true){e=false}else{e=null}}else{e=true}f.sortBy(d.displayfield,e)}},_renderfilter:function(){var h=this;var j=b("
              ");j.height(22);var o=j.find("input");var g=j.find("div:first");j.addClass(this.toThemeProperty("jqx-rc-all"));j.addClass(this.toThemeProperty("jqx-widget"));j.addClass(this.toThemeProperty("jqx-input-group"));o.addClass(this.toThemeProperty("jqx-input"));o.addClass(this.toThemeProperty("jqx-rc-l"));o.addClass(this.toThemeProperty("jqx-input-group-addon"));o.addClass(this.toThemeProperty("jqx-widget"));o.addClass(this.toThemeProperty("jqx-widget-content"));g.addClass(this.toThemeProperty("jqx-fill-state-normal"));g.addClass(this.toThemeProperty("jqx-rc-r"));g.addClass(this.toThemeProperty("jqx-input-group-addon"));g.find("div").addClass(this.toThemeProperty("jqx-icon-search"));if(this.rtl){o.addClass(this.toThemeProperty("jqx-rtl"));o.css("direction","rtl")}this.filter.children().remove();this.filterbutton=g;var d=new Array();for(var f=0;f"+this.gridlocalization.filtersearchstring+"");this.filter.append(l);var c=b("
              ");this.filter.append(c);if(c.jqxDropDownList){c.jqxDropDownList({theme:this.theme,enableBrowserBoundsDetection:true,autoDropDownHeight:p,rtl:h.rtl,dropDownWidth:220,selectedIndex:0,width:"auto",height:20,source:d,displayMember:"label",valueMember:"value"})}this.filtercolumnsList=c;var n=function(q){h.filterinput.val("");for(var r=0;r=0){x=x.replace(h.gridlocalization.decimalseparator,".")}}if(x.indexOf(h.gridlocalization.currencysymbol)>=0){x=x.replace(h.gridlocalization.currencysymbol,"")}if(x.indexOf(h.gridlocalization.percentagesymbol)>=0){x=x.replace(h.gridlocalization.percentagesymbol,"")}}var y=A.createfilter(C,x,"EQUAL",null,B.cellsFormat,h.gridlocalization)}else{var y=A.createfilter(C,x,"CONTAINS")}}A.operator=i;A.addfilter(0,y);return A};if(h.filterMode!=="simple"){if(u){var v=u.value;var t=h.getColumn(v);var s=w(t,r,"and");if(r.length>0){h.removeFilter(v);h.addFilter(v,s);h.applyFilters()}else{h.removeFilter(v);h.applyFilters()}if(h.filterMode==="advanced"){if(h._updateFilterRow){h._updateFilterRow(true)}}}}else{h.clearFilters(false,false);if(r.length>0){for(var q=0;q"+this.gridlocalization.filterstring+"");j.append(e);this.addHandler(e,"click",function(q){var i=function(u){if(h.filterrow){for(var x=0;x");k.attr("title",h.gridlocalization.filterclearstring);k.addClass(h.toThemeProperty("jqx-icon-close"));j.append(k);k.hide();h.filtericon=k;k.click(function(){h.clearFilters();h.filtericon.fadeOut(200)});if(h.dataview.filters.length>0){if(h.filterMode!="advanced"){n(h.dataview.filters[0].datafield)}else{if(h._updateFilterRow){h._updateFilterRow()}}}},_renderadvancedfilter:function(){var h=this;var c=function(){h.clearFilters(false,false);var n=h.filtercolumnsList.jqxDropDownList("getSelectedItem").value;var p=h.filterinput.val();for(var m=0;m0||(u.length==0&&k=="NOT_NULL")||(u.length==0&&k=="NOT_EMPTY")||(u.length==0&&k=="EMPTY")||(u.length==0&&k=="NULL")){var r=l.displayfield;var v=new b.jqx.filter();if(filtertype=="numericfilter"){if(h.gridlocalization.decimalseparator==","){if(u.indexOf(h.gridlocalization.decimalseparator)>=0){u=u.replace(h.gridlocalization.decimalseparator,".")}}if(u.indexOf(h.gridlocalization.currencysymbol)>=0){u=u.replace(h.gridlocalization.currencysymbol,"")}if(u.indexOf(h.gridlocalization.percentagesymbol)>=0){u=u.replace(h.gridlocalization.percentagesymbol,"")}}var j=v.createfilter(filtertype,u,k,null,l.cellsFormat,h.gridlocalization);v.addfilter(0,j);h.addFilter(r,v)}}if(h.dataview.filters.length>0){h.applyFilters()}else{h.clearFilters()}if(h.dataview.filters.length==0){h.filtericon.fadeOut(200)}else{h.filtericon.fadeIn(200)}};var e=function(){var m=b("
              ").appendTo(h.filter);h.filterrow=m;m[0].cells=new Array();m.height(24);m.width(h.table.width());var k=0;var j=h.filtercolumnsList.jqxDropDownList("getSelectedItem").value;var l=h.filterinput.val();b.each(h.columns.records,function(){var p=this;var n=b("
              ").appendTo(m);n.css("position","absolute");n.css("left",k+parseInt(p.uielement[0].style.left));if(p.pinned){n.css("z-index",h.tableZIndex+h.columns.records.length);n.addClass(h.toThemeProperty("jqx-widget-header"))}m[0].cells.push(n[0]);if(!this.filterable){return true}var o=b("").appendTo(n);o.keydown(function(r){if(r.keyCode===13){c()}});if(p.displayfield===j){o.val(l)}o.addClass(h.toThemeProperty("jqx-input"));o.addClass(h.toThemeProperty("jqx-rc-all"));o.addClass(h.toThemeProperty("jqx-widget"));o.addClass(h.toThemeProperty("jqx-widget-content"));var q=b("
              ").appendTo(n);q.append(b("
              "));o.focus(function(){h.ensureColumnVisible(p.displayfield);h.filter[0].scrollLeft=0;h.ensureColumnVisible(p.displayfield);setTimeout(function(){h.filter[0].scrollLeft=0;h.ensureColumnVisible(p.displayfield)},10)});q.click(function(){var t=b("
              ");t.insertAfter(q);q.remove();var r=h.getcolumntypebydatafield(p);var s=h._getfiltersbytype(r);if(r==="string"){index=2}else{index=0}t.jqxDropDownList({theme:h.theme,enableBrowserBoundsDetection:true,renderMode:"simple",arrowSize:0,selectedIndex:index,rtl:h.rtl,dropDownWidth:230,dropDownHeight:180,width:20,height:20,source:s,selectionRenderer:function(){return"
              "}});h.addHandler(t,"close",function(u){o.focus();setTimeout(function(){o.focus()},10)});t.removeAttr("tabindex");t.find("div").removeAttr("tabindex");t.jqxDropDownList("open")});o[0].style.width=p.width-6-22+"px"});b("
              ").appendTo(m)};e();var i=b("
              ").appendTo(h.filter);var f=b("").appendTo(i);var g=b("").appendTo(i);var d=0;f.css("left",d);g.css("left",d);f.jqxButton({theme:h.theme});g.jqxButton({theme:h.theme});g.click(function(){h.filtercolumnsList.jqxDropDownList({disabled:false});h.filterinput.removeClass(h.toThemeProperty("jqx-fill-state-disabled"));h.filterinput.attr("disabled",false);h.filterbutton.removeClass(h.toThemeProperty("jqx-fill-state-disabled"));h.filter.find(".filterrow").addClass("filterrow-hidden");h.filter.find(".filterrow").hide();h._arrange()});f.click(function(){c()});h._renderhorizontalscroll()},_getfiltertype:function(c){var d="stringfilter";switch(c){case"number":case"int":case"float":case"decimal":d="numericfilter";break;case"boolean":case"bool":d="booleanfilter";break;case"date":case"time":d="datefilter";break;case"string":d="stringfilter";break}return d},getcolumntypebydatafield:function(e){var f=this;var d="string";var c=f.source.datafields||((f.source._source)?f.source._source.datafields:null);if(c){var g="";b.each(c,function(){if(this.name==e.displayfield){if(this.type){g=this.type}return false}});if(g){return g}}return d},_getfiltersbytype:function(c){var d=this;var e="";switch(c){case"number":case"float":case"int":e=d.gridlocalization.filternumericcomparisonoperators;break;case"date":e=d.gridlocalization.filterdatecomparisonoperators;break;case"boolean":case"bool":e=d.gridlocalization.filterbooleancomparisonoperators;break;case"string":default:e=d.gridlocalization.filterstringcomparisonoperators;break}return e},_getcellvalue:function(c,e){var d=null;d=e[c.datafield];if(c.displayfield!=null){d=e[c.displayfield]}if(d==null){d=""}return d},_renderrows:function(ap){if(this.editable){if(this.editKey!=null){if(ap!==false){var M=this.endroweditbykey(this.editKey)}}}if(this.treeGrid){this.treeGrid._renderrows();return}if(this._loading){return}if(this._updating){return}if(this.rendering){this.rendering()}var ab=this;var T=0;this.table[0].rows=new Array();var H=this.toTP("jqx-cell")+" "+this.toTP("jqx-widget-content");if(this.rtl){H+=" "+this.toTP("jqx-cell-rtl")}var K=this.columns.records.length;var ao=b.jqx.browser.msie&&b.jqx.browser.version<8;if(ao){this.host.attr("hideFocus","true")}var R=ab.groups.length;var ai=new Array();var k=this.source.records;k=this.dataview.evaluate(k);this.dataViewRecords=k;if(this.dataview.pagesize=="all"||!this.pageable||this.serverProcessing){var u=k;if(this.pageable&&this.serverProcessing&&k.length>this.dataview.pagesize){var u=k.slice(this.dataview.pagesize*this.dataview.pagenum,this.dataview.pagesize*this.dataview.pagenum+this.dataview.pagesize)}}else{var u=k.slice(this.dataview.pagesize*this.dataview.pagenum,this.dataview.pagesize*this.dataview.pagenum+this.dataview.pagesize)}if(ab.groups&&ab.groups.length>0){var P=this.pageable?this.dataview.pagesize*this.dataview.pagenum:0;var z=function(w){var au=0;var i=new Array();for(var c=0;cab.dataview.pagesize*ab.dataview.pagenum&&au<=ab.dataview.pagesize*ab.dataview.pagenum+ab.dataview.pagesize){i.push(j)}if(au>ab.dataview.pagesize*ab.dataview.pagenum+ab.dataview.pagesize){break}}return i};if(this.pageSizeMode==="root"){var v=ab.source.getGroupedRecords(ab.groups,"records","label",null,"data",null,"parent",k,0);ab.rootRecordsLength=v.length;v=z(v)}else{var v=ab.source.getGroupedRecords(ab.groups,"records","label",null,"data",null,"parent",u,P)}var y=function(j,w){for(var av=0;av0){var aw=y(c.records,new Array());for(var au=0;auZ.maxwidth){e=Z.maxwidth}var l=b('
              ');b(document.body).append(l);var n=l.find("td");aq=1+parseInt(n.css("padding-left"))+parseInt(n.css("padding-right"));l.remove();break}}var ak=this.rtl?" "+this.toTP("jqx-grid-table-rtl"):"";var B="";var ar="
              ";var I=0;var s=K;for(var al=0;alZ.maxwidth){e=Z.maxwidth}e-=aq;if(e<0){e=0}if(ao){var ac=e;if(al==I){ac++}if(Z.rowDetailscolumn){var ac=ac+4;ar+="";B+=""}else{ar+="";B+=""}}else{ar+="";B+=""}aa+=e}B+="";ar+="";this._hiddencolumns=false;var g=false;if(this.rowDetails&&this._pinnedTable){this._pinnedTable.find("[data-role=details]").detach();this._table.find("[data-role=details]").detach()}if(U===0){var o='';var m=this.host.height();if(this.pageable){m-=this.pagerHeight;if(this.pagerPosition==="both"){m-=this.pagerHeight}}m-=this.columnsHeight;if(this.filterable){var ag=this.filter.find(".filterrow");var D=this.filter.find(".filterrow-hidden");var C=1;if(D.length>0){C=0}m-=this.filterHeight+this.filterHeight*ag.length*C}if(this.showstatusbar){m-=this.statusBarHeight}if(this.showAggregates){m-=this.aggregatesHeight}if(m<25){m=25}if(this.hScrollBar[0].style.visibility!="hidden"){m-=this.hScrollBar.outerHeight()}if(this.height==="auto"||this.height===null||this.autoheight){m=300}var l='";o+=l;B+=o;ar+=o;this.table[0].style.width=aa+2+"px";T=aa}var q=this.getRows();var x=new Array();for(var am=0;am';var E='';if(R>0){if(G.level';var E=''}}var p=0;var S=0;for(var al=0;alae.maxwidth){e=ae.maxwidth}e-=aq;if(e<0){e=0}var H=this.toTP("jqx-cell")+" "+this.toTP("jqx-grid-cell")+" "+this.toTP("jqx-item");if(ae.pinned){H+=" "+this.toTP("jqx-grid-cell-pinned")}if(this.sortcolumn===ae.displayfield){H+=" "+this.toTP("jqx-grid-cell-sort")}if(this.altRows&&am%2!=0){H+=" "+this.toTP("jqx-grid-cell-alt")}if(this.rtl){H+=" "+this.toTP("jqx-cell-rtl")}var O="";if(R>0){if(G.levelat.maxwidth){e=at.maxwidth}A-=aq;if(A<0){A=0}if(!at.hidden){ac+=A}}e=ac}else{H+=" "+this.toTP("jqx-grid-cell-pinned")}}}var l='";af+='" class="'+H+'">';af+=aj;af+="";if(!ae.pinned){o+=l;if(g){E+=af}}else{E+=l;o+=l}if(R>0&&!ao){if(G.level";E+="";B+=o;ar+=E;if(!this.rowinfo[G.uid]){this.rowinfo[G.uid]={group:Y,row:G,details:null,detailsHeight:200,initialized:false,expanded:false}}else{if(!("group" in this.rowinfo[G.uid])){this.rowinfo[G.uid].group=Y}if(!("row" in this.rowinfo[G.uid])){this.rowinfo[G.uid].row=G}if(!("details" in this.rowinfo[G.uid])){this.rowinfo[G.uid].details=null}if(!("detailsHeight" in this.rowinfo[G.uid])){this.rowinfo[G.uid].detailsHeight=200}if(!("initialized" in this.rowinfo[G.uid])){this.rowinfo[G.uid].initialized=false}if(!("expanded" in this.rowinfo[G.uid])){this.rowinfo[G.uid].expanded=false}}if(this.serverProcessing){this.rowinfo[G.uid].row=G}if(this.rowDetails){var F=this.rowinfo[G.uid].detailsHeight;if(this.rowinfo[G.uid]){if(this.rowinfo[G.uid].expanded){var ah='';B+=ah;ar+=ah}}B+="
              ';l+=this.gridlocalization.emptydatastring;l+="
              0){if(G.level0&&ao&&Y&&al>=R){l+="font-size: 1px; border-color: transparent; color: transparent;";af+="font-size: 1px; border-color: transparent; color: transparent;"}if(ae.pinned){l+="pointer-events: auto;";af+="pointer-events: auto;"}if(!Y&&ae.rowDetailscolumn){if(this.rowinfo[G.uid]){if(!this.rowinfo[G.uid].nodetails){if(this.rowinfo[G.uid].expanded){if(!this.rtl){H+=" "+this.toTP("jqx-grid-group-expand")}else{H+=" "+this.toTP("jqx-grid-group-expand-rtl")}H+=" "+this.toTP("jqx-icon-arrow-down")}else{if(!this.rtl){H+=" "+this.toTP("jqx-grid-group-collapse");H+=" "+this.toTP("jqx-icon-arrow-right")}else{H+=" "+this.toTP("jqx-grid-group-collapse-rtl");H+=" "+this.toTP("jqx-icon-arrow-left")}}}}else{if(!this.rtl){H+=" "+this.toTP("jqx-grid-group-collapse");H+=" "+this.toTP("jqx-icon-arrow-right")}else{H+=" "+this.toTP("jqx-grid-group-collapse-rtl");H+=" "+this.toTP("jqx-icon-arrow-left")}}}if(!this.autoRowHeight||(this.autoRowHeight&&!ae.autoCellHeight)){H+=" "+this.toTP("jqx-grid-cell-nowrap ")}var aj=ab._getcellvalue(ae,G);var f=ae.cellsFormat;if(R>0){if(G.level=0||aj.indexOf(" ng-")>=0)){x.push({rowKey:G.uid,row:d,column:ae.datafield,value:aj,columnIndex:al})}}}else{if(this.groupsRenderer){aj=this.groupsRenderer(aj,G,G.level)}}l+='" class="'+H+'">';l+=aj;l+="
              ";ar+="";if(g){if(ab.WinJS){MSApp.execUnsafeLocalFunction(function(){ab.table.html(ar+B)})}else{ab.table[0].innerHTML=ar+B}var W=this.table.find("#table"+this.element.id);var X=this.table.find("#pinnedtable"+this.element.id);X.css("float","left");X.css("pointer-events","none");W.css("float","left");X[0].style.position="absolute";W[0].style.position="relative";W[0].style.zIndex=V-10;X[0].style.zIndex=V+10;this._table=W;this._table[0].style.left="0px";this._pinnedTable=X;this._pinnedTable[0].style.left="0px";this._pinnedTable[0].style.width=T+"px";this._table[0].style.width=T+"px";if(this.rtl){if(T>parseInt(this.element.style.width)&&this._haspinned){this._pinnedTable[0].style.left=3-T+parseInt(this.element.style.width)+"px"}}if(this.rowDetails){for(var am=0;am0){var an=this._table[0].rows;b.each(x,function(){var w=this.row;var au=this.rowKey;var j=this.column;var i=this.columnIndex;var t=ab._getuirow(au);if(t){var c=t[0].cells[i];if(b.jqx.angularCompile){b.jqx.angularCompile(c,"
              "+c.innerHTML+"
              ")}}})}if(this.rendered){this.rendered()}},getcolumnindex:function(c){var d=this.getColumn(c);var e=this.columns.records.indexOf(d);return e},setcolumnindex:function(e,i,j){var h=this.getColumn(e);if(h.pinned){return}if(h.hidden){return}if(h.checkboxcolumn){return}if(h.grouped){return}var l=this.columns.records.indexOf(h);this.columns.records.splice(l,1);this.columns.records.splice(i,0,h);var f=0;var n=this.headerZIndex;this.columnsrow.children().detach();var k=this.toThemeProperty("jqx-grid-cell");k+=" "+this.toThemeProperty("jqx-grid-cell-pinned");k+=" "+this.toThemeProperty("jqx-item");var m=this;var c=null;if(m.filterrow!=undefined){var c=b(m.filterrow.children()[0])}this.columnsrow[0].cells=[];var g=false;b.each(this.columns.records,function(p,s){var q=this.uielement;m.columnsrow.append(q);if(!m.rtl){q.css("z-index",n--)}else{q.css("z-index",n++)}var o=!m.rtl?250+n-1:250+n+1;if(this.pinned){q.css("z-index",o)}var r=this.width;q.css("left",f);m.columnsrow[0].cells[m.columnsrow[0].cells.length]=q[0];if(this.hidden){g=true}if(!(this.hidden&&this.hideable)){f+=r}});if(this.groupable){var d=this.groups.length;if(d>0){if(l-d>=0){l-=d;i-=d}}}if(this.rowDetails){if(l-1>=0){l--;i--}}if(this.selectionMode=="checkbox"){if(l-1>=0){l--;i--}}var h=this._columns[l];this._columns.splice(l,1);this._columns.splice(i,0,h);this.resize();this._rendercolumnGroups();this._raiseEvent("columnReordered",{dataField:h.datafield,oldIndex:l,newIndex:i})},_pinnedColumnsLength:function(){var c=0;b.each(this.columns.records,function(){if(this.pinned){c++}if(this.grouped){c++}});if(this.rowDetails){c++}if(this.selectionMode=="checkbox"){c++}return c},_handlecolumnsReorder:function(){var g=this;var h=-1;var d=false;if(!g.columnsReorder){return}var f="mousemove.reorder"+this.element.id;var e="mousedown.reorder"+this.element.id;var i="mouseup.reorder"+this.element.id;var c=false;if(this.isTouchDevice()&&this.touchmode!==true){c=true;f=b.jqx.mobile.getTouchEventName("touchmove")+".reorder"+this.element.id;e=b.jqx.mobile.getTouchEventName("touchstart")+".reorder"+this.element.id;i=b.jqx.mobile.getTouchEventName("touchend")+".reorder"+this.element.id}this.removeHandler(b(document),f);this.addHandler(b(document),f,function(x){if(g.resizing){return true}if(g.reordercolumn!=null){var m=parseInt(x.pageX);var u=parseInt(x.pageY);if(c){var t=g.getTouches(x);var p=t[0];if(p!=undefined){m=parseInt(p.pageX);u=parseInt(p.pageY)}}var j=g.host.coord();var w=parseInt(j.left);var k=parseInt(j.top);if(g.dragmousedownoffset==undefined||g.dragmousedownoffset==null){g.dragmousedownoffset={left:0,top:0}}var B=parseInt(m)-parseInt(g.dragmousedownoffset.left);var s=parseInt(u)-parseInt(g.dragmousedownoffset.top);g.reordercolumn.css({left:B+"px",top:s+"px"});d=false;if(m>=w&&m<=w+g.host.width()){if(u>=k&&u<=k+g.host.height()){d=true}}h=-1;if(d){g.reordercolumnicon.removeClass(g.toThemeProperty("jqx-grid-dragcancel-icon"));g.reordercolumnicon.addClass(g.toThemeProperty("jqx-grid-drag-icon"));var n=g.columnsheader.coord();var q=n.top+g.columnsheader.height();if(g.columnsdropline!=null){if(u>=n.top&&u<=q){h=g._handlereordercolumnsdroplines(m);if(g.columnGroups){if(h!=-1){var l=0;l+=g._pinnedColumnsLength();var o=h.index;if(o>=l){var y=g.columns.records[o];if(y!=undefined){var v=g.columns.records.indexOf(g.getColumn(y.datafield));if(y.datafield==null){var v=g.columns.records.indexOf(g.getcolumnbytext(y.text))}var r=b.data(g.reordercolumn[0],"reorderrecord");var A=g.columns.records.indexOf(g.getColumn(r));var z=y;if(A=p){var s=g.columns.records[q];if(s!=undefined){var u=g.columns.records.indexOf(g.getColumn(s.datafield));if(s.datafield==null){var u=g.columns.records.indexOf(g.getcolumnbytext(s.text))}if(g.columnGroups){var r=s;if(xu){g.setcolumnindex(k,u)}}}}}}if(g.columnsdropline!=null){g.columnsdropline.remove();g.columnsdropline=null}}}})},getcolumnbytext:function(d){var c=null;if(this.columns.records){b.each(this.columns.records,function(){if(this.text==d){c=this;return false}})}return c},_handlereordercolumnsdroplines:function(i){var c=this;var h=-1;var e=c._pinnedColumnsLength();var g=parseInt(c.host.coord().left);var d=g+c.host.width();var f=c.vScrollBar.css("visibility")!="hidden"?19:0;if(!c.rtl){f=0}b.each(c.columnsbounds,function(j){if(j>=e){if(this.width==0){return true}if(i<=this.left+this.width/2){if(i>d){c.columnsdropline.fadeOut();return false}c.columnsdropline.css("left",f+parseInt(this.left)+"px");c.columnsdropline.css("top",parseInt(this.top)+"px");c.columnsdropline.height(this.height);c.columnsdropline.fadeIn("slow");h={index:j,position:"before"};return false}else{if(i>=this.left+this.width/2){if(this.left+this.width>d){c.columnsdropline.fadeOut();return false}c.columnsdropline.css("left",f+1+this.left+this.width);c.columnsdropline.css("top",this.top);c.columnsdropline.height(this.height);c.columnsdropline.fadeIn("slow");h={index:j,position:"after"}}}}});return h},_createreordercolumn:function(d,f,i){var h=this;var g=f;if(h.reordercolumn){h.reordercolumn.remove()}if(h.columnsdropline){h.columnsdropline.remove()}h.reordercolumn=b("
              ");var k=d.clone();h.reordercolumn.css("z-index",999999);k.css("border-width","1px");k.css("opacity","0.4");var j=b(k.find("."+h.toThemeProperty("jqx-grid-column-menubutton")));if(j.length>0){j.css("display","none")}var c=b(k.find(".jqx-icon-close"));if(c.length>0){c.css("display","none")}h.reordercolumnicon=b('
              ');h.reordercolumnicon.addClass(h.toThemeProperty("jqx-grid-drag-icon"));h.reordercolumn.css("float","left");h.reordercolumn.css("position","absolute");var e=h.host.coord();k.width(d.width()+16);h.reordercolumn.append(k);h.reordercolumn.height(d.height());h.reordercolumn.width(k.width());h.reordercolumn.append(h.reordercolumnicon);b(document.body).append(h.reordercolumn);k.css("margin-left",0);k.css("left",0);k.css("top",0);h.reordercolumn.css("left",g.left+h.dragmousedown.left);h.reordercolumn.css("top",g.top+h.dragmousedown.top);if(i!=undefined&&i){h.columnsdropline=b('
              ');h.columnsdropline.width(2);h.columnsdropline.addClass(h.toThemeProperty("jqx-grid-group-drag-line"));b(document.body).append(h.columnsdropline)}},_handlecolumnsdragreorder:function(d,g){if(this.reordercolumn){this.reordercolumn.remove()}if(this.columnsdropline){this.columnsdropline.remove()}this.dragmousedown=null;this.dragmousedownoffset=null;this.columndragstarted=false;this.reordercolumn=null;var h=this;var f;var c=false;if(this.isTouchDevice()&&this.touchmode!==true){c=true}var e="mousedown.drag";var f="mousemove.drag";if(c){e=b.jqx.mobile.getTouchEventName("touchstart")+".drag";f=b.jqx.mobile.getTouchEventName("touchmove")+".drag"}else{this.addHandler(g,"dragstart",function(i){return false})}this.addHandler(g,e,function(k){if(false==d.draggable){return true}if(h.resizing){return true}h.__drag=true;var j=k.pageX;var i=k.pageY;if(c){var l=h.getTouches(k);var n=l[0];j=n.pageX;i=n.pageY}h.dragmousedown={left:j,top:i};var m=b(k.target).coord();h.dragmousedownoffset={left:parseInt(j)-parseInt(m.left),top:parseInt(i-m.top)};if(k.preventDefault){k.preventDefault()}return true});this.addHandler(g,f,function(k){if(!d.draggable){return true}if(undefined==d.datafield){return true}if(d.pinned){return true}if(h.resizing){return true}if(h.dragmousedown){var j=k.pageX;var i=k.pageY;if(c){var m=h.getTouches(k);var o=m[0];if(o!=undefined){j=o.pageX;i=o.pageY}}f={left:j,top:i};if(!h.columndragstarted&&h.reordercolumn==null){var l=Math.abs(f.left-h.dragmousedown.left);var n=Math.abs(f.top-h.dragmousedown.top);if(l>3||n>3){h._createreordercolumn(g,f,true);b(document.body).addClass("jqx-disableselect");b.data(h.reordercolumn[0],"reorderrecord",d.datafield)}}}})},getTouches:function(c){return b.jqx.mobile.getTouches(c)},_handlecolumnsResize:function(){var i=this;if(this.columnsResize){var k=false;if(i.isTouchDevice()){k=true}var g="mousemove.resize"+this.element.id;var d="mousedown.resize"+this.element.id;var e="mouseup.resize"+this.element.id;if(k){var g=b.jqx.mobile.getTouchEventName("touchmove")+".resize"+this.element.id;var d=b.jqx.mobile.getTouchEventName("touchstart")+".resize"+this.element.id;var e=b.jqx.mobile.getTouchEventName("touchend")+".resize"+this.element.id}this.removeHandler(b(document),g);this.addHandler(b(document),g,function(n){if(i.resizablecolumn!=null&&!i.disabled&&i.resizing){if(i.resizeline!=null){var s=i.resizablecolumn.columnelement;var p=i.host.coord();var v=parseInt(i.resizestartline.coord().left);var l=v-i._startcolumnwidth;var w=i.resizablecolumn.column.minwidth;if(w=="auto"){w=0}else{w=parseInt(w)}var m=i.resizablecolumn.column.maxwidth;if(m=="auto"){m=0}else{m=parseInt(m)}var q=n.pageX;if(k){var t=b.jqx.mobile.getTouches(n);var r=t[0];q=r.pageX}l+=w;var u=m>0?v+m:0;var o=m==0?true:i._startcolumnwidth+q-v=p.left&&q>=l){if(u!=0&&n.pageX=p.left&&q<=p.left+i.host.width()){i.resizeline.css("left",q);if(k){return false}}}}}}if(!k&&i.resizablecolumn!=null){return false}});this.removeHandler(b(document),d);this.addHandler(b(document),d,function(m){if(i.resizablecolumn!=null&&!i.disabled){var l=i.resizablecolumn.columnelement;if(l.coord().top+l.height()+5m.pageY){i.resizablecolumn=null;return}i._startcolumnwidth=i.resizablecolumn.column.width;i.resizablecolumn.column._width=null;b(document.body).addClass("jqx-disableselect");b(document.body).addClass("jqx-position-reset");i._mouseDownResize=new Date();i.resizing=true;i._resizecolumn=i.resizablecolumn.column;i.resizeline=i.resizeline||b('
              ');i.resizestartline=i.resizestartline||b('
              ');i.resizebackground=i.resizebackground||b('
              ');i.resizebackground.css("opacity",0.01);i.resizebackground.css("cursor","col-resize");i.resizeline.css("cursor","col-resize");i.resizestartline.css("cursor","col-resize");i.resizeline.addClass(i.toThemeProperty("jqx-grid-column-resizeline"));i.resizestartline.addClass(i.toThemeProperty("jqx-grid-column-resizestartline"));b(document.body).append(i.resizeline);b(document.body).append(i.resizestartline);b(document.body).append(i.resizebackground);var n=i.resizablecolumn.columnelement.coord();i.resizebackground.css("left",i.host.coord().left);i.resizebackground.css("top",i.host.coord().top);i.resizebackground.width(i.host.width());i.resizebackground.height(i.host.height());i.resizebackground.css("z-index",999999999);var o=function(q){if(!i.rtl){q.css("left",parseInt(n.left)+i._startcolumnwidth)}else{q.css("left",parseInt(n.left))}var s=0;var t=i.showtoolbar?i.toolbarHeight:0;s+=t;var v=i.showstatusbar?i.statusBarHeight:0;s+=v;var r=i.showAggregates?i.aggregatesHeight:0;s+=r;if(i.pageable&&i.pagerPosition!="bottom"){s+=i.pagerHeight}if(i.filterable){s+=i.filter.height()}var p=0;if(i.pageable&&i.pagerPosition!="top"){p=i.pagerHeight}var u=i.hScrollBar.css("visibility")!="hidden"?i.scrollBarSize:0;q.css("top",parseInt(n.top));q.css("z-index",9999999999);if(i.columnGroups){q.height(i.host.height()+i.resizablecolumn.columnelement.height()-p-s-u-i.columnGroupslevel*i.columnsHeight)}else{q.height(i.host.height()-p-s-u)}q.show("fast")};o(i.resizeline);o(i.resizestartline);i.dragmousedown=null}});var f=function(){b(document.body).removeClass("jqx-disableselect");b(document.body).removeClass("jqx-position-reset");if(!i.resizing){return}i._mouseUpResize=new Date();var t=i._mouseUpResize-i._mouseDownResize;if(t<200){i.resizing=false;if(i._resizecolumn!=null&&i.resizeline!=null&&i.resizeline.css("display")=="block"){i._resizecolumn=null;i.resizeline.hide();i.resizestartline.hide();i.resizebackground.remove()}return}i.resizing=false;if(i.disabled){return}var n=i.host.width();if(i.vScrollBar[0].style.visibility!="hidden"){n-=20}if(n<0){n=0}if(i._resizecolumn!=null&&i.resizeline!=null&&i.resizeline.css("display")=="block"){var u=parseInt(i.resizeline.css("left"));var o=parseInt(i.resizestartline.css("left"));var s=i._startcolumnwidth+u-o;if(i.rtl){var s=i._startcolumnwidth-u+o}var r=i._resizecolumn.width;i._resizecolumn.width=s;if(i._resizecolumn._percentagewidth!=undefined){i._resizecolumn._percentagewidth=(s/n)*100}for(var q=0;qthis.maxwidth&&this.maxwidth!="auto"){m=this.maxwidth}k-=Math.round(m)}else{if(this.width!="auto"&&!this._width){k-=this.width}else{j+=this.text}}}});var f=this.columnsheader.find("#columntable"+this.element.id);if(f.length==0){return}var d=0;var g=f.find(".jqx-grid-column-header");var e=0;b.each(this.columns.records,function(m,r){var o=b(g[m]);var l=false;var q=this.width;var p=this.width;if(this.width.toString().indexOf("%")!=-1||this._percentagewidth!=undefined){if(this._percentagewidth!=undefined){q=parseFloat(this._percentagewidth)*c/100}else{q=parseFloat(this.width)*c/100}q=Math.round(q);l=true}if(this.width!="auto"&&!this._width&&!l){if(parseInt(o[0].style.width)!=this.width){o.width(this.width)}}else{if(l){if(qthis.maxwidth&&this.maxwidth!="auto"){q=this.maxwidth;this.width=q}if(parseInt(o[0].style.width)!=q){o.width(q);this.width=q}}else{var n=Math.floor(k*(this.text.length/j.length));if(isNaN(n)){n=this.minwidth}var s=(k*(this.text.length/j.length))-n;d+=s;if(d>=1){d-=1;n++}if(d>=0.5&&m==i.columns.records.length-1){n++}if(n<0){$element=b(""+this.text+"");b(document.body).append($element);n=10+$element.width();$element.remove()}if(nthis.maxwidth){n=this.maxwidth}this._width="auto";this.width=n;o.width(this.width)}}if(parseInt(o[0].style.left)!=e){o.css("left",e)}if(!(this.hidden)){e+=this.width}this._requirewidthupdate=true;if(p!==this.width){h=true}});this.columnsheader.width(2+e);f.width(this.columnsheader.width());this._resizecolumnGroups();if(h){this._renderrows()}if(this.showAggregates){this._refreshcolumnsaggregates()}},_rendercolumnheaders:function(){var r=this;if(this._updating){return}this._columnsbydatafield=new Array();this.columnsheader.find("#columntable"+this.element.id).remove();var g=b('
              ');g[0].cells=new Array();var l=0;var h=0;var s="";var u=this.host.width();var f=u;var w=new Array();var t=new Array();b.each(this.columns.records,function(j,k){if(!(this.hidden)){if(this.width!="auto"&&!this._width){if(this.widththis.maxwidth&&this.maxwidth!="auto"){u-=this.maxwidth}else{if(this.width.toString().indexOf("%")!=-1){var k=0;k=parseFloat(this.width)*f/100;if(kthis.maxwidth&&this.maxwidth!="auto"){k=this.maxwidth}u-=k}else{if(typeof this.width=="string"){this.width=parseInt(this.width)}u-=this.width}}}}else{s+=this.text}}if(this.pinned||this.grouped||this.checkboxcolumn){if(r._haspinned){this.pinned=true}w[w.length]=this}else{t[t.length]=this}});if(!this.rtl){for(var o=0;o=this.columns.records.length-w.length;o--){this.columns.replace(o,w[e++])}for(var m=0;m
              ');if(r.rtl&&J===0){x[0].style.borderLeftColor="transparent"}if(r.columnGroups){x[0].style.height=n+"px";x[0].style.bottom="0px";if(this.pinned){x[0].style.zIndex=K}}this.uielement=x;this.element=x;if(this.classname!=""&&this.classname){x.addClass(this.classname)}var C=this.width;var D=false;if(this.width===null){this.width="auto"}if(this.width.toString().indexOf("%")!=-1||this._percentagewidth!=undefined){if(this._percentagewidth!=undefined){C=parseFloat(this._percentagewidth)*f/100}else{C=parseFloat(this.width)*f/100}C=Math.round(C);D=true}if(this.width!="auto"&&!this._width&&!D){if(Cthis.maxwidth&&this.maxwidth!="auto"){C=this.maxwidth}x[0].style.width=parseInt(C)+"px"}else{if(D){if(Cthis.maxwidth&&this.maxwidth!="auto"){C=this.maxwidth}if(this._percentagewidth==undefined||this.width.toString().indexOf("%")!=-1){this._percentagewidth=this.width}x.width(C);this.width=C}else{var G=Math.floor(u*(this.text.length/s.length));var E=(u*(this.text.length/s.length))-G;c+=E;if(c>=1){c-=1;G++}if(c>=0.5&&J==r.columns.records.length-1){G++}if(isNaN(G)){G=this.minwidth}if(G<0){$element=b(""+this.text+"");b(document.body).append($element);G=10+$element.width();$element.remove()}if(Gthis.maxwidth){G=this.maxwidth}this._width="auto";this.width=parseInt(G);C=this.width;x.width(this.width)}}if(this.hidden){x.css("display","none")}var k=b(x.children()[0]);g[0].cells[J]=x[0];var p=false;var I=false;var z=this.renderer!=null?this.renderer(this.text,this.align,n):r._rendercolumnheader(this.text,this.align,n,r);if(z==null){z=r._rendercolumnheader(this.text,this.align,n,r)}if(this.renderer!=null){z=b(z)}p=true;if(r.WinJS){MSApp.execUnsafeLocalFunction(function(){k.append(b(z))})}else{if(this.renderer){k.append(b(z))}else{if(z){k[0].innerHTML=z}}}if(z!=null){var B=b('
              ');k.append(B);var N=B.children();this.sortasc=N[1];this.sortdesc=N[2];this.filtericon=N[0];this.iconscontainer=B;if(r.rtl){B.css("margin-left","0px");B.css("left","0px");b(this.sortasc).css("float","left");b(this.filtericon).css("float","left");b(this.sortdesc).css("float","left")}}g.append(x);if(r.columnsReorder&&this.draggable&&r._handlecolumnsdragreorder){r._handlecolumnsdragreorder(this,x)}var L=this;r.addHandler(x,"click",function(i){if(L.checkboxcolumn){return true}if(r._togglesort){if(!r._loading){r._togglesort(L)}}i.preventDefault()});if(r.columnsResize&&!I){var y=false;var j="mousemove";if(r.isTouchDevice()){y=true;j=b.jqx.mobile.getTouchEventName("touchstart")}r.addHandler(x,j,function(O){if(!L.resizable){r.resizablecolumn=null;return true}var i=parseInt(O.pageX);var Q=5;var T=parseInt(x.coord().left);if(r.hasTransform){T=b.jqx.utilities.getOffset(x).left}if(r._handlecolumnsResize){if(y){var P=b.jqx.mobile.getTouches(O);var S=P[0];i=S.pageX;Q=40;if(i>=T+L.width-Q){r.resizablecolumn={columnelement:x,column:L};x.css("cursor","col-resize")}else{x.css("cursor","");r.resizablecolumn=null}return true}var R=L.width;if(r.rtl){R=0}if(i>=T+R-Q){if(i<=T+R+Q){r.resizablecolumn={columnelement:x,column:L};x.css("cursor","col-resize");return false}else{x.css("cursor","");r.resizablecolumn=null}}else{x.css("cursor","");if(i0){this.columnsheader.width(2+h)}else{this.columnsheader.width(h)}this.columnsrow=g;r.columnsheader.append(g);g.width(h);if(this._handlecolumnsdragdrop){this._handlecolumnsdragdrop()}if(this._handlecolumnsReorder){this._handlecolumnsReorder()}if(this._handlecolumnsResize){this._handlecolumnsResize()}if(this.columnGroups){this._rendercolumnGroups()}},_rendercolumnGroups:function(){if(!this.columnGroups){return}var o=0;for(var l=0;l');var k=b(this._rendercolumnheader(q.text,q.align,this.columnsHeight,this));f.append(k);f[0].style.left=d+"px";if(d===0){f[0].style.borderLeftColor="transparent"}f[0].style.top=p+"px";f[0].style.height=r+"px";f[0].style.width=-1+q.width+"px";e.append(f);q.element=f}}}},_resizecolumnGroups:function(){if(!this.columnGroups){return}for(var d=0;d0){d.removeHandler(c,"mouseenter");d.removeHandler(c,"mouseleave");var e=b(f.filtericon);d.removeHandler(e,"mousedown");d.removeHandler(e,"click");d.removeHandler(c,"click")}},_calculateaggregate:function(k,o,d,h){if(!k.datafield){return null}var e=k.aggregates;if(!e){e=o}if(e){var f=new Array();for(var n=0;n0){r(u[t].records)}}};r(h);h=q}if(this.treeGrid&&this.filterable&&this.dataview.filters.length>0){var p=new Array();for(var n=0;n=g){if(m){if(m[k.datafield].sum!=undefined||m[k.datafield].avg!=undefined){var j=this.source.getAggregatedData([{name:k.datafield,aggregates:e,formatStrings:f}],this.gridlocalization,s,c);if(m[k.datafield].sum!=undefined){m[k.datafield].sum=j[k.datafield].sum}if(m[k.datafield].avg!=undefined){m[k.datafield].avg=j[k.datafield].avg}}}}}return m}else{var m=this.source.getAggregatedData([{name:k.datafield,aggregates:e}],this.gridlocalization,h,c);if(this.treeGrid&&m){if(m[k.datafield].sum!=undefined||m[k.datafield].avg!=undefined){var g=this.source._source.hierarchy&&this.source._source.hierarchy.groupingDataFields?this.source._source.hierarchy.groupingDataFields.length:0;if(g==0||c>=g){var j=this.source.getAggregatedData([{name:k.datafield,aggregates:e}],this.gridlocalization,s,c);if(m[k.datafield].sum!=undefined){m[k.datafield].sum=j[k.datafield].sum}if(m[k.datafield].avg!=undefined){m[k.datafield].avg=j[k.datafield].avg}}}}return m}}}return null},getcolumnaggregateddata:function(d,h,i,e){var f=this.getColumn(d);if(!f){return""}var k=(i==undefined||i==false)?false:i;if(h==null){return""}var c=f.aggregates;f.aggregates=null;var j=this._calculateaggregate(f,h,k,e);var g={};if(j){g=j[d];f.aggregates=c}return g},_updatecolumnaggregates:function(e,h,c){var f=this;if(!h){c.children().remove();c.html("");if(e.aggregatesRenderer){var g={};if(e.aggregates){g=this.getcolumnaggregateddata(e.datafield,e.aggregates)}var d=e.aggregatesRenderer({},e,c,null);c.html(d)}return}c.children().remove();c.html("");if(e.aggregatesRenderer){if(h){var d=e.aggregatesRenderer(h[e.datafield],e,c,this.getcolumnaggregateddata(e.datafield,e.aggregates),"aggregates");c.html(d)}}else{b.each(h,function(){var j=this;for(g in j){var k=b('
              ');var i=g;i=f._getaggregatename(i);k.html(i+":"+j[g]);if(f.rtl){k.addClass(f.toThemeProperty("jqx-rtl"))}c.append(k)}})}},_getaggregatetype:function(d){switch(d){case"min":case"max":case"count":case"avg":case"product":case"var":case"varp":case"stdev":case"stdevp":case"sum":return d}var c=d;for(var e in d){c=e;break}return c},_getaggregatename:function(d){var c=d;switch(d){case"min":c="Min";break;case"max":c="Max";break;case"count":c="Count";break;case"avg":c="Avg";break;case"product":c="Product";break;case"var":c="Var";break;case"stdevp":c="StDevP";break;case"stdev":c="StDev";break;case"varp":c="VarP";case"sum":c="Sum";break}if(d===c&&typeof(c)!="string"){for(var e in d){c=e;break}}return c},_updatecolumnsaggregates:function(){var g=this.getRows();if(this.dataViewRecords){g=this.dataViewRecords}var c=this.columns.records.length;if(undefined!=this.aggregates[0].cells){for(var f=0;f');var f=0;var m=this.columns.records.length;var l=this.toThemeProperty("jqx-grid-cell");if(this.rtl){l+=" "+this.toThemeProperty("jqx-grid-cell-rtl");f=0;c.css("border-left-width","0px");this.aggregates.css("border-left-color","transparent")}l+=" "+this.toThemeProperty("jqx-grid-cell-pinned");var n=m+10;var o=new Array();this.aggregates[0].cells=o;for(var h=0;hg.maxwidth){d=g.maxwidth}var e=l;if(g.cellsalign){e+=" "+this.toThemeProperty("jqx-"+g.cellsalign+"-align")}var k=b('
              ');c.append(k);k.css("left",f);if(!this.rtl){k.css("z-index",n--)}else{k.css("z-index",n++);if(h==0){k.css("border-left-width","0px")}}k.width(d);k[0].style.left=f+"px";if(!(g.hidden&&g.hideable)){f+=d}else{k.css("display","none")}o[o.length]=k[0];this._updatecolumnaggregates(g,i,k)}if(b.jqx.browser.msie&&b.jqx.browser.version<8){c.css("z-index",n--)}c.width(parseInt(f)+2);c.height(this.aggregatesHeight);this.aggregates.children().remove();this.aggregates.append(c);this.aggregates.removeClass(this.toThemeProperty("jqx-widget-header"));this.aggregates.addClass(l);this.aggregates.css("border-bottom-color","transparent");this.aggregates.css("border-top-width","1px");if(this.rtl&&this.hScrollBar.css("visibility")!="hidden"){this._renderhorizontalscroll()}},destroy:function(){var h=this;if(h.columns&&h.columns.records){for(var f=0;f0){j.jqxDropDownList("destroy")}}}if(h.filtercolumnsList){h.filtercolumnsList.jqxDropDownList("destroy")}}if(h.pageable){if(h.pagershowrowscombotop&&h.pagershowrowscombotop.jqxDropDownList){h.pagershowrowscombotop.jqxDropDownList("destroy")}if(h.pagershowrowscombobottom&&h.pagershowrowscombobottom.jqxDropDownList){h.pagershowrowscombobottom.jqxDropDownList("destroy")}var l=h.pagerbuttonsbottom.find("a");h.removeHandler(l,"click");h.removeHandler(l,"mouseenter");h.removeHandler(l,"mouseleave");l.remove();var l=h.pagerbuttonstop.find("a");h.removeHandler(l,"click");h.removeHandler(l,"mouseenter");h.removeHandler(l,"mouseleave");l.remove();if(h.pagernexttop){h.pagernexttop.jqxButton("destroy");h.pagerprevioustop.jqxButton("destroy");h.pagernextbottom.jqxButton("destroy");h.pagerpreviousbottom.jqxButton("destroy");h.pagerfirsttop.jqxButton("destroy");h.pagerfirstbottom.jqxButton("destroy");h.pagerlasttop.jqxButton("destroy");h.pagerlastbottom.jqxButton("destroy")}}h._removeHandlers();h.vScrollBar.jqxScrollBar("destroy");h.hScrollBar.jqxScrollBar("destroy");delete h.vScrollBar;delete h.hScrollBar;delete h._mousewheelfunc;b.jqx.utilities.resize(h.host,null,true);h.host.remove()},propertyChangedHandler:function(e,l,d,k){if(this.isInitialized==undefined||this.isInitialized==false){return}if(k!==d){if(l=="filterable"){e._render()}else{if(l==="height"){e.host.height(e.height);e.host.width(e.width);e._updatesize(false,true)}else{if(l==="width"){e.host.height(e.height);e.host.width(e.width);e._updatesize(true,false)}else{if(l==="source"){e.updateBoundData()}else{if(l==="columns"||l==="columnGroups"){e._columns=null;e._render()}else{if(l==="rtl"){e.content.css("left","");e.columns=e._columns;e.vScrollBar.jqxScrollBar({rtl:k});e.hScrollBar.jqxScrollBar({rtl:k});e._render()}else{if(l==="pagerMode"){e.pagerMode=k;e._initpager()}else{if(l=="pageSizeOptions"){e._initpager();var j=false;for(var f=0;f0){c.jqxDropDownList({theme:e.theme})}if(e.filtercolumnsList){e.filtercolumnsList.jqxDropDownList({theme:e.theme})}}e.refresh()}else{e.refresh()}}}}}}}}}}}}}}}}}},_rendercolumnheader:function(f,g,c,d){var e="4px";if(d.columnGroups){e=(c/2-this._columnheight/2);if(e<0){e=4}e+="px"}else{if(this.columnsHeight!=25){e=(this.columnsHeight/2-this._columnheight/2);if(e<0){e=4}e+="px"}}return'
              '+f+"
              "}});function a(c,d){this.owner=c;this.datafield=null;this.displayfield=null;this.text="";this.sortable=true;this.editable=true;this.hidden=false;this.hideable=true;this.groupable=true;this.renderer=null;this.cellsRenderer=null;this.columntype=null;this.cellsFormat="";this.align="left";this.cellsalign="left";this.width="auto";this.minwidth=25;this.maxwidth="auto";this.pinned=false;this.visibleindex=-1;this.filterable=true;this.filter=null;this.resizable=true;this.draggable=true;this.initeditor=null;this.createeditor=null;this.destroyeditor=null;this.geteditorvalue=null;this.autoCellHeight=true;this.validation=null;this.classname="";this.cellclassname="";this.aggregates=null;this.aggregatesRenderer=null;this.rendered=null;this.exportable=true;this.nullable=true;this.columngroup=null;this.columntype="textbox";this.getcolumnproperties=function(){return{nullable:this.nullable,sortable:this.sortable,hidden:this.hidden,groupable:this.groupable,width:this.width,align:this.align,editable:this.editable,minwidth:this.minwidth,maxwidth:this.maxwidth,resizable:this.resizable,datafield:this.datafield,text:this.text,exportable:this.exportable,cellsalign:this.cellsalign,pinned:this.pinned,cellsFormat:this.cellsFormat,columntype:this.columntype,classname:this.classname,cellclassname:this.cellclassname,menu:this.menu}},this.setproperty=function(e,f){if(this[e]){var g=this[e];this[e]=f;this.owner._columnPropertyChanged(this,e,f,g)}else{if(this[e.toLowerCase()]){var g=this[e.toLowerCase()];this[e.toLowerCase()]=f;this.owner._columnPropertyChanged(this,e.toLowerCase(),f,g)}}};this._initfields=function(f){if(f!=null){var e=this;if(b.jqx.hasProperty(f,"dataField")){this.datafield=b.jqx.get(f,"dataField")}if(b.jqx.hasProperty(f,"displayField")){this.displayfield=b.jqx.get(f,"displayField")}else{this.displayfield=this.datafield}if(b.jqx.hasProperty(f,"columnType")){this.columntype=b.jqx.get(f,"columnType")}if(b.jqx.hasProperty(f,"validation")){this.validation=b.jqx.get(f,"validation")}if(b.jqx.hasProperty(f,"autoCellHeight")){this.autoCellHeight=b.jqx.get(f,"autoCellHeight")}if(b.jqx.hasProperty(f,"text")){this.text=b.jqx.get(f,"text")}else{this.text=this.displayfield}if(b.jqx.hasProperty(f,"sortable")){this.sortable=b.jqx.get(f,"sortable")}if(b.jqx.hasProperty(f,"hidden")){this.hidden=b.jqx.get(f,"hidden")}if(b.jqx.hasProperty(f,"groupable")){this.groupable=b.jqx.get(f,"groupable")}if(b.jqx.hasProperty(f,"renderer")){this.renderer=b.jqx.get(f,"renderer")}if(b.jqx.hasProperty(f,"align")){this.align=b.jqx.get(f,"align")}if(b.jqx.hasProperty(f,"cellsAlign")){this.cellsalign=b.jqx.get(f,"cellsAlign")}if(b.jqx.hasProperty(f,"cellsFormat")){this.cellsFormat=b.jqx.get(f,"cellsFormat")}if(b.jqx.hasProperty(f,"width")){this.width=b.jqx.get(f,"width")}if(b.jqx.hasProperty(f,"minWidth")){this.minwidth=b.jqx.get(f,"minWidth")}if(b.jqx.hasProperty(f,"maxWidth")){this.maxwidth=b.jqx.get(f,"maxWidth")}if(b.jqx.hasProperty(f,"cellsRenderer")){this.cellsRenderer=b.jqx.get(f,"cellsRenderer")}if(b.jqx.hasProperty(f,"columnType")){this.columntype=b.jqx.get(f,"columnType")}if(b.jqx.hasProperty(f,"pinned")){this.pinned=b.jqx.get(f,"pinned")}if(b.jqx.hasProperty(f,"filterable")){this.filterable=b.jqx.get(f,"filterable")}if(b.jqx.hasProperty(f,"filter")){this.filter=b.jqx.get(f,"filter")}if(b.jqx.hasProperty(f,"resizable")){this.resizable=b.jqx.get(f,"resizable")}if(b.jqx.hasProperty(f,"draggable")){this.draggable=b.jqx.get(f,"draggable")}if(b.jqx.hasProperty(f,"editable")){this.editable=b.jqx.get(f,"editable")}if(b.jqx.hasProperty(f,"initEditor")){this.initeditor=b.jqx.get(f,"initEditor")}if(b.jqx.hasProperty(f,"createEditor")){this.createeditor=b.jqx.get(f,"createEditor")}if(b.jqx.hasProperty(f,"destroyEditor")){this.destroyeditor=b.jqx.get(f,"destroyEditor")}if(b.jqx.hasProperty(f,"getEditorValue")){this.geteditorvalue=b.jqx.get(f,"getEditorValue")}if(b.jqx.hasProperty(f,"className")){this.classname=b.jqx.get(f,"className")}if(b.jqx.hasProperty(f,"cellClassName")){this.cellclassname=b.jqx.get(f,"cellClassName")}if(b.jqx.hasProperty(f,"aggregates")){this.aggregates=b.jqx.get(f,"aggregates")}if(b.jqx.hasProperty(f,"aggregatesRenderer")){this.aggregatesRenderer=b.jqx.get(f,"aggregatesRenderer")}if(b.jqx.hasProperty(f,"rendered")){this.rendered=b.jqx.get(f,"rendered")}if(b.jqx.hasProperty(f,"exportable")){this.exportable=b.jqx.get(f,"exportable")}if(b.jqx.hasProperty(f,"nullable")){this.nullable=b.jqx.get(f,"nullable")}if(b.jqx.hasProperty(f,"columnGroup")){this.columngroup=b.jqx.get(f,"columnGroup")}if(!f instanceof String&&!(typeof f=="string")){for(var g in f){if(!e.hasOwnProperty(g)){if(!e.hasOwnProperty(g.toLowerCase())){c.host.remove();throw new Error("jqxDataTable: Invalid property name - "+g+".")}}}}}};this._initfields(d);return this}b.jqx.dataCollection=function(c){this.records=new Array();this.owner=c;this.updating=false;this.beginUpdate=function(){this.updating=true};this.resumeupdate=function(){this.updating=false};this.clear=function(){this.records=new Array()};this.replace=function(e,d){this.records[e]=d};this.isempty=function(d){if(this.records[d]==undefined){return true}return false};this.initialize=function(d){if(d<1){d=1}this.records[d-1]=-1};this.length=function(){return this.records.length};this.indexOf=function(d){return this.records.indexOf(d)};this.add=function(d){if(d==null){return false}this.records[this.records.length]=d;return true};this.insertAt=function(e,d){if(e==null||e==undefined){return false}if(d==null){return false}if(e>=0){if(ec){return 1}return 0;case"date":case"time":if(dc){return 1}return 0;case"string":case"text":d=String(d).toLowerCase();c=String(c).toLowerCase();break}}else{if(b.jqx.dataFormat.isNumber(d)&&b.jqx.dataFormat.isNumber(c)){if(dc){return 1}return 0}else{if(b.jqx.dataFormat.isDate(d)&&b.jqx.dataFormat.isDate(c)){if(dc){return 1}return 0}else{if(!b.jqx.dataFormat.isNumber(d)&&!b.jqx.dataFormat.isNumber(c)){d=String(d).toLowerCase();c=String(c).toLowerCase()}}}}}try{if(dc){return 1}}catch(e){var g=e}return 0};this._equals=function(d,c){return(this._compare(d,c)===0)};this.evaluate=function(p){if(this.grid.serverProcessing){if(p){if(this.grid.source._source.id==""||this.grid.source._source.id==null){if(this.grid.pageable){var c=this.grid.pageSize*this.pagenum;this.grid.rowsByKey=new Array();var h=this;b.each(p,function(i){this.uid=c;h.grid.rowsByKey[this.uid]=this;c++})}}}return p}var d=new Array();if(this.filters.length){var j=new Array();var o=function(s,w){for(var u=0;u0)){var n=new Array();var k=function(r,s){for(var q=0;q0){k(t,t.records)}}};k(null,p);o.call(this,n,d);for(var e=0;e0)){var h=this;var l=new Array();this._sortData=null;var f=function(t,q){h._sortData=null;var r=null;if(h.source.hierarchy.groupingDataFields){if(q&&q.length>0&&q[0].level0){return b(j,d).text()}if(this.rows&&j!=""&&j!=undefined&&this.rows.length>0){var h=this.rows[this.rows.length-1][j];if(h==null){h=null}for(var f=1;f<=100;f++){var g=this.grid.rowsByKey[f+h];if(!g){if(this.grid&&this.grid.treeGrid&&this.grid.treeGrid.virtualModeCreateRecords){var g=this.grid.rowsByKey["jqx"+h+f];if(g){continue}return"jqx"+h+f}return h+f}}}if(j!=undefined){if(j.toString().length>0){var c=b(d).attr(j);if(c!=null&&c.toString().length>0){if(this.grid&&this.grid.treeGrid&&this.grid.treeGrid.virtualModeCreateRecords){return"jqx"+c}return c}}}if(this.rows&&this.rows.length>0){var g=this.grid.rowsByKey[e];if(g){var h=this.rows[this.rows.length-1][j];if(h==null){h=""}for(var f=1;f<=1000;f++){var g=this.grid.rowsByKey[f+h];if(!g){if(this.grid&&this.grid.treeGrid&&this.grid.treeGrid.virtualModeCreateRecords){var g=this.grid.rowsByKey["jqx"+h+f];if(g){continue}return"jqx"+h+f}return h+f}}}}if(this.grid&&this.grid.treeGrid&&this.grid.treeGrid.virtualModeCreateRecords){var g=this.grid.rowsByKey["jqx"+e];if(!g){return"jqx"+e}else{for(var f=e+1;f<=100;f++){var g=this.grid.rowsByKey["jqx"+f];if(!g){var g=this.grid.rowsByKey["jqx"+f];if(g){continue}return"jqx"+f}}}}return e};this.generatekey=function(){var c=function(){return(((1+Math.random())*16)|0)};return(""+c()+c()+"-"+c()+"-"+c())};return this}})(jqxBaseFramework); \ No newline at end of file diff --git a/htdocs/public/jqwidgets/jqxdate.js b/htdocs/public/jqwidgets/jqxdate.js deleted file mode 100644 index 5551df08..00000000 --- a/htdocs/public/jqwidgets/jqxdate.js +++ /dev/null @@ -1,7 +0,0 @@ -/* -jQWidgets v4.0.0 (2016-Jan) -Copyright (c) 2011-2016 jQWidgets. -License: http://jqwidgets.com/license/ -*/ - -(function(f){f.jqx.timeSpan=function(){var q={ticksPerMillisecond:10000,millisecondsPerTick:1/10000,ticksPerSecond:1000*10000,secondsPerTick:1/(1000*10000),ticksPerMinute:1000*10000*60,minutesPerTick:1/(1000*10000*60),ticksPerHour:1000*10000*3600,hoursPerTick:1/(1000*10000*3600),ticksPerDay:1000*10000*3600*24,daysPerTick:1/(1000*10000*3600*24),millisPerSecond:1000,millisPerMinute:1000*60,millisPerHour:1000*60*60,millisPerDay:1000*60*60*24,_ticks:0};f.extend(true,this,q);var r=this;r.ticks=function(){return r._ticks};r.days=function(){return parseInt(r._ticks/r.ticksPerDay)};r.timeToMS=function(v,z,x,w){var y=v*3600+z*60+x+w/1000;return parseInt(y*r.ticksPerSecond)};r.hours=function(){return parseInt(r._ticks/r.ticksPerHour)%24};r.milliseconds=function(){return parseInt(r._ticks/r.ticksPerMillisecond)%1000};r.minutes=function(){return parseInt(r._ticks/r.ticksPerMinute)%60};r.seconds=function(){return parseInt(r._ticks/r.ticksPerSecond)%60};r.totalDays=function(){return parseInt(r._ticks*r.daysPerTick)};r.totalHours=function(){return parseInt(r._ticks*r.hoursPerTick)};r.totalMilliseconds=function(){var v=r._ticks*r.millisecondsPerTick;return parseInt(v)};r.totalMinutes=function(){return parseInt(r._ticks*r.minutesPerTick)};r.totalSeconds=function(){return parseInt(r._ticks*r.secondsPerTick)};if(arguments.length===1){r._ticks=arguments[0]}else{if(arguments.length===3){r._ticks=r.timeToMS(arguments[0],arguments[1],arguments[2])}else{if(arguments.length===4){var u=arguments[0];var n=arguments[1];var p=arguments[2];var t=arguments[3];var o=0;var s=(u*3600*24+n*3600+p*60+t)*1000+o;r._ticks=s*r.ticksPerMillisecond}else{if(arguments.length===5){var u=arguments[0];var n=arguments[1];var p=arguments[2];var t=arguments[3];var o=arguments[4];var s=(u*3600*24+n*3600+p*60+t)*1000+o;r._ticks=s*r.ticksPerMillisecond}}}}r.add=function(w){var v=r._ticks+w._ticks;var x=new f.jqx.timeSpan(v);return x};r.substract=function(w){var v=_ticks-w._ticks;return new f.jqx.timeSpan(v)};r.duration=function(){if(r._ticks>=0){return new f.jqx.timeSpan(r._ticks)}else{return new f.jqx.timeSpan(-r._ticks)}};r.equals=function(v){return r._ticks==v._ticks};r.valueOf=function(){return r._ticks};r.compare=function(w,v){if(w._ticks>v._ticks){return 1}if(w._ticks=0?0.5:-0.5);return new f.jqx.timeSpan(v*r.ticksPerMillisecond)};r.fromDays=function(v){return r.interval(v,r.millisPerDay)};r.fromHours=function(v){return r.interval(v,r.millisPerHour)};r.fromMilliseconds=function(v){return r.interval(v,1)};r.fromMinutes=function(v){return r.interval(v,r.millisPerMinute)};r.fromSeconds=function(v){return r.interval(v,r.millisPerSecond)};r.fromTicks=function(v){return new f.jqx.timeSpan(v)};return r};var g=[{id:"Local",offset:0,offsetHours:0,displayName:"",supportsDaylightSavingTime:false},{id:"Dateline Standard Time",offset:-720,offsetHours:-12,displayName:"(UTC-12:00) International Date Line West",supportsDaylightSavingTime:false},{id:"UTC-11",offset:-660,offsetHours:-11,displayName:"(UTC-11:00) Coordinated Universal Time-11",supportsDaylightSavingTime:false},{id:"Hawaiteratoran Standard Time",offset:-600,offsetHours:-10,displayName:"(UTC-10:00) Hawaiterator",supportsDaylightSavingTime:false},{id:"Alaskan Standard Time",offset:-540,offsetHours:-9,displayName:"(UTC-09:00) Alaska",supportsDaylightSavingTime:true},{id:"Pacific Standard Time (Mexico)",offset:-480,offsetHours:-8,displayName:"(UTC-08:00) Baja California",supportsDaylightSavingTime:true},{id:"Pacific Standard Time",offset:-480,offsetHours:-8,displayName:"(UTC-08:00) Pacific Time (US & Canada)",supportsDaylightSavingTime:true},{id:"US Mountain Standard Time",offset:-420,offsetHours:-7,displayName:"(UTC-07:00) Arizona",supportsDaylightSavingTime:false},{id:"Mountain Standard Time (Mexico)",offset:-420,offsetHours:-7,displayName:"(UTC-07:00) Chihuahua, La Paz, Mazatlan",supportsDaylightSavingTime:true},{id:"Mountain Standard Time",offset:-420,offsetHours:-7,displayName:"(UTC-07:00) Mountain Time (US & Canada)",supportsDaylightSavingTime:true},{id:"Central Standard Time",offset:-360,offsetHours:-6,displayName:"(UTC-06:00) Central Time (US & Canada)",supportsDaylightSavingTime:true},{id:"Central America Standard Time",offset:-360,offsetHours:-6,displayName:"(UTC-06:00) Central America",supportsDaylightSavingTime:false},{id:"Canada Central Standard Time",offset:-360,offsetHours:-6,displayName:"(UTC-06:00) Saskatchewan",supportsDaylightSavingTime:false},{id:"Central Standard Time (Mexico)",offset:-360,offsetHours:-6,displayName:"(UTC-06:00) Guadalajara, Mexico City, Monterrey",supportsDaylightSavingTime:true},{id:"SA Pacific Standard Time",offset:-300,offsetHours:-5,displayName:"(UTC-05:00) Bogota, Lima, Quito, Rio Branco",supportsDaylightSavingTime:false},{id:"Eastern Standard Time",offset:-300,offsetHours:-5,displayName:"(UTC-05:00) Eastern Time (US & Canada)",supportsDaylightSavingTime:true},{id:"US Eastern Standard Time",offset:-300,offsetHours:-5,displayName:"(UTC-05:00) Indiana (East)",supportsDaylightSavingTime:true},{id:"Venezuela Standard Time",offset:-270,offsetHours:-4.5,displayName:"(UTC-04:30) Caracas",supportsDaylightSavingTime:false},{id:"Atlantic Standard Time",offset:-240,offsetHours:-4,displayName:"(UTC-04:00) Atlantic Time (Canada)",supportsDaylightSavingTime:true},{id:"Paraguay Standard Time",offset:-240,offsetHours:-4,displayName:"(UTC-04:00) Asuncion",supportsDaylightSavingTime:true},{id:"Central Brazilian Standard Time",offset:-240,offsetHours:-4,displayName:"(UTC-04:00) Cuiaba",supportsDaylightSavingTime:true},{id:"Pacific SA Standard Time",offset:-240,offsetHours:-4,displayName:"(UTC-04:00) Santiago",supportsDaylightSavingTime:true},{id:"SA Western Standard Time",offset:-240,offsetHours:-4,displayName:"(UTC-04:00) Georgetown, La Paz, Manaus, San Juan",supportsDaylightSavingTime:false},{id:"Newfoundland Standard Time",offset:-210,offsetHours:-3.5,displayName:"(UTC-03:30) Newfoundland",supportsDaylightSavingTime:true},{id:"SA Eastern Standard Time",offset:-180,offsetHours:-3,displayName:"(UTC-03:00) Cayenne, Fortaleza",supportsDaylightSavingTime:false},{id:"Argentina Standard Time",offset:-180,offsetHours:-3,displayName:"(UTC-03:00) Buenos Aires",supportsDaylightSavingTime:true},{id:"E. South America Standard Time",offset:-180,offsetHours:-3,displayName:"(UTC-03:00) Brasilia",supportsDaylightSavingTime:true},{id:"Bahia Standard Time",offset:-180,offsetHours:-3,displayName:"(UTC-03:00) Salvador",supportsDaylightSavingTime:true},{id:"Montevideo Standard Time",offset:-180,offsetHours:-3,displayName:"(UTC-03:00) Montevideo",supportsDaylightSavingTime:true},{id:"Greenland Standard Time",offset:-180,offsetHours:-3,displayName:"(UTC-03:00) Greenland",supportsDaylightSavingTime:true},{id:"UTC-02",offset:-120,offsetHours:-2,displayName:"(UTC-02:00) Coordinated Universal Time-02",supportsDaylightSavingTime:false},{id:"Mid-Atlantic Standard Time",offset:-120,offsetHours:-2,displayName:"(UTC-02:00) Mid-Atlantic - Old",supportsDaylightSavingTime:true},{id:"Azores Standard Time",offset:-60,offsetHours:-1,displayName:"(UTC-01:00) Azores",supportsDaylightSavingTime:true},{id:"Cape Verde Standard Time",offset:-60,offsetHours:-1,displayName:"(UTC-01:00) Cape Verde Is.",supportsDaylightSavingTime:false},{id:"Morocco Standard Time",offset:0,offsetHours:0,displayName:"(UTC) Casablanca",supportsDaylightSavingTime:true},{id:"UTC",offset:0,offsetHours:0,displayName:"(UTC) Coordinated Universal Time",supportsDaylightSavingTime:false},{id:"GMT Standard Time",offset:0,offsetHours:0,displayName:"(UTC) Dublin, Edinburgh, Lisbon, London",supportsDaylightSavingTime:true},{id:"Greenwich Standard Time",offset:0,offsetHours:0,displayName:"(UTC) Monrovia, Reykjavik",supportsDaylightSavingTime:false},{id:"Central European Standard Time",offset:60,offsetHours:1,displayName:"(UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb",supportsDaylightSavingTime:true},{id:"Namibia Standard Time",offset:60,offsetHours:1,displayName:"(UTC+01:00) Windhoek",supportsDaylightSavingTime:true},{id:"W. Central Africa Standard Time",offset:60,offsetHours:1,displayName:"(UTC+01:00) West Central Africa",supportsDaylightSavingTime:false},{id:"W. Europe Standard Time",offset:60,offsetHours:1,displayName:"(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna",supportsDaylightSavingTime:true},{id:"Central Europe Standard Time",offset:60,offsetHours:1,displayName:"(UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague",supportsDaylightSavingTime:true},{id:"Romance Standard Time",offset:60,offsetHours:1,displayName:"(UTC+01:00) Brussels, Copenhagen, Madrid, Paris",supportsDaylightSavingTime:true},{id:"FLE Standard Time",offset:120,offsetHours:2,displayName:"(UTC+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius",supportsDaylightSavingTime:true},{id:"South Africa Standard Time",offset:120,offsetHours:2,displayName:"(UTC+02:00) Harare, Pretoria",supportsDaylightSavingTime:false},{id:"Turkey Standard Time",offset:120,offsetHours:2,displayName:"(UTC+02:00) Istanbul",supportsDaylightSavingTime:true},{id:"GTB Standard Time",offset:120,offsetHours:2,displayName:"(UTC+02:00) Athens, Bucharest",supportsDaylightSavingTime:true},{id:"Libya Standard Time",offset:120,offsetHours:2,displayName:"(UTC+02:00) Tripoli",supportsDaylightSavingTime:true},{id:"E. Europe Standard Time",offset:120,offsetHours:2,displayName:"(UTC+02:00) E. Europe",supportsDaylightSavingTime:true},{id:"Jordan Standard Time",offset:120,offsetHours:2,displayName:"(UTC+02:00) Amman",supportsDaylightSavingTime:true},{id:"Middle East Standard Time",offset:120,offsetHours:2,displayName:"(UTC+02:00) Beirut",supportsDaylightSavingTime:true},{id:"Egypt Standard Time",offset:120,offsetHours:2,displayName:"(UTC+02:00) Cairo",supportsDaylightSavingTime:true},{id:"Syria Standard Time",offset:120,offsetHours:2,displayName:"(UTC+02:00) Damascus",supportsDaylightSavingTime:true},{id:"Israel Standard Time",offset:120,offsetHours:2,displayName:"(UTC+02:00) Jerusalem",supportsDaylightSavingTime:true},{id:"Arab Standard Time",offset:180,offsetHours:3,displayName:"(UTC+03:00) Kuwait, Riyadh",supportsDaylightSavingTime:false},{id:"E. Africa Standard Time",offset:180,offsetHours:3,displayName:"(UTC+03:00) Nairobi",supportsDaylightSavingTime:false},{id:"Arabic Standard Time",offset:180,offsetHours:3,displayName:"(UTC+03:00) Baghdad",supportsDaylightSavingTime:true},{id:"Kaliningrad Standard Time",offset:180,offsetHours:3,displayName:"(UTC+03:00) Kaliningrad, Minsk",supportsDaylightSavingTime:true},{id:"Iran Standard Time",offset:210,offsetHours:3.5,displayName:"(UTC+03:30) Tehran",supportsDaylightSavingTime:true},{id:"Mauritius Standard Time",offset:240,offsetHours:4,displayName:"(UTC+04:00) Port Louis",supportsDaylightSavingTime:true},{id:"Georgian Standard Time",offset:240,offsetHours:4,displayName:"(UTC+04:00) Tbilisi",supportsDaylightSavingTime:false},{id:"Caucasus Standard Time",offset:240,offsetHours:4,displayName:"(UTC+04:00) Yerevan",supportsDaylightSavingTime:true},{id:"Arabian Standard Time",offset:240,offsetHours:4,displayName:"(UTC+04:00) Abu Dhabi, Muscat",supportsDaylightSavingTime:false},{id:"Azerbaijan Standard Time",offset:240,offsetHours:4,displayName:"(UTC+04:00) Baku",supportsDaylightSavingTime:true},{id:"Russian Standard Time",offset:240,offsetHours:4,displayName:"(UTC+04:00) Moscow, St. Petersburg, Volgograd",supportsDaylightSavingTime:true},{id:"Afghanistan Standard Time",offset:270,offsetHours:4.5,displayName:"(UTC+04:30) Kabul",supportsDaylightSavingTime:false},{id:"Pakistan Standard Time",offset:300,offsetHours:5,displayName:"(UTC+05:00) Islamabad, Karachi",supportsDaylightSavingTime:true},{id:"West Asia Standard Time",offset:300,offsetHours:5,displayName:"(UTC+05:00) Ashgabat, Tashkent",supportsDaylightSavingTime:false},{id:"India Standard Time",offset:330,offsetHours:5.5,displayName:"(UTC+05:30) Chennai, Kolkata, Mumbai, New Delhi",supportsDaylightSavingTime:false},{id:"Sri Lanka Standard Time",offset:330,offsetHours:5.5,displayName:"(UTC+05:30) Sri Jayawardenepura",supportsDaylightSavingTime:false},{id:"Nepal Standard Time",offset:345,offsetHours:5.75,displayName:"(UTC+05:45) Kathmandu",supportsDaylightSavingTime:false},{id:"Central Asia Standard Time",offset:360,offsetHours:6,displayName:"(UTC+06:00) Astana",supportsDaylightSavingTime:false},{id:"Bangladesh Standard Time",offset:360,offsetHours:6,displayName:"(UTC+06:00) Dhaka",supportsDaylightSavingTime:true},{id:"Ekaterinburg Standard Time",offset:360,offsetHours:6,displayName:"(UTC+06:00) Ekaterinburg",supportsDaylightSavingTime:true},{id:"Myanmar Standard Time",offset:390,offsetHours:6.5,displayName:"(UTC+06:30) Yangon (Rangoon)",supportsDaylightSavingTime:false},{id:"SE Asia Standard Time",offset:420,offsetHours:7,displayName:"(UTC+07:00) Bangkok, Hanoi, Jakarta",supportsDaylightSavingTime:false},{id:"N. Central Asia Standard Time",offset:420,offsetHours:7,displayName:"(UTC+07:00) Novosibirsk",supportsDaylightSavingTime:true},{id:"Ulaanbaatar Standard Time",offset:480,offsetHours:8,displayName:"(UTC+08:00) Ulaanbaatar",supportsDaylightSavingTime:false},{id:"China Standard Time",offset:480,offsetHours:8,displayName:"(UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi",supportsDaylightSavingTime:false},{id:"Singapore Standard Time",offset:480,offsetHours:8,displayName:"(UTC+08:00) Kuala Lumpur, Singapore",supportsDaylightSavingTime:false},{id:"North Asia Standard Time",offset:480,offsetHours:8,displayName:"(UTC+08:00) Krasnoyarsk",supportsDaylightSavingTime:true},{id:"Taipei Standard Time",offset:480,offsetHours:8,displayName:"(UTC+08:00) Taipei",supportsDaylightSavingTime:false},{id:"W. Australia Standard Time",offset:480,offsetHours:8,displayName:"(UTC+08:00) Perth",supportsDaylightSavingTime:true},{id:"Korea Standard Time",offset:540,offsetHours:9,displayName:"(UTC+09:00) Seoul",supportsDaylightSavingTime:false},{id:"North Asia East Standard Time",offset:540,offsetHours:9,displayName:"(UTC+09:00) Irkutsk",supportsDaylightSavingTime:true},{id:"Tokyo Standard Time",offset:540,offsetHours:9,displayName:"(UTC+09:00) Osaka, Sapporo, Tokyo",supportsDaylightSavingTime:false},{id:"AUS Central Standard Time",offset:570,offsetHours:9.5,displayName:"(UTC+09:30) Darwin",supportsDaylightSavingTime:false},{id:"Cen. Australia Standard Time",offset:570,offsetHours:9.5,displayName:"(UTC+09:30) Adelaide",supportsDaylightSavingTime:true},{id:"West Pacific Standard Time",offset:600,offsetHours:10,displayName:"(UTC+10:00) Guam, Port Moresby",supportsDaylightSavingTime:false},{id:"Tasmania Standard Time",offset:600,offsetHours:10,displayName:"(UTC+10:00) Hobart",supportsDaylightSavingTime:true},{id:"E. Australia Standard Time",offset:600,offsetHours:10,displayName:"(UTC+10:00) Brisbane",supportsDaylightSavingTime:false},{id:"AUS Eastern Standard Time",offset:600,offsetHours:10,displayName:"(UTC+10:00) Canberra, Melbourne, Sydney",supportsDaylightSavingTime:true},{id:"Yakutsk Standard Time",offset:600,offsetHours:10,displayName:"(UTC+10:00) Yakutsk",supportsDaylightSavingTime:true},{id:"Vladivostok Standard Time",offset:660,offsetHours:11,displayName:"(UTC+11:00) Vladivostok",supportsDaylightSavingTime:true},{id:"Central Pacific Standard Time",offset:660,offsetHours:11,displayName:"(UTC+11:00) Solomon Is., New Caledonia",supportsDaylightSavingTime:false},{id:"Magadan Standard Time",offset:720,offsetHours:12,displayName:"(UTC+12:00) Magadan",supportsDaylightSavingTime:true},{id:"Kamchatka Standard Time",offset:720,offsetHours:12,displayName:"(UTC+12:00) Petropavlovsk-Kamchatsky - Old",supportsDaylightSavingTime:true},{id:"Fiji Standard Time",offset:720,offsetHours:12,displayName:"(UTC+12:00) Fiji",supportsDaylightSavingTime:true},{id:"New Zealand Standard Time",offset:720,offsetHours:12,displayName:"(UTC+12:00) Auckland, Wellington",supportsDaylightSavingTime:true},{id:"UTC+12",offset:720,offsetHours:12,displayName:"(UTC+12:00) Coordinated Universal Time+12",supportsDaylightSavingTime:false},{id:"Tonga Standard Time",offset:780,offsetHours:13,displayName:"(UTC+13:00) Nuku'alofa",supportsDaylightSavingTime:false},{id:"Samoa Standard Time",offset:780,offsetHours:13,displayName:"(UTC+13:00) Samoa",supportsDaylightSavingTime:true}];var a=[0,31,59,90,120,151,181,212,243,273,304,334,365];var m=[0,31,60,91,121,152,182,213,244,274,305,335,366];var j=365*4+1;var c=(365*4+1)*25-1;var h=((365*4+1)*25-1)*4+1;var d=(((365*4+1)*25-1)*4+1)*4;var b=(((365*4+1)*25-1)*4+1)*4+((365*4+1)*25-1)*3-367;var l=(((365*4+1)*25-1)*4+1)*25-366;var k=0;var i=((((365*4+1)*25-1)*4+1)*25-366)*(1000*10000*3600*24)-1;var e=((((365*4+1)*25-1)*4+1)*25-366)*(1000*60*60*24);f.jqx.date=function(){var r=this;r.ticksPerMillisecond=10000;r.millisecondsPerTick=1/10000;r.ticksPerSecond=1000*10000;r.secondsPerTick=1/(1000*10000);r.ticksPerMinute=1000*10000*60;r.minutesPerTick=1/(1000*10000*60);r.ticksPerHour=1000*10000*3600;r.hoursPerTick=1/(1000*10000*3600);r.ticksPerDay=1000*10000*3600*24;r.daysPerTick=1/(1000*10000*3600*24);r.millisPerSecond=1000;r.millisPerMinute=1000*60;r.millisPerHour=1000*60*60;r.millisPerDay=1000*60*60*24;r.daysPerYear=365;r.daysPer4Years=j;r.daysPer100Years=c;r.daysPer400Years=h;r.daysTo1601=d;r.daysTo1899=b;r.daysTo10000=l;r.minTicks=0;r.maxTicks=i;r.maxMillis=e;r.datePartYear=0;r.datePartDayOfYear=1;r.datePartMonth=2;r.datePartDay=3;r.daysToMonth365=a;r.daysToMonth366=m;r.minValue=new Date(0);r.maxValue=new Date(((((365*4+1)*25-1)*4+1)*25-366)*(1000*10000*3600*24)-1);r.ticksMask=4611686018427388000;r.flagsMask=13835058055282164000;r.localMask=9223372036854776000;r.ticksCeiling=4611686018427388000;r.kindUnspecified=0;r.kindUtc=4611686018427388000;r.kindLocal=9223372036854776000;r.kindLocalAmbiguousDst=13835058055282164000;r.kindShift=62;r.regexTrim=/^\s+|\s+$/g;r.regexInfinity=/^[+-]?infinity$/i;r.regexHex=/^0x[a-f0-9]+$/i;r.regexParseFloat=/^[+-]?\d*\.?\d*(e[+-]?\d+)?$/;r.calendar={"/":"/",":":":",firstDay:0,days:{names:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],namesAbbr:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],namesShort:["Su","Mo","Tu","We","Th","Fr","Sa"]},months:{names:["January","February","March","April","May","June","July","August","September","October","November","December",""],namesAbbr:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",""]},AM:["AM","am","AM"],PM:["PM","pm","PM"],eras:[{name:"A.D.",start:null,offset:0}],twoDigitYearMax:2029,patterns:{d:"M/d/yyyy",D:"dddd, MMMM dd, yyyy",t:"h:mm tt",T:"h:mm:ss tt",f:"dddd, MMMM dd, yyyy h:mm tt",F:"dddd, MMMM dd, yyyy h:mm:ss tt",M:"MMMM dd",Y:"yyyy MMMM",S:"yyyy\u0027-\u0027MM\u0027-\u0027dd\u0027T\u0027HH\u0027:\u0027mm\u0027:\u0027ss",ISO:"yyyy-MM-dd hh:mm:ss",ISO2:"yyyy-MM-dd HH:mm:ss",d1:"dd.MM.yyyy",d2:"dd-MM-yyyy",zone1:"yyyy-MM-ddTHH:mm:ss-HH:mm",zone2:"yyyy-MM-ddTHH:mm:ss+HH:mm",custom:"yyyy-MM-ddTHH:mm:ss.fff",custom2:"yyyy-MM-dd HH:mm:ss.fff"},percentsymbol:"%",currencysymbol:"$",currencysymbolposition:"before",decimalseparator:".",thousandsseparator:","};r.dateData=0;r.timeZone=null;r.timeZones=g;r.internalMS=function(){return r.dateData};r.getDatePart=function(y){var x=r.internalMS();var z=parseInt(x/r.millisPerDay);var G=parseInt(z/r.daysPer400Years);z-=G*r.daysPer400Years;var B=parseInt(z/r.daysPer100Years);if(B==4){B=3}z-=B*r.daysPer100Years;var D=parseInt(z/r.daysPer4Years);z-=D*r.daysPer4Years;var E=parseInt(z/r.daysPerYear);if(E==4){E=3}if(y==r.datePartYear){return parseInt(G*400+B*100+D*4+E+1)}z-=E*r.daysPerYear;if(y==r.datePartDayOfYear){return parseInt(z+1)}var C=E==3&&(D!=24||B==3);var F=C?r.daysToMonth366:r.daysToMonth365;var A=z>>5+1;while(z>=F[A]){A++}if(y==r.datePartMonth){return parseInt(A)}return parseInt(z-F[A-1]+1)};r.dayOfWeek=function(){var y=r.dateData;var x=parseInt(y/r.millisPerDay+1)%7;return x},r.dayOfYear=function(){return r.getDatePart(r.datePartDayOfYear)};r.weekOfYear=function(z){var x=r.toDate();var C=z||r.calendar.firstDay;var B=new Date(x.getFullYear(),0,1);var y=B.getDay()-C;y=(y>=0?y:y+7);var A=Math.floor((x.getTime()-B.getTime()-(x.getTimezoneOffset()-B.getTimezoneOffset())*60000)/86400000)+1;var D;if(y<4){D=Math.floor((A+y-1)/7)+1;if(D>52){nYear=new Date(x.getFullYear()+1,0,1);nday=nYear.getDay()-C;nday=nday>=0?nday:nday+7;D=nday<4?1:53}}else{D=Math.floor((A+y-1)/7)}return D};r.subtract=function(x){return new f.jqx.timeSpan(r.dateData*r.ticksPerMillisecond-x.dateData*r.ticksPerMillisecond)};r.dateToMS=function(z,A,x){if(z>=1&&z<=9999&&A>=1&&A<=12){z=parseInt(z);var D=r.isLeapYear(z)?r.daysToMonth366:r.daysToMonth365;if(x>=1&&x<=D[A]-D[A-1]){var C=z-1;var B=C*365+parseInt(C/4)-parseInt(C/100)+parseInt(C/400)+D[A-1]+x-1;return B*r.millisPerDay}}};r.isLeapYear=function(x){if(x<1||x>9999){throw new Error("Year out of Range")}return x%4==0&&(x%100!=0||x%400==0)};r.timeToMS=function(x,B,z,y){if(x>=0&&x<24&&B>=0&&B<60&&z>=0&&z<60){var A=parseInt(x*3600+B*60+z);if(y>0&&y<1000){return(A*r.millisPerSecond)+y}return A*r.millisPerSecond}};r.daysInMonth=function(x,y){if(y<1||y>12){throw new Error("Month out of Range")}var z=r.isLeapYear(x)?r.daysToMonth366:r.daysToMonth365;return z[y]-z[y-1]};r.arrayIndexOf=function(A,z){if(A.indexOf){return A.indexOf(z)}for(var x=0,y=A.length;x=C){return A}}return 0};r.toUpper=function(x){return x.split("\u00A0").join(" ").toUpperCase()};r.toUpperArray=function(x){var A=[];for(var z=0,y=x.length;z=0){A=ad.substring(ad.indexOf(":")-2);A=r.trim(A);R=ad.substring(0,ad.indexOf(":")-2)}else{if(ad.toUpperCase().indexOf("AM")>=0){A=ad.substring(ad.toUpperCase().indexOf("AM")-2);A=r.trim(A);R=ad.substring(0,ad.toUpperCase().indexOf("AM")-2)}else{if(ad.toUpperCase().indexOf("PM")>=0){A=ad.substring(ad.toUpperCase().indexOf("PM")-2);A=r.trim(A);R=ad.substring(0,ad.toUpperCase().indexOf("PM")-2)}}}var x=new Date();var ac=false;if(R){for(var ak=0;ak=0){D=R.split(af[ak]);break}}var z=new Array();var P=new Array();var Y=new Array();var K=null;var aq=null;for(var ak=0;ak2){K=ak;break}}}for(var ak=0;ak2){aq=ak;break}}}for(var ak=0;ak0){x=ah[0];ac=true}}if(A){var aa=A.indexOf(":")>=0?A.split(":"):A;var C=r.parseDate(A,"h:mm tt",ae)||r.parseDate(A,"HH:mm:ss.fff",ae)||r.parseDate(A,"HH:mm:ss.ff",ae)||r.parseDate(A,"h:mm:ss tt",ae)||r.parseDate(A,"HH:mm:ss.tttt",ae)||r.parseDate(A,"HH:mm:ss",ae)||r.parseDate(A,"HH:mm",ae)||r.parseDate(A,"HH",ae);var Q=0,B=0,T=0,V=0;if(C&&C.getTime()!=NaN){Q=C.getHours();B=C.getMinutes();T=C.getSeconds();V=C.getMilliseconds()}else{if(aa.length==1){Q=parseInt(aa[0])}if(aa.length==2){Q=parseInt(aa[0]);B=parseInt(aa[1])}if(aa.length==3){Q=parseInt(aa[0]);B=parseInt(aa[1]);if(aa[2].indexOf(".")>=0){T=parseInt(aa[2].toString().split(".")[0]);V=parseInt(aa[2].toString().split(".")[1])}else{T=parseInt(aa[2])}}if(aa.length==4){Q=parseInt(aa[0]);B=parseInt(aa[1]);T=parseInt(aa[2]);V=parseInt(aa[3])}}if(x&&!isNaN(Q)&&!isNaN(B)&&!isNaN(T)&&!isNaN(V)){x.setHours(Q,B,T,V);ac=true}}if(ac){return x}}if(ad!=null){var W=null;var D=[":","/","-"];var ai=true;for(var H=0;Hy};r.expandYear=function(C,A){var y=new Date(),x=r.getEra(y);if(A<100){var z=C.twoDigitYearMax;z=typeof z==="string"?new Date().getFullYear()%100+parseInt(z,10):z;var B=r.getEraYear(y,C,x);A+=B-(B%100);if(A>z){A-=100}}return A};r.parseDate=function(S,Z,N){if(N==undefined||N==null){N=r.calendar}S=r.trim(S);var K=N,ae=r.getParseRegExp(K,Z),E=new RegExp(ae.regExp).exec(S);if(E===null){return null}var aa=ae.groups,Q=null,I=null,ad=null,ac=null,J=null,C=0,V,U=0,ab=0,x=0,z=null,L=false;for(var W=0,Y=aa.length;W1&&Z.length=r.maxMillis){throw new Error("Out of Range")}if(y===false){r.dateData=(z+A);return r}var x=new f.jqx.date(z+A);x.timeZone=r.timeZone;return x};r.addDays=function(y,x){return r.add(y,r.millisPerDay,x)};r.clone=function(){var x=new f.jqx.date(r.dateData);x.timeZone=r.timeZone;return x};r.clearTime=function(){var A=r.month();var z=r.year();var y=r.day();var x=new f.jqx.date(z,A,y,0,0,0,0);x.timeZone=r.timeZone;return x};r.addHours=function(y,x){return r.add(y,r.millisPerHour,x)};r.addMilliseconds=function(y,x){return r.add(y,1,x)};r.addMinutes=function(y,x){return r.add(y,r.millisPerMinute,x)};r.addMonths=function(z,B){if(z<-120000||z>120000){throw new Error("Invalid Months Value")}var F=parseInt(r.getDatePart(r.datePartYear));var x=parseInt(r.getDatePart(r.datePartMonth));var D=parseInt(r.getDatePart(r.datePartDay));var C=x-1+z;if(C>=0){x=C%12+1;F=F+C/12}else{x=12+(C+1)%12;F=F+(C-11)/12}F=parseInt(F);if(F<1||F>9999){throw new Error("Year out of range")}var E=r.daysInMonth(F,x);if(D>E){D=E}if(B===false){r.dateData=(r.dateToMS(F,x,D)+r.internalMS()%r.millisPerDay);return r}var A=new f.jqx.date((r.dateToMS(F,x,D)+r.internalMS()%r.millisPerDay));A.timeZone=r.timeZone;return A};r.addSeconds=function(y,x){return r.add(y,r.millisPerSecond,x)};r.addYears=function(y,x){return r.addMonths(y*12,x)};r.getTimeZoneOffset=function(){var y=new Date();var x=new Date(y.getFullYear(),0,1);var z=new Date(y.getFullYear(),6,1);var A=y.getTimezoneOffset()2){if(f.type(arguments[0])==="string"){var o=r.tryparseDate(arguments[0],arguments[2],arguments[1]);r.dateData=r.dateToMS(o.getFullYear(),o.getMonth()+1,o.getDate())+r.timeToMS(o.getHours(),o.getMinutes(),o.getSeconds(),o.getMilliseconds())}else{var t=arguments[0];var s=arguments[1];var u=arguments[2];var q=arguments[3];var p=arguments[4];var n=arguments[5];var w=arguments[6];if(q===undefined){q=0}if(p===undefined){p=0}if(n===undefined){n=0}if(w===undefined){w=0}s--;var o=new Date(t,s,u,q,p,n,w);if(t<1970){o.setFullYear(t)}r.dateData=r.dateToMS(o.getFullYear(),o.getMonth()+1,o.getDate())+r.timeToMS(o.getHours(),o.getMinutes(),o.getSeconds(),o.getMilliseconds())}}}}}return r}})(jqxBaseFramework);if(!Array.prototype.filter){Array.prototype.filter=function(b){if(this===void 0||this===null){throw new TypeError()}var f=Object(this);var a=f.length>>>0;if(typeof b!=="function"){throw new TypeError()}var e=[];var d=arguments[1];for(var c=0;c=0){e.value=e.value.replace(/\,/g,"/");var d=new Date(e.value);if(d!=undefined&&!isNaN(d)){e.value=a.jqx._jqxDateTimeInput.getDateTime(d)}}}}}this._initTimeRange();this._validateTimeRange();e.host.attr("data-role","input");e.render();a.jqx.aria(this);if(e.getDate()!=null){a.jqx.aria(this,"aria-label","Current focused date is "+e.getDate().toLocaleString())}else{a.jqx.aria(this,"aria-label","Current focused date is Null")}if(e.minDate!==e.defaultMinDate){e.min=e.minDate}if(e.maxDate!==e.defaultMaxDate){e.max=e.maxDate}e.setMaxDate(e.max,false);e.setMinDate(e.min,false);if(e.selectionMode=="range"){if(b){var c=e.host.attr("value");var g=c.substring(0,c.indexOf("-"));var f=c.substring(c.indexOf("-")+1);var k=new Date(g);var j=new Date(f);if(k!=undefined&&!isNaN(k)){if(j!=undefined&&!isNaN(j)){e.setRange(k,j)}}}else{if(e.getDate()!=null){e.setRange(e.getDate(),e.getDate())}}}},_validateTimeRange:function(){if(this.timeRange){var b=this.value.dateTime.getHours();var c=this.value.dateTime.getMinutes();if(b<=this.timeRange.minHour){this.value._setHours(this.timeRange.minHour);if(c=this.timeRange.maxHour){this.value._setHours(this.timeRange.maxHour);if(c>this.timeRange.maxMinute){this.value._setMinutes(this.timeRange.maxMinute);this._updateEditorsValue()}else{this._updateEditorsValue()}}}},_initTimeRange:function(){if(this.timeRange){if(this.timeRange.min){var c=null;if(this.timeRange.min.indexOf("AM")>=0||this.timeRange.min.indexOf("PM")>=0){c=this.timeRange.min.indexOf("AM")>=0?"AM":"PM"}var d=this.timeRange.min.split(":");var b=parseInt(d[0]);var f=parseInt(d[1]);if(c){this.timeRange.minDefaultHour=b;this.timeRange.minMeridian=c}if(c&&c=="PM"){b+=12}this.timeRange.minHour=b;this.timeRange.minMinute=f}if(this.timeRange.max){var c=null;if(this.timeRange.max.indexOf("AM")>=0||this.timeRange.max.indexOf("PM")>=0){c=this.timeRange.max.indexOf("AM")>=0?"AM":"PM"}var e=this.timeRange.max.split(":");var b=parseInt(e[0]);var f=parseInt(e[1]);if(c){this.timeRange.maxDefaultHour=b;this.timeRange.maxMeridian=c}if(c&&c=="PM"){b+=12}this.timeRange.maxHour=b;this.timeRange.maxMinute=f}}},_format:function(d,e,b){var f=false;try{if(Globalize!=undefined){f=true}}catch(c){}if(a.global){return a.global.format(d,e,this.culture)}else{if(f){try{var e=Globalize.format(d,e,this.culture);return e}catch(c){return Globalize.format(d,e)}}else{if(a.jqx.dataFormat){if(d instanceof Date){return a.jqx.dataFormat.formatdate(d,e,this.localization.calendar)}else{if(typeof d==="number"){return a.jqx.dataFormat.formatnumber(d,e,this.localization.calendar)}else{return a.jqx.dataFormat.formatdate(d,e,this.localization.calendar)}}}else{throw new Error("jqxDateTimeInput: Missing reference to globalize.js.")}}}},render:function(){var l=this;l._removeHandlers();l.element.innerHTML="";l.host.attr({role:"textbox"});l.id=a.jqx.utilities.createId();var f=a.jqx.utilities.createId();var k=a.jqx.utilities.createId();l._setSize();if(l.width==null){l.width=l.host.width();l.host.width(l.width)}l.touch=a.jqx.mobile.isTouchDevice();var c=a("
              ").appendTo(l.host);l.dateTimeInput=a("").appendTo(c);l.dateTimeInput.addClass(l.toThemeProperty("jqx-reset"));l.dateTimeInput.addClass(l.toThemeProperty("jqx-clear"));l.dateTimeInput.addClass(l.toThemeProperty("jqx-input-content"));l.dateTimeInput.addClass(l.toThemeProperty("jqx-widget-content"));l.dateTimeInput.addClass(l.toThemeProperty("jqx-rc-all"));l.dateTimeInput.attr("placeHolder",l.placeHolder);if(l.renderMode!="full"){l.dateTimeInput.remove()}var d=l.host.attr("name");if(d){l.dateTimeInput.attr("name",d)}if(l.host.attr("tabindex")){l.dateTimeInput.attr("tabindex",l.host.attr("tabindex"));l.host.removeAttr("tabindex")}if(l.rtl){l.dateTimeInput.css("direction","rtl");l.dateTimeInput.addClass("jqx-rtl")}l.calendarButton=a("
              ").appendTo(c);if(!l.rtl){l.calendarButton.addClass(l.toThemeProperty("jqx-action-button"))}else{l.calendarButton.addClass(l.toThemeProperty("jqx-action-button-rtl"))}l.calendarButtonIcon=a(l.calendarButton.children()[0]);l.calendarButtonIcon.addClass(l.toThemeProperty("jqx-icon"));l.calendarButtonIcon.addClass(l.toThemeProperty("jqx-icon-calendar"));l.calendarButton.addClass(l.toThemeProperty("jqx-fill-state-normal"));if(!l.rtl){l.calendarButton.addClass(l.toThemeProperty("jqx-rc-r"))}else{l.calendarButton.addClass(l.toThemeProperty("jqx-rc-l"))}l.timeButton=a("
              ").appendTo(c);if(!l.rtl){l.timeButton.addClass(l.toThemeProperty("jqx-action-button"))}else{l.timeButton.addClass(l.toThemeProperty("jqx-action-button-rtl"))}l.timeButtonIcon=a(l.timeButton.children()[0]);l.timeButtonIcon.addClass(l.toThemeProperty("jqx-icon"));l.timeButtonIcon.addClass(l.toThemeProperty("jqx-icon-time"));l.timeButton.addClass(l.toThemeProperty("jqx-fill-state-normal"));if(!l.rtl){l.timeButton.addClass(l.toThemeProperty("jqx-rc-r"))}else{l.timeButton.addClass(l.toThemeProperty("jqx-rc-l"))}var n=this;l._arrange();if(a.jqx._jqxCalendar!=null&&a.jqx._jqxCalendar!=undefined){try{var j="calendar"+l.id;var h=a(a.find("#"+j));if(h.length>0){h.remove()}a.jqx.aria(this,"aria-owns",j);a.jqx.aria(this,"aria-haspopup",true);a.jqx.aria(this,"aria-readonly",l.selectionMode=="range"?true:false);var b=a("
              ");if(a.jqx.utilities.getBrowser().browser=="opera"){b.hide()}b.appendTo(document.body);l.container=b;l.calendarContainer=a(a.find("#innerCalendar"+l.id)).jqxCalendar({restrictedDates:this.restrictedDates,changing:l.changing,change:l.change,enableViews:l.enableViews,selectableDays:l.selectableDays,views:l.views,rowHeaderWidth:l.rowHeaderWidth,titleHeight:l.titleHeight,columnHeaderHeight:l.columnHeaderHeight,_checkForHiddenParent:false,enableAutoNavigation:false,canRender:false,localization:l.localization,todayString:l.todayString,clearString:l.clearString,dayNameFormat:l.dayNameFormat,rtl:l.rtl,culture:l.culture,showFooter:l.showFooter,selectionMode:l.selectionMode,firstDayOfWeek:l.firstDayOfWeek,showWeekNumbers:l.showWeekNumbers,width:l.dropDownWidth,height:l.dropDownHeight,theme:l.theme});l.calendarContainer.css({position:"absolute",zIndex:l.popupZIndex,top:0,left:0});l.calendarContainer.addClass(l.toThemeProperty("jqx-popup"));if(a.jqx.browser.msie){l.calendarContainer.addClass(l.toThemeProperty("jqx-noshadow"))}l.timeContainer=a(a.find("#innerTime"+l.id));l.timeContainer.css({position:"absolute",zIndex:l.popupZIndex,top:0,left:0});l.timeContainer.addClass(l.toThemeProperty("jqx-popup"));if(a.jqx.browser.msie){l.timeContainer.addClass(l.toThemeProperty("jqx-noshadow"))}l._calendar=a.data(l.calendarContainer[0],"jqxCalendar").instance;var n=this;l._calendar.today=function(){n.today()};l._calendar.clear=function(){n.clear()};if(a.jqx.utilities.getBrowser().browser=="opera"){b.show()}b.height(parseInt(l.calendarContainer.height())+25);b.width(parseInt(l.calendarContainer.width())+25);if(l.selectionMode=="range"){l.readonly=true}if(l.animationType=="none"){l.container.css("display","none")}else{l.container.hide()}}catch(m){}}if(a.global){a.global.preferCulture(l.culture)}l.selectedText="";l._addHandlers();l.self=this;l.oldValue=l.getDate();l.items=new Array();l.editors=new Array();l._loadItems();l.editorText="";if(l.readonly==true){l.dateTimeInput.css("readonly",l.readonly)}l.dateTimeInput.css("text-align",l.textAlign);l.host.addClass(l.toThemeProperty("jqx-widget"));l.host.addClass(l.toThemeProperty("jqx-datetimeinput"));l.host.addClass(l.toThemeProperty("jqx-input"));l.host.addClass(l.toThemeProperty("jqx-overflow-hidden"));l.host.addClass(l.toThemeProperty("jqx-rc-all"));l.host.addClass(l.toThemeProperty("jqx-reset"));l.host.addClass(l.toThemeProperty("jqx-clear"));l.host.addClass(l.toThemeProperty("jqx-widget-content"));l.propertyChangeMap.disabled=function(e,q,p,r){if(r){e.host.addClass(n.toThemeProperty("jqx-input-disabled"));e.host.addClass(n.toThemeProperty("jqx-fill-state-disabled"))}else{e.host.removeClass(n.toThemeProperty("jqx-fill-state-disabled"));e.host.removeClass(n.toThemeProperty("jqx-input-disabled"))}a.jqx.aria(this,"aria-disabled",r)};if(l.disabled){l.host.addClass(l.toThemeProperty("jqx-input-disabled"));l.host.addClass(l.toThemeProperty("jqx-fill-state-disabled"));l.dateTimeInput.attr("disabled",true)}if(l.host.parents("form").length>0){l.addHandler(l.host.parents("form"),"reset",function(){setTimeout(function(){n.setDate(new Date())},10)})}if(l.cookies){var g=a.jqx.cookie.cookie("jqxDateTimeInput"+l.element.id);if(g!=null){l.setDate(new Date(g))}}if(a.jqx.browser.msie&&a.jqx.browser.version<8){if(l.host.parents(".jqx-window").length>0){var o=l.host.parents(".jqx-window").css("z-index");l.container.css("z-index",o+10);l.calendarContainer.css("z-index",o+10)}}if(l.culture!="default"){l._applyCulture()}if(l.value){if(l.calendarContainer.jqxCalendar("_isDisabled",l.value.dateTime)){l.dateTimeInput.addClass(l.toThemeProperty("jqx-input-invalid"))}else{l.dateTimeInput.removeClass(l.toThemeProperty("jqx-input-invalid"))}}},val:function(c){var b=this;if(arguments.length!=0){if(c==null){b.setDate(null)}if(b.selectionMode=="range"){b.setRange(arguments[0],arguments[1]);return b.getText()}if(c instanceof Date){b.setDate(c)}if(typeof(c)=="string"){if(c=="date"){return b.getDate()}b.setDate(c)}if(b._calendar.getDate()!=b.getDate()){b._calendar.setDate(b.getDate())}}return b.getText()},_setSize:function(){if(this.width!=null&&this.width.toString().indexOf("px")!=-1){this.host.width(this.width)}else{if(this.width!=undefined&&!isNaN(this.width)){this.host.width(this.width)}}if(this.height!=null&&this.height.toString().indexOf("px")!=-1){this.host.height(this.height)}else{if(this.height!=undefined&&!isNaN(this.height)){this.host.height(this.height)}}var e=false;if(this.width!=null&&this.width.toString().indexOf("%")!=-1){e=true;this.host.width(this.width)}if(this.height!=null&&this.height.toString().indexOf("%")!=-1){e=true;this.host.height(this.height)}var c=this;var d=function(){if(c.calendarContainer){c._arrange()}};if(e){if(this.calendarContainer){this._arrange();var b=this.host.width();if(this.dropDownWidth!="auto"){b=this.dropDownWidth}this.calendarContainer.jqxCalendar({width:b});this.container.width(parseInt(b)+25)}}a.jqx.utilities.resize(this.host,function(){d()})},_arrange:function(){if(this.height==null){this.height=27;this.host.height(27)}var d=parseInt(this.host.width());var b=parseInt(this.host.height());var h=this.buttonSize;var g=2;if(!this.showCalendarButton&&!this.showTimeButton){h=0;buttonHeight=0;this.calendarButton.hide();g=0}if(!this.showCalendarButton){this.calendarButton.hide()}else{this.calendarButton.show()}if(!this.showTimeButton){this.timeButton.hide()}else{this.timeButton.show()}var c=d-h-1*g;if(this.showTimeButton&&this.showCalendarButton){var c=d-2*h-1*g}else{if(this.showTimeButton||this.showCalendarButton){var c=d-h-1*g}}if(c>0){this.dateTimeInput[0].style.width=c+"px"}if(this.rtl){this.dateTimeInput[0].style.width=(-1+c+"px")}this.dateTimeInput[0].style.left="0px";this.dateTimeInput[0].style.top="0px";this.calendarButton[0].style.width=h+1+"px";this.calendarButton[0].style.left=1+c+"px";this.timeButton[0].style.width=h+1+"px";if(this.showCalendarButton){this.timeButton[0].style.left=1+this.calendarButton.width()+c+"px"}else{this.timeButton[0].style.left=1+c+"px"}if(this.renderMode!="full"){this.calendarButton[0].style.width="100%";this.calendarButton[0].style.left="0px";this.calendarButton.css("border","none");this.timeButton[0].style.width="100%";this.timeButton[0].style.left="0px";this.timeButton.css("border","none")}var e=this.dateTimeInput.height();if(e==0){e=parseInt(this.dateTimeInput.css("font-size"))+3;this.calendarButton.addClass(this.toThemeProperty("jqx-rc-all"));this.timeButton.addClass(this.toThemeProperty("jqx-rc-all"))}if(this.dateTimeInput[0].className.indexOf("jqx-rc-all")==-1){this.dateTimeInput.addClass(this.toThemeProperty("jqx-rc-all"))}var f=parseInt(b)/2-parseInt(e)/2;if(f>0){this.dateTimeInput[0].style.marginTop=parseInt(f)+"px"}if(this.rtl){this.calendarButton[0].style.width=h+"px";this.timeButton[0].style.width=h+"px";this.calendarButton.css("left","0px");if(this.showCalendarButton){this.timeButton.css("left",h+"px")}else{this.timeButton.css("left","0px")}this.dateTimeInput.css("left",this.calendarButton.width());if(this.showTimeButton&&this.showCalendarButton){this.dateTimeInput.css("left",this.timeButton.width()+this.calendarButton.width())}if(a.jqx.browser.msie&&a.jqx.browser.version<=8){this.dateTimeInput.css("left",1+this.calendarButton.width());if(this.showTimeButton&&this.showCalendarButton){this.dateTimeInput.css("left",1+this.timeButton.width()+this.calendarButton.width())}}}},_removeHandlers:function(){var b=this;this.removeHandler(a(document),"mousedown."+this.id);if(this.dateTimeInput){this.removeHandler(this.dateTimeInput,"keydown."+this.id);this.removeHandler(this.dateTimeInput,"blur");this.removeHandler(this.dateTimeInput,"focus");this.removeHandler(this.host,"focus");this.removeHandler(this.dateTimeInput,"mousedown");this.removeHandler(this.dateTimeInput,"mouseup");this.removeHandler(this.dateTimeInput,"keydown");this.removeHandler(this.dateTimeInput,"keyup");this.removeHandler(this.dateTimeInput,"keypress")}if(this.calendarButton!=null){this.removeHandler(this.calendarButton,"mousedown")}if(this.timeButton!=null){this.removeHandler(this.timeButton,"mousedown")}if(this.calendarContainer!=null){this.removeHandler(this.calendarContainer,"cellSelected");this.removeHandler(this.calendarContainer,"cellMouseDown")}this.removeHandler(a(window),"resize."+this.id)},isOpened:function(){var c=this;var b=a.data(document.body,"openedJQXCalendar"+this.id);if(b!=null&&b==c.calendarContainer){return true}return false},wheel:function(d,c){c.changeType="mouse";var e=0;if(!d){d=window.event}if(d.originalEvent&&d.originalEvent.wheelDelta){d.wheelDelta=d.originalEvent.wheelDelta}if(d.wheelDelta){e=d.wheelDelta/120}else{if(d.detail){e=-d.detail/3}}if(e){var b=c._handleDelta(e);if(!b){if(d.preventDefault){d.preventDefault()}d.returnValue=false;return b}else{return false}}if(d.preventDefault){d.preventDefault()}d.returnValue=false},_handleDelta:function(b){if(b<0){this.spinDown()}else{this.spinUp()}return false},focus:function(){try{var c=this;this._setSelectionStart(0);this._selectGroup(-1);this.dateTimeInput.focus();setTimeout(function(){c._setSelectionStart(0);c._selectGroup(-1);c.dateTimeInput.focus()},25)}catch(b){}},_addHandlers:function(){var e=this.element.id;var c=this.element;var d=this;if(this.host.parents()){this.addHandler(this.host.parents(),"scroll.datetimeinput"+this.element.id,function(f){var g=d.isOpened();if(g){d.close()}})}this.addHandler(this.host,"mouseenter",function(){if(!d.disabled&&d.enableHover){hovered=true;d.calendarButtonIcon.addClass(d.toThemeProperty("jqx-icon-calendar-hover"));d.calendarButton.addClass(d.toThemeProperty("jqx-fill-state-hover"))}});this.addHandler(this.host,"mouseleave",function(){if(!d.disabled&&d.enableHover){d.calendarButtonIcon.removeClass(d.toThemeProperty("jqx-icon-calendar-hover"));d.calendarButton.removeClass(d.toThemeProperty("jqx-fill-state-hover"))}});this.addHandler(this.host,"mousewheel",function(f){d.wheel(f,d)});this.addHandler(a(document),"mousedown."+this.id,this._closeOpenedCalendar,{me:this});if(a.jqx.mobile.isTouchDevice()){this.addHandler(a(document),a.jqx.mobile.getTouchEventName("touchstart")+"."+this.id,this._closeOpenedCalendar,{me:this})}this.addHandler(this.dateTimeInput,"keydown."+this.id,function(h){var g=a.data(document.body,"openedJQXCalendar"+d.id);if(g!=null&&g==d.calendarContainer){var f=d.handleCalendarKey(h,d);return f}});if(this.calendarContainer!=null){this.addHandler(this.calendarContainer,"keydown",function(f){if(f.keyCode==13){if(d.isOpened()){if(!d._calendar._viewAnimating&&d._calendar.view=="month"){d.hideCalendar("selected","keyboard");d.dateTimeInput.focus();return false}}return true}else{if(f.keyCode==9){if(d.isOpened()){d.hideCalendar("selected","keyboard");return true}}else{if(f.keyCode==27){if(d.isOpened()){d.hideCalendar(null,"keyboard");d.dateTimeInput.focus();return false}return true}}}d.timePopup=false;if(f.keyCode==84){d.timePopup=true}if(f.keyCode==115){if(d.isOpened()){d.hideCalendar("keyboard","keyboard");d.dateTimeInput.focus();return false}else{if(!d.isOpened()){d.showCalendar("keyboard","keyboard");d.dateTimeInput.focus();return false}}}if(f.altKey){if(f.keyCode==38){if(d.isOpened()){d.hideCalendar("keyboard","keyboard");d.dateTimeInput.focus();return false}}else{if(f.keyCode==40){if(!d.isOpened()){d.showCalendar("keyboard","keyboard");d.dateTimeInput.focus();return false}}}}});this.addHandler(this.calendarContainer,"cellSelected",function(g){if(d.closeCalendarAfterSelection){var f=a.data(document.body,"openedJQXCalendarValue");if(g.args.selectionType=="mouse"){if(d.selectionMode!="range"){d.hideCalendar("selected","mouse")}else{if(d._calendar._clicks==0){d.hideCalendar("selected","mouse")}}}}});this.addHandler(this.calendarContainer,"cellMouseDown",function(f){if(d.closeCalendarAfterSelection){if(d._calendar.value){a.data(document.body,"openedJQXCalendarValue",new a.jqx._jqxDateTimeInput.getDateTime(d._calendar.value.dateTime))}}})}this.addHandler(this.dateTimeInput,"blur",function(h){if(d.value!=null){d.isEditing=false;var g=d.value.dateTime.getDay();var f=d._oldDT;d._validateValue(true);if(h.stopPropagation){h.stopPropagation()}d._updateText();d._raiseEvent(9,h)}d.host.removeClass(d.toThemeProperty("jqx-fill-state-focus"))});this.addHandler(this.host,"focus",function(f){d.focus()});this.addHandler(this.dateTimeInput,"focus",function(g){if(d.value!=null){if(d.selectionMode!="range"){d._oldDT=new Date(d.value.dateTime)}else{d._oldDT=d.getRange()}var f=d._selection();d.isEditing=true;d._validateValue();d._updateText();d._setSelectionStart(0);d._selectGroup(-1,f);d.host.addClass(d.toThemeProperty("jqx-fill-state-focus"))}else{d._setSelectionStart(0);d._selectGroup(-1);d.host.addClass(d.toThemeProperty("jqx-fill-state-focus"))}if(g.stopPropagation){g.stopPropagation()}if(g.preventDefault){g.preventDefault();return false}});var b="mousedown";if(this.touch){b=a.jqx.mobile.getTouchEventName("touchstart")}this.addHandler(this.calendarButton,b,function(g){var h=d.container;var f=h.css("display")=="block";d.timePopup=false;d.calendarPopup=true;if(!d.disabled){if(!d.isanimating){if(f){d.hideCalendar();return false}else{d.showCalendar("mouse");g.preventDefault()}}}});this.addHandler(this.timeButton,b,function(g){var h=d.container;var f=h.css("display")=="block";d.timePopup=true;d.calendarPopup=false;if(!d.disabled){if(!d.isanimating){if(f){d.hideCalendar("mouse","mouse");return false}else{d.showCalendar("mouse");g.preventDefault()}}}});this.addHandler(this.dateTimeInput,"mousedown",function(f){return d._raiseEvent(2,f)});this.addHandler(this.dateTimeInput,"mouseup",function(f){return d._raiseEvent(3,f)});this.addHandler(this.dateTimeInput,"keydown",function(f){return d._raiseEvent(4,f)});this.addHandler(this.dateTimeInput,"keyup",function(f){return d._raiseEvent(5,f)});this.addHandler(this.dateTimeInput,"keypress",function(f){return d._raiseEvent(6,f)})},createID:function(){var b=Math.random()+"";b=b.replace(".","");b="99"+b;b=b/1;return"dateTimeInput"+b},setMaxDate:function(b,c){if(b==null){return}if(b!=null&&typeof(b)=="string"){b=new Date(b);if(b=="Invalid Date"){return}}this.maxDate=a.jqx._jqxDateTimeInput.getDateTime(b);if(this._calendar!=null){this._calendar.setMaxDate(b)}if(c!=false){if(this.getDate()!=null&&this.getDate()>b){this.setDate(b)}a.jqx.aria(this,"aria-valuemax",b);this._refreshValue();this._updateText()}},getMaxDate:function(){if(this.maxDate!=null&&this.maxDate!=undefined){return this.maxDate.dateTime}return null},setMinDate:function(b,c){if(b==null){return}if(b!=null&&typeof(b)=="string"){b=new Date(b);if(b=="Invalid Date"){return}}this.minDate=a.jqx._jqxDateTimeInput.getDateTime(b);if(this._calendar!=null){this._calendar.setMinDate(b)}if(c!=false){if(this.getDate()!=null&&this.getDate()=0){d=d.replace(/\,/g,"/");d=new Date(d);if(d=="Invalid Date"){d=f}}if(d.toString().indexOf("-")>=0){d=d.replace(/\-/g,"/");d=new Date(d);if(d=="Invalid Date"){d=f}}if(d!=""){var c=d;if(Globalize!=undefined){d=Globalize.parseDate(c,this.formatString,this.culture)}else{if(a.jqx.dataFormat){d=a.jqx.dataFormat.parsedate(c,this.formatString,this.localization.calendar)}else{d=new Date(d)}}if(d=="Invalid Date"){return}if(d===null&&c!==null){if(c!="Invalid Date"){d=c}}}}if(d==null||d=="null"||d=="undefined"){if(!this.allowNullDate){d=this.min}}if(d=="Invalid Date"){d=null}if(d==null||d=="null"||d=="undefined"||d===""){if(this.value!=null){this.value=null;this._calendar.setDate(null);this._refreshValue();if(this.cookies){if(this.value!=null){a.jqx.cookie.cookie("jqxDateTimeInput"+this.element.id,this.value.dateTime.toString(),this.cookieoptions)}}this._setSelectionStart(0);this._selectGroup(-1);this._raiseEvent("0",d,e);this._raiseEvent("9",d,e)}return}if(dthis.getMaxDate()){return}if(this.value==null){this.value=new a.jqx._jqxDateTimeInput.getDateTime(new Date());this.value._setHours(0);this.value._setMinutes(0);this.value._setSeconds(0);this.value._setMilliseconds(0)}if(d.getFullYear){this.value._setYear(d.getFullYear());this.value._setDay(1);this.value._setMonth(d.getMonth()+1);this.value._setHours(d.getHours());this.value._setMinutes(d.getMinutes());this.value._setSeconds(d.getSeconds());this.value._setMilliseconds(d.getMilliseconds());this.value._setDay(d.getDate())}this._validateTimeRange();this._refreshValue();if(this.cookies){if(this.value!=null){a.jqx.cookie.cookie("jqxDateTimeInput"+this.element.id,this.value.dateTime.toString(),this.cookieoptions)}}var b=this.getDate();var g=(b-e);if(g!=0){this._raiseEvent("0",d,e);this._raiseEvent("9",d,e);return true}},getDate:function(){if(this.value==undefined){return null}return new Date(this.value.dateTime)},getText:function(){return this.dateTimeInput.val()},setRange:function(d,c){if(d=="Invalid Date"){d=null}if(c=="Invalid Date"){c=null}if(d!=null&&typeof(d)=="string"){d=new Date(d);if(d=="Invalid Date"){return}}if(c!=null&&typeof(c)=="string"){c=new Date(c);if(c=="Invalid Date"){return}}if(d&&isNaN(d)&&d.toString()=="NaN"&&typeof(d)!="string"){return}if(c&&isNaN(c)&&c.toString()=="NaN"&&typeof(c)!="string"){return}this._calendar.setRange(d,c);if(c&&d&&(c.valueOf()!=d.valueOf())){this._range={from:d,to:c}}else{this._range=this._calendar.getRange()}var b=d;if(b!=null&&b.getFullYear){if(this.value==null){this.value=new a.jqx._jqxDateTimeInput.getDateTime(new Date());this.value._setHours(0);this.value._setMinutes(0);this.value._setSeconds(0);this.value._setMilliseconds(0)}this.value._setYear(b.getFullYear());this.value._setMonth(b.getMonth()+1);this.value._setHours(b.getHours());this.value._setMinutes(b.getMinutes());this.value._setSeconds(b.getSeconds());this.value._setMilliseconds(b.getMilliseconds());this.value._setDay(b.getDate())}this._refreshValue();if(this.value){this._raiseEvent("0",this.value.dateTime)}else{this._raiseEvent("0",null)}},getRange:function(){var b=this._calendar.getRange();if(this._range){var d=this._range.from;var c=this._range.to;if(c&&d&&(c.valueOf()!=d.valueOf())){if(b.from){b.from.setHours(d.getHours(),d.getMinutes(),d.getSeconds(),d.getMilliseconds())}if(b.to){b.to.setHours(c.getHours(),c.getMinutes(),c.getSeconds(),c.getMilliseconds())}}}return b},_validateValue:function(e){var b=false;for(var d=0;d1){c=1}}break;case"Character":break;case"Day":if(c<1){c=1}else{if(c>31){c=31}}break;case"FORMAT_hh":if(c<1){c=1}else{if(c>12){c=12}}break;case"FORMAT_HH":if(c<0){c=0}else{if(c>23){c=23}}break;case"Millisecond":if(c<0){c=0}else{if(c>999){c=999}}break;case"Minute":if(c<0){c=0}else{if(c>59){c=59}}break;case"Month":if(c<1){c=1}else{if(c>12){c=12}}break;case"ReadOnly":break;case"Second":if(c<0){c=0}else{if(c>59){c=59}}break;case"Year":if(cthis.maxDate.year){c=this.maxDate.year}}break}if(this.editors[d].value!=c){this.editors[d].value=c;b=true}}this.updateValue(e);if(this.value!=null&&e===true){if(this.value.dateTime>this.maxDate.dateTime){this._internalSetValue(this.maxDate);this._updateEditorsValue()}else{if(this.value.dateTime=0){this._selectGroup(e)}},spinDown:function(){var d=this.value;if(d==null){return}if(this.activeEditor!=null){var b=this.editors.indexOf(this.activeEditor);if(b==-1){return}if(this.items[b].type=="Day"){if(this.value!=null){this.activeEditor.maxValue=this.value._daysInMonth(this.value.year,this.value.month)}}var c=this.activeEditor.positions;this.activeEditor.decreaseValue(this.enableAbsoluteSelection);this.activeEditor.positions=c}if(this.isEditing){this.isEditing=false}this.updateValue();this.isEditing=true;this._updateText();var e=this.editors.indexOf(this.activeEditor);if(e>=0){this._selectGroup(e)}},_passKeyToCalendar:function(c){if(c.keyCode==13||c.keyCode==9){this.hideCalendar("selected","keyboard");return true}else{if(c.keyCode==27){var e=this.calendarContainer;var d=this._calendar;var f=this.closeCalendarAfterSelection;this.closeCalendarAfterSelection=false;d.setDate(this.value.dateTime);this.closeCalendarAfterSelection=f;this.hideCalendar()}}var f=this.closeCalendarAfterSelection;this.closeCalendarAfterSelection=false;var b=this._calendar._handleKey(c);this.closeCalendarAfterSelection=f;return b},handleCalendarKey:function(f,e){var c=a(f.target);var d=a.data(document.body,"openedJQXCalendar"+this.id);if(d!=null){if(d.length>0){var b=e._passKeyToCalendar(f);return b}}return true},_findPos:function(c){if(c==null){return}while(c&&(c.type=="hidden"||c.nodeType!=1||a.expr.filters.hidden(c))){c=c.nextSibling}var b=a(c).coord(true);return[b.left,b.top]},testOffset:function(h,f,c){var g=h.outerWidth();var k=h.outerHeight();var j=a(window).width()+a(window).scrollLeft();var e=a(window).height()+a(window).scrollTop();if(f.left+g>j){if(g>this.host.width()){var d=this.host.coord().left;var b=g-this.host.width();f.left=d-b+2}}if(f.left<0){f.left=parseInt(this.host.coord().left)+"px"}f.top-=Math.min(f.top,(f.top+k>e&&e>k)?Math.abs(k+c+23):0);return f},open:function(b){if(b=="time"){this.timePopup=true}else{this.timePopup=false}this.showCalendar()},close:function(b){this.hideCalendar()},_getBodyOffset:function(){var c=0;var b=0;if(a("body").css("border-top-width")!="0px"){c=parseInt(a("body").css("border-top-width"));if(isNaN(c)){c=0}}if(a("body").css("border-left-width")!="0px"){b=parseInt(a("body").css("border-left-width"));if(isNaN(b)){b=0}}return{left:b,top:c}},initTimePopup:function(){this.timePopupElement=a("
              ").appendTo(this.timeContainer);this.timePopupElement.addClass(this.toThemeProperty("jqx-widget-content jqx-widget jqx-date-time-input-popup"));var t="";t+="
               
               
               
               
              ::: 
               
              ";var m=this._getFormatValue(this.formatString);if(this.selectionMode!="range"){this.timePopupElement[0].innerHTML=t}else{this.timePopupElement[0].innerHTML="
              "+t+"-"+t+"
              "}this.timePopupElement.find(".jqx-icon-down").addClass(this.toThemeProperty("jqx-icon jqx-icon-arrow-down"));this.timePopupElement.find(".jqx-icon-up").addClass(this.toThemeProperty("jqx-icon jqx-icon-arrow-up"));var g=this.timePopupElement.find("input");g.addClass(this.toThemeProperty("jqx-input"));g.addClass(this.toThemeProperty("jqx-rc-all"));this.addHandler(g,"mousedown",function(v){v.stopPropagation()});var e=function(v){if(v.target.className.indexOf("hour")>=0){n._decrementHour(a(v.target))}if(v.target.className.indexOf("minute")>=0){n._decrementMinuteSecond(a(v.target))}if(v.target.className.indexOf("second")>=0){n._decrementMinuteSecond(a(v.target))}if(v.target.className.indexOf("millisecond")>=0){n._decrementMillisecond(a(v.target))}if(v.target.className.indexOf("meridian")>=0){n._decrementMeridian(a(v.target))}};var l=function(v){if(v.target.className.indexOf("hour")>=0){n._incrementHour(a(v.target))}if(v.target.className.indexOf("minute")>=0){n._incrementMinuteSecond(a(v.target))}if(v.target.className.indexOf("second")>=0){n._incrementMinuteSecond(a(v.target))}if(v.target.className.indexOf("millisecond")>=0){n._incrementMillisecond(a(v.target))}if(v.target.className.indexOf("meridian")>=0){n._incrementMeridian(a(v.target))}};var s=function(w,v){var x=0;if(!w){w=window.event}if(w.originalEvent&&w.originalEvent.wheelDelta){w.wheelDelta=w.originalEvent.wheelDelta}if(w.originalEvent&&w.originalEvent.deltaY!=undefined){x=-w.originalEvent.deltaY}if(w.wheelDelta){x=w.wheelDelta/120}else{if(w.detail){x=-w.detail/3}}if(x){if(document.activeElement==w.target&&w.target.nodeName.toLowerCase()=="input"){if(x<0){e(w)}else{l(w)}}if(w.preventDefault){w.preventDefault()}w.returnValue=false}if(w.preventDefault){w.preventDefault()}w.returnValue=false};this.addHandler(g,"wheel",function(v){s(v)});this.addHandler(g,"keydown",function(w){var v=a(w.target);if(w.ctrlKey){if(w.keyCode==38){if(n.isOpened()){n.hideCalendar("keyboard","keyboard");n.dateTimeInput.focus();return false}}else{if(w.keyCode==40){if(!n.isOpened()){n.showCalendar("keyboard","keyboard");n.dateTimeInput.focus();return false}}}}if(w.keyCode==40){e(w);w.preventDefault()}else{if(w.keyCode==38){l(w);w.preventDefault()}else{if(w.keyCode==13){w.preventDefault();n.hideCalendar("keyboard","keyboard");n.dateTimeInput.focus()}else{if(w.keyCode==27){w.preventDefault();n.hideCalendar("cancel");n.dateTimeInput.focus()}}}}});this.hourInput=a(g[0]);this.minuteInput=a(g[1]);this.secondInput=a(g[2]);this.mssecondInput=a(g[3]);this.meridianInput=a(g[4]);this.hourInput2=a(g[5]);this.minuteInput2=a(g[6]);this.secondInput2=a(g[7]);this.mssecondInput2=a(g[8]);this.meridianInput2=a(g[9]);var n=this;var p=this.timePopupElement.find(".increment-hour-column");this.hourIncrement=a(p[0]);this.hourIncrement2=a(p[1]);this.addHandler(g,"change",function(w){var v=a(w.target);if(v.val().length<=1){v.val("0"+a(w.target).val())}if(w.target.className.indexOf("hour")>=0){var x=parseInt(a(w.target).val());if(m.indexOf("HH")>=0){while(x>24){x=x-24}}else{while(x>12){x=x-12}}if(x<10){x="0"+x}if(v.val()!=x){v.val(x)}}if(w.target.className.indexOf("minute")>=0||w.target.className.indexOf("second")>=0){var x=parseInt(a(w.target).val());while(x>59){x--}if(x<10){x="0"+x}if(v.val()!=x){v.val(x)}}});this._incrementHour=function(v){var w=parseInt(v.val());w++;if(m.indexOf("HH")>=0){if(w>24){w=1}}else{if(w>12){w=1}}if(w<10){w="0"+w}v.val(w)};this._incrementMinuteSecond=function(v){var w=parseInt(v.val());w++;if(w>59){w=0}if(w<10){w="0"+w}v.val(w)};this._incrementMillisecond=function(v){var w=parseInt(v.val());w++;if(w>999){w=0}if(w<10){w="0"+w}v.val(w)};this._incrementMeridian=function(v){var w=v.val();if(w.toLowerCase().indexOf("a")>=0){w="PM"}else{w="AM"}v.val(w)};this._decrementHour=function(v){var w=parseInt(v.val());w--;if(m.indexOf("HH")>=0){if(w<0){w=23}}else{if(w<1){w=12}}if(w<10){w="0"+w}v.val(w)};this._decrementMinuteSecond=function(v){var w=parseInt(v.val());w--;if(w<0){w=59}if(w<10){w="0"+w}v.val(w)};this._decrementMillisecond=function(v){var w=parseInt(v.val());w--;if(w<0){w=999}if(w<10){w="0"+w}v.val(w)};this._decrementMeridian=function(v){var w=v.val();if(w.toLowerCase().indexOf("a")>=0){w="PM"}else{w="AM"}v.val(w)};this.addHandler(this.hourIncrement,"mousedown",function(v){v.stopPropagation();n._incrementHour(n.hourInput)});this.addHandler(this.hourIncrement2,"mousedown",function(v){v.stopPropagation();n._incrementHour(n.hourInput2)});var q=this.timePopupElement.find(".increment-minute-column");this.minuteIncrement=a(q[0]);this.minuteIncrement2=a(q[1]);this.addHandler(this.minuteIncrement,"mousedown",function(v){v.stopPropagation();n._incrementMinuteSecond(n.minuteInput)});this.addHandler(this.minuteIncrement2,"mousedown",function(v){v.stopPropagation();n._incrementMinuteSecond(n.minuteInput2)});var c=this.timePopupElement.find(".increment-second-column");this.secondIncrement=a(c[0]);this.secondIncrement2=a(c[1]);this.addHandler(this.secondIncrement,"mousedown",function(v){v.stopPropagation();n._incrementMinuteSecond(n.secondInput)});this.addHandler(this.secondIncrement2,"mousedown",function(v){v.stopPropagation();n._incrementMinuteSecond(n.secondInput2)});var d=this.timePopupElement.find(".increment-millisecond-column");this.millisecondsIncrement=a(d[0]);this.millisecondsIncrement2=a(d[1]);this.addHandler(this.millisecondsIncrement,"mousedown",function(v){v.stopPropagation();n._incrementMillisecond(n.mssecondInput)});this.addHandler(this.millisecondsIncrement2,"mousedown",function(v){v.stopPropagation();n._incrementMillisecond(n.mssecondInput2)});var j=this.timePopupElement.find(".increment-meridian-column");this.meridianIncrement=a(j[0]);this.meridianIncrement2=a(j[1]);this.addHandler(this.meridianIncrement,"mousedown",function(v){v.stopPropagation();n._incrementMeridian(n.meridianInput)});this.addHandler(this.meridianIncrement2,"mousedown",function(v){v.stopPropagation();n._incrementMeridian(n.meridianInput2)});var o=this.timePopupElement.find(".decrement-hour-column");this.hourDecrement=a(o[0]);this.hourDecrement2=a(o[1]);this.addHandler(this.hourDecrement,"mousedown",function(v){v.stopPropagation();n._decrementHour(n.hourInput)});this.addHandler(this.hourDecrement2,"mousedown",function(v){v.stopPropagation();n._decrementHour(n.hourInput2)});var k=this.timePopupElement.find(".decrement-minute-column");this.minuteDecrement=a(k[0]);this.minuteDecrement2=a(k[1]);this.addHandler(this.minuteDecrement,"mousedown",function(v){v.stopPropagation();n._decrementMinuteSecond(n.minuteInput)});this.addHandler(this.minuteDecrement2,"mousedown",function(v){v.stopPropagation();n._decrementMinuteSecond(n.minuteInput2)});var u=this.timePopupElement.find(".decrement-second-column");this.secondDecrement=a(u[0]);this.secondDecrement2=a(u[1]);this.addHandler(this.secondDecrement,"mousedown",function(v){v.stopPropagation();n._decrementMinuteSecond(n.secondInput)});this.addHandler(this.secondDecrement2,"mousedown",function(v){v.stopPropagation();n._decrementMinuteSecond(n.secondInput2)});var b=this.timePopupElement.find(".decrement-millisecond-column");this.millisecondsDecrement=a(b[0]);this.millisecondsDecrement2=a(b[1]);this.addHandler(this.millisecondsDecrement,"mousedown",function(v){v.stopPropagation();n._decrementMillisecond(n.mssecondInput)});this.addHandler(this.millisecondsDecrement2,"mousedown",function(v){v.stopPropagation();n._decrementMillisecond(n.mssecondInput2)});var f=this.timePopupElement.find(".decrement-meridian-column");this.meridianDecrement=a(f[0]);this.meridianDecrement2=a(f[1]);this.addHandler(this.meridianDecrement,"mousedown",function(v){v.stopPropagation();n._decrementMeridian(n.meridianInput)});this.addHandler(this.meridianDecrement2,"mousedown",function(v){v.stopPropagation();n._decrementMeridian(n.meridianInput2)});var r=this.timePopupElement.find("table");this.addHandler(this.timePopupElement,"mousedown",function(v){v.stopPropagation()});var h=function(v){var w=v.find("tr");if(m.indexOf("ss")==-1){n.secondInput.hide();n.secondInput2.hide();a(a(w[0]).children()[3]).hide();a(a(w[0]).children()[4]).hide();a(a(w[1]).children()[3]).hide();a(a(w[1]).children()[4]).hide();a(a(w[2]).children()[3]).hide();a(a(w[2]).children()[4]).hide()}if(m.indexOf("tt")==-1&&m.indexOf("hh")==-1){n.meridianInput.hide();n.meridianInput2.hide();a(a(w[0]).children()[7]).hide();a(a(w[0]).children()[8]).hide();a(a(w[1]).children()[7]).hide();a(a(w[1]).children()[8]).hide();a(a(w[2]).children()[7]).hide();a(a(w[2]).children()[8]).hide()}if(m.indexOf("zz")==-1){n.mssecondInput.hide();n.mssecondInput2.hide();a(a(w[0]).children()[5]).hide();a(a(w[0]).children()[6]).hide();a(a(w[1]).children()[5]).hide();a(a(w[1]).children()[6]).hide();a(a(w[2]).children()[5]).hide();a(a(w[2]).children()[6]).hide()}};if(r.length==1){h(r)}else{h(a(a(r)[1]));h(a(a(r)[2]))}},updateTimePopup:function(){var b=this._getFormatValue(this.formatString);if(this.selectionMode!="range"){var f=this.getDate();if(this.hourInput){if(f){var c=f.getHours();var h=f.getMinutes();var g=f.getHours();var e=f.getSeconds();var d=f.getMilliseconds()}else{var c=0;var h=0;var g=0;var e=0;var d=0}if(c>=12){g="PM";if(b.indexOf("HH")==-1){c-=12;if(c==0){c=12}}}else{g="AM"}if(this.meridianInput.css("display")!="none"){if(c==0){c=12}}if(c<10){c="0"+c}if(h<10){h="0"+h}if(e<10){e="0"+e}if(d<10){d="0"+d}this.hourInput.val(c);this.minuteInput.val(h);this.secondInput.val(e);this.mssecondInput.val(d);this.meridianInput.val(g)}}else{var f=this.getRange().from;if(this.hourInput){if(f){var c=f.getHours();var h=f.getMinutes();var g=f.getHours();var e=f.getSeconds();var d=f.getMilliseconds()}else{var c=0;var h=0;var g=0;var e=0;var d=0}if(c>=12){g="PM";if(b.indexOf("HH")==-1){c-=12;if(c==0){c=12}}}else{g="AM"}if(this.meridianInput.css("display")!="none"){if(c==0){c=12}}if(c<10){c="0"+c}if(h<10){h="0"+h}if(e<10){e="0"+e}if(d<10){d="0"+d}this.hourInput.val(c);this.minuteInput.val(h);this.secondInput.val(e);this.mssecondInput.val(d);this.meridianInput.val(g)}var f=this.getRange().to;if(this.hourInput2){if(f){var c=f.getHours();var h=f.getMinutes();var g=f.getHours();var e=f.getSeconds();var d=f.getMilliseconds()}else{var c=0;var h=0;var g=0;var e=0;var d=0}if(c>=12){g="PM";if(b.indexOf("HH")==-1){c-=12;if(c==0){c=12}}}else{g="AM"}if(this.meridianInput.css("display")!="none"){if(c==0){c=12}}if(c<10){c="0"+c}if(h<10){h="0"+h}if(e<10){e="0"+e}if(d<10){d="0"+d}this.hourInput2.val(c);this.minuteInput2.val(h);this.secondInput2.val(e);this.mssecondInput2.val(d);this.meridianInput2.val(g)}}},showCalendar:function(){var m=this.calendarContainer;var q=this._calendar;a.jqx.aria(this,"aria-expanded",true);if(this.showTimeButton){if(this.timePopup){if(!this.timePopupElement){this.initTimePopup()}this.calendarContainer.css("visibility","hidden");this.timeContainer.css("visibility","visible");this.updateTimePopup();var d=this.timeContainer.find("input");var s=0;for(var v=0;vthis.host.width()){var f=23;this.container.css("left",f+parseInt(Math.round(r))-u+"px")}else{this.container.css("left",25+parseInt(Math.round(r))+u+"px")}}if(this.enableBrowserBoundsDetection){var j=this.testOffset(m,{left:parseInt(this.container.css("left")),top:parseInt(n)},parseInt(this.host.outerHeight()));if(parseInt(this.container.css("top"))!=j.top){b=true;m.css("top",23);m.addClass(this.toThemeProperty("jqx-popup-up"))}else{m.css("top",0)}this.container.css("top",j.top);if(parseInt(this.container.css("left"))!=j.left){this.container.css("left",j.left)}}this._raiseEvent(7,m);if(this.animationType!="none"){this.container.css("display","block");var o=parseInt(m.outerHeight());m.stop();this.isanimating=true;this.opening=true;if(this.animationType=="fade"){m.css("margin-top",0);m.css("opacity",0);m.animate({opacity:1},this.openDelay,function(){p.isanimating=false;p.opening=false;a.data(document.body,"openedJQXCalendar"+p.id,m);p.calendarContainer.focus()});if(this.timePopup){this.timeContainer.css("margin-top",0);this.timeContainer.css("opacity",0);this.timeContainer.animate({opacity:1},this.openDelay,function(){p.isanimating=false;p.opening=false;a.data(document.body,"openedJQXCalendar"+p.id,m);p.timeContainer.focus()})}}else{m.css("opacity",1);if(this.timePopup){this.timeContainer.css("opacity",1)}if(b){m.css("margin-top",o)}else{m.css("margin-top",-o)}if(this.timePopup){if(b){this.timeContainer.css("margin-top",o)}else{this.timeContainer.css("margin-top",-o)}this.timeContainer.animate({"margin-top":0},this.openDelay,function(){p.isanimating=false;p.opening=false;a.data(document.body,"openedJQXCalendar"+p.id,m);p.timeContainer.focus()})}m.animate({"margin-top":0},this.openDelay,function(){p.isanimating=false;p.opening=false;a.data(document.body,"openedJQXCalendar"+p.id,m);p.calendarContainer.focus()})}}else{m.stop();p.isanimating=false;p.opening=false;m.css("opacity",1);m.css("margin-top",0);this.container.css("display","block");a.data(document.body,"openedJQXCalendar"+p.id,m);this.calendarContainer.focus();if(this.timePopup){this.timeContainer.stop();this.timeContainer.css("opacity",1);this.timeContainer.css("margin-top",0);this.timeContainer.focus()}}if(this.value==null){if(this._calendar&&this._calendar._getSelectedCell()){this._calendar._getSelectedCell().isSelected=false}}if(this.timePopup){this.timeButtonIcon.addClass(this.toThemeProperty("jqx-icon-time-pressed"));this.timeButton.addClass(this.toThemeProperty("jqx-fill-state-hover"));this.timeButton.addClass(this.toThemeProperty("jqx-fill-state-pressed"))}else{this.calendarButtonIcon.addClass(this.toThemeProperty("jqx-icon-calendar-pressed"));this.calendarButton.addClass(this.toThemeProperty("jqx-fill-state-hover"));this.calendarButton.addClass(this.toThemeProperty("jqx-fill-state-pressed"))}this.host.addClass(this.toThemeProperty("jqx-fill-state-focus"))},hideCalendar:function(k,p){if(p){this.changeType=p}var h=this.calendarContainer;var b=this.container;var q=this;a.jqx.aria(this,"aria-expanded",false);if(this.showTimeButton){if(this.timeContainer.css("visibility")!="hidden"&&k!="cancel"){if(this.selectionMode!="range"){var e=this.getDate();var g=parseInt(this.hourInput.val());var f=parseInt(this.minuteInput.val());var c=parseInt(this.secondInput.val());var r=parseInt(this.mssecondInput.val());var d=this.meridianInput.val();if(isNaN(g)){g=0}if(isNaN(f)){f=0}if(isNaN(c)){c=0}if(isNaN(r)){r=0}if(this.meridianInput.css("display")!="none"){if(d.toLowerCase().indexOf("p")>=0){if(g<12){g+=12}}if(d.toLowerCase().indexOf("a")>=0){if(g>=12){g-=12}}}if(!e){e=new Date()}e.setHours(g,f,c,r);this.setDate(e)}else{if(this.hourInput&&k!="selected"){var j=this.getRange();var g=parseInt(this.hourInput.val());var f=parseInt(this.minuteInput.val());var c=parseInt(this.secondInput.val());var r=parseInt(this.mssecondInput.val());var d=this.meridianInput.val();if(isNaN(g)){g=0}if(isNaN(f)){f=0}if(isNaN(c)){c=0}if(isNaN(r)){r=0}if(this.meridianInput.css("display")!="none"){if(d.toLowerCase().indexOf("p")>=0){if(g<12){g+=12}}if(d.toLowerCase().indexOf("a")>=0){if(g>=12){g-=12}}}var m=j.from;if(!m){m=new Date()}m.setHours(g,f,c,r);var g=parseInt(this.hourInput2.val());var f=parseInt(this.minuteInput2.val());var c=parseInt(this.secondInput2.val());var r=parseInt(this.mssecondInput2.val());var d=this.meridianInput2.val();if(f==""){f=0}if(c==""){c=0}if(r==""){r=0}if(this.meridianInput2.css("display")!="none"){if(d.toLowerCase().indexOf("p")>=0){if(g<12){g+=12}}if(d.toLowerCase().indexOf("a")>=0){if(g>=12){g-=12}}}var l=j.to;if(!l){l=new Date()}l.setHours(g,f,c,r);if(l.valueOf()0){var h=k[0].id.toString();var f=h.toString().substring(13);var j=a(document).find("#"+f);var o=b.data.me.hideCalendar();if(o!==false){a.data(document.body,"openedJQXCalendar"+b.data.me.id,null)}}}},_loadItems:function(){if(this.value!=null){this.items=new Array();var d=this._getFormatValue(this.formatString);this.items=this._parseFormatValue(d);this.editors=new Array();for(var b=0;b=1){e=d.format(d.value,0,d.items.length)}var b=d.dateTimeInput.val();if(b!=e){d._raiseEvent(1,d.value)}}if(d.selectionMode=="range"){var c=d.getRange();fromText=d.format(d.value,0,d.items.length);if(c.to){var g=a.jqx._jqxDateTimeInput.getDateTime(c.from);fromText=d.format(g,0,d.items.length);var f=a.jqx._jqxDateTimeInput.getDateTime(c.to);toText=d.format(f,0,d.items.length);var e=fromText+" - "+toText;if(e==" - "){e=""}}else{e=""}}d.dateTimeInput.val(e)},format:function(g,h,f){var b="";for(var e=h;e2;if(this.items[e].type=="FORMAT_AMPM"){d=true;if(this.editors[e].value==0){c=this.editors[e].amString}else{c=this.editors[e].pmString}}if(!d){c=this.items[e].dateParserInEditMode(new Number(this.editors[e].value),"d"+this.editors[e].maxEditPositions,this);while(c.length0){var d=this._getFormatValueGroupLength(f);var g=null;switch(f.substring(0,1)){case":":case"/":d=1;g=a.jqx._jqxDateTimeInput.DateTimeFormatItem._create(f.substring(0,1),"ReadOnly",this.culture);break;case'"':case"'":var b=f.indexOf(f[0],1);g=a.jqx._jqxDateTimeInput.DateTimeFormatItem._create(f.substring(1,1+Math.max(1,b-1)),"ReadOnly",this.culture);d=Math.max(1,b+1);break;case"\\":if(f.length>=2){g=a.jqx._jqxDateTimeInput.DateTimeFormatItem._create(f.substring(1,1),"ReadOnly",this.culture);d=2}break;case"d":case"D":if(d>2){g=a.jqx._jqxDateTimeInput.DateTimeFormatItem._create(f.substring(0,d),"Day",this.culture)}else{g=a.jqx._jqxDateTimeInput.DateTimeFormatItem._create(f.substring(0,d),"Day",this.culture)}break;case"f":case"F":if(d>7){d=7}if(d>3){g=a.jqx._jqxDateTimeInput.DateTimeFormatItem._create(f.substring(0,d),"ReadOnly",this.culture)}else{g=a.jqx._jqxDateTimeInput.DateTimeFormatItem._create(f.substring(0,d),"Millisecond",this.culture)}break;case"g":g=a.jqx._jqxDateTimeInput.DateTimeFormatItem._create(f.substring(0,d),"ReadOnly",this.culture);break;case"h":g=a.jqx._jqxDateTimeInput.DateTimeFormatItem._create(f.substring(0,d),"FORMAT_hh",this.culture);break;case"H":g=a.jqx._jqxDateTimeInput.DateTimeFormatItem._create(f.substring(0,d),"FORMAT_HH",this.culture);break;case"m":g=a.jqx._jqxDateTimeInput.DateTimeFormatItem._create(f.substring(0,d),"Minute",this.culture);break;case"M":if(d>4){d=4}g=a.jqx._jqxDateTimeInput.DateTimeFormatItem._create(f.substring(0,d),"Month",this.culture);break;case"s":case"S":g=a.jqx._jqxDateTimeInput.DateTimeFormatItem._create(f.substring(0,d),"Second",this.culture);break;case"t":case"T":g=a.jqx._jqxDateTimeInput.DateTimeFormatItem._create(f.substring(0,d),"FORMAT_AMPM",this.culture);break;case"y":case"Y":if(d>1){g=a.jqx._jqxDateTimeInput.DateTimeFormatItem._create(f.substring(0,d),"Year",this.culture)}else{d=1;g=a.jqx._jqxDateTimeInput.DateTimeFormatItem._create(f.substring(0,1),dateTimeFormatInfo,"ReadOnly",this.culture)}break;case"z":g=a.jqx._jqxDateTimeInput.DateTimeFormatItem._create(f.substring(0,d),"ReadOnly",this.culture);break;default:d=1;g=a.jqx._jqxDateTimeInput.DateTimeFormatItem._create(f.substring(0,1),"ReadOnly",this.culture);break}c[e]=a.extend(true,{},g);f=f.substring(d);e++}return c},_getFormatValue:function(b){if(b==null||b.length==0){b="d"}if(b.length==1){switch(b.substring(0,1)){case"d":return this.localization.calendar.patterns.d;case"D":return this.localization.calendar.patterns.D;case"t":return this.localization.calendar.patterns.t;case"T":return this.localization.calendar.patterns.T;case"f":return this.localization.calendar.patterns.f;case"F":return this.localization.calendar.patterns.F;case"M":return this.localization.calendar.patterns.M;case"Y":return this.localization.calendar.patterns.Y;case"S":return this.localization.calendar.patterns.S}}if(b.length==2&&b.substring(0,1)=="%"){b=b.substring(1)}return b},_updateEditorsValue:function(){var j=this.value;if(j==null){return}var g=j.year;var h=j.day;var d=j.hour;var l=j.millisecond;var b=j.second;var c=j.minute;var f=j.month;if(this.items==null){return}for(var e=0;e=0&&d<12){this.editors[e].value=0}else{this.editors[e].value=1}break;case"Day":this.editors[e].value=h;break;case"FORMAT_hh":var k=d%12;if(k==0){k=12}this.editors[e].value=k;break;case"FORMAT_HH":this.editors[e].value=d;break;case"Millisecond":this.editors[e].value=l;break;case"Minute":this.editors[e].value=c;break;case"Month":this.editors[e].value=f;break;case"Second":this.editors[e].value=b;break;case"Year":this.editors[e].value=g;break}}},updateValue:function(z){if(this.isEditing){return}if(this.items&&this.items.length==0){return}var o=0;var s=1;var C=1;var l=0;var d=0;var J=0;var u=0;var I=1;var h=0;var m=false;var r=false;var D=false;var c=false;var b=false;var q=false;var x=false;var t=new Array();var e=null;var y=0;for(var B=0;B0&&I>0&&C>0&&u>=0&&l>=0&&J>=0&&d>=0){var K=this.value;if(K!=null){if(!m){s=K.year}if(!r){I=K.month}if(!D){C=K.day}}try{if(I>12){I=12}if(I<1){I=1}if(z&&K._daysInMonth(s,I)<=C){C=K._daysInMonth(s,I);if(t!=null&&t.length>0){for(B=0;B=12){l-=12}}else{if(l+12<24){l+=12}}}var g=this.value.dateTime.getDate();this.value._setYear(parseInt(s));this.value._setDay(C);this.value._setMonth(I);if(c){this.value._setHours(l)}if(b){this.value._setMinutes(u)}if(q){this.value._setSeconds(J)}if(x){this.value._setMilliseconds(d)}this._validateTimeRange()}catch(j){this.value=K}if(G!=null){var A=this.value.dateTime.getFullYear()==G.getFullYear()&&this.value.dateTime.getDate()==G.getDate()&&this.value.dateTime.getMonth()==G.getMonth()&&this.value.dateTime.getHours()==G.getHours()&&this.value.dateTime.getMinutes()==G.getMinutes()&&this.value.dateTime.getSeconds()==G.getSeconds();if(!A){if(this.changing){var n=this.changing(G,this.value.dateTime);if(n){this.value=a.jqx._jqxDateTimeInput.getDateTime(n)}}this._raiseEvent("0",this.value.dateTime);if(this.cookies){if(this.value!=null){a.jqx.cookie.cookie("jqxDateTimeInput"+this.element.id,this.value.dateTime.toString(),this.cookieoptions)}}if(this.change){this.change(this.value.dateTime)}}}}var f=this.editors.indexOf(this.activeEditor);var p=this.items[f];if(this.value){if(this.calendarContainer.jqxCalendar("_isDisabled",this.value.dateTime)){this.dateTimeInput.addClass(this.toThemeProperty("jqx-input-invalid"))}else{this.dateTimeInput.removeClass(this.toThemeProperty("jqx-input-invalid"))}}},_internalSetValue:function(b){this.value._setYear(parseInt(b.year));this.value._setDay(b.day);this.value._setMonth(b.month);this.value._setHours(b.hour);this.value._setMinutes(b.minute);this.value._setSeconds(b.second);this.value._setMilliseconds(b.milisecond)},_raiseEvent:function(c,o,f){var n=this.events[c];var g={};g.owner=this;if(o==null){o={}}if(f==null){f=o}var m=o.charCode?o.charCode:o.keyCode?o.keyCode:0;var p=true;var l=this.readonly;var b=new a.Event(n);b.owner=this;b.args=g;b.args.date=this.getDate();if(c==9){b.args.type=this.changeType;this.changeType=null}this.element.value=this.dateTimeInput.val();if(c==9&&this.selectionMode!="range"){var d=b.args.date;if(this._oldDT){if(d!=null){if(!(d.getFullYear()!=this._oldDT.getFullYear()||d.getMonth()!=this._oldDT.getMonth()||d.getDate()!=this._oldDT.getDate()||d.getHours()!=this._oldDT.getHours()||d.getMinutes()!=this._oldDT.getMinutes()||d.getSeconds()!=this._oldDT.getSeconds())){return true}}a.jqx.aria(this,"aria-valuenow",this.getDate());a.jqx.aria(this,"aria-valuetext",this.getText());if(this.getDate()!=null){a.jqx.aria(this,"aria-label","Current focused date is "+this.getDate().toLocaleString())}else{a.jqx.aria(this,"aria-label","Current focused date is Null")}}b.args.oldValue=f;b.args.newValue=b.args.date;if(this._oldDT){b.args.oldValue=this._oldDT}}if(this.selectionMode=="range"){b.args.date=this.getRange();if(this._oldDT){var d=b.args.date.from;if(c==9){var k=false;var j=false;var e=this._oldDT.from;if(d!=null&&e){if(!(d.getFullYear()!=e.getFullYear()||d.getMonth()!=e.getMonth()||d.getDate()!=e.getDate()||d.getHours()!=e.getHours()||d.getMinutes()!=e.getMinutes()||d.getSeconds()!=e.getSeconds())){k=true}}var d=b.args.date.to;if(d!=null){e=this._oldDT.to;if(e){if(!(d.getFullYear()!=e.getFullYear()||d.getMonth()!=e.getMonth()||d.getDate()!=e.getDate()||d.getHours()!=e.getHours()||d.getMinutes()!=e.getMinutes()||d.getSeconds()!=e.getSeconds())){j=true}}}if(k&&j){return true}var k=b.args.date.from;if(k==null){k=""}else{k=k.toString()}var j=b.args.date.to;if(j==null){j=""}else{j=j.toString()}a.jqx.aria(this,"aria-valuenow",k+"-"+j);a.jqx.aria(this,"aria-valuetext",this.getText());if(k&&j){a.jqx.aria(this,"aria-label","Current focused range is "+k.toLocaleString()+"-"+j.toLocaleString())}}}b.args.oldValue=f;b.args.newValue=b.args.date;if(this._oldDT){b.args.oldValue=this._oldDT}}if(this.host.css("display")=="none"){return true}if(c!=2&&c!=3&&c!=4&&c!=5&&c!=6){p=this.host.trigger(b);if(b.stopPropagation){b.stopPropagation()}}var h=this;if(!l){if(c==2&&!this.disabled){setTimeout(function(){h.isEditing=true;if(this.selectionMode=="range"){h._selectGroup(-1)}else{h._selectGroup(-1)}},25)}}if(c==4){if(l||this.disabled){if(m==8||m==46){this.isEditing=false;if(this.allowKeyboardDelete){if(this.allowNullDate){this.setDate(null)}else{if(this.selectionMode!="range"){this.setDate(this.getMinDate())}else{this.setRange(this.getMinDate(),this.getMinDate())}}}}if(m==9){return true}if(!o.altKey){return false}}p=this._handleKeyDown(o,m)}else{if(c==5){if(m==9){return true}if(l||this.disabled){return false}}else{if(c==6){if(m==9){return true}if(l||this.disabled){return false}p=this._handleKeyPress(o,m)}}}return p},_doLeftKey:function(){if(this.activeEditor!=null){if(!this.isEditing){this.isEditing=true}var b=this.activeEditor;var d=false;var e=this.editors.indexOf(this.activeEditor);var c=e;if(this.enableAbsoluteSelection){if(e>=0&&this.activeEditor.positions>0){this.activeEditor.positions--;this._selectGroup(e);return}}while(e>0){this.activeEditor=this.editors[--e];this._selectGroup(e);if(this.items[e].type!="ReadOnly"){d=true;break}}if(!d){if(c>=0){this.activeEditor=this.editors[c]}}if(this.activeEditor!=null&&b!=this.activeEditor){if(this.items[e].type!="ReadOnly"){if(this.enableAbsoluteSelection){this.activeEditor.positions=this.activeEditor.maxEditPositions-1}else{this.activeEditor.positions=0}}}if(this.activeEditor!=b){this._validateValue();this._updateText();this._selectGroup(this.editors.indexOf(this.activeEditor));return true}else{return false}}},_doRightKey:function(){if(this.activeEditor!=null){if(!this.isEditing){this.isEditing=true}var b=this.activeEditor;var d=false;var e=this.editors.indexOf(this.activeEditor);var c=e;if(this.enableAbsoluteSelection){if(e>=0&&this.activeEditor.positions2){break}d=true;break}}if(!d){if(c>=0){this.activeEditor=this.editors[c]}}if(this.activeEditor!=null&&this.activeEditor!=b){if(this.items[e].type!="ReadOnly"){this.activeEditor.positions=0}}if(this.activeEditor!=b){this._validateValue();this._updateText();this._selectGroup(this.editors.indexOf(this.activeEditor));return true}else{return false}}},_saveSelectedText:function(){var b=this._selection();var d="";var c=this.dateTimeInput.val();if(b.start>0||b.length>0){for(i=b.start;i1){c=1}}break;case"Character":break;case"Day":if(c<1){c=1}else{if(c>31){c=31}}break;case"FORMAT_hh":if(c<1){c=1}else{if(c>12){c=12}}break;case"FORMAT_HH":if(c<0){c=0}else{if(c>23){c=23}}break;case"Millisecond":if(c<0){c=0}else{if(c>99){c=99}}break;case"Minute":if(c<0){c=0}else{if(c>59){c=59}}break;case"Month":if(c<1){c=1}else{if(c>12){c=12}}break;case"ReadOnly":break;case"Second":if(c<0){c=0}else{if(c>59){c=59}}break;case"Year":if(cthis.maxDate.year){c=this.maxDate.year}}break}if(d.value!=c){b=true}if(!b){this.isEditing=false;this._validateValue();this._updateText();this.isEditing=true;this._doRightKey();return true}return false}}},_handleKeyPress:function(k,o){var n=this._selection();var b=this;var d=k.ctrlKey||k.metaKey;if((d&&o==97)||(d&&o==65)){return true}if(o==8){if(n.start>0){b._setSelectionStart(n.start)}return false}if(o==46){if(n.start=0){this.changeType="keyboard";var f=String.fromCharCode(o);var l=parseInt(f);if(f=="p"||f=="a"||f=="A"||f=="P"){if(this.activeEditor.item.type=="FORMAT_AMPM"){if(this.activeEditor.value==0&&(f=="p"||f=="P")){this.spinUp()}else{if(this.activeEditor.value==1&&(f=="a"||f=="A")){this.spinDown()}}}}if(!isNaN(l)){if(this.container.css("display")=="block"){this.hideCalendar()}this.updateValue();this._updateText();var h=false;var j=this.editors.indexOf(this.activeEditor);var c=null;this.isEditing=true;if(j.type!="ReadOnly"){c=this.activeEditor}if(c!=null&&c.positions==0){this.editorText=""}if(this.activeEditor==null){this.activeEditor=this.editors[0]}if(this.activeEditor==null){return false}this.activeEditor.insert(f);if(c!=null&&this.editorText.length>=c.maxEditPositions){this.editorText=""}this.editorText+=f;var p=this._selectWithAdvancePattern();if(this.activeEditor.positions==this.activeEditor.maxEditPositions){var g=this._getLastEditableEditorIndex();if(this.editors.indexOf(this.activeEditor)==g&&p&&this.enableAbsoluteSelection){this.activeEditor.positions=this.activeEditor.maxEditPositions-1}else{this.activeEditor.positions=0}}h=true;this.updateValue();this._updateText();this._selectGroup(this.editors.indexOf(this.activeEditor));return false}}var m=this._isSpecialKey(o);return m},_getLastEditableEditorIndex:function(){var b=0;var c=this;for(itemIndex=this.items.length-1;itemIndex>=0;itemIndex--){if(this.items[itemIndex].type!="ReadOnly"){return itemIndex}}return -1},_handleKeyDown:function(h,o){var g=this;this.timePopup=false;if(o==84){this.timePopup=true}if(h.keyCode==115){if(g.isOpened()){g.hideCalendar("keyboard","keyboard");return false}else{if(!g.isOpened()){g.showCalendar("keyboard","keyboard");return false}}}if(h.altKey){if(h.keyCode==38){if(g.isOpened()){g.hideCalendar("keyboard","keyboard");return false}}else{if(h.keyCode==40){if(!g.isOpened()){g.showCalendar("keyboard","keyboard");return false}}}}else{if(h.ctrlKey){this.timePopup=true;if(h.keyCode==38){if(g.isOpened()){g.hideCalendar("keyboard","keyboard");return false}}else{if(h.keyCode==40){if(!g.isOpened()){g.showCalendar("keyboard","keyboard");return false}}}}}if(g.isOpened()){if(h.keyCode==9){g.hideCalendar("selected","keyboard");return true}return}var m=g._selection();var b=h.ctrlKey||h.metaKey;if((b&&o==99)||(b&&o==67)){g._saveSelectedText(h);return true}if((b&&o==122)||(b&&o==90)){return false}if((b&&o==118)||(b&&o==86)||(h.shiftKey&&o==45)){var l=g.val();var j=this;var c=a('')}else{e.selection.insertContent('
               
              ')}var g=b(window).scrollTop();var h=b(e.editorDocument).find(".jqx-editor-paste-element");h.css("top",g+"px");if(e.editor[0].createTextRange){l.preventDefault();var j=e.editor[0].createTextRange();j.moveToElementText(h[0]);j.execCommand("Paste")}else{var i=e.editorDocument.createRange();i.selectNodeContents(h[0]);e.selectRange(i)}if(e.pasteMode=="text"&&!b.jqx.browser.mozilla){h.select()}e.marker=h;setTimeout(function(){e.selectRange(n);var r=function(A){var y=e.editorDocument.createElement("div");var z=e.editorDocument.createDocumentFragment();y.innerHTML=A;while(y.firstChild){z.appendChild(y.firstChild)}return z};if(e.pasteMode!="text"){var x=r(e.marker.html());if(x.firstChild&&x.firstChild.className==="jqx-editor-paste-element"){var p=[];for(var u=0,s=x.childNodes.length;u"))}var o=document.createElement("div");o.appendChild(x.cloneNode(true));var w=o.innerHTML}else{var w=e.marker.val();if(e.marker.html()!=""&&e.marker.val().indexOf("\n")==-1){var w=e.marker.html();w=w.replace(/ /gm,"");w=w.replace(/\n\n/gm,"\n");w=w.replace(/]*>/gi,"\n");w=w.replace(/]*>/gi,"\n");w=w.replace(/]*>/gi,"\n");e.marker.html(w);var w=e.marker.text()}}var q=k(w,e.pasteMode=="text");var v=e.getRange();e.selection.insertContent(q+" ");e.marker.remove();var t=b(e.editorDocument).find("#INSERTION_MARKER");e.selection.selectNode(t[0],true);if(e.getRange().setStartAfter){e.getRange().setStartAfter(t[0])}t.remove();e.selection.collapse(false);t.removeAttr("id");e._refreshTools();e.changed=true},100);e.updating=false;e.readOnly=false});e.addHandler(e.editor,"keyup.editor"+e.element.id,function(i){if(e._documentMode=="source"){return true}if(e.updating||e.disabled||!e.editable){if(i.preventDefault){i.preventDefault()}if(i.stopPropagation){i.stopPropagation()}return false}e.range=e.getRange();e.changed=true;var h=i||window.event;var g=h.keyCode;var j=[8,9,13,33,34,35,36,37,38,39,40,40,45,46];if(b.inArray(h.keyCode,j)!=-1||(h.keyCode==65&&h.ctrlKey&&!h.altKey&&!h.shiftKey)){e._refreshTools(null,true,h.keyCode)}});e.addHandler(e.editor,"click.editor"+e.element.id,function(g){if(e._documentMode=="source"){return true}if(e.editImage){b(e.editImage).removeClass("jqx-editor-focus");e.editImage=null}if(g.target.tagName.toLowerCase()=="img"){var h=g.target;e.editImage=h;b(e.editImage).addClass("jqx-editor-focus")}});e.addHandler(e.editor,"dblclick.editor"+e.element.id,function(g){if(e._documentMode=="source"){return true}if(g.target.tagName.toLowerCase()=="img"){var h=g.target;if(b("#imageWindow"+this.element.id).length>0){e.editImage=h;e._updateImageWindow()}}})},_updateLinkWindow:function(){var g=this;var i=b("#linkWindow"+this.element.id);i.jqxWindow({position:{center:g.widget}});i.jqxWindow("open");var e=i.find("input");var h=i.find(".jqx-editor-link-checkbox");var f=i.find("button:first");var d=b(i.find("button")[1]);if(g.editLink&&g.editLink.href){e[0].value=g.editLink.href||"";e[1].value=b(g.editLink).text()||g.editLink.href;h.val(b(g.editLink).attr("target")=="_blank");d.show()}else{e[0].value="";e[1].value="";if(!g.selection.isCollapsed()){var j=g.selection.getText();if(j.match(/^(?!:\/\/)([a-zA-Z0-9]+\.)?[a-zA-Z0-9][a-zA-Z0-9-]+\.[a-zA-Z]{2,6}?$/i)){e[0].value=j}else{e[1].value=j}}h.val(false);d.hide()}if(e[0].value.length>0){f.jqxButton({disabled:false})}else{f.jqxButton({disabled:true})}},_updateImageWindow:function(){var g=this;var i=g.editImage;if(!i){i=b("")[0]}var h=b("#imageWindow"+this.element.id);h.jqxWindow({position:{center:g.widget}});h.jqxWindow("open");var e=h.find("input");var d=b(h.find("button")[1]);if(g.editImage){d.show()}else{d.hide()}e[0].value=i.src;if(e[0].value==""){e[0].value=""}e[1].value=i.alt;if(i.style.width!="auto"){e[2].value=i.style.width}else{e[2].value=""}if(i.style.height!="auto"){e[3].value=i.style.height}else{e[3].value=""}if(i.style.marginLeft&&i.style.marginLeft!="0px"){e[4].value=i.style.marginLeft}else{e[4].value=""}if(i.style.marginTop&&i.style.marginTop!="0px"){e[5].value=i.style.marginTop}else{e[5].value=""}var j=h.find(".jqx-editor-align");var f=b(i).css("float");if(f=="left"){j.jqxDropDownList({selectedIndex:1})}else{if(f=="right"){j.jqxDropDownList({selectedIndex:2})}else{j.jqxDropDownList({selectedIndex:0})}}},_removeHandlers:function(){var d=this;if(d.editor){d.removeHandler(d.editor,"blur.editor"+d.element.id);d.removeHandler(d.editor,"focus.editor"+d.element.id);d.removeHandler(d.editor,"click.editor"+d.element.id);d.removeHandler(d.editor,"mousedown.editor"+d.element.id);d.removeHandler(d.editor,"mouseup.editor"+d.element.id);d.removeHandler(d.editor,"keyup.editor"+d.element.id);d.removeHandler(d.editor,"keydown.editor"+d.element.id);d.removeHandler(d.editor,"beforedeactivate.editor"+d.element.id);d.removeHandler(d.editor,"dblclick.editor"+d.element.id)}if(d.toolbar){d.removeHandler(d.toolbar,"mousedown.editor"+d.element.id)}},getParentByTag:function(e,d){var d=d.toLowerCase(),f=e;do{if(d==""||f.nodeName.toLowerCase()==d){return f}}while(f=f.parentNode);return e},isStyleProperty:function(g,f,j,i){var f=f.toLowerCase(),h=g;do{if(h.nodeName.toLowerCase()==f&&h.style[j]==i){return !0}}while(h=h.parentNode);return !1},setStyleProperty:function(e,d){this.style[d]=!1;var f=this.getParentByTag(e,d);f&&f.tagName.toLowerCase()==d&&(this.style[d]=!0);if(d=="del"&&this.getParentByTag(e,"strike")&&this.getParentByTag(e,"strike").tagName.toLowerCase()=="strike"){this.style.del=!0}},updateStyle:function(f){var g=this;var f=g.getSelectedElement()?g.getSelectedElement():f;if(!f||!g.setStyleProperty){return}try{if(window.getComputedStyle){if(f.nodeName.toLowerCase()=="#text"){f=g.editor[0]}var d=window.getComputedStyle(f,null);var i=((d.getPropertyValue("font-weight")==401)?700:d.getPropertyValue("font-weight"));g.style={fontStyle:d.getPropertyValue("font-style"),fontSize:d.getPropertyValue("font-size"),textDecoration:d.getPropertyValue("text-decoration"),fontWeight:i,fontFamily:d.getPropertyValue("font-family"),textAlign:d.getPropertyValue("text-align"),color:g._rgbToHex(d.color),backColor:g._rgbToHex(d.backgroundColor)};g.style.fontStyle=d.getPropertyValue("font-style");g.style.vAlign=d.getPropertyValue("vertical-align");g.style.del=g.isStyleProperty(f,"span","textDecoration","line-through");g.style.u=g.isStyleProperty(f,"span","textDecoration","underline");var h=function(l){var k="transparent";var e="rgba(0, 0, 0, 0)";while(l&&(window.getComputedStyle(l).backgroundColor==k||window.getComputedStyle(l).backgroundColor==e)){l=l.parentNode}return l?window.getComputedStyle(l).backgroundColor:k};if(!g.style.backColor){g.style.backColor=g._rgbToHex(h(f))}}else{var d=f.currentStyle;g.style={fontStyle:d.fontStyle,fontSize:d.fontSize,textDecoration:d.textDecoration,fontWeight:d.fontWeight,fontFamily:d.fontFamily,textAlign:d.textAlign,color:g._rgbToHex(d.color),backColor:g._rgbToHex(d.backgroundColor)}}g.setStyleProperty(f,"h1");g.setStyleProperty(f,"h2");g.setStyleProperty(f,"h3");g.setStyleProperty(f,"h4");g.setStyleProperty(f,"h5");g.setStyleProperty(f,"h6");g.setStyleProperty(f,"del");g.setStyleProperty(f,"sub");g.setStyleProperty(f,"sup");g.setStyleProperty(f,"u");if(f.nodeName.toLowerCase()=="a"){if(g.style.textDecoration=="underline"){g.style.u=true}}if(g.style.h1||g.style.h2||g.style.h3||g.style.h4||g.style.h5||g.style.h6){g.style.heading=true}}catch(j){return null}},_refreshTools:function(e,f,n){var k=this;if(k.updating){return}var e=k.getSelectedElement()?k.getSelectedElement():e;if(!e||!k.setStyleProperty){return}k.updateStyle(e);var o=k.readOnly;k.readOnly=true;if(k.tools!==false){var j=k.tools.split(" ");var l=k.tools.split(" | ");var m=function(i){b.each(i,function(q,r){var p=k.commands[this];if(!p){return true}switch(p.type){case"list":p.widget.jqxDropDownList("clearSelection");p.widget.jqxDropDownList({disabled:k.disabled});break;case"colorPicker":p.val(p.value);p.widget.jqxDropDownButton({disabled:k.disabled});break;case"toggleButton":p.widget.jqxToggleButton("unCheck");p.widget.jqxToggleButton({disabled:k.disabled});break;case"button":default:p.widget.jqxButton({disabled:k.disabled});break}})};if(l.length==0){m(j)}else{for(var h=0;h=0){if(w>8)+", "+((J&16711680)>>16)+")"};var F=r(k.editorDocument.queryCommandValue(t.command));if(t.command=="backcolor"){if(k.style.backColor==null){F="#FFFFFF"}}var z=k._rgbToHex(F);if(z){t.val(z)}else{if(t.command=="forecolor"){t.val(k.style.color)}else{if(t.command=="backcolor"){t.val(k.style.backColor)}}}break;case"toggleButton":if(t.command=="viewsource"){return}if(!t.command){return}var q=false;var p=k.editorDocument.queryCommandState(t.command)&&k.editorDocument.queryCommandEnabled(t.command);if(t.command=="createlink"&&e.nodeName.toLowerCase()=="a"){var y=true;if(b(e).text().indexOf(k.selection.getText())==-1&&k.selection.getText()!=""){y=false}if(y){if(k.linkPopup){k.linkPopup.remove()}p=true;k.linkPopup=b("").appendTo(k.editor);var u=b(e).coord();var v=u.left;if(u.left+k.linkPopup.width()>k.editor.width()){v=k.editor.width()-k.linkPopup.width()-15}k.linkPopup.offset({top:b(e).height()+u.top+5,left:v});k.addHandler(k.linkPopup,"mousedown",function(K){if(K.target&&K.target.href){var J=b(K.target).index();switch(J){case 1:k.editor.focus();k.selection.selectNode(e,true);k.commands.link.widget.trigger("click");break;case 2:try{k.editor.focus();k.selection.selectNode(e);k.execute("unlink");k.commands.underline.toggled=false;k.selection.collapse(false);k._refreshTools()}catch(L){}break;default:window.open(K.target.href,"_blank");break}}if(K.preventDefault){K.preventDefault()}if(K.stopPropagation){K.stopPropagation()}return false})}}if(t.command=="bold"){if(k.style.fontWeight&&(k.style.fontWeight>=600||k.style.fontWeight=="bold")){q=true}if(k.selection.isCollapsed()){t.toggled=p}else{t.toggled=p||q}p=t.toggled}else{if(t.command=="italic"){if(k.style.fontStyle&&k.style.fontStyle=="italic"){q=true}if(!f){p=t.toggled}else{t.toggled=p}}else{if(t.command=="underline"){if(k.style.u){q=true}if(!f){p=t.toggled}else{t.toggled=p}}else{if(t.command=="justifyleft"){if(k.style.textAlign=="left"){q=true}}else{if(t.command=="justifyright"){if(k.style.textAlign=="right"){q=true}}else{if(t.command=="justifycenter"){if(k.style.textAlign=="center"){q=true}}else{if(t.command=="justifyfull"){if(k.style.textAlign=="justify"){q=true}}else{b.each(k.style,function(J,K){if(t.command==J.toLowerCase()){q=true}})}}}}}}}var G=p;if(q&&t.command.indexOf("justify")!=-1){t.widget.jqxToggleButton("check")}else{if(G){t.widget.jqxToggleButton("check")}else{if(q&&k.range.collapsed===false){t.widget.jqxToggleButton("check")}else{if(b.jqx.browser.msie&&b.jqx.browser.version<9&&q&&!k.selection.isCollapsed()){t.widget.jqxToggleButton("check")}}}}break;case"button":default:if(t.refresh){t.refresh(t.widget,k.style)}break}})};if(l.length==0){g(j)}else{for(var h=0;h0){b(".jqx-editor-dropdownpicker").jqxDropDownButton("close")}if(b(".jqx-editor-dropdownlist").length>0){b(".jqx-editor-dropdownlist").jqxDropDownList("close")}}if(d.preventDefault){d.preventDefault()}if(d.stopPropagation){d.stopPropagation()}d.cancelBubble=true;d.returnValue=false},_addCommandHandler:function(g,f,i,h,d){var e=this;if(!i&&d.init){i="custom"}switch(i){case"custom":switch(d.type){case"list":action=function(j){if(e._documentMode!="source"){if(j.args.type!="none"){d.value=b(this).val();e.execute("custom",d);if(!e.readOnly){e._refreshTools()}}}e._preventDefault(j,false)};break;case"colorPicker":action=function(l){if(e._documentMode!="source"){var j=b(d.colorPicker).find("td").removeClass("jqx-editor-color-picker-selected-cell");if(l.target.nodeName.toLowerCase()=="div"){var k=b(l.target).css("background-color");b(l.target).parent().addClass("jqx-editor-color-picker-selected-cell")}else{var k=b(l.target).find("div").css("background-color");b(l.target).addClass("jqx-editor-color-picker-selected-cell")}b("#bar-"+i).css("background",k);d.widget.val=function(){var n=function(p){if(typeof p!="number"){return p}return"rgb("+(p&255)+", "+((p&65280)>>8)+", "+((p&16711680)>>16)+")"};var o=n(k);var m=e._rgbToHex(o);return m};d.widget.jqxDropDownButton("close");e.execute("custom",d)}e._preventDefault(l);return false};break;case"button":case"toggleButton":default:action=function(j){if(b(".jqx-editor-dropdownpicker").length>0){b(".jqx-editor-dropdownpicker").jqxDropDownButton("close")}if(b(".jqx-editor-dropdownlist").length>0){b(".jqx-editor-dropdownlist").jqxDropDownList("close")}e._preventDefault(j);var l=b(this).attr("data-command");var k=this;if(e._documentMode!="source"){if(d.toggle){d.toggle()}e.execute("custom",d);e._refreshTools()}return false};break}break;case"formatblock":action=function(j){if(e._documentMode!="source"){if(j.args.type!="none"){e.execute(b(this).attr("data-command"),"<"+b(this).val()+">",d);if(!e.readOnly){e.commands.bold.toggled=false;e._refreshTools()}}}e._preventDefault(j,false)};break;case"fontsize":action=function(j){if(e._documentMode!="source"){if(j.args.type!="none"){var l=b(this).val();var m="xx-small,x-small,small,medium,large,x-large,xx-large".split(",");var k=b(this).jqxDropDownList("getSelectedIndex")+1;var k=1+m.indexOf(l);e.execute(b(this).attr("data-command"),k,d)}}e._preventDefault(j,false)};break;case"fontname":action=function(j){if(e._documentMode!="source"){if(j.args.type!="none"){var k=b(this).val();e.execute(b(this).attr("data-command"),k,d)}}e._preventDefault(j,false)};break;case"forecolor":case"backcolor":action=function(l){if(e._documentMode!="source"){var j=b(d.colorPicker).find("td").removeClass("jqx-editor-color-picker-selected-cell");if(l.target.nodeName.toLowerCase()=="div"){var k=b(l.target).css("background-color");b(l.target).parent().addClass("jqx-editor-color-picker-selected-cell")}else{var k=b(l.target).find("div").css("background-color");b(l.target).addClass("jqx-editor-color-picker-selected-cell")}b("#bar-"+i).css("background",k);d.widget.jqxDropDownButton("close");e.execute(i,k,d)}e._preventDefault(l);return false};break;case"viewsource":action=function(j){if(e.linkPopup){e.linkPopup.remove()}d.toggle();e.setMode(d.toggled);if(b(".jqx-editor-dropdownpicker").length>0){b(".jqx-editor-dropdownpicker").jqxDropDownButton("close")}if(b(".jqx-editor-dropdownlist").length>0){b(".jqx-editor-dropdownlist").jqxDropDownList("close")}e._preventDefault(j);return false};break;case"insertimage":action=function(j){e._insertImageAction(j,e,d)};break;case"createlink":action=function(j){e._createLinkAction(j,e,d)};break;default:action=function(j){if(b(".jqx-editor-dropdownpicker").length>0){b(".jqx-editor-dropdownpicker").jqxDropDownButton("close")}if(b(".jqx-editor-dropdownlist").length>0){b(".jqx-editor-dropdownlist").jqxDropDownList("close")}e._preventDefault(j);var m=b(this).attr("data-command");var k=this;if(e._documentMode!="source"){if(m=="underline"){if(e.getSelectedElement()){var l=e.getSelectedElement();if(l&&l.nodeName.toLowerCase()=="a"){if(d.toggled){b(l).css("text-decoration","none")}else{b(l).css("text-decoration","underline")}d.toggle();e._refreshTools();return false}}}if(d.toggle){d.toggle()}e.execute(m,b(this).val(),d);e._refreshTools()}return false};break}e.addHandler(g,f,action);return false},_createLinkAction:function(d,k,l){var k=this;if(k._documentMode=="source"){k._preventDefault(d);return}if(!k.focused){k.editor.focus()}k.range=k.getRange();var e=k.getSelectedElement();if(e.nodeName.toLowerCase()=="a"){k.editLink=e}else{k.editLink=null}if(b("#linkWindow"+this.element.id).length>0){if(k.editLink){k.selection.selectNode(e,true)}k._updateLinkWindow();k._preventDefault(d);return false}var m=b("");m[0].id="linkWindow"+this.element.id;var j=m.find("input");j.addClass(k.toThemeProperty("jqx-widget"));j.addClass(k.toThemeProperty("jqx-widget-content"));j.addClass(k.toThemeProperty("jqx-input"));var i=m.find(".jqx-editor-link-checkbox").jqxCheckBox({theme:k.theme,height:23,width:180});var g=m.find("button:first").jqxButton({theme:k.theme,disabled:true});var o=b(m.find("button")[1]).jqxButton({theme:k.theme});var h=m.find("button:last").jqxButton({theme:k.theme});g.val(k.localization.Ok);h.val(k.localization.Cancel);o.val(k.localization.Remove);k.addHandler(h,!b.jqx.mobile.isTouchDevice()?"click":b.jqx.mobile.getTouchEventName("touchstart"),function(p){k.editor.focus();k.selectRange(k.range);k._refreshTools();k._preventDefault(p)});if(!k.editLink||(k.editLink&&!k.editLink.href)){o.hide()}var f=false;k.addHandler(b(j[0]),"focus",function(){if(j[1].value==""||j[1].value==j[0].value){f=true}else{f=false}});k.addHandler(b(j[1]),"keyup",function(p){if(p.keyCode){if(p.keyCode==13){g.trigger("click")}if(p.keyCode==27){h.trigger("click")}}});k.addHandler(b(j[0]),"keyup change",function(p){if(j[0].value.length>0){g.jqxButton({disabled:false})}else{g.jqxButton({disabled:true})}if(f){j[1].value=j[0].value}if(p.keyCode){if(p.keyCode==13){g.trigger("click")}if(p.keyCode==27){h.trigger("click")}}});k.addHandler(o,!b.jqx.mobile.isTouchDevice()?"click":b.jqx.mobile.getTouchEventName("touchstart"),function(p){m.jqxWindow("close");try{k.editor.focus();k.selection.selectNode(k.editLink);k.execute("unlink");k.selection.collapse(false);k.commands.underline.toggled=false;k._refreshTools()}catch(q){}k._preventDefault(p)});k.addHandler(g,!b.jqx.mobile.isTouchDevice()?"click":b.jqx.mobile.getTouchEventName("touchstart"),function(s){var q=m.find("input");var r=b(""+(q[1].value||q[0].value)+"");if(i.val()){r.attr("target","_blank")}r[0].href=b.trim(q[0].value);if(q[0].value.indexOf("http")==-1&&q[0].value.indexOf("mailto")==-1){r[0].href="http://"+b.trim(q[0].value)}if(!k.focused){k.editor.focus()}if(k.range){k.selectRange(k.range)}if(k.editLink){b(k.editLink).remove()}k.execute("insertHTML",""+r[0].outerHTML+" ",l);k.editor.focus();var p=b(k.editorDocument).find("#INSERTION_MARKER");k.selection.selectNode(p[0],true);if(k.getRange().setStartAfter){k.getRange().setStartAfter(p[0])}p.remove();k.selection.collapse(false);k._refreshTools();k._preventDefault(s)});k.updating=true;m.appendTo(document.body);k.addHandler(m,"open",function(){k.updating=true;setTimeout(function(){k.range=k.getRange();b(j[0]).focus()},25)});m.jqxWindow({resizable:false,width:280,okButton:g,cancelButton:h,theme:k.theme,isModal:true,position:{center:k.widget}});k.addHandler(m,"close",function(){k.updating=false});if(!k.focused){k.editor.focus();k.selectRange(k.range)}if(k.editLink){j[0].value=k.editLink.href||"";j[1].value=b(k.editLink).text();i.val(b(k.editLink).attr("target")=="_blank")}else{if(!k.selection.isCollapsed()){var n=k.selection.getText();if(n.match(/^(?!:\/\/)([a-zA-Z0-9]+\.)?[a-zA-Z0-9][a-zA-Z0-9-]+\.[a-zA-Z]{2,6}?$/i)){j[0].value=n}else{j[1].value=n}}}if(j[0].value.length>0){g.jqxButton({disabled:false})}else{g.jqxButton({disabled:true})}k._preventDefault(d);return false},_insertImageAction:function(j,i,g){if(i._documentMode=="source"){i._preventDefault(j);return}if(!i.focused){i.editor.focus()}i.range=i.getRange();if(b("#imageWindow"+this.element.id).length>0){i._updateImageWindow();i._preventDefault(j);return false}var h=b("
              "+i.localization["Insert Image"]+"
              "+i.localization.URL+":
              "+i.localization["Alt Text"]+":
              "+i.localization.Width+":
              "+i.localization.Height+":
              "+i.localization.HSpace+":
              "+i.localization.VSpace+":
              "+i.localization.Align+":
              ");h[0].id="imageWindow"+this.element.id;var e=h.find("input");e.addClass(i.toThemeProperty("jqx-widget"));e.addClass(i.toThemeProperty("jqx-widget-content"));e.addClass(i.toThemeProperty("jqx-input"));h.find(".jqx-editor-align").jqxDropDownList({autoDropDownHeight:true,selectedIndex:0,theme:i.theme,height:23,width:180,source:[i.localization["not set"],i.localization.Left,i.localization.Right]});var f=h.find("button:first").jqxButton({theme:i.theme});var k=h.find("button:last").jqxButton({theme:i.theme});var d=b(h.find("button")[1]).jqxButton({theme:i.theme});f.val(i.localization.Ok);k.val(i.localization.Cancel);d.val(i.localization.Remove);d.hide();i.addHandler(d,!b.jqx.mobile.isTouchDevice()?"click":b.jqx.mobile.getTouchEventName("touchstart"),function(l){b(i.editImage).removeClass("jqx-editor-focus");b(i.editImage).remove();i.editImage=null;i._preventDefault(l);h.jqxWindow("close");i._raiseEvent("change")});i.addHandler(k,!b.jqx.mobile.isTouchDevice()?"click":b.jqx.mobile.getTouchEventName("touchstart"),function(l){b(i.editImage).removeClass("jqx-editor-focus");i.editImage=null;i._preventDefault(l)});i.addHandler(f,!b.jqx.mobile.isTouchDevice()?"click":b.jqx.mobile.getTouchEventName("touchstart"),function(o){b(i.editImage).removeClass("jqx-editor-focus");var m=h.find("input");var p=i.editImage?b(i.editImage):b('');var n=p.attr("src",m[0].value).attr("unselectable","on");if(m[1].value){n.attr("alt",m[1].value).attr("title",m[1].value)}if(m[2].value&&!isNaN(parseInt(m[2].value))){n.width(m[2].value)}else{n.css("width","auto")}if(m[3].value&&!isNaN(parseInt(m[3].value))){n.height(m[3].value)}else{n.css("height","auto")}if(m[4].value){if(m[4].value.toString()=="auto"){n.css("margin-left","auto");n.css("margin-right","auto")}else{if(m[4].value.toString().indexOf("%")!=-1){n.css("margin-left",parseInt(m[4].value)+"%");n.css("margin-right",parseInt(m[4].value)+"%")}else{n.css("margin-left",parseInt(m[4].value)+"px");n.css("margin-right",parseInt(m[4].value)+"px")}}}else{n.css("margin-left","0px");n.css("margin-right","0px")}if(m[5].value){if(m[5].value.toString()=="auto"){n.css("margin-top","auto");n.css("margin-bottom","auto")}else{if(m[5].value.toString().indexOf("%")!=-1){n.css("margin-top",parseInt(m[5].value)+"%");n.css("margin-bottom",parseInt(m[5].value)+"%")}else{n.css("margin-top",parseInt(m[5].value)+"px");n.css("margin-bottom",parseInt(m[5].value)+"px")}}}else{n.css("margin-top","0px");n.css("margin-bottom","0px")}var q=h.find(".jqx-editor-align").jqxDropDownList("selectedIndex");if(q==1){n.css("float","left")}else{if(q==2){n.css("float","right")}else{if(q==0){n.css("float","none")}}}n.css("resize",false);n[0].oncontrolselect=function(){return false};n[0].selectstart=function(){return false};if(!i.editImage){if(!i.focused){i.editor.focus()}if(i.range){i.selectRange(i.range)}i.execute("insertHTML",n[0].outerHTML+" ",g);i.editor.focus();var l=b(i.editorDocument).find("#INSERTION_MARKER");i.selection.selectNode(l[0],true);if(i.getRange().setStartAfter){i.getRange().setStartAfter(l[0])}l.remove();i.selection.collapse(false);i._refreshTools();i._preventDefault(o)}i.editImage=null;i._preventDefault(o)});h.appendTo(document.body);i.updating=true;i.addHandler(h,"open",function(){i.updating=true;setTimeout(function(){i.range=i.getRange();b(e[0]).focus()},25)});h.jqxWindow({resizable:false,width:280,okButton:f,cancelButton:k,theme:i.theme,isModal:true,position:{center:i.widget}});i.addHandler(h,"close",function(){i.updating=false});if(!i.focused){i.editor.focus();i.selectRange(i.range)}i._preventDefault(j);return false},editmode:function(f){var e=this;if(!f&&!e.readOnly){e._removeHandlers();e.editor.attr("contentEditable",false);var d=document.createTextNode(e.editor.html());var g=b("
              ");g.html(d).attr({id:"sourceText",contentEditable:true}).css("height","100%");e.editor.html(g);if(e.buttons.hasOwnProperty("html")){e.buttons.html.addClass("active")}g.focus()}else{if(f&&e.readOnly){var d=e.editor.find("#sourceText").text();e.editor.html(d);if(e.buttons.hasOwnProperty("html")){e.buttons.html.removeClass("active")}e.editor.attr("contentEditable",true);e._addHandlers()}}e.readOnly=!f},setMode:function(f){var i=this;if(!i.range){i.editor.focus();i.range=i.getRange()}var h;var e=i.editor[0];if(f){i._documentMode="source";var k=new c();var j=k.HTMLtoXML(e.innerHTML);j=k.FormatHTML(j);h=document.createTextNode(j);e.innerHTML="";var d=document.createElement("pre");e.contentEditable=false;d.style.height="100%";d.style.margin="0px";d.style.outline="none";d.style.display="block";d.id="sourceText";d.contentEditable=true;d.appendChild(h);e.appendChild(d);this.readOnly=true}else{this._documentMode="html";if(document.all){e.innerHTML=e.innerText}else{if(e.textContent){e.innerHTML=e.textContent}else{h=document.createRange();h.selectNodeContents(e.firstChild);e.innerHTML=h.toString()}}e.contentEditable=true;i.readOnly=false;i._refreshTools();i.editor.focus();i.selection.selectNode(i.editor[0]);i.editor.scrollTop(0);i.selection.collapse(true)}b.each(this.commands,function(){if(this.widget){if(this.command!="viewsource"){switch(this.type){case"list":this.widget.jqxDropDownList({disabled:f});break;case"colorPicker":this.widget.jqxDropDownButton({disabled:f});break;case"button":this.widget.jqxButton({disabled:f});break;case"toggleButton":this.widget.jqxToggleButton({toggled:false,disabled:f});break}}}});i.editor.focus();if(b.jqx.browser.mozilla){var g=b("anchor");i.editor.prepend(g);g.focus();g.remove();i.selection.collapse(true)}if(i.commands.html.widget){i.commands.html.widget.jqxToggleButton({toggled:f=="source"||f==true});i.commands.html.toggled=f=="source"||f==true}},execute:function(i,f,e){var g=this;if(!g.readOnly){var j=g.editorDocument;if(g._documentMode=="source"){return}g.changeType="mouse";if(g.linkPopup){g.linkPopup.remove()}g.editor.focus();if(b.jqx.browser.mozilla){}if(b.jqx.mobile.isTouchDevice()){setTimeout(function(){},25)}var d=function(m){try{if(m.command&&m.command.toLowerCase()=="inserthtml"){var l=g.getRange();var n=m.value;if(n.toString().indexOf("<")==-1){n=""+m.value+""}g.selection.insertContent(""+n+" ");g.selectRange(l);setTimeout(function(){var p=b(g.editorDocument).find("#INSERTION_MARKER");g.selection.selectNode(b(p).prev()[0],true);p.remove();g.selection.collapse(false)},10)}else{if(m.command){if(j.queryCommandEnabled(m.command)){j.execCommand(m.command,false,m.value)}else{return false}}else{if(j.queryCommandEnabled(m)){j.execCommand(m,false,m)}else{return false}}}}catch(o){}};if(i=="custom"){var h=f.action(f.widget,g.editor);if(h){d(h)}}else{try{if(e&&e.action){var h=e.action(e.widget,g.editor);d(h)}else{if(j.queryCommandEnabled(i)){j.execCommand(i,false,f)}else{if(i=="insertHTML"){g.selection.insertContent(f)}else{return false}}}}catch(k){if(i=="insertHTML"){g.selection.insertContent(f)}else{return false}}}if(b.jqx.mobile.isTouchDevice()){setTimeout(function(){if(g.iframe){g.iframe[0].contentWindow.focus()}},500)}g._raiseEvent("change",{command:i,args:f});g.changed=true;g.range=g.getRange()}},destroy:function(){var h=this;h._removeHandlers();var l=h.tools.split(" ");var g=h.tools.split(" | ");b.jqx.utilities.resize(this.host,null,true);var f=function(i){b.each(i,function(n,o){var m=h.commands[this];if(!m){return true}switch(m.type){case"list":m.widget.jqxDropDownList("destroy");break;case"colorPicker":m.colorPicker.remove();m.widget.jqxDropDownButton("destroy");break;case"toggleButton":m.widget.jqxToggleButton("destroy");break;case"custom":if(h.destroyTool){h.destroyTool(this)}break;case"button":default:m.widget.jqxToggleButton("destroy");if(m.command==="insertimage"){if(b("#imageWindow"+h.element.id).length>0){b("#imageWindow"+h.element.id).find(".jqx-editor-align").jqxDropDownList("destroy");b("#imageWindow"+h.element.id).find("button").jqxButton("destroy")}}else{if(m.command==="createlink"){if(b("#linkWindow"+h.element.id).length>0){b("#linkWindow"+h.element.id).find(".jqx-editor-align").jqxDropDownList("destroy");b("#linkWindow"+h.element.id).find("button").jqxButton("destroy");b("#linkWindow"+h.element.id).find(".jqx-editor-link-checkbox").jqxCheckBox("destroy")}}}break}})};if(g.length==0){f(l)}else{for(var e=0;e0){j.jqxWindow("destroy")}if(k&&k.length>0){k.jqxWindow("destroy")}if(h.inline){h.toolbar.remove()}else{h.widget.remove();h.host.remove()}h.iframe.remove();h.iframe=null;h.selection=null;h.editorDocument=null;h.contentEditableElement=null},val:function(d){if(d!=undefined&&typeof d!="object"){this.editor.html(d)}return this.editor.html()},_raiseEvent:function(h,e){if(e==undefined){e={owner:null}}if(this._documentMode=="source"){return true}var f=h;e.type=this.changeType;this.changeType=null;args=e;args.owner=this;var g=new b.Event(f);g.owner=this;g.args=args;if(this._textArea){var d=b(this._textArea).trigger(g)}else{var d=this.host.trigger(g)}e=g.args;return d}});var a=function(d){var e={initialize:function(f){this.document=f},getSelection:function(){return(this.document.getSelection)?this.document.getSelection():this.document.selection},getRange:function(){var f=this.getSelection();if(!f){return null}try{return f.rangeCount>0?f.getRangeAt(0):(this.document.createRange?this.document.createRange():this.document.selection.createRange())}catch(g){return this.document.body.createTextRange()}},selectRange:function(f){if(f.select){f.select()}else{var g=this.getSelection();if(g.addRange){g.removeAllRanges();g.addRange(f)}}},selectNode:function(i,j){var h=this.getRange();var g=this.getSelection();if(h.moveToElementText){h.moveToElementText(i);h.select()}else{if(g.addRange){try{j?h.selectNodeContents(i):h.selectNode(i);g.removeAllRanges();g.addRange(h)}catch(f){var k=f}}else{g.setBaseAndExtent(i,0,i,1)}}return i},isCollapsed:function(){var f=this.getRange();if(f.item){return false}return f.boundingWidth==0||this.getSelection().isCollapsed},collapse:function(f){var h=this.getRange();var g=this.getSelection();if(h.select){h.collapse(f);h.select()}else{f?g.collapseToStart():g.collapseToEnd()}},getContent:function(){var h=this.getRange();var f=b("
              ")[0];if(this.isCollapsed()){return""}if(h.cloneContents){f.appendChild(h.cloneContents())}else{if(h.item!=undefined||h.htmlText!=undefined){b(f).html(h.item?h.item(0).outerHTML:h.htmlText)}else{b(f).html(h.toString())}}var g=b(f).html();return g},getText:function(){var g=this.getRange();var f=this.getSelection();return this.isCollapsed()?"":g.text||(f.toString?f.toString():"")},getNode:function(){var g=this.getRange();if(!b.jqx.browser.msie||b.jqx.browser.version>=9){var f=null;if(g){f=g.commonAncestorContainer;if(!g.collapsed){if(g.startContainer==g.endContainer){if(g.startOffset-g.endOffset<2){if(g.startContainer.hasChildNodes()){f=g.startContainer.childNodes[g.startOffset]}}}}while(typeof(f)!="element"){f=f.parentNode}}return d.id(f)}return d.id(g.item?g.item(0):g.parentElement())},insertContent:function(i){var h=this.getRange();if(h.pasteHTML){h.pasteHTML(i);h.collapse(false);h.select()}else{if(h.insertNode){h.deleteContents();if(h.createContextualFragment){h.insertNode(h.createContextualFragment(i))}else{var j=this.document;var g=j.createDocumentFragment();var f=j.createElement("div");g.appendChild(f);f.outerHTML=i;h.insertNode(g)}}}}};e.initialize(d);return e};var c=function(){var n=/^<([-A-Za-z0-9_]+)((?:\s+\w+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)>/,f=/^<\/([-A-Za-z0-9_]+)[^>]*>/,j=/([-A-Za-z0-9_]+)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|([^>\s]+)))?/g;var i=e("area,base,basefont,br,col,frame,hr,img,input,isindex,link,meta,param,embed");var d=e("address,applet,blockquote,button,center,dd,del,dir,div,dl,dt,fieldset,form,frameset,hr,iframe,ins,isindex,li,map,menu,noframes,noscript,object,ol,p,pre,script,table,tbody,td,tfoot,th,thead,tr,ul");var l=e("a,abbr,acronym,applet,b,basefont,bdo,big,br,button,cite,code,del,dfn,em,font,i,iframe,img,input,ins,kbd,label,map,object,q,s,samp,script,select,small,span,strike,strong,sub,sup,textarea,tt,u,var");var g=e("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr");var m=e("checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected");var k=e("script,style");var h=this.HTMLParser=function(p,x){var s,t,q,u=[],v=p;u.last=function(){return this[this.length-1]};while(p){t=true;if(!u.last()||!k[u.last()]){if(p.indexOf("");if(s>=0){if(x.comment){x.comment(p.substring(4,s))}p=p.substring(s+3);t=false}}else{if(p.indexOf("]*>"),function(y,z){z=z.replace(//g,"$1").replace(//g,"$1");if(x.chars){x.chars(z)}return""});r("",u.last())}v=p}r();function o(y,B,C,z){B=B.toLowerCase();if(d[B]){while(u.last()&&l[u.last()]){r("",u.last())}}if(g[B]&&u.last()==B){r("",B)}z=i[B]||!!z;if(!z){u.push(B)}if(x.start){var A=[];C.replace(j,function(E,D){var F=arguments[2]?arguments[2]:arguments[3]?arguments[3]:arguments[4]?arguments[4]:m[D]?D:"";A.push({name:D,value:F,escaped:F.replace(/(^|[^\\])"/g,'$1\\"')})});if(x.start){x.start(B,A,z)}}}function r(y,A){if(!A){var B=0}else{for(var B=u.length-1;B>=0;B--){if(u[B].toLowerCase()==A.toLowerCase()){break}}}if(B>=0){for(var z=u.length-1;z>=B;z--){if(x.end){x.end(u[z])}}u.length=B}}};this.HTMLtoXML=function(p){var o="";p=p.replace(/\r/ig,"");p=p.replace(/\n/ig,"");h(p,{start:function(q,s,r){o+="<"+q;for(var t=0;t"},end:function(q){o+="\r\n"},chars:function(q){o+=q},comment:function(q){o+=""}});return o};this.FormatHTML=function(D,r){var H,C,A,u,v,G;r=r||{};C=r.indent_size||4;A=r.indent_char||" ";v=r.brace_style||"collapse";u=Infinity;G=r.unformatted||["a","span","bdo","em","strong","dfn","code","samp","kbd","var","cite","abbr","acronym","q","sub","sup","tt","i","b","big","small","u","s","strike","font","ins","del","pre","address","dt","h1","h2","h3","h4","h5","h6"];function q(){this.pos=0;this.token="";this.current_mode="CONTENT";this.tags={parent:"parent1",parentcount:1,parent1:""};this.tag_type="";this.token_text=this.last_token=this.last_text=this.token_type="";this.Utils={whitespace:"\n\r\t ".split(""),single_token:"br,input,link,meta,!doctype,basefont,base,area,hr,wbr,param,img,isindex,?xml,embed,?php,?,?=".split(","),extra_liners:"head,body,/html".split(","),in_array:function(J,t){for(var I=0;I=this.input.length){return J.length?J.join(""):["","TK_EOF"]}t=this.input.charAt(this.pos);this.pos++;this.line_char_count++;if(this.Utils.in_array(t,this.Utils.whitespace)){if(J.length){K=true}this.line_char_count--;continue}else{if(K){if(this.line_char_count>=this.max_char){J.push("\n");for(var I=0;I","igm");L.lastIndex=this.pos;var I=L.exec(this.input);var M=I?I.index:this.input.length;if(this.pos=this.input.length){return M.length?M.join(""):["","TK_EOF"]}K=this.input.charAt(this.pos);this.pos++;this.line_char_count++;if(this.Utils.in_array(K,this.Utils.whitespace)){t=true;this.line_char_count--;continue}if(K==="'"||K==='"'){if(!M[1]||M[1]!=="!"){K+=this.get_unformatted(K);t=true}}if(K==="="){t=false}if(M.length&&M[M.length-1]!=="="&&K!==">"&&t){if(this.line_char_count>=this.max_char){this.print_newline(false,M);this.line_char_count=0}else{M.push(" ");this.line_char_count++}t=false}if(K==="<"){O=this.pos-1}M.push(K)}while(K!==">");var P=M.join("");var I;if(P.indexOf(" ")!=-1){I=P.indexOf(" ")}else{I=P.indexOf(">")}var N=P.substring(1,I).toLowerCase();if(P.charAt(P.length-2)==="/"||this.Utils.in_array(N,this.Utils.single_token)){this.tag_type="SINGLE"}else{if(N==="script"){this.record_tag(N);this.tag_type="SCRIPT"}else{if(N==="style"){this.record_tag(N);this.tag_type="STYLE"}else{if(this.Utils.in_array(N,G)){var L=this.get_unformatted("",P);M.push(L);if(O>0&&this.Utils.in_array(this.input.charAt(O-1),this.Utils.whitespace)){M.splice(0,0,this.input.charAt(O-1))}J=this.pos-1;if(this.Utils.in_array(this.input.charAt(J+1),this.Utils.whitespace)){M.push(this.input.charAt(J+1))}this.tag_type="SINGLE"}else{if(N.charAt(0)==="!"){if(N.indexOf("[if")!=-1){if(P.indexOf("!IE")!=-1){var L=this.get_unformatted("-->",P);M.push(L)}this.tag_type="START"}else{if(N.indexOf("[endif")!=-1){this.tag_type="END";this.unindent()}else{if(N.indexOf("[cdata[")!=-1){var L=this.get_unformatted("]]>",P);M.push(L);this.tag_type="SINGLE"}else{var L=this.get_unformatted("-->",P);M.push(L);this.tag_type="SINGLE"}}}}else{if(N.charAt(0)==="/"){this.retrieve_tag(N.substring(1));this.tag_type="END"}else{this.record_tag(N);this.tag_type="START"}if(this.Utils.in_array(N,this.Utils.extra_liners)){this.print_newline(true,this.output)}}}}}}return M.join("")};this.get_unformatted=function(I,J){if(J&&J.indexOf(I)!=-1){return""}var t="";var K="";var L=true;do{if(this.pos>=this.input.length){return K}t=this.input.charAt(this.pos);this.pos++;if(this.Utils.in_array(t,this.Utils.whitespace)){if(!L){this.line_char_count--;continue}if(t==="\n"||t==="\r"){K+="\n";this.line_char_count=0;continue}}K+=t;this.line_char_count++;L=true}while(K.indexOf(I)==-1);return K};this.get_token=function(){var t;if(this.last_token==="TK_TAG_SCRIPT"||this.last_token==="TK_TAG_STYLE"){var I=this.last_token.substr(7);t=this.get_contents_to(I);if(typeof t!=="string"){return t}return[t,"TK_"+I]}if(this.current_mode==="CONTENT"){t=this.get_content();if(typeof t!=="string"){return t}else{return[t,"TK_CONTENT"]}}if(this.current_mode==="TAG"){t=this.get_tag();if(typeof t!=="string"){return t}else{var J="TK_TAG_"+this.tag_type;return[t,J]}}};this.get_full_indent=function(t){t=this.indent_level+t||0;if(t<1){return""}return Array(t+1).join(this.indent_string)};this.printer=function(K,J,t,M,L){this.input=K||"";this.output=[];this.indent_character=J;this.indent_string="";this.indent_size=t;this.brace_style=L;this.indent_level=0;this.max_char=M;this.line_char_count=0;for(var I=0;I0){this.indent_level--}}};return this}H=new q();H.printer(D,A,C,u,v);while(true){var w=H.get_token();H.token_text=w[0];H.token_type=w[1];if(H.token_type==="TK_EOF"){break}switch(H.token_type){case"TK_TAG_START":H.print_newline(false,H.output);H.print_token(H.token_text);H.indent();H.current_mode="CONTENT";break;case"TK_TAG_STYLE":case"TK_TAG_SCRIPT":H.print_newline(false,H.output);H.print_token(H.token_text);H.current_mode="CONTENT";break;case"TK_TAG_END":if(H.last_token==="TK_CONTENT"&&H.last_text===""){var F=H.token_text.match(/\w+/)[0];var y=H.output[H.output.length-1].match(/<\s*(\w+)/);if(y===null||y[1]!==F){H.print_newline(true,H.output)}}H.print_token(H.token_text);H.current_mode="CONTENT";break;case"TK_TAG_SINGLE":var o=H.token_text.match(/^\s*<([a-z]+)/i);if(!o||!H.Utils.in_array(o[1],G)){H.print_newline(false,H.output)}H.print_token(H.token_text);H.current_mode="CONTENT";break;case"TK_CONTENT":if(H.token_text!==""){H.print_token(H.token_text)}H.current_mode="TAG";break;case"TK_STYLE":case"TK_SCRIPT":if(H.token_text!==""){H.output.push("\n");var x=H.token_text;if(r.indent_scripts=="keep"){var z=0}else{if(r.indent_scripts=="separate"){var z=-H.indent_level}else{var z=1}}var p=H.get_full_indent(z);var s=x.match(/^\s*/)[0];var B=s.match(/[^\n\r]*$/)[0].split(H.indent_string).length-1;var E=H.get_full_indent(z-B);x=x.replace(/^\s*/,p).replace(/\r\n|\r|\n/g,"\n"+E).replace(/\s*$/,"");if(x){H.print_token(x);H.print_newline(true,H.output)}}H.current_mode="TAG";break}H.last_token=H.token_type;H.last_text=H.token_text}return H.output.join("")};function e(r){var q={},o=r.split(",");for(var p=0;p
              ");this._header=this.host.children("div:eq(0)");this._content=this.host.children("div:eq(1)");if(this.headerPosition=="bottom"){this._header.detach();this.host.append(this._header)}this._header_text=this._header.children("div:eq(0)");var d=this._header_text[0].className;this._header.addClass(d);this._header_text.removeClass();if(!this.rtl){this._header_text.addClass(this.toThemeProperty("jqx-expander-header-content"))}else{this._header_text.addClass(this.toThemeProperty("jqx-expander-header-content-rtl"))}this._header.append("
              ");this._arrow=this._header.children("div:eq(1)");if(this.showArrow==true){this._arrow.css("display","inherit")}else{this._arrow.css("display","none")}this.tI=-1;if(this._header.attr("tabindex")==undefined){this.tI++;this._header.attr("tabindex",this.tI)}if(this._content.attr("tabindex")==undefined){this.tI++;this._content.attr("tabindex",this.tI)}this._setTheme();this._checkContent();var b="Invalid jqxExpander structure. Please add only two child div elements to your jqxExpander div that will represent the expander's header and content.";try{if(this._header.length==0||this._content.length==0||this.host.children().length<2||this.host.children().length>2){throw b}}catch(c){alert(c)}this._expandChecker;this._initialized;if(this.expanded==true){if(this.headerPosition=="top"){this._arrow.addClass(this.toThemeProperty("jqx-icon-arrow-up"));this._arrow.addClass(this.toThemeProperty("jqx-icon-arrow-up-selected"));this._arrow.addClass(this.toThemeProperty("jqx-expander-arrow-bottom"));this._arrow.addClass(this.toThemeProperty("jqx-expander-arrow-expanded"))}else{if(this.headerPosition=="bottom"){this._arrow.addClass(this.toThemeProperty("jqx-icon-arrow-down"));this._arrow.addClass(this.toThemeProperty("jqx-icon-arrow-down-selected"));this._arrow.addClass(this.toThemeProperty("jqx-expander-arrow-top"));this._arrow.addClass(this.toThemeProperty("jqx-expander-arrow-expanded-top"))}}if(this.initContent){this._setSize();this.initContent()}this._initialized=true;this._expandChecker=0}else{if(this.expanded==false){this._arrow.removeClass(this.toThemeProperty("jqx-icon-arrow-down-selected"));this._arrow.removeClass(this.toThemeProperty("jqx-icon-arrow-up-selected"));if(this.headerPosition=="top"){this._arrow.addClass(this.toThemeProperty("jqx-icon-arrow-down"));this._arrow.addClass(this.toThemeProperty("jqx-expander-arrow-top"))}else{if(this.headerPosition=="bottom"){this._arrow.addClass(this.toThemeProperty("jqx-icon-arrow-up"));this._arrow.addClass(this.toThemeProperty("jqx-expander-arrow-bottom"))}}this._initialized=false;this._expandChecker=1;this._content.css("display","none")}}this._setSize();if(this.disabled==false){this._toggle()}this._keyBoard();var e=this;a.jqx.utilities.resize(this.host,function(){e.invalidate()})},destroy:function(){this.removeHandler(a(window),"resize.expander"+this.widgetID);this.host.remove();a(this.element).removeData("jqxExpander")},focus:function(){try{if(this.disabled==false){this._header.focus()}}catch(b){}},propertyChangedHandler:function(b,c,e,d){if(c=="expanded"){if(d==true&&e==false){this.expanded=false;this.expand()}else{if(d==false&&e==true){this.expanded=true;this.collapse()}}}else{this.refresh()}},_raiseEvent:function(g,e){var c=this.events[g];var f=new a.Event(c);f.owner=this;f.args=e;try{var b=this.host.trigger(f)}catch(d){}return b},resize:function(c,b){this.width=c;this.height=b;this._setSize()},_setSize:function(){this.host.width(this.width);this.host.height(this.height);this._header.height("auto");this._header.css("min-height",this._arrow.height());var c=this.arrowPosition;if(this.rtl){switch(c){case"left":c="right";break;case"right":c="left";break}}if(c=="right"){this._header_text.css({"float":"left","margin-left":"0px"});this._arrow.css({"float":"right",position:"relative"})}else{if(c=="left"){if(this.width=="auto"){this._header_text.css({"float":"left","margin-left":"17px"});this._arrow.css({"float":"left",position:"absolute"})}else{this._header_text.css({"float":"right","margin-left":"0px"});this._arrow.css({"float":"left",position:"relative"})}}}this._arrow.css("margin-top",this._header_text.height()/2-this._arrow.height()/2);if(this.height=="auto"){this._content.height("auto");this._contentHeight=this._content.height()}else{this._content.height("auto");var b=Math.round(this.host.height())-Math.round(this._header.outerHeight())-1;if(b<0){b=0}if(!this._contentHeight){this._contentHeight=this._content.height()}if(b!=this._contentHeight){this._content.height(b);this._contentHeight=Math.round(this._content.outerHeight())}else{this._content.height(this._contentHeight)}}},_toggle:function(){var b=this;if(this._isTouchDevice==false){this._header.removeClass(this.toThemeProperty("jqx-expander-header-disabled"));switch(this.toggleMode){case"click":this.addHandler(this._header,"click.expander"+this.widgetID,function(){b._animate()});break;case"dblclick":this.addHandler(this._header,"dblclick.expander"+this.widgetID,function(){b._animate()});break;case"none":this._header.addClass(this.toThemeProperty("jqx-expander-header-disabled"));break}}else{if(this.toggleMode!="none"){this.addHandler(this._header,a.jqx.mobile.getTouchEventName("touchstart")+"."+this.widgetID,function(){b._animate()})}else{return}}},_animate:function(){if(this.expanded==true){this.collapse();this._header.addClass(this.toThemeProperty("jqx-fill-state-hover"));this._header.addClass(this.toThemeProperty("jqx-expander-header-hover"));if(this.headerPosition=="top"){this._arrow.addClass(this.toThemeProperty("jqx-expander-arrow-top-hover"));this._arrow.addClass(this.toThemeProperty("jqx-expander-arrow-down-hover"))}else{if(this.headerPosition=="bottom"){this._arrow.addClass(this.toThemeProperty("jqx-expander-arrow-bottom-hover"));this._arrow.addClass(this.toThemeProperty("jqx-expander-arrow-up-hover"))}}}else{this.expand();this._header.removeClass(this.toThemeProperty("jqx-fill-state-hover"));this._header.removeClass(this.toThemeProperty("jqx-expander-header-hover"));if(this.headerPosition=="top"){this._arrow.removeClass(this.toThemeProperty("jqx-expander-arrow-top-hover"));this._arrow.removeClass(this.toThemeProperty("jqx-expander-arrow-down-hover"))}else{if(this.headerPosition=="bottom"){this._arrow.removeClass(this.toThemeProperty("jqx-expander-arrow-bottom-hover"));this._arrow.removeClass(this.toThemeProperty("jqx-expander-arrow-up-hover"))}}}},_removeHandlers:function(){this.removeHandler(this._header,"click.expander"+this.widgetID);this.removeHandler(this._header,"dblclick.expander"+this.widgetID);this.removeHandler(this._header,"mouseenter.expander"+this.widgetID);this.removeHandler(this._header,"mouseleave.expander"+this.widgetID)},_setTheme:function(){var b=this;this.host.addClass(this.toThemeProperty("jqx-widget"));this._header.addClass(this.toThemeProperty("jqx-widget-header"));this._content.addClass(this.toThemeProperty("jqx-widget-content"));if(this.rtl==true){this.host.addClass(this.toThemeProperty("jqx-rtl"))}if(this.disabled==false){this._header.removeClass(this.toThemeProperty("jqx-expander-header-disabled"));this.host.removeClass(this.toThemeProperty("jqx-fill-state-disabled"));if(this.expanded==true){this._header.addClass(this.toThemeProperty("jqx-fill-state-pressed"));this._header.addClass(this.toThemeProperty("jqx-expander-header-expanded"))}else{this._header.addClass(this.toThemeProperty("jqx-fill-state-normal"));this._header.removeClass(this.toThemeProperty("jqx-expander-header-expanded"))}this._hovered=false;if(!b._isTouchDevice){this.addHandler(this._header,"mouseenter.expander"+this.widgetID,function(){b._hovered=true;if(b._expandChecker==1){b._header.removeClass(b.toThemeProperty("jqx-fill-state-normal"));b._header.removeClass(b.toThemeProperty("jqx-fill-state-pressed"));b._header.addClass(b.toThemeProperty("jqx-fill-state-hover"));b._header.addClass(b.toThemeProperty("jqx-expander-header-hover"));if(b.headerPosition=="top"){if(b.expanded){b._arrow.addClass(b.toThemeProperty("jqx-icon-arrow-up-hover"))}else{b._arrow.addClass(b.toThemeProperty("jqx-icon-arrow-down-hover"))}b._arrow.addClass(b.toThemeProperty("jqx-expander-arrow-top-hover"));b._arrow.addClass(b.toThemeProperty("jqx-expander-arrow-down-hover"))}else{if(b.headerPosition=="bottom"){if(b.expanded){b._arrow.addClass(b.toThemeProperty("jqx-icon-arrow-down-hover"))}b._arrow.addClass(b.toThemeProperty("jqx-expander-arrow-bottom-hover"));b._arrow.addClass(b.toThemeProperty("jqx-expander-arrow-up-hover"))}}}});this.addHandler(this._header,"mouseleave.expander"+this.widgetID,function(){b._hovered=false;b._header.removeClass(b.toThemeProperty("jqx-fill-state-hover"));b._arrow.removeClass(b.toThemeProperty("jqx-icon-arrow-up-hover"));b._arrow.removeClass(b.toThemeProperty("jqx-icon-arrow-down-hover"));b._header.removeClass(b.toThemeProperty("jqx-expander-header-hover"));if(b.headerPosition=="top"){b._arrow.removeClass(b.toThemeProperty("jqx-expander-arrow-top-hover"));b._arrow.removeClass(b.toThemeProperty("jqx-expander-arrow-down-hover"))}else{if(b.headerPosition=="bottom"){b._arrow.removeClass(b.toThemeProperty("jqx-expander-arrow-bottom-hover"));b._arrow.removeClass(b.toThemeProperty("jqx-expander-arrow-up-hover"))}}if(b._expandChecker==1){b._header.addClass(b.toThemeProperty("jqx-fill-state-normal"))}else{b._header.addClass(b.toThemeProperty("jqx-fill-state-pressed"))}})}}else{this.host.addClass(this.toThemeProperty("jqx-fill-state-disabled"));this._header.addClass(this.toThemeProperty("jqx-expander-header-disabled"))}this.host.addClass(this.toThemeProperty("jqx-expander"));this._header.addClass(this.toThemeProperty("jqx-expander-header"));this._content.addClass(this.toThemeProperty("jqx-expander-content"));if(this.headerPosition=="top"){this._content.addClass(this.toThemeProperty("jqx-expander-content-bottom"))}else{if(this.headerPosition=="bottom"){this._content.addClass(this.toThemeProperty("jqx-expander-content-top"))}}this._arrow.addClass(this.toThemeProperty("jqx-expander-arrow"))},_checkContent:function(){this._cntntEmpty=/^\s*$/.test(this._content.html());if(this._cntntEmpty==true){this._content.height(0);this._content.addClass(this.toThemeProperty("jqx-expander-content-empty"))}else{this._content.height(this._contentHeight);this._content.removeClass(this.toThemeProperty("jqx-expander-content-empty"))}},_keyBoard:function(){var b=this;this._focus();this.addHandler(this.host,"keydown.expander"+this.widgetID,function(c){var d=false;if((b.focusedH==true||b.focusedC==true)&&b.disabled==false){switch(c.keyCode){case 13:case 32:if(b.toggleMode!="none"){if(b.focusedH==true){b._animate()}d=true}break;case 38:if(c.ctrlKey==true&&b.focusedC==true){b._header.focus()}d=true;break;case 40:if(c.ctrlKey==true&&b.focusedH==true){b._content.focus()}d=true;break}return true}if(d&&c.preventDefault){c.preventDefault()}return !d})},_focus:function(){var b=this;this.addHandler(this._header,"focus.expander"+this.widgetID,function(){b.focusedH=true;a.jqx.aria(b._header,"aria-selected",true);b._header.addClass(b.toThemeProperty("jqx-fill-state-focus"))});this.addHandler(this._header,"blur.expander"+this.widgetID,function(){b.focusedH=false;a.jqx.aria(b._header,"aria-selected",false);b._header.removeClass(b.toThemeProperty("jqx-fill-state-focus"))});this.addHandler(this._header_text,"focus.expander"+this.widgetID,function(){b._header.focus()});this.addHandler(this._arrow,"focus.expander"+this.widgetID,function(){b._header.focus()});this.addHandler(this._content,"focus.expander"+this.widgetID,function(){b.focusedC=true;b._content.addClass(b.toThemeProperty("jqx-fill-state-focus"))});this.addHandler(this._content,"blur.expander"+this.widgetID,function(){b.focusedC=false;b._content.removeClass(b.toThemeProperty("jqx-fill-state-focus"))})}})})(jqxBaseFramework); \ No newline at end of file diff --git a/htdocs/public/jqwidgets/jqxfileupload.js b/htdocs/public/jqwidgets/jqxfileupload.js deleted file mode 100644 index 3f729f21..00000000 --- a/htdocs/public/jqwidgets/jqxfileupload.js +++ /dev/null @@ -1,7 +0,0 @@ -/* -jQWidgets v4.0.0 (2016-Jan) -Copyright (c) 2011-2016 jQWidgets. -License: http://jqwidgets.com/license/ -*/ - -(function(a){a.jqx.jqxWidget("jqxFileUpload","",{});a.extend(a.jqx._jqxFileUpload.prototype,{defineInstance:function(){var b={width:null,height:"auto",uploadUrl:"",fileInputName:"",autoUpload:false,multipleFilesUpload:true,accept:null,browseTemplate:"",uploadTemplate:"",cancelTemplate:"",localization:null,renderFiles:null,disabled:false,rtl:false,events:["select","remove","uploadStart","uploadEnd"]};a.extend(true,this,b)},createInstance:function(){var b=this;if(b.host.jqxButton===undefined){throw new Error("jqxFileUpload: Missing reference to jqxbuttons.js")}if(a.jqx.browser.msie){if(a.jqx.browser.version<11){b._ieOldWebkit=true;if(a.jqx.browser.version<8){b._ie7=true}}}else{if(a.jqx.browser.webkit){b._ieOldWebkit=true}}b._fluidWidth=typeof b.width==="string"&&b.width.charAt(b.width.length-1)==="%";b._fluidHeight=typeof b.height==="string"&&b.height.charAt(b.height.length-1)==="%";b._render(true)},_render:function(b){var c=this;c._setSize();c._addClasses();if(b===true){c._appendElements()}else{c._removeHandlers()}c._addHandlers();if(c._ie7){c._borderAndPadding("width",c.host);if(c.height!=="auto"){c._borderAndPadding("height",c.host)}}a.jqx.utilities.resize(c.host,null,true);a.jqx.utilities.resize(c.host,function(){if(c._fluidWidth){if(c._ie7){c.host.css("width",c.width);c._borderAndPadding("width",c.host)}for(var f=0;f0){for(var b=c._fileRows.length-1;b>=0;b--){c._uploadQueue.push(c._fileRows[b])}c._uploadFile(c._fileRows[0])}},cancelFile:function(b){var c=this;c._removeSingleFileRow(c._fileRows[b])},cancelAll:function(){var c=this;if(c._fileRows.length>0){for(var b=0;b8){e._uploadButton[o](e.toThemeProperty("jqx-file-upload-button-upload-rtl-ie"))}for(var i=0;i'+c+"");g.host.append(g._browseButton);g._browseButton.jqxButton({theme:g.theme,width:b,template:g.browseTemplate,disabled:g.disabled});g._browseButton.after('
              ');g._bottomButtonsContainer=a('
              ');g.host.append(g._bottomButtonsContainer);g._uploadButton=a('");g._bottomButtonsContainer.append(g._uploadButton);g._uploadButton.jqxButton({theme:g.theme,width:e,template:g.uploadTemplate,disabled:g.disabled});g._cancelButton=a('");g._bottomButtonsContainer.append(g._cancelButton);g._cancelButton.jqxButton({theme:g.theme,width:f,template:g.cancelTemplate,disabled:g.disabled});g._bottomButtonsContainer.after('
              ');if(g.rtl){g._browseButton.addClass(g.toThemeProperty("jqx-file-upload-button-browse-rtl"));g._cancelButton.addClass(g.toThemeProperty("jqx-file-upload-button-cancel-rtl"));g._uploadButton.addClass(g.toThemeProperty("jqx-file-upload-button-upload-rtl"));if(a.jqx.browser.msie&&a.jqx.browser.version>8){g._uploadButton.addClass(g.toThemeProperty("jqx-file-upload-button-upload-rtl-ie"))}}g._uploadIframe=a('');g.host.append(g._uploadIframe);g._iframeInitialized=false;g._uploadQueue=[];g._forms=[];g._addFormAndFileInput();g._fileRows=[]},_addFormAndFileInput:function(){var f=this;var i=f.element.id;var e=a('
              ');f.host.append(e);var d=a('');if(f.accept){d.attr("accept",f.accept)}e.append(d);if(f._ieOldWebkit){var c=f._browseButton.position();var g=f._browseButton.outerWidth();var h=f._browseButton.outerHeight();var b=f.rtl&&f._ie7?12:0;e.css({left:c.left-b,top:c.top,width:g,height:h});e.addClass(f.toThemeProperty("jqx-file-upload-form-ie9"));d.addClass(f.toThemeProperty("jqx-file-upload-file-input-ie9"));f.addHandler(e,"mouseenter.jqxFileUpload"+i,function(){f._browseButton.addClass(f.toThemeProperty("jqx-fill-state-hover"))});f.addHandler(e,"mouseleave.jqxFileUpload"+i,function(){f._browseButton.removeClass(f.toThemeProperty("jqx-fill-state-hover"))});f.addHandler(e,"mousedown.jqxFileUpload"+i,function(){f._browseButton.addClass(f.toThemeProperty("jqx-fill-state-pressed"))});f.addHandler(a(document),"mouseup.jqxFileUpload"+i,function(){if(f._browseButton.hasClass("jqx-fill-state-pressed")){f._browseButton.removeClass(f.toThemeProperty("jqx-fill-state-pressed"))}})}f.addHandler(d,"change.jqxFileUpload"+i,function(){var l=this.value,j;if(!a.jqx.browser.mozilla){if(l.indexOf("fakepath")!==-1){l=l.slice(12)}else{l=l.slice(l.lastIndexOf("\\")+1)}}if(a.jqx.browser.msie&&a.jqx.browser.version<10){j="IE9 and earlier do not support getting the file size."}else{j=this.files[0].size}var k=f._addFileRow(l,e,d,j);if(f._fileRows.length===1){f._browseButton.css("margin-bottom","10px");f._hideButtons(false)}if(f._ieOldWebkit){f.removeHandler(e,"mouseenter.jqxFileUpload"+i);f.removeHandler(e,"mouseleave.jqxFileUpload"+i);f.removeHandler(e,"mousedown.jqxFileUpload"+i)}f._addFormAndFileInput();f.removeHandler(d,"change.jqxFileUpload"+i);if(f.autoUpload===true){f._uploadFile(k)}});if(f._ieOldWebkit===true){f.addHandler(d,"click.jqxFileUpload"+i,function(j){if(f.multipleFilesUpload===false&&f._fileRows.length>0){j.preventDefault()}})}f._forms.push({form:e,fileInput:d})},_addFileRow:function(f,b,e,d){var h=this,l,g,m,j,n,i="Cancel",k="Upload File";l=a('
              ');if(h._fileRows.length===0){h._browseButton.after(l)}else{h._fileRows[h._fileRows.length-1].fileRow.after(l)}if(!h.renderFiles){g=a('
              '+f+"
              ");l.append(g);if(h.localization){if(h.localization.cancelFileTooltip){i=h.localization.cancelFileTooltip}if(h.localization.uploadFileTooltip){k=h.localization.uploadFileTooltip}}j=a('
              ');l.append(j);n=a('
              ');l.append(n);m=a('
              ');l.append(m);if(h.rtl){g.addClass(h.toThemeProperty("jqx-file-upload-file-name-rtl"));j.addClass(h.toThemeProperty("jqx-file-upload-file-cancel-rtl"));n.addClass(h.toThemeProperty("jqx-file-upload-file-upload-rtl"));m.addClass(h.toThemeProperty("jqx-file-upload-loading-element-rtl"))}h._setMaxWidth({fileNameContainer:g,uploadFile:n,cancelFile:j})}else{l.html(h.renderFiles(f))}if(h._ie7){h._borderAndPadding("width",l);h._borderAndPadding("height",l);if(!h.renderFiles){h._borderAndPadding("height",g);h._borderAndPadding("height",n);h._borderAndPadding("height",j)}}var c={fileRow:l,fileNameContainer:g,fileName:f,uploadFile:n,cancelFile:j,loadingElement:m,form:b,fileInput:e,index:h._fileRows.length};h._addFileHandlers(c);h._fileRows.push(c);h._raiseEvent("0",{file:f,size:d});return c},_setMaxWidth:function(c){var e=this;var f=c.cancelFile.outerWidth(true)+c.uploadFile.outerWidth(true);var b=e._ie7?6:0;var d=e.host.width()-parseInt(e.host.css("padding-left"),10)-parseInt(e.host.css("padding-right"),10)-f-b-7;c.fileNameContainer.css("max-width",d)},_addFileHandlers:function(b){var c=this;if(!c.renderFiles){var d=c.element.id;c.addHandler(b.uploadFile,"mouseenter.jqxFileUpload"+d,function(){if(c.disabled===false){b.uploadFile.addClass(c.toThemeProperty("jqx-fill-state-hover"))}});c.addHandler(b.uploadFile,"mouseleave.jqxFileUpload"+d,function(){if(c.disabled===false){b.uploadFile.removeClass(c.toThemeProperty("jqx-fill-state-hover"))}});c.addHandler(b.uploadFile,"click.jqxFileUpload"+d,function(){if(c.disabled===false){c._uploadFile(b)}});c.addHandler(b.cancelFile,"mouseenter.jqxFileUpload"+d,function(){if(c.disabled===false){b.cancelFile.addClass(c.toThemeProperty("jqx-fill-state-hover"))}});c.addHandler(b.cancelFile,"mouseleave.jqxFileUpload"+d,function(){if(c.disabled===false){b.cancelFile.removeClass(c.toThemeProperty("jqx-fill-state-hover"))}});c.addHandler(b.cancelFile,"click.jqxFileUpload"+d,function(){if(c.disabled===false){c._removeSingleFileRow(b)}})}},_removeSingleFileRow:function(c){var d=this;d._removeFileRow(c);d._fileRows.splice(c.index,1);if(d._fileRows.length===0){setTimeout(function(){d._browseButton.css("margin-bottom",0)},400);d._hideButtons(true)}else{for(var b=0;b0){b._uploadFile(b._uploadQueue[b._uploadQueue.length-1])}}})},_removeHandlers:function(b){var d=this;var e=d.element.id;d.removeHandler(d._browseButton,"click.jqxFileUpload"+e);d.removeHandler(d._uploadButton,"click.jqxFileUpload"+e);d.removeHandler(d._cancelButton,"click.jqxFileUpload"+e);d.removeHandler(d._uploadIframe,"load.jqxFileUpload"+e);if(b===true){var c=d._forms[d._forms.length-1];d.removeHandler(c.fileInput,"change.jqxFileUpload"+e);if(d._ieOldWebkit){d.removeHandler(c.form,"mouseenter.jqxFileUpload"+e);d.removeHandler(c.form,"mouseleave.jqxFileUpload"+e);d.removeHandler(c.form,"mousedown.jqxFileUpload"+e);d.removeHandler(a("body"),"mouseup.jqxFileUpload"+e)}}}})})(jqxBaseFramework); \ No newline at end of file diff --git a/htdocs/public/jqwidgets/jqxformattedinput.js b/htdocs/public/jqwidgets/jqxformattedinput.js deleted file mode 100644 index b7836e05..00000000 --- a/htdocs/public/jqwidgets/jqxformattedinput.js +++ /dev/null @@ -1,7 +0,0 @@ -/* -jQWidgets v4.0.0 (2016-Jan) -Copyright (c) 2011-2016 jQWidgets. -License: http://jqwidgets.com/license/ -*/ - -(function(a){a.jqx.jqxWidget("jqxFormattedInput","",{});a.extend(a.jqx._jqxFormattedInput.prototype,{defineInstance:function(){var b={width:null,height:null,radix:10,decimalNotation:"default",value:"0",min:"-9223372036854775808",max:"9223372036854775807",upperCase:false,spinButtons:true,spinButtonsStep:1,dropDown:false,dropDownWidth:null,popupZIndex:20000,placeHolder:"",roundedCorners:true,disabled:false,rtl:false,changeType:null,_opened:false,$popup:a("
                "),item:'
              • ',events:["open","close","change","radixChange"]};a.extend(true,this,b)},createInstance:function(){var b=this;b._Long();b._regex={2:new RegExp(/([0-1])/),8:new RegExp(/([0-7])/),10:new RegExp(/([0-9\-])/),16:new RegExp(/([0-9]|[a-f])/i)};b.render()},render:function(){var e=this;e._radixNumber=e._getRadix(e.radix);if(e.value!==""){e._number=new e.longObj.math.Long.fromString((e.value).toString(),e._radixNumber)}if(e.baseHost){e.host=e.baseHost;e.element=e.host[0]}if(this.element.nodeName.toLowerCase()==="div"){this.baseHost=this.element;var b=this.host.find("input");var d=false;a.each(b,function(){var f=this.type;if(f===null||f==="text"||f==="textarea"){b=a(this);d=true;return false}});if(!d){throw new Error("jqxFormattedInput: Missing Text Input in the Input Group")}if(b.length>0){this.baseHost=a(this.element);this.host=b;this.element=b[0];this.baseHost.addClass(this.toThemeProperty("jqx-widget"));this.baseHost.addClass(this.toThemeProperty("jqx-rc-all"));this.baseHost.addClass(this.toThemeProperty("jqx-input-group"));var c=this.baseHost.children();a.each(c,function(f){a(this).addClass(e.toThemeProperty("jqx-input-group-addon"));a(this).removeClass(e.toThemeProperty("jqx-rc-all"));if(f===0){a(this).addClass(e.toThemeProperty("jqx-rc-l"))}if(f===c.length-1){a(this).addClass(e.toThemeProperty("jqx-rc-r"))}if(this!==e.element){a(this).addClass(e.toThemeProperty("jqx-fill-state-normal"))}if(this.nodeName.toLowerCase()==="div"){e.appendSpinButtons=function(i){e._spinButtonsContainer=a(i);e._spinButtonsContainer.addClass(e.toThemeProperty("jqx-formatted-input-spin-buttons-container"));var h='
                ';e._upbutton=a(h);e._spinButtonsContainer.append(e._upbutton);e._downbutton=a(h);e._spinButtonsContainer.append(e._downbutton);e._upArrow=e._upbutton.find("div");e._upArrow.addClass(e.toThemeProperty("jqx-icon-arrow-up"));e._downArrow=e._downbutton.find("div");e._downArrow.addClass(e.toThemeProperty("jqx-icon-arrow-down"));e._spinButtonsStepLong=new e.longObj.math.Long.fromNumber(e.spinButtonsStep)};var g=function(h){e._addon=a(h);e._addon.addClass(e.toThemeProperty("jqx-formatted-input-addon"));if(!e._arrow){e._arrow=a('
                ');e._arrow.appendTo(e._addon)}};if(e.rtl===false){if(!e._spinButtonsContainer&&e.spinButtons===true){e.appendSpinButtons(this)}else{if(!e._addon&&e.dropDown===true&&((f===2)||(f===1&&e.spinButtons===false))){g(this)}}}else{if(!e._addon&&e.dropDown===true){g(this);if(e.spinButtons===true){e._addon.addClass(e.toThemeProperty("jqx-formatted-input-addon-rtl"))}}else{if(!e._spinButtonsContainer&&e.spinButtons===true&&((f===1)||(f===0&&e.dropDown===false))){e.appendSpinButtons(this);e._spinButtonsContainer.addClass(e.toThemeProperty("jqx-formatted-input-spin-buttons-container-rtl"));if(e.dropDown===true){e._addon.addClass(e.toThemeProperty("jqx-formatted-input-addon-rtl"))}}}}}})}}e._inputAndAddon=e.host;if(e.baseHost){if(e._spinButtonsContainer){e._inputAndAddon=e._inputAndAddon.add(e._spinButtonsContainer)}if(e._addon){e._inputAndAddon=e._inputAndAddon.add(e._addon)}}e.removeHandlers();this.addHandlers();if(this.rtl){this.host.addClass(this.toThemeProperty("jqx-rtl"))}this.host.attr("role","textbox");a.jqx.aria(this,"aria-autocomplete","both");a.jqx.aria(this,"aria-disabled",this.disabled);a.jqx.aria(this,"aria-readonly",false);a.jqx.aria(this,"aria-multiline",false);a.jqx.aria(this,"aria-haspopup",true);if(e.value!==""&&e.value!==null){if(e.upperCase===true){e.host.addClass(e.toThemeProperty("jqx-formatted-input-upper-case"))}else{e.host.addClass(e.toThemeProperty("jqx-formatted-input-lower-case"))}if(e._radixNumber===10&&e.decimalNotation==="exponential"){e.element.value=e._getDecimalNotation("exponential")}else{e.element.value=e.value}}else{if(e._spinButtonsContainer){e._spinButtonsContainer.addClass(e.toThemeProperty("jqx-fill-state-disabled"))}}if(e._radixNumber!==10&&e.min.toString()==="-9223372036854775808"){e._minLong=new e.longObj.math.Long.fromNumber(e.min)}else{e._setMinMax("min")}if(e._radixNumber!==10&&e.max.toString()==="9223372036854775807"){e._maxLong=new e.longObj.math.Long.fromNumber(e.max)}else{e._setMinMax("max")}},_refreshClasses:function(c){var b=c?"addClass":"removeClass";this.host[b](this.toThemeProperty("jqx-widget-content"));this.host[b](this.toThemeProperty("jqx-input"));this.host[b](this.toThemeProperty("jqx-formatted-input"));this.host[b](this.toThemeProperty("jqx-widget"));this.$popup[b](this.toThemeProperty("jqx-popup"));if(a.jqx.browser.msie){this.$popup[b](this.toThemeProperty("jqx-noshadow"))}this.$popup[b](this.toThemeProperty("jqx-input-popup"));this.$popup[b](this.toThemeProperty("jqx-menu"));this.$popup[b](this.toThemeProperty("jqx-menu-vertical"));this.$popup[b](this.toThemeProperty("jqx-menu-dropdown"));this.$popup[b](this.toThemeProperty("jqx-widget"));this.$popup[b](this.toThemeProperty("jqx-widget-content"));if(this.roundedCorners){this.host[b](this.toThemeProperty("jqx-rc-all"));this.$popup[b](this.toThemeProperty("jqx-rc-all"));if(this.baseHost){this.baseHost[b](this.toThemeProperty("jqx-rc-all"));if(this.rtl===false){this.host[b](this.toThemeProperty("jqx-rc-l"));if(this._addon){this._addon[b](this.toThemeProperty("jqx-rc-r"))}}else{this.host[b](this.toThemeProperty("jqx-rc-r"));if(this._addon){this._addon[b](this.toThemeProperty("jqx-rc-l"))}}}}else{this.host.removeClass(this.toThemeProperty("jqx-rc-all"));this.$popup.removeClass(this.toThemeProperty("jqx-rc-all"));if(this.baseHost){this.baseHost.removeClass(this.toThemeProperty("jqx-rc-all"));if(this.rtl===false){this.host.removeClass(this.toThemeProperty("jqx-rc-l"));if(this._addon){this._addon.removeClass(this.toThemeProperty("jqx-rc-r"))}}else{this.host.removeClass(this.toThemeProperty("jqx-rc-r"));if(this._addon){this._addon.removeClass(this.toThemeProperty("jqx-rc-l"))}}}}if(this.disabled){this.host[b](this.toThemeProperty("jqx-fill-state-disabled"));if(this.baseHost){if(this._spinButtonsContainer){this._spinButtonsContainer[b](this.toThemeProperty("jqx-fill-state-disabled"))}if(this._addon){this._addon[b](this.toThemeProperty("jqx-fill-state-disabled"))}}}else{this.host.removeClass(this.toThemeProperty("jqx-fill-state-disabled"));if(this.baseHost&&this.value!==""&&this.value!==null){if(this._spinButtonsContainer){this._spinButtonsContainer.removeClass(this.toThemeProperty("jqx-fill-state-disabled"))}if(this._addon){this._addon.removeClass(this.toThemeProperty("jqx-fill-state-disabled"))}}}},selectAll:function(){var b=this.host;setTimeout(function(){if("selectionStart" in b[0]){b[0].focus();b[0].setSelectionRange(0,b[0].value.length)}else{var c=b[0].createTextRange();c.collapse(true);c.moveEnd("character",b[0].value.length);c.moveStart("character",0);c.select()}},10)},selectLast:function(){var b=this.host;this.selectStart(b[0].value.length)},selectFirst:function(){this.selectStart(0)},selectStart:function(c){var b=this.host;setTimeout(function(){if("selectionStart" in b[0]){b[0].focus();b[0].setSelectionRange(c,c)}else{var d=b[0].createTextRange();d.collapse(true);d.moveEnd("character",c);d.moveStart("character",c);d.select()}},10)},focus:function(){try{this.host.focus();var c=this;setTimeout(function(){c.host.focus()},25)}catch(b){}},refresh:function(){var f=this;this._refreshClasses(false);this._refreshClasses(true);if(!this.baseHost){if(this.width){this.host.width(this.width)}if(this.height){this.host.height(this.height)}}else{if(this.width){this.baseHost.width(this.width)}if(this.height){this.baseHost.height(this.height);var e=0;var j=this.baseHost.height()-2;if(a.jqx.browser.msie&&a.jqx.browser.version<8){this.baseHost.css("display","inline-block")}a.each(this.baseHost.children(),function(){a(this).css("height","100%");if(a.jqx.browser.msie&&a.jqx.browser.version<8){a(this).css("height",j+"px")}if(this!==f.element){e+=a(this).outerWidth()}});var c=(typeof f.width==="string"&&f.width.charAt(f.width.length-1)==="%")?1:0;this.host.css("width",this.baseHost.width()-e-c+"px");if(a.jqx.browser.msie&&a.jqx.browser.version<9){if(f._spinButtonsContainer){if(f.rtl===false||f.rtl===true&&f._addon){f._spinButtonsContainer.css("border-left-width","0")}}if(f._addon){if(f.rtl===false){f._addon.css("border-left-width","0")}else{if(!f._spinButtonsContainer){f._addon.css("border-right-width","0")}}}var h=0;if(a.jqx.browser.version<8){var g=0;var d=parseInt(f.host.css("border-left-width"),10)+parseInt(f.host.css("border-right-width"),10);var i=parseInt(f.host.css("padding-left"),10)+parseInt(f.host.css("padding-right"),10);if(f._spinButtonsContainer){d+=parseInt(f._spinButtonsContainer.css("border-left-width"),10)+parseInt(f._spinButtonsContainer.css("border-right-width"),10);i+=parseInt(f._spinButtonsContainer.css("padding-left"),10)+parseInt(f._spinButtonsContainer.css("padding-right"),10);if(!f._addon){g=2}}if(f._addon){d+=parseInt(f._addon.css("border-left-width"),10)+parseInt(f._addon.css("border-right-width"),10);i+=parseInt(f._addon.css("padding-left"),10)+parseInt(f._addon.css("padding-right"),10);if(!f._spinButtonsContainer){g=2}}f.host.width(f.host.width()-(i+d)-g);h=6}f.host.height(f.baseHost.height()-(parseInt(f.host.css("border-top-width"),10)+parseInt(f.host.css("border-bottom-width"),10)+parseInt(f.host.css("padding-top"),10)+parseInt(f.host.css("padding-bottom"),10)+h));var b=f.host.height()+"px";f.host.css("min-height",b);f.host.css("line-height",b)}}}this.host.attr("disabled",this.disabled);if(!this.host.attr("placeholder")){this._refreshPlaceHolder()}},_refreshPlaceHolder:function(){if("placeholder" in this.element){this.host.attr("placeHolder",this.placeHolder)}else{var b=this;if(this.element.value===""){this.element.value=this.placeHolder;this.host.focus(function(){if(b.element.value===b.placeHolder){b.element.value=""}});this.host.blur(function(){if(b.element.value===""||b.element.value===b.placeHolder){b.element.value=b.placeHolder}})}}},destroy:function(){this.removeHandlers();if(this.baseHost){a.jqx.utilities.resize(this.baseHost,null,true);this.baseHost.remove()}else{a.jqx.utilities.resize(this.host,null,true);this.host.remove()}if(this.$popup){this.$popup.remove()}},propertyChangedHandler:function(b,d,g,f){if(d==="placeHolder"){b._refreshPlaceHolder();return}if(d==="theme"){a.jqx.utilities.setTheme(g,f,b.host);return}if(d==="disabled"){a.jqx.aria(b,"aria-disabled",b.disabled)}if(d==="value"&&g.toString().toUpperCase()!==f.toString().toUpperCase()){b.val(f);return}if(g!==f&&d==="radix"){b._changeRadix(f);return}if(g!==f&&d==="decimalNotation"&&b._radixNumber===10){if(f==="exponential"){b.element.value=b._getDecimalNotation("exponential")}else{b.element.value=b._number.toString(10)}}if(g!==f&&(d==="min"||d==="max")){b._setMinMax(d);b._validateValue(b.value,true);b.value=b.element.value;return}if(g!==f&&(d==="upperCase")&&b.element.value!==""){if(f===true){b.host.removeClass(b.toThemeProperty("jqx-formatted-input-lower-case"));b.host.addClass(b.toThemeProperty("jqx-formatted-input-upper-case"))}else{b.host.removeClass(b.toThemeProperty("jqx-formatted-input-upper-case"));b.host.addClass(b.toThemeProperty("jqx-formatted-input-lower-case"))}return}function c(i,j){var k=b.host.width();var h=i.outerWidth();if(j===false){b.host.width(k+h);i.hide();if(b.rtl===true){if(b.spinButtons===true){b._spinButtonsContainer.addClass(b.toThemeProperty("jqx-formatted-input-spin-buttons-container-rtl-border"))}if(b.dropDown===true){b._addon.removeClass(b.toThemeProperty("jqx-formatted-input-addon-rtl"))}}}else{b.host.width(k-h);i.show();if(b.rtl===true&&b.spinButtons===true&&b.dropDown===true){b._spinButtonsContainer.removeClass(b.toThemeProperty("jqx-formatted-input-spin-buttons-container-rtl-border"));b._addon.addClass(b.toThemeProperty("jqx-formatted-input-addon-rtl"))}}}function e(j,l){if(l===true){var k=a("
                ");if(b.baseHost){var h=b.baseHost.children("div");if((b.rtl===false&&j==="spinButtons")||(b.rtl===true&&j==="dropDown")){h.before(k)}else{h.after(k)}b.render();b.host.width(b.host.width()-k.outerWidth())}else{var n=b.element.id;b.host.removeAttr("id");b.host.wrap('
                ');var m=a("#"+n);if(b.rtl===false){m.append(k)}else{m.prepend(k)}var i=b.host.data();i.jqxFormattedInput.host=m;i.jqxFormattedInput.element=m[0];b.baseHost=m;b.baseHost.data(i);b.render();b.refresh()}}}if(d==="spinButtons"){if(g!==f){if(b._spinButtonsContainer){c(b._spinButtonsContainer,f)}else{e("spinButtons",f)}return}else{return}}if(g!==f&&d==="spinButtonsStep"){b._spinButtonsStepLong=new b.longObj.math.Long.fromNumber(f)}if(d==="dropDown"){if(g!==f){if(b._addon){c(b._addon,f)}else{e("dropDown",f)}return}else{return}}b.refresh()},select:function(d,e,b){var c=this;if(!b){b=c.$popup.find(".jqx-fill-state-pressed").attr("data-value")}c._changeRadix(parseInt(b,10));c._setMaxLength(true);c.close()},val:function(g){var f=this;if((g||g==="")&&!(typeof g==="object"&&a.isEmptyObject(g)===true)&&g!=="binary"&&g!=="octal"&&g!=="decimal"&&g!=="exponential"&&g!=="scientific"&&g!=="engineering"&&g!=="hexadecimal"){g=g.toString();if(g.toUpperCase()!==f.element.value.toString().toUpperCase()){var b=f.element.value;if(f.upperCase===true){g=g.toUpperCase()}var e=g.split("");for(var c=0;c=96&&o<=105){m=o-96;o=o-48}if(k.altKey===true){if(o===40){if(j._addon){this.open()}return}else{if(o===38){if(j._addon){this.close()}return}}}if(k.ctrlKey===true){if(o===67){return}else{if(o===65){j.selectAll();return}}}var d=[8,9,13,37,38,39,40,46,88];var i=j._regex[""+j._radixNumber+""];if(d.indexOf(o)===-1&&(!i.test(m)&&!i.test(k.key)&&!i.test(k["char"]))){k.preventDefault();return false}else{var l=j.host[0].selectionStart;var g=j.host[0].selectionEnd-l;var f=this._getCaretPosition(this.host[0]);var b=this.element.value;var c=b.split("");if(o===8){if(g>0){c.splice(l,g)}else{c.splice(f-1,1)}}else{if(o===46){if(g>0){c.splice(l,g)}else{c.splice(f,1)}}else{if(o===88){if(k.ctrlKey===true){if(g>0){c.splice(l,g)}}else{k.preventDefault()}}else{if(o===189){if(c[0]==="-"){c.splice(0,1);j._minus=false}else{c.splice(0,0,"-");j._minus=true}k.preventDefault()}else{var h=d.indexOf(o)===-1?m:"";if(g>0){c.splice(l,g);c.splice(l,0,h)}else{c.splice(f,0,h)}}}}}c=c.join("");if(c!==b){var n=j._validateValue(c,false);if(n===false){j._inputAndAddon.addClass(j.toThemeProperty("jqx-input-invalid"))}else{j._inputAndAddon.removeClass(j.toThemeProperty("jqx-input-invalid"))}}}},keypress:function(c){var b=this;if(b.suppressKeyPressRepeat){return}b.move(c)},keyup:function(c){var b=this;switch(c.keyCode){case 40:case 38:case 16:case 17:case 18:break;case 9:case 13:if(this._opened){this.select(c,this)}else{b._change()}break;case 27:if(!this._opened){return}this.close();break;case 189:if(b._radixNumber===10){if(b._minus===true){b.element.value="-"+b.element.value}else{b.element.value=b.element.value.slice(1)}}break}c.stopPropagation();c.preventDefault();if(b.element.value!==""){if(b.upperCase){b.host.addClass(b.toThemeProperty("jqx-formatted-input-upper-case"))}else{b.host.addClass(b.toThemeProperty("jqx-formatted-input-lower-case"))}if(b._spinButtonsContainer){b._spinButtonsContainer.removeClass(b.toThemeProperty("jqx-fill-state-disabled"))}}else{b.host.removeClass(b.toThemeProperty("jqx-formatted-input-upper-case jqx-formatted-input-lower-case"));if(b._spinButtonsContainer){b._spinButtonsContainer.addClass(b.toThemeProperty("jqx-fill-state-disabled"))}}},_getCaretPosition:function(b){var d=0;if(document.selection){b.focus();var c=document.selection.createRange();c.moveStart("character",-b.value.length);d=c.text.length}else{if(b.selectionStart||b.selectionStart==="0"){d=b.selectionStart}}return(d)},onBlur:function(){var b=this;if(b._opened){b.close()}b._setMaxLength();b._inputAndAddon.removeClass(b.toThemeProperty("jqx-fill-state-focus"));b._change();if(b._radixNumber===10&&b.decimalNotation==="exponential"){b.element.value=b._getDecimalNotation("exponential")}b._refreshPlaceHolder()},onFocus:function(){var b=this;b._setMaxLength(true);b._inputAndAddon.addClass(b.toThemeProperty("jqx-fill-state-focus"));if(b._radixNumber===10&&b.decimalNotation==="exponential"){b.element.value=b._number.toString(10)}},click:function(c){c.stopPropagation();c.preventDefault();var b=a(c.target).attr("data-value");this.select(c,this,b)},mouseenter:function(b){this.$popup.find(".jqx-fill-state-pressed").removeClass(this.toThemeProperty("jqx-fill-state-pressed"));a(b.currentTarget).addClass(this.toThemeProperty("jqx-fill-state-pressed"))},_change:function(){var c=this;var b=c.value;var d=c._validateValue(c.element.value,true);c._inputAndAddon.removeClass(c.toThemeProperty("jqx-input-invalid"));if(d.toUpperCase()!==b.toString().toUpperCase()){c._raiseEvent("2",{value:d,oldValue:b,radix:c._radixNumber});c.value=d}},_getRadix:function(b){switch(b){case 10:case"decimal":return 10;case 2:case"binary":return 2;case 8:case"octal":return 8;case 16:case"hexadecimal":return 16}},_setPopupOptions:function(){var b=this;b._popupOptions=new Array();if(b.value!==""){b._popupOptions.push(b._number.toString(2)+" (BIN)");b._popupOptions.push(b._number.toString(8)+" (OCT)");b._popupOptions.push(b._number.toString(10)+" (DEC)");b._popupOptions.push(b._number.toString(16)+" (HEX)")}else{b._popupOptions.push("BIN");b._popupOptions.push("OCT");b._popupOptions.push("DEC");b._popupOptions.push("HEX")}},_validateValue:function(e,g){var d=this;if(e!==""){var f=new d.longObj.math.Long.fromString((e).toString(),d._radixNumber);if(f.lessThan(d._minLong)){if(g){d._number=d._minLong;var c=d._minLong.toString(d._radixNumber);if(d._radixNumber===16&&d.upperCase===true){c=c.toUpperCase()}d.element.value=c;return c}else{return false}}else{if(f.greaterThan(d._maxLong)){if(g){d._number=d._maxLong;var b=d._maxLong.toString(d._radixNumber);if(d._radixNumber===16&&d.upperCase===true){b=b.toUpperCase()}d.element.value=b;return b}else{return false}}else{if(g){d._number=f;d.element.value=e;return e}else{return true}}}}else{if(g){d.element.value="";return e}else{return true}}},_getNegativeDecimal:function(l,h){var o=l;if(h===8){var n=new Array();for(var f=0;f<11;f++){var b=parseInt(l.charAt(f),8).toString(2);while(b.length!==3){b="0"+b}n.push(b)}o=n.join("");if(o.charAt(0)==="0"){o=o.slice(1)}}else{if(h===16){var p=new Array();for(var e=0;e<8;e++){var m=parseInt(l.charAt(e),16).toString(2);while(m.length!==4){m="0"+m}p.push(m)}o=p.join("")}}var d="";for(var c=0;c=0){k=k.toFixed(j)}var i=k+"×10"+e._toSuperScript((parseInt(m,10)-l).toString());return i}var g=h(f);if(c==="scientific"){return d(g)}else{if(c==="engineering"){return b(g)}else{return g}}},_toSuperScript:function(h,g){var f="-0123456789";var d="⁻⁰¹²³⁴⁵⁶⁷⁸⁹";var c="";for(var e=0;e=0;n--){var q=s.charAt(n);var b;if(q==="0"){if(d===true){b="1";d=false}else{b="0"}}else{if(d===true){b="0"}else{b="1"}}g=b+""+g}switch(r){case 2:return g;case 8:g="00"+g;var f="";for(var m=22;m>=1;m--){var p=g[m*3-3]+""+g[m*3-2]+""+g[m*3-1];f=parseInt(p,2).toString(8)+""+f}return f;case 16:var e="";for(var h=16;h>=1;h--){var c=g[h*4-4]+""+g[h*4-3]+""+g[h*4-2]+""+g[h*4-1];e=parseInt(c,2).toString(16)+""+e}return e}},_Long:function(){var c=this;c.longObj=new Object();var b=c.longObj;b.math=new Object();b.math.Long=new Object();b.math.Long=function(d,e){this.lowBits=d|0;this.highBits=e|0};b.math.Long.IntCache={};b.math.Long.fromInt=function(d){if(-128<=d&&d<128){var f=b.math.Long.IntCache[d];if(f){return f}}var e=new b.math.Long(d|0,d<0?-1:0);if(-128<=d&&d<128){b.math.Long.IntCache[d]=e}return e};b.math.Long.fromNumber=function(d){if(isNaN(d)||!isFinite(d)){return b.math.Long.ZERO}else{if(d<=-b.math.Long.TWO_PWR_63_DBL_){return b.math.Long.MIN_VALUE}else{if(d+1>=b.math.Long.TWO_PWR_63_DBL_){return b.math.Long.MAX_VALUE}else{if(d<0){return b.math.Long.fromNumber(-d).negate()}else{return new b.math.Long((d%b.math.Long.TWO_PWR_32_DBL_)|0,(d/b.math.Long.TWO_PWR_32_DBL_)|0)}}}}};b.math.Long.fromBits=function(d,e){return new b.math.Long(d,e)};b.math.Long.fromString=function(f,j){if(f.length===0){throw new Error("number format error: empty string")}var g=j||10;if(g<2||36=0){throw new Error('number format error: interior "-" character: '+f)}}var k=b.math.Long.fromNumber(Math.pow(g,8));var m=b.math.Long.ZERO;for(var e=0;e=0)?this.lowBits:b.math.Long.TWO_PWR_32_DBL_+this.lowBits};b.math.Long.prototype.getNumBitsAbs=function(){if(this.isNegative()){if(this.equals(b.math.Long.MIN_VALUE)){return 64}else{return this.negate().getNumBitsAbs()}}else{var e=this.highBits!==0?this.highBits:this.lowBits;for(var d=31;d>0;d--){if((e&(1<0};b.math.Long.prototype.greaterThanOrEqual=function(d){return this.compare(d)>=0};b.math.Long.prototype.compare=function(e){if(this.equals(e)){return 0}var d=this.isNegative();var f=e.isNegative();if(d&&!f){return -1}if(!d&&f){return 1}if(this.subtract(e).isNegative()){return -1}else{return 1}};b.math.Long.prototype.negate=function(){if(this.equals(b.math.Long.MIN_VALUE)){return b.math.Long.MIN_VALUE}else{return this.not().add(b.math.Long.ONE)}};b.math.Long.prototype.add=function(k){var i=this.highBits>>>16;var e=this.highBits&65535;var l=this.lowBits>>>16;var f=this.lowBits&65535;var n=k.highBits>>>16;var g=k.highBits&65535;var o=k.lowBits>>>16;var h=k.lowBits&65535;var p=0,j=0,d=0,m=0;m+=f+h;d+=m>>>16;m&=65535;d+=l+o;j+=d>>>16;d&=65535;j+=e+g;p+=j>>>16;j&=65535;p+=i+n;p&=65535;return b.math.Long.fromBits((d<<16)|m,(p<<16)|j)};b.math.Long.prototype.subtract=function(d){return this.add(d.negate())};b.math.Long.prototype.multiply=function(k){if(this.isZero()){return b.math.Long.ZERO}else{if(k.isZero()){return b.math.Long.ZERO}}if(this.equals(b.math.Long.MIN_VALUE)){return k.isOdd()?b.math.Long.MIN_VALUE:b.math.Long.ZERO}else{if(k.equals(b.math.Long.MIN_VALUE)){return this.isOdd()?b.math.Long.MIN_VALUE:b.math.Long.ZERO}}if(this.isNegative()){if(k.isNegative()){return this.negate().multiply(k.negate())}else{return this.negate().multiply(k).negate()}}else{if(k.isNegative()){return this.multiply(k.negate()).negate()}}if(this.lessThan(b.math.Long.TWO_PWR_24_)&&k.lessThan(b.math.Long.TWO_PWR_24_)){return b.math.Long.fromNumber(this.toNumber()*k.toNumber())}var i=this.highBits>>>16;var e=this.highBits&65535;var l=this.lowBits>>>16;var f=this.lowBits&65535;var n=k.highBits>>>16;var g=k.highBits&65535;var o=k.lowBits>>>16;var h=k.lowBits&65535;var p=0,j=0,d=0,m=0;m+=f*h;d+=m>>>16;m&=65535;d+=l*h;j+=d>>>16;d&=65535;d+=f*o;j+=d>>>16;d&=65535;j+=e*h;p+=j>>>16;j&=65535;j+=l*o;p+=j>>>16;j&=65535;j+=f*g;p+=j>>>16;j&=65535;p+=i*h+e*o+l*g+f*n;p&=65535;return b.math.Long.fromBits((d<<16)|m,(p<<16)|j)};b.math.Long.prototype.div=function(f){if(f.isZero()){throw new Error("division by zero")}else{if(this.isZero()){return b.math.Long.ZERO}}var i,k;if(this.equals(b.math.Long.MIN_VALUE)){if(f.equals(b.math.Long.ONE)||f.equals(b.math.Long.NEG_ONE)){return b.math.Long.MIN_VALUE}else{if(f.equals(b.math.Long.MIN_VALUE)){return b.math.Long.ONE}else{var d=this.shiftRight(1);i=d.div(f).shiftLeft(1);if(i.equals(b.math.Long.ZERO)){return f.isNegative()?b.math.Long.ONE:b.math.Long.NEG_ONE}else{k=this.subtract(f.multiply(i));var m=i.add(k.div(f));return m}}}}else{if(f.equals(b.math.Long.MIN_VALUE)){return b.math.Long.ZERO}}if(this.isNegative()){if(f.isNegative()){return this.negate().div(f.negate())}else{return this.negate().div(f).negate()}}else{if(f.isNegative()){return this.div(f.negate()).negate()}}var g=b.math.Long.ZERO;k=this;while(k.greaterThanOrEqual(f)){i=Math.max(1,Math.floor(k.toNumber()/f.toNumber()));var l=Math.ceil(Math.log(i)/Math.LN2);var j=(l<=48)?1:Math.pow(2,l-48);var e=b.math.Long.fromNumber(i);var h=e.multiply(f);while(h.isNegative()||h.greaterThan(k)){i-=j;e=b.math.Long.fromNumber(i);h=e.multiply(f)}if(e.isZero()){e=b.math.Long.ONE}g=g.add(e);k=k.subtract(h)}return g};b.math.Long.prototype.modulo=function(d){return this.subtract(this.div(d).multiply(d))};b.math.Long.prototype.not=function(){return b.math.Long.fromBits(~this.lowBits,~this.highBits)};b.math.Long.prototype.and=function(d){return b.math.Long.fromBits(this.lowBits&d.lowBits,this.highBits&d.highBits)};b.math.Long.prototype.or=function(d){return b.math.Long.fromBits(this.lowBits|d.lowBits,this.highBits|d.highBits)};b.math.Long.prototype.xor=function(d){return b.math.Long.fromBits(this.lowBits^d.lowBits,this.highBits^d.highBits)};b.math.Long.prototype.shiftLeft=function(f){f&=63;if(f===0){return this}else{var d=this.lowBits;if(f<32){var e=this.highBits;return b.math.Long.fromBits(d<>>(32-f)))}else{return b.math.Long.fromBits(0,d<<(f-32))}}};b.math.Long.prototype.shiftRight=function(f){f&=63;if(f===0){return this}else{var e=this.highBits;if(f<32){var d=this.lowBits;return b.math.Long.fromBits((d>>>f)|(e<<(32-f)),e>>f)}else{return b.math.Long.fromBits(e>>(f-32),e>=0?0:-1)}}};b.math.Long.prototype.shiftRightUnsigned=function(f){f&=63;if(f===0){return this}else{var e=this.highBits;if(f<32){var d=this.lowBits;return b.math.Long.fromBits((d>>>f)|(e<<(32-f)),e>>>f)}else{if(f===32){return b.math.Long.fromBits(e,0)}else{return b.math.Long.fromBits(e>>>(f-32),0)}}}}}})})(jqxBaseFramework); \ No newline at end of file diff --git a/htdocs/public/jqwidgets/jqxgauge.js b/htdocs/public/jqwidgets/jqxgauge.js deleted file mode 100644 index 9a7ef334..00000000 --- a/htdocs/public/jqwidgets/jqxgauge.js +++ /dev/null @@ -1,7 +0,0 @@ -/* -jQWidgets v4.0.0 (2016-Jan) -Copyright (c) 2011-2016 jQWidgets. -License: http://jqwidgets.com/license/ -*/ - -(function(d){var b={defineInstance:function(){var e={width:350,height:350,radius:"50%",endAngle:270,startAngle:30,int64:false,value:0,min:0,max:220,disabled:false,ticksDistance:"20%",colorScheme:"scheme01",animationDuration:400,showRanges:true,easing:"easeOutCubic",labels:null,pointer:null,cap:null,caption:null,border:null,ticksMinor:null,ticksMajor:null,tickMode:"default",niceInterval:false,style:null,ranges:[],_radius:100,_border:null,_radiusDifference:2,_pointer:null,_labels:[],_cap:null,_ticks:[],_ranges:[],_gauge:null,_caption:null,_animationTimeout:10,renderer:null,_animations:[],aria:{"aria-valuenow":{name:"value",type:"number"},"aria-valuemin":{name:"min",type:"number"},"aria-valuemax":{name:"max",type:"number"},"aria-disabled":{name:"disabled",type:"boolean"}}};d.extend(true,this,e);return e},createInstance:function(f){var e=this;e.that=this;d.jqx.aria(e);e._radius=e.radius;e.endAngle=e.endAngle*Math.PI/180+Math.PI/2;e.startAngle=e.startAngle*Math.PI/180+Math.PI/2;if(e.int64==="s"){if(!d.jqx.longInt){throw new Error("jqxGauge: Missing reference to jqxdata.js")}d.jqx.longInt(e);e._value64=new d.jqx.math().fromString(e.value.toString(),10);e._min64=new d.jqx.math().fromString(e.min.toString(),10);e._max64=new d.jqx.math().fromString(e.max.toString(),10)}else{if(e.int64==="u"){try{BigNumber}catch(g){throw new Error("jqxGauge: Missing reference to bignumber.js")}e._value64=new BigNumber(e.value);e._min64=new BigNumber(e.min);e._max64=new BigNumber(e.max)}else{e.value=new Number(e.value)}}e._refresh();e.renderer.getContainer().css("overflow","hidden");if(e.int64!==false){e.setValue(e._value64,0)}else{e.setValue(e.value,0)}d.jqx.utilities.resize(e.host,function(){e._refresh()});e.host.addClass(e.toThemeProperty("jqx-widget"))},_validateEasing:function(){return !!d.easing[this.easing]},_validateProperties:function(){if(this.startAngle===this.endAngle){throw new Error("The end angle can not be equal to the start angle!")}if(!this._validateEasing()){this.easing="linear"}this.ticksDistance=this._validatePercentage(this.ticksDistance,"20%");this.border=this._borderConstructor(this.border,this);this.style=this.style||{fill:"#ffffff",stroke:"#E0E0E0"};this.ticksMinor=new this._tickConstructor(this.ticksMinor,this);this.ticksMajor=new this._tickConstructor(this.ticksMajor,this);this.cap=new this._capConstructor(this.cap,this);this.pointer=new this._pointerConstructor(this.pointer,this);this.labels=new this._labelsConstructor(this.labels,this);this.caption=new this._captionConstructor(this.caption,this);for(var e=0;e";this._gaugeParent=i.children();this._gaugeParent.width(h);this._gaugeParent.height(e);this.renderer.init(this._gaugeParent)},_initRenderer:function(e){if(!d.jqx.createRenderer){throw"Please include a reference to jqxdraw.js"}return d.jqx.createRenderer(this,e)},_refresh:function(){var e=this;if(!e.renderer){e._isVML=false;e.host.empty();e._initRenderer(e.host)}var f=e.renderer;if(!f){return}if(e._ranges){d(e._ranges).remove()}if(e._pointer){d(e._pointer).remove()}if(e._labels){d(e._labels).remove()}if(e._cap){d(e._cap).remove()}if(e._ticks){d(e._ticks).remove()}if(e._border){d(e._border).remove()}if(e._caption){d(e._caption).remove()}e._caption=null;e._labels=[];e._cap=null;e._ticks=[];e._ranges=[];e._border=null;e._pointer=null;e._validateProperties();e._removeElements();e._hostInit();e._render();e.setValue(this.value,0)},val:function(e){if(arguments.length==0||typeof(e)=="object"){return this.value}this.setValue(e,0)},refresh:function(){this._refresh.apply(this,Array.prototype.slice(arguments))},_outerBorderOffset:function(){var e=parseInt(this.border.style["stroke-width"],10)||1;return e/2},_removeCollection:function(f){for(var e=0;e=1?i:new Number(i).toFixed(2),distance:p._getDistance(p._getLabelsDistance()),style:p.labels.className})}}if(p.int64==="s"){if(this.tickMode==="default"){n=new d.jqx.math().fromString((r.interval).toString(),10);if(this.niceInterval){q=this._getNiceInterval("radial")}else{q=new d.jqx.math().fromString((g.interval).toString(),10)}}else{startToEnd=this._max64.subtract(this._min64);n=startToEnd.div(new d.jqx.math().fromString((r.number).toString(),10));q=startToEnd.div(new d.jqx.math().fromString((g.number).toString(),10))}if(this.niceInterval){m(this._min64);e(this._min64);var f=this._min64.subtract(this._min64.modulo(q)).add(q);for(var l=f,k=f;l.lessThan(this._max64)||k.lessThan(this._max64);l=l.add(n),k=k.add(q)){if(k.lessThanOrEqual(this._max64)&&g.visible){m(k);o[k.toString()]=true;if(l.equals(f)){if(Math.abs(this._getAngleByValue(k)-this._getAngleByValue(this.min))*this._innerRadius>this._getMaxLabelSize()["height"]){e(k)}}else{if((k.add(q)).lessThan(this._max64)){e(k)}else{if(Math.abs(this._getAngleByValue(k)-this._getAngleByValue(this.max))*this._innerRadius>this._getMaxLabelSize()["height"]){e(k)}}}}if(!o[l.toString()]&&r.visible&&l.lessThanOrEqual(p._max64)){h(l)}}m(this._max64);e(this._max64)}else{for(var l=new d.jqx.math().fromString((p.min).toString(),10),k=new d.jqx.math().fromString((p.min).toString(),10);l.lessThanOrEqual(p._max64)||k.lessThanOrEqual(p._max64);l=l.add(n),k=k.add(q)){if(k.lessThanOrEqual(p._max64)&&g.visible){m(k);o[k.toString()]=true}if(!o[l.toString()]&&r.visible&&l.lessThanOrEqual(p._max64)){h(l)}}}}else{if(p.int64==="u"){if(this.tickMode==="default"){n=new BigNumber(r.interval);if(this.niceInterval){q=this._getNiceInterval("radial")}else{q=new BigNumber(g.interval)}}else{startToEnd=this._max64.subtract(this._min64);n=startToEnd.divide(new BigNumber(r.number));q=startToEnd.divide(new BigNumber(g.number))}if(this.niceInterval){m(this._min64);e(this._min64);var f=this._min64.subtract(this._min64.mod(q)).add(q);for(var l=f,k=f;l.compare(this._max64)===-1||k.compare(this._max64)===-1;l=l.add(n),k=k.add(q)){if(k.compare(this._max64)!==1&&g.visible){m(k);o[k.toString()]=true;if(l.compare(f)===0){if(Math.abs(this._getAngleByValue(k)-this._getAngleByValue(this.min))*this._innerRadius>this._getMaxLabelSize()["height"]){e(k)}}else{if((k.add(q)).compare(this._max64)===-1){e(k)}else{if(Math.abs(this._getAngleByValue(k)-this._getAngleByValue(this.max))*this._innerRadius>this._getMaxLabelSize()["height"]){e(k)}}}}if(!o[l.toString()]&&r.visible&&(l.compare(p._max64)!==1)){h(l)}}m(this._max64);e(this._max64)}else{for(var l=new BigNumber(p.min),k=new BigNumber(p.min);(l.compare(p._max64)!==1)||(k.compare(p._max64)!==1);l=l.add(n),k=k.add(q)){if((k.compare(p._max64)!==1)&&g.visible){m(k);o[k.toString()]=true}if(!o[l.toString()]&&r.visible&&(l.compare(p._max64)!==1)){h(l)}}}}else{if(this.tickMode==="default"){n=r.interval;if(this.niceInterval){q=this._getNiceInterval("radial")}else{q=g.interval}}else{startToEnd=this.max-this.min;n=startToEnd/r.number;q=startToEnd/g.number}if(this.niceInterval){m(this.min);e(this.min);var f=this.min-(this.min%q)+q;for(var l=f,k=f;lthis._getMaxLabelSize()["height"]){e(k)}}else{if(k+qthis._getMaxLabelSize()["height"]){e(k)}}}}if(!o[l.toFixed(5)]&&r.visible&&l<=this.max){h(l)}}m(this.max);e(this.max)}else{for(var l=this.min,k=this.min;l<=this.max||k<=this.max;l+=n,k+=q){if(k<=this.max&&g.visible){m(k);o[k.toFixed(5)]=true}if(!o[l.toFixed(5)]&&r.visible&&l<=this.max){h(l)}}}}}this._handleTicksVisibility()},_handleTicksVisibility:function(){if(!this.ticksMinor.visible){this.host.children(".jqx-gauge-tick-minor").css("visibility","hidden")}else{this.host.children(".jqx-gauge-tick-minor").css("visibility","visible")}if(!this.ticksMajor.visible){this.host.children(".jqx-gauge-tick-major").css("visibility","hidden")}else{this.host.children(".jqx-gauge-tick-major").css("visibility","visible")}},_getSize:function(e){if(e.toString().indexOf("%")>=0){e=(parseInt(e,10)/100)*this._innerRadius}e=parseInt(e,10);return e},_getDistance:function(e){return this._getSize(e)+(this._originalRadius-this._innerRadius)},_drawTick:function(s){var l=this.that;var j=s.angle,g=s.distance,q=s.size,k=l._outerBorderOffset(),e=l._originalRadius,i=e-g,m=i-q,h=e+k+i*Math.sin(j),o=e+k+i*Math.cos(j),f=e+k+m*Math.sin(j),n=e+k+m*Math.cos(j),p;s.style["class"]=l.toThemeProperty("jqx-gauge-tick-"+s.type);if(l._isVML){h=Math.round(h);f=Math.round(f);o=Math.round(o);n=Math.round(n)}p=l.renderer.line(h,o,f,n,s.style);l._ticks.push(p)},_addRanges:function(){var f="visible";if(!this.showRanges){f="hidden"}else{var e=this.ranges;for(var g=0;gh){h=j}if(e>h){h=e}}return h},_getRangeDistance:function(i,e){var h=this._getLabelsDistance(),f=this._getDistance(i),g=this._getMaxRangeSize();if(this.labels.position==="outside"){if(hn.max))){return}var q=n.int64?n._getAngleByValue(m._startValue64):n._getAngleByValue(m.startValue),j=n.int64?n._getAngleByValue(m._endValue64):n._getAngleByValue(m.endValue);var o=n._originalRadius,f=o-n._getRangeDistance(m.startDistance,m.startWidth),s=o-n._getRangeDistance(m.endDistance,m.endWidth),l=m.startWidth,e=m.endWidth,k=n._outerBorderOffset(),i={x:o+k+f*Math.sin(q),y:o+k+f*Math.cos(q)},r={x:o+k+s*Math.sin(j),y:o+k+s*Math.cos(j)},t=n._getProjectionPoint(q,o+k,f,l),p=n._getProjectionPoint(j,o+k,s,e),h="default",u,m;if(Math.abs(j-q)>Math.PI){h="opposite"}if(n._isVML){u=n._rangeVMLRender(i,r,o,t,p,e,l,f,s,h)}else{u=n._rangeSVGRender(i,r,o,t,p,e,l,f,s,h)}m.style.visibility=g;m.style["class"]=n.toThemeProperty("jqx-gauge-range");m=n.renderer.path(u,m.style);n._ranges.push(m)},_rangeSVGRender:function(i,m,k,o,l,e,j,f,n,h){var p="",f=k-f,n=k-n,g=["0,1","0,0"];if(h==="opposite"){g=["1,1","1,0"]}p="M"+i.x+","+i.y+" ";p+="A"+(k-f)+","+(k-f)+" 100 "+g[0]+" "+m.x+","+m.y+" ";p+="L "+(l.x)+","+(l.y)+" ";p+="A"+(k-e-f)+","+(k-e-f)+" 100 "+g[1]+" "+(o.x)+","+(o.y)+" ";p+="L "+(i.x)+","+(i.y)+" ";p+="z";return p},_rangeVMLRender:function(p,m,h,w,i,l,n,q,s,f){h-=h-q+10;var o="",r=Math.floor(h+(n+l)/2),q=Math.floor(h-q),s=Math.floor(s),t={x:(w.x+i.x)/2,y:(w.y+i.y)/2},e=Math.sqrt((i.x-w.x)*(i.x-w.x)+(i.y-w.y)*(i.y-w.y)),v=Math.floor(t.x+Math.sqrt(h*h-(e/2)*(e/2))*(w.y-i.y)/e),u=Math.floor(t.y+Math.sqrt(h*h-(e/2)*(e/2))*(i.x-w.x)/e),x={x:(p.x+m.x)/2,y:(p.y+m.y)/2},g=Math.sqrt((m.x-p.x)*(m.x-p.x)+(m.y-p.y)*(m.y-p.y)),k=Math.floor(x.x+Math.sqrt(Math.abs(r*r-(g/2)*(g/2)))*(p.y-m.y)/g),j=Math.floor(x.y+Math.sqrt(Math.abs(r*r-(g/2)*(g/2)))*(m.x-p.x)/g);if(f==="opposite"){v=Math.floor(t.x-Math.sqrt(h*h-(e/2)*(e/2))*(w.y-i.y)/e);u=Math.floor(t.y-Math.sqrt(h*h-(e/2)*(e/2))*(i.x-w.x)/e);k=Math.floor(x.x-Math.sqrt(Math.abs(r*r-(g/2)*(g/2)))*(p.y-m.y)/g);j=Math.floor(x.y-Math.sqrt(Math.abs(r*r-(g/2)*(g/2)))*(m.x-p.x)/g)}h=Math.floor(h);m={x:Math.floor(m.x),y:Math.floor(m.y)};p={x:Math.floor(p.x),y:Math.floor(p.y)};w={x:Math.floor(w.x),y:Math.floor(w.y)};i={x:Math.floor(i.x),y:Math.floor(i.y)};o="m "+m.x+","+m.y;o+="at "+(k-r)+" "+(j-r)+" "+(r+k)+" "+(r+j)+" "+m.x+","+m.y+" "+p.x+","+p.y;o+="l "+w.x+","+w.y;o+="m "+m.x+","+m.y;o+="l "+i.x+","+i.y;o+="at "+(v-h)+" "+(u-h)+" "+(h+v)+" "+(h+u)+" "+i.x+","+i.y+" "+w.x+","+w.y;o+="qx "+w.x+" "+w.y;return o},_getProjectionPoint:function(i,f,h,g){var e={x:f+(h-g)*Math.sin(i),y:f+(h-g)*Math.cos(i)};return e},_addLabels:function(h){var g=this,f=g._getLabelInterval();if(g.labels.visible){var j=this._getDistance(this._getLabelsDistance()),i;if(g.int64==="s"){for(var e=new d.jqx.math().fromNumber(g.min.toString(),10);e.lessThanOrEqual(g._max64);e=e.add(f)){if(e.lessThan(g._min64)||e.greaterThan(g._max64)){break}this._addLabel({angle:this._getAngleByValue(e),value:e.toString(),distance:j,style:this.labels.className})}}else{if(g.int64==="u"){for(var e=new BigNumber(g.min);e.compare(g._max64)!==1;e=e.add(f)){if((e.compare(g._min64)===-1)||(e.compare(g._max64)===1)){break}this._addLabel({angle:this._getAngleByValue(e),value:e.toString(),distance:j,style:this.labels.className})}}else{for(var e=this.min;e<=this.max;e+=f){this._addLabel({angle:this._getAngleByValue(e),value:f>=1?e:new Number(e).toFixed(2),distance:j,style:this.labels.className})}}}}},_getLabelsDistance:function(){var g=this._getMaxLabelSize(),f=this._getDistance(this.labels.distance),e=this._getDistance(this.ticksDistance);g=g.width;if(this.labels.position==="inside"){return e+g-5}else{if(this.labels.position==="outside"){if(f<(e-g*1.5)){return f}return Math.max(e-g*1.5,0.6*g)}}return this.labels.distance},_addLabel:function(s){var j=this.that;var g=s.angle,f=j._originalRadius,p=f-s.distance,h=j.labels.offset,q=j.labels.formatValue,i=j._outerBorderOffset(),n=f+i+p*Math.sin(g)+h[0],l=f+i+p*Math.cos(g)+h[1],o=s.value,k=s.style||"",e,m;if(typeof q==="function"){o=q(o)}e=j.renderer.measureText(o,0,{"class":k});m=j.renderer.text(o,Math.round(n)-e.width/2,Math.round(l),e.width,e.height,0,{"class":this.toThemeProperty("jqx-gauge-label")});j._labels.push(m)},_addCaption:function(){if(this.caption.visible!==false){var i=this.that;var k=i.caption.value,j=i.toThemeProperty("jqx-gauge-caption"),g=i.caption.offset,m=i.renderer.measureText(k,0,{"class":j}),h=i._getPosition(this.caption.position,m,g),e=i.caption.style,f=i._outerBorderOffset(),l=i.renderer.text(k,h.left+f,h.top+f,m.width,m.height,0,{"class":j});this._caption=l}},_getPosition:function(e,f,j){var i=0,h=0,g=this._originalRadius;switch(e){case"left":i=(g-f.width)/2;h=g-f.height/2;break;case"right":i=g+(g-f.width)/2;h=g-f.height/2;break;case"bottom":i=(2*g-f.width)/2;h=(g+2*g-f.height)/2;break;default:i=(2*g-f.width)/2;h=(g+f.height)/2;break}return{left:i+j[0],top:h+j[1]}},_addPointer:function(){var g="visible";if(!this.pointer.visible){g="hidden"}var f=this._originalRadius,i=this._getSize(this.pointer.length),j=i*0.9,k=this._getAngleByValue(this.value),e=this.pointer.pointerType,h;h=this._computePointerPoints(this._getSize(this.pointer.width),k,i,e!=="default");this._pointer=this.renderer.path(h,this.pointer.style);d(this._pointer).css("visibility",g)},_computePointerPoints:function(e,g,h,f){if(!f){return this._computeArrowPoints(e,g,h)}else{return this._computeRectPoints(e,g,h)}},_computeArrowPoints:function(n,g,k){var f=this._originalRadius-0.5,l=Math.sin(g),q=Math.cos(g),j=this._outerBorderOffset(),o=f+j+k*l,m=f+j+k*q,i=f+j+n*q,e=f+j-n*l,h=f+j-n*q,s=f+j+n*l,p;if(this._isVML){i=Math.round(i);h=Math.round(h);e=Math.round(e);s=Math.round(s);o=Math.round(o);m=Math.round(m)}p="M "+i+","+e+" L "+h+","+s+" L "+o+","+m+"";return p},_computeRectPoints:function(q,i,o){var f=this._originalRadius,p=Math.sin(i),t=Math.cos(i),u=o,l=this._outerBorderOffset(),n=f+l-q*t+o*p,h=f+l+q*p+o*t,m=f+l+q*t+o*p,g=f+l-q*p+o*t,k=f+l+q*t,e=f+l-q*p,j=f+l-q*t,v=f+l+q*p,s;if(this._isVML){k=Math.round(k);j=Math.round(j);e=Math.round(e);v=Math.round(v);n=Math.round(n);h=Math.round(h);m=Math.round(m);g=Math.round(g)}s="M "+k+","+e+" L "+j+","+v+" L "+n+","+h+" "+m+","+g;return s},_getAngleByValue:function(s){var v=this,p=v.startAngle,t=p-v.endAngle,e,k,o,n,h;if(v.int64!==false){if(v.int64==="s"){s=new d.jqx.math().fromString(s.toString(),10)}else{s=new BigNumber(s)}e=v._min64;k=v._max64;o=k.subtract(e);n=s.subtract(e);if(v.int64==="u"){n=n.intPart()}var f=o.toString(),j,r=n.toString(),g;if(f.length>15){var u=f.length-15;f=f.slice(0,15)+"."+f.slice(15);j=parseFloat(f);if(r.length>u){var q=r.length-u;r=r.slice(0,q)+"."+r.slice(q)}else{if(r.length===u){r="0."+r}else{var m="0.";for(var l=0;l=f.min)){var i=f._getAngleByValue(h),e=f.pointer.pointerType,g=f._computePointerPoints(f._getSize(f.pointer.width),i,f._getSize(f.pointer.length),e!=="default");if(f._isVML){if(f._pointer){d(f._pointer).remove()}f._pointer=f.renderer.path(g,f.pointer.style)}else{f.renderer.attr(f._pointer,{d:g})}if(f.int64!==false){f.value=h.toString();if(f.int64==="s"){f._value64=new d.jqx.math().fromString(f.value,10)}else{f._value64=new BigNumber(f.value)}}else{f.value=h}d.jqx.aria(f,"aria-valuenow",h.toString())}},resize:function(f,e){this.width=f;this.height=e;this.refresh()},propertyChangedHandler:function(e,f,h,g){if(g==h){return}if(f=="min"){if(e.int64==="s"){e._min64=new d.jqx.math().fromString(g.toString(),10)}else{if(e.int64==="u"){e._min64=new BigNumber(g)}else{this.min=parseInt(g)}}d.jqx.aria(e,"aria-valuemin",g)}if(f=="max"){if(e.int64==="s"){e._max64=new d.jqx.math().fromString(g.toString(),10)}else{if(e.int64==="u"){e._max64=new BigNumber(g)}else{this.max=parseInt(g)}}d.jqx.aria(e,"aria-valuemax",g)}if(f==="disabled"){if(g){this.disable()}else{this.enable()}d.jqx.aria(this,"aria-disabled",g)}else{if(f==="value"){this.value=h;this.setValue(g)}else{if(f==="startAngle"){this.startAngle=this.startAngle*Math.PI/180+Math.PI/2}else{if(f==="endAngle"){this.endAngle=this.endAngle*Math.PI/180+Math.PI/2}else{if(f==="colorScheme"){this.pointer.style=null;this.cap.style=null}else{if(f==="radius"){this._radius=g}}}}if(f!=="animationDuration"&&f!=="easing"){this._refresh()}}}if(this.renderer instanceof d.jqx.HTML5Renderer){this.renderer.refresh()}},_tickConstructor:function(g,e){if(this.host){return new this._tickConstructor(g,e)}g=g||{};this.size=e._validatePercentage(g.size,"10%");function f(h,i){if(e.int64===false){h[i]=parseFloat(g[i])}else{h[i]=g[i]}if(!h[i]){h[i]=5}}f(this,"interval");f(this,"number");this.style=g.style||{stroke:"#898989","stroke-width":1};if(typeof g.visible==="undefined"){this.visible=true}else{this.visible=g.visible}},_capConstructor:function(g,e){var f=e._getColorScheme(e.colorScheme)[0];if(this.host){return new this._capConstructor(g,e)}g=g||{};if(typeof g.visible==="undefined"){this.visible=true}else{this.visible=g.visible}this.size=e._validatePercentage(g.size,"4%");this.style=g.style||{fill:f,"stroke-width":"1px",stroke:f,"z-index":30}},_pointerConstructor:function(g,e){var f=e._getColorScheme(e.colorScheme)[0];if(this.host){return new this._pointerConstructor(g,e)}g=g||{};if(typeof g.visible==="undefined"){this.visible=true}else{this.visible=g.visible}this.pointerType=g.pointerType;if(this.pointerType!=="default"&&this.pointerType!=="rectangle"){this.pointerType="default"}this.style=g.style||{"z-index":0,stroke:f,fill:f,"stroke-width":1};this.length=e._validatePercentage(g.length,"70%");this.width=e._validatePercentage(g.width,"2%")},_labelsConstructor:function(f,e){if(this.host){return new this._labelsConstructor(f,e)}f=f||{};if(typeof f.visible==="undefined"){this.visible=true}else{this.visible=f.visible}this.offset=f.offset;if(!(this.offset instanceof Array)){this.offset=[0,-10]}if(!f.interval){f.interval=20}if(e.int64!==false){this.interval=f.interval;if(e.int64==="s"){this._interval64=new d.jqx.math().fromString(f.interval.toString(),10)}else{this._interval64=new BigNumber(f.interval)}}else{this.interval=parseFloat(f.interval)}if(!f.number){f.number=5}this.number=f.number;this.distance=e._validatePercentage(f.distance,"38%");this.position=f.position;if(this.position!=="inside"&&this.position!=="outside"){this.position="none"}this.formatValue=f.formatValue;if(typeof this.formatValue!=="function"){this.formatValue=function(g){return g}}},_captionConstructor:function(f,e){if(this.host){return new this._captionConstructor(f,e)}f=f||{};if(typeof f.visible==="undefined"){this.visible=true}else{this.visible=f.visible}this.value=f.value||"";this.position=f.position;if(this.position!=="bottom"&&this.position!=="top"&&this.position!=="left"&&this.position!=="right"){this.position="bottom"}this.offset=f.offset;if(!(this.offset instanceof Array)){this.offset=[0,0]}},_rangeConstructor:function(f,e){if(this.host){return new this._rangeConstructor(f,e)}f=f||{};this.startDistance=e._validatePercentage(f.startDistance,"5%");this.endDistance=e._validatePercentage(f.endDistance,"5%");this.style=f.style||{fill:"#000000",stroke:"#111111"};this.startWidth=parseFloat(f.startWidth,10);if(!this.startWidth){this.startWidth=10}this.startWidth=Math.max(this.startWidth,2);this.endWidth=parseFloat(f.endWidth,10);if(!this.endWidth){this.endWidth=10}this.endWidth=Math.max(this.endWidth,2);if(f.startValue===undefined){f.startValue=0}if(f.endValue===undefined){f.endValue=100}if(e.int64!==false){this.startValue=f.startValue;this.endValue=f.endValue;if(e.int64==="s"){this._startValue64=new d.jqx.math().fromString(f.startValue.toString(),10);this._endValue64=new d.jqx.math().fromString(f.endValue.toString(),10)}else{this._startValue64=new BigNumber(f.startValue);this._endValue64=new BigNumber(f.endValue)}}else{this.startValue=parseFloat(f.startValue,10);this.endValue=parseFloat(f.endValue,10)}},_borderConstructor:function(f,e){if(this.host){return new this._borderConstructor(f,e)}f=f||{};this.size=e._validatePercentage(f.size,"10%");this.style=f.style||{stroke:"#cccccc"};if(typeof f.showGradient==="undefined"){this.showGradient=true}else{this.showGradient=f.showGradient}if(typeof f.visible==="undefined"){this.visible=true}else{this.visible=f.visible}}};var c={_events:["valueChanging","valueChanged"],_animationTimeout:10,_schemes:[{name:"scheme01",colors:["#307DD7","#AA4643","#89A54E","#71588F","#4198AF"]},{name:"scheme02",colors:["#7FD13B","#EA157A","#FEB80A","#00ADDC","#738AC8"]},{name:"scheme03",colors:["#E8601A","#FF9639","#F5BD6A","#599994","#115D6E"]},{name:"scheme04",colors:["#D02841","#FF7C41","#FFC051","#5B5F4D","#364651"]},{name:"scheme05",colors:["#25A0DA","#309B46","#8EBC00","#FF7515","#FFAE00"]},{name:"scheme06",colors:["#0A3A4A","#196674","#33A6B2","#9AC836","#D0E64B"]},{name:"scheme07",colors:["#CC6B32","#FFAB48","#FFE7AD","#A7C9AE","#888A63"]},{name:"scheme08",colors:["#3F3943","#01A2A6","#29D9C2","#BDF271","#FFFFA6"]},{name:"scheme09",colors:["#1B2B32","#37646F","#A3ABAF","#E1E7E8","#B22E2F"]},{name:"scheme10",colors:["#5A4B53","#9C3C58","#DE2B5B","#D86A41","#D2A825"]},{name:"scheme11",colors:["#993144","#FFA257","#CCA56A","#ADA072","#949681"]},{name:"scheme12",colors:["#105B63","#EEEAC5","#FFD34E","#DB9E36","#BD4932"]},{name:"scheme13",colors:["#BBEBBC","#F0EE94","#F5C465","#FA7642","#FF1E54"]},{name:"scheme14",colors:["#60573E","#F2EEAC","#BFA575","#A63841","#BFB8A3"]},{name:"scheme15",colors:["#444546","#FFBB6E","#F28D00","#D94F00","#7F203B"]},{name:"scheme16",colors:["#583C39","#674E49","#948658","#F0E99A","#564E49"]},{name:"scheme17",colors:["#142D58","#447F6E","#E1B65B","#C8782A","#9E3E17"]},{name:"scheme18",colors:["#4D2B1F","#635D61","#7992A2","#97BFD5","#BFDCF5"]},{name:"scheme19",colors:["#844341","#D5CC92","#BBA146","#897B26","#55591C"]},{name:"scheme20",colors:["#56626B","#6C9380","#C0CA55","#F07C6C","#AD5472"]},{name:"scheme21",colors:["#96003A","#FF7347","#FFBC7B","#FF4154","#642223"]},{name:"scheme22",colors:["#5D7359","#E0D697","#D6AA5C","#8C5430","#661C0E"]},{name:"scheme23",colors:["#16193B","#35478C","#4E7AC7","#7FB2F0","#ADD5F7"]},{name:"scheme24",colors:["#7B1A25","#BF5322","#9DA860","#CEA457","#B67818"]},{name:"scheme25",colors:["#0081DA","#3AAFFF","#99C900","#FFEB3D","#309B46"]},{name:"scheme26",colors:["#0069A5","#0098EE","#7BD2F6","#FFB800","#FF6800"]},{name:"scheme27",colors:["#FF6800","#A0A700","#FF8D00","#678900","#0069A5"]}],_getScale:function(e,g,f){if(e&&e.toString().indexOf("%")>=0){e=parseInt(e,10)/100;return f[g]()*e}return parseInt(e,10)},_removeElements:function(){this.host.children(".chartContainer").remove();this.host.children("#tblChart").remove()},_getLabelInterval:function(){var g=this,h=g.labels,e;if(g.tickMode==="default"){if(g.niceInterval){e=g._getNiceInterval(g.widgetName==="jqxGauge"?"radial":"linear")}else{if(g.int64===false){e=h.interval}else{if(!h._interval64){h._interval64=g.int64==="s"?new d.jqx.math().fromNumber(h.interval):new BigNumber(h.interval)}e=h._interval64}}}else{if(g.int64===false){var f=g.max-g.min;e=f/h.number}else{var f=g._max64.subtract(g._min64);if(g.int64==="s"){e=f.div(new d.jqx.math().fromNumber(h.number))}else{e=f.divide(new BigNumber(h.number))}}}return e},_getMaxLabelSize:function(){var h=this.max,e=this.min;if(this._getLabelInterval().toString()<1){e=new Number(e).toFixed(2);h=new Number(h).toFixed(2)}var g=this.renderer.measureText(h,0,{"class":this.toThemeProperty("jqx-gauge-label")}),f=this.renderer.measureText(e,0,{"class":this.toThemeProperty("jqx-gauge-label")});if(f.width>g.width){return f}return g},disable:function(){this.disabled=true;this.host.addClass(this.toThemeProperty("jqx-fill-state-disabled"))},enable:function(){this.disabled=false;this.host.removeClass(this.toThemeProperty("jqx-fill-state-disabled"))},destroy:function(){var e=this;if(e._timeout){clearTimeout(this._timeout)}e._timeout=null;d.jqx.utilities.resize(e.host,null,true);e._removeElements();e.renderer.clear();e.renderer=null;var f=d.data(e.element,"jqxGauge");if(f){delete f.instance}e.host.children().remove();e._caption=null;e._caption=null;e._pointer=null;e._labels=[];e._cap=null;e._ticks=[];e._ranges=[];e._border=null;e._gauge=null;e._caption=null;e.renderer=null;e._animations=[];e.host.removeData();e.host.removeClass();e.host.remove();e.that=null;e.element=null;e._gaugeParent=null;delete e._gaugeParent;delete e.element;delete e.host},_validatePercentage:function(f,e){if(parseFloat(f)!==0&&(!f||!parseInt(f,10))){f=e}return f},_getColorScheme:function(f){var e;for(var g=0;ge.max){f=e.max}if(f