From 0a97c2b240af41513acf992aec620f82ee048c8d Mon Sep 17 00:00:00 2001 From: danigit Date: Sat, 6 Mar 2021 01:35:16 +0100 Subject: [PATCH] HOME - implemented the left panel that pushs the map when open - implemented the header with the menu buttons - implemented all the graphical elements inside the left panel - implemented the radio buttons with material design buttons - implemented the search box with filter by inserting text - implemented the range slider with labels - implemented the svg for visualizzing the magnitudes - implemented the graphical elements for the footer - implemented the chips for visualizing the feeds --- app/components/home.html | 187 +- app/css/custom.css | 136 +- app/css/home.css | 36 +- app/css/menu.css | 124 +- app/img/anagrafica-icon.ico | Bin 9662 -> 0 bytes app/img/close-menu.png | Bin 334 -> 243 bytes app/img/home/come.png | Bin 0 -> 635 bytes app/img/home/down.png | Bin 0 -> 507 bytes .../Mask_Group_1.png => app/img/home/logo.png | Bin app/img/home/up.png | Bin 0 -> 534 bytes app/img/map.png | Bin 0 -> 315670 bytes app/img/search.png | Bin 0 -> 387 bytes app/js/controllers/home_controller.js | 48 +- app/js/controllers/menu_controller.js | 93 +- app/js/directives/feed.js | 18 + app/js/directives/radio_buttons.js | 45 + app/js/index.js | 33 +- index.html | 33 +- .../angularjs-slider/dist/rzslider.css | 284 ++ .../angularjs-slider/dist/rzslider.d.ts | 213 ++ .../angularjs-slider/dist/rzslider.js | 2779 +++++++++++++++++ .../angularjs-slider/dist/rzslider.min.css | 2 + .../angularjs-slider/dist/rzslider.min.js | 3 + .../angularjs-slider/dist/rzslider.scss | 284 ++ package-lock.json | 11 + 25 files changed, 4143 insertions(+), 186 deletions(-) delete mode 100644 app/img/anagrafica-icon.ico create mode 100644 app/img/home/come.png create mode 100644 app/img/home/down.png rename sketch/Mask_Group_1.png => app/img/home/logo.png (100%) create mode 100644 app/img/home/up.png create mode 100644 app/img/map.png create mode 100644 app/img/search.png create mode 100644 app/js/directives/feed.js create mode 100644 app/js/directives/radio_buttons.js create mode 100644 node_modules/angularjs-slider/dist/rzslider.css create mode 100644 node_modules/angularjs-slider/dist/rzslider.d.ts create mode 100644 node_modules/angularjs-slider/dist/rzslider.js create mode 100644 node_modules/angularjs-slider/dist/rzslider.min.css create mode 100644 node_modules/angularjs-slider/dist/rzslider.min.js create mode 100644 node_modules/angularjs-slider/dist/rzslider.scss create mode 100644 package-lock.json diff --git a/app/components/home.html b/app/components/home.html index 0b3fda7..8833a8d 100644 --- a/app/components/home.html +++ b/app/components/home.html @@ -1,66 +1,131 @@ -
- -
-
- +
+ +
+ +

+ International Migrant Stock +

+ Home + Statistics +
+
- -
-
- Open Menu -
-
- - -

MENU

