[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Fmsystem-commits] [12245] convert topmenu to responsive horizontal menu
From: |
Sigurd Nes |
Subject: |
[Fmsystem-commits] [12245] convert topmenu to responsive horizontal menu |
Date: |
Tue, 28 Oct 2014 12:32:34 +0000 |
Revision: 12245
http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=12245
Author: sigurdne
Date: 2014-10-28 12:32:33 +0000 (Tue, 28 Oct 2014)
Log Message:
-----------
convert topmenu to responsive horizontal menu
Modified Paths:
--------------
branches/dev-syncromind/phpgwapi/templates/pure/css/demo_mmenu.css
branches/dev-syncromind/phpgwapi/templates/pure/head.inc.php
branches/dev-syncromind/phpgwapi/templates/pure/js/mmenu.js
branches/dev-syncromind/phpgwapi/templates/pure/navbar.inc.php
branches/dev-syncromind/phpgwapi/templates/pure/navbar.tpl
Added Paths:
-----------
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu/
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu/assets/
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu/assets/gallery-sm-menu-core.css
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu/assets/skins/
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu/assets/skins/sam/
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu/assets/skins/sam/gallery-sm-menu-skin.css
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu/assets/skins/sam/gallery-sm-menu.css
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu/gallery-sm-menu-coverage.js
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu/gallery-sm-menu-debug.js
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu/gallery-sm-menu-min.js
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu/gallery-sm-menu.js
Added:
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu/assets/gallery-sm-menu-core.css
===================================================================
---
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu/assets/gallery-sm-menu-core.css
(rev 0)
+++
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu/assets/gallery-sm-menu-core.css
2014-10-28 12:32:33 UTC (rev 12245)
@@ -0,0 +1,63 @@
+.yui3-menu,
+.yui3-menu-children {
+ left: -10000px;
+ position: absolute;
+ top: -10000px;
+ visibility: hidden;
+}
+
+.yui3-menu.yui3-menu-open {
+ left: auto;
+ top: auto;
+ visibility: visible;
+ z-index: 2;
+}
+
+.yui3-menu-children {
+ left: -10000px;
+ list-style: none;
+ margin: 0;
+ padding: 0;
+ top: -10000px;
+ z-index: 1;
+}
+
+.yui3-menu > .yui3-menu-children { position: relative; }
+
+.yui3-menu-open > .yui3-menu-children {
+ left: 0;
+ top: 0;
+ visibility: visible;
+}
+
+.yui3-menu-item { position: relative; }
+
+.yui3-menu-label {
+ display: block;
+ color: inherit;
+ line-height: 1.5;
+ padding: 0 20px;
+ text-decoration: none;
+ white-space: nowrap;
+}
+
+a.yui3-menu-label { padding-right: 30px; }
+
+.yui3-menu-can-have-children > .yui3-menu-label:after {
+ content: '\25B8';
+ float: right;
+ font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'DejaVu Sans',
sans-serif; /* These specific fonts have the Unicode char we need. */
+ margin-right: -20px;
+ margin-top: -1px;
+}
+
+.yui3-menu-separator {
+ background-color: #dfdfdf;
+ display: block;
+ height: 1px;
+ font-size: 0;
+ margin: 7px 2px;
+ overflow: hidden;
+}
+
+.yui3-menu-hidden { display: none; }
Added:
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu/assets/skins/sam/gallery-sm-menu-skin.css
===================================================================
---
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu/assets/skins/sam/gallery-sm-menu-skin.css
(rev 0)
+++
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu/assets/skins/sam/gallery-sm-menu-skin.css
2014-10-28 12:32:33 UTC (rev 12245)
@@ -0,0 +1,50 @@
+.yui3-skin-sam .yui3-menu-children {
+ background: #fff;
+ border: 1px solid #b7b7b7;
+ border-radius: 3px;
+ box-shadow: 0 3px 6px #afafaf;
+ padding: 5px 0;
+}
+
+.yui3-skin-sam .yui3-menu-label {
+ border: 1px solid transparent;
+ border-left: none;
+ border-right: none;
+}
+
+.yui3-skin-sam .yui3-menu-label,
+.yui3-skin-sam .yui3-menu-can-have-children > .yui3-menu-label:after {
+ color: #333;
+}
+
+.yui3-skin-sam .yui3-menu-can-have-children > .yui3-menu-label:hover:after {
+ color: #fff;
+}
+
+.yui3-skin-sam a.yui3-menu-label:hover {
+ background: rgb(81, 113, 235);
+ background: -moz-linear-gradient(rgba(81, 113, 235, 1), rgba(26, 67, 244,
1));
+ background: -ms-linear-gradient(rgba(81, 113, 235, 1), rgba(26, 67, 244,
1));
+ background: -o-linear-gradient(rgba(81, 113, 235, 1), rgba(26, 67, 244,
1));
+ background: -webkit-linear-gradient(rgba(81, 113, 235, 1), rgba(26, 67,
244, 1));
+ background: linear-gradient(rgba(81, 113, 235, 1), rgba(26, 67, 244, 1));
+ border-bottom-color: #0d36e7;
+ border-top-color: #4767ea;
+ color: #fff;
+}
+
+.yui3-skin-sam .yui3-menu-disabled > a.yui3-menu-label {
+ background-image: none;
+ border-color: transparent;
+ cursor: default;
+}
+
+.yui3-skin-sam .yui3-menu-disabled > a.yui3-menu-label,
+.yui3-skin-sam .yui3-menu-can-have-children.yui3-menu-disabled >
.yui3-menu-label:after {
+ color: #bfbfbf;
+}
+
+.yui3-skin-sam .yui3-menu-heading .yui3-menu-label {
+ color: #888;
+ text-transform: uppercase;
+}
Added:
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu/assets/skins/sam/gallery-sm-menu.css
===================================================================
---
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu/assets/skins/sam/gallery-sm-menu.css
(rev 0)
+++
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu/assets/skins/sam/gallery-sm-menu.css
2014-10-28 12:32:33 UTC (rev 12245)
@@ -0,0 +1 @@
+.yui3-menu,.yui3-menu-children{left:-10000px;position:absolute;top:-10000px;visibility:hidden}.yui3-menu.yui3-menu-open{left:auto;top:auto;visibility:visible;z-index:2}.yui3-menu-children{left:-10000px;list-style:none;margin:0;padding:0;top:-10000px;z-index:1}.yui3-menu>.yui3-menu-children{position:relative}.yui3-menu-open>.yui3-menu-children{left:0;top:0;visibility:visible}.yui3-menu-item{position:relative}.yui3-menu-label{display:block;color:inherit;line-height:1.5;padding:0
20px;text-decoration:none;white-space:nowrap}a.yui3-menu-label{padding-right:30px}.yui3-menu-can-have-children>.yui3-menu-label:after{content:'\25B8';float:right;font-family:'Lucida
Grande','Lucida Sans Unicode','DejaVu
Sans',sans-serif;margin-right:-20px;margin-top:-1px}.yui3-menu-separator{background-color:#dfdfdf;display:block;height:1px;font-size:0;margin:7px
2px;overflow:hidden}.yui3-menu-hidden{display:none}.yui3-skin-sam
.yui3-menu-children{background:#fff;border:1px solid
#b7b7b7;border-radius:3px;box-shadow:0 3px 6px #afafaf;padding:5px
0}.yui3-skin-sam .yui3-menu-label{border:1px solid
transparent;border-left:none;border-right:0}.yui3-skin-sam
.yui3-menu-label,.yui3-skin-sam
.yui3-menu-can-have-children>.yui3-menu-label:after{color:#333}.yui3-skin-sam
.yui3-menu-can-have-children>.yui3-menu-label:hover:after{color:#fff}.yui3-skin-sam
a.yui3-menu-label:hover{background:#5171eb;background:-moz-linear-gradient(rgba(81,113,235,1),rgba(26,67,244,1));background:-ms-linear-gradient(rgba(81,113,235,1),rgba(26,67,244,1));background:-o-linear-gradient(rgba(81,113,235,1),rgba(26,67,244,1));background:-webkit-linear-gradient(rgba(81,113,235,1),rgba(26,67,244,1));background:linear-gradient(rgba(81,113,235,1),rgba(26,67,244,1));border-bottom-color:#0d36e7;border-top-color:#4767ea;color:#fff}.yui3-skin-sam
.yui3-menu-disabled>a.yui3-menu-label{background-image:none;border-color:transparent;cursor:default}.yui3-skin-sam
.yui3-menu-disabled>a.yui3-menu-label,.yui3-skin-sam
.yui3-menu-can-have-children.yui3-menu-disabled>.yui3-menu-label:after{color:#bfbfbf}.yui3-skin-sam
.yui3-menu-heading
.yui3-menu-label{color:#888;text-transform:uppercase}#yui3-css-stamp.skin-sam-gallery-sm-menu{display:none}
Added:
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu/gallery-sm-menu-coverage.js
===================================================================
---
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu/gallery-sm-menu-coverage.js
(rev 0)
+++
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu/gallery-sm-menu-coverage.js
2014-10-28 12:32:33 UTC (rev 12245)
@@ -0,0 +1,6 @@
+if (typeof __coverage__ === 'undefined') { __coverage__ = {}; }
+if (!__coverage__['build/gallery-sm-menu/gallery-sm-menu.js']) {
+ __coverage__['build/gallery-sm-menu/gallery-sm-menu.js'] =
{"path":"build/gallery-sm-menu/gallery-sm-menu.js","s":{"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0,"113":0,"114":0,"115":0,"116":0,"117":0,"118":0,"119":0,"120":0,"121":0,"122":0,"123":0,"124":0,"125":0,"126":0,"127":0,"128":0,"129":0,"130":0,"131":0,"132":0,"133":0,"134":0,"135":0,"136":0,"137":0,"138":0,"139":0,"140":0,"141":0,"142":0,"143":0,"144":0,"145":0,"146":0,"147":0,"148":0,"149":0,"150":0,"151":0,"152":0,"153":0,"154":0,"155":0,"156":0,"157":0,"158":0,"159":0,"160":0,"161":0,"162":0,"163":0,"164":0,"165":0,"166":0,"167":0,"168":0,"169":0,"170":0,"171":0,"172":0,"173":0,"174":0,"175":0,"176":0,"177":0,"178":0,"179":0,"180":0,"181":0,"182":0,"183":0,"184":0,"185":0,"186":0,"187":0,"188":0,"189":0,"190":0,"191":0,"192":0,"193":0,"194":0,"195":0,"196":0,"197":0,"198":0,"199":0,"200":0,"201":0,"202":0,"203":0,"204":0,"205":0,"206":0,"207":0,"208":0,"209":0,"210":0,"211":0,"212":0,"213":0,"214":0,"215":0,"216":0,"217":0,"218":0,"219":0,"220":0,"221":0,"222":0,"223":0,"224":0,"225":0,"226":0,"227":0,"228":0,"229":0,"230":0,"231":0,"232":0,"233":0,"234":0,"235":0,"236":0,"237":0,"238":0,"239":0,"240":0,"241":0,"242":0,"243":0,"244":0,"245":0,"246":0,"247":0,"248":0,"249":0,"250":0,"251":0,"252":0,"253":0,"254":0,"255":0,"256":0,"257":0,"258":0,"259":0,"260":0,"261":0,"262":0,"263":0,"264":0,"265":0,"266":0,"267":0,"268":0,"269":0,"270":0,"271":0,"272":0,"273":0,"274":0,"275":0,"276":0,"277":0,"278":0,"279":0,"280":0,"281":0,"282":0,"283":0,"284":0,"285":0,"286":0},"b":{"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0],"10":[0,0],"11":[0,0],"12":[0,0],"13":[0,0],"14":[0,0],"15":[0,0],"16":[0,0],"17":[0,0],"18":[0,0],"19":[0,0],"20":[0,0],"21":[0,0],"22":[0,0],"23":[0,0],"24":[0,0],"25":[0,0],"26":[0,0,0],"27":[0,0],"28":[0,0],"29":[0,0],"30":[0,0],"31":[0,0],"32":[0,0],"33":[0,0],"34":[0,0],"35":[0,0],"36":[0,0],"37":[0,0],"38":[0,0],"39":[0,0],"40":[0,0],"41":[0,0],"42":[0,0],"43":[0,0],"44":[0,0],"45":[0,0],"46":[0,0],"47":[0,0],"48":[0,0],"49":[0,0],"50":[0,0],"51":[0,0,0,0],"52":[0,0],"53":[0,0],"54":[0,0],"55":[0,0,0],"56":[0,0],"57":[0,0],"58":[0,0],"59":[0,0],"60":[0,0],"61":[0,0],"62":[0,0],"63":[0,0],"64":[0,0],"65":[0,0],"66":[0,0],"67":[0,0],"68":[0,0],"69":[0,0],"70":[0,0],"71":[0,0],"72":[0,0],"73":[0,0],"74":[0,0],"75":[0,0],"76":[0,0],"77":[0,0],"78":[0,0],"79":[0,0],"80":[0,0],"81":[0,0],"82":[0,0],"83":[0,0],"84":[0,0],"85":[0,0],"86":[0,0],"87":[0,0],"88":[0,0],"89":[0,0],"90":[0,0],"91":[0,0]},"f":{"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0},"fnMap":{"1":{"name":"(anonymous_1)","line":1,"loc":{"start":{"line":1,"column":27},"end":{"line":1,"column":46}}},"2":{"name":"(anonymous_2)","line":90,"loc":{"start":{"line":90,"column":17},"end":{"line":90,"column":35}}},"3":{"name":"(anonymous_3)","line":105,"loc":{"start":{"line":105,"column":16},"end":{"line":105,"column":28}}},"4":{"name":"(anonymous_4)","line":111,"loc":{"start":{"line":111,"column":38},"end":{"line":111,"column":57}}},"5":{"name":"(anonymous_5)","line":129,"loc":{"start":{"line":129,"column":17},"end":{"line":129,"column":33}}},"6":{"name":"(anonymous_6)","line":143,"loc":{"start":{"line":143,"column":10},"end":{"line":143,"column":22}}},"7":{"name":"(anonymous_7)","line":168,"loc":{"start":{"line":168,"column":15},"end":{"line":168,"column":37}}},"8":{"name":"(anonymous_8)","line":176,"loc":{"start":{"line":176,"column":38},"end":{"line":176,"column":58}}},"9":{"name":"(anonymous_9)","line":240,"loc":{"start":{"line":240,"column":12},"end":{"line":240,"column":24}}},"10":{"name":"(anonymous_10)","line":281,"loc":{"start":{"line":281,"column":20},"end":{"line":281,"column":49}}},"11":{"name":"(anonymous_11)","line":332,"loc":{"start":{"line":332,"column":16},"end":{"line":332,"column":41}}},"12":{"name":"(anonymous_12)","line":417,"loc":{"start":{"line":417,"column":16},"end":{"line":417,"column":39}}},"13":{"name":"(anonymous_13)","line":458,"loc":{"start":{"line":458,"column":10},"end":{"line":458,"column":29}}},"14":{"name":"(anonymous_14)","line":483,"loc":{"start":{"line":483,"column":19},"end":{"line":483,"column":38}}},"15":{"name":"(anonymous_15)","line":495,"loc":{"start":{"line":495,"column":23},"end":{"line":495,"column":35}}},"16":{"name":"(anonymous_16)","line":531,"loc":{"start":{"line":531,"column":23},"end":{"line":531,"column":35}}},"17":{"name":"(anonymous_17)","line":545,"loc":{"start":{"line":545,"column":24},"end":{"line":545,"column":36}}},"18":{"name":"(anonymous_18)","line":548,"loc":{"start":{"line":548,"column":15},"end":{"line":548,"column":31}}},"19":{"name":"(anonymous_19)","line":583,"loc":{"start":{"line":583,"column":22},"end":{"line":583,"column":66}}},"20":{"name":"(anonymous_20)","line":586,"loc":{"start":{"line":586,"column":54},"end":{"line":586,"column":87}}},"21":{"name":"(anonymous_21)","line":606,"loc":{"start":{"line":606,"column":29},"end":{"line":606,"column":90}}},"22":{"name":"(anonymous_22)","line":634,"loc":{"start":{"line":634,"column":21},"end":{"line":634,"column":37}}},"23":{"name":"(anonymous_23)","line":658,"loc":{"start":{"line":658,"column":15},"end":{"line":658,"column":41}}},"24":{"name":"(anonymous_24)","line":681,"loc":{"start":{"line":681,"column":15},"end":{"line":681,"column":39}}},"25":{"name":"(anonymous_25)","line":712,"loc":{"start":{"line":712,"column":19},"end":{"line":712,"column":45}}},"26":{"name":"(anonymous_26)","line":753,"loc":{"start":{"line":753,"column":15},"end":{"line":753,"column":28}}},"27":{"name":"(anonymous_27)","line":793,"loc":{"start":{"line":793,"column":17},"end":{"line":793,"column":29}}},"28":{"name":"(anonymous_28)","line":815,"loc":{"start":{"line":815,"column":24},"end":{"line":815,"column":37}}},"29":{"name":"(anonymous_29)","line":836,"loc":{"start":{"line":836,"column":17},"end":{"line":836,"column":30}}},"30":{"name":"(anonymous_30)","line":861,"loc":{"start":{"line":861,"column":19},"end":{"line":861,"column":32}}},"31":{"name":"(anonymous_31)","line":876,"loc":{"start":{"line":876,"column":18},"end":{"line":876,"column":31}}},"32":{"name":"(anonymous_32)","line":891,"loc":{"start":{"line":891,"column":16},"end":{"line":891,"column":29}}},"33":{"name":"(anonymous_33)","line":907,"loc":{"start":{"line":907,"column":16},"end":{"line":907,"column":29}}},"34":{"name":"(anonymous_34)","line":946,"loc":{"start":{"line":946,"column":29},"end":{"line":946,"column":42}}},"35":{"name":"(anonymous_35)","line":962,"loc":{"start":{"line":962,"column":18},"end":{"line":962,"column":31}}},"36":{"name":"(anonymous_36)","line":984,"loc":{"start":{"line":984,"column":16},"end":{"line":984,"column":29}}},"37":{"name":"(anonymous_37)","line":1000,"loc":{"start":{"line":1000,"column":25},"end":{"line":1000,"column":38}}},"38":{"name":"(anonymous_38)","line":1020,"loc":{"start":{"line":1020,"column":18},"end":{"line":1020,"column":31}}},"39":{"name":"(anonymous_39)","line":1060,"loc":{"start":{"line":1060,"column":23},"end":{"line":1060,"column":36}}},"40":{"name":"(anonymous_40)","line":1069,"loc":{"start":{"line":1069,"column":41},"end":{"line":1069,"column":53}}},"41":{"name":"(anonymous_41)","line":1081,"loc":{"start":{"line":1081,"column":23},"end":{"line":1081,"column":36}}},"42":{"name":"(anonymous_42)","line":1090,"loc":{"start":{"line":1090,"column":41},"end":{"line":1090,"column":53}}},"43":{"name":"(anonymous_43)","line":1102,"loc":{"start":{"line":1102,"column":23},"end":{"line":1102,"column":35}}},"44":{"name":"(anonymous_44)","line":1113,"loc":{"start":{"line":1113,"column":23},"end":{"line":1113,"column":35}}},"45":{"name":"(anonymous_45)","line":1118,"loc":{"start":{"line":1118,"column":41},"end":{"line":1118,"column":53}}},"46":{"name":"(anonymous_46)","line":1136,"loc":{"start":{"line":1136,"column":21},"end":{"line":1136,"column":34}}},"47":{"name":"(anonymous_47)","line":1157,"loc":{"start":{"line":1157,"column":29},"end":{"line":1157,"column":42}}},"48":{"name":"(anonymous_48)","line":1194,"loc":{"start":{"line":1194,"column":21},"end":{"line":1194,"column":33}}},"49":{"name":"(anonymous_49)","line":1250,"loc":{"start":{"line":1250,"column":21},"end":{"line":1250,"column":33}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":1282,"column":3}},"2":{"start":{"line":26,"column":0},"end":{"line":27,"column":51}},"3":{"start":{"line":40,"column":0},"end":{"line":40,"column":33}},"4":{"start":{"line":42,"column":0},"end":{"line":1266,"column":3}},"5":{"start":{"line":91,"column":8},"end":{"line":91,"column":29}},"6":{"start":{"line":92,"column":8},"end":{"line":92,"column":29}},"7":{"start":{"line":93,"column":8},"end":{"line":93,"column":29}},"8":{"start":{"line":95,"column":8},"end":{"line":100,"column":9}},"9":{"start":{"line":96,"column":12},"end":{"line":97,"column":51}},"10":{"start":{"line":99,"column":12},"end":{"line":99,"column":50}},"11":{"start":{"line":102,"column":8},"end":{"line":102,"column":33}},"12":{"start":{"line":106,"column":8},"end":{"line":106,"column":33}},"13":{"start":{"line":108,"column":8},"end":{"line":108,"column":31}},"14":{"start":{"line":109,"column":8},"end":{"line":109,"column":31}},"15":{"start":{"line":111,"column":8},"end":{"line":113,"column":17}},"16":{"start":{"line":112,"column":12},"end":{"line":112,"column":34}},"17":{"start":{"line":115,"column":8},"end":{"line":115,"column":30}},"18":{"start":{"line":130,"column":8},"end":{"line":132,"column":9}},"19":{"start":{"line":131,"column":12},"end":{"line":131,"column":70}},"20":{"start":{"line":134,"column":8},"end":{"line":134,"column":30}},"21":{"start":{"line":144,"column":8},"end":{"line":144,"column":35}},"22":{"start":{"line":145,"column":8},"end":{"line":145,"column":20}},"23":{"start":{"line":169,"column":8},"end":{"line":169,"column":39}},"24":{"start":{"line":171,"column":8},"end":{"line":174,"column":30}},"25":{"start":{"line":176,"column":8},"end":{"line":226,"column":11}},"26":{"start":{"line":177,"column":12},"end":{"line":180,"column":56}},"27":{"start":{"line":182,"column":12},"end":{"line":186,"column":13}},"28":{"start":{"line":183,"column":16},"end":{"line":183,"column":38}},"29":{"start":{"line":184,"column":19},"end":{"line":186,"column":13}},"30":{"start":{"line":185,"column":16},"end":{"line":185,"column":40}},"31":{"start":{"line":188,"column":12},"end":{"line":191,"column":13}},"32":{"start":{"line":189,"column":16},"end":{"line":189,"column":48}},"33":{"start":{"line":190,"column":16},"end":{"line":190,"column":43}},"34":{"start":{"line":193,"column":12},"end":{"line":196,"column":13}},"35":{"start":{"line":194,"column":16},"end":{"line":194,"column":48}},"36":{"start":{"line":195,"column":16},"end":{"line":195,"column":41}},"37":{"start":{"line":198,"column":12},"end":{"line":219,"column":13}},"38":{"start":{"line":199,"column":16},"end":{"line":199,"column":58}},"39":{"start":{"line":201,"column":16},"end":{"line":201,"column":49}},"40":{"start":{"line":203,"column":16},"end":{"line":205,"column":17}},"41":{"start":{"line":204,"column":20},"end":{"line":204,"column":36}},"42":{"start":{"line":209,"column":16},"end":{"line":209,"column":28}},"43":{"start":{"line":211,"column":16},"end":{"line":218,"column":17}},"44":{"start":{"line":212,"column":20},"end":{"line":212,"column":51}},"45":{"start":{"line":214,"column":20},"end":{"line":217,"column":21}},"46":{"start":{"line":215,"column":24},"end":{"line":215,"column":70}},"47":{"start":{"line":216,"column":24},"end":{"line":216,"column":30}},"48":{"start":{"line":221,"column":12},"end":{"line":223,"column":13}},"49":{"start":{"line":222,"column":16},"end":{"line":222,"column":60}},"50":{"start":{"line":225,"column":12},"end":{"line":225,"column":29}},"51":{"start":{"line":228,"column":8},"end":{"line":228,"column":21}},"52":{"start":{"line":241,"column":8},"end":{"line":242,"column":47}},"53":{"start":{"line":244,"column":8},"end":{"line":244,"column":44}},"54":{"start":{"line":245,"column":8},"end":{"line":245,"column":64}},"55":{"start":{"line":248,"column":8},"end":{"line":252,"column":9}},"56":{"start":{"line":249,"column":12},"end":{"line":249,"column":49}},"57":{"start":{"line":251,"column":12},"end":{"line":251,"column":51}},"58":{"start":{"line":254,"column":8},"end":{"line":256,"column":11}},"59":{"start":{"line":258,"column":8},"end":{"line":260,"column":9}},"60":{"start":{"line":259,"column":12},"end":{"line":259,"column":44}},"61":{"start":{"line":262,"column":8},"end":{"line":262,"column":29}},"62":{"start":{"line":264,"column":8},"end":{"line":264,"column":20}},"63":{"start":{"line":282,"column":8},"end":{"line":282,"column":34}},"64":{"start":{"line":284,"column":8},"end":{"line":285,"column":86}},"65":{"start":{"line":287,"column":8},"end":{"line":293,"column":9}},"66":{"start":{"line":288,"column":12},"end":{"line":292,"column":16}},"67":{"start":{"line":295,"column":8},"end":{"line":298,"column":9}},"68":{"start":{"line":296,"column":12},"end":{"line":296,"column":44}},"69":{"start":{"line":297,"column":12},"end":{"line":297,"column":45}},"70":{"start":{"line":300,"column":8},"end":{"line":302,"column":9}},"71":{"start":{"line":301,"column":12},"end":{"line":301,"column":65}},"72":{"start":{"line":304,"column":8},"end":{"line":309,"column":9}},"73":{"start":{"line":305,"column":12},"end":{"line":308,"column":15}},"74":{"start":{"line":311,"column":8},"end":{"line":313,"column":9}},"75":{"start":{"line":312,"column":12},"end":{"line":312,"column":43}},"76":{"start":{"line":315,"column":8},"end":{"line":315,"column":28}},"77":{"start":{"line":333,"column":8},"end":{"line":333,"column":34}},"78":{"start":{"line":335,"column":8},"end":{"line":337,"column":41}},"79":{"start":{"line":340,"column":8},"end":{"line":346,"column":9}},"80":{"start":{"line":341,"column":12},"end":{"line":345,"column":16}},"81":{"start":{"line":349,"column":8},"end":{"line":349,"column":46}},"82":{"start":{"line":350,"column":8},"end":{"line":350,"column":58}},"83":{"start":{"line":352,"column":8},"end":{"line":394,"column":9}},"84":{"start":{"line":354,"column":12},"end":{"line":354,"column":46}},"85":{"start":{"line":355,"column":12},"end":{"line":355,"column":18}},"86":{"start":{"line":359,"column":12},"end":{"line":360,"column":48}},"87":{"start":{"line":362,"column":12},"end":{"line":362,"column":42}},"88":{"start":{"line":364,"column":12},"end":{"line":367,"column":13}},"89":{"start":{"line":365,"column":16},"end":{"line":365,"column":35}},"90":{"start":{"line":366,"column":16},"end":{"line":366,"column":45}},"91":{"start":{"line":369,"column":12},"end":{"line":369,"column":53}},"92":{"start":{"line":371,"column":12},"end":{"line":392,"column":13}},"93":{"start":{"line":372,"column":16},"end":{"line":372,"column":48}},"94":{"start":{"line":374,"column":16},"end":{"line":374,"column":49}},"95":{"start":{"line":376,"column":16},"end":{"line":376,"column":77}},"96":{"start":{"line":378,"column":16},"end":{"line":391,"column":17}},"97":{"start":{"line":379,"column":20},"end":{"line":379,"column":66}},"98":{"start":{"line":380,"column":20},"end":{"line":380,"column":73}},"99":{"start":{"line":382,"column":20},"end":{"line":390,"column":21}},"100":{"start":{"line":383,"column":24},"end":{"line":383,"column":66}},"101":{"start":{"line":385,"column":24},"end":{"line":389,"column":25}},"102":{"start":{"line":386,"column":28},"end":{"line":388,"column":31}},"103":{"start":{"line":393,"column":12},"end":{"line":393,"column":18}},"104":{"start":{"line":396,"column":8},"end":{"line":398,"column":9}},"105":{"start":{"line":397,"column":12},"end":{"line":397,"column":47}},"106":{"start":{"line":400,"column":8},"end":{"line":400,"column":24}},"107":{"start":{"line":418,"column":8},"end":{"line":419,"column":37}},"108":{"start":{"line":421,"column":8},"end":{"line":432,"column":9}},"109":{"start":{"line":422,"column":12},"end":{"line":427,"column":14}},"110":{"start":{"line":428,"column":15},"end":{"line":432,"column":9}},"111":{"start":{"line":429,"column":12},"end":{"line":429,"column":53}},"112":{"start":{"line":431,"column":12},"end":{"line":431,"column":39}},"113":{"start":{"line":434,"column":8},"end":{"line":438,"column":20}},"114":{"start":{"line":440,"column":8},"end":{"line":440,"column":59}},"115":{"start":{"line":442,"column":8},"end":{"line":442,"column":20}},"116":{"start":{"line":459,"column":8},"end":{"line":461,"column":9}},"117":{"start":{"line":460,"column":12},"end":{"line":460,"column":26}},"118":{"start":{"line":463,"column":8},"end":{"line":465,"column":9}},"119":{"start":{"line":464,"column":12},"end":{"line":464,"column":49}},"120":{"start":{"line":467,"column":8},"end":{"line":467,"column":34}},"121":{"start":{"line":468,"column":8},"end":{"line":468,"column":20}},"122":{"start":{"line":484,"column":8},"end":{"line":484,"column":68}},"123":{"start":{"line":496,"column":8},"end":{"line":496,"column":52}},"124":{"start":{"line":498,"column":8},"end":{"line":499,"column":47}},"125":{"start":{"line":501,"column":8},"end":{"line":522,"column":10}},"126":{"start":{"line":532,"column":8},"end":{"line":532,"column":55}},"127":{"start":{"line":546,"column":8},"end":{"line":546,"column":46}},"128":{"start":{"line":548,"column":8},"end":{"line":550,"column":10}},"129":{"start":{"line":549,"column":12},"end":{"line":549,"column":38}},"130":{"start":{"line":584,"column":8},"end":{"line":584,"column":24}},"131":{"start":{"line":586,"column":8},"end":{"line":596,"column":11}},"132":{"start":{"line":587,"column":12},"end":{"line":592,"column":18}},"133":{"start":{"line":594,"column":12},"end":{"line":594,"column":58}},"134":{"start":{"line":595,"column":12},"end":{"line":595,"column":58}},"135":{"start":{"line":598,"column":8},"end":{"line":598,"column":79}},"136":{"start":{"line":599,"column":8},"end":{"line":599,"column":78}},"137":{"start":{"line":600,"column":8},"end":{"line":600,"column":78}},"138":{"start":{"line":601,"column":8},"end":{"line":601,"column":79}},"139":{"start":{"line":603,"column":8},"end":{"line":603,"column":22}},"140":{"start":{"line":607,"column":8},"end":{"line":607,"column":70}},"141":{"start":{"line":612,"column":8},"end":{"line":613,"column":34}},"142":{"start":{"line":615,"column":8},"end":{"line":630,"column":9}},"143":{"start":{"line":616,"column":12},"end":{"line":616,"column":30}},"144":{"start":{"line":619,"column":12},"end":{"line":621,"column":13}},"145":{"start":{"line":620,"column":16},"end":{"line":620,"column":36}},"146":{"start":{"line":623,"column":12},"end":{"line":623,"column":76}},"147":{"start":{"line":625,"column":12},"end":{"line":629,"column":15}},"148":{"start":{"line":634,"column":8},"end":{"line":644,"column":11}},"149":{"start":{"line":635,"column":12},"end":{"line":643,"column":13}},"150":{"start":{"line":636,"column":16},"end":{"line":636,"column":25}},"151":{"start":{"line":637,"column":19},"end":{"line":643,"column":13}},"152":{"start":{"line":638,"column":16},"end":{"line":638,"column":26}},"153":{"start":{"line":639,"column":19},"end":{"line":643,"column":13}},"154":{"start":{"line":640,"column":16},"end":{"line":640,"column":25}},"155":{"start":{"line":642,"column":16},"end":{"line":642,"column":41}},"156":{"start":{"line":647,"column":8},"end":{"line":647,"column":23}},"157":{"start":{"line":659,"column":8},"end":{"line":659,"column":56}},"158":{"start":{"line":661,"column":8},"end":{"line":661,"column":72}},"159":{"start":{"line":663,"column":8},"end":{"line":663,"column":45}},"160":{"start":{"line":664,"column":8},"end":{"line":664,"column":36}},"161":{"start":{"line":682,"column":8},"end":{"line":689,"column":9}},"162":{"start":{"line":688,"column":12},"end":{"line":688,"column":24}},"163":{"start":{"line":694,"column":8},"end":{"line":699,"column":10}},"164":{"start":{"line":713,"column":8},"end":{"line":713,"column":56}},"165":{"start":{"line":715,"column":8},"end":{"line":717,"column":32}},"166":{"start":{"line":721,"column":8},"end":{"line":728,"column":9}},"167":{"start":{"line":722,"column":12},"end":{"line":722,"column":48}},"168":{"start":{"line":726,"column":12},"end":{"line":727,"column":46}},"169":{"start":{"line":730,"column":8},"end":{"line":731,"column":64}},"170":{"start":{"line":733,"column":8},"end":{"line":737,"column":9}},"171":{"start":{"line":736,"column":12},"end":{"line":736,"column":44}},"172":{"start":{"line":740,"column":8},"end":{"line":740,"column":45}},"173":{"start":{"line":741,"column":8},"end":{"line":741,"column":66}},"174":{"start":{"line":755,"column":8},"end":{"line":757,"column":9}},"175":{"start":{"line":756,"column":12},"end":{"line":756,"column":19}},"176":{"start":{"line":759,"column":8},"end":{"line":761,"column":21}},"177":{"start":{"line":763,"column":8},"end":{"line":780,"column":9}},"178":{"start":{"line":764,"column":12},"end":{"line":764,"column":50}},"179":{"start":{"line":766,"column":12},"end":{"line":766,"column":48}},"180":{"start":{"line":767,"column":12},"end":{"line":767,"column":88}},"181":{"start":{"line":769,"column":12},"end":{"line":779,"column":13}},"182":{"start":{"line":772,"column":16},"end":{"line":772,"column":65}},"183":{"start":{"line":774,"column":16},"end":{"line":776,"column":19}},"184":{"start":{"line":778,"column":16},"end":{"line":778,"column":23}},"185":{"start":{"line":782,"column":8},"end":{"line":784,"column":21}},"186":{"start":{"line":794,"column":8},"end":{"line":794,"column":29}},"187":{"start":{"line":797,"column":8},"end":{"line":799,"column":9}},"188":{"start":{"line":798,"column":12},"end":{"line":798,"column":19}},"189":{"start":{"line":801,"column":8},"end":{"line":801,"column":34}},"190":{"start":{"line":802,"column":8},"end":{"line":802,"column":30}},"191":{"start":{"line":804,"column":8},"end":{"line":804,"column":38}},"192":{"start":{"line":805,"column":8},"end":{"line":805,"column":22}},"193":{"start":{"line":816,"column":8},"end":{"line":818,"column":9}},"194":{"start":{"line":817,"column":12},"end":{"line":817,"column":19}},"195":{"start":{"line":820,"column":8},"end":{"line":826,"column":9}},"196":{"start":{"line":821,"column":12},"end":{"line":821,"column":33}},"197":{"start":{"line":823,"column":12},"end":{"line":825,"column":13}},"198":{"start":{"line":824,"column":16},"end":{"line":824,"column":28}},"199":{"start":{"line":837,"column":8},"end":{"line":838,"column":46}},"200":{"start":{"line":841,"column":8},"end":{"line":843,"column":9}},"201":{"start":{"line":842,"column":12},"end":{"line":842,"column":37}},"202":{"start":{"line":845,"column":8},"end":{"line":845,"column":21}},"203":{"start":{"line":846,"column":8},"end":{"line":846,"column":40}},"204":{"start":{"line":848,"column":8},"end":{"line":851,"column":9}},"205":{"start":{"line":849,"column":12},"end":{"line":849,"column":43}},"206":{"start":{"line":850,"column":12},"end":{"line":850,"column":55}},"207":{"start":{"line":862,"column":8},"end":{"line":862,"column":48}},"208":{"start":{"line":864,"column":8},"end":{"line":866,"column":9}},"209":{"start":{"line":865,"column":12},"end":{"line":865,"column":56}},"210":{"start":{"line":877,"column":8},"end":{"line":877,"column":48}},"211":{"start":{"line":879,"column":8},"end":{"line":881,"column":9}},"212":{"start":{"line":880,"column":12},"end":{"line":880,"column":59}},"213":{"start":{"line":892,"column":8},"end":{"line":892,"column":48}},"214":{"start":{"line":894,"column":8},"end":{"line":897,"column":9}},"215":{"start":{"line":895,"column":12},"end":{"line":895,"column":54}},"216":{"start":{"line":896,"column":12},"end":{"line":896,"column":46}},"217":{"start":{"line":908,"column":8},"end":{"line":911,"column":18}},"218":{"start":{"line":913,"column":8},"end":{"line":929,"column":9}},"219":{"start":{"line":917,"column":12},"end":{"line":928,"column":13}},"220":{"start":{"line":918,"column":16},"end":{"line":924,"column":17}},"221":{"start":{"line":919,"column":20},"end":{"line":919,"column":47}},"222":{"start":{"line":921,"column":20},"end":{"line":923,"column":21}},"223":{"start":{"line":922,"column":24},"end":{"line":922,"column":38}},"224":{"start":{"line":927,"column":16},"end":{"line":927,"column":30}},"225":{"start":{"line":931,"column":8},"end":{"line":931,"column":40}},"226":{"start":{"line":933,"column":8},"end":{"line":936,"column":9}},"227":{"start":{"line":934,"column":12},"end":{"line":934,"column":47}},"228":{"start":{"line":935,"column":12},"end":{"line":935,"column":52}},"229":{"start":{"line":947,"column":8},"end":{"line":952,"column":9}},"230":{"start":{"line":948,"column":12},"end":{"line":951,"column":53}},"231":{"start":{"line":963,"column":8},"end":{"line":963,"column":42}},"232":{"start":{"line":965,"column":8},"end":{"line":967,"column":9}},"233":{"start":{"line":966,"column":12},"end":{"line":966,"column":19}},"234":{"start":{"line":969,"column":8},"end":{"line":969,"column":48}},"235":{"start":{"line":971,"column":8},"end":{"line":974,"column":9}},"236":{"start":{"line":972,"column":12},"end":{"line":972,"column":34}},"237":{"start":{"line":973,"column":12},"end":{"line":973,"column":36}},"238":{"start":{"line":985,"column":8},"end":{"line":985,"column":48}},"239":{"start":{"line":987,"column":8},"end":{"line":990,"column":9}},"240":{"start":{"line":988,"column":12},"end":{"line":988,"column":57}},"241":{"start":{"line":989,"column":12},"end":{"line":989,"column":47}},"242":{"start":{"line":1001,"column":8},"end":{"line":1001,"column":46}},"243":{"start":{"line":1003,"column":8},"end":{"line":1003,"column":62}},"244":{"start":{"line":1008,"column":8},"end":{"line":1010,"column":9}},"245":{"start":{"line":1009,"column":12},"end":{"line":1009,"column":47}},"246":{"start":{"line":1021,"column":8},"end":{"line":1023,"column":62}},"247":{"start":{"line":1027,"column":8},"end":{"line":1029,"column":9}},"248":{"start":{"line":1028,"column":12},"end":{"line":1028,"column":31}},"249":{"start":{"line":1031,"column":8},"end":{"line":1033,"column":9}},"250":{"start":{"line":1032,"column":12},"end":{"line":1032,"column":19}},"251":{"start":{"line":1035,"column":8},"end":{"line":1039,"column":9}},"252":{"start":{"line":1036,"column":12},"end":{"line":1038,"column":15}},"253":{"start":{"line":1041,"column":8},"end":{"line":1045,"column":9}},"254":{"start":{"line":1042,"column":12},"end":{"line":1044,"column":15}},"255":{"start":{"line":1047,"column":8},"end":{"line":1050,"column":11}},"256":{"start":{"line":1061,"column":8},"end":{"line":1061,"column":63}},"257":{"start":{"line":1063,"column":8},"end":{"line":1063,"column":42}},"258":{"start":{"line":1065,"column":8},"end":{"line":1067,"column":9}},"259":{"start":{"line":1066,"column":12},"end":{"line":1066,"column":19}},"260":{"start":{"line":1069,"column":8},"end":{"line":1071,"column":16}},"261":{"start":{"line":1070,"column":12},"end":{"line":1070,"column":24}},"262":{"start":{"line":1082,"column":8},"end":{"line":1082,"column":63}},"263":{"start":{"line":1084,"column":8},"end":{"line":1084,"column":42}},"264":{"start":{"line":1086,"column":8},"end":{"line":1088,"column":9}},"265":{"start":{"line":1087,"column":12},"end":{"line":1087,"column":19}},"266":{"start":{"line":1090,"column":8},"end":{"line":1092,"column":16}},"267":{"start":{"line":1091,"column":12},"end":{"line":1091,"column":25}},"268":{"start":{"line":1103,"column":8},"end":{"line":1103,"column":42}},"269":{"start":{"line":1114,"column":8},"end":{"line":1114,"column":24}},"270":{"start":{"line":1116,"column":8},"end":{"line":1116,"column":42}},"271":{"start":{"line":1118,"column":8},"end":{"line":1124,"column":16}},"272":{"start":{"line":1119,"column":12},"end":{"line":1119,"column":33}},"273":{"start":{"line":1121,"column":12},"end":{"line":1123,"column":13}},"274":{"start":{"line":1122,"column":16},"end":{"line":1122,"column":28}},"275":{"start":{"line":1137,"column":8},"end":{"line":1137,"column":26}},"276":{"start":{"line":1139,"column":8},"end":{"line":1147,"column":9}},"277":{"start":{"line":1140,"column":12},"end":{"line":1140,"column":46}},"278":{"start":{"line":1141,"column":12},"end":{"line":1141,"column":46}},"279":{"start":{"line":1143,"column":12},"end":{"line":1143,"column":32}},"280":{"start":{"line":1144,"column":15},"end":{"line":1147,"column":9}},"281":{"start":{"line":1145,"column":12},"end":{"line":1145,"column":33}},"282":{"start":{"line":1146,"column":12},"end":{"line":1146,"column":24}},"283":{"start":{"line":1158,"column":8},"end":{"line":1161,"column":11}},"284":{"start":{"line":1195,"column":16},"end":{"line":1195,"column":60}},"285":{"start":{"line":1251,"column":16},"end":{"line":1251,"column":60}},"286":{"start":{"line":1268,"column":0},"end":{"line":1268,"column":29}}},"branchMap":{"1":{"line":95,"type":"if","locations":[{"start":{"line":95,"column":8},"end":{"line":95,"column":8}},{"start":{"line":95,"column":8},"end":{"line":95,"column":8}}]},"2":{"line":95,"type":"binary-expr","locations":[{"start":{"line":95,"column":12},"end":{"line":95,"column":18}},{"start":{"line":95,"column":22},"end":{"line":95,"column":39}}]},"3":{"line":96,"type":"binary-expr","locations":[{"start":{"line":96,"column":28},"end":{"line":96,"column":40}},{"start":{"line":96,"column":44},"end":{"line":96,"column":46}}]},"4":{"line":130,"type":"if","locations":[{"start":{"line":130,"column":8},"end":{"line":130,"column":8}},{"start":{"line":130,"column":8},"end":{"line":130,"column":8}}]},"5":{"line":182,"type":"if","locations":[{"start":{"line":182,"column":12},"end":{"line":182,"column":12}},{"start":{"line":182,"column":12},"end":{"line":182,"column":12}}]},"6":{"line":184,"type":"if","locations":[{"start":{"line":184,"column":19},"end":{"line":184,"column":19}},{"start":{"line":184,"column":19},"end":{"line":184,"column":19}}]},"7":{"line":188,"type":"if","locations":[{"start":{"line":188,"column":12},"end":{"line":188,"column":12}},{"start":{"line":188,"column":12},"end":{"line":188,"column":12}}]},"8":{"line":189,"type":"binary-expr","locations":[{"start":{"line":189,"column":16},"end":{"line":189,"column":26}},{"start":{"line":189,"column":31},"end":{"line":189,"column":46}}]},"9":{"line":193,"type":"if","locations":[{"start":{"line":193,"column":12},"end":{"line":193,"column":12}},{"start":{"line":193,"column":12},"end":{"line":193,"column":12}}]},"10":{"line":194,"type":"binary-expr","locations":[{"start":{"line":194,"column":16},"end":{"line":194,"column":26}},{"start":{"line":194,"column":31},"end":{"line":194,"column":46}}]},"11":{"line":198,"type":"if","locations":[{"start":{"line":198,"column":12},"end":{"line":198,"column":12}},{"start":{"line":198,"column":12},"end":{"line":198,"column":12}}]},"12":{"line":203,"type":"if","locations":[{"start":{"line":203,"column":16},"end":{"line":203,"column":16}},{"start":{"line":203,"column":16},"end":{"line":203,"column":16}}]},"13":{"line":203,"type":"binary-expr","locations":[{"start":{"line":203,"column":20},"end":{"line":203,"column":24}},{"start":{"line":203,"column":28},"end":{"line":203,"column":40}}]},"14":{"line":214,"type":"if","locations":[{"start":{"line":214,"column":20},"end":{"line":214,"column":20}},{"start":{"line":214,"column":20},"end":{"line":214,"column":20}}]},"15":{"line":221,"type":"if","locations":[{"start":{"line":221,"column":12},"end":{"line":221,"column":12}},{"start":{"line":221,"column":12},"end":{"line":221,"column":12}}]},"16":{"line":248,"type":"if","locations":[{"start":{"line":248,"column":8},"end":{"line":248,"column":8}},{"start":{"line":248,"column":8},"end":{"line":248,"column":8}}]},"17":{"line":258,"type":"if","locations":[{"start":{"line":258,"column":8},"end":{"line":258,"column":8}},{"start":{"line":258,"column":8},"end":{"line":258,"column":8}}]},"18":{"line":282,"type":"binary-expr","locations":[{"start":{"line":282,"column":8},"end":{"line":282,"column":15}},{"start":{"line":282,"column":20},"end":{"line":282,"column":32}}]},"19":{"line":285,"type":"binary-expr","locations":[{"start":{"line":285,"column":27},"end":{"line":285,"column":36}},{"start":{"line":285,"column":40},"end":{"line":285,"column":85}}]},"20":{"line":287,"type":"if","locations":[{"start":{"line":287,"column":8},"end":{"line":287,"column":8}},{"start":{"line":287,"column":8},"end":{"line":287,"column":8}}]},"21":{"line":295,"type":"if","locations":[{"start":{"line":295,"column":8},"end":{"line":295,"column":8}},{"start":{"line":295,"column":8},"end":{"line":295,"column":8}}]},"22":{"line":300,"type":"if","locations":[{"start":{"line":300,"column":8},"end":{"line":300,"column":8}},{"start":{"line":300,"column":8},"end":{"line":300,"column":8}}]},"23":{"line":311,"type":"if","locations":[{"start":{"line":311,"column":8},"end":{"line":311,"column":8}},{"start":{"line":311,"column":8},"end":{"line":311,"column":8}}]},"24":{"line":333,"type":"binary-expr","locations":[{"start":{"line":333,"column":8},"end":{"line":333,"column":15}},{"start":{"line":333,"column":20},"end":{"line":333,"column":32}}]},"25":{"line":340,"type":"if","locations":[{"start":{"line":340,"column":8},"end":{"line":340,"column":8}},{"start":{"line":340,"column":8},"end":{"line":340,"column":8}}]},"26":{"line":352,"type":"switch","locations":[{"start":{"line":353,"column":8},"end":{"line":355,"column":18}},{"start":{"line":357,"column":8},"end":{"line":357,"column":20}},{"start":{"line":358,"column":8},"end":{"line":393,"column":18}}]},"27":{"line":364,"type":"if","locations":[{"start":{"line":364,"column":12},"end":{"line":364,"column":12}},{"start":{"line":364,"column":12},"end":{"line":364,"column":12}}]},"28":{"line":371,"type":"if","locations":[{"start":{"line":371,"column":12},"end":{"line":371,"column":12}},{"start":{"line":371,"column":12},"end":{"line":371,"column":12}}]},"29":{"line":378,"type":"if","locations":[{"start":{"line":378,"column":16},"end":{"line":378,"column":16}},{"start":{"line":378,"column":16},"end":{"line":378,"column":16}}]},"30":{"line":382,"type":"if","locations":[{"start":{"line":382,"column":20},"end":{"line":382,"column":20}},{"start":{"line":382,"column":20},"end":{"line":382,"column":20}}]},"31":{"line":385,"type":"if","locations":[{"start":{"line":385,"column":24},"end":{"line":385,"column":24}},{"start":{"line":385,"column":24},"end":{"line":385,"column":24}}]},"32":{"line":396,"type":"if","locations":[{"start":{"line":396,"column":8},"end":{"line":396,"column":8}},{"start":{"line":396,"column":8},"end":{"line":396,"column":8}}]},"33":{"line":421,"type":"if","locations":[{"start":{"line":421,"column":8},"end":{"line":421,"column":8}},{"start":{"line":421,"column":8},"end":{"line":421,"column":8}}]},"34":{"line":428,"type":"if","locations":[{"start":{"line":428,"column":15},"end":{"line":428,"column":15}},{"start":{"line":428,"column":15},"end":{"line":428,"column":15}}]},"35":{"line":459,"type":"if","locations":[{"start":{"line":459,"column":8},"end":{"line":459,"column":8}},{"start":{"line":459,"column":8},"end":{"line":459,"column":8}}]},"36":{"line":463,"type":"if","locations":[{"start":{"line":463,"column":8},"end":{"line":463,"column":8}},{"start":{"line":463,"column":8},"end":{"line":463,"column":8}}]},"37":{"line":463,"type":"binary-expr","locations":[{"start":{"line":463,"column":12},"end":{"line":463,"column":19}},{"start":{"line":463,"column":23},"end":{"line":463,"column":42}}]},"38":{"line":484,"type":"cond-expr","locations":[{"start":{"line":484,"column":42},"end":{"line":484,"column":48}},{"start":{"line":484,"column":51},"end":{"line":484,"column":57}}]},"39":{"line":496,"type":"binary-expr","locations":[{"start":{"line":496,"column":8},"end":{"line":496,"column":24}},{"start":{"line":496,"column":29},"end":{"line":496,"column":50}}]},"40":{"line":598,"type":"binary-expr","locations":[{"start":{"line":598,"column":8},"end":{"line":598,"column":26}},{"start":{"line":598,"column":31},"end":{"line":598,"column":77}}]},"41":{"line":599,"type":"binary-expr","locations":[{"start":{"line":599,"column":8},"end":{"line":599,"column":24}},{"start":{"line":599,"column":31},"end":{"line":599,"column":76}}]},"42":{"line":600,"type":"binary-expr","locations":[{"start":{"line":600,"column":8},"end":{"line":600,"column":25}},{"start":{"line":600,"column":31},"end":{"line":600,"column":76}}]},"43":{"line":601,"type":"binary-expr","locations":[{"start":{"line":601,"column":8},"end":{"line":601,"column":23}},{"start":{"line":601,"column":31},"end":{"line":601,"column":77}}]},"44":{"line":607,"type":"binary-expr","locations":[{"start":{"line":607,"column":8},"end":{"line":607,"column":23}},{"start":{"line":607,"column":28},"end":{"line":607,"column":68}}]},"45":{"line":619,"type":"if","locations":[{"start":{"line":619,"column":12},"end":{"line":619,"column":12}},{"start":{"line":619,"column":12},"end":{"line":619,"column":12}}]},"46":{"line":635,"type":"if","locations":[{"start":{"line":635,"column":12},"end":{"line":635,"column":12}},{"start":{"line":635,"column":12},"end":{"line":635,"column":12}}]},"47":{"line":637,"type":"if","locations":[{"start":{"line":637,"column":19},"end":{"line":637,"column":19}},{"start":{"line":637,"column":19},"end":{"line":637,"column":19}}]},"48":{"line":639,"type":"if","locations":[{"start":{"line":639,"column":19},"end":{"line":639,"column":19}},{"start":{"line":639,"column":19},"end":{"line":639,"column":19}}]},"49":{"line":659,"type":"binary-expr","locations":[{"start":{"line":659,"column":8},"end":{"line":659,"column":16}},{"start":{"line":659,"column":21},"end":{"line":659,"column":54}}]},"50":{"line":682,"type":"if","locations":[{"start":{"line":682,"column":8},"end":{"line":682,"column":8}},{"start":{"line":682,"column":8},"end":{"line":682,"column":8}}]},"51":{"line":682,"type":"binary-expr","locations":[{"start":{"line":682,"column":12},"end":{"line":682,"column":40}},{"start":{"line":683,"column":19},"end":{"line":683,"column":43}},{"start":{"line":684,"column":19},"end":{"line":684,"column":45}},{"start":{"line":685,"column":19},"end":{"line":685,"column":41}}]},"52":{"line":713,"type":"binary-expr","locations":[{"start":{"line":713,"column":8},"end":{"line":713,"column":16}},{"start":{"line":713,"column":21},"end":{"line":713,"column":54}}]},"53":{"line":721,"type":"if","locations":[{"start":{"line":721,"column":8},"end":{"line":721,"column":8}},{"start":{"line":721,"column":8},"end":{"line":721,"column":8}}]},"54":{"line":721,"type":"binary-expr","locations":[{"start":{"line":721,"column":12},"end":{"line":721,"column":32}},{"start":{"line":721,"column":36},"end":{"line":721,"column":64}}]},"55":{"line":726,"type":"binary-expr","locations":[{"start":{"line":726,"column":26},"end":{"line":726,"column":37}},{"start":{"line":726,"column":41},"end":{"line":726,"column":69}},{"start":{"line":727,"column":16},"end":{"line":727,"column":45}}]},"56":{"line":733,"type":"if","locations":[{"start":{"line":733,"column":8},"end":{"line":733,"column":8}},{"start":{"line":733,"column":8},"end":{"line":733,"column":8}}]},"57":{"line":733,"type":"binary-expr","locations":[{"start":{"line":733,"column":12},"end":{"line":733,"column":38}},{"start":{"line":733,"column":42},"end":{"line":733,"column":63}}]},"58":{"line":755,"type":"if","locations":[{"start":{"line":755,"column":8},"end":{"line":755,"column":8}},{"start":{"line":755,"column":8},"end":{"line":755,"column":8}}]},"59":{"line":763,"type":"if","locations":[{"start":{"line":763,"column":8},"end":{"line":763,"column":8}},{"start":{"line":763,"column":8},"end":{"line":763,"column":8}}]},"60":{"line":767,"type":"binary-expr","locations":[{"start":{"line":767,"column":31},"end":{"line":767,"column":39}},{"start":{"line":767,"column":43},"end":{"line":767,"column":87}}]},"61":{"line":769,"type":"if","locations":[{"start":{"line":769,"column":12},"end":{"line":769,"column":12}},{"start":{"line":769,"column":12},"end":{"line":769,"column":12}}]},"62":{"line":772,"type":"binary-expr","locations":[{"start":{"line":772,"column":16},"end":{"line":772,"column":24}},{"start":{"line":772,"column":29},"end":{"line":772,"column":63}}]},"63":{"line":797,"type":"if","locations":[{"start":{"line":797,"column":8},"end":{"line":797,"column":8}},{"start":{"line":797,"column":8},"end":{"line":797,"column":8}}]},"64":{"line":816,"type":"if","locations":[{"start":{"line":816,"column":8},"end":{"line":816,"column":8}},{"start":{"line":816,"column":8},"end":{"line":816,"column":8}}]},"65":{"line":820,"type":"if","locations":[{"start":{"line":820,"column":8},"end":{"line":820,"column":8}},{"start":{"line":820,"column":8},"end":{"line":820,"column":8}}]},"66":{"line":823,"type":"if","locations":[{"start":{"line":823,"column":12},"end":{"line":823,"column":12}},{"start":{"line":823,"column":12},"end":{"line":823,"column":12}}]},"67":{"line":848,"type":"if","locations":[{"start":{"line":848,"column":8},"end":{"line":848,"column":8}},{"start":{"line":848,"column":8},"end":{"line":848,"column":8}}]},"68":{"line":864,"type":"if","locations":[{"start":{"line":864,"column":8},"end":{"line":864,"column":8}},{"start":{"line":864,"column":8},"end":{"line":864,"column":8}}]},"69":{"line":879,"type":"if","locations":[{"start":{"line":879,"column":8},"end":{"line":879,"column":8}},{"start":{"line":879,"column":8},"end":{"line":879,"column":8}}]},"70":{"line":894,"type":"if","locations":[{"start":{"line":894,"column":8},"end":{"line":894,"column":8}},{"start":{"line":894,"column":8},"end":{"line":894,"column":8}}]},"71":{"line":913,"type":"if","locations":[{"start":{"line":913,"column":8},"end":{"line":913,"column":8}},{"start":{"line":913,"column":8},"end":{"line":913,"column":8}}]},"72":{"line":917,"type":"if","locations":[{"start":{"line":917,"column":12},"end":{"line":917,"column":12}},{"start":{"line":917,"column":12},"end":{"line":917,"column":12}}]},"73":{"line":921,"type":"if","locations":[{"start":{"line":921,"column":20},"end":{"line":921,"column":20}},{"start":{"line":921,"column":20},"end":{"line":921,"column":20}}]},"74":{"line":933,"type":"if","locations":[{"start":{"line":933,"column":8},"end":{"line":933,"column":8}},{"start":{"line":933,"column":8},"end":{"line":933,"column":8}}]},"75":{"line":947,"type":"if","locations":[{"start":{"line":947,"column":8},"end":{"line":947,"column":8}},{"start":{"line":947,"column":8},"end":{"line":947,"column":8}}]},"76":{"line":965,"type":"if","locations":[{"start":{"line":965,"column":8},"end":{"line":965,"column":8}},{"start":{"line":965,"column":8},"end":{"line":965,"column":8}}]},"77":{"line":971,"type":"if","locations":[{"start":{"line":971,"column":8},"end":{"line":971,"column":8}},{"start":{"line":971,"column":8},"end":{"line":971,"column":8}}]},"78":{"line":987,"type":"if","locations":[{"start":{"line":987,"column":8},"end":{"line":987,"column":8}},{"start":{"line":987,"column":8},"end":{"line":987,"column":8}}]},"79":{"line":1008,"type":"if","locations":[{"start":{"line":1008,"column":8},"end":{"line":1008,"column":8}},{"start":{"line":1008,"column":8},"end":{"line":1008,"column":8}}]},"80":{"line":1023,"type":"binary-expr","locations":[{"start":{"line":1023,"column":25},"end":{"line":1023,"column":42}},{"start":{"line":1023,"column":46},"end":{"line":1023,"column":61}}]},"81":{"line":1027,"type":"if","locations":[{"start":{"line":1027,"column":8},"end":{"line":1027,"column":8}},{"start":{"line":1027,"column":8},"end":{"line":1027,"column":8}}]},"82":{"line":1027,"type":"binary-expr","locations":[{"start":{"line":1027,"column":12},"end":{"line":1027,"column":22}},{"start":{"line":1027,"column":26},"end":{"line":1027,"column":42}}]},"83":{"line":1031,"type":"if","locations":[{"start":{"line":1031,"column":8},"end":{"line":1031,"column":8}},{"start":{"line":1031,"column":8},"end":{"line":1031,"column":8}}]},"84":{"line":1035,"type":"if","locations":[{"start":{"line":1035,"column":8},"end":{"line":1035,"column":8}},{"start":{"line":1035,"column":8},"end":{"line":1035,"column":8}}]},"85":{"line":1041,"type":"if","locations":[{"start":{"line":1041,"column":8},"end":{"line":1041,"column":8}},{"start":{"line":1041,"column":8},"end":{"line":1041,"column":8}}]},"86":{"line":1065,"type":"if","locations":[{"start":{"line":1065,"column":8},"end":{"line":1065,"column":8}},{"start":{"line":1065,"column":8},"end":{"line":1065,"column":8}}]},"87":{"line":1065,"type":"binary-expr","locations":[{"start":{"line":1065,"column":12},"end":{"line":1065,"column":25}},{"start":{"line":1065,"column":29},"end":{"line":1065,"column":46}}]},"88":{"line":1086,"type":"if","locations":[{"start":{"line":1086,"column":8},"end":{"line":1086,"column":8}},{"start":{"line":1086,"column":8},"end":{"line":1086,"column":8}}]},"89":{"line":1121,"type":"if","locations":[{"start":{"line":1121,"column":12},"end":{"line":1121,"column":12}},{"start":{"line":1121,"column":12},"end":{"line":1121,"column":12}}]},"90":{"line":1139,"type":"if","locations":[{"start":{"line":1139,"column":8},"end":{"line":1139,"column":8}},{"start":{"line":1139,"column":8},"end":{"line":1139,"column":8}}]},"91":{"line":1144,"type":"if","locations":[{"start":{"line":1144,"column":15},"end":{"line":1144,"column":15}},{"start":{"line":1144,"column":15},"end":{"line":1144,"column":15}}]}},"code":["(function
() { YUI.add('gallery-sm-menu', function (Y, NAME) {","","/*jshint expr:true,
onevar:false */","","/**","Provides the `Y.Menu` widget.","","@module
gallery-sm-menu","@main gallery-sm-menu","**/","","/**","Menu
widget.","","@class Menu","@constructor","@param {Object} [config] Config
options.","@param {HTMLElement|Node|String} [config.sourceNode] Node instance,
HTML"," element, or selector string for a node (usually a `<ul>` or `<ol>`)
whose"," structure should be parsed and used to generate this menu's
contents. This"," node will be removed from the DOM after being
parsed.","@extends Menu.Base","@uses View","**/","","var doc =
Y.config.doc,"," getClassName =
Y.ClassNameManager.getClassName;","","/**","Fired when any clickable menu item
is clicked.","","You can subscribe to clicks on a specific menu item by
subscribing to","\"itemClick#id\", where \"id\" is the item id of the item you
want to subscribe to.","","@event itemClick","@param {Menu.Item} item Menu item
that was clicked.","@param {EventFacade} originEvent Original click
event.","@preventable _defItemClickFn","**/","var EVT_ITEM_CLICK =
'itemClick';","","var Menu = Y.Base.create('menu', Y.Menu.Base, [Y.View],
{",""," /**"," CSS class names used by this menu.",""," @property
{Object} classNames"," **/"," classNames: {"," canHaveChildren:
getClassName('menu-can-have-children'),"," children :
getClassName('menu-children'),"," disabled :
getClassName('menu-disabled'),"," hasChildren :
getClassName('menu-has-children'),"," heading :
getClassName('menu-heading'),"," hidden :
getClassName('menu-hidden'),"," horizontal :
getClassName('menu-horizontal'),"," item :
getClassName('menu-item'),"," label :
getClassName('menu-label'),"," menu : getClassName('menu'),","
noTouch : getClassName('menu-notouch'),"," open
: getClassName('menu-open'),"," selected :
getClassName('menu-selected'),"," separator :
getClassName('menu-separator'),"," touch :
getClassName('menu-touch'),"," vertical :
getClassName('menu-vertical')"," },",""," /**"," Whether or not this
menu has been rendered.",""," @property {Boolean} rendered"," @default
false"," **/"," rendered: false,",""," /**"," Selectors to use when
parsing a menu structure from a DOM structure via"," `parseHTML()`.","","
@property {Object} sourceSelectors"," **/"," sourceSelectors: {","
item : '> li',"," label : '> a, > span',"," subtree: '> ul, >
ol'"," },",""," // -- Lifecycle Methods
----------------------------------------------------",""," initializer:
function (config) {"," this._openMenus = {};"," this._published =
{};"," this._timeouts = {};",""," if (config &&
config.sourceNode) {"," config.nodes = (config.nodes ||
[]).concat("," this.parseHTML(config.sourceNode));","","
Y.one(config.sourceNode).remove(true);"," }","","
this._attachMenuEvents();"," },",""," destructor: function () {","
this._detachMenuEvents();",""," delete this._openMenus;"," delete
this._published;",""," Y.Object.each(this._timeouts, function (timeout)
{"," clearTimeout(timeout);"," }, this);",""," delete
this._timeouts;"," },",""," // -- Public Methods
-------------------------------------------------------",""," /**","
Returns the HTML node (as a `Y.Node` instance) associated with the specified","
menu item, if any.",""," @method getHTMLNode"," @param {Menu.Item}
item Menu item."," @return {Node} `Y.Node` instance associated with the
given tree node, or"," `undefined` if one was not found."," **/","
getHTMLNode: function (item) {"," if (!item._htmlNode) {","
item._htmlNode = this.get('container').one('#' + item.id);"," }","","
return item._htmlNode;"," },",""," /**"," Hides this menu.","","
@method hide"," @chainable"," **/"," hide: function () {","
this.set('visible', false);"," return this;"," },",""," /**","
Parses the specified HTML _sourceNode_ as a menu structure and returns an","
array of menu item objects that can be used to generate a menu with that","
structure.",""," By default, _sourceNode_ is expected to contain one `<li>`
element per"," menu item, and submenus are expected to be represented by
`<ul>` or `<ol>`"," elements.",""," The selector queries used to parse
the menu structure are contained in the"," `sourceSelectors` property, and
may be customized. Class names specified in"," the `classNames` property are
used to determine whether a menu item should"," be disabled, hidden, or
treated as a heading or separator.",""," @method parseHTML"," @param
{HTMLElement|Node|String} sourceNode Node instance, HTML element, or","
selector string for the node (usually a `<ul> or `<ol>` element) to","
parse."," @return {Object[]} Array of menu item objects."," **/","
parseHTML: function (sourceNode) {"," sourceNode =
Y.one(sourceNode);",""," var classNames = this.classNames,","
items = [],"," sel = this.sourceSelectors,","
self = this;",""," sourceNode.all(sel.item).each(function
(itemNode) {"," var item = {},"," itemEl
= itemNode._node,"," labelNode = itemNode.one(sel.label),","
subTreeNode = itemNode.one(sel.subtree);",""," if
(itemNode.hasClass(classNames.heading)) {"," item.type =
'heading';"," } else if (itemNode.hasClass(classNames.separator))
{"," item.type = 'separator';"," }","","
if (itemNode.hasClass(classNames.disabled)) {"," item.state ||
(item.state = {});"," item.state.disabled = true;","
}",""," if (itemNode.hasClass(classNames.hidden)) {","
item.state || (item.state = {});"," item.state.hidden =
true;"," }",""," if (labelNode) {"," var
href = labelNode.getAttribute('href');",""," item.label =
labelNode.getHTML();",""," if (href && href !== '#') {","
item.url = href;"," }"," } else {","
// The selector didn't find a label node, so look for the first","
// text child of the item element."," var
childEl;",""," for (var i = 0, len = itemEl.childNodes.length; i
< len; i++) {"," childEl = itemEl.childNodes[i];","","
if (childEl.nodeType === doc.TEXT_NODE) {","
item.label = Y.Escape.html(childEl.nodeValue);","
break;"," }"," }"," }","","
if (subTreeNode) {"," item.children =
self.parseHTML(subTreeNode);"," }","","
items.push(item);"," });",""," return items;"," },","","
/**"," Renders this menu into its container.",""," If the container
hasn't already been added to the current document, it will"," be appended to
the `<body>` element.",""," @method render"," @chainable"," **/","
render: function () {"," var classNames = this.classNames,","
container = this.get('container');","","
container.addClass(classNames.menu);","
container.addClass(classNames[this.get('orientation')]);",""," // Detect
touchscreen devices."," if ('ontouchstart' in Y.config.win) {","
container.addClass(classNames.touch);"," } else {","
container.addClass(classNames.noTouch);"," }","","
this._childrenNode = this.renderChildren(this.rootNode, {","
container: container"," });",""," if (!container.inDoc()) {","
Y.one('body').append(container);"," }",""," this.rendered
= true;",""," return this;"," },",""," /**"," Renders the
children of the specified menu item.",""," If a container is specified, it
will be assumed to be an existing rendered"," menu item, and the children
will be rendered (or re-rendered) inside it.",""," @method renderChildren","
@param {Menu.Item} menuItem Menu item whose children should be rendered.","
@param {Object} [options] Options."," @param {Node}
[options.container] `Y.Node` instance of a container into"," which
the children should be rendered. If the container already","
contains rendered children, they will be re-rendered in place."," @return
{Node} `Y.Node` instance containing the rendered children."," **/","
renderChildren: function (treeNode, options) {"," options || (options =
{});",""," var container = options.container,","
childrenNode = container && container.one('.' +
this.classNames.children);",""," if (!childrenNode) {","
childrenNode = Y.Node.create(Menu.Templates.children({","
classNames: this.classNames,"," menu : this,","
item : treeNode"," }));"," }",""," if
(treeNode.isRoot()) {"," childrenNode.set('tabIndex', 0); // Add the
root list to the tab order."," childrenNode.set('role', 'menu');","
}",""," if (treeNode.hasChildren()) {","
childrenNode.set('aria-expanded', treeNode.isOpen());"," }","","
for (var i = 0, len = treeNode.children.length; i < len; i++) {","
this.renderNode(treeNode.children[i], {"," container :
childrenNode,"," renderChildren: true"," });","
}",""," if (container) {","
container.append(childrenNode);"," }",""," return
childrenNode;"," },",""," /**"," Renders the specified menu item and
its children (if any).",""," If a container is specified, the rendered node
will be appended to it.",""," @method renderNode"," @param {Menu.Item}
menuItem Tree node to render."," @param {Object} [options] Options.","
@param {Node} [options.container] `Y.Node` instance of a container to","
which the rendered tree node should be appended."," @param
{Boolean} [options.renderChildren=false] Whether or not to render","
this node's children."," @return {Node} `Y.Node` instance of the rendered
menu item."," **/"," renderNode: function (item, options) {","
options || (options = {});",""," var classNames = this.classNames,","
htmlNode = item._htmlNode,"," isHidden =
item.isHidden();",""," // Create an HTML node for this menu item if one
doesn't already exist."," if (!htmlNode) {"," htmlNode =
item._htmlNode = Y.Node.create(Menu.Templates.item({","
classNames: classNames,"," item : item,","
menu : this"," }));"," }",""," // Mark the HTML
node as hidden if the item is hidden."," htmlNode.set('aria-hidden',
isHidden);"," htmlNode.toggleClass(classNames.hidden, isHidden);","","
switch (item.type) {"," case 'separator':","
htmlNode.set('role', 'separator');"," break;",""," case
'item':"," case 'heading':"," var labelNode =
htmlNode.one('.' + classNames.label),"," labelId =
labelNode.get('id');",""," labelNode.setHTML(item.label);","","
if (!labelId) {"," labelId = Y.guid();","
labelNode.set('id', labelId);"," }","","
htmlNode.set('aria-labelledby', labelId);",""," if (item.type ===
'heading') {"," htmlNode.set('role', 'heading');"," }
else {"," htmlNode.set('role', 'menuitem');","","
htmlNode.toggleClass(classNames.disabled, item.isDisabled());","","
if (item.canHaveChildren) {","
htmlNode.addClass(classNames.canHaveChildren);","
htmlNode.toggleClass(classNames.open, item.isOpen());","","
if (item.hasChildren()) {","
htmlNode.addClass(classNames.hasChildren);",""," if
(options.renderChildren) {","
this.renderChildren(item, {"," container:
htmlNode"," });"," }","
}"," }"," }"," break;","
}",""," if (options.container) {","
options.container.append(htmlNode);"," }",""," return
htmlNode;"," },",""," /**"," Repositions this menu so that it is
anchored to a specified node, region, or"," set of pixel coordinates.","","
The menu will be displayed at the most advantageous position relative to
the"," anchor point to ensure that as much of the menu as possible is
visible"," within the viewport.",""," @method reposition"," @param
{Node|Number[]|Object} anchorPoint Anchor point at which this menu","
should be positioned. The point may be specified as a `Y.Node`","
reference, a region object, or an array of X and Y pixel coordinates.","
@chainable"," **/"," reposition: function (anchorPoint) {"," var
container = this.get('container'),"," anchorRegion,
menuRegion;",""," if (Y.Lang.isArray(anchorPoint)) {","
anchorRegion = {"," bottom: anchorPoint[1],","
left : anchorPoint[0],"," right : anchorPoint[0],","
top : anchorPoint[1]"," };"," } else if
(anchorPoint._node) {"," anchorRegion =
anchorPoint.get('region');"," } else {"," anchorRegion =
anchorPoint;"," }",""," menuRegion =
this._getSortedAnchorRegions("," this.get('alignments'),","
container.get('region'),"," anchorRegion","
)[0].region;",""," container.setXY([menuRegion.left,
menuRegion.top]);",""," return this;"," },",""," /**"," Shows
this menu.",""," The menu will be rendered if it hasn't been rendered
already.",""," @method show"," @param {Object} [options] Options.","
@param {Node|Number[]|Object} [options.anchorPoint] Anchor point at","
which this menu should be positioned when shown. The point may be","
specified as a `Y.Node` reference, a region object, or an array of X","
and Y pixel coordinates."," @chainable"," **/"," show: function
(options) {"," if (!this.rendered) {"," this.render();","
}",""," if (options && options.anchorPoint) {","
this.reposition(options.anchorPoint);"," }","","
this.set('visible', true);"," return this;"," },",""," /**","
Toggles the visibility of this menu, showing it if it's currently hidden or","
hiding it if it's currently visible.",""," @method toggleVisible","
@param {Object} [options] Options."," @param {Node|Number[]|Object}
[options.anchorPoint] Anchor point at"," which this menu should be
positioned when shown. The point may be"," specified as a `Y.Node`
reference, a region object, or an array of X"," and Y pixel
coordinates."," @chainable"," **/"," toggleVisible: function (options)
{"," return this[this.get('visible') ? 'hide' : 'show'](options);","
},",""," // -- Protected Methods
----------------------------------------------------",""," /**","
Attaches menu events.",""," @method _attachMenuEvents"," @protected","
**/"," _attachMenuEvents: function () {"," this._menuEvents ||
(this._menuEvents = []);",""," var classNames = this.classNames,","
container = this.get('container');","","
this._menuEvents.push("," this.after({"," add
: this._afterAdd,"," clear :
this._afterClear,"," close : this._afterClose,","
disable : this._afterDisable,"," enable
: this._afterEnable,"," hide :
this._afterHide,"," open : this._afterOpen,","
orientationChange: this._afterOrientationChange,","
remove : this._afterRemove,"," show :
this._afterShow,"," visibleChange :
this._afterVisibleChange"," }),","","
container.on('hover', this._onMenuMouseEnter, this._onMenuMouseLeave,
this),",""," container.delegate('click', this._onItemClick, '.' +
classNames.item + '>.' + classNames.label, this),","
container.delegate('hover', this._onItemMouseEnter, this._onItemMouseLeave, '.'
+ classNames.canHaveChildren, this),","","
Y.one('doc').after('mousedown', this._afterDocMouseDown, this)"," );","
},",""," /**"," Detaches menu events.",""," @method
_detachMenuEvents"," @protected"," **/"," _detachMenuEvents: function
() {"," (new Y.EventHandle(this._menuEvents)).detach();"," },","","
/**"," Returns an efficient test function that can be passed to
`Y.Node#ancestor()`"," to test whether a node is this menu's
container.",""," This is broken out to make overriding easier in
subclasses.",""," @method _getAncestorTestFn"," @return {Function} Test
function."," @protected"," **/"," _getAncestorTestFn: function () {","
var container = this.get('container');",""," return function
(node) {"," return node === container;"," };"," },","","
/**"," Given an anchor point and the regions currently occupied by a child
node"," (the node being anchored) and a parent node (the node being anchored
to),"," returns a region object representing the coordinates the anchored
node will"," occupy when anchored to the given point on the parent.","","
An anchor point is a string like \"tl-bl\", which means \"anchor the top
left"," point of _nodeRegion_ to the bottom left point of
_parentRegion_\".",""," Any combination of top/bottom/left/right anchor
points may be used as long"," as they follow this format. Here are a few
examples:",""," * `'bl-br'`: Anchor the bottom left of _nodeRegion_ to the
bottom right of"," _parentRegion_."," * `'br-bl'`: Anchor the
bottom right of _nodeRegion_ to the bottom left of"," _parentRegion_.","
* `'tl-tr'`: Anchor the top left of _nodeRegion_ to the top right of","
_parentRegion_."," * `'tr-tl'`: Anchor the top right of _nodeRegion_
to the top left of"," _parentRegion_.",""," @method
_getAnchorRegion"," @param {String} anchor Anchor point. See above for
details."," @param {Object} nodeRegion Region object for the node to be
anchored (that"," is, the node that will be repositioned)."," @param
{Object} parentRegion Region object for the node that will be","
anchored to (that is, the node that will not move)."," @return {Object}
Region that will be occupied by the anchored node."," @protected","
**/"," _getAnchorRegion: function (anchor, nodeRegion, parentRegion) {","
var region = {};",""," anchor.replace(/^([bt])([lr])-([bt])([lr])/i,
function (match, p1, p2, p3, p4) {"," var lookup = {","
b: 'bottom',"," l: 'left',"," r:
'right',"," t: 'top'"," };","","
region[lookup[p1]] = parentRegion[lookup[p3]];"," region[lookup[p2]]
= parentRegion[lookup[p4]];"," });",""," 'bottom' in region ||
(region.bottom = region.top + nodeRegion.height);"," 'left' in region
|| (region.left = region.right - nodeRegion.width);"," 'right' in region
|| (region.right = region.left + nodeRegion.width);"," 'top' in region
|| (region.top = region.bottom - nodeRegion.height);",""," return
region;"," },",""," _getSortedAnchorRegions: function (points,
nodeRegion, parentRegion, containerRegion) {"," containerRegion ||
(containerRegion = Y.DOM.viewportRegion());",""," // Run through each
possible anchor point and test whether it would"," // allow the submenu
to be displayed fully within the viewport. Stop at"," // the first
anchor point that works."," var anchors = [],"," i, len,
point, region;",""," for (i = 0, len = points.length; i < len; i++) {","
point = points[i];",""," // Allow arrays of strings or
arrays of objects like {point: '...'}."," if (point.point) {","
point = point.point;"," }",""," region =
this._getAnchorRegion(point, nodeRegion, parentRegion);","","
anchors.push({"," point : point,"," region:
region,"," score : this._inRegion(region, containerRegion)","
});"," }",""," // Sort the anchors in descending order by
score (higher score is"," // better)."," anchors.sort(function
(a, b) {"," if (a.score === b.score) {"," return
0;"," } else if (a.score === true) {"," return -1;","
} else if (b.score === true) {"," return 1;","
} else {"," return b.score - a.score;"," }","
});",""," // Return the sorted anchors."," return anchors;","
},",""," /**"," Hides the specified menu container by moving its
htmlNode offscreen.",""," @method _hideMenu"," @param {Menu.Item} item
Menu item."," @param {Node} [htmlNode] HTML node for the menu item.","
@protected"," **/"," _hideMenu: function (item, htmlNode) {","
htmlNode || (htmlNode = this.getHTMLNode(item));",""," var childrenNode
= htmlNode.one('.' + this.classNames.children);","","
childrenNode.setXY([-10000, -10000]);"," delete item.data.menuAnchor;","
},",""," /**"," Returns `true` if the given _inner_ region is
contained entirely within the"," given _outer_ region. If it's not a perfect
fit, returns a numerical score"," indicating how much of the _inner_ region
fits within the _outer_ region."," A higher score indicates a better
fit.",""," @method _inRegion"," @param {Object} inner Inner region.","
@param {Object} outer Outer region."," @return {Boolean|Number} `true` if
the _inner_ region fits entirely within"," the _outer_ region or, if
not, a numerical score indicating how much of"," the inner region
fits."," @protected"," **/"," _inRegion: function (inner, outer) {","
if (inner.bottom <= outer.bottom"," && inner.left >=
outer.left"," && inner.right <= outer.right"," &&
inner.top >= outer.top) {",""," // Perfect fit!"," return
true;"," }",""," // Not a perfect fit, so return the overall
score of this region so we"," // can compare it with the scores of other
regions to determine the best"," // possible fit."," return (","
Math.min(outer.bottom - inner.bottom, 0) +","
Math.min(inner.left - outer.left, 0) +"," Math.min(outer.right -
inner.right, 0) +"," Math.min(inner.top - outer.top, 0)","
);"," },",""," /**"," Intelligently positions the _htmlNode_ of the
given submenu _item_ relative"," to its parent so that as much as possible
of the submenu will be visible"," within the viewport.",""," @method
_positionMenu"," @param {Menu.Item} item Menu item to position."," @param
{Node} [htmlNode] HTML node for the menu item."," @protected"," **/","
_positionMenu: function (item, htmlNode) {"," htmlNode || (htmlNode =
this.getHTMLNode(item));",""," var childrenNode = htmlNode.one('.' +
this.classNames.children),"," orientation =
this.get('orientation'),"," alignments, anchors;",""," // If
this is a top-level submenu and this menu is horizontally"," // aligned,
use `alignments`."," if (item.parent.isRoot() && orientation ===
'horizontal') {"," alignments = this.get('alignments');"," }
else {"," // If this menu has a parent and the parent has stored
alignment"," // anchors, use those. Otherwise, use
`subMenuAlignments`."," alignments = (item.parent &&
item.parent.data.menuAnchors) ||","
this.get('subMenuAlignments');"," }",""," anchors =
this._getSortedAnchorRegions(alignments,","
childrenNode.get('region'), htmlNode.get('region'));",""," if
(orientation === 'vertical' || !item.parent.isRoot()) {"," //
Remember which anchors we used for this item so that we can"," //
default that anchor for submenus of this item if necessary.","
item.data.menuAnchors = anchors;"," }",""," // Position the
submenu."," var anchorRegion = anchors[0].region;","
childrenNode.setXY([anchorRegion.left, anchorRegion.top]);"," },",""," //
-- Protected Event Handlers ---------------------------------------------","","
/**"," Handles `add` events for this menu.",""," @method _afterAdd","
@param {EventFacade} e"," @protected"," **/"," _afterAdd: function
(e) {"," // Nothing to do if the menu hasn't been rendered yet.","
if (!this.rendered) {"," return;"," }",""," var
parent = e.parent,"," htmlChildrenNode,","
htmlNode;",""," if (parent === this.rootNode) {","
htmlChildrenNode = this._childrenNode;"," } else {","
htmlNode = this.getHTMLNode(parent);"," htmlChildrenNode = htmlNode
&& htmlNode.one('.' + this.classNames.children);",""," if
(!htmlChildrenNode) {"," // Parent node hasn't been rendered
yet, or hasn't yet been"," // rendered with children. Render
it."," htmlNode || (htmlNode = this.renderNode(parent));","","
this.renderChildren(parent, {"," container:
htmlNode"," });",""," return;"," }","
}",""," htmlChildrenNode.insert(this.renderNode(e.node, {","
renderChildren: true"," }), e.index);"," },",""," /**","
Handles `clear` events for this menu.",""," @method _afterClear","
@protected"," **/"," _afterClear: function () {"," this._openMenus
= {};",""," // Nothing to do if the menu hasn't been rendered yet.","
if (!this.rendered) {"," return;"," }",""," delete
this._childrenNode;"," this.rendered = false;","","
this.get('container').empty();"," this.render();"," },","","
/**"," Handles `mousedown` events on the document.",""," @method
_afterDocMouseDown"," @param {EventFacade} e"," @protected"," **/","
_afterDocMouseDown: function (e) {"," if (!this.get('visible')) {","
return;"," }",""," if
(!e.target.ancestor(this._getAncestorTestFn(), true)) {","
this.closeSubMenus();",""," if (this.get('hideOnOutsideClick')) {","
this.hide();"," }"," }"," },","","
/**"," Handles `close` events for this menu.",""," @method _afterClose","
@param {EventFacade} e"," @protected"," **/"," _afterClose:
function (e) {"," var item = e.node,"," htmlNode =
this.getHTMLNode(item);",""," // Ensure that all this item's children
are closed first."," for (var i = 0, len = item.children.length; i <
len; i++) {"," item.children[i].close();"," }","","
item.close();"," delete this._openMenus[item.id];",""," if
(htmlNode) {"," this._hideMenu(item, htmlNode);","
htmlNode.removeClass(this.classNames.open);"," }"," },","","
/**"," Handles `disable` events for this menu.",""," @method
_afterDisable"," @param {EventFacade} e"," @protected"," **/","
_afterDisable: function (e) {"," var htmlNode =
this.getHTMLNode(e.item);",""," if (htmlNode) {","
htmlNode.addClass(this.classNames.disabled);"," }"," },","","
/**"," Handles `enable` events for this menu.",""," @method
_afterEnable"," @param {EventFacade} e"," @protected"," **/","
_afterEnable: function (e) {"," var htmlNode =
this.getHTMLNode(e.item);",""," if (htmlNode) {","
htmlNode.removeClass(this.classNames.disabled);"," }"," },","","
/**"," Handles `hide` events for this menu.",""," @method _afterHide","
@param {EventFacade} e"," @protected"," **/"," _afterHide: function
(e) {"," var htmlNode = this.getHTMLNode(e.item);",""," if
(htmlNode) {"," htmlNode.addClass(this.classNames.hidden);","
htmlNode.set('aria-hidden', true);"," }"," },",""," /**","
Handles `open` events for this menu.",""," @method _afterOpen"," @param
{EventFacade} e"," @protected"," **/"," _afterOpen: function (e) {","
var item = e.node,"," htmlNode =
this.getHTMLNode(item),"," parent = item.parent,","
child;",""," if (parent) {"," // Close all the parent's
children except this one. This is"," // necessary when mouse events
don't fire to indicate that a submenu"," // should be closed, such
as on touch devices."," if (parent.isOpen()) {"," for
(var i = 0, len = parent.children.length; i < len; i++) {","
child = parent.children[i];",""," if (child !== item) {","
child.close();"," }","
}"," } else {"," // Ensure that the parent is open
before we open the submenu."," parent.open();"," }","
}",""," this._openMenus[item.id] = item;",""," if
(htmlNode) {"," this._positionMenu(item, htmlNode);","
htmlNode.addClass(this.classNames.open);"," }"," },",""," /**","
Handles `orientationChange` events for this menu.",""," @method
_afterOrientationChange"," @param {EventFacade} e"," @protected","
**/"," _afterOrientationChange: function (e) {"," if (this.rendered)
{"," this.get('container')","
.removeClass(this.classNames.horizontal)","
.removeClass(this.classNames.vertical)","
.addClass(this.classNames[e.newVal]);"," }"," },",""," /**","
Handles `remove` events for this menu.",""," @method _afterRemove","
@param {EventFacade} e"," @protected"," **/"," _afterRemove: function
(e) {"," delete this._openMenus[e.node.id];",""," if
(!this.rendered) {"," return;"," }",""," var htmlNode
= this.getHTMLNode(e.node);",""," if (htmlNode) {","
htmlNode.remove(true);"," delete e.node._htmlNode;"," }","
},",""," /**"," Handles `show` events for this menu.",""," @method
_afterShow"," @param {EventFacade} e"," @protected"," **/","
_afterShow: function (e) {"," var htmlNode =
this.getHTMLNode(e.item);",""," if (htmlNode) {","
htmlNode.removeClass(this.classNames.hidden);","
htmlNode.set('aria-hidden', false);"," }"," },",""," /**","
Handles `visibleChange` events for this menu.",""," @method
_afterVisibleChange"," @param {EventFacade} e"," @protected"," **/","
_afterVisibleChange: function (e) {"," var container =
this.get('container');",""," container.toggleClass(this.classNames.open,
e.newVal);",""," // Ensure that the container doesn't take up space when
it's not"," // visible. We have to manually remove the style attribute
because it's"," // set when the menu is positioned, and it overrides
CSS."," if (!e.newVal) {","
container.removeAttribute('style');"," }"," },",""," /**","
Handles click events on menu items.",""," @method _onItemClick"," @param
{EventFacade} e"," @protected"," **/"," _onItemClick: function (e)
{"," var item =
this.getNodeById(e.currentTarget.getData('item-id')),"," eventName
= EVT_ITEM_CLICK + '#' + item.id,"," isDisabled = item.isDisabled()
|| item.isHidden();",""," // Avoid navigating to '#' if this item is
disabled or doesn't have a"," // custom URL."," if (isDisabled ||
item.url === '#') {"," e.preventDefault();"," }","","
if (isDisabled) {"," return;"," }",""," if
(!this._published[eventName]) {"," this._published[eventName] =
this.publish(eventName, {"," defaultFn:
this._defSpecificItemClickFn"," });"," }",""," if
(!this._published[EVT_ITEM_CLICK]) {","
this._published[EVT_ITEM_CLICK] = this.publish(EVT_ITEM_CLICK, {","
defaultFn: this._defItemClickFn"," });"," }","","
this.fire(eventName, {"," originEvent: e,"," item :
item"," });"," },",""," /**"," Handles delegated `mouseenter`
events on menu items.",""," @method _onItemMouseEnter"," @param
{EventFacade} e"," @protected"," **/"," _onItemMouseEnter: function
(e) {"," var item = this.getNodeById(e.currentTarget.get('id'));","","
clearTimeout(this._timeouts.item);",""," if (item.isOpen() ||
item.isDisabled()) {"," return;"," }","","
this._timeouts.item = setTimeout(function () {"," item.open();","
}, 200); // TODO: make timeouts configurable"," },",""," /**","
Handles delegated `mouseleave` events on menu items.",""," @method
_onItemMouseLeave"," @param {EventFacade} e"," @protected"," **/","
_onItemMouseLeave: function (e) {"," var item =
this.getNodeById(e.currentTarget.get('id'));","","
clearTimeout(this._timeouts.item);",""," if (!item.isOpen()) {","
return;"," }",""," this._timeouts.item = setTimeout(function
() {"," item.close();"," }, 300);"," },",""," /**","
Handles `mouseenter` events on this menu.",""," @method _onMenuMouseEnter","
@param {EventFacade} e"," @protected"," **/"," _onMenuMouseEnter:
function () {"," clearTimeout(this._timeouts.menu);"," },","","
/**"," Handles `mouseleave` events on this menu.",""," @method
_onMenuMouseLeave"," @param {EventFacade} e"," @protected"," **/","
_onMenuMouseLeave: function () {"," var self = this;","","
clearTimeout(this._timeouts.menu);",""," this._timeouts.menu =
setTimeout(function () {"," self.closeSubMenus();","","
if (self.get('hideOnMouseLeave')) {"," self.hide();","
}"," }, 500);"," },",""," // -- Default Event Handlers
-----------------------------------------------",""," /**"," Default
handler for the generic `itemClick` event.",""," @method _defItemClickFn","
@param {EventFacade} e"," @protected"," **/"," _defItemClickFn:
function (e) {"," var item = e.item;",""," if
(item.canHaveChildren) {"," clearTimeout(this._timeouts.item);","
clearTimeout(this._timeouts.menu);","","
e.item.toggleOpen();"," } else if (this.get('hideOnClick')) {","
this.closeSubMenus();"," this.hide();"," }"," },","","
/**"," Default handler for item-specific `itemClick#<id>` events.","","
@method _defSpecificItemClickFn"," @param {EventFacade} e","
@protected"," **/"," _defSpecificItemClickFn: function (e) {","
this.fire(EVT_ITEM_CLICK, {"," originEvent: e.originEvent,","
item : e.item"," });"," }","}, {"," ATTRS: {","
/**"," Preferred alignment positions at which this menu should be
displayed"," relative to the anchor point when one is provided to the
`show()`,"," `toggle()`, or `reposition()` methods.",""," The
most optimal alignment position will be chosen automatically based"," on
which one allows the most of this menu to be visible within the","
browser's viewport. If multiple positions are equally visible, then the","
optimal position will be chosen based on its order in this array.","","
An alignment position is a string like \"tl-bl\", which means \"align the","
top left of this menu to the bottom left of its anchor point\".","","
Any combination of top/bottom/left/right alignment positions may be used","
as long as they follow this format. Here are a few examples:","","
* `'bl-br'`: Align the bottom left of this menu with the bottom right","
of the anchor point."," * `'br-bl'`: Align the bottom right of
this menu with the bottom left"," of the anchor point."," *
`'tl-tr'`: Align the top left of this menu with the top right of","
the anchor point."," * `'tr-tl'`: Align the top right of this menu to
the top left of this"," anchor point.",""," @attribute
{String[]} alignments"," @default ['tl-bl', 'tr-br', 'bl-tl',
'br-tr']"," **/"," alignments: {"," valueFn: function
() {"," return ['tl-bl', 'tr-br', 'bl-tl', 'br-tr'];","
}"," },",""," /**"," If `true`, this menu will be hidden
when the user clicks on a menu item"," that doesn't contain a
submenu.",""," @attribute {Boolean} hideOnClick"," @default
true"," **/"," hideOnClick: {"," value: true","
},",""," /**"," If `true`, this menu will be hidden when the user
moves the mouse"," outside the menu.",""," @attribute {Boolean}
hideOnMouseLeave"," @default false"," **/","
hideOnMouseLeave: {"," value: false"," },",""," /**","
If `true`, this menu will be hidden when the user clicks somewhere","
outside the menu.",""," @attribute {Boolean} hideOnOutsideClick","
@default true"," **/"," hideOnOutsideClick: {","
value: true"," },",""," /**"," Orientation of this menu.
May be either `'vertical'` or `'horizontal'`.",""," @attribute {String}
orientation"," @default 'vertical'"," **/"," orientation:
{"," value: 'vertical'"," },",""," /**"," Just
like `alignments`, but for submenus of this menu. See the","
`alignments` attribute for details on how alignment positions work.","","
@attribute {String[]} subMenuAlignments"," @default ['tl-tr', 'bl-br',
'tr-tl', 'br-bl']"," **/"," subMenuAlignments: {","
valueFn: function () {"," return ['tl-tr', 'bl-br', 'tr-tl',
'br-bl'];"," }"," },",""," /**"," Whether or
not this menu is visible. Changing this attribute's value"," will also
change the visibility of this menu.",""," @attribute {Boolean}
visible"," @default false"," **/"," visible: {","
value: false"," }"," }","});","","Y.Menu = Y.mix(Menu,
Y.Menu);","","","}, '@VERSION@', {"," \"requires\": [","
\"classnamemanager\","," \"escape\","," \"event-hover\",","
\"gallery-sm-menu-base\","," \"gallery-sm-menu-templates\",","
\"node-screen\","," \"view\""," ],"," \"skinnable\":
true","});","","}());"]};
+}
+var __cov_6zVls6d4bdMh5AQnWiir0g =
__coverage__['build/gallery-sm-menu/gallery-sm-menu.js'];
+__cov_6zVls6d4bdMh5AQnWiir0g.s['1']++;YUI.add('gallery-sm-menu',function(Y,NAME){__cov_6zVls6d4bdMh5AQnWiir0g.f['1']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['2']++;var
doc=Y.config.doc,getClassName=Y.ClassNameManager.getClassName;__cov_6zVls6d4bdMh5AQnWiir0g.s['3']++;var
EVT_ITEM_CLICK='itemClick';__cov_6zVls6d4bdMh5AQnWiir0g.s['4']++;var
Menu=Y.Base.create('menu',Y.Menu.Base,[Y.View],{classNames:{canHaveChildren:getClassName('menu-can-have-children'),children:getClassName('menu-children'),disabled:getClassName('menu-disabled'),hasChildren:getClassName('menu-has-children'),heading:getClassName('menu-heading'),hidden:getClassName('menu-hidden'),horizontal:getClassName('menu-horizontal'),item:getClassName('menu-item'),label:getClassName('menu-label'),menu:getClassName('menu'),noTouch:getClassName('menu-notouch'),open:getClassName('menu-open'),selected:getClassName('menu-selected'),separator:getClassName('menu-separator'),touch:getClassName('menu-touch'),vertical:getClassName('menu-vertical')},rendered:false,sourceSelectors:{item:'>
li',label:'> a, > span',subtree:'> ul, >
ol'},initializer:function(config){__cov_6zVls6d4bdMh5AQnWiir0g.f['2']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['5']++;this._openMenus={};__cov_6zVls6d4bdMh5AQnWiir0g.s['6']++;this._published={};__cov_6zVls6d4bdMh5AQnWiir0g.s['7']++;this._timeouts={};__cov_6zVls6d4bdMh5AQnWiir0g.s['8']++;if((__cov_6zVls6d4bdMh5AQnWiir0g.b['2'][0]++,config)&&(__cov_6zVls6d4bdMh5AQnWiir0g.b['2'][1]++,config.sourceNode)){__cov_6zVls6d4bdMh5AQnWiir0g.b['1'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['9']++;config.nodes=((__cov_6zVls6d4bdMh5AQnWiir0g.b['3'][0]++,config.nodes)||(__cov_6zVls6d4bdMh5AQnWiir0g.b['3'][1]++,[])).concat(this.parseHTML(config.sourceNode));__cov_6zVls6d4bdMh5AQnWiir0g.s['10']++;Y.one(config.sourceNode).remove(true);}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['1'][1]++;}__cov_6zVls6d4bdMh5AQnWiir0g.s['11']++;this._attachMenuEvents();},destructor:function(){__cov_6zVls6d4bdMh5AQnWiir0g.f['3']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['12']++;this._detachMenuEvents();__cov_6zVls6d4bdMh5AQnWiir0g.s['13']++;delete
this._openMenus;__cov_6zVls6d4bdMh5AQnWiir0g.s['14']++;delete
this._published;__cov_6zVls6d4bdMh5AQnWiir0g.s['15']++;Y.Object.each(this._timeouts,function(timeout){__cov_6zVls6d4bdMh5AQnWiir0g.f['4']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['16']++;clearTimeout(timeout);},this);__cov_6zVls6d4bdMh5AQnWiir0g.s['17']++;delete
this._timeouts;},getHTMLNode:function(item){__cov_6zVls6d4bdMh5AQnWiir0g.f['5']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['18']++;if(!item._htmlNode){__cov_6zVls6d4bdMh5AQnWiir0g.b['4'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['19']++;item._htmlNode=this.get('container').one('#'+item.id);}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['4'][1]++;}__cov_6zVls6d4bdMh5AQnWiir0g.s['20']++;return
item._htmlNode;},hide:function(){__cov_6zVls6d4bdMh5AQnWiir0g.f['6']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['21']++;this.set('visible',false);__cov_6zVls6d4bdMh5AQnWiir0g.s['22']++;return
this;},parseHTML:function(sourceNode){__cov_6zVls6d4bdMh5AQnWiir0g.f['7']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['23']++;sourceNode=Y.one(sourceNode);__cov_6zVls6d4bdMh5AQnWiir0g.s['24']++;var
classNames=this.classNames,items=[],sel=this.sourceSelectors,self=this;__cov_6zVls6d4bdMh5AQnWiir0g.s['25']++;sourceNode.all(sel.item).each(function(itemNode){__cov_6zVls6d4bdMh5AQnWiir0g.f['8']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['26']++;var
item={},itemEl=itemNode._node,labelNode=itemNode.one(sel.label),subTreeNode=itemNode.one(sel.subtree);__cov_6zVls6d4bdMh5AQnWiir0g.s['27']++;if(itemNode.hasClass(classNames.heading)){__cov_6zVls6d4bdMh5AQnWiir0g.b['5'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['28']++;item.type='heading';}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['5'][1]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['29']++;if(itemNode.hasClass(classNames.separator)){__cov_6zVls6d4bdMh5AQnWiir0g.b['6'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['30']++;item.type='separator';}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['6'][1]++;}}__cov_6zVls6d4bdMh5AQnWiir0g.s['31']++;if(itemNode.hasClass(classNames.disabled)){__cov_6zVls6d4bdMh5AQnWiir0g.b['7'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['32']++;(__cov_6zVls6d4bdMh5AQnWiir0g.b['8'][0]++,item.state)||(__cov_6zVls6d4bdMh5AQnWiir0g.b['8'][1]++,item.state={});__cov_6zVls6d4bdMh5AQnWiir0g.s['33']++;item.state.disabled=true;}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['7'][1]++;}__cov_6zVls6d4bdMh5AQnWiir0g.s['34']++;if(itemNode.hasClass(classNames.hidden)){__cov_6zVls6d4bdMh5AQnWiir0g.b['9'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['35']++;(__cov_6zVls6d4bdMh5AQnWiir0g.b['10'][0]++,item.state)||(__cov_6zVls6d4bdMh5AQnWiir0g.b['10'][1]++,item.state={});__cov_6zVls6d4bdMh5AQnWiir0g.s['36']++;item.state.hidden=true;}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['9'][1]++;}__cov_6zVls6d4bdMh5AQnWiir0g.s['37']++;if(labelNode){__cov_6zVls6d4bdMh5AQnWiir0g.b['11'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['38']++;var
href=labelNode.getAttribute('href');__cov_6zVls6d4bdMh5AQnWiir0g.s['39']++;item.label=labelNode.getHTML();__cov_6zVls6d4bdMh5AQnWiir0g.s['40']++;if((__cov_6zVls6d4bdMh5AQnWiir0g.b['13'][0]++,href)&&(__cov_6zVls6d4bdMh5AQnWiir0g.b['13'][1]++,href!=='#')){__cov_6zVls6d4bdMh5AQnWiir0g.b['12'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['41']++;item.url=href;}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['12'][1]++;}}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['11'][1]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['42']++;var
childEl;__cov_6zVls6d4bdMh5AQnWiir0g.s['43']++;for(var
i=0,len=itemEl.childNodes.length;i<len;i++){__cov_6zVls6d4bdMh5AQnWiir0g.s['44']++;childEl=itemEl.childNodes[i];__cov_6zVls6d4bdMh5AQnWiir0g.s['45']++;if(childEl.nodeType===doc.TEXT_NODE){__cov_6zVls6d4bdMh5AQnWiir0g.b['14'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['46']++;item.label=Y.Escape.html(childEl.nodeValue);__cov_6zVls6d4bdMh5AQnWiir0g.s['47']++;break;}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['14'][1]++;}}}__cov_6zVls6d4bdMh5AQnWiir0g.s['48']++;if(subTreeNode){__cov_6zVls6d4bdMh5AQnWiir0g.b['15'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['49']++;item.children=self.parseHTML(subTreeNode);}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['15'][1]++;}__cov_6zVls6d4bdMh5AQnWiir0g.s['50']++;items.push(item);});__cov_6zVls6d4bdMh5AQnWiir0g.s['51']++;return
items;},render:function(){__cov_6zVls6d4bdMh5AQnWiir0g.f['9']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['52']++;var
classNames=this.classNames,container=this.get('container');__cov_6zVls6d4bdMh5AQnWiir0g.s['53']++;container.addClass(classNames.menu);__cov_6zVls6d4bdMh5AQnWiir0g.s['54']++;container.addClass(classNames[this.get('orientation')]);__cov_6zVls6d4bdMh5AQnWiir0g.s['55']++;if('ontouchstart'in
Y.config.win){__cov_6zVls6d4bdMh5AQnWiir0g.b['16'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['56']++;container.addClass(classNames.touch);}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['16'][1]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['57']++;container.addClass(classNames.noTouch);}__cov_6zVls6d4bdMh5AQnWiir0g.s['58']++;this._childrenNode=this.renderChildren(this.rootNode,{container:container});__cov_6zVls6d4bdMh5AQnWiir0g.s['59']++;if(!container.inDoc()){__cov_6zVls6d4bdMh5AQnWiir0g.b['17'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['60']++;Y.one('body').append(container);}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['17'][1]++;}__cov_6zVls6d4bdMh5AQnWiir0g.s['61']++;this.rendered=true;__cov_6zVls6d4bdMh5AQnWiir0g.s['62']++;return
this;},renderChildren:function(treeNode,options){__cov_6zVls6d4bdMh5AQnWiir0g.f['10']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['63']++;(__cov_6zVls6d4bdMh5AQnWiir0g.b['18'][0]++,options)||(__cov_6zVls6d4bdMh5AQnWiir0g.b['18'][1]++,options={});__cov_6zVls6d4bdMh5AQnWiir0g.s['64']++;var
container=options.container,childrenNode=(__cov_6zVls6d4bdMh5AQnWiir0g.b['19'][0]++,container)&&(__cov_6zVls6d4bdMh5AQnWiir0g.b['19'][1]++,container.one('.'+this.classNames.children));__cov_6zVls6d4bdMh5AQnWiir0g.s['65']++;if(!childrenNode){__cov_6zVls6d4bdMh5AQnWiir0g.b['20'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['66']++;childrenNode=Y.Node.create(Menu.Templates.children({classNames:this.classNames,menu:this,item:treeNode}));}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['20'][1]++;}__cov_6zVls6d4bdMh5AQnWiir0g.s['67']++;if(treeNode.isRoot()){__cov_6zVls6d4bdMh5AQnWiir0g.b['21'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['68']++;childrenNode.set('tabIndex',0);__cov_6zVls6d4bdMh5AQnWiir0g.s['69']++;childrenNode.set('role','menu');}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['21'][1]++;}__cov_6zVls6d4bdMh5AQnWiir0g.s['70']++;if(treeNode.hasChildren()){__cov_6zVls6d4bdMh5AQnWiir0g.b['22'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['71']++;childrenNode.set('aria-expanded',treeNode.isOpen());}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['22'][1]++;}__cov_6zVls6d4bdMh5AQnWiir0g.s['72']++;for(var
i=0,len=treeNode.children.length;i<len;i++){__cov_6zVls6d4bdMh5AQnWiir0g.s['73']++;this.renderNode(treeNode.children[i],{container:childrenNode,renderChildren:true});}__cov_6zVls6d4bdMh5AQnWiir0g.s['74']++;if(container){__cov_6zVls6d4bdMh5AQnWiir0g.b['23'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['75']++;container.append(childrenNode);}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['23'][1]++;}__cov_6zVls6d4bdMh5AQnWiir0g.s['76']++;return
childrenNode;},renderNode:function(item,options){__cov_6zVls6d4bdMh5AQnWiir0g.f['11']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['77']++;(__cov_6zVls6d4bdMh5AQnWiir0g.b['24'][0]++,options)||(__cov_6zVls6d4bdMh5AQnWiir0g.b['24'][1]++,options={});__cov_6zVls6d4bdMh5AQnWiir0g.s['78']++;var
classNames=this.classNames,htmlNode=item._htmlNode,isHidden=item.isHidden();__cov_6zVls6d4bdMh5AQnWiir0g.s['79']++;if(!htmlNode){__cov_6zVls6d4bdMh5AQnWiir0g.b['25'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['80']++;htmlNode=item._htmlNode=Y.Node.create(Menu.Templates.item({classNames:classNames,item:item,menu:this}));}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['25'][1]++;}__cov_6zVls6d4bdMh5AQnWiir0g.s['81']++;htmlNode.set('aria-hidden',isHidden);__cov_6zVls6d4bdMh5AQnWiir0g.s['82']++;htmlNode.toggleClass(classNames.hidden,isHidden);__cov_6zVls6d4bdMh5AQnWiir0g.s['83']++;switch(item.type){case'separator':__cov_6zVls6d4bdMh5AQnWiir0g.b['26'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['84']++;htmlNode.set('role','separator');__cov_6zVls6d4bdMh5AQnWiir0g.s['85']++;break;case'item':__cov_6zVls6d4bdMh5AQnWiir0g.b['26'][1]++;case'heading':__cov_6zVls6d4bdMh5AQnWiir0g.b['26'][2]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['86']++;var
labelNode=htmlNode.one('.'+classNames.label),labelId=labelNode.get('id');__cov_6zVls6d4bdMh5AQnWiir0g.s['87']++;labelNode.setHTML(item.label);__cov_6zVls6d4bdMh5AQnWiir0g.s['88']++;if(!labelId){__cov_6zVls6d4bdMh5AQnWiir0g.b['27'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['89']++;labelId=Y.guid();__cov_6zVls6d4bdMh5AQnWiir0g.s['90']++;labelNode.set('id',labelId);}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['27'][1]++;}__cov_6zVls6d4bdMh5AQnWiir0g.s['91']++;htmlNode.set('aria-labelledby',labelId);__cov_6zVls6d4bdMh5AQnWiir0g.s['92']++;if(item.type==='heading'){__cov_6zVls6d4bdMh5AQnWiir0g.b['28'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['93']++;htmlNode.set('role','heading');}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['28'][1]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['94']++;htmlNode.set('role','menuitem');__cov_6zVls6d4bdMh5AQnWiir0g.s['95']++;htmlNode.toggleClass(classNames.disabled,item.isDisabled());__cov_6zVls6d4bdMh5AQnWiir0g.s['96']++;if(item.canHaveChildren){__cov_6zVls6d4bdMh5AQnWiir0g.b['29'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['97']++;htmlNode.addClass(classNames.canHaveChildren);__cov_6zVls6d4bdMh5AQnWiir0g.s['98']++;htmlNode.toggleClass(classNames.open,item.isOpen());__cov_6zVls6d4bdMh5AQnWiir0g.s['99']++;if(item.hasChildren()){__cov_6zVls6d4bdMh5AQnWiir0g.b['30'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['100']++;htmlNode.addClass(classNames.hasChildren);__cov_6zVls6d4bdMh5AQnWiir0g.s['101']++;if(options.renderChildren){__cov_6zVls6d4bdMh5AQnWiir0g.b['31'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['102']++;this.renderChildren(item,{container:htmlNode});}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['31'][1]++;}}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['30'][1]++;}}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['29'][1]++;}}__cov_6zVls6d4bdMh5AQnWiir0g.s['103']++;break;}__cov_6zVls6d4bdMh5AQnWiir0g.s['104']++;if(options.container){__cov_6zVls6d4bdMh5AQnWiir0g.b['32'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['105']++;options.container.append(htmlNode);}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['32'][1]++;}__cov_6zVls6d4bdMh5AQnWiir0g.s['106']++;return
htmlNode;},reposition:function(anchorPoint){__cov_6zVls6d4bdMh5AQnWiir0g.f['12']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['107']++;var
container=this.get('container'),anchorRegion,menuRegion;__cov_6zVls6d4bdMh5AQnWiir0g.s['108']++;if(Y.Lang.isArray(anchorPoint)){__cov_6zVls6d4bdMh5AQnWiir0g.b['33'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['109']++;anchorRegion={bottom:anchorPoint[1],left:anchorPoint[0],right:anchorPoint[0],top:anchorPoint[1]};}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['33'][1]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['110']++;if(anchorPoint._node){__cov_6zVls6d4bdMh5AQnWiir0g.b['34'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['111']++;anchorRegion=anchorPoint.get('region');}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['34'][1]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['112']++;anchorRegion=anchorPoint;}}__cov_6zVls6d4bdMh5AQnWiir0g.s['113']++;menuRegion=this._getSortedAnchorRegions(this.get('alignments'),container.get('region'),anchorRegion)[0].region;__cov_6zVls6d4bdMh5AQnWiir0g.s['114']++;container.setXY([menuRegion.left,menuRegion.top]);__cov_6zVls6d4bdMh5AQnWiir0g.s['115']++;return
this;},show:function(options){__cov_6zVls6d4bdMh5AQnWiir0g.f['13']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['116']++;if(!this.rendered){__cov_6zVls6d4bdMh5AQnWiir0g.b['35'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['117']++;this.render();}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['35'][1]++;}__cov_6zVls6d4bdMh5AQnWiir0g.s['118']++;if((__cov_6zVls6d4bdMh5AQnWiir0g.b['37'][0]++,options)&&(__cov_6zVls6d4bdMh5AQnWiir0g.b['37'][1]++,options.anchorPoint)){__cov_6zVls6d4bdMh5AQnWiir0g.b['36'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['119']++;this.reposition(options.anchorPoint);}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['36'][1]++;}__cov_6zVls6d4bdMh5AQnWiir0g.s['120']++;this.set('visible',true);__cov_6zVls6d4bdMh5AQnWiir0g.s['121']++;return
this;},toggleVisible:function(options){__cov_6zVls6d4bdMh5AQnWiir0g.f['14']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['122']++;return
this[this.get('visible')?(__cov_6zVls6d4bdMh5AQnWiir0g.b['38'][0]++,'hide'):(__cov_6zVls6d4bdMh5AQnWiir0g.b['38'][1]++,'show')](options);},_attachMenuEvents:function(){__cov_6zVls6d4bdMh5AQnWiir0g.f['15']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['123']++;(__cov_6zVls6d4bdMh5AQnWiir0g.b['39'][0]++,this._menuEvents)||(__cov_6zVls6d4bdMh5AQnWiir0g.b['39'][1]++,this._menuEvents=[]);__cov_6zVls6d4bdMh5AQnWiir0g.s['124']++;var
classNames=this.classNames,container=this.get('container');__cov_6zVls6d4bdMh5AQnWiir0g.s['125']++;this._menuEvents.push(this.after({add:this._afterAdd,clear:this._afterClear,close:this._afterClose,disable:this._afterDisable,enable:this._afterEnable,hide:this._afterHide,open:this._afterOpen,orientationChange:this._afterOrientationChange,remove:this._afterRemove,show:this._afterShow,visibleChange:this._afterVisibleChange}),container.on('hover',this._onMenuMouseEnter,this._onMenuMouseLeave,this),container.delegate('click',this._onItemClick,'.'+classNames.item+'>.'+classNames.label,this),container.delegate('hover',this._onItemMouseEnter,this._onItemMouseLeave,'.'+classNames.canHaveChildren,this),Y.one('doc').after('mousedown',this._afterDocMouseDown,this));},_detachMenuEvents:function(){__cov_6zVls6d4bdMh5AQnWiir0g.f['16']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['126']++;new
Y.EventHandle(this._menuEvents).detach();},_getAncestorTestFn:function(){__cov_6zVls6d4bdMh5AQnWiir0g.f['17']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['127']++;var
container=this.get('container');__cov_6zVls6d4bdMh5AQnWiir0g.s['128']++;return
function(node){__cov_6zVls6d4bdMh5AQnWiir0g.f['18']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['129']++;return
node===container;};},_getAnchorRegion:function(anchor,nodeRegion,parentRegion){__cov_6zVls6d4bdMh5AQnWiir0g.f['19']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['130']++;var
region={};__cov_6zVls6d4bdMh5AQnWiir0g.s['131']++;anchor.replace(/^([bt])([lr])-([bt])([lr])/i,function(match,p1,p2,p3,p4){__cov_6zVls6d4bdMh5AQnWiir0g.f['20']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['132']++;var
lookup={b:'bottom',l:'left',r:'right',t:'top'};__cov_6zVls6d4bdMh5AQnWiir0g.s['133']++;region[lookup[p1]]=parentRegion[lookup[p3]];__cov_6zVls6d4bdMh5AQnWiir0g.s['134']++;region[lookup[p2]]=parentRegion[lookup[p4]];});__cov_6zVls6d4bdMh5AQnWiir0g.s['135']++;(__cov_6zVls6d4bdMh5AQnWiir0g.b['40'][0]++,'bottom'in
region)||(__cov_6zVls6d4bdMh5AQnWiir0g.b['40'][1]++,region.bottom=region.top+nodeRegion.height);__cov_6zVls6d4bdMh5AQnWiir0g.s['136']++;(__cov_6zVls6d4bdMh5AQnWiir0g.b['41'][0]++,'left'in
region)||(__cov_6zVls6d4bdMh5AQnWiir0g.b['41'][1]++,region.left=region.right-nodeRegion.width);__cov_6zVls6d4bdMh5AQnWiir0g.s['137']++;(__cov_6zVls6d4bdMh5AQnWiir0g.b['42'][0]++,'right'in
region)||(__cov_6zVls6d4bdMh5AQnWiir0g.b['42'][1]++,region.right=region.left+nodeRegion.width);__cov_6zVls6d4bdMh5AQnWiir0g.s['138']++;(__cov_6zVls6d4bdMh5AQnWiir0g.b['43'][0]++,'top'in
region)||(__cov_6zVls6d4bdMh5AQnWiir0g.b['43'][1]++,region.top=region.bottom-nodeRegion.height);__cov_6zVls6d4bdMh5AQnWiir0g.s['139']++;return
region;},_getSortedAnchorRegions:function(points,nodeRegion,parentRegion,containerRegion){__cov_6zVls6d4bdMh5AQnWiir0g.f['21']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['140']++;(__cov_6zVls6d4bdMh5AQnWiir0g.b['44'][0]++,containerRegion)||(__cov_6zVls6d4bdMh5AQnWiir0g.b['44'][1]++,containerRegion=Y.DOM.viewportRegion());__cov_6zVls6d4bdMh5AQnWiir0g.s['141']++;var
anchors=[],i,len,point,region;__cov_6zVls6d4bdMh5AQnWiir0g.s['142']++;for(i=0,len=points.length;i<len;i++){__cov_6zVls6d4bdMh5AQnWiir0g.s['143']++;point=points[i];__cov_6zVls6d4bdMh5AQnWiir0g.s['144']++;if(point.point){__cov_6zVls6d4bdMh5AQnWiir0g.b['45'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['145']++;point=point.point;}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['45'][1]++;}__cov_6zVls6d4bdMh5AQnWiir0g.s['146']++;region=this._getAnchorRegion(point,nodeRegion,parentRegion);__cov_6zVls6d4bdMh5AQnWiir0g.s['147']++;anchors.push({point:point,region:region,score:this._inRegion(region,containerRegion)});}__cov_6zVls6d4bdMh5AQnWiir0g.s['148']++;anchors.sort(function(a,b){__cov_6zVls6d4bdMh5AQnWiir0g.f['22']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['149']++;if(a.score===b.score){__cov_6zVls6d4bdMh5AQnWiir0g.b['46'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['150']++;return
0;}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['46'][1]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['151']++;if(a.score===true){__cov_6zVls6d4bdMh5AQnWiir0g.b['47'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['152']++;return-1;}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['47'][1]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['153']++;if(b.score===true){__cov_6zVls6d4bdMh5AQnWiir0g.b['48'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['154']++;return
1;}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['48'][1]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['155']++;return
b.score-a.score;}}}});__cov_6zVls6d4bdMh5AQnWiir0g.s['156']++;return
anchors;},_hideMenu:function(item,htmlNode){__cov_6zVls6d4bdMh5AQnWiir0g.f['23']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['157']++;(__cov_6zVls6d4bdMh5AQnWiir0g.b['49'][0]++,htmlNode)||(__cov_6zVls6d4bdMh5AQnWiir0g.b['49'][1]++,htmlNode=this.getHTMLNode(item));__cov_6zVls6d4bdMh5AQnWiir0g.s['158']++;var
childrenNode=htmlNode.one('.'+this.classNames.children);__cov_6zVls6d4bdMh5AQnWiir0g.s['159']++;childrenNode.setXY([-10000,-10000]);__cov_6zVls6d4bdMh5AQnWiir0g.s['160']++;delete
item.data.menuAnchor;},_inRegion:function(inner,outer){__cov_6zVls6d4bdMh5AQnWiir0g.f['24']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['161']++;if((__cov_6zVls6d4bdMh5AQnWiir0g.b['51'][0]++,inner.bottom<=outer.bottom)&&(__cov_6zVls6d4bdMh5AQnWiir0g.b['51'][1]++,inner.left>=outer.left)&&(__cov_6zVls6d4bdMh5AQnWiir0g.b['51'][2]++,inner.right<=outer.right)&&(__cov_6zVls6d4bdMh5AQnWiir0g.b['51'][3]++,inner.top>=outer.top)){__cov_6zVls6d4bdMh5AQnWiir0g.b['50'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['162']++;return
true;}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['50'][1]++;}__cov_6zVls6d4bdMh5AQnWiir0g.s['163']++;return
Math.min(outer.bottom-inner.bottom,0)+Math.min(inner.left-outer.left,0)+Math.min(outer.right-inner.right,0)+Math.min(inner.top-outer.top,0);},_positionMenu:function(item,htmlNode){__cov_6zVls6d4bdMh5AQnWiir0g.f['25']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['164']++;(__cov_6zVls6d4bdMh5AQnWiir0g.b['52'][0]++,htmlNode)||(__cov_6zVls6d4bdMh5AQnWiir0g.b['52'][1]++,htmlNode=this.getHTMLNode(item));__cov_6zVls6d4bdMh5AQnWiir0g.s['165']++;var
childrenNode=htmlNode.one('.'+this.classNames.children),orientation=this.get('orientation'),alignments,anchors;__cov_6zVls6d4bdMh5AQnWiir0g.s['166']++;if((__cov_6zVls6d4bdMh5AQnWiir0g.b['54'][0]++,item.parent.isRoot())&&(__cov_6zVls6d4bdMh5AQnWiir0g.b['54'][1]++,orientation==='horizontal')){__cov_6zVls6d4bdMh5AQnWiir0g.b['53'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['167']++;alignments=this.get('alignments');}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['53'][1]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['168']++;alignments=(__cov_6zVls6d4bdMh5AQnWiir0g.b['55'][0]++,item.parent)&&(__cov_6zVls6d4bdMh5AQnWiir0g.b['55'][1]++,item.parent.data.menuAnchors)||(__cov_6zVls6d4bdMh5AQnWiir0g.b['55'][2]++,this.get('subMenuAlignments'));}__cov_6zVls6d4bdMh5AQnWiir0g.s['169']++;anchors=this._getSortedAnchorRegions(alignments,childrenNode.get('region'),htmlNode.get('region'));__cov_6zVls6d4bdMh5AQnWiir0g.s['170']++;if((__cov_6zVls6d4bdMh5AQnWiir0g.b['57'][0]++,orientation==='vertical')||(__cov_6zVls6d4bdMh5AQnWiir0g.b['57'][1]++,!item.parent.isRoot())){__cov_6zVls6d4bdMh5AQnWiir0g.b['56'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['171']++;item.data.menuAnchors=anchors;}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['56'][1]++;}__cov_6zVls6d4bdMh5AQnWiir0g.s['172']++;var
anchorRegion=anchors[0].region;__cov_6zVls6d4bdMh5AQnWiir0g.s['173']++;childrenNode.setXY([anchorRegion.left,anchorRegion.top]);},_afterAdd:function(e){__cov_6zVls6d4bdMh5AQnWiir0g.f['26']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['174']++;if(!this.rendered){__cov_6zVls6d4bdMh5AQnWiir0g.b['58'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['175']++;return;}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['58'][1]++;}__cov_6zVls6d4bdMh5AQnWiir0g.s['176']++;var
parent=e.parent,htmlChildrenNode,htmlNode;__cov_6zVls6d4bdMh5AQnWiir0g.s['177']++;if(parent===this.rootNode){__cov_6zVls6d4bdMh5AQnWiir0g.b['59'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['178']++;htmlChildrenNode=this._childrenNode;}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['59'][1]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['179']++;htmlNode=this.getHTMLNode(parent);__cov_6zVls6d4bdMh5AQnWiir0g.s['180']++;htmlChildrenNode=(__cov_6zVls6d4bdMh5AQnWiir0g.b['60'][0]++,htmlNode)&&(__cov_6zVls6d4bdMh5AQnWiir0g.b['60'][1]++,htmlNode.one('.'+this.classNames.children));__cov_6zVls6d4bdMh5AQnWiir0g.s['181']++;if(!htmlChildrenNode){__cov_6zVls6d4bdMh5AQnWiir0g.b['61'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['182']++;(__cov_6zVls6d4bdMh5AQnWiir0g.b['62'][0]++,htmlNode)||(__cov_6zVls6d4bdMh5AQnWiir0g.b['62'][1]++,htmlNode=this.renderNode(parent));__cov_6zVls6d4bdMh5AQnWiir0g.s['183']++;this.renderChildren(parent,{container:htmlNode});__cov_6zVls6d4bdMh5AQnWiir0g.s['184']++;return;}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['61'][1]++;}}__cov_6zVls6d4bdMh5AQnWiir0g.s['185']++;htmlChildrenNode.insert(this.renderNode(e.node,{renderChildren:true}),e.index);},_afterClear:function(){__cov_6zVls6d4bdMh5AQnWiir0g.f['27']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['186']++;this._openMenus={};__cov_6zVls6d4bdMh5AQnWiir0g.s['187']++;if(!this.rendered){__cov_6zVls6d4bdMh5AQnWiir0g.b['63'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['188']++;return;}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['63'][1]++;}__cov_6zVls6d4bdMh5AQnWiir0g.s['189']++;delete
this._childrenNode;__cov_6zVls6d4bdMh5AQnWiir0g.s['190']++;this.rendered=false;__cov_6zVls6d4bdMh5AQnWiir0g.s['191']++;this.get('container').empty();__cov_6zVls6d4bdMh5AQnWiir0g.s['192']++;this.render();},_afterDocMouseDown:function(e){__cov_6zVls6d4bdMh5AQnWiir0g.f['28']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['193']++;if(!this.get('visible')){__cov_6zVls6d4bdMh5AQnWiir0g.b['64'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['194']++;return;}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['64'][1]++;}__cov_6zVls6d4bdMh5AQnWiir0g.s['195']++;if(!e.target.ancestor(this._getAncestorTestFn(),true)){__cov_6zVls6d4bdMh5AQnWiir0g.b['65'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['196']++;this.closeSubMenus();__cov_6zVls6d4bdMh5AQnWiir0g.s['197']++;if(this.get('hideOnOutsideClick')){__cov_6zVls6d4bdMh5AQnWiir0g.b['66'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['198']++;this.hide();}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['66'][1]++;}}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['65'][1]++;}},_afterClose:function(e){__cov_6zVls6d4bdMh5AQnWiir0g.f['29']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['199']++;var
item=e.node,htmlNode=this.getHTMLNode(item);__cov_6zVls6d4bdMh5AQnWiir0g.s['200']++;for(var
i=0,len=item.children.length;i<len;i++){__cov_6zVls6d4bdMh5AQnWiir0g.s['201']++;item.children[i].close();}__cov_6zVls6d4bdMh5AQnWiir0g.s['202']++;item.close();__cov_6zVls6d4bdMh5AQnWiir0g.s['203']++;delete
this._openMenus[item.id];__cov_6zVls6d4bdMh5AQnWiir0g.s['204']++;if(htmlNode){__cov_6zVls6d4bdMh5AQnWiir0g.b['67'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['205']++;this._hideMenu(item,htmlNode);__cov_6zVls6d4bdMh5AQnWiir0g.s['206']++;htmlNode.removeClass(this.classNames.open);}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['67'][1]++;}},_afterDisable:function(e){__cov_6zVls6d4bdMh5AQnWiir0g.f['30']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['207']++;var
htmlNode=this.getHTMLNode(e.item);__cov_6zVls6d4bdMh5AQnWiir0g.s['208']++;if(htmlNode){__cov_6zVls6d4bdMh5AQnWiir0g.b['68'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['209']++;htmlNode.addClass(this.classNames.disabled);}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['68'][1]++;}},_afterEnable:function(e){__cov_6zVls6d4bdMh5AQnWiir0g.f['31']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['210']++;var
htmlNode=this.getHTMLNode(e.item);__cov_6zVls6d4bdMh5AQnWiir0g.s['211']++;if(htmlNode){__cov_6zVls6d4bdMh5AQnWiir0g.b['69'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['212']++;htmlNode.removeClass(this.classNames.disabled);}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['69'][1]++;}},_afterHide:function(e){__cov_6zVls6d4bdMh5AQnWiir0g.f['32']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['213']++;var
htmlNode=this.getHTMLNode(e.item);__cov_6zVls6d4bdMh5AQnWiir0g.s['214']++;if(htmlNode){__cov_6zVls6d4bdMh5AQnWiir0g.b['70'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['215']++;htmlNode.addClass(this.classNames.hidden);__cov_6zVls6d4bdMh5AQnWiir0g.s['216']++;htmlNode.set('aria-hidden',true);}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['70'][1]++;}},_afterOpen:function(e){__cov_6zVls6d4bdMh5AQnWiir0g.f['33']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['217']++;var
item=e.node,htmlNode=this.getHTMLNode(item),parent=item.parent,child;__cov_6zVls6d4bdMh5AQnWiir0g.s['218']++;if(parent){__cov_6zVls6d4bdMh5AQnWiir0g.b['71'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['219']++;if(parent.isOpen()){__cov_6zVls6d4bdMh5AQnWiir0g.b['72'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['220']++;for(var
i=0,len=parent.children.length;i<len;i++){__cov_6zVls6d4bdMh5AQnWiir0g.s['221']++;child=parent.children[i];__cov_6zVls6d4bdMh5AQnWiir0g.s['222']++;if(child!==item){__cov_6zVls6d4bdMh5AQnWiir0g.b['73'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['223']++;child.close();}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['73'][1]++;}}}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['72'][1]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['224']++;parent.open();}}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['71'][1]++;}__cov_6zVls6d4bdMh5AQnWiir0g.s['225']++;this._openMenus[item.id]=item;__cov_6zVls6d4bdMh5AQnWiir0g.s['226']++;if(htmlNode){__cov_6zVls6d4bdMh5AQnWiir0g.b['74'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['227']++;this._positionMenu(item,htmlNode);__cov_6zVls6d4bdMh5AQnWiir0g.s['228']++;htmlNode.addClass(this.classNames.open);}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['74'][1]++;}},_afterOrientationChange:function(e){__cov_6zVls6d4bdMh5AQnWiir0g.f['34']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['229']++;if(this.rendered){__cov_6zVls6d4bdMh5AQnWiir0g.b['75'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['230']++;this.get('container').removeClass(this.classNames.horizontal).removeClass(this.classNames.vertical).addClass(this.classNames[e.newVal]);}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['75'][1]++;}},_afterRemove:function(e){__cov_6zVls6d4bdMh5AQnWiir0g.f['35']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['231']++;delete
this._openMenus[e.node.id];__cov_6zVls6d4bdMh5AQnWiir0g.s['232']++;if(!this.rendered){__cov_6zVls6d4bdMh5AQnWiir0g.b['76'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['233']++;return;}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['76'][1]++;}__cov_6zVls6d4bdMh5AQnWiir0g.s['234']++;var
htmlNode=this.getHTMLNode(e.node);__cov_6zVls6d4bdMh5AQnWiir0g.s['235']++;if(htmlNode){__cov_6zVls6d4bdMh5AQnWiir0g.b['77'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['236']++;htmlNode.remove(true);__cov_6zVls6d4bdMh5AQnWiir0g.s['237']++;delete
e.node._htmlNode;}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['77'][1]++;}},_afterShow:function(e){__cov_6zVls6d4bdMh5AQnWiir0g.f['36']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['238']++;var
htmlNode=this.getHTMLNode(e.item);__cov_6zVls6d4bdMh5AQnWiir0g.s['239']++;if(htmlNode){__cov_6zVls6d4bdMh5AQnWiir0g.b['78'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['240']++;htmlNode.removeClass(this.classNames.hidden);__cov_6zVls6d4bdMh5AQnWiir0g.s['241']++;htmlNode.set('aria-hidden',false);}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['78'][1]++;}},_afterVisibleChange:function(e){__cov_6zVls6d4bdMh5AQnWiir0g.f['37']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['242']++;var
container=this.get('container');__cov_6zVls6d4bdMh5AQnWiir0g.s['243']++;container.toggleClass(this.classNames.open,e.newVal);__cov_6zVls6d4bdMh5AQnWiir0g.s['244']++;if(!e.newVal){__cov_6zVls6d4bdMh5AQnWiir0g.b['79'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['245']++;container.removeAttribute('style');}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['79'][1]++;}},_onItemClick:function(e){__cov_6zVls6d4bdMh5AQnWiir0g.f['38']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['246']++;var
item=this.getNodeById(e.currentTarget.getData('item-id')),eventName=EVT_ITEM_CLICK+'#'+item.id,isDisabled=(__cov_6zVls6d4bdMh5AQnWiir0g.b['80'][0]++,item.isDisabled())||(__cov_6zVls6d4bdMh5AQnWiir0g.b['80'][1]++,item.isHidden());__cov_6zVls6d4bdMh5AQnWiir0g.s['247']++;if((__cov_6zVls6d4bdMh5AQnWiir0g.b['82'][0]++,isDisabled)||(__cov_6zVls6d4bdMh5AQnWiir0g.b['82'][1]++,item.url==='#')){__cov_6zVls6d4bdMh5AQnWiir0g.b['81'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['248']++;e.preventDefault();}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['81'][1]++;}__cov_6zVls6d4bdMh5AQnWiir0g.s['249']++;if(isDisabled){__cov_6zVls6d4bdMh5AQnWiir0g.b['83'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['250']++;return;}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['83'][1]++;}__cov_6zVls6d4bdMh5AQnWiir0g.s['251']++;if(!this._published[eventName]){__cov_6zVls6d4bdMh5AQnWiir0g.b['84'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['252']++;this._published[eventName]=this.publish(eventName,{defaultFn:this._defSpecificItemClickFn});}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['84'][1]++;}__cov_6zVls6d4bdMh5AQnWiir0g.s['253']++;if(!this._published[EVT_ITEM_CLICK]){__cov_6zVls6d4bdMh5AQnWiir0g.b['85'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['254']++;this._published[EVT_ITEM_CLICK]=this.publish(EVT_ITEM_CLICK,{defaultFn:this._defItemClickFn});}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['85'][1]++;}__cov_6zVls6d4bdMh5AQnWiir0g.s['255']++;this.fire(eventName,{originEvent:e,item:item});},_onItemMouseEnter:function(e){__cov_6zVls6d4bdMh5AQnWiir0g.f['39']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['256']++;var
item=this.getNodeById(e.currentTarget.get('id'));__cov_6zVls6d4bdMh5AQnWiir0g.s['257']++;clearTimeout(this._timeouts.item);__cov_6zVls6d4bdMh5AQnWiir0g.s['258']++;if((__cov_6zVls6d4bdMh5AQnWiir0g.b['87'][0]++,item.isOpen())||(__cov_6zVls6d4bdMh5AQnWiir0g.b['87'][1]++,item.isDisabled())){__cov_6zVls6d4bdMh5AQnWiir0g.b['86'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['259']++;return;}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['86'][1]++;}__cov_6zVls6d4bdMh5AQnWiir0g.s['260']++;this._timeouts.item=setTimeout(function(){__cov_6zVls6d4bdMh5AQnWiir0g.f['40']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['261']++;item.open();},200);},_onItemMouseLeave:function(e){__cov_6zVls6d4bdMh5AQnWiir0g.f['41']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['262']++;var
item=this.getNodeById(e.currentTarget.get('id'));__cov_6zVls6d4bdMh5AQnWiir0g.s['263']++;clearTimeout(this._timeouts.item);__cov_6zVls6d4bdMh5AQnWiir0g.s['264']++;if(!item.isOpen()){__cov_6zVls6d4bdMh5AQnWiir0g.b['88'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['265']++;return;}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['88'][1]++;}__cov_6zVls6d4bdMh5AQnWiir0g.s['266']++;this._timeouts.item=setTimeout(function(){__cov_6zVls6d4bdMh5AQnWiir0g.f['42']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['267']++;item.close();},300);},_onMenuMouseEnter:function(){__cov_6zVls6d4bdMh5AQnWiir0g.f['43']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['268']++;clearTimeout(this._timeouts.menu);},_onMenuMouseLeave:function(){__cov_6zVls6d4bdMh5AQnWiir0g.f['44']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['269']++;var
self=this;__cov_6zVls6d4bdMh5AQnWiir0g.s['270']++;clearTimeout(this._timeouts.menu);__cov_6zVls6d4bdMh5AQnWiir0g.s['271']++;this._timeouts.menu=setTimeout(function(){__cov_6zVls6d4bdMh5AQnWiir0g.f['45']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['272']++;self.closeSubMenus();__cov_6zVls6d4bdMh5AQnWiir0g.s['273']++;if(self.get('hideOnMouseLeave')){__cov_6zVls6d4bdMh5AQnWiir0g.b['89'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['274']++;self.hide();}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['89'][1]++;}},500);},_defItemClickFn:function(e){__cov_6zVls6d4bdMh5AQnWiir0g.f['46']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['275']++;var
item=e.item;__cov_6zVls6d4bdMh5AQnWiir0g.s['276']++;if(item.canHaveChildren){__cov_6zVls6d4bdMh5AQnWiir0g.b['90'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['277']++;clearTimeout(this._timeouts.item);__cov_6zVls6d4bdMh5AQnWiir0g.s['278']++;clearTimeout(this._timeouts.menu);__cov_6zVls6d4bdMh5AQnWiir0g.s['279']++;e.item.toggleOpen();}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['90'][1]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['280']++;if(this.get('hideOnClick')){__cov_6zVls6d4bdMh5AQnWiir0g.b['91'][0]++;__cov_6zVls6d4bdMh5AQnWiir0g.s['281']++;this.closeSubMenus();__cov_6zVls6d4bdMh5AQnWiir0g.s['282']++;this.hide();}else{__cov_6zVls6d4bdMh5AQnWiir0g.b['91'][1]++;}}},_defSpecificItemClickFn:function(e){__cov_6zVls6d4bdMh5AQnWiir0g.f['47']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['283']++;this.fire(EVT_ITEM_CLICK,{originEvent:e.originEvent,item:e.item});}},{ATTRS:{alignments:{valueFn:function(){__cov_6zVls6d4bdMh5AQnWiir0g.f['48']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['284']++;return['tl-bl','tr-br','bl-tl','br-tr'];}},hideOnClick:{value:true},hideOnMouseLeave:{value:false},hideOnOutsideClick:{value:true},orientation:{value:'vertical'},subMenuAlignments:{valueFn:function(){__cov_6zVls6d4bdMh5AQnWiir0g.f['49']++;__cov_6zVls6d4bdMh5AQnWiir0g.s['285']++;return['tl-tr','bl-br','tr-tl','br-bl'];}},visible:{value:false}}});__cov_6zVls6d4bdMh5AQnWiir0g.s['286']++;Y.Menu=Y.mix(Menu,Y.Menu);},'@VERSION@',{'requires':['classnamemanager','escape','event-hover','gallery-sm-menu-base','gallery-sm-menu-templates','node-screen','view'],'skinnable':true});
Added:
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu/gallery-sm-menu-debug.js
===================================================================
---
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu/gallery-sm-menu-debug.js
(rev 0)
+++
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu/gallery-sm-menu-debug.js
2014-10-28 12:32:33 UTC (rev 12245)
@@ -0,0 +1,1282 @@
+YUI.add('gallery-sm-menu', function (Y, NAME) {
+
+/*jshint expr:true, onevar:false */
+
+/**
+Provides the `Y.Menu` widget.
+
address@hidden gallery-sm-menu
address@hidden gallery-sm-menu
+**/
+
+/**
+Menu widget.
+
address@hidden Menu
address@hidden
address@hidden {Object} [config] Config options.
address@hidden {HTMLElement|Node|String} [config.sourceNode] Node instance, HTML
+ element, or selector string for a node (usually a `<ul>` or `<ol>`) whose
+ structure should be parsed and used to generate this menu's contents. This
+ node will be removed from the DOM after being parsed.
address@hidden Menu.Base
address@hidden View
+**/
+
+var doc = Y.config.doc,
+ getClassName = Y.ClassNameManager.getClassName;
+
+/**
+Fired when any clickable menu item is clicked.
+
+You can subscribe to clicks on a specific menu item by subscribing to
+"itemClick#id", where "id" is the item id of the item you want to subscribe to.
+
address@hidden itemClick
address@hidden {Menu.Item} item Menu item that was clicked.
address@hidden {EventFacade} originEvent Original click event.
address@hidden _defItemClickFn
+**/
+var EVT_ITEM_CLICK = 'itemClick';
+
+var Menu = Y.Base.create('menu', Y.Menu.Base, [Y.View], {
+
+ /**
+ CSS class names used by this menu.
+
+ @property {Object} classNames
+ **/
+ classNames: {
+ canHaveChildren: getClassName('menu-can-have-children'),
+ children : getClassName('menu-children'),
+ disabled : getClassName('menu-disabled'),
+ hasChildren : getClassName('menu-has-children'),
+ heading : getClassName('menu-heading'),
+ hidden : getClassName('menu-hidden'),
+ horizontal : getClassName('menu-horizontal'),
+ item : getClassName('menu-item'),
+ label : getClassName('menu-label'),
+ menu : getClassName('menu'),
+ noTouch : getClassName('menu-notouch'),
+ open : getClassName('menu-open'),
+ selected : getClassName('menu-selected'),
+ separator : getClassName('menu-separator'),
+ touch : getClassName('menu-touch'),
+ vertical : getClassName('menu-vertical')
+ },
+
+ /**
+ Whether or not this menu has been rendered.
+
+ @property {Boolean} rendered
+ @default false
+ **/
+ rendered: false,
+
+ /**
+ Selectors to use when parsing a menu structure from a DOM structure via
+ `parseHTML()`.
+
+ @property {Object} sourceSelectors
+ **/
+ sourceSelectors: {
+ item : '> li',
+ label : '> a, > span',
+ subtree: '> ul, > ol'
+ },
+
+ // -- Lifecycle Methods
----------------------------------------------------
+
+ initializer: function (config) {
+ this._openMenus = {};
+ this._published = {};
+ this._timeouts = {};
+
+ if (config && config.sourceNode) {
+ config.nodes = (config.nodes || []).concat(
+ this.parseHTML(config.sourceNode));
+
+ Y.one(config.sourceNode).remove(true);
+ }
+
+ this._attachMenuEvents();
+ },
+
+ destructor: function () {
+ this._detachMenuEvents();
+
+ delete this._openMenus;
+ delete this._published;
+
+ Y.Object.each(this._timeouts, function (timeout) {
+ clearTimeout(timeout);
+ }, this);
+
+ delete this._timeouts;
+ },
+
+ // -- Public Methods
-------------------------------------------------------
+
+ /**
+ Returns the HTML node (as a `Y.Node` instance) associated with the
specified
+ menu item, if any.
+
+ @method getHTMLNode
+ @param {Menu.Item} item Menu item.
+ @return {Node} `Y.Node` instance associated with the given tree node, or
+ `undefined` if one was not found.
+ **/
+ getHTMLNode: function (item) {
+ if (!item._htmlNode) {
+ item._htmlNode = this.get('container').one('#' + item.id);
+ }
+
+ return item._htmlNode;
+ },
+
+ /**
+ Hides this menu.
+
+ @method hide
+ @chainable
+ **/
+ hide: function () {
+ this.set('visible', false);
+ return this;
+ },
+
+ /**
+ Parses the specified HTML _sourceNode_ as a menu structure and returns an
+ array of menu item objects that can be used to generate a menu with that
+ structure.
+
+ By default, _sourceNode_ is expected to contain one `<li>` element per
+ menu item, and submenus are expected to be represented by `<ul>` or `<ol>`
+ elements.
+
+ The selector queries used to parse the menu structure are contained in the
+ `sourceSelectors` property, and may be customized. Class names specified in
+ the `classNames` property are used to determine whether a menu item should
+ be disabled, hidden, or treated as a heading or separator.
+
+ @method parseHTML
+ @param {HTMLElement|Node|String} sourceNode Node instance, HTML element, or
+ selector string for the node (usually a `<ul> or `<ol>` element) to
+ parse.
+ @return {Object[]} Array of menu item objects.
+ **/
+ parseHTML: function (sourceNode) {
+ sourceNode = Y.one(sourceNode);
+
+ var classNames = this.classNames,
+ items = [],
+ sel = this.sourceSelectors,
+ self = this;
+
+ sourceNode.all(sel.item).each(function (itemNode) {
+ var item = {},
+ itemEl = itemNode._node,
+ labelNode = itemNode.one(sel.label),
+ subTreeNode = itemNode.one(sel.subtree);
+
+ if (itemNode.hasClass(classNames.heading)) {
+ item.type = 'heading';
+ } else if (itemNode.hasClass(classNames.separator)) {
+ item.type = 'separator';
+ }
+
+ if (itemNode.hasClass(classNames.disabled)) {
+ item.state || (item.state = {});
+ item.state.disabled = true;
+ }
+
+ if (itemNode.hasClass(classNames.hidden)) {
+ item.state || (item.state = {});
+ item.state.hidden = true;
+ }
+
+ if (labelNode) {
+ var href = labelNode.getAttribute('href');
+
+ item.label = labelNode.getHTML();
+
+ if (href && href !== '#') {
+ item.url = href;
+ }
+ } else {
+ // The selector didn't find a label node, so look for the first
+ // text child of the item element.
+ var childEl;
+
+ for (var i = 0, len = itemEl.childNodes.length; i < len; i++) {
+ childEl = itemEl.childNodes[i];
+
+ if (childEl.nodeType === doc.TEXT_NODE) {
+ item.label = Y.Escape.html(childEl.nodeValue);
+ break;
+ }
+ }
+ }
+
+ if (subTreeNode) {
+ item.children = self.parseHTML(subTreeNode);
+ }
+
+ items.push(item);
+ });
+
+ return items;
+ },
+
+ /**
+ Renders this menu into its container.
+
+ If the container hasn't already been added to the current document, it will
+ be appended to the `<body>` element.
+
+ @method render
+ @chainable
+ **/
+ render: function () {
+ var classNames = this.classNames,
+ container = this.get('container');
+
+ container.addClass(classNames.menu);
+ container.addClass(classNames[this.get('orientation')]);
+
+ // Detect touchscreen devices.
+ if ('ontouchstart' in Y.config.win) {
+ container.addClass(classNames.touch);
+ } else {
+ container.addClass(classNames.noTouch);
+ }
+
+ this._childrenNode = this.renderChildren(this.rootNode, {
+ container: container
+ });
+
+ if (!container.inDoc()) {
+ Y.one('body').append(container);
+ }
+
+ this.rendered = true;
+
+ return this;
+ },
+
+ /**
+ Renders the children of the specified menu item.
+
+ If a container is specified, it will be assumed to be an existing rendered
+ menu item, and the children will be rendered (or re-rendered) inside it.
+
+ @method renderChildren
+ @param {Menu.Item} menuItem Menu item whose children should be rendered.
+ @param {Object} [options] Options.
+ @param {Node} [options.container] `Y.Node` instance of a container into
+ which the children should be rendered. If the container already
+ contains rendered children, they will be re-rendered in place.
+ @return {Node} `Y.Node` instance containing the rendered children.
+ **/
+ renderChildren: function (treeNode, options) {
+ options || (options = {});
+
+ var container = options.container,
+ childrenNode = container && container.one('.' +
this.classNames.children);
+
+ if (!childrenNode) {
+ childrenNode = Y.Node.create(Menu.Templates.children({
+ classNames: this.classNames,
+ menu : this,
+ item : treeNode
+ }));
+ }
+
+ if (treeNode.isRoot()) {
+ childrenNode.set('tabIndex', 0); // Add the root list to the tab
order.
+ childrenNode.set('role', 'menu');
+ }
+
+ if (treeNode.hasChildren()) {
+ childrenNode.set('aria-expanded', treeNode.isOpen());
+ }
+
+ for (var i = 0, len = treeNode.children.length; i < len; i++) {
+ this.renderNode(treeNode.children[i], {
+ container : childrenNode,
+ renderChildren: true
+ });
+ }
+
+ if (container) {
+ container.append(childrenNode);
+ }
+
+ return childrenNode;
+ },
+
+ /**
+ Renders the specified menu item and its children (if any).
+
+ If a container is specified, the rendered node will be appended to it.
+
+ @method renderNode
+ @param {Menu.Item} menuItem Tree node to render.
+ @param {Object} [options] Options.
+ @param {Node} [options.container] `Y.Node` instance of a container to
+ which the rendered tree node should be appended.
+ @param {Boolean} [options.renderChildren=false] Whether or not to
render
+ this node's children.
+ @return {Node} `Y.Node` instance of the rendered menu item.
+ **/
+ renderNode: function (item, options) {
+ options || (options = {});
+
+ var classNames = this.classNames,
+ htmlNode = item._htmlNode,
+ isHidden = item.isHidden();
+
+ // Create an HTML node for this menu item if one doesn't already exist.
+ if (!htmlNode) {
+ htmlNode = item._htmlNode = Y.Node.create(Menu.Templates.item({
+ classNames: classNames,
+ item : item,
+ menu : this
+ }));
+ }
+
+ // Mark the HTML node as hidden if the item is hidden.
+ htmlNode.set('aria-hidden', isHidden);
+ htmlNode.toggleClass(classNames.hidden, isHidden);
+
+ switch (item.type) {
+ case 'separator':
+ htmlNode.set('role', 'separator');
+ break;
+
+ case 'item':
+ case 'heading':
+ var labelNode = htmlNode.one('.' + classNames.label),
+ labelId = labelNode.get('id');
+
+ labelNode.setHTML(item.label);
+
+ if (!labelId) {
+ labelId = Y.guid();
+ labelNode.set('id', labelId);
+ }
+
+ htmlNode.set('aria-labelledby', labelId);
+
+ if (item.type === 'heading') {
+ htmlNode.set('role', 'heading');
+ } else {
+ htmlNode.set('role', 'menuitem');
+
+ htmlNode.toggleClass(classNames.disabled, item.isDisabled());
+
+ if (item.canHaveChildren) {
+ htmlNode.addClass(classNames.canHaveChildren);
+ htmlNode.toggleClass(classNames.open, item.isOpen());
+
+ if (item.hasChildren()) {
+ htmlNode.addClass(classNames.hasChildren);
+
+ if (options.renderChildren) {
+ this.renderChildren(item, {
+ container: htmlNode
+ });
+ }
+ }
+ }
+ }
+ break;
+ }
+
+ if (options.container) {
+ options.container.append(htmlNode);
+ }
+
+ return htmlNode;
+ },
+
+ /**
+ Repositions this menu so that it is anchored to a specified node, region,
or
+ set of pixel coordinates.
+
+ The menu will be displayed at the most advantageous position relative to
the
+ anchor point to ensure that as much of the menu as possible is visible
+ within the viewport.
+
+ @method reposition
+ @param {Node|Number[]|Object} anchorPoint Anchor point at which this menu
+ should be positioned. The point may be specified as a `Y.Node`
+ reference, a region object, or an array of X and Y pixel coordinates.
+ @chainable
+ **/
+ reposition: function (anchorPoint) {
+ var container = this.get('container'),
+ anchorRegion, menuRegion;
+
+ if (Y.Lang.isArray(anchorPoint)) {
+ anchorRegion = {
+ bottom: anchorPoint[1],
+ left : anchorPoint[0],
+ right : anchorPoint[0],
+ top : anchorPoint[1]
+ };
+ } else if (anchorPoint._node) {
+ anchorRegion = anchorPoint.get('region');
+ } else {
+ anchorRegion = anchorPoint;
+ }
+
+ menuRegion = this._getSortedAnchorRegions(
+ this.get('alignments'),
+ container.get('region'),
+ anchorRegion
+ )[0].region;
+
+ container.setXY([menuRegion.left, menuRegion.top]);
+
+ return this;
+ },
+
+ /**
+ Shows this menu.
+
+ The menu will be rendered if it hasn't been rendered already.
+
+ @method show
+ @param {Object} [options] Options.
+ @param {Node|Number[]|Object} [options.anchorPoint] Anchor point at
+ which this menu should be positioned when shown. The point may be
+ specified as a `Y.Node` reference, a region object, or an array of
X
+ and Y pixel coordinates.
+ @chainable
+ **/
+ show: function (options) {
+ if (!this.rendered) {
+ this.render();
+ }
+
+ if (options && options.anchorPoint) {
+ this.reposition(options.anchorPoint);
+ }
+
+ this.set('visible', true);
+ return this;
+ },
+
+ /**
+ Toggles the visibility of this menu, showing it if it's currently hidden or
+ hiding it if it's currently visible.
+
+ @method toggleVisible
+ @param {Object} [options] Options.
+ @param {Node|Number[]|Object} [options.anchorPoint] Anchor point at
+ which this menu should be positioned when shown. The point may be
+ specified as a `Y.Node` reference, a region object, or an array of
X
+ and Y pixel coordinates.
+ @chainable
+ **/
+ toggleVisible: function (options) {
+ return this[this.get('visible') ? 'hide' : 'show'](options);
+ },
+
+ // -- Protected Methods
----------------------------------------------------
+
+ /**
+ Attaches menu events.
+
+ @method _attachMenuEvents
+ @protected
+ **/
+ _attachMenuEvents: function () {
+ this._menuEvents || (this._menuEvents = []);
+
+ var classNames = this.classNames,
+ container = this.get('container');
+
+ this._menuEvents.push(
+ this.after({
+ add : this._afterAdd,
+ clear : this._afterClear,
+ close : this._afterClose,
+ disable : this._afterDisable,
+ enable : this._afterEnable,
+ hide : this._afterHide,
+ open : this._afterOpen,
+ orientationChange: this._afterOrientationChange,
+ remove : this._afterRemove,
+ show : this._afterShow,
+ visibleChange : this._afterVisibleChange
+ }),
+
+ container.on('hover', this._onMenuMouseEnter,
this._onMenuMouseLeave, this),
+
+ container.delegate('click', this._onItemClick, '.' +
classNames.item + '>.' + classNames.label, this),
+ container.delegate('hover', this._onItemMouseEnter,
this._onItemMouseLeave, '.' + classNames.canHaveChildren, this),
+
+ Y.one('doc').after('mousedown', this._afterDocMouseDown, this)
+ );
+ },
+
+ /**
+ Detaches menu events.
+
+ @method _detachMenuEvents
+ @protected
+ **/
+ _detachMenuEvents: function () {
+ (new Y.EventHandle(this._menuEvents)).detach();
+ },
+
+ /**
+ Returns an efficient test function that can be passed to
`Y.Node#ancestor()`
+ to test whether a node is this menu's container.
+
+ This is broken out to make overriding easier in subclasses.
+
+ @method _getAncestorTestFn
+ @return {Function} Test function.
+ @protected
+ **/
+ _getAncestorTestFn: function () {
+ var container = this.get('container');
+
+ return function (node) {
+ return node === container;
+ };
+ },
+
+ /**
+ Given an anchor point and the regions currently occupied by a child node
+ (the node being anchored) and a parent node (the node being anchored to),
+ returns a region object representing the coordinates the anchored node will
+ occupy when anchored to the given point on the parent.
+
+ An anchor point is a string like "tl-bl", which means "anchor the top left
+ point of _nodeRegion_ to the bottom left point of _parentRegion_".
+
+ Any combination of top/bottom/left/right anchor points may be used as long
+ as they follow this format. Here are a few examples:
+
+ * `'bl-br'`: Anchor the bottom left of _nodeRegion_ to the bottom right
of
+ _parentRegion_.
+ * `'br-bl'`: Anchor the bottom right of _nodeRegion_ to the bottom left
of
+ _parentRegion_.
+ * `'tl-tr'`: Anchor the top left of _nodeRegion_ to the top right of
+ _parentRegion_.
+ * `'tr-tl'`: Anchor the top right of _nodeRegion_ to the top left of
+ _parentRegion_.
+
+ @method _getAnchorRegion
+ @param {String} anchor Anchor point. See above for details.
+ @param {Object} nodeRegion Region object for the node to be anchored (that
+ is, the node that will be repositioned).
+ @param {Object} parentRegion Region object for the node that will be
+ anchored to (that is, the node that will not move).
+ @return {Object} Region that will be occupied by the anchored node.
+ @protected
+ **/
+ _getAnchorRegion: function (anchor, nodeRegion, parentRegion) {
+ var region = {};
+
+ anchor.replace(/^([bt])([lr])-([bt])([lr])/i, function (match, p1, p2,
p3, p4) {
+ var lookup = {
+ b: 'bottom',
+ l: 'left',
+ r: 'right',
+ t: 'top'
+ };
+
+ region[lookup[p1]] = parentRegion[lookup[p3]];
+ region[lookup[p2]] = parentRegion[lookup[p4]];
+ });
+
+ 'bottom' in region || (region.bottom = region.top + nodeRegion.height);
+ 'left' in region || (region.left = region.right - nodeRegion.width);
+ 'right' in region || (region.right = region.left + nodeRegion.width);
+ 'top' in region || (region.top = region.bottom - nodeRegion.height);
+
+ return region;
+ },
+
+ _getSortedAnchorRegions: function (points, nodeRegion, parentRegion,
containerRegion) {
+ containerRegion || (containerRegion = Y.DOM.viewportRegion());
+
+ // Run through each possible anchor point and test whether it would
+ // allow the submenu to be displayed fully within the viewport. Stop at
+ // the first anchor point that works.
+ var anchors = [],
+ i, len, point, region;
+
+ for (i = 0, len = points.length; i < len; i++) {
+ point = points[i];
+
+ // Allow arrays of strings or arrays of objects like {point:
'...'}.
+ if (point.point) {
+ point = point.point;
+ }
+
+ region = this._getAnchorRegion(point, nodeRegion, parentRegion);
+
+ anchors.push({
+ point : point,
+ region: region,
+ score : this._inRegion(region, containerRegion)
+ });
+ }
+
+ // Sort the anchors in descending order by score (higher score is
+ // better).
+ anchors.sort(function (a, b) {
+ if (a.score === b.score) {
+ return 0;
+ } else if (a.score === true) {
+ return -1;
+ } else if (b.score === true) {
+ return 1;
+ } else {
+ return b.score - a.score;
+ }
+ });
+
+ // Return the sorted anchors.
+ return anchors;
+ },
+
+ /**
+ Hides the specified menu container by moving its htmlNode offscreen.
+
+ @method _hideMenu
+ @param {Menu.Item} item Menu item.
+ @param {Node} [htmlNode] HTML node for the menu item.
+ @protected
+ **/
+ _hideMenu: function (item, htmlNode) {
+ htmlNode || (htmlNode = this.getHTMLNode(item));
+
+ var childrenNode = htmlNode.one('.' + this.classNames.children);
+
+ childrenNode.setXY([-10000, -10000]);
+ delete item.data.menuAnchor;
+ },
+
+ /**
+ Returns `true` if the given _inner_ region is contained entirely within the
+ given _outer_ region. If it's not a perfect fit, returns a numerical score
+ indicating how much of the _inner_ region fits within the _outer_ region.
+ A higher score indicates a better fit.
+
+ @method _inRegion
+ @param {Object} inner Inner region.
+ @param {Object} outer Outer region.
+ @return {Boolean|Number} `true` if the _inner_ region fits entirely within
+ the _outer_ region or, if not, a numerical score indicating how much of
+ the inner region fits.
+ @protected
+ **/
+ _inRegion: function (inner, outer) {
+ if (inner.bottom <= outer.bottom
+ && inner.left >= outer.left
+ && inner.right <= outer.right
+ && inner.top >= outer.top) {
+
+ // Perfect fit!
+ return true;
+ }
+
+ // Not a perfect fit, so return the overall score of this region so we
+ // can compare it with the scores of other regions to determine the
best
+ // possible fit.
+ return (
+ Math.min(outer.bottom - inner.bottom, 0) +
+ Math.min(inner.left - outer.left, 0) +
+ Math.min(outer.right - inner.right, 0) +
+ Math.min(inner.top - outer.top, 0)
+ );
+ },
+
+ /**
+ Intelligently positions the _htmlNode_ of the given submenu _item_ relative
+ to its parent so that as much as possible of the submenu will be visible
+ within the viewport.
+
+ @method _positionMenu
+ @param {Menu.Item} item Menu item to position.
+ @param {Node} [htmlNode] HTML node for the menu item.
+ @protected
+ **/
+ _positionMenu: function (item, htmlNode) {
+ htmlNode || (htmlNode = this.getHTMLNode(item));
+
+ var childrenNode = htmlNode.one('.' + this.classNames.children),
+ orientation = this.get('orientation'),
+ alignments, anchors;
+
+ // If this is a top-level submenu and this menu is horizontally
+ // aligned, use `alignments`.
+ if (item.parent.isRoot() && orientation === 'horizontal') {
+ alignments = this.get('alignments');
+ } else {
+ // If this menu has a parent and the parent has stored alignment
+ // anchors, use those. Otherwise, use `subMenuAlignments`.
+ alignments = (item.parent && item.parent.data.menuAnchors) ||
+ this.get('subMenuAlignments');
+ }
+
+ anchors = this._getSortedAnchorRegions(alignments,
+ childrenNode.get('region'), htmlNode.get('region'));
+
+ if (orientation === 'vertical' || !item.parent.isRoot()) {
+ // Remember which anchors we used for this item so that we can
+ // default that anchor for submenus of this item if necessary.
+ item.data.menuAnchors = anchors;
+ }
+
+ // Position the submenu.
+ var anchorRegion = anchors[0].region;
@@ Diff output truncated at 153600 characters. @@
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Fmsystem-commits] [12245] convert topmenu to responsive horizontal menu,
Sigurd Nes <=