-
- Close Menu -
-
- - -
-
- -
\ No newline at end of file +
+ + + + diff --git a/app/css/custom.css b/app/css/custom.css index 7e9ab7a..d91b491 100644 --- a/app/css/custom.css +++ b/app/css/custom.css @@ -3,63 +3,109 @@ DISPLAY *******************************************************************/ .hide { - display: none; - !important; + display: none !important; } -.displaynone { +.display-none { display: none; - -webkit-animation: slide-down .5s ease-out; - -moz-animation: slide-down .5s ease-out; + -webkit-animation: slide-down 0.5s ease-out; + -moz-animation: slide-down 0.5s ease-out; } .display-flex { display: flex; } +.display-block { + display: block; +} + .position-absolute { position: absolute; } -.parent-size{ +.parent-size { width: 100%; height: 100%; } -.width-100{ +.width-100 { width: 100%; } + +.width-90 { + width: 90%; +} + +.width-80 { + width: 80%; +} + +.width-20 { + width: 20%; +} + +.height-100 { + height: 100%; +} + +.height-80 { + height: 80%; +} + +.height-20 { + height: 20%; +} /****************************************************************** FONTS *******************************************************************/ .text-center { - text-align: center!important; + text-align: center !important; } -.text-bold{ +.text-bold { font-weight: bold; } +.font-size-medium { + font-size: medium !important; +} + +.font-size-small { + font-size: small !important; +} /****************************************************************** MARGINS *******************************************************************/ +.margin-auto { + margin: auto !important; +} + +.margin-none { + margin: 0 !important; +} + .margin-top-15-px { margin-top: 15px; } .margin-top-20-px { - margin-top: 20px!important; + margin-top: 20px !important; +} + +.margin-top-10-px { + margin-top: 10px !important; } .margin-right-10-px { margin-right: 10px; } -.margin-left--8-px { - margin-left: -8px; +.margin-left-20px { + margin-left: 20px !important; } .margin-lr-auto { @@ -67,12 +113,28 @@ MARGINS margin-right: auto; } +/****************************************************************** +MARGINS +*******************************************************************/ + +.padding-left-20px { + padding-left: 20px; +} + +.padding-top-bottom-5px { + padding: 0 5px 0 5px !important; +} + /****************************************************************** COLOR *******************************************************************/ .color-white { - color: #FFFFFF!important; + color: #ffffff !important; +} + +.color-lightgray { + color: #b0b0b0 !important; } .color-black { @@ -80,9 +142,12 @@ COLOR } .color-darkcyan { - color: #0093c4!important; + color: #63b3d4 !important; } +.color-darkgray { + color: #1d1f1f; +} /****************************************************************** OTHER *******************************************************************/ @@ -108,43 +173,46 @@ OTHER } .zindex-0 { - z-index: 0!important; + z-index: 0 !important; } .zindex-100 { - z-index: 100!important; + z-index: 100 !important; } .position-fixed { - position: fixed!important; + position: fixed !important; +} + +.border-radius-10px { + border-radius: 10px !important; } +.vertical-align-middle { + vertical-align: middle; +} /****************************************************************** BACKGROUND *******************************************************************/ -.background-transparent { - background-color: transparent!important; +.background-gray { + background-color: #2d2e2e !important; } -.background-transparent-white { - background-color: #ffffff5c!important; -} - -.background-transparent-gray { - background-color: #0000002e!important; +.background-darkteal { + background-color: #191f24 !important; } .background-darkcyan { - background-color: #0093c4!important; + background-color: #0093c4 !important; } -.background-darkcyan-50-opacity { - background-color: #0093c49c!important +.background-dark { + background-color: #000000; } .background-white { - background-color: #FFFFFF!important; + background-color: #ffffff !important; } /****************************************************************** @@ -152,5 +220,13 @@ POSITION *******************************************************************/ .clear-float { - clear: both; + float: none !important; +} + +.float-right { + float: right; +} + +.float-left { + float: left; } diff --git a/app/css/home.css b/app/css/home.css index 2a8245c..db9b633 100644 --- a/app/css/home.css +++ b/app/css/home.css @@ -1,37 +1,45 @@ -#map-container{ - width: 100%; - height: 100vh; -} - -#home-button{ +#home-button { position: absolute; left: 0; top: 0; z-index: 10; } -#open-menu-button{ - background-color: #0093c4; +#open-menu-button { + background-color: #2d2e2e; position: absolute; left: 0; - top: 60px; - /*padding: 10px 5px 10px 5px;*/ + top: 80px; border-bottom-right-radius: 10px; border-top-right-radius: 10px; z-index: 10; } -#open-menu-button:hover{ +#open-menu-button:hover { padding-left: 10px; padding-right: 10px; } -#open-menu-icon{ +#open-menu-icon { width: 20px; padding: 15px 1px 12px 3px; } -#home-button-icon{ +#home-button-icon { width: 20px; padding: 15px 1px 12px 3px; -} \ No newline at end of file +} + +.full-height { + height: 100vh; +} + +.feed-container { + background-color: #707070; + padding: 10px 20px; + border-radius: 16px; + color: white; + margin-left: 10px; + font-size: x-large; + margin-right: 10px; +} diff --git a/app/css/menu.css b/app/css/menu.css index 4b1a090..332a0f8 100644 --- a/app/css/menu.css +++ b/app/css/menu.css @@ -1,50 +1,124 @@ +.md-track-ticks { + background-color: #0093c4 !important; +} + +.md-sign { + background-color: #0093c4 !important; +} + +.md-sign:after { + border-top-color: #0093c4 !important; +} + +.md-thumb:after { + background-color: #0093c4 !important; + border: 1px solid #0093c4; +} + +.menu-list-icon { + width: 15px; + height: 15px; +} -#change-floor-container md-input-container{ +.search-input { width: 100%; + font-size: large; + border: none; + outline: none; } -#change-grid-container .md-subheader-inner{ - padding: 0!important; +.filters-container { + border: 4px solid #0093c4 !important; + padding: 10px !important; + width: 80% !important; + min-height: 5em; + margin-bottom: 30px; } -#change-grid-container .md-track-ticks{ - background-color: lightgray!important; +.menu-divider { + height: 2px; + margin: 20px 0 20px 0 !important; + background-color: #2d2e2e; + border: 0; } -#change-grid-container .md-sign{ - background-color: #0093c4!important; +.radio-button-class { + margin: auto !important; + width: 30% !important; + border-right: 1px solid black !important; + color: #000000 !important; + background-color: #ffffff !important; + border-radius: 0 !important; } -#change-grid-container .md-sign:after{ - border-top-color: #0093c4!important; +.button-clicked { + color: #ffffff !important; + background-color: #0093c4 !important; } -#change-grid-container .md-thumb:after{ - background-color: #0093c4!important; - border: 1px solid #0093c4; +.first-radius { + border-top-left-radius: 10px !important; + border-bottom-left-radius: 10px !important; } -#menu-container .md-button:not([disabled]):hover{ - background-color: #8bf6ff30; +.last-radius { + border-top-right-radius: 10px !important; + border-bottom-right-radius: 10px !important; } -#menu-container .md-button:not([disabled]):hover .menu-icon{ - transform: scale(2.0) +#source-selector md-select-value { + color: #0093c4 !important; + border-bottom: 1px solid #0093c4; } -#menu-container .md-select-value{ - color: #0093c4; +#source-selector .md-select-icon { + background: #191f24 url("../img/search.png") no-repeat 90% 50%; + color: #191f24; + text-align: left; + margin: 0 0 0 0; +} + +#destination-selector md-select-value { + color: #0093c4 !important; border-bottom: 1px solid #0093c4; } -.menu-list-icon{ - width: 15px; - height: 15px; +#destination-selector .md-select-icon { + background: #191f24 url("../img/search.png") no-repeat 90% 50%; + color: #191f24; + text-align: left; + margin: 0 0 0 0; } -.search-input{ - width: 100%; - font-size: large; +.header-search-box { border: none; outline: none; -} \ No newline at end of file + height: 100%; + width: 100%; + padding: 0; +} + +.select-header-search-box { + box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.1), 0 0 0 0 rgba(0, 0, 0, 0.14), + 0 0 0 0 rgba(0, 0, 0, 0.12); + padding-left: 16px; + height: 48px; + cursor: pointer; + position: relative; + display: flex; + width: auto; +} + +.svg-magnitude { + width: 20%; + height: 50px; +} + +.rz-tick-value { + color: #191f24; +} + +.rz-tick-legend { + color: #0093c4; + transform: rotate(45deg) !important; +} diff --git a/app/img/anagrafica-icon.ico b/app/img/anagrafica-icon.ico deleted file mode 100644 index db657467e6347062b770d9ac8f2f5f0033d9534f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9662 zcmd6t&uSb;5XRd$;7f>g2tgPj<&uztFn$BEdXhXujs|V+!3X09FhK|7ClJ19Aur&A z(a8s$bPS3KVOcGn{JyH`*`Ar5oj*G(+oDuG{r9WtuWPDD4&ebm&z=Q-{}|r<6v7W7 zgkKPb}|3n-R0yQJ-@p=%_NIl zZ(C;kzp`Oh_?dqX+%J&@lI=*|?*c!5ImFNMyJMHnqYdMhZ^p(CPWk;D8|INKQE$tc z>O4A2W8#mTVV#Ao6@9)tJsSR$Gn7|+QQ0}O#HP3G%`vjyQ=Za4&f|0YoTK1p?iy#b zUfgf=lIIKLV90(mZhsy3#^6sAXA=HI?8if}YmDKq?x{a-<^LwmB>Y(}W|KE__wzy&vu6S$rFnKg_q0GrYH!NGHy~gIDa=!p@2F`ajuF!cTqVW8~6M{&e9C z{=1-GD`)8U4Oss+|CTxOv4p?e7UM&2{;*#0ZlWCL$&xaBhclPm&Z^^|e3DNK8@zm7 z!(Z>y3qSLB;tZI2#Tn-P(_)nHA;u-nLkYjv`x(f~efX1Of2p~Rhq>>QGH10LXCkhs znfqtiz`lJ#-y*M&!=&BMZ?fOCYri`ApK}OjERS3yJQ>WHh^wl_B}ug&oP*;JW8uuC zl+Va^^SkZ0#~Ie`#hEI`P0xmZ0Dl~NJqI3xGn?>M+YEo5I~)0vaz_4+lJKWjoT*~! z^IYK9en%``Udw;_lsFUpeV?33?E}wo9+z6-@QjexRMZHut7W-L)qkUl=3KAU4(VR4`}G0#V5h&E zc#iF<)*P)l@KCJPap2KeU2&$4N!ayWV^3pwH|g8b97*4&j$b*jIMXo~t77T@QX}6r5YxFfy06;Y=03p202~*oTS5BFYha z)W)Ui`B^ttTiv#tX_{a2ic4@l=ThAU?0UP64P$Yp(FWg#MlP|w@;9C7-f?Mc&a~LT zKKOerBNaB#U)WnX19ra6^uaQ;FIYNriTGQ(H{Ca9nrzH%SR0pU^SGpZ zN%_0y-f@2l%~_aZpY9$z<;(^f#ET?fDmWA|E@_v<=k(snS-n5bY_P$&wBbFy!Y(_w zPh-zc<4hCQrh4$mh9oW-#vFHAR-ELn{RKJGXoJU?f=k@F3%@62{ar=hPwyqpG+}M3 z&-dX)1DC!k&NSITe1uDux7s}po7Ud7o5p_)^e1#b%ckLB z2x$FBA@pZ!%Ccpy=efSk_4VUyrhc;{*V7Z%;p{Kfe-7F2(#r>~=MP=qK61@)>&I{# z$8gi(%rwJIGu$-8g)lH&2m`|np@uKPtKoC-YxwOWG~KQryPh4Y$P(!5Z$XH@4Io6%0|?Q}07CTVaAZ0Q PC$5Er`fQfD{>SwH>WP#( diff --git a/app/img/close-menu.png b/app/img/close-menu.png index e7633b96ac673de7d78ad1401dff4c792a2dc6f8..8f711d77edd85170f1f2acb04d58ea72d205431e 100644 GIT binary patch delta 195 zcmV;!06hQB0`mcoIDY`8NklDXHKby8tr~dlCnZz?=`b zk|A7F@g!q-AbAEqkeKjfI9|^Fq`7W&t6@!J|ADP0wh{-9z&u-*|4%ybQWRKR3288D xxal_b>wN2B>b`R&NyDUxpf~A%lAq)r=L;0YX2+p@W2OKA002ovPDHLkV1la*RQ><} delta 287 zcmV+)0pR}g0nP%DIDY{ENkl0Oe)1iYj{(yyeGq|E|+ zvfM$EZ$k*Lz?0=TU>!pE9>?)3hk*g`7P7+51wI0gwyN)>xdz7=Kdrz$u&3}&9B@~F`wI+U`@Yc0g9BcGT?S9C%1jQK$qsnN lTJ-isyBy3VsTfPY^B>CQXVtHkxZeN(002ovPDHLkV1iwle!>6% diff --git a/app/img/home/come.png b/app/img/home/come.png new file mode 100644 index 0000000000000000000000000000000000000000..3fb8f42fc9581c33b974e494871c5c7f4cd78f85 GIT binary patch literal 635 zcmV->0)+jEP)+ZZt{jb7;<4iggN_?@KYx?yfWb3xTv^(DgisvF0NaH9T>hME^lx zXJuL7Eq~_)VUQqfQL($i?+kEp_X@&Vtf`_pVl%~Ii>my|Klf7#cQ5400XRr{983~paVkcMxOe;aeP7D8wec0Hg zOeF#9z+0@W(*}ZyV#GE!Az&9QtQThr*=mo)&d$F5ni;{)92hv<`|i2-p5ek3I-n|q zm%u$Bt7BP`&#*z-tYBklqE$XY`hE?#0A2w%W(AGlCcZGD&^ivk4bL;+Blgg#h}{&V zLI7?CcNc#n`-1?=5OUy?U}tG{R5zP((+g*k9_KMu&4^V9JHS`$>#d%5V{CX>#CQhD z56!26gT@NaXH9u4rtc1B;tLIGyarAIMD4e|z}@m8oqDR#V8x3ng!{l};8wq}>)~M} zc$CL@p2n9q0JyNd|F;$i_HCc9iLasx0pQs1boRi^ZEGx>^Ao|dJjO|{1^{IUcLiU7 z+pX7Z|1|6t!{Oz+^g4?GC}O+>_JBz$o*q=4+uJ1G+MpIYvi&v{ZXi+Tj@mRjFRBb- z3;Ua-J4>k_z=J%-QCofM1^`8jBS8Sh&}=fc{h~{}R|5c~cZS0xa)@-&tF%`Gpd1Wt xBE1)6h9^agzxvkpMmZR4S0QZwbK(CRe*i>E*b5fd!{Pt{002ovPDHLkV1glu-VXo( literal 0 HcmV?d00001 diff --git a/sketch/Mask_Group_1.png b/app/img/home/logo.png similarity index 100% rename from sketch/Mask_Group_1.png rename to app/img/home/logo.png diff --git a/app/img/home/up.png b/app/img/home/up.png new file mode 100644 index 0000000000000000000000000000000000000000..3662ba74304060ab14dfbc9c3dfe10f2fa83bc9f GIT binary patch literal 534 zcmV+x0_pvUP)Klrd`*Q51#0vn&!85wWna2o@>aCZthR1QjK9NV#^B z!a_8qVG$c2TZxEDe!}MJ)3kwTtE04v@n|YI+Y$m}nw|H~jow?_pd*;o+ zY5dQ~im*N}!nNbn=osYZfKR}R;ogJs^mm`SLEi?p_kioRHv})TBJ`^3)nJ~7P0()L z3_k+4`qUn2QC5WWm~V)+ial2S0Ip8P(_hQ#mrju7VPJdaNZyvTig`89!|=on5Zk~` zxpBGLU}GEOiNs_%#bN4;unK$zE~mbvu*Ciex;+_BzxSS?Iw7x1a&W36l_UUN!o1J& z(8;xs%<_QoL!0f&l~QTM5jahH)A&i((Ov8+t_aOgsnAhr#Hh-tg(W=)HkLNX@^A)t zV|+0>QE}H8H`fFB0`N8~UXBi*K*V@B5nd7fI;c6QFPiu@kQ2Hi{Dx&_FtPDoW@b{ Y4>@(lQp@SzfB*mh07*qoM6N<$f>~tt^8f$< literal 0 HcmV?d00001 diff --git a/app/img/map.png b/app/img/map.png new file mode 100644 index 0000000000000000000000000000000000000000..77e0640d0e6762b900023a732bf6f925d437de72 GIT binary patch literal 315670 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

TCp@;7#lO(55Yxwd^XHGf5B{f$5Srs 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ěYQUGh%@Hc3iM2ZiD{>vCC3Jf0oe2 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

S)MMQ^oSU=bSwbA}s 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 bsT^Y1y2dTa#VHCHPsq+4dr(<+2P6Iq`Cfhw literal 0 HcmV?d00001 diff --git a/app/img/search.png b/app/img/search.png new file mode 100644 index 0000000000000000000000000000000000000000..d38aa315929691446f659fed5731b7f85c68752b GIT binary patch literal 387 zcmV-}0et?6P)D(!VRjaTvhy*IhTrAW3GEiPiK?6cG}VAA`m0o3bN6 z{(`&7Ad4RZE19n7G8nEH%>DvNGF-Y0_xa|I?*RTC zV-w>T%ccmHLcT@5p%X`f;4xGd(gZyr7X#23wZ|(avuT1#$gL?o-+GlaK{@1Eg;L9p zZlTnM$z(Q7upe?ajsuXu9XLZ5K5)>u#@go@#spSF^#wO-YaBo#+!04xxo_|(rqwp_ zj&-zSs_vKycCknD6TjfOFjU0`&asHTP`k&8IC@HKnG_hFF(Qu2eu-?j=D*-XF#2CO h5uD)-cNqE$44>^iQOwa=eUtzI002ovPDHLkV1nh1qp1J@ literal 0 HcmV?d00001 diff --git a/app/js/controllers/home_controller.js b/app/js/controllers/home_controller.js index d71426d..296109a 100644 --- a/app/js/controllers/home_controller.js +++ b/app/js/controllers/home_controller.js @@ -1,19 +1,51 @@ -(function() { - 'use strict'; +(function () { + "use strict"; // reloading the angular module - angular.module('main').controller('homeController', homeController); + angular.module("main").controller("homeController", homeController); /** * Function that handlle the user login */ - homeController.$inject = ['$scope'] + homeController.$inject = ["$scope"]; function homeController($scope) { - d3.csv("app/data/fifa-world-cup.csv", data => { + d3.csv("app/data/fifa-world-cup.csv", (data) => { console.log(data); - }) - .catch(error => alert("Couldn't load fifa dataset: " + error)); + }).catch((error) => alert("Couldn't load fifa dataset: " + error)); + + $scope.feeds = [ + { + title: "Burundi", + image: "app/img/home/down.png", + value: "4.232 M", + }, + { + title: "Italy", + image: "app/img/home/up.png", + value: "4.232 M", + }, + { + title: "Kenya", + image: "app/img/home/down.png", + value: "4.232 M", + }, + { + title: "France", + image: "app/img/home/down.png", + value: "4.232 M", + }, + { + title: "Germany", + image: "app/img/home/up.png", + value: "432 M", + }, + { + title: "Marocco", + image: "app/img/home/up.png", + value: "432 M", + }, + ]; } -})(); \ No newline at end of file +})(); diff --git a/app/js/controllers/menu_controller.js b/app/js/controllers/menu_controller.js index f378fd1..080b90a 100644 --- a/app/js/controllers/menu_controller.js +++ b/app/js/controllers/menu_controller.js @@ -1,33 +1,86 @@ -(function() { - 'use strict'; +(function () { + "use strict"; //reloading angular module - let main = angular.module('main'); + let main = angular.module("main"); //CONTROLLERS - main.controller('menuController', menuController); + main.controller("menuController", menuController); /** * Function that handle the menu interaction * @type {string[]} */ - menuController.$inject = ['$scope', '$mdSidenav']; + menuController.$inject = ["$scope", "$mdSidenav"]; function menuController($scope, $mdSidenav) { + $scope.isSideMenuOpened = true; + $scope.searchSource = ""; + $scope.searchDestination = ""; + $scope.selectedSourceCountries = []; + $scope.selectedDestinationCountries = []; + $scope.slider = { + min: 1, + max: 9, + options: { + floor: 0, + ceil: 6, + showTicksValues: true, + stepsArray: [ + { value: 1, legend: "1990" }, + { value: 3, legend: "1995" }, + { value: 5, legend: "2000" }, + { value: 7, legend: "2005" }, + { value: 9, legend: "2010" }, + { value: 9, legend: "2015" }, + { value: 9, legend: "2017" }, + ], + }, + }; - /** - * Function that open and close the menu - */ - $scope.toggleLeft = () => { - $mdSidenav('left').toggle(); - }; - - /** - * Function that shows the location table - */ - $scope.testItem = () => { - - }; - + + /** + * Function that open and close the menu + */ + $scope.toggleMenu = () => { + $scope.isSideMenuOpened = $scope.isSideMenuOpened ? false : true; + }; + + $scope.clearSearch = () => { + $scope.searchSource = ""; + }; + + $scope.updateSearch = (event) => { + event.stopPropagation(); + }; + + $scope.genreButtons = [ + { value: "male", text: "Male" }, + { value: "female", text: "Female" }, + { value: "all", text: "All" }, + ]; + + $scope.sectionButtons = [ + { value: "continent", text: "Continent" }, + { value: "region", text: "Region" }, + { value: "country", text: "Country" }, + ]; + + $scope.countries = [ + { continent: "europe", name: "France" }, + { continent: "europe", name: "Italy" }, + { continent: "europe", name: "Spain" }, + { continent: "europe", name: "Finland" }, + { continent: "europe", name: "Portugal" }, + { continent: "africa", name: "Nigeria" }, + { continent: "africa", name: "Kenya" }, + { continent: "africa", name: "Etiopia" }, + { continent: "africa", name: "marocco" }, + { continent: "africa", name: "Uganda" }, + ]; + /** + * Function that shows the location table + */ + $scope.testItem = () => {}; } -})(); \ No newline at end of file +})(); diff --git a/app/js/directives/feed.js b/app/js/directives/feed.js new file mode 100644 index 0000000..3c792cb --- /dev/null +++ b/app/js/directives/feed.js @@ -0,0 +1,18 @@ +angular.module("feed-chip", []).directive("feedChip", function () { + return { + require: "ngModel", + replace: true, + scope: { + model: "=ngModel", + feed: "=", + }, + template: + '

", + }; +}); diff --git a/app/js/directives/radio_buttons.js b/app/js/directives/radio_buttons.js new file mode 100644 index 0000000..bd1b1ad --- /dev/null +++ b/app/js/directives/radio_buttons.js @@ -0,0 +1,45 @@ +angular + .module("radio-button", []) + .directive("radioButtonGroup", function ($parse) { + return { + restrict: "E", + require: "ngModel", + scope: { + model: "=ngModel", + buttons: "=", + radioButtonsClass: "=", + }, + template: + ' ' + + " {{button.text}} " + + "", + controller: [ + "$scope", + function ($scope) { + $scope.handleButtonClicked = function (value) { + $scope.value = value; + }; + $scope.isActive = function (value) { + return $scope.value === value; + }; + }, + ], + link: function (scope, element, attributes, ngModel) { + element.on("click", (e) => { + scope.$apply(() => { + ngModel.$setViewValue(scope.value); + }); + }); + + scope.$watch("model", (newVal) => { + element.removeClass("button-clicked"); + if (newVal === scope.value) { + element.addClass("button-clicked"); + } + }); + }, + }; + }); diff --git a/app/js/index.js b/app/js/index.js index 9784d92..ad5b1ce 100644 --- a/app/js/index.js +++ b/app/js/index.js @@ -1,27 +1,32 @@ -(function() { - 'use strict'; +(function () { + "use strict"; // loading framework and dependencies - let main = angular.module('main', ['ngMaterial', 'ui.router']); + let main = angular.module("main", [ + "ngMaterial", + "ui.router", + "radio-button", + "rzSlider", + "feed-chip", + ]); // configurating the routing main.config(RoutesConfiguration); - RoutesConfiguration.$inject = ['$stateProvider', '$urlRouterProvider']; + RoutesConfiguration.$inject = ["$stateProvider", "$urlRouterProvider"]; function RoutesConfiguration($stateProvider, $urlRouterProvider) { - // setting the default page for the routing - $urlRouterProvider.otherwise('/home'); + $urlRouterProvider.otherwise("/home"); // setting the routing pages $stateProvider - // defining routing to the login page - .state('home', { - url: '/home', - templateUrl: components_folder + 'home.html', - controller: 'homeController as homeCtrl', - resolve: {} - }) + // defining routing to the login page + .state("home", { + url: "/home", + templateUrl: components_folder + "home.html", + controller: "homeController as homeCtrl", + resolve: {}, + }); } -})(); \ No newline at end of file +})(); diff --git a/index.html b/index.html index 851d030..8c02cc0 100644 --- a/index.html +++ b/index.html @@ -1,44 +1,49 @@ + - - + + EarthQuake - - - - + + + + - + + + + -
- - - - - - + + + + + + + + diff --git a/node_modules/angularjs-slider/dist/rzslider.css b/node_modules/angularjs-slider/dist/rzslider.css new file mode 100644 index 0000000..6ed453a --- /dev/null +++ b/node_modules/angularjs-slider/dist/rzslider.css @@ -0,0 +1,284 @@ +/*! angularjs-slider - v7.0.0 - + (c) Rafal Zajac , Valentin Hervieu , Jussi Saarivirta , Angelin Sirbu - + https://github.com/angular-slider/angularjs-slider - + 2019-02-23 */ +.rzslider { + position: relative; + display: inline-block; + width: 100%; + height: 4px; + margin: 35px 0 15px 0; + vertical-align: middle; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.rzslider.noanimate * { + transition: none !important; +} + +.rzslider.with-legend { + margin-bottom: 40px; +} + +.rzslider[disabled] { + cursor: not-allowed; +} + +.rzslider[disabled] .rz-pointer { + cursor: not-allowed; + background-color: #d8e0f3; +} + +.rzslider[disabled] .rz-draggable { + cursor: not-allowed; +} + +.rzslider[disabled] .rz-selection { + background: #8b91a2; +} + +.rzslider[disabled] .rz-tick { + cursor: not-allowed; +} + +.rzslider[disabled] .rz-tick.rz-selected { + background: #8b91a2; +} + +.rzslider span { + position: absolute; + display: inline-block; + white-space: nowrap; +} + +.rzslider .rz-base { + width: 100%; + height: 100%; + padding: 0; +} + +.rzslider .rz-bar-wrapper { + left: 0; + z-index: 1; + width: 100%; + height: 32px; + padding-top: 16px; + margin-top: -16px; + box-sizing: border-box; + transition: all linear 0.3s; +} + +.rzslider .rz-draggable { + cursor: move; +} + +.rzslider .rz-bar { + left: 0; + z-index: 1; + width: 100%; + height: 4px; + background: #d8e0f3; + border-radius: 2px; +} + +.rzslider .rz-bar-wrapper.rz-transparent .rz-bar { + background: transparent; +} + +.rzslider .rz-bar-wrapper.rz-left-out-selection .rz-bar { + background: #df002d; +} + +.rzslider .rz-bar-wrapper.rz-right-out-selection .rz-bar { + background: #03a688; +} + +.rzslider .rz-selection { + z-index: 2; + background: #0db9f0; + border-radius: 2px; + transition: background-color linear 0.3s; +} + +.rzslider .rz-restricted { + z-index: 3; + background: #ff0000; + border-radius: 2px; +} + +.rzslider .rz-pointer { + top: -14px; + z-index: 3; + width: 32px; + height: 32px; + cursor: pointer; + background-color: #0db9f0; + border-radius: 16px; + transition: all linear 0.3s; +} + +.rzslider .rz-pointer:after { + position: absolute; + top: 12px; + left: 12px; + width: 8px; + height: 8px; + background: #ffffff; + border-radius: 4px; + content: ''; +} + +.rzslider .rz-pointer:hover:after { + background-color: #ffffff; +} + +.rzslider .rz-pointer.rz-active { + z-index: 4; +} + +.rzslider .rz-pointer.rz-active:after { + background-color: #451aff; +} + +.rzslider .rz-bubble { + bottom: 16px; + padding: 1px 3px; + color: #55637d; + cursor: default; + transition: all linear 0.3s; +} + +.rzslider .rz-bubble.rz-limit { + color: #55637d; + transition: none; +} + +.rzslider .rz-ticks { + position: absolute; + top: -3px; + left: 0; + z-index: 1; + width: 100%; + height: 0; + margin: 0; + list-style: none; + box-sizing: border-box; +} + +.rzslider .rz-ticks-values-under .rz-tick-value { + top: auto; + bottom: -32px; +} + +.rzslider .rz-tick { + position: absolute; + top: 0; + left: 0; + width: 10px; + height: 10px; + margin-left: 11px; + text-align: center; + cursor: pointer; + background: #d8e0f3; + border-radius: 50%; + transition: background-color linear 0.3s; +} + +.rzslider .rz-tick.rz-selected { + background: #0db9f0; +} + +.rzslider .rz-tick-value { + position: absolute; + top: -30px; + transform: translate(-50%, 0); +} + +.rzslider .rz-tick-legend { + position: absolute; + top: 24px; + max-width: 50px; + white-space: normal; + transform: translate(-50%, 0); +} + +.rzslider.rz-vertical { + position: relative; + width: 4px; + height: 100%; + padding: 0; + margin: 0 20px; + vertical-align: baseline; +} + +.rzslider.rz-vertical .rz-base { + width: 100%; + height: 100%; + padding: 0; +} + +.rzslider.rz-vertical .rz-bar-wrapper { + top: auto; + left: 0; + width: 32px; + height: 100%; + padding: 0 0 0 16px; + margin: 0 0 0 -16px; +} + +.rzslider.rz-vertical .rz-bar { + bottom: 0; + left: auto; + width: 4px; + height: 100%; +} + +.rzslider.rz-vertical .rz-pointer { + top: auto; + bottom: 0; + left: -14px !important; +} + +.rzslider.rz-vertical .rz-bubble { + bottom: 0; + left: 16px !important; + margin-left: 3px; +} + +.rzslider.rz-vertical .rz-ticks { + top: 0; + left: -3px; + z-index: 1; + width: 0; + height: 100%; +} + +.rzslider.rz-vertical .rz-tick { + margin-top: 11px; + margin-left: auto; + vertical-align: middle; +} + +.rzslider.rz-vertical .rz-tick-value { + top: auto; + left: 24px; + transform: translate(0, -28%); +} + +.rzslider.rz-vertical .rz-tick-legend { + top: auto; + right: 24px; + max-width: none; + white-space: nowrap; + transform: translate(0, -28%); +} + +.rzslider.rz-vertical .rz-ticks-values-under .rz-tick-value { + right: 24px; + bottom: auto; + left: auto; +} +/*# sourceMappingURL=data:application/json;base64,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Wjs7QUFFRDtFQUNFLFVBQVU7RUFDVixRQUFRO0VBQ1IsWUFBWTtFQUNaLGFBQWE7RUFDYixvQkFBb0I7RUFDcEIsb0JBQW9CO0NBQ3JCOztBQUVEO0VBQ0UsVUFBVTtFQUNWLFdBQVc7RUFDWCxXQUFXO0VBQ1gsYUFBYTtDQUNkOztBQUVEO0VBQ0UsVUFBVTtFQUNWLFVBQVU7RUFDVix1QkFBdUI7Q0FDeEI7O0FBRUQ7RUFDRSxVQUFVO0VBQ1Ysc0JBQXNCO0VBQ3RCLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLE9BQU87RUFDUCxXQUFXO0VBQ1gsV0FBVztFQUNYLFNBQVM7RUFDVCxhQUFhO0NBQ2Q7O0FBRUQ7RUFDRSxpQkFBaUI7RUFDakIsa0JBQWtCO0VBQ2xCLHVCQUF1QjtDQUN4Qjs7QUFFRDtFQUNFLFVBQVU7RUFDVixXQUFXO0VBQ1gsOEJBQThCO0NBQy9COztBQUVEO0VBQ0UsVUFBVTtFQUNWLFlBQVk7RUFDWixnQkFBZ0I7RUFDaEIsb0JBQW9CO0VBQ3BCLDhCQUE4QjtDQUMvQjs7QUFFRDtFQUNFLFlBQVk7RUFDWixhQUFhO0VBQ2IsV0FBVztDQUNaIiwiZmlsZSI6InJ6c2xpZGVyLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qISBhbmd1bGFyanMtc2xpZGVyIC0gdjcuMC4wIC0gXG4gKGMpIFJhZmFsIFphamFjIDxyemFqYWNAZ21haWwuY29tPiwgVmFsZW50aW4gSGVydmlldSA8dmFsZW50aW5AaGVydmkuZXU+LCBKdXNzaSBTYWFyaXZpcnRhIDxqdXNhc2lAZ21haWwuY29tPiwgQW5nZWxpbiBTaXJidSA8YW5nZWxpbi5zaXJidUBnbWFpbC5jb20+IC0gXG4gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXItc2xpZGVyL2FuZ3VsYXJqcy1zbGlkZXIgLSBcbiAyMDE5LTAyLTIzICovXG4ucnpzbGlkZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNHB4O1xuICBtYXJnaW46IDM1cHggMCAxNXB4IDA7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4ucnpzbGlkZXIubm9hbmltYXRlICoge1xuICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5yenNsaWRlci53aXRoLWxlZ2VuZCB7XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7XG59XG5cbi5yenNsaWRlcltkaXNhYmxlZF0ge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4ucnpzbGlkZXJbZGlzYWJsZWRdIC5yei1wb2ludGVyIHtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q4ZTBmMztcbn1cblxuLnJ6c2xpZGVyW2Rpc2FibGVkXSAucnotZHJhZ2dhYmxlIHtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLnJ6c2xpZGVyW2Rpc2FibGVkXSAucnotc2VsZWN0aW9uIHtcbiAgYmFja2dyb3VuZDogIzhiOTFhMjtcbn1cblxuLnJ6c2xpZGVyW2Rpc2FibGVkXSAucnotdGljayB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi5yenNsaWRlcltkaXNhYmxlZF0gLnJ6LXRpY2sucnotc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kOiAjOGI5MWEyO1xufVxuXG4ucnpzbGlkZXIgc3BhbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4ucnpzbGlkZXIgLnJ6LWJhc2Uge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAwO1xufVxuXG4ucnpzbGlkZXIgLnJ6LWJhci13cmFwcGVyIHtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMzJweDtcbiAgcGFkZGluZy10b3A6IDE2cHg7XG4gIG1hcmdpbi10b3A6IC0xNnB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB0cmFuc2l0aW9uOiBhbGwgbGluZWFyIDAuM3M7XG59XG5cbi5yenNsaWRlciAucnotZHJhZ2dhYmxlIHtcbiAgY3Vyc29yOiBtb3ZlO1xufVxuXG4ucnpzbGlkZXIgLnJ6LWJhciB7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDE7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDRweDtcbiAgYmFja2dyb3VuZDogI2Q4ZTBmMztcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAycHg7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbn1cblxuLnJ6c2xpZGVyIC5yei1iYXItd3JhcHBlci5yei10cmFuc3BhcmVudCAucnotYmFyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG5cbi5yenNsaWRlciAucnotYmFyLXdyYXBwZXIucnotbGVmdC1vdXQtc2VsZWN0aW9uIC5yei1iYXIge1xuICBiYWNrZ3JvdW5kOiAjZGYwMDJkO1xufVxuXG4ucnpzbGlkZXIgLnJ6LWJhci13cmFwcGVyLnJ6LXJpZ2h0LW91dC1zZWxlY3Rpb24gLnJ6LWJhciB7XG4gIGJhY2tncm91bmQ6ICMwM2E2ODg7XG59XG5cbi5yenNsaWRlciAucnotc2VsZWN0aW9uIHtcbiAgei1pbmRleDogMjtcbiAgYmFja2dyb3VuZDogIzBkYjlmMDtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAycHg7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciBsaW5lYXIgMC4zcztcbn1cblxuLnJ6c2xpZGVyIC5yei1yZXN0cmljdGVkIHtcbiAgei1pbmRleDogMztcbiAgYmFja2dyb3VuZDogI2ZmMDAwMDtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAycHg7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbn1cblxuLnJ6c2xpZGVyIC5yei1wb2ludGVyIHtcbiAgdG9wOiAtMTRweDtcbiAgei1pbmRleDogMztcbiAgd2lkdGg6IDMycHg7XG4gIGhlaWdodDogMzJweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGRiOWYwO1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICB0cmFuc2l0aW9uOiBhbGwgbGluZWFyIDAuM3M7XG59XG5cbi5yenNsaWRlciAucnotcG9pbnRlcjphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMnB4O1xuICBsZWZ0OiAxMnB4O1xuICB3aWR0aDogOHB4O1xuICBoZWlnaHQ6IDhweDtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgY29udGVudDogJyc7XG59XG5cbi5yenNsaWRlciAucnotcG9pbnRlcjpob3ZlcjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG5cbi5yenNsaWRlciAucnotcG9pbnRlci5yei1hY3RpdmUge1xuICB6LWluZGV4OiA0O1xufVxuXG4ucnpzbGlkZXIgLnJ6LXBvaW50ZXIucnotYWN0aXZlOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ1MWFmZjtcbn1cblxuLnJ6c2xpZGVyIC5yei1idWJibGUge1xuICBib3R0b206IDE2cHg7XG4gIHBhZGRpbmc6IDFweCAzcHg7XG4gIGNvbG9yOiAjNTU2MzdkO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIHRyYW5zaXRpb246IGFsbCBsaW5lYXIgMC4zcztcbn1cblxuLnJ6c2xpZGVyIC5yei1idWJibGUucnotbGltaXQge1xuICBjb2xvcjogIzU1NjM3ZDtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbn1cblxuLnJ6c2xpZGVyIC5yei10aWNrcyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtM3B4O1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi5yenNsaWRlciAucnotdGlja3MtdmFsdWVzLXVuZGVyIC5yei10aWNrLXZhbHVlIHtcbiAgdG9wOiBhdXRvO1xuICBib3R0b206IC0zMnB4O1xufVxuXG4ucnpzbGlkZXIgLnJ6LXRpY2sge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogMTBweDtcbiAgbWFyZ2luLWxlZnQ6IDExcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kOiAjZDhlMGYzO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgbGluZWFyIDAuM3M7XG59XG5cbi5yenNsaWRlciAucnotdGljay5yei1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQ6ICMwZGI5ZjA7XG59XG5cbi5yenNsaWRlciAucnotdGljay12YWx1ZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtMzBweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgMCk7XG59XG5cbi5yenNsaWRlciAucnotdGljay1sZWdlbmQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMjRweDtcbiAgbWF4LXdpZHRoOiA1MHB4O1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAwKTtcbn1cblxuLnJ6c2xpZGVyLnJ6LXZlcnRpY2FsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogNHB4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMCAyMHB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi5yenNsaWRlci5yei12ZXJ0aWNhbCAucnotYmFzZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5yenNsaWRlci5yei12ZXJ0aWNhbCAucnotYmFyLXdyYXBwZXIge1xuICB0b3A6IGF1dG87XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAzMnB4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmc6IDAgMCAwIDE2cHg7XG4gIG1hcmdpbjogMCAwIDAgLTE2cHg7XG59XG5cbi5yenNsaWRlci5yei12ZXJ0aWNhbCAucnotYmFyIHtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiBhdXRvO1xuICB3aWR0aDogNHB4O1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5yenNsaWRlci5yei12ZXJ0aWNhbCAucnotcG9pbnRlciB7XG4gIHRvcDogYXV0bztcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAtMTRweCAhaW1wb3J0YW50O1xufVxuXG4ucnpzbGlkZXIucnotdmVydGljYWwgLnJ6LWJ1YmJsZSB7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMTZweCAhaW1wb3J0YW50O1xuICBtYXJnaW4tbGVmdDogM3B4O1xufVxuXG4ucnpzbGlkZXIucnotdmVydGljYWwgLnJ6LXRpY2tzIHtcbiAgdG9wOiAwO1xuICBsZWZ0OiAtM3B4O1xuICB6LWluZGV4OiAxO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4ucnpzbGlkZXIucnotdmVydGljYWwgLnJ6LXRpY2sge1xuICBtYXJnaW4tdG9wOiAxMXB4O1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLnJ6c2xpZGVyLnJ6LXZlcnRpY2FsIC5yei10aWNrLXZhbHVlIHtcbiAgdG9wOiBhdXRvO1xuICBsZWZ0OiAyNHB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMjglKTtcbn1cblxuLnJ6c2xpZGVyLnJ6LXZlcnRpY2FsIC5yei10aWNrLWxlZ2VuZCB7XG4gIHRvcDogYXV0bztcbiAgcmlnaHQ6IDI0cHg7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTI4JSk7XG59XG5cbi5yenNsaWRlci5yei12ZXJ0aWNhbCAucnotdGlja3MtdmFsdWVzLXVuZGVyIC5yei10aWNrLXZhbHVlIHtcbiAgcmlnaHQ6IDI0cHg7XG4gIGJvdHRvbTogYXV0bztcbiAgbGVmdDogYXV0bztcbn0iXX0= */ \ No newline at end of file diff --git a/node_modules/angularjs-slider/dist/rzslider.d.ts b/node_modules/angularjs-slider/dist/rzslider.d.ts new file mode 100644 index 0000000..3797a94 --- /dev/null +++ b/node_modules/angularjs-slider/dist/rzslider.d.ts @@ -0,0 +1,213 @@ +/** + * Typescript type definition file. + */ + +import * as angular from "angular"; + +declare module "angular" { + export namespace RzSlider { + type RzLabelType = "model"|"high"|"floor"|"ceil"|"tick-value"; + type RzPointerType = "min"|"max"; + type RzCallback = (id: string, modelValue: number, highValue: number, pointerType: "min"|"max") => void; + type RzTranslate = (value: number, sliderId: string, label: RzLabelType) => string; + + /** RZ slider options typing */ + interface RzOptions { + /** Number (defaults to 0): Minimum value for a slider. */ + floor?: number; + /** Number (defaults to rz-slider-modelvalue): Maximum value for a slider. */ + ceil?: number; + /** Number (defaults to 1): Step between each value. */ + step?: number; + /** Number (defaults to 0): The precision to display values with. The toFixed() is used internally for this. */ + precision?: number; + /** Number (defaults to null): The minimum value authorized on the slider. */ + minLimit?: number; + /** Number (defaults to null): The maximum value authorized on the slider. */ + maxLimit?: number; + /** + * Object(defaults to null): Has two _Number_ properties, _from_ and _to_ that determine + * the bounds of an area that is not authorized for values. _Applies to range slider only._ + */ + restrictedRange?: { from: number, to: number } + /** Number (defaults to null): The minimum range authorized on the slider. Applies to range slider only. */ + minRange?: number; + /** Number (defaults to null): The maximum range authorized on the slider. Applies to range slider only. */ + maxRange?: number; + /** + * Boolean (defaults to false): Set to true to have a push behavior. When the min handle goes above the max, + * the max is moved as well (and vice-versa). The range between min and max is defined by the step option + * (defaults to 1) and can also be override by the minRange option. Applies to range slider only. + */ + pushRange?: boolean; + /** + * Custom translate function. Use this if you want to translate values displayed on the slider. + * sliderId can be used to determine the slider for which we are translating the value. + * label is a string that can take the following values: + * 'model': the model label + * 'high': the high label + * 'floor': the floor label + * 'ceil': the ceil label + * 'tick-value': the ticks labels + */ + translate?: RzTranslate; + /** + * Function(value, sliderId): Use to display legend under ticks. The function will be called with each tick + * value and returned content will be displayed under the tick as a legend. If the returned value is null, + * then no legend is displayed under the corresponding tick. + */ + getLegend?: (value: number, sliderId: string) => string; + /** + * Any (defaults to null): If you want to use the same translate function for several sliders, + * just set the id to anything you want, and it will be passed to the translate(value, sliderId) + * function as a second argument. + */ + id?: string; + /** + * Array: If you want to display a slider with non linear/number steps. Just pass an array with each slider + * value and that's it; the floor, ceil and step settings of the slider will be computed automatically. + * By default, the rz-slider-model and rz-slider-high values will be the value of the selected item in the stepsArray. + * They can also be bound to the index of the selected item by setting the bindIndexForStepsArray option to true. + * + * stepsArray can also be an array of objects like: + * [ + * {value: 'A'}, // the display value will be *A* + * {value: 10, legend: 'Legend for 10'} // the display value will be 10 and a legend will be displayed under the corresponding tick. + * ] + */ + stepsArray?: any[]; + /** + * Boolean (defaults to false): Set to true to bind the index of the selected item to rz-slider-model and rz-slider-high. + * (This was the default behavior prior to 4.0). + */ + bindIndexForStepsArray?: boolean; + /** Boolean (defaults to false): When set to true and using a range slider, the range can be dragged by the selection bar. Applies to range slider only. */ + draggableRange?: boolean; + /** Boolean (defaults to false): Same as draggableRange but the slider range can't be changed. Applies to range slider only. */ + draggableRangeOnly?: boolean; + /** Boolean (defaults to false): Set to true to always show the selection bar before the slider handle. */ + showSelectionBar?: boolean; + /** Boolean (defaults to false): Set to true to always show the selection bar after the slider handle. */ + showSelectionBarEnd?: boolean; + /** Boolean (defaults to false): Only for range slider. Set to true to visualize in different colour the areas on the left/right (top/bottom for vertical range slider) of selection bar between the handles. */ + showOuterSelectionBars?: boolean; + /** Number (defaults to null): Set a number to draw the selection bar between this value and the slider handle. */ + showSelectionBarFromValue?: number; + /** + * Function(value) or Function(minVal, maxVal) (defaults to null): Function that returns the current color of the + * selection bar. If your color won't changed, don't use this option but set it through CSS. If the returned color + * depends on a model value (either rzScopeModelor 'rzSliderHigh), you should use the argument passed to the function. + * Indeed, when the function is called, there is no certainty that the model has already been updated. + */ + getSelectionBarColor?: (minVal: number, maxVal?: number) => string; + /** Function(value) (defaults to null): Function that returns the color of a tick. showTicks must be enabled. */ + getTickColor?: (value: number) => string; + /** + * Function(value, pointerType) (defaults to null): Function that returns the current color of a pointer. + * If your color won't changed, don't use this option but set it through CSS. If the returned color depends + * on a model value (either rzScopeModelor 'rzSliderHigh), you should use the argument passed to the function. + * Indeed, when the function is called, there is no certainty that the model has already been updated. + * To handle range slider pointers independently, you should evaluate pointerType within the given function + * where "min" stands for rzScopeModel and "max" for rzScopeHigh values. + */ + getPointerColor?: (value: number, pointerType: RzPointerType) => string; + /** Boolean (defaults to false): Set to true to hide pointer labels */ + hidePointerLabels?: boolean; + /** Boolean (defaults to false): Set to true to hide min / max labels */ + hideLimitLabels?: boolean; + /** Boolean (defaults to true): Set to false to disable the auto- hiding behavior of the limit labels. */ + autoHideLimitLabels?: boolean; + /** Boolean (defaults to false): Set to true to make the slider read-only. */ + readOnly?: boolean; + /** Boolean (defaults to false): Set to true to disable the slider. */ + disabled?: boolean; + /** + * Number in ms (defaults to 350): Internally, a throttle function (See http://underscorejs.org/#throttle) is used + * when the model or high values of the slider are changed from outside the slider. This is to prevent from re-rendering + * the slider too many times in a row. interval is the number of milliseconds to wait between two updates of the slider. + */ + interval?: number; + /** Boolean or Number (defaults to false): Set to true to display a tick for each step of the slider. Set an integer to display ticks at intermediate positions. */ + showTicks?: boolean | number; + /** Boolean or Number (defaults to false): Set to true to display a tick and the step value for each step of the slider. Set an integer to display ticks and the step value at intermediate positions. */ + showTicksValues?: boolean | number; + /** Array (defaults to null): Use to display ticks at specific positions. The array contains the index of the ticks that should be displayed. For example, [0, 1, 5] will display a tick for the first, second and sixth values. */ + ticksArray?: number[]; + /** Function(value) (defaults to null): (requires angular-ui bootstrap) Used to display a tooltip when a tick is hovered. Set to a function that returns the tooltip content for a given value. */ + ticksTooltip?: (value: number) => string; + /** Function(value) (defaults to null): Same as ticksTooltip but for ticks values. */ + ticksValuesTooltip?: (value: number) => string; + /** Number (defaults to 1): If you display the slider in an element that uses transform: scale(0.5), set the scale value to 2 so that the slider is rendered properly and the events are handled correctly. */ + scale?: number; + /** Boolean (defaults to true): Set to true to force the value to be rounded to the step, even when modified from the outside.. When set to false, if the model values are modified from outside the slider, they are not rounded and can be between two steps. */ + enforceStep?: boolean; + /** Boolean (defaults to false): Set to true to round the rzSliderModel and rzSliderHigh to the slider range even when modified from outside the slider. When set to false, if the model values are modified from outside the slider, they are not rounded but they are still rendered properly on the slider. */ + enforceRange?: boolean; + /** Boolean (defaults to false): Set to true to prevent to user from switching the min and max handles. Applies to range slider only. */ + noSwitching?: boolean; + /** Boolean (defaults to false): Set to true to only bind events on slider handles. */ + onlyBindHandles?: boolean; + /** Boolean (defaults to true): Set to true to keep the slider labels inside the slider bounds. */ + boundPointerLabels?: boolean; + /** Boolean (defaults to false): Set to true to merge the range labels if they are the same. For instance, if min and max are 50, the label will be "50 - 50" if mergeRangeLabelsIfSame: false, else "50". */ + mergeRangeLabelsIfSame?: boolean; + /** String (defaults to ' - '): Separator to use when the labels overlap. For instance, if min and max are -1 and 1, the label will be "-1 .. 1" if `labelOverlapSeparator: ' .. '`. */ + labelOverlapSeparator?: string; + /** Function(sliderId, modelValue, highValue, pointerType): Function to be called when a slider update is started. If an id was set in the options, then it's passed to this callback. This callback is called before any update on the model. pointerType is either 'min' or 'max' depending on which handle is used. */ + onStart?: RzCallback; + /** + * Function to be called when rz-slider-model or rz-slider-high change. If an id was set in the options, + * then it's passed to this callback. pointerType is either 'min' or 'max' depending + * on which handle is used. + */ + onChange?: RzCallback; + /** Function(sliderId, modelValue, highValue, pointerType): Function to be called when a slider update is ended. If an id was set in the options, then it's passed to this callback. pointerType is either 'min' or 'max' depending on which handle is used. */ + onEnd?: RzCallback; + /** Boolean (defaults to false): Set to true to show graphs right to left. If vertical is true it will be from top to bottom and left / right arrow functions reversed. */ + rightToLeft?: boolean; + /** + * Boolean (defaults to false): Set to true to display the slider vertically. The slider will take the full height of its parent. + * Changing this value at runtime is not currently supported. + */ + vertical?: boolean; + /** + * Boolean (defaults to true): Handles are focusable (on click or with tab) and can be modified using the following keyboard controls: + * - Left/bottom arrows: -1 + * - Right/top arrows: +1 + * - Page-down: -10% + * - Page-up: +10% + * - Home: minimum value + * - End: maximum value + */ + keyboardSupport?: boolean; + /** + * Boolean (defaults to false): Set to true to reverse keyboard navigation: + * - Right/top arrows: -1 + * - Left/bottom arrows: +1 + * - Page-up: -10% + * - Page-down: +10% + * - End: minimum value + * - Home: maximum value + */ + reversedControls?: boolean; + /** Object (default to null): The properties defined in this object will be exposed in the slider template under custom.X. */ + customTemplateScope?: any; + /** Boolean (defaults to false): Set to true to use a logarithmic scale to display the slider. */ + logScale?: boolean; + /** Function(val, minVal, maxVal): percent: Function that returns the position on the slider for a given value.The position must be a percentage between 0 and 1. */ + customValueToPosition?: (val: number, minVal: number, maxVal: number) => number; + /** Function(percent, minVal, maxVal): value: Function that returns the value for a given position on the slider. The position is a percentage between 0 and 1. */ + customPositionToValue?: (percent: number, minVal: number, maxVal: number) => number; + /** Object(default to null): Use to display the selection bar as a gradient. The given object must contain from and to properties which are colors. */ + selectionBarGradient?: {from: string, to: string}; + /** String(default to null): Use to add a label directly to the slider(s) for accessibility. Adds the aria-label attribute. */ + ariaLabel?: string; + /** String(default to null): Use to add a label directly to the slider(s) for accessibility. Adds the aria-label attribute. */ + ariaLabelHigh?: string; + /** String(default to null): Use instead of ariaLabel and ariaLabelHigh to reference the id of an element which will be used to label the slider(s). Adds the aria-labelledby attribute. */ + ariaLabelledBy?: string; + /** String(default to null): Use instead of ariaLabel and ariaLabelHigh to reference the id of an element which will be used to label the slider(s). Adds the aria-labelledby attribute. */ + ariaLabelledByHigh?: string; + } + } +} diff --git a/node_modules/angularjs-slider/dist/rzslider.js b/node_modules/angularjs-slider/dist/rzslider.js new file mode 100644 index 0000000..21610d6 --- /dev/null +++ b/node_modules/angularjs-slider/dist/rzslider.js @@ -0,0 +1,2779 @@ +/*! angularjs-slider - v7.0.0 - + (c) Rafal Zajac , Valentin Hervieu , Jussi Saarivirta , Angelin Sirbu - + https://github.com/angular-slider/angularjs-slider - + 2019-02-23 */ +/*jslint unparam: true */ +/*global angular: false, console: false, define, module */ +;(function(root, factory) { + 'use strict' + /* istanbul ignore next */ + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['angular'], factory) + } else if (typeof module === 'object' && module.exports) { + // Node. Does not work with strict CommonJS, but + // only CommonJS-like environments that support module.exports, + // like Node. + // to support bundler like browserify + var angularObj = angular || require('angular') + if ((!angularObj || !angularObj.module) && typeof angular != 'undefined') { + angularObj = angular + } + module.exports = factory(angularObj) + } else { + // Browser globals (root is window) + factory(root.angular) + } +})(this, function(angular) { + 'use strict' + var module = angular + .module('rzSlider', []) + .factory('RzSliderOptions', function() { + var defaultOptions = { + floor: 0, + ceil: null, //defaults to rz-slider-model + step: 1, + precision: 0, + minRange: null, + maxRange: null, + restrictedRange: null, + pushRange: false, + minLimit: null, + maxLimit: null, + id: null, + translate: null, + getLegend: null, + stepsArray: null, + bindIndexForStepsArray: false, + draggableRange: false, + draggableRangeOnly: false, + showSelectionBar: false, + showSelectionBarEnd: false, + showSelectionBarFromValue: null, + showOuterSelectionBars: false, + hidePointerLabels: false, + hideLimitLabels: false, + autoHideLimitLabels: true, + readOnly: false, + disabled: false, + interval: 350, + showTicks: false, + showTicksValues: false, + ticksArray: null, + ticksTooltip: null, + ticksValuesTooltip: null, + vertical: false, + getSelectionBarColor: null, + getTickColor: null, + getPointerColor: null, + keyboardSupport: true, + scale: 1, + enforceStep: true, + enforceRange: false, + noSwitching: false, + onlyBindHandles: false, + disableAnimation: false, + onStart: null, + onChange: null, + onEnd: null, + rightToLeft: false, + reversedControls: false, + boundPointerLabels: true, + mergeRangeLabelsIfSame: false, + labelOverlapSeparator: ' - ', + customTemplateScope: null, + logScale: false, + customValueToPosition: null, + customPositionToValue: null, + selectionBarGradient: null, + ariaLabel: null, + ariaLabelledBy: null, + ariaLabelHigh: null, + ariaLabelledByHigh: null, + } + var globalOptions = {} + + var factory = {} + /** + * `options({})` allows global configuration of all sliders in the + * application. + * + * var app = angular.module( 'App', ['rzSlider'], function( RzSliderOptions ) { + * // show ticks for all sliders + * RzSliderOptions.options( { showTicks: true } ); + * }); + */ + factory.options = function(value) { + angular.extend(globalOptions, value) + } + + factory.getOptions = function(options) { + return angular.extend({}, defaultOptions, globalOptions, options) + } + + return factory + }) + .factory('rzThrottle', ['$timeout', function($timeout) { + /** + * rzThrottle + * + * Taken from underscore project + * + * @param {Function} func + * @param {number} wait + * @param {ThrottleOptions} options + * @returns {Function} + */ + return function(func, wait, options) { + 'use strict' + /* istanbul ignore next */ + var getTime = + Date.now || + function() { + return new Date().getTime() + } + var context, args, result + var timeout = null + var previous = 0 + options = options || {} + var later = function() { + previous = getTime() + timeout = null + result = func.apply(context, args) + context = args = null + } + return function() { + var now = getTime() + var remaining = wait - (now - previous) + context = this + args = arguments + if (remaining <= 0) { + $timeout.cancel(timeout) + timeout = null + previous = now + result = func.apply(context, args) + context = args = null + } else if (!timeout && options.trailing !== false) { + timeout = $timeout(later, remaining) + } + return result + } + } + }]) + .factory('RzSlider', ['$timeout', '$document', '$window', '$compile', 'RzSliderOptions', 'rzThrottle', function( + $timeout, + $document, + $window, + $compile, + RzSliderOptions, + rzThrottle + ) { + 'use strict' + + /** + * Slider + * + * @param {ngScope} scope The AngularJS scope + * @param {Element} sliderElem The slider directive element wrapped in jqLite + * @constructor + */ + var Slider = function(scope, sliderElem) { + /** + * The slider's scope + * + * @type {ngScope} + */ + this.scope = scope + + /** + * The slider inner low value (linked to rzSliderModel) + * @type {number} + */ + this.lowValue = 0 + + /** + * The slider inner high value (linked to rzSliderHigh) + * @type {number} + */ + this.highValue = 0 + + /** + * Slider element wrapped in jqLite + * + * @type {jqLite} + */ + this.sliderElem = sliderElem + + /** + * Slider type + * + * @type {boolean} Set to true for range slider + */ + this.range = + this.scope.rzSliderModel !== undefined && + this.scope.rzSliderHigh !== undefined + + /** + * Values recorded when first dragging the bar + * + * @type {Object} + */ + this.dragging = { + active: false, + value: 0, + difference: 0, + position: 0, + lowLimit: 0, + highLimit: 0, + } + + /** + * property that handle position (defaults to left for horizontal) + * @type {string} + */ + this.positionProperty = 'left' + + /** + * property that handle dimension (defaults to width for horizontal) + * @type {string} + */ + this.dimensionProperty = 'width' + + /** + * Half of the width or height of the slider handles + * + * @type {number} + */ + this.handleHalfDim = 0 + + /** + * Maximum position the slider handle can have + * + * @type {number} + */ + this.maxPos = 0 + + /** + * Precision + * + * @type {number} + */ + this.precision = 0 + + /** + * Step + * + * @type {number} + */ + this.step = 1 + + /** + * The name of the handle we are currently tracking + * + * @type {string} + */ + this.tracking = '' + + /** + * Minimum value (floor) of the model + * + * @type {number} + */ + this.minValue = 0 + + /** + * Maximum value (ceiling) of the model + * + * @type {number} + */ + this.maxValue = 0 + + /** + * The delta between min and max value + * + * @type {number} + */ + this.valueRange = 0 + + /** + * If showTicks/showTicksValues options are number. + * In this case, ticks values should be displayed below the slider. + * @type {boolean} + */ + this.intermediateTicks = false + + /** + * Set to true if init method already executed + * + * @type {boolean} + */ + this.initHasRun = false + + /** + * Used to call onStart on the first keydown event + * + * @type {boolean} + */ + this.firstKeyDown = false + + /** + * Internal flag to prevent watchers to be called when the sliders value are modified internally. + * @type {boolean} + */ + this.internalChange = false + + /** + * Internal flag to keep track of the visibility of combo label + * @type {boolean} + */ + this.cmbLabelShown = false + + /** + * Internal variable to keep track of the focus element + */ + this.currentFocusElement = null + + /** + * Internal variable to know if we are already moving + */ + this.moving = false + + // Slider DOM elements wrapped in jqLite + this.fullBar = null // The whole slider bar + this.selBar = null // Highlight between two handles + this.minH = null // Left slider handle + this.maxH = null // Right slider handle + this.flrLab = null // Floor label + this.ceilLab = null // Ceiling label + this.minLab = null // Label above the low value + this.maxLab = null // Label above the high value + this.cmbLab = null // Combined label + this.ticks = null // The ticks + + // Initialize slider + this.init() + } + + // Add instance methods + Slider.prototype = { + /** + * Initialize slider + * + * @returns {undefined} + */ + init: function() { + var thrLow, + thrHigh, + self = this + + var calcDimFn = function() { + self.calcViewDimensions() + } + + this.applyOptions() + this.syncLowValue() + if (this.range) this.syncHighValue() + this.initElemHandles() + this.manageElementsStyle() + this.setDisabledState() + this.calcViewDimensions() + this.setMinAndMax() + this.updateRestrictionBar() + this.addAccessibility() + this.updateCeilLab() + this.updateFloorLab() + this.initHandles() + this.manageEventsBindings() + + // Recalculate slider view dimensions + this.scope.$on('reCalcViewDimensions', calcDimFn) + + // Recalculate stuff if view port dimensions have changed + angular.element($window).on('resize', calcDimFn) + + this.initHasRun = true + + if (this.options.disableAnimation) { + this.sliderElem.addClass('noanimate') + } + + // Watch for changes to the model + thrLow = rzThrottle(function() { + self.onLowHandleChange() + }, self.options.interval) + + thrHigh = rzThrottle(function() { + self.onHighHandleChange() + }, self.options.interval) + + this.scope.$on('rzSliderForceRender', function() { + self.resetLabelsValue() + thrLow() + if (self.range) { + thrHigh() + } + self.resetSlider() + }) + + // Watchers (order is important because in case of simultaneous change, + // watchers will be called in the same order) + this.scope.$watchCollection('rzSliderOptions()', function( + newValue, + oldValue + ) { + if (newValue === oldValue) return + self.applyOptions() // need to be called before synchronizing the values + self.syncLowValue() + if (self.range) self.syncHighValue() + self.resetSlider() + }) + + this.scope.$watch('rzSliderModel', function(newValue, oldValue) { + if (self.internalChange) return + if (newValue === oldValue) return + thrLow() + }) + + this.scope.$watch('rzSliderHigh', function(newValue, oldValue) { + if (self.internalChange) return + if (newValue === oldValue) return + if (newValue != null) thrHigh() + if ( + (self.range && newValue == null) || + (!self.range && newValue != null) + ) { + self.applyOptions() + self.resetSlider() + } + }) + + this.scope.$on('$destroy', function() { + self.unbindEvents() + angular.element($window).off('resize', calcDimFn) + self.currentFocusElement = null + }) + }, + + findStepIndex: function(modelValue) { + var index = 0 + for (var i = 0; i < this.options.stepsArray.length; i++) { + var step = this.options.stepsArray[i] + if (step === modelValue) { + index = i + break + } else if (angular.isDate(step)) { + if (step.getTime() === modelValue.getTime()) { + index = i + break + } + } else if (angular.isObject(step)) { + if ( + (angular.isDate(step.value) && + step.value.getTime() === modelValue.getTime()) || + step.value === modelValue + ) { + index = i + break + } + } + } + return index + }, + + syncLowValue: function() { + if (this.options.stepsArray) { + if (!this.options.bindIndexForStepsArray) + this.lowValue = this.findStepIndex(this.scope.rzSliderModel) + else this.lowValue = this.scope.rzSliderModel + } else this.lowValue = this.scope.rzSliderModel + }, + + syncHighValue: function() { + if (this.options.stepsArray) { + if (!this.options.bindIndexForStepsArray) + this.highValue = this.findStepIndex(this.scope.rzSliderHigh) + else this.highValue = this.scope.rzSliderHigh + } else this.highValue = this.scope.rzSliderHigh + }, + + getStepValue: function(sliderValue) { + var step = this.options.stepsArray[sliderValue] + if (angular.isDate(step)) return step + if (angular.isObject(step)) return step.value + return step + }, + + applyLowValue: function() { + if (this.options.stepsArray) { + if (!this.options.bindIndexForStepsArray) + this.scope.rzSliderModel = this.getStepValue(this.lowValue) + else this.scope.rzSliderModel = this.lowValue + } else this.scope.rzSliderModel = this.lowValue + }, + + applyHighValue: function() { + if (this.options.stepsArray) { + if (!this.options.bindIndexForStepsArray) + this.scope.rzSliderHigh = this.getStepValue(this.highValue) + else this.scope.rzSliderHigh = this.highValue + } else this.scope.rzSliderHigh = this.highValue + }, + + /* + * Reflow the slider when the low handle changes (called with throttle) + */ + onLowHandleChange: function() { + this.syncLowValue() + if (this.range) this.syncHighValue() + this.setMinAndMax() + this.updateLowHandle(this.valueToPosition(this.lowValue)) + this.updateSelectionBar() + this.updateTicksScale() + this.updateAriaAttributes() + if (this.range) { + this.updateCmbLabel() + } + }, + + /* + * Reflow the slider when the high handle changes (called with throttle) + */ + onHighHandleChange: function() { + this.syncLowValue() + this.syncHighValue() + this.setMinAndMax() + this.updateHighHandle(this.valueToPosition(this.highValue)) + this.updateSelectionBar() + this.updateTicksScale() + this.updateCmbLabel() + this.updateAriaAttributes() + }, + + /** + * Read the user options and apply them to the slider model + */ + applyOptions: function() { + var sliderOptions + if (this.scope.rzSliderOptions) + sliderOptions = this.scope.rzSliderOptions() + else sliderOptions = {} + + this.options = RzSliderOptions.getOptions(sliderOptions) + + if (this.options.step <= 0) this.options.step = 1 + + this.range = + this.scope.rzSliderModel !== undefined && + this.scope.rzSliderHigh !== undefined + this.options.draggableRange = + this.range && this.options.draggableRange + this.options.draggableRangeOnly = + this.range && this.options.draggableRangeOnly + if (this.options.draggableRangeOnly) { + this.options.draggableRange = true + } + + this.options.showTicks = + this.options.showTicks || + this.options.showTicksValues || + !!this.options.ticksArray + this.scope.showTicks = this.options.showTicks //scope is used in the template + if ( + angular.isNumber(this.options.showTicks) || + this.options.ticksArray + ) + this.intermediateTicks = true + + this.options.showSelectionBar = + this.options.showSelectionBar || + this.options.showSelectionBarEnd || + this.options.showSelectionBarFromValue !== null + + if (this.options.stepsArray) { + this.parseStepsArray() + } else { + if (this.options.translate) this.customTrFn = this.options.translate + else + this.customTrFn = function(value) { + return String(value) + } + + this.getLegend = this.options.getLegend + } + + if (this.options.vertical) { + this.positionProperty = 'bottom' + this.dimensionProperty = 'height' + } else { + this.positionProperty = 'left' + this.dimensionProperty = 'width' + } + + if (this.options.customTemplateScope) + this.scope.custom = this.options.customTemplateScope + }, + + parseStepsArray: function() { + this.options.floor = 0 + this.options.ceil = this.options.stepsArray.length - 1 + this.options.step = 1 + + if (this.options.translate) { + this.customTrFn = this.options.translate + } else { + this.customTrFn = function(modelValue) { + if (this.options.bindIndexForStepsArray) + return this.getStepValue(modelValue) + return modelValue + } + } + + this.getLegend = function(index) { + var step = this.options.stepsArray[index] + if (angular.isObject(step)) return step.legend + return null + } + }, + + /** + * Resets slider + * + * @returns {undefined} + */ + resetSlider: function() { + this.resetLabelsValue() + this.manageElementsStyle() + this.addAccessibility() + this.setMinAndMax() + this.updateCeilLab() + this.updateFloorLab() + this.unbindEvents() + this.manageEventsBindings() + this.setDisabledState() + this.calcViewDimensions() + this.updateRestrictionBar() + this.refocusPointerIfNeeded() + }, + + refocusPointerIfNeeded: function() { + if (this.currentFocusElement) { + this.onPointerFocus( + this.currentFocusElement.pointer, + this.currentFocusElement.ref + ) + this.focusElement(this.currentFocusElement.pointer) + } + }, + + /** + * Set the slider children to variables for easy access + * + * Run only once during initialization + * + * @returns {undefined} + */ + initElemHandles: function() { + // Assign all slider elements to object properties for easy access + angular.forEach( + this.sliderElem.children(), + function(elem, index) { + var jElem = angular.element(elem) + + switch (index) { + case 0: + this.leftOutSelBar = jElem + break + case 1: + this.rightOutSelBar = jElem + break + case 2: + this.fullBar = jElem + break + case 3: + this.selBar = jElem + break + case 4: + this.restrictedBar = jElem + break + case 5: + this.minH = jElem + break + case 6: + this.maxH = jElem + break + case 7: + this.flrLab = jElem + break + case 8: + this.ceilLab = jElem + break + case 9: + this.minLab = jElem + break + case 10: + this.maxLab = jElem + break + case 11: + this.cmbLab = jElem + break + case 12: + this.ticks = jElem + break + } + }, + this + ) + + // Initialize position cache properties + this.selBar.rzsp = 0 + this.minH.rzsp = 0 + this.maxH.rzsp = 0 + this.flrLab.rzsp = 0 + this.ceilLab.rzsp = 0 + this.minLab.rzsp = 0 + this.maxLab.rzsp = 0 + this.cmbLab.rzsp = 0 + }, + + /** + * Update each elements style based on options + */ + manageElementsStyle: function() { + if (!this.range) this.maxH.css('display', 'none') + else this.maxH.css('display', '') + + this.alwaysHide( + this.flrLab, + this.options.showTicksValues || this.options.hideLimitLabels + ) + this.alwaysHide( + this.ceilLab, + this.options.showTicksValues || this.options.hideLimitLabels + ) + + var hideLabelsForTicks = + this.options.showTicksValues && !this.intermediateTicks + this.alwaysHide( + this.minLab, + hideLabelsForTicks || this.options.hidePointerLabels + ) + this.alwaysHide( + this.maxLab, + hideLabelsForTicks || !this.range || this.options.hidePointerLabels + ) + this.alwaysHide( + this.cmbLab, + hideLabelsForTicks || !this.range || this.options.hidePointerLabels + ) + this.alwaysHide( + this.selBar, + !this.range && !this.options.showSelectionBar + ) + this.alwaysHide( + this.leftOutSelBar, + !this.range || !this.options.showOuterSelectionBars + ) + this.alwaysHide(this.restrictedBar, !this.options.restrictedRange) + this.alwaysHide( + this.rightOutSelBar, + !this.range || !this.options.showOuterSelectionBars + ) + + if (this.range && this.options.showOuterSelectionBars) { + this.fullBar.addClass('rz-transparent') + } + + if (this.options.vertical) { + this.sliderElem.addClass('rz-vertical') + } else { + this.sliderElem.removeClass('rz-vertical') + } + + if (this.options.draggableRange) this.selBar.addClass('rz-draggable') + else this.selBar.removeClass('rz-draggable') + + if (this.intermediateTicks && this.options.showTicksValues) + this.ticks.addClass('rz-ticks-values-under') + }, + + alwaysHide: function(el, hide) { + el.rzAlwaysHide = hide + if (hide) this.hideEl(el) + else this.showEl(el) + }, + + /** + * Manage the events bindings based on readOnly and disabled options + * + * @returns {undefined} + */ + manageEventsBindings: function() { + if (this.options.disabled || this.options.readOnly) + this.unbindEvents() + else this.bindEvents() + }, + + /** + * Set the disabled state based on rzSliderDisabled + * + * @returns {undefined} + */ + setDisabledState: function() { + if (this.options.disabled) { + this.sliderElem.attr('disabled', 'disabled') + } else { + this.sliderElem.attr('disabled', null) + } + }, + + /** + * Reset label values + * + * @return {undefined} + */ + resetLabelsValue: function() { + this.minLab.rzsv = undefined + this.maxLab.rzsv = undefined + this.flrLab.rzsv = undefined + this.ceilLab.rzsv = undefined + this.cmbLab.rzsv = undefined + this.resetPosition(this.flrLab) + this.resetPosition(this.ceilLab) + this.resetPosition(this.cmbLab) + this.resetPosition(this.minLab) + this.resetPosition(this.maxLab) + }, + + /** + * Initialize slider handles positions and labels + * + * Run only once during initialization and every time view port changes size + * + * @returns {undefined} + */ + initHandles: function() { + this.updateLowHandle(this.valueToPosition(this.lowValue)) + + /* + the order here is important since the selection bar should be + updated after the high handle but before the combined label + */ + if (this.range) + this.updateHighHandle(this.valueToPosition(this.highValue)) + this.updateSelectionBar() + if (this.range) this.updateCmbLabel() + + this.updateTicksScale() + }, + + /** + * Translate value to human readable format + * + * @param {number|string} value + * @param {jqLite} label + * @param {String} which + * @param {boolean} [useCustomTr] + * @returns {undefined} + */ + translateFn: function(value, label, which, useCustomTr) { + useCustomTr = useCustomTr === undefined ? true : useCustomTr + + var valStr = '', + getDimension = false, + noLabelInjection = label.hasClass('no-label-injection') + + if (useCustomTr) { + if (this.options.stepsArray && !this.options.bindIndexForStepsArray) + value = this.getStepValue(value) + valStr = String(this.customTrFn(value, this.options.id, which)) + } else { + valStr = String(value) + } + + if ( + label.rzsv === undefined || + label.rzsv.length !== valStr.length || + (label.rzsv.length > 0 && label.rzsd === 0) + ) { + getDimension = true + label.rzsv = valStr + } + + if (!noLabelInjection) { + label.html(valStr) + } + this.scope[which + 'Label'] = valStr + + // Update width only when length of the label have changed + if (getDimension) { + this.getDimension(label) + } + }, + + /** + * Set maximum and minimum values for the slider and ensure the model and high + * value match these limits + * @returns {undefined} + */ + setMinAndMax: function() { + this.step = +this.options.step + this.precision = +this.options.precision + + this.minValue = this.options.floor + if (this.options.logScale && this.minValue === 0) + throw Error("Can't use floor=0 with logarithmic scale") + + if (this.options.enforceStep) { + this.lowValue = this.roundStep(this.lowValue) + if (this.range) this.highValue = this.roundStep(this.highValue) + } + + if (this.options.ceil != null) this.maxValue = this.options.ceil + else + this.maxValue = this.options.ceil = this.range + ? this.highValue + : this.lowValue + + if (this.options.enforceRange) { + this.lowValue = this.sanitizeValue(this.lowValue) + if (this.range) this.highValue = this.sanitizeValue(this.highValue) + } + + this.applyLowValue() + if (this.range) this.applyHighValue() + + this.valueRange = this.maxValue - this.minValue + }, + + /** + * Adds accessibility attributes + * + * Run only once during initialization + * + * @returns {undefined} + */ + addAccessibility: function() { + this.minH.attr('role', 'slider') + this.updateAriaAttributes() + if ( + this.options.keyboardSupport && + !(this.options.readOnly || this.options.disabled) + ) + this.minH.attr('tabindex', '0') + else this.minH.attr('tabindex', '') + if (this.options.vertical) { + this.minH.attr('aria-orientation', 'vertical') + } else { + this.minH.attr('aria-orientation', 'horizontal') + } + if (this.options.ariaLabel) + this.minH.attr('aria-label', this.options.ariaLabel) + else if (this.options.ariaLabelledBy) + this.minH.attr('aria-labelledby', this.options.ariaLabelledBy) + + if (this.range) { + this.maxH.attr('role', 'slider') + if ( + this.options.keyboardSupport && + !(this.options.readOnly || this.options.disabled) + ) + this.maxH.attr('tabindex', '0') + else this.maxH.attr('tabindex', '') + if (this.options.vertical) + this.maxH.attr('aria-orientation', 'vertical') + else this.maxH.attr('aria-orientation', 'horizontal') + if (this.options.ariaLabelHigh) + this.maxH.attr('aria-label', this.options.ariaLabelHigh) + else if (this.options.ariaLabelledByHigh) + this.maxH.attr('aria-labelledby', this.options.ariaLabelledByHigh) + } + }, + + /** + * Updates aria attributes according to current values + */ + updateAriaAttributes: function() { + this.minH.attr({ + 'aria-valuenow': this.scope.rzSliderModel, + 'aria-valuetext': this.customTrFn( + this.scope.rzSliderModel, + this.options.id, + 'model' + ), + 'aria-valuemin': this.minValue, + 'aria-valuemax': this.maxValue, + }) + if (this.range) { + this.maxH.attr({ + 'aria-valuenow': this.scope.rzSliderHigh, + 'aria-valuetext': this.customTrFn( + this.scope.rzSliderHigh, + this.options.id, + 'high' + ), + 'aria-valuemin': this.minValue, + 'aria-valuemax': this.maxValue, + }) + } + }, + + /** + * Calculate dimensions that are dependent on view port size + * + * Run once during initialization and every time view port changes size. + * + * @returns {undefined} + */ + calcViewDimensions: function() { + var handleWidth = this.getDimension(this.minH) + + this.handleHalfDim = handleWidth / 2 + this.barDimension = this.getDimension(this.fullBar) + + this.maxPos = this.barDimension - handleWidth + + this.getDimension(this.sliderElem) + this.sliderElem.rzsp = this.sliderElem[0].getBoundingClientRect()[ + this.positionProperty + ] + + if (this.initHasRun) { + this.updateFloorLab() + this.updateCeilLab() + this.initHandles() + var self = this + $timeout(function() { + self.updateTicksScale() + }) + } + }, + + /** + * Update the ticks position + * + * @returns {undefined} + */ + updateTicksScale: function() { + if (!this.options.showTicks) return + + var ticksArray = this.options.ticksArray || this.getTicksArray(), + translate = this.options.vertical ? 'translateY' : 'translateX', + self = this + + if (this.options.rightToLeft) ticksArray.reverse() + + this.scope.ticks = ticksArray.map(function(value) { + var legend = null + if (angular.isObject(value)) { + legend = value.legend + value = value.value + } + + var position = self.valueToPosition(value) + + if (self.options.vertical) position = self.maxPos - position + + var translation = translate + '(' + Math.round(position) + 'px)' + var tick = { + legend: legend, + selected: self.isTickSelected(value), + style: { + '-webkit-transform': translation, + '-moz-transform': translation, + '-o-transform': translation, + '-ms-transform': translation, + transform: translation, + }, + } + if (tick.selected && self.options.getSelectionBarColor) { + tick.style['background-color'] = self.getSelectionBarColor() + } + if (!tick.selected && self.options.getTickColor) { + tick.style['background-color'] = self.getTickColor(value) + } + if (self.options.ticksTooltip) { + tick.tooltip = self.options.ticksTooltip(value) + tick.tooltipPlacement = self.options.vertical ? 'right' : 'top' + } + if ( + self.options.showTicksValues === true || + value % self.options.showTicksValues === 0 + ) { + tick.value = self.getDisplayValue(value, 'tick-value') + if (self.options.ticksValuesTooltip) { + tick.valueTooltip = self.options.ticksValuesTooltip(value) + tick.valueTooltipPlacement = self.options.vertical + ? 'right' + : 'top' + } + } + if (self.getLegend) { + legend = self.getLegend(value, self.options.id) + if (legend) tick.legend = legend + } + return tick + }) + }, + + getTicksArray: function() { + var step = this.step, + ticksArray = [] + if (this.intermediateTicks) step = this.options.showTicks + for ( + var value = this.minValue; + value <= this.maxValue; + value += step + ) { + ticksArray.push(value) + } + return ticksArray + }, + + isTickSelected: function(value) { + if (!this.range) { + if (this.options.showSelectionBarFromValue !== null) { + var center = this.options.showSelectionBarFromValue + if ( + this.lowValue > center && + value >= center && + value <= this.lowValue + ) + return true + else if ( + this.lowValue < center && + value <= center && + value >= this.lowValue + ) + return true + } else if (this.options.showSelectionBarEnd) { + if (value >= this.lowValue) return true + } else if (this.options.showSelectionBar && value <= this.lowValue) + return true + } + if (this.range && value >= this.lowValue && value <= this.highValue) + return true + return false + }, + + /** + * Update position of the floor label + * + * @returns {undefined} + */ + updateFloorLab: function() { + this.translateFn(this.minValue, this.flrLab, 'floor') + this.getDimension(this.flrLab) + var position = this.options.rightToLeft + ? this.barDimension - this.flrLab.rzsd + : 0 + this.setPosition(this.flrLab, position) + }, + + /** + * Update position of the ceiling label + * + * @returns {undefined} + */ + updateCeilLab: function() { + this.translateFn(this.maxValue, this.ceilLab, 'ceil') + this.getDimension(this.ceilLab) + var position = this.options.rightToLeft + ? 0 + : this.barDimension - this.ceilLab.rzsd + this.setPosition(this.ceilLab, position) + }, + + /** + * Update slider handles and label positions + * + * @param {string} which + * @param {number} newPos + */ + updateHandles: function(which, newPos) { + if (which === 'lowValue') this.updateLowHandle(newPos) + else this.updateHighHandle(newPos) + + this.updateSelectionBar() + this.updateTicksScale() + if (this.range) this.updateCmbLabel() + }, + + /** + * Helper function to work out the position for handle labels depending on RTL or not + * + * @param {string} labelName maxLab or minLab + * @param newPos + * + * @returns {number} + */ + getHandleLabelPos: function(labelName, newPos) { + var labelRzsd = this[labelName].rzsd, + nearHandlePos = newPos - labelRzsd / 2 + this.handleHalfDim, + endOfBarPos = this.barDimension - labelRzsd + + if (!this.options.boundPointerLabels) return nearHandlePos + + if ( + (this.options.rightToLeft && labelName === 'minLab') || + (!this.options.rightToLeft && labelName === 'maxLab') + ) { + return Math.min(nearHandlePos, endOfBarPos) + } else { + return Math.min(Math.max(nearHandlePos, 0), endOfBarPos) + } + }, + + /** + * Update low slider handle position and label + * + * @param {number} newPos + * @returns {undefined} + */ + updateLowHandle: function(newPos) { + this.setPosition(this.minH, newPos) + this.translateFn(this.lowValue, this.minLab, 'model') + this.setPosition( + this.minLab, + this.getHandleLabelPos('minLab', newPos) + ) + + if (this.options.getPointerColor) { + var pointercolor = this.getPointerColor('min') + this.scope.minPointerStyle = { + backgroundColor: pointercolor, + } + } + + if (this.options.autoHideLimitLabels) { + this.shFloorCeil() + } + }, + + /** + * Update high slider handle position and label + * + * @param {number} newPos + * @returns {undefined} + */ + updateHighHandle: function(newPos) { + this.setPosition(this.maxH, newPos) + this.translateFn(this.highValue, this.maxLab, 'high') + this.setPosition( + this.maxLab, + this.getHandleLabelPos('maxLab', newPos) + ) + + if (this.options.getPointerColor) { + var pointercolor = this.getPointerColor('max') + this.scope.maxPointerStyle = { + backgroundColor: pointercolor, + } + } + if (this.options.autoHideLimitLabels) { + this.shFloorCeil() + } + }, + + /** + * Show/hide floor/ceiling label + * + * @returns {undefined} + */ + shFloorCeil: function() { + // Show based only on hideLimitLabels if pointer labels are hidden + if (this.options.hidePointerLabels) { + return + } + var flHidden = false, + clHidden = false, + isMinLabAtFloor = this.isLabelBelowFloorLab(this.minLab), + isMinLabAtCeil = this.isLabelAboveCeilLab(this.minLab), + isMaxLabAtCeil = this.isLabelAboveCeilLab(this.maxLab), + isCmbLabAtFloor = this.isLabelBelowFloorLab(this.cmbLab), + isCmbLabAtCeil = this.isLabelAboveCeilLab(this.cmbLab) + + if (isMinLabAtFloor) { + flHidden = true + this.hideEl(this.flrLab) + } else { + flHidden = false + this.showEl(this.flrLab) + } + + if (isMinLabAtCeil) { + clHidden = true + this.hideEl(this.ceilLab) + } else { + clHidden = false + this.showEl(this.ceilLab) + } + + if (this.range) { + var hideCeil = this.cmbLabelShown ? isCmbLabAtCeil : isMaxLabAtCeil + var hideFloor = this.cmbLabelShown + ? isCmbLabAtFloor + : isMinLabAtFloor + + if (hideCeil) { + this.hideEl(this.ceilLab) + } else if (!clHidden) { + this.showEl(this.ceilLab) + } + + // Hide or show floor label + if (hideFloor) { + this.hideEl(this.flrLab) + } else if (!flHidden) { + this.showEl(this.flrLab) + } + } + }, + + isLabelBelowFloorLab: function(label) { + var isRTL = this.options.rightToLeft, + pos = label.rzsp, + dim = label.rzsd, + floorPos = this.flrLab.rzsp, + floorDim = this.flrLab.rzsd + return isRTL + ? pos + dim >= floorPos - 2 + : pos <= floorPos + floorDim + 2 + }, + + isLabelAboveCeilLab: function(label) { + var isRTL = this.options.rightToLeft, + pos = label.rzsp, + dim = label.rzsd, + ceilPos = this.ceilLab.rzsp, + ceilDim = this.ceilLab.rzsd + return isRTL ? pos <= ceilPos + ceilDim + 2 : pos + dim >= ceilPos - 2 + }, + + /** + * Update restricted area bar + * + * @returns {undefined} + */ + updateRestrictionBar: function() { + var position = 0, + dimension = 0 + if (this.options.restrictedRange) { + var from = this.valueToPosition(this.options.restrictedRange.from), + to = this.valueToPosition(this.options.restrictedRange.to) + dimension = Math.abs(to - from) + position = this.options.rightToLeft + ? to + this.handleHalfDim + : from + this.handleHalfDim + this.setDimension(this.restrictedBar, dimension) + this.setPosition(this.restrictedBar, position) + } + }, + + /** + * Update slider selection bar, combined label and range label + * + * @returns {undefined} + */ + updateSelectionBar: function() { + var position = 0, + dimension = 0, + isSelectionBarFromRight = this.options.rightToLeft + ? !this.options.showSelectionBarEnd + : this.options.showSelectionBarEnd, + positionForRange = this.options.rightToLeft + ? this.maxH.rzsp + this.handleHalfDim + : this.minH.rzsp + this.handleHalfDim + + if (this.range) { + dimension = Math.abs(this.maxH.rzsp - this.minH.rzsp) + position = positionForRange + } else { + if (this.options.showSelectionBarFromValue !== null) { + var center = this.options.showSelectionBarFromValue, + centerPosition = this.valueToPosition(center), + isModelGreaterThanCenter = this.options.rightToLeft + ? this.lowValue <= center + : this.lowValue > center + if (isModelGreaterThanCenter) { + dimension = this.minH.rzsp - centerPosition + position = centerPosition + this.handleHalfDim + } else { + dimension = centerPosition - this.minH.rzsp + position = this.minH.rzsp + this.handleHalfDim + } + } else if (isSelectionBarFromRight) { + dimension = + Math.abs(this.maxPos - this.minH.rzsp) + this.handleHalfDim + position = this.minH.rzsp + this.handleHalfDim + } else { + dimension = this.minH.rzsp + this.handleHalfDim + position = 0 + } + } + this.setDimension(this.selBar, dimension) + this.setPosition(this.selBar, position) + if (this.range && this.options.showOuterSelectionBars) { + if (this.options.rightToLeft) { + this.setDimension(this.rightOutSelBar, position) + this.setPosition(this.rightOutSelBar, 0) + this.setDimension( + this.leftOutSelBar, + this.getDimension(this.fullBar) - (position + dimension) + ) + this.setPosition(this.leftOutSelBar, position + dimension) + } else { + this.setDimension(this.leftOutSelBar, position) + this.setPosition(this.leftOutSelBar, 0) + this.setDimension( + this.rightOutSelBar, + this.getDimension(this.fullBar) - (position + dimension) + ) + this.setPosition(this.rightOutSelBar, position + dimension) + } + } + if (this.options.getSelectionBarColor) { + var color = this.getSelectionBarColor() + this.scope.barStyle = { + backgroundColor: color, + } + } else if (this.options.selectionBarGradient) { + var offset = + this.options.showSelectionBarFromValue !== null + ? this.valueToPosition(this.options.showSelectionBarFromValue) + : 0, + reversed = (offset - position > 0) ^ isSelectionBarFromRight, + direction = this.options.vertical + ? reversed + ? 'bottom' + : 'top' + : reversed + ? 'left' + : 'right' + this.scope.barStyle = { + backgroundImage: + 'linear-gradient(to ' + + direction + + ', ' + + this.options.selectionBarGradient.from + + ' 0%,' + + this.options.selectionBarGradient.to + + ' 100%)', + } + if (this.options.vertical) { + this.scope.barStyle.backgroundPosition = + 'center ' + + (offset + + dimension + + position + + (reversed ? -this.handleHalfDim : 0)) + + 'px' + this.scope.barStyle.backgroundSize = + '100% ' + (this.barDimension - this.handleHalfDim) + 'px' + } else { + this.scope.barStyle.backgroundPosition = + offset - + position + + (reversed ? this.handleHalfDim : 0) + + 'px center' + this.scope.barStyle.backgroundSize = + this.barDimension - this.handleHalfDim + 'px 100%' + } + } + }, + + /** + * Wrapper around the getSelectionBarColor of the user to pass to + * correct parameters + */ + getSelectionBarColor: function() { + if (this.range) + return this.options.getSelectionBarColor( + this.scope.rzSliderModel, + this.scope.rzSliderHigh + ) + return this.options.getSelectionBarColor(this.scope.rzSliderModel) + }, + + /** + * Wrapper around the getPointerColor of the user to pass to + * correct parameters + */ + getPointerColor: function(pointerType) { + if (pointerType === 'max') { + return this.options.getPointerColor( + this.scope.rzSliderHigh, + pointerType + ) + } + return this.options.getPointerColor( + this.scope.rzSliderModel, + pointerType + ) + }, + + /** + * Wrapper around the getTickColor of the user to pass to + * correct parameters + */ + getTickColor: function(value) { + return this.options.getTickColor(value) + }, + + /** + * Update combined label position and value + * + * @returns {undefined} + */ + updateCmbLabel: function() { + var isLabelOverlap = null + if (this.options.rightToLeft) { + isLabelOverlap = + this.minLab.rzsp - this.minLab.rzsd - 10 <= this.maxLab.rzsp + } else { + isLabelOverlap = + this.minLab.rzsp + this.minLab.rzsd + 10 >= this.maxLab.rzsp + } + + if (isLabelOverlap) { + var lowTr = this.getDisplayValue(this.lowValue, 'model'), + highTr = this.getDisplayValue(this.highValue, 'high'), + labelVal = '' + if (this.options.mergeRangeLabelsIfSame && lowTr === highTr) { + labelVal = lowTr + } else { + labelVal = this.options.rightToLeft + ? highTr + this.options.labelOverlapSeparator + lowTr + : lowTr + this.options.labelOverlapSeparator + highTr + } + + this.translateFn(labelVal, this.cmbLab, 'cmb', false) + var pos = this.options.boundPointerLabels + ? Math.min( + Math.max( + this.selBar.rzsp + + this.selBar.rzsd / 2 - + this.cmbLab.rzsd / 2, + 0 + ), + this.barDimension - this.cmbLab.rzsd + ) + : this.selBar.rzsp + this.selBar.rzsd / 2 - this.cmbLab.rzsd / 2 + + this.setPosition(this.cmbLab, pos) + this.cmbLabelShown = true + this.hideEl(this.minLab) + this.hideEl(this.maxLab) + this.showEl(this.cmbLab) + } else { + this.cmbLabelShown = false + this.updateHighHandle(this.valueToPosition(this.highValue)) + this.updateLowHandle(this.valueToPosition(this.lowValue)) + this.showEl(this.maxLab) + this.showEl(this.minLab) + this.hideEl(this.cmbLab) + } + if (this.options.autoHideLimitLabels) { + this.shFloorCeil() + } + }, + + /** + * Return the translated value if a translate function is provided else the original value + * @param value + * @param which if it's min or max handle + * @returns {*} + */ + getDisplayValue: function(value, which) { + if (this.options.stepsArray && !this.options.bindIndexForStepsArray) { + value = this.getStepValue(value) + } + return this.customTrFn(value, this.options.id, which) + }, + + /** + * Round value to step and precision based on minValue + * + * @param {number} value + * @param {number} customStep a custom step to override the defined step + * @returns {number} + */ + roundStep: function(value, customStep) { + var step = customStep ? customStep : this.step, + steppedDifference = parseFloat( + (value - this.minValue) / step + ).toPrecision(12) + steppedDifference = Math.round(+steppedDifference) * step + var newValue = (this.minValue + steppedDifference).toFixed( + this.precision + ) + return +newValue + }, + + /** + * Hide element + * + * @param element + * @returns {jqLite} The jqLite wrapped DOM element + */ + hideEl: function(element) { + return element.css({ + visibility: 'hidden', + }) + }, + + /** + * Show element + * + * @param element The jqLite wrapped DOM element + * @returns {jqLite} The jqLite + */ + showEl: function(element) { + if (!!element.rzAlwaysHide) { + return element + } + + return element.css({ + visibility: 'visible', + }) + }, + + /** + * Set element left/top position depending on whether slider is horizontal or vertical + * + * @param {jqLite} elem The jqLite wrapped DOM element + * @param {number} pos + * @returns {number} + */ + setPosition: function(elem, pos) { + elem.rzsp = pos + var css = {} + css[this.positionProperty] = Math.round(pos) + 'px' + elem.css(css) + return pos + }, + + resetPosition: function(elem) { + elem.css({ + left: null, + bottom: null, + }) + }, + + /** + * Get element width/height depending on whether slider is horizontal or vertical + * + * @param {jqLite} elem The jqLite wrapped DOM element + * @returns {number} + */ + getDimension: function(elem) { + var val = elem[0].getBoundingClientRect() + if (this.options.vertical) + elem.rzsd = (val.bottom - val.top) * this.options.scale + else elem.rzsd = (val.right - val.left) * this.options.scale + return elem.rzsd + }, + + /** + * Set element width/height depending on whether slider is horizontal or vertical + * + * @param {jqLite} elem The jqLite wrapped DOM element + * @param {number} dim + * @returns {number} + */ + setDimension: function(elem, dim) { + elem.rzsd = dim + var css = {} + css[this.dimensionProperty] = Math.round(dim) + 'px' + elem.css(css) + return dim + }, + + /** + * Returns a value that is within slider range + * + * @param {number} val + * @returns {number} + */ + sanitizeValue: function(val) { + return Math.min(Math.max(val, this.minValue), this.maxValue) + }, + + /** + * Translate value to pixel position + * + * @param {number} val + * @returns {number} + */ + valueToPosition: function(val) { + var fn = this.linearValueToPosition + if (this.options.customValueToPosition) + fn = this.options.customValueToPosition + else if (this.options.logScale) fn = this.logValueToPosition + + val = this.sanitizeValue(val) + var percent = fn(val, this.minValue, this.maxValue) || 0 + if (this.options.rightToLeft) percent = 1 - percent + return percent * this.maxPos + }, + + linearValueToPosition: function(val, minVal, maxVal) { + var range = maxVal - minVal + return (val - minVal) / range + }, + + logValueToPosition: function(val, minVal, maxVal) { + val = Math.log(val) + minVal = Math.log(minVal) + maxVal = Math.log(maxVal) + var range = maxVal - minVal + return (val - minVal) / range + }, + + /** + * Translate position to model value + * + * @param {number} position + * @returns {number} + */ + positionToValue: function(position) { + var percent = position / this.maxPos + if (this.options.rightToLeft) percent = 1 - percent + var fn = this.linearPositionToValue + if (this.options.customPositionToValue) + fn = this.options.customPositionToValue + else if (this.options.logScale) fn = this.logPositionToValue + return fn(percent, this.minValue, this.maxValue) || 0 + }, + + linearPositionToValue: function(percent, minVal, maxVal) { + return percent * (maxVal - minVal) + minVal + }, + + logPositionToValue: function(percent, minVal, maxVal) { + minVal = Math.log(minVal) + maxVal = Math.log(maxVal) + var value = percent * (maxVal - minVal) + minVal + return Math.exp(value) + }, + + getEventAttr: function(event, attr) { + return event.originalEvent === undefined + ? event[attr] + : event.originalEvent[attr] + }, + + // Events + /** + * Get the X-coordinate or Y-coordinate of an event + * + * @param {Object} event The event + * @param targetTouchId The identifier of the touch with the X/Y coordinates + * @returns {number} + */ + getEventXY: function(event, targetTouchId) { + /* http://stackoverflow.com/a/12336075/282882 */ + //noinspection JSLint + var clientXY = this.options.vertical ? 'clientY' : 'clientX' + if (event[clientXY] !== undefined) { + return event[clientXY] + } + + var touches = this.getEventAttr(event, 'touches') + + if (targetTouchId !== undefined) { + for (var i = 0; i < touches.length; i++) { + if (touches[i].identifier === targetTouchId) { + return touches[i][clientXY] + } + } + } + + // If no target touch or the target touch was not found in the event + // returns the coordinates of the first touch + return touches[0][clientXY] + }, + + /** + * Compute the event position depending on whether the slider is horizontal or vertical + * @param event + * @param targetTouchId If targetTouchId is provided it will be considered the position of that + * @returns {number} + */ + getEventPosition: function(event, targetTouchId) { + var sliderPos = this.sliderElem.rzsp, + eventPos = 0 + if (this.options.vertical) + eventPos = -this.getEventXY(event, targetTouchId) + sliderPos + else eventPos = this.getEventXY(event, targetTouchId) - sliderPos + return eventPos * this.options.scale - this.handleHalfDim // #346 handleHalfDim is already scaled + }, + + /** + * Get event names for move and event end + * + * @param {Event} event The event + * + * @return {{moveEvent: string, endEvent: string}} + */ + getEventNames: function(event) { + var eventNames = { + moveEvent: '', + endEvent: '', + } + + if (this.getEventAttr(event, 'touches')) { + eventNames.moveEvent = 'touchmove' + eventNames.endEvent = 'touchend' + } else { + eventNames.moveEvent = 'mousemove' + eventNames.endEvent = 'mouseup' + } + + return eventNames + }, + + /** + * Get the handle closest to an event. + * + * @param event {Event} The event + * @returns {jqLite} The handle closest to the event. + */ + getNearestHandle: function(event) { + if (!this.range) { + return this.minH + } + var position = this.getEventPosition(event), + distanceMin = Math.abs(position - this.minH.rzsp), + distanceMax = Math.abs(position - this.maxH.rzsp) + if (distanceMin < distanceMax) return this.minH + else if (distanceMin > distanceMax) return this.maxH + else if (!this.options.rightToLeft) + //if event is at the same distance from min/max then if it's at left of minH, we return minH else maxH + return position < this.minH.rzsp ? this.minH : this.maxH + //reverse in rtl + else return position > this.minH.rzsp ? this.minH : this.maxH + }, + + /** + * Wrapper function to focus an angular element + * + * @param el {AngularElement} the element to focus + */ + focusElement: function(el) { + var DOM_ELEMENT = 0 + el[DOM_ELEMENT].focus() + }, + + /** + * Bind mouse and touch events to slider handles + * + * @returns {undefined} + */ + bindEvents: function() { + var barTracking, barStart, barMove + + if (this.options.draggableRange) { + barTracking = 'rzSliderDrag' + barStart = this.onDragStart + barMove = this.onDragMove + } else { + barTracking = 'lowValue' + barStart = this.onStart + barMove = this.onMove + } + + if (!this.options.onlyBindHandles) { + this.selBar.on( + 'mousedown', + angular.bind(this, barStart, null, barTracking) + ) + this.selBar.on( + 'mousedown', + angular.bind(this, barMove, this.selBar) + ) + } + + if (this.options.draggableRangeOnly) { + this.minH.on( + 'mousedown', + angular.bind(this, barStart, null, barTracking) + ) + this.maxH.on( + 'mousedown', + angular.bind(this, barStart, null, barTracking) + ) + } else { + this.minH.on( + 'mousedown', + angular.bind(this, this.onStart, this.minH, 'lowValue') + ) + if (this.range) { + this.maxH.on( + 'mousedown', + angular.bind(this, this.onStart, this.maxH, 'highValue') + ) + } + if (!this.options.onlyBindHandles) { + this.fullBar.on( + 'mousedown', + angular.bind(this, this.onStart, null, null) + ) + this.fullBar.on( + 'mousedown', + angular.bind(this, this.onMove, this.fullBar) + ) + this.ticks.on( + 'mousedown', + angular.bind(this, this.onStart, null, null) + ) + this.ticks.on( + 'mousedown', + angular.bind(this, this.onTickClick, this.ticks) + ) + } + } + + if (!this.options.onlyBindHandles) { + this.selBar.on( + 'touchstart', + angular.bind(this, barStart, null, barTracking) + ) + this.selBar.on( + 'touchstart', + angular.bind(this, barMove, this.selBar) + ) + } + if (this.options.draggableRangeOnly) { + this.minH.on( + 'touchstart', + angular.bind(this, barStart, null, barTracking) + ) + this.maxH.on( + 'touchstart', + angular.bind(this, barStart, null, barTracking) + ) + } else { + this.minH.on( + 'touchstart', + angular.bind(this, this.onStart, this.minH, 'lowValue') + ) + if (this.range) { + this.maxH.on( + 'touchstart', + angular.bind(this, this.onStart, this.maxH, 'highValue') + ) + } + if (!this.options.onlyBindHandles) { + this.fullBar.on( + 'touchstart', + angular.bind(this, this.onStart, null, null) + ) + this.fullBar.on( + 'touchstart', + angular.bind(this, this.onMove, this.fullBar) + ) + this.ticks.on( + 'touchstart', + angular.bind(this, this.onStart, null, null) + ) + this.ticks.on( + 'touchstart', + angular.bind(this, this.onTickClick, this.ticks) + ) + } + } + + if (this.options.keyboardSupport) { + this.minH.on( + 'focus', + angular.bind(this, this.onPointerFocus, this.minH, 'lowValue') + ) + if (this.range) { + this.maxH.on( + 'focus', + angular.bind(this, this.onPointerFocus, this.maxH, 'highValue') + ) + } + } + }, + + /** + * Unbind mouse and touch events to slider handles + * + * @returns {undefined} + */ + unbindEvents: function() { + this.minH.off() + this.maxH.off() + this.fullBar.off() + this.selBar.off() + this.ticks.off() + }, + + /** + * onStart event handler + * + * @param {?Object} pointer The jqLite wrapped DOM element; if null, the closest handle is used + * @param {?string} ref The name of the handle being changed; if null, the closest handle's value is modified + * @param {Event} event The event + * @returns {undefined} + */ + onStart: function(pointer, ref, event) { + var ehMove, + ehEnd, + eventNames = this.getEventNames(event) + + event.stopPropagation() + event.preventDefault() + + // We have to do this in case the HTML where the sliders are on + // have been animated into view. + this.calcViewDimensions() + + if (pointer) { + this.tracking = ref + } else { + pointer = this.getNearestHandle(event) + this.tracking = pointer === this.minH ? 'lowValue' : 'highValue' + } + + pointer.addClass('rz-active') + + if (this.options.keyboardSupport) this.focusElement(pointer) + + ehMove = angular.bind( + this, + this.dragging.active ? this.onDragMove : this.onMove, + pointer + ) + ehEnd = angular.bind(this, this.onEnd, ehMove) + + $document.on(eventNames.moveEvent, ehMove) + $document.on(eventNames.endEvent, ehEnd) + this.endHandlerToBeRemovedOnEnd = ehEnd + + this.callOnStart() + + var changedTouches = this.getEventAttr(event, 'changedTouches') + if (changedTouches) { + // Store the touch identifier + if (!this.touchId) { + this.isDragging = true + this.touchId = changedTouches[0].identifier + } + } + }, + + /** + * onMove event handler + * + * @param {jqLite} pointer + * @param {Event} event The event + * @param {boolean} fromTick if the event occured on a tick or not + * @returns {undefined} + */ + onMove: function(pointer, event, fromTick) { + if (!this.options.disableAnimation) { + if (this.moving) { + this.sliderElem.addClass('noanimate') + } + } + this.moving = true + var changedTouches = this.getEventAttr(event, 'changedTouches') + var touchForThisSlider + if (changedTouches) { + for (var i = 0; i < changedTouches.length; i++) { + if (changedTouches[i].identifier === this.touchId) { + touchForThisSlider = changedTouches[i] + break + } + } + } + + if (changedTouches && !touchForThisSlider) { + return + } + + var newPos = this.getEventPosition( + event, + touchForThisSlider ? touchForThisSlider.identifier : undefined + ), + newValue, + ceilValue = this.options.rightToLeft + ? this.minValue + : this.maxValue, + flrValue = this.options.rightToLeft ? this.maxValue : this.minValue + + if (newPos <= 0) { + newValue = flrValue + } else if (newPos >= this.maxPos) { + newValue = ceilValue + } else { + newValue = this.positionToValue(newPos) + if (fromTick && angular.isNumber(this.options.showTicks)) + newValue = this.roundStep(newValue, this.options.showTicks) + else newValue = this.roundStep(newValue) + } + this.positionTrackingHandle(newValue) + }, + + /** + * onEnd event handler + * + * @param {Event} event The event + * @param {Function} ehMove The bound move event handler + * @returns {undefined} + */ + onEnd: function(ehMove, event) { + this.moving = false + if (!this.options.disableAnimation) { + this.sliderElem.removeClass('noanimate') + } + var changedTouches = this.getEventAttr(event, 'changedTouches') + if (changedTouches && changedTouches[0].identifier !== this.touchId) { + return + } + this.isDragging = false + this.touchId = null + + if (!this.options.keyboardSupport) { + this.minH.removeClass('rz-active') + this.maxH.removeClass('rz-active') + this.tracking = '' + } + this.dragging.active = false + + var eventName = this.getEventNames(event) + $document.off(eventName.moveEvent, ehMove) + $document.off(eventName.endEvent, this.endHandlerToBeRemovedOnEnd) + this.endHandlerToBeRemovedOnEnd = null + this.callOnEnd() + }, + + onTickClick: function(pointer, event) { + this.onMove(pointer, event, true) + }, + + onPointerFocus: function(pointer, ref) { + this.tracking = ref + pointer.one('blur', angular.bind(this, this.onPointerBlur, pointer)) + pointer.on('keydown', angular.bind(this, this.onKeyboardEvent)) + pointer.on('keyup', angular.bind(this, this.onKeyUp)) + this.firstKeyDown = true + pointer.addClass('rz-active') + + this.currentFocusElement = { + pointer: pointer, + ref: ref, + } + }, + + onKeyUp: function() { + this.firstKeyDown = true + this.callOnEnd() + }, + + onPointerBlur: function(pointer) { + pointer.off('keydown') + pointer.off('keyup') + pointer.removeClass('rz-active') + if (!this.isDragging) { + this.tracking = '' + this.currentFocusElement = null + } + }, + + /** + * Key actions helper function + * + * @param {number} currentValue value of the slider + * + * @returns {?Object} action value mappings + */ + getKeyActions: function(currentValue) { + var increaseStep = currentValue + this.step, + decreaseStep = currentValue - this.step, + increasePage = currentValue + this.valueRange / 10, + decreasePage = currentValue - this.valueRange / 10 + + if (this.options.reversedControls) { + increaseStep = currentValue - this.step + decreaseStep = currentValue + this.step + increasePage = currentValue - this.valueRange / 10 + decreasePage = currentValue + this.valueRange / 10 + } + + //Left to right default actions + var actions = { + UP: increaseStep, + DOWN: decreaseStep, + LEFT: decreaseStep, + RIGHT: increaseStep, + PAGEUP: increasePage, + PAGEDOWN: decreasePage, + HOME: this.options.reversedControls ? this.maxValue : this.minValue, + END: this.options.reversedControls ? this.minValue : this.maxValue, + } + //right to left means swapping right and left arrows + if (this.options.rightToLeft) { + actions.LEFT = increaseStep + actions.RIGHT = decreaseStep + // right to left and vertical means we also swap up and down + if (this.options.vertical) { + actions.UP = decreaseStep + actions.DOWN = increaseStep + } + } + return actions + }, + + onKeyboardEvent: function(event) { + var currentValue = this[this.tracking], + keyCode = event.keyCode || event.which, + keys = { + 38: 'UP', + 40: 'DOWN', + 37: 'LEFT', + 39: 'RIGHT', + 33: 'PAGEUP', + 34: 'PAGEDOWN', + 36: 'HOME', + 35: 'END', + }, + actions = this.getKeyActions(currentValue), + key = keys[keyCode], + action = actions[key] + if (action == null || this.tracking === '') return + event.preventDefault() + + if (this.firstKeyDown) { + this.firstKeyDown = false + this.callOnStart() + } + + var self = this + $timeout(function() { + var newValue = self.roundStep(self.sanitizeValue(action)) + if (!self.options.draggableRangeOnly) { + self.positionTrackingHandle(newValue) + } else { + var difference = self.highValue - self.lowValue, + newMinValue, + newMaxValue + if (self.tracking === 'lowValue') { + newMinValue = newValue + newMaxValue = newValue + difference + if (newMaxValue > self.maxValue) { + newMaxValue = self.maxValue + newMinValue = newMaxValue - difference + } + } else { + newMaxValue = newValue + newMinValue = newValue - difference + if (newMinValue < self.minValue) { + newMinValue = self.minValue + newMaxValue = newMinValue + difference + } + } + self.positionTrackingBar(newMinValue, newMaxValue) + } + }) + }, + + /** + * onDragStart event handler + * + * Handles dragging of the middle bar. + * + * @param {Object} pointer The jqLite wrapped DOM element + * @param {string} ref One of the refLow, refHigh values + * @param {Event} event The event + * @returns {undefined} + */ + onDragStart: function(pointer, ref, event) { + var position = this.getEventPosition(event) + this.dragging = { + active: true, + value: this.positionToValue(position), + difference: this.highValue - this.lowValue, + lowLimit: this.options.rightToLeft + ? this.minH.rzsp - position + : position - this.minH.rzsp, + highLimit: this.options.rightToLeft + ? position - this.maxH.rzsp + : this.maxH.rzsp - position, + } + + this.onStart(pointer, ref, event) + }, + + /** + * getValue helper function + * + * gets max or min value depending on whether the newPos is outOfBounds above or below the bar and rightToLeft + * + * @param {string} type 'max' || 'min' The value we are calculating + * @param {number} newPos The new position + * @param {boolean} outOfBounds Is the new position above or below the max/min? + * @param {boolean} isAbove Is the new position above the bar if out of bounds? + * + * @returns {number} + */ + getValue: function(type, newPos, outOfBounds, isAbove) { + var isRTL = this.options.rightToLeft, + value = null + + if (type === 'min') { + if (outOfBounds) { + if (isAbove) { + value = isRTL + ? this.minValue + : this.maxValue - this.dragging.difference + } else { + value = isRTL + ? this.maxValue - this.dragging.difference + : this.minValue + } + } else { + value = isRTL + ? this.positionToValue(newPos + this.dragging.lowLimit) + : this.positionToValue(newPos - this.dragging.lowLimit) + } + } else { + if (outOfBounds) { + if (isAbove) { + value = isRTL + ? this.minValue + this.dragging.difference + : this.maxValue + } else { + value = isRTL + ? this.maxValue + : this.minValue + this.dragging.difference + } + } else { + if (isRTL) { + value = + this.positionToValue(newPos + this.dragging.lowLimit) + + this.dragging.difference + } else { + value = + this.positionToValue(newPos - this.dragging.lowLimit) + + this.dragging.difference + } + } + } + return this.roundStep(value) + }, + + /** + * onDragMove event handler + * + * Handles dragging of the middle bar. + * + * @param {jqLite} pointer + * @param {Event} event The event + * @returns {undefined} + */ + onDragMove: function(pointer, event) { + if (!this.options.disableAnimation) { + if (this.moving) { + this.sliderElem.addClass('noanimate') + } + } + this.moving = true + var newPos = this.getEventPosition(event), + newMinValue, + newMaxValue, + ceilLimit, + flrLimit, + isUnderFlrLimit, + isOverCeilLimit, + flrH, + ceilH + + if (this.options.rightToLeft) { + ceilLimit = this.dragging.lowLimit + flrLimit = this.dragging.highLimit + flrH = this.maxH + ceilH = this.minH + } else { + ceilLimit = this.dragging.highLimit + flrLimit = this.dragging.lowLimit + flrH = this.minH + ceilH = this.maxH + } + isUnderFlrLimit = newPos <= flrLimit + isOverCeilLimit = newPos >= this.maxPos - ceilLimit + + if (isUnderFlrLimit) { + if (flrH.rzsp === 0) return + newMinValue = this.getValue('min', newPos, true, false) + newMaxValue = this.getValue('max', newPos, true, false) + } else if (isOverCeilLimit) { + if (ceilH.rzsp === this.maxPos) return + newMaxValue = this.getValue('max', newPos, true, true) + newMinValue = this.getValue('min', newPos, true, true) + } else { + newMinValue = this.getValue('min', newPos, false) + newMaxValue = this.getValue('max', newPos, false) + } + this.positionTrackingBar(newMinValue, newMaxValue) + }, + + /** + * Set the new value and position for the entire bar + * + * @param {number} newMinValue the new minimum value + * @param {number} newMaxValue the new maximum value + */ + positionTrackingBar: function(newMinValue, newMaxValue) { + if ( + this.options.minLimit != null && + newMinValue < this.options.minLimit + ) { + newMinValue = this.options.minLimit + newMaxValue = newMinValue + this.dragging.difference + } + if ( + this.options.maxLimit != null && + newMaxValue > this.options.maxLimit + ) { + newMaxValue = this.options.maxLimit + newMinValue = newMaxValue - this.dragging.difference + } + + this.lowValue = newMinValue + this.highValue = newMaxValue + this.applyLowValue() + if (this.range) this.applyHighValue() + this.applyModel(true) + this.updateHandles('lowValue', this.valueToPosition(newMinValue)) + this.updateHandles('highValue', this.valueToPosition(newMaxValue)) + }, + + /** + * Set the new value and position to the current tracking handle + * + * @param {number} newValue new model value + */ + positionTrackingHandle: function(newValue) { + var valueChanged = false + newValue = this.applyMinMaxLimit(newValue) + newValue = this.applyRestrictedRange(newValue) + if (this.range) { + if (this.options.pushRange) { + newValue = this.applyPushRange(newValue) + valueChanged = true + } else { + if (this.options.noSwitching) { + if (this.tracking === 'lowValue' && newValue > this.highValue) + newValue = this.applyMinMaxRange(this.highValue) + else if ( + this.tracking === 'highValue' && + newValue < this.lowValue + ) + newValue = this.applyMinMaxRange(this.lowValue) + } + newValue = this.applyMinMaxRange(newValue) + /* This is to check if we need to switch the min and max handles */ + if (this.tracking === 'lowValue' && newValue > this.highValue) { + this.lowValue = this.highValue + this.applyLowValue() + this.applyModel() + this.updateHandles(this.tracking, this.maxH.rzsp) + this.updateAriaAttributes() + this.tracking = 'highValue' + this.minH.removeClass('rz-active') + this.maxH.addClass('rz-active') + if (this.options.keyboardSupport) this.focusElement(this.maxH) + valueChanged = true + } else if ( + this.tracking === 'highValue' && + newValue < this.lowValue + ) { + this.highValue = this.lowValue + this.applyHighValue() + this.applyModel() + this.updateHandles(this.tracking, this.minH.rzsp) + this.updateAriaAttributes() + this.tracking = 'lowValue' + this.maxH.removeClass('rz-active') + this.minH.addClass('rz-active') + if (this.options.keyboardSupport) this.focusElement(this.minH) + valueChanged = true + } + } + } + + if (this[this.tracking] !== newValue) { + this[this.tracking] = newValue + if (this.tracking === 'lowValue') this.applyLowValue() + else this.applyHighValue() + this.applyModel() + this.updateHandles(this.tracking, this.valueToPosition(newValue)) + this.updateAriaAttributes() + valueChanged = true + } + + if (valueChanged) this.applyModel(true) + }, + + applyMinMaxLimit: function(newValue) { + if (this.options.minLimit != null && newValue < this.options.minLimit) + return this.options.minLimit + if (this.options.maxLimit != null && newValue > this.options.maxLimit) + return this.options.maxLimit + return newValue + }, + + applyMinMaxRange: function(newValue) { + var oppositeValue = + this.tracking === 'lowValue' ? this.highValue : this.lowValue, + difference = Math.abs(newValue - oppositeValue) + if (this.options.minRange != null) { + if (difference < this.options.minRange) { + if (this.tracking === 'lowValue') + return this.highValue - this.options.minRange + else return this.lowValue + this.options.minRange + } + } + if (this.options.maxRange != null) { + if (difference > this.options.maxRange) { + if (this.tracking === 'lowValue') + return this.highValue - this.options.maxRange + else return this.lowValue + this.options.maxRange + } + } + return newValue + }, + + applyRestrictedRange: function(newValue) { + if ( + this.options.restrictedRange != null && + newValue > this.options.restrictedRange.from && + newValue < this.options.restrictedRange.to + ) { + var halfWidth = + (this.options.restrictedRange.to - + this.options.restrictedRange.from) / + 2 + if (this.tracking === 'lowValue') { + return newValue > this.options.restrictedRange.from + halfWidth + ? this.options.restrictedRange.to + : this.options.restrictedRange.from + } + if (this.tracking === 'highValue') { + return newValue < this.options.restrictedRange.to - halfWidth + ? this.options.restrictedRange.from + : this.options.restrictedRange.to + } + } + return newValue + }, + + applyPushRange: function(newValue) { + var difference = + this.tracking === 'lowValue' + ? this.highValue - newValue + : newValue - this.lowValue, + minRange = + this.options.minRange !== null + ? this.options.minRange + : this.options.step, + maxRange = this.options.maxRange + // if smaller than minRange + if (difference < minRange) { + if (this.tracking === 'lowValue') { + this.highValue = Math.min(newValue + minRange, this.maxValue) + newValue = this.highValue - minRange + this.applyHighValue() + this.updateHandles( + 'highValue', + this.valueToPosition(this.highValue) + ) + } else { + this.lowValue = Math.max(newValue - minRange, this.minValue) + newValue = this.lowValue + minRange + this.applyLowValue() + this.updateHandles( + 'lowValue', + this.valueToPosition(this.lowValue) + ) + } + this.updateAriaAttributes() + } else if (maxRange !== null && difference > maxRange) { + // if greater than maxRange + if (this.tracking === 'lowValue') { + this.highValue = newValue + maxRange + this.applyHighValue() + this.updateHandles( + 'highValue', + this.valueToPosition(this.highValue) + ) + } else { + this.lowValue = newValue - maxRange + this.applyLowValue() + this.updateHandles( + 'lowValue', + this.valueToPosition(this.lowValue) + ) + } + this.updateAriaAttributes() + } + return newValue + }, + + /** + * Apply the model values using scope.$apply. + * We wrap it with the internalChange flag to avoid the watchers to be called + */ + applyModel: function(callOnChange) { + this.internalChange = true + this.scope.$apply() + callOnChange && this.callOnChange() + this.internalChange = false + }, + + /** + * Call the onStart callback if defined + * The callback call is wrapped in a $evalAsync to ensure that its result will be applied to the scope. + * + * @returns {undefined} + */ + callOnStart: function() { + if (this.options.onStart) { + var self = this, + pointerType = this.tracking === 'lowValue' ? 'min' : 'max' + this.scope.$evalAsync(function() { + self.options.onStart( + self.options.id, + self.scope.rzSliderModel, + self.scope.rzSliderHigh, + pointerType + ) + }) + } + }, + + /** + * Call the onChange callback if defined + * The callback call is wrapped in a $evalAsync to ensure that its result will be applied to the scope. + * + * @returns {undefined} + */ + callOnChange: function() { + if (this.options.onChange) { + var self = this, + pointerType = this.tracking === 'lowValue' ? 'min' : 'max' + this.scope.$evalAsync(function() { + self.options.onChange( + self.options.id, + self.scope.rzSliderModel, + self.scope.rzSliderHigh, + pointerType + ) + }) + } + }, + + /** + * Call the onEnd callback if defined + * The callback call is wrapped in a $evalAsync to ensure that its result will be applied to the scope. + * + * @returns {undefined} + */ + callOnEnd: function() { + if (this.options.onEnd) { + var self = this, + pointerType = this.tracking === 'lowValue' ? 'min' : 'max' + this.scope.$evalAsync(function() { + self.options.onEnd( + self.options.id, + self.scope.rzSliderModel, + self.scope.rzSliderHigh, + pointerType + ) + }) + } + this.scope.$emit('slideEnded') + }, + } + + return Slider + }]) + .directive('rzslider', ['RzSlider', function(RzSlider) { + 'use strict' + + return { + restrict: 'AE', + replace: true, + scope: { + rzSliderModel: '=?', + rzSliderHigh: '=?', + rzSliderOptions: '&?', + rzSliderTplUrl: '@', + }, + + /** + * Return template URL + * + * @param {jqLite} elem + * @param {Object} attrs + * @return {string} + */ + templateUrl: function(elem, attrs) { + //noinspection JSUnresolvedVariable + return attrs.rzSliderTplUrl || 'rzSliderTpl.html' + }, + + link: function(scope, elem) { + scope.slider = new RzSlider(scope, elem) //attach on scope so we can test it + }, + } + }]) + + // IDE assist + + /** + * @name ngScope + * + * @property {number} rzSliderModel + * @property {number} rzSliderHigh + * @property {Object} rzSliderOptions + */ + + /** + * @name jqLite + * + * @property {number|undefined} rzsp rzslider label position position + * @property {number|undefined} rzsd rzslider element dimension + * @property {string|undefined} rzsv rzslider label value/text + * @property {Function} css + * @property {Function} text + */ + + /** + * @name Event + * @property {Array} touches + * @property {Event} originalEvent + */ + + /** + * @name ThrottleOptions + * + * @property {boolean} leading + * @property {boolean} trailing + */ + + module.run(['$templateCache', function($templateCache) { + 'use strict'; + + $templateCache.put('rzSliderTpl.html', + "
  • {{ t.value }} {{ t.legend }}
" + ); + +}]); + + return module.name +}) +; \ No newline at end of file diff --git a/node_modules/angularjs-slider/dist/rzslider.min.css b/node_modules/angularjs-slider/dist/rzslider.min.css new file mode 100644 index 0000000..71b178e --- /dev/null +++ b/node_modules/angularjs-slider/dist/rzslider.min.css @@ -0,0 +1,2 @@ +/*! angularjs-slider - v7.0.0 - (c) Rafal Zajac , Valentin Hervieu , Jussi Saarivirta , Angelin Sirbu - https://github.com/angular-slider/angularjs-slider - 2019-02-23 */ +.rzslider{position:relative;display:inline-block;width:100%;height:4px;margin:35px 0 15px 0;vertical-align:middle;user-select:none}.rzslider.noanimate *{transition:none!important}.rzslider.with-legend{margin-bottom:40px}.rzslider[disabled]{cursor:not-allowed}.rzslider[disabled] .rz-pointer{cursor:not-allowed;background-color:#d8e0f3}.rzslider[disabled] .rz-draggable{cursor:not-allowed}.rzslider[disabled] .rz-selection{background:#8b91a2}.rzslider[disabled] .rz-tick{cursor:not-allowed}.rzslider[disabled] .rz-tick.rz-selected{background:#8b91a2}.rzslider span{position:absolute;display:inline-block;white-space:nowrap}.rzslider .rz-base{width:100%;height:100%;padding:0}.rzslider .rz-bar-wrapper{left:0;z-index:1;width:100%;height:32px;padding-top:16px;margin-top:-16px;box-sizing:border-box;transition:all linear .3s}.rzslider .rz-draggable{cursor:move}.rzslider .rz-bar{left:0;z-index:1;width:100%;height:4px;background:#d8e0f3;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.rzslider .rz-bar-wrapper.rz-transparent .rz-bar{background:transparent}.rzslider .rz-bar-wrapper.rz-left-out-selection .rz-bar{background:#df002d}.rzslider .rz-bar-wrapper.rz-right-out-selection .rz-bar{background:#03a688}.rzslider .rz-selection{z-index:2;background:#0db9f0;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;transition:background-color linear .3s}.rzslider .rz-restricted{z-index:3;background:#f00;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.rzslider .rz-pointer{top:-14px;z-index:3;width:32px;height:32px;cursor:pointer;background-color:#0db9f0;-webkit-border-radius:16px;-moz-border-radius:16px;border-radius:16px;transition:all linear .3s}.rzslider .rz-pointer:after{position:absolute;top:12px;left:12px;width:8px;height:8px;background:#fff;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;content:''}.rzslider .rz-pointer:hover:after{background-color:#fff}.rzslider .rz-pointer.rz-active{z-index:4}.rzslider .rz-pointer.rz-active:after{background-color:#451aff}.rzslider .rz-bubble{bottom:16px;padding:1px 3px;color:#55637d;cursor:default;transition:all linear .3s}.rzslider .rz-bubble.rz-limit{color:#55637d;transition:none}.rzslider .rz-ticks{position:absolute;top:-3px;left:0;z-index:1;width:100%;height:0;margin:0;list-style:none;box-sizing:border-box}.rzslider .rz-ticks-values-under .rz-tick-value{top:auto;bottom:-32px}.rzslider .rz-tick{position:absolute;top:0;left:0;width:10px;height:10px;margin-left:11px;text-align:center;cursor:pointer;background:#d8e0f3;border-radius:50%;transition:background-color linear .3s}.rzslider .rz-tick.rz-selected{background:#0db9f0}.rzslider .rz-tick-value{position:absolute;top:-30px;transform:translate(-50%,0)}.rzslider .rz-tick-legend{position:absolute;top:24px;max-width:50px;white-space:normal;transform:translate(-50%,0)}.rzslider.rz-vertical{position:relative;width:4px;height:100%;padding:0;margin:0 20px;vertical-align:baseline}.rzslider.rz-vertical .rz-base{width:100%;height:100%;padding:0}.rzslider.rz-vertical .rz-bar-wrapper{top:auto;left:0;width:32px;height:100%;padding:0 0 0 16px;margin:0 0 0 -16px}.rzslider.rz-vertical .rz-bar{bottom:0;left:auto;width:4px;height:100%}.rzslider.rz-vertical .rz-pointer{top:auto;bottom:0;left:-14px!important}.rzslider.rz-vertical .rz-bubble{bottom:0;left:16px!important;margin-left:3px}.rzslider.rz-vertical .rz-ticks{top:0;left:-3px;z-index:1;width:0;height:100%}.rzslider.rz-vertical .rz-tick{margin-top:11px;margin-left:auto;vertical-align:middle}.rzslider.rz-vertical .rz-tick-value{top:auto;left:24px;transform:translate(0,-28%)}.rzslider.rz-vertical .rz-tick-legend{top:auto;right:24px;max-width:none;white-space:nowrap;transform:translate(0,-28%)}.rzslider.rz-vertical .rz-ticks-values-under .rz-tick-value{right:24px;bottom:auto;left:auto} \ No newline at end of file diff --git a/node_modules/angularjs-slider/dist/rzslider.min.js b/node_modules/angularjs-slider/dist/rzslider.min.js new file mode 100644 index 0000000..227d17e --- /dev/null +++ b/node_modules/angularjs-slider/dist/rzslider.min.js @@ -0,0 +1,3 @@ +/*! angularjs-slider - v7.0.0 - (c) Rafal Zajac , Valentin Hervieu , Jussi Saarivirta , Angelin Sirbu - https://github.com/angular-slider/angularjs-slider - 2019-02-23 */ +!function(a,b){"use strict";if("function"==typeof define&&define.amd)define(["angular"],b);else if("object"==typeof module&&module.exports){var c=angular||require("angular");c&&c.module||"undefined"==typeof angular||(c=angular),module.exports=b(c)}else b(a.angular)}(this,function(a){"use strict";var b=a.module("rzSlider",[]).factory("RzSliderOptions",function(){var b={floor:0,ceil:null,step:1,precision:0,minRange:null,maxRange:null,restrictedRange:null,pushRange:!1,minLimit:null,maxLimit:null,id:null,translate:null,getLegend:null,stepsArray:null,bindIndexForStepsArray:!1,draggableRange:!1,draggableRangeOnly:!1,showSelectionBar:!1,showSelectionBarEnd:!1,showSelectionBarFromValue:null,showOuterSelectionBars:!1,hidePointerLabels:!1,hideLimitLabels:!1,autoHideLimitLabels:!0,readOnly:!1,disabled:!1,interval:350,showTicks:!1,showTicksValues:!1,ticksArray:null,ticksTooltip:null,ticksValuesTooltip:null,vertical:!1,getSelectionBarColor:null,getTickColor:null,getPointerColor:null,keyboardSupport:!0,scale:1,enforceStep:!0,enforceRange:!1,noSwitching:!1,onlyBindHandles:!1,disableAnimation:!1,onStart:null,onChange:null,onEnd:null,rightToLeft:!1,reversedControls:!1,boundPointerLabels:!0,mergeRangeLabelsIfSame:!1,labelOverlapSeparator:" - ",customTemplateScope:null,logScale:!1,customValueToPosition:null,customPositionToValue:null,selectionBarGradient:null,ariaLabel:null,ariaLabelledBy:null,ariaLabelHigh:null,ariaLabelledByHigh:null},c={},d={};return d.options=function(b){a.extend(c,b)},d.getOptions=function(d){return a.extend({},b,c,d)},d}).factory("rzThrottle",["$timeout",function(a){return function(b,c,d){var e,f,g,h=Date.now||function(){return(new Date).getTime()},i=null,j=0;d=d||{};var k=function(){j=h(),i=null,g=b.apply(e,f),e=f=null};return function(){var l=h(),m=c-(l-j);return e=this,f=arguments,0>=m?(a.cancel(i),i=null,j=l,g=b.apply(e,f),e=f=null):i||d.trailing===!1||(i=a(k,m)),g}}}]).factory("RzSlider",["$timeout","$document","$window","$compile","RzSliderOptions","rzThrottle",function(b,c,d,e,f,g){var h=function(a,b){this.scope=a,this.lowValue=0,this.highValue=0,this.sliderElem=b,this.range=void 0!==this.scope.rzSliderModel&&void 0!==this.scope.rzSliderHigh,this.dragging={active:!1,value:0,difference:0,position:0,lowLimit:0,highLimit:0},this.positionProperty="left",this.dimensionProperty="width",this.handleHalfDim=0,this.maxPos=0,this.precision=0,this.step=1,this.tracking="",this.minValue=0,this.maxValue=0,this.valueRange=0,this.intermediateTicks=!1,this.initHasRun=!1,this.firstKeyDown=!1,this.internalChange=!1,this.cmbLabelShown=!1,this.currentFocusElement=null,this.moving=!1,this.fullBar=null,this.selBar=null,this.minH=null,this.maxH=null,this.flrLab=null,this.ceilLab=null,this.minLab=null,this.maxLab=null,this.cmbLab=null,this.ticks=null,this.init()};return h.prototype={init:function(){var b,c,e=this,f=function(){e.calcViewDimensions()};this.applyOptions(),this.syncLowValue(),this.range&&this.syncHighValue(),this.initElemHandles(),this.manageElementsStyle(),this.setDisabledState(),this.calcViewDimensions(),this.setMinAndMax(),this.updateRestrictionBar(),this.addAccessibility(),this.updateCeilLab(),this.updateFloorLab(),this.initHandles(),this.manageEventsBindings(),this.scope.$on("reCalcViewDimensions",f),a.element(d).on("resize",f),this.initHasRun=!0,this.options.disableAnimation&&this.sliderElem.addClass("noanimate"),b=g(function(){e.onLowHandleChange()},e.options.interval),c=g(function(){e.onHighHandleChange()},e.options.interval),this.scope.$on("rzSliderForceRender",function(){e.resetLabelsValue(),b(),e.range&&c(),e.resetSlider()}),this.scope.$watchCollection("rzSliderOptions()",function(a,b){a!==b&&(e.applyOptions(),e.syncLowValue(),e.range&&e.syncHighValue(),e.resetSlider())}),this.scope.$watch("rzSliderModel",function(a,c){e.internalChange||a!==c&&b()}),this.scope.$watch("rzSliderHigh",function(a,b){e.internalChange||a!==b&&(null!=a&&c(),(e.range&&null==a||!e.range&&null!=a)&&(e.applyOptions(),e.resetSlider()))}),this.scope.$on("$destroy",function(){e.unbindEvents(),a.element(d).off("resize",f),e.currentFocusElement=null})},findStepIndex:function(b){for(var c=0,d=0;d0&&0===b.rzsd)&&(f=!0,b.rzsv=e),g||b.html(e),this.scope[c+"Label"]=e,f&&this.getDimension(b)},setMinAndMax:function(){if(this.step=+this.options.step,this.precision=+this.options.precision,this.minValue=this.options.floor,this.options.logScale&&0===this.minValue)throw Error("Can't use floor=0 with logarithmic scale");this.options.enforceStep&&(this.lowValue=this.roundStep(this.lowValue),this.range&&(this.highValue=this.roundStep(this.highValue))),null!=this.options.ceil?this.maxValue=this.options.ceil:this.maxValue=this.options.ceil=this.range?this.highValue:this.lowValue,this.options.enforceRange&&(this.lowValue=this.sanitizeValue(this.lowValue),this.range&&(this.highValue=this.sanitizeValue(this.highValue))),this.applyLowValue(),this.range&&this.applyHighValue(),this.valueRange=this.maxValue-this.minValue},addAccessibility:function(){this.minH.attr("role","slider"),this.updateAriaAttributes(),!this.options.keyboardSupport||this.options.readOnly||this.options.disabled?this.minH.attr("tabindex",""):this.minH.attr("tabindex","0"),this.options.vertical?this.minH.attr("aria-orientation","vertical"):this.minH.attr("aria-orientation","horizontal"),this.options.ariaLabel?this.minH.attr("aria-label",this.options.ariaLabel):this.options.ariaLabelledBy&&this.minH.attr("aria-labelledby",this.options.ariaLabelledBy),this.range&&(this.maxH.attr("role","slider"),!this.options.keyboardSupport||this.options.readOnly||this.options.disabled?this.maxH.attr("tabindex",""):this.maxH.attr("tabindex","0"),this.options.vertical?this.maxH.attr("aria-orientation","vertical"):this.maxH.attr("aria-orientation","horizontal"),this.options.ariaLabelHigh?this.maxH.attr("aria-label",this.options.ariaLabelHigh):this.options.ariaLabelledByHigh&&this.maxH.attr("aria-labelledby",this.options.ariaLabelledByHigh))},updateAriaAttributes:function(){this.minH.attr({"aria-valuenow":this.scope.rzSliderModel,"aria-valuetext":this.customTrFn(this.scope.rzSliderModel,this.options.id,"model"),"aria-valuemin":this.minValue,"aria-valuemax":this.maxValue}),this.range&&this.maxH.attr({"aria-valuenow":this.scope.rzSliderHigh,"aria-valuetext":this.customTrFn(this.scope.rzSliderHigh,this.options.id,"high"),"aria-valuemin":this.minValue,"aria-valuemax":this.maxValue})},calcViewDimensions:function(){var a=this.getDimension(this.minH);if(this.handleHalfDim=a/2,this.barDimension=this.getDimension(this.fullBar),this.maxPos=this.barDimension-a,this.getDimension(this.sliderElem),this.sliderElem.rzsp=this.sliderElem[0].getBoundingClientRect()[this.positionProperty],this.initHasRun){this.updateFloorLab(),this.updateCeilLab(),this.initHandles();var c=this;b(function(){c.updateTicksScale()})}},updateTicksScale:function(){if(this.options.showTicks){var b=this.options.ticksArray||this.getTicksArray(),c=this.options.vertical?"translateY":"translateX",d=this;this.options.rightToLeft&&b.reverse(),this.scope.ticks=b.map(function(b){var e=null;a.isObject(b)&&(e=b.legend,b=b.value);var f=d.valueToPosition(b);d.options.vertical&&(f=d.maxPos-f);var g=c+"("+Math.round(f)+"px)",h={legend:e,selected:d.isTickSelected(b),style:{"-webkit-transform":g,"-moz-transform":g,"-o-transform":g,"-ms-transform":g,transform:g}};return h.selected&&d.options.getSelectionBarColor&&(h.style["background-color"]=d.getSelectionBarColor()),!h.selected&&d.options.getTickColor&&(h.style["background-color"]=d.getTickColor(b)),d.options.ticksTooltip&&(h.tooltip=d.options.ticksTooltip(b),h.tooltipPlacement=d.options.vertical?"right":"top"),(d.options.showTicksValues===!0||b%d.options.showTicksValues===0)&&(h.value=d.getDisplayValue(b,"tick-value"),d.options.ticksValuesTooltip&&(h.valueTooltip=d.options.ticksValuesTooltip(b),h.valueTooltipPlacement=d.options.vertical?"right":"top")),d.getLegend&&(e=d.getLegend(b,d.options.id),e&&(h.legend=e)),h})}},getTicksArray:function(){var a=this.step,b=[];this.intermediateTicks&&(a=this.options.showTicks);for(var c=this.minValue;c<=this.maxValue;c+=a)b.push(c);return b},isTickSelected:function(a){if(!this.range)if(null!==this.options.showSelectionBarFromValue){var b=this.options.showSelectionBarFromValue;if(this.lowValue>b&&a>=b&&a<=this.lowValue)return!0;if(this.lowValue=a&&a>=this.lowValue)return!0}else if(this.options.showSelectionBarEnd){if(a>=this.lowValue)return!0}else if(this.options.showSelectionBar&&a<=this.lowValue)return!0;return this.range&&a>=this.lowValue&&a<=this.highValue?!0:!1},updateFloorLab:function(){this.translateFn(this.minValue,this.flrLab,"floor"),this.getDimension(this.flrLab);var a=this.options.rightToLeft?this.barDimension-this.flrLab.rzsd:0;this.setPosition(this.flrLab,a)},updateCeilLab:function(){this.translateFn(this.maxValue,this.ceilLab,"ceil"),this.getDimension(this.ceilLab);var a=this.options.rightToLeft?0:this.barDimension-this.ceilLab.rzsd;this.setPosition(this.ceilLab,a)},updateHandles:function(a,b){"lowValue"===a?this.updateLowHandle(b):this.updateHighHandle(b),this.updateSelectionBar(),this.updateTicksScale(),this.range&&this.updateCmbLabel()},getHandleLabelPos:function(a,b){var c=this[a].rzsd,d=b-c/2+this.handleHalfDim,e=this.barDimension-c;return this.options.boundPointerLabels?this.options.rightToLeft&&"minLab"===a||!this.options.rightToLeft&&"maxLab"===a?Math.min(d,e):Math.min(Math.max(d,0),e):d},updateLowHandle:function(a){if(this.setPosition(this.minH,a),this.translateFn(this.lowValue,this.minLab,"model"),this.setPosition(this.minLab,this.getHandleLabelPos("minLab",a)),this.options.getPointerColor){var b=this.getPointerColor("min");this.scope.minPointerStyle={backgroundColor:b}}this.options.autoHideLimitLabels&&this.shFloorCeil()},updateHighHandle:function(a){if(this.setPosition(this.maxH,a),this.translateFn(this.highValue,this.maxLab,"high"),this.setPosition(this.maxLab,this.getHandleLabelPos("maxLab",a)),this.options.getPointerColor){var b=this.getPointerColor("max");this.scope.maxPointerStyle={backgroundColor:b}}this.options.autoHideLimitLabels&&this.shFloorCeil()},shFloorCeil:function(){if(!this.options.hidePointerLabels){var a=!1,b=!1,c=this.isLabelBelowFloorLab(this.minLab),d=this.isLabelAboveCeilLab(this.minLab),e=this.isLabelAboveCeilLab(this.maxLab),f=this.isLabelBelowFloorLab(this.cmbLab),g=this.isLabelAboveCeilLab(this.cmbLab);if(c?(a=!0,this.hideEl(this.flrLab)):(a=!1,this.showEl(this.flrLab)),d?(b=!0,this.hideEl(this.ceilLab)):(b=!1,this.showEl(this.ceilLab)),this.range){var h=this.cmbLabelShown?g:e,i=this.cmbLabelShown?f:c;h?this.hideEl(this.ceilLab):b||this.showEl(this.ceilLab),i?this.hideEl(this.flrLab):a||this.showEl(this.flrLab)}}},isLabelBelowFloorLab:function(a){var b=this.options.rightToLeft,c=a.rzsp,d=a.rzsd,e=this.flrLab.rzsp,f=this.flrLab.rzsd;return b?c+d>=e-2:e+f+2>=c},isLabelAboveCeilLab:function(a){var b=this.options.rightToLeft,c=a.rzsp,d=a.rzsd,e=this.ceilLab.rzsp,f=this.ceilLab.rzsd;return b?e+f+2>=c:c+d>=e-2},updateRestrictionBar:function(){var a=0,b=0;if(this.options.restrictedRange){var c=this.valueToPosition(this.options.restrictedRange.from),d=this.valueToPosition(this.options.restrictedRange.to);b=Math.abs(d-c),a=this.options.rightToLeft?d+this.handleHalfDim:c+this.handleHalfDim,this.setDimension(this.restrictedBar,b),this.setPosition(this.restrictedBar,a)}},updateSelectionBar:function(){var a=0,b=0,c=this.options.rightToLeft?!this.options.showSelectionBarEnd:this.options.showSelectionBarEnd,d=this.options.rightToLeft?this.maxH.rzsp+this.handleHalfDim:this.minH.rzsp+this.handleHalfDim;if(this.range)b=Math.abs(this.maxH.rzsp-this.minH.rzsp),a=d;else if(null!==this.options.showSelectionBarFromValue){var e=this.options.showSelectionBarFromValue,f=this.valueToPosition(e),g=this.options.rightToLeft?this.lowValue<=e:this.lowValue>e;g?(b=this.minH.rzsp-f,a=f+this.handleHalfDim):(b=f-this.minH.rzsp,a=this.minH.rzsp+this.handleHalfDim)}else c?(b=Math.abs(this.maxPos-this.minH.rzsp)+this.handleHalfDim,a=this.minH.rzsp+this.handleHalfDim):(b=this.minH.rzsp+this.handleHalfDim,a=0);if(this.setDimension(this.selBar,b),this.setPosition(this.selBar,a),this.range&&this.options.showOuterSelectionBars&&(this.options.rightToLeft?(this.setDimension(this.rightOutSelBar,a),this.setPosition(this.rightOutSelBar,0),this.setDimension(this.leftOutSelBar,this.getDimension(this.fullBar)-(a+b)),this.setPosition(this.leftOutSelBar,a+b)):(this.setDimension(this.leftOutSelBar,a),this.setPosition(this.leftOutSelBar,0),this.setDimension(this.rightOutSelBar,this.getDimension(this.fullBar)-(a+b)),this.setPosition(this.rightOutSelBar,a+b))),this.options.getSelectionBarColor){var h=this.getSelectionBarColor();this.scope.barStyle={backgroundColor:h}}else if(this.options.selectionBarGradient){var i=null!==this.options.showSelectionBarFromValue?this.valueToPosition(this.options.showSelectionBarFromValue):0,j=i-a>0^c,k=this.options.vertical?j?"bottom":"top":j?"left":"right";this.scope.barStyle={backgroundImage:"linear-gradient(to "+k+", "+this.options.selectionBarGradient.from+" 0%,"+this.options.selectionBarGradient.to+" 100%)"},this.options.vertical?(this.scope.barStyle.backgroundPosition="center "+(i+b+a+(j?-this.handleHalfDim:0))+"px",this.scope.barStyle.backgroundSize="100% "+(this.barDimension-this.handleHalfDim)+"px"):(this.scope.barStyle.backgroundPosition=i-a+(j?this.handleHalfDim:0)+"px center",this.scope.barStyle.backgroundSize=this.barDimension-this.handleHalfDim+"px 100%")}},getSelectionBarColor:function(){return this.range?this.options.getSelectionBarColor(this.scope.rzSliderModel,this.scope.rzSliderHigh):this.options.getSelectionBarColor(this.scope.rzSliderModel)},getPointerColor:function(a){return"max"===a?this.options.getPointerColor(this.scope.rzSliderHigh,a):this.options.getPointerColor(this.scope.rzSliderModel,a)},getTickColor:function(a){return this.options.getTickColor(a)},updateCmbLabel:function(){var a=null;if(a=this.options.rightToLeft?this.minLab.rzsp-this.minLab.rzsd-10<=this.maxLab.rzsp:this.minLab.rzsp+this.minLab.rzsd+10>=this.maxLab.rzsp){var b=this.getDisplayValue(this.lowValue,"model"),c=this.getDisplayValue(this.highValue,"high"),d="";d=this.options.mergeRangeLabelsIfSame&&b===c?b:this.options.rightToLeft?c+this.options.labelOverlapSeparator+b:b+this.options.labelOverlapSeparator+c,this.translateFn(d,this.cmbLab,"cmb",!1);var e=this.options.boundPointerLabels?Math.min(Math.max(this.selBar.rzsp+this.selBar.rzsd/2-this.cmbLab.rzsd/2,0),this.barDimension-this.cmbLab.rzsd):this.selBar.rzsp+this.selBar.rzsd/2-this.cmbLab.rzsd/2;this.setPosition(this.cmbLab,e),this.cmbLabelShown=!0,this.hideEl(this.minLab),this.hideEl(this.maxLab),this.showEl(this.cmbLab)}else this.cmbLabelShown=!1,this.updateHighHandle(this.valueToPosition(this.highValue)),this.updateLowHandle(this.valueToPosition(this.lowValue)),this.showEl(this.maxLab),this.showEl(this.minLab),this.hideEl(this.cmbLab);this.options.autoHideLimitLabels&&this.shFloorCeil()},getDisplayValue:function(a,b){return this.options.stepsArray&&!this.options.bindIndexForStepsArray&&(a=this.getStepValue(a)),this.customTrFn(a,this.options.id,b)},roundStep:function(a,b){var c=b?b:this.step,d=parseFloat((a-this.minValue)/c).toPrecision(12);d=Math.round(+d)*c;var e=(this.minValue+d).toFixed(this.precision);return+e},hideEl:function(a){return a.css({visibility:"hidden"})},showEl:function(a){return a.rzAlwaysHide?a:a.css({visibility:"visible"})},setPosition:function(a,b){a.rzsp=b;var c={};return c[this.positionProperty]=Math.round(b)+"px",a.css(c),b},resetPosition:function(a){a.css({left:null,bottom:null})},getDimension:function(a){var b=a[0].getBoundingClientRect();return this.options.vertical?a.rzsd=(b.bottom-b.top)*this.options.scale:a.rzsd=(b.right-b.left)*this.options.scale,a.rzsd},setDimension:function(a,b){a.rzsd=b;var c={};return c[this.dimensionProperty]=Math.round(b)+"px",a.css(c),b},sanitizeValue:function(a){return Math.min(Math.max(a,this.minValue),this.maxValue)},valueToPosition:function(a){var b=this.linearValueToPosition;this.options.customValueToPosition?b=this.options.customValueToPosition:this.options.logScale&&(b=this.logValueToPosition),a=this.sanitizeValue(a);var c=b(a,this.minValue,this.maxValue)||0;return this.options.rightToLeft&&(c=1-c),c*this.maxPos},linearValueToPosition:function(a,b,c){var d=c-b;return(a-b)/d},logValueToPosition:function(a,b,c){a=Math.log(a),b=Math.log(b),c=Math.log(c);var d=c-b;return(a-b)/d},positionToValue:function(a){var b=a/this.maxPos;this.options.rightToLeft&&(b=1-b);var c=this.linearPositionToValue;return this.options.customPositionToValue?c=this.options.customPositionToValue:this.options.logScale&&(c=this.logPositionToValue),c(b,this.minValue,this.maxValue)||0},linearPositionToValue:function(a,b,c){return a*(c-b)+b},logPositionToValue:function(a,b,c){b=Math.log(b),c=Math.log(c);var d=a*(c-b)+b;return Math.exp(d)},getEventAttr:function(a,b){return void 0===a.originalEvent?a[b]:a.originalEvent[b]},getEventXY:function(a,b){var c=this.options.vertical?"clientY":"clientX";if(void 0!==a[c])return a[c];var d=this.getEventAttr(a,"touches");if(void 0!==b)for(var e=0;ec?this.minH:c>d?this.maxH:this.options.rightToLeft?b>this.minH.rzsp?this.minH:this.maxH:b=i?h=k:i>=this.maxPos?h=j:(h=this.positionToValue(i),h=d&&a.isNumber(this.options.showTicks)?this.roundStep(h,this.options.showTicks):this.roundStep(h)),this.positionTrackingHandle(h)}},onEnd:function(a,b){this.moving=!1,this.options.disableAnimation||this.sliderElem.removeClass("noanimate");var d=this.getEventAttr(b,"changedTouches");if(!d||d[0].identifier===this.touchId){this.isDragging=!1,this.touchId=null,this.options.keyboardSupport||(this.minH.removeClass("rz-active"),this.maxH.removeClass("rz-active"),this.tracking=""),this.dragging.active=!1;var e=this.getEventNames(b);c.off(e.moveEvent,a),c.off(e.endEvent,this.endHandlerToBeRemovedOnEnd),this.endHandlerToBeRemovedOnEnd=null,this.callOnEnd()}},onTickClick:function(a,b){this.onMove(a,b,!0)},onPointerFocus:function(b,c){this.tracking=c,b.one("blur",a.bind(this,this.onPointerBlur,b)),b.on("keydown",a.bind(this,this.onKeyboardEvent)),b.on("keyup",a.bind(this,this.onKeyUp)),this.firstKeyDown=!0,b.addClass("rz-active"),this.currentFocusElement={pointer:b,ref:c}},onKeyUp:function(){this.firstKeyDown=!0,this.callOnEnd()},onPointerBlur:function(a){a.off("keydown"),a.off("keyup"),a.removeClass("rz-active"),this.isDragging||(this.tracking="",this.currentFocusElement=null)},getKeyActions:function(a){var b=a+this.step,c=a-this.step,d=a+this.valueRange/10,e=a-this.valueRange/10;this.options.reversedControls&&(b=a-this.step,c=a+this.step,d=a-this.valueRange/10,e=a+this.valueRange/10);var f={UP:b,DOWN:c,LEFT:c,RIGHT:b,PAGEUP:d,PAGEDOWN:e,HOME:this.options.reversedControls?this.maxValue:this.minValue,END:this.options.reversedControls?this.minValue:this.maxValue};return this.options.rightToLeft&&(f.LEFT=b,f.RIGHT=c,this.options.vertical&&(f.UP=c,f.DOWN=b)),f},onKeyboardEvent:function(a){var c=this[this.tracking],d=a.keyCode||a.which,e={38:"UP",40:"DOWN",37:"LEFT",39:"RIGHT",33:"PAGEUP",34:"PAGEDOWN",36:"HOME",35:"END"},f=this.getKeyActions(c),g=e[d],h=f[g];if(null!=h&&""!==this.tracking){a.preventDefault(),this.firstKeyDown&&(this.firstKeyDown=!1,this.callOnStart());var i=this;b(function(){var a=i.roundStep(i.sanitizeValue(h));if(i.options.draggableRangeOnly){var b,c,d=i.highValue-i.lowValue;"lowValue"===i.tracking?(b=a,c=a+d,c>i.maxValue&&(c=i.maxValue,b=c-d)):(c=a,b=a-d,b=k,h=k>=this.maxPos-e,g){if(0===i.rzsp)return;c=this.getValue("min",k,!0,!1),d=this.getValue("max",k,!0,!1)}else if(h){if(j.rzsp===this.maxPos)return;d=this.getValue("max",k,!0,!0),c=this.getValue("min",k,!0,!0)}else c=this.getValue("min",k,!1),d=this.getValue("max",k,!1);this.positionTrackingBar(c,d)},positionTrackingBar:function(a,b){null!=this.options.minLimit&&athis.options.maxLimit&&(b=this.options.maxLimit,a=b-this.dragging.difference), +this.lowValue=a,this.highValue=b,this.applyLowValue(),this.range&&this.applyHighValue(),this.applyModel(!0),this.updateHandles("lowValue",this.valueToPosition(a)),this.updateHandles("highValue",this.valueToPosition(b))},positionTrackingHandle:function(a){var b=!1;a=this.applyMinMaxLimit(a),a=this.applyRestrictedRange(a),this.range&&(this.options.pushRange?(a=this.applyPushRange(a),b=!0):(this.options.noSwitching&&("lowValue"===this.tracking&&a>this.highValue?a=this.applyMinMaxRange(this.highValue):"highValue"===this.tracking&&athis.highValue?(this.lowValue=this.highValue,this.applyLowValue(),this.applyModel(),this.updateHandles(this.tracking,this.maxH.rzsp),this.updateAriaAttributes(),this.tracking="highValue",this.minH.removeClass("rz-active"),this.maxH.addClass("rz-active"),this.options.keyboardSupport&&this.focusElement(this.maxH),b=!0):"highValue"===this.tracking&&athis.options.maxLimit?this.options.maxLimit:a},applyMinMaxRange:function(a){var b="lowValue"===this.tracking?this.highValue:this.lowValue,c=Math.abs(a-b);return null!=this.options.minRange&&cthis.options.maxRange?"lowValue"===this.tracking?this.highValue-this.options.maxRange:this.lowValue+this.options.maxRange:a},applyRestrictedRange:function(a){if(null!=this.options.restrictedRange&&a>this.options.restrictedRange.from&&athis.options.restrictedRange.from+b?this.options.restrictedRange.to:this.options.restrictedRange.from;if("highValue"===this.tracking)return ab?("lowValue"===this.tracking?(this.highValue=Math.min(a+c,this.maxValue),a=this.highValue-c,this.applyHighValue(),this.updateHandles("highValue",this.valueToPosition(this.highValue))):(this.lowValue=Math.max(a-c,this.minValue),a=this.lowValue+c,this.applyLowValue(),this.updateHandles("lowValue",this.valueToPosition(this.lowValue))),this.updateAriaAttributes()):null!==d&&b>d&&("lowValue"===this.tracking?(this.highValue=a+d,this.applyHighValue(),this.updateHandles("highValue",this.valueToPosition(this.highValue))):(this.lowValue=a-d,this.applyLowValue(),this.updateHandles("lowValue",this.valueToPosition(this.lowValue))),this.updateAriaAttributes()),a},applyModel:function(a){this.internalChange=!0,this.scope.$apply(),a&&this.callOnChange(),this.internalChange=!1},callOnStart:function(){if(this.options.onStart){var a=this,b="lowValue"===this.tracking?"min":"max";this.scope.$evalAsync(function(){a.options.onStart(a.options.id,a.scope.rzSliderModel,a.scope.rzSliderHigh,b)})}},callOnChange:function(){if(this.options.onChange){var a=this,b="lowValue"===this.tracking?"min":"max";this.scope.$evalAsync(function(){a.options.onChange(a.options.id,a.scope.rzSliderModel,a.scope.rzSliderHigh,b)})}},callOnEnd:function(){if(this.options.onEnd){var a=this,b="lowValue"===this.tracking?"min":"max";this.scope.$evalAsync(function(){a.options.onEnd(a.options.id,a.scope.rzSliderModel,a.scope.rzSliderHigh,b)})}this.scope.$emit("slideEnded")}},h}]).directive("rzslider",["RzSlider",function(a){return{restrict:"AE",replace:!0,scope:{rzSliderModel:"=?",rzSliderHigh:"=?",rzSliderOptions:"&?",rzSliderTplUrl:"@"},templateUrl:function(a,b){return b.rzSliderTplUrl||"rzSliderTpl.html"},link:function(b,c){b.slider=new a(b,c)}}}]);return b.run(["$templateCache",function(a){a.put("rzSliderTpl.html",'
  • {{ t.value }} {{ t.legend }}
')}]),b.name}); \ No newline at end of file diff --git a/node_modules/angularjs-slider/dist/rzslider.scss b/node_modules/angularjs-slider/dist/rzslider.scss new file mode 100644 index 0000000..6ed453a --- /dev/null +++ b/node_modules/angularjs-slider/dist/rzslider.scss @@ -0,0 +1,284 @@ +/*! angularjs-slider - v7.0.0 - + (c) Rafal Zajac , Valentin Hervieu , Jussi Saarivirta , Angelin Sirbu - + https://github.com/angular-slider/angularjs-slider - + 2019-02-23 */ +.rzslider { + position: relative; + display: inline-block; + width: 100%; + height: 4px; + margin: 35px 0 15px 0; + vertical-align: middle; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.rzslider.noanimate * { + transition: none !important; +} + +.rzslider.with-legend { + margin-bottom: 40px; +} + +.rzslider[disabled] { + cursor: not-allowed; +} + +.rzslider[disabled] .rz-pointer { + cursor: not-allowed; + background-color: #d8e0f3; +} + +.rzslider[disabled] .rz-draggable { + cursor: not-allowed; +} + +.rzslider[disabled] .rz-selection { + background: #8b91a2; +} + +.rzslider[disabled] .rz-tick { + cursor: not-allowed; +} + +.rzslider[disabled] .rz-tick.rz-selected { + background: #8b91a2; +} + +.rzslider span { + position: absolute; + display: inline-block; + white-space: nowrap; +} + +.rzslider .rz-base { + width: 100%; + height: 100%; + padding: 0; +} + +.rzslider .rz-bar-wrapper { + left: 0; + z-index: 1; + width: 100%; + height: 32px; + padding-top: 16px; + margin-top: -16px; + box-sizing: border-box; + transition: all linear 0.3s; +} + +.rzslider .rz-draggable { + cursor: move; +} + +.rzslider .rz-bar { + left: 0; + z-index: 1; + width: 100%; + height: 4px; + background: #d8e0f3; + border-radius: 2px; +} + +.rzslider .rz-bar-wrapper.rz-transparent .rz-bar { + background: transparent; +} + +.rzslider .rz-bar-wrapper.rz-left-out-selection .rz-bar { + background: #df002d; +} + +.rzslider .rz-bar-wrapper.rz-right-out-selection .rz-bar { + background: #03a688; +} + +.rzslider .rz-selection { + z-index: 2; + background: #0db9f0; + border-radius: 2px; + transition: background-color linear 0.3s; +} + +.rzslider .rz-restricted { + z-index: 3; + background: #ff0000; + border-radius: 2px; +} + +.rzslider .rz-pointer { + top: -14px; + z-index: 3; + width: 32px; + height: 32px; + cursor: pointer; + background-color: #0db9f0; + border-radius: 16px; + transition: all linear 0.3s; +} + +.rzslider .rz-pointer:after { + position: absolute; + top: 12px; + left: 12px; + width: 8px; + height: 8px; + background: #ffffff; + border-radius: 4px; + content: ''; +} + +.rzslider .rz-pointer:hover:after { + background-color: #ffffff; +} + +.rzslider .rz-pointer.rz-active { + z-index: 4; +} + +.rzslider .rz-pointer.rz-active:after { + background-color: #451aff; +} + +.rzslider .rz-bubble { + bottom: 16px; + padding: 1px 3px; + color: #55637d; + cursor: default; + transition: all linear 0.3s; +} + +.rzslider .rz-bubble.rz-limit { + color: #55637d; + transition: none; +} + +.rzslider .rz-ticks { + position: absolute; + top: -3px; + left: 0; + z-index: 1; + width: 100%; + height: 0; + margin: 0; + list-style: none; + box-sizing: border-box; +} + +.rzslider .rz-ticks-values-under .rz-tick-value { + top: auto; + bottom: -32px; +} + +.rzslider .rz-tick { + position: absolute; + top: 0; + left: 0; + width: 10px; + height: 10px; + margin-left: 11px; + text-align: center; + cursor: pointer; + background: #d8e0f3; + border-radius: 50%; + transition: background-color linear 0.3s; +} + +.rzslider .rz-tick.rz-selected { + background: #0db9f0; +} + +.rzslider .rz-tick-value { + position: absolute; + top: -30px; + transform: translate(-50%, 0); +} + +.rzslider .rz-tick-legend { + position: absolute; + top: 24px; + max-width: 50px; + white-space: normal; + transform: translate(-50%, 0); +} + +.rzslider.rz-vertical { + position: relative; + width: 4px; + height: 100%; + padding: 0; + margin: 0 20px; + vertical-align: baseline; +} + +.rzslider.rz-vertical .rz-base { + width: 100%; + height: 100%; + padding: 0; +} + +.rzslider.rz-vertical .rz-bar-wrapper { + top: auto; + left: 0; + width: 32px; + height: 100%; + padding: 0 0 0 16px; + margin: 0 0 0 -16px; +} + +.rzslider.rz-vertical .rz-bar { + bottom: 0; + left: auto; + width: 4px; + height: 100%; +} + +.rzslider.rz-vertical .rz-pointer { + top: auto; + bottom: 0; + left: -14px !important; +} + +.rzslider.rz-vertical .rz-bubble { + bottom: 0; + left: 16px !important; + margin-left: 3px; +} + +.rzslider.rz-vertical .rz-ticks { + top: 0; + left: -3px; + z-index: 1; + width: 0; + height: 100%; +} + +.rzslider.rz-vertical .rz-tick { + margin-top: 11px; + margin-left: auto; + vertical-align: middle; +} + +.rzslider.rz-vertical .rz-tick-value { + top: auto; + left: 24px; + transform: translate(0, -28%); +} + +.rzslider.rz-vertical .rz-tick-legend { + top: auto; + right: 24px; + max-width: none; + white-space: nowrap; + transform: translate(0, -28%); +} + +.rzslider.rz-vertical .rz-ticks-values-under .rz-tick-value { + right: 24px; + bottom: auto; + left: auto; +} +/*# sourceMappingURL=data:application/json;base64,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Wjs7QUFFRDtFQUNFLFVBQVU7RUFDVixRQUFRO0VBQ1IsWUFBWTtFQUNaLGFBQWE7RUFDYixvQkFBb0I7RUFDcEIsb0JBQW9CO0NBQ3JCOztBQUVEO0VBQ0UsVUFBVTtFQUNWLFdBQVc7RUFDWCxXQUFXO0VBQ1gsYUFBYTtDQUNkOztBQUVEO0VBQ0UsVUFBVTtFQUNWLFVBQVU7RUFDVix1QkFBdUI7Q0FDeEI7O0FBRUQ7RUFDRSxVQUFVO0VBQ1Ysc0JBQXNCO0VBQ3RCLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLE9BQU87RUFDUCxXQUFXO0VBQ1gsV0FBVztFQUNYLFNBQVM7RUFDVCxhQUFhO0NBQ2Q7O0FBRUQ7RUFDRSxpQkFBaUI7RUFDakIsa0JBQWtCO0VBQ2xCLHVCQUF1QjtDQUN4Qjs7QUFFRDtFQUNFLFVBQVU7RUFDVixXQUFXO0VBQ1gsOEJBQThCO0NBQy9COztBQUVEO0VBQ0UsVUFBVTtFQUNWLFlBQVk7RUFDWixnQkFBZ0I7RUFDaEIsb0JBQW9CO0VBQ3BCLDhCQUE4QjtDQUMvQjs7QUFFRDtFQUNFLFlBQVk7RUFDWixhQUFhO0VBQ2IsV0FBVztDQUNaIiwiZmlsZSI6InJ6c2xpZGVyLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qISBhbmd1bGFyanMtc2xpZGVyIC0gdjcuMC4wIC0gXG4gKGMpIFJhZmFsIFphamFjIDxyemFqYWNAZ21haWwuY29tPiwgVmFsZW50aW4gSGVydmlldSA8dmFsZW50aW5AaGVydmkuZXU+LCBKdXNzaSBTYWFyaXZpcnRhIDxqdXNhc2lAZ21haWwuY29tPiwgQW5nZWxpbiBTaXJidSA8YW5nZWxpbi5zaXJidUBnbWFpbC5jb20+IC0gXG4gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXItc2xpZGVyL2FuZ3VsYXJqcy1zbGlkZXIgLSBcbiAyMDE5LTAyLTIzICovXG4ucnpzbGlkZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNHB4O1xuICBtYXJnaW46IDM1cHggMCAxNXB4IDA7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4ucnpzbGlkZXIubm9hbmltYXRlICoge1xuICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5yenNsaWRlci53aXRoLWxlZ2VuZCB7XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7XG59XG5cbi5yenNsaWRlcltkaXNhYmxlZF0ge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4ucnpzbGlkZXJbZGlzYWJsZWRdIC5yei1wb2ludGVyIHtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q4ZTBmMztcbn1cblxuLnJ6c2xpZGVyW2Rpc2FibGVkXSAucnotZHJhZ2dhYmxlIHtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLnJ6c2xpZGVyW2Rpc2FibGVkXSAucnotc2VsZWN0aW9uIHtcbiAgYmFja2dyb3VuZDogIzhiOTFhMjtcbn1cblxuLnJ6c2xpZGVyW2Rpc2FibGVkXSAucnotdGljayB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi5yenNsaWRlcltkaXNhYmxlZF0gLnJ6LXRpY2sucnotc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kOiAjOGI5MWEyO1xufVxuXG4ucnpzbGlkZXIgc3BhbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4ucnpzbGlkZXIgLnJ6LWJhc2Uge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAwO1xufVxuXG4ucnpzbGlkZXIgLnJ6LWJhci13cmFwcGVyIHtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMzJweDtcbiAgcGFkZGluZy10b3A6IDE2cHg7XG4gIG1hcmdpbi10b3A6IC0xNnB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB0cmFuc2l0aW9uOiBhbGwgbGluZWFyIDAuM3M7XG59XG5cbi5yenNsaWRlciAucnotZHJhZ2dhYmxlIHtcbiAgY3Vyc29yOiBtb3ZlO1xufVxuXG4ucnpzbGlkZXIgLnJ6LWJhciB7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDE7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDRweDtcbiAgYmFja2dyb3VuZDogI2Q4ZTBmMztcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAycHg7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbn1cblxuLnJ6c2xpZGVyIC5yei1iYXItd3JhcHBlci5yei10cmFuc3BhcmVudCAucnotYmFyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG5cbi5yenNsaWRlciAucnotYmFyLXdyYXBwZXIucnotbGVmdC1vdXQtc2VsZWN0aW9uIC5yei1iYXIge1xuICBiYWNrZ3JvdW5kOiAjZGYwMDJkO1xufVxuXG4ucnpzbGlkZXIgLnJ6LWJhci13cmFwcGVyLnJ6LXJpZ2h0LW91dC1zZWxlY3Rpb24gLnJ6LWJhciB7XG4gIGJhY2tncm91bmQ6ICMwM2E2ODg7XG59XG5cbi5yenNsaWRlciAucnotc2VsZWN0aW9uIHtcbiAgei1pbmRleDogMjtcbiAgYmFja2dyb3VuZDogIzBkYjlmMDtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAycHg7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciBsaW5lYXIgMC4zcztcbn1cblxuLnJ6c2xpZGVyIC5yei1yZXN0cmljdGVkIHtcbiAgei1pbmRleDogMztcbiAgYmFja2dyb3VuZDogI2ZmMDAwMDtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAycHg7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbn1cblxuLnJ6c2xpZGVyIC5yei1wb2ludGVyIHtcbiAgdG9wOiAtMTRweDtcbiAgei1pbmRleDogMztcbiAgd2lkdGg6IDMycHg7XG4gIGhlaWdodDogMzJweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGRiOWYwO1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICB0cmFuc2l0aW9uOiBhbGwgbGluZWFyIDAuM3M7XG59XG5cbi5yenNsaWRlciAucnotcG9pbnRlcjphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMnB4O1xuICBsZWZ0OiAxMnB4O1xuICB3aWR0aDogOHB4O1xuICBoZWlnaHQ6IDhweDtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgY29udGVudDogJyc7XG59XG5cbi5yenNsaWRlciAucnotcG9pbnRlcjpob3ZlcjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG5cbi5yenNsaWRlciAucnotcG9pbnRlci5yei1hY3RpdmUge1xuICB6LWluZGV4OiA0O1xufVxuXG4ucnpzbGlkZXIgLnJ6LXBvaW50ZXIucnotYWN0aXZlOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ1MWFmZjtcbn1cblxuLnJ6c2xpZGVyIC5yei1idWJibGUge1xuICBib3R0b206IDE2cHg7XG4gIHBhZGRpbmc6IDFweCAzcHg7XG4gIGNvbG9yOiAjNTU2MzdkO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIHRyYW5zaXRpb246IGFsbCBsaW5lYXIgMC4zcztcbn1cblxuLnJ6c2xpZGVyIC5yei1idWJibGUucnotbGltaXQge1xuICBjb2xvcjogIzU1NjM3ZDtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbn1cblxuLnJ6c2xpZGVyIC5yei10aWNrcyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtM3B4O1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi5yenNsaWRlciAucnotdGlja3MtdmFsdWVzLXVuZGVyIC5yei10aWNrLXZhbHVlIHtcbiAgdG9wOiBhdXRvO1xuICBib3R0b206IC0zMnB4O1xufVxuXG4ucnpzbGlkZXIgLnJ6LXRpY2sge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogMTBweDtcbiAgbWFyZ2luLWxlZnQ6IDExcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kOiAjZDhlMGYzO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgbGluZWFyIDAuM3M7XG59XG5cbi5yenNsaWRlciAucnotdGljay5yei1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQ6ICMwZGI5ZjA7XG59XG5cbi5yenNsaWRlciAucnotdGljay12YWx1ZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtMzBweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgMCk7XG59XG5cbi5yenNsaWRlciAucnotdGljay1sZWdlbmQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMjRweDtcbiAgbWF4LXdpZHRoOiA1MHB4O1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAwKTtcbn1cblxuLnJ6c2xpZGVyLnJ6LXZlcnRpY2FsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogNHB4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMCAyMHB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi5yenNsaWRlci5yei12ZXJ0aWNhbCAucnotYmFzZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5yenNsaWRlci5yei12ZXJ0aWNhbCAucnotYmFyLXdyYXBwZXIge1xuICB0b3A6IGF1dG87XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAzMnB4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmc6IDAgMCAwIDE2cHg7XG4gIG1hcmdpbjogMCAwIDAgLTE2cHg7XG59XG5cbi5yenNsaWRlci5yei12ZXJ0aWNhbCAucnotYmFyIHtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiBhdXRvO1xuICB3aWR0aDogNHB4O1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5yenNsaWRlci5yei12ZXJ0aWNhbCAucnotcG9pbnRlciB7XG4gIHRvcDogYXV0bztcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAtMTRweCAhaW1wb3J0YW50O1xufVxuXG4ucnpzbGlkZXIucnotdmVydGljYWwgLnJ6LWJ1YmJsZSB7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMTZweCAhaW1wb3J0YW50O1xuICBtYXJnaW4tbGVmdDogM3B4O1xufVxuXG4ucnpzbGlkZXIucnotdmVydGljYWwgLnJ6LXRpY2tzIHtcbiAgdG9wOiAwO1xuICBsZWZ0OiAtM3B4O1xuICB6LWluZGV4OiAxO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4ucnpzbGlkZXIucnotdmVydGljYWwgLnJ6LXRpY2sge1xuICBtYXJnaW4tdG9wOiAxMXB4O1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLnJ6c2xpZGVyLnJ6LXZlcnRpY2FsIC5yei10aWNrLXZhbHVlIHtcbiAgdG9wOiBhdXRvO1xuICBsZWZ0OiAyNHB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMjglKTtcbn1cblxuLnJ6c2xpZGVyLnJ6LXZlcnRpY2FsIC5yei10aWNrLWxlZ2VuZCB7XG4gIHRvcDogYXV0bztcbiAgcmlnaHQ6IDI0cHg7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTI4JSk7XG59XG5cbi5yenNsaWRlci5yei12ZXJ0aWNhbCAucnotdGlja3MtdmFsdWVzLXVuZGVyIC5yei10aWNrLXZhbHVlIHtcbiAgcmlnaHQ6IDI0cHg7XG4gIGJvdHRvbTogYXV0bztcbiAgbGVmdDogYXV0bztcbn0iXX0= */ \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..2bc986b --- /dev/null +++ b/package-lock.json @@ -0,0 +1,11 @@ +{ + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "angularjs-slider": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/angularjs-slider/-/angularjs-slider-7.0.0.tgz", + "integrity": "sha512-qNWPARWEktSthHj0/SAMVhy+3AIRnyVCXRK58gXT+3uRORXu/3QJ2L9MjCZvA9yeZxFceEYMOrtK8sSsTKobUw==" + } + } +}