From 6df2abcf1a95a6e44fd9bfd82627763fabb1bbbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0koda?= Date: Sat, 20 Oct 2012 15:22:15 +0800 Subject: [PATCH] MDL-36145 import latest YUI 3.7.3 --- lib/setup.php | 2 +- lib/thirdpartylibs.xml | 2 +- .../dataschema-xml/dataschema-xml-min.js | 7 - .../datatype-xml-format-min.js | 7 - .../datatype-xml-parse-min.js | 7 - .../dd-constrain/dd-constrain-coverage.js | 754 ----- .../build/dd-constrain/dd-constrain-min.js | 7 - .../build/dd-ddm-base/dd-ddm-base-min.js | 7 - .../build/dd-ddm-drop/dd-ddm-drop-min.js | 7 - .../3.7.2/build/dd-ddm/dd-ddm-coverage.js | 203 -- lib/yuilib/3.7.2/build/dd-ddm/dd-ddm-min.js | 7 - .../build/dd-delegate/dd-delegate-min.js | 7 - .../3.7.2/build/dd-drag/dd-drag-coverage.js | 1625 ---------- lib/yuilib/3.7.2/build/dd-drag/dd-drag-min.js | 7 - lib/yuilib/3.7.2/build/dd-drop/dd-drop-min.js | 7 - .../build/dd-gestures/dd-gestures-min.js | 7 - .../3.7.2/build/dd-proxy/dd-proxy-min.js | 7 - lib/yuilib/3.7.2/build/dial/dial-coverage.js | 1666 ----------- lib/yuilib/3.7.2/build/dial/dial-min.js | 7 - .../build/editor-base/editor-base-min.js | 7 - .../build/editor-bidi/editor-bidi-min.js | 7 - .../3.7.2/build/editor-br/editor-br-min.js | 7 - .../build/editor-lists/editor-lists-min.js | 7 - .../editor-para-base/editor-para-base-min.js | 7 - .../editor-para-ie/editor-para-ie-min.js | 7 - .../build/editor-para/editor-para-min.js | 7 - .../editor-selection/editor-selection-min.js | 7 - .../3.7.2/build/event-base/event-base-min.js | 7 - .../build/event-focus/event-focus-coverage.js | 377 --- .../build/event-focus/event-focus-min.js | 7 - .../build/event-move/event-move-coverage.js | 700 ----- .../3.7.2/build/event-move/event-move-min.js | 7 - .../exec-command/exec-command-coverage.js | 1069 ------- .../build/exec-command/exec-command-min.js | 7 - .../3.7.2/build/features/features-min.js | 7 - .../3.7.2/build/frame/frame-coverage.js | 1378 --------- lib/yuilib/3.7.2/build/frame/frame-min.js | 7 - lib/yuilib/3.7.2/build/get/get-min.js | 7 - lib/yuilib/3.7.2/build/io-base/io-base-min.js | 7 - .../3.7.2/build/io-queue/io-queue-coverage.js | 246 -- .../io-upload-iframe/io-upload-iframe-min.js | 7 - .../3.7.2/build/json-parse/json-parse-min.js | 7 - .../json-stringify/json-stringify-min.js | 7 - .../build/loader-base/loader-base-min.js | 7 - .../build/loader-yui3/loader-yui3-coverage.js | 2588 ---------------- .../build/loader-yui3/loader-yui3-min.js | 7 - lib/yuilib/3.7.2/build/loader/loader-min.js | 7 - .../3.7.2/build/matrix/matrix-coverage.js | 1211 -------- .../build/resize-base/resize-base-coverage.js | 2007 ------------- .../build/resize-base/resize-base-debug.js | 1654 ----------- .../build/resize-base/resize-base-min.js | 7 - .../3.7.2/build/resize-base/resize-base.js | 1653 ----------- .../resize-constrain-coverage.js | 601 ---- .../resize-constrain-debug.js | 461 --- .../resize-constrain/resize-constrain.js | 461 --- .../assets/skins/night/resize-base-skin.css | 52 - .../assets/skins/sam/resize-base-skin.css | 52 - .../assets/skins/night/resize-base-skin.css | 52 - .../assets/skins/sam/resize-base-skin.css | 52 - .../resize-proxy/resize-proxy-coverage.js | 248 -- .../build/resize-proxy/resize-proxy-debug.js | 172 -- .../3.7.2/build/resize-proxy/resize-proxy.js | 172 -- .../scrollview-base/scrollview-base-min.js | 7 - .../scrollview-scrollbars-min.js | 7 - .../3.7.2/build/simpleyui/simpleyui-min.js | 7 - .../3.7.2/build/sortable/sortable-min.js | 7 - .../test-console/test-console-coverage.js | 219 -- .../build/test-console/test-console-debug.js | 152 - .../build/test-console/test-console-min.js | 7 - .../3.7.2/build/test-console/test-console.js | 152 - lib/yuilib/3.7.2/build/test/test-min.js | 7 - .../transition-native-debug.js | 718 ----- .../transition-native-min.js | 8 - .../transition-native/transition-native.js | 716 ----- .../build/transition/transition-coverage.js | 1025 ------- .../3.7.2/build/transition/transition-min.js | 7 - .../widget-skin/assets/widget-base-core.css | 26 - .../assets/widget-base-core.css | 26 - .../3.7.2/build/yui-base/yui-base-min.js | 7 - .../3.7.2/build/yui-nodejs/yui-nodejs-min.js | 7 - lib/yuilib/3.7.2/build/yui/yui-min.js | 7 - .../align-plugin/align-plugin-coverage.js | 6 +- .../build/align-plugin/align-plugin-debug.js | 4 +- .../build/align-plugin/align-plugin-min.js | 4 +- .../build/align-plugin/align-plugin.js | 4 +- .../build/anim-base/anim-base-coverage.js | 6 +- .../build/anim-base/anim-base-debug.js | 4 +- .../build/anim-base/anim-base-min.js | 4 +- .../build/anim-base/anim-base.js | 4 +- .../build/anim-color/anim-color-coverage.js | 6 +- .../build/anim-color/anim-color-debug.js | 4 +- .../build/anim-color/anim-color-min.js | 4 +- .../build/anim-color/anim-color.js | 4 +- .../build/anim-curve/anim-curve-coverage.js | 6 +- .../build/anim-curve/anim-curve-debug.js | 4 +- .../build/anim-curve/anim-curve-min.js | 4 +- .../build/anim-curve/anim-curve.js | 4 +- .../build/anim-easing/anim-easing-coverage.js | 6 +- .../build/anim-easing/anim-easing-debug.js | 4 +- .../build/anim-easing/anim-easing-min.js | 4 +- .../build/anim-easing/anim-easing.js | 4 +- .../anim-node-plugin-coverage.js | 6 +- .../anim-node-plugin-debug.js | 4 +- .../anim-node-plugin/anim-node-plugin-min.js | 4 +- .../anim-node-plugin/anim-node-plugin.js | 4 +- .../build/anim-scroll/anim-scroll-coverage.js | 6 +- .../build/anim-scroll/anim-scroll-debug.js | 4 +- .../build/anim-scroll/anim-scroll-min.js | 4 +- .../build/anim-scroll/anim-scroll.js | 4 +- .../anim-shape-transform-coverage.js | 6 +- .../build/anim-shape/anim-shape-coverage.js | 6 +- .../build/anim-shape/anim-shape-debug.js | 4 +- .../build/anim-shape/anim-shape-min.js | 4 +- .../build/anim-shape/anim-shape.js | 4 +- .../build/anim-xy/anim-xy-coverage.js | 6 +- .../build/anim-xy/anim-xy-debug.js | 4 +- .../build/anim-xy/anim-xy-min.js | 4 +- .../{3.7.2 => 3.7.3}/build/anim-xy/anim-xy.js | 4 +- .../build/app-base/app-base-coverage.js | 6 +- .../build/app-base/app-base-debug.js | 4 +- .../build/app-base/app-base-min.js | 4 +- .../build/app-base/app-base.js | 4 +- .../build/app-content/app-content-coverage.js | 6 +- .../build/app-content/app-content-debug.js | 4 +- .../build/app-content/app-content-min.js | 4 +- .../build/app-content/app-content.js | 4 +- .../app-transitions-css-min.css | 2 +- .../app-transitions-css.css | 2 +- .../app-transitions-native-coverage.js | 6 +- .../app-transitions-native-debug.js | 4 +- .../app-transitions-native-min.js | 4 +- .../app-transitions-native.js | 4 +- .../app-transitions-coverage.js | 6 +- .../app-transitions/app-transitions-debug.js | 4 +- .../app-transitions/app-transitions-min.js | 4 +- .../build/app-transitions/app-transitions.js | 4 +- .../array-extras/array-extras-coverage.js | 6 +- .../build/array-extras/array-extras-debug.js | 4 +- .../build/array-extras/array-extras-min.js | 4 +- .../build/array-extras/array-extras.js | 4 +- .../array-invoke/array-invoke-coverage.js | 6 +- .../build/array-invoke/array-invoke-debug.js | 4 +- .../build/array-invoke/array-invoke-min.js | 4 +- .../build/array-invoke/array-invoke.js | 4 +- .../arraylist-add/arraylist-add-coverage.js | 6 +- .../arraylist-add/arraylist-add-debug.js | 4 +- .../build/arraylist-add/arraylist-add-min.js | 4 +- .../build/arraylist-add/arraylist-add.js | 4 +- .../arraylist-filter-coverage.js | 6 +- .../arraylist-filter-debug.js | 4 +- .../arraylist-filter/arraylist-filter-min.js | 4 +- .../arraylist-filter/arraylist-filter.js | 4 +- .../build/arraylist/arraylist-coverage.js | 6 +- .../build/arraylist/arraylist-debug.js | 4 +- .../build/arraylist/arraylist-min.js | 4 +- .../build/arraylist/arraylist.js | 4 +- .../build/arraysort/arraysort-coverage.js | 6 +- .../build/arraysort/arraysort-debug.js | 4 +- .../build/arraysort/arraysort-min.js | 4 +- .../build/arraysort/arraysort.js | 4 +- .../build/assets/skins/sam/arrows.png | Bin .../assets/skins/sam/autocomplete-list.css | 2 +- .../build/assets/skins/sam/bg.png | Bin .../build/assets/skins/sam/calendar-base.css | 2 +- .../build}/assets/skins/sam/calendar.css | 2 +- .../assets/skins/sam/calendarnavigator.css | 2 +- .../assets/skins/sam/console-filters.css | 2 +- .../build/assets/skins/sam/console.css | 2 +- .../skins/sam/datatable-base-deprecated.css | 2 +- .../build/assets/skins/sam/datatable-base.css | 2 +- .../assets/skins/sam/datatable-message.css | 2 +- .../assets/skins/sam/datatable-scroll.css | 2 +- .../build/assets/skins/sam/datatable-sort.css | 2 +- .../build/assets/skins/sam/dial.css | 2 +- .../build/assets/skins/sam/dt-arrow-dn.png | Bin .../build/assets/skins/sam/dt-arrow-up.png | Bin .../sam/horizontal-menu-submenu-indicator.png | Bin .../sam/horizontal-menu-submenu-toggle.png | Bin .../build}/assets/skins/sam/node-flick.css | 2 +- .../build/assets/skins/sam/node-menunav.css | 2 +- .../build}/assets/skins/sam/overlay.css | 2 +- .../build/assets/skins/sam/panel.css | 2 +- .../build/assets/skins/sam/rail-x-lines.png | Bin .../build/assets/skins/sam/rail-x.png | Bin .../build/assets/skins/sam/rail-y-lines.png | Bin .../build/assets/skins/sam/rail-y.png | Bin .../build/assets/skins/sam/resize-base.css | 2 +- .../assets/skins/sam/scrollview-base.css | 2 +- .../assets/skins/sam/scrollview-list.css | 2 +- .../skins/sam/scrollview-scrollbars.css | 2 +- .../build/assets/skins/sam/skin.css | 2 +- .../build/assets/skins/sam/slider-base.css | 2 +- .../assets/skins/sam/sort-arrow-sprite-ie.png | Bin .../assets/skins/sam/sort-arrow-sprite.png | Bin .../build/assets/skins/sam/sprite.png | Bin .../build/assets/skins/sam/sprite_icons.gif | Bin .../build/assets/skins/sam/sprite_icons.png | Bin .../build/assets/skins/sam/tabview.css | 2 +- .../build/assets/skins/sam/test-console.css | 2 +- .../build/assets/skins/sam/thumb-x.png | Bin .../build/assets/skins/sam/thumb-y.png | Bin .../sam/vertical-menu-submenu-indicator.png | Bin .../build/assets/skins/sam/warn_error.png | Bin .../build/assets/skins/sam/widget-base.css | 2 +- .../build/assets/skins/sam/widget-buttons.css | 2 +- .../assets/skins/sam/widget-modality.css | 2 +- .../build/assets/skins/sam/widget-stack.css | 2 +- .../build/async-queue/async-queue-coverage.js | 6 +- .../build/async-queue/async-queue-debug.js | 4 +- .../build/async-queue/async-queue-min.js | 4 +- .../build/async-queue/async-queue.js | 4 +- .../attribute-base/attribute-base-coverage.js | 6 +- .../attribute-base/attribute-base-debug.js | 4 +- .../attribute-base/attribute-base-min.js | 4 +- .../build/attribute-base/attribute-base.js | 4 +- .../attribute-complex-coverage.js | 6 +- .../attribute-complex-debug.js | 4 +- .../attribute-complex-min.js | 4 +- .../attribute-complex/attribute-complex.js | 4 +- .../attribute-core/attribute-core-coverage.js | 6 +- .../attribute-core/attribute-core-debug.js | 4 +- .../attribute-core/attribute-core-min.js | 4 +- .../build/attribute-core/attribute-core.js | 4 +- .../attribute-events-coverage.js | 6 +- .../attribute-events-debug.js | 4 +- .../attribute-events/attribute-events-min.js | 4 +- .../attribute-events/attribute-events.js | 4 +- .../attribute-extras-coverage.js | 6 +- .../attribute-extras-debug.js | 4 +- .../attribute-extras/attribute-extras-min.js | 4 +- .../attribute-extras/attribute-extras.js | 4 +- .../autocomplete-base-coverage.js | 6 +- .../autocomplete-base-debug.js | 4 +- .../autocomplete-base-min.js | 4 +- .../autocomplete-base/autocomplete-base.js | 4 +- ...utocomplete-filters-accentfold-coverage.js | 6 +- .../autocomplete-filters-accentfold-debug.js | 4 +- .../autocomplete-filters-accentfold-min.js | 4 +- .../autocomplete-filters-accentfold.js | 4 +- .../autocomplete-filters-coverage.js | 6 +- .../autocomplete-filters-debug.js | 4 +- .../autocomplete-filters-min.js | 4 +- .../autocomplete-filters.js | 4 +- ...mplete-highlighters-accentfold-coverage.js | 6 +- ...ocomplete-highlighters-accentfold-debug.js | 4 +- ...utocomplete-highlighters-accentfold-min.js | 4 +- .../autocomplete-highlighters-accentfold.js | 4 +- .../autocomplete-highlighters-coverage.js | 6 +- .../autocomplete-highlighters-debug.js | 4 +- .../autocomplete-highlighters-min.js | 4 +- .../autocomplete-highlighters.js | 4 +- .../autocomplete-list-keys-coverage.js | 6 +- .../autocomplete-list-keys-debug.js | 4 +- .../autocomplete-list-keys-min.js | 4 +- .../autocomplete-list-keys.js | 4 +- .../assets/autocomplete-list-core.css | 2 +- .../skins/night/autocomplete-list-skin.css | 2 +- .../assets/skins/night/autocomplete-list.css | 2 +- .../skins/sam/autocomplete-list-skin.css | 2 +- .../assets/skins/sam/autocomplete-list.css | 2 +- .../autocomplete-list-coverage.js | 6 +- .../autocomplete-list-debug.js | 4 +- .../autocomplete-list-min.js | 4 +- .../autocomplete-list/autocomplete-list.js | 4 +- .../lang/autocomplete-list.js | 4 +- .../lang/autocomplete-list_en.js | 4 +- .../autocomplete-plugin-coverage.js | 6 +- .../autocomplete-plugin-debug.js | 4 +- .../autocomplete-plugin-min.js | 4 +- .../autocomplete-plugin.js | 4 +- .../autocomplete-sources-coverage.js | 6 +- .../autocomplete-sources-debug.js | 4 +- .../autocomplete-sources-min.js | 4 +- .../autocomplete-sources.js | 4 +- .../build/base-base/base-base-coverage.js | 6 +- .../build/base-base/base-base-debug.js | 4 +- .../build/base-base/base-base-min.js | 4 +- .../build/base-base/base-base.js | 4 +- .../build/base-build/base-build-coverage.js | 6 +- .../build/base-build/base-build-debug.js | 4 +- .../build/base-build/base-build-min.js | 4 +- .../build/base-build/base-build.js | 4 +- .../build/base-core/base-core-coverage.js | 6 +- .../build/base-core/base-core-debug.js | 4 +- .../build/base-core/base-core-min.js | 4 +- .../build/base-core/base-core.js | 4 +- .../base-pluginhost-coverage.js | 6 +- .../base-pluginhost/base-pluginhost-debug.js | 4 +- .../base-pluginhost/base-pluginhost-min.js | 4 +- .../build/base-pluginhost/base-pluginhost.js | 4 +- .../build/button-core/button-core-coverage.js | 6 +- .../build/button-core/button-core-debug.js | 4 +- .../build/button-core/button-core-min.js | 4 +- .../build/button-core/button-core.js | 4 +- .../button-group/button-group-coverage.js | 6 +- .../build/button-group/button-group-debug.js | 4 +- .../build/button-group/button-group-min.js | 4 +- .../build/button-group/button-group.js | 4 +- .../button-plugin/button-plugin-coverage.js | 6 +- .../button-plugin/button-plugin-debug.js | 4 +- .../build/button-plugin/button-plugin-min.js | 4 +- .../build/button-plugin/button-plugin.js | 4 +- .../build/button/button-coverage.js | 6 +- .../build/button/button-debug.js | 4 +- .../build/button/button-min.js | 4 +- .../{3.7.2 => 3.7.3}/build/button/button.js | 4 +- .../build/cache-base/cache-base-coverage.js | 6 +- .../build/cache-base/cache-base-debug.js | 4 +- .../build/cache-base/cache-base-min.js | 4 +- .../build/cache-base/cache-base.js | 4 +- .../cache-offline/cache-offline-coverage.js | 6 +- .../cache-offline/cache-offline-debug.js | 4 +- .../build/cache-offline/cache-offline-min.js | 4 +- .../build/cache-offline/cache-offline.js | 4 +- .../cache-plugin/cache-plugin-coverage.js | 6 +- .../build/cache-plugin/cache-plugin-debug.js | 4 +- .../build/cache-plugin/cache-plugin-min.js | 4 +- .../build/cache-plugin/cache-plugin.js | 4 +- .../assets/calendar-base-core.css | 2 +- .../assets/skins/night/calendar-base-skin.css | 2 +- .../assets/skins/night/calendar-base.css | 2 +- .../assets/skins/sam/calendar-base-skin.css | 2 +- .../assets/skins/sam/calendar-base.css | 2 +- .../calendar-base/calendar-base-coverage.js | 6 +- .../calendar-base/calendar-base-debug.js | 4 +- .../build/calendar-base/calendar-base-min.js | 4 +- .../build/calendar-base/calendar-base.js | 4 +- .../build/calendar-base/lang/calendar-base.js | 4 +- .../calendar-base/lang/calendar-base_de.js | 4 +- .../calendar-base/lang/calendar-base_en.js | 4 +- .../calendar-base/lang/calendar-base_fr.js | 4 +- .../calendar-base/lang/calendar-base_ja.js | 4 +- .../calendar-base/lang/calendar-base_nb-NO.js | 4 +- .../calendar-base/lang/calendar-base_pt-BR.js | 4 +- .../calendar-base/lang/calendar-base_ru.js | 4 +- .../lang/calendar-base_zh-HANT-TW.js | 4 +- .../build/calendar/assets/calendar-core.css | 2 +- .../assets/skins/night/calendar-skin.css | 2 +- .../calendar/assets/skins/night/calendar.css | 2 +- .../assets/skins/sam/calendar-skin.css | 2 +- .../calendar}/assets/skins/sam/calendar.css | 2 +- .../build/calendar/calendar-coverage.js | 6 +- .../build/calendar/calendar-debug.js | 4 +- .../build/calendar/calendar-min.js | 4 +- .../build/calendar/calendar.js | 4 +- .../build/calendar/lang/calendar.js | 4 +- .../build/calendar/lang/calendar_de.js | 4 +- .../build/calendar/lang/calendar_en.js | 4 +- .../build/calendar/lang/calendar_fr.js | 4 +- .../build/calendar/lang/calendar_ja.js | 4 +- .../build/calendar/lang/calendar_nb-NO.js | 4 +- .../build/calendar/lang/calendar_pt-BR.js | 4 +- .../build/calendar/lang/calendar_ru.js | 4 +- .../calendar/lang/calendar_zh-HANT-TW.js | 4 +- .../assets/calendarnavigator-core.css | 2 +- .../skins/night/calendarnavigator-skin.css | 2 +- .../assets/skins/night/calendarnavigator.css | 2 +- .../skins/sam/calendarnavigator-skin.css | 2 +- .../assets/skins/sam/calendarnavigator.css | 2 +- .../calendarnavigator-coverage.js | 6 +- .../calendarnavigator-debug.js | 4 +- .../calendarnavigator-min.js | 4 +- .../calendarnavigator/calendarnavigator.js | 4 +- .../build/charts-base/charts-base-coverage.js | 6 +- .../build/charts-base/charts-base-debug.js | 4 +- .../build/charts-base/charts-base-min.js | 4 +- .../build/charts-base/charts-base.js | 4 +- .../charts-legend/charts-legend-coverage.js | 6 +- .../charts-legend/charts-legend-debug.js | 4 +- .../build/charts-legend/charts-legend-min.js | 4 +- .../build/charts-legend/charts-legend.js | 4 +- .../build/charts/charts-coverage.js | 6 +- .../build/charts/charts-debug.js | 4 +- .../build/charts/charts-min.js | 4 +- .../{3.7.2 => 3.7.3}/build/charts/charts.js | 4 +- .../classnamemanager-coverage.js | 6 +- .../classnamemanager-debug.js | 4 +- .../classnamemanager/classnamemanager-min.js | 4 +- .../classnamemanager/classnamemanager.js | 4 +- .../assets/slider-base-core.css | 2 +- .../clickable-rail}/assets/slider-core.css | 2 +- .../assets/thumb-x-oblong-dark.png | Bin .../clickable-rail/assets/thumb-x-oblong.png | Bin .../assets/thumb-x-oblong2-dark.png | Bin .../clickable-rail/assets/thumb-x-oblong2.png | Bin .../assets/thumb-y-oblong-dark.png | Bin .../clickable-rail/assets/thumb-y-oblong.png | Bin .../assets/thumb-y-oblong2-dark.png | Bin .../clickable-rail/assets/thumb-y-oblong2.png | Bin .../clickable-rail/clickable-rail-coverage.js | 6 +- .../clickable-rail/clickable-rail-debug.js | 4 +- .../clickable-rail/clickable-rail-min.js | 4 +- .../build/clickable-rail/clickable-rail.js | 4 +- .../assets/console-filters-core.css | 2 +- .../assets/skins/sam/console-filters-skin.css | 2 +- .../assets/skins/sam/console-filters.css | 2 +- .../console-filters-coverage.js | 6 +- .../console-filters/console-filters-debug.js | 4 +- .../console-filters/console-filters-min.js | 4 +- .../build/console-filters/console-filters.js | 4 +- .../build/console/assets/console-core.css | 2 +- .../console/assets/console-filters-core.css | 2 +- .../build/console/assets/skins/sam/bg.png | Bin .../assets/skins/sam/console-filters-skin.css | 2 +- .../assets/skins/sam/console-filters.css | 2 +- .../console/assets/skins/sam/console-skin.css | 2 +- .../console/assets/skins/sam/console.css | 2 +- .../console/assets/skins/sam/warn_error.png | Bin .../build/console/assets/warn_error.png | Bin .../build/console/console-coverage.js | 39 +- .../build/console/console-debug.js | 9 +- .../build/console/console-min.js | 4 +- .../{3.7.2 => 3.7.3}/build/console/console.js | 9 +- .../build/console/lang/console.js | 4 +- .../build/console/lang/console_en.js | 4 +- .../build/console/lang/console_es.js | 4 +- .../build/console/lang/console_ja.js | 4 +- .../build/cookie/cookie-coverage.js | 6 +- .../build/cookie/cookie-debug.js | 4 +- .../build/cookie/cookie-min.js | 4 +- .../{3.7.2 => 3.7.3}/build/cookie/cookie.js | 4 +- .../createlink-base-coverage.js | 67 +- .../createlink-base/createlink-base-debug.js | 9 +- .../createlink-base/createlink-base-min.js | 4 +- .../build/createlink-base/createlink-base.js | 9 +- .../cssbase-context/base-context-min.css | 2 +- .../build/cssbase-context/base-context.css | 2 +- .../cssbase-context/cssbase-context-min.css | 2 +- .../build/cssbase-context/cssbase-context.css | 2 +- .../build/cssbase/base-min.css | 2 +- .../{3.7.2 => 3.7.3}/build/cssbase/base.css | 2 +- .../build/cssbase/cssbase-min.css | 2 +- .../build/cssbase/cssbase.css | 2 +- .../build/cssbutton/cssbutton-min.css | 2 +- .../build/cssbutton/cssbutton.css | 2 +- .../cssfonts-context/cssfonts-context-min.css | 2 +- .../cssfonts-context/cssfonts-context.css | 2 +- .../cssfonts-context/fonts-context-min.css | 2 +- .../build/cssfonts-context/fonts-context.css | 2 +- .../build/cssfonts/cssfonts-min.css | 2 +- .../build/cssfonts/cssfonts.css | 2 +- .../build/cssfonts/fonts-min.css | 2 +- .../{3.7.2 => 3.7.3}/build/cssfonts/fonts.css | 2 +- .../build/cssgrids-base/cssgrids-base-min.css | 2 +- .../build/cssgrids-base/cssgrids-base.css | 2 +- .../grids-context-min.css | 2 +- .../grids-context.css | 2 +- .../cssgrids-units/cssgrids-units-min.css | 2 +- .../build/cssgrids-units/cssgrids-units.css | 2 +- .../build/cssgrids/cssgrids-min.css | 2 +- .../build/cssgrids/cssgrids.css | 2 +- .../build/cssgrids/grids-min.css | 2 +- .../{3.7.2 => 3.7.3}/build/cssgrids/grids.css | 2 +- .../cssreset-context/cssreset-context-min.css | 2 +- .../cssreset-context/cssreset-context.css | 2 +- .../cssreset-context/reset-context-min.css | 2 +- .../build/cssreset-context/reset-context.css | 2 +- .../build/cssreset/cssreset-min.css | 2 +- .../build/cssreset/cssreset.css | 2 +- .../build/cssreset/reset-min.css | 2 +- .../{3.7.2 => 3.7.3}/build/cssreset/reset.css | 2 +- .../dataschema-array-coverage.js | 6 +- .../dataschema-array-debug.js | 4 +- .../dataschema-array/dataschema-array-min.js | 4 +- .../dataschema-array/dataschema-array.js | 4 +- .../dataschema-base-coverage.js | 6 +- .../dataschema-base/dataschema-base-debug.js | 4 +- .../dataschema-base/dataschema-base-min.js | 4 +- .../build/dataschema-base/dataschema-base.js | 4 +- .../dataschema-json-coverage.js | 6 +- .../dataschema-json/dataschema-json-debug.js | 4 +- .../dataschema-json/dataschema-json-min.js | 4 +- .../build/dataschema-json/dataschema-json.js | 4 +- .../dataschema-text-coverage.js | 6 +- .../dataschema-text/dataschema-text-debug.js | 4 +- .../dataschema-text/dataschema-text-min.js | 4 +- .../build/dataschema-text/dataschema-text.js | 4 +- .../dataschema-xml/dataschema-xml-coverage.js | 157 +- .../dataschema-xml/dataschema-xml-debug.js | 12 +- .../dataschema-xml/dataschema-xml-min.js | 7 + .../build/dataschema-xml/dataschema-xml.js | 12 +- .../datasource-arrayschema-coverage.js | 6 +- .../datasource-arrayschema-debug.js | 4 +- .../datasource-arrayschema-min.js | 4 +- .../datasource-arrayschema.js | 4 +- .../datasource-cache-coverage.js | 6 +- .../datasource-cache-debug.js | 4 +- .../datasource-cache/datasource-cache-min.js | 4 +- .../datasource-cache/datasource-cache.js | 4 +- .../datasource-function-coverage.js | 6 +- .../datasource-function-debug.js | 4 +- .../datasource-function-min.js | 4 +- .../datasource-function.js | 4 +- .../datasource-get/datasource-get-coverage.js | 6 +- .../datasource-get/datasource-get-debug.js | 4 +- .../datasource-get/datasource-get-min.js | 4 +- .../build/datasource-get/datasource-get.js | 4 +- .../datasource-io/datasource-io-coverage.js | 6 +- .../datasource-io/datasource-io-debug.js | 4 +- .../build/datasource-io/datasource-io-min.js | 4 +- .../build/datasource-io/datasource-io.js | 4 +- .../datasource-jsonschema-coverage.js | 6 +- .../datasource-jsonschema-debug.js | 4 +- .../datasource-jsonschema-min.js | 4 +- .../datasource-jsonschema.js | 4 +- .../datasource-local-coverage.js | 6 +- .../datasource-local-debug.js | 4 +- .../datasource-local/datasource-local-min.js | 4 +- .../datasource-local/datasource-local.js | 4 +- .../datasource-polling-coverage.js | 6 +- .../datasource-polling-debug.js | 4 +- .../datasource-polling-min.js | 4 +- .../datasource-polling/datasource-polling.js | 4 +- .../datasource-textschema-coverage.js | 6 +- .../datasource-textschema-debug.js | 4 +- .../datasource-textschema-min.js | 4 +- .../datasource-textschema.js | 4 +- .../datasource-xmlschema-coverage.js | 8 +- .../datasource-xmlschema-debug.js | 6 +- .../datasource-xmlschema-min.js | 4 +- .../datasource-xmlschema.js | 6 +- .../assets/datatable-base-deprecated-core.css | 2 +- .../night/datatable-base-deprecated-skin.css | 2 +- .../skins/night/datatable-base-deprecated.css | 2 +- .../sam/datatable-base-deprecated-skin.css | 2 +- .../skins/sam/datatable-base-deprecated.css | 2 +- .../assets/skins/sam/dt-arrow-dn.png | Bin .../assets/skins/sam/dt-arrow-up.png | Bin .../datatable-base-deprecated-coverage.js | 6 +- .../datatable-base-deprecated-debug.js | 4 +- .../datatable-base-deprecated-min.js | 4 +- .../datatable-base-deprecated.js | 4 +- .../assets/datatable-base-core.css | 2 +- .../skins/night/datatable-base-skin.css | 2 +- .../assets/skins/night/datatable-base.css | 2 +- .../assets/skins/sam/datatable-base-skin.css | 2 +- .../assets/skins/sam/datatable-base.css | 2 +- .../datatable-base/datatable-base-coverage.js | 6 +- .../datatable-base/datatable-base-debug.js | 4 +- .../datatable-base/datatable-base-min.js | 4 +- .../build/datatable-base/datatable-base.js | 4 +- .../datatable-body/datatable-body-coverage.js | 6 +- .../datatable-body/datatable-body-debug.js | 4 +- .../datatable-body/datatable-body-min.js | 4 +- .../build/datatable-body/datatable-body.js | 4 +- .../datatable-column-widths-coverage.js | 6 +- .../datatable-column-widths-debug.js | 4 +- .../datatable-column-widths-min.js | 4 +- .../datatable-column-widths.js | 4 +- .../datatable-core/datatable-core-coverage.js | 6 +- .../datatable-core/datatable-core-debug.js | 4 +- .../datatable-core/datatable-core-min.js | 4 +- .../build/datatable-core/datatable-core.js | 4 +- ...atatable-datasource-deprecated-coverage.js | 6 +- .../datatable-datasource-deprecated-debug.js | 4 +- .../datatable-datasource-deprecated-min.js | 4 +- .../datatable-datasource-deprecated.js | 4 +- .../datatable-datasource-coverage.js | 6 +- .../datatable-datasource-debug.js | 4 +- .../datatable-datasource-min.js | 4 +- .../datatable-datasource.js | 4 +- .../datatable-head/datatable-head-coverage.js | 6 +- .../datatable-head/datatable-head-debug.js | 4 +- .../datatable-head/datatable-head-min.js | 4 +- .../build/datatable-head/datatable-head.js | 4 +- .../assets/datatable-message-core.css | 2 +- .../skins/night/datatable-message-skin.css | 2 +- .../assets/skins/night/datatable-message.css | 2 +- .../skins/sam/datatable-message-skin.css | 2 +- .../assets/skins/sam/datatable-message.css | 2 +- .../datatable-message-coverage.js | 6 +- .../datatable-message-debug.js | 4 +- .../datatable-message-min.js | 4 +- .../datatable-message/datatable-message.js | 4 +- .../lang/datatable-message.js | 4 +- .../lang/datatable-message_en.js | 4 +- .../datatable-mutable-coverage.js | 6 +- .../datatable-mutable-debug.js | 4 +- .../datatable-mutable-min.js | 4 +- .../datatable-mutable/datatable-mutable.js | 4 +- .../datatable-scroll-deprecated-coverage.js | 6 +- .../datatable-scroll-deprecated-debug.js | 4 +- .../datatable-scroll-deprecated-min.js | 4 +- .../datatable-scroll-deprecated.js | 4 +- .../assets/datatable-scroll-core.css | 2 +- .../skins/night/datatable-scroll-skin.css | 2 +- .../assets/skins/night/datatable-scroll.css | 2 +- .../skins/sam/datatable-scroll-skin.css | 2 +- .../assets/skins/sam/datatable-scroll.css | 2 +- .../datatable-scroll-coverage.js | 6 +- .../datatable-scroll-debug.js | 4 +- .../datatable-scroll/datatable-scroll-min.js | 4 +- .../datatable-scroll/datatable-scroll.js | 4 +- .../datatable-sort-deprecated-coverage.js | 6 +- .../datatable-sort-deprecated-debug.js | 4 +- .../datatable-sort-deprecated-min.js | 4 +- .../datatable-sort-deprecated.js | 4 +- .../lang/datatable-sort-deprecated.js | 4 +- .../lang/datatable-sort-deprecated_en.js | 4 +- .../assets/datatable-sort-core.css | 2 +- .../skins/night/datatable-sort-skin.css | 2 +- .../assets/skins/night/datatable-sort.css | 2 +- .../skins/night/sort-arrow-sprite-ie.png | Bin .../assets/skins/night/sort-arrow-sprite.png | Bin .../assets/skins/sam/datatable-sort-skin.css | 2 +- .../assets/skins/sam/datatable-sort.css | 2 +- .../assets/skins/sam/sort-arrow-sprite-ie.png | Bin .../assets/skins/sam/sort-arrow-sprite.png | Bin .../datatable-sort/datatable-sort-coverage.js | 6 +- .../datatable-sort/datatable-sort-debug.js | 4 +- .../datatable-sort/datatable-sort-min.js | 4 +- .../build/datatable-sort/datatable-sort.js | 4 +- .../datatable-sort/lang/datatable-sort.js | 4 +- .../datatable-sort/lang/datatable-sort_en.js | 4 +- .../datatable-table-coverage.js | 6 +- .../datatable-table/datatable-table-debug.js | 4 +- .../datatable-table/datatable-table-min.js | 4 +- .../build/datatable-table/datatable-table.js | 4 +- .../datatype-date-format-coverage.js | 6 +- .../datatype-date-format-debug.js | 4 +- .../datatype-date-format-min.js | 4 +- .../datatype-date-format.js | 4 +- .../lang/datatype-date-format.js | 4 +- .../lang/datatype-date-format_ar-JO.js | 4 +- .../lang/datatype-date-format_ar.js | 4 +- .../lang/datatype-date-format_ca-ES.js | 4 +- .../lang/datatype-date-format_ca.js | 4 +- .../lang/datatype-date-format_da-DK.js | 4 +- .../lang/datatype-date-format_da.js | 4 +- .../lang/datatype-date-format_de-AT.js | 4 +- .../lang/datatype-date-format_de-DE.js | 4 +- .../lang/datatype-date-format_de.js | 4 +- .../lang/datatype-date-format_el-GR.js | 4 +- .../lang/datatype-date-format_el.js | 4 +- .../lang/datatype-date-format_en-AU.js | 4 +- .../lang/datatype-date-format_en-CA.js | 4 +- .../lang/datatype-date-format_en-GB.js | 4 +- .../lang/datatype-date-format_en-IE.js | 4 +- .../lang/datatype-date-format_en-IN.js | 4 +- .../lang/datatype-date-format_en-JO.js | 4 +- .../lang/datatype-date-format_en-MY.js | 4 +- .../lang/datatype-date-format_en-NZ.js | 4 +- .../lang/datatype-date-format_en-PH.js | 4 +- .../lang/datatype-date-format_en-SG.js | 4 +- .../lang/datatype-date-format_en-US.js | 4 +- .../lang/datatype-date-format_en.js | 4 +- .../lang/datatype-date-format_es-AR.js | 4 +- .../lang/datatype-date-format_es-BO.js | 4 +- .../lang/datatype-date-format_es-CL.js | 4 +- .../lang/datatype-date-format_es-CO.js | 4 +- .../lang/datatype-date-format_es-EC.js | 4 +- .../lang/datatype-date-format_es-ES.js | 4 +- .../lang/datatype-date-format_es-MX.js | 4 +- .../lang/datatype-date-format_es-PE.js | 4 +- .../lang/datatype-date-format_es-PY.js | 4 +- .../lang/datatype-date-format_es-US.js | 4 +- .../lang/datatype-date-format_es-UY.js | 4 +- .../lang/datatype-date-format_es-VE.js | 4 +- .../lang/datatype-date-format_es.js | 4 +- .../lang/datatype-date-format_fi-FI.js | 4 +- .../lang/datatype-date-format_fi.js | 4 +- .../lang/datatype-date-format_fr-BE.js | 4 +- .../lang/datatype-date-format_fr-CA.js | 4 +- .../lang/datatype-date-format_fr-FR.js | 4 +- .../lang/datatype-date-format_fr.js | 4 +- .../lang/datatype-date-format_hi-IN.js | 4 +- .../lang/datatype-date-format_hi.js | 4 +- .../lang/datatype-date-format_id-ID.js | 4 +- .../lang/datatype-date-format_id.js | 4 +- .../lang/datatype-date-format_it-IT.js | 4 +- .../lang/datatype-date-format_it.js | 4 +- .../lang/datatype-date-format_ja-JP.js | 4 +- .../lang/datatype-date-format_ja.js | 4 +- .../lang/datatype-date-format_ko-KR.js | 4 +- .../lang/datatype-date-format_ko.js | 4 +- .../lang/datatype-date-format_ms-MY.js | 4 +- .../lang/datatype-date-format_ms.js | 4 +- .../lang/datatype-date-format_nb-NO.js | 4 +- .../lang/datatype-date-format_nb.js | 4 +- .../lang/datatype-date-format_nl-BE.js | 4 +- .../lang/datatype-date-format_nl-NL.js | 4 +- .../lang/datatype-date-format_nl.js | 4 +- .../lang/datatype-date-format_pl-PL.js | 4 +- .../lang/datatype-date-format_pl.js | 4 +- .../lang/datatype-date-format_pt-BR.js | 4 +- .../lang/datatype-date-format_pt.js | 4 +- .../lang/datatype-date-format_ro-RO.js | 4 +- .../lang/datatype-date-format_ro.js | 4 +- .../lang/datatype-date-format_ru-RU.js | 4 +- .../lang/datatype-date-format_ru.js | 4 +- .../lang/datatype-date-format_sv-SE.js | 4 +- .../lang/datatype-date-format_sv.js | 4 +- .../lang/datatype-date-format_th-TH.js | 4 +- .../lang/datatype-date-format_th.js | 4 +- .../lang/datatype-date-format_tr-TR.js | 4 +- .../lang/datatype-date-format_tr.js | 4 +- .../lang/datatype-date-format_vi-VN.js | 4 +- .../lang/datatype-date-format_vi.js | 4 +- .../lang/datatype-date-format_zh-Hans-CN.js | 4 +- .../lang/datatype-date-format_zh-Hans.js | 4 +- .../lang/datatype-date-format_zh-Hant-HK.js | 4 +- .../lang/datatype-date-format_zh-Hant-TW.js | 4 +- .../lang/datatype-date-format_zh-Hant.js | 4 +- .../datatype-date-math-coverage.js | 6 +- .../datatype-date-math-debug.js | 4 +- .../datatype-date-math-min.js | 4 +- .../datatype-date-math/datatype-date-math.js | 4 +- .../datatype-date-parse-coverage.js | 6 +- .../datatype-date-parse-debug.js | 4 +- .../datatype-date-parse-min.js | 4 +- .../datatype-date-parse.js | 4 +- .../datatype-number-format-coverage.js | 6 +- .../datatype-number-format-debug.js | 4 +- .../datatype-number-format-min.js | 4 +- .../datatype-number-format.js | 4 +- .../datatype-number-parse-coverage.js | 6 +- .../datatype-number-parse-debug.js | 4 +- .../datatype-number-parse-min.js | 4 +- .../datatype-number-parse.js | 4 +- .../datatype-xml-format-coverage.js | 28 +- .../datatype-xml-format-debug.js | 8 +- .../datatype-xml-format-min.js | 7 + .../datatype-xml-format.js | 8 +- .../datatype-xml-parse-coverage.js | 29 +- .../datatype-xml-parse-debug.js | 12 +- .../datatype-xml-parse-min.js | 7 + .../datatype-xml-parse/datatype-xml-parse.js | 10 +- .../dd-constrain/dd-constrain-coverage.js | 761 +++++ .../build/dd-constrain/dd-constrain-debug.js | 31 +- .../build/dd-constrain/dd-constrain-min.js | 7 + .../build/dd-constrain/dd-constrain.js | 31 +- .../build/dd-ddm-base/dd-ddm-base-coverage.js | 135 +- .../build/dd-ddm-base/dd-ddm-base-debug.js | 41 +- .../build/dd-ddm-base/dd-ddm-base-min.js | 7 + .../build/dd-ddm-base/dd-ddm-base.js | 41 +- .../build/dd-ddm-drop/dd-ddm-drop-coverage.js | 353 +-- .../build/dd-ddm-drop/dd-ddm-drop-debug.js | 65 +- .../build/dd-ddm-drop/dd-ddm-drop-min.js | 7 + .../build/dd-ddm-drop/dd-ddm-drop.js | 65 +- .../3.7.3/build/dd-ddm/dd-ddm-coverage.js | 204 ++ .../build/dd-ddm/dd-ddm-debug.js | 15 +- lib/yuilib/3.7.3/build/dd-ddm/dd-ddm-min.js | 7 + .../{3.7.2 => 3.7.3}/build/dd-ddm/dd-ddm.js | 15 +- .../build/dd-delegate/dd-delegate-coverage.js | 52 +- .../build/dd-delegate/dd-delegate-debug.js | 50 +- .../build/dd-delegate/dd-delegate-min.js | 7 + .../build/dd-delegate/dd-delegate.js | 50 +- .../3.7.3/build/dd-drag/dd-drag-coverage.js | 1639 +++++++++++ .../build/dd-drag/dd-drag-debug.js | 129 +- lib/yuilib/3.7.3/build/dd-drag/dd-drag-min.js | 7 + .../{3.7.2 => 3.7.3}/build/dd-drag/dd-drag.js | 125 +- .../dd-drop-plugin/dd-drop-plugin-coverage.js | 8 +- .../dd-drop-plugin/dd-drop-plugin-debug.js | 6 +- .../dd-drop-plugin/dd-drop-plugin-min.js | 4 +- .../build/dd-drop-plugin/dd-drop-plugin.js | 6 +- .../build/dd-drop/dd-drop-coverage.js | 358 +-- .../build/dd-drop/dd-drop-debug.js | 52 +- lib/yuilib/3.7.3/build/dd-drop/dd-drop-min.js | 7 + .../{3.7.2 => 3.7.3}/build/dd-drop/dd-drop.js | 52 +- .../build/dd-gestures/dd-gestures-coverage.js | 44 +- .../build/dd-gestures/dd-gestures-debug.js | 18 +- .../build/dd-gestures/dd-gestures-min.js | 7 + .../build/dd-gestures/dd-gestures.js | 18 +- .../build/dd-plugin/dd-plugin-coverage.js | 24 +- .../build/dd-plugin/dd-plugin-debug.js | 22 +- .../build/dd-plugin/dd-plugin-min.js | 4 +- .../build/dd-plugin/dd-plugin.js | 22 +- .../build/dd-proxy/dd-proxy-coverage.js | 18 +- .../build/dd-proxy/dd-proxy-debug.js | 16 +- .../3.7.3/build/dd-proxy/dd-proxy-min.js | 7 + .../build/dd-proxy/dd-proxy.js | 16 +- .../build/dd-scroll/dd-scroll-coverage.js | 28 +- .../build/dd-scroll/dd-scroll-debug.js | 26 +- .../build/dd-scroll/dd-scroll-min.js | 4 +- .../build/dd-scroll/dd-scroll.js | 26 +- .../build/dial/assets/dial-core.css | 2 +- .../dial/assets/skins/night/dial-skin.css | 2 +- .../build/dial/assets/skins/night/dial.css | 2 +- .../build/dial/assets/skins/sam/dial-skin.css | 2 +- .../build/dial/assets/skins/sam/dial.css | 2 +- lib/yuilib/3.7.3/build/dial/dial-coverage.js | 1672 +++++++++++ .../{3.7.2 => 3.7.3}/build/dial/dial-debug.js | 403 +-- lib/yuilib/3.7.3/build/dial/dial-min.js | 7 + .../{3.7.2 => 3.7.3}/build/dial/dial.js | 403 +-- .../{3.7.2 => 3.7.3}/build/dial/lang/dial.js | 4 +- .../build/dial/lang/dial_en.js | 4 +- .../build/dial/lang/dial_es.js | 4 +- .../build/dom-attrs/dom-attrs-debug.js | 4 +- .../build/dom-attrs/dom-attrs-min.js | 4 +- .../build/dom-attrs/dom-attrs.js | 4 +- .../build/dom-base/dom-base-coverage.js | 6 +- .../build/dom-base/dom-base-debug.js | 4 +- .../build/dom-base/dom-base-min.js | 4 +- .../build/dom-base/dom-base.js | 4 +- .../build/dom-class/dom-class-debug.js | 4 +- .../build/dom-class/dom-class-min.js | 4 +- .../build/dom-class/dom-class.js | 4 +- .../build/dom-core/dom-core-coverage.js | 8 +- .../build/dom-core/dom-core-debug.js | 6 +- .../build/dom-core/dom-core-min.js | 4 +- .../build/dom-core/dom-core.js | 6 +- .../build/dom-create/dom-create-debug.js | 4 +- .../build/dom-create/dom-create-min.js | 4 +- .../build/dom-create/dom-create.js | 4 +- .../dom-deprecated/dom-deprecated-coverage.js | 6 +- .../dom-deprecated/dom-deprecated-debug.js | 4 +- .../dom-deprecated/dom-deprecated-min.js | 4 +- .../build/dom-deprecated/dom-deprecated.js | 4 +- .../build/dom-screen/dom-screen-coverage.js | 6 +- .../build/dom-screen/dom-screen-debug.js | 4 +- .../build/dom-screen/dom-screen-min.js | 4 +- .../build/dom-screen/dom-screen.js | 4 +- .../build/dom-size/dom-size-debug.js | 4 +- .../build/dom-size/dom-size-min.js | 4 +- .../build/dom-size/dom-size.js | 4 +- .../dom-style-ie/dom-style-ie-coverage.js | 6 +- .../build/dom-style-ie/dom-style-ie-debug.js | 4 +- .../build/dom-style-ie/dom-style-ie-min.js | 4 +- .../build/dom-style-ie/dom-style-ie.js | 4 +- .../build/dom-style/dom-style-coverage.js | 6 +- .../build/dom-style/dom-style-debug.js | 4 +- .../build/dom-style/dom-style-min.js | 4 +- .../build/dom-style/dom-style.js | 4 +- .../build/dump/dump-coverage.js | 6 +- .../{3.7.2 => 3.7.3}/build/dump/dump-debug.js | 4 +- .../{3.7.2 => 3.7.3}/build/dump/dump-min.js | 4 +- .../{3.7.2 => 3.7.3}/build/dump/dump.js | 4 +- .../build/editor-base/editor-base-coverage.js | 693 ++--- .../build/editor-base/editor-base-debug.js | 158 +- .../build/editor-base/editor-base-min.js | 7 + .../build/editor-base/editor-base.js | 157 +- .../build/editor-bidi/editor-bidi-coverage.js | 192 +- .../build/editor-bidi/editor-bidi-debug.js | 51 +- .../build/editor-bidi/editor-bidi-min.js | 7 + .../build/editor-bidi/editor-bidi.js | 51 +- .../build/editor-br/editor-br-coverage.js | 91 +- .../build/editor-br/editor-br-debug.js | 20 +- .../3.7.3/build/editor-br/editor-br-min.js | 7 + .../build/editor-br/editor-br.js | 20 +- .../editor-lists/editor-lists-coverage.js | 106 +- .../build/editor-lists/editor-lists-debug.js | 16 +- .../build/editor-lists/editor-lists-min.js | 7 + .../build/editor-lists/editor-lists.js | 16 +- .../editor-para-base-coverage.js | 51 +- .../editor-para-base-debug.js | 17 +- .../editor-para-base/editor-para-base-min.js | 7 + .../editor-para-base/editor-para-base.js | 17 +- .../editor-para-ie/editor-para-ie-coverage.js | 35 +- .../editor-para-ie/editor-para-ie-debug.js | 28 +- .../editor-para-ie/editor-para-ie-min.js | 7 + .../build/editor-para-ie/editor-para-ie.js | 28 +- .../build/editor-para/editor-para-coverage.js | 353 +-- .../build/editor-para/editor-para-debug.js | 32 +- .../build/editor-para/editor-para-min.js | 7 + .../build/editor-para/editor-para.js | 32 +- .../editor-selection-coverage.js | 936 +++--- .../editor-selection-debug.js | 206 +- .../editor-selection/editor-selection-min.js | 7 + .../editor-selection/editor-selection.js | 201 +- .../build/editor-tab/editor-tab-coverage.js | 8 +- .../build/editor-tab/editor-tab-debug.js | 6 +- .../build/editor-tab/editor-tab-min.js | 4 +- .../build/editor-tab/editor-tab.js | 6 +- .../build/escape/escape-coverage.js | 6 +- .../build/escape/escape-debug.js | 4 +- .../build/escape/escape-min.js | 4 +- .../{3.7.2 => 3.7.3}/build/escape/escape.js | 4 +- .../event-base-ie/event-base-ie-coverage.js | 6 +- .../event-base-ie/event-base-ie-debug.js | 4 +- .../build/event-base-ie/event-base-ie-min.js | 4 +- .../build/event-base-ie/event-base-ie.js | 4 +- .../build/event-base/event-base-coverage.js | 178 +- .../build/event-base/event-base-debug.js | 27 +- .../3.7.3/build/event-base/event-base-min.js | 7 + .../build/event-base/event-base.js | 27 +- .../event-contextmenu-coverage.js | 6 +- .../event-contextmenu-debug.js | 4 +- .../event-contextmenu-min.js | 4 +- .../event-contextmenu/event-contextmenu.js | 4 +- .../event-custom-base-coverage.js | 6 +- .../event-custom-base-debug.js | 4 +- .../event-custom-base-min.js | 4 +- .../event-custom-base/event-custom-base.js | 4 +- .../event-custom-complex-coverage.js | 6 +- .../event-custom-complex-debug.js | 4 +- .../event-custom-complex-min.js | 4 +- .../event-custom-complex.js | 4 +- .../event-delegate/event-delegate-coverage.js | 6 +- .../event-delegate/event-delegate-debug.js | 4 +- .../event-delegate/event-delegate-min.js | 4 +- .../build/event-delegate/event-delegate.js | 4 +- .../build/event-flick/event-flick-coverage.js | 186 +- .../build/event-flick/event-flick-debug.js | 35 +- .../build/event-flick/event-flick-min.js | 4 +- .../build/event-flick/event-flick.js | 34 +- .../build/event-focus/event-focus-coverage.js | 407 +++ .../build/event-focus/event-focus-debug.js | 33 +- .../build/event-focus/event-focus-min.js | 7 + .../build/event-focus/event-focus.js | 33 +- .../build/event-hover/event-hover-coverage.js | 6 +- .../build/event-hover/event-hover-debug.js | 4 +- .../build/event-hover/event-hover-min.js | 4 +- .../build/event-hover/event-hover.js | 4 +- .../build/event-key/event-key-coverage.js | 6 +- .../build/event-key/event-key-debug.js | 4 +- .../build/event-key/event-key-min.js | 4 +- .../build/event-key/event-key.js | 4 +- .../event-mouseenter-coverage.js | 6 +- .../event-mouseenter-debug.js | 4 +- .../event-mouseenter/event-mouseenter-min.js | 4 +- .../event-mouseenter/event-mouseenter.js | 4 +- .../event-mousewheel-coverage.js | 6 +- .../event-mousewheel-debug.js | 4 +- .../event-mousewheel/event-mousewheel-min.js | 4 +- .../event-mousewheel/event-mousewheel.js | 4 +- .../build/event-move/event-move-coverage.js | 817 ++++++ .../build/event-move/event-move-debug.js | 141 +- .../3.7.3/build/event-move/event-move-min.js | 7 + .../build/event-move/event-move.js | 138 +- .../event-outside/event-outside-coverage.js | 6 +- .../event-outside/event-outside-debug.js | 4 +- .../build/event-outside/event-outside-min.js | 4 +- .../build/event-outside/event-outside.js | 4 +- .../event-resize/event-resize-coverage.js | 6 +- .../build/event-resize/event-resize-debug.js | 4 +- .../build/event-resize/event-resize-min.js | 4 +- .../build/event-resize/event-resize.js | 4 +- .../event-simulate/event-simulate-coverage.js | 6 +- .../event-simulate/event-simulate-debug.js | 4 +- .../event-simulate/event-simulate-min.js | 4 +- .../build/event-simulate/event-simulate.js | 4 +- .../event-synthetic-coverage.js | 6 +- .../event-synthetic/event-synthetic-debug.js | 4 +- .../event-synthetic/event-synthetic-min.js | 4 +- .../build/event-synthetic/event-synthetic.js | 4 +- .../build/event-tap/event-tap-coverage.js | 6 +- .../build/event-tap/event-tap-debug.js | 4 +- .../build/event-tap/event-tap-min.js | 4 +- .../build/event-tap/event-tap.js | 4 +- .../build/event-touch/event-touch-coverage.js | 6 +- .../build/event-touch/event-touch-debug.js | 4 +- .../build/event-touch/event-touch-min.js | 4 +- .../build/event-touch/event-touch.js | 4 +- .../event-valuechange-coverage.js | 6 +- .../event-valuechange-debug.js | 4 +- .../event-valuechange-min.js | 4 +- .../event-valuechange/event-valuechange.js | 4 +- .../exec-command/exec-command-coverage.js | 1067 +++++++ .../build/exec-command/exec-command-debug.js | 177 +- .../build/exec-command/exec-command-min.js | 7 + .../build/exec-command/exec-command.js | 177 +- .../build/features/features-coverage.js | 158 +- .../build/features/features-debug.js | 30 +- .../3.7.3/build/features/features-min.js | 7 + .../build/features/features.js | 30 +- .../build/file-flash/file-flash-coverage.js | 6 +- .../build/file-flash/file-flash-debug.js | 4 +- .../build/file-flash/file-flash-min.js | 4 +- .../build/file-flash/file-flash.js | 4 +- .../build/file-html5/file-html5-coverage.js | 6 +- .../build/file-html5/file-html5-debug.js | 4 +- .../build/file-html5/file-html5-min.js | 4 +- .../build/file-html5/file-html5.js | 4 +- .../build/file/file-coverage.js | 6 +- .../{3.7.2 => 3.7.3}/build/file/file-debug.js | 4 +- .../{3.7.2 => 3.7.3}/build/file/file-min.js | 4 +- .../{3.7.2 => 3.7.3}/build/file/file.js | 4 +- .../3.7.3/build/frame/frame-coverage.js | 1391 +++++++++ .../build/frame/frame-debug.js | 114 +- lib/yuilib/3.7.3/build/frame/frame-min.js | 7 + .../{3.7.2 => 3.7.3}/build/frame/frame.js | 114 +- .../gesture-simulate-coverage.js | 6 +- .../gesture-simulate-debug.js | 4 +- .../gesture-simulate/gesture-simulate-min.js | 4 +- .../gesture-simulate/gesture-simulate.js | 4 +- .../build/get-nodejs/get-coverage.js | 6 +- .../build/get-nodejs/get-debug.js | 4 +- .../build/get-nodejs/get-min.js | 4 +- .../build/get-nodejs/get-nodejs-coverage.js | 6 +- .../build/get-nodejs/get-nodejs-debug.js | 4 +- .../build/get-nodejs/get-nodejs-min.js | 4 +- .../build/get-nodejs/get-nodejs.js | 4 +- .../{3.7.2 => 3.7.3}/build/get-nodejs/get.js | 4 +- .../build/get/get-coverage.js | 599 ++-- .../{3.7.2 => 3.7.3}/build/get/get-debug.js | 66 +- lib/yuilib/3.7.3/build/get/get-min.js | 7 + lib/yuilib/{3.7.2 => 3.7.3}/build/get/get.js | 66 +- .../graphics-canvas-default-coverage.js | 6 +- .../graphics-canvas-default-debug.js | 4 +- .../graphics-canvas-default-min.js | 4 +- .../graphics-canvas-default.js | 4 +- .../graphics-canvas-coverage.js | 6 +- .../graphics-canvas/graphics-canvas-debug.js | 4 +- .../graphics-canvas/graphics-canvas-min.js | 4 +- .../build/graphics-canvas/graphics-canvas.js | 4 +- .../graphics-svg-default-coverage.js | 6 +- .../graphics-svg-default-debug.js | 4 +- .../graphics-svg-default-min.js | 4 +- .../graphics-svg-default.js | 4 +- .../graphics-svg/graphics-svg-coverage.js | 6 +- .../build/graphics-svg/graphics-svg-debug.js | 4 +- .../build/graphics-svg/graphics-svg-min.js | 4 +- .../build/graphics-svg/graphics-svg.js | 4 +- .../graphics-vml-default-coverage.js | 6 +- .../graphics-vml-default-debug.js | 4 +- .../graphics-vml-default-min.js | 4 +- .../graphics-vml-default.js | 4 +- .../graphics-vml/graphics-vml-coverage.js | 6 +- .../build/graphics-vml/graphics-vml-debug.js | 4 +- .../build/graphics-vml/graphics-vml-min.js | 4 +- .../build/graphics-vml/graphics-vml.js | 4 +- .../build/graphics/graphics-coverage.js | 6 +- .../build/graphics/graphics-debug.js | 4 +- .../build/graphics/graphics-min.js | 4 +- .../build/graphics/graphics.js | 4 +- .../handlebars-base-coverage.js | 6 +- .../handlebars-base/handlebars-base-debug.js | 4 +- .../handlebars-base/handlebars-base-min.js | 4 +- .../build/handlebars-base/handlebars-base.js | 4 +- .../handlebars-compiler-coverage.js | 6 +- .../handlebars-compiler-debug.js | 4 +- .../handlebars-compiler-min.js | 4 +- .../handlebars-compiler.js | 4 +- .../highlight-accentfold-coverage.js | 6 +- .../highlight-accentfold-debug.js | 4 +- .../highlight-accentfold-min.js | 4 +- .../highlight-accentfold.js | 4 +- .../highlight-base/highlight-base-coverage.js | 6 +- .../highlight-base/highlight-base-debug.js | 4 +- .../highlight-base/highlight-base-min.js | 4 +- .../build/highlight-base/highlight-base.js | 4 +- .../history-base/history-base-coverage.js | 6 +- .../build/history-base/history-base-debug.js | 4 +- .../build/history-base/history-base-min.js | 4 +- .../build/history-base/history-base.js | 4 +- .../history-hash-ie-coverage.js | 6 +- .../history-hash-ie/history-hash-ie-debug.js | 4 +- .../history-hash-ie/history-hash-ie-min.js | 4 +- .../build/history-hash-ie/history-hash-ie.js | 4 +- .../history-hash/history-hash-coverage.js | 6 +- .../build/history-hash/history-hash-debug.js | 4 +- .../build/history-hash/history-hash-min.js | 4 +- .../build/history-hash/history-hash.js | 4 +- .../history-html5/history-html5-coverage.js | 6 +- .../history-html5/history-html5-debug.js | 4 +- .../build/history-html5/history-html5-min.js | 4 +- .../build/history-html5/history-html5.js | 4 +- .../build/imageloader/imageloader-coverage.js | 6 +- .../build/imageloader/imageloader-debug.js | 4 +- .../build/imageloader/imageloader-min.js | 4 +- .../build/imageloader/imageloader.js | 4 +- .../build/intl-base/intl-base-coverage.js | 6 +- .../build/intl-base/intl-base-debug.js | 4 +- .../build/intl-base/intl-base-min.js | 4 +- .../build/intl-base/intl-base.js | 4 +- .../build/intl/intl-coverage.js | 6 +- .../{3.7.2 => 3.7.3}/build/intl/intl-debug.js | 4 +- .../{3.7.2 => 3.7.3}/build/intl/intl-min.js | 4 +- .../{3.7.2 => 3.7.3}/build/intl/intl.js | 4 +- .../build/io-base/io-base-coverage.js | 143 +- .../build/io-base/io-base-debug.js | 20 +- lib/yuilib/3.7.3/build/io-base/io-base-min.js | 7 + .../{3.7.2 => 3.7.3}/build/io-base/io-base.js | 20 +- .../build/io-form/io-form-coverage.js | 6 +- .../build/io-form/io-form-debug.js | 4 +- .../build/io-form/io-form-min.js | 4 +- .../{3.7.2 => 3.7.3}/build/io-form/io-form.js | 4 +- .../build/io-nodejs/io-nodejs-coverage.js | 8 +- .../build/io-nodejs/io-nodejs-debug.js | 6 +- .../build/io-nodejs/io-nodejs-min.js | 4 +- .../build/io-nodejs/io-nodejs.js | 6 +- .../3.7.3/build/io-queue/io-queue-coverage.js | 264 ++ .../build/io-queue/io-queue-debug.js | 18 +- .../build/io-queue/io-queue-min.js | 4 +- .../build/io-queue/io-queue.js | 18 +- .../io-upload-iframe-coverage.js | 223 +- .../io-upload-iframe-debug.js | 25 +- .../io-upload-iframe/io-upload-iframe-min.js | 7 + .../io-upload-iframe/io-upload-iframe.js | 25 +- .../build/io-xdr/io-xdr-coverage.js | 6 +- .../build/io-xdr/io-xdr-debug.js | 4 +- .../build/io-xdr/io-xdr-min.js | 4 +- .../{3.7.2 => 3.7.3}/build/io-xdr/io-xdr.js | 4 +- .../{3.7.2 => 3.7.3}/build/io-xdr/io.swf | Bin .../build/json-parse/json-parse-coverage.js | 92 +- .../build/json-parse/json-parse-debug.js | 15 +- .../3.7.3/build/json-parse/json-parse-min.js | 7 + .../build/json-parse/json-parse.js | 15 +- .../json-stringify/json-stringify-coverage.js | 203 +- .../json-stringify/json-stringify-debug.js | 11 +- .../json-stringify/json-stringify-min.js | 7 + .../build/json-stringify/json-stringify.js | 11 +- .../build/jsonp-url/jsonp-url-coverage.js | 6 +- .../build/jsonp-url/jsonp-url-debug.js | 4 +- .../build/jsonp-url/jsonp-url-min.js | 4 +- .../build/jsonp-url/jsonp-url.js | 4 +- .../build/jsonp/jsonp-coverage.js | 6 +- .../build/jsonp/jsonp-debug.js | 4 +- .../{3.7.2 => 3.7.3}/build/jsonp/jsonp-min.js | 4 +- .../{3.7.2 => 3.7.3}/build/jsonp/jsonp.js | 4 +- .../lazy-model-list-coverage.js | 6 +- .../lazy-model-list/lazy-model-list-debug.js | 4 +- .../lazy-model-list/lazy-model-list-min.js | 4 +- .../build/lazy-model-list/lazy-model-list.js | 4 +- .../build/loader-base/loader-base-coverage.js | 2145 +++++++------- .../build/loader-base/loader-base-debug.js | 215 +- .../build/loader-base/loader-base-min.js | 7 + .../build/loader-base/loader-base.js | 215 +- .../loader-rollup/loader-rollup-coverage.js | 8 +- .../loader-rollup/loader-rollup-debug.js | 6 +- .../build/loader-rollup/loader-rollup-min.js | 4 +- .../build/loader-rollup/loader-rollup.js | 6 +- .../build/loader-yui3/loader-yui3-coverage.js | 2602 +++++++++++++++++ .../build/loader-yui3/loader-yui3-debug.js | 38 +- .../build/loader-yui3/loader-yui3-min.js | 7 + .../build/loader-yui3/loader-yui3.js | 38 +- .../build/loader/loader-coverage.js | 12 +- .../build/loader/loader-debug.js | 257 +- lib/yuilib/3.7.3/build/loader/loader-min.js | 7 + .../{3.7.2 => 3.7.3}/build/loader/loader.js | 257 +- .../3.7.3/build/matrix/matrix-coverage.js | 1218 ++++++++ .../build/matrix/matrix-debug.js | 11 +- .../build/matrix/matrix-min.js | 4 +- .../{3.7.2 => 3.7.3}/build/matrix/matrix.js | 11 +- .../build/model-list/model-list-coverage.js | 6 +- .../build/model-list/model-list-debug.js | 4 +- .../build/model-list/model-list-min.js | 4 +- .../build/model-list/model-list.js | 4 +- .../model-sync-rest-coverage.js | 6 +- .../model-sync-rest/model-sync-rest-debug.js | 4 +- .../model-sync-rest/model-sync-rest-min.js | 4 +- .../build/model-sync-rest/model-sync-rest.js | 4 +- .../build/model/model-coverage.js | 6 +- .../build/model/model-debug.js | 4 +- .../{3.7.2 => 3.7.3}/build/model/model-min.js | 4 +- .../{3.7.2 => 3.7.3}/build/model/model.js | 4 +- .../build/node-base/node-base-coverage.js | 6 +- .../build/node-base/node-base-debug.js | 4 +- .../build/node-base/node-base-min.js | 4 +- .../build/node-base/node-base.js | 4 +- .../build/node-core/node-core-coverage.js | 510 ++-- .../build/node-core/node-core-debug.js | 8 +- .../build/node-core/node-core-min.js | 4 +- .../build/node-core/node-core.js | 8 +- .../node-deprecated-coverage.js | 6 +- .../node-deprecated/node-deprecated-debug.js | 4 +- .../node-deprecated/node-deprecated-min.js | 4 +- .../build/node-deprecated/node-deprecated.js | 4 +- .../node-event-delegate-coverage.js | 6 +- .../node-event-delegate-debug.js | 4 +- .../node-event-delegate-min.js | 4 +- .../node-event-delegate.js | 4 +- .../node-event-html5-coverage.js | 6 +- .../node-event-html5-debug.js | 4 +- .../node-event-html5/node-event-html5-min.js | 4 +- .../node-event-html5/node-event-html5.js | 4 +- .../node-event-simulate-coverage.js | 6 +- .../node-event-simulate-debug.js | 4 +- .../node-event-simulate-min.js | 4 +- .../node-event-simulate.js | 4 +- .../node-flick/assets/node-flick-core.css | 2 +- .../assets/skins/sam/node-flick-skin.css | 2 +- .../assets/skins/sam/node-flick.css | 2 +- .../build/node-flick/node-flick-coverage.js | 14 +- .../build/node-flick/node-flick-debug.js | 12 +- .../build/node-flick/node-flick-min.js | 4 +- .../build/node-flick/node-flick.js | 12 +- .../node-focusmanager-coverage.js | 6 +- .../node-focusmanager-debug.js | 4 +- .../node-focusmanager-min.js | 4 +- .../node-focusmanager/node-focusmanager.js | 4 +- .../build/node-load/node-load-coverage.js | 6 +- .../build/node-load/node-load-debug.js | 4 +- .../build/node-load/node-load-min.js | 4 +- .../build/node-load/node-load.js | 4 +- .../node-menunav/assets/node-menunav-core.css | 2 +- .../horizontal-menu-submenu-indicator.png | Bin .../assets/skins/night/node-menunav-skin.css | 2 +- .../assets/skins/night/node-menunav.css | 2 +- .../night/vertical-menu-submenu-indicator.png | Bin .../sam/horizontal-menu-submenu-indicator.png | Bin .../sam/horizontal-menu-submenu-toggle.png | Bin .../assets/skins/sam/node-menunav-skin.css | 2 +- .../assets/skins/sam/node-menunav.css | 2 +- .../sam/vertical-menu-submenu-indicator.png | Bin .../node-menunav/node-menunav-coverage.js | 6 +- .../build/node-menunav/node-menunav-debug.js | 4 +- .../build/node-menunav/node-menunav-min.js | 4 +- .../build/node-menunav/node-menunav.js | 4 +- .../node-pluginhost-coverage.js | 6 +- .../node-pluginhost/node-pluginhost-debug.js | 4 +- .../node-pluginhost/node-pluginhost-min.js | 4 +- .../build/node-pluginhost/node-pluginhost.js | 4 +- .../build/node-screen/node-screen-coverage.js | 6 +- .../build/node-screen/node-screen-debug.js | 4 +- .../build/node-screen/node-screen-min.js | 4 +- .../build/node-screen/node-screen.js | 4 +- .../node-scroll-info-coverage.js | 6 +- .../node-scroll-info-debug.js | 4 +- .../node-scroll-info/node-scroll-info-min.js | 4 +- .../node-scroll-info/node-scroll-info.js | 4 +- .../build/node-style/node-style-coverage.js | 6 +- .../build/node-style/node-style-debug.js | 4 +- .../build/node-style/node-style-min.js | 4 +- .../build/node-style/node-style.js | 4 +- .../build/oop/oop-coverage.js | 6 +- .../{3.7.2 => 3.7.3}/build/oop/oop-debug.js | 4 +- .../{3.7.2 => 3.7.3}/build/oop/oop-min.js | 4 +- lib/yuilib/{3.7.2 => 3.7.3}/build/oop/oop.js | 4 +- .../build/overlay/assets/overlay-core.css | 2 +- .../assets/skins/night/overlay-skin.css | 2 +- .../overlay/assets/skins/night/overlay.css | 2 +- .../overlay/assets/skins/sam/overlay-skin.css | 2 +- .../overlay}/assets/skins/sam/overlay.css | 2 +- .../build/overlay/overlay-coverage.js | 6 +- .../build/overlay/overlay-debug.js | 4 +- .../build/overlay/overlay-min.js | 4 +- .../{3.7.2 => 3.7.3}/build/overlay/overlay.js | 4 +- .../build/panel/assets/panel-core.css | 2 +- .../panel/assets/skins/night/panel-skin.css | 2 +- .../build/panel/assets/skins/night/panel.css | 2 +- .../panel/assets/skins/night/sprite_icons.png | Bin .../panel/assets/skins/sam/panel-skin.css | 2 +- .../build/panel/assets/skins/sam/panel.css | 2 +- .../panel/assets/skins/sam/sprite_icons.png | Bin .../build/panel/panel-coverage.js | 6 +- .../build/panel/panel-debug.js | 4 +- .../{3.7.2 => 3.7.3}/build/panel/panel-min.js | 4 +- .../{3.7.2 => 3.7.3}/build/panel/panel.js | 4 +- .../build/parallel/parallel-coverage.js | 6 +- .../build/parallel/parallel-debug.js | 4 +- .../build/parallel/parallel-min.js | 4 +- .../build/parallel/parallel.js | 4 +- .../build/pjax-base/pjax-base-coverage.js | 6 +- .../build/pjax-base/pjax-base-debug.js | 4 +- .../build/pjax-base/pjax-base-min.js | 4 +- .../build/pjax-base/pjax-base.js | 4 +- .../pjax-content/pjax-content-coverage.js | 6 +- .../build/pjax-content/pjax-content-debug.js | 4 +- .../build/pjax-content/pjax-content-min.js | 4 +- .../build/pjax-content/pjax-content.js | 4 +- .../build/pjax-plugin/pjax-plugin-coverage.js | 6 +- .../build/pjax-plugin/pjax-plugin-debug.js | 4 +- .../build/pjax-plugin/pjax-plugin-min.js | 4 +- .../build/pjax-plugin/pjax-plugin.js | 4 +- .../build/pjax/pjax-coverage.js | 6 +- .../{3.7.2 => 3.7.3}/build/pjax/pjax-debug.js | 4 +- .../{3.7.2 => 3.7.3}/build/pjax/pjax-min.js | 4 +- .../{3.7.2 => 3.7.3}/build/pjax/pjax.js | 4 +- .../build/plugin/plugin-coverage.js | 6 +- .../build/plugin/plugin-debug.js | 4 +- .../build/plugin/plugin-min.js | 4 +- .../{3.7.2 => 3.7.3}/build/plugin/plugin.js | 4 +- .../pluginhost-base-coverage.js | 6 +- .../pluginhost-base/pluginhost-base-debug.js | 4 +- .../pluginhost-base/pluginhost-base-min.js | 4 +- .../build/pluginhost-base/pluginhost-base.js | 4 +- .../pluginhost-config-coverage.js | 6 +- .../pluginhost-config-debug.js | 4 +- .../pluginhost-config-min.js | 4 +- .../pluginhost-config/pluginhost-config.js | 4 +- .../build/profiler/profiler-coverage.js | 6 +- .../build/profiler/profiler-debug.js | 4 +- .../build/profiler/profiler-min.js | 4 +- .../build/profiler/profiler.js | 4 +- .../querystring-parse-simple-coverage.js | 6 +- .../querystring-parse-simple-debug.js | 4 +- .../querystring-parse-simple-min.js | 4 +- .../querystring-parse-simple.js | 4 +- .../querystring-parse-coverage.js | 6 +- .../querystring-parse-debug.js | 4 +- .../querystring-parse-min.js | 4 +- .../querystring-parse/querystring-parse.js | 4 +- .../querystring-stringify-simple-coverage.js | 6 +- .../querystring-stringify-simple-debug.js | 4 +- .../querystring-stringify-simple-min.js | 4 +- .../querystring-stringify-simple.js | 4 +- .../querystring-stringify-coverage.js | 6 +- .../querystring-stringify-debug.js | 4 +- .../querystring-stringify-min.js | 4 +- .../querystring-stringify.js | 4 +- .../queue-promote/queue-promote-coverage.js | 6 +- .../queue-promote/queue-promote-debug.js | 4 +- .../build/queue-promote/queue-promote-min.js | 4 +- .../build/queue-promote/queue-promote.js | 4 +- .../range-slider/assets/slider-base-core.css | 2 +- .../range-slider}/assets/slider-core.css | 2 +- .../assets/thumb-x-oblong-dark.png | Bin .../range-slider/assets/thumb-x-oblong.png | Bin .../assets/thumb-x-oblong2-dark.png | Bin .../range-slider/assets/thumb-x-oblong2.png | Bin .../assets/thumb-y-oblong-dark.png | Bin .../range-slider/assets/thumb-y-oblong.png | Bin .../assets/thumb-y-oblong2-dark.png | Bin .../range-slider/assets/thumb-y-oblong2.png | Bin .../range-slider/range-slider-coverage.js | 6 +- .../build/range-slider/range-slider-debug.js | 4 +- .../build/range-slider/range-slider-min.js | 4 +- .../build/range-slider/range-slider.js | 4 +- .../recordset-base/recordset-base-coverage.js | 6 +- .../recordset-base/recordset-base-debug.js | 4 +- .../recordset-base/recordset-base-min.js | 4 +- .../build/recordset-base/recordset-base.js | 4 +- .../recordset-filter-coverage.js | 6 +- .../recordset-filter-debug.js | 4 +- .../recordset-filter/recordset-filter-min.js | 4 +- .../recordset-filter/recordset-filter.js | 4 +- .../recordset-indexer-coverage.js | 6 +- .../recordset-indexer-debug.js | 4 +- .../recordset-indexer-min.js | 4 +- .../recordset-indexer/recordset-indexer.js | 4 +- .../recordset-sort/recordset-sort-coverage.js | 6 +- .../recordset-sort/recordset-sort-debug.js | 4 +- .../recordset-sort/recordset-sort-min.js | 4 +- .../build/recordset-sort/recordset-sort.js | 4 +- .../resize-base}/assets/resize-base-core.css | 2 +- .../resize-base/assets/skins/night/arrows.png | Bin .../assets/skins/night/resize-base-skin.css | 2 +- .../assets/skins/night/resize-base.css | 2 +- .../resize-base/assets/skins/sam/arrows.png | Bin .../assets/skins/sam/resize-base-skin.css | 2 +- .../assets/skins/sam/resize-base.css | 2 +- .../build/resize-base/resize-base-coverage.js | 2008 +++++++++++++ .../build/resize-base/resize-base-debug.js | 1655 +++++++++++ .../build/resize-base/resize-base-min.js | 7 + .../3.7.3/build/resize-base/resize-base.js | 1654 +++++++++++ .../assets/resize-base-core.css | 2 +- .../assets/skins/night/arrows.png | Bin .../assets/skins/night/resize-base-skin.css | 2 +- .../assets/skins/sam/arrows.png | Bin .../assets/skins/sam/resize-base-skin.css | 2 +- .../resize-constrain-coverage.js | 601 ++++ .../resize-constrain-debug.js | 461 +++ .../resize-constrain/resize-constrain-min.js | 4 +- .../resize-constrain/resize-constrain.js | 461 +++ .../assets/resize-base-core.css | 2 +- .../assets/skins/night/arrows.png | Bin .../assets/skins/night/resize-base-skin.css | 52 + .../resize-plugin/assets/skins/sam/arrows.png | Bin .../assets/skins/sam/resize-base-skin.css | 52 + .../resize-plugin/resize-plugin-coverage.js | 105 +- .../resize-plugin/resize-plugin-debug.js | 29 +- .../build/resize-plugin/resize-plugin-min.js | 4 +- .../build/resize-plugin/resize-plugin.js | 29 +- .../resize-proxy/assets/resize-base-core.css | 2 +- .../assets/skins/night/arrows.png | Bin .../assets/skins/night/resize-base-skin.css | 52 + .../resize-proxy/assets/skins/sam/arrows.png | Bin .../assets/skins/sam/resize-base-skin.css | 52 + .../resize-proxy/resize-proxy-coverage.js | 248 ++ .../build/resize-proxy/resize-proxy-debug.js | 172 ++ .../build/resize-proxy/resize-proxy-min.js | 4 +- .../3.7.3/build/resize-proxy/resize-proxy.js | 172 ++ .../build/router/router-coverage.js | 6 +- .../build/router/router-debug.js | 4 +- .../build/router/router-min.js | 4 +- .../{3.7.2 => 3.7.3}/build/router/router.js | 4 +- .../scrollview-base-ie-coverage.js | 6 +- .../scrollview-base-ie-debug.js | 4 +- .../scrollview-base-ie-min.js | 4 +- .../scrollview-base-ie/scrollview-base-ie.js | 4 +- .../assets/scrollview-base-core.css | 2 +- .../skins/night/scrollview-base-skin.css | 2 +- .../assets/skins/night/scrollview-base.css | 2 +- .../assets/skins/sam/scrollview-base-skin.css | 2 +- .../assets/skins/sam/scrollview-base.css | 2 +- .../scrollview-base-coverage.js | 515 ++-- .../scrollview-base/scrollview-base-debug.js | 9 +- .../scrollview-base/scrollview-base-min.js | 7 + .../build/scrollview-base/scrollview-base.js | 9 +- .../assets/scrollview-list-core.css | 2 +- .../skins/night/scrollview-list-skin.css | 2 +- .../assets/skins/night/scrollview-list.css | 2 +- .../assets/skins/sam/scrollview-list-skin.css | 2 +- .../assets/skins/sam/scrollview-list.css | 2 +- .../scrollview-list-coverage.js | 6 +- .../scrollview-list/scrollview-list-debug.js | 4 +- .../scrollview-list/scrollview-list-min.js | 4 +- .../build/scrollview-list/scrollview-list.js | 4 +- .../scrollview-paginator-coverage.js | 6 +- .../scrollview-paginator-debug.js | 4 +- .../scrollview-paginator-min.js | 4 +- .../scrollview-paginator.js | 4 +- .../assets/scrollview-scrollbars-core.css | 2 +- .../night/scrollview-scrollbars-skin.css | 2 +- .../skins/night/scrollview-scrollbars.css | 2 +- .../skins/sam/scrollview-scrollbars-skin.css | 2 +- .../skins/sam/scrollview-scrollbars.css | 2 +- .../scrollview-scrollbars-coverage.js | 10 +- .../scrollview-scrollbars-debug.js | 8 +- .../scrollview-scrollbars-min.js | 7 + .../scrollview-scrollbars.js | 8 +- .../build/scrollview/scrollview-coverage.js | 6 +- .../build/scrollview/scrollview-debug.js | 4 +- .../build/scrollview/scrollview-min.js | 4 +- .../build/scrollview/scrollview.js | 4 +- .../selector-css2/selector-css2-coverage.js | 6 +- .../selector-css2/selector-css2-debug.js | 4 +- .../build/selector-css2/selector-css2-min.js | 4 +- .../build/selector-css2/selector-css2.js | 4 +- .../selector-css3/selector-css3-coverage.js | 6 +- .../selector-css3/selector-css3-debug.js | 4 +- .../build/selector-css3/selector-css3-min.js | 4 +- .../build/selector-css3/selector-css3.js | 4 +- .../selector-native-coverage.js | 6 +- .../selector-native/selector-native-debug.js | 4 +- .../selector-native/selector-native-min.js | 4 +- .../build/selector-native/selector-native.js | 4 +- .../build/selector/selector-coverage.js | 6 +- .../build/selector/selector-debug.js | 4 +- .../build/selector/selector-min.js | 4 +- .../build/selector/selector.js | 4 +- .../build/shim-plugin/shim-plugin-coverage.js | 6 +- .../build/shim-plugin/shim-plugin-debug.js | 4 +- .../build/shim-plugin/shim-plugin-min.js | 4 +- .../build/shim-plugin/shim-plugin.js | 4 +- .../build/simpleyui/simpleyui-debug.js | 399 +-- .../3.7.3/build/simpleyui/simpleyui-min.js | 7 + .../build/simpleyui/simpleyui.js | 399 +-- .../assets/skins/audio-light/rail-x.png | Bin .../assets/skins/audio-light/rail-y.png | Bin .../skins/audio-light/slider-base-skin.css | 2 +- .../assets/skins/audio-light/slider-base.css | 2 +- .../assets/skins/audio-light/slider-skin.css | 2 +- .../assets/skins/audio-light/thumb-x.png | Bin .../assets/skins/audio-light/thumb-y.png | Bin .../slider-base/assets/skins/audio/rail-x.png | Bin .../slider-base/assets/skins/audio/rail-y.png | Bin .../assets/skins/audio/slider-base-skin.css | 2 +- .../assets/skins/audio/slider-base.css | 2 +- .../assets/skins/audio/slider-skin.css | 2 +- .../assets/skins/audio/thumb-x.png | Bin .../assets/skins/audio/thumb-y.png | Bin .../assets/skins/capsule-dark/rail-x-dots.png | Bin .../skins/capsule-dark/rail-x-lines.png | Bin .../assets/skins/capsule-dark/rail-x.png | Bin .../assets/skins/capsule-dark/rail-y-dots.png | Bin .../skins/capsule-dark/rail-y-lines.png | Bin .../assets/skins/capsule-dark/rail-y.png | Bin .../skins/capsule-dark/slider-base-skin.css | 2 +- .../assets/skins/capsule-dark/slider-base.css | 2 +- .../assets/skins/capsule-dark/slider-skin.css | 2 +- .../skins/capsule-dark/thumb-x-line.png | Bin .../assets/skins/capsule-dark/thumb-x.png | Bin .../skins/capsule-dark/thumb-y-line.png | Bin .../assets/skins/capsule-dark/thumb-y.png | Bin .../assets/skins/capsule/rail-x-dots.png | Bin .../assets/skins/capsule/rail-x-lines.png | Bin .../assets/skins/capsule/rail-x.png | Bin .../assets/skins/capsule/rail-y-dots.png | Bin .../assets/skins/capsule/rail-y-lines.png | Bin .../assets/skins/capsule/rail-y.png | Bin .../assets/skins/capsule/slider-base-skin.css | 2 +- .../assets/skins/capsule/slider-base.css | 2 +- .../assets/skins/capsule/slider-skin.css | 2 +- .../assets/skins/capsule/thumb-x-line.png | Bin .../assets/skins/capsule/thumb-x.png | Bin .../assets/skins/capsule/thumb-y-line.png | Bin .../assets/skins/capsule/thumb-y-lines.png | Bin .../assets/skins/capsule/thumb-y.png | Bin .../assets/skins/night/rail-x-lines.png | Bin .../slider-base/assets/skins/night/rail-x.png | Bin .../assets/skins/night/rail-y-lines.png | Bin .../slider-base/assets/skins/night/rail-y.png | Bin .../assets/skins/night/slider-base-skin.css | 2 +- .../assets/skins/night/slider-base.css | 2 +- .../assets/skins/night/slider-skin.css | 2 +- .../assets/skins/night/thumb-x.png | Bin .../assets/skins/night/thumb-y.png | Bin .../assets/skins/round-dark/rail-x.png | Bin .../assets/skins/round-dark/rail-y.png | Bin .../skins/round-dark/slider-base-skin.css | 2 +- .../assets/skins/round-dark/slider-base.css | 2 +- .../assets/skins/round-dark/slider-skin.css | 2 +- .../assets/skins/round-dark/thumb-x-grip.png | Bin .../assets/skins/round-dark/thumb-x.png | Bin .../assets/skins/round-dark/thumb-y-grip.png | Bin .../assets/skins/round-dark/thumb-y.png | Bin .../slider-base/assets/skins/round/rail-x.png | Bin .../slider-base/assets/skins/round/rail-y.png | Bin .../assets/skins/round/slider-base-skin.css | 2 +- .../assets/skins/round/slider-base.css | 2 +- .../assets/skins/round/slider-skin.css | 2 +- .../assets/skins/round/thumb-x-grip.png | Bin .../assets/skins/round/thumb-x.png | Bin .../assets/skins/round/thumb-y-grip.png | Bin .../assets/skins/round/thumb-y.png | Bin .../assets/skins/sam-dark/rail-x-lines.png | Bin .../assets/skins/sam-dark/rail-x.png | Bin .../assets/skins/sam-dark/rail-y-lines.png | Bin .../assets/skins/sam-dark/rail-y.png | Bin .../skins/sam-dark/slider-base-skin.css | 2 +- .../assets/skins/sam-dark/slider-base.css | 2 +- .../assets/skins/sam-dark/slider-skin.css | 2 +- .../assets/skins/sam-dark/thumb-x.png | Bin .../assets/skins/sam-dark/thumb-y.png | Bin .../assets/skins/sam/rail-x-lines.png | Bin .../slider-base/assets/skins/sam/rail-x.png | Bin .../assets/skins/sam/rail-y-lines.png | Bin .../slider-base/assets/skins/sam/rail-y.png | Bin .../assets/skins/sam/slider-base-skin.css | 2 +- .../assets/skins/sam/slider-base.css | 2 +- .../assets/skins/sam/slider-skin.css | 2 +- .../slider-base/assets/skins/sam/thumb-x.png | Bin .../slider-base/assets/skins/sam/thumb-y.png | Bin .../slider-base}/assets/slider-base-core.css | 2 +- .../build/slider-base}/assets/slider-core.css | 2 +- .../assets/thumb-x-oblong-dark.png | Bin .../slider-base/assets/thumb-x-oblong.png | Bin .../assets/thumb-x-oblong2-dark.png | Bin .../slider-base/assets/thumb-x-oblong2.png | Bin .../assets/thumb-y-oblong-dark.png | Bin .../slider-base/assets/thumb-y-oblong.png | Bin .../assets/thumb-y-oblong2-dark.png | Bin .../slider-base/assets/thumb-y-oblong2.png | Bin .../build/slider-base/slider-base-coverage.js | 6 +- .../build/slider-base/slider-base-debug.js | 4 +- .../build/slider-base/slider-base-min.js | 4 +- .../build/slider-base/slider-base.js | 4 +- .../assets/slider-base-core.css | 2 +- .../assets/slider-core.css | 2 +- .../assets/thumb-x-oblong-dark.png | Bin .../assets/thumb-x-oblong.png | Bin .../assets/thumb-x-oblong2-dark.png | Bin .../assets/thumb-x-oblong2.png | Bin .../assets/thumb-y-oblong-dark.png | Bin .../assets/thumb-y-oblong.png | Bin .../assets/thumb-y-oblong2-dark.png | Bin .../assets/thumb-y-oblong2.png | Bin .../slider-value-range-coverage.js | 6 +- .../slider-value-range-debug.js | 4 +- .../slider-value-range-min.js | 4 +- .../slider-value-range/slider-value-range.js | 4 +- .../sortable-scroll-coverage.js | 8 +- .../sortable-scroll/sortable-scroll-debug.js | 6 +- .../sortable-scroll/sortable-scroll-min.js | 4 +- .../build/sortable-scroll/sortable-scroll.js | 6 +- .../build/sortable/sortable-coverage.js | 137 +- .../build/sortable/sortable-debug.js | 47 +- .../3.7.3/build/sortable/sortable-min.js | 7 + .../build/sortable/sortable.js | 47 +- .../build/stylesheet/stylesheet-coverage.js | 6 +- .../build/stylesheet/stylesheet-debug.js | 4 +- .../build/stylesheet/stylesheet-min.js | 4 +- .../build/stylesheet/stylesheet.js | 4 +- .../build/substitute/substitute-coverage.js | 6 +- .../build/substitute/substitute-debug.js | 4 +- .../build/substitute/substitute-min.js | 4 +- .../build/substitute/substitute.js | 4 +- .../build/swf/swf-coverage.js | 6 +- .../{3.7.2 => 3.7.3}/build/swf/swf-debug.js | 4 +- .../{3.7.2 => 3.7.3}/build/swf/swf-min.js | 4 +- lib/yuilib/{3.7.2 => 3.7.3}/build/swf/swf.js | 4 +- .../build/swfdetect/swfdetect-coverage.js | 6 +- .../build/swfdetect/swfdetect-debug.js | 4 +- .../build/swfdetect/swfdetect-min.js | 4 +- .../build/swfdetect/swfdetect.js | 4 +- .../tabview-base/assets/tabview-core.css | 2 +- .../build/tabview-base/assets/tabview.css | 2 +- .../tabview-base/tabview-base-coverage.js | 6 +- .../build/tabview-base/tabview-base-debug.js | 4 +- .../build/tabview-base/tabview-base-min.js | 4 +- .../build/tabview-base/tabview-base.js | 4 +- .../tabview-plugin/assets/tabview-core.css | 2 +- .../build/tabview-plugin/assets/tabview.css | 2 +- .../tabview-plugin/tabview-plugin-coverage.js | 6 +- .../tabview-plugin/tabview-plugin-debug.js | 4 +- .../tabview-plugin/tabview-plugin-min.js | 4 +- .../build/tabview-plugin/tabview-plugin.js | 4 +- .../assets/skins/night/tabview-skin.css | 2 +- .../tabview/assets/skins/night/tabview.css | 2 +- .../tabview/assets/skins/sam/tabview-skin.css | 2 +- .../tabview/assets/skins/sam/tabview.css | 2 +- .../build/tabview/assets/tabview-core.css | 2 +- .../build/tabview/assets/tabview.css | 2 +- .../build/tabview/tabview-coverage.js | 6 +- .../build/tabview/tabview-debug.js | 4 +- .../build/tabview/tabview-min.js | 4 +- .../{3.7.2 => 3.7.3}/build/tabview/tabview.js | 4 +- .../assets/skins/sam/test-console-skin.css | 2 +- .../assets/skins/sam/test-console.css | 2 +- .../test-console/assets/test-console-core.css | 2 +- .../test-console/test-console-coverage.js | 442 +++ .../build/test-console/test-console-debug.js | 313 ++ .../build/test-console/test-console-min.js | 7 + .../3.7.3/build/test-console/test-console.js | 313 ++ .../build/test/test-coverage.js | 1150 ++++---- .../{3.7.2 => 3.7.3}/build/test/test-debug.js | 25 +- lib/yuilib/3.7.3/build/test/test-min.js | 7 + .../{3.7.2 => 3.7.3}/build/test/test.js | 25 +- .../text-accentfold-coverage.js | 6 +- .../text-accentfold/text-accentfold-debug.js | 4 +- .../text-accentfold/text-accentfold-min.js | 4 +- .../build/text-accentfold/text-accentfold.js | 4 +- .../text-data-accentfold-coverage.js | 6 +- .../text-data-accentfold-debug.js | 4 +- .../text-data-accentfold-min.js | 4 +- .../text-data-accentfold.js | 4 +- .../text-data-wordbreak-coverage.js | 6 +- .../text-data-wordbreak-debug.js | 4 +- .../text-data-wordbreak-min.js | 4 +- .../text-data-wordbreak.js | 4 +- .../text-wordbreak/text-wordbreak-coverage.js | 6 +- .../text-wordbreak/text-wordbreak-debug.js | 4 +- .../text-wordbreak/text-wordbreak-min.js | 4 +- .../build/text-wordbreak/text-wordbreak.js | 4 +- .../transition-timer-coverage.js | 6 +- .../transition-timer-debug.js | 4 +- .../transition-timer/transition-timer-min.js | 4 +- .../transition-timer/transition-timer.js | 4 +- .../build/transition/transition-coverage.js | 1036 +++++++ .../build/transition/transition-debug.js | 111 +- .../3.7.3/build/transition/transition-min.js | 7 + .../build/transition/transition.js | 111 +- .../uploader-deprecated/assets/uploader.swf | Bin .../uploader-deprecated-coverage.js | 6 +- .../uploader-deprecated-debug.js | 4 +- .../uploader-deprecated-min.js | 4 +- .../uploader-deprecated.js | 4 +- .../assets/uploader-flash-core.css | 2 +- .../uploader-flash/uploader-flash-coverage.js | 6 +- .../uploader-flash/uploader-flash-debug.js | 4 +- .../uploader-flash/uploader-flash-min.js | 4 +- .../build/uploader-flash/uploader-flash.js | 4 +- .../assets/uploader-flash-core.css | 2 +- .../uploader-html5/uploader-html5-coverage.js | 6 +- .../uploader-html5/uploader-html5-debug.js | 4 +- .../uploader-html5/uploader-html5-min.js | 4 +- .../build/uploader-html5/uploader-html5.js | 4 +- .../assets/uploader-flash-core.css | 2 +- .../uploader-queue/uploader-queue-coverage.js | 6 +- .../uploader-queue/uploader-queue-debug.js | 4 +- .../uploader-queue/uploader-queue-min.js | 4 +- .../build/uploader-queue/uploader-queue.js | 4 +- .../build/uploader/assets/flashuploader.swf | Bin .../uploader/assets/uploader-flash-core.css | 2 +- .../build/uploader/uploader-coverage.js | 6 +- .../build/uploader/uploader-debug.js | 4 +- .../build/uploader/uploader-min.js | 4 +- .../build/uploader/uploader.js | 4 +- .../view-node-map/view-node-map-coverage.js | 6 +- .../view-node-map/view-node-map-debug.js | 4 +- .../build/view-node-map/view-node-map-min.js | 4 +- .../build/view-node-map/view-node-map.js | 4 +- .../build/view/view-coverage.js | 6 +- .../{3.7.2 => 3.7.3}/build/view/view-debug.js | 4 +- .../{3.7.2 => 3.7.3}/build/view/view-min.js | 4 +- .../{3.7.2 => 3.7.3}/build/view/view.js | 4 +- .../build/widget-anim/widget-anim-coverage.js | 6 +- .../build/widget-anim/widget-anim-debug.js | 4 +- .../build/widget-anim/widget-anim-min.js | 4 +- .../build/widget-anim/widget-anim.js | 4 +- .../widget-autohide-coverage.js | 6 +- .../widget-autohide/widget-autohide-debug.js | 4 +- .../widget-autohide/widget-autohide-min.js | 4 +- .../build/widget-autohide/widget-autohide.js | 4 +- .../assets/widget-base-core.css | 2 +- .../widget-base-ie/widget-base-ie-coverage.js | 6 +- .../widget-base-ie/widget-base-ie-debug.js | 4 +- .../widget-base-ie/widget-base-ie-min.js | 4 +- .../build/widget-base-ie/widget-base-ie.js | 4 +- .../assets/skins/night/widget-base-skin.css | 2 +- .../assets/skins/night/widget-base.css | 2 +- .../assets/skins/sam/widget-base-skin.css | 2 +- .../assets/skins/sam/widget-base.css | 2 +- .../widget-base/assets/widget-base-core.css | 2 +- .../build/widget-base/widget-base-coverage.js | 6 +- .../build/widget-base/widget-base-debug.js | 4 +- .../build/widget-base/widget-base-min.js | 4 +- .../build/widget-base/widget-base.js | 4 +- .../assets/skins/night/sprite_icons.gif | Bin .../skins/night/widget-buttons-skin.css | 2 +- .../assets/skins/night/widget-buttons.css | 2 +- .../assets/skins/sam/sprite_icons.gif | Bin .../assets/skins/sam/widget-buttons-skin.css | 2 +- .../assets/skins/sam/widget-buttons.css | 2 +- .../assets/widget-buttons-core.css | 2 +- .../widget-buttons/widget-buttons-coverage.js | 545 ++-- .../widget-buttons/widget-buttons-debug.js | 22 +- .../widget-buttons/widget-buttons-min.js | 4 +- .../build/widget-buttons/widget-buttons.js | 22 +- .../widget-child/widget-child-coverage.js | 6 +- .../build/widget-child/widget-child-debug.js | 4 +- .../build/widget-child/widget-child-min.js | 4 +- .../build/widget-child/widget-child.js | 4 +- .../assets/widget-base-core.css | 2 +- .../widget-htmlparser-coverage.js | 6 +- .../widget-htmlparser-debug.js | 4 +- .../widget-htmlparser-min.js | 4 +- .../widget-htmlparser/widget-htmlparser.js | 4 +- .../widget-locale/assets/widget-base-core.css | 2 +- .../widget-locale/widget-locale-coverage.js | 6 +- .../widget-locale/widget-locale-debug.js | 4 +- .../build/widget-locale/widget-locale-min.js | 4 +- .../build/widget-locale/widget-locale.js | 4 +- .../skins/night/widget-modality-skin.css | 2 +- .../assets/skins/night/widget-modality.css | 2 +- .../assets/skins/sam/widget-modality-skin.css | 2 +- .../assets/skins/sam/widget-modality.css | 2 +- .../assets/widget-modality-core.css | 2 +- .../widget-modality-coverage.js | 6 +- .../widget-modality/widget-modality-debug.js | 4 +- .../widget-modality/widget-modality-min.js | 4 +- .../build/widget-modality/widget-modality.js | 4 +- .../widget-parent/widget-parent-coverage.js | 6 +- .../widget-parent/widget-parent-debug.js | 4 +- .../build/widget-parent/widget-parent-min.js | 4 +- .../build/widget-parent/widget-parent.js | 4 +- .../widget-position-align-coverage.js | 6 +- .../widget-position-align-debug.js | 4 +- .../widget-position-align-min.js | 4 +- .../widget-position-align.js | 4 +- .../widget-position-constrain-coverage.js | 6 +- .../widget-position-constrain-debug.js | 4 +- .../widget-position-constrain-min.js | 4 +- .../widget-position-constrain.js | 4 +- .../widget-position-coverage.js | 6 +- .../widget-position/widget-position-debug.js | 4 +- .../widget-position/widget-position-min.js | 4 +- .../build/widget-position/widget-position.js | 4 +- .../widget-skin/assets/widget-base-core.css | 26 + .../build/widget-skin/widget-skin-coverage.js | 6 +- .../build/widget-skin/widget-skin-debug.js | 4 +- .../build/widget-skin/widget-skin-min.js | 4 +- .../build/widget-skin/widget-skin.js | 4 +- .../assets/skins/night/widget-stack-skin.css | 2 +- .../assets/skins/night/widget-stack.css | 2 +- .../assets/skins/sam/widget-stack-skin.css | 2 +- .../assets/skins/sam/widget-stack.css | 2 +- .../widget-stack/assets/widget-stack-core.css | 2 +- .../widget-stack/widget-stack-coverage.js | 6 +- .../build/widget-stack/widget-stack-debug.js | 4 +- .../build/widget-stack/widget-stack-min.js | 4 +- .../build/widget-stack/widget-stack.js | 4 +- .../widget-stdmod/widget-stdmod-coverage.js | 6 +- .../widget-stdmod/widget-stdmod-debug.js | 4 +- .../build/widget-stdmod/widget-stdmod-min.js | 4 +- .../build/widget-stdmod/widget-stdmod.js | 4 +- .../assets/widget-base-core.css | 26 + .../widget-uievents-coverage.js | 6 +- .../widget-uievents/widget-uievents-debug.js | 4 +- .../widget-uievents/widget-uievents-min.js | 4 +- .../build/widget-uievents/widget-uievents.js | 4 +- .../build/yql-nodejs/yql-nodejs-coverage.js | 79 + .../build/yql-nodejs/yql-nodejs-debug.js | 36 + .../3.7.3/build/yql-nodejs/yql-nodejs-min.js | 7 + .../3.7.3/build/yql-nodejs/yql-nodejs.js | 36 + .../build/yql-winjs/yql-winjs-coverage.js | 89 + .../3.7.3/build/yql-winjs/yql-winjs-debug.js | 40 + .../3.7.3/build/yql-winjs/yql-winjs-min.js | 7 + lib/yuilib/3.7.3/build/yql-winjs/yql-winjs.js | 40 + .../build/yql/yql-coverage.js | 61 +- .../{3.7.2 => 3.7.3}/build/yql/yql-debug.js | 19 +- .../{3.7.2 => 3.7.3}/build/yql/yql-min.js | 4 +- lib/yuilib/{3.7.2 => 3.7.3}/build/yql/yql.js | 17 +- .../build/yui-base/yui-base-coverage.js | 308 +- .../build/yui-base/yui-base-debug.js | 152 +- .../3.7.3/build/yui-base/yui-base-min.js | 7 + .../build/yui-base/yui-base.js | 152 +- .../build/yui-core/yui-core-coverage.js | 308 +- .../build/yui-core/yui-core-debug.js | 52 +- .../build/yui-core/yui-core-min.js | 4 +- .../build/yui-core/yui-core.js | 52 +- .../build/yui-later/yui-later-coverage.js | 6 +- .../build/yui-later/yui-later-debug.js | 4 +- .../build/yui-later/yui-later-min.js | 4 +- .../build/yui-later/yui-later.js | 4 +- .../yui-log-nodejs/yui-log-nodejs-coverage.js | 6 +- .../yui-log-nodejs/yui-log-nodejs-debug.js | 4 +- .../yui-log-nodejs/yui-log-nodejs-min.js | 4 +- .../build/yui-log-nodejs/yui-log-nodejs.js | 4 +- .../build/yui-log/yui-log-coverage.js | 6 +- .../build/yui-log/yui-log-debug.js | 4 +- .../build/yui-log/yui-log-min.js | 4 +- .../{3.7.2 => 3.7.3}/build/yui-log/yui-log.js | 4 +- .../build/yui-nodejs/yui-nodejs-coverage.js | 308 +- .../build/yui-nodejs/yui-nodejs-debug.js | 345 ++- .../3.7.3/build/yui-nodejs/yui-nodejs-min.js | 7 + .../build/yui-nodejs/yui-nodejs.js | 345 ++- .../yui-throttle/yui-throttle-coverage.js | 14 +- .../build/yui-throttle/yui-throttle-debug.js | 12 +- .../build/yui-throttle/yui-throttle-min.js | 4 +- .../build/yui-throttle/yui-throttle.js | 12 +- .../build/yui/yui-coverage.js | 308 +- .../{3.7.2 => 3.7.3}/build/yui/yui-debug.js | 405 +-- lib/yuilib/3.7.3/build/yui/yui-min.js | 7 + lib/yuilib/{3.7.2 => 3.7.3}/build/yui/yui.js | 405 +-- lib/yuilib/readme_moodle.txt | 2 +- 1788 files changed, 36064 insertions(+), 35239 deletions(-) delete mode 100644 lib/yuilib/3.7.2/build/dataschema-xml/dataschema-xml-min.js delete mode 100644 lib/yuilib/3.7.2/build/datatype-xml-format/datatype-xml-format-min.js delete mode 100644 lib/yuilib/3.7.2/build/datatype-xml-parse/datatype-xml-parse-min.js delete mode 100644 lib/yuilib/3.7.2/build/dd-constrain/dd-constrain-coverage.js delete mode 100644 lib/yuilib/3.7.2/build/dd-constrain/dd-constrain-min.js delete mode 100644 lib/yuilib/3.7.2/build/dd-ddm-base/dd-ddm-base-min.js delete mode 100644 lib/yuilib/3.7.2/build/dd-ddm-drop/dd-ddm-drop-min.js delete mode 100644 lib/yuilib/3.7.2/build/dd-ddm/dd-ddm-coverage.js delete mode 100644 lib/yuilib/3.7.2/build/dd-ddm/dd-ddm-min.js delete mode 100644 lib/yuilib/3.7.2/build/dd-delegate/dd-delegate-min.js delete mode 100644 lib/yuilib/3.7.2/build/dd-drag/dd-drag-coverage.js delete mode 100644 lib/yuilib/3.7.2/build/dd-drag/dd-drag-min.js delete mode 100644 lib/yuilib/3.7.2/build/dd-drop/dd-drop-min.js delete mode 100644 lib/yuilib/3.7.2/build/dd-gestures/dd-gestures-min.js delete mode 100644 lib/yuilib/3.7.2/build/dd-proxy/dd-proxy-min.js delete mode 100644 lib/yuilib/3.7.2/build/dial/dial-coverage.js delete mode 100644 lib/yuilib/3.7.2/build/dial/dial-min.js delete mode 100644 lib/yuilib/3.7.2/build/editor-base/editor-base-min.js delete mode 100644 lib/yuilib/3.7.2/build/editor-bidi/editor-bidi-min.js delete mode 100644 lib/yuilib/3.7.2/build/editor-br/editor-br-min.js delete mode 100644 lib/yuilib/3.7.2/build/editor-lists/editor-lists-min.js delete mode 100644 lib/yuilib/3.7.2/build/editor-para-base/editor-para-base-min.js delete mode 100644 lib/yuilib/3.7.2/build/editor-para-ie/editor-para-ie-min.js delete mode 100644 lib/yuilib/3.7.2/build/editor-para/editor-para-min.js delete mode 100644 lib/yuilib/3.7.2/build/editor-selection/editor-selection-min.js delete mode 100644 lib/yuilib/3.7.2/build/event-base/event-base-min.js delete mode 100644 lib/yuilib/3.7.2/build/event-focus/event-focus-coverage.js delete mode 100644 lib/yuilib/3.7.2/build/event-focus/event-focus-min.js delete mode 100644 lib/yuilib/3.7.2/build/event-move/event-move-coverage.js delete mode 100644 lib/yuilib/3.7.2/build/event-move/event-move-min.js delete mode 100644 lib/yuilib/3.7.2/build/exec-command/exec-command-coverage.js delete mode 100644 lib/yuilib/3.7.2/build/exec-command/exec-command-min.js delete mode 100644 lib/yuilib/3.7.2/build/features/features-min.js delete mode 100644 lib/yuilib/3.7.2/build/frame/frame-coverage.js delete mode 100644 lib/yuilib/3.7.2/build/frame/frame-min.js delete mode 100644 lib/yuilib/3.7.2/build/get/get-min.js delete mode 100644 lib/yuilib/3.7.2/build/io-base/io-base-min.js delete mode 100644 lib/yuilib/3.7.2/build/io-queue/io-queue-coverage.js delete mode 100644 lib/yuilib/3.7.2/build/io-upload-iframe/io-upload-iframe-min.js delete mode 100644 lib/yuilib/3.7.2/build/json-parse/json-parse-min.js delete mode 100644 lib/yuilib/3.7.2/build/json-stringify/json-stringify-min.js delete mode 100644 lib/yuilib/3.7.2/build/loader-base/loader-base-min.js delete mode 100644 lib/yuilib/3.7.2/build/loader-yui3/loader-yui3-coverage.js delete mode 100644 lib/yuilib/3.7.2/build/loader-yui3/loader-yui3-min.js delete mode 100644 lib/yuilib/3.7.2/build/loader/loader-min.js delete mode 100644 lib/yuilib/3.7.2/build/matrix/matrix-coverage.js delete mode 100644 lib/yuilib/3.7.2/build/resize-base/resize-base-coverage.js delete mode 100644 lib/yuilib/3.7.2/build/resize-base/resize-base-debug.js delete mode 100644 lib/yuilib/3.7.2/build/resize-base/resize-base-min.js delete mode 100644 lib/yuilib/3.7.2/build/resize-base/resize-base.js delete mode 100644 lib/yuilib/3.7.2/build/resize-constrain/resize-constrain-coverage.js delete mode 100644 lib/yuilib/3.7.2/build/resize-constrain/resize-constrain-debug.js delete mode 100644 lib/yuilib/3.7.2/build/resize-constrain/resize-constrain.js delete mode 100644 lib/yuilib/3.7.2/build/resize-plugin/assets/skins/night/resize-base-skin.css delete mode 100644 lib/yuilib/3.7.2/build/resize-plugin/assets/skins/sam/resize-base-skin.css delete mode 100644 lib/yuilib/3.7.2/build/resize-proxy/assets/skins/night/resize-base-skin.css delete mode 100644 lib/yuilib/3.7.2/build/resize-proxy/assets/skins/sam/resize-base-skin.css delete mode 100644 lib/yuilib/3.7.2/build/resize-proxy/resize-proxy-coverage.js delete mode 100644 lib/yuilib/3.7.2/build/resize-proxy/resize-proxy-debug.js delete mode 100644 lib/yuilib/3.7.2/build/resize-proxy/resize-proxy.js delete mode 100644 lib/yuilib/3.7.2/build/scrollview-base/scrollview-base-min.js delete mode 100644 lib/yuilib/3.7.2/build/scrollview-scrollbars/scrollview-scrollbars-min.js delete mode 100644 lib/yuilib/3.7.2/build/simpleyui/simpleyui-min.js delete mode 100644 lib/yuilib/3.7.2/build/sortable/sortable-min.js delete mode 100644 lib/yuilib/3.7.2/build/test-console/test-console-coverage.js delete mode 100644 lib/yuilib/3.7.2/build/test-console/test-console-debug.js delete mode 100644 lib/yuilib/3.7.2/build/test-console/test-console-min.js delete mode 100644 lib/yuilib/3.7.2/build/test-console/test-console.js delete mode 100644 lib/yuilib/3.7.2/build/test/test-min.js delete mode 100644 lib/yuilib/3.7.2/build/transition-native/transition-native-debug.js delete mode 100644 lib/yuilib/3.7.2/build/transition-native/transition-native-min.js delete mode 100644 lib/yuilib/3.7.2/build/transition-native/transition-native.js delete mode 100644 lib/yuilib/3.7.2/build/transition/transition-coverage.js delete mode 100644 lib/yuilib/3.7.2/build/transition/transition-min.js delete mode 100644 lib/yuilib/3.7.2/build/widget-skin/assets/widget-base-core.css delete mode 100644 lib/yuilib/3.7.2/build/widget-uievents/assets/widget-base-core.css delete mode 100644 lib/yuilib/3.7.2/build/yui-base/yui-base-min.js delete mode 100644 lib/yuilib/3.7.2/build/yui-nodejs/yui-nodejs-min.js delete mode 100644 lib/yuilib/3.7.2/build/yui/yui-min.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/align-plugin/align-plugin-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/align-plugin/align-plugin-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/align-plugin/align-plugin-min.js (94%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/align-plugin/align-plugin.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/anim-base/anim-base-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/anim-base/anim-base-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/anim-base/anim-base-min.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/anim-base/anim-base.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/anim-color/anim-color-coverage.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/anim-color/anim-color-debug.js (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/anim-color/anim-color-min.js (91%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/anim-color/anim-color.js (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/anim-curve/anim-curve-coverage.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/anim-curve/anim-curve-debug.js (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/anim-curve/anim-curve-min.js (86%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/anim-curve/anim-curve.js (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/anim-easing/anim-easing-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/anim-easing/anim-easing-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/anim-easing/anim-easing-min.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/anim-easing/anim-easing.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/anim-node-plugin/anim-node-plugin-coverage.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/anim-node-plugin/anim-node-plugin-debug.js (87%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/anim-node-plugin/anim-node-plugin-min.js (79%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/anim-node-plugin/anim-node-plugin.js (87%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/anim-scroll/anim-scroll-coverage.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/anim-scroll/anim-scroll-debug.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/anim-scroll/anim-scroll-min.js (87%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/anim-scroll/anim-scroll.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/anim-shape-transform/anim-shape-transform-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/anim-shape/anim-shape-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/anim-shape/anim-shape-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/anim-shape/anim-shape-min.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/anim-shape/anim-shape.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/anim-xy/anim-xy-coverage.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/anim-xy/anim-xy-debug.js (89%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/anim-xy/anim-xy-min.js (78%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/anim-xy/anim-xy.js (89%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/app-base/app-base-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/app-base/app-base-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/app-base/app-base-min.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/app-base/app-base.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/app-content/app-content-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/app-content/app-content-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/app-content/app-content-min.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/app-content/app-content.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/app-transitions-css/app-transitions-css-min.css (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/app-transitions-css/app-transitions-css.css (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/app-transitions-native/app-transitions-native-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/app-transitions-native/app-transitions-native-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/app-transitions-native/app-transitions-native-min.js (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/app-transitions-native/app-transitions-native.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/app-transitions/app-transitions-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/app-transitions/app-transitions-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/app-transitions/app-transitions-min.js (90%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/app-transitions/app-transitions.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/array-extras/array-extras-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/array-extras/array-extras-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/array-extras/array-extras-min.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/array-extras/array-extras.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/array-invoke/array-invoke-coverage.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/array-invoke/array-invoke-debug.js (94%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/array-invoke/array-invoke-min.js (81%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/array-invoke/array-invoke.js (94%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/arraylist-add/arraylist-add-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/arraylist-add/arraylist-add-debug.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/arraylist-add/arraylist-add-min.js (84%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/arraylist-add/arraylist-add.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/arraylist-filter/arraylist-filter-coverage.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/arraylist-filter/arraylist-filter-debug.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/arraylist-filter/arraylist-filter-min.js (80%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/arraylist-filter/arraylist-filter.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/arraylist/arraylist-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/arraylist/arraylist-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/arraylist/arraylist-min.js (91%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/arraylist/arraylist.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/arraysort/arraysort-coverage.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/arraysort/arraysort-debug.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/arraysort/arraysort-min.js (78%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/arraysort/arraysort.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/assets/skins/sam/arrows.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/assets/skins/sam/autocomplete-list.css (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/assets/skins/sam/bg.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/assets/skins/sam/calendar-base.css (98%) rename lib/yuilib/{3.7.2/build/calendar => 3.7.3/build}/assets/skins/sam/calendar.css (97%) rename lib/yuilib/{3.7.2/build/calendarnavigator => 3.7.3/build}/assets/skins/sam/calendarnavigator.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/assets/skins/sam/console-filters.css (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/assets/skins/sam/console.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/assets/skins/sam/datatable-base-deprecated.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/assets/skins/sam/datatable-base.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/assets/skins/sam/datatable-message.css (94%) rename lib/yuilib/{3.7.2/build/datatable-scroll => 3.7.3/build}/assets/skins/sam/datatable-scroll.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/assets/skins/sam/datatable-sort.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/assets/skins/sam/dial.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/assets/skins/sam/dt-arrow-dn.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/assets/skins/sam/dt-arrow-up.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/assets/skins/sam/horizontal-menu-submenu-indicator.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/assets/skins/sam/horizontal-menu-submenu-toggle.png (100%) rename lib/yuilib/{3.7.2/build/node-flick => 3.7.3/build}/assets/skins/sam/node-flick.css (91%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/assets/skins/sam/node-menunav.css (99%) rename lib/yuilib/{3.7.2/build/overlay => 3.7.3/build}/assets/skins/sam/overlay.css (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/assets/skins/sam/panel.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/assets/skins/sam/rail-x-lines.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/assets/skins/sam/rail-x.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/assets/skins/sam/rail-y-lines.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/assets/skins/sam/rail-y.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/assets/skins/sam/resize-base.css (99%) rename lib/yuilib/{3.7.2/build/scrollview-base => 3.7.3/build}/assets/skins/sam/scrollview-base.css (94%) rename lib/yuilib/{3.7.2/build/scrollview-list => 3.7.3/build}/assets/skins/sam/scrollview-list.css (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/assets/skins/sam/scrollview-scrollbars.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/assets/skins/sam/skin.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/assets/skins/sam/slider-base.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/assets/skins/sam/sort-arrow-sprite-ie.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/assets/skins/sam/sort-arrow-sprite.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/assets/skins/sam/sprite.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/assets/skins/sam/sprite_icons.gif (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/assets/skins/sam/sprite_icons.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/assets/skins/sam/tabview.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/assets/skins/sam/test-console.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/assets/skins/sam/thumb-x.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/assets/skins/sam/thumb-y.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/assets/skins/sam/vertical-menu-submenu-indicator.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/assets/skins/sam/warn_error.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/assets/skins/sam/widget-base.css (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/assets/skins/sam/widget-buttons.css (96%) rename lib/yuilib/{3.7.2/build/widget-modality => 3.7.3/build}/assets/skins/sam/widget-modality.css (92%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/assets/skins/sam/widget-stack.css (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/async-queue/async-queue-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/async-queue/async-queue-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/async-queue/async-queue-min.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/async-queue/async-queue.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/attribute-base/attribute-base-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/attribute-base/attribute-base-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/attribute-base/attribute-base-min.js (87%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/attribute-base/attribute-base.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/attribute-complex/attribute-complex-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/attribute-complex/attribute-complex-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/attribute-complex/attribute-complex-min.js (91%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/attribute-complex/attribute-complex.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/attribute-core/attribute-core-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/attribute-core/attribute-core-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/attribute-core/attribute-core-min.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/attribute-core/attribute-core.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/attribute-events/attribute-events-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/attribute-events/attribute-events-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/attribute-events/attribute-events-min.js (94%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/attribute-events/attribute-events.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/attribute-extras/attribute-extras-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/attribute-extras/attribute-extras-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/attribute-extras/attribute-extras-min.js (94%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/attribute-extras/attribute-extras.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/autocomplete-base/autocomplete-base-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/autocomplete-base/autocomplete-base-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/autocomplete-base/autocomplete-base-min.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/autocomplete-base/autocomplete-base.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/autocomplete-filters-accentfold/autocomplete-filters-accentfold-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/autocomplete-filters-accentfold/autocomplete-filters-accentfold-debug.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/autocomplete-filters-accentfold/autocomplete-filters-accentfold-min.js (92%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/autocomplete-filters-accentfold/autocomplete-filters-accentfold.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/autocomplete-filters/autocomplete-filters-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/autocomplete-filters/autocomplete-filters-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/autocomplete-filters/autocomplete-filters-min.js (94%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/autocomplete-filters/autocomplete-filters.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/autocomplete-highlighters-accentfold/autocomplete-highlighters-accentfold-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/autocomplete-highlighters-accentfold/autocomplete-highlighters-accentfold-debug.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/autocomplete-highlighters-accentfold/autocomplete-highlighters-accentfold-min.js (89%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/autocomplete-highlighters-accentfold/autocomplete-highlighters-accentfold.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/autocomplete-highlighters/autocomplete-highlighters-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/autocomplete-highlighters/autocomplete-highlighters-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/autocomplete-highlighters/autocomplete-highlighters-min.js (92%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/autocomplete-highlighters/autocomplete-highlighters.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/autocomplete-list-keys/autocomplete-list-keys-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/autocomplete-list-keys/autocomplete-list-keys-debug.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/autocomplete-list-keys/autocomplete-list-keys-min.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/autocomplete-list-keys/autocomplete-list-keys.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/autocomplete-list/assets/autocomplete-list-core.css (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/autocomplete-list/assets/skins/night/autocomplete-list-skin.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/autocomplete-list/assets/skins/night/autocomplete-list.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/autocomplete-list/assets/skins/sam/autocomplete-list-skin.css (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/autocomplete-list/assets/skins/sam/autocomplete-list.css (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/autocomplete-list/autocomplete-list-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/autocomplete-list/autocomplete-list-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/autocomplete-list/autocomplete-list-min.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/autocomplete-list/autocomplete-list.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/autocomplete-list/lang/autocomplete-list.js (84%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/autocomplete-list/lang/autocomplete-list_en.js (88%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/autocomplete-plugin/autocomplete-plugin-coverage.js (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/autocomplete-plugin/autocomplete-plugin-debug.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/autocomplete-plugin/autocomplete-plugin-min.js (84%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/autocomplete-plugin/autocomplete-plugin.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/autocomplete-sources/autocomplete-sources-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/autocomplete-sources/autocomplete-sources-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/autocomplete-sources/autocomplete-sources-min.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/autocomplete-sources/autocomplete-sources.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/base-base/base-base-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/base-base/base-base-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/base-base/base-base-min.js (94%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/base-base/base-base.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/base-build/base-build-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/base-build/base-build-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/base-build/base-build-min.js (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/base-build/base-build.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/base-core/base-core-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/base-core/base-core-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/base-core/base-core-min.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/base-core/base-core.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/base-pluginhost/base-pluginhost-coverage.js (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/base-pluginhost/base-pluginhost-debug.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/base-pluginhost/base-pluginhost-min.js (78%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/base-pluginhost/base-pluginhost.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/button-core/button-core-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/button-core/button-core-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/button-core/button-core-min.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/button-core/button-core.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/button-group/button-group-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/button-group/button-group-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/button-group/button-group-min.js (94%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/button-group/button-group.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/button-plugin/button-plugin-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/button-plugin/button-plugin-debug.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/button-plugin/button-plugin-min.js (92%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/button-plugin/button-plugin.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/button/button-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/button/button-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/button/button-min.js (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/button/button.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cache-base/cache-base-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cache-base/cache-base-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cache-base/cache-base-min.js (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cache-base/cache-base.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cache-offline/cache-offline-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cache-offline/cache-offline-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cache-offline/cache-offline-min.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cache-offline/cache-offline.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cache-plugin/cache-plugin-coverage.js (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cache-plugin/cache-plugin-debug.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cache-plugin/cache-plugin-min.js (79%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cache-plugin/cache-plugin.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/calendar-base/assets/calendar-base-core.css (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/calendar-base/assets/skins/night/calendar-base-skin.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/calendar-base/assets/skins/night/calendar-base.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/calendar-base/assets/skins/sam/calendar-base-skin.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/calendar-base/assets/skins/sam/calendar-base.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/calendar-base/calendar-base-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/calendar-base/calendar-base-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/calendar-base/calendar-base-min.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/calendar-base/calendar-base.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/calendar-base/lang/calendar-base.js (82%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/calendar-base/lang/calendar-base_de.js (92%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/calendar-base/lang/calendar-base_en.js (81%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/calendar-base/lang/calendar-base_fr.js (82%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/calendar-base/lang/calendar-base_ja.js (90%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/calendar-base/lang/calendar-base_nb-NO.js (88%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/calendar-base/lang/calendar-base_pt-BR.js (92%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/calendar-base/lang/calendar-base_ru.js (92%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/calendar-base/lang/calendar-base_zh-HANT-TW.js (88%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/calendar/assets/calendar-core.css (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/calendar/assets/skins/night/calendar-skin.css (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/calendar/assets/skins/night/calendar.css (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/calendar/assets/skins/sam/calendar-skin.css (93%) rename lib/yuilib/{3.7.2/build => 3.7.3/build/calendar}/assets/skins/sam/calendar.css (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/calendar/calendar-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/calendar/calendar-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/calendar/calendar-min.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/calendar/calendar.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/calendar/lang/calendar.js (90%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/calendar/lang/calendar_de.js (78%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/calendar/lang/calendar_en.js (89%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/calendar/lang/calendar_fr.js (84%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/calendar/lang/calendar_ja.js (85%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/calendar/lang/calendar_nb-NO.js (90%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/calendar/lang/calendar_pt-BR.js (86%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/calendar/lang/calendar_ru.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/calendar/lang/calendar_zh-HANT-TW.js (89%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/calendarnavigator/assets/calendarnavigator-core.css (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/calendarnavigator/assets/skins/night/calendarnavigator-skin.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/calendarnavigator/assets/skins/night/calendarnavigator.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/calendarnavigator/assets/skins/sam/calendarnavigator-skin.css (99%) rename lib/yuilib/{3.7.2/build => 3.7.3/build/calendarnavigator}/assets/skins/sam/calendarnavigator.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/calendarnavigator/calendarnavigator-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/calendarnavigator/calendarnavigator-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/calendarnavigator/calendarnavigator-min.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/calendarnavigator/calendarnavigator.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/charts-base/charts-base-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/charts-base/charts-base-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/charts-base/charts-base-min.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/charts-base/charts-base.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/charts-legend/charts-legend-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/charts-legend/charts-legend-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/charts-legend/charts-legend-min.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/charts-legend/charts-legend.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/charts/charts-coverage.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/charts/charts-debug.js (87%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/charts/charts-min.js (70%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/charts/charts.js (87%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/classnamemanager/classnamemanager-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/classnamemanager/classnamemanager-debug.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/classnamemanager/classnamemanager-min.js (81%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/classnamemanager/classnamemanager.js (97%) rename lib/yuilib/{3.7.2/build/slider-base => 3.7.3/build/clickable-rail}/assets/slider-base-core.css (96%) rename lib/yuilib/{3.7.2/build/range-slider => 3.7.3/build/clickable-rail}/assets/slider-core.css (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/clickable-rail/assets/thumb-x-oblong-dark.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/clickable-rail/assets/thumb-x-oblong.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/clickable-rail/assets/thumb-x-oblong2-dark.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/clickable-rail/assets/thumb-x-oblong2.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/clickable-rail/assets/thumb-y-oblong-dark.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/clickable-rail/assets/thumb-y-oblong.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/clickable-rail/assets/thumb-y-oblong2-dark.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/clickable-rail/assets/thumb-y-oblong2.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/clickable-rail/clickable-rail-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/clickable-rail/clickable-rail-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/clickable-rail/clickable-rail-min.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/clickable-rail/clickable-rail.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/console-filters/assets/console-filters-core.css (83%) rename lib/yuilib/{3.7.2/build/console => 3.7.3/build/console-filters}/assets/skins/sam/console-filters-skin.css (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/console-filters/assets/skins/sam/console-filters.css (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/console-filters/console-filters-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/console-filters/console-filters-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/console-filters/console-filters-min.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/console-filters/console-filters.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/console/assets/console-core.css (83%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/console/assets/console-filters-core.css (83%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/console/assets/skins/sam/bg.png (100%) rename lib/yuilib/{3.7.2/build/console-filters => 3.7.3/build/console}/assets/skins/sam/console-filters-skin.css (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/console/assets/skins/sam/console-filters.css (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/console/assets/skins/sam/console-skin.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/console/assets/skins/sam/console.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/console/assets/skins/sam/warn_error.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/console/assets/warn_error.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/console/console-coverage.js (89%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/console/console-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/console/console-min.js (86%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/console/console.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/console/lang/console.js (82%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/console/lang/console_en.js (81%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/console/lang/console_es.js (77%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/console/lang/console_ja.js (81%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cookie/cookie-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cookie/cookie-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cookie/cookie-min.js (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cookie/cookie.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/createlink-base/createlink-base-coverage.js (61%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/createlink-base/createlink-base-debug.js (94%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/createlink-base/createlink-base-min.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/createlink-base/createlink-base.js (94%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cssbase-context/base-context-min.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cssbase-context/base-context.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cssbase-context/cssbase-context-min.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cssbase-context/cssbase-context.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cssbase/base-min.css (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cssbase/base.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cssbase/cssbase-min.css (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cssbase/cssbase.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cssbutton/cssbutton-min.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cssbutton/cssbutton.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cssfonts-context/cssfonts-context-min.css (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cssfonts-context/cssfonts-context.css (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cssfonts-context/fonts-context-min.css (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cssfonts-context/fonts-context.css (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cssfonts/cssfonts-min.css (94%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cssfonts/cssfonts.css (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cssfonts/fonts-min.css (94%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cssfonts/fonts.css (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cssgrids-base/cssgrids-base-min.css (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cssgrids-base/cssgrids-base.css (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cssgrids-context-deprecated/grids-context-min.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cssgrids-context-deprecated/grids-context.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cssgrids-units/cssgrids-units-min.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cssgrids-units/cssgrids-units.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cssgrids/cssgrids-min.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cssgrids/cssgrids.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cssgrids/grids-min.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cssgrids/grids.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cssreset-context/cssreset-context-min.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cssreset-context/cssreset-context.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cssreset-context/reset-context-min.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cssreset-context/reset-context.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cssreset/cssreset-min.css (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cssreset/cssreset.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cssreset/reset-min.css (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/cssreset/reset.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dataschema-array/dataschema-array-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dataschema-array/dataschema-array-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dataschema-array/dataschema-array-min.js (89%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dataschema-array/dataschema-array.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dataschema-base/dataschema-base-coverage.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dataschema-base/dataschema-base-debug.js (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dataschema-base/dataschema-base-min.js (84%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dataschema-base/dataschema-base.js (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dataschema-json/dataschema-json-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dataschema-json/dataschema-json-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dataschema-json/dataschema-json-min.js (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dataschema-json/dataschema-json.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dataschema-text/dataschema-text-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dataschema-text/dataschema-text-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dataschema-text/dataschema-text-min.js (90%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dataschema-text/dataschema-text.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dataschema-xml/dataschema-xml-coverage.js (69%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dataschema-xml/dataschema-xml-debug.js (98%) create mode 100644 lib/yuilib/3.7.3/build/dataschema-xml/dataschema-xml-min.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/dataschema-xml/dataschema-xml.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datasource-arrayschema/datasource-arrayschema-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datasource-arrayschema/datasource-arrayschema-debug.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datasource-arrayschema/datasource-arrayschema-min.js (90%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datasource-arrayschema/datasource-arrayschema.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datasource-cache/datasource-cache-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datasource-cache/datasource-cache-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datasource-cache/datasource-cache-min.js (92%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datasource-cache/datasource-cache.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datasource-function/datasource-function-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datasource-function/datasource-function-debug.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datasource-function/datasource-function-min.js (88%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datasource-function/datasource-function.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datasource-get/datasource-get-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datasource-get/datasource-get-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datasource-get/datasource-get-min.js (94%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datasource-get/datasource-get.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datasource-io/datasource-io-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datasource-io/datasource-io-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datasource-io/datasource-io-min.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datasource-io/datasource-io.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datasource-jsonschema/datasource-jsonschema-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datasource-jsonschema/datasource-jsonschema-debug.js (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datasource-jsonschema/datasource-jsonschema-min.js (89%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datasource-jsonschema/datasource-jsonschema.js (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datasource-local/datasource-local-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datasource-local/datasource-local-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datasource-local/datasource-local-min.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datasource-local/datasource-local.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datasource-polling/datasource-polling-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datasource-polling/datasource-polling-debug.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datasource-polling/datasource-polling-min.js (86%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datasource-polling/datasource-polling.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datasource-textschema/datasource-textschema-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datasource-textschema/datasource-textschema-debug.js (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datasource-textschema/datasource-textschema-min.js (89%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datasource-textschema/datasource-textschema.js (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datasource-xmlschema/datasource-xmlschema-coverage.js (91%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datasource-xmlschema/datasource-xmlschema-debug.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datasource-xmlschema/datasource-xmlschema-min.js (52%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datasource-xmlschema/datasource-xmlschema.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-base-deprecated/assets/datatable-base-deprecated-core.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-base-deprecated/assets/skins/night/datatable-base-deprecated-skin.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-base-deprecated/assets/skins/night/datatable-base-deprecated.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-base-deprecated/assets/skins/sam/datatable-base-deprecated-skin.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-base-deprecated/assets/skins/sam/datatable-base-deprecated.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-base-deprecated/assets/skins/sam/dt-arrow-dn.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-base-deprecated/assets/skins/sam/dt-arrow-up.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-base-deprecated/datatable-base-deprecated-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-base-deprecated/datatable-base-deprecated-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-base-deprecated/datatable-base-deprecated-min.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-base-deprecated/datatable-base-deprecated.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-base/assets/datatable-base-core.css (89%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-base/assets/skins/night/datatable-base-skin.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-base/assets/skins/night/datatable-base.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-base/assets/skins/sam/datatable-base-skin.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-base/assets/skins/sam/datatable-base.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-base/datatable-base-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-base/datatable-base-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-base/datatable-base-min.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-base/datatable-base.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-body/datatable-body-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-body/datatable-body-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-body/datatable-body-min.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-body/datatable-body.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-column-widths/datatable-column-widths-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-column-widths/datatable-column-widths-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-column-widths/datatable-column-widths-min.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-column-widths/datatable-column-widths.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-core/datatable-core-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-core/datatable-core-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-core/datatable-core-min.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-core/datatable-core.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-datasource-deprecated/datatable-datasource-deprecated-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-datasource-deprecated/datatable-datasource-deprecated-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-datasource-deprecated/datatable-datasource-deprecated-min.js (92%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-datasource-deprecated/datatable-datasource-deprecated.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-datasource/datatable-datasource-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-datasource/datatable-datasource-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-datasource/datatable-datasource-min.js (92%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-datasource/datatable-datasource.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-head/datatable-head-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-head/datatable-head-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-head/datatable-head-min.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-head/datatable-head.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-message/assets/datatable-message-core.css (92%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-message/assets/skins/night/datatable-message-skin.css (92%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-message/assets/skins/night/datatable-message.css (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-message/assets/skins/sam/datatable-message-skin.css (91%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-message/assets/skins/sam/datatable-message.css (94%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-message/datatable-message-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-message/datatable-message-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-message/datatable-message-min.js (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-message/datatable-message.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-message/lang/datatable-message.js (83%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-message/lang/datatable-message_en.js (81%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-mutable/datatable-mutable-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-mutable/datatable-mutable-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-mutable/datatable-mutable-min.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-mutable/datatable-mutable.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-scroll-deprecated/datatable-scroll-deprecated-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-scroll-deprecated/datatable-scroll-deprecated-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-scroll-deprecated/datatable-scroll-deprecated-min.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-scroll-deprecated/datatable-scroll-deprecated.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-scroll/assets/datatable-scroll-core.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-scroll/assets/skins/night/datatable-scroll-skin.css (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-scroll/assets/skins/night/datatable-scroll.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-scroll/assets/skins/sam/datatable-scroll-skin.css (97%) rename lib/yuilib/{3.7.2/build => 3.7.3/build/datatable-scroll}/assets/skins/sam/datatable-scroll.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-scroll/datatable-scroll-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-scroll/datatable-scroll-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-scroll/datatable-scroll-min.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-scroll/datatable-scroll.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-sort-deprecated/datatable-sort-deprecated-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-sort-deprecated/datatable-sort-deprecated-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-sort-deprecated/datatable-sort-deprecated-min.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-sort-deprecated/datatable-sort-deprecated.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-sort-deprecated/lang/datatable-sort-deprecated.js (88%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-sort-deprecated/lang/datatable-sort-deprecated_en.js (87%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-sort/assets/datatable-sort-core.css (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-sort/assets/skins/night/datatable-sort-skin.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-sort/assets/skins/night/datatable-sort.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-sort/assets/skins/night/sort-arrow-sprite-ie.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-sort/assets/skins/night/sort-arrow-sprite.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-sort/assets/skins/sam/datatable-sort-skin.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-sort/assets/skins/sam/datatable-sort.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-sort/assets/skins/sam/sort-arrow-sprite-ie.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-sort/assets/skins/sam/sort-arrow-sprite.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-sort/datatable-sort-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-sort/datatable-sort-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-sort/datatable-sort-min.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-sort/datatable-sort.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-sort/lang/datatable-sort.js (74%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-sort/lang/datatable-sort_en.js (73%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-table/datatable-table-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-table/datatable-table-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-table/datatable-table-min.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatable-table/datatable-table.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/datatype-date-format-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/datatype-date-format-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/datatype-date-format-min.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/datatype-date-format.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format.js (89%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_ar-JO.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_ar.js (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_ca-ES.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_ca.js (94%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_da-DK.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_da.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_de-AT.js (92%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_de-DE.js (94%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_de.js (94%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_el-GR.js (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_el.js (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_en-AU.js (86%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_en-CA.js (86%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_en-GB.js (87%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_en-IE.js (86%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_en-IN.js (86%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_en-JO.js (86%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_en-MY.js (86%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_en-NZ.js (86%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_en-PH.js (86%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_en-SG.js (86%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_en-US.js (86%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_en.js (87%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_es-AR.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_es-BO.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_es-CL.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_es-CO.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_es-EC.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_es-ES.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_es-MX.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_es-PE.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_es-PY.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_es-US.js (92%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_es-UY.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_es-VE.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_es.js (94%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_fi-FI.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_fi.js (94%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_fr-BE.js (89%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_fr-CA.js (89%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_fr-FR.js (91%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_fr.js (92%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_hi-IN.js (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_hi.js (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_id-ID.js (89%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_id.js (90%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_it-IT.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_it.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_ja-JP.js (92%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_ja.js (92%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_ko-KR.js (91%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_ko.js (91%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_ms-MY.js (90%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_ms.js (90%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_nb-NO.js (92%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_nb.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_nl-BE.js (86%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_nl-NL.js (86%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_nl.js (87%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_pl-PL.js (89%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_pl.js (90%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_pt-BR.js (89%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_pt.js (90%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_ro-RO.js (92%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_ro.js (92%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_ru-RU.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_ru.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_sv-SE.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_sv.js (94%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_th-TH.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_th.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_tr-TR.js (90%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_tr.js (91%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_vi-VN.js (90%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_vi.js (91%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_zh-Hans-CN.js (94%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_zh-Hans.js (94%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_zh-Hant-HK.js (92%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_zh-Hant-TW.js (94%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-format/lang/datatype-date-format_zh-Hant.js (94%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-math/datatype-date-math-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-math/datatype-date-math-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-math/datatype-date-math-min.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-math/datatype-date-math.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-parse/datatype-date-parse-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-parse/datatype-date-parse-debug.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-parse/datatype-date-parse-min.js (84%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-date-parse/datatype-date-parse.js (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-number-format/datatype-number-format-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-number-format/datatype-number-format-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-number-format/datatype-number-format-min.js (91%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-number-format/datatype-number-format.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-number-parse/datatype-number-parse-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-number-parse/datatype-number-parse-debug.js (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-number-parse/datatype-number-parse-min.js (92%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-number-parse/datatype-number-parse.js (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-xml-format/datatype-xml-format-coverage.js (77%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-xml-format/datatype-xml-format-debug.js (89%) create mode 100644 lib/yuilib/3.7.3/build/datatype-xml-format/datatype-xml-format-min.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-xml-format/datatype-xml-format.js (89%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-xml-parse/datatype-xml-parse-coverage.js (76%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-xml-parse/datatype-xml-parse-debug.js (77%) create mode 100644 lib/yuilib/3.7.3/build/datatype-xml-parse/datatype-xml-parse-min.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/datatype-xml-parse/datatype-xml-parse.js (82%) create mode 100644 lib/yuilib/3.7.3/build/dd-constrain/dd-constrain-coverage.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/dd-constrain/dd-constrain-debug.js (94%) create mode 100644 lib/yuilib/3.7.3/build/dd-constrain/dd-constrain-min.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/dd-constrain/dd-constrain.js (94%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dd-ddm-base/dd-ddm-base-coverage.js (56%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dd-ddm-base/dd-ddm-base-debug.js (92%) create mode 100644 lib/yuilib/3.7.3/build/dd-ddm-base/dd-ddm-base-min.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/dd-ddm-base/dd-ddm-base.js (92%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dd-ddm-drop/dd-ddm-drop-coverage.js (51%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dd-ddm-drop/dd-ddm-drop-debug.js (90%) create mode 100644 lib/yuilib/3.7.3/build/dd-ddm-drop/dd-ddm-drop-min.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/dd-ddm-drop/dd-ddm-drop.js (90%) create mode 100644 lib/yuilib/3.7.3/build/dd-ddm/dd-ddm-coverage.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/dd-ddm/dd-ddm-debug.js (93%) create mode 100644 lib/yuilib/3.7.3/build/dd-ddm/dd-ddm-min.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/dd-ddm/dd-ddm.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dd-delegate/dd-delegate-coverage.js (60%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dd-delegate/dd-delegate-debug.js (94%) create mode 100644 lib/yuilib/3.7.3/build/dd-delegate/dd-delegate-min.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/dd-delegate/dd-delegate.js (94%) create mode 100644 lib/yuilib/3.7.3/build/dd-drag/dd-drag-coverage.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/dd-drag/dd-drag-debug.js (93%) create mode 100644 lib/yuilib/3.7.3/build/dd-drag/dd-drag-min.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/dd-drag/dd-drag.js (94%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dd-drop-plugin/dd-drop-plugin-coverage.js (84%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dd-drop-plugin/dd-drop-plugin-debug.js (94%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dd-drop-plugin/dd-drop-plugin-min.js (79%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dd-drop-plugin/dd-drop-plugin.js (94%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dd-drop/dd-drop-coverage.js (52%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dd-drop/dd-drop-debug.js (94%) create mode 100644 lib/yuilib/3.7.3/build/dd-drop/dd-drop-min.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/dd-drop/dd-drop.js (94%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dd-gestures/dd-gestures-coverage.js (63%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dd-gestures/dd-gestures-debug.js (80%) create mode 100644 lib/yuilib/3.7.3/build/dd-gestures/dd-gestures-min.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/dd-gestures/dd-gestures.js (78%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dd-plugin/dd-plugin-coverage.js (65%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dd-plugin/dd-plugin-debug.js (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dd-plugin/dd-plugin-min.js (94%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dd-plugin/dd-plugin.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dd-proxy/dd-proxy-coverage.js (65%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dd-proxy/dd-proxy-debug.js (97%) create mode 100644 lib/yuilib/3.7.3/build/dd-proxy/dd-proxy-min.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/dd-proxy/dd-proxy.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dd-scroll/dd-scroll-coverage.js (73%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dd-scroll/dd-scroll-debug.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dd-scroll/dd-scroll-min.js (75%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dd-scroll/dd-scroll.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dial/assets/dial-core.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dial/assets/skins/night/dial-skin.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dial/assets/skins/night/dial.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dial/assets/skins/sam/dial-skin.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dial/assets/skins/sam/dial.css (99%) create mode 100644 lib/yuilib/3.7.3/build/dial/dial-coverage.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/dial/dial-debug.js (83%) create mode 100644 lib/yuilib/3.7.3/build/dial/dial-min.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/dial/dial.js (83%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dial/lang/dial.js (89%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dial/lang/dial_en.js (87%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dial/lang/dial_es.js (81%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dom-attrs/dom-attrs-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dom-attrs/dom-attrs-min.js (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dom-attrs/dom-attrs.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dom-base/dom-base-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dom-base/dom-base-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dom-base/dom-base-min.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dom-base/dom-base.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dom-class/dom-class-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dom-class/dom-class-min.js (88%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dom-class/dom-class.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dom-core/dom-core-coverage.js (88%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dom-core/dom-core-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dom-core/dom-core-min.js (64%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dom-core/dom-core.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dom-create/dom-create-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dom-create/dom-create-min.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dom-create/dom-create.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dom-deprecated/dom-deprecated-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dom-deprecated/dom-deprecated-debug.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dom-deprecated/dom-deprecated-min.js (85%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dom-deprecated/dom-deprecated.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dom-screen/dom-screen-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dom-screen/dom-screen-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dom-screen/dom-screen-min.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dom-screen/dom-screen.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dom-size/dom-size-debug.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dom-size/dom-size-min.js (89%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dom-size/dom-size.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dom-style-ie/dom-style-ie-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dom-style-ie/dom-style-ie-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dom-style-ie/dom-style-ie-min.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dom-style-ie/dom-style-ie.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dom-style/dom-style-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dom-style/dom-style-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dom-style/dom-style-min.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dom-style/dom-style.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dump/dump-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dump/dump-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dump/dump-min.js (91%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/dump/dump.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/editor-base/editor-base-coverage.js (51%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/editor-base/editor-base-debug.js (89%) create mode 100644 lib/yuilib/3.7.3/build/editor-base/editor-base-min.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/editor-base/editor-base.js (89%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/editor-bidi/editor-bidi-coverage.js (56%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/editor-bidi/editor-bidi-debug.js (92%) create mode 100644 lib/yuilib/3.7.3/build/editor-bidi/editor-bidi-min.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/editor-bidi/editor-bidi.js (92%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/editor-br/editor-br-coverage.js (58%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/editor-br/editor-br-debug.js (90%) create mode 100644 lib/yuilib/3.7.3/build/editor-br/editor-br-min.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/editor-br/editor-br.js (90%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/editor-lists/editor-lists-coverage.js (53%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/editor-lists/editor-lists-debug.js (89%) create mode 100644 lib/yuilib/3.7.3/build/editor-lists/editor-lists-min.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/editor-lists/editor-lists.js (88%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/editor-para-base/editor-para-base-coverage.js (65%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/editor-para-base/editor-para-base-debug.js (91%) create mode 100644 lib/yuilib/3.7.3/build/editor-para-base/editor-para-base-min.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/editor-para-base/editor-para-base.js (91%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/editor-para-ie/editor-para-ie-coverage.js (62%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/editor-para-ie/editor-para-ie-debug.js (80%) create mode 100644 lib/yuilib/3.7.3/build/editor-para-ie/editor-para-ie-min.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/editor-para-ie/editor-para-ie.js (80%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/editor-para/editor-para-coverage.js (55%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/editor-para/editor-para-debug.js (95%) create mode 100644 lib/yuilib/3.7.3/build/editor-para/editor-para-min.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/editor-para/editor-para.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/editor-selection/editor-selection-coverage.js (51%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/editor-selection/editor-selection-debug.js (87%) create mode 100644 lib/yuilib/3.7.3/build/editor-selection/editor-selection-min.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/editor-selection/editor-selection.js (88%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/editor-tab/editor-tab-coverage.js (73%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/editor-tab/editor-tab-debug.js (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/editor-tab/editor-tab-min.js (89%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/editor-tab/editor-tab.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/escape/escape-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/escape/escape-debug.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/escape/escape-min.js (84%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/escape/escape.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-base-ie/event-base-ie-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-base-ie/event-base-ie-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-base-ie/event-base-ie-min.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-base-ie/event-base-ie.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-base/event-base-coverage.js (67%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-base/event-base-debug.js (98%) create mode 100644 lib/yuilib/3.7.3/build/event-base/event-base-min.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-base/event-base.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-contextmenu/event-contextmenu-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-contextmenu/event-contextmenu-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-contextmenu/event-contextmenu-min.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-contextmenu/event-contextmenu.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-custom-base/event-custom-base-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-custom-base/event-custom-base-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-custom-base/event-custom-base-min.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-custom-base/event-custom-base.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-custom-complex/event-custom-complex-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-custom-complex/event-custom-complex-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-custom-complex/event-custom-complex-min.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-custom-complex/event-custom-complex.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-delegate/event-delegate-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-delegate/event-delegate-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-delegate/event-delegate-min.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-delegate/event-delegate.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-flick/event-flick-coverage.js (53%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-flick/event-flick-debug.js (91%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-flick/event-flick-min.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-flick/event-flick.js (91%) create mode 100644 lib/yuilib/3.7.3/build/event-focus/event-focus-coverage.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-focus/event-focus-debug.js (89%) create mode 100644 lib/yuilib/3.7.3/build/event-focus/event-focus-min.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-focus/event-focus.js (89%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-hover/event-hover-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-hover/event-hover-debug.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-hover/event-hover-min.js (89%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-hover/event-hover.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-key/event-key-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-key/event-key-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-key/event-key-min.js (94%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-key/event-key.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-mouseenter/event-mouseenter-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-mouseenter/event-mouseenter-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-mouseenter/event-mouseenter-min.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-mouseenter/event-mouseenter.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-mousewheel/event-mousewheel-coverage.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-mousewheel/event-mousewheel-debug.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-mousewheel/event-mousewheel-min.js (83%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-mousewheel/event-mousewheel.js (95%) create mode 100644 lib/yuilib/3.7.3/build/event-move/event-move-coverage.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-move/event-move-debug.js (80%) create mode 100644 lib/yuilib/3.7.3/build/event-move/event-move-min.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-move/event-move.js (80%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-outside/event-outside-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-outside/event-outside-debug.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-outside/event-outside-min.js (91%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-outside/event-outside.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-resize/event-resize-coverage.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-resize/event-resize-debug.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-resize/event-resize-min.js (85%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-resize/event-resize.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-simulate/event-simulate-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-simulate/event-simulate-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-simulate/event-simulate-min.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-simulate/event-simulate.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-synthetic/event-synthetic-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-synthetic/event-synthetic-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-synthetic/event-synthetic-min.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-synthetic/event-synthetic.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-tap/event-tap-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-tap/event-tap-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-tap/event-tap-min.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-tap/event-tap.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-touch/event-touch-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-touch/event-touch-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-touch/event-touch-min.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-touch/event-touch.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-valuechange/event-valuechange-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-valuechange/event-valuechange-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-valuechange/event-valuechange-min.js (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/event-valuechange/event-valuechange.js (99%) create mode 100644 lib/yuilib/3.7.3/build/exec-command/exec-command-coverage.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/exec-command/exec-command-debug.js (94%) create mode 100644 lib/yuilib/3.7.3/build/exec-command/exec-command-min.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/exec-command/exec-command.js (94%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/features/features-coverage.js (61%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/features/features-debug.js (95%) create mode 100644 lib/yuilib/3.7.3/build/features/features-min.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/features/features.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/file-flash/file-flash-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/file-flash/file-flash-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/file-flash/file-flash-min.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/file-flash/file-flash.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/file-html5/file-html5-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/file-html5/file-html5-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/file-html5/file-html5-min.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/file-html5/file-html5.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/file/file-coverage.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/file/file-debug.js (91%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/file/file-min.js (77%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/file/file.js (91%) create mode 100644 lib/yuilib/3.7.3/build/frame/frame-coverage.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/frame/frame-debug.js (94%) create mode 100644 lib/yuilib/3.7.3/build/frame/frame-min.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/frame/frame.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/gesture-simulate/gesture-simulate-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/gesture-simulate/gesture-simulate-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/gesture-simulate/gesture-simulate-min.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/gesture-simulate/gesture-simulate.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/get-nodejs/get-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/get-nodejs/get-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/get-nodejs/get-min.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/get-nodejs/get-nodejs-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/get-nodejs/get-nodejs-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/get-nodejs/get-nodejs-min.js (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/get-nodejs/get-nodejs.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/get-nodejs/get.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/get/get-coverage.js (58%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/get/get-debug.js (96%) create mode 100644 lib/yuilib/3.7.3/build/get/get-min.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/get/get.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/graphics-canvas-default/graphics-canvas-default-coverage.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/graphics-canvas-default/graphics-canvas-default-debug.js (90%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/graphics-canvas-default/graphics-canvas-default-min.js (85%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/graphics-canvas-default/graphics-canvas-default.js (90%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/graphics-canvas/graphics-canvas-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/graphics-canvas/graphics-canvas-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/graphics-canvas/graphics-canvas-min.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/graphics-canvas/graphics-canvas.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/graphics-svg-default/graphics-svg-default-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/graphics-svg-default/graphics-svg-default-debug.js (90%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/graphics-svg-default/graphics-svg-default-min.js (91%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/graphics-svg-default/graphics-svg-default.js (90%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/graphics-svg/graphics-svg-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/graphics-svg/graphics-svg-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/graphics-svg/graphics-svg-min.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/graphics-svg/graphics-svg.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/graphics-vml-default/graphics-vml-default-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/graphics-vml-default/graphics-vml-default-debug.js (90%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/graphics-vml-default/graphics-vml-default-min.js (91%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/graphics-vml-default/graphics-vml-default.js (90%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/graphics-vml/graphics-vml-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/graphics-vml/graphics-vml-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/graphics-vml/graphics-vml-min.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/graphics-vml/graphics-vml.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/graphics/graphics-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/graphics/graphics-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/graphics/graphics-min.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/graphics/graphics.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/handlebars-base/handlebars-base-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/handlebars-base/handlebars-base-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/handlebars-base/handlebars-base-min.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/handlebars-base/handlebars-base.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/handlebars-compiler/handlebars-compiler-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/handlebars-compiler/handlebars-compiler-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/handlebars-compiler/handlebars-compiler-min.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/handlebars-compiler/handlebars-compiler.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/highlight-accentfold/highlight-accentfold-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/highlight-accentfold/highlight-accentfold-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/highlight-accentfold/highlight-accentfold-min.js (90%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/highlight-accentfold/highlight-accentfold.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/highlight-base/highlight-base-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/highlight-base/highlight-base-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/highlight-base/highlight-base-min.js (94%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/highlight-base/highlight-base.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/history-base/history-base-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/history-base/history-base-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/history-base/history-base-min.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/history-base/history-base.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/history-hash-ie/history-hash-ie-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/history-hash-ie/history-hash-ie-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/history-hash-ie/history-hash-ie-min.js (92%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/history-hash-ie/history-hash-ie.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/history-hash/history-hash-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/history-hash/history-hash-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/history-hash/history-hash-min.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/history-hash/history-hash.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/history-html5/history-html5-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/history-html5/history-html5-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/history-html5/history-html5-min.js (92%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/history-html5/history-html5.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/imageloader/imageloader-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/imageloader/imageloader-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/imageloader/imageloader-min.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/imageloader/imageloader.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/intl-base/intl-base-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/intl-base/intl-base-debug.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/intl-base/intl-base-min.js (88%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/intl-base/intl-base.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/intl/intl-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/intl/intl-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/intl/intl-min.js (91%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/intl/intl.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/io-base/io-base-coverage.js (59%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/io-base/io-base-debug.js (98%) create mode 100644 lib/yuilib/3.7.3/build/io-base/io-base-min.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/io-base/io-base.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/io-form/io-form-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/io-form/io-form-debug.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/io-form/io-form-min.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/io-form/io-form.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/io-nodejs/io-nodejs-coverage.js (72%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/io-nodejs/io-nodejs-debug.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/io-nodejs/io-nodejs-min.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/io-nodejs/io-nodejs.js (97%) create mode 100644 lib/yuilib/3.7.3/build/io-queue/io-queue-coverage.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/io-queue/io-queue-debug.js (91%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/io-queue/io-queue-min.js (56%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/io-queue/io-queue.js (90%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/io-upload-iframe/io-upload-iframe-coverage.js (55%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/io-upload-iframe/io-upload-iframe-debug.js (93%) create mode 100644 lib/yuilib/3.7.3/build/io-upload-iframe/io-upload-iframe-min.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/io-upload-iframe/io-upload-iframe.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/io-xdr/io-xdr-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/io-xdr/io-xdr-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/io-xdr/io-xdr-min.js (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/io-xdr/io-xdr.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/io-xdr/io.swf (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/json-parse/json-parse-coverage.js (53%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/json-parse/json-parse-debug.js (97%) create mode 100644 lib/yuilib/3.7.3/build/json-parse/json-parse-min.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/json-parse/json-parse.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/json-stringify/json-stringify-coverage.js (52%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/json-stringify/json-stringify-debug.js (97%) create mode 100644 lib/yuilib/3.7.3/build/json-stringify/json-stringify-min.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/json-stringify/json-stringify.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/jsonp-url/jsonp-url-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/jsonp-url/jsonp-url-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/jsonp-url/jsonp-url-min.js (91%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/jsonp-url/jsonp-url.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/jsonp/jsonp-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/jsonp/jsonp-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/jsonp/jsonp-min.js (94%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/jsonp/jsonp.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/lazy-model-list/lazy-model-list-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/lazy-model-list/lazy-model-list-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/lazy-model-list/lazy-model-list-min.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/lazy-model-list/lazy-model-list.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/loader-base/loader-base-coverage.js (53%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/loader-base/loader-base-debug.js (95%) create mode 100644 lib/yuilib/3.7.3/build/loader-base/loader-base-min.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/loader-base/loader-base.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/loader-rollup/loader-rollup-coverage.js (90%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/loader-rollup/loader-rollup-debug.js (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/loader-rollup/loader-rollup-min.js (76%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/loader-rollup/loader-rollup.js (95%) create mode 100644 lib/yuilib/3.7.3/build/loader-yui3/loader-yui3-coverage.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/loader-yui3/loader-yui3-debug.js (98%) create mode 100644 lib/yuilib/3.7.3/build/loader-yui3/loader-yui3-min.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/loader-yui3/loader-yui3.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/loader/loader-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/loader/loader-debug.js (97%) create mode 100644 lib/yuilib/3.7.3/build/loader/loader-min.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/loader/loader.js (96%) create mode 100644 lib/yuilib/3.7.3/build/matrix/matrix-coverage.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/matrix/matrix-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/matrix/matrix-min.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/matrix/matrix.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/model-list/model-list-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/model-list/model-list-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/model-list/model-list-min.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/model-list/model-list.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/model-sync-rest/model-sync-rest-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/model-sync-rest/model-sync-rest-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/model-sync-rest/model-sync-rest-min.js (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/model-sync-rest/model-sync-rest.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/model/model-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/model/model-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/model/model-min.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/model/model.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-base/node-base-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-base/node-base-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-base/node-base-min.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-base/node-base.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-core/node-core-coverage.js (71%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-core/node-core-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-core/node-core-min.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-core/node-core.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-deprecated/node-deprecated-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-deprecated/node-deprecated-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-deprecated/node-deprecated-min.js (85%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-deprecated/node-deprecated.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-event-delegate/node-event-delegate-coverage.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-event-delegate/node-event-delegate-debug.js (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-event-delegate/node-event-delegate-min.js (78%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-event-delegate/node-event-delegate.js (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-event-html5/node-event-html5-coverage.js (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-event-html5/node-event-html5-debug.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-event-html5/node-event-html5-min.js (92%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-event-html5/node-event-html5.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-event-simulate/node-event-simulate-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-event-simulate/node-event-simulate-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-event-simulate/node-event-simulate-min.js (79%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-event-simulate/node-event-simulate.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-flick/assets/node-flick-core.css (90%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-flick/assets/skins/sam/node-flick-skin.css (84%) rename lib/yuilib/{3.7.2/build => 3.7.3/build/node-flick}/assets/skins/sam/node-flick.css (91%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-flick/node-flick-coverage.js (68%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-flick/node-flick-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-flick/node-flick-min.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-flick/node-flick.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-focusmanager/node-focusmanager-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-focusmanager/node-focusmanager-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-focusmanager/node-focusmanager-min.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-focusmanager/node-focusmanager.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-load/node-load-coverage.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-load/node-load-debug.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-load/node-load-min.js (86%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-load/node-load.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-menunav/assets/node-menunav-core.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-menunav/assets/skins/night/horizontal-menu-submenu-indicator.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-menunav/assets/skins/night/node-menunav-skin.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-menunav/assets/skins/night/node-menunav.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-menunav/assets/skins/night/vertical-menu-submenu-indicator.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-menunav/assets/skins/sam/horizontal-menu-submenu-indicator.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-menunav/assets/skins/sam/horizontal-menu-submenu-toggle.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-menunav/assets/skins/sam/node-menunav-skin.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-menunav/assets/skins/sam/node-menunav.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-menunav/assets/skins/sam/vertical-menu-submenu-indicator.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-menunav/node-menunav-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-menunav/node-menunav-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-menunav/node-menunav-min.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-menunav/node-menunav.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-pluginhost/node-pluginhost-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-pluginhost/node-pluginhost-debug.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-pluginhost/node-pluginhost-min.js (88%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-pluginhost/node-pluginhost.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-screen/node-screen-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-screen/node-screen-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-screen/node-screen-min.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-screen/node-screen.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-scroll-info/node-scroll-info-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-scroll-info/node-scroll-info-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-scroll-info/node-scroll-info-min.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-scroll-info/node-scroll-info.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-style/node-style-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-style/node-style-debug.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-style/node-style-min.js (86%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/node-style/node-style.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/oop/oop-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/oop/oop-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/oop/oop-min.js (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/oop/oop.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/overlay/assets/overlay-core.css (92%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/overlay/assets/skins/night/overlay-skin.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/overlay/assets/skins/night/overlay.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/overlay/assets/skins/sam/overlay-skin.css (83%) rename lib/yuilib/{3.7.2/build => 3.7.3/build/overlay}/assets/skins/sam/overlay.css (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/overlay/overlay-coverage.js (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/overlay/overlay-debug.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/overlay/overlay-min.js (81%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/overlay/overlay.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/panel/assets/panel-core.css (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/panel/assets/skins/night/panel-skin.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/panel/assets/skins/night/panel.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/panel/assets/skins/night/sprite_icons.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/panel/assets/skins/sam/panel-skin.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/panel/assets/skins/sam/panel.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/panel/assets/skins/sam/sprite_icons.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/panel/panel-coverage.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/panel/panel-debug.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/panel/panel-min.js (88%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/panel/panel.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/parallel/parallel-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/parallel/parallel-debug.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/parallel/parallel-min.js (92%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/parallel/parallel.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/pjax-base/pjax-base-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/pjax-base/pjax-base-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/pjax-base/pjax-base-min.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/pjax-base/pjax-base.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/pjax-content/pjax-content-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/pjax-content/pjax-content-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/pjax-content/pjax-content-min.js (92%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/pjax-content/pjax-content.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/pjax-plugin/pjax-plugin-coverage.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/pjax-plugin/pjax-plugin-debug.js (88%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/pjax-plugin/pjax-plugin-min.js (76%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/pjax-plugin/pjax-plugin.js (88%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/pjax/pjax-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/pjax/pjax-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/pjax/pjax-min.js (90%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/pjax/pjax.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/plugin/plugin-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/plugin/plugin-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/plugin/plugin-min.js (94%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/plugin/plugin.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/pluginhost-base/pluginhost-base-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/pluginhost-base/pluginhost-base-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/pluginhost-base/pluginhost-base-min.js (91%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/pluginhost-base/pluginhost-base.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/pluginhost-config/pluginhost-config-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/pluginhost-config/pluginhost-config-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/pluginhost-config/pluginhost-config-min.js (90%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/pluginhost-config/pluginhost-config.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/profiler/profiler-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/profiler/profiler-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/profiler/profiler-min.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/profiler/profiler.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/querystring-parse-simple/querystring-parse-simple-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/querystring-parse-simple/querystring-parse-simple-debug.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/querystring-parse-simple/querystring-parse-simple-min.js (85%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/querystring-parse-simple/querystring-parse-simple.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/querystring-parse/querystring-parse-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/querystring-parse/querystring-parse-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/querystring-parse/querystring-parse-min.js (91%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/querystring-parse/querystring-parse.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/querystring-stringify-simple/querystring-stringify-simple-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/querystring-stringify-simple/querystring-stringify-simple-debug.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/querystring-stringify-simple/querystring-stringify-simple-min.js (84%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/querystring-stringify-simple/querystring-stringify-simple.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/querystring-stringify/querystring-stringify-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/querystring-stringify/querystring-stringify-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/querystring-stringify/querystring-stringify-min.js (91%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/querystring-stringify/querystring-stringify.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/queue-promote/queue-promote-coverage.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/queue-promote/queue-promote-debug.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/queue-promote/queue-promote-min.js (82%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/queue-promote/queue-promote.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/range-slider/assets/slider-base-core.css (96%) rename lib/yuilib/{3.7.2/build/slider-base => 3.7.3/build/range-slider}/assets/slider-core.css (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/range-slider/assets/thumb-x-oblong-dark.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/range-slider/assets/thumb-x-oblong.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/range-slider/assets/thumb-x-oblong2-dark.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/range-slider/assets/thumb-x-oblong2.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/range-slider/assets/thumb-y-oblong-dark.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/range-slider/assets/thumb-y-oblong.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/range-slider/assets/thumb-y-oblong2-dark.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/range-slider/assets/thumb-y-oblong2.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/range-slider/range-slider-coverage.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/range-slider/range-slider-debug.js (90%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/range-slider/range-slider-min.js (74%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/range-slider/range-slider.js (90%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/recordset-base/recordset-base-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/recordset-base/recordset-base-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/recordset-base/recordset-base-min.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/recordset-base/recordset-base.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/recordset-filter/recordset-filter-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/recordset-filter/recordset-filter-debug.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/recordset-filter/recordset-filter-min.js (89%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/recordset-filter/recordset-filter.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/recordset-indexer/recordset-indexer-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/recordset-indexer/recordset-indexer-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/recordset-indexer/recordset-indexer-min.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/recordset-indexer/recordset-indexer.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/recordset-sort/recordset-sort-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/recordset-sort/recordset-sort-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/recordset-sort/recordset-sort-min.js (94%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/recordset-sort/recordset-sort.js (98%) rename lib/yuilib/{3.7.2/build/resize-constrain => 3.7.3/build/resize-base}/assets/resize-base-core.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/resize-base/assets/skins/night/arrows.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/resize-base/assets/skins/night/resize-base-skin.css (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/resize-base/assets/skins/night/resize-base.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/resize-base/assets/skins/sam/arrows.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/resize-base/assets/skins/sam/resize-base-skin.css (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/resize-base/assets/skins/sam/resize-base.css (99%) create mode 100644 lib/yuilib/3.7.3/build/resize-base/resize-base-coverage.js create mode 100644 lib/yuilib/3.7.3/build/resize-base/resize-base-debug.js create mode 100644 lib/yuilib/3.7.3/build/resize-base/resize-base-min.js create mode 100644 lib/yuilib/3.7.3/build/resize-base/resize-base.js rename lib/yuilib/{3.7.2/build/resize-plugin => 3.7.3/build/resize-constrain}/assets/resize-base-core.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/resize-constrain/assets/skins/night/arrows.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/resize-constrain/assets/skins/night/resize-base-skin.css (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/resize-constrain/assets/skins/sam/arrows.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/resize-constrain/assets/skins/sam/resize-base-skin.css (97%) create mode 100644 lib/yuilib/3.7.3/build/resize-constrain/resize-constrain-coverage.js create mode 100644 lib/yuilib/3.7.3/build/resize-constrain/resize-constrain-debug.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/resize-constrain/resize-constrain-min.js (87%) create mode 100644 lib/yuilib/3.7.3/build/resize-constrain/resize-constrain.js rename lib/yuilib/{3.7.2/build/resize-base => 3.7.3/build/resize-plugin}/assets/resize-base-core.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/resize-plugin/assets/skins/night/arrows.png (100%) create mode 100644 lib/yuilib/3.7.3/build/resize-plugin/assets/skins/night/resize-base-skin.css rename lib/yuilib/{3.7.2 => 3.7.3}/build/resize-plugin/assets/skins/sam/arrows.png (100%) create mode 100644 lib/yuilib/3.7.3/build/resize-plugin/assets/skins/sam/resize-base-skin.css rename lib/yuilib/{3.7.2 => 3.7.3}/build/resize-plugin/resize-plugin-coverage.js (53%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/resize-plugin/resize-plugin-debug.js (92%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/resize-plugin/resize-plugin-min.js (94%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/resize-plugin/resize-plugin.js (92%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/resize-proxy/assets/resize-base-core.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/resize-proxy/assets/skins/night/arrows.png (100%) create mode 100644 lib/yuilib/3.7.3/build/resize-proxy/assets/skins/night/resize-base-skin.css rename lib/yuilib/{3.7.2 => 3.7.3}/build/resize-proxy/assets/skins/sam/arrows.png (100%) create mode 100644 lib/yuilib/3.7.3/build/resize-proxy/assets/skins/sam/resize-base-skin.css create mode 100644 lib/yuilib/3.7.3/build/resize-proxy/resize-proxy-coverage.js create mode 100644 lib/yuilib/3.7.3/build/resize-proxy/resize-proxy-debug.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/resize-proxy/resize-proxy-min.js (60%) create mode 100644 lib/yuilib/3.7.3/build/resize-proxy/resize-proxy.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/router/router-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/router/router-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/router/router-min.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/router/router.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/scrollview-base-ie/scrollview-base-ie-coverage.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/scrollview-base-ie/scrollview-base-ie-debug.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/scrollview-base-ie/scrollview-base-ie-min.js (90%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/scrollview-base-ie/scrollview-base-ie.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/scrollview-base/assets/scrollview-base-core.css (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/scrollview-base/assets/skins/night/scrollview-base-skin.css (83%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/scrollview-base/assets/skins/night/scrollview-base.css (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/scrollview-base/assets/skins/sam/scrollview-base-skin.css (90%) rename lib/yuilib/{3.7.2/build => 3.7.3/build/scrollview-base}/assets/skins/sam/scrollview-base.css (94%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/scrollview-base/scrollview-base-coverage.js (53%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/scrollview-base/scrollview-base-debug.js (98%) create mode 100644 lib/yuilib/3.7.3/build/scrollview-base/scrollview-base-min.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/scrollview-base/scrollview-base.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/scrollview-list/assets/scrollview-list-core.css (83%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/scrollview-list/assets/skins/night/scrollview-list-skin.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/scrollview-list/assets/skins/night/scrollview-list.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/scrollview-list/assets/skins/sam/scrollview-list-skin.css (98%) rename lib/yuilib/{3.7.2/build => 3.7.3/build/scrollview-list}/assets/skins/sam/scrollview-list.css (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/scrollview-list/scrollview-list-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/scrollview-list/scrollview-list-debug.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/scrollview-list/scrollview-list-min.js (90%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/scrollview-list/scrollview-list.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/scrollview-paginator/scrollview-paginator-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/scrollview-paginator/scrollview-paginator-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/scrollview-paginator/scrollview-paginator-min.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/scrollview-paginator/scrollview-paginator.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/scrollview-scrollbars/assets/scrollview-scrollbars-core.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/scrollview-scrollbars/assets/skins/night/scrollview-scrollbars-skin.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/scrollview-scrollbars/assets/skins/night/scrollview-scrollbars.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/scrollview-scrollbars/assets/skins/sam/scrollview-scrollbars-skin.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/scrollview-scrollbars/assets/skins/sam/scrollview-scrollbars.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/scrollview-scrollbars/scrollview-scrollbars-coverage.js (65%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/scrollview-scrollbars/scrollview-scrollbars-debug.js (98%) create mode 100644 lib/yuilib/3.7.3/build/scrollview-scrollbars/scrollview-scrollbars-min.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/scrollview-scrollbars/scrollview-scrollbars.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/scrollview/scrollview-coverage.js (94%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/scrollview/scrollview-debug.js (89%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/scrollview/scrollview-min.js (70%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/scrollview/scrollview.js (89%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/selector-css2/selector-css2-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/selector-css2/selector-css2-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/selector-css2/selector-css2-min.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/selector-css2/selector-css2.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/selector-css3/selector-css3-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/selector-css3/selector-css3-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/selector-css3/selector-css3-min.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/selector-css3/selector-css3.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/selector-native/selector-native-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/selector-native/selector-native-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/selector-native/selector-native-min.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/selector-native/selector-native.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/selector/selector-coverage.js (91%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/selector/selector-debug.js (69%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/selector/selector-min.js (59%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/selector/selector.js (69%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/shim-plugin/shim-plugin-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/shim-plugin/shim-plugin-debug.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/shim-plugin/shim-plugin-min.js (92%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/shim-plugin/shim-plugin.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/simpleyui/simpleyui-debug.js (98%) create mode 100644 lib/yuilib/3.7.3/build/simpleyui/simpleyui-min.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/simpleyui/simpleyui.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/audio-light/rail-x.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/audio-light/rail-y.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/audio-light/slider-base-skin.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/audio-light/slider-base.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/audio-light/slider-skin.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/audio-light/thumb-x.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/audio-light/thumb-y.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/audio/rail-x.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/audio/rail-y.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/audio/slider-base-skin.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/audio/slider-base.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/audio/slider-skin.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/audio/thumb-x.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/audio/thumb-y.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/capsule-dark/rail-x-dots.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/capsule-dark/rail-x-lines.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/capsule-dark/rail-x.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/capsule-dark/rail-y-dots.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/capsule-dark/rail-y-lines.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/capsule-dark/rail-y.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/capsule-dark/slider-base-skin.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/capsule-dark/slider-base.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/capsule-dark/slider-skin.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/capsule-dark/thumb-x-line.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/capsule-dark/thumb-x.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/capsule-dark/thumb-y-line.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/capsule-dark/thumb-y.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/capsule/rail-x-dots.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/capsule/rail-x-lines.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/capsule/rail-x.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/capsule/rail-y-dots.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/capsule/rail-y-lines.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/capsule/rail-y.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/capsule/slider-base-skin.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/capsule/slider-base.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/capsule/slider-skin.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/capsule/thumb-x-line.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/capsule/thumb-x.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/capsule/thumb-y-line.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/capsule/thumb-y-lines.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/capsule/thumb-y.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/night/rail-x-lines.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/night/rail-x.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/night/rail-y-lines.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/night/rail-y.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/night/slider-base-skin.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/night/slider-base.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/night/slider-skin.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/night/thumb-x.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/night/thumb-y.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/round-dark/rail-x.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/round-dark/rail-y.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/round-dark/slider-base-skin.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/round-dark/slider-base.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/round-dark/slider-skin.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/round-dark/thumb-x-grip.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/round-dark/thumb-x.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/round-dark/thumb-y-grip.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/round-dark/thumb-y.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/round/rail-x.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/round/rail-y.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/round/slider-base-skin.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/round/slider-base.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/round/slider-skin.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/round/thumb-x-grip.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/round/thumb-x.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/round/thumb-y-grip.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/round/thumb-y.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/sam-dark/rail-x-lines.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/sam-dark/rail-x.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/sam-dark/rail-y-lines.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/sam-dark/rail-y.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/sam-dark/slider-base-skin.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/sam-dark/slider-base.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/sam-dark/slider-skin.css (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/sam-dark/thumb-x.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/sam-dark/thumb-y.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/sam/rail-x-lines.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/sam/rail-x.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/sam/rail-y-lines.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/sam/rail-y.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/sam/slider-base-skin.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/sam/slider-base.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/sam/slider-skin.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/sam/thumb-x.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/skins/sam/thumb-y.png (100%) rename lib/yuilib/{3.7.2/build/clickable-rail => 3.7.3/build/slider-base}/assets/slider-base-core.css (96%) rename lib/yuilib/{3.7.2/build/slider-value-range => 3.7.3/build/slider-base}/assets/slider-core.css (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/thumb-x-oblong-dark.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/thumb-x-oblong.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/thumb-x-oblong2-dark.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/thumb-x-oblong2.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/thumb-y-oblong-dark.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/thumb-y-oblong.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/thumb-y-oblong2-dark.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/assets/thumb-y-oblong2.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/slider-base-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/slider-base-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/slider-base-min.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-base/slider-base.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-value-range/assets/slider-base-core.css (96%) rename lib/yuilib/{3.7.2/build/clickable-rail => 3.7.3/build/slider-value-range}/assets/slider-core.css (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-value-range/assets/thumb-x-oblong-dark.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-value-range/assets/thumb-x-oblong.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-value-range/assets/thumb-x-oblong2-dark.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-value-range/assets/thumb-x-oblong2.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-value-range/assets/thumb-y-oblong-dark.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-value-range/assets/thumb-y-oblong.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-value-range/assets/thumb-y-oblong2-dark.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-value-range/assets/thumb-y-oblong2.png (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-value-range/slider-value-range-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-value-range/slider-value-range-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-value-range/slider-value-range-min.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/slider-value-range/slider-value-range.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/sortable-scroll/sortable-scroll-coverage.js (73%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/sortable-scroll/sortable-scroll-debug.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/sortable-scroll/sortable-scroll-min.js (86%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/sortable-scroll/sortable-scroll.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/sortable/sortable-coverage.js (55%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/sortable/sortable-debug.js (95%) create mode 100644 lib/yuilib/3.7.3/build/sortable/sortable-min.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/sortable/sortable.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/stylesheet/stylesheet-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/stylesheet/stylesheet-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/stylesheet/stylesheet-min.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/stylesheet/stylesheet.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/substitute/substitute-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/substitute/substitute-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/substitute/substitute-min.js (91%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/substitute/substitute.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/swf/swf-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/swf/swf-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/swf/swf-min.js (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/swf/swf.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/swfdetect/swfdetect-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/swfdetect/swfdetect-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/swfdetect/swfdetect-min.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/swfdetect/swfdetect.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/tabview-base/assets/tabview-core.css (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/tabview-base/assets/tabview.css (94%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/tabview-base/tabview-base-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/tabview-base/tabview-base-debug.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/tabview-base/tabview-base-min.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/tabview-base/tabview-base.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/tabview-plugin/assets/tabview-core.css (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/tabview-plugin/assets/tabview.css (94%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/tabview-plugin/tabview-plugin-coverage.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/tabview-plugin/tabview-plugin-debug.js (86%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/tabview-plugin/tabview-plugin-min.js (81%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/tabview-plugin/tabview-plugin.js (86%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/tabview/assets/skins/night/tabview-skin.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/tabview/assets/skins/night/tabview.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/tabview/assets/skins/sam/tabview-skin.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/tabview/assets/skins/sam/tabview.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/tabview/assets/tabview-core.css (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/tabview/assets/tabview.css (94%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/tabview/tabview-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/tabview/tabview-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/tabview/tabview-min.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/tabview/tabview.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/test-console/assets/skins/sam/test-console-skin.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/test-console/assets/skins/sam/test-console.css (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/test-console/assets/test-console-core.css (92%) create mode 100644 lib/yuilib/3.7.3/build/test-console/test-console-coverage.js create mode 100644 lib/yuilib/3.7.3/build/test-console/test-console-debug.js create mode 100644 lib/yuilib/3.7.3/build/test-console/test-console-min.js create mode 100644 lib/yuilib/3.7.3/build/test-console/test-console.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/test/test-coverage.js (69%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/test/test-debug.js (99%) create mode 100644 lib/yuilib/3.7.3/build/test/test-min.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/test/test.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/text-accentfold/text-accentfold-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/text-accentfold/text-accentfold-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/text-accentfold/text-accentfold-min.js (87%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/text-accentfold/text-accentfold.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/text-data-accentfold/text-data-accentfold-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/text-data-accentfold/text-data-accentfold-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/text-data-accentfold/text-data-accentfold-min.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/text-data-accentfold/text-data-accentfold.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/text-data-wordbreak/text-data-wordbreak-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/text-data-wordbreak/text-data-wordbreak-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/text-data-wordbreak/text-data-wordbreak-min.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/text-data-wordbreak/text-data-wordbreak.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/text-wordbreak/text-wordbreak-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/text-wordbreak/text-wordbreak-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/text-wordbreak/text-wordbreak-min.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/text-wordbreak/text-wordbreak.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/transition-timer/transition-timer-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/transition-timer/transition-timer-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/transition-timer/transition-timer-min.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/transition-timer/transition-timer.js (99%) create mode 100644 lib/yuilib/3.7.3/build/transition/transition-coverage.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/transition/transition-debug.js (91%) create mode 100644 lib/yuilib/3.7.3/build/transition/transition-min.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/transition/transition.js (90%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/uploader-deprecated/assets/uploader.swf (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/uploader-deprecated/uploader-deprecated-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/uploader-deprecated/uploader-deprecated-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/uploader-deprecated/uploader-deprecated-min.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/uploader-deprecated/uploader-deprecated.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/uploader-flash/assets/uploader-flash-core.css (88%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/uploader-flash/uploader-flash-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/uploader-flash/uploader-flash-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/uploader-flash/uploader-flash-min.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/uploader-flash/uploader-flash.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/uploader-html5/assets/uploader-flash-core.css (88%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/uploader-html5/uploader-html5-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/uploader-html5/uploader-html5-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/uploader-html5/uploader-html5-min.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/uploader-html5/uploader-html5.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/uploader-queue/assets/uploader-flash-core.css (88%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/uploader-queue/uploader-queue-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/uploader-queue/uploader-queue-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/uploader-queue/uploader-queue-min.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/uploader-queue/uploader-queue.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/uploader/assets/flashuploader.swf (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/uploader/assets/uploader-flash-core.css (88%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/uploader/uploader-coverage.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/uploader/uploader-debug.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/uploader/uploader-min.js (80%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/uploader/uploader.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/view-node-map/view-node-map-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/view-node-map/view-node-map-debug.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/view-node-map/view-node-map-min.js (89%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/view-node-map/view-node-map.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/view/view-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/view/view-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/view/view-min.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/view/view.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-anim/widget-anim-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-anim/widget-anim-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-anim/widget-anim-min.js (94%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-anim/widget-anim.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-autohide/widget-autohide-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-autohide/widget-autohide-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-autohide/widget-autohide-min.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-autohide/widget-autohide.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-base-ie/assets/widget-base-core.css (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-base-ie/widget-base-ie-coverage.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-base-ie/widget-base-ie-debug.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-base-ie/widget-base-ie-min.js (86%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-base-ie/widget-base-ie.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-base/assets/skins/night/widget-base-skin.css (83%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-base/assets/skins/night/widget-base.css (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-base/assets/skins/sam/widget-base-skin.css (83%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-base/assets/skins/sam/widget-base.css (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-base/assets/widget-base-core.css (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-base/widget-base-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-base/widget-base-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-base/widget-base-min.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-base/widget-base.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-buttons/assets/skins/night/sprite_icons.gif (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-buttons/assets/skins/night/widget-buttons-skin.css (90%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-buttons/assets/skins/night/widget-buttons.css (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-buttons/assets/skins/sam/sprite_icons.gif (100%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-buttons/assets/skins/sam/widget-buttons-skin.css (90%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-buttons/assets/skins/sam/widget-buttons.css (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-buttons/assets/widget-buttons-core.css (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-buttons/widget-buttons-coverage.js (58%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-buttons/widget-buttons-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-buttons/widget-buttons-min.js (57%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-buttons/widget-buttons.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-child/widget-child-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-child/widget-child-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-child/widget-child-min.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-child/widget-child.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-htmlparser/assets/widget-base-core.css (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-htmlparser/widget-htmlparser-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-htmlparser/widget-htmlparser-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-htmlparser/widget-htmlparser-min.js (91%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-htmlparser/widget-htmlparser.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-locale/assets/widget-base-core.css (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-locale/widget-locale-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-locale/widget-locale-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-locale/widget-locale-min.js (94%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-locale/widget-locale.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-modality/assets/skins/night/widget-modality-skin.css (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-modality/assets/skins/night/widget-modality.css (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-modality/assets/skins/sam/widget-modality-skin.css (93%) rename lib/yuilib/{3.7.2/build => 3.7.3/build/widget-modality}/assets/skins/sam/widget-modality.css (92%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-modality/assets/widget-modality-core.css (86%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-modality/widget-modality-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-modality/widget-modality-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-modality/widget-modality-min.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-modality/widget-modality.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-parent/widget-parent-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-parent/widget-parent-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-parent/widget-parent-min.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-parent/widget-parent.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-position-align/widget-position-align-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-position-align/widget-position-align-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-position-align/widget-position-align-min.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-position-align/widget-position-align.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-position-constrain/widget-position-constrain-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-position-constrain/widget-position-constrain-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-position-constrain/widget-position-constrain-min.js (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-position-constrain/widget-position-constrain.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-position/widget-position-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-position/widget-position-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-position/widget-position-min.js (94%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-position/widget-position.js (98%) create mode 100644 lib/yuilib/3.7.3/build/widget-skin/assets/widget-base-core.css rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-skin/widget-skin-coverage.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-skin/widget-skin-debug.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-skin/widget-skin-min.js (82%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-skin/widget-skin.js (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-stack/assets/skins/night/widget-stack-skin.css (83%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-stack/assets/skins/night/widget-stack.css (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-stack/assets/skins/sam/widget-stack-skin.css (83%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-stack/assets/skins/sam/widget-stack.css (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-stack/assets/widget-stack-core.css (95%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-stack/widget-stack-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-stack/widget-stack-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-stack/widget-stack-min.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-stack/widget-stack.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-stdmod/widget-stdmod-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-stdmod/widget-stdmod-debug.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-stdmod/widget-stdmod-min.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-stdmod/widget-stdmod.js (99%) create mode 100644 lib/yuilib/3.7.3/build/widget-uievents/assets/widget-base-core.css rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-uievents/widget-uievents-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-uievents/widget-uievents-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-uievents/widget-uievents-min.js (94%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/widget-uievents/widget-uievents.js (98%) create mode 100644 lib/yuilib/3.7.3/build/yql-nodejs/yql-nodejs-coverage.js create mode 100644 lib/yuilib/3.7.3/build/yql-nodejs/yql-nodejs-debug.js create mode 100644 lib/yuilib/3.7.3/build/yql-nodejs/yql-nodejs-min.js create mode 100644 lib/yuilib/3.7.3/build/yql-nodejs/yql-nodejs.js create mode 100644 lib/yuilib/3.7.3/build/yql-winjs/yql-winjs-coverage.js create mode 100644 lib/yuilib/3.7.3/build/yql-winjs/yql-winjs-debug.js create mode 100644 lib/yuilib/3.7.3/build/yql-winjs/yql-winjs-min.js create mode 100644 lib/yuilib/3.7.3/build/yql-winjs/yql-winjs.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/yql/yql-coverage.js (73%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/yql/yql-debug.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/yql/yql-min.js (63%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/yql/yql.js (93%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/yui-base/yui-base-coverage.js (84%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/yui-base/yui-base-debug.js (98%) create mode 100644 lib/yuilib/3.7.3/build/yui-base/yui-base-min.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/yui-base/yui-base.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/yui-core/yui-core-coverage.js (84%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/yui-core/yui-core-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/yui-core/yui-core-min.js (58%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/yui-core/yui-core.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/yui-later/yui-later-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/yui-later/yui-later-debug.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/yui-later/yui-later-min.js (87%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/yui-later/yui-later.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/yui-log-nodejs/yui-log-nodejs-coverage.js (99%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/yui-log-nodejs/yui-log-nodejs-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/yui-log-nodejs/yui-log-nodejs-min.js (96%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/yui-log-nodejs/yui-log-nodejs.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/yui-log/yui-log-coverage.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/yui-log/yui-log-debug.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/yui-log/yui-log-min.js (89%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/yui-log/yui-log.js (98%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/yui-nodejs/yui-nodejs-coverage.js (84%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/yui-nodejs/yui-nodejs-debug.js (97%) create mode 100644 lib/yuilib/3.7.3/build/yui-nodejs/yui-nodejs-min.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/yui-nodejs/yui-nodejs.js (97%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/yui-throttle/yui-throttle-coverage.js (90%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/yui-throttle/yui-throttle-debug.js (90%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/yui-throttle/yui-throttle-min.js (85%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/yui-throttle/yui-throttle.js (90%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/yui/yui-coverage.js (82%) rename lib/yuilib/{3.7.2 => 3.7.3}/build/yui/yui-debug.js (97%) create mode 100644 lib/yuilib/3.7.3/build/yui/yui-min.js rename lib/yuilib/{3.7.2 => 3.7.3}/build/yui/yui.js (97%) diff --git a/lib/setup.php b/lib/setup.php index 2d48ad454d1..1e7c439ab95 100644 --- a/lib/setup.php +++ b/lib/setup.php @@ -230,7 +230,7 @@ umask(0000); // exact version of currently used yui2 and 3 library $CFG->yui2version = '2.9.0'; -$CFG->yui3version = '3.7.2'; +$CFG->yui3version = '3.7.3'; // special support for highly optimised scripts that do not need libraries and DB connection diff --git a/lib/thirdpartylibs.xml b/lib/thirdpartylibs.xml index 03dc5c93a0a..3c18f42b18f 100644 --- a/lib/thirdpartylibs.xml +++ b/lib/thirdpartylibs.xml @@ -193,7 +193,7 @@ yui YUI BSD - 3.7.2 + 3.7.3 diff --git a/lib/yuilib/3.7.2/build/dataschema-xml/dataschema-xml-min.js b/lib/yuilib/3.7.2/build/dataschema-xml/dataschema-xml-min.js deleted file mode 100644 index a035503f9e7..00000000000 --- a/lib/yuilib/3.7.2/build/dataschema-xml/dataschema-xml-min.js +++ /dev/null @@ -1,7 +0,0 @@ -/* -YUI 3.7.2 (build 5639) -Copyright 2012 Yahoo! Inc. All rights reserved. -Licensed under the BSD License. -http://yuilibrary.com/license/ -*/ -YUI.add("dataschema-xml",function(e,t){var n=e.Lang,r={1:!0,9:!0,11:!0},i;i={apply:function(e,t){var n=t,s={results:[],meta:{}};return n&&r[n.nodeType]&&e?(s=i._parseResults(e,n,s),s=i._parseMeta(e.metaFields,n,s)):s.error=new Error("XML schema parse failure"),s},_getLocationValue:function(t,n){var r=t.locator||t.key||t,s=n.ownerDocument||n,o,u,a=null;try{o=i._getXPathResult(r,n,s);while(u=o.iterateNext())a=u.textContent||u.value||u.text||u.innerHTML||null;return e.DataSchema.Base.parse.call(this,a,t)}catch(f){}return null},_getXPathResult:function(t,r,i){if(!n.isUndefined(i.evaluate))return i.evaluate(t,r,i.createNSResolver(r.ownerDocument?r.ownerDocument.documentElement:r.documentElement),0,null);var s=[],o=t.split(/\b\/\b/),u=0,a=o.length,f,l,c,h;try{i.setProperty("SelectionLanguage","XPath"),s=r.selectNodes(t)}catch(p){for(;u-1&&f.indexOf("]")>-1)l=f.slice(f.indexOf("[")+1,f.indexOf("]")),l--,r=r.children[l],h=!0;else if(f.indexOf("@")>-1)l=f.substr(f.indexOf("@")),r=l?r.getAttribute(l.replace("@","")):r;else if(-1=this.values.length)return undefined;var e=this.values[this.index];return this.index+=1,e},values:s}},_parseField:function(e,t,n){var r=e.key||e,s;e.schema?(s={results:[],meta:{}},s=i._parseResults(e.schema,n,s),t[r]=s.results):t[r]=i._getLocationValue(e,n)},_parseMeta:function(e,t,r){if(n.isObject(e)){var s,o=t.ownerDocument||t;for(s in e)e.hasOwnProperty(s)&&(r.meta[s]=i._getLocationValue(e[s],o))}return r},_parseResult:function(e,t){var n={},r;for(r=e.length-1;0<=r;r--)i._parseField(e[r],n,t);return n},_parseResults:function(e,t,r){if(e.resultListLocator&&n.isArray(e.resultFields)){var s=t.ownerDocument||t,o=e.resultFields,u=[],a,f,l=0;if(e.resultListLocator.match(/^[:\-\w]+$/)){f=t.getElementsByTagName(e.resultListLocator);for(l=f.length-1;l>=0;--l)u[l]=i._parseResult(o,f[l])}else{f=i._getXPathResult(e.resultListLocator,t,s);while(a=f.iterateNext())u[l]=i._parseResult(o,a),l+=1}u.length?r.results=u:r.error=new Error("XML schema result nodes retrieval failure")}return r}},e.DataSchema.XML=e.mix(i,e.DataSchema.Base)},"3.7.2",{requires:["dataschema-base"]}); diff --git a/lib/yuilib/3.7.2/build/datatype-xml-format/datatype-xml-format-min.js b/lib/yuilib/3.7.2/build/datatype-xml-format/datatype-xml-format-min.js deleted file mode 100644 index 6208913e3ff..00000000000 --- a/lib/yuilib/3.7.2/build/datatype-xml-format/datatype-xml-format-min.js +++ /dev/null @@ -1,7 +0,0 @@ -/* -YUI 3.7.2 (build 5639) -Copyright 2012 Yahoo! Inc. All rights reserved. -Licensed under the BSD License. -http://yuilibrary.com/license/ -*/ -YUI.add("datatype-xml-format",function(e,t){var n=e.Lang;e.mix(e.namespace("XML"),{format:function(e){try{if(!n.isUndefined(XMLSerializer))return(new XMLSerializer).serializeToString(e)}catch(t){return e&&e.xml?e.xml:n.isValue(e)&&e.toString?e.toString():""}}}),e.namespace("DataType"),e.DataType.XML=e.XML},"3.7.2"); diff --git a/lib/yuilib/3.7.2/build/datatype-xml-parse/datatype-xml-parse-min.js b/lib/yuilib/3.7.2/build/datatype-xml-parse/datatype-xml-parse-min.js deleted file mode 100644 index 0f1e4498f99..00000000000 --- a/lib/yuilib/3.7.2/build/datatype-xml-parse/datatype-xml-parse-min.js +++ /dev/null @@ -1,7 +0,0 @@ -/* -YUI 3.7.2 (build 5639) -Copyright 2012 Yahoo! Inc. All rights reserved. -Licensed under the BSD License. -http://yuilibrary.com/license/ -*/ -YUI.add("datatype-xml-parse",function(e,t){var n=e.Lang;e.mix(e.namespace("XML"),{parse:function(e){var t=null;if(n.isString(e))try{n.isUndefined(ActiveXObject)||(t=new ActiveXObject("Microsoft.XMLDOM"),t.async=!1,t.loadXML(e))}catch(r){try{n.isUndefined(DOMParser)||(t=(new DOMParser).parseFromString(e,"text/xml"))}catch(i){}}return n.isNull(t)||n.isNull(t.documentElement)||t.documentElement.nodeName==="parsererror",t}}),e.namespace("Parsers").xml=e.XML.parse,e.namespace("DataType"),e.DataType.XML=e.XML},"3.7.2"); diff --git a/lib/yuilib/3.7.2/build/dd-constrain/dd-constrain-coverage.js b/lib/yuilib/3.7.2/build/dd-constrain/dd-constrain-coverage.js deleted file mode 100644 index 1841e51436b..00000000000 --- a/lib/yuilib/3.7.2/build/dd-constrain/dd-constrain-coverage.js +++ /dev/null @@ -1,754 +0,0 @@ -/* -YUI 3.7.2 (build 5639) -Copyright 2012 Yahoo! Inc. All rights reserved. -Licensed under the BSD License. -http://yuilibrary.com/license/ -*/ -if (typeof _yuitest_coverage == "undefined"){ - _yuitest_coverage = {}; - _yuitest_coverline = function(src, line){ - var coverage = _yuitest_coverage[src]; - if (!coverage.lines[line]){ - coverage.calledLines++; - } - coverage.lines[line]++; - }; - _yuitest_coverfunc = function(src, name, line){ - var coverage = _yuitest_coverage[src], - funcId = name + ":" + line; - if (!coverage.functions[funcId]){ - coverage.calledFunctions++; - } - coverage.functions[funcId]++; - }; -} -_yuitest_coverage["build/dd-constrain/dd-constrain.js"] = { - lines: {}, - functions: {}, - coveredLines: 0, - calledLines: 0, - coveredFunctions: 0, - calledFunctions: 0, - path: "build/dd-constrain/dd-constrain.js", - code: [] -}; -_yuitest_coverage["build/dd-constrain/dd-constrain.js"].code=["YUI.add('dd-constrain', function (Y, NAME) {","",""," /**"," * The Drag & Drop Utility allows you to create a draggable interface efficiently, buffering you from browser-level abnormalities and enabling you to focus on the interesting logic surrounding your particular implementation. This component enables you to create a variety of standard draggable objects with just a few lines of code and then, using its extensive API, add your own specific implementation logic."," * @module dd"," * @main dd"," * @submodule dd-constrain"," */"," /**"," * Plugin for the dd-drag module to add the constraining methods to it. It supports constraining to a node or viewport. It supports tick based moves and XY axis constraints."," * @class DDConstrained"," * @extends Base"," * @constructor"," * @namespace Plugin"," */",""," var DRAG_NODE = 'dragNode',"," OFFSET_HEIGHT = 'offsetHeight',"," OFFSET_WIDTH = 'offsetWidth',"," HOST = 'host',"," TICK_X_ARRAY = 'tickXArray',"," TICK_Y_ARRAY = 'tickYArray',"," DDM = Y.DD.DDM,"," TOP = 'top',"," RIGHT = 'right',"," BOTTOM = 'bottom',"," LEFT = 'left',"," VIEW = 'view',"," proto = null,",""," /**"," * @event drag:tickAlignX"," * @description Fires when this node is aligned with the tickX value."," * @param {EventFacade} event An Event Facade object"," * @type {CustomEvent}"," */"," EV_TICK_ALIGN_X = 'drag:tickAlignX',",""," /**"," * @event drag:tickAlignY"," * @description Fires when this node is aligned with the tickY value."," * @param {EventFacade} event An Event Facade object"," * @type {CustomEvent}"," */"," EV_TICK_ALIGN_Y = 'drag:tickAlignY',",""," C = function(config) {"," this._lazyAddAttrs = false;"," C.superclass.constructor.apply(this, arguments);"," };",""," C.NAME = 'ddConstrained';"," /**"," * @property NS"," * @default con"," * @readonly"," * @protected"," * @static"," * @description The Constrained instance will be placed on the Drag instance under the con namespace."," * @type {String}","*/"," C.NS = 'con';",""," C.ATTRS = {"," host: {"," },"," /**"," * @attribute stickX"," * @description Stick the drag movement to the X-Axis. Default: false"," * @type Boolean"," */"," stickX: {"," value: false"," },"," /**"," * @attribute stickY"," * @description Stick the drag movement to the Y-Axis"," * @type Boolean"," */"," stickY: {"," value: false"," },"," /**"," * @attribute tickX"," * @description The X tick offset the drag node should snap to on each drag move. False for no ticks. Default: false"," * @type Number/false"," */"," tickX: {"," value: false"," },"," /**"," * @attribute tickY"," * @description The Y tick offset the drag node should snap to on each drag move. False for no ticks. Default: false"," * @type Number/false"," */"," tickY: {"," value: false"," },"," /**"," * @attribute tickXArray"," * @description An array of page coordinates to use as X ticks for drag movement."," * @type Array"," */"," tickXArray: {"," value: false"," },"," /**"," * @attribute tickYArray"," * @description An array of page coordinates to use as Y ticks for drag movement."," * @type Array"," */"," tickYArray: {"," value: false"," },"," /**"," * @attribute gutter"," * @description CSS style string for the gutter of a region (supports negative values): '5 0' (sets top and bottom to 5px, left and right to 0px), '1 2 3 4' (top 1px, right 2px, bottom 3px, left 4px)"," * @type String"," */"," gutter: {"," value: '0',"," setter: function(gutter) {"," return Y.DD.DDM.cssSizestoObject(gutter);"," }"," },"," /**"," * @attribute constrain"," * @description Will attempt to constrain the drag node to the boundaries. Arguments:
"," * 'view': Contrain to Viewport
"," * '#selector_string': Constrain to this node
"," * '{Region Object}': An Object Literal containing a valid region (top, right, bottom, left) of page positions"," * @type {String/Object/Node}"," */"," constrain: {"," value: VIEW,"," setter: function(con) {"," var node = Y.one(con);"," if (node) {"," con = node;"," }"," return con;"," }"," },"," /**"," * @deprecated"," * @attribute constrain2region"," * @description An Object Literal containing a valid region (top, right, bottom, left) of page positions to constrain the drag node to."," * @type Object"," */"," constrain2region: {"," setter: function(r) {"," return this.set('constrain', r);"," }"," },"," /**"," * @deprecated"," * @attribute constrain2node"," * @description Will attempt to constrain the drag node to the boundaries of this node."," * @type Object"," */"," constrain2node: {"," setter: function(n) {"," return this.set('constrain', Y.one(n));"," }"," },"," /**"," * @deprecated"," * @attribute constrain2view"," * @description Will attempt to constrain the drag node to the boundaries of the viewport region."," * @type Object"," */"," constrain2view: {"," setter: function(n) {"," return this.set('constrain', VIEW);"," }"," },"," /**"," * @attribute cacheRegion"," * @description Should the region be cached for performace. Default: true"," * @type Boolean"," */"," cacheRegion: {"," value: true"," }"," };",""," proto = {"," _lastTickXFired: null,"," _lastTickYFired: null,",""," initializer: function() {"," this._createEvents();",""," this._eventHandles = ["," this.get(HOST).on('drag:end', Y.bind(this._handleEnd, this)),"," this.get(HOST).on('drag:start', Y.bind(this._handleStart, this)),"," this.get(HOST).after('drag:align', Y.bind(this.align, this)),"," this.get(HOST).after('drag:drag', Y.bind(this.drag, this))"," ];"," },"," destructor: function() {"," Y.each("," this._eventHandles,"," function(handle, index) {"," handle.detach();"," }"," );",""," this._eventHandles.length = 0;"," },"," /**"," * @private"," * @method _createEvents"," * @description This method creates all the events for this Event Target and publishes them so we get Event Bubbling."," */"," _createEvents: function() {"," var ev = ["," EV_TICK_ALIGN_X,"," EV_TICK_ALIGN_Y"," ];",""," Y.each(ev, function(v, k) {"," this.publish(v, {"," type: v,"," emitFacade: true,"," bubbles: true,"," queuable: false,"," prefix: 'drag'"," });"," }, this);"," },"," /**"," * @private"," * @method _handleEnd"," * @description Fires on drag:end"," */"," _handleEnd: function() {"," this._lastTickYFired = null;"," this._lastTickXFired = null;"," },"," /**"," * @private"," * @method _handleStart"," * @description Fires on drag:start and clears the _regionCache"," */"," _handleStart: function() {"," this.resetCache();"," },"," /**"," * @private"," * @property _regionCache"," * @description Store a cache of the region that we are constraining to"," * @type Object"," */"," _regionCache: null,"," /**"," * @private"," * @method _cacheRegion"," * @description Get's the region and caches it, called from window.resize and when the cache is null"," */"," _cacheRegion: function() {"," this._regionCache = this.get('constrain').get('region');"," },"," /**"," * @method resetCache"," * @description Reset the internal region cache."," */"," resetCache: function() {"," this._regionCache = null;"," },"," /**"," * @private"," * @method _getConstraint"," * @description Standardizes the 'constraint' attribute"," */"," _getConstraint: function() {"," var con = this.get('constrain'),"," g = this.get('gutter'),"," region;",""," if (con) {"," if (con instanceof Y.Node) {"," if (!this._regionCache) {"," this._eventHandles.push(Y.on('resize', Y.bind(this._cacheRegion, this), Y.config.win));"," this._cacheRegion();"," }"," region = Y.clone(this._regionCache);"," if (!this.get('cacheRegion')) {"," this.resetCache();"," }"," } else if (Y.Lang.isObject(con)) {"," region = Y.clone(con);"," }"," }"," if (!con || !region) {"," con = VIEW;"," }"," if (con === VIEW) {"," region = this.get(HOST).get(DRAG_NODE).get('viewportRegion');"," }",""," Y.each(g, function(i, n) {"," if ((n == RIGHT) || (n == BOTTOM)) {"," region[n] -= i;"," } else {"," region[n] += i;"," }"," });"," return region;"," },",""," /**"," * @method getRegion"," * @description Get the active region: viewport, node, custom region"," * @param {Boolean} inc Include the node's height and width"," * @return {Object} The active region."," */"," getRegion: function(inc) {"," var r = {}, oh = null, ow = null,"," host = this.get(HOST);",""," r = this._getConstraint();",""," if (inc) {"," oh = host.get(DRAG_NODE).get(OFFSET_HEIGHT);"," ow = host.get(DRAG_NODE).get(OFFSET_WIDTH);"," r[RIGHT] = r[RIGHT] - ow;"," r[BOTTOM] = r[BOTTOM] - oh;"," }"," return r;"," },"," /**"," * @private"," * @method _checkRegion"," * @description Check if xy is inside a given region, if not change to it be inside."," * @param {Array} _xy The XY to check if it's in the current region, if it isn't inside the region, it will reset the xy array to be inside the region."," * @return {Array} The new XY that is inside the region"," */"," _checkRegion: function(_xy) {"," var oxy = _xy,"," r = this.getRegion(),"," host = this.get(HOST),"," oh = host.get(DRAG_NODE).get(OFFSET_HEIGHT),"," ow = host.get(DRAG_NODE).get(OFFSET_WIDTH);",""," if (oxy[1] > (r[BOTTOM] - oh)) {"," _xy[1] = (r[BOTTOM] - oh);"," }"," if (r[TOP] > oxy[1]) {"," _xy[1] = r[TOP];",""," }"," if (oxy[0] > (r[RIGHT] - ow)) {"," _xy[0] = (r[RIGHT] - ow);"," }"," if (r[LEFT] > oxy[0]) {"," _xy[0] = r[LEFT];"," }",""," return _xy;"," },"," /**"," * @method inRegion"," * @description Checks if the XY passed or the dragNode is inside the active region."," * @param {Array} xy Optional XY to check, if not supplied this.get('dragNode').getXY() is used."," * @return {Boolean} True if the XY is inside the region, false otherwise."," */"," inRegion: function(xy) {"," xy = xy || this.get(HOST).get(DRAG_NODE).getXY();",""," var _xy = this._checkRegion([xy[0], xy[1]]),"," inside = false;"," if ((xy[0] === _xy[0]) && (xy[1] === _xy[1])) {"," inside = true;"," }"," return inside;"," },"," /**"," * @method align"," * @description Modifies the Drag.actXY method from the after drag:align event. This is where the constraining happens."," */"," align: function() {"," var host = this.get(HOST),"," _xy = [host.actXY[0], host.actXY[1]],"," r = this.getRegion(true);",""," if (this.get('stickX')) {"," _xy[1] = (host.startXY[1] - host.deltaXY[1]);"," }"," if (this.get('stickY')) {"," _xy[0] = (host.startXY[0] - host.deltaXY[0]);"," }",""," if (r) {"," _xy = this._checkRegion(_xy);"," }",""," _xy = this._checkTicks(_xy, r);",""," host.actXY = _xy;"," },"," /**"," * @method drag"," * @description Fires after drag:drag. Handle the tickX and tickX align events."," */"," drag: function(event) {"," var host = this.get(HOST),"," xt = this.get('tickX'),"," yt = this.get('tickY'),"," _xy = [host.actXY[0], host.actXY[1]];",""," if ((Y.Lang.isNumber(xt) || this.get(TICK_X_ARRAY)) && (this._lastTickXFired !== _xy[0])) {"," this._tickAlignX();"," this._lastTickXFired = _xy[0];"," }",""," if ((Y.Lang.isNumber(yt) || this.get(TICK_Y_ARRAY)) && (this._lastTickYFired !== _xy[1])) {"," this._tickAlignY();"," this._lastTickYFired = _xy[1];"," }"," },"," /**"," * @private"," * @method _checkTicks"," * @description This method delegates the proper helper method for tick calculations"," * @param {Array} xy The XY coords for the Drag"," * @param {Object} r The optional region that we are bound to."," * @return {Array} The calced XY coords"," */"," _checkTicks: function(xy, r) {"," var host = this.get(HOST),"," lx = (host.startXY[0] - host.deltaXY[0]),"," ly = (host.startXY[1] - host.deltaXY[1]),"," xt = this.get('tickX'),"," yt = this.get('tickY');"," if (xt && !this.get(TICK_X_ARRAY)) {"," xy[0] = DDM._calcTicks(xy[0], lx, xt, r[LEFT], r[RIGHT]);"," }"," if (yt && !this.get(TICK_Y_ARRAY)) {"," xy[1] = DDM._calcTicks(xy[1], ly, yt, r[TOP], r[BOTTOM]);"," }"," if (this.get(TICK_X_ARRAY)) {"," xy[0] = DDM._calcTickArray(xy[0], this.get(TICK_X_ARRAY), r[LEFT], r[RIGHT]);"," }"," if (this.get(TICK_Y_ARRAY)) {"," xy[1] = DDM._calcTickArray(xy[1], this.get(TICK_Y_ARRAY), r[TOP], r[BOTTOM]);"," }",""," return xy;"," },"," /**"," * @private"," * @method _tickAlignX"," * @description Fires when the actXY[0] reach a new value respecting the tickX gap."," */"," _tickAlignX: function() {"," this.fire(EV_TICK_ALIGN_X);"," },"," /**"," * @private"," * @method _tickAlignY"," * @description Fires when the actXY[1] reach a new value respecting the tickY gap."," */"," _tickAlignY: function() {"," this.fire(EV_TICK_ALIGN_Y);"," }"," };",""," Y.namespace('Plugin');"," Y.extend(C, Y.Base, proto);"," Y.Plugin.DDConstrained = C;",""," Y.mix(DDM, {"," /**"," * @for DDM"," * @namespace DD"," * @private"," * @method _calcTicks"," * @description Helper method to calculate the tick offsets for a given position"," * @param {Number} pos The current X or Y position"," * @param {Number} start The start X or Y position"," * @param {Number} tick The X or Y tick increment"," * @param {Number} off1 The min offset that we can't pass (region)"," * @param {Number} off2 The max offset that we can't pass (region)"," * @return {Number} The new position based on the tick calculation"," */"," _calcTicks: function(pos, start, tick, off1, off2) {"," var ix = ((pos - start) / tick),"," min = Math.floor(ix),"," max = Math.ceil(ix);"," if ((min !== 0) || (max !== 0)) {"," if ((ix >= min) && (ix <= max)) {"," pos = (start + (tick * min));"," if (off1 && off2) {"," if (pos < off1) {"," pos = (start + (tick * (min + 1)));"," }"," if (pos > off2) {"," pos = (start + (tick * (min - 1)));"," }"," }"," }"," }"," return pos;"," },"," /**"," * @for DDM"," * @namespace DD"," * @private"," * @method _calcTickArray"," * @description This method is used with the tickXArray and tickYArray config options"," * @param {Number} pos The current X or Y position"," * @param {Number} ticks The array containing our custom tick positions."," * @param {Number} off1 The min offset that we can't pass (region)"," * @param {Number} off2 The max offset that we can't pass (region)"," * @return The tick position"," */"," _calcTickArray: function(pos, ticks, off1, off2) {"," var i = 0, len = ticks.length, next = 0,"," diff1, diff2, ret;",""," if (!ticks || (ticks.length === 0)) {"," return pos;"," }"," if (ticks[0] >= pos) {"," return ticks[0];"," }",""," for (i = 0; i < len; i++) {"," next = (i + 1);"," if (ticks[next] && ticks[next] >= pos) {"," diff1 = pos - ticks[i];"," diff2 = ticks[next] - pos;"," ret = (diff2 > diff1) ? ticks[i] : ticks[next];"," if (off1 && off2) {"," if (ret > off2) {"," if (ticks[i]) {"," ret = ticks[i];"," } else {"," ret = ticks[len - 1];"," }"," }"," }"," return ret;"," }",""," }"," return ticks[ticks.length - 1];"," }"," });","","","","}, '3.7.2', {\"requires\": [\"dd-drag\"]});"]; -_yuitest_coverage["build/dd-constrain/dd-constrain.js"].lines = {"1":0,"18":0,"49":0,"50":0,"53":0,"63":0,"65":0,"124":0,"138":0,"139":0,"140":0,"142":0,"153":0,"164":0,"175":0,"188":0,"193":0,"195":0,"203":0,"206":0,"210":0,"218":0,"223":0,"224":0,"239":0,"240":0,"248":0,"263":0,"270":0,"278":0,"282":0,"283":0,"284":0,"285":0,"286":0,"288":0,"289":0,"290":0,"292":0,"293":0,"296":0,"297":0,"299":0,"300":0,"303":0,"304":0,"305":0,"307":0,"310":0,"320":0,"323":0,"325":0,"326":0,"327":0,"328":0,"329":0,"331":0,"341":0,"347":0,"348":0,"350":0,"351":0,"354":0,"355":0,"357":0,"358":0,"361":0,"370":0,"372":0,"374":0,"375":0,"377":0,"384":0,"388":0,"389":0,"391":0,"392":0,"395":0,"396":0,"399":0,"401":0,"408":0,"413":0,"414":0,"415":0,"418":0,"419":0,"420":0,"432":0,"437":0,"438":0,"440":0,"441":0,"443":0,"444":0,"446":0,"447":0,"450":0,"458":0,"466":0,"470":0,"471":0,"472":0,"474":0,"489":0,"492":0,"493":0,"494":0,"495":0,"496":0,"497":0,"499":0,"500":0,"505":0,"520":0,"523":0,"524":0,"526":0,"527":0,"530":0,"531":0,"532":0,"533":0,"534":0,"535":0,"536":0,"537":0,"538":0,"539":0,"541":0,"545":0,"549":0}; -_yuitest_coverage["build/dd-constrain/dd-constrain.js"].functions = {"C:48":0,"setter:123":0,"setter:137":0,"setter:152":0,"setter:163":0,"setter:174":0,"initializer:192":0,"(anonymous 2):205":0,"destructor:202":0,"(anonymous 3):223":0,"_createEvents:217":0,"_handleEnd:238":0,"_handleStart:247":0,"_cacheRegion:262":0,"resetCache:269":0,"(anonymous 4):303":0,"_getConstraint:277":0,"getRegion:319":0,"_checkRegion:340":0,"inRegion:369":0,"align:383":0,"drag:407":0,"_checkTicks:431":0,"_tickAlignX:457":0,"_tickAlignY:465":0,"_calcTicks:488":0,"_calcTickArray:519":0,"(anonymous 1):1":0}; -_yuitest_coverage["build/dd-constrain/dd-constrain.js"].coveredLines = 132; -_yuitest_coverage["build/dd-constrain/dd-constrain.js"].coveredFunctions = 28; -_yuitest_coverline("build/dd-constrain/dd-constrain.js", 1); -YUI.add('dd-constrain', function (Y, NAME) { - - - /** - * The Drag & Drop Utility allows you to create a draggable interface efficiently, buffering you from browser-level abnormalities and enabling you to focus on the interesting logic surrounding your particular implementation. This component enables you to create a variety of standard draggable objects with just a few lines of code and then, using its extensive API, add your own specific implementation logic. - * @module dd - * @main dd - * @submodule dd-constrain - */ - /** - * Plugin for the dd-drag module to add the constraining methods to it. It supports constraining to a node or viewport. It supports tick based moves and XY axis constraints. - * @class DDConstrained - * @extends Base - * @constructor - * @namespace Plugin - */ - - _yuitest_coverfunc("build/dd-constrain/dd-constrain.js", "(anonymous 1)", 1); -_yuitest_coverline("build/dd-constrain/dd-constrain.js", 18); -var DRAG_NODE = 'dragNode', - OFFSET_HEIGHT = 'offsetHeight', - OFFSET_WIDTH = 'offsetWidth', - HOST = 'host', - TICK_X_ARRAY = 'tickXArray', - TICK_Y_ARRAY = 'tickYArray', - DDM = Y.DD.DDM, - TOP = 'top', - RIGHT = 'right', - BOTTOM = 'bottom', - LEFT = 'left', - VIEW = 'view', - proto = null, - - /** - * @event drag:tickAlignX - * @description Fires when this node is aligned with the tickX value. - * @param {EventFacade} event An Event Facade object - * @type {CustomEvent} - */ - EV_TICK_ALIGN_X = 'drag:tickAlignX', - - /** - * @event drag:tickAlignY - * @description Fires when this node is aligned with the tickY value. - * @param {EventFacade} event An Event Facade object - * @type {CustomEvent} - */ - EV_TICK_ALIGN_Y = 'drag:tickAlignY', - - C = function(config) { - _yuitest_coverfunc("build/dd-constrain/dd-constrain.js", "C", 48); -_yuitest_coverline("build/dd-constrain/dd-constrain.js", 49); -this._lazyAddAttrs = false; - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 50); -C.superclass.constructor.apply(this, arguments); - }; - - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 53); -C.NAME = 'ddConstrained'; - /** - * @property NS - * @default con - * @readonly - * @protected - * @static - * @description The Constrained instance will be placed on the Drag instance under the con namespace. - * @type {String} -*/ - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 63); -C.NS = 'con'; - - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 65); -C.ATTRS = { - host: { - }, - /** - * @attribute stickX - * @description Stick the drag movement to the X-Axis. Default: false - * @type Boolean - */ - stickX: { - value: false - }, - /** - * @attribute stickY - * @description Stick the drag movement to the Y-Axis - * @type Boolean - */ - stickY: { - value: false - }, - /** - * @attribute tickX - * @description The X tick offset the drag node should snap to on each drag move. False for no ticks. Default: false - * @type Number/false - */ - tickX: { - value: false - }, - /** - * @attribute tickY - * @description The Y tick offset the drag node should snap to on each drag move. False for no ticks. Default: false - * @type Number/false - */ - tickY: { - value: false - }, - /** - * @attribute tickXArray - * @description An array of page coordinates to use as X ticks for drag movement. - * @type Array - */ - tickXArray: { - value: false - }, - /** - * @attribute tickYArray - * @description An array of page coordinates to use as Y ticks for drag movement. - * @type Array - */ - tickYArray: { - value: false - }, - /** - * @attribute gutter - * @description CSS style string for the gutter of a region (supports negative values): '5 0' (sets top and bottom to 5px, left and right to 0px), '1 2 3 4' (top 1px, right 2px, bottom 3px, left 4px) - * @type String - */ - gutter: { - value: '0', - setter: function(gutter) { - _yuitest_coverfunc("build/dd-constrain/dd-constrain.js", "setter", 123); -_yuitest_coverline("build/dd-constrain/dd-constrain.js", 124); -return Y.DD.DDM.cssSizestoObject(gutter); - } - }, - /** - * @attribute constrain - * @description Will attempt to constrain the drag node to the boundaries. Arguments:
- * 'view': Contrain to Viewport
- * '#selector_string': Constrain to this node
- * '{Region Object}': An Object Literal containing a valid region (top, right, bottom, left) of page positions - * @type {String/Object/Node} - */ - constrain: { - value: VIEW, - setter: function(con) { - _yuitest_coverfunc("build/dd-constrain/dd-constrain.js", "setter", 137); -_yuitest_coverline("build/dd-constrain/dd-constrain.js", 138); -var node = Y.one(con); - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 139); -if (node) { - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 140); -con = node; - } - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 142); -return con; - } - }, - /** - * @deprecated - * @attribute constrain2region - * @description An Object Literal containing a valid region (top, right, bottom, left) of page positions to constrain the drag node to. - * @type Object - */ - constrain2region: { - setter: function(r) { - _yuitest_coverfunc("build/dd-constrain/dd-constrain.js", "setter", 152); -_yuitest_coverline("build/dd-constrain/dd-constrain.js", 153); -return this.set('constrain', r); - } - }, - /** - * @deprecated - * @attribute constrain2node - * @description Will attempt to constrain the drag node to the boundaries of this node. - * @type Object - */ - constrain2node: { - setter: function(n) { - _yuitest_coverfunc("build/dd-constrain/dd-constrain.js", "setter", 163); -_yuitest_coverline("build/dd-constrain/dd-constrain.js", 164); -return this.set('constrain', Y.one(n)); - } - }, - /** - * @deprecated - * @attribute constrain2view - * @description Will attempt to constrain the drag node to the boundaries of the viewport region. - * @type Object - */ - constrain2view: { - setter: function(n) { - _yuitest_coverfunc("build/dd-constrain/dd-constrain.js", "setter", 174); -_yuitest_coverline("build/dd-constrain/dd-constrain.js", 175); -return this.set('constrain', VIEW); - } - }, - /** - * @attribute cacheRegion - * @description Should the region be cached for performace. Default: true - * @type Boolean - */ - cacheRegion: { - value: true - } - }; - - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 188); -proto = { - _lastTickXFired: null, - _lastTickYFired: null, - - initializer: function() { - _yuitest_coverfunc("build/dd-constrain/dd-constrain.js", "initializer", 192); -_yuitest_coverline("build/dd-constrain/dd-constrain.js", 193); -this._createEvents(); - - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 195); -this._eventHandles = [ - this.get(HOST).on('drag:end', Y.bind(this._handleEnd, this)), - this.get(HOST).on('drag:start', Y.bind(this._handleStart, this)), - this.get(HOST).after('drag:align', Y.bind(this.align, this)), - this.get(HOST).after('drag:drag', Y.bind(this.drag, this)) - ]; - }, - destructor: function() { - _yuitest_coverfunc("build/dd-constrain/dd-constrain.js", "destructor", 202); -_yuitest_coverline("build/dd-constrain/dd-constrain.js", 203); -Y.each( - this._eventHandles, - function(handle, index) { - _yuitest_coverfunc("build/dd-constrain/dd-constrain.js", "(anonymous 2)", 205); -_yuitest_coverline("build/dd-constrain/dd-constrain.js", 206); -handle.detach(); - } - ); - - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 210); -this._eventHandles.length = 0; - }, - /** - * @private - * @method _createEvents - * @description This method creates all the events for this Event Target and publishes them so we get Event Bubbling. - */ - _createEvents: function() { - _yuitest_coverfunc("build/dd-constrain/dd-constrain.js", "_createEvents", 217); -_yuitest_coverline("build/dd-constrain/dd-constrain.js", 218); -var ev = [ - EV_TICK_ALIGN_X, - EV_TICK_ALIGN_Y - ]; - - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 223); -Y.each(ev, function(v, k) { - _yuitest_coverfunc("build/dd-constrain/dd-constrain.js", "(anonymous 3)", 223); -_yuitest_coverline("build/dd-constrain/dd-constrain.js", 224); -this.publish(v, { - type: v, - emitFacade: true, - bubbles: true, - queuable: false, - prefix: 'drag' - }); - }, this); - }, - /** - * @private - * @method _handleEnd - * @description Fires on drag:end - */ - _handleEnd: function() { - _yuitest_coverfunc("build/dd-constrain/dd-constrain.js", "_handleEnd", 238); -_yuitest_coverline("build/dd-constrain/dd-constrain.js", 239); -this._lastTickYFired = null; - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 240); -this._lastTickXFired = null; - }, - /** - * @private - * @method _handleStart - * @description Fires on drag:start and clears the _regionCache - */ - _handleStart: function() { - _yuitest_coverfunc("build/dd-constrain/dd-constrain.js", "_handleStart", 247); -_yuitest_coverline("build/dd-constrain/dd-constrain.js", 248); -this.resetCache(); - }, - /** - * @private - * @property _regionCache - * @description Store a cache of the region that we are constraining to - * @type Object - */ - _regionCache: null, - /** - * @private - * @method _cacheRegion - * @description Get's the region and caches it, called from window.resize and when the cache is null - */ - _cacheRegion: function() { - _yuitest_coverfunc("build/dd-constrain/dd-constrain.js", "_cacheRegion", 262); -_yuitest_coverline("build/dd-constrain/dd-constrain.js", 263); -this._regionCache = this.get('constrain').get('region'); - }, - /** - * @method resetCache - * @description Reset the internal region cache. - */ - resetCache: function() { - _yuitest_coverfunc("build/dd-constrain/dd-constrain.js", "resetCache", 269); -_yuitest_coverline("build/dd-constrain/dd-constrain.js", 270); -this._regionCache = null; - }, - /** - * @private - * @method _getConstraint - * @description Standardizes the 'constraint' attribute - */ - _getConstraint: function() { - _yuitest_coverfunc("build/dd-constrain/dd-constrain.js", "_getConstraint", 277); -_yuitest_coverline("build/dd-constrain/dd-constrain.js", 278); -var con = this.get('constrain'), - g = this.get('gutter'), - region; - - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 282); -if (con) { - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 283); -if (con instanceof Y.Node) { - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 284); -if (!this._regionCache) { - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 285); -this._eventHandles.push(Y.on('resize', Y.bind(this._cacheRegion, this), Y.config.win)); - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 286); -this._cacheRegion(); - } - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 288); -region = Y.clone(this._regionCache); - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 289); -if (!this.get('cacheRegion')) { - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 290); -this.resetCache(); - } - } else {_yuitest_coverline("build/dd-constrain/dd-constrain.js", 292); -if (Y.Lang.isObject(con)) { - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 293); -region = Y.clone(con); - }} - } - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 296); -if (!con || !region) { - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 297); -con = VIEW; - } - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 299); -if (con === VIEW) { - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 300); -region = this.get(HOST).get(DRAG_NODE).get('viewportRegion'); - } - - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 303); -Y.each(g, function(i, n) { - _yuitest_coverfunc("build/dd-constrain/dd-constrain.js", "(anonymous 4)", 303); -_yuitest_coverline("build/dd-constrain/dd-constrain.js", 304); -if ((n == RIGHT) || (n == BOTTOM)) { - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 305); -region[n] -= i; - } else { - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 307); -region[n] += i; - } - }); - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 310); -return region; - }, - - /** - * @method getRegion - * @description Get the active region: viewport, node, custom region - * @param {Boolean} inc Include the node's height and width - * @return {Object} The active region. - */ - getRegion: function(inc) { - _yuitest_coverfunc("build/dd-constrain/dd-constrain.js", "getRegion", 319); -_yuitest_coverline("build/dd-constrain/dd-constrain.js", 320); -var r = {}, oh = null, ow = null, - host = this.get(HOST); - - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 323); -r = this._getConstraint(); - - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 325); -if (inc) { - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 326); -oh = host.get(DRAG_NODE).get(OFFSET_HEIGHT); - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 327); -ow = host.get(DRAG_NODE).get(OFFSET_WIDTH); - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 328); -r[RIGHT] = r[RIGHT] - ow; - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 329); -r[BOTTOM] = r[BOTTOM] - oh; - } - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 331); -return r; - }, - /** - * @private - * @method _checkRegion - * @description Check if xy is inside a given region, if not change to it be inside. - * @param {Array} _xy The XY to check if it's in the current region, if it isn't inside the region, it will reset the xy array to be inside the region. - * @return {Array} The new XY that is inside the region - */ - _checkRegion: function(_xy) { - _yuitest_coverfunc("build/dd-constrain/dd-constrain.js", "_checkRegion", 340); -_yuitest_coverline("build/dd-constrain/dd-constrain.js", 341); -var oxy = _xy, - r = this.getRegion(), - host = this.get(HOST), - oh = host.get(DRAG_NODE).get(OFFSET_HEIGHT), - ow = host.get(DRAG_NODE).get(OFFSET_WIDTH); - - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 347); -if (oxy[1] > (r[BOTTOM] - oh)) { - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 348); -_xy[1] = (r[BOTTOM] - oh); - } - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 350); -if (r[TOP] > oxy[1]) { - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 351); -_xy[1] = r[TOP]; - - } - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 354); -if (oxy[0] > (r[RIGHT] - ow)) { - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 355); -_xy[0] = (r[RIGHT] - ow); - } - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 357); -if (r[LEFT] > oxy[0]) { - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 358); -_xy[0] = r[LEFT]; - } - - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 361); -return _xy; - }, - /** - * @method inRegion - * @description Checks if the XY passed or the dragNode is inside the active region. - * @param {Array} xy Optional XY to check, if not supplied this.get('dragNode').getXY() is used. - * @return {Boolean} True if the XY is inside the region, false otherwise. - */ - inRegion: function(xy) { - _yuitest_coverfunc("build/dd-constrain/dd-constrain.js", "inRegion", 369); -_yuitest_coverline("build/dd-constrain/dd-constrain.js", 370); -xy = xy || this.get(HOST).get(DRAG_NODE).getXY(); - - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 372); -var _xy = this._checkRegion([xy[0], xy[1]]), - inside = false; - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 374); -if ((xy[0] === _xy[0]) && (xy[1] === _xy[1])) { - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 375); -inside = true; - } - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 377); -return inside; - }, - /** - * @method align - * @description Modifies the Drag.actXY method from the after drag:align event. This is where the constraining happens. - */ - align: function() { - _yuitest_coverfunc("build/dd-constrain/dd-constrain.js", "align", 383); -_yuitest_coverline("build/dd-constrain/dd-constrain.js", 384); -var host = this.get(HOST), - _xy = [host.actXY[0], host.actXY[1]], - r = this.getRegion(true); - - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 388); -if (this.get('stickX')) { - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 389); -_xy[1] = (host.startXY[1] - host.deltaXY[1]); - } - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 391); -if (this.get('stickY')) { - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 392); -_xy[0] = (host.startXY[0] - host.deltaXY[0]); - } - - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 395); -if (r) { - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 396); -_xy = this._checkRegion(_xy); - } - - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 399); -_xy = this._checkTicks(_xy, r); - - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 401); -host.actXY = _xy; - }, - /** - * @method drag - * @description Fires after drag:drag. Handle the tickX and tickX align events. - */ - drag: function(event) { - _yuitest_coverfunc("build/dd-constrain/dd-constrain.js", "drag", 407); -_yuitest_coverline("build/dd-constrain/dd-constrain.js", 408); -var host = this.get(HOST), - xt = this.get('tickX'), - yt = this.get('tickY'), - _xy = [host.actXY[0], host.actXY[1]]; - - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 413); -if ((Y.Lang.isNumber(xt) || this.get(TICK_X_ARRAY)) && (this._lastTickXFired !== _xy[0])) { - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 414); -this._tickAlignX(); - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 415); -this._lastTickXFired = _xy[0]; - } - - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 418); -if ((Y.Lang.isNumber(yt) || this.get(TICK_Y_ARRAY)) && (this._lastTickYFired !== _xy[1])) { - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 419); -this._tickAlignY(); - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 420); -this._lastTickYFired = _xy[1]; - } - }, - /** - * @private - * @method _checkTicks - * @description This method delegates the proper helper method for tick calculations - * @param {Array} xy The XY coords for the Drag - * @param {Object} r The optional region that we are bound to. - * @return {Array} The calced XY coords - */ - _checkTicks: function(xy, r) { - _yuitest_coverfunc("build/dd-constrain/dd-constrain.js", "_checkTicks", 431); -_yuitest_coverline("build/dd-constrain/dd-constrain.js", 432); -var host = this.get(HOST), - lx = (host.startXY[0] - host.deltaXY[0]), - ly = (host.startXY[1] - host.deltaXY[1]), - xt = this.get('tickX'), - yt = this.get('tickY'); - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 437); -if (xt && !this.get(TICK_X_ARRAY)) { - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 438); -xy[0] = DDM._calcTicks(xy[0], lx, xt, r[LEFT], r[RIGHT]); - } - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 440); -if (yt && !this.get(TICK_Y_ARRAY)) { - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 441); -xy[1] = DDM._calcTicks(xy[1], ly, yt, r[TOP], r[BOTTOM]); - } - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 443); -if (this.get(TICK_X_ARRAY)) { - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 444); -xy[0] = DDM._calcTickArray(xy[0], this.get(TICK_X_ARRAY), r[LEFT], r[RIGHT]); - } - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 446); -if (this.get(TICK_Y_ARRAY)) { - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 447); -xy[1] = DDM._calcTickArray(xy[1], this.get(TICK_Y_ARRAY), r[TOP], r[BOTTOM]); - } - - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 450); -return xy; - }, - /** - * @private - * @method _tickAlignX - * @description Fires when the actXY[0] reach a new value respecting the tickX gap. - */ - _tickAlignX: function() { - _yuitest_coverfunc("build/dd-constrain/dd-constrain.js", "_tickAlignX", 457); -_yuitest_coverline("build/dd-constrain/dd-constrain.js", 458); -this.fire(EV_TICK_ALIGN_X); - }, - /** - * @private - * @method _tickAlignY - * @description Fires when the actXY[1] reach a new value respecting the tickY gap. - */ - _tickAlignY: function() { - _yuitest_coverfunc("build/dd-constrain/dd-constrain.js", "_tickAlignY", 465); -_yuitest_coverline("build/dd-constrain/dd-constrain.js", 466); -this.fire(EV_TICK_ALIGN_Y); - } - }; - - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 470); -Y.namespace('Plugin'); - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 471); -Y.extend(C, Y.Base, proto); - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 472); -Y.Plugin.DDConstrained = C; - - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 474); -Y.mix(DDM, { - /** - * @for DDM - * @namespace DD - * @private - * @method _calcTicks - * @description Helper method to calculate the tick offsets for a given position - * @param {Number} pos The current X or Y position - * @param {Number} start The start X or Y position - * @param {Number} tick The X or Y tick increment - * @param {Number} off1 The min offset that we can't pass (region) - * @param {Number} off2 The max offset that we can't pass (region) - * @return {Number} The new position based on the tick calculation - */ - _calcTicks: function(pos, start, tick, off1, off2) { - _yuitest_coverfunc("build/dd-constrain/dd-constrain.js", "_calcTicks", 488); -_yuitest_coverline("build/dd-constrain/dd-constrain.js", 489); -var ix = ((pos - start) / tick), - min = Math.floor(ix), - max = Math.ceil(ix); - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 492); -if ((min !== 0) || (max !== 0)) { - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 493); -if ((ix >= min) && (ix <= max)) { - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 494); -pos = (start + (tick * min)); - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 495); -if (off1 && off2) { - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 496); -if (pos < off1) { - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 497); -pos = (start + (tick * (min + 1))); - } - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 499); -if (pos > off2) { - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 500); -pos = (start + (tick * (min - 1))); - } - } - } - } - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 505); -return pos; - }, - /** - * @for DDM - * @namespace DD - * @private - * @method _calcTickArray - * @description This method is used with the tickXArray and tickYArray config options - * @param {Number} pos The current X or Y position - * @param {Number} ticks The array containing our custom tick positions. - * @param {Number} off1 The min offset that we can't pass (region) - * @param {Number} off2 The max offset that we can't pass (region) - * @return The tick position - */ - _calcTickArray: function(pos, ticks, off1, off2) { - _yuitest_coverfunc("build/dd-constrain/dd-constrain.js", "_calcTickArray", 519); -_yuitest_coverline("build/dd-constrain/dd-constrain.js", 520); -var i = 0, len = ticks.length, next = 0, - diff1, diff2, ret; - - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 523); -if (!ticks || (ticks.length === 0)) { - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 524); -return pos; - } - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 526); -if (ticks[0] >= pos) { - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 527); -return ticks[0]; - } - - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 530); -for (i = 0; i < len; i++) { - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 531); -next = (i + 1); - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 532); -if (ticks[next] && ticks[next] >= pos) { - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 533); -diff1 = pos - ticks[i]; - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 534); -diff2 = ticks[next] - pos; - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 535); -ret = (diff2 > diff1) ? ticks[i] : ticks[next]; - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 536); -if (off1 && off2) { - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 537); -if (ret > off2) { - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 538); -if (ticks[i]) { - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 539); -ret = ticks[i]; - } else { - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 541); -ret = ticks[len - 1]; - } - } - } - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 545); -return ret; - } - - } - _yuitest_coverline("build/dd-constrain/dd-constrain.js", 549); -return ticks[ticks.length - 1]; - } - }); - - - -}, '3.7.2', {"requires": ["dd-drag"]}); diff --git a/lib/yuilib/3.7.2/build/dd-constrain/dd-constrain-min.js b/lib/yuilib/3.7.2/build/dd-constrain/dd-constrain-min.js deleted file mode 100644 index 9b107210406..00000000000 --- a/lib/yuilib/3.7.2/build/dd-constrain/dd-constrain-min.js +++ /dev/null @@ -1,7 +0,0 @@ -/* -YUI 3.7.2 (build 5639) -Copyright 2012 Yahoo! Inc. All rights reserved. -Licensed under the BSD License. -http://yuilibrary.com/license/ -*/ -YUI.add("dd-constrain",function(e,t){var n="dragNode",r="offsetHeight",i="offsetWidth",s="host",o="tickXArray",u="tickYArray",a=e.DD.DDM,f="top",l="right",c="bottom",h="left",p="view",d=null,v="drag:tickAlignX",m="drag:tickAlignY",g=function(e){this._lazyAddAttrs=!1,g.superclass.constructor.apply(this,arguments)};g.NAME="ddConstrained",g.NS="con",g.ATTRS={host:{},stickX:{value:!1},stickY:{value:!1},tickX:{value:!1},tickY:{value:!1},tickXArray:{value:!1},tickYArray:{value:!1},gutter:{value:"0",setter:function(t){return e.DD.DDM.cssSizestoObject(t)}},constrain:{value:p,setter:function(t){var n=e.one(t);return n&&(t=n),t}},constrain2region:{setter:function(e){return this.set("constrain",e)}},constrain2node:{setter:function(t){return this.set("constrain",e.one(t))}},constrain2view:{setter:function(e){return this.set("constrain",p)}},cacheRegion:{value:!0}},d={_lastTickXFired:null,_lastTickYFired:null,initializer:function(){this._createEvents(),this._eventHandles=[this.get(s).on("drag:end",e.bind(this._handleEnd,this)),this.get(s).on("drag:start",e.bind(this._handleStart,this)),this.get(s).after("drag:align",e.bind(this.align,this)),this.get(s).after("drag:drag",e.bind(this.drag,this))]},destructor:function(){e.each(this._eventHandles,function(e,t){e.detach()}),this._eventHandles.length=0},_createEvents:function(){var t=[v,m];e.each(t,function(e,t){this.publish(e,{type:e,emitFacade:!0,bubbles:!0,queuable:!1,prefix:"drag"})},this)},_handleEnd:function(){this._lastTickYFired=null,this._lastTickXFired=null},_handleStart:function(){this.resetCache()},_regionCache:null,_cacheRegion:function(){this._regionCache=this.get("constrain").get("region")},resetCache:function(){this._regionCache=null},_getConstraint:function(){var t=this.get("constrain"),r=this.get("gutter"),i;t&&(t instanceof e.Node?(this._regionCache||(this._eventHandles.push(e.on("resize",e.bind(this._cacheRegion,this),e.config.win)),this._cacheRegion()),i=e.clone(this._regionCache),this.get("cacheRegion")||this.resetCache()):e.Lang.isObject(t)&&(i=e.clone(t)));if(!t||!i)t=p;return t===p&&(i=this.get(s).get(n).get("viewportRegion")),e.each(r,function(e,t){t==l||t==c?i[t]-=e:i[t]+=e}),i},getRegion:function(e){var t={},o=null,u=null,a=this.get(s);return t=this._getConstraint(),e&&(o=a.get(n).get(r),u=a.get(n).get(i),t[l]=t[l]-u,t[c]=t[c]-o),t},_checkRegion:function(e){var t=e,o=this.getRegion(),u=this.get(s),a=u.get(n).get(r),p=u.get(n).get(i);return t[1]>o[c]-a&&(e[1]=o[c]-a),o[f]>t[1]&&(e[1]=o[f]),t[0]>o[l]-p&&(e[0]=o[l]-p),o[h]>t[0]&&(e[0]=o[h]),e},inRegion:function(e){e=e||this.get(s).get(n).getXY();var t=this._checkRegion([e[0],e[1]]),r=!1;return e[0]===t[0]&&e[1]===t[1]&&(r=!0),r},align:function(){var e=this.get(s),t=[e.actXY[0],e.actXY[1]],n=this.getRegion(!0);this.get("stickX")&&(t[1]=e.startXY[1]-e.deltaXY[1]),this.get("stickY")&&(t[0]=e.startXY[0]-e.deltaXY[0]),n&&(t=this._checkRegion(t)),t=this._checkTicks(t,n),e.actXY=t},drag:function(t){var n=this.get(s),r=this.get("tickX"),i=this.get("tickY"),a=[n.actXY[0],n.actXY[1]];(e.Lang.isNumber(r)||this.get(o))&&this._lastTickXFired!==a[0]&&(this._tickAlignX(),this._lastTickXFired=a[0]),(e.Lang.isNumber(i)||this.get(u))&&this._lastTickYFired!==a[1]&&(this._tickAlignY(),this._lastTickYFired=a[1])},_checkTicks:function(e,t){var n=this.get(s),r=n.startXY[0]-n.deltaXY[0],i=n.startXY[1]-n.deltaXY[1],p=this.get("tickX"),d=this.get("tickY");return p&&!this.get(o)&&(e[0]=a._calcTicks(e[0],r,p,t[h],t[l])),d&&!this.get(u)&&(e[1]=a._calcTicks(e[1],i,d,t[f],t[c])),this.get(o)&&(e[0]=a._calcTickArray(e[0],this.get(o),t[h],t[l])),this.get(u)&&(e[1]=a._calcTickArray(e[1],this.get(u),t[f],t[c])),e},_tickAlignX:function(){this.fire(v)},_tickAlignY:function(){this.fire(m)}},e.namespace("Plugin"),e.extend(g,e.Base,d),e.Plugin.DDConstrained=g,e.mix(a,{_calcTicks:function(e,t,n,r,i){var s=(e-t)/n,o=Math.floor(s),u=Math.ceil(s);return(o!==0||u!==0)&&s>=o&&s<=u&&(e=t+n*o,r&&i&&(ei&&(e=t+n*(o-1)))),e},_calcTickArray:function(e,t,n,r){var i=0,s=t.length,o=0,u,a,f;if(!t||t.length===0)return e;if(t[0]>=e)return t[0];for(i=0;i=e)return u=e-t[i],a=t[o]-e,f=a>u?t[i]:t[o],n&&r&&f>r&&(t[i]?f=t[i]:f=t[s-1]),f}return t[t.length-1]}})},"3.7.2",{requires:["dd-drag"]}); diff --git a/lib/yuilib/3.7.2/build/dd-ddm-base/dd-ddm-base-min.js b/lib/yuilib/3.7.2/build/dd-ddm-base/dd-ddm-base-min.js deleted file mode 100644 index ceb7ab9047c..00000000000 --- a/lib/yuilib/3.7.2/build/dd-ddm-base/dd-ddm-base-min.js +++ /dev/null @@ -1,7 +0,0 @@ -/* -YUI 3.7.2 (build 5639) -Copyright 2012 Yahoo! Inc. All rights reserved. -Licensed under the BSD License. -http://yuilibrary.com/license/ -*/ -YUI.add("dd-ddm-base",function(e,t){var n=function(){n.superclass.constructor.apply(this,arguments)};n.NAME="ddm",n.ATTRS={dragCursor:{value:"move"},clickPixelThresh:{value:3},clickTimeThresh:{value:1e3},throttleTime:{value:-1},dragMode:{value:"point",setter:function(e){return this._setDragMode(e),e}}},e.extend(n,e.Base,{_createPG:function(){},_active:null,_setDragMode:function(t){t===null&&(t=e.DD.DDM.get("dragMode"));switch(t){case 1:case"intersect":return 1;case 2:case"strict":return 2;case 0:case"point":return 0}return 0},CSS_PREFIX:e.ClassNameManager.getClassName("dd"),_activateTargets:function(){},_drags:[],activeDrag:!1,_regDrag:function(e){return this.getDrag(e.get("node"))?!1:(this._active||this._setupListeners(),this._drags.push(e),!0)},_unregDrag:function(t){var n=[];e.each(this._drags,function(e,r){e!==t&&(n[n.length]=e)}),this._drags=n},_setupListeners:function(){this._createPG(),this._active=!0;var t=e.one(e.config.doc);t.on("mousemove",e.throttle(e.bind(this._docMove,this),this.get("throttleTime"))),t.on("mouseup",e.bind(this._end,this))},_start:function(){this.fire("ddm:start"),this._startDrag()},_startDrag:function(){},_endDrag:function(){},_dropMove:function(){},_end:function(){this.activeDrag&&(this._shimming=!1,this._endDrag(),this.fire("ddm:end"),this.activeDrag.end.call(this.activeDrag),this.activeDrag=null)},stopDrag:function(){return this.activeDrag&&this._end(),this},_shimming:!1,_docMove:function(e){this._shimming||this._move(e)},_move:function(e){this.activeDrag&&(this.activeDrag._move.call(this.activeDrag,e),this._dropMove())},cssSizestoObject:function(e){var t=e.split(" ");switch(t.length){case 1:t[1]=t[2]=t[3]=t[0];break;case 2:t[2]=t[0],t[3]=t[1];break;case 3:t[3]=t[1]}return{top:parseInt(t[0],10),right:parseInt(t[1],10),bottom:parseInt(t[2],10),left:parseInt(t[3],10)}},getDrag:function(t){var n=!1,r=e.one(t);return r instanceof e.Node&&e.each(this._drags,function(e,t){r.compareTo(e.get("node"))&&(n=e)}),n},swapPosition:function(t,n){t=e.DD.DDM.getNode(t),n=e.DD.DDM.getNode(n);var r=t.getXY(),i=n.getXY();return t.setXY(i),n.setXY(r),t},getNode:function(t){return t instanceof e.Node?t:(t&&t.get?e.Widget&&t instanceof e.Widget?t=t.get("boundingBox"):t=t.get("node"):t=e.one(t),t)},swapNode:function(t,n){t=e.DD.DDM.getNode(t),n=e.DD.DDM.getNode(n);var r=n.get("parentNode"),i=n.get("nextSibling");return i==t?r.insertBefore(t,n):n==t.get("nextSibling")?r.insertBefore(n,t):(t.get("parentNode").replaceChild(n,t),r.insertBefore(t,i)),t}}),e.namespace("DD"),e.DD.DDM=new n},"3.7.2",{requires:["node","base","yui-throttle","classnamemanager"]}); diff --git a/lib/yuilib/3.7.2/build/dd-ddm-drop/dd-ddm-drop-min.js b/lib/yuilib/3.7.2/build/dd-ddm-drop/dd-ddm-drop-min.js deleted file mode 100644 index b50c65221e3..00000000000 --- a/lib/yuilib/3.7.2/build/dd-ddm-drop/dd-ddm-drop-min.js +++ /dev/null @@ -1,7 +0,0 @@ -/* -YUI 3.7.2 (build 5639) -Copyright 2012 Yahoo! Inc. All rights reserved. -Licensed under the BSD License. -http://yuilibrary.com/license/ -*/ -YUI.add("dd-ddm-drop",function(e,t){e.mix(e.DD.DDM,{_noShim:!1,_activeShims:[],_hasActiveShim:function(){return this._noShim?!0:this._activeShims.length},_addActiveShim:function(e){this._activeShims[this._activeShims.length]=e},_removeActiveShim:function(t){var n=[];e.each(this._activeShims,function(e,r){e._yuid!==t._yuid&&(n[n.length]=e)}),this._activeShims=n},syncActiveShims:function(t){e.later(0,this,function(t){var n=t?this.targets:this._lookup();e.each(n,function(e,t){e.sizeShim.call(e)},this)},t)},mode:0,POINT:0,INTERSECT:1,STRICT:2,useHash:!0,activeDrop:null,validDrops:[],otherDrops:{},targets:[],_addValid:function(e){return this.validDrops[this.validDrops.length]=e,this},_removeValid:function(t){var n=[];return e.each(this.validDrops,function(e,r){e!==t&&(n[n.length]=e)}),this.validDrops=n,this},isOverTarget:function(e){if(this.activeDrag&&e){var t=this.activeDrag.mouseXY,n,r=this.activeDrag.get("dragMode"),i,s=e.shim;if(t&&this.activeDrag){i=this.activeDrag.region;if(r==this.STRICT)return this.activeDrag.get("dragNode").inRegion(e.region,!0,i);if(e&&e.shim)return r==this.INTERSECT&&this._noShim?(n=i||this.activeDrag.get("node"),e.get("node").intersect(n,e.region).inRegion):(this._noShim&&(s=e.get("node")),s.intersect({top:t[1],bottom:t[1],left:t[0],right:t[0]},e.region).inRegion)}}return!1},clearCache:function(){this.validDrops=[],this.otherDrops={},this._activeShims=[]},_activateTargets:function(){this._noShim=!0,this.clearCache(),e.each(this.targets,function(e,t){e._activateShim([]),e.get("noShim")==1&&(this._noShim=!1)},this),this._handleTargetOver()},getBestMatch:function(t,n){var r=null,i=0,s;return e.each(t,function(e,t){var n=this.activeDrag.get("dragNode").intersect(e.get("node"));e.region.area=n.area,n.inRegion&&n.area>i&&(i=n.area,r=e)},this),n?(s=[],e.each(t,function(e,t){e!==r&&(s[s.length]=e)},this),[r,s]):r},_deactivateTargets:function(){var t=[],n,r=this.activeDrag,i=this.activeDrop;r&&i&&this.otherDrops[i]?(r.get("dragMode")?(n=this.getBestMatch(this.otherDrops,!0),i=n[0],t=n[1]):(t=this.otherDrops,delete t[i]),r.get("node").removeClass(this.CSS_PREFIX+"-drag-over"),i&&(i.fire("drop:hit",{drag:r,drop:i,others:t}),r.fire("drag:drophit",{drag:r,drop:i,others:t}))):r&&r.get("dragging")&&(r.get("node").removeClass(this.CSS_PREFIX+"-drag-over"),r.fire("drag:dropmiss",{pageX:r.lastXY[0],pageY:r.lastXY[1]})),this.activeDrop=null,e.each(this.targets,function(e,t){e._deactivateShim([])},this)},_dropMove:function(){this._hasActiveShim()?this._handleTargetOver():e.each(this.otherDrops,function(e,t){e._handleOut.apply(e,[])})},_lookup:function(){if(!this.useHash||this._noShim)return this.validDrops;var t=[];return e.each(this.validDrops,function(e,n){e.shim&&e.shim.inViewportRegion(!1,e.region)&&(t[t.length]=e)}),t},_handleTargetOver:function(){var t=this._lookup();e.each(t,function(e,t){e._handleTargetOver.call(e)},this)},_regTarget:function(e){this.targets[this.targets.length]=e},_unregTarget:function(t){var n=[],r;e.each(this.targets,function(e,r){e!=t&&(n[n.length]=e)},this),this.targets=n,r=[],e.each(this.validDrops,function(e,n){e!==t&&(r[r.length]=e)}),this.validDrops=r},getDrop:function(t){var n=!1,r=e.one(t);return r instanceof e.Node&&e.each(this.targets,function(e,t){r.compareTo(e.get("node"))&&(n=e)}),n}},!0)},"3.7.2",{requires:["dd-ddm"]}); diff --git a/lib/yuilib/3.7.2/build/dd-ddm/dd-ddm-coverage.js b/lib/yuilib/3.7.2/build/dd-ddm/dd-ddm-coverage.js deleted file mode 100644 index 6bda595b831..00000000000 --- a/lib/yuilib/3.7.2/build/dd-ddm/dd-ddm-coverage.js +++ /dev/null @@ -1,203 +0,0 @@ -/* -YUI 3.7.2 (build 5639) -Copyright 2012 Yahoo! Inc. All rights reserved. -Licensed under the BSD License. -http://yuilibrary.com/license/ -*/ -if (typeof _yuitest_coverage == "undefined"){ - _yuitest_coverage = {}; - _yuitest_coverline = function(src, line){ - var coverage = _yuitest_coverage[src]; - if (!coverage.lines[line]){ - coverage.calledLines++; - } - coverage.lines[line]++; - }; - _yuitest_coverfunc = function(src, name, line){ - var coverage = _yuitest_coverage[src], - funcId = name + ":" + line; - if (!coverage.functions[funcId]){ - coverage.calledFunctions++; - } - coverage.functions[funcId]++; - }; -} -_yuitest_coverage["build/dd-ddm/dd-ddm.js"] = { - lines: {}, - functions: {}, - coveredLines: 0, - calledLines: 0, - coveredFunctions: 0, - calledFunctions: 0, - path: "build/dd-ddm/dd-ddm.js", - code: [] -}; -_yuitest_coverage["build/dd-ddm/dd-ddm.js"].code=["YUI.add('dd-ddm', function (Y, NAME) {","",""," /**"," * Extends the dd-ddm-base Class to add support for the viewport shim to allow a draggable node to drag to be dragged over an iframe or any other node that traps mousemove events."," * It is also required to have Drop Targets enabled, as the viewport shim will contain the shims for the Drop Targets."," * @module dd"," * @submodule dd-ddm"," * @for DDM"," * @namespace DD"," */"," Y.mix(Y.DD.DDM, {"," /**"," * @private"," * @property _pg"," * @description The shim placed over the screen to track the mousemove event."," * @type {Node}"," */"," _pg: null,"," /**"," * @private"," * @property _debugShim"," * @description Set this to true to set the shims opacity to .5 for debugging it, default: false."," * @type {Boolean}"," */"," _debugShim: false,"," _activateTargets: function() { },"," _deactivateTargets: function() {},"," _startDrag: function() {"," if (this.activeDrag && this.activeDrag.get('useShim')) {"," this._shimming = true;"," this._pg_activate();"," this._activateTargets();"," }"," },"," _endDrag: function() {"," this._pg_deactivate();"," this._deactivateTargets();"," },"," /**"," * @private"," * @method _pg_deactivate"," * @description Deactivates the shim"," */"," _pg_deactivate: function() {"," this._pg.setStyle('display', 'none');"," },"," /**"," * @private"," * @method _pg_activate"," * @description Activates the shim"," */"," _pg_activate: function() {"," if (!this._pg) {"," this._createPG();"," }"," var ah = this.activeDrag.get('activeHandle'), cur = 'auto';"," if (ah) {"," cur = ah.getStyle('cursor');"," }"," if (cur == 'auto') {"," cur = this.get('dragCursor');"," }"," "," this._pg_size();"," this._pg.setStyles({"," top: 0,"," left: 0,"," display: 'block',"," opacity: ((this._debugShim) ? '.5' : '0'),"," cursor: cur"," });"," },"," /**"," * @private"," * @method _pg_size"," * @description Sizes the shim on: activatation, window:scroll, window:resize"," */"," _pg_size: function() {"," if (this.activeDrag) {"," var b = Y.one('body'),"," h = b.get('docHeight'),"," w = b.get('docWidth');"," this._pg.setStyles({"," height: h + 'px',"," width: w + 'px'"," });"," }"," },"," /**"," * @private"," * @method _createPG"," * @description Creates the shim and adds it's listeners to it."," */"," _createPG: function() {"," var pg = Y.Node.create('
'),"," bd = Y.one('body'), win;"," pg.setStyles({"," top: '0',"," left: '0',"," position: 'absolute',"," zIndex: '9999',"," overflow: 'hidden',"," backgroundColor: 'red',"," display: 'none',"," height: '5px',"," width: '5px'"," });"," pg.set('id', Y.stamp(pg));"," pg.addClass(Y.DD.DDM.CSS_PREFIX + '-shim');"," bd.prepend(pg);"," this._pg = pg;"," this._pg.on('mousemove', Y.throttle(Y.bind(this._move, this), this.get('throttleTime')));"," this._pg.on('mouseup', Y.bind(this._end, this));"," "," win = Y.one('win');"," Y.on('window:resize', Y.bind(this._pg_size, this));"," win.on('scroll', Y.bind(this._pg_size, this));"," } "," }, true);","","","","","}, '3.7.2', {\"requires\": [\"dd-ddm-base\", \"event-resize\"]});"]; -_yuitest_coverage["build/dd-ddm/dd-ddm.js"].lines = {"1":0,"12":0,"30":0,"31":0,"32":0,"33":0,"37":0,"38":0,"46":0,"54":0,"55":0,"57":0,"58":0,"59":0,"61":0,"62":0,"65":0,"66":0,"80":0,"81":0,"84":0,"96":0,"98":0,"109":0,"110":0,"111":0,"112":0,"113":0,"114":0,"116":0,"117":0,"118":0}; -_yuitest_coverage["build/dd-ddm/dd-ddm.js"].functions = {"_startDrag:29":0,"_endDrag:36":0,"_pg_deactivate:45":0,"_pg_activate:53":0,"_pg_size:79":0,"_createPG:95":0,"(anonymous 1):1":0}; -_yuitest_coverage["build/dd-ddm/dd-ddm.js"].coveredLines = 32; -_yuitest_coverage["build/dd-ddm/dd-ddm.js"].coveredFunctions = 7; -_yuitest_coverline("build/dd-ddm/dd-ddm.js", 1); -YUI.add('dd-ddm', function (Y, NAME) { - - - /** - * Extends the dd-ddm-base Class to add support for the viewport shim to allow a draggable node to drag to be dragged over an iframe or any other node that traps mousemove events. - * It is also required to have Drop Targets enabled, as the viewport shim will contain the shims for the Drop Targets. - * @module dd - * @submodule dd-ddm - * @for DDM - * @namespace DD - */ - _yuitest_coverfunc("build/dd-ddm/dd-ddm.js", "(anonymous 1)", 1); -_yuitest_coverline("build/dd-ddm/dd-ddm.js", 12); -Y.mix(Y.DD.DDM, { - /** - * @private - * @property _pg - * @description The shim placed over the screen to track the mousemove event. - * @type {Node} - */ - _pg: null, - /** - * @private - * @property _debugShim - * @description Set this to true to set the shims opacity to .5 for debugging it, default: false. - * @type {Boolean} - */ - _debugShim: false, - _activateTargets: function() { }, - _deactivateTargets: function() {}, - _startDrag: function() { - _yuitest_coverfunc("build/dd-ddm/dd-ddm.js", "_startDrag", 29); -_yuitest_coverline("build/dd-ddm/dd-ddm.js", 30); -if (this.activeDrag && this.activeDrag.get('useShim')) { - _yuitest_coverline("build/dd-ddm/dd-ddm.js", 31); -this._shimming = true; - _yuitest_coverline("build/dd-ddm/dd-ddm.js", 32); -this._pg_activate(); - _yuitest_coverline("build/dd-ddm/dd-ddm.js", 33); -this._activateTargets(); - } - }, - _endDrag: function() { - _yuitest_coverfunc("build/dd-ddm/dd-ddm.js", "_endDrag", 36); -_yuitest_coverline("build/dd-ddm/dd-ddm.js", 37); -this._pg_deactivate(); - _yuitest_coverline("build/dd-ddm/dd-ddm.js", 38); -this._deactivateTargets(); - }, - /** - * @private - * @method _pg_deactivate - * @description Deactivates the shim - */ - _pg_deactivate: function() { - _yuitest_coverfunc("build/dd-ddm/dd-ddm.js", "_pg_deactivate", 45); -_yuitest_coverline("build/dd-ddm/dd-ddm.js", 46); -this._pg.setStyle('display', 'none'); - }, - /** - * @private - * @method _pg_activate - * @description Activates the shim - */ - _pg_activate: function() { - _yuitest_coverfunc("build/dd-ddm/dd-ddm.js", "_pg_activate", 53); -_yuitest_coverline("build/dd-ddm/dd-ddm.js", 54); -if (!this._pg) { - _yuitest_coverline("build/dd-ddm/dd-ddm.js", 55); -this._createPG(); - } - _yuitest_coverline("build/dd-ddm/dd-ddm.js", 57); -var ah = this.activeDrag.get('activeHandle'), cur = 'auto'; - _yuitest_coverline("build/dd-ddm/dd-ddm.js", 58); -if (ah) { - _yuitest_coverline("build/dd-ddm/dd-ddm.js", 59); -cur = ah.getStyle('cursor'); - } - _yuitest_coverline("build/dd-ddm/dd-ddm.js", 61); -if (cur == 'auto') { - _yuitest_coverline("build/dd-ddm/dd-ddm.js", 62); -cur = this.get('dragCursor'); - } - - _yuitest_coverline("build/dd-ddm/dd-ddm.js", 65); -this._pg_size(); - _yuitest_coverline("build/dd-ddm/dd-ddm.js", 66); -this._pg.setStyles({ - top: 0, - left: 0, - display: 'block', - opacity: ((this._debugShim) ? '.5' : '0'), - cursor: cur - }); - }, - /** - * @private - * @method _pg_size - * @description Sizes the shim on: activatation, window:scroll, window:resize - */ - _pg_size: function() { - _yuitest_coverfunc("build/dd-ddm/dd-ddm.js", "_pg_size", 79); -_yuitest_coverline("build/dd-ddm/dd-ddm.js", 80); -if (this.activeDrag) { - _yuitest_coverline("build/dd-ddm/dd-ddm.js", 81); -var b = Y.one('body'), - h = b.get('docHeight'), - w = b.get('docWidth'); - _yuitest_coverline("build/dd-ddm/dd-ddm.js", 84); -this._pg.setStyles({ - height: h + 'px', - width: w + 'px' - }); - } - }, - /** - * @private - * @method _createPG - * @description Creates the shim and adds it's listeners to it. - */ - _createPG: function() { - _yuitest_coverfunc("build/dd-ddm/dd-ddm.js", "_createPG", 95); -_yuitest_coverline("build/dd-ddm/dd-ddm.js", 96); -var pg = Y.Node.create('
'), - bd = Y.one('body'), win; - _yuitest_coverline("build/dd-ddm/dd-ddm.js", 98); -pg.setStyles({ - top: '0', - left: '0', - position: 'absolute', - zIndex: '9999', - overflow: 'hidden', - backgroundColor: 'red', - display: 'none', - height: '5px', - width: '5px' - }); - _yuitest_coverline("build/dd-ddm/dd-ddm.js", 109); -pg.set('id', Y.stamp(pg)); - _yuitest_coverline("build/dd-ddm/dd-ddm.js", 110); -pg.addClass(Y.DD.DDM.CSS_PREFIX + '-shim'); - _yuitest_coverline("build/dd-ddm/dd-ddm.js", 111); -bd.prepend(pg); - _yuitest_coverline("build/dd-ddm/dd-ddm.js", 112); -this._pg = pg; - _yuitest_coverline("build/dd-ddm/dd-ddm.js", 113); -this._pg.on('mousemove', Y.throttle(Y.bind(this._move, this), this.get('throttleTime'))); - _yuitest_coverline("build/dd-ddm/dd-ddm.js", 114); -this._pg.on('mouseup', Y.bind(this._end, this)); - - _yuitest_coverline("build/dd-ddm/dd-ddm.js", 116); -win = Y.one('win'); - _yuitest_coverline("build/dd-ddm/dd-ddm.js", 117); -Y.on('window:resize', Y.bind(this._pg_size, this)); - _yuitest_coverline("build/dd-ddm/dd-ddm.js", 118); -win.on('scroll', Y.bind(this._pg_size, this)); - } - }, true); - - - - -}, '3.7.2', {"requires": ["dd-ddm-base", "event-resize"]}); diff --git a/lib/yuilib/3.7.2/build/dd-ddm/dd-ddm-min.js b/lib/yuilib/3.7.2/build/dd-ddm/dd-ddm-min.js deleted file mode 100644 index 565b21bff76..00000000000 --- a/lib/yuilib/3.7.2/build/dd-ddm/dd-ddm-min.js +++ /dev/null @@ -1,7 +0,0 @@ -/* -YUI 3.7.2 (build 5639) -Copyright 2012 Yahoo! Inc. All rights reserved. -Licensed under the BSD License. -http://yuilibrary.com/license/ -*/ -YUI.add("dd-ddm",function(e,t){e.mix(e.DD.DDM,{_pg:null,_debugShim:!1,_activateTargets:function(){},_deactivateTargets:function(){},_startDrag:function(){this.activeDrag&&this.activeDrag.get("useShim")&&(this._shimming=!0,this._pg_activate(),this._activateTargets())},_endDrag:function(){this._pg_deactivate(),this._deactivateTargets()},_pg_deactivate:function(){this._pg.setStyle("display","none")},_pg_activate:function(){this._pg||this._createPG();var e=this.activeDrag.get("activeHandle"),t="auto";e&&(t=e.getStyle("cursor")),t=="auto"&&(t=this.get("dragCursor")),this._pg_size(),this._pg.setStyles({top:0,left:0,display:"block",opacity:this._debugShim?".5":"0",cursor:t})},_pg_size:function(){if(this.activeDrag){var t=e.one("body"),n=t.get("docHeight"),r=t.get("docWidth");this._pg.setStyles({height:n+"px",width:r+"px"})}},_createPG:function(){var t=e.Node.create("
"),n=e.one("body"),r;t.setStyles({top:"0",left:"0",position:"absolute",zIndex:"9999",overflow:"hidden",backgroundColor:"red",display:"none",height:"5px",width:"5px"}),t.set("id",e.stamp(t)),t.addClass(e.DD.DDM.CSS_PREFIX+"-shim"),n.prepend(t),this._pg=t,this._pg.on("mousemove",e.throttle(e.bind(this._move,this),this.get("throttleTime"))),this._pg.on("mouseup",e.bind(this._end,this)),r=e.one("win"),e.on("window:resize",e.bind(this._pg_size,this)),r.on("scroll",e.bind(this._pg_size,this))}},!0)},"3.7.2",{requires:["dd-ddm-base","event-resize"]}); diff --git a/lib/yuilib/3.7.2/build/dd-delegate/dd-delegate-min.js b/lib/yuilib/3.7.2/build/dd-delegate/dd-delegate-min.js deleted file mode 100644 index 06ef1626292..00000000000 --- a/lib/yuilib/3.7.2/build/dd-delegate/dd-delegate-min.js +++ /dev/null @@ -1,7 +0,0 @@ -/* -YUI 3.7.2 (build 5639) -Copyright 2012 Yahoo! Inc. All rights reserved. -Licensed under the BSD License. -http://yuilibrary.com/license/ -*/ -YUI.add("dd-delegate",function(e,t){var n=function(e){n.superclass.constructor.apply(this,arguments)},r="container",i="nodes",s=e.Node.create("
Temp Node
");e.extend(n,e.Base,{_bubbleTargets:e.DD.DDM,dd:null,_shimState:null,_handles:null,_onNodeChange:function(e){this.set("dragNode",e.newVal)},_afterDragEnd:function(t){e.DD.DDM._noShim=this._shimState,this.set("lastNode",this.dd.get("node")),this.get("lastNode").removeClass(e.DD.DDM.CSS_PREFIX+"-dragging"),this.dd._unprep(),this.dd.set("node",s)},_delMouseDown:function(t){var n=t.currentTarget,r=this.dd,s=n,o=this.get("dragConfig");n.test(this.get(i))&&!n.test(this.get("invalid"))&&(this._shimState=e.DD.DDM._noShim,e.DD.DDM._noShim=!0,this.set("currentNode",n),r.set("node",n),o&&o.dragNode?s=o.dragNode:r.proxy&&(s=e.DD.DDM._proxy),r.set("dragNode",s),r._prep(),r.fire("drag:mouseDown",{ev:t}))},_onMouseEnter:function(t){this._shimState=e.DD.DDM._noShim,e.DD.DDM._noShim=!0},_onMouseLeave:function(t){e.DD.DDM._noShim=this._shimState},initializer:function(t){this._handles=[];var n=this.get("dragConfig")||{},o=this.get(r);n.node=s.cloneNode(!0),n.bubbleTargets=this,this.get("handles")&&(n.handles=this.get("handles")),this.dd=new e.DD.Drag(n),this.dd.after("drag:end",e.bind(this._afterDragEnd,this)),this.dd.on("dragNodeChange",e.bind(this._onNodeChange,this)),this.dd.after("drag:mouseup",function(){this._unprep()}),this._handles.push(e.delegate(e.DD.Drag.START_EVENT,e.bind(this._delMouseDown,this),o,this.get(i))),this._handles.push(e.on("mouseenter",e.bind(this._onMouseEnter,this),o)),this._handles.push(e.on("mouseleave",e.bind(this._onMouseLeave,this),o)),e.later(50,this,this.syncTargets),e.DD.DDM.regDelegate(this)},syncTargets:function(){if(!e.Plugin.Drop||this.get("destroyed"))return;var t,n,s;return this.get("target")&&(t=e.one(this.get(r)).all(this.get(i)),n=this.dd.get("groups"),s=this.get("dragConfig"),s&&s.groups&&(n=s.groups),t.each(function(e){this.createDrop(e,n)},this)),this},createDrop:function(t,n){var r={useShim:!1,bubbleTargets:this};return t.drop||t.plug(e.Plugin.Drop,r),t.drop.set("groups",n),t},destructor:function(){this.dd&&this.dd.destroy();if(e.Plugin.Drop){var t=e.one(this.get(r)).all(this.get(i));t.unplug(e.Plugin.Drop)}e.each(this._handles,function(e){e.detach()})}},{NAME:"delegate",ATTRS:{container:{value:"body"},nodes:{value:".dd-draggable"},invalid:{value:"input, select, button, a, textarea"},lastNode:{value:s},currentNode:{value:s},dragNode:{value:s},over:{value:!1},target:{value:!1},dragConfig:{value:null},handles:{value:null}}}),e.mix(e.DD.DDM,{_delegates:[],regDelegate:function(e){this._delegates.push(e)},getDelegate:function(t){var n=null;return t=e.one(t),e.each(this._delegates,function(e){t.test(e.get(r))&&(n=e)},this),n}}),e.namespace("DD"),e.DD.Delegate=n},"3.7.2",{requires:["dd-drag","dd-drop-plugin","event-mouseenter"]}); diff --git a/lib/yuilib/3.7.2/build/dd-drag/dd-drag-coverage.js b/lib/yuilib/3.7.2/build/dd-drag/dd-drag-coverage.js deleted file mode 100644 index 4aa9baf28e0..00000000000 --- a/lib/yuilib/3.7.2/build/dd-drag/dd-drag-coverage.js +++ /dev/null @@ -1,1625 +0,0 @@ -/* -YUI 3.7.2 (build 5639) -Copyright 2012 Yahoo! Inc. All rights reserved. -Licensed under the BSD License. -http://yuilibrary.com/license/ -*/ -if (typeof _yuitest_coverage == "undefined"){ - _yuitest_coverage = {}; - _yuitest_coverline = function(src, line){ - var coverage = _yuitest_coverage[src]; - if (!coverage.lines[line]){ - coverage.calledLines++; - } - coverage.lines[line]++; - }; - _yuitest_coverfunc = function(src, name, line){ - var coverage = _yuitest_coverage[src], - funcId = name + ":" + line; - if (!coverage.functions[funcId]){ - coverage.calledFunctions++; - } - coverage.functions[funcId]++; - }; -} -_yuitest_coverage["build/dd-drag/dd-drag.js"] = { - lines: {}, - functions: {}, - coveredLines: 0, - calledLines: 0, - coveredFunctions: 0, - calledFunctions: 0, - path: "build/dd-drag/dd-drag.js", - code: [] -}; -_yuitest_coverage["build/dd-drag/dd-drag.js"].code=["YUI.add('dd-drag', function (Y, NAME) {","",""," /**"," * Provides the ability to drag a Node."," * @module dd"," * @submodule dd-drag"," */ "," /**"," * Provides the ability to drag a Node."," * @class Drag"," * @extends Base"," * @constructor"," * @namespace DD"," */",""," var DDM = Y.DD.DDM,"," NODE = 'node',"," DRAGGING = 'dragging',"," DRAG_NODE = 'dragNode',"," OFFSET_HEIGHT = 'offsetHeight',"," OFFSET_WIDTH = 'offsetWidth', "," /**"," * @event drag:mouseup"," * @description Handles the mouseup DOM event, does nothing internally just fires."," * @bubbles DDM"," * @type {CustomEvent}"," */"," /**"," * @event drag:mouseDown"," * @description Handles the mousedown DOM event, checks to see if you have a valid handle then starts the drag timers."," * @preventable _defMouseDownFn"," * @param {EventFacade} event An Event Facade object with the following specific property added:"," *
ev
The original mousedown event.
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," EV_MOUSE_DOWN = 'drag:mouseDown',"," /**"," * @event drag:afterMouseDown"," * @description Fires after the mousedown event has been cleared."," * @param {EventFacade} event An Event Facade object with the following specific property added:"," *
ev
The original mousedown event.
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," EV_AFTER_MOUSE_DOWN = 'drag:afterMouseDown',"," /**"," * @event drag:removeHandle"," * @description Fires after a handle is removed."," * @param {EventFacade} event An Event Facade object with the following specific property added:"," *
handle
The handle that was removed.
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," EV_REMOVE_HANDLE = 'drag:removeHandle',"," /**"," * @event drag:addHandle"," * @description Fires after a handle is added."," * @param {EventFacade} event An Event Facade object with the following specific property added:"," *
handle
The handle that was added.
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," EV_ADD_HANDLE = 'drag:addHandle',"," /**"," * @event drag:removeInvalid"," * @description Fires after an invalid selector is removed."," * @param {EventFacade} event An Event Facade object with the following specific property added:"," *
handle
The handle that was removed.
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," EV_REMOVE_INVALID = 'drag:removeInvalid',"," /**"," * @event drag:addInvalid"," * @description Fires after an invalid selector is added."," * @param {EventFacade} event An Event Facade object with the following specific property added:"," *
handle
The handle that was added.
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," EV_ADD_INVALID = 'drag:addInvalid',"," /**"," * @event drag:start"," * @description Fires at the start of a drag operation."," * @param {EventFacade} event An Event Facade object with the following specific property added:"," *
"," *
pageX
The original node position X.
"," *
pageY
The original node position Y.
"," *
startTime
The startTime of the event. getTime on the current Date object.
"," *
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," EV_START = 'drag:start',"," /**"," * @event drag:end"," * @description Fires at the end of a drag operation."," * @param {EventFacade} event An Event Facade object with the following specific property added:"," *
"," *
pageX
The current node position X.
"," *
pageY
The current node position Y.
"," *
startTime
The startTime of the event, from the start event.
"," *
endTime
The endTime of the event. getTime on the current Date object.
"," *
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," EV_END = 'drag:end',"," /**"," * @event drag:drag"," * @description Fires every mousemove during a drag operation."," * @param {EventFacade} event An Event Facade object with the following specific property added:"," *
"," *
pageX
The current node position X.
"," *
pageY
The current node position Y.
"," *
scroll
Should a scroll action occur.
"," *
info
Object hash containing calculated XY arrays: start, xy, delta, offset
"," *
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," EV_DRAG = 'drag:drag',"," /**"," * @event drag:align"," * @preventable _defAlignFn"," * @description Fires when this node is aligned."," * @param {EventFacade} event An Event Facade object with the following specific property added:"," *
"," *
pageX
The current node position X.
"," *
pageY
The current node position Y.
"," *
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," EV_ALIGN = 'drag:align',"," /**"," * @event drag:over"," * @description Fires when this node is over a Drop Target. (Fired from dd-drop)"," * @param {EventFacade} event An Event Facade object with the following specific property added:"," *
"," *
drop
The drop object at the time of the event.
"," *
drag
The drag object at the time of the event.
"," *
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," /**"," * @event drag:enter"," * @description Fires when this node enters a Drop Target. (Fired from dd-drop)"," * @param {EventFacade} event An Event Facade object with the following specific property added:"," *
"," *
drop
The drop object at the time of the event.
"," *
drag
The drag object at the time of the event.
"," *
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," /**"," * @event drag:exit"," * @description Fires when this node exits a Drop Target. (Fired from dd-drop)"," * @param {EventFacade} event An Event Facade object with the following specific property added:"," *
"," *
drop
The drop object at the time of the event.
"," *
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," /**"," * @event drag:drophit"," * @description Fires when this node is dropped on a valid Drop Target. (Fired from dd-ddm-drop)"," * @param {EventFacade} event An Event Facade object with the following specific property added:"," *
"," *
drop
The best guess on what was dropped on.
"," *
drag
The drag object at the time of the event.
"," *
others
An array of all the other drop targets that was dropped on.
"," *
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," /**"," * @event drag:dropmiss"," * @description Fires when this node is dropped on an invalid Drop Target. (Fired from dd-ddm-drop)"," * @param {EventFacade} event An Event Facade object with the following specific property added:"," *
"," *
pageX
The current node position X.
"," *
pageY
The current node position Y.
"," *
"," * @bubbles DDM"," * @type {CustomEvent}"," */"," "," Drag = function(o) {"," this._lazyAddAttrs = false;"," Drag.superclass.constructor.apply(this, arguments);",""," var valid = DDM._regDrag(this);"," if (!valid) {"," Y.error('Failed to register node, already in use: ' + o.node);"," }"," };",""," Drag.NAME = 'drag';"," "," /**"," * This property defaults to \"mousedown\", but when drag-gestures is loaded, it is changed to \"gesturemovestart\""," * @static"," * @property START_EVENT"," */"," Drag.START_EVENT = 'mousedown';",""," Drag.ATTRS = {"," /**"," * @attribute node"," * @description Y.Node instance to use as the element to initiate a drag operation"," * @type Node"," */"," node: {"," setter: function(node) {"," if (this._canDrag(node)) {"," return node;"," }"," var n = Y.one(node);"," if (!n) {"," Y.error('DD.Drag: Invalid Node Given: ' + node);"," }"," return n;"," }"," },"," /**"," * @attribute dragNode"," * @description Y.Node instance to use as the draggable element, defaults to node"," * @type Node"," */"," dragNode: {"," setter: function(node) {"," if (this._canDrag(node)) {"," return node;"," }"," var n = Y.one(node);"," if (!n) {"," Y.error('DD.Drag: Invalid dragNode Given: ' + node);"," }"," return n;"," }"," },"," /**"," * @attribute offsetNode"," * @description Offset the drag element by the difference in cursor position: default true"," * @type Boolean"," */"," offsetNode: {"," value: true"," },"," /**"," * @attribute startCentered"," * @description Center the dragNode to the mouse position on drag:start: default false"," * @type Boolean"," */"," startCentered: {"," value: false"," },"," /**"," * @attribute clickPixelThresh"," * @description The number of pixels to move to start a drag operation, default is 3."," * @type Number"," */"," clickPixelThresh: {"," value: DDM.get('clickPixelThresh')"," },"," /**"," * @attribute clickTimeThresh"," * @description The number of milliseconds a mousedown has to pass to start a drag operation, default is 1000."," * @type Number"," */"," clickTimeThresh: {"," value: DDM.get('clickTimeThresh')"," },"," /**"," * @attribute lock"," * @description Set to lock this drag element so that it can't be dragged: default false."," * @type Boolean"," */"," lock: {"," value: false,"," setter: function(lock) {"," if (lock) {"," this.get(NODE).addClass(DDM.CSS_PREFIX + '-locked');"," } else {"," this.get(NODE).removeClass(DDM.CSS_PREFIX + '-locked');"," }"," return lock;"," }"," },"," /**"," * @attribute data"," * @description A payload holder to store arbitrary data about this drag object, can be used to store any value."," * @type Mixed"," */"," data: {"," value: false"," },"," /**"," * @attribute move"," * @description If this is false, the drag element will not move with the cursor: default true. Can be used to \"resize\" the element."," * @type Boolean"," */"," move: {"," value: true"," },"," /**"," * @attribute useShim"," * @description Use the protective shim on all drag operations: default true. Only works with dd-ddm, not dd-ddm-base."," * @type Boolean"," */"," useShim: {"," value: true"," },"," /**"," * @attribute activeHandle"," * @description This config option is set by Drag to inform you of which handle fired the drag event (in the case that there are several handles): default false."," * @type Node"," */"," activeHandle: {"," value: false"," },"," /**"," * @attribute primaryButtonOnly"," * @description By default a drag operation will only begin if the mousedown occurred with the primary mouse button. Setting this to false will allow for all mousedown events to trigger a drag."," * @type Boolean"," */"," primaryButtonOnly: {"," value: true"," },"," /**"," * @attribute dragging"," * @description This attribute is not meant to be used by the implementor, it is meant to be used as an Event tracker so you can listen for it to change."," * @type Boolean"," */"," dragging: {"," value: false"," },"," parent: {"," value: false"," },"," /**"," * @attribute target"," * @description This attribute only works if the dd-drop module has been loaded. It will make this node a drop target as well as draggable."," * @type Boolean"," */"," target: {"," value: false,"," setter: function(config) {"," this._handleTarget(config);"," return config;"," }"," },"," /**"," * @attribute dragMode"," * @description This attribute only works if the dd-drop module is active. It will set the dragMode (point, intersect, strict) of this Drag instance."," * @type String"," */"," dragMode: {"," value: null,"," setter: function(mode) {"," return DDM._setDragMode(mode);"," }"," },"," /**"," * @attribute groups"," * @description Array of groups to add this drag into."," * @type Array"," */"," groups: {"," value: ['default'],"," getter: function() {"," if (!this._groups) {"," this._groups = {};"," }"," var ret = [];"," Y.each(this._groups, function(v, k) {"," ret[ret.length] = k;"," });"," return ret;"," },"," setter: function(g) {"," this._groups = {};"," Y.each(g, function(v, k) {"," this._groups[v] = true;"," }, this);"," return g;"," }"," },"," /**"," * @attribute handles"," * @description Array of valid handles to add. Adding something here will set all handles, even if previously added with addHandle"," * @type Array"," */"," handles: {"," value: null,"," setter: function(g) {"," if (g) {"," this._handles = {};"," Y.each(g, function(v, k) {"," var key = v;"," if (v instanceof Y.Node || v instanceof Y.NodeList) {"," key = v._yuid;"," }"," this._handles[key] = v;"," }, this);"," } else {"," this._handles = null;"," }"," return g;"," }"," },"," /**"," * @deprecated"," * @attribute bubbles"," * @description Controls the default bubble parent for this Drag instance. Default: Y.DD.DDM. Set to false to disable bubbling. Use bubbleTargets in config"," * @type Object"," */"," bubbles: {"," setter: function(t) {"," this.addTarget(t);"," return t;"," }"," },"," /**"," * @attribute haltDown"," * @description Should the mousedown event be halted. Default: true"," * @type Boolean"," */"," haltDown: {"," value: true"," }"," };",""," Y.extend(Drag, Y.Base, {"," /**"," * Checks the object for the methods needed to drag the object around. "," * Normally this would be a node instance, but in the case of Graphics, it"," * may be an SVG node or something similar."," * @method _canDrag"," * @private"," * @param {Object} n The object to check"," * @return {Boolean} True or false if the Object contains the methods needed to Drag"," */"," _canDrag: function(n) {"," if (n && n.setXY && n.getXY && n.test && n.contains) {"," return true;"," }"," return false;"," },"," /**"," * @private"," * @property _bubbleTargets"," * @description The default bubbleTarget for this object. Default: Y.DD.DDM"," */"," _bubbleTargets: Y.DD.DDM,"," /**"," * @method addToGroup"," * @description Add this Drag instance to a group, this should be used for on-the-fly group additions."," * @param {String} g The group to add this Drag Instance to."," * @return {Self}"," * @chainable"," */"," addToGroup: function(g) {"," this._groups[g] = true;"," DDM._activateTargets();"," return this;"," },"," /**"," * @method removeFromGroup"," * @description Remove this Drag instance from a group, this should be used for on-the-fly group removals."," * @param {String} g The group to remove this Drag Instance from."," * @return {Self}"," * @chainable"," */"," removeFromGroup: function(g) {"," delete this._groups[g];"," DDM._activateTargets();"," return this;"," },"," /**"," * @property target"," * @description This will be a reference to the Drop instance associated with this drag if the target: true config attribute is set.."," * @type {Object}"," */"," target: null,"," /**"," * @private"," * @method _handleTarget"," * @description Attribute handler for the target config attribute."," * @param {Boolean/Object} config The Config"," */"," _handleTarget: function(config) {"," if (Y.DD.Drop) {"," if (config === false) {"," if (this.target) {"," DDM._unregTarget(this.target);"," this.target = null;"," }"," } else {"," if (!Y.Lang.isObject(config)) {"," config = {};"," }"," config.bubbleTargets = config.bubbleTargets || Y.Object.values(this._yuievt.targets);"," config.node = this.get(NODE);"," config.groups = config.groups || this.get('groups');"," this.target = new Y.DD.Drop(config);"," }"," }"," },"," /**"," * @private"," * @property _groups"," * @description Storage Array for the groups this drag belongs to."," * @type {Array}"," */"," _groups: null,"," /**"," * @private"," * @method _createEvents"," * @description This method creates all the events for this Event Target and publishes them so we get Event Bubbling."," */"," _createEvents: function() {"," "," this.publish(EV_MOUSE_DOWN, {"," defaultFn: this._defMouseDownFn,"," queuable: false,"," emitFacade: true,"," bubbles: true,"," prefix: 'drag'"," });"," "," this.publish(EV_ALIGN, {"," defaultFn: this._defAlignFn,"," queuable: false,"," emitFacade: true,"," bubbles: true,"," prefix: 'drag'"," });"," "," this.publish(EV_DRAG, {"," defaultFn: this._defDragFn,"," queuable: false,"," emitFacade: true,"," bubbles: true,"," prefix: 'drag'"," });"," "," this.publish(EV_END, {"," defaultFn: this._defEndFn,"," preventedFn: this._prevEndFn,"," queuable: false,"," emitFacade: true,"," bubbles: true,"," prefix: 'drag'"," });"," "," var ev = ["," EV_AFTER_MOUSE_DOWN,"," EV_REMOVE_HANDLE,"," EV_ADD_HANDLE,"," EV_REMOVE_INVALID,"," EV_ADD_INVALID,"," EV_START,"," 'drag:drophit',"," 'drag:dropmiss',"," 'drag:over',"," 'drag:enter',"," 'drag:exit'"," ];"," "," Y.each(ev, function(v, k) {"," this.publish(v, {"," type: v,"," emitFacade: true,"," bubbles: true,"," preventable: false,"," queuable: false,"," prefix: 'drag'"," });"," }, this);"," },"," /**"," * @private"," * @property _ev_md"," * @description A private reference to the mousedown DOM event"," * @type {EventFacade}"," */"," _ev_md: null,"," /**"," * @private"," * @property _startTime"," * @description The getTime of the mousedown event. Not used, just here in case someone wants/needs to use it."," * @type Date"," */"," _startTime: null,"," /**"," * @private"," * @property _endTime"," * @description The getTime of the mouseup event. Not used, just here in case someone wants/needs to use it."," * @type Date"," */"," _endTime: null,"," /**"," * @private"," * @property _handles"," * @description A private hash of the valid drag handles"," * @type {Object}"," */"," _handles: null,"," /**"," * @private"," * @property _invalids"," * @description A private hash of the invalid selector strings"," * @type {Object}"," */"," _invalids: null,"," /**"," * @private"," * @property _invalidsDefault"," * @description A private hash of the default invalid selector strings: {'textarea': true, 'input': true, 'a': true, 'button': true, 'select': true}"," * @type {Object}"," */"," _invalidsDefault: {'textarea': true, 'input': true, 'a': true, 'button': true, 'select': true },"," /**"," * @private"," * @property _dragThreshMet"," * @description Private flag to see if the drag threshhold was met"," * @type {Boolean}"," */"," _dragThreshMet: null,"," /**"," * @private"," * @property _fromTimeout"," * @description Flag to determine if the drag operation came from a timeout"," * @type {Boolean}"," */"," _fromTimeout: null,"," /**"," * @private"," * @property _clickTimeout"," * @description Holder for the setTimeout call"," * @type {Boolean}"," */"," _clickTimeout: null,"," /**"," * @property deltaXY"," * @description The offset of the mouse position to the element's position"," * @type {Array}"," */"," deltaXY: null,"," /**"," * @property startXY"," * @description The initial mouse position"," * @type {Array}"," */"," startXY: null,"," /**"," * @property nodeXY"," * @description The initial element position"," * @type {Array}"," */"," nodeXY: null,"," /**"," * @property lastXY"," * @description The position of the element as it's moving (for offset calculations)"," * @type {Array}"," */"," lastXY: null,"," /**"," * @property actXY"," * @description The xy that the node will be set to. Changing this will alter the position as it's dragged."," * @type {Array}"," */"," actXY: null,"," /**"," * @property realXY"," * @description The real xy position of the node."," * @type {Array}"," */"," realXY: null,"," /**"," * @property mouseXY"," * @description The XY coords of the mousemove"," * @type {Array}"," */"," mouseXY: null,"," /**"," * @property region"," * @description A region object associated with this drag, used for checking regions while dragging."," * @type Object"," */"," region: null, "," /**"," * @private"," * @method _handleMouseUp"," * @description Handler for the mouseup DOM event"," * @param {EventFacade} ev The Event"," */"," _handleMouseUp: function(ev) {"," this.fire('drag:mouseup');"," this._fixIEMouseUp();"," if (DDM.activeDrag) {"," DDM._end();"," }"," },"," /** "," * @private"," * @method _fixDragStart"," * @description The function we use as the ondragstart handler when we start a drag in Internet Explorer. This keeps IE from blowing up on images as drag handles."," * @param {Event} e The Event"," */"," _fixDragStart: function(e) {"," if (this.validClick(e)) {"," e.preventDefault();"," }"," },"," /** "," * @private"," * @method _ieSelectFix"," * @description The function we use as the onselectstart handler when we start a drag in Internet Explorer"," */"," _ieSelectFix: function() {"," return false;"," },"," /** "," * @private"," * @property _ieSelectBack"," * @description We will hold a copy of the current \"onselectstart\" method on this property, and reset it after we are done using it."," */"," _ieSelectBack: null,"," /**"," * @private"," * @method _fixIEMouseDown"," * @description This method copies the onselectstart listner on the document to the _ieSelectFix property"," */"," _fixIEMouseDown: function(e) {"," if (Y.UA.ie) {"," this._ieSelectBack = Y.config.doc.body.onselectstart;"," Y.config.doc.body.onselectstart = this._ieSelectFix;"," } "," },"," /**"," * @private"," * @method _fixIEMouseUp"," * @description This method copies the _ieSelectFix property back to the onselectstart listner on the document."," */"," _fixIEMouseUp: function() {"," if (Y.UA.ie) {"," Y.config.doc.body.onselectstart = this._ieSelectBack;"," } "," },"," /**"," * @private"," * @method _handleMouseDownEvent"," * @description Handler for the mousedown DOM event"," * @param {EventFacade} ev The Event"," */"," _handleMouseDownEvent: function(ev) {"," this.fire(EV_MOUSE_DOWN, { ev: ev });"," },"," /**"," * @private"," * @method _defMouseDownFn"," * @description Handler for the mousedown DOM event"," * @param {EventFacade} e The Event"," */"," _defMouseDownFn: function(e) {"," var ev = e.ev;",""," this._dragThreshMet = false;"," this._ev_md = ev;"," "," if (this.get('primaryButtonOnly') && ev.button > 1) {"," return false;"," }"," if (this.validClick(ev)) {"," this._fixIEMouseDown(ev);"," if (this.get('haltDown')) {"," ev.halt();"," } else {"," ev.preventDefault();"," }"," "," this._setStartPosition([ev.pageX, ev.pageY]);",""," DDM.activeDrag = this;"," "," this._clickTimeout = Y.later(this.get('clickTimeThresh'), this, this._timeoutCheck);"," }"," this.fire(EV_AFTER_MOUSE_DOWN, { ev: ev });"," },"," /**"," * @method validClick"," * @description Method first checks to see if we have handles, if so it validates the click against the handle. Then if it finds a valid handle, it checks it against the invalid handles list. Returns true if a good handle was used, false otherwise."," * @param {EventFacade} ev The Event"," * @return {Boolean}"," */"," validClick: function(ev) {"," var r = false, n = false,"," tar = ev.target,"," hTest = null,"," els = null,"," nlist = null,"," set = false;"," if (this._handles) {"," Y.each(this._handles, function(i, n) {"," if (i instanceof Y.Node || i instanceof Y.NodeList) {"," if (!r) {"," nlist = i;"," if (nlist instanceof Y.Node) {"," nlist = new Y.NodeList(i._node);"," }"," nlist.each(function(nl) {"," if (nl.contains(tar)) {"," r = true;"," }"," });"," }"," } else if (Y.Lang.isString(n)) {"," //Am I this or am I inside this"," if (tar.test(n + ', ' + n + ' *') && !hTest) {"," hTest = n;"," r = true;"," }"," }"," });"," } else {"," n = this.get(NODE);"," if (n.contains(tar) || n.compareTo(tar)) {"," r = true;"," }"," }"," if (r) {"," if (this._invalids) {"," Y.each(this._invalids, function(i, n) {"," if (Y.Lang.isString(n)) {"," //Am I this or am I inside this"," if (tar.test(n + ', ' + n + ' *')) {"," r = false;"," }"," }"," });"," }"," }"," if (r) {"," if (hTest) {"," els = ev.currentTarget.all(hTest);"," set = false;"," els.each(function(n, i) {"," if ((n.contains(tar) || n.compareTo(tar)) && !set) {"," set = true;"," this.set('activeHandle', n);"," }"," }, this);"," } else {"," this.set('activeHandle', this.get(NODE));"," }"," }"," return r;"," },"," /**"," * @private"," * @method _setStartPosition"," * @description Sets the current position of the Element and calculates the offset"," * @param {Array} xy The XY coords to set the position to."," */"," _setStartPosition: function(xy) {"," this.startXY = xy;"," "," this.nodeXY = this.lastXY = this.realXY = this.get(NODE).getXY();"," "," if (this.get('offsetNode')) {"," this.deltaXY = [(this.startXY[0] - this.nodeXY[0]), (this.startXY[1] - this.nodeXY[1])];"," } else {"," this.deltaXY = [0, 0];"," }"," },"," /**"," * @private"," * @method _timeoutCheck"," * @description The method passed to setTimeout to determine if the clickTimeThreshold was met."," */"," _timeoutCheck: function() {"," if (!this.get('lock') && !this._dragThreshMet && this._ev_md) {"," this._fromTimeout = this._dragThreshMet = true;"," this.start();"," this._alignNode([this._ev_md.pageX, this._ev_md.pageY], true);"," }"," },"," /**"," * @method removeHandle"," * @description Remove a Selector added by addHandle"," * @param {String} str The selector for the handle to be removed. "," * @return {Self}"," * @chainable"," */"," removeHandle: function(str) {"," var key = str;"," if (str instanceof Y.Node || str instanceof Y.NodeList) {"," key = str._yuid;"," }"," if (this._handles[key]) {"," delete this._handles[key];"," this.fire(EV_REMOVE_HANDLE, { handle: str });"," }"," return this;"," },"," /**"," * @method addHandle"," * @description Add a handle to a drag element. Drag only initiates when a mousedown happens on this element."," * @param {String} str The selector to test for a valid handle. Must be a child of the element."," * @return {Self}"," * @chainable"," */"," addHandle: function(str) {"," if (!this._handles) {"," this._handles = {};"," }"," var key = str;"," if (str instanceof Y.Node || str instanceof Y.NodeList) {"," key = str._yuid;"," }"," this._handles[key] = str;"," this.fire(EV_ADD_HANDLE, { handle: str });"," return this;"," },"," /**"," * @method removeInvalid"," * @description Remove an invalid handle added by addInvalid"," * @param {String} str The invalid handle to remove from the internal list."," * @return {Self}"," * @chainable"," */"," removeInvalid: function(str) {"," if (this._invalids[str]) {"," this._invalids[str] = null;"," delete this._invalids[str];"," this.fire(EV_REMOVE_INVALID, { handle: str });"," }"," return this;"," },"," /**"," * @method addInvalid"," * @description Add a selector string to test the handle against. If the test passes the drag operation will not continue."," * @param {String} str The selector to test against to determine if this is an invalid drag handle."," * @return {Self}"," * @chainable"," */"," addInvalid: function(str) {"," if (Y.Lang.isString(str)) {"," this._invalids[str] = true;"," this.fire(EV_ADD_INVALID, { handle: str });"," }"," return this;"," },"," /**"," * @private"," * @method initializer"," * @description Internal init handler"," */"," initializer: function(cfg) {",""," this.get(NODE).dd = this;",""," if (!this.get(NODE).get('id')) {"," var id = Y.stamp(this.get(NODE));"," this.get(NODE).set('id', id);"," }",""," this.actXY = [];"," "," this._invalids = Y.clone(this._invalidsDefault, true);",""," this._createEvents();"," "," if (!this.get(DRAG_NODE)) {"," this.set(DRAG_NODE, this.get(NODE));"," }",""," //Fix for #2528096"," //Don't prep the DD instance until all plugins are loaded."," this.on('initializedChange', Y.bind(this._prep, this));",""," //Shouldn't have to do this.."," this.set('groups', this.get('groups'));"," },"," /**"," * @private"," * @method _prep"," * @description Attach event listners and add classname"," */"," _prep: function() {"," this._dragThreshMet = false;"," var node = this.get(NODE);"," node.addClass(DDM.CSS_PREFIX + '-draggable');"," node.on(Drag.START_EVENT, Y.bind(this._handleMouseDownEvent, this));"," node.on('mouseup', Y.bind(this._handleMouseUp, this));"," node.on('dragstart', Y.bind(this._fixDragStart, this));"," },"," /**"," * @private"," * @method _unprep"," * @description Detach event listeners and remove classname"," */"," _unprep: function() {"," var node = this.get(NODE);"," node.removeClass(DDM.CSS_PREFIX + '-draggable');"," node.detachAll('mouseup');"," node.detachAll('dragstart');"," node.detachAll(Drag.START_EVENT);"," this.mouseXY = [];"," this.deltaXY = [0,0];"," this.startXY = [];"," this.nodeXY = [];"," this.lastXY = [];"," this.actXY = [];"," this.realXY = [];"," },"," /**"," * @method start"," * @description Starts the drag operation"," * @return {Self}"," * @chainable"," */"," start: function() {"," if (!this.get('lock') && !this.get(DRAGGING)) {"," var node = this.get(NODE), ow, oh, xy;"," this._startTime = (new Date()).getTime();",""," DDM._start();"," node.addClass(DDM.CSS_PREFIX + '-dragging');"," this.fire(EV_START, {"," pageX: this.nodeXY[0],"," pageY: this.nodeXY[1],"," startTime: this._startTime"," });"," node = this.get(DRAG_NODE);"," xy = this.nodeXY;"," "," ow = node.get(OFFSET_WIDTH);"," oh = node.get(OFFSET_HEIGHT);"," "," if (this.get('startCentered')) {"," this._setStartPosition([xy[0] + (ow / 2), xy[1] + (oh / 2)]);"," }"," "," "," this.region = {"," '0': xy[0], "," '1': xy[1],"," area: 0,"," top: xy[1],"," right: xy[0] + ow,"," bottom: xy[1] + oh,"," left: xy[0]"," };"," this.set(DRAGGING, true);"," }"," return this;"," },"," /**"," * @method end"," * @description Ends the drag operation"," * @return {Self}"," * @chainable"," */"," end: function() {"," this._endTime = (new Date()).getTime();"," if (this._clickTimeout) {"," this._clickTimeout.cancel();"," }"," this._dragThreshMet = this._fromTimeout = false;",""," if (!this.get('lock') && this.get(DRAGGING)) {"," this.fire(EV_END, {"," pageX: this.lastXY[0],"," pageY: this.lastXY[1],"," startTime: this._startTime,"," endTime: this._endTime"," });"," }"," this.get(NODE).removeClass(DDM.CSS_PREFIX + '-dragging');"," this.set(DRAGGING, false);"," this.deltaXY = [0, 0];",""," return this;"," },"," /**"," * @private"," * @method _defEndFn"," * @description Handler for fixing the selection in IE"," */"," _defEndFn: function(e) {"," this._fixIEMouseUp();"," this._ev_md = null;"," },"," /**"," * @private"," * @method _prevEndFn"," * @description Handler for preventing the drag:end event. It will reset the node back to it's start position"," */"," _prevEndFn: function(e) {"," this._fixIEMouseUp();"," //Bug #1852577"," this.get(DRAG_NODE).setXY(this.nodeXY);"," this._ev_md = null;"," this.region = null;"," },"," /**"," * @private"," * @method _align"," * @description Calculates the offsets and set's the XY that the element will move to."," * @param {Array} xy The xy coords to align with."," */"," _align: function(xy) {"," this.fire(EV_ALIGN, {pageX: xy[0], pageY: xy[1] });"," },"," /**"," * @private"," * @method _defAlignFn"," * @description Calculates the offsets and set's the XY that the element will move to."," * @param {EventFacade} e The drag:align event."," */"," _defAlignFn: function(e) {"," this.actXY = [e.pageX - this.deltaXY[0], e.pageY - this.deltaXY[1]];"," },"," /**"," * @private"," * @method _alignNode"," * @description This method performs the alignment before the element move."," * @param {Array} eXY The XY to move the element to, usually comes from the mousemove DOM event."," */"," _alignNode: function(eXY, scroll) {"," this._align(eXY);"," if (!scroll) {"," this._moveNode();"," }"," },"," /**"," * @private"," * @method _moveNode"," * @description This method performs the actual element move."," */"," _moveNode: function(scroll) {"," //if (!this.get(DRAGGING)) {"," // return;"," //}"," var diffXY = [], diffXY2 = [], startXY = this.nodeXY, xy = this.actXY;",""," diffXY[0] = (xy[0] - this.lastXY[0]);"," diffXY[1] = (xy[1] - this.lastXY[1]);",""," diffXY2[0] = (xy[0] - this.nodeXY[0]);"," diffXY2[1] = (xy[1] - this.nodeXY[1]);","",""," this.region = {"," '0': xy[0], "," '1': xy[1],"," area: 0,"," top: xy[1],"," right: xy[0] + this.get(DRAG_NODE).get(OFFSET_WIDTH),"," bottom: xy[1] + this.get(DRAG_NODE).get(OFFSET_HEIGHT),"," left: xy[0]"," };",""," this.fire(EV_DRAG, {"," pageX: xy[0],"," pageY: xy[1],"," scroll: scroll,"," info: {"," start: startXY,"," xy: xy,"," delta: diffXY,"," offset: diffXY2"," } "," });"," "," this.lastXY = xy;"," },"," /**"," * @private"," * @method _defDragFn"," * @description Default function for drag:drag. Fired from _moveNode."," * @param {EventFacade} ev The drag:drag event"," */"," _defDragFn: function(e) {"," if (this.get('move')) {"," if (e.scroll && e.scroll.node) {"," e.scroll.node.set('scrollTop', e.scroll.top);"," e.scroll.node.set('scrollLeft', e.scroll.left);"," }"," this.get(DRAG_NODE).setXY([e.pageX, e.pageY]);"," this.realXY = [e.pageX, e.pageY];"," }"," },"," /**"," * @private"," * @method _move"," * @description Fired from DragDropMgr (DDM) on mousemove."," * @param {EventFacade} ev The mousemove DOM event"," */"," _move: function(ev) {"," if (this.get('lock')) {"," return false;"," }",""," this.mouseXY = [ev.pageX, ev.pageY];"," if (!this._dragThreshMet) {"," var diffX = Math.abs(this.startXY[0] - ev.pageX),"," diffY = Math.abs(this.startXY[1] - ev.pageY);"," if (diffX > this.get('clickPixelThresh') || diffY > this.get('clickPixelThresh')) {"," this._dragThreshMet = true;"," this.start();"," this._alignNode([ev.pageX, ev.pageY]);"," }"," } else {"," if (this._clickTimeout) {"," this._clickTimeout.cancel();"," }"," this._alignNode([ev.pageX, ev.pageY]);"," }"," },"," /**"," * @method stopDrag"," * @description Method will forcefully stop a drag operation. For example calling this from inside an ESC keypress handler will stop this drag."," * @return {Self}"," * @chainable"," */"," stopDrag: function() {"," if (this.get(DRAGGING)) {"," DDM._end();"," }"," return this;"," },"," /**"," * @private"," * @method destructor"," * @description Lifecycle destructor, unreg the drag from the DDM and remove listeners"," */"," destructor: function() {"," this._unprep();"," if (this.target) {"," this.target.destroy();"," }"," DDM._unregDrag(this);"," }"," });"," Y.namespace('DD'); "," Y.DD.Drag = Drag;","","","","","}, '3.7.2', {\"requires\": [\"dd-ddm-base\"]});"]; -_yuitest_coverage["build/dd-drag/dd-drag.js"].lines = {"1":0,"17":0,"195":0,"196":0,"198":0,"199":0,"200":0,"204":0,"211":0,"213":0,"221":0,"222":0,"224":0,"225":0,"226":0,"228":0,"238":0,"239":0,"241":0,"242":0,"243":0,"245":0,"288":0,"289":0,"291":0,"293":0,"355":0,"356":0,"367":0,"378":0,"379":0,"381":0,"382":0,"383":0,"385":0,"388":0,"389":0,"390":0,"392":0,"403":0,"404":0,"405":0,"406":0,"407":0,"408":0,"410":0,"413":0,"415":0,"426":0,"427":0,"440":0,"451":0,"452":0,"454":0,"470":0,"471":0,"472":0,"482":0,"483":0,"484":0,"499":0,"500":0,"501":0,"502":0,"503":0,"506":0,"507":0,"509":0,"510":0,"511":0,"512":0,"530":0,"538":0,"546":0,"554":0,"563":0,"577":0,"578":0,"706":0,"707":0,"708":0,"709":0,"719":0,"720":0,"729":0,"743":0,"744":0,"745":0,"754":0,"755":0,"765":0,"774":0,"776":0,"777":0,"779":0,"780":0,"782":0,"783":0,"784":0,"785":0,"787":0,"790":0,"792":0,"794":0,"796":0,"805":0,"811":0,"812":0,"813":0,"814":0,"815":0,"816":0,"817":0,"819":0,"820":0,"821":0,"825":0,"827":0,"828":0,"829":0,"834":0,"835":0,"836":0,"839":0,"840":0,"841":0,"842":0,"844":0,"845":0,"851":0,"852":0,"853":0,"854":0,"855":0,"856":0,"857":0,"858":0,"862":0,"865":0,"874":0,"876":0,"878":0,"879":0,"881":0,"890":0,"891":0,"892":0,"893":0,"904":0,"905":0,"906":0,"908":0,"909":0,"910":0,"912":0,"922":0,"923":0,"925":0,"926":0,"927":0,"929":0,"930":0,"931":0,"941":0,"942":0,"943":0,"944":0,"946":0,"956":0,"957":0,"958":0,"960":0,"969":0,"971":0,"972":0,"973":0,"976":0,"978":0,"980":0,"982":0,"983":0,"988":0,"991":0,"999":0,"1000":0,"1001":0,"1002":0,"1003":0,"1004":0,"1012":0,"1013":0,"1014":0,"1015":0,"1016":0,"1017":0,"1018":0,"1019":0,"1020":0,"1021":0,"1022":0,"1023":0,"1032":0,"1033":0,"1034":0,"1036":0,"1037":0,"1038":0,"1043":0,"1044":0,"1046":0,"1047":0,"1049":0,"1050":0,"1054":0,"1063":0,"1065":0,"1074":0,"1075":0,"1076":0,"1078":0,"1080":0,"1081":0,"1088":0,"1089":0,"1090":0,"1092":0,"1100":0,"1101":0,"1109":0,"1111":0,"1112":0,"1113":0,"1122":0,"1131":0,"1140":0,"1141":0,"1142":0,"1154":0,"1156":0,"1157":0,"1159":0,"1160":0,"1163":0,"1173":0,"1185":0,"1194":0,"1195":0,"1196":0,"1197":0,"1199":0,"1200":0,"1210":0,"1211":0,"1214":0,"1215":0,"1216":0,"1218":0,"1219":0,"1220":0,"1221":0,"1224":0,"1225":0,"1227":0,"1237":0,"1238":0,"1240":0,"1248":0,"1249":0,"1250":0,"1252":0,"1255":0,"1256":0}; -_yuitest_coverage["build/dd-drag/dd-drag.js"].functions = {"Drag:194":0,"setter:220":0,"setter:237":0,"setter:287":0,"setter:354":0,"setter:366":0,"(anonymous 2):382":0,"getter:377":0,"(anonymous 3):389":0,"setter:387":0,"(anonymous 4):405":0,"setter:402":0,"setter:425":0,"_canDrag:450":0,"addToGroup:469":0,"removeFromGroup:481":0,"_handleTarget:498":0,"(anonymous 5):577":0,"_createEvents:528":0,"_handleMouseUp:705":0,"_fixDragStart:718":0,"_ieSelectFix:728":0,"_fixIEMouseDown:742":0,"_fixIEMouseUp:753":0,"_handleMouseDownEvent:764":0,"_defMouseDownFn:773":0,"(anonymous 7):819":0,"(anonymous 6):812":0,"(anonymous 8):841":0,"(anonymous 9):855":0,"validClick:804":0,"_setStartPosition:873":0,"_timeoutCheck:889":0,"removeHandle:903":0,"addHandle:921":0,"removeInvalid:940":0,"addInvalid:955":0,"initializer:967":0,"_prep:998":0,"_unprep:1011":0,"start:1031":0,"end:1073":0,"_defEndFn:1099":0,"_prevEndFn:1108":0,"_align:1121":0,"_defAlignFn:1130":0,"_alignNode:1139":0,"_moveNode:1150":0,"_defDragFn:1193":0,"_move:1209":0,"stopDrag:1236":0,"destructor:1247":0,"(anonymous 1):1":0}; -_yuitest_coverage["build/dd-drag/dd-drag.js"].coveredLines = 272; -_yuitest_coverage["build/dd-drag/dd-drag.js"].coveredFunctions = 53; -_yuitest_coverline("build/dd-drag/dd-drag.js", 1); -YUI.add('dd-drag', function (Y, NAME) { - - - /** - * Provides the ability to drag a Node. - * @module dd - * @submodule dd-drag - */ - /** - * Provides the ability to drag a Node. - * @class Drag - * @extends Base - * @constructor - * @namespace DD - */ - - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "(anonymous 1)", 1); -_yuitest_coverline("build/dd-drag/dd-drag.js", 17); -var DDM = Y.DD.DDM, - NODE = 'node', - DRAGGING = 'dragging', - DRAG_NODE = 'dragNode', - OFFSET_HEIGHT = 'offsetHeight', - OFFSET_WIDTH = 'offsetWidth', - /** - * @event drag:mouseup - * @description Handles the mouseup DOM event, does nothing internally just fires. - * @bubbles DDM - * @type {CustomEvent} - */ - /** - * @event drag:mouseDown - * @description Handles the mousedown DOM event, checks to see if you have a valid handle then starts the drag timers. - * @preventable _defMouseDownFn - * @param {EventFacade} event An Event Facade object with the following specific property added: - *
ev
The original mousedown event.
- * @bubbles DDM - * @type {CustomEvent} - */ - EV_MOUSE_DOWN = 'drag:mouseDown', - /** - * @event drag:afterMouseDown - * @description Fires after the mousedown event has been cleared. - * @param {EventFacade} event An Event Facade object with the following specific property added: - *
ev
The original mousedown event.
- * @bubbles DDM - * @type {CustomEvent} - */ - EV_AFTER_MOUSE_DOWN = 'drag:afterMouseDown', - /** - * @event drag:removeHandle - * @description Fires after a handle is removed. - * @param {EventFacade} event An Event Facade object with the following specific property added: - *
handle
The handle that was removed.
- * @bubbles DDM - * @type {CustomEvent} - */ - EV_REMOVE_HANDLE = 'drag:removeHandle', - /** - * @event drag:addHandle - * @description Fires after a handle is added. - * @param {EventFacade} event An Event Facade object with the following specific property added: - *
handle
The handle that was added.
- * @bubbles DDM - * @type {CustomEvent} - */ - EV_ADD_HANDLE = 'drag:addHandle', - /** - * @event drag:removeInvalid - * @description Fires after an invalid selector is removed. - * @param {EventFacade} event An Event Facade object with the following specific property added: - *
handle
The handle that was removed.
- * @bubbles DDM - * @type {CustomEvent} - */ - EV_REMOVE_INVALID = 'drag:removeInvalid', - /** - * @event drag:addInvalid - * @description Fires after an invalid selector is added. - * @param {EventFacade} event An Event Facade object with the following specific property added: - *
handle
The handle that was added.
- * @bubbles DDM - * @type {CustomEvent} - */ - EV_ADD_INVALID = 'drag:addInvalid', - /** - * @event drag:start - * @description Fires at the start of a drag operation. - * @param {EventFacade} event An Event Facade object with the following specific property added: - *
- *
pageX
The original node position X.
- *
pageY
The original node position Y.
- *
startTime
The startTime of the event. getTime on the current Date object.
- *
- * @bubbles DDM - * @type {CustomEvent} - */ - EV_START = 'drag:start', - /** - * @event drag:end - * @description Fires at the end of a drag operation. - * @param {EventFacade} event An Event Facade object with the following specific property added: - *
- *
pageX
The current node position X.
- *
pageY
The current node position Y.
- *
startTime
The startTime of the event, from the start event.
- *
endTime
The endTime of the event. getTime on the current Date object.
- *
- * @bubbles DDM - * @type {CustomEvent} - */ - EV_END = 'drag:end', - /** - * @event drag:drag - * @description Fires every mousemove during a drag operation. - * @param {EventFacade} event An Event Facade object with the following specific property added: - *
- *
pageX
The current node position X.
- *
pageY
The current node position Y.
- *
scroll
Should a scroll action occur.
- *
info
Object hash containing calculated XY arrays: start, xy, delta, offset
- *
- * @bubbles DDM - * @type {CustomEvent} - */ - EV_DRAG = 'drag:drag', - /** - * @event drag:align - * @preventable _defAlignFn - * @description Fires when this node is aligned. - * @param {EventFacade} event An Event Facade object with the following specific property added: - *
- *
pageX
The current node position X.
- *
pageY
The current node position Y.
- *
- * @bubbles DDM - * @type {CustomEvent} - */ - EV_ALIGN = 'drag:align', - /** - * @event drag:over - * @description Fires when this node is over a Drop Target. (Fired from dd-drop) - * @param {EventFacade} event An Event Facade object with the following specific property added: - *
- *
drop
The drop object at the time of the event.
- *
drag
The drag object at the time of the event.
- *
- * @bubbles DDM - * @type {CustomEvent} - */ - /** - * @event drag:enter - * @description Fires when this node enters a Drop Target. (Fired from dd-drop) - * @param {EventFacade} event An Event Facade object with the following specific property added: - *
- *
drop
The drop object at the time of the event.
- *
drag
The drag object at the time of the event.
- *
- * @bubbles DDM - * @type {CustomEvent} - */ - /** - * @event drag:exit - * @description Fires when this node exits a Drop Target. (Fired from dd-drop) - * @param {EventFacade} event An Event Facade object with the following specific property added: - *
- *
drop
The drop object at the time of the event.
- *
- * @bubbles DDM - * @type {CustomEvent} - */ - /** - * @event drag:drophit - * @description Fires when this node is dropped on a valid Drop Target. (Fired from dd-ddm-drop) - * @param {EventFacade} event An Event Facade object with the following specific property added: - *
- *
drop
The best guess on what was dropped on.
- *
drag
The drag object at the time of the event.
- *
others
An array of all the other drop targets that was dropped on.
- *
- * @bubbles DDM - * @type {CustomEvent} - */ - /** - * @event drag:dropmiss - * @description Fires when this node is dropped on an invalid Drop Target. (Fired from dd-ddm-drop) - * @param {EventFacade} event An Event Facade object with the following specific property added: - *
- *
pageX
The current node position X.
- *
pageY
The current node position Y.
- *
- * @bubbles DDM - * @type {CustomEvent} - */ - - Drag = function(o) { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "Drag", 194); -_yuitest_coverline("build/dd-drag/dd-drag.js", 195); -this._lazyAddAttrs = false; - _yuitest_coverline("build/dd-drag/dd-drag.js", 196); -Drag.superclass.constructor.apply(this, arguments); - - _yuitest_coverline("build/dd-drag/dd-drag.js", 198); -var valid = DDM._regDrag(this); - _yuitest_coverline("build/dd-drag/dd-drag.js", 199); -if (!valid) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 200); -Y.error('Failed to register node, already in use: ' + o.node); - } - }; - - _yuitest_coverline("build/dd-drag/dd-drag.js", 204); -Drag.NAME = 'drag'; - - /** - * This property defaults to "mousedown", but when drag-gestures is loaded, it is changed to "gesturemovestart" - * @static - * @property START_EVENT - */ - _yuitest_coverline("build/dd-drag/dd-drag.js", 211); -Drag.START_EVENT = 'mousedown'; - - _yuitest_coverline("build/dd-drag/dd-drag.js", 213); -Drag.ATTRS = { - /** - * @attribute node - * @description Y.Node instance to use as the element to initiate a drag operation - * @type Node - */ - node: { - setter: function(node) { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "setter", 220); -_yuitest_coverline("build/dd-drag/dd-drag.js", 221); -if (this._canDrag(node)) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 222); -return node; - } - _yuitest_coverline("build/dd-drag/dd-drag.js", 224); -var n = Y.one(node); - _yuitest_coverline("build/dd-drag/dd-drag.js", 225); -if (!n) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 226); -Y.error('DD.Drag: Invalid Node Given: ' + node); - } - _yuitest_coverline("build/dd-drag/dd-drag.js", 228); -return n; - } - }, - /** - * @attribute dragNode - * @description Y.Node instance to use as the draggable element, defaults to node - * @type Node - */ - dragNode: { - setter: function(node) { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "setter", 237); -_yuitest_coverline("build/dd-drag/dd-drag.js", 238); -if (this._canDrag(node)) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 239); -return node; - } - _yuitest_coverline("build/dd-drag/dd-drag.js", 241); -var n = Y.one(node); - _yuitest_coverline("build/dd-drag/dd-drag.js", 242); -if (!n) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 243); -Y.error('DD.Drag: Invalid dragNode Given: ' + node); - } - _yuitest_coverline("build/dd-drag/dd-drag.js", 245); -return n; - } - }, - /** - * @attribute offsetNode - * @description Offset the drag element by the difference in cursor position: default true - * @type Boolean - */ - offsetNode: { - value: true - }, - /** - * @attribute startCentered - * @description Center the dragNode to the mouse position on drag:start: default false - * @type Boolean - */ - startCentered: { - value: false - }, - /** - * @attribute clickPixelThresh - * @description The number of pixels to move to start a drag operation, default is 3. - * @type Number - */ - clickPixelThresh: { - value: DDM.get('clickPixelThresh') - }, - /** - * @attribute clickTimeThresh - * @description The number of milliseconds a mousedown has to pass to start a drag operation, default is 1000. - * @type Number - */ - clickTimeThresh: { - value: DDM.get('clickTimeThresh') - }, - /** - * @attribute lock - * @description Set to lock this drag element so that it can't be dragged: default false. - * @type Boolean - */ - lock: { - value: false, - setter: function(lock) { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "setter", 287); -_yuitest_coverline("build/dd-drag/dd-drag.js", 288); -if (lock) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 289); -this.get(NODE).addClass(DDM.CSS_PREFIX + '-locked'); - } else { - _yuitest_coverline("build/dd-drag/dd-drag.js", 291); -this.get(NODE).removeClass(DDM.CSS_PREFIX + '-locked'); - } - _yuitest_coverline("build/dd-drag/dd-drag.js", 293); -return lock; - } - }, - /** - * @attribute data - * @description A payload holder to store arbitrary data about this drag object, can be used to store any value. - * @type Mixed - */ - data: { - value: false - }, - /** - * @attribute move - * @description If this is false, the drag element will not move with the cursor: default true. Can be used to "resize" the element. - * @type Boolean - */ - move: { - value: true - }, - /** - * @attribute useShim - * @description Use the protective shim on all drag operations: default true. Only works with dd-ddm, not dd-ddm-base. - * @type Boolean - */ - useShim: { - value: true - }, - /** - * @attribute activeHandle - * @description This config option is set by Drag to inform you of which handle fired the drag event (in the case that there are several handles): default false. - * @type Node - */ - activeHandle: { - value: false - }, - /** - * @attribute primaryButtonOnly - * @description By default a drag operation will only begin if the mousedown occurred with the primary mouse button. Setting this to false will allow for all mousedown events to trigger a drag. - * @type Boolean - */ - primaryButtonOnly: { - value: true - }, - /** - * @attribute dragging - * @description This attribute is not meant to be used by the implementor, it is meant to be used as an Event tracker so you can listen for it to change. - * @type Boolean - */ - dragging: { - value: false - }, - parent: { - value: false - }, - /** - * @attribute target - * @description This attribute only works if the dd-drop module has been loaded. It will make this node a drop target as well as draggable. - * @type Boolean - */ - target: { - value: false, - setter: function(config) { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "setter", 354); -_yuitest_coverline("build/dd-drag/dd-drag.js", 355); -this._handleTarget(config); - _yuitest_coverline("build/dd-drag/dd-drag.js", 356); -return config; - } - }, - /** - * @attribute dragMode - * @description This attribute only works if the dd-drop module is active. It will set the dragMode (point, intersect, strict) of this Drag instance. - * @type String - */ - dragMode: { - value: null, - setter: function(mode) { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "setter", 366); -_yuitest_coverline("build/dd-drag/dd-drag.js", 367); -return DDM._setDragMode(mode); - } - }, - /** - * @attribute groups - * @description Array of groups to add this drag into. - * @type Array - */ - groups: { - value: ['default'], - getter: function() { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "getter", 377); -_yuitest_coverline("build/dd-drag/dd-drag.js", 378); -if (!this._groups) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 379); -this._groups = {}; - } - _yuitest_coverline("build/dd-drag/dd-drag.js", 381); -var ret = []; - _yuitest_coverline("build/dd-drag/dd-drag.js", 382); -Y.each(this._groups, function(v, k) { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "(anonymous 2)", 382); -_yuitest_coverline("build/dd-drag/dd-drag.js", 383); -ret[ret.length] = k; - }); - _yuitest_coverline("build/dd-drag/dd-drag.js", 385); -return ret; - }, - setter: function(g) { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "setter", 387); -_yuitest_coverline("build/dd-drag/dd-drag.js", 388); -this._groups = {}; - _yuitest_coverline("build/dd-drag/dd-drag.js", 389); -Y.each(g, function(v, k) { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "(anonymous 3)", 389); -_yuitest_coverline("build/dd-drag/dd-drag.js", 390); -this._groups[v] = true; - }, this); - _yuitest_coverline("build/dd-drag/dd-drag.js", 392); -return g; - } - }, - /** - * @attribute handles - * @description Array of valid handles to add. Adding something here will set all handles, even if previously added with addHandle - * @type Array - */ - handles: { - value: null, - setter: function(g) { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "setter", 402); -_yuitest_coverline("build/dd-drag/dd-drag.js", 403); -if (g) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 404); -this._handles = {}; - _yuitest_coverline("build/dd-drag/dd-drag.js", 405); -Y.each(g, function(v, k) { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "(anonymous 4)", 405); -_yuitest_coverline("build/dd-drag/dd-drag.js", 406); -var key = v; - _yuitest_coverline("build/dd-drag/dd-drag.js", 407); -if (v instanceof Y.Node || v instanceof Y.NodeList) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 408); -key = v._yuid; - } - _yuitest_coverline("build/dd-drag/dd-drag.js", 410); -this._handles[key] = v; - }, this); - } else { - _yuitest_coverline("build/dd-drag/dd-drag.js", 413); -this._handles = null; - } - _yuitest_coverline("build/dd-drag/dd-drag.js", 415); -return g; - } - }, - /** - * @deprecated - * @attribute bubbles - * @description Controls the default bubble parent for this Drag instance. Default: Y.DD.DDM. Set to false to disable bubbling. Use bubbleTargets in config - * @type Object - */ - bubbles: { - setter: function(t) { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "setter", 425); -_yuitest_coverline("build/dd-drag/dd-drag.js", 426); -this.addTarget(t); - _yuitest_coverline("build/dd-drag/dd-drag.js", 427); -return t; - } - }, - /** - * @attribute haltDown - * @description Should the mousedown event be halted. Default: true - * @type Boolean - */ - haltDown: { - value: true - } - }; - - _yuitest_coverline("build/dd-drag/dd-drag.js", 440); -Y.extend(Drag, Y.Base, { - /** - * Checks the object for the methods needed to drag the object around. - * Normally this would be a node instance, but in the case of Graphics, it - * may be an SVG node or something similar. - * @method _canDrag - * @private - * @param {Object} n The object to check - * @return {Boolean} True or false if the Object contains the methods needed to Drag - */ - _canDrag: function(n) { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "_canDrag", 450); -_yuitest_coverline("build/dd-drag/dd-drag.js", 451); -if (n && n.setXY && n.getXY && n.test && n.contains) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 452); -return true; - } - _yuitest_coverline("build/dd-drag/dd-drag.js", 454); -return false; - }, - /** - * @private - * @property _bubbleTargets - * @description The default bubbleTarget for this object. Default: Y.DD.DDM - */ - _bubbleTargets: Y.DD.DDM, - /** - * @method addToGroup - * @description Add this Drag instance to a group, this should be used for on-the-fly group additions. - * @param {String} g The group to add this Drag Instance to. - * @return {Self} - * @chainable - */ - addToGroup: function(g) { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "addToGroup", 469); -_yuitest_coverline("build/dd-drag/dd-drag.js", 470); -this._groups[g] = true; - _yuitest_coverline("build/dd-drag/dd-drag.js", 471); -DDM._activateTargets(); - _yuitest_coverline("build/dd-drag/dd-drag.js", 472); -return this; - }, - /** - * @method removeFromGroup - * @description Remove this Drag instance from a group, this should be used for on-the-fly group removals. - * @param {String} g The group to remove this Drag Instance from. - * @return {Self} - * @chainable - */ - removeFromGroup: function(g) { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "removeFromGroup", 481); -_yuitest_coverline("build/dd-drag/dd-drag.js", 482); -delete this._groups[g]; - _yuitest_coverline("build/dd-drag/dd-drag.js", 483); -DDM._activateTargets(); - _yuitest_coverline("build/dd-drag/dd-drag.js", 484); -return this; - }, - /** - * @property target - * @description This will be a reference to the Drop instance associated with this drag if the target: true config attribute is set.. - * @type {Object} - */ - target: null, - /** - * @private - * @method _handleTarget - * @description Attribute handler for the target config attribute. - * @param {Boolean/Object} config The Config - */ - _handleTarget: function(config) { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "_handleTarget", 498); -_yuitest_coverline("build/dd-drag/dd-drag.js", 499); -if (Y.DD.Drop) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 500); -if (config === false) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 501); -if (this.target) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 502); -DDM._unregTarget(this.target); - _yuitest_coverline("build/dd-drag/dd-drag.js", 503); -this.target = null; - } - } else { - _yuitest_coverline("build/dd-drag/dd-drag.js", 506); -if (!Y.Lang.isObject(config)) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 507); -config = {}; - } - _yuitest_coverline("build/dd-drag/dd-drag.js", 509); -config.bubbleTargets = config.bubbleTargets || Y.Object.values(this._yuievt.targets); - _yuitest_coverline("build/dd-drag/dd-drag.js", 510); -config.node = this.get(NODE); - _yuitest_coverline("build/dd-drag/dd-drag.js", 511); -config.groups = config.groups || this.get('groups'); - _yuitest_coverline("build/dd-drag/dd-drag.js", 512); -this.target = new Y.DD.Drop(config); - } - } - }, - /** - * @private - * @property _groups - * @description Storage Array for the groups this drag belongs to. - * @type {Array} - */ - _groups: null, - /** - * @private - * @method _createEvents - * @description This method creates all the events for this Event Target and publishes them so we get Event Bubbling. - */ - _createEvents: function() { - - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "_createEvents", 528); -_yuitest_coverline("build/dd-drag/dd-drag.js", 530); -this.publish(EV_MOUSE_DOWN, { - defaultFn: this._defMouseDownFn, - queuable: false, - emitFacade: true, - bubbles: true, - prefix: 'drag' - }); - - _yuitest_coverline("build/dd-drag/dd-drag.js", 538); -this.publish(EV_ALIGN, { - defaultFn: this._defAlignFn, - queuable: false, - emitFacade: true, - bubbles: true, - prefix: 'drag' - }); - - _yuitest_coverline("build/dd-drag/dd-drag.js", 546); -this.publish(EV_DRAG, { - defaultFn: this._defDragFn, - queuable: false, - emitFacade: true, - bubbles: true, - prefix: 'drag' - }); - - _yuitest_coverline("build/dd-drag/dd-drag.js", 554); -this.publish(EV_END, { - defaultFn: this._defEndFn, - preventedFn: this._prevEndFn, - queuable: false, - emitFacade: true, - bubbles: true, - prefix: 'drag' - }); - - _yuitest_coverline("build/dd-drag/dd-drag.js", 563); -var ev = [ - EV_AFTER_MOUSE_DOWN, - EV_REMOVE_HANDLE, - EV_ADD_HANDLE, - EV_REMOVE_INVALID, - EV_ADD_INVALID, - EV_START, - 'drag:drophit', - 'drag:dropmiss', - 'drag:over', - 'drag:enter', - 'drag:exit' - ]; - - _yuitest_coverline("build/dd-drag/dd-drag.js", 577); -Y.each(ev, function(v, k) { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "(anonymous 5)", 577); -_yuitest_coverline("build/dd-drag/dd-drag.js", 578); -this.publish(v, { - type: v, - emitFacade: true, - bubbles: true, - preventable: false, - queuable: false, - prefix: 'drag' - }); - }, this); - }, - /** - * @private - * @property _ev_md - * @description A private reference to the mousedown DOM event - * @type {EventFacade} - */ - _ev_md: null, - /** - * @private - * @property _startTime - * @description The getTime of the mousedown event. Not used, just here in case someone wants/needs to use it. - * @type Date - */ - _startTime: null, - /** - * @private - * @property _endTime - * @description The getTime of the mouseup event. Not used, just here in case someone wants/needs to use it. - * @type Date - */ - _endTime: null, - /** - * @private - * @property _handles - * @description A private hash of the valid drag handles - * @type {Object} - */ - _handles: null, - /** - * @private - * @property _invalids - * @description A private hash of the invalid selector strings - * @type {Object} - */ - _invalids: null, - /** - * @private - * @property _invalidsDefault - * @description A private hash of the default invalid selector strings: {'textarea': true, 'input': true, 'a': true, 'button': true, 'select': true} - * @type {Object} - */ - _invalidsDefault: {'textarea': true, 'input': true, 'a': true, 'button': true, 'select': true }, - /** - * @private - * @property _dragThreshMet - * @description Private flag to see if the drag threshhold was met - * @type {Boolean} - */ - _dragThreshMet: null, - /** - * @private - * @property _fromTimeout - * @description Flag to determine if the drag operation came from a timeout - * @type {Boolean} - */ - _fromTimeout: null, - /** - * @private - * @property _clickTimeout - * @description Holder for the setTimeout call - * @type {Boolean} - */ - _clickTimeout: null, - /** - * @property deltaXY - * @description The offset of the mouse position to the element's position - * @type {Array} - */ - deltaXY: null, - /** - * @property startXY - * @description The initial mouse position - * @type {Array} - */ - startXY: null, - /** - * @property nodeXY - * @description The initial element position - * @type {Array} - */ - nodeXY: null, - /** - * @property lastXY - * @description The position of the element as it's moving (for offset calculations) - * @type {Array} - */ - lastXY: null, - /** - * @property actXY - * @description The xy that the node will be set to. Changing this will alter the position as it's dragged. - * @type {Array} - */ - actXY: null, - /** - * @property realXY - * @description The real xy position of the node. - * @type {Array} - */ - realXY: null, - /** - * @property mouseXY - * @description The XY coords of the mousemove - * @type {Array} - */ - mouseXY: null, - /** - * @property region - * @description A region object associated with this drag, used for checking regions while dragging. - * @type Object - */ - region: null, - /** - * @private - * @method _handleMouseUp - * @description Handler for the mouseup DOM event - * @param {EventFacade} ev The Event - */ - _handleMouseUp: function(ev) { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "_handleMouseUp", 705); -_yuitest_coverline("build/dd-drag/dd-drag.js", 706); -this.fire('drag:mouseup'); - _yuitest_coverline("build/dd-drag/dd-drag.js", 707); -this._fixIEMouseUp(); - _yuitest_coverline("build/dd-drag/dd-drag.js", 708); -if (DDM.activeDrag) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 709); -DDM._end(); - } - }, - /** - * @private - * @method _fixDragStart - * @description The function we use as the ondragstart handler when we start a drag in Internet Explorer. This keeps IE from blowing up on images as drag handles. - * @param {Event} e The Event - */ - _fixDragStart: function(e) { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "_fixDragStart", 718); -_yuitest_coverline("build/dd-drag/dd-drag.js", 719); -if (this.validClick(e)) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 720); -e.preventDefault(); - } - }, - /** - * @private - * @method _ieSelectFix - * @description The function we use as the onselectstart handler when we start a drag in Internet Explorer - */ - _ieSelectFix: function() { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "_ieSelectFix", 728); -_yuitest_coverline("build/dd-drag/dd-drag.js", 729); -return false; - }, - /** - * @private - * @property _ieSelectBack - * @description We will hold a copy of the current "onselectstart" method on this property, and reset it after we are done using it. - */ - _ieSelectBack: null, - /** - * @private - * @method _fixIEMouseDown - * @description This method copies the onselectstart listner on the document to the _ieSelectFix property - */ - _fixIEMouseDown: function(e) { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "_fixIEMouseDown", 742); -_yuitest_coverline("build/dd-drag/dd-drag.js", 743); -if (Y.UA.ie) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 744); -this._ieSelectBack = Y.config.doc.body.onselectstart; - _yuitest_coverline("build/dd-drag/dd-drag.js", 745); -Y.config.doc.body.onselectstart = this._ieSelectFix; - } - }, - /** - * @private - * @method _fixIEMouseUp - * @description This method copies the _ieSelectFix property back to the onselectstart listner on the document. - */ - _fixIEMouseUp: function() { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "_fixIEMouseUp", 753); -_yuitest_coverline("build/dd-drag/dd-drag.js", 754); -if (Y.UA.ie) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 755); -Y.config.doc.body.onselectstart = this._ieSelectBack; - } - }, - /** - * @private - * @method _handleMouseDownEvent - * @description Handler for the mousedown DOM event - * @param {EventFacade} ev The Event - */ - _handleMouseDownEvent: function(ev) { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "_handleMouseDownEvent", 764); -_yuitest_coverline("build/dd-drag/dd-drag.js", 765); -this.fire(EV_MOUSE_DOWN, { ev: ev }); - }, - /** - * @private - * @method _defMouseDownFn - * @description Handler for the mousedown DOM event - * @param {EventFacade} e The Event - */ - _defMouseDownFn: function(e) { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "_defMouseDownFn", 773); -_yuitest_coverline("build/dd-drag/dd-drag.js", 774); -var ev = e.ev; - - _yuitest_coverline("build/dd-drag/dd-drag.js", 776); -this._dragThreshMet = false; - _yuitest_coverline("build/dd-drag/dd-drag.js", 777); -this._ev_md = ev; - - _yuitest_coverline("build/dd-drag/dd-drag.js", 779); -if (this.get('primaryButtonOnly') && ev.button > 1) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 780); -return false; - } - _yuitest_coverline("build/dd-drag/dd-drag.js", 782); -if (this.validClick(ev)) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 783); -this._fixIEMouseDown(ev); - _yuitest_coverline("build/dd-drag/dd-drag.js", 784); -if (this.get('haltDown')) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 785); -ev.halt(); - } else { - _yuitest_coverline("build/dd-drag/dd-drag.js", 787); -ev.preventDefault(); - } - - _yuitest_coverline("build/dd-drag/dd-drag.js", 790); -this._setStartPosition([ev.pageX, ev.pageY]); - - _yuitest_coverline("build/dd-drag/dd-drag.js", 792); -DDM.activeDrag = this; - - _yuitest_coverline("build/dd-drag/dd-drag.js", 794); -this._clickTimeout = Y.later(this.get('clickTimeThresh'), this, this._timeoutCheck); - } - _yuitest_coverline("build/dd-drag/dd-drag.js", 796); -this.fire(EV_AFTER_MOUSE_DOWN, { ev: ev }); - }, - /** - * @method validClick - * @description Method first checks to see if we have handles, if so it validates the click against the handle. Then if it finds a valid handle, it checks it against the invalid handles list. Returns true if a good handle was used, false otherwise. - * @param {EventFacade} ev The Event - * @return {Boolean} - */ - validClick: function(ev) { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "validClick", 804); -_yuitest_coverline("build/dd-drag/dd-drag.js", 805); -var r = false, n = false, - tar = ev.target, - hTest = null, - els = null, - nlist = null, - set = false; - _yuitest_coverline("build/dd-drag/dd-drag.js", 811); -if (this._handles) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 812); -Y.each(this._handles, function(i, n) { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "(anonymous 6)", 812); -_yuitest_coverline("build/dd-drag/dd-drag.js", 813); -if (i instanceof Y.Node || i instanceof Y.NodeList) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 814); -if (!r) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 815); -nlist = i; - _yuitest_coverline("build/dd-drag/dd-drag.js", 816); -if (nlist instanceof Y.Node) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 817); -nlist = new Y.NodeList(i._node); - } - _yuitest_coverline("build/dd-drag/dd-drag.js", 819); -nlist.each(function(nl) { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "(anonymous 7)", 819); -_yuitest_coverline("build/dd-drag/dd-drag.js", 820); -if (nl.contains(tar)) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 821); -r = true; - } - }); - } - } else {_yuitest_coverline("build/dd-drag/dd-drag.js", 825); -if (Y.Lang.isString(n)) { - //Am I this or am I inside this - _yuitest_coverline("build/dd-drag/dd-drag.js", 827); -if (tar.test(n + ', ' + n + ' *') && !hTest) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 828); -hTest = n; - _yuitest_coverline("build/dd-drag/dd-drag.js", 829); -r = true; - } - }} - }); - } else { - _yuitest_coverline("build/dd-drag/dd-drag.js", 834); -n = this.get(NODE); - _yuitest_coverline("build/dd-drag/dd-drag.js", 835); -if (n.contains(tar) || n.compareTo(tar)) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 836); -r = true; - } - } - _yuitest_coverline("build/dd-drag/dd-drag.js", 839); -if (r) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 840); -if (this._invalids) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 841); -Y.each(this._invalids, function(i, n) { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "(anonymous 8)", 841); -_yuitest_coverline("build/dd-drag/dd-drag.js", 842); -if (Y.Lang.isString(n)) { - //Am I this or am I inside this - _yuitest_coverline("build/dd-drag/dd-drag.js", 844); -if (tar.test(n + ', ' + n + ' *')) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 845); -r = false; - } - } - }); - } - } - _yuitest_coverline("build/dd-drag/dd-drag.js", 851); -if (r) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 852); -if (hTest) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 853); -els = ev.currentTarget.all(hTest); - _yuitest_coverline("build/dd-drag/dd-drag.js", 854); -set = false; - _yuitest_coverline("build/dd-drag/dd-drag.js", 855); -els.each(function(n, i) { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "(anonymous 9)", 855); -_yuitest_coverline("build/dd-drag/dd-drag.js", 856); -if ((n.contains(tar) || n.compareTo(tar)) && !set) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 857); -set = true; - _yuitest_coverline("build/dd-drag/dd-drag.js", 858); -this.set('activeHandle', n); - } - }, this); - } else { - _yuitest_coverline("build/dd-drag/dd-drag.js", 862); -this.set('activeHandle', this.get(NODE)); - } - } - _yuitest_coverline("build/dd-drag/dd-drag.js", 865); -return r; - }, - /** - * @private - * @method _setStartPosition - * @description Sets the current position of the Element and calculates the offset - * @param {Array} xy The XY coords to set the position to. - */ - _setStartPosition: function(xy) { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "_setStartPosition", 873); -_yuitest_coverline("build/dd-drag/dd-drag.js", 874); -this.startXY = xy; - - _yuitest_coverline("build/dd-drag/dd-drag.js", 876); -this.nodeXY = this.lastXY = this.realXY = this.get(NODE).getXY(); - - _yuitest_coverline("build/dd-drag/dd-drag.js", 878); -if (this.get('offsetNode')) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 879); -this.deltaXY = [(this.startXY[0] - this.nodeXY[0]), (this.startXY[1] - this.nodeXY[1])]; - } else { - _yuitest_coverline("build/dd-drag/dd-drag.js", 881); -this.deltaXY = [0, 0]; - } - }, - /** - * @private - * @method _timeoutCheck - * @description The method passed to setTimeout to determine if the clickTimeThreshold was met. - */ - _timeoutCheck: function() { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "_timeoutCheck", 889); -_yuitest_coverline("build/dd-drag/dd-drag.js", 890); -if (!this.get('lock') && !this._dragThreshMet && this._ev_md) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 891); -this._fromTimeout = this._dragThreshMet = true; - _yuitest_coverline("build/dd-drag/dd-drag.js", 892); -this.start(); - _yuitest_coverline("build/dd-drag/dd-drag.js", 893); -this._alignNode([this._ev_md.pageX, this._ev_md.pageY], true); - } - }, - /** - * @method removeHandle - * @description Remove a Selector added by addHandle - * @param {String} str The selector for the handle to be removed. - * @return {Self} - * @chainable - */ - removeHandle: function(str) { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "removeHandle", 903); -_yuitest_coverline("build/dd-drag/dd-drag.js", 904); -var key = str; - _yuitest_coverline("build/dd-drag/dd-drag.js", 905); -if (str instanceof Y.Node || str instanceof Y.NodeList) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 906); -key = str._yuid; - } - _yuitest_coverline("build/dd-drag/dd-drag.js", 908); -if (this._handles[key]) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 909); -delete this._handles[key]; - _yuitest_coverline("build/dd-drag/dd-drag.js", 910); -this.fire(EV_REMOVE_HANDLE, { handle: str }); - } - _yuitest_coverline("build/dd-drag/dd-drag.js", 912); -return this; - }, - /** - * @method addHandle - * @description Add a handle to a drag element. Drag only initiates when a mousedown happens on this element. - * @param {String} str The selector to test for a valid handle. Must be a child of the element. - * @return {Self} - * @chainable - */ - addHandle: function(str) { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "addHandle", 921); -_yuitest_coverline("build/dd-drag/dd-drag.js", 922); -if (!this._handles) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 923); -this._handles = {}; - } - _yuitest_coverline("build/dd-drag/dd-drag.js", 925); -var key = str; - _yuitest_coverline("build/dd-drag/dd-drag.js", 926); -if (str instanceof Y.Node || str instanceof Y.NodeList) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 927); -key = str._yuid; - } - _yuitest_coverline("build/dd-drag/dd-drag.js", 929); -this._handles[key] = str; - _yuitest_coverline("build/dd-drag/dd-drag.js", 930); -this.fire(EV_ADD_HANDLE, { handle: str }); - _yuitest_coverline("build/dd-drag/dd-drag.js", 931); -return this; - }, - /** - * @method removeInvalid - * @description Remove an invalid handle added by addInvalid - * @param {String} str The invalid handle to remove from the internal list. - * @return {Self} - * @chainable - */ - removeInvalid: function(str) { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "removeInvalid", 940); -_yuitest_coverline("build/dd-drag/dd-drag.js", 941); -if (this._invalids[str]) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 942); -this._invalids[str] = null; - _yuitest_coverline("build/dd-drag/dd-drag.js", 943); -delete this._invalids[str]; - _yuitest_coverline("build/dd-drag/dd-drag.js", 944); -this.fire(EV_REMOVE_INVALID, { handle: str }); - } - _yuitest_coverline("build/dd-drag/dd-drag.js", 946); -return this; - }, - /** - * @method addInvalid - * @description Add a selector string to test the handle against. If the test passes the drag operation will not continue. - * @param {String} str The selector to test against to determine if this is an invalid drag handle. - * @return {Self} - * @chainable - */ - addInvalid: function(str) { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "addInvalid", 955); -_yuitest_coverline("build/dd-drag/dd-drag.js", 956); -if (Y.Lang.isString(str)) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 957); -this._invalids[str] = true; - _yuitest_coverline("build/dd-drag/dd-drag.js", 958); -this.fire(EV_ADD_INVALID, { handle: str }); - } - _yuitest_coverline("build/dd-drag/dd-drag.js", 960); -return this; - }, - /** - * @private - * @method initializer - * @description Internal init handler - */ - initializer: function(cfg) { - - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "initializer", 967); -_yuitest_coverline("build/dd-drag/dd-drag.js", 969); -this.get(NODE).dd = this; - - _yuitest_coverline("build/dd-drag/dd-drag.js", 971); -if (!this.get(NODE).get('id')) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 972); -var id = Y.stamp(this.get(NODE)); - _yuitest_coverline("build/dd-drag/dd-drag.js", 973); -this.get(NODE).set('id', id); - } - - _yuitest_coverline("build/dd-drag/dd-drag.js", 976); -this.actXY = []; - - _yuitest_coverline("build/dd-drag/dd-drag.js", 978); -this._invalids = Y.clone(this._invalidsDefault, true); - - _yuitest_coverline("build/dd-drag/dd-drag.js", 980); -this._createEvents(); - - _yuitest_coverline("build/dd-drag/dd-drag.js", 982); -if (!this.get(DRAG_NODE)) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 983); -this.set(DRAG_NODE, this.get(NODE)); - } - - //Fix for #2528096 - //Don't prep the DD instance until all plugins are loaded. - _yuitest_coverline("build/dd-drag/dd-drag.js", 988); -this.on('initializedChange', Y.bind(this._prep, this)); - - //Shouldn't have to do this.. - _yuitest_coverline("build/dd-drag/dd-drag.js", 991); -this.set('groups', this.get('groups')); - }, - /** - * @private - * @method _prep - * @description Attach event listners and add classname - */ - _prep: function() { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "_prep", 998); -_yuitest_coverline("build/dd-drag/dd-drag.js", 999); -this._dragThreshMet = false; - _yuitest_coverline("build/dd-drag/dd-drag.js", 1000); -var node = this.get(NODE); - _yuitest_coverline("build/dd-drag/dd-drag.js", 1001); -node.addClass(DDM.CSS_PREFIX + '-draggable'); - _yuitest_coverline("build/dd-drag/dd-drag.js", 1002); -node.on(Drag.START_EVENT, Y.bind(this._handleMouseDownEvent, this)); - _yuitest_coverline("build/dd-drag/dd-drag.js", 1003); -node.on('mouseup', Y.bind(this._handleMouseUp, this)); - _yuitest_coverline("build/dd-drag/dd-drag.js", 1004); -node.on('dragstart', Y.bind(this._fixDragStart, this)); - }, - /** - * @private - * @method _unprep - * @description Detach event listeners and remove classname - */ - _unprep: function() { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "_unprep", 1011); -_yuitest_coverline("build/dd-drag/dd-drag.js", 1012); -var node = this.get(NODE); - _yuitest_coverline("build/dd-drag/dd-drag.js", 1013); -node.removeClass(DDM.CSS_PREFIX + '-draggable'); - _yuitest_coverline("build/dd-drag/dd-drag.js", 1014); -node.detachAll('mouseup'); - _yuitest_coverline("build/dd-drag/dd-drag.js", 1015); -node.detachAll('dragstart'); - _yuitest_coverline("build/dd-drag/dd-drag.js", 1016); -node.detachAll(Drag.START_EVENT); - _yuitest_coverline("build/dd-drag/dd-drag.js", 1017); -this.mouseXY = []; - _yuitest_coverline("build/dd-drag/dd-drag.js", 1018); -this.deltaXY = [0,0]; - _yuitest_coverline("build/dd-drag/dd-drag.js", 1019); -this.startXY = []; - _yuitest_coverline("build/dd-drag/dd-drag.js", 1020); -this.nodeXY = []; - _yuitest_coverline("build/dd-drag/dd-drag.js", 1021); -this.lastXY = []; - _yuitest_coverline("build/dd-drag/dd-drag.js", 1022); -this.actXY = []; - _yuitest_coverline("build/dd-drag/dd-drag.js", 1023); -this.realXY = []; - }, - /** - * @method start - * @description Starts the drag operation - * @return {Self} - * @chainable - */ - start: function() { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "start", 1031); -_yuitest_coverline("build/dd-drag/dd-drag.js", 1032); -if (!this.get('lock') && !this.get(DRAGGING)) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 1033); -var node = this.get(NODE), ow, oh, xy; - _yuitest_coverline("build/dd-drag/dd-drag.js", 1034); -this._startTime = (new Date()).getTime(); - - _yuitest_coverline("build/dd-drag/dd-drag.js", 1036); -DDM._start(); - _yuitest_coverline("build/dd-drag/dd-drag.js", 1037); -node.addClass(DDM.CSS_PREFIX + '-dragging'); - _yuitest_coverline("build/dd-drag/dd-drag.js", 1038); -this.fire(EV_START, { - pageX: this.nodeXY[0], - pageY: this.nodeXY[1], - startTime: this._startTime - }); - _yuitest_coverline("build/dd-drag/dd-drag.js", 1043); -node = this.get(DRAG_NODE); - _yuitest_coverline("build/dd-drag/dd-drag.js", 1044); -xy = this.nodeXY; - - _yuitest_coverline("build/dd-drag/dd-drag.js", 1046); -ow = node.get(OFFSET_WIDTH); - _yuitest_coverline("build/dd-drag/dd-drag.js", 1047); -oh = node.get(OFFSET_HEIGHT); - - _yuitest_coverline("build/dd-drag/dd-drag.js", 1049); -if (this.get('startCentered')) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 1050); -this._setStartPosition([xy[0] + (ow / 2), xy[1] + (oh / 2)]); - } - - - _yuitest_coverline("build/dd-drag/dd-drag.js", 1054); -this.region = { - '0': xy[0], - '1': xy[1], - area: 0, - top: xy[1], - right: xy[0] + ow, - bottom: xy[1] + oh, - left: xy[0] - }; - _yuitest_coverline("build/dd-drag/dd-drag.js", 1063); -this.set(DRAGGING, true); - } - _yuitest_coverline("build/dd-drag/dd-drag.js", 1065); -return this; - }, - /** - * @method end - * @description Ends the drag operation - * @return {Self} - * @chainable - */ - end: function() { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "end", 1073); -_yuitest_coverline("build/dd-drag/dd-drag.js", 1074); -this._endTime = (new Date()).getTime(); - _yuitest_coverline("build/dd-drag/dd-drag.js", 1075); -if (this._clickTimeout) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 1076); -this._clickTimeout.cancel(); - } - _yuitest_coverline("build/dd-drag/dd-drag.js", 1078); -this._dragThreshMet = this._fromTimeout = false; - - _yuitest_coverline("build/dd-drag/dd-drag.js", 1080); -if (!this.get('lock') && this.get(DRAGGING)) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 1081); -this.fire(EV_END, { - pageX: this.lastXY[0], - pageY: this.lastXY[1], - startTime: this._startTime, - endTime: this._endTime - }); - } - _yuitest_coverline("build/dd-drag/dd-drag.js", 1088); -this.get(NODE).removeClass(DDM.CSS_PREFIX + '-dragging'); - _yuitest_coverline("build/dd-drag/dd-drag.js", 1089); -this.set(DRAGGING, false); - _yuitest_coverline("build/dd-drag/dd-drag.js", 1090); -this.deltaXY = [0, 0]; - - _yuitest_coverline("build/dd-drag/dd-drag.js", 1092); -return this; - }, - /** - * @private - * @method _defEndFn - * @description Handler for fixing the selection in IE - */ - _defEndFn: function(e) { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "_defEndFn", 1099); -_yuitest_coverline("build/dd-drag/dd-drag.js", 1100); -this._fixIEMouseUp(); - _yuitest_coverline("build/dd-drag/dd-drag.js", 1101); -this._ev_md = null; - }, - /** - * @private - * @method _prevEndFn - * @description Handler for preventing the drag:end event. It will reset the node back to it's start position - */ - _prevEndFn: function(e) { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "_prevEndFn", 1108); -_yuitest_coverline("build/dd-drag/dd-drag.js", 1109); -this._fixIEMouseUp(); - //Bug #1852577 - _yuitest_coverline("build/dd-drag/dd-drag.js", 1111); -this.get(DRAG_NODE).setXY(this.nodeXY); - _yuitest_coverline("build/dd-drag/dd-drag.js", 1112); -this._ev_md = null; - _yuitest_coverline("build/dd-drag/dd-drag.js", 1113); -this.region = null; - }, - /** - * @private - * @method _align - * @description Calculates the offsets and set's the XY that the element will move to. - * @param {Array} xy The xy coords to align with. - */ - _align: function(xy) { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "_align", 1121); -_yuitest_coverline("build/dd-drag/dd-drag.js", 1122); -this.fire(EV_ALIGN, {pageX: xy[0], pageY: xy[1] }); - }, - /** - * @private - * @method _defAlignFn - * @description Calculates the offsets and set's the XY that the element will move to. - * @param {EventFacade} e The drag:align event. - */ - _defAlignFn: function(e) { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "_defAlignFn", 1130); -_yuitest_coverline("build/dd-drag/dd-drag.js", 1131); -this.actXY = [e.pageX - this.deltaXY[0], e.pageY - this.deltaXY[1]]; - }, - /** - * @private - * @method _alignNode - * @description This method performs the alignment before the element move. - * @param {Array} eXY The XY to move the element to, usually comes from the mousemove DOM event. - */ - _alignNode: function(eXY, scroll) { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "_alignNode", 1139); -_yuitest_coverline("build/dd-drag/dd-drag.js", 1140); -this._align(eXY); - _yuitest_coverline("build/dd-drag/dd-drag.js", 1141); -if (!scroll) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 1142); -this._moveNode(); - } - }, - /** - * @private - * @method _moveNode - * @description This method performs the actual element move. - */ - _moveNode: function(scroll) { - //if (!this.get(DRAGGING)) { - // return; - //} - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "_moveNode", 1150); -_yuitest_coverline("build/dd-drag/dd-drag.js", 1154); -var diffXY = [], diffXY2 = [], startXY = this.nodeXY, xy = this.actXY; - - _yuitest_coverline("build/dd-drag/dd-drag.js", 1156); -diffXY[0] = (xy[0] - this.lastXY[0]); - _yuitest_coverline("build/dd-drag/dd-drag.js", 1157); -diffXY[1] = (xy[1] - this.lastXY[1]); - - _yuitest_coverline("build/dd-drag/dd-drag.js", 1159); -diffXY2[0] = (xy[0] - this.nodeXY[0]); - _yuitest_coverline("build/dd-drag/dd-drag.js", 1160); -diffXY2[1] = (xy[1] - this.nodeXY[1]); - - - _yuitest_coverline("build/dd-drag/dd-drag.js", 1163); -this.region = { - '0': xy[0], - '1': xy[1], - area: 0, - top: xy[1], - right: xy[0] + this.get(DRAG_NODE).get(OFFSET_WIDTH), - bottom: xy[1] + this.get(DRAG_NODE).get(OFFSET_HEIGHT), - left: xy[0] - }; - - _yuitest_coverline("build/dd-drag/dd-drag.js", 1173); -this.fire(EV_DRAG, { - pageX: xy[0], - pageY: xy[1], - scroll: scroll, - info: { - start: startXY, - xy: xy, - delta: diffXY, - offset: diffXY2 - } - }); - - _yuitest_coverline("build/dd-drag/dd-drag.js", 1185); -this.lastXY = xy; - }, - /** - * @private - * @method _defDragFn - * @description Default function for drag:drag. Fired from _moveNode. - * @param {EventFacade} ev The drag:drag event - */ - _defDragFn: function(e) { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "_defDragFn", 1193); -_yuitest_coverline("build/dd-drag/dd-drag.js", 1194); -if (this.get('move')) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 1195); -if (e.scroll && e.scroll.node) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 1196); -e.scroll.node.set('scrollTop', e.scroll.top); - _yuitest_coverline("build/dd-drag/dd-drag.js", 1197); -e.scroll.node.set('scrollLeft', e.scroll.left); - } - _yuitest_coverline("build/dd-drag/dd-drag.js", 1199); -this.get(DRAG_NODE).setXY([e.pageX, e.pageY]); - _yuitest_coverline("build/dd-drag/dd-drag.js", 1200); -this.realXY = [e.pageX, e.pageY]; - } - }, - /** - * @private - * @method _move - * @description Fired from DragDropMgr (DDM) on mousemove. - * @param {EventFacade} ev The mousemove DOM event - */ - _move: function(ev) { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "_move", 1209); -_yuitest_coverline("build/dd-drag/dd-drag.js", 1210); -if (this.get('lock')) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 1211); -return false; - } - - _yuitest_coverline("build/dd-drag/dd-drag.js", 1214); -this.mouseXY = [ev.pageX, ev.pageY]; - _yuitest_coverline("build/dd-drag/dd-drag.js", 1215); -if (!this._dragThreshMet) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 1216); -var diffX = Math.abs(this.startXY[0] - ev.pageX), - diffY = Math.abs(this.startXY[1] - ev.pageY); - _yuitest_coverline("build/dd-drag/dd-drag.js", 1218); -if (diffX > this.get('clickPixelThresh') || diffY > this.get('clickPixelThresh')) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 1219); -this._dragThreshMet = true; - _yuitest_coverline("build/dd-drag/dd-drag.js", 1220); -this.start(); - _yuitest_coverline("build/dd-drag/dd-drag.js", 1221); -this._alignNode([ev.pageX, ev.pageY]); - } - } else { - _yuitest_coverline("build/dd-drag/dd-drag.js", 1224); -if (this._clickTimeout) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 1225); -this._clickTimeout.cancel(); - } - _yuitest_coverline("build/dd-drag/dd-drag.js", 1227); -this._alignNode([ev.pageX, ev.pageY]); - } - }, - /** - * @method stopDrag - * @description Method will forcefully stop a drag operation. For example calling this from inside an ESC keypress handler will stop this drag. - * @return {Self} - * @chainable - */ - stopDrag: function() { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "stopDrag", 1236); -_yuitest_coverline("build/dd-drag/dd-drag.js", 1237); -if (this.get(DRAGGING)) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 1238); -DDM._end(); - } - _yuitest_coverline("build/dd-drag/dd-drag.js", 1240); -return this; - }, - /** - * @private - * @method destructor - * @description Lifecycle destructor, unreg the drag from the DDM and remove listeners - */ - destructor: function() { - _yuitest_coverfunc("build/dd-drag/dd-drag.js", "destructor", 1247); -_yuitest_coverline("build/dd-drag/dd-drag.js", 1248); -this._unprep(); - _yuitest_coverline("build/dd-drag/dd-drag.js", 1249); -if (this.target) { - _yuitest_coverline("build/dd-drag/dd-drag.js", 1250); -this.target.destroy(); - } - _yuitest_coverline("build/dd-drag/dd-drag.js", 1252); -DDM._unregDrag(this); - } - }); - _yuitest_coverline("build/dd-drag/dd-drag.js", 1255); -Y.namespace('DD'); - _yuitest_coverline("build/dd-drag/dd-drag.js", 1256); -Y.DD.Drag = Drag; - - - - -}, '3.7.2', {"requires": ["dd-ddm-base"]}); diff --git a/lib/yuilib/3.7.2/build/dd-drag/dd-drag-min.js b/lib/yuilib/3.7.2/build/dd-drag/dd-drag-min.js deleted file mode 100644 index ef2feba10fa..00000000000 --- a/lib/yuilib/3.7.2/build/dd-drag/dd-drag-min.js +++ /dev/null @@ -1,7 +0,0 @@ -/* -YUI 3.7.2 (build 5639) -Copyright 2012 Yahoo! Inc. All rights reserved. -Licensed under the BSD License. -http://yuilibrary.com/license/ -*/ -YUI.add("dd-drag",function(e,t){var n=e.DD.DDM,r="node",i="dragging",s="dragNode",o="offsetHeight",u="offsetWidth",a="drag:mouseDown",f="drag:afterMouseDown",l="drag:removeHandle",c="drag:addHandle",h="drag:removeInvalid",p="drag:addInvalid",d="drag:start",v="drag:end",m="drag:drag",g="drag:align",y=function(t){this._lazyAddAttrs=!1,y.superclass.constructor.apply(this,arguments);var r=n._regDrag(this);r||e.error("Failed to register node, already in use: "+t.node)};y.NAME="drag",y.START_EVENT="mousedown",y.ATTRS={node:{setter:function(t){if(this._canDrag(t))return t;var n=e.one(t);return n||e.error("DD.Drag: Invalid Node Given: "+t),n}},dragNode:{setter:function(t){if(this._canDrag(t))return t;var n=e.one(t);return n||e.error("DD.Drag: Invalid dragNode Given: "+t),n}},offsetNode:{value:!0},startCentered:{value:!1},clickPixelThresh:{value:n.get("clickPixelThresh")},clickTimeThresh:{value:n.get("clickTimeThresh")},lock:{value:!1,setter:function(e){return e?this.get(r).addClass(n.CSS_PREFIX+"-locked"):this.get(r).removeClass(n.CSS_PREFIX+"-locked"),e}},data:{value:!1},move:{value:!0},useShim:{value:!0},activeHandle:{value:!1},primaryButtonOnly:{value:!0},dragging:{value:!1},parent:{value:!1},target:{value:!1,setter:function(e){return this._handleTarget(e),e}},dragMode:{value:null,setter:function(e){return n._setDragMode(e)}},groups:{value:["default"],getter:function(){this._groups||(this._groups={});var t=[];return e.each(this._groups,function(e,n){t[t.length]=n}),t},setter:function(t){return this._groups={},e.each(t,function(e,t){this._groups[e]=!0},this),t}},handles:{value:null,setter:function(t){return t?(this._handles={},e.each(t,function(t,n){var r=t;if(t instanceof e.Node||t instanceof e.NodeList)r=t._yuid;this._handles[r]=t},this)):this._handles=null,t}},bubbles:{setter:function(e){return this.addTarget(e),e}},haltDown:{value:!0}},e.extend(y,e.Base,{_canDrag:function(e){return e&&e.setXY&&e.getXY&&e.test&&e.contains?!0:!1},_bubbleTargets:e.DD.DDM,addToGroup:function(e){return this._groups[e]=!0,n._activateTargets(),this},removeFromGroup:function(e){return delete this._groups[e],n._activateTargets(),this},target:null,_handleTarget:function(t){e.DD.Drop&&(t===!1?this.target&&(n._unregTarget(this.target),this.target=null):(e.Lang.isObject(t)||(t={}),t.bubbleTargets=t.bubbleTargets||e.Object.values(this._yuievt.targets),t.node=this.get(r),t.groups=t.groups||this.get("groups"),this.target=new e.DD.Drop(t)))},_groups:null,_createEvents:function(){this.publish(a,{defaultFn:this._defMouseDownFn,queuable:!1,emitFacade:!0,bubbles:!0,prefix:"drag"}),this.publish(g,{defaultFn:this._defAlignFn,queuable:!1,emitFacade:!0,bubbles:!0,prefix:"drag"}),this.publish(m,{defaultFn:this._defDragFn,queuable:!1,emitFacade:!0,bubbles:!0,prefix:"drag"}),this.publish(v,{defaultFn:this._defEndFn,preventedFn:this._prevEndFn,queuable:!1,emitFacade:!0,bubbles:!0,prefix:"drag"});var t=[f,l,c,h,p,d,"drag:drophit","drag:dropmiss","drag:over","drag:enter","drag:exit"];e.each(t,function(e,t){this.publish(e,{type:e,emitFacade:!0,bubbles:!0,preventable:!1,queuable:!1,prefix:"drag"})},this)},_ev_md:null,_startTime:null,_endTime:null,_handles:null,_invalids:null,_invalidsDefault:{textarea:!0,input:!0,a:!0,button:!0,select:!0},_dragThreshMet:null,_fromTimeout:null,_clickTimeout:null,deltaXY:null,startXY:null,nodeXY:null,lastXY:null,actXY:null,realXY:null,mouseXY:null,region:null,_handleMouseUp:function(e){this.fire("drag:mouseup"),this._fixIEMouseUp(),n.activeDrag&&n._end()},_fixDragStart:function(e){this.validClick(e)&&e.preventDefault()},_ieSelectFix:function(){return!1},_ieSelectBack:null,_fixIEMouseDown:function(t){e.UA.ie&&(this._ieSelectBack=e.config.doc.body.onselectstart,e.config.doc.body.onselectstart=this._ieSelectFix)},_fixIEMouseUp:function(){e.UA.ie&&(e.config.doc.body.onselectstart=this._ieSelectBack)},_handleMouseDownEvent:function(e){this.fire(a,{ev:e})},_defMouseDownFn:function(t){var r=t.ev;this._dragThreshMet=!1,this._ev_md=r;if(this.get("primaryButtonOnly")&&r.button>1)return!1;this.validClick(r)&&(this._fixIEMouseDown(r),this.get("haltDown")?r.halt():r.preventDefault(),this._setStartPosition([r.pageX,r.pageY]),n.activeDrag=this,this._clickTimeout=e.later(this.get("clickTimeThresh"),this,this._timeoutCheck)),this.fire(f,{ev:r})},validClick:function(t){var n=!1,i=!1,s=t.target,o=null,u=null,a=null,f=!1;if(this._handles)e.each(this._handles,function(t,r){t instanceof e.Node||t instanceof e.NodeList?n||(a=t,a instanceof e.Node&&(a=new e.NodeList(t._node)),a.each(function(e){e.contains(s)&&(n=!0)})):e.Lang.isString(r)&&s.test(r+", "+r+" *")&&!o&&(o=r,n=!0)});else{i=this.get(r);if(i.contains(s)||i.compareTo(s))n=!0}return n&&this._invalids&&e.each(this._invalids,function(t,r){e.Lang.isString(r)&&s.test(r+", "+r+" *")&&(n=!1)}),n&&(o?(u=t.currentTarget.all(o),f=!1,u.each(function(e,t){(e.contains(s)||e.compareTo(s))&&!f&&(f=!0,this.set("activeHandle",e))},this)):this.set("activeHandle",this.get(r))),n},_setStartPosition:function(e){this.startXY=e,this.nodeXY=this.lastXY=this.realXY=this.get(r).getXY(),this.get("offsetNode")?this.deltaXY=[this.startXY[0]-this.nodeXY[0],this.startXY[1]-this.nodeXY[1]]:this.deltaXY=[0,0]},_timeoutCheck:function(){!this.get("lock")&&!this._dragThreshMet&&this._ev_md&&(this._fromTimeout=this._dragThreshMet=!0,this.start(),this._alignNode([this._ev_md.pageX,this._ev_md.pageY],!0))},removeHandle:function(t){var n=t;if(t instanceof e.Node||t instanceof e.NodeList)n=t._yuid;return this._handles[n]&&(delete this._handles[n],this.fire(l,{handle:t})),this},addHandle:function(t){this._handles||(this._handles={});var n=t;if(t instanceof e.Node||t instanceof e.NodeList)n=t._yuid;return this._handles[n]=t,this.fire(c,{handle:t}),this},removeInvalid:function(e){return this._invalids[e]&&(this._invalids[e]=null,delete this._invalids[e],this.fire(h,{handle:e})),this},addInvalid:function(t){return e.Lang.isString(t)&&(this._invalids[t]=!0,this.fire(p,{handle:t})),this},initializer:function(t){this.get(r).dd=this;if(!this.get(r).get("id")){var n=e.stamp(this.get(r));this.get(r).set("id",n)}this.actXY=[],this._invalids=e.clone(this._invalidsDefault,!0),this._createEvents(),this.get(s)||this.set(s,this.get(r)),this.on("initializedChange",e.bind(this._prep,this)),this.set("groups",this.get("groups"))},_prep:function(){this._dragThreshMet=!1;var t=this.get(r);t.addClass(n.CSS_PREFIX+"-draggable"),t.on(y.START_EVENT,e.bind(this._handleMouseDownEvent,this)),t.on("mouseup",e.bind(this._handleMouseUp,this)),t.on("dragstart",e.bind(this._fixDragStart,this))},_unprep:function(){var e=this.get(r);e.removeClass(n.CSS_PREFIX+"-draggable"),e.detachAll("mouseup"),e.detachAll("dragstart"),e.detachAll(y.START_EVENT),this.mouseXY=[],this.deltaXY=[0,0],this.startXY=[],this.nodeXY=[],this.lastXY=[],this.actXY=[],this.realXY=[]},start:function(){if(!this.get("lock")&&!this.get(i)){var e=this.get(r),t,a,f;this._startTime=(new Date).getTime(),n._start(),e.addClass(n.CSS_PREFIX+"-dragging"),this.fire(d,{pageX:this.nodeXY[0],pageY:this.nodeXY[1],startTime:this._startTime}),e=this.get(s),f=this.nodeXY,t=e.get(u),a=e.get(o),this.get("startCentered")&&this._setStartPosition([f[0]+t/2,f[1]+a/2]),this.region={0:f[0],1:f[1],area:0,top:f[1],right:f[0]+t,bottom:f[1]+a,left:f[0]},this.set(i,!0)}return this},end:function(){return this._endTime=(new Date).getTime(),this._clickTimeout&&this._clickTimeout.cancel(),this._dragThreshMet=this._fromTimeout=!1,!this.get("lock")&&this.get(i)&&this.fire(v,{pageX:this.lastXY[0],pageY:this.lastXY[1],startTime:this._startTime,endTime:this._endTime}),this.get(r).removeClass(n.CSS_PREFIX+"-dragging"),this.set(i,!1),this.deltaXY=[0,0],this},_defEndFn:function(e){this._fixIEMouseUp(),this._ev_md=null},_prevEndFn:function(e){this._fixIEMouseUp(),this.get(s).setXY(this.nodeXY),this._ev_md=null,this.region=null},_align:function(e){this.fire(g,{pageX:e[0],pageY:e[1]})},_defAlignFn:function(e){this.actXY=[e.pageX-this.deltaXY[0],e.pageY-this.deltaXY[1]]},_alignNode:function(e,t){this._align(e),t||this._moveNode()},_moveNode:function(e){var t=[],n=[],r=this.nodeXY,i=this.actXY;t[0]=i[0]-this.lastXY[0],t[1]=i[1]-this.lastXY[1],n[0]=i[0]-this.nodeXY[0],n[1]=i[1]-this.nodeXY[1],this.region={0:i[0],1:i[1],area:0,top:i[1],right:i[0]+this.get(s).get(u),bottom:i[1]+this.get(s).get(o),left:i[0]},this.fire(m,{pageX:i[0],pageY:i[1],scroll:e,info:{start:r,xy:i,delta:t,offset:n}}),this.lastXY=i},_defDragFn:function(e){this.get("move")&&(e.scroll&&e.scroll.node&&(e.scroll.node.set("scrollTop",e.scroll.top),e.scroll.node.set("scrollLeft",e.scroll.left)),this.get(s).setXY([e.pageX,e.pageY]),this.realXY=[e.pageX,e.pageY])},_move:function(e){if(this.get("lock"))return!1;this.mouseXY=[e.pageX,e.pageY];if(!this._dragThreshMet){var t=Math.abs(this.startXY[0]-e.pageX),n=Math.abs(this.startXY[1]-e.pageY);if(t>this.get("clickPixelThresh")||n>this.get("clickPixelThresh"))this._dragThreshMet=!0,this.start(),this._alignNode([e.pageX,e.pageY])}else this._clickTimeout&&this._clickTimeout.cancel(),this._alignNode([e.pageX,e.pageY])},stopDrag:function(){return this.get(i)&&n._end(),this},destructor:function(){this._unprep(),this.target&&this.target.destroy(),n._unregDrag(this)}}),e.namespace("DD"),e.DD.Drag=y},"3.7.2",{requires:["dd-ddm-base"]}); diff --git a/lib/yuilib/3.7.2/build/dd-drop/dd-drop-min.js b/lib/yuilib/3.7.2/build/dd-drop/dd-drop-min.js deleted file mode 100644 index c9d10c8756f..00000000000 --- a/lib/yuilib/3.7.2/build/dd-drop/dd-drop-min.js +++ /dev/null @@ -1,7 +0,0 @@ -/* -YUI 3.7.2 (build 5639) -Copyright 2012 Yahoo! Inc. All rights reserved. -Licensed under the BSD License. -http://yuilibrary.com/license/ -*/ -YUI.add("dd-drop",function(e,t){var n="node",r=e.DD.DDM,i="offsetHeight",s="offsetWidth",o="drop:over",u="drop:enter",a="drop:exit",f=function(){this._lazyAddAttrs=!1,f.superclass.constructor.apply(this,arguments),e.on("domready",e.bind(function(){e.later(100,this,this._createShim)},this)),r._regTarget(this)};f.NAME="drop",f.ATTRS={node:{setter:function(t){var n=e.one(t);return n||e.error("DD.Drop: Invalid Node Given: "+t),n}},groups:{value:["default"],getter:function(){this._groups||(this._groups={});var t=[];return e.each(this._groups,function(e,n){t[t.length]=n}),t},setter:function(t){return this._groups={},e.each(t,function(e,t){this._groups[e]=!0},this),t}},padding:{value:"0",setter:function(e){return r.cssSizestoObject(e)}},lock:{value:!1,setter:function(e){return e?this.get(n).addClass(r.CSS_PREFIX+"-drop-locked"):this.get(n).removeClass(r.CSS_PREFIX+"-drop-locked"),e}},bubbles:{setter:function(e){return this.addTarget(e),e}},useShim:{value:!0,setter:function(t){return e.DD.DDM._noShim=!t,t}}},e.extend(f,e.Base,{_bubbleTargets:e.DD.DDM,addToGroup:function(e){return this._groups[e]=!0,this},removeFromGroup:function(e){return delete this._groups[e],this},_createEvents:function(){var t=[o,u,a,"drop:hit"];e.each(t,function(e,t){this.publish(e,{type:e,emitFacade:!0,preventable:!1,bubbles:!0,queuable:!1,prefix:"drop"})},this)},_valid:null,_groups:null,shim:null,region:null,overTarget:null,inGroup:function(t){this._valid=!1;var n=!1;return e.each(t,function(e,t){this._groups[e]&&(n=!0,this._valid=!0)},this),n},initializer:function(t){e.later(100,this,this._createEvents);var i=this.get(n),s;i.get("id")||(s=e.stamp(i),i.set("id",s)),i.addClass(r.CSS_PREFIX+"-drop"),this.set("groups",this.get("groups"))},destructor:function(){r._unregTarget(this),this.shim&&this.shim!==this.get(n)&&(this.shim.detachAll(),this.shim.remove(),this.shim=null),this.get(n).removeClass(r.CSS_PREFIX+"-drop"),this.detachAll()},_deactivateShim:function(){if(!this.shim)return!1;this.get(n).removeClass(r.CSS_PREFIX+"-drop-active-valid"),this.get(n).removeClass(r.CSS_PREFIX+"-drop-active-invalid"),this.get(n).removeClass(r.CSS_PREFIX+"-drop-over"),this.get("useShim")&&this.shim.setStyles({top:"-999px",left:"-999px",zIndex:"1"}),this.overTarget=!1},_activateShim:function(){if(!r.activeDrag)return!1;if(this.get(n)===r.activeDrag.get(n))return!1;if(this.get("lock"))return!1;var e=this.get(n);this.inGroup(r.activeDrag.get("groups"))?(e.removeClass(r.CSS_PREFIX+"-drop-active-invalid"),e.addClass(r.CSS_PREFIX+"-drop-active-valid"),r._addValid(this),this.overTarget=!1,this.get("useShim")||(this.shim=this.get(n)),this.sizeShim()):(r._removeValid(this),e.removeClass(r.CSS_PREFIX+"-drop-active-valid"),e.addClass(r.CSS_PREFIX+"-drop-active-invalid"))},sizeShim:function(){if(!r.activeDrag)return!1;if(this.get(n)===r.activeDrag.get(n))return!1;if(this.get("lock"))return!1;if(!this.shim)return e.later(100,this,this.sizeShim),!1;var t=this.get(n),o=t.get(i),u=t.get(s),a=t.getXY(),f=this.get("padding"),l,c,h;u=u+f.left+f.right,o=o+f.top+f.bottom,a[0]=a[0]-f.left,a[1]=a[1]-f.top,r.activeDrag.get("dragMode")===r.INTERSECT&&(l=r.activeDrag,c=l.get(n).get(i),h=l.get(n).get(s),o+=c,u+=h,a[0]=a[0]-(h-l.deltaXY[0]),a[1]=a[1]-(c-l.deltaXY[1])),this.get("useShim")&&this.shim.setStyles({height:o+"px",width:u+"px",top:a[1]+"px",left:a[0]+"px"}),this.region={0:a[0],1:a[1],area:0,top:a[1],right:a[0]+u,bottom:a[1]+o,left:a[0]}},_createShim:function(){if(!r._pg){e.later(10,this,this._createShim);return}if(this.shim)return;var t=this.get("node");this.get("useShim")&&(t=e.Node.create('
'),t.setStyles({height:this.get(n).get(i)+"px",width:this.get(n).get(s)+"px",backgroundColor:"yellow",opacity:".5",zIndex:"1",overflow:"hidden",top:"-900px",left:"-900px",position:"absolute"}),r._pg.appendChild(t),t.on("mouseover",e.bind(this._handleOverEvent,this)),t.on("mouseout",e.bind(this._handleOutEvent,this))),this.shim=t},_handleTargetOver:function(){r.isOverTarget(this)?(this.get(n).addClass(r.CSS_PREFIX+"-drop-over"),r.activeDrop=this,r.otherDrops[this]=this,this.overTarget?(r.activeDrag.fire("drag:over",{drop:this,drag:r.activeDrag}),this.fire(o,{drop:this,drag:r.activeDrag})):r.activeDrag.get("dragging")&&(this.overTarget=!0,this.fire(u,{drop:this,drag:r.activeDrag}),r.activeDrag.fire("drag:enter",{drop:this,drag:r.activeDrag}),r.activeDrag.get(n).addClass(r.CSS_PREFIX+"-drag-over"))):this._handleOut()},_handleOverEvent:function(){this.shim.setStyle("zIndex","999"),r._addActiveShim(this)},_handleOutEvent:function(){this.shim.setStyle("zIndex","1"),r._removeActiveShim(this)},_handleOut:function(e){(!r.isOverTarget(this)||e)&&this.overTarget&&(this.overTarget=!1,e||r._removeActiveShim(this),r.activeDrag&&(this.get(n).removeClass(r.CSS_PREFIX+"-drop-over"),r.activeDrag.get(n).removeClass(r.CSS_PREFIX+"-drag-over"),this.fire(a,{drop:this,drag:r.activeDrag}),r.activeDrag.fire("drag:exit",{drop:this,drag:r.activeDrag}),delete r.otherDrops[this]))}}),e.DD.Drop=f},"3.7.2",{requires:["dd-drag","dd-ddm-drop"]}); diff --git a/lib/yuilib/3.7.2/build/dd-gestures/dd-gestures-min.js b/lib/yuilib/3.7.2/build/dd-gestures/dd-gestures-min.js deleted file mode 100644 index 5abdb22e0d5..00000000000 --- a/lib/yuilib/3.7.2/build/dd-gestures/dd-gestures-min.js +++ /dev/null @@ -1,7 +0,0 @@ -/* -YUI 3.7.2 (build 5639) -Copyright 2012 Yahoo! Inc. All rights reserved. -Licensed under the BSD License. -http://yuilibrary.com/license/ -*/ -YUI.add("dd-gestures",function(e,t){e.DD.Drag.START_EVENT="gesturemovestart",e.DD.Drag.prototype._prep=function(){this._dragThreshMet=!1;var t=this.get("node"),n=e.DD.DDM;t.addClass(n.CSS_PREFIX+"-draggable"),t.on(e.DD.Drag.START_EVENT,e.bind(this._handleMouseDownEvent,this),{minDistance:0,minTime:0}),t.on("gesturemoveend",e.bind(this._handleMouseUp,this),{standAlone:!0}),t.on("dragstart",e.bind(this._fixDragStart,this))},e.DD.DDM._setupListeners=function(){var t=e.DD.DDM;this._createPG(),this._active=!0,e.one(e.config.doc).on("gesturemove",e.throttle(e.bind(t._move,t),t.get("throttleTime")),{standAlone:!0})}},"3.7.2",{requires:["dd-drag","event-synthetic","event-gestures"]}); diff --git a/lib/yuilib/3.7.2/build/dd-proxy/dd-proxy-min.js b/lib/yuilib/3.7.2/build/dd-proxy/dd-proxy-min.js deleted file mode 100644 index 73825c0ebd1..00000000000 --- a/lib/yuilib/3.7.2/build/dd-proxy/dd-proxy-min.js +++ /dev/null @@ -1,7 +0,0 @@ -/* -YUI 3.7.2 (build 5639) -Copyright 2012 Yahoo! Inc. All rights reserved. -Licensed under the BSD License. -http://yuilibrary.com/license/ -*/ -YUI.add("dd-proxy",function(e,t){var n=e.DD.DDM,r="node",i="dragNode",s="host",o=!0,u,a=function(e){a.superclass.constructor.apply(this,arguments)};a.NAME="DDProxy",a.NS="proxy",a.ATTRS={host:{},moveOnEnd:{value:o},hideOnEnd:{value:o},resizeFrame:{value:o},positionProxy:{value:o},borderStyle:{value:"1px solid #808080"},cloneNode:{value:!1}},u={_hands:null,_init:function(){if(!n._proxy){n._createFrame(),e.on("domready",e.bind(this._init,this));return}this._hands||(this._hands=[]);var t,o,u=this.get(s),a=u.get(i);a.compareTo(u.get(r))&&n._proxy&&u.set(i,n._proxy),e.each(this._hands,function(e){e.detach()}),t=n.on("ddm:start",e.bind(function(){n.activeDrag===u&&n._setFrame(u)},this)),o=n.on("ddm:end",e.bind(function(){u.get("dragging")&&(this.get("moveOnEnd")&&u.get(r).setXY(u.lastXY),this.get("hideOnEnd")&&u.get(i).setStyle("display","none"),this.get("cloneNode")&&(u.get(i).remove(),u.set(i,n._proxy)))},this)),this._hands=[t,o]},initializer:function(){this._init()},destructor:function(){var t=this.get(s);e.each(this._hands,function(e){e.detach()}),t.set(i,t.get(r))},clone:function(){var t=this.get(s),n=t.get(r),o=n.cloneNode(!0);return delete o._yuid,o.setAttribute("id",e.guid()),o.setStyle("position","absolute"),n.get("parentNode").appendChild(o),t.set(i,o),o}},e.namespace("Plugin"),e.extend(a,e.Base,u),e.Plugin.DDProxy=a,e.mix(n,{_createFrame:function(){if(!n._proxy){n._proxy=o;var t=e.Node.create("
"),r=e.one("body");t.setStyles({position:"absolute",display:"none",zIndex:"999",top:"-999px",left:"-999px"}),r.prepend(t),t.set("id",e.guid()),t.addClass(n.CSS_PREFIX+"-proxy"),n._proxy=t}},_setFrame:function(e){var t=e.get(r),s=e.get(i),o,u="auto";o=n.activeDrag.get("activeHandle"),o&&(u=o.getStyle("cursor")),u=="auto"&&(u=n.get("dragCursor")),s.setStyles({visibility:"hidden",display:"block",cursor:u,border:e.proxy.get("borderStyle")}),e.proxy.get("cloneNode")&&(s=e.proxy.clone()),e.proxy.get("resizeFrame")&&s.setStyles({height:t.get("offsetHeight")+"px",width:t.get("offsetWidth")+"px"}),e.proxy.get("positionProxy")&&s.setXY(e.nodeXY),s.setStyle("visibility","visible")}})},"3.7.2",{requires:["dd-drag"]}); diff --git a/lib/yuilib/3.7.2/build/dial/dial-coverage.js b/lib/yuilib/3.7.2/build/dial/dial-coverage.js deleted file mode 100644 index 2bedbcbcc8c..00000000000 --- a/lib/yuilib/3.7.2/build/dial/dial-coverage.js +++ /dev/null @@ -1,1666 +0,0 @@ -/* -YUI 3.7.2 (build 5639) -Copyright 2012 Yahoo! Inc. All rights reserved. -Licensed under the BSD License. -http://yuilibrary.com/license/ -*/ -if (typeof _yuitest_coverage == "undefined"){ - _yuitest_coverage = {}; - _yuitest_coverline = function(src, line){ - var coverage = _yuitest_coverage[src]; - if (!coverage.lines[line]){ - coverage.calledLines++; - } - coverage.lines[line]++; - }; - _yuitest_coverfunc = function(src, name, line){ - var coverage = _yuitest_coverage[src], - funcId = name + ":" + line; - if (!coverage.functions[funcId]){ - coverage.calledFunctions++; - } - coverage.functions[funcId]++; - }; -} -_yuitest_coverage["build/dial/dial.js"] = { - lines: {}, - functions: {}, - coveredLines: 0, - calledLines: 0, - coveredFunctions: 0, - calledFunctions: 0, - path: "build/dial/dial.js", - code: [] -}; -_yuitest_coverage["build/dial/dial.js"].code=["YUI.add('dial', function (Y, NAME) {","","/**"," * Create a circular dial value range input visualized as a draggable handle on a"," * background element."," * "," * @module dial"," */"," var supportsVML = false;"," //testVMLNode;",""," if (Y.UA.ie && Y.UA.ie < 9){"," supportsVML = true;"," }",""," var Lang = Y.Lang,"," Widget = Y.Widget,"," Node = Y.Node;",""," /**"," * Create a dial to represent an input control capable of representing a"," * series of intermediate states based on the position of the Dial's handle."," * These states are typically aligned to a value algorithm whereby the angle of the handle's"," * position corresponds to a given value."," *"," * @class Dial"," * @extends Widget"," * @param config {Object} Configuration object"," * @constructor"," */"," function Dial(config) {"," Dial.superclass.constructor.apply(this, arguments);"," }",""," // Y.Dial static properties",""," /**"," * The identity of the widget."," *"," * @property NAME"," * @type String"," * @default 'dial'"," * @readOnly"," * @protected"," * @static"," */"," Dial.NAME = \"dial\";",""," /**"," * Static property used to define the default attribute configuration of"," * the Widget."," *"," * @property ATTRS"," * @type {Object}"," * @protected"," * @static"," */"," Dial.ATTRS = {",""," /**"," * minimum value allowed"," *"," * @attribute min"," * @type {Number}"," * @default -220"," */"," min : {"," value:-220"," },",""," /**"," * maximum value allowed"," *"," * @attribute max"," * @type {Number}"," * @default 220"," */"," max : {"," value:220"," },",""," /**"," * diameter of the circular background object."," * Other objects scale accordingly."," * Set this only before rendering."," *"," * @attribute diameter"," * @type {Number} the number of px in diameter"," * @default 100"," * @writeOnce"," */"," diameter : {"," value:100"," },",""," /**"," * diameter of the handle object which users drag to change the value."," * Dial sets the pixel dimension of the handle equal to handleDiameter * diameter."," * Set this only before rendering."," *"," * @attribute handleDiameter"," * @type {Number}"," * @default 0.2"," * @writeOnce"," */"," handleDiameter : {"," value:0.2"," },",""," /**"," * diameter of the marker object which follows the angle of the handle during value changes."," * Dial sets the pixel dimension of the marker equal to markerDiameter * diameter."," * Set this only before rendering."," *"," * @attribute markerDiameter"," * @type {Number}"," * @default 0.1"," * @writeOnce"," */"," markerDiameter : {"," value:0.1"," },",""," /**"," * diameter of the center button object."," * Dial sets the pixel dimension of the centerButton equal to centerButtonDiameter * diameter."," * Set this only before rendering."," *"," * @attribute centerButtonDiameter"," * @type {Number}"," * @default 0.1"," * @writeOnce"," */"," centerButtonDiameter : {"," value:0.5"," },",""," /**"," * initial value of the Dial"," *"," * @attribute value"," * @type {Number}"," * @default 0"," */"," value : {"," value:0,"," validator: function(val) {"," return this._validateValue(val);"," }"," },"," "," /**"," * amount to increment/decrement the dial value"," * when the arrow up/down/left/right keys are pressed"," *"," * @attribute minorStep"," * @type {Number}"," * @default 1"," */"," minorStep : {"," value:1"," },",""," /**"," * amount to increment/decrement the dial value"," * when the page up/down keys are pressed"," *"," * @attribute majorStep"," * @type {Number}"," * @default 10"," */"," majorStep : {"," value:10"," },",""," /**"," * number of value increments in one 360 degree revolution "," * of the handle around the dial"," *"," * @attribute stepsPerRevolution"," * @type {Number}"," * @default 100"," */"," stepsPerRevolution : {"," value:100"," },",""," /**"," * number of decimal places of accuracy in the value "," *"," * @attribute decimalPlaces"," * @type {Number}"," * @default 0"," */"," decimalPlaces : {"," value:0"," },",""," /**"," * visible strings for the dial UI. This attribute is "," * defined by the base Widget class but has an empty value. The"," * Dial is simply providing a default value for the attribute."," * Gets localized strings in the current language"," *"," * @attribute strings"," * @type {Object} the values are HTML strings"," * @default {label: 'My label', resetStr: 'Reset', tooltipHandle: 'Drag to set value'}"," */"," strings: {"," valueFn: function () {"," return Y.Intl.get('dial');"," }"," },",""," /**"," * distance from the center of the dial to the "," * center of the marker and handle, when at rest. "," * The value is a percent of the radius of the dial."," *"," * @attribute handleDistance"," * @type {number}"," * @default 0.75"," */"," handleDistance:{"," value:0.75"," }"," "," };",""," /**"," * returns a properly formed yui class name"," *"," * @method"," * @param {String} string to be appended at the end of class name"," * @return"," * @private"," */"," function makeClassName(str) {"," return Y.ClassNameManager.getClassName(Dial.NAME, str);"," }"," "," /** array of static constants used to identify the classname applied to the Dial DOM objects "," *"," * @property CSS_CLASSES"," * @type {Array}"," * @private"," * @static"," */"," Dial.CSS_CLASSES = {"," label : makeClassName(\"label\"),"," labelString : makeClassName(\"label-string\"),"," valueString : makeClassName(\"value-string\"),"," northMark : makeClassName(\"north-mark\"),"," ring : makeClassName('ring'),"," ringVml : makeClassName('ring-vml'),"," marker : makeClassName(\"marker\"),"," markerVml : makeClassName(\"marker-vml\"),"," markerMaxMin : makeClassName(\"marker-max-min\"),"," centerButton : makeClassName(\"center-button\"),"," centerButtonVml : makeClassName('center-button-vml'),"," resetString : makeClassName(\"reset-string\"),"," handle : makeClassName(\"handle\"),"," handleVml : makeClassName(\"handle-vml\"),"," hidden : makeClassName(\"hidden\"),"," dragging : Y.ClassNameManager.getClassName(\"dd-dragging\")"," };"," "," /* Static constants used to define the markup templates used to create Dial DOM elements */"," ",""," /**"," * template that will contain the Dial's label."," *"," * @property LABEL_TEMPLATE"," * @type {HTML}"," * @default <div class=\"[...-label]\"><span id=\"\" class=\"[...-label-string]\">{label}</span><span class=\"[...-value-string]\"></span></div>"," * @protected"," */",""," Dial.LABEL_TEMPLATE = '
{label}
';",""," if(supportsVML === false){"," /**"," * template that will contain the Dial's background ring."," *"," * @property RING_TEMPLATE"," * @type {HTML}"," * @default <div class=\"[...-ring]\"><div class=\"[...-northMark]\"></div></div>"," * @protected"," */"," Dial.RING_TEMPLATE = '
';",""," /**"," * template that will contain the Dial's current angle marker."," *"," * @property MARKER_TEMPLATE"," * @type {HTML}"," * @default <div class=\"[...-marker] [...-marker-hidden]\"><div class=\"[...-markerUser]\"></div></div>"," * @protected"," */"," Dial.MARKER_TEMPLATE = '
';",""," /**"," * template that will contain the Dial's center button."," *"," * @property CENTER_BUTTON_TEMPLATE"," * @type {HTML}"," * @default <div class=\"[...-centerButton]\"><div class=\"[...-resetString]\">' + Y.Lang.sub('{resetStr}', Dial.ATTRS.strings.value) + '</div></div>"," * @protected"," */"," Dial.CENTER_BUTTON_TEMPLATE = '
{resetStr}
';",""," /**"," * template that will contain the Dial's handle."," *"," * @property HANDLE_TEMPLATE"," * @type {HTML}"," * @default <div class=\"[...-handle]\"><div class=\"[...-handleUser]\" aria-labelledby=\"\" aria-valuetext=\"\" aria-valuemax=\"\" aria-valuemin=\"\" aria-valuenow=\"\" role=\"slider\" tabindex=\"0\"></div></div>';// title=\"{tooltipHandle}\""," * @protected"," */"," Dial.HANDLE_TEMPLATE = '
';"," "," }else{ // VML case"," Dial.RING_TEMPLATE = '
'+"," '
'+"," ''+"," '
'+"," '';"," Dial.MARKER_TEMPLATE = '
'+"," ''+"," ''+"," ''+"," '
'+"," '';"," Dial.CENTER_BUTTON_TEMPLATE = '
'+"," ''+"," ''+"," ''+"," ''+"," '
{resetStr}
'+"," '
'+"," '';"," Dial.HANDLE_TEMPLATE = '
'+"," ''+"," ''+"," ''+"," '
'+"," '';"," }",""," /* Dial extends the base Widget class */"," Y.extend(Dial, Widget, {",""," /**"," * creates the DOM structure for the Dial."," *"," * @method renderUI"," * @protected"," */"," renderUI : function() {"," this._renderLabel();"," this._renderRing();"," this._renderMarker();"," this._renderCenterButton();"," this._renderHandle();"," "," // object handles"," this.contentBox = this.get(\"contentBox\");",""," // constants"," this._originalValue = this.get('value');"," this._minValue = this.get('min'); // saves doing a .get many times, but we need to remember to update this if/when we allow changing min or max after instantiation"," this._maxValue = this.get('max');"," this._stepsPerRevolution = this.get('stepsPerRevolution');"," this._minTimesWrapped = (Math.floor(this._minValue / this._stepsPerRevolution - 1));"," this._maxTimesWrapped = (Math.floor(this._maxValue / this._stepsPerRevolution + 1));",""," // variables"," this._timesWrapped = 0;"," this._angle = this._getAngleFromValue(this.get('value'));"," this._prevAng = this._angle;"," "," // init"," this._setTimesWrappedFromValue(this._originalValue);"," this._handleNode.set('aria-valuemin', this._minValue);"," this._handleNode.set('aria-valuemax', this._maxValue);"," },",""," /**"," * Sets -webkit-border-radius to 50% of width/height of the ring, handle, marker, and center-button."," * This is needed for iOS 3.x."," * The objects render square if the radius is > 50% of the width/height"," * @method _setBorderRadius"," * @private"," */"," _setBorderRadius : function(){"," this._ringNode.setStyles({'WebkitBorderRadius':this._ringNodeRadius + 'px',"," 'MozBorderRadius':this._ringNodeRadius + 'px',"," 'borderRadius':this._ringNodeRadius + 'px'"," });"," this._handleNode.setStyles({'WebkitBorderRadius':this._handleNodeRadius + 'px',"," 'MozBorderRadius':this._handleNodeRadius + 'px',"," 'borderRadius':this._handleNodeRadius + 'px'"," });"," this._markerNode.setStyles({'WebkitBorderRadius':this._markerNodeRadius + 'px',"," 'MozBorderRadius':this._markerNodeRadius + 'px',"," 'borderRadius':this._markerNodeRadius + 'px'"," });"," this._centerButtonNode.setStyles({'WebkitBorderRadius':this._centerButtonNodeRadius + 'px',"," 'MozBorderRadius':this._centerButtonNodeRadius + 'px',"," 'borderRadius':this._centerButtonNodeRadius + 'px'"," });"," },"," "," /**"," * Handles the mouseenter on the centerButton"," * "," * @method _handleCenterButtonEnter"," * @protected"," */"," _handleCenterButtonEnter : function(){"," this._resetString.removeClass(Dial.CSS_CLASSES.hidden); "," }, "," "," /**"," * Handles the mouseleave on the centerButton"," * "," * @method _handleCenterButtonLeave"," * @protected"," */"," _handleCenterButtonLeave : function(){"," this._resetString.addClass(Dial.CSS_CLASSES.hidden); "," }, "," "," /**"," * Creates the Y.DD.Drag instance used for the handle movement and"," * binds Dial interaction to the configured value model."," *"," * @method bindUI"," * @protected"," */"," bindUI : function() {"," this.after(\"valueChange\", this._afterValueChange);",""," var boundingBox = this.get(\"boundingBox\"),"," // Looking for a key event which will fire continously across browsers while the key is held down."," keyEvent = (!Y.UA.opera) ? \"down:\" : \"press:\", "," // 38, 40 = arrow up/down, 33, 34 = page up/down, 35 , 36 = end/home"," keyEventSpec = keyEvent + \"38,40,33,34,35,36\","," // 37 , 39 = arrow left/right"," keyLeftRightSpec = keyEvent + \"37,39\","," // 37 , 39 = arrow left/right + meta (command/apple key) for mac"," keyLeftRightSpecMeta = keyEvent + \"37+meta,39+meta\";",""," Y.on(\"key\", Y.bind(this._onDirectionKey, this), boundingBox, keyEventSpec);"," Y.on(\"key\", Y.bind(this._onLeftRightKey, this), boundingBox, keyLeftRightSpec);"," boundingBox.on(\"key\", this._onLeftRightKeyMeta, keyLeftRightSpecMeta, this);",""," Y.on('mouseenter', Y.bind(this._handleCenterButtonEnter, this), this._centerButtonNode);"," Y.on('mouseleave', Y.bind(this._handleCenterButtonLeave, this), this._centerButtonNode);"," // Needed to replace mousedown/up with gesturemovestart/end to make behavior on touch devices work the same."," Y.on('gesturemovestart', Y.bind(this._resetDial, this), this._centerButtonNode); //[#2530441] "," Y.on('gesturemoveend', Y.bind(this._handleCenterButtonMouseup, this), this._centerButtonNode); "," Y.on('gesturemovestart', Y.bind(this._handleHandleMousedown, this), this._handleNode);",""," Y.on('gesturemovestart', Y.bind(this._handleMousedown, this), this._ringNode); // [#2530766] "," Y.on('gesturemoveend', Y.bind(this._handleRingMouseup, this), this._ringNode);",""," this._dd1 = new Y.DD.Drag({ //// [#2530206] changed global this._dd1 from just var dd1 = new Y.DD.drag so "," node: this._handleNode,"," on : {"," 'drag:drag' : Y.bind(this._handleDrag, this),"," 'drag:start' : Y.bind(this._handleDragStart, this),"," 'drag:end' : Y.bind(this._handleDragEnd, this) //,"," }"," });"," Y.bind(this._dd1.addHandle(this._ringNode), this); // [#2530206] added the ring as a handle to the dd1 (the dd of the handleNode)"," },",""," /**"," * Sets _timesWrapped based on Dial value"," * to net integer revolutions the user dragged the handle around the Dial"," *"," * @method _setTimesWrappedFromValue"," * @param val {Number} current value of the Dial"," * @private"," */"," _setTimesWrappedFromValue : function(val){"," if(val % this._stepsPerRevolution === 0){"," this._timesWrapped = (val / this._stepsPerRevolution);"," }else{"," this._timesWrapped = Math.floor(val / this._stepsPerRevolution);"," }"," },"," "," /**"," * gets the angle of the line from the center of the Dial to the center of the handle "," *"," * @method _getAngleFromHandleCenter"," * @param handleCenterX {number} "," * @param handleCenterY {number}"," * @return ang {number} the angle"," * @protected"," */"," _getAngleFromHandleCenter : function(handleCenterX, handleCenterY){"," var ang = Math.atan( (this._dialCenterY - handleCenterY) / (this._dialCenterX - handleCenterX) ) * (180 / Math.PI); "," ang = ((this._dialCenterX - handleCenterX) < 0) ? ang + 90 : ang + 90 + 180; // Compensate for neg angles from Math.atan"," return ang;"," },"," "," /**"," * calculates the XY of the center of the dial relative to the ring node. "," * This is needed for calculating the angle of the handle"," *"," * @method _calculateDialCenter"," * @protected"," */"," _calculateDialCenter : function(){ // #2531111 value, and marker don't track handle when dial position changes on page (resize when inline)"," this._dialCenterX = this._ringNode.get('offsetWidth') / 2; "," this._dialCenterY = this._ringNode.get('offsetHeight') / 2;"," },"," "," /**"," * Handles the mouseup on the ring"," * "," * @method _handleRingMouseup"," * @protected"," */"," _handleRingMouseup : function(){"," this._handleNode.focus(); // need to re-focus on the handle so keyboard is accessible [#2530206] "," }, "," "," /**"," * Handles the mouseup on the centerButton"," * "," * @method _handleCenterButtonMouseup"," * @protected"," */"," _handleCenterButtonMouseup : function(){"," this._handleNode.focus(); // need to re-focus on the handle so keyboard is accessible [#2530206] "," }, "," "," /**"," * Handles the mousedown on the handle"," * "," * @method _handleHandleMousedown"," * @protected"," */"," _handleHandleMousedown : function(){"," this._handleNode.focus(); // need to re-focus on the handle so keyboard is accessible [#2530206]"," // this is better done here instead of on _handleDragEnd "," // because we should make the keyboard accessible after a click of the handle "," }, "," "," /**"," * handles the user dragging the handle around the Dial, gets the angle, "," * checks for wrapping around top center."," * Sets the new value of the Dial"," *"," * @method _handleDrag"," * @param e {DOMEvent} the drag event object"," * @protected"," */"," _handleDrag : function(e){"," var handleCenterX,"," handleCenterY,"," ang,"," newValue;",""," // The event was emitted from drag:drag of handle. "," // The center of the handle is top left position of the handle node + radius of handle."," // This is different than a mousedown on the ring."," handleCenterX = (parseInt(this._handleNode.getStyle('left'),10) + this._handleNodeRadius);"," handleCenterY = (parseInt(this._handleNode.getStyle('top'),10) + this._handleNodeRadius);"," ang = this._getAngleFromHandleCenter(handleCenterX, handleCenterY);",""," // check for need to set timesWrapped"," if((this._prevAng > 270) && (ang < 90)){ // If wrapping, clockwise"," if(this._timesWrapped < this._maxTimesWrapped){"," this._timesWrapped = (this._timesWrapped + 1);"," }"," }else if((this._prevAng < 90) && (ang > 270)){ // if un-wrapping, counter-clockwise"," if(this._timesWrapped > this._minTimesWrapped){"," this._timesWrapped = (this._timesWrapped - 1);"," }"," }"," newValue = this._getValueFromAngle(ang); // This function needs the current _timesWrapped value. That's why it comes after the _timesWrapped code above"," "," // If you've gone past max more than one full revolution, we decrement the _timesWrapped value"," // This gives the effect of a ratchet mechanism."," // It feels like you are never more than one revolution past max"," // The effect is the same for min, only in reverse."," // We can't reset the _timesWrapped to the max or min here."," // If we did, the next (continuous) drag would reset the value incorrectly."," if(newValue > (this._maxValue + this._stepsPerRevolution) ){"," this._timesWrapped --;"," }else if(newValue < (this._minValue - this._stepsPerRevolution) ){"," this._timesWrapped ++;"," }"," this._prevAng = ang; // need to keep the previous angle in order to check for wrapping on the next drag, click, or keypress ",""," this._handleValuesBeyondMinMax(e, newValue);"," },",""," /**"," * handles a mousedown or gesturemovestart event on the ring node"," *"," * @method _handleMousedown"," * @param e {DOMEvent} the event object"," * @private"," */"," _handleMousedown : function(e){ // #2530306"," var minAng = this._getAngleFromValue(this._minValue),"," maxAng = this._getAngleFromValue(this._maxValue),"," newValue, oppositeMidRangeAngle,"," handleCenterX, handleCenterY, "," ang;",""," // The event was emitted from mousedown on the ring node,"," // so the center of the handle should be the XY of mousedown. "," if(Y.UA.ios){ // ios adds the scrollLeft and top onto clientX and Y in a native click"," handleCenterX = (e.clientX - this._ringNode.getX());"," handleCenterY = (e.clientY - this._ringNode.getY());"," }else{"," handleCenterX = (e.clientX + Y.one('document').get('scrollLeft') - this._ringNode.getX());"," handleCenterY = (e.clientY + Y.one('document').get('scrollTop') - this._ringNode.getY());"," }"," ang = this._getAngleFromHandleCenter(handleCenterX, handleCenterY);"," "," /* ///////////////////////////////////////////////////////////////////////////////////////////////////////"," * The next sections of logic"," * set this._timesWrapped in the different cases of value range"," * and value range position, "," * then the Dial value is set at the end of this method"," */ ///////////////////////////////////////////////////////////////////////////////////////////////////////"," "," "," ////////////////////////////////////////////////////////////////////////////////////////////////////////////"," if(this._maxValue - this._minValue > this._stepsPerRevolution){"," // Case: range min-to-max is greater than stepsPerRevolution (one revolution) ",""," // This checks the shortest way around the dial between the prevAng and this ang."," if(Math.abs(this._prevAng - ang) > 180){ // this crossed a wrapping"," "," // Only change the _timesWrapped if it's between minTimesWrapped and maxTimesWrapped "," if((this._timesWrapped > this._minTimesWrapped) && "," (this._timesWrapped < this._maxTimesWrapped)"," ){ "," // this checks which direction, clock wise or CCW and incr or decr _timesWrapped"," this._timesWrapped = ((this._prevAng - ang) > 0) ? (this._timesWrapped + 1) : (this._timesWrapped - 1);"," }"," // special case of getting un-stuck from a min value case "," // where timesWrapped is minTimesWrapped but new ang won't trigger a cross wrap boundry"," // because prevAng is set to 0 or > 0"," }else if("," (this._timesWrapped === this._minTimesWrapped) && "," (ang - this._prevAng < 180)"," ){ "," this._timesWrapped ++;"," } //it didn't cross a wrapping boundary",""," } /////////////////////////////////////////////////////////////////////////////////////////////////////////"," else if(this._maxValue - this._minValue === this._stepsPerRevolution){ "," // Case: range min-to-max === stepsPerRevolution (one revolution)"," // This means min and max will be at same angle"," // This does not mean they are at \"north\" "," "," if(ang < minAng){ // if mousedown angle is < minAng (and maxAng, because they're the same)"," // The only way it can be, is if min and max are not at north"," this._timesWrapped = 1;"," }else{"," this._timesWrapped = 0;"," }"," "," } //////////////////////////////////////////////////////////////////////////////////////////////////////////"," else if(minAng > maxAng){ "," // Case: range includes the wrap point (north) "," // Because of \"else if\"..."," // range is < stepsPerRevolution"," "," if( "," (this._prevAng >= minAng) && // if prev angle was greater than angle of min and..."," (ang <= (minAng + maxAng) / 2) // the angle of this click is less than "," // the angle opposite the mid-range angle, then..."," ){"," this._timesWrapped ++; "," }else if( "," (this._prevAng <= maxAng) && "," // if prev angle is < max angle and..."," "," (ang > (minAng + maxAng) / 2)"," // the angle of this click is greater than,"," // the angle opposite the mid-range angle and..."," "," ){ "," this._timesWrapped --;"," }"," "," } ////////////////////////////////////////////////////////////////////////////////////////////////////"," else{ "," // \"else\" Case: min-to-max range doesn't include the wrap point"," // Because of \"else if\"..."," // range is still < stepsPerRevolution"," "," if ((ang < minAng) || (ang > maxAng)){ // angle is out of range"," oppositeMidRangeAngle = (((minAng + maxAng) / 2) + 180) % 360; "," // This is the bisection of the min-to-max range + 180. (opposite the bisection)",""," if(oppositeMidRangeAngle > 180){"," newValue = ((maxAng < ang) && (ang < oppositeMidRangeAngle)) ? this.get('max') : this.get('min');"," }else{ //oppositeMidRangeAngle <= 180"," newValue = ((minAng > ang) && (ang > oppositeMidRangeAngle)) ? this.get('min') : this.get('max');"," }"," this._prevAng = this._getAngleFromValue(newValue);"," this.set('value', newValue);"," this._setTimesWrappedFromValue(newValue);"," return;"," }"," }"," "," // Now that _timesWrapped is set value ......................................................................."," newValue = this._getValueFromAngle(ang); // This function needs the correct, current _timesWrapped value."," this._prevAng = ang; ",""," this._handleValuesBeyondMinMax(e, newValue);"," },",""," /**"," * handles the case where the value is less than min or greater than max"," *"," * @method _handleValuesBeyondMinMax"," * @param e {DOMEvent} the event object"," * @param newValue {number} current value of the dial"," * @protected"," */"," _handleValuesBeyondMinMax : function(e, newValue){ // #2530306"," // If _getValueFromAngle() is passed 0, it increments the _timesWrapped value."," // handle hitting max and min and going beyond, stops at max or min "," if((newValue >= this._minValue) && (newValue <= this._maxValue)) {"," this.set('value', newValue);"," // [#2530206] transfer the mousedown event from the _ringNode to the _handleNode drag, so we can mousedown, then continue dragging"," if(e.currentTarget === this._ringNode){"," // Delegate to DD's natural behavior"," this._dd1._handleMouseDownEvent(e);"," } "," }else if(newValue > this._maxValue){"," this.set('value', this._maxValue);"," if(e.type === 'gesturemovestart'){"," this._prevAng = this._getAngleFromValue(this._maxValue); // #2530766 need for mousedown on the ring; causes prob for drag"," } "," }else if(newValue < this._minValue){"," this.set('value', this._minValue);"," if(e.type === 'gesturemovestart'){"," this._prevAng = this._getAngleFromValue(this._minValue);"," } "," }"," },",""," /**"," * handles the user starting to drag the handle around the Dial"," *"," * @method _handleDragStart"," * @param e {DOMEvent} the drag event object"," * @protected"," */"," _handleDragStart : function(e){"," this._markerNode.removeClass(Dial.CSS_CLASSES.hidden);"," },",""," /*"," * When handle is handleDragEnd, this animates the return to the fixed dial"," */ ",""," /**"," * handles the end of a user dragging the handle, animates the handle returning to"," * resting position."," *"," * @method _handleDragEnd"," * @protected"," */"," _handleDragEnd : function(){"," var node = this._handleNode; "," node.transition({"," duration: 0.08, // seconds"," easing: 'ease-in',"," left: this._setNodeToFixedRadius(this._handleNode, true)[0] + 'px',"," top: this._setNodeToFixedRadius(this._handleNode, true)[1] + 'px'"," }, Y.bind(function(){"," var value = this.get('value');"," //[#2530206] only hide marker if not at max or min"," // more persistant user visibility of when the dial is at max or min"," if((value > this._minValue) && (value < this._maxValue)){"," this._markerNode.addClass(Dial.CSS_CLASSES.hidden);"," }else{"," this._setTimesWrappedFromValue(value); //#2530766 secondary bug when drag past max + cross wrapping boundry"," this._prevAng = this._getAngleFromValue(value); //#2530766 secondary bug when drag past max + cross wrapping boundry"," }"," }, this)"," );"," },",""," /**"," * returns the XY of the fixed position, handleDistance, from the center of the Dial (resting position)."," * The XY also represents the angle related to the current value."," * If typeArray is true, [X,Y] is returned."," * If typeArray is false, the XY of the obj node passed in is set."," *"," * @method _setNodeToFixedRadius"," * @param obj {Node}"," * @param typeArray {Boolean} true returns an array [X,Y]"," * @protected"," * @return {Array} an array of [XY] is optionally returned"," */"," _setNodeToFixedRadius : function(obj, typeArray){"," var thisAngle = (this._angle - 90),"," rad = (Math.PI / 180),"," newY = Math.round(Math.sin(thisAngle * rad) * this._handleDistance),"," newX = Math.round(Math.cos(thisAngle * rad) * this._handleDistance),"," dia = obj.get('offsetWidth'); //Ticket #2529852"," "," newY = newY - (dia * 0.5);"," newX = newX - (dia * 0.5);"," if(typeArray){ // just need the style for css transform left and top to animate the handle drag:end"," return [(this._ringNodeRadius + newX), (this._ringNodeRadius + newY)];"," }else{"," obj.setStyle('left', (this._ringNodeRadius + newX) + 'px');"," obj.setStyle('top', (this._ringNodeRadius + newY) + 'px');"," }"," },",""," /**"," * Synchronizes the DOM state with the attribute settings."," *"," * @method syncUI"," */"," syncUI : function() {"," // Make the marker and the resetString display so their placement and borderRadius can be calculated, then hide them again."," // We would have used visibility:hidden in the css of this class, "," // but IE8 VML never returns to visible after applying visibility:hidden then removing it."," this._setSizes();"," this._calculateDialCenter(); // #2531111 initialize center of dial"," this._setBorderRadius();"," this._uiSetValue(this.get(\"value\"));"," this._markerNode.addClass(Dial.CSS_CLASSES.hidden);"," this._resetString.addClass(Dial.CSS_CLASSES.hidden);"," },",""," /**"," * sets the sizes of ring, center-button, marker, handle, and VML ovals in pixels."," * Needed only because some IE versions "," * ignore CSS percent sizes/offsets."," * so these must be set in pixels."," * Normally these are set in % of the ring."," *"," * @method _setSizes"," * @protected"," */"," _setSizes : function(){"," var dia = this.get('diameter'),"," offset, offsetResetX, offsetResetY,"," setSize = function(node, dia, percent){"," var suffix = 'px';"," node.getElementsByTagName('oval').setStyle('width', (dia * percent) + suffix);"," node.getElementsByTagName('oval').setStyle('height', (dia * percent) + suffix);"," node.setStyle('width', (dia * percent) + suffix);"," node.setStyle('height', (dia * percent) + suffix);"," };"," setSize(this._ringNode, dia, 1.0);"," setSize(this._handleNode, dia, this.get('handleDiameter'));"," setSize(this._markerNode, dia, this.get('markerDiameter'));"," setSize(this._centerButtonNode, dia, this.get('centerButtonDiameter'));"," "," // Set these (used for trig) this way instead of relative to dia, "," // in case they have borders, have images etc."," this._ringNodeRadius = this._ringNode.get('offsetWidth') * 0.5;"," this._handleNodeRadius = this._handleNode.get('offsetWidth') * 0.5;"," this._markerNodeRadius = this._markerNode.get('offsetWidth') * 0.5;"," this._centerButtonNodeRadius = this._centerButtonNode.get('offsetWidth') * 0.5;"," this._handleDistance = this._ringNodeRadius * this.get('handleDistance');"," // place the centerButton"," offset = (this._ringNodeRadius - this._centerButtonNodeRadius);"," this._centerButtonNode.setStyle('left', offset + 'px');"," this._centerButtonNode.setStyle('top', offset + 'px');"," /* "," Place the resetString"," This seems like it should be able to be done with CSS,"," But since there is also a VML oval in IE that is absolute positioned,"," The resetString ends up behind the VML oval."," */"," offsetResetX = (this._centerButtonNodeRadius - (this._resetString.get('offsetWidth') * 0.5));"," offsetResetY = (this._centerButtonNodeRadius - (this._resetString.get('offsetHeight') * 0.5));"," this._resetString.setStyles({'left':offsetResetX + 'px', 'top':offsetResetY + 'px'});"," },","",""," /**"," * renders the DOM object for the Dial's label"," *"," * @method _renderLabel"," * @protected"," */"," _renderLabel : function() {"," var contentBox = this.get(\"contentBox\"),"," label = contentBox.one(\".\" + Dial.CSS_CLASSES.label);"," if (!label) {"," label = Node.create(Y.Lang.sub(Dial.LABEL_TEMPLATE, this.get('strings')));"," contentBox.append(label);"," }"," this._labelNode = label;"," this._valueStringNode = this._labelNode.one(\".\" + Dial.CSS_CLASSES.valueString);"," },",""," /**"," * renders the DOM object for the Dial's background ring"," *"," * @method _renderRing"," * @protected"," */"," _renderRing : function() {"," var contentBox = this.get(\"contentBox\"),"," ring = contentBox.one(\".\" + Dial.CSS_CLASSES.ring);"," if (!ring) {"," ring = contentBox.appendChild(Dial.RING_TEMPLATE);"," ring.setStyles({width:this.get('diameter') + 'px', height:this.get('diameter') + 'px'});"," }"," this._ringNode = ring;"," },",""," /**"," * renders the DOM object for the Dial's background marker which "," * tracks the angle of the user dragging the handle"," *"," * @method _renderMarker"," * @protected"," */"," _renderMarker : function() {"," var contentBox = this.get(\"contentBox\"),"," marker = contentBox.one(\".\" + Dial.CSS_CLASSES.marker);"," if (!marker) {"," marker = contentBox.one('.' + Dial.CSS_CLASSES.ring).appendChild(Dial.MARKER_TEMPLATE);"," }"," this._markerNode = marker;"," },"," "," /**"," * renders the DOM object for the Dial's center"," *"," * @method _renderCenterButton"," * @protected"," */"," _renderCenterButton : function() {"," var contentBox = this.get(\"contentBox\"),"," centerButton = contentBox.one(\".\" + Dial.CSS_CLASSES.centerButton);"," if (!centerButton) {"," centerButton = Node.create(Y.Lang.sub(Dial.CENTER_BUTTON_TEMPLATE, this.get('strings')));"," contentBox.one('.' + Dial.CSS_CLASSES.ring).append(centerButton);"," }"," this._centerButtonNode = centerButton;"," this._resetString = this._centerButtonNode.one('.' + Dial.CSS_CLASSES.resetString);"," },",""," /**"," * renders the DOM object for the Dial's user draggable handle"," *"," * @method _renderHandle"," * @protected"," */"," _renderHandle : function() { "," var labelId = Dial.CSS_CLASSES.label + Y.guid(), //get this unique id once then use for handle and label for ARIA"," contentBox = this.get(\"contentBox\"),"," handle = contentBox.one(\".\" + Dial.CSS_CLASSES.handle);"," if (!handle) {"," handle = Node.create(Y.Lang.sub(Dial.HANDLE_TEMPLATE, this.get('strings')));"," handle.setAttribute('aria-labelledby', labelId); // get unique id for specifying a label & handle for ARIA"," this._labelNode.one('.' + Dial.CSS_CLASSES.labelString).setAttribute('id', labelId); // When handle gets focus, screen reader will include label text when reading the value."," contentBox.one('.' + Dial.CSS_CLASSES.ring).append(handle);"," }"," this._handleNode = handle;"," },",""," /**"," * sets the visible UI label HTML string"," *"," * @method _setLabelString"," * @param str {HTML}"," * @protected"," * @deprecated Use DialObjName.set('strings',{'label':'My new label'}); before DialObjName.render();",""," */"," _setLabelString : function(str) {"," this.get(\"contentBox\").one(\".\" + Dial.CSS_CLASSES.labelString).setHTML(str);"," },",""," /**"," * sets the visible UI label HTML string"," *"," * @method _setResetString"," * @param str {HTML}"," * @protected"," * @deprecated Use DialObjName.set('strings',{'resetStr':'My new reset string'}); before DialObjName.render();"," */"," _setResetString : function(str) {"," this.get(\"contentBox\").one(\".\" + Dial.CSS_CLASSES.resetString).setHTML(str);"," // this._setXYResetString(); // This used to recenter the string in the button. Done with CSS now. Method has been removed."," // this._resetString.setHTML(''); //We no longer show/hide the reset string with setHTML but by addClass and removeClass .yui3-dial-reset-string-hidden"," },",""," /**"," * sets the tooltip HTML string in the Dial's handle"," *"," * @method _setTooltipString"," * @param str {HTML}"," * @protected"," * @deprecated Use DialObjName.set('strings',{'tooltipHandle':'My new tooltip'}); before DialObjName.render();"," */"," _setTooltipString : function(str) {"," this._handleNode.set('title', str);"," },",""," /**"," * sets the Dial's value in response to key events."," * Left and right keys are in a separate method "," * in case an implementation wants to increment values"," * but needs left and right arrow keys for other purposes."," *"," * @method _onDirectionKey"," * @param e {Event} the key event"," * @protected"," */"," _onDirectionKey : function(e) {"," e.preventDefault();"," switch (e.charCode) {"," case 38: // up"," this._incrMinor();"," break;"," case 40: // down"," this._decrMinor();"," break;"," case 36: // home"," this._setToMin();"," break;"," case 35: // end"," this._setToMax();"," break;"," case 33: // page up"," this._incrMajor();"," break;"," case 34: // page down"," this._decrMajor();"," break;"," }"," },",""," /**"," * sets the Dial's value in response to left or right key events"," *"," * @method _onLeftRightKey"," * @param e {Event} the key event"," * @protected"," */"," _onLeftRightKey : function(e) {"," e.preventDefault();"," switch (e.charCode) {"," case 37: // left"," this._decrMinor();"," break;"," case 39: // right"," this._incrMinor();"," break;"," }"," },",""," /**"," * sets the Dial's value in response to left or right key events when a meta (mac command/apple) key is also pressed"," *"," * @method _onLeftRightKeyMeta"," * @param e {Event} the key event"," * @protected"," */"," _onLeftRightKeyMeta : function(e) {"," e.preventDefault();"," switch (e.charCode) {"," case 37: // left + meta"," this._setToMin();"," break;"," case 39: // right + meta"," this._setToMax();"," break;"," }"," },"," "," /**"," * increments Dial value by a minor increment"," *"," * @method _incrMinor"," * @protected"," */"," _incrMinor : function(){"," var newVal = (this.get('value') + this.get(\"minorStep\"));"," newVal = Math.min(newVal, this.get(\"max\"));"," // [#2530045] .toFixed returns a string."," // Dial's value needs a number. -0 makes it a number, but removes trailing zeros."," // Added toFixed(...) again in _uiSetValue where content of yui3-dial-value-string is set."," // Removing the toFixed here, loses the feature of \"snap-to\" when for example, stepsPerRevolution is 10 and decimalPlaces is 0."," this.set('value', newVal.toFixed(this.get('decimalPlaces')) - 0);"," },"," "," /**"," * decrements Dial value by a minor increment"," *"," * @method _decrMinor"," * @protected"," */"," _decrMinor : function(){"," var newVal = (this.get('value') - this.get(\"minorStep\"));"," newVal = Math.max(newVal, this.get(\"min\"));"," this.set('value', newVal.toFixed(this.get('decimalPlaces')) - 0);"," },"," "," /**"," * increments Dial value by a major increment"," *"," * @method _incrMajor"," * @protected"," */"," _incrMajor : function(){"," var newVal = (this.get('value') + this.get(\"majorStep\"));"," newVal = Math.min(newVal, this.get(\"max\"));"," this.set('value', newVal.toFixed(this.get('decimalPlaces')) - 0);"," },"," "," /**"," * decrements Dial value by a major increment"," *"," * @method _decrMajor"," * @protected"," */"," _decrMajor : function(){"," var newVal = (this.get('value') - this.get(\"majorStep\"));"," newVal = Math.max(newVal, this.get(\"min\"));"," this.set('value', newVal.toFixed(this.get('decimalPlaces')) - 0);"," },",""," /**"," * sets Dial value to dial's max attr"," *"," * @method _setToMax"," * @protected"," */"," _setToMax : function(){"," this.set('value', this.get(\"max\"));"," }, "," "," /**"," * sets Dial value to dial's min attr"," *"," * @method _setToMin"," * @protected"," */"," _setToMin : function(){"," this.set('value', this.get(\"min\"));"," }, "," "," /**"," * resets Dial value to the orignal initial value. "," *"," * @method _resetDial"," * @protected"," */"," _resetDial : function(e){"," if(e){"," e.stopPropagation(); //[#2530206] need to add so mousedown doesn't propagate to ring and move the handle"," }"," this.set('value', this._originalValue);"," this._resetString.addClass(Dial.CSS_CLASSES.hidden); //[#2530441]"," this._handleNode.focus();"," },"," "," /**"," * returns the handle angle associated with the current value of the Dial. "," * Returns a number between 0 and 360."," *"," * @method _getAngleFromValue"," * @param newVal {Number} the current value of the Dial"," * @return {Number} the angle associated with the current Dial value"," * @protected"," */"," _getAngleFromValue : function(newVal){"," var nonWrappedPartOfValue = newVal % this._stepsPerRevolution,"," angleFromValue = nonWrappedPartOfValue / this._stepsPerRevolution * 360;"," return (angleFromValue < 0) ? (angleFromValue + 360) : angleFromValue;"," },",""," /**"," * returns the value of the Dial calculated from the current handle angle"," *"," * @method _getValueFromAngle"," * @param angle {Number} the current angle of the Dial's handle"," * @return {Number} the current Dial value corresponding to the handle position"," * @protected"," */"," _getValueFromAngle : function(angle){"," if(angle < 0){"," angle = (360 + angle);"," }else if(angle === 0){"," angle = 360;"," }"," var value = (angle / 360) * this._stepsPerRevolution;"," value = (value + (this._timesWrapped * this._stepsPerRevolution));"," //return Math.round(value * 100) / 100;"," return value.toFixed(this.get('decimalPlaces')) - 0;"," },",""," /**"," * calls the method to update the UI whenever the Dial value changes"," *"," * @method _afterValueChange"," * @param e {Event}"," * @protected"," */"," _afterValueChange : function(e) {"," this._uiSetValue(e.newVal);"," },",""," /**"," * Changes a value to have the correct decimal places per the attribute decimalPlaces"," *"," * @method _valueToDecimalPlaces"," * @param val {Number} a raw value to set to the Dial"," * @return {Number} the input val changed to have the correct decimal places"," * @protected"," */"," _valueToDecimalPlaces : function(val) { // [#2530206] cleaned up and better user feedback of when it's max or min."," "," },",""," /**"," * Updates the UI display value of the Dial to reflect "," * the value passed in."," * Makes all other needed UI display changes"," *"," * @method _uiSetValue"," * @param val {Number} value of the Dial"," * @protected"," */"," _uiSetValue : function(val) { // [#2530206] cleaned up and better user feedback of when it's max or min."," this._angle = this._getAngleFromValue(val);"," if(this._handleNode.hasClass(Dial.CSS_CLASSES.dragging) === false){"," this._setTimesWrappedFromValue(val);"," this._setNodeToFixedRadius(this._handleNode, false);"," this._prevAng = this._getAngleFromValue(this.get('value'));"," }"," this._valueStringNode.setHTML(val.toFixed(this.get('decimalPlaces'))); // [#2530045]"," this._handleNode.set('aria-valuenow', val);"," this._handleNode.set('aria-valuetext', val);"," this._setNodeToFixedRadius(this._markerNode, false);"," if((val === this._maxValue) || (val === this._minValue)){"," this._markerNode.addClass(Dial.CSS_CLASSES.markerMaxMin);"," if(supportsVML === true){"," this._markerNode.getElementsByTagName('fill').set('color', '#AB3232');"," }"," this._markerNode.removeClass(Dial.CSS_CLASSES.hidden);"," }else{ // not max or min"," if(supportsVML === true){"," this._markerNode.getElementsByTagName('fill').set('color', '#000');"," }"," this._markerNode.removeClass(Dial.CSS_CLASSES.markerMaxMin);"," if(this._handleNode.hasClass(Dial.CSS_CLASSES.dragging) === false){ // if not max || min, and not dragging handle, hide the marker"," this._markerNode.addClass(Dial.CSS_CLASSES.hidden);"," }"," }"," },",""," /**"," * value attribute default validator. Verifies that"," * the value being set lies between the min/max value"," *"," * @method _validateValue"," * @param val {Number} value of the Dial"," * @protected"," */"," _validateValue: function(val) {"," var min = this.get(\"min\"),"," max = this.get(\"max\");"," return (Lang.isNumber(val) && val >= min && val <= max);"," }"," });"," Y.Dial = Dial;","","","}, '3.7.2', {\"requires\": [\"widget\", \"dd-drag\", \"event-mouseenter\", \"event-move\", \"event-key\", \"transition\", \"intl\"], \"lang\": [\"en\", \"es\"], \"skinnable\": true});"]; -_yuitest_coverage["build/dial/dial.js"].lines = {"1":0,"9":0,"12":0,"13":0,"16":0,"31":0,"32":0,"47":0,"58":0,"148":0,"211":0,"238":0,"239":0,"249":0,"280":0,"282":0,"291":0,"301":0,"311":0,"321":0,"324":0,"329":0,"335":0,"343":0,"352":0,"361":0,"362":0,"363":0,"364":0,"365":0,"368":0,"371":0,"372":0,"373":0,"374":0,"375":0,"376":0,"379":0,"380":0,"381":0,"384":0,"385":0,"386":0,"397":0,"401":0,"405":0,"409":0,"422":0,"432":0,"443":0,"445":0,"455":0,"456":0,"457":0,"459":0,"460":0,"462":0,"463":0,"464":0,"466":0,"467":0,"469":0,"477":0,"489":0,"490":0,"492":0,"506":0,"507":0,"508":0,"519":0,"520":0,"530":0,"540":0,"550":0,"565":0,"573":0,"574":0,"575":0,"578":0,"579":0,"580":0,"582":0,"583":0,"584":0,"587":0,"595":0,"596":0,"597":0,"598":0,"600":0,"602":0,"613":0,"621":0,"622":0,"623":0,"625":0,"626":0,"628":0,"639":0,"643":0,"646":0,"650":0,"655":0,"659":0,"663":0,"668":0,"670":0,"672":0,"676":0,"681":0,"686":0,"687":0,"696":0,"705":0,"706":0,"709":0,"710":0,"712":0,"714":0,"715":0,"716":0,"717":0,"722":0,"723":0,"725":0,"739":0,"740":0,"742":0,"744":0,"746":0,"747":0,"748":0,"749":0,"751":0,"752":0,"753":0,"754":0,"767":0,"782":0,"783":0,"789":0,"792":0,"793":0,"795":0,"796":0,"815":0,"821":0,"822":0,"823":0,"824":0,"826":0,"827":0,"840":0,"841":0,"842":0,"843":0,"844":0,"845":0,"859":0,"862":0,"863":0,"864":0,"865":0,"866":0,"868":0,"869":0,"870":0,"871":0,"875":0,"876":0,"877":0,"878":0,"879":0,"881":0,"882":0,"883":0,"890":0,"891":0,"892":0,"903":0,"905":0,"906":0,"907":0,"909":0,"910":0,"920":0,"922":0,"923":0,"924":0,"926":0,"937":0,"939":0,"940":0,"942":0,"952":0,"954":0,"955":0,"956":0,"958":0,"959":0,"969":0,"972":0,"973":0,"974":0,"975":0,"976":0,"978":0,"991":0,"1003":0,"1017":0,"1031":0,"1032":0,"1034":0,"1035":0,"1037":0,"1038":0,"1040":0,"1041":0,"1043":0,"1044":0,"1046":0,"1047":0,"1049":0,"1050":0,"1062":0,"1063":0,"1065":0,"1066":0,"1068":0,"1069":0,"1081":0,"1082":0,"1084":0,"1085":0,"1087":0,"1088":0,"1099":0,"1100":0,"1105":0,"1115":0,"1116":0,"1117":0,"1127":0,"1128":0,"1129":0,"1139":0,"1140":0,"1141":0,"1151":0,"1161":0,"1171":0,"1172":0,"1174":0,"1175":0,"1176":0,"1189":0,"1191":0,"1203":0,"1204":0,"1205":0,"1206":0,"1208":0,"1209":0,"1211":0,"1222":0,"1247":0,"1248":0,"1249":0,"1250":0,"1251":0,"1253":0,"1254":0,"1255":0,"1256":0,"1257":0,"1258":0,"1259":0,"1260":0,"1262":0,"1264":0,"1265":0,"1267":0,"1268":0,"1269":0,"1283":0,"1285":0,"1288":0}; -_yuitest_coverage["build/dial/dial.js"].functions = {"Dial:31":0,"validator:147":0,"valueFn:210":0,"makeClassName:238":0,"renderUI:360":0,"_setBorderRadius:396":0,"_handleCenterButtonEnter:421":0,"_handleCenterButtonLeave:431":0,"bindUI:442":0,"_setTimesWrappedFromValue:488":0,"_getAngleFromHandleCenter:505":0,"_calculateDialCenter:518":0,"_handleRingMouseup:529":0,"_handleCenterButtonMouseup:539":0,"_handleHandleMousedown:549":0,"_handleDrag:564":0,"_handleMousedown:612":0,"_handleValuesBeyondMinMax:736":0,"_handleDragStart:766":0,"(anonymous 2):788":0,"_handleDragEnd:781":0,"_setNodeToFixedRadius:814":0,"syncUI:836":0,"setSize:861":0,"_setSizes:858":0,"_renderLabel:902":0,"_renderRing:919":0,"_renderMarker:936":0,"_renderCenterButton:951":0,"_renderHandle:968":0,"_setLabelString:990":0,"_setResetString:1002":0,"_setTooltipString:1016":0,"_onDirectionKey:1030":0,"_onLeftRightKey:1061":0,"_onLeftRightKeyMeta:1080":0,"_incrMinor:1098":0,"_decrMinor:1114":0,"_incrMajor:1126":0,"_decrMajor:1138":0,"_setToMax:1150":0,"_setToMin:1160":0,"_resetDial:1170":0,"_getAngleFromValue:1188":0,"_getValueFromAngle:1202":0,"_afterValueChange:1221":0,"_uiSetValue:1246":0,"_validateValue:1282":0,"(anonymous 1):1":0}; -_yuitest_coverage["build/dial/dial.js"].coveredLines = 287; -_yuitest_coverage["build/dial/dial.js"].coveredFunctions = 49; -_yuitest_coverline("build/dial/dial.js", 1); -YUI.add('dial', function (Y, NAME) { - -/** - * Create a circular dial value range input visualized as a draggable handle on a - * background element. - * - * @module dial - */ - _yuitest_coverfunc("build/dial/dial.js", "(anonymous 1)", 1); -_yuitest_coverline("build/dial/dial.js", 9); -var supportsVML = false; - //testVMLNode; - - _yuitest_coverline("build/dial/dial.js", 12); -if (Y.UA.ie && Y.UA.ie < 9){ - _yuitest_coverline("build/dial/dial.js", 13); -supportsVML = true; - } - - _yuitest_coverline("build/dial/dial.js", 16); -var Lang = Y.Lang, - Widget = Y.Widget, - Node = Y.Node; - - /** - * Create a dial to represent an input control capable of representing a - * series of intermediate states based on the position of the Dial's handle. - * These states are typically aligned to a value algorithm whereby the angle of the handle's - * position corresponds to a given value. - * - * @class Dial - * @extends Widget - * @param config {Object} Configuration object - * @constructor - */ - _yuitest_coverline("build/dial/dial.js", 31); -function Dial(config) { - _yuitest_coverfunc("build/dial/dial.js", "Dial", 31); -_yuitest_coverline("build/dial/dial.js", 32); -Dial.superclass.constructor.apply(this, arguments); - } - - // Y.Dial static properties - - /** - * The identity of the widget. - * - * @property NAME - * @type String - * @default 'dial' - * @readOnly - * @protected - * @static - */ - _yuitest_coverline("build/dial/dial.js", 47); -Dial.NAME = "dial"; - - /** - * Static property used to define the default attribute configuration of - * the Widget. - * - * @property ATTRS - * @type {Object} - * @protected - * @static - */ - _yuitest_coverline("build/dial/dial.js", 58); -Dial.ATTRS = { - - /** - * minimum value allowed - * - * @attribute min - * @type {Number} - * @default -220 - */ - min : { - value:-220 - }, - - /** - * maximum value allowed - * - * @attribute max - * @type {Number} - * @default 220 - */ - max : { - value:220 - }, - - /** - * diameter of the circular background object. - * Other objects scale accordingly. - * Set this only before rendering. - * - * @attribute diameter - * @type {Number} the number of px in diameter - * @default 100 - * @writeOnce - */ - diameter : { - value:100 - }, - - /** - * diameter of the handle object which users drag to change the value. - * Dial sets the pixel dimension of the handle equal to handleDiameter * diameter. - * Set this only before rendering. - * - * @attribute handleDiameter - * @type {Number} - * @default 0.2 - * @writeOnce - */ - handleDiameter : { - value:0.2 - }, - - /** - * diameter of the marker object which follows the angle of the handle during value changes. - * Dial sets the pixel dimension of the marker equal to markerDiameter * diameter. - * Set this only before rendering. - * - * @attribute markerDiameter - * @type {Number} - * @default 0.1 - * @writeOnce - */ - markerDiameter : { - value:0.1 - }, - - /** - * diameter of the center button object. - * Dial sets the pixel dimension of the centerButton equal to centerButtonDiameter * diameter. - * Set this only before rendering. - * - * @attribute centerButtonDiameter - * @type {Number} - * @default 0.1 - * @writeOnce - */ - centerButtonDiameter : { - value:0.5 - }, - - /** - * initial value of the Dial - * - * @attribute value - * @type {Number} - * @default 0 - */ - value : { - value:0, - validator: function(val) { - _yuitest_coverfunc("build/dial/dial.js", "validator", 147); -_yuitest_coverline("build/dial/dial.js", 148); -return this._validateValue(val); - } - }, - - /** - * amount to increment/decrement the dial value - * when the arrow up/down/left/right keys are pressed - * - * @attribute minorStep - * @type {Number} - * @default 1 - */ - minorStep : { - value:1 - }, - - /** - * amount to increment/decrement the dial value - * when the page up/down keys are pressed - * - * @attribute majorStep - * @type {Number} - * @default 10 - */ - majorStep : { - value:10 - }, - - /** - * number of value increments in one 360 degree revolution - * of the handle around the dial - * - * @attribute stepsPerRevolution - * @type {Number} - * @default 100 - */ - stepsPerRevolution : { - value:100 - }, - - /** - * number of decimal places of accuracy in the value - * - * @attribute decimalPlaces - * @type {Number} - * @default 0 - */ - decimalPlaces : { - value:0 - }, - - /** - * visible strings for the dial UI. This attribute is - * defined by the base Widget class but has an empty value. The - * Dial is simply providing a default value for the attribute. - * Gets localized strings in the current language - * - * @attribute strings - * @type {Object} the values are HTML strings - * @default {label: 'My label', resetStr: 'Reset', tooltipHandle: 'Drag to set value'} - */ - strings: { - valueFn: function () { - _yuitest_coverfunc("build/dial/dial.js", "valueFn", 210); -_yuitest_coverline("build/dial/dial.js", 211); -return Y.Intl.get('dial'); - } - }, - - /** - * distance from the center of the dial to the - * center of the marker and handle, when at rest. - * The value is a percent of the radius of the dial. - * - * @attribute handleDistance - * @type {number} - * @default 0.75 - */ - handleDistance:{ - value:0.75 - } - - }; - - /** - * returns a properly formed yui class name - * - * @method - * @param {String} string to be appended at the end of class name - * @return - * @private - */ - _yuitest_coverline("build/dial/dial.js", 238); -function makeClassName(str) { - _yuitest_coverfunc("build/dial/dial.js", "makeClassName", 238); -_yuitest_coverline("build/dial/dial.js", 239); -return Y.ClassNameManager.getClassName(Dial.NAME, str); - } - - /** array of static constants used to identify the classname applied to the Dial DOM objects - * - * @property CSS_CLASSES - * @type {Array} - * @private - * @static - */ - _yuitest_coverline("build/dial/dial.js", 249); -Dial.CSS_CLASSES = { - label : makeClassName("label"), - labelString : makeClassName("label-string"), - valueString : makeClassName("value-string"), - northMark : makeClassName("north-mark"), - ring : makeClassName('ring'), - ringVml : makeClassName('ring-vml'), - marker : makeClassName("marker"), - markerVml : makeClassName("marker-vml"), - markerMaxMin : makeClassName("marker-max-min"), - centerButton : makeClassName("center-button"), - centerButtonVml : makeClassName('center-button-vml'), - resetString : makeClassName("reset-string"), - handle : makeClassName("handle"), - handleVml : makeClassName("handle-vml"), - hidden : makeClassName("hidden"), - dragging : Y.ClassNameManager.getClassName("dd-dragging") - }; - - /* Static constants used to define the markup templates used to create Dial DOM elements */ - - - /** - * template that will contain the Dial's label. - * - * @property LABEL_TEMPLATE - * @type {HTML} - * @default <div class="[...-label]"><span id="" class="[...-label-string]">{label}</span><span class="[...-value-string]"></span></div> - * @protected - */ - - _yuitest_coverline("build/dial/dial.js", 280); -Dial.LABEL_TEMPLATE = '
{label}
'; - - _yuitest_coverline("build/dial/dial.js", 282); -if(supportsVML === false){ - /** - * template that will contain the Dial's background ring. - * - * @property RING_TEMPLATE - * @type {HTML} - * @default <div class="[...-ring]"><div class="[...-northMark]"></div></div> - * @protected - */ - _yuitest_coverline("build/dial/dial.js", 291); -Dial.RING_TEMPLATE = '
'; - - /** - * template that will contain the Dial's current angle marker. - * - * @property MARKER_TEMPLATE - * @type {HTML} - * @default <div class="[...-marker] [...-marker-hidden]"><div class="[...-markerUser]"></div></div> - * @protected - */ - _yuitest_coverline("build/dial/dial.js", 301); -Dial.MARKER_TEMPLATE = '
'; - - /** - * template that will contain the Dial's center button. - * - * @property CENTER_BUTTON_TEMPLATE - * @type {HTML} - * @default <div class="[...-centerButton]"><div class="[...-resetString]">' + Y.Lang.sub('{resetStr}', Dial.ATTRS.strings.value) + '</div></div> - * @protected - */ - _yuitest_coverline("build/dial/dial.js", 311); -Dial.CENTER_BUTTON_TEMPLATE = '
{resetStr}
'; - - /** - * template that will contain the Dial's handle. - * - * @property HANDLE_TEMPLATE - * @type {HTML} - * @default <div class="[...-handle]"><div class="[...-handleUser]" aria-labelledby="" aria-valuetext="" aria-valuemax="" aria-valuemin="" aria-valuenow="" role="slider" tabindex="0"></div></div>';// title="{tooltipHandle}" - * @protected - */ - _yuitest_coverline("build/dial/dial.js", 321); -Dial.HANDLE_TEMPLATE = '
'; - - }else{ // VML case - _yuitest_coverline("build/dial/dial.js", 324); -Dial.RING_TEMPLATE = '
'+ - '
'+ - ''+ - '
'+ - ''; - _yuitest_coverline("build/dial/dial.js", 329); -Dial.MARKER_TEMPLATE = '
'+ - ''+ - ''+ - ''+ - '
'+ - ''; - _yuitest_coverline("build/dial/dial.js", 335); -Dial.CENTER_BUTTON_TEMPLATE = '
'+ - ''+ - ''+ - ''+ - ''+ - '
{resetStr}
'+ - '
'+ - ''; - _yuitest_coverline("build/dial/dial.js", 343); -Dial.HANDLE_TEMPLATE = '
'+ - ''+ - ''+ - ''+ - '
'+ - ''; - } - - /* Dial extends the base Widget class */ - _yuitest_coverline("build/dial/dial.js", 352); -Y.extend(Dial, Widget, { - - /** - * creates the DOM structure for the Dial. - * - * @method renderUI - * @protected - */ - renderUI : function() { - _yuitest_coverfunc("build/dial/dial.js", "renderUI", 360); -_yuitest_coverline("build/dial/dial.js", 361); -this._renderLabel(); - _yuitest_coverline("build/dial/dial.js", 362); -this._renderRing(); - _yuitest_coverline("build/dial/dial.js", 363); -this._renderMarker(); - _yuitest_coverline("build/dial/dial.js", 364); -this._renderCenterButton(); - _yuitest_coverline("build/dial/dial.js", 365); -this._renderHandle(); - - // object handles - _yuitest_coverline("build/dial/dial.js", 368); -this.contentBox = this.get("contentBox"); - - // constants - _yuitest_coverline("build/dial/dial.js", 371); -this._originalValue = this.get('value'); - _yuitest_coverline("build/dial/dial.js", 372); -this._minValue = this.get('min'); // saves doing a .get many times, but we need to remember to update this if/when we allow changing min or max after instantiation - _yuitest_coverline("build/dial/dial.js", 373); -this._maxValue = this.get('max'); - _yuitest_coverline("build/dial/dial.js", 374); -this._stepsPerRevolution = this.get('stepsPerRevolution'); - _yuitest_coverline("build/dial/dial.js", 375); -this._minTimesWrapped = (Math.floor(this._minValue / this._stepsPerRevolution - 1)); - _yuitest_coverline("build/dial/dial.js", 376); -this._maxTimesWrapped = (Math.floor(this._maxValue / this._stepsPerRevolution + 1)); - - // variables - _yuitest_coverline("build/dial/dial.js", 379); -this._timesWrapped = 0; - _yuitest_coverline("build/dial/dial.js", 380); -this._angle = this._getAngleFromValue(this.get('value')); - _yuitest_coverline("build/dial/dial.js", 381); -this._prevAng = this._angle; - - // init - _yuitest_coverline("build/dial/dial.js", 384); -this._setTimesWrappedFromValue(this._originalValue); - _yuitest_coverline("build/dial/dial.js", 385); -this._handleNode.set('aria-valuemin', this._minValue); - _yuitest_coverline("build/dial/dial.js", 386); -this._handleNode.set('aria-valuemax', this._maxValue); - }, - - /** - * Sets -webkit-border-radius to 50% of width/height of the ring, handle, marker, and center-button. - * This is needed for iOS 3.x. - * The objects render square if the radius is > 50% of the width/height - * @method _setBorderRadius - * @private - */ - _setBorderRadius : function(){ - _yuitest_coverfunc("build/dial/dial.js", "_setBorderRadius", 396); -_yuitest_coverline("build/dial/dial.js", 397); -this._ringNode.setStyles({'WebkitBorderRadius':this._ringNodeRadius + 'px', - 'MozBorderRadius':this._ringNodeRadius + 'px', - 'borderRadius':this._ringNodeRadius + 'px' - }); - _yuitest_coverline("build/dial/dial.js", 401); -this._handleNode.setStyles({'WebkitBorderRadius':this._handleNodeRadius + 'px', - 'MozBorderRadius':this._handleNodeRadius + 'px', - 'borderRadius':this._handleNodeRadius + 'px' - }); - _yuitest_coverline("build/dial/dial.js", 405); -this._markerNode.setStyles({'WebkitBorderRadius':this._markerNodeRadius + 'px', - 'MozBorderRadius':this._markerNodeRadius + 'px', - 'borderRadius':this._markerNodeRadius + 'px' - }); - _yuitest_coverline("build/dial/dial.js", 409); -this._centerButtonNode.setStyles({'WebkitBorderRadius':this._centerButtonNodeRadius + 'px', - 'MozBorderRadius':this._centerButtonNodeRadius + 'px', - 'borderRadius':this._centerButtonNodeRadius + 'px' - }); - }, - - /** - * Handles the mouseenter on the centerButton - * - * @method _handleCenterButtonEnter - * @protected - */ - _handleCenterButtonEnter : function(){ - _yuitest_coverfunc("build/dial/dial.js", "_handleCenterButtonEnter", 421); -_yuitest_coverline("build/dial/dial.js", 422); -this._resetString.removeClass(Dial.CSS_CLASSES.hidden); - }, - - /** - * Handles the mouseleave on the centerButton - * - * @method _handleCenterButtonLeave - * @protected - */ - _handleCenterButtonLeave : function(){ - _yuitest_coverfunc("build/dial/dial.js", "_handleCenterButtonLeave", 431); -_yuitest_coverline("build/dial/dial.js", 432); -this._resetString.addClass(Dial.CSS_CLASSES.hidden); - }, - - /** - * Creates the Y.DD.Drag instance used for the handle movement and - * binds Dial interaction to the configured value model. - * - * @method bindUI - * @protected - */ - bindUI : function() { - _yuitest_coverfunc("build/dial/dial.js", "bindUI", 442); -_yuitest_coverline("build/dial/dial.js", 443); -this.after("valueChange", this._afterValueChange); - - _yuitest_coverline("build/dial/dial.js", 445); -var boundingBox = this.get("boundingBox"), - // Looking for a key event which will fire continously across browsers while the key is held down. - keyEvent = (!Y.UA.opera) ? "down:" : "press:", - // 38, 40 = arrow up/down, 33, 34 = page up/down, 35 , 36 = end/home - keyEventSpec = keyEvent + "38,40,33,34,35,36", - // 37 , 39 = arrow left/right - keyLeftRightSpec = keyEvent + "37,39", - // 37 , 39 = arrow left/right + meta (command/apple key) for mac - keyLeftRightSpecMeta = keyEvent + "37+meta,39+meta"; - - _yuitest_coverline("build/dial/dial.js", 455); -Y.on("key", Y.bind(this._onDirectionKey, this), boundingBox, keyEventSpec); - _yuitest_coverline("build/dial/dial.js", 456); -Y.on("key", Y.bind(this._onLeftRightKey, this), boundingBox, keyLeftRightSpec); - _yuitest_coverline("build/dial/dial.js", 457); -boundingBox.on("key", this._onLeftRightKeyMeta, keyLeftRightSpecMeta, this); - - _yuitest_coverline("build/dial/dial.js", 459); -Y.on('mouseenter', Y.bind(this._handleCenterButtonEnter, this), this._centerButtonNode); - _yuitest_coverline("build/dial/dial.js", 460); -Y.on('mouseleave', Y.bind(this._handleCenterButtonLeave, this), this._centerButtonNode); - // Needed to replace mousedown/up with gesturemovestart/end to make behavior on touch devices work the same. - _yuitest_coverline("build/dial/dial.js", 462); -Y.on('gesturemovestart', Y.bind(this._resetDial, this), this._centerButtonNode); //[#2530441] - _yuitest_coverline("build/dial/dial.js", 463); -Y.on('gesturemoveend', Y.bind(this._handleCenterButtonMouseup, this), this._centerButtonNode); - _yuitest_coverline("build/dial/dial.js", 464); -Y.on('gesturemovestart', Y.bind(this._handleHandleMousedown, this), this._handleNode); - - _yuitest_coverline("build/dial/dial.js", 466); -Y.on('gesturemovestart', Y.bind(this._handleMousedown, this), this._ringNode); // [#2530766] - _yuitest_coverline("build/dial/dial.js", 467); -Y.on('gesturemoveend', Y.bind(this._handleRingMouseup, this), this._ringNode); - - _yuitest_coverline("build/dial/dial.js", 469); -this._dd1 = new Y.DD.Drag({ //// [#2530206] changed global this._dd1 from just var dd1 = new Y.DD.drag so - node: this._handleNode, - on : { - 'drag:drag' : Y.bind(this._handleDrag, this), - 'drag:start' : Y.bind(this._handleDragStart, this), - 'drag:end' : Y.bind(this._handleDragEnd, this) //, - } - }); - _yuitest_coverline("build/dial/dial.js", 477); -Y.bind(this._dd1.addHandle(this._ringNode), this); // [#2530206] added the ring as a handle to the dd1 (the dd of the handleNode) - }, - - /** - * Sets _timesWrapped based on Dial value - * to net integer revolutions the user dragged the handle around the Dial - * - * @method _setTimesWrappedFromValue - * @param val {Number} current value of the Dial - * @private - */ - _setTimesWrappedFromValue : function(val){ - _yuitest_coverfunc("build/dial/dial.js", "_setTimesWrappedFromValue", 488); -_yuitest_coverline("build/dial/dial.js", 489); -if(val % this._stepsPerRevolution === 0){ - _yuitest_coverline("build/dial/dial.js", 490); -this._timesWrapped = (val / this._stepsPerRevolution); - }else{ - _yuitest_coverline("build/dial/dial.js", 492); -this._timesWrapped = Math.floor(val / this._stepsPerRevolution); - } - }, - - /** - * gets the angle of the line from the center of the Dial to the center of the handle - * - * @method _getAngleFromHandleCenter - * @param handleCenterX {number} - * @param handleCenterY {number} - * @return ang {number} the angle - * @protected - */ - _getAngleFromHandleCenter : function(handleCenterX, handleCenterY){ - _yuitest_coverfunc("build/dial/dial.js", "_getAngleFromHandleCenter", 505); -_yuitest_coverline("build/dial/dial.js", 506); -var ang = Math.atan( (this._dialCenterY - handleCenterY) / (this._dialCenterX - handleCenterX) ) * (180 / Math.PI); - _yuitest_coverline("build/dial/dial.js", 507); -ang = ((this._dialCenterX - handleCenterX) < 0) ? ang + 90 : ang + 90 + 180; // Compensate for neg angles from Math.atan - _yuitest_coverline("build/dial/dial.js", 508); -return ang; - }, - - /** - * calculates the XY of the center of the dial relative to the ring node. - * This is needed for calculating the angle of the handle - * - * @method _calculateDialCenter - * @protected - */ - _calculateDialCenter : function(){ // #2531111 value, and marker don't track handle when dial position changes on page (resize when inline) - _yuitest_coverfunc("build/dial/dial.js", "_calculateDialCenter", 518); -_yuitest_coverline("build/dial/dial.js", 519); -this._dialCenterX = this._ringNode.get('offsetWidth') / 2; - _yuitest_coverline("build/dial/dial.js", 520); -this._dialCenterY = this._ringNode.get('offsetHeight') / 2; - }, - - /** - * Handles the mouseup on the ring - * - * @method _handleRingMouseup - * @protected - */ - _handleRingMouseup : function(){ - _yuitest_coverfunc("build/dial/dial.js", "_handleRingMouseup", 529); -_yuitest_coverline("build/dial/dial.js", 530); -this._handleNode.focus(); // need to re-focus on the handle so keyboard is accessible [#2530206] - }, - - /** - * Handles the mouseup on the centerButton - * - * @method _handleCenterButtonMouseup - * @protected - */ - _handleCenterButtonMouseup : function(){ - _yuitest_coverfunc("build/dial/dial.js", "_handleCenterButtonMouseup", 539); -_yuitest_coverline("build/dial/dial.js", 540); -this._handleNode.focus(); // need to re-focus on the handle so keyboard is accessible [#2530206] - }, - - /** - * Handles the mousedown on the handle - * - * @method _handleHandleMousedown - * @protected - */ - _handleHandleMousedown : function(){ - _yuitest_coverfunc("build/dial/dial.js", "_handleHandleMousedown", 549); -_yuitest_coverline("build/dial/dial.js", 550); -this._handleNode.focus(); // need to re-focus on the handle so keyboard is accessible [#2530206] - // this is better done here instead of on _handleDragEnd - // because we should make the keyboard accessible after a click of the handle - }, - - /** - * handles the user dragging the handle around the Dial, gets the angle, - * checks for wrapping around top center. - * Sets the new value of the Dial - * - * @method _handleDrag - * @param e {DOMEvent} the drag event object - * @protected - */ - _handleDrag : function(e){ - _yuitest_coverfunc("build/dial/dial.js", "_handleDrag", 564); -_yuitest_coverline("build/dial/dial.js", 565); -var handleCenterX, - handleCenterY, - ang, - newValue; - - // The event was emitted from drag:drag of handle. - // The center of the handle is top left position of the handle node + radius of handle. - // This is different than a mousedown on the ring. - _yuitest_coverline("build/dial/dial.js", 573); -handleCenterX = (parseInt(this._handleNode.getStyle('left'),10) + this._handleNodeRadius); - _yuitest_coverline("build/dial/dial.js", 574); -handleCenterY = (parseInt(this._handleNode.getStyle('top'),10) + this._handleNodeRadius); - _yuitest_coverline("build/dial/dial.js", 575); -ang = this._getAngleFromHandleCenter(handleCenterX, handleCenterY); - - // check for need to set timesWrapped - _yuitest_coverline("build/dial/dial.js", 578); -if((this._prevAng > 270) && (ang < 90)){ // If wrapping, clockwise - _yuitest_coverline("build/dial/dial.js", 579); -if(this._timesWrapped < this._maxTimesWrapped){ - _yuitest_coverline("build/dial/dial.js", 580); -this._timesWrapped = (this._timesWrapped + 1); - } - }else {_yuitest_coverline("build/dial/dial.js", 582); -if((this._prevAng < 90) && (ang > 270)){ // if un-wrapping, counter-clockwise - _yuitest_coverline("build/dial/dial.js", 583); -if(this._timesWrapped > this._minTimesWrapped){ - _yuitest_coverline("build/dial/dial.js", 584); -this._timesWrapped = (this._timesWrapped - 1); - } - }} - _yuitest_coverline("build/dial/dial.js", 587); -newValue = this._getValueFromAngle(ang); // This function needs the current _timesWrapped value. That's why it comes after the _timesWrapped code above - - // If you've gone past max more than one full revolution, we decrement the _timesWrapped value - // This gives the effect of a ratchet mechanism. - // It feels like you are never more than one revolution past max - // The effect is the same for min, only in reverse. - // We can't reset the _timesWrapped to the max or min here. - // If we did, the next (continuous) drag would reset the value incorrectly. - _yuitest_coverline("build/dial/dial.js", 595); -if(newValue > (this._maxValue + this._stepsPerRevolution) ){ - _yuitest_coverline("build/dial/dial.js", 596); -this._timesWrapped --; - }else {_yuitest_coverline("build/dial/dial.js", 597); -if(newValue < (this._minValue - this._stepsPerRevolution) ){ - _yuitest_coverline("build/dial/dial.js", 598); -this._timesWrapped ++; - }} - _yuitest_coverline("build/dial/dial.js", 600); -this._prevAng = ang; // need to keep the previous angle in order to check for wrapping on the next drag, click, or keypress - - _yuitest_coverline("build/dial/dial.js", 602); -this._handleValuesBeyondMinMax(e, newValue); - }, - - /** - * handles a mousedown or gesturemovestart event on the ring node - * - * @method _handleMousedown - * @param e {DOMEvent} the event object - * @private - */ - _handleMousedown : function(e){ // #2530306 - _yuitest_coverfunc("build/dial/dial.js", "_handleMousedown", 612); -_yuitest_coverline("build/dial/dial.js", 613); -var minAng = this._getAngleFromValue(this._minValue), - maxAng = this._getAngleFromValue(this._maxValue), - newValue, oppositeMidRangeAngle, - handleCenterX, handleCenterY, - ang; - - // The event was emitted from mousedown on the ring node, - // so the center of the handle should be the XY of mousedown. - _yuitest_coverline("build/dial/dial.js", 621); -if(Y.UA.ios){ // ios adds the scrollLeft and top onto clientX and Y in a native click - _yuitest_coverline("build/dial/dial.js", 622); -handleCenterX = (e.clientX - this._ringNode.getX()); - _yuitest_coverline("build/dial/dial.js", 623); -handleCenterY = (e.clientY - this._ringNode.getY()); - }else{ - _yuitest_coverline("build/dial/dial.js", 625); -handleCenterX = (e.clientX + Y.one('document').get('scrollLeft') - this._ringNode.getX()); - _yuitest_coverline("build/dial/dial.js", 626); -handleCenterY = (e.clientY + Y.one('document').get('scrollTop') - this._ringNode.getY()); - } - _yuitest_coverline("build/dial/dial.js", 628); -ang = this._getAngleFromHandleCenter(handleCenterX, handleCenterY); - - /* /////////////////////////////////////////////////////////////////////////////////////////////////////// - * The next sections of logic - * set this._timesWrapped in the different cases of value range - * and value range position, - * then the Dial value is set at the end of this method - */ /////////////////////////////////////////////////////////////////////////////////////////////////////// - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////// - _yuitest_coverline("build/dial/dial.js", 639); -if(this._maxValue - this._minValue > this._stepsPerRevolution){ - // Case: range min-to-max is greater than stepsPerRevolution (one revolution) - - // This checks the shortest way around the dial between the prevAng and this ang. - _yuitest_coverline("build/dial/dial.js", 643); -if(Math.abs(this._prevAng - ang) > 180){ // this crossed a wrapping - - // Only change the _timesWrapped if it's between minTimesWrapped and maxTimesWrapped - _yuitest_coverline("build/dial/dial.js", 646); -if((this._timesWrapped > this._minTimesWrapped) && - (this._timesWrapped < this._maxTimesWrapped) - ){ - // this checks which direction, clock wise or CCW and incr or decr _timesWrapped - _yuitest_coverline("build/dial/dial.js", 650); -this._timesWrapped = ((this._prevAng - ang) > 0) ? (this._timesWrapped + 1) : (this._timesWrapped - 1); - } - // special case of getting un-stuck from a min value case - // where timesWrapped is minTimesWrapped but new ang won't trigger a cross wrap boundry - // because prevAng is set to 0 or > 0 - }else {_yuitest_coverline("build/dial/dial.js", 655); -if( - (this._timesWrapped === this._minTimesWrapped) && - (ang - this._prevAng < 180) - ){ - _yuitest_coverline("build/dial/dial.js", 659); -this._timesWrapped ++; - }} //it didn't cross a wrapping boundary - - } ///////////////////////////////////////////////////////////////////////////////////////////////////////// - else {_yuitest_coverline("build/dial/dial.js", 663); -if(this._maxValue - this._minValue === this._stepsPerRevolution){ - // Case: range min-to-max === stepsPerRevolution (one revolution) - // This means min and max will be at same angle - // This does not mean they are at "north" - - _yuitest_coverline("build/dial/dial.js", 668); -if(ang < minAng){ // if mousedown angle is < minAng (and maxAng, because they're the same) - // The only way it can be, is if min and max are not at north - _yuitest_coverline("build/dial/dial.js", 670); -this._timesWrapped = 1; - }else{ - _yuitest_coverline("build/dial/dial.js", 672); -this._timesWrapped = 0; - } - - } ////////////////////////////////////////////////////////////////////////////////////////////////////////// - else {_yuitest_coverline("build/dial/dial.js", 676); -if(minAng > maxAng){ - // Case: range includes the wrap point (north) - // Because of "else if"... - // range is < stepsPerRevolution - - _yuitest_coverline("build/dial/dial.js", 681); -if( - (this._prevAng >= minAng) && // if prev angle was greater than angle of min and... - (ang <= (minAng + maxAng) / 2) // the angle of this click is less than - // the angle opposite the mid-range angle, then... - ){ - _yuitest_coverline("build/dial/dial.js", 686); -this._timesWrapped ++; - }else {_yuitest_coverline("build/dial/dial.js", 687); -if( - (this._prevAng <= maxAng) && - // if prev angle is < max angle and... - - (ang > (minAng + maxAng) / 2) - // the angle of this click is greater than, - // the angle opposite the mid-range angle and... - - ){ - _yuitest_coverline("build/dial/dial.js", 696); -this._timesWrapped --; - }} - - } //////////////////////////////////////////////////////////////////////////////////////////////////// - else{ - // "else" Case: min-to-max range doesn't include the wrap point - // Because of "else if"... - // range is still < stepsPerRevolution - - _yuitest_coverline("build/dial/dial.js", 705); -if ((ang < minAng) || (ang > maxAng)){ // angle is out of range - _yuitest_coverline("build/dial/dial.js", 706); -oppositeMidRangeAngle = (((minAng + maxAng) / 2) + 180) % 360; - // This is the bisection of the min-to-max range + 180. (opposite the bisection) - - _yuitest_coverline("build/dial/dial.js", 709); -if(oppositeMidRangeAngle > 180){ - _yuitest_coverline("build/dial/dial.js", 710); -newValue = ((maxAng < ang) && (ang < oppositeMidRangeAngle)) ? this.get('max') : this.get('min'); - }else{ //oppositeMidRangeAngle <= 180 - _yuitest_coverline("build/dial/dial.js", 712); -newValue = ((minAng > ang) && (ang > oppositeMidRangeAngle)) ? this.get('min') : this.get('max'); - } - _yuitest_coverline("build/dial/dial.js", 714); -this._prevAng = this._getAngleFromValue(newValue); - _yuitest_coverline("build/dial/dial.js", 715); -this.set('value', newValue); - _yuitest_coverline("build/dial/dial.js", 716); -this._setTimesWrappedFromValue(newValue); - _yuitest_coverline("build/dial/dial.js", 717); -return; - } - }}} - - // Now that _timesWrapped is set value ....................................................................... - _yuitest_coverline("build/dial/dial.js", 722); -newValue = this._getValueFromAngle(ang); // This function needs the correct, current _timesWrapped value. - _yuitest_coverline("build/dial/dial.js", 723); -this._prevAng = ang; - - _yuitest_coverline("build/dial/dial.js", 725); -this._handleValuesBeyondMinMax(e, newValue); - }, - - /** - * handles the case where the value is less than min or greater than max - * - * @method _handleValuesBeyondMinMax - * @param e {DOMEvent} the event object - * @param newValue {number} current value of the dial - * @protected - */ - _handleValuesBeyondMinMax : function(e, newValue){ // #2530306 - // If _getValueFromAngle() is passed 0, it increments the _timesWrapped value. - // handle hitting max and min and going beyond, stops at max or min - _yuitest_coverfunc("build/dial/dial.js", "_handleValuesBeyondMinMax", 736); -_yuitest_coverline("build/dial/dial.js", 739); -if((newValue >= this._minValue) && (newValue <= this._maxValue)) { - _yuitest_coverline("build/dial/dial.js", 740); -this.set('value', newValue); - // [#2530206] transfer the mousedown event from the _ringNode to the _handleNode drag, so we can mousedown, then continue dragging - _yuitest_coverline("build/dial/dial.js", 742); -if(e.currentTarget === this._ringNode){ - // Delegate to DD's natural behavior - _yuitest_coverline("build/dial/dial.js", 744); -this._dd1._handleMouseDownEvent(e); - } - }else {_yuitest_coverline("build/dial/dial.js", 746); -if(newValue > this._maxValue){ - _yuitest_coverline("build/dial/dial.js", 747); -this.set('value', this._maxValue); - _yuitest_coverline("build/dial/dial.js", 748); -if(e.type === 'gesturemovestart'){ - _yuitest_coverline("build/dial/dial.js", 749); -this._prevAng = this._getAngleFromValue(this._maxValue); // #2530766 need for mousedown on the ring; causes prob for drag - } - }else {_yuitest_coverline("build/dial/dial.js", 751); -if(newValue < this._minValue){ - _yuitest_coverline("build/dial/dial.js", 752); -this.set('value', this._minValue); - _yuitest_coverline("build/dial/dial.js", 753); -if(e.type === 'gesturemovestart'){ - _yuitest_coverline("build/dial/dial.js", 754); -this._prevAng = this._getAngleFromValue(this._minValue); - } - }}} - }, - - /** - * handles the user starting to drag the handle around the Dial - * - * @method _handleDragStart - * @param e {DOMEvent} the drag event object - * @protected - */ - _handleDragStart : function(e){ - _yuitest_coverfunc("build/dial/dial.js", "_handleDragStart", 766); -_yuitest_coverline("build/dial/dial.js", 767); -this._markerNode.removeClass(Dial.CSS_CLASSES.hidden); - }, - - /* - * When handle is handleDragEnd, this animates the return to the fixed dial - */ - - /** - * handles the end of a user dragging the handle, animates the handle returning to - * resting position. - * - * @method _handleDragEnd - * @protected - */ - _handleDragEnd : function(){ - _yuitest_coverfunc("build/dial/dial.js", "_handleDragEnd", 781); -_yuitest_coverline("build/dial/dial.js", 782); -var node = this._handleNode; - _yuitest_coverline("build/dial/dial.js", 783); -node.transition({ - duration: 0.08, // seconds - easing: 'ease-in', - left: this._setNodeToFixedRadius(this._handleNode, true)[0] + 'px', - top: this._setNodeToFixedRadius(this._handleNode, true)[1] + 'px' - }, Y.bind(function(){ - _yuitest_coverfunc("build/dial/dial.js", "(anonymous 2)", 788); -_yuitest_coverline("build/dial/dial.js", 789); -var value = this.get('value'); - //[#2530206] only hide marker if not at max or min - // more persistant user visibility of when the dial is at max or min - _yuitest_coverline("build/dial/dial.js", 792); -if((value > this._minValue) && (value < this._maxValue)){ - _yuitest_coverline("build/dial/dial.js", 793); -this._markerNode.addClass(Dial.CSS_CLASSES.hidden); - }else{ - _yuitest_coverline("build/dial/dial.js", 795); -this._setTimesWrappedFromValue(value); //#2530766 secondary bug when drag past max + cross wrapping boundry - _yuitest_coverline("build/dial/dial.js", 796); -this._prevAng = this._getAngleFromValue(value); //#2530766 secondary bug when drag past max + cross wrapping boundry - } - }, this) - ); - }, - - /** - * returns the XY of the fixed position, handleDistance, from the center of the Dial (resting position). - * The XY also represents the angle related to the current value. - * If typeArray is true, [X,Y] is returned. - * If typeArray is false, the XY of the obj node passed in is set. - * - * @method _setNodeToFixedRadius - * @param obj {Node} - * @param typeArray {Boolean} true returns an array [X,Y] - * @protected - * @return {Array} an array of [XY] is optionally returned - */ - _setNodeToFixedRadius : function(obj, typeArray){ - _yuitest_coverfunc("build/dial/dial.js", "_setNodeToFixedRadius", 814); -_yuitest_coverline("build/dial/dial.js", 815); -var thisAngle = (this._angle - 90), - rad = (Math.PI / 180), - newY = Math.round(Math.sin(thisAngle * rad) * this._handleDistance), - newX = Math.round(Math.cos(thisAngle * rad) * this._handleDistance), - dia = obj.get('offsetWidth'); //Ticket #2529852 - - _yuitest_coverline("build/dial/dial.js", 821); -newY = newY - (dia * 0.5); - _yuitest_coverline("build/dial/dial.js", 822); -newX = newX - (dia * 0.5); - _yuitest_coverline("build/dial/dial.js", 823); -if(typeArray){ // just need the style for css transform left and top to animate the handle drag:end - _yuitest_coverline("build/dial/dial.js", 824); -return [(this._ringNodeRadius + newX), (this._ringNodeRadius + newY)]; - }else{ - _yuitest_coverline("build/dial/dial.js", 826); -obj.setStyle('left', (this._ringNodeRadius + newX) + 'px'); - _yuitest_coverline("build/dial/dial.js", 827); -obj.setStyle('top', (this._ringNodeRadius + newY) + 'px'); - } - }, - - /** - * Synchronizes the DOM state with the attribute settings. - * - * @method syncUI - */ - syncUI : function() { - // Make the marker and the resetString display so their placement and borderRadius can be calculated, then hide them again. - // We would have used visibility:hidden in the css of this class, - // but IE8 VML never returns to visible after applying visibility:hidden then removing it. - _yuitest_coverfunc("build/dial/dial.js", "syncUI", 836); -_yuitest_coverline("build/dial/dial.js", 840); -this._setSizes(); - _yuitest_coverline("build/dial/dial.js", 841); -this._calculateDialCenter(); // #2531111 initialize center of dial - _yuitest_coverline("build/dial/dial.js", 842); -this._setBorderRadius(); - _yuitest_coverline("build/dial/dial.js", 843); -this._uiSetValue(this.get("value")); - _yuitest_coverline("build/dial/dial.js", 844); -this._markerNode.addClass(Dial.CSS_CLASSES.hidden); - _yuitest_coverline("build/dial/dial.js", 845); -this._resetString.addClass(Dial.CSS_CLASSES.hidden); - }, - - /** - * sets the sizes of ring, center-button, marker, handle, and VML ovals in pixels. - * Needed only because some IE versions - * ignore CSS percent sizes/offsets. - * so these must be set in pixels. - * Normally these are set in % of the ring. - * - * @method _setSizes - * @protected - */ - _setSizes : function(){ - _yuitest_coverfunc("build/dial/dial.js", "_setSizes", 858); -_yuitest_coverline("build/dial/dial.js", 859); -var dia = this.get('diameter'), - offset, offsetResetX, offsetResetY, - setSize = function(node, dia, percent){ - _yuitest_coverfunc("build/dial/dial.js", "setSize", 861); -_yuitest_coverline("build/dial/dial.js", 862); -var suffix = 'px'; - _yuitest_coverline("build/dial/dial.js", 863); -node.getElementsByTagName('oval').setStyle('width', (dia * percent) + suffix); - _yuitest_coverline("build/dial/dial.js", 864); -node.getElementsByTagName('oval').setStyle('height', (dia * percent) + suffix); - _yuitest_coverline("build/dial/dial.js", 865); -node.setStyle('width', (dia * percent) + suffix); - _yuitest_coverline("build/dial/dial.js", 866); -node.setStyle('height', (dia * percent) + suffix); - }; - _yuitest_coverline("build/dial/dial.js", 868); -setSize(this._ringNode, dia, 1.0); - _yuitest_coverline("build/dial/dial.js", 869); -setSize(this._handleNode, dia, this.get('handleDiameter')); - _yuitest_coverline("build/dial/dial.js", 870); -setSize(this._markerNode, dia, this.get('markerDiameter')); - _yuitest_coverline("build/dial/dial.js", 871); -setSize(this._centerButtonNode, dia, this.get('centerButtonDiameter')); - - // Set these (used for trig) this way instead of relative to dia, - // in case they have borders, have images etc. - _yuitest_coverline("build/dial/dial.js", 875); -this._ringNodeRadius = this._ringNode.get('offsetWidth') * 0.5; - _yuitest_coverline("build/dial/dial.js", 876); -this._handleNodeRadius = this._handleNode.get('offsetWidth') * 0.5; - _yuitest_coverline("build/dial/dial.js", 877); -this._markerNodeRadius = this._markerNode.get('offsetWidth') * 0.5; - _yuitest_coverline("build/dial/dial.js", 878); -this._centerButtonNodeRadius = this._centerButtonNode.get('offsetWidth') * 0.5; - _yuitest_coverline("build/dial/dial.js", 879); -this._handleDistance = this._ringNodeRadius * this.get('handleDistance'); - // place the centerButton - _yuitest_coverline("build/dial/dial.js", 881); -offset = (this._ringNodeRadius - this._centerButtonNodeRadius); - _yuitest_coverline("build/dial/dial.js", 882); -this._centerButtonNode.setStyle('left', offset + 'px'); - _yuitest_coverline("build/dial/dial.js", 883); -this._centerButtonNode.setStyle('top', offset + 'px'); - /* - Place the resetString - This seems like it should be able to be done with CSS, - But since there is also a VML oval in IE that is absolute positioned, - The resetString ends up behind the VML oval. - */ - _yuitest_coverline("build/dial/dial.js", 890); -offsetResetX = (this._centerButtonNodeRadius - (this._resetString.get('offsetWidth') * 0.5)); - _yuitest_coverline("build/dial/dial.js", 891); -offsetResetY = (this._centerButtonNodeRadius - (this._resetString.get('offsetHeight') * 0.5)); - _yuitest_coverline("build/dial/dial.js", 892); -this._resetString.setStyles({'left':offsetResetX + 'px', 'top':offsetResetY + 'px'}); - }, - - - /** - * renders the DOM object for the Dial's label - * - * @method _renderLabel - * @protected - */ - _renderLabel : function() { - _yuitest_coverfunc("build/dial/dial.js", "_renderLabel", 902); -_yuitest_coverline("build/dial/dial.js", 903); -var contentBox = this.get("contentBox"), - label = contentBox.one("." + Dial.CSS_CLASSES.label); - _yuitest_coverline("build/dial/dial.js", 905); -if (!label) { - _yuitest_coverline("build/dial/dial.js", 906); -label = Node.create(Y.Lang.sub(Dial.LABEL_TEMPLATE, this.get('strings'))); - _yuitest_coverline("build/dial/dial.js", 907); -contentBox.append(label); - } - _yuitest_coverline("build/dial/dial.js", 909); -this._labelNode = label; - _yuitest_coverline("build/dial/dial.js", 910); -this._valueStringNode = this._labelNode.one("." + Dial.CSS_CLASSES.valueString); - }, - - /** - * renders the DOM object for the Dial's background ring - * - * @method _renderRing - * @protected - */ - _renderRing : function() { - _yuitest_coverfunc("build/dial/dial.js", "_renderRing", 919); -_yuitest_coverline("build/dial/dial.js", 920); -var contentBox = this.get("contentBox"), - ring = contentBox.one("." + Dial.CSS_CLASSES.ring); - _yuitest_coverline("build/dial/dial.js", 922); -if (!ring) { - _yuitest_coverline("build/dial/dial.js", 923); -ring = contentBox.appendChild(Dial.RING_TEMPLATE); - _yuitest_coverline("build/dial/dial.js", 924); -ring.setStyles({width:this.get('diameter') + 'px', height:this.get('diameter') + 'px'}); - } - _yuitest_coverline("build/dial/dial.js", 926); -this._ringNode = ring; - }, - - /** - * renders the DOM object for the Dial's background marker which - * tracks the angle of the user dragging the handle - * - * @method _renderMarker - * @protected - */ - _renderMarker : function() { - _yuitest_coverfunc("build/dial/dial.js", "_renderMarker", 936); -_yuitest_coverline("build/dial/dial.js", 937); -var contentBox = this.get("contentBox"), - marker = contentBox.one("." + Dial.CSS_CLASSES.marker); - _yuitest_coverline("build/dial/dial.js", 939); -if (!marker) { - _yuitest_coverline("build/dial/dial.js", 940); -marker = contentBox.one('.' + Dial.CSS_CLASSES.ring).appendChild(Dial.MARKER_TEMPLATE); - } - _yuitest_coverline("build/dial/dial.js", 942); -this._markerNode = marker; - }, - - /** - * renders the DOM object for the Dial's center - * - * @method _renderCenterButton - * @protected - */ - _renderCenterButton : function() { - _yuitest_coverfunc("build/dial/dial.js", "_renderCenterButton", 951); -_yuitest_coverline("build/dial/dial.js", 952); -var contentBox = this.get("contentBox"), - centerButton = contentBox.one("." + Dial.CSS_CLASSES.centerButton); - _yuitest_coverline("build/dial/dial.js", 954); -if (!centerButton) { - _yuitest_coverline("build/dial/dial.js", 955); -centerButton = Node.create(Y.Lang.sub(Dial.CENTER_BUTTON_TEMPLATE, this.get('strings'))); - _yuitest_coverline("build/dial/dial.js", 956); -contentBox.one('.' + Dial.CSS_CLASSES.ring).append(centerButton); - } - _yuitest_coverline("build/dial/dial.js", 958); -this._centerButtonNode = centerButton; - _yuitest_coverline("build/dial/dial.js", 959); -this._resetString = this._centerButtonNode.one('.' + Dial.CSS_CLASSES.resetString); - }, - - /** - * renders the DOM object for the Dial's user draggable handle - * - * @method _renderHandle - * @protected - */ - _renderHandle : function() { - _yuitest_coverfunc("build/dial/dial.js", "_renderHandle", 968); -_yuitest_coverline("build/dial/dial.js", 969); -var labelId = Dial.CSS_CLASSES.label + Y.guid(), //get this unique id once then use for handle and label for ARIA - contentBox = this.get("contentBox"), - handle = contentBox.one("." + Dial.CSS_CLASSES.handle); - _yuitest_coverline("build/dial/dial.js", 972); -if (!handle) { - _yuitest_coverline("build/dial/dial.js", 973); -handle = Node.create(Y.Lang.sub(Dial.HANDLE_TEMPLATE, this.get('strings'))); - _yuitest_coverline("build/dial/dial.js", 974); -handle.setAttribute('aria-labelledby', labelId); // get unique id for specifying a label & handle for ARIA - _yuitest_coverline("build/dial/dial.js", 975); -this._labelNode.one('.' + Dial.CSS_CLASSES.labelString).setAttribute('id', labelId); // When handle gets focus, screen reader will include label text when reading the value. - _yuitest_coverline("build/dial/dial.js", 976); -contentBox.one('.' + Dial.CSS_CLASSES.ring).append(handle); - } - _yuitest_coverline("build/dial/dial.js", 978); -this._handleNode = handle; - }, - - /** - * sets the visible UI label HTML string - * - * @method _setLabelString - * @param str {HTML} - * @protected - * @deprecated Use DialObjName.set('strings',{'label':'My new label'}); before DialObjName.render(); - - */ - _setLabelString : function(str) { - _yuitest_coverfunc("build/dial/dial.js", "_setLabelString", 990); -_yuitest_coverline("build/dial/dial.js", 991); -this.get("contentBox").one("." + Dial.CSS_CLASSES.labelString).setHTML(str); - }, - - /** - * sets the visible UI label HTML string - * - * @method _setResetString - * @param str {HTML} - * @protected - * @deprecated Use DialObjName.set('strings',{'resetStr':'My new reset string'}); before DialObjName.render(); - */ - _setResetString : function(str) { - _yuitest_coverfunc("build/dial/dial.js", "_setResetString", 1002); -_yuitest_coverline("build/dial/dial.js", 1003); -this.get("contentBox").one("." + Dial.CSS_CLASSES.resetString).setHTML(str); - // this._setXYResetString(); // This used to recenter the string in the button. Done with CSS now. Method has been removed. - // this._resetString.setHTML(''); //We no longer show/hide the reset string with setHTML but by addClass and removeClass .yui3-dial-reset-string-hidden - }, - - /** - * sets the tooltip HTML string in the Dial's handle - * - * @method _setTooltipString - * @param str {HTML} - * @protected - * @deprecated Use DialObjName.set('strings',{'tooltipHandle':'My new tooltip'}); before DialObjName.render(); - */ - _setTooltipString : function(str) { - _yuitest_coverfunc("build/dial/dial.js", "_setTooltipString", 1016); -_yuitest_coverline("build/dial/dial.js", 1017); -this._handleNode.set('title', str); - }, - - /** - * sets the Dial's value in response to key events. - * Left and right keys are in a separate method - * in case an implementation wants to increment values - * but needs left and right arrow keys for other purposes. - * - * @method _onDirectionKey - * @param e {Event} the key event - * @protected - */ - _onDirectionKey : function(e) { - _yuitest_coverfunc("build/dial/dial.js", "_onDirectionKey", 1030); -_yuitest_coverline("build/dial/dial.js", 1031); -e.preventDefault(); - _yuitest_coverline("build/dial/dial.js", 1032); -switch (e.charCode) { - case 38: // up - _yuitest_coverline("build/dial/dial.js", 1034); -this._incrMinor(); - _yuitest_coverline("build/dial/dial.js", 1035); -break; - case 40: // down - _yuitest_coverline("build/dial/dial.js", 1037); -this._decrMinor(); - _yuitest_coverline("build/dial/dial.js", 1038); -break; - case 36: // home - _yuitest_coverline("build/dial/dial.js", 1040); -this._setToMin(); - _yuitest_coverline("build/dial/dial.js", 1041); -break; - case 35: // end - _yuitest_coverline("build/dial/dial.js", 1043); -this._setToMax(); - _yuitest_coverline("build/dial/dial.js", 1044); -break; - case 33: // page up - _yuitest_coverline("build/dial/dial.js", 1046); -this._incrMajor(); - _yuitest_coverline("build/dial/dial.js", 1047); -break; - case 34: // page down - _yuitest_coverline("build/dial/dial.js", 1049); -this._decrMajor(); - _yuitest_coverline("build/dial/dial.js", 1050); -break; - } - }, - - /** - * sets the Dial's value in response to left or right key events - * - * @method _onLeftRightKey - * @param e {Event} the key event - * @protected - */ - _onLeftRightKey : function(e) { - _yuitest_coverfunc("build/dial/dial.js", "_onLeftRightKey", 1061); -_yuitest_coverline("build/dial/dial.js", 1062); -e.preventDefault(); - _yuitest_coverline("build/dial/dial.js", 1063); -switch (e.charCode) { - case 37: // left - _yuitest_coverline("build/dial/dial.js", 1065); -this._decrMinor(); - _yuitest_coverline("build/dial/dial.js", 1066); -break; - case 39: // right - _yuitest_coverline("build/dial/dial.js", 1068); -this._incrMinor(); - _yuitest_coverline("build/dial/dial.js", 1069); -break; - } - }, - - /** - * sets the Dial's value in response to left or right key events when a meta (mac command/apple) key is also pressed - * - * @method _onLeftRightKeyMeta - * @param e {Event} the key event - * @protected - */ - _onLeftRightKeyMeta : function(e) { - _yuitest_coverfunc("build/dial/dial.js", "_onLeftRightKeyMeta", 1080); -_yuitest_coverline("build/dial/dial.js", 1081); -e.preventDefault(); - _yuitest_coverline("build/dial/dial.js", 1082); -switch (e.charCode) { - case 37: // left + meta - _yuitest_coverline("build/dial/dial.js", 1084); -this._setToMin(); - _yuitest_coverline("build/dial/dial.js", 1085); -break; - case 39: // right + meta - _yuitest_coverline("build/dial/dial.js", 1087); -this._setToMax(); - _yuitest_coverline("build/dial/dial.js", 1088); -break; - } - }, - - /** - * increments Dial value by a minor increment - * - * @method _incrMinor - * @protected - */ - _incrMinor : function(){ - _yuitest_coverfunc("build/dial/dial.js", "_incrMinor", 1098); -_yuitest_coverline("build/dial/dial.js", 1099); -var newVal = (this.get('value') + this.get("minorStep")); - _yuitest_coverline("build/dial/dial.js", 1100); -newVal = Math.min(newVal, this.get("max")); - // [#2530045] .toFixed returns a string. - // Dial's value needs a number. -0 makes it a number, but removes trailing zeros. - // Added toFixed(...) again in _uiSetValue where content of yui3-dial-value-string is set. - // Removing the toFixed here, loses the feature of "snap-to" when for example, stepsPerRevolution is 10 and decimalPlaces is 0. - _yuitest_coverline("build/dial/dial.js", 1105); -this.set('value', newVal.toFixed(this.get('decimalPlaces')) - 0); - }, - - /** - * decrements Dial value by a minor increment - * - * @method _decrMinor - * @protected - */ - _decrMinor : function(){ - _yuitest_coverfunc("build/dial/dial.js", "_decrMinor", 1114); -_yuitest_coverline("build/dial/dial.js", 1115); -var newVal = (this.get('value') - this.get("minorStep")); - _yuitest_coverline("build/dial/dial.js", 1116); -newVal = Math.max(newVal, this.get("min")); - _yuitest_coverline("build/dial/dial.js", 1117); -this.set('value', newVal.toFixed(this.get('decimalPlaces')) - 0); - }, - - /** - * increments Dial value by a major increment - * - * @method _incrMajor - * @protected - */ - _incrMajor : function(){ - _yuitest_coverfunc("build/dial/dial.js", "_incrMajor", 1126); -_yuitest_coverline("build/dial/dial.js", 1127); -var newVal = (this.get('value') + this.get("majorStep")); - _yuitest_coverline("build/dial/dial.js", 1128); -newVal = Math.min(newVal, this.get("max")); - _yuitest_coverline("build/dial/dial.js", 1129); -this.set('value', newVal.toFixed(this.get('decimalPlaces')) - 0); - }, - - /** - * decrements Dial value by a major increment - * - * @method _decrMajor - * @protected - */ - _decrMajor : function(){ - _yuitest_coverfunc("build/dial/dial.js", "_decrMajor", 1138); -_yuitest_coverline("build/dial/dial.js", 1139); -var newVal = (this.get('value') - this.get("majorStep")); - _yuitest_coverline("build/dial/dial.js", 1140); -newVal = Math.max(newVal, this.get("min")); - _yuitest_coverline("build/dial/dial.js", 1141); -this.set('value', newVal.toFixed(this.get('decimalPlaces')) - 0); - }, - - /** - * sets Dial value to dial's max attr - * - * @method _setToMax - * @protected - */ - _setToMax : function(){ - _yuitest_coverfunc("build/dial/dial.js", "_setToMax", 1150); -_yuitest_coverline("build/dial/dial.js", 1151); -this.set('value', this.get("max")); - }, - - /** - * sets Dial value to dial's min attr - * - * @method _setToMin - * @protected - */ - _setToMin : function(){ - _yuitest_coverfunc("build/dial/dial.js", "_setToMin", 1160); -_yuitest_coverline("build/dial/dial.js", 1161); -this.set('value', this.get("min")); - }, - - /** - * resets Dial value to the orignal initial value. - * - * @method _resetDial - * @protected - */ - _resetDial : function(e){ - _yuitest_coverfunc("build/dial/dial.js", "_resetDial", 1170); -_yuitest_coverline("build/dial/dial.js", 1171); -if(e){ - _yuitest_coverline("build/dial/dial.js", 1172); -e.stopPropagation(); //[#2530206] need to add so mousedown doesn't propagate to ring and move the handle - } - _yuitest_coverline("build/dial/dial.js", 1174); -this.set('value', this._originalValue); - _yuitest_coverline("build/dial/dial.js", 1175); -this._resetString.addClass(Dial.CSS_CLASSES.hidden); //[#2530441] - _yuitest_coverline("build/dial/dial.js", 1176); -this._handleNode.focus(); - }, - - /** - * returns the handle angle associated with the current value of the Dial. - * Returns a number between 0 and 360. - * - * @method _getAngleFromValue - * @param newVal {Number} the current value of the Dial - * @return {Number} the angle associated with the current Dial value - * @protected - */ - _getAngleFromValue : function(newVal){ - _yuitest_coverfunc("build/dial/dial.js", "_getAngleFromValue", 1188); -_yuitest_coverline("build/dial/dial.js", 1189); -var nonWrappedPartOfValue = newVal % this._stepsPerRevolution, - angleFromValue = nonWrappedPartOfValue / this._stepsPerRevolution * 360; - _yuitest_coverline("build/dial/dial.js", 1191); -return (angleFromValue < 0) ? (angleFromValue + 360) : angleFromValue; - }, - - /** - * returns the value of the Dial calculated from the current handle angle - * - * @method _getValueFromAngle - * @param angle {Number} the current angle of the Dial's handle - * @return {Number} the current Dial value corresponding to the handle position - * @protected - */ - _getValueFromAngle : function(angle){ - _yuitest_coverfunc("build/dial/dial.js", "_getValueFromAngle", 1202); -_yuitest_coverline("build/dial/dial.js", 1203); -if(angle < 0){ - _yuitest_coverline("build/dial/dial.js", 1204); -angle = (360 + angle); - }else {_yuitest_coverline("build/dial/dial.js", 1205); -if(angle === 0){ - _yuitest_coverline("build/dial/dial.js", 1206); -angle = 360; - }} - _yuitest_coverline("build/dial/dial.js", 1208); -var value = (angle / 360) * this._stepsPerRevolution; - _yuitest_coverline("build/dial/dial.js", 1209); -value = (value + (this._timesWrapped * this._stepsPerRevolution)); - //return Math.round(value * 100) / 100; - _yuitest_coverline("build/dial/dial.js", 1211); -return value.toFixed(this.get('decimalPlaces')) - 0; - }, - - /** - * calls the method to update the UI whenever the Dial value changes - * - * @method _afterValueChange - * @param e {Event} - * @protected - */ - _afterValueChange : function(e) { - _yuitest_coverfunc("build/dial/dial.js", "_afterValueChange", 1221); -_yuitest_coverline("build/dial/dial.js", 1222); -this._uiSetValue(e.newVal); - }, - - /** - * Changes a value to have the correct decimal places per the attribute decimalPlaces - * - * @method _valueToDecimalPlaces - * @param val {Number} a raw value to set to the Dial - * @return {Number} the input val changed to have the correct decimal places - * @protected - */ - _valueToDecimalPlaces : function(val) { // [#2530206] cleaned up and better user feedback of when it's max or min. - - }, - - /** - * Updates the UI display value of the Dial to reflect - * the value passed in. - * Makes all other needed UI display changes - * - * @method _uiSetValue - * @param val {Number} value of the Dial - * @protected - */ - _uiSetValue : function(val) { // [#2530206] cleaned up and better user feedback of when it's max or min. - _yuitest_coverfunc("build/dial/dial.js", "_uiSetValue", 1246); -_yuitest_coverline("build/dial/dial.js", 1247); -this._angle = this._getAngleFromValue(val); - _yuitest_coverline("build/dial/dial.js", 1248); -if(this._handleNode.hasClass(Dial.CSS_CLASSES.dragging) === false){ - _yuitest_coverline("build/dial/dial.js", 1249); -this._setTimesWrappedFromValue(val); - _yuitest_coverline("build/dial/dial.js", 1250); -this._setNodeToFixedRadius(this._handleNode, false); - _yuitest_coverline("build/dial/dial.js", 1251); -this._prevAng = this._getAngleFromValue(this.get('value')); - } - _yuitest_coverline("build/dial/dial.js", 1253); -this._valueStringNode.setHTML(val.toFixed(this.get('decimalPlaces'))); // [#2530045] - _yuitest_coverline("build/dial/dial.js", 1254); -this._handleNode.set('aria-valuenow', val); - _yuitest_coverline("build/dial/dial.js", 1255); -this._handleNode.set('aria-valuetext', val); - _yuitest_coverline("build/dial/dial.js", 1256); -this._setNodeToFixedRadius(this._markerNode, false); - _yuitest_coverline("build/dial/dial.js", 1257); -if((val === this._maxValue) || (val === this._minValue)){ - _yuitest_coverline("build/dial/dial.js", 1258); -this._markerNode.addClass(Dial.CSS_CLASSES.markerMaxMin); - _yuitest_coverline("build/dial/dial.js", 1259); -if(supportsVML === true){ - _yuitest_coverline("build/dial/dial.js", 1260); -this._markerNode.getElementsByTagName('fill').set('color', '#AB3232'); - } - _yuitest_coverline("build/dial/dial.js", 1262); -this._markerNode.removeClass(Dial.CSS_CLASSES.hidden); - }else{ // not max or min - _yuitest_coverline("build/dial/dial.js", 1264); -if(supportsVML === true){ - _yuitest_coverline("build/dial/dial.js", 1265); -this._markerNode.getElementsByTagName('fill').set('color', '#000'); - } - _yuitest_coverline("build/dial/dial.js", 1267); -this._markerNode.removeClass(Dial.CSS_CLASSES.markerMaxMin); - _yuitest_coverline("build/dial/dial.js", 1268); -if(this._handleNode.hasClass(Dial.CSS_CLASSES.dragging) === false){ // if not max || min, and not dragging handle, hide the marker - _yuitest_coverline("build/dial/dial.js", 1269); -this._markerNode.addClass(Dial.CSS_CLASSES.hidden); - } - } - }, - - /** - * value attribute default validator. Verifies that - * the value being set lies between the min/max value - * - * @method _validateValue - * @param val {Number} value of the Dial - * @protected - */ - _validateValue: function(val) { - _yuitest_coverfunc("build/dial/dial.js", "_validateValue", 1282); -_yuitest_coverline("build/dial/dial.js", 1283); -var min = this.get("min"), - max = this.get("max"); - _yuitest_coverline("build/dial/dial.js", 1285); -return (Lang.isNumber(val) && val >= min && val <= max); - } - }); - _yuitest_coverline("build/dial/dial.js", 1288); -Y.Dial = Dial; - - -}, '3.7.2', {"requires": ["widget", "dd-drag", "event-mouseenter", "event-move", "event-key", "transition", "intl"], "lang": ["en", "es"], "skinnable": true}); diff --git a/lib/yuilib/3.7.2/build/dial/dial-min.js b/lib/yuilib/3.7.2/build/dial/dial-min.js deleted file mode 100644 index be43f4e31ff..00000000000 --- a/lib/yuilib/3.7.2/build/dial/dial-min.js +++ /dev/null @@ -1,7 +0,0 @@ -/* -YUI 3.7.2 (build 5639) -Copyright 2012 Yahoo! Inc. All rights reserved. -Licensed under the BSD License. -http://yuilibrary.com/license/ -*/ -YUI.add("dial",function(e,t){function o(e){o.superclass.constructor.apply(this,arguments)}function u(t){return e.ClassNameManager.getClassName(o.NAME,t)}var n=!1;e.UA.ie&&e.UA.ie<9&&(n=!0);var r=e.Lang,i=e.Widget,s=e.Node;o.NAME="dial",o.ATTRS={min:{value:-220},max:{value:220},diameter:{value:100},handleDiameter:{value:.2},markerDiameter:{value:.1},centerButtonDiameter:{value:.5},value:{value:0,validator:function(e){return this._validateValue(e)}},minorStep:{value:1},majorStep:{value:10},stepsPerRevolution:{value:100},decimalPlaces:{value:0},strings:{valueFn:function(){return e.Intl.get("dial")}},handleDistance:{value:.75}},o.CSS_CLASSES={label:u("label"),labelString:u("label-string"),valueString:u("value-string"),northMark:u("north-mark"),ring:u("ring"),ringVml:u("ring-vml"),marker:u("marker"),markerVml:u("marker-vml"),markerMaxMin:u("marker-max-min"),centerButton:u("center-button"),centerButtonVml:u("center-button-vml"),resetString:u("reset-string"),handle:u("handle"),handleVml:u("handle-vml"),hidden:u("hidden"),dragging:e.ClassNameManager.getClassName("dd-dragging")},o.LABEL_TEMPLATE='
{label}
',n===!1?(o.RING_TEMPLATE='
',o.MARKER_TEMPLATE='
',o.CENTER_BUTTON_TEMPLATE='
{resetStr}
',o.HANDLE_TEMPLATE='
'):(o.RING_TEMPLATE='
'+'
'+''+"
"+"",o.MARKER_TEMPLATE='
'+''+''+""+"
"+"",o.CENTER_BUTTON_TEMPLATE='
'+''+''+''+""+'
{resetStr}
'+"
"+"",o.HANDLE_TEMPLATE='
'+''+''+""+"
"+""),e.extend(o,i,{renderUI:function(){this._renderLabel(),this._renderRing(),this._renderMarker(),this._renderCenterButton(),this._renderHandle(),this.contentBox=this.get("contentBox"),this._originalValue=this.get("value"),this._minValue=this.get("min"),this._maxValue=this.get("max"),this._stepsPerRevolution=this.get("stepsPerRevolution"),this._minTimesWrapped=Math.floor(this._minValue/this._stepsPerRevolution-1),this._maxTimesWrapped=Math.floor(this._maxValue/this._stepsPerRevolution+1),this._timesWrapped=0,this._angle=this._getAngleFromValue(this.get("value")),this._prevAng=this._angle,this._setTimesWrappedFromValue(this._originalValue),this._handleNode.set("aria-valuemin",this._minValue),this._handleNode.set("aria-valuemax",this._maxValue)},_setBorderRadius:function(){this._ringNode.setStyles({WebkitBorderRadius:this._ringNodeRadius+"px",MozBorderRadius:this._ringNodeRadius+"px",borderRadius:this._ringNodeRadius+"px"}),this._handleNode.setStyles({WebkitBorderRadius:this._handleNodeRadius+"px",MozBorderRadius:this._handleNodeRadius+"px",borderRadius:this._handleNodeRadius+"px"}),this._markerNode.setStyles({WebkitBorderRadius:this._markerNodeRadius+"px",MozBorderRadius:this._markerNodeRadius+"px",borderRadius:this._markerNodeRadius+"px"}),this._centerButtonNode.setStyles({WebkitBorderRadius:this._centerButtonNodeRadius+"px",MozBorderRadius:this._centerButtonNodeRadius+"px",borderRadius:this._centerButtonNodeRadius+"px"})},_handleCenterButtonEnter:function(){this._resetString.removeClass(o.CSS_CLASSES.hidden)},_handleCenterButtonLeave:function(){this._resetString.addClass(o.CSS_CLASSES.hidden)},bindUI:function(){this.after("valueChange",this._afterValueChange);var t=this.get("boundingBox"),n=e.UA.opera?"press:":"down:",r=n+"38,40,33,34,35,36",i=n+"37,39",s=n+"37+meta,39+meta";e.on("key",e.bind(this._onDirectionKey,this),t,r),e.on("key",e.bind(this._onLeftRightKey,this),t,i),t.on("key",this._onLeftRightKeyMeta,s,this),e.on("mouseenter",e.bind(this._handleCenterButtonEnter,this),this._centerButtonNode),e.on("mouseleave",e.bind(this._handleCenterButtonLeave,this),this._centerButtonNode),e.on("gesturemovestart",e.bind(this._resetDial,this),this._centerButtonNode),e.on("gesturemoveend",e.bind(this._handleCenterButtonMouseup,this),this._centerButtonNode),e.on("gesturemovestart",e.bind(this._handleHandleMousedown,this),this._handleNode),e.on("gesturemovestart",e.bind(this._handleMousedown,this),this._ringNode),e.on("gesturemoveend",e.bind(this._handleRingMouseup,this),this._ringNode),this._dd1=new e.DD.Drag({node:this._handleNode,on:{"drag:drag":e.bind(this._handleDrag,this),"drag:start":e.bind(this._handleDragStart,this),"drag:end":e.bind(this._handleDragEnd,this)}}),e.bind(this._dd1.addHandle(this._ringNode),this)},_setTimesWrappedFromValue:function(e){e%this._stepsPerRevolution===0?this._timesWrapped=e/this._stepsPerRevolution:this._timesWrapped=Math.floor(e/this._stepsPerRevolution)},_getAngleFromHandleCenter:function(e,t){var n=Math.atan((this._dialCenterY-t)/(this._dialCenterX-e))*(180/Math.PI);return n=this._dialCenterX-e<0?n+90:n+90+180,n},_calculateDialCenter:function(){this._dialCenterX=this._ringNode.get("offsetWidth")/2,this._dialCenterY=this._ringNode.get("offsetHeight")/2},_handleRingMouseup:function(){this._handleNode.focus()},_handleCenterButtonMouseup:function(){this._handleNode.focus()},_handleHandleMousedown:function(){this._handleNode.focus()},_handleDrag:function(e){var t,n,r,i;t=parseInt(this._handleNode.getStyle("left"),10)+this._handleNodeRadius,n=parseInt(this._handleNode.getStyle("top"),10)+this._handleNodeRadius,r=this._getAngleFromHandleCenter(t,n),this._prevAng>270&&r<90?this._timesWrapped270&&this._timesWrapped>this._minTimesWrapped&&(this._timesWrapped=this._timesWrapped-1),i=this._getValueFromAngle(r),i>this._maxValue+this._stepsPerRevolution?this._timesWrapped--:ithis._stepsPerRevolution)Math.abs(this._prevAng-a)>180?this._timesWrapped>this._minTimesWrapped&&this._timesWrapped0?this._timesWrapped+1:this._timesWrapped-1):this._timesWrapped===this._minTimesWrapped&&a-this._prevAng<180&&this._timesWrapped++;else if(this._maxValue-this._minValue===this._stepsPerRevolution)ar)this._prevAng>=n&&a<=(n+r)/2?this._timesWrapped++:this._prevAng<=r&&a>(n+r)/2&&this._timesWrapped--;else if(ar){s=((n+r)/2+180)%360,s>180?i=ra&&a>s?this.get("min"):this.get("max"),this._prevAng=this._getAngleFromValue(i),this.set("value",i),this._setTimesWrappedFromValue(i);return}i=this._getValueFromAngle(a),this._prevAng=a,this._handleValuesBeyondMinMax(t,i)},_handleValuesBeyondMinMax:function(e,t){t>=this._minValue&&t<=this._maxValue?(this.set("value",t),e.currentTarget===this._ringNode&&this._dd1._handleMouseDownEvent(e)):t>this._maxValue?(this.set("value",this._maxValue),e.type==="gesturemovestart"&&(this._prevAng=this._getAngleFromValue(this._maxValue))):tthis._minValue&&e=t&&e<=n}}),e.Dial=o},"3.7.2",{requires:["widget","dd-drag","event-mouseenter","event-move","event-key","transition","intl"],lang:["en","es"],skinnable:!0}); diff --git a/lib/yuilib/3.7.2/build/editor-base/editor-base-min.js b/lib/yuilib/3.7.2/build/editor-base/editor-base-min.js deleted file mode 100644 index 0f132f15014..00000000000 --- a/lib/yuilib/3.7.2/build/editor-base/editor-base-min.js +++ /dev/null @@ -1,7 +0,0 @@ -/* -YUI 3.7.2 (build 5639) -Copyright 2012 Yahoo! Inc. All rights reserved. -Licensed under the BSD License. -http://yuilibrary.com/license/ -*/ -YUI.add("editor-base",function(e,t){var n=function(){n.superclass.constructor.apply(this,arguments)},r=":last-child",i="body";e.extend(n,e.Base,{frame:null,initializer:function(){var t=(new e.Frame({designMode:!0,title:n.STRINGS.title,use:n.USE,dir:this.get("dir"),extracss:this.get("extracss"),linkedcss:this.get("linkedcss"),defaultblock:this.get("defaultblock"),host:this})).plug(e.Plugin.ExecCommand);t.after("ready",e.bind(this._afterFrameReady,this)),t.addTarget(this),this.frame=t,this.publish("nodeChange",{emitFacade:!0,bubbles:!0,defaultFn:this._defNodeChangeFn})},destructor:function(){this.frame.destroy(),this.detachAll()},copyStyles:function(t,n){if(t.test("a"))return;var r=["color","fontSize","fontFamily","backgroundColor","fontStyle"],i={};e.each(r,function(e){i[e]=t.getStyle(e)}),t.ancestor("b,strong")&&(i.fontWeight="bold"),t.ancestor("u")&&(i.textDecoration||(i.textDecoration="underline")),n.setStyles(i)},_lastBookmark:null,_resolveChangedNode:function(e){var t=this.getInstance(),n,s,o;if(e&&e.test(i)){var u=new t.EditorSelection;u&&u.anchorNode&&(e=u.anchorNode)}if(t&&e&&e.test("html")){n=t.one(i).one(r);while(!o)n?(s=n.one(r),s?n=s:o=!0):o=!0;n&&(n.test("br")&&(n.previous()?n=n.previous():n=n.get("parentNode")),n&&(e=n))}return e||(e=t.one(i)),e},_defNodeChangeFn:function(t){var r=(new Date).getTime(),i=this.getInstance(),s,o,u=i.EditorSelection.DEFAULT_BLOCK_TAG;if(e.UA.ie)try{s=i.config.doc.selection.createRange(),s.getBookmark&&(this._lastBookmark=s.getBookmark())}catch(a){}t.changedNode=this._resolveChangedNode(t.changedNode);switch(t.changedType){case"keydown":e.UA.gecko||!n.NC_KEYS[t.changedEvent.keyCode]&&!t.changedEvent.shiftKey&&!t.changedEvent.ctrlKey&&t.changedEvent.keyCode!==13;break;case"tab":!t.changedNode.test("li, li *")&&!t.changedEvent.shiftKey&&(t.changedEvent.frameEvent.preventDefault(),e.UA.webkit?this.execCommand("inserttext"," "):e.UA.gecko?this.frame.exec._command("inserthtml",n.TABKEY):e.UA.ie&&this.execCommand("inserthtml",n.TABKEY));break;case"backspace-up":e.UA.webkit&&t.changedNode&&t.changedNode.set("innerHTML",t.changedNode.get("innerHTML"))}if(e.UA.webkit&&t.commands&&(t.commands.indent||t.commands.outdent)){var f=i.all(".webkit-indent-blockquote, blockquote");f.size()&&f.setStyle("margin","")}var l=this.getDomPath(t.changedNode,!1),c={},h,p,d=[],v="",m="";t.commands&&(c=t.commands);var g=!1;e.each(l,function(t){var r=t.tagName.toLowerCase(),s=n.TAG2CMD[r];s&&(c[s]=1);var o=t.currentStyle||t.style;""+o.fontWeight=="normal"&&(g=!0),""+o.fontWeight=="bold"&&(c.bold=1),e.UA.ie&&o.fontWeight>400&&(c.bold=1),o.fontStyle=="italic"&&(c.italic=1),o.textDecoration.indexOf("underline")>-1&&(c.underline=1),o.textDecoration.indexOf("line-through")>-1&&(c.strikethrough=1);var u=i.one(t);if(u.getStyle("fontFamily")){var a=u.getStyle("fontFamily").split(",")[0].toLowerCase();a&&(h=a),h&&(h=h.replace(/'/g,"").replace(/"/g,""))}p=n.NORMALIZE_FONTSIZE(u);var f=t.className.split(" ");e.each(f,function(e){e!==""&&e.substr(0,4)!=="yui_"&&d.push(e)}),v=n.FILTER_RGB(u.getStyle("color"));var l=n.FILTER_RGB(o.backgroundColor);l!=="transparent"&&l!==""&&(m=l)}),g&&(delete c.bold,delete c.italic),t.dompath=i.all(l),t.classNames=d,t.commands=c,t.fontFamily||(t.fontFamily=h),t.fontSize||(t.fontSize=p),t.fontColor||(t.fontColor=v),t.backgroundColor||(t.backgroundColor=m);var y=(new Date).getTime()},getDomPath:function(e,t){var n=[],r,i=this.frame.getInstance();r=i.Node.getDOMNode(e);while(r!==null){if(r===i.config.doc.documentElement||r===i.config.doc||!r.tagName){r=null;break}if(!i.DOM.inDoc(r)){r=null;break}r.nodeName&&r.nodeType&&r.nodeType==1&&n.push(r);if(r==i.config.doc.body){r=null;break}r=r.parentNode}return n.length===0&&(n[0]=i.config.doc.body),t?i.all(n.reverse()):n.reverse()},_afterFrameReady:function(){var t=this.frame.getInstance();this.frame.on("dom:mouseup",e.bind(this._onFrameMouseUp,this)),this.frame.on("dom:mousedown",e.bind(this._onFrameMouseDown,this)),this.frame.on("dom:keydown",e.bind(this._onFrameKeyDown,this)),e.UA.ie&&(this.frame.on("dom:activate",e.bind(this._onFrameActivate,this)),this.frame.on("dom:beforedeactivate",e.bind(this._beforeFrameDeactivate,this))),this.frame.on("dom:keyup",e.bind(this._onFrameKeyUp,this)),this.frame.on("dom:keypress",e.bind(this._onFrameKeyPress,this)),this.frame.on("dom:paste",e.bind(this._onPaste,this)),t.EditorSelection.filter(),this.fire("ready")},_beforeFrameDeactivate:function(e){if(e.frameTarget.test("html"))return;var t=this.getInstance(),n=t.config.doc.selection.createRange();n.compareEndPoints&&!n.compareEndPoints("StartToEnd",n)&&n.pasteHTML('')},_onFrameActivate:function(e){if(e.frameTarget.test("html"))return;var t=this.getInstance(),n=new t.EditorSelection,r=n.createRange(),i=t.all("#yui-ie-cursor");i.size()&&i.each(function(e){e.set("id","");if(r.moveToElementText)try{r.moveToElementText(e._node);var t=r.move("character",-1);t===-1&&r.move("character",1),r.select(),r.text=""}catch(n){}e.remove()})},_onPaste:function(e){this.fire("nodeChange",{changedNode:e.frameTarget,changedType:"paste",changedEvent:e.frameEvent})},_onFrameMouseUp:function(e){this.fire("nodeChange",{changedNode:e.frameTarget,changedType:"mouseup",changedEvent:e.frameEvent})},_onFrameMouseDown:function(e){this.fire("nodeChange",{changedNode:e.frameTarget,changedType:"mousedown",changedEvent:e.frameEvent})},_currentSelection:null,_currentSelectionTimer:null,_currentSelectionClear:null,_onFrameKeyDown:function(t){var r,i;this._currentSelection?i=this._currentSelection:(this._currentSelectionTimer&&this._currentSelectionTimer.cancel(),this._currentSelectionTimer=e.later(850,this,function(){this._currentSelectionClear=!0}),r=this.frame.getInstance(),i=new r.EditorSelection(t),this._currentSelection=i),r=this.frame.getInstance(),i=new r.EditorSelection,this._currentSelection=i,i&&i.anchorNode&&(this.fire("nodeChange",{changedNode:i.anchorNode,changedType:"keydown",changedEvent:t.frameEvent}),n.NC_KEYS[t.keyCode]&&(this.fire("nodeChange",{changedNode:i.anchorNode,changedType:n.NC_KEYS[t.keyCode],changedEvent:t.frameEvent}),this.fire("nodeChange",{changedNode:i.anchorNode,changedType:n.NC_KEYS[t.keyCode]+"-down",changedEvent:t.frameEvent})))},_onFrameKeyPress:function(e){var t=this._currentSelection;t&&t.anchorNode&&(this.fire("nodeChange",{changedNode:t.anchorNode,changedType:"keypress",changedEvent:e.frameEvent}),n.NC_KEYS[e.keyCode]&&this.fire("nodeChange",{changedNode:t.anchorNode,changedType:n.NC_KEYS[e.keyCode]+"-press",changedEvent:e.frameEvent}))},_onFrameKeyUp:function(e){var t=this.frame.getInstance(),r=new t.EditorSelection(e);r&&r.anchorNode&&(this.fire("nodeChange",{changedNode:r.anchorNode,changedType:"keyup",selection:r,changedEvent:e.frameEvent}),n.NC_KEYS[e.keyCode]&&this.fire("nodeChange",{changedNode:r.anchorNode,changedType:n.NC_KEYS[e.keyCode]+"-up",selection:r,changedEvent:e.frameEvent})),this._currentSelectionClear&&(this._currentSelectionClear=this._currentSelection=null)},execCommand:function(e,t){var n=this.frame.execCommand(e,t),r=this.frame.getInstance(),i=new r.EditorSelection,s={},o={changedNode:i.anchorNode,changedType:"execcommand",nodes:n};switch(e){case"forecolor":o.fontColor=t;break;case"backcolor":o.backgroundColor=t;break;case"fontsize":o.fontSize=t;break;case"fontname":o.fontFamily=t}return s[e]=1,o.commands=s,this.fire("nodeChange",o),n},getInstance:function(){return this.frame.getInstance()},render:function(e){return this.frame.set("content",this.get("content")),this.frame.render(e),this},focus:function(e){return this.frame.focus(e),this},show:function(){return this.frame.show(),this},hide:function(){return this.frame.hide(),this},getContent:function(){var e="",t=this.getInstance();return t&&t.EditorSelection&&(e=t.EditorSelection.unfilter()),e=e.replace(/ _yuid="([^>]*)"/g,""),e}},{NORMALIZE_FONTSIZE:function(e){var t=e.getStyle("fontSize"),n=t;switch(t){case"-webkit-xxx-large":t="48px";break;case"xx-large":t="32px";break;case"x-large":t="24px";break;case"large":t="18px";break;case"medium":t="16px";break;case"small":t="13px";break;case"x-small":t="10px"}return n!==t&&e.setStyle("fontSize",t),t},TABKEY:'    ',FILTER_RGB:function(e){if(e.toLowerCase().indexOf("rgb")!=-1){var t=new RegExp("(.*?)rgb\\s*?\\(\\s*?([0-9]+).*?,\\s*?([0-9]+).*?,\\s*?([0-9]+).*?\\)(.*?)","gi"),n=e.replace(t,"$1,$2,$3,$4,$5").split(",");if(n.length==5){var r=parseInt(n[1],10).toString(16),i=parseInt(n[2],10).toString(16),s=parseInt(n[3],10).toString(16);r=r.length==1?"0"+r:r,i=i.length==1?"0"+i:i,s=s.length==1?"0"+s:s,e="#"+r+i+s}}return e},TAG2CMD:{b:"bold",strong:"bold",i:"italic",em:"italic",u:"underline",sup:"superscript",sub:"subscript",img:"insertimage",a:"createlink",ul:"insertunorderedlist",ol:"insertorderedlist"},NC_KEYS:{8:"backspace",9:"tab",13:"enter",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down",46:"delete"},USE:["substitute","node","selector-css3","editor-selection","stylesheet"],NAME:"editorBase",STRINGS:{title:"Rich Text Editor"},ATTRS:{content:{value:'
',setter:function(t){return t.substr(0,1)==="\n"&&(t=t.substr(1)),t===""&&(t='
'),t===" "&&e.UA.gecko&&(t='
'),this.frame.set("content",t)},getter:function(){return this.frame.get("content")}},dir:{writeOnce:!0,value:"ltr"},linkedcss:{value:"",setter:function(e){return this.frame&&this.frame.set("linkedcss",e),e}},extracss:{value:!1,setter:function(e){return this.frame&&this.frame.set("extracss",e),e}},defaultblock:{value:"p"}}}),e.EditorBase=n},"3.7.2",{requires:["base","frame","node","exec-command","editor-selection"]}); diff --git a/lib/yuilib/3.7.2/build/editor-bidi/editor-bidi-min.js b/lib/yuilib/3.7.2/build/editor-bidi/editor-bidi-min.js deleted file mode 100644 index c46cfc148d4..00000000000 --- a/lib/yuilib/3.7.2/build/editor-bidi/editor-bidi-min.js +++ /dev/null @@ -1,7 +0,0 @@ -/* -YUI 3.7.2 (build 5639) -Copyright 2012 Yahoo! Inc. All rights reserved. -Licensed under the BSD License. -http://yuilibrary.com/license/ -*/ -YUI.add("editor-bidi",function(e,t){var n=function(){n.superclass.constructor.apply(this,arguments)},r="host",i="dir",s="BODY",o="nodeChange",u="bidiContextChange",a=s+" > p",f="style";e.extend(n,e.Base,{lastDirection:null,firstEvent:null,_checkForChange:function(){var e=this.get(r),t=e.getInstance(),i=new t.EditorSelection,s,o;i.isCollapsed?(s=n.blockParent(i.focusNode),s&&(o=s.getStyle("direction"),o!==this.lastDirection&&(e.fire(u,{changedTo:o}),this.lastDirection=o))):(e.fire(u,{changedTo:"select"}),this.lastDirection=null)},_afterNodeChange:function(e){if(this.firstEvent||n.EVENTS[e.changedType])this._checkForChange(),this.firstEvent=!1},_afterMouseUp:function(e){this._checkForChange(),this.firstEvent=!1},initializer:function(){var t=this.get(r);this.firstEvent=!0,t.after(o,e.bind(this._afterNodeChange,this)),t.after("dom:mouseup",e.bind(this._afterMouseUp,this))}},{EVENTS:{"backspace-up":!0,"pageup-up":!0,"pagedown-down":!0,"end-up":!0,"home-up":!0,"left-up":!0,"up-up":!0,"right-up":!0,"down-up":!0,"delete-up":!0},BLOCKS:e.EditorSelection.BLOCKS,DIV_WRAPPER:"
",blockParent:function(t,r){var i=t,o,u;return i||(i=e.one(s)),i.test(n.BLOCKS)||(i=i.ancestor(n.BLOCKS)),r&&i.test(s)&&(o=e.Node.create(n.DIV_WRAPPER),i.get("children").each(function(e,t){t===0?u=e:o.append(e)}),u.replace(o),o.prepend(u),i=o),i},_NODE_SELECTED:"bidiSelected",addParents:function(e){var t,r,i;for(t=0;t"),f.previous(r).append(c),c.append(f),d=!0)),d&&(f.test(r)||(f=f.ancestor(r)),f.all(n.REMOVE).remove(),e.UA.ie&&(f=f.append(n.NON).one(n.NON_SEL)),(new u.EditorSelection).selectNode(f,!0,m)))},initializer:function(){this.get(o).on("nodeChange",e.bind(this._onNodeChange,this))}},{NON:' ',NON_SEL:"span.yui-non",REMOVE:"br",NAME:"editorLists",NS:"lists",ATTRS:{host:{value:!1}}}),e.namespace("Plugin"),e.Plugin.EditorLists=n},"3.7.2",{requires:["editor-base"]}); diff --git a/lib/yuilib/3.7.2/build/editor-para-base/editor-para-base-min.js b/lib/yuilib/3.7.2/build/editor-para-base/editor-para-base-min.js deleted file mode 100644 index 41070218a29..00000000000 --- a/lib/yuilib/3.7.2/build/editor-para-base/editor-para-base-min.js +++ /dev/null @@ -1,7 +0,0 @@ -/* -YUI 3.7.2 (build 5639) -Copyright 2012 Yahoo! Inc. All rights reserved. -Licensed under the BSD License. -http://yuilibrary.com/license/ -*/ -YUI.add("editor-para-base",function(e,t){var n=function(){n.superclass.constructor.apply(this,arguments)},r="host",i="body",s="nodeChange",o="parentNode",u=i+" > p",a="p",f="
",l="firstChild",c="li";e.extend(n,e.Base,{_fixFirstPara:function(){var e=this.get(r),t=e.getInstance(),n,i,s=t.config.doc.body,o=s.innerHTML,l=o.length?!0:!1;o===f&&(o="",l=!1),s.innerHTML="<"+a+">"+o+t.EditorSelection.CURSOR+"",i=t.one(u),n=new t.EditorSelection,n.selectNode(i,!0,l)},_afterEditorReady:function(){var e=this.get(r),t=e.getInstance(),n;t&&(t.EditorSelection.filterBlocks(),n=t.EditorSelection.DEFAULT_BLOCK_TAG,u=i+" > "+n,a=n)},_afterContentChange:function(){var e=this.get(r),t=e.getInstance();t&&t.EditorSelection&&t.EditorSelection.filterBlocks()},_afterPaste:function(){var t=this.get(r),n=t.getInstance(),i=new n.EditorSelection;e.later(50,t,function(){n.EditorSelection.filterBlocks()})},initializer:function(){var t=this.get(r);if(t.editorBR){e.error("Can not plug EditorPara and EditorBR at the same time.");return}t.after("ready",e.bind(this._afterEditorReady,this)),t.after("contentChange",e.bind(this._afterContentChange,this)),e.Env.webkit&&t.after("dom:paste",e.bind(this._afterPaste,this))}},{NAME:"editorParaBase",NS:"editorParaBase",ATTRS:{host:{value:!1}}}),e.namespace("Plugin"),e.Plugin.EditorParaBase=n},"3.7.2",{requires:["editor-base"]}); diff --git a/lib/yuilib/3.7.2/build/editor-para-ie/editor-para-ie-min.js b/lib/yuilib/3.7.2/build/editor-para-ie/editor-para-ie-min.js deleted file mode 100644 index 38817e7f5f2..00000000000 --- a/lib/yuilib/3.7.2/build/editor-para-ie/editor-para-ie-min.js +++ /dev/null @@ -1,7 +0,0 @@ -/* -YUI 3.7.2 (build 5639) -Copyright 2012 Yahoo! Inc. All rights reserved. -Licensed under the BSD License. -http://yuilibrary.com/license/ -*/ -YUI.add("editor-para-ie",function(e,t){var n=function(){n.superclass.constructor.apply(this,arguments)},r="host",i="body",s="nodeChange",o="parentNode",u=i+" > p",a="p",f="
",l="firstChild",c="li";e.extend(n,e.Plugin.EditorParaBase,{_onNodeChange:function(e){var t=this.get(r),n=t.getInstance(),i,s,o,u,f,l=n.EditorSelection.DEFAULT_BLOCK_TAG,c,h,p,d,v,m,g,y,b,w,E,S,x,T,N,C=":last-child";switch(e.changedType){case"enter-up":var k=this._lastPara?this._lastPara:e.changedNode,L=k.one("br.yui-cursor");this._lastPara&&delete this._lastPara,L&&(L.previous()||L.next())&&L.ancestor(a)&&L.remove();if(!k.test(l)){var A=k.ancestor(l);A&&(k=A,A=null)}if(k.test(l)){var O=k.previous(),M,_,D=!1;if(O){M=O.one(C);while(!D)M?(_=M.one(C),_?M=_:D=!0):D=!0;M&&t.copyStyles(M,k)}}break;case"enter":if(e.changedNode.test("br"))e.changedNode.remove();else if(e.changedNode.test("p, span")){var L=e.changedNode.one("br.yui-cursor");L&&L.remove()}}},initializer:function(){var t=this.get(r);if(t.editorBR){e.error("Can not plug EditorPara and EditorBR at the same time.");return}t.on(s,e.bind(this._onNodeChange,this))}},{NAME:"editorPara",NS:"editorPara",ATTRS:{host:{value:!1}}}),e.namespace("Plugin"),e.Plugin.EditorPara=n},"3.7.2",{requires:["editor-para-base"]}); diff --git a/lib/yuilib/3.7.2/build/editor-para/editor-para-min.js b/lib/yuilib/3.7.2/build/editor-para/editor-para-min.js deleted file mode 100644 index 999b90fd608..00000000000 --- a/lib/yuilib/3.7.2/build/editor-para/editor-para-min.js +++ /dev/null @@ -1,7 +0,0 @@ -/* -YUI 3.7.2 (build 5639) -Copyright 2012 Yahoo! Inc. All rights reserved. -Licensed under the BSD License. -http://yuilibrary.com/license/ -*/ -YUI.add("editor-para",function(e,t){var n=function(){n.superclass.constructor.apply(this,arguments)},r="host",i="body",s="nodeChange",o="parentNode",u=i+" > p",a="p",f="
",l="firstChild",c="li";e.extend(n,e.Plugin.EditorParaBase,{_onNodeChange:function(t){var n=this.get(r),s=n.getInstance(),h,p,d,v,m,g=s.EditorSelection.DEFAULT_BLOCK_TAG,y,b,w,E,S,x,T,N,C,k,L,A,O,M,_,D=":last-child";switch(t.changedType){case"enter-up":var H=this._lastPara?this._lastPara:t.changedNode,B=H.one("br.yui-cursor");this._lastPara&&delete this._lastPara,B&&(B.previous()||B.next())&&B.ancestor(a)&&B.remove();if(!H.test(g)){var j=H.ancestor(g);j&&(H=j,j=null)}if(H.test(g)){var F=H.previous(),I,q,R=!1;if(F){I=F.one(D);while(!R)I?(q=I.one(D),q?I=q:R=!0):R=!0;I&&n.copyStyles(I,H)}}break;case"enter":e.UA.webkit&&t.changedEvent.shiftKey&&(n.execCommand("insertbr"),t.changedEvent.preventDefault());if(t.changedNode.test("li")&&!e.UA.ie){h=s.EditorSelection.getText(t.changedNode);if(h===""){d=t.changedNode.ancestor("ol,ul");var U=d.getAttribute("dir");U!==""&&(U=' dir = "'+U+'"'),d=t.changedNode.ancestor(s.EditorSelection.BLOCKS),v=s.Node.create(""+s.EditorSelection.CURSOR+"

"),d.insert(v,"after"),t.changedNode.remove(),t.changedEvent.halt(),m=new s.EditorSelection,m.selectNode(v,!0,!1)}}if(e.UA.gecko&&n.get("defaultblock")!=="p"){d=t.changedNode;if(!d.test(c)&&!d.ancestor(c)){d.test(g)||(d=d.ancestor(g)),v=s.Node.create("<"+g+">"),d.insert(v,"after"),m=new s.EditorSelection;if(m.anchorOffset){y=m.anchorNode.get("textContent"),p=s.one(s.config.doc.createTextNode(y.substr(0,m.anchorOffset))),b=s.one(s.config.doc.createTextNode(y.substr(m.anchorOffset))),E=m.anchorNode,E.setContent(""),x=E.cloneNode(),x.append(b),T=!1,C=E;while(!T){C=C.get(o);if(C&&!C.test(g)){N=C.cloneNode(),N.set("innerHTML",""),N.append(x),w=C.get("childNodes");var z=!1;w.each(function(e){z&&N.append(e),e===E&&(z=!0)}),E=C,x=N}else T=!0}b=x,m.anchorNode.append(p),b&&v.append(b)}v.get(l)&&(v=v.get(l)),v.prepend(s.EditorSelection.CURSOR),m.focusCursor(!0,!0),h=s.EditorSelection.getText(v),h!==""&&s.EditorSelection.cleanCursor(),t.changedEvent.preventDefault()}}break;case"keyup":e.UA.gecko&&s.config.doc&&s.config.doc.body&&s.config.doc.body.innerHTML.length<20&&(s.one(u)||this._fixFirstPara());break;case"backspace-up":case"backspace-down":case"delete-up":e.UA.ie||(k=s.all(u),A=s.one(i),k.item(0)&&(A=k.item(0)),L=A.one("br"),L&&(L.removeAttribute("id"),L.removeAttribute("class")),p=s.EditorSelection.getText(A),p=p.replace(/ /g,"").replace(/\n/g,""),M=A.all("img"),p.length===0&&!M.size()&&(A.test(a)||this._fixFirstPara(),O=null,t.changedNode&&t.changedNode.test(a)&&(O=t.changedNode),!O&&n._lastPara&&n._lastPara.inDoc()&&(O=n._lastPara),O&&!O.test(a)&&(O=O.ancestor(a)),O&&!O.previous()&&O.get(o)&&O.get(o).test(i)&&(t.changedEvent.frameEvent.halt(),t.preventDefault())),e.UA.webkit&&t.changedNode&&(t.preventDefault(),A=t.changedNode,A.test("li")&&!A.previous()&&!A.next()&&(h=A.get("innerHTML").replace(f,""),h===""&&A.get(o)&&(A.get(o).replace(s.Node.create(f)),t.changedEvent.frameEvent.halt(),s.EditorSelection.filterBlocks())))),e.UA.gecko&&(v=t.changedNode,_=s.config.doc.createTextNode(" "),v.appendChild(_),v.removeChild(_))}e.UA.gecko&&t.changedNode&&!t.changedNode.test(g)&&(O=t.changedNode.ancestor(g),O&&(this._lastPara=O))},initializer:function(){var t=this.get(r);if(t.editorBR){e.error("Can not plug EditorPara and EditorBR at the same time.");return}t.on(s,e.bind(this._onNodeChange,this))}},{NAME:"editorPara",NS:"editorPara",ATTRS:{host:{value:!1}}}),e.namespace("Plugin"),e.Plugin.EditorPara=n},"3.7.2",{requires:["editor-para-base"]}); diff --git a/lib/yuilib/3.7.2/build/editor-selection/editor-selection-min.js b/lib/yuilib/3.7.2/build/editor-selection/editor-selection-min.js deleted file mode 100644 index b6e2c0bf9b3..00000000000 --- a/lib/yuilib/3.7.2/build/editor-selection/editor-selection-min.js +++ /dev/null @@ -1,7 +0,0 @@ -/* -YUI 3.7.2 (build 5639) -Copyright 2012 Yahoo! Inc. All rights reserved. -Licensed under the BSD License. -http://yuilibrary.com/license/ -*/ -YUI.add("editor-selection",function(e,t){var n="textContent",r="innerHTML",i="fontFamily";e.UA.ie&&(n="nodeValue"),e.EditorSelection=function(t){var n,r,i,s,o,u;e.config.win.getSelection&&(!e.UA.ie||e.UA.ie<9)?n=e.config.win.getSelection():e.config.doc.selection&&(n=e.config.doc.selection.createRange()),this._selection=n;if(!n)return!1;if(n.pasteHTML){this.isCollapsed=n.compareEndPoints("StartToEnd",n)?!1:!0;if(this.isCollapsed){this.anchorNode=this.focusNode=e.one(n.parentElement()),t&&(i=e.config.doc.elementFromPoint(t.clientX,t.clientY)),o=n.duplicate();if(!i){r=n.parentElement(),s=r.childNodes;for(u=0;u\?]/gi,e.EditorSelection.REG_NON=/[\s|\n|\t]/gi,e.EditorSelection.REG_NOHTML=/<\S[^><]*>/g,e.EditorSelection._wrapBlock=function(t){if(t){var n=e.Node.create("<"+e.EditorSelection.DEFAULT_BLOCK_TAG+">"),r=e.one(t[0]),i;for(i=1;i
","").replace("
",""),n},e.EditorSelection.DEFAULT_BLOCK_TAG="p",e.EditorSelection.ALL="[style],font[face]",e.EditorSelection.BLOCKS="p,div,ul,ol,table,style",e.EditorSelection.TMP="yui-tmp",e.EditorSelection.DEFAULT_TAG="span",e.EditorSelection.CURID="yui-cursor",e.EditorSelection.CUR_WRAPID="yui-cursor-wrapper",e.EditorSelection.CURSOR='
',e.EditorSelection.hasCursor=function(){var t=e.all("#"+e.EditorSelection.CUR_WRAPID);return t.size()},e.EditorSelection.cleanCursor=function(){var t,n="br.yui-cursor";t=e.all(n),t.size()&&t.each(function(t){var n=t.get("parentNode.parentNode.childNodes"),r;n.size()?t.remove():(r=e.EditorSelection.getText(n.item(0)),r!==""&&t.remove())})},e.EditorSelection.prototype={text:null,isCollapsed:null,anchorNode:null,anchorOffset:null,anchorTextNode:null,focusNode:null,focusOffset:null,focusTextNode:null,_selection:null,_wrap:function(t,n){var i=e.Node.create("<"+n+">");return i.set(r,t.get(r)),t.set(r,""),t.append(i),e.Node.getDOMNode(i)},_swap:function(t,n){var i=e.Node.create("<"+n+">");return i.set(r,t.get(r)),t.replace(i,t),e.Node.getDOMNode(i)},getSelected:function(){e.EditorSelection.filter(),e.config.doc.execCommand("fontname",null,e.EditorSelection.TMP);var t=e.all(e.EditorSelection.ALL),n=[];return t.each(function(r,s){r.getStyle(i)==e.EditorSelection.TMP&&(r.setStyle(i,""),e.EditorSelection.removeFontFamily(r),r.test("body")||n.push(e.Node.getDOMNode(t.item(s))))}),e.all(n)},insertContent:function(e){return this.insertAtCursor(e,this.anchorTextNode,this.anchorOffset,!0)},insertAtCursor:function(t,r,i,s){var o=e.Node.create("<"+e.EditorSelection.DEFAULT_TAG+' class="yui-non">"),u,a,f,l,c=this.createRange(),h;r&&r.test("body")&&(h=e.Node.create(""),r.append(h),r=h);if(c.pasteHTML){if(i===0&&r&&!r.previous()&&r.get("nodeType")===3)return r.insert(t,"before"),c.moveToElementText&&c.moveToElementText(e.Node.getDOMNode(r.previous())),c.collapse(!1),c.select(),r.previous();l=e.Node.create(t);try{c.pasteHTML('')}catch(p){}u=e.one("#rte-insert");if(u)return u.set("id",""),u.replace(l),c.moveToElementText&&c.moveToElementText(e.Node.getDOMNode(l)),c.collapse(!1),c.select(),l;e.on("available",function(){u.set("id",""),u.replace(l),c.moveToElementText&&c.moveToElementText(e.Node.getDOMNode(l)),c.collapse(!1),c.select()},"#rte-insert")}else i>0?(u=r.get(n),a=e.one(e.config.doc.createTextNode(u.substr(0,i))),f=e.one(e.config.doc.createTextNode(u.substr(i))),r.replace(a,r),l=e.Node.create(t),l.get("nodeType")===11&&(h=e.Node.create(""),h.append(l),l=h),a.insert(l,"after"),f&&(l.insert(o,"after"),o.insert(f,"after"),this.selectNode(o,s))):(r.get("nodeType")===3&&(r=r.get("parentNode")),l=e.Node.create(t),t=r.get("innerHTML").replace(/\n/gi,""),t===""||t==="
"?r.append(l):l.get("parentNode")?r.insert(l,"before"):e.one("body").prepend(l),r.get("firstChild").test("br")&&r.get("firstChild").remove());return l},wrapContent:function(t){t=t?t:e.EditorSelection.DEFAULT_TAG;if(!this.isCollapsed){var n=this.getSelected(),r=[],i,s,o,u;return n.each(function(e,i){var s=e.get("tagName").toLowerCase();s==="font"?r.push(this._swap(n.item(i),t)):r.push(this._wrap(n.item(i),t))},this),i=this.createRange(),o=r[0],s=r[r.length-1],this._selection.removeAllRanges?(i.setStart(r[0],0),i.setEnd(s,s.childNodes.length),this._selection.removeAllRanges(),this._selection.addRange(i)):(i.moveToElementText&&(i.moveToElementText(e.Node.getDOMNode(o)),u=this.createRange(),u.moveToElementText(e.Node.getDOMNode(s)),i.setEndPoint("EndToEnd",u)),i.select()),r=e.all(r),r}return e.all([])},replace:function(t,r){var i=this.createRange(),s,o,u,a;return i.getBookmark?(u=i.getBookmark(),o=this.anchorNode.get("innerHTML").replace(t,r),this.anchorNode.set("innerHTML",o),i.moveToBookmark(u),a=e.one(i.parentElement())):(s=this.anchorTextNode,o=s.get(n),u=o.indexOf(t),o=o.replace(t,""),s.set(n,o),a=this.insertAtCursor(r,s,u,!0)),a},remove:function(){return this._selection&&this._selection.removeAllRanges&&this._selection.removeAllRanges(),this},createRange:function(){return e.config.doc.selection?e.config.doc.selection.createRange():e.config.doc.createRange()},selectNode:function(t,n,r){if(!t)return;r=r||0,t=e.Node.getDOMNode(t);var i=this.createRange();if(i.selectNode){i.selectNode(t),this._selection.removeAllRanges(),this._selection.addRange(i);if(n)try{this._selection.collapse(t,r)}catch(s){this._selection.collapse(t,0)}}else{t.nodeType===3&&(t=t.parentNode);try{i.moveToElementText(t)}catch(o){}n&&i.collapse(r?!1:!0),i.select()}return this},setCursor:function(){return this.removeCursor(!1),this.insertContent(e.EditorSelection.CURSOR)},getCursor:function(){return e.all("#"+e.EditorSelection.CURID)},removeCursor:function(e){var t=this.getCursor();return t&&(e?(t.removeAttribute("id"),t.set("innerHTML",'
')):t.remove()),t},focusCursor:function(e,t){e!==!1&&(e=!0),t!==!1&&(t=!0);var n=this.removeCursor(!0);n&&n.each(function(n){this.selectNode(n,e,t)},this)},toString:function(){return"EditorSelection Object"}},e.Selection=e.EditorSelection},"3.7.2",{requires:["node"]}); diff --git a/lib/yuilib/3.7.2/build/event-base/event-base-min.js b/lib/yuilib/3.7.2/build/event-base/event-base-min.js deleted file mode 100644 index 06cbe080f99..00000000000 --- a/lib/yuilib/3.7.2/build/event-base/event-base-min.js +++ /dev/null @@ -1,7 +0,0 @@ -/* -YUI 3.7.2 (build 5639) -Copyright 2012 Yahoo! Inc. All rights reserved. -Licensed under the BSD License. -http://yuilibrary.com/license/ -*/ -(function(){var e=YUI.Env;e._ready||(e._ready=function(){e.DOMReady=!0,e.remove(YUI.config.doc,"DOMContentLoaded",e._ready)},e.add(YUI.config.doc,"DOMContentLoaded",e._ready))})(),YUI.add("event-base",function(e,t){e.publish("domready",{fireOnce:!0,async:!0}),YUI.Env.DOMReady?e.fire("domready"):e.Do.before(function(){e.fire("domready")},YUI.Env,"_ready");var n=e.UA,r={},i={63232:38,63233:40,63234:37,63235:39,63276:33,63277:34,25:9,63272:46,63273:36,63275:35},s=function(t){if(!t)return t;try{t&&3==t.nodeType&&(t=t.parentNode)}catch(n){return null}return e.one(t)},o=function(e,t,n){this._event=e,this._currentTarget=t,this._wrapper=n||r,this.init()};e.extend(o,Object,{init:function(){var e=this._event,t=this._wrapper.overrides,r=e.pageX,o=e.pageY,u,a=this._currentTarget;this.altKey=e.altKey,this.ctrlKey=e.ctrlKey,this.metaKey=e.metaKey,this.shiftKey=e.shiftKey,this.type=t&&t.type||e.type,this.clientX=e.clientX,this.clientY=e.clientY,this.pageX=r,this.pageY=o,u=e.keyCode||e.charCode,n.webkit&&u in i&&(u=i[u]),this.keyCode=u,this.charCode=u,this.which=e.which||e.charCode||u,this.button=this.which,this.target=s(e.target),this.currentTarget=s(a),this.relatedTarget=s(e.relatedTarget);if(e.type=="mousewheel"||e.type=="DOMMouseScroll")this.wheelDelta=e.detail?e.detail*-1:Math.round(e.wheelDelta/80)||(e.wheelDelta<0?-1:1);this._touch&&this._touch(e,a,this._wrapper)},stopPropagation:function(){this._event.stopPropagation(),this._wrapper.stopped=1,this.stopped=1},stopImmediatePropagation:function(){var e=this._event;e.stopImmediatePropagation?e.stopImmediatePropagation():this.stopPropagation(),this._wrapper.stopped=2,this.stopped=2},preventDefault:function(e){var t=this._event;t.preventDefault(),t.returnValue=e||!1,this._wrapper.prevented=1,this.prevented=1},halt:function(e){e?this.stopImmediatePropagation():this.stopPropagation(),this.preventDefault()}}),o.resolve=s,e.DOM2EventFacade=o,e.DOMEventFacade=o,function(){e.Env.evt.dom_wrappers={},e.Env.evt.dom_map={};var t=e.Env.evt,n=e.config,r=n.win,i=YUI.Env.add,s=YUI.Env.remove,o=function(){YUI.Env.windowLoaded=!0,e.Event._load(),s(r,"load",o)},u=function(){e.Event._unload()},a="domready",f="~yui|2|compat~",l=function(t){try{return t&&typeof t!="string"&&e.Lang.isNumber(t.length)&&!t.tagName&&!t.alert}catch(n){return!1}},c=e.CustomEvent.prototype._delete,h=function(t){var n=c.apply(this,arguments);return this.hasSubs()||e.Event._clean(this),n},p=function(){var n=!1,o=0,c=[],d=t.dom_wrappers,v=null,m=t.dom_map;return{POLL_RETRYS:1e3,POLL_INTERVAL:40,lastError:null,_interval:null,_dri:null,DOMReady:!1,startInterval:function(){p._interval||(p._interval=setInterval(p._poll,p.POLL_INTERVAL))},onAvailable:function(t,n,r,i,s,u){var a=e.Array(t),f,l;for(f=0;f4?t.slice(4):null),c&&u.fire(),h):!1},detach:function(t,n,r,i){var s=e.Array(arguments,0,!0),o,u,a,c,h,v;s[s.length-1]===f&&(o=!0);if(t&&t.detach)return t.detach();typeof r=="string"&&(o?r=e.DOM.byId(r):(r=e.Selector.query(r),u=r.length,u<1?r=null:u==1&&(r=r[0])));if(!r)return!1;if(r.detach)return s.splice(2,1),r.detach.apply(r,s);if(l(r)){a=!0;for(c=0,u=r.length;c0),u=[],a=function(t,n){var r,i=n.override;try{n.compat?(n.override?i===!0?r=n.obj:r=i:r=t,n.fn.call(r,n.obj)):(r=n.obj||e.one(t),n.fn.apply(r,e.Lang.isArray(i)?i:[]))}catch(s){}};for(t=0,r=c.length;t4?e.Array(arguments,4,!0):null;return e.Event.onAvailable.call(e.Event,r,n,i,s)}},e.Env.evt.plugins.contentready={on:function(t,n,r,i){var s=arguments.length>4?e.Array(arguments,4,!0):null;return e.Event.onContentReady.call(e.Event,r,n,i,s)}}},"3.7.2",{requires:["event-custom-base"]}); diff --git a/lib/yuilib/3.7.2/build/event-focus/event-focus-coverage.js b/lib/yuilib/3.7.2/build/event-focus/event-focus-coverage.js deleted file mode 100644 index efe8dcedb77..00000000000 --- a/lib/yuilib/3.7.2/build/event-focus/event-focus-coverage.js +++ /dev/null @@ -1,377 +0,0 @@ -/* -YUI 3.7.2 (build 5639) -Copyright 2012 Yahoo! Inc. All rights reserved. -Licensed under the BSD License. -http://yuilibrary.com/license/ -*/ -if (typeof _yuitest_coverage == "undefined"){ - _yuitest_coverage = {}; - _yuitest_coverline = function(src, line){ - var coverage = _yuitest_coverage[src]; - if (!coverage.lines[line]){ - coverage.calledLines++; - } - coverage.lines[line]++; - }; - _yuitest_coverfunc = function(src, name, line){ - var coverage = _yuitest_coverage[src], - funcId = name + ":" + line; - if (!coverage.functions[funcId]){ - coverage.calledFunctions++; - } - coverage.functions[funcId]++; - }; -} -_yuitest_coverage["build/event-focus/event-focus.js"] = { - lines: {}, - functions: {}, - coveredLines: 0, - calledLines: 0, - coveredFunctions: 0, - calledFunctions: 0, - path: "build/event-focus/event-focus.js", - code: [] -}; -_yuitest_coverage["build/event-focus/event-focus.js"].code=["YUI.add('event-focus', function (Y, NAME) {","","/**"," * Adds bubbling and delegation support to DOM events focus and blur."," * "," * @module event"," * @submodule event-focus"," */","var Event = Y.Event,"," YLang = Y.Lang,"," isString = YLang.isString,"," arrayIndex = Y.Array.indexOf,"," useActivate = YLang.isFunction("," Y.DOM.create('

').onbeforeactivate);","","function define(type, proxy, directEvent) {"," var nodeDataKey = '_' + type + 'Notifiers';",""," Y.Event.define(type, {",""," _attach: function (el, notifier, delegate) {"," if (Y.DOM.isWindow(el)) {"," return Event._attach([type, function (e) {"," notifier.fire(e);"," }, el]);"," } else {"," return Event._attach("," [proxy, this._proxy, el, this, notifier, delegate],"," { capture: true });"," }"," },",""," _proxy: function (e, notifier, delegate) {"," var target = e.target,"," currentTarget = e.currentTarget,"," notifiers = target.getData(nodeDataKey),"," yuid = Y.stamp(currentTarget._node),"," defer = (useActivate || target !== currentTarget),"," directSub;"," "," notifier.currentTarget = (delegate) ? target : currentTarget;"," notifier.container = (delegate) ? currentTarget : null;",""," // Maintain a list to handle subscriptions from nested"," // containers div#a>div#b>input #a.on(focus..) #b.on(focus..),"," // use one focus or blur subscription that fires notifiers from"," // #b then #a to emulate bubble sequence."," if (!notifiers) {"," notifiers = {};"," target.setData(nodeDataKey, notifiers);",""," // only subscribe to the element's focus if the target is"," // not the current target ("," if (defer) {"," directSub = Event._attach("," [directEvent, this._notify, target._node]).sub;"," directSub.once = true;"," }"," } else {"," // In old IE, defer is always true. In capture-phase browsers,"," // The delegate subscriptions will be encountered first, which"," // will establish the notifiers data and direct subscription"," // on the node. If there is also a direct subscription to the"," // node's focus/blur, it should not call _notify because the"," // direct subscription from the delegate sub(s) exists, which"," // will call _notify. So this avoids _notify being called"," // twice, unnecessarily."," defer = true;"," }",""," if (!notifiers[yuid]) {"," notifiers[yuid] = [];"," }",""," notifiers[yuid].push(notifier);",""," if (!defer) {"," this._notify(e);"," }"," },",""," _notify: function (e, container) {"," var currentTarget = e.currentTarget,"," notifierData = currentTarget.getData(nodeDataKey),"," axisNodes = currentTarget.ancestors(),"," doc = currentTarget.get('ownerDocument'),"," delegates = [],"," // Used to escape loops when there are no more"," // notifiers to consider"," count = notifierData ?"," Y.Object.keys(notifierData).length :"," 0,"," target, notifiers, notifier, yuid, match, tmp, i, len, sub, ret;",""," // clear the notifications list (mainly for delegation)"," currentTarget.clearData(nodeDataKey);",""," // Order the delegate subs by their placement in the parent axis"," axisNodes.push(currentTarget);"," // document.get('ownerDocument') returns null"," // which we'll use to prevent having duplicate Nodes in the list"," if (doc) {"," axisNodes.unshift(doc);"," }",""," // ancestors() returns the Nodes from top to bottom"," axisNodes._nodes.reverse();",""," if (count) {"," // Store the count for step 2"," tmp = count;"," axisNodes.some(function (node) {"," var yuid = Y.stamp(node),"," notifiers = notifierData[yuid],"," i, len;",""," if (notifiers) {"," count--;"," for (i = 0, len = notifiers.length; i < len; ++i) {"," if (notifiers[i].handle.sub.filter) {"," delegates.push(notifiers[i]);"," }"," }"," }",""," return !count;"," });"," count = tmp;"," }",""," // Walk up the parent axis, notifying direct subscriptions and"," // testing delegate filters."," while (count && (target = axisNodes.shift())) {"," yuid = Y.stamp(target);",""," notifiers = notifierData[yuid];",""," if (notifiers) {"," for (i = 0, len = notifiers.length; i < len; ++i) {"," notifier = notifiers[i];"," sub = notifier.handle.sub;"," match = true;",""," e.currentTarget = target;",""," if (sub.filter) {"," match = sub.filter.apply(target,"," [target, e].concat(sub.args || []));",""," // No longer necessary to test against this"," // delegate subscription for the nodes along"," // the parent axis."," delegates.splice("," arrayIndex(delegates, notifier), 1);"," }",""," if (match) {"," // undefined for direct subs"," e.container = notifier.container;"," ret = notifier.fire(e);"," }",""," if (ret === false || e.stopped === 2) {"," break;"," }"," }"," "," delete notifiers[yuid];"," count--;"," }",""," if (e.stopped !== 2) {"," // delegates come after subs targeting this specific node"," // because they would not normally report until they'd"," // bubbled to the container node."," for (i = 0, len = delegates.length; i < len; ++i) {"," notifier = delegates[i];"," sub = notifier.handle.sub;",""," if (sub.filter.apply(target,"," [target, e].concat(sub.args || []))) {",""," e.container = notifier.container;"," e.currentTarget = target;"," ret = notifier.fire(e);"," }",""," if (ret === false || e.stopped === 2) {"," break;"," }"," }"," }",""," if (e.stopped) {"," break;"," }"," }"," },",""," on: function (node, sub, notifier) {"," sub.handle = this._attach(node._node, notifier);"," },",""," detach: function (node, sub) {"," sub.handle.detach();"," },",""," delegate: function (node, sub, notifier, filter) {"," if (isString(filter)) {"," sub.filter = function (target) {"," return Y.Selector.test(target._node, filter,"," node === target ? null : node._node);"," };"," }",""," sub.handle = this._attach(node._node, notifier, true);"," },",""," detachDelegate: function (node, sub) {"," sub.handle.detach();"," }"," }, true);","}","","// For IE, we need to defer to focusin rather than focus because","// `el.focus(); doSomething();` executes el.onbeforeactivate, el.onactivate,","// el.onfocusin, doSomething, then el.onfocus. All others support capture","// phase focus, which executes before doSomething. To guarantee consistent","// behavior for this use case, IE's direct subscriptions are made against","// focusin so subscribers will be notified before js following el.focus() is","// executed.","if (useActivate) {"," // name capture phase direct subscription"," define(\"focus\", \"beforeactivate\", \"focusin\");"," define(\"blur\", \"beforedeactivate\", \"focusout\");","} else {"," define(\"focus\", \"focus\", \"focus\");"," define(\"blur\", \"blur\", \"blur\");","}","","","}, '3.7.2', {\"requires\": [\"event-synthetic\"]});"]; -_yuitest_coverage["build/event-focus/event-focus.js"].lines = {"1":0,"9":0,"16":0,"17":0,"19":0,"22":0,"23":0,"24":0,"27":0,"34":0,"41":0,"42":0,"48":0,"49":0,"50":0,"54":0,"55":0,"57":0,"68":0,"71":0,"72":0,"75":0,"77":0,"78":0,"83":0,"96":0,"99":0,"102":0,"103":0,"107":0,"109":0,"111":0,"112":0,"113":0,"117":0,"118":0,"119":0,"120":0,"121":0,"126":0,"128":0,"133":0,"134":0,"136":0,"138":0,"139":0,"140":0,"141":0,"142":0,"144":0,"146":0,"147":0,"153":0,"157":0,"159":0,"160":0,"163":0,"164":0,"168":0,"169":0,"172":0,"176":0,"177":0,"178":0,"180":0,"183":0,"184":0,"185":0,"188":0,"189":0,"194":0,"195":0,"201":0,"205":0,"209":0,"210":0,"211":0,"216":0,"220":0,"232":0,"234":0,"235":0,"237":0,"238":0}; -_yuitest_coverage["build/event-focus/event-focus.js"].functions = {"(anonymous 2):23":0,"_attach:21":0,"_proxy:33":0,"(anonymous 3):112":0,"_notify:82":0,"on:200":0,"detach:204":0,"filter:210":0,"delegate:208":0,"detachDelegate:219":0,"define:16":0,"(anonymous 1):1":0}; -_yuitest_coverage["build/event-focus/event-focus.js"].coveredLines = 84; -_yuitest_coverage["build/event-focus/event-focus.js"].coveredFunctions = 12; -_yuitest_coverline("build/event-focus/event-focus.js", 1); -YUI.add('event-focus', function (Y, NAME) { - -/** - * Adds bubbling and delegation support to DOM events focus and blur. - * - * @module event - * @submodule event-focus - */ -_yuitest_coverfunc("build/event-focus/event-focus.js", "(anonymous 1)", 1); -_yuitest_coverline("build/event-focus/event-focus.js", 9); -var Event = Y.Event, - YLang = Y.Lang, - isString = YLang.isString, - arrayIndex = Y.Array.indexOf, - useActivate = YLang.isFunction( - Y.DOM.create('

').onbeforeactivate); - -_yuitest_coverline("build/event-focus/event-focus.js", 16); -function define(type, proxy, directEvent) { - _yuitest_coverfunc("build/event-focus/event-focus.js", "define", 16); -_yuitest_coverline("build/event-focus/event-focus.js", 17); -var nodeDataKey = '_' + type + 'Notifiers'; - - _yuitest_coverline("build/event-focus/event-focus.js", 19); -Y.Event.define(type, { - - _attach: function (el, notifier, delegate) { - _yuitest_coverfunc("build/event-focus/event-focus.js", "_attach", 21); -_yuitest_coverline("build/event-focus/event-focus.js", 22); -if (Y.DOM.isWindow(el)) { - _yuitest_coverline("build/event-focus/event-focus.js", 23); -return Event._attach([type, function (e) { - _yuitest_coverfunc("build/event-focus/event-focus.js", "(anonymous 2)", 23); -_yuitest_coverline("build/event-focus/event-focus.js", 24); -notifier.fire(e); - }, el]); - } else { - _yuitest_coverline("build/event-focus/event-focus.js", 27); -return Event._attach( - [proxy, this._proxy, el, this, notifier, delegate], - { capture: true }); - } - }, - - _proxy: function (e, notifier, delegate) { - _yuitest_coverfunc("build/event-focus/event-focus.js", "_proxy", 33); -_yuitest_coverline("build/event-focus/event-focus.js", 34); -var target = e.target, - currentTarget = e.currentTarget, - notifiers = target.getData(nodeDataKey), - yuid = Y.stamp(currentTarget._node), - defer = (useActivate || target !== currentTarget), - directSub; - - _yuitest_coverline("build/event-focus/event-focus.js", 41); -notifier.currentTarget = (delegate) ? target : currentTarget; - _yuitest_coverline("build/event-focus/event-focus.js", 42); -notifier.container = (delegate) ? currentTarget : null; - - // Maintain a list to handle subscriptions from nested - // containers div#a>div#b>input #a.on(focus..) #b.on(focus..), - // use one focus or blur subscription that fires notifiers from - // #b then #a to emulate bubble sequence. - _yuitest_coverline("build/event-focus/event-focus.js", 48); -if (!notifiers) { - _yuitest_coverline("build/event-focus/event-focus.js", 49); -notifiers = {}; - _yuitest_coverline("build/event-focus/event-focus.js", 50); -target.setData(nodeDataKey, notifiers); - - // only subscribe to the element's focus if the target is - // not the current target ( - _yuitest_coverline("build/event-focus/event-focus.js", 54); -if (defer) { - _yuitest_coverline("build/event-focus/event-focus.js", 55); -directSub = Event._attach( - [directEvent, this._notify, target._node]).sub; - _yuitest_coverline("build/event-focus/event-focus.js", 57); -directSub.once = true; - } - } else { - // In old IE, defer is always true. In capture-phase browsers, - // The delegate subscriptions will be encountered first, which - // will establish the notifiers data and direct subscription - // on the node. If there is also a direct subscription to the - // node's focus/blur, it should not call _notify because the - // direct subscription from the delegate sub(s) exists, which - // will call _notify. So this avoids _notify being called - // twice, unnecessarily. - _yuitest_coverline("build/event-focus/event-focus.js", 68); -defer = true; - } - - _yuitest_coverline("build/event-focus/event-focus.js", 71); -if (!notifiers[yuid]) { - _yuitest_coverline("build/event-focus/event-focus.js", 72); -notifiers[yuid] = []; - } - - _yuitest_coverline("build/event-focus/event-focus.js", 75); -notifiers[yuid].push(notifier); - - _yuitest_coverline("build/event-focus/event-focus.js", 77); -if (!defer) { - _yuitest_coverline("build/event-focus/event-focus.js", 78); -this._notify(e); - } - }, - - _notify: function (e, container) { - _yuitest_coverfunc("build/event-focus/event-focus.js", "_notify", 82); -_yuitest_coverline("build/event-focus/event-focus.js", 83); -var currentTarget = e.currentTarget, - notifierData = currentTarget.getData(nodeDataKey), - axisNodes = currentTarget.ancestors(), - doc = currentTarget.get('ownerDocument'), - delegates = [], - // Used to escape loops when there are no more - // notifiers to consider - count = notifierData ? - Y.Object.keys(notifierData).length : - 0, - target, notifiers, notifier, yuid, match, tmp, i, len, sub, ret; - - // clear the notifications list (mainly for delegation) - _yuitest_coverline("build/event-focus/event-focus.js", 96); -currentTarget.clearData(nodeDataKey); - - // Order the delegate subs by their placement in the parent axis - _yuitest_coverline("build/event-focus/event-focus.js", 99); -axisNodes.push(currentTarget); - // document.get('ownerDocument') returns null - // which we'll use to prevent having duplicate Nodes in the list - _yuitest_coverline("build/event-focus/event-focus.js", 102); -if (doc) { - _yuitest_coverline("build/event-focus/event-focus.js", 103); -axisNodes.unshift(doc); - } - - // ancestors() returns the Nodes from top to bottom - _yuitest_coverline("build/event-focus/event-focus.js", 107); -axisNodes._nodes.reverse(); - - _yuitest_coverline("build/event-focus/event-focus.js", 109); -if (count) { - // Store the count for step 2 - _yuitest_coverline("build/event-focus/event-focus.js", 111); -tmp = count; - _yuitest_coverline("build/event-focus/event-focus.js", 112); -axisNodes.some(function (node) { - _yuitest_coverfunc("build/event-focus/event-focus.js", "(anonymous 3)", 112); -_yuitest_coverline("build/event-focus/event-focus.js", 113); -var yuid = Y.stamp(node), - notifiers = notifierData[yuid], - i, len; - - _yuitest_coverline("build/event-focus/event-focus.js", 117); -if (notifiers) { - _yuitest_coverline("build/event-focus/event-focus.js", 118); -count--; - _yuitest_coverline("build/event-focus/event-focus.js", 119); -for (i = 0, len = notifiers.length; i < len; ++i) { - _yuitest_coverline("build/event-focus/event-focus.js", 120); -if (notifiers[i].handle.sub.filter) { - _yuitest_coverline("build/event-focus/event-focus.js", 121); -delegates.push(notifiers[i]); - } - } - } - - _yuitest_coverline("build/event-focus/event-focus.js", 126); -return !count; - }); - _yuitest_coverline("build/event-focus/event-focus.js", 128); -count = tmp; - } - - // Walk up the parent axis, notifying direct subscriptions and - // testing delegate filters. - _yuitest_coverline("build/event-focus/event-focus.js", 133); -while (count && (target = axisNodes.shift())) { - _yuitest_coverline("build/event-focus/event-focus.js", 134); -yuid = Y.stamp(target); - - _yuitest_coverline("build/event-focus/event-focus.js", 136); -notifiers = notifierData[yuid]; - - _yuitest_coverline("build/event-focus/event-focus.js", 138); -if (notifiers) { - _yuitest_coverline("build/event-focus/event-focus.js", 139); -for (i = 0, len = notifiers.length; i < len; ++i) { - _yuitest_coverline("build/event-focus/event-focus.js", 140); -notifier = notifiers[i]; - _yuitest_coverline("build/event-focus/event-focus.js", 141); -sub = notifier.handle.sub; - _yuitest_coverline("build/event-focus/event-focus.js", 142); -match = true; - - _yuitest_coverline("build/event-focus/event-focus.js", 144); -e.currentTarget = target; - - _yuitest_coverline("build/event-focus/event-focus.js", 146); -if (sub.filter) { - _yuitest_coverline("build/event-focus/event-focus.js", 147); -match = sub.filter.apply(target, - [target, e].concat(sub.args || [])); - - // No longer necessary to test against this - // delegate subscription for the nodes along - // the parent axis. - _yuitest_coverline("build/event-focus/event-focus.js", 153); -delegates.splice( - arrayIndex(delegates, notifier), 1); - } - - _yuitest_coverline("build/event-focus/event-focus.js", 157); -if (match) { - // undefined for direct subs - _yuitest_coverline("build/event-focus/event-focus.js", 159); -e.container = notifier.container; - _yuitest_coverline("build/event-focus/event-focus.js", 160); -ret = notifier.fire(e); - } - - _yuitest_coverline("build/event-focus/event-focus.js", 163); -if (ret === false || e.stopped === 2) { - _yuitest_coverline("build/event-focus/event-focus.js", 164); -break; - } - } - - _yuitest_coverline("build/event-focus/event-focus.js", 168); -delete notifiers[yuid]; - _yuitest_coverline("build/event-focus/event-focus.js", 169); -count--; - } - - _yuitest_coverline("build/event-focus/event-focus.js", 172); -if (e.stopped !== 2) { - // delegates come after subs targeting this specific node - // because they would not normally report until they'd - // bubbled to the container node. - _yuitest_coverline("build/event-focus/event-focus.js", 176); -for (i = 0, len = delegates.length; i < len; ++i) { - _yuitest_coverline("build/event-focus/event-focus.js", 177); -notifier = delegates[i]; - _yuitest_coverline("build/event-focus/event-focus.js", 178); -sub = notifier.handle.sub; - - _yuitest_coverline("build/event-focus/event-focus.js", 180); -if (sub.filter.apply(target, - [target, e].concat(sub.args || []))) { - - _yuitest_coverline("build/event-focus/event-focus.js", 183); -e.container = notifier.container; - _yuitest_coverline("build/event-focus/event-focus.js", 184); -e.currentTarget = target; - _yuitest_coverline("build/event-focus/event-focus.js", 185); -ret = notifier.fire(e); - } - - _yuitest_coverline("build/event-focus/event-focus.js", 188); -if (ret === false || e.stopped === 2) { - _yuitest_coverline("build/event-focus/event-focus.js", 189); -break; - } - } - } - - _yuitest_coverline("build/event-focus/event-focus.js", 194); -if (e.stopped) { - _yuitest_coverline("build/event-focus/event-focus.js", 195); -break; - } - } - }, - - on: function (node, sub, notifier) { - _yuitest_coverfunc("build/event-focus/event-focus.js", "on", 200); -_yuitest_coverline("build/event-focus/event-focus.js", 201); -sub.handle = this._attach(node._node, notifier); - }, - - detach: function (node, sub) { - _yuitest_coverfunc("build/event-focus/event-focus.js", "detach", 204); -_yuitest_coverline("build/event-focus/event-focus.js", 205); -sub.handle.detach(); - }, - - delegate: function (node, sub, notifier, filter) { - _yuitest_coverfunc("build/event-focus/event-focus.js", "delegate", 208); -_yuitest_coverline("build/event-focus/event-focus.js", 209); -if (isString(filter)) { - _yuitest_coverline("build/event-focus/event-focus.js", 210); -sub.filter = function (target) { - _yuitest_coverfunc("build/event-focus/event-focus.js", "filter", 210); -_yuitest_coverline("build/event-focus/event-focus.js", 211); -return Y.Selector.test(target._node, filter, - node === target ? null : node._node); - }; - } - - _yuitest_coverline("build/event-focus/event-focus.js", 216); -sub.handle = this._attach(node._node, notifier, true); - }, - - detachDelegate: function (node, sub) { - _yuitest_coverfunc("build/event-focus/event-focus.js", "detachDelegate", 219); -_yuitest_coverline("build/event-focus/event-focus.js", 220); -sub.handle.detach(); - } - }, true); -} - -// For IE, we need to defer to focusin rather than focus because -// `el.focus(); doSomething();` executes el.onbeforeactivate, el.onactivate, -// el.onfocusin, doSomething, then el.onfocus. All others support capture -// phase focus, which executes before doSomething. To guarantee consistent -// behavior for this use case, IE's direct subscriptions are made against -// focusin so subscribers will be notified before js following el.focus() is -// executed. -_yuitest_coverline("build/event-focus/event-focus.js", 232); -if (useActivate) { - // name capture phase direct subscription - _yuitest_coverline("build/event-focus/event-focus.js", 234); -define("focus", "beforeactivate", "focusin"); - _yuitest_coverline("build/event-focus/event-focus.js", 235); -define("blur", "beforedeactivate", "focusout"); -} else { - _yuitest_coverline("build/event-focus/event-focus.js", 237); -define("focus", "focus", "focus"); - _yuitest_coverline("build/event-focus/event-focus.js", 238); -define("blur", "blur", "blur"); -} - - -}, '3.7.2', {"requires": ["event-synthetic"]}); diff --git a/lib/yuilib/3.7.2/build/event-focus/event-focus-min.js b/lib/yuilib/3.7.2/build/event-focus/event-focus-min.js deleted file mode 100644 index 0bbdc3ae44b..00000000000 --- a/lib/yuilib/3.7.2/build/event-focus/event-focus-min.js +++ /dev/null @@ -1,7 +0,0 @@ -/* -YUI 3.7.2 (build 5639) -Copyright 2012 Yahoo! Inc. All rights reserved. -Licensed under the BSD License. -http://yuilibrary.com/license/ -*/ -YUI.add("event-focus",function(e,t){function u(t,r,u){var a="_"+t+"Notifiers";e.Event.define(t,{_attach:function(i,s,o){return e.DOM.isWindow(i)?n._attach([t,function(e){s.fire(e)},i]):n._attach([r,this._proxy,i,this,s,o],{capture:!0})},_proxy:function(t,r,i){var s=t.target,f=t.currentTarget,l=s.getData(a),c=e.stamp(f._node),h=o||s!==f,p;r.currentTarget=i?s:f,r.container=i?f:null,l?h=!0:(l={},s.setData(a,l),h&&(p=n._attach([u,this._notify,s._node]).sub,p.once=!0)),l[c]||(l[c]=[]),l[c].push(r),h||this._notify(t)},_notify:function(t,n){var r=t.currentTarget,i=r.getData(a),o=r.ancestors(),u=r.get("ownerDocument"),f=[],l=i?e.Object.keys(i).length:0,c,h,p,d,v,m,g,y,b,w;r.clearData(a),o.push(r),u&&o.unshift(u),o._nodes.reverse(),l&&(m=l,o.some(function(t){var n=e.stamp(t),r=i[n],s,o;if(r){l--;for(s=0,o=r.length;s').onbeforeactivate);o?(u("focus","beforeactivate","focusin"),u("blur","beforedeactivate","focusout")):(u("focus","focus","focus"),u("blur","blur","blur"))},"3.7.2",{requires:["event-synthetic"]}); diff --git a/lib/yuilib/3.7.2/build/event-move/event-move-coverage.js b/lib/yuilib/3.7.2/build/event-move/event-move-coverage.js deleted file mode 100644 index 73b966ba998..00000000000 --- a/lib/yuilib/3.7.2/build/event-move/event-move-coverage.js +++ /dev/null @@ -1,700 +0,0 @@ -/* -YUI 3.7.2 (build 5639) -Copyright 2012 Yahoo! Inc. All rights reserved. -Licensed under the BSD License. -http://yuilibrary.com/license/ -*/ -if (typeof _yuitest_coverage == "undefined"){ - _yuitest_coverage = {}; - _yuitest_coverline = function(src, line){ - var coverage = _yuitest_coverage[src]; - if (!coverage.lines[line]){ - coverage.calledLines++; - } - coverage.lines[line]++; - }; - _yuitest_coverfunc = function(src, name, line){ - var coverage = _yuitest_coverage[src], - funcId = name + ":" + line; - if (!coverage.functions[funcId]){ - coverage.calledFunctions++; - } - coverage.functions[funcId]++; - }; -} -_yuitest_coverage["build/event-move/event-move.js"] = { - lines: {}, - functions: {}, - coveredLines: 0, - calledLines: 0, - coveredFunctions: 0, - calledFunctions: 0, - path: "build/event-move/event-move.js", - code: [] -}; -_yuitest_coverage["build/event-move/event-move.js"].code=["YUI.add('event-move', function (Y, NAME) {","","/**"," * Adds lower level support for \"gesturemovestart\", \"gesturemove\" and \"gesturemoveend\" events, which can be used to create drag/drop"," * interactions which work across touch and mouse input devices. They correspond to \"touchstart\", \"touchmove\" and \"touchend\" on a touch input"," * device, and \"mousedown\", \"mousemove\", \"mouseup\" on a mouse based input device."," *"," * @module event-gestures"," * @submodule event-move"," */",""," var GESTURE_MAP = Y.Event._GESTURE_MAP,"," EVENT = {"," start: GESTURE_MAP.start,"," end: GESTURE_MAP.end,"," move: GESTURE_MAP.move"," },"," START = \"start\","," MOVE = \"move\","," END = \"end\",",""," GESTURE_MOVE = \"gesture\" + MOVE,"," GESTURE_MOVE_END = GESTURE_MOVE + END,"," GESTURE_MOVE_START = GESTURE_MOVE + START,",""," _MOVE_START_HANDLE = \"_msh\","," _MOVE_HANDLE = \"_mh\","," _MOVE_END_HANDLE = \"_meh\",",""," _DEL_MOVE_START_HANDLE = \"_dmsh\","," _DEL_MOVE_HANDLE = \"_dmh\","," _DEL_MOVE_END_HANDLE = \"_dmeh\",",""," _MOVE_START = \"_ms\","," _MOVE = \"_m\",",""," MIN_TIME = \"minTime\","," MIN_DISTANCE = \"minDistance\","," PREVENT_DEFAULT = \"preventDefault\","," BUTTON = \"button\","," OWNER_DOCUMENT = \"ownerDocument\",",""," CURRENT_TARGET = \"currentTarget\","," TARGET = \"target\",",""," NODE_TYPE = \"nodeType\",",""," _defArgsProcessor = function(se, args, delegate) {"," var iConfig = (delegate) ? 4 : 3, "," config = (args.length > iConfig) ? Y.merge(args.splice(iConfig,1)[0]) : {};",""," if (!(PREVENT_DEFAULT in config)) {"," config[PREVENT_DEFAULT] = se.PREVENT_DEFAULT;"," }",""," return config;"," },",""," _getRoot = function(node, subscriber) {"," return subscriber._extra.root || (node.get(NODE_TYPE) === 9) ? node : node.get(OWNER_DOCUMENT);"," },",""," _normTouchFacade = function(touchFacade, touch, params) {"," touchFacade.pageX = touch.pageX;"," touchFacade.pageY = touch.pageY;"," touchFacade.screenX = touch.screenX;"," touchFacade.screenY = touch.screenY;"," touchFacade.clientX = touch.clientX;"," touchFacade.clientY = touch.clientY;"," touchFacade[TARGET] = touchFacade[TARGET] || touch[TARGET];"," touchFacade[CURRENT_TARGET] = touchFacade[CURRENT_TARGET] || touch[CURRENT_TARGET];",""," touchFacade[BUTTON] = (params && params[BUTTON]) || 1; // default to left (left as per vendors, not W3C which is 0)"," },",""," _prevent = function(e, preventDefault) {"," if (preventDefault) {"," // preventDefault is a boolean or a function"," if (!preventDefault.call || preventDefault(e)) {"," e.preventDefault();"," }"," }"," },",""," define = Y.Event.define;","","/**"," * Sets up a \"gesturemovestart\" event, that is fired on touch devices in response to a single finger \"touchstart\","," * and on mouse based devices in response to a \"mousedown\". The subscriber can specify the minimum time"," * and distance thresholds which should be crossed before the \"gesturemovestart\" is fired and for the mouse,"," * which button should initiate a \"gesturemovestart\". This event can also be listened for using node.delegate()."," * "," *

It is recommended that you use Y.bind to set up context and additional arguments for your event handler,"," * however if you want to pass the context and arguments as additional signature arguments to on/delegate, "," * you need to provide a null value for the configuration object, e.g: node.on(\"gesturemovestart\", fn, null, context, arg1, arg2, arg3)

"," *"," * @event gesturemovestart"," * @for YUI"," * @param type {string} \"gesturemovestart\""," * @param fn {function} The method the event invokes. It receives the event facade of the underlying DOM event (mousedown or touchstart.touches[0]) which contains position co-ordinates."," * @param cfg {Object} Optional. An object which specifies:"," *"," *
"," *
minDistance (defaults to 0)
"," *
The minimum distance threshold which should be crossed before the gesturemovestart is fired
"," *
minTime (defaults to 0)
"," *
The minimum time threshold for which the finger/mouse should be help down before the gesturemovestart is fired
"," *
button (no default)
"," *
In the case of a mouse input device, if the event should only be fired for a specific mouse button.
"," *
preventDefault (defaults to false)
"," *
Can be set to true/false to prevent default behavior as soon as the touchstart or mousedown is received (that is before minTime or minDistance thresholds are crossed, and so before the gesturemovestart listener is notified) so that things like text selection and context popups (on touch devices) can be "," * prevented. This property can also be set to a function, which returns true or false, based on the event facade passed to it (for example, DragDrop can determine if the target is a valid handle or not before preventing default).
"," *
"," *"," * @return {EventHandle} the detach handle"," */","","define(GESTURE_MOVE_START, {",""," on: function (node, subscriber, ce) {",""," subscriber[_MOVE_START_HANDLE] = node.on(EVENT[START], "," this._onStart,"," this,"," node,"," subscriber,"," ce);"," },",""," delegate : function(node, subscriber, ce, filter) {",""," var se = this;",""," subscriber[_DEL_MOVE_START_HANDLE] = node.delegate(EVENT[START],"," function(e) {"," se._onStart(e, node, subscriber, ce, true);"," },"," filter);"," },",""," detachDelegate : function(node, subscriber, ce, filter) {"," var handle = subscriber[_DEL_MOVE_START_HANDLE];",""," if (handle) {"," handle.detach();"," subscriber[_DEL_MOVE_START_HANDLE] = null;"," }"," },",""," detach: function (node, subscriber, ce) {"," var startHandle = subscriber[_MOVE_START_HANDLE];",""," if (startHandle) {"," startHandle.detach();"," subscriber[_MOVE_START_HANDLE] = null;"," }"," },",""," processArgs : function(args, delegate) {"," var params = _defArgsProcessor(this, args, delegate);",""," if (!(MIN_TIME in params)) {"," params[MIN_TIME] = this.MIN_TIME;"," }",""," if (!(MIN_DISTANCE in params)) {"," params[MIN_DISTANCE] = this.MIN_DISTANCE;"," }",""," return params;"," },",""," _onStart : function(e, node, subscriber, ce, delegate) {",""," if (delegate) {"," node = e[CURRENT_TARGET];"," }",""," var params = subscriber._extra,"," fireStart = true,"," minTime = params[MIN_TIME],"," minDistance = params[MIN_DISTANCE],"," button = params.button,"," preventDefault = params[PREVENT_DEFAULT],"," root = _getRoot(node, subscriber),"," startXY;",""," if (e.touches) {"," if (e.touches.length === 1) {"," _normTouchFacade(e, e.touches[0], params);"," } else {"," fireStart = false;"," }"," } else {"," fireStart = (button === undefined) || (button === e.button);"," }","",""," if (fireStart) {",""," _prevent(e, preventDefault);",""," if (minTime === 0 || minDistance === 0) {"," this._start(e, node, ce, params);",""," } else {",""," startXY = [e.pageX, e.pageY];",""," if (minTime > 0) {","",""," params._ht = Y.later(minTime, this, this._start, [e, node, ce, params]);",""," params._hme = root.on(EVENT[END], Y.bind(function() {"," this._cancel(params);"," }, this));"," }",""," if (minDistance > 0) {","",""," params._hm = root.on(EVENT[MOVE], Y.bind(function(em) {"," if (Math.abs(em.pageX - startXY[0]) > minDistance || Math.abs(em.pageY - startXY[1]) > minDistance) {"," this._start(e, node, ce, params);"," }"," }, this));"," } "," }"," }"," },",""," _cancel : function(params) {"," if (params._ht) {"," params._ht.cancel();"," params._ht = null;"," }"," if (params._hme) {"," params._hme.detach();"," params._hme = null;"," }"," if (params._hm) {"," params._hm.detach();"," params._hm = null;"," }"," },",""," _start : function(e, node, ce, params) {",""," if (params) {"," this._cancel(params);"," }",""," e.type = GESTURE_MOVE_START;","",""," node.setData(_MOVE_START, e);"," ce.fire(e);"," },",""," MIN_TIME : 0,"," MIN_DISTANCE : 0,"," PREVENT_DEFAULT : false","});","","/**"," * Sets up a \"gesturemove\" event, that is fired on touch devices in response to a single finger \"touchmove\","," * and on mouse based devices in response to a \"mousemove\"."," * "," *

By default this event is only fired when the same node"," * has received a \"gesturemovestart\" event. The subscriber can set standAlone to true, in the configuration properties,"," * if they want to listen for this event without an initial \"gesturemovestart\".

"," * "," *

By default this event sets up it's internal \"touchmove\" and \"mousemove\" DOM listeners on the document element. The subscriber"," * can set the root configuration property, to specify which node to attach DOM listeners to, if different from the document.

"," *"," *

This event can also be listened for using node.delegate().

"," *"," *

It is recommended that you use Y.bind to set up context and additional arguments for your event handler,"," * however if you want to pass the context and arguments as additional signature arguments to on/delegate, "," * you need to provide a null value for the configuration object, e.g: node.on(\"gesturemove\", fn, null, context, arg1, arg2, arg3)

"," *"," * @event gesturemove"," * @for YUI"," * @param type {string} \"gesturemove\""," * @param fn {function} The method the event invokes. It receives the event facade of the underlying DOM event (mousemove or touchmove.touches[0]) which contains position co-ordinates."," * @param cfg {Object} Optional. An object which specifies:"," *
"," *
standAlone (defaults to false)
"," *
true, if the subscriber should be notified even if a \"gesturemovestart\" has not occured on the same node.
"," *
root (defaults to document)
"," *
The node to which the internal DOM listeners should be attached.
"," *
preventDefault (defaults to false)
"," *
Can be set to true/false to prevent default behavior as soon as the touchmove or mousemove is received. As with gesturemovestart, can also be set to function which returns true/false based on the event facade passed to it.
"," *
"," *"," * @return {EventHandle} the detach handle"," */","define(GESTURE_MOVE, {",""," on : function (node, subscriber, ce) {",""," var root = _getRoot(node, subscriber),",""," moveHandle = root.on(EVENT[MOVE], "," this._onMove,"," this,"," node,"," subscriber,"," ce);",""," subscriber[_MOVE_HANDLE] = moveHandle;"," },",""," delegate : function(node, subscriber, ce, filter) {",""," var se = this;",""," subscriber[_DEL_MOVE_HANDLE] = node.delegate(EVENT[MOVE],"," function(e) {"," se._onMove(e, node, subscriber, ce, true);"," },"," filter);"," },",""," detach : function (node, subscriber, ce) {"," var moveHandle = subscriber[_MOVE_HANDLE];",""," if (moveHandle) {"," moveHandle.detach();"," subscriber[_MOVE_HANDLE] = null;"," }"," },"," "," detachDelegate : function(node, subscriber, ce, filter) {"," var handle = subscriber[_DEL_MOVE_HANDLE];",""," if (handle) {"," handle.detach();"," subscriber[_DEL_MOVE_HANDLE] = null;"," }",""," },",""," processArgs : function(args, delegate) {"," return _defArgsProcessor(this, args, delegate);"," },",""," _onMove : function(e, node, subscriber, ce, delegate) {",""," if (delegate) {"," node = e[CURRENT_TARGET];"," }",""," var fireMove = subscriber._extra.standAlone || node.getData(_MOVE_START),"," preventDefault = subscriber._extra.preventDefault;","",""," if (fireMove) {",""," if (e.touches) {"," if (e.touches.length === 1) {"," _normTouchFacade(e, e.touches[0]); "," } else {"," fireMove = false;"," }"," }",""," if (fireMove) {",""," _prevent(e, preventDefault);","",""," e.type = GESTURE_MOVE;"," ce.fire(e);"," }"," }"," },"," "," PREVENT_DEFAULT : false","});","","/**"," * Sets up a \"gesturemoveend\" event, that is fired on touch devices in response to a single finger \"touchend\","," * and on mouse based devices in response to a \"mouseup\"."," * "," *

By default this event is only fired when the same node"," * has received a \"gesturemove\" or \"gesturemovestart\" event. The subscriber can set standAlone to true, in the configuration properties,"," * if they want to listen for this event without a preceding \"gesturemovestart\" or \"gesturemove\".

"," *"," *

By default this event sets up it's internal \"touchend\" and \"mouseup\" DOM listeners on the document element. The subscriber"," * can set the root configuration property, to specify which node to attach DOM listeners to, if different from the document.

"," *"," *

This event can also be listened for using node.delegate().

"," *"," *

It is recommended that you use Y.bind to set up context and additional arguments for your event handler,"," * however if you want to pass the context and arguments as additional signature arguments to on/delegate, "," * you need to provide a null value for the configuration object, e.g: node.on(\"gesturemoveend\", fn, null, context, arg1, arg2, arg3)

"," *"," *"," * @event gesturemoveend"," * @for YUI"," * @param type {string} \"gesturemoveend\""," * @param fn {function} The method the event invokes. It receives the event facade of the underlying DOM event (mouseup or touchend.changedTouches[0])."," * @param cfg {Object} Optional. An object which specifies:"," *
"," *
standAlone (defaults to false)
"," *
true, if the subscriber should be notified even if a \"gesturemovestart\" or \"gesturemove\" has not occured on the same node.
"," *
root (defaults to document)
"," *
The node to which the internal DOM listeners should be attached.
"," *
preventDefault (defaults to false)
"," *
Can be set to true/false to prevent default behavior as soon as the touchend or mouseup is received. As with gesturemovestart, can also be set to function which returns true/false based on the event facade passed to it.
"," *
"," *"," * @return {EventHandle} the detach handle"," */","define(GESTURE_MOVE_END, {",""," on : function (node, subscriber, ce) {",""," var root = _getRoot(node, subscriber),",""," endHandle = root.on(EVENT[END], "," this._onEnd, "," this,"," node,"," subscriber, "," ce);",""," subscriber[_MOVE_END_HANDLE] = endHandle;"," },",""," delegate : function(node, subscriber, ce, filter) {",""," var se = this;",""," subscriber[_DEL_MOVE_END_HANDLE] = node.delegate(EVENT[END],"," function(e) {"," se._onEnd(e, node, subscriber, ce, true);"," },"," filter);"," },",""," detachDelegate : function(node, subscriber, ce, filter) {"," var handle = subscriber[_DEL_MOVE_END_HANDLE];",""," if (handle) {"," handle.detach();"," subscriber[_DEL_MOVE_END_HANDLE] = null;"," }",""," },",""," detach : function (node, subscriber, ce) {"," var endHandle = subscriber[_MOVE_END_HANDLE];"," "," if (endHandle) {"," endHandle.detach();"," subscriber[_MOVE_END_HANDLE] = null;"," }"," },",""," processArgs : function(args, delegate) {"," return _defArgsProcessor(this, args, delegate);"," },",""," _onEnd : function(e, node, subscriber, ce, delegate) {",""," if (delegate) {"," node = e[CURRENT_TARGET];"," }",""," var fireMoveEnd = subscriber._extra.standAlone || node.getData(_MOVE) || node.getData(_MOVE_START),"," preventDefault = subscriber._extra.preventDefault;",""," if (fireMoveEnd) {",""," if (e.changedTouches) {"," if (e.changedTouches.length === 1) {"," _normTouchFacade(e, e.changedTouches[0]); "," } else {"," fireMoveEnd = false;"," }"," }",""," if (fireMoveEnd) {",""," _prevent(e, preventDefault);",""," e.type = GESTURE_MOVE_END;"," ce.fire(e);",""," node.clearData(_MOVE_START);"," node.clearData(_MOVE);"," }"," }"," },",""," PREVENT_DEFAULT : false","});","","}, '3.7.2', {\"requires\": [\"node-base\", \"event-touch\", \"event-synthetic\"]});"]; -_yuitest_coverage["build/event-move/event-move.js"].lines = {"1":0,"12":0,"49":0,"52":0,"53":0,"56":0,"60":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"73":0,"77":0,"79":0,"80":0,"118":0,"122":0,"132":0,"134":0,"136":0,"142":0,"144":0,"145":0,"146":0,"151":0,"153":0,"154":0,"155":0,"160":0,"162":0,"163":0,"166":0,"167":0,"170":0,"175":0,"176":0,"179":0,"188":0,"189":0,"190":0,"192":0,"195":0,"199":0,"201":0,"203":0,"204":0,"208":0,"210":0,"213":0,"215":0,"216":0,"220":0,"223":0,"224":0,"225":0,"234":0,"235":0,"236":0,"238":0,"239":0,"240":0,"242":0,"243":0,"244":0,"250":0,"251":0,"254":0,"257":0,"258":0,"299":0,"303":0,"312":0,"317":0,"319":0,"321":0,"327":0,"329":0,"330":0,"331":0,"336":0,"338":0,"339":0,"340":0,"346":0,"351":0,"352":0,"355":0,"359":0,"361":0,"362":0,"363":0,"365":0,"369":0,"371":0,"374":0,"375":0,"417":0,"421":0,"430":0,"435":0,"437":0,"439":0,"445":0,"447":0,"448":0,"449":0,"455":0,"457":0,"458":0,"459":0,"464":0,"469":0,"470":0,"473":0,"476":0,"478":0,"479":0,"480":0,"482":0,"486":0,"488":0,"490":0,"491":0,"493":0,"494":0}; -_yuitest_coverage["build/event-move/event-move.js"].functions = {"_defArgsProcessor:48":0,"_getRoot:59":0,"_normTouchFacade:63":0,"_prevent:76":0,"on:120":0,"(anonymous 2):135":0,"delegate:130":0,"detachDelegate:141":0,"detach:150":0,"processArgs:159":0,"(anonymous 3):215":0,"(anonymous 4):223":0,"_onStart:173":0,"_cancel:233":0,"_start:248":0,"on:301":0,"(anonymous 5):320":0,"delegate:315":0,"detach:326":0,"detachDelegate:335":0,"processArgs:345":0,"_onMove:349":0,"on:419":0,"(anonymous 6):438":0,"delegate:433":0,"detachDelegate:444":0,"detach:454":0,"processArgs:463":0,"_onEnd:467":0,"(anonymous 1):1":0}; -_yuitest_coverage["build/event-move/event-move.js"].coveredLines = 129; -_yuitest_coverage["build/event-move/event-move.js"].coveredFunctions = 30; -_yuitest_coverline("build/event-move/event-move.js", 1); -YUI.add('event-move', function (Y, NAME) { - -/** - * Adds lower level support for "gesturemovestart", "gesturemove" and "gesturemoveend" events, which can be used to create drag/drop - * interactions which work across touch and mouse input devices. They correspond to "touchstart", "touchmove" and "touchend" on a touch input - * device, and "mousedown", "mousemove", "mouseup" on a mouse based input device. - * - * @module event-gestures - * @submodule event-move - */ - - _yuitest_coverfunc("build/event-move/event-move.js", "(anonymous 1)", 1); -_yuitest_coverline("build/event-move/event-move.js", 12); -var GESTURE_MAP = Y.Event._GESTURE_MAP, - EVENT = { - start: GESTURE_MAP.start, - end: GESTURE_MAP.end, - move: GESTURE_MAP.move - }, - START = "start", - MOVE = "move", - END = "end", - - GESTURE_MOVE = "gesture" + MOVE, - GESTURE_MOVE_END = GESTURE_MOVE + END, - GESTURE_MOVE_START = GESTURE_MOVE + START, - - _MOVE_START_HANDLE = "_msh", - _MOVE_HANDLE = "_mh", - _MOVE_END_HANDLE = "_meh", - - _DEL_MOVE_START_HANDLE = "_dmsh", - _DEL_MOVE_HANDLE = "_dmh", - _DEL_MOVE_END_HANDLE = "_dmeh", - - _MOVE_START = "_ms", - _MOVE = "_m", - - MIN_TIME = "minTime", - MIN_DISTANCE = "minDistance", - PREVENT_DEFAULT = "preventDefault", - BUTTON = "button", - OWNER_DOCUMENT = "ownerDocument", - - CURRENT_TARGET = "currentTarget", - TARGET = "target", - - NODE_TYPE = "nodeType", - - _defArgsProcessor = function(se, args, delegate) { - _yuitest_coverfunc("build/event-move/event-move.js", "_defArgsProcessor", 48); -_yuitest_coverline("build/event-move/event-move.js", 49); -var iConfig = (delegate) ? 4 : 3, - config = (args.length > iConfig) ? Y.merge(args.splice(iConfig,1)[0]) : {}; - - _yuitest_coverline("build/event-move/event-move.js", 52); -if (!(PREVENT_DEFAULT in config)) { - _yuitest_coverline("build/event-move/event-move.js", 53); -config[PREVENT_DEFAULT] = se.PREVENT_DEFAULT; - } - - _yuitest_coverline("build/event-move/event-move.js", 56); -return config; - }, - - _getRoot = function(node, subscriber) { - _yuitest_coverfunc("build/event-move/event-move.js", "_getRoot", 59); -_yuitest_coverline("build/event-move/event-move.js", 60); -return subscriber._extra.root || (node.get(NODE_TYPE) === 9) ? node : node.get(OWNER_DOCUMENT); - }, - - _normTouchFacade = function(touchFacade, touch, params) { - _yuitest_coverfunc("build/event-move/event-move.js", "_normTouchFacade", 63); -_yuitest_coverline("build/event-move/event-move.js", 64); -touchFacade.pageX = touch.pageX; - _yuitest_coverline("build/event-move/event-move.js", 65); -touchFacade.pageY = touch.pageY; - _yuitest_coverline("build/event-move/event-move.js", 66); -touchFacade.screenX = touch.screenX; - _yuitest_coverline("build/event-move/event-move.js", 67); -touchFacade.screenY = touch.screenY; - _yuitest_coverline("build/event-move/event-move.js", 68); -touchFacade.clientX = touch.clientX; - _yuitest_coverline("build/event-move/event-move.js", 69); -touchFacade.clientY = touch.clientY; - _yuitest_coverline("build/event-move/event-move.js", 70); -touchFacade[TARGET] = touchFacade[TARGET] || touch[TARGET]; - _yuitest_coverline("build/event-move/event-move.js", 71); -touchFacade[CURRENT_TARGET] = touchFacade[CURRENT_TARGET] || touch[CURRENT_TARGET]; - - _yuitest_coverline("build/event-move/event-move.js", 73); -touchFacade[BUTTON] = (params && params[BUTTON]) || 1; // default to left (left as per vendors, not W3C which is 0) - }, - - _prevent = function(e, preventDefault) { - _yuitest_coverfunc("build/event-move/event-move.js", "_prevent", 76); -_yuitest_coverline("build/event-move/event-move.js", 77); -if (preventDefault) { - // preventDefault is a boolean or a function - _yuitest_coverline("build/event-move/event-move.js", 79); -if (!preventDefault.call || preventDefault(e)) { - _yuitest_coverline("build/event-move/event-move.js", 80); -e.preventDefault(); - } - } - }, - - define = Y.Event.define; - -/** - * Sets up a "gesturemovestart" event, that is fired on touch devices in response to a single finger "touchstart", - * and on mouse based devices in response to a "mousedown". The subscriber can specify the minimum time - * and distance thresholds which should be crossed before the "gesturemovestart" is fired and for the mouse, - * which button should initiate a "gesturemovestart". This event can also be listened for using node.delegate(). - * - *

It is recommended that you use Y.bind to set up context and additional arguments for your event handler, - * however if you want to pass the context and arguments as additional signature arguments to on/delegate, - * you need to provide a null value for the configuration object, e.g: node.on("gesturemovestart", fn, null, context, arg1, arg2, arg3)

- * - * @event gesturemovestart - * @for YUI - * @param type {string} "gesturemovestart" - * @param fn {function} The method the event invokes. It receives the event facade of the underlying DOM event (mousedown or touchstart.touches[0]) which contains position co-ordinates. - * @param cfg {Object} Optional. An object which specifies: - * - *
- *
minDistance (defaults to 0)
- *
The minimum distance threshold which should be crossed before the gesturemovestart is fired
- *
minTime (defaults to 0)
- *
The minimum time threshold for which the finger/mouse should be help down before the gesturemovestart is fired
- *
button (no default)
- *
In the case of a mouse input device, if the event should only be fired for a specific mouse button.
- *
preventDefault (defaults to false)
- *
Can be set to true/false to prevent default behavior as soon as the touchstart or mousedown is received (that is before minTime or minDistance thresholds are crossed, and so before the gesturemovestart listener is notified) so that things like text selection and context popups (on touch devices) can be - * prevented. This property can also be set to a function, which returns true or false, based on the event facade passed to it (for example, DragDrop can determine if the target is a valid handle or not before preventing default).
- *
- * - * @return {EventHandle} the detach handle - */ - -_yuitest_coverline("build/event-move/event-move.js", 118); -define(GESTURE_MOVE_START, { - - on: function (node, subscriber, ce) { - - _yuitest_coverfunc("build/event-move/event-move.js", "on", 120); -_yuitest_coverline("build/event-move/event-move.js", 122); -subscriber[_MOVE_START_HANDLE] = node.on(EVENT[START], - this._onStart, - this, - node, - subscriber, - ce); - }, - - delegate : function(node, subscriber, ce, filter) { - - _yuitest_coverfunc("build/event-move/event-move.js", "delegate", 130); -_yuitest_coverline("build/event-move/event-move.js", 132); -var se = this; - - _yuitest_coverline("build/event-move/event-move.js", 134); -subscriber[_DEL_MOVE_START_HANDLE] = node.delegate(EVENT[START], - function(e) { - _yuitest_coverfunc("build/event-move/event-move.js", "(anonymous 2)", 135); -_yuitest_coverline("build/event-move/event-move.js", 136); -se._onStart(e, node, subscriber, ce, true); - }, - filter); - }, - - detachDelegate : function(node, subscriber, ce, filter) { - _yuitest_coverfunc("build/event-move/event-move.js", "detachDelegate", 141); -_yuitest_coverline("build/event-move/event-move.js", 142); -var handle = subscriber[_DEL_MOVE_START_HANDLE]; - - _yuitest_coverline("build/event-move/event-move.js", 144); -if (handle) { - _yuitest_coverline("build/event-move/event-move.js", 145); -handle.detach(); - _yuitest_coverline("build/event-move/event-move.js", 146); -subscriber[_DEL_MOVE_START_HANDLE] = null; - } - }, - - detach: function (node, subscriber, ce) { - _yuitest_coverfunc("build/event-move/event-move.js", "detach", 150); -_yuitest_coverline("build/event-move/event-move.js", 151); -var startHandle = subscriber[_MOVE_START_HANDLE]; - - _yuitest_coverline("build/event-move/event-move.js", 153); -if (startHandle) { - _yuitest_coverline("build/event-move/event-move.js", 154); -startHandle.detach(); - _yuitest_coverline("build/event-move/event-move.js", 155); -subscriber[_MOVE_START_HANDLE] = null; - } - }, - - processArgs : function(args, delegate) { - _yuitest_coverfunc("build/event-move/event-move.js", "processArgs", 159); -_yuitest_coverline("build/event-move/event-move.js", 160); -var params = _defArgsProcessor(this, args, delegate); - - _yuitest_coverline("build/event-move/event-move.js", 162); -if (!(MIN_TIME in params)) { - _yuitest_coverline("build/event-move/event-move.js", 163); -params[MIN_TIME] = this.MIN_TIME; - } - - _yuitest_coverline("build/event-move/event-move.js", 166); -if (!(MIN_DISTANCE in params)) { - _yuitest_coverline("build/event-move/event-move.js", 167); -params[MIN_DISTANCE] = this.MIN_DISTANCE; - } - - _yuitest_coverline("build/event-move/event-move.js", 170); -return params; - }, - - _onStart : function(e, node, subscriber, ce, delegate) { - - _yuitest_coverfunc("build/event-move/event-move.js", "_onStart", 173); -_yuitest_coverline("build/event-move/event-move.js", 175); -if (delegate) { - _yuitest_coverline("build/event-move/event-move.js", 176); -node = e[CURRENT_TARGET]; - } - - _yuitest_coverline("build/event-move/event-move.js", 179); -var params = subscriber._extra, - fireStart = true, - minTime = params[MIN_TIME], - minDistance = params[MIN_DISTANCE], - button = params.button, - preventDefault = params[PREVENT_DEFAULT], - root = _getRoot(node, subscriber), - startXY; - - _yuitest_coverline("build/event-move/event-move.js", 188); -if (e.touches) { - _yuitest_coverline("build/event-move/event-move.js", 189); -if (e.touches.length === 1) { - _yuitest_coverline("build/event-move/event-move.js", 190); -_normTouchFacade(e, e.touches[0], params); - } else { - _yuitest_coverline("build/event-move/event-move.js", 192); -fireStart = false; - } - } else { - _yuitest_coverline("build/event-move/event-move.js", 195); -fireStart = (button === undefined) || (button === e.button); - } - - - _yuitest_coverline("build/event-move/event-move.js", 199); -if (fireStart) { - - _yuitest_coverline("build/event-move/event-move.js", 201); -_prevent(e, preventDefault); - - _yuitest_coverline("build/event-move/event-move.js", 203); -if (minTime === 0 || minDistance === 0) { - _yuitest_coverline("build/event-move/event-move.js", 204); -this._start(e, node, ce, params); - - } else { - - _yuitest_coverline("build/event-move/event-move.js", 208); -startXY = [e.pageX, e.pageY]; - - _yuitest_coverline("build/event-move/event-move.js", 210); -if (minTime > 0) { - - - _yuitest_coverline("build/event-move/event-move.js", 213); -params._ht = Y.later(minTime, this, this._start, [e, node, ce, params]); - - _yuitest_coverline("build/event-move/event-move.js", 215); -params._hme = root.on(EVENT[END], Y.bind(function() { - _yuitest_coverfunc("build/event-move/event-move.js", "(anonymous 3)", 215); -_yuitest_coverline("build/event-move/event-move.js", 216); -this._cancel(params); - }, this)); - } - - _yuitest_coverline("build/event-move/event-move.js", 220); -if (minDistance > 0) { - - - _yuitest_coverline("build/event-move/event-move.js", 223); -params._hm = root.on(EVENT[MOVE], Y.bind(function(em) { - _yuitest_coverfunc("build/event-move/event-move.js", "(anonymous 4)", 223); -_yuitest_coverline("build/event-move/event-move.js", 224); -if (Math.abs(em.pageX - startXY[0]) > minDistance || Math.abs(em.pageY - startXY[1]) > minDistance) { - _yuitest_coverline("build/event-move/event-move.js", 225); -this._start(e, node, ce, params); - } - }, this)); - } - } - } - }, - - _cancel : function(params) { - _yuitest_coverfunc("build/event-move/event-move.js", "_cancel", 233); -_yuitest_coverline("build/event-move/event-move.js", 234); -if (params._ht) { - _yuitest_coverline("build/event-move/event-move.js", 235); -params._ht.cancel(); - _yuitest_coverline("build/event-move/event-move.js", 236); -params._ht = null; - } - _yuitest_coverline("build/event-move/event-move.js", 238); -if (params._hme) { - _yuitest_coverline("build/event-move/event-move.js", 239); -params._hme.detach(); - _yuitest_coverline("build/event-move/event-move.js", 240); -params._hme = null; - } - _yuitest_coverline("build/event-move/event-move.js", 242); -if (params._hm) { - _yuitest_coverline("build/event-move/event-move.js", 243); -params._hm.detach(); - _yuitest_coverline("build/event-move/event-move.js", 244); -params._hm = null; - } - }, - - _start : function(e, node, ce, params) { - - _yuitest_coverfunc("build/event-move/event-move.js", "_start", 248); -_yuitest_coverline("build/event-move/event-move.js", 250); -if (params) { - _yuitest_coverline("build/event-move/event-move.js", 251); -this._cancel(params); - } - - _yuitest_coverline("build/event-move/event-move.js", 254); -e.type = GESTURE_MOVE_START; - - - _yuitest_coverline("build/event-move/event-move.js", 257); -node.setData(_MOVE_START, e); - _yuitest_coverline("build/event-move/event-move.js", 258); -ce.fire(e); - }, - - MIN_TIME : 0, - MIN_DISTANCE : 0, - PREVENT_DEFAULT : false -}); - -/** - * Sets up a "gesturemove" event, that is fired on touch devices in response to a single finger "touchmove", - * and on mouse based devices in response to a "mousemove". - * - *

By default this event is only fired when the same node - * has received a "gesturemovestart" event. The subscriber can set standAlone to true, in the configuration properties, - * if they want to listen for this event without an initial "gesturemovestart".

- * - *

By default this event sets up it's internal "touchmove" and "mousemove" DOM listeners on the document element. The subscriber - * can set the root configuration property, to specify which node to attach DOM listeners to, if different from the document.

- * - *

This event can also be listened for using node.delegate().

- * - *

It is recommended that you use Y.bind to set up context and additional arguments for your event handler, - * however if you want to pass the context and arguments as additional signature arguments to on/delegate, - * you need to provide a null value for the configuration object, e.g: node.on("gesturemove", fn, null, context, arg1, arg2, arg3)

- * - * @event gesturemove - * @for YUI - * @param type {string} "gesturemove" - * @param fn {function} The method the event invokes. It receives the event facade of the underlying DOM event (mousemove or touchmove.touches[0]) which contains position co-ordinates. - * @param cfg {Object} Optional. An object which specifies: - *
- *
standAlone (defaults to false)
- *
true, if the subscriber should be notified even if a "gesturemovestart" has not occured on the same node.
- *
root (defaults to document)
- *
The node to which the internal DOM listeners should be attached.
- *
preventDefault (defaults to false)
- *
Can be set to true/false to prevent default behavior as soon as the touchmove or mousemove is received. As with gesturemovestart, can also be set to function which returns true/false based on the event facade passed to it.
- *
- * - * @return {EventHandle} the detach handle - */ -_yuitest_coverline("build/event-move/event-move.js", 299); -define(GESTURE_MOVE, { - - on : function (node, subscriber, ce) { - - _yuitest_coverfunc("build/event-move/event-move.js", "on", 301); -_yuitest_coverline("build/event-move/event-move.js", 303); -var root = _getRoot(node, subscriber), - - moveHandle = root.on(EVENT[MOVE], - this._onMove, - this, - node, - subscriber, - ce); - - _yuitest_coverline("build/event-move/event-move.js", 312); -subscriber[_MOVE_HANDLE] = moveHandle; - }, - - delegate : function(node, subscriber, ce, filter) { - - _yuitest_coverfunc("build/event-move/event-move.js", "delegate", 315); -_yuitest_coverline("build/event-move/event-move.js", 317); -var se = this; - - _yuitest_coverline("build/event-move/event-move.js", 319); -subscriber[_DEL_MOVE_HANDLE] = node.delegate(EVENT[MOVE], - function(e) { - _yuitest_coverfunc("build/event-move/event-move.js", "(anonymous 5)", 320); -_yuitest_coverline("build/event-move/event-move.js", 321); -se._onMove(e, node, subscriber, ce, true); - }, - filter); - }, - - detach : function (node, subscriber, ce) { - _yuitest_coverfunc("build/event-move/event-move.js", "detach", 326); -_yuitest_coverline("build/event-move/event-move.js", 327); -var moveHandle = subscriber[_MOVE_HANDLE]; - - _yuitest_coverline("build/event-move/event-move.js", 329); -if (moveHandle) { - _yuitest_coverline("build/event-move/event-move.js", 330); -moveHandle.detach(); - _yuitest_coverline("build/event-move/event-move.js", 331); -subscriber[_MOVE_HANDLE] = null; - } - }, - - detachDelegate : function(node, subscriber, ce, filter) { - _yuitest_coverfunc("build/event-move/event-move.js", "detachDelegate", 335); -_yuitest_coverline("build/event-move/event-move.js", 336); -var handle = subscriber[_DEL_MOVE_HANDLE]; - - _yuitest_coverline("build/event-move/event-move.js", 338); -if (handle) { - _yuitest_coverline("build/event-move/event-move.js", 339); -handle.detach(); - _yuitest_coverline("build/event-move/event-move.js", 340); -subscriber[_DEL_MOVE_HANDLE] = null; - } - - }, - - processArgs : function(args, delegate) { - _yuitest_coverfunc("build/event-move/event-move.js", "processArgs", 345); -_yuitest_coverline("build/event-move/event-move.js", 346); -return _defArgsProcessor(this, args, delegate); - }, - - _onMove : function(e, node, subscriber, ce, delegate) { - - _yuitest_coverfunc("build/event-move/event-move.js", "_onMove", 349); -_yuitest_coverline("build/event-move/event-move.js", 351); -if (delegate) { - _yuitest_coverline("build/event-move/event-move.js", 352); -node = e[CURRENT_TARGET]; - } - - _yuitest_coverline("build/event-move/event-move.js", 355); -var fireMove = subscriber._extra.standAlone || node.getData(_MOVE_START), - preventDefault = subscriber._extra.preventDefault; - - - _yuitest_coverline("build/event-move/event-move.js", 359); -if (fireMove) { - - _yuitest_coverline("build/event-move/event-move.js", 361); -if (e.touches) { - _yuitest_coverline("build/event-move/event-move.js", 362); -if (e.touches.length === 1) { - _yuitest_coverline("build/event-move/event-move.js", 363); -_normTouchFacade(e, e.touches[0]); - } else { - _yuitest_coverline("build/event-move/event-move.js", 365); -fireMove = false; - } - } - - _yuitest_coverline("build/event-move/event-move.js", 369); -if (fireMove) { - - _yuitest_coverline("build/event-move/event-move.js", 371); -_prevent(e, preventDefault); - - - _yuitest_coverline("build/event-move/event-move.js", 374); -e.type = GESTURE_MOVE; - _yuitest_coverline("build/event-move/event-move.js", 375); -ce.fire(e); - } - } - }, - - PREVENT_DEFAULT : false -}); - -/** - * Sets up a "gesturemoveend" event, that is fired on touch devices in response to a single finger "touchend", - * and on mouse based devices in response to a "mouseup". - * - *

By default this event is only fired when the same node - * has received a "gesturemove" or "gesturemovestart" event. The subscriber can set standAlone to true, in the configuration properties, - * if they want to listen for this event without a preceding "gesturemovestart" or "gesturemove".

- * - *

By default this event sets up it's internal "touchend" and "mouseup" DOM listeners on the document element. The subscriber - * can set the root configuration property, to specify which node to attach DOM listeners to, if different from the document.

- * - *

This event can also be listened for using node.delegate().

- * - *

It is recommended that you use Y.bind to set up context and additional arguments for your event handler, - * however if you want to pass the context and arguments as additional signature arguments to on/delegate, - * you need to provide a null value for the configuration object, e.g: node.on("gesturemoveend", fn, null, context, arg1, arg2, arg3)

- * - * - * @event gesturemoveend - * @for YUI - * @param type {string} "gesturemoveend" - * @param fn {function} The method the event invokes. It receives the event facade of the underlying DOM event (mouseup or touchend.changedTouches[0]). - * @param cfg {Object} Optional. An object which specifies: - *
- *
standAlone (defaults to false)
- *
true, if the subscriber should be notified even if a "gesturemovestart" or "gesturemove" has not occured on the same node.
- *
root (defaults to document)
- *
The node to which the internal DOM listeners should be attached.
- *
preventDefault (defaults to false)
- *
Can be set to true/false to prevent default behavior as soon as the touchend or mouseup is received. As with gesturemovestart, can also be set to function which returns true/false based on the event facade passed to it.
- *
- * - * @return {EventHandle} the detach handle - */ -_yuitest_coverline("build/event-move/event-move.js", 417); -define(GESTURE_MOVE_END, { - - on : function (node, subscriber, ce) { - - _yuitest_coverfunc("build/event-move/event-move.js", "on", 419); -_yuitest_coverline("build/event-move/event-move.js", 421); -var root = _getRoot(node, subscriber), - - endHandle = root.on(EVENT[END], - this._onEnd, - this, - node, - subscriber, - ce); - - _yuitest_coverline("build/event-move/event-move.js", 430); -subscriber[_MOVE_END_HANDLE] = endHandle; - }, - - delegate : function(node, subscriber, ce, filter) { - - _yuitest_coverfunc("build/event-move/event-move.js", "delegate", 433); -_yuitest_coverline("build/event-move/event-move.js", 435); -var se = this; - - _yuitest_coverline("build/event-move/event-move.js", 437); -subscriber[_DEL_MOVE_END_HANDLE] = node.delegate(EVENT[END], - function(e) { - _yuitest_coverfunc("build/event-move/event-move.js", "(anonymous 6)", 438); -_yuitest_coverline("build/event-move/event-move.js", 439); -se._onEnd(e, node, subscriber, ce, true); - }, - filter); - }, - - detachDelegate : function(node, subscriber, ce, filter) { - _yuitest_coverfunc("build/event-move/event-move.js", "detachDelegate", 444); -_yuitest_coverline("build/event-move/event-move.js", 445); -var handle = subscriber[_DEL_MOVE_END_HANDLE]; - - _yuitest_coverline("build/event-move/event-move.js", 447); -if (handle) { - _yuitest_coverline("build/event-move/event-move.js", 448); -handle.detach(); - _yuitest_coverline("build/event-move/event-move.js", 449); -subscriber[_DEL_MOVE_END_HANDLE] = null; - } - - }, - - detach : function (node, subscriber, ce) { - _yuitest_coverfunc("build/event-move/event-move.js", "detach", 454); -_yuitest_coverline("build/event-move/event-move.js", 455); -var endHandle = subscriber[_MOVE_END_HANDLE]; - - _yuitest_coverline("build/event-move/event-move.js", 457); -if (endHandle) { - _yuitest_coverline("build/event-move/event-move.js", 458); -endHandle.detach(); - _yuitest_coverline("build/event-move/event-move.js", 459); -subscriber[_MOVE_END_HANDLE] = null; - } - }, - - processArgs : function(args, delegate) { - _yuitest_coverfunc("build/event-move/event-move.js", "processArgs", 463); -_yuitest_coverline("build/event-move/event-move.js", 464); -return _defArgsProcessor(this, args, delegate); - }, - - _onEnd : function(e, node, subscriber, ce, delegate) { - - _yuitest_coverfunc("build/event-move/event-move.js", "_onEnd", 467); -_yuitest_coverline("build/event-move/event-move.js", 469); -if (delegate) { - _yuitest_coverline("build/event-move/event-move.js", 470); -node = e[CURRENT_TARGET]; - } - - _yuitest_coverline("build/event-move/event-move.js", 473); -var fireMoveEnd = subscriber._extra.standAlone || node.getData(_MOVE) || node.getData(_MOVE_START), - preventDefault = subscriber._extra.preventDefault; - - _yuitest_coverline("build/event-move/event-move.js", 476); -if (fireMoveEnd) { - - _yuitest_coverline("build/event-move/event-move.js", 478); -if (e.changedTouches) { - _yuitest_coverline("build/event-move/event-move.js", 479); -if (e.changedTouches.length === 1) { - _yuitest_coverline("build/event-move/event-move.js", 480); -_normTouchFacade(e, e.changedTouches[0]); - } else { - _yuitest_coverline("build/event-move/event-move.js", 482); -fireMoveEnd = false; - } - } - - _yuitest_coverline("build/event-move/event-move.js", 486); -if (fireMoveEnd) { - - _yuitest_coverline("build/event-move/event-move.js", 488); -_prevent(e, preventDefault); - - _yuitest_coverline("build/event-move/event-move.js", 490); -e.type = GESTURE_MOVE_END; - _yuitest_coverline("build/event-move/event-move.js", 491); -ce.fire(e); - - _yuitest_coverline("build/event-move/event-move.js", 493); -node.clearData(_MOVE_START); - _yuitest_coverline("build/event-move/event-move.js", 494); -node.clearData(_MOVE); - } - } - }, - - PREVENT_DEFAULT : false -}); - -}, '3.7.2', {"requires": ["node-base", "event-touch", "event-synthetic"]}); diff --git a/lib/yuilib/3.7.2/build/event-move/event-move-min.js b/lib/yuilib/3.7.2/build/event-move/event-move-min.js deleted file mode 100644 index 9b3d1fcdd24..00000000000 --- a/lib/yuilib/3.7.2/build/event-move/event-move-min.js +++ /dev/null @@ -1,7 +0,0 @@ -/* -YUI 3.7.2 (build 5639) -Copyright 2012 Yahoo! Inc. All rights reserved. -Licensed under the BSD License. -http://yuilibrary.com/license/ -*/ -YUI.add("event-move",function(e,t){var n=e.Event._GESTURE_MAP,r={start:n.start,end:n.end,move:n.move},i="start",s="move",o="end",u="gesture"+s,a=u+o,f=u+i,l="_msh",c="_mh",h="_meh",p="_dmsh",d="_dmh",v="_dmeh",m="_ms",g="_m",y="minTime",b="minDistance",w="preventDefault",E="button",S="ownerDocument",x="currentTarget",T="target",N="nodeType",C=function(t,n,r){var i=r?4:3,s=n.length>i?e.merge(n.splice(i,1)[0]):{};return w in s||(s[w]=t.PREVENT_DEFAULT),s},k=function(e,t){return t._extra.root||e.get(N)===9?e:e.get(S)},L=function(e,t,n){e.pageX=t.pageX,e.pageY=t.pageY,e.screenX=t.screenX,e.screenY=t.screenY,e.clientX=t.clientX,e.clientY=t.clientY,e[T]=e[T]||t[T],e[x]=e[x]||t[x],e[E]=n&&n[E]||1},A=function(e,t){t&&(!t.call||t(e))&&e.preventDefault()},O=e.Event.define;O(f,{on:function(e,t,n){t[l]=e.on(r[i],this._onStart,this,e,t,n)},delegate:function(e,t,n,s){var o=this;t[p]=e.delegate(r[i],function(r){o._onStart(r,e,t,n,!0)},s)},detachDelegate:function(e,t,n,r){var i=t[p];i&&(i.detach(),t[p]=null)},detach:function(e,t,n){var r=t[l];r&&(r.detach(),t[l]=null)},processArgs:function(e,t){var n=C(this,e,t);return y in n||(n[y]=this.MIN_TIME),b in n||(n[b]=this.MIN_DISTANCE),n},_onStart:function(t,n,i,u,a){a&&(n=t[x]);var f=i._extra,l=!0,c=f[y],h=f[b],p=f.button,d=f[w],v=k(n,i),m;t.touches?t.touches.length===1?L(t,t.touches[0],f):l=!1:l=p===undefined||p===t.button,l&&(A(t,d),c===0||h===0?this._start(t,n,u,f):(m=[t.pageX,t.pageY],c>0&&(f._ht=e.later(c,this,this._start,[t,n,u,f]),f._hme=v.on(r[o],e.bind(function(){this._cancel(f)},this))),h>0&&(f._hm=v.on(r[s],e.bind(function(e){(Math.abs(e.pageX-m[0])>h||Math.abs(e.pageY-m[1])>h)&&this._start(t,n,u,f)},this)))))},_cancel:function(e){e._ht&&(e._ht.cancel(),e._ht=null),e._hme&&(e._hme.detach(),e._hme=null),e._hm&&(e._hm.detach(),e._hm=null)},_start:function(e,t,n,r){r&&this._cancel(r),e.type=f,t.setData(m,e),n.fire(e)},MIN_TIME:0,MIN_DISTANCE:0,PREVENT_DEFAULT:!1}),O(u,{on:function(e,t,n){var i=k(e,t),o=i.on(r[s],this._onMove,this,e,t,n);t[c]=o},delegate:function(e,t,n,i){var o=this;t[d]=e.delegate(r[s],function(r){o._onMove(r,e,t,n,!0)},i)},detach:function(e,t,n){var r=t[c];r&&(r.detach(),t[c]=null)},detachDelegate:function(e,t,n,r){var i=t[d];i&&(i.detach(),t[d]=null)},processArgs:function(e,t){return C(this,e,t)},_onMove:function(e,t,n,r,i){i&&(t=e[x]);var s=n._extra.standAlone||t.getData(m),o=n._extra.preventDefault;s&&(e.touches&&(e.touches.length===1?L(e,e.touches[0]):s=!1),s&&(A(e,o),e.type=u,r.fire(e)))},PREVENT_DEFAULT:!1}),O(a,{on:function(e,t,n){var i=k(e,t),s=i.on(r[o],this._onEnd,this,e,t,n);t[h]=s},delegate:function(e,t,n,i){var s=this;t[v]=e.delegate(r[o],function(r){s._onEnd(r,e,t,n,!0)},i)},detachDelegate:function(e,t,n,r){var i=t[v];i&&(i.detach(),t[v]=null)},detach:function(e,t,n){var r=t[h];r&&(r.detach(),t[h]=null)},processArgs:function(e,t){return C(this,e,t)},_onEnd:function(e,t,n,r,i){i&&(t=e[x]);var s=n._extra.standAlone||t.getData(g)||t.getData(m),o=n._extra.preventDefault;s&&(e.changedTouches&&(e.changedTouches.length===1?L(e,e.changedTouches[0]):s=!1),s&&(A(e,o),e.type=a,r.fire(e),t.clearData(m),t.clearData(g)))},PREVENT_DEFAULT:!1})},"3.7.2",{requires:["node-base","event-touch","event-synthetic"]}); diff --git a/lib/yuilib/3.7.2/build/exec-command/exec-command-coverage.js b/lib/yuilib/3.7.2/build/exec-command/exec-command-coverage.js deleted file mode 100644 index 9f822c61eb2..00000000000 --- a/lib/yuilib/3.7.2/build/exec-command/exec-command-coverage.js +++ /dev/null @@ -1,1069 +0,0 @@ -/* -YUI 3.7.2 (build 5639) -Copyright 2012 Yahoo! Inc. All rights reserved. -Licensed under the BSD License. -http://yuilibrary.com/license/ -*/ -if (typeof _yuitest_coverage == "undefined"){ - _yuitest_coverage = {}; - _yuitest_coverline = function(src, line){ - var coverage = _yuitest_coverage[src]; - if (!coverage.lines[line]){ - coverage.calledLines++; - } - coverage.lines[line]++; - }; - _yuitest_coverfunc = function(src, name, line){ - var coverage = _yuitest_coverage[src], - funcId = name + ":" + line; - if (!coverage.functions[funcId]){ - coverage.calledFunctions++; - } - coverage.functions[funcId]++; - }; -} -_yuitest_coverage["build/exec-command/exec-command.js"] = { - lines: {}, - functions: {}, - coveredLines: 0, - calledLines: 0, - coveredFunctions: 0, - calledFunctions: 0, - path: "build/exec-command/exec-command.js", - code: [] -}; -_yuitest_coverage["build/exec-command/exec-command.js"].code=["YUI.add('exec-command', function (Y, NAME) {","",""," /**"," * Plugin for the frame module to handle execCommands for Editor"," * @class Plugin.ExecCommand"," * @extends Base"," * @constructor"," * @module editor"," * @submodule exec-command"," */"," var ExecCommand = function() {"," ExecCommand.superclass.constructor.apply(this, arguments);"," };",""," Y.extend(ExecCommand, Y.Base, {"," /**"," * An internal reference to the keyCode of the last key that was pressed."," * @private"," * @property _lastKey"," */"," _lastKey: null,"," /**"," * An internal reference to the instance of the frame plugged into."," * @private"," * @property _inst"," */"," _inst: null,"," /**"," * Execute a command on the frame's document."," * @method command"," * @param {String} action The action to perform (bold, italic, fontname)"," * @param {String} value The optional value (helvetica)"," * @return {Node/NodeList} Should return the Node/Nodelist affected"," */"," command: function(action, value) {"," var fn = ExecCommand.COMMANDS[action];"," "," if (fn) {"," return fn.call(this, action, value);"," } else {"," return this._command(action, value);"," }"," },"," /**"," * The private version of execCommand that doesn't filter for overrides."," * @private"," * @method _command"," * @param {String} action The action to perform (bold, italic, fontname)"," * @param {String} value The optional value (helvetica)"," */"," _command: function(action, value) {"," var inst = this.getInstance();"," try {"," try {"," inst.config.doc.execCommand('styleWithCSS', null, 1);"," } catch (e1) {"," try {"," inst.config.doc.execCommand('useCSS', null, 0);"," } catch (e2) {"," }"," }"," inst.config.doc.execCommand(action, null, value);"," } catch (e) {"," }"," },"," /**"," * Get's the instance of YUI bound to the parent frame"," * @method getInstance"," * @return {YUI} The YUI instance bound to the parent frame"," */"," getInstance: function() {"," if (!this._inst) {"," this._inst = this.get('host').getInstance();"," }"," return this._inst;"," },"," initializer: function() {"," Y.mix(this.get('host'), {"," execCommand: function(action, value) {"," return this.exec.command(action, value);"," },"," _execCommand: function(action, value) {"," return this.exec._command(action, value);"," }"," });",""," this.get('host').on('dom:keypress', Y.bind(function(e) {"," this._lastKey = e.keyCode;"," }, this));"," },"," _wrapContent: function(str, override) {"," var useP = (this.getInstance().host.editorPara && !override ? true : false);"," "," if (useP) {"," str = '

' + str + '

';"," } else {"," str = str + '
';"," }"," return str;"," }"," }, {"," /**"," * execCommand"," * @property NAME"," * @static"," */"," NAME: 'execCommand',"," /**"," * exec"," * @property NS"," * @static"," */"," NS: 'exec',"," ATTRS: {"," host: {"," value: false"," }"," },"," /**"," * Static object literal of execCommand overrides"," * @property COMMANDS"," * @static"," */"," COMMANDS: {"," /**"," * Wraps the content with a new element of type (tag)"," * @method COMMANDS.wrap"," * @static"," * @param {String} cmd The command executed: wrap"," * @param {String} tag The tag to wrap the selection with"," * @return {NodeList} NodeList of the items touched by this command."," */"," wrap: function(cmd, tag) {"," var inst = this.getInstance();"," return (new inst.EditorSelection()).wrapContent(tag);"," },"," /**"," * Inserts the provided HTML at the cursor, should be a single element."," * @method COMMANDS.inserthtml"," * @static"," * @param {String} cmd The command executed: inserthtml"," * @param {String} html The html to insert"," * @return {Node} Node instance of the item touched by this command."," */"," inserthtml: function(cmd, html) {"," var inst = this.getInstance();"," if (inst.EditorSelection.hasCursor() || Y.UA.ie) {"," return (new inst.EditorSelection()).insertContent(html);"," } else {"," this._command('inserthtml', html);"," }"," },"," /**"," * Inserts the provided HTML at the cursor, and focuses the cursor afterwards."," * @method COMMANDS.insertandfocus"," * @static"," * @param {String} cmd The command executed: insertandfocus"," * @param {String} html The html to insert"," * @return {Node} Node instance of the item touched by this command."," */"," insertandfocus: function(cmd, html) {"," var inst = this.getInstance(), out, sel;"," if (inst.EditorSelection.hasCursor()) {"," html += inst.EditorSelection.CURSOR;"," out = this.command('inserthtml', html);"," sel = new inst.EditorSelection();"," sel.focusCursor(true, true);"," } else {"," this.command('inserthtml', html);"," }"," return out;"," },"," /**"," * Inserts a BR at the current cursor position"," * @method COMMANDS.insertbr"," * @static"," * @param {String} cmd The command executed: insertbr"," */"," insertbr: function(cmd) {"," var inst = this.getInstance(),"," sel = new inst.EditorSelection(),"," html = '|', last = null,"," q = (Y.UA.webkit) ? 'span.Apple-style-span,var' : 'var';",""," if (sel._selection.pasteHTML) {"," sel._selection.pasteHTML(html);"," } else {"," this._command('inserthtml', html);"," }",""," var insert = function(n) {"," var c = inst.Node.create('
');"," n.insert(c, 'before');"," return c;"," };",""," inst.all(q).each(function(n) {"," var g = true; "," if (Y.UA.webkit) {"," g = false;"," if (n.get('innerHTML') === '|') {"," g = true;"," }"," }"," if (g) {"," last = insert(n);"," if ((!last.previous() || !last.previous().test('br')) && Y.UA.gecko) {"," var s = last.cloneNode();"," last.insert(s, 'after');"," last = s;"," }"," n.remove();"," }"," });"," if (Y.UA.webkit && last) {"," insert(last);"," sel.selectNode(last);"," }"," },"," /**"," * Inserts an image at the cursor position"," * @method COMMANDS.insertimage"," * @static"," * @param {String} cmd The command executed: insertimage"," * @param {String} img The url of the image to be inserted"," * @return {Node} Node instance of the item touched by this command."," */"," insertimage: function(cmd, img) {"," return this.command('inserthtml', '');"," },"," /**"," * Add a class to all of the elements in the selection"," * @method COMMANDS.addclass"," * @static"," * @param {String} cmd The command executed: addclass"," * @param {String} cls The className to add"," * @return {NodeList} NodeList of the items touched by this command."," */"," addclass: function(cmd, cls) {"," var inst = this.getInstance();"," return (new inst.EditorSelection()).getSelected().addClass(cls);"," },"," /**"," * Remove a class from all of the elements in the selection"," * @method COMMANDS.removeclass"," * @static"," * @param {String} cmd The command executed: removeclass"," * @param {String} cls The className to remove"," * @return {NodeList} NodeList of the items touched by this command."," */"," removeclass: function(cmd, cls) {"," var inst = this.getInstance();"," return (new inst.EditorSelection()).getSelected().removeClass(cls);"," },"," /**"," * Adds a forecolor to the current selection, or creates a new element and applies it"," * @method COMMANDS.forecolor"," * @static"," * @param {String} cmd The command executed: forecolor"," * @param {String} val The color value to apply"," * @return {NodeList} NodeList of the items touched by this command."," */"," forecolor: function(cmd, val) {"," var inst = this.getInstance(),"," sel = new inst.EditorSelection(), n;",""," if (!Y.UA.ie) {"," this._command('useCSS', false);"," }"," if (inst.EditorSelection.hasCursor()) {"," if (sel.isCollapsed) {"," if (sel.anchorNode && (sel.anchorNode.get('innerHTML') === ' ')) {"," sel.anchorNode.setStyle('color', val);"," n = sel.anchorNode;"," } else {"," n = this.command('inserthtml', '' + inst.EditorSelection.CURSOR + '');"," sel.focusCursor(true, true);"," }"," return n;"," } else {"," return this._command(cmd, val);"," }"," } else {"," this._command(cmd, val);"," }"," },"," /**"," * Adds a background color to the current selection, or creates a new element and applies it"," * @method COMMANDS.backcolor"," * @static"," * @param {String} cmd The command executed: backcolor"," * @param {String} val The color value to apply"," * @return {NodeList} NodeList of the items touched by this command."," */"," backcolor: function(cmd, val) {"," var inst = this.getInstance(),"," sel = new inst.EditorSelection(), n;"," "," if (Y.UA.gecko || Y.UA.opera) {"," cmd = 'hilitecolor';"," }"," if (!Y.UA.ie) {"," this._command('useCSS', false);"," }"," if (inst.EditorSelection.hasCursor()) {"," if (sel.isCollapsed) {"," if (sel.anchorNode && (sel.anchorNode.get('innerHTML') === ' ')) {"," sel.anchorNode.setStyle('backgroundColor', val);"," n = sel.anchorNode;"," } else {"," n = this.command('inserthtml', '' + inst.EditorSelection.CURSOR + '');"," sel.focusCursor(true, true);"," }"," return n;"," } else {"," return this._command(cmd, val);"," }"," } else {"," this._command(cmd, val);"," }"," },"," /**"," * Sugar method, calles backcolor"," * @method COMMANDS.hilitecolor"," * @static"," * @param {String} cmd The command executed: backcolor"," * @param {String} val The color value to apply"," * @return {NodeList} NodeList of the items touched by this command."," */"," hilitecolor: function() {"," return ExecCommand.COMMANDS.backcolor.apply(this, arguments);"," },"," /**"," * Adds a font name to the current selection, or creates a new element and applies it"," * @method COMMANDS.fontname2"," * @deprecated"," * @static"," * @param {String} cmd The command executed: fontname"," * @param {String} val The font name to apply"," * @return {NodeList} NodeList of the items touched by this command."," */"," fontname2: function(cmd, val) {"," this._command('fontname', val);"," var inst = this.getInstance(),"," sel = new inst.EditorSelection();"," "," if (sel.isCollapsed && (this._lastKey != 32)) {"," if (sel.anchorNode.test('font')) {"," sel.anchorNode.set('face', val);"," }"," }"," },"," /**"," * Adds a fontsize to the current selection, or creates a new element and applies it"," * @method COMMANDS.fontsize2"," * @deprecated"," * @static"," * @param {String} cmd The command executed: fontsize"," * @param {String} val The font size to apply"," * @return {NodeList} NodeList of the items touched by this command."," */"," fontsize2: function(cmd, val) {"," this._command('fontsize', val);",""," var inst = this.getInstance(),"," sel = new inst.EditorSelection();"," "," if (sel.isCollapsed && sel.anchorNode && (this._lastKey != 32)) {"," if (Y.UA.webkit) {"," if (sel.anchorNode.getStyle('lineHeight')) {"," sel.anchorNode.setStyle('lineHeight', '');"," }"," }"," if (sel.anchorNode.test('font')) {"," sel.anchorNode.set('size', val);"," } else if (Y.UA.gecko) {"," var p = sel.anchorNode.ancestor(inst.EditorSelection.DEFAULT_BLOCK_TAG);"," if (p) {"," p.setStyle('fontSize', '');"," }"," }"," }"," },"," /**"," * Overload for COMMANDS.list"," * @method COMMANDS.insertorderedlist"," * @static"," * @param {String} cmd The command executed: list, ul"," */"," insertunorderedlist: function(cmd) {"," this.command('list', 'ul');"," },"," /**"," * Overload for COMMANDS.list"," * @method COMMANDS.insertunorderedlist"," * @static"," * @param {String} cmd The command executed: list, ol"," */"," insertorderedlist: function(cmd) {"," this.command('list', 'ol');"," },"," /**"," * Noramlizes lists creation/destruction for IE. All others pass through to native calls"," * @method COMMANDS.list"," * @static"," * @param {String} cmd The command executed: list (not used)"," * @param {String} tag The tag to deal with"," */"," list: function(cmd, tag) {"," var inst = this.getInstance(), html, self = this,"," /*"," The yui3- class name below is not a skinnable class,"," it's a utility class used internally by editor and "," stripped when completed, calling getClassName on this"," is a waste of resources."," */"," DIR = 'dir', cls = 'yui3-touched',"," dir, range, div, elm, n, str, s, par, list, lis,"," useP = (inst.host.editorPara ? true : false),"," sel = new inst.EditorSelection();",""," cmd = 'insert' + ((tag === 'ul') ? 'un' : '') + 'orderedlist';"," "," if (Y.UA.ie && !sel.isCollapsed) {"," range = sel._selection;"," html = range.htmlText;"," div = inst.Node.create(html) || inst.one('body');",""," if (div.test('li') || div.one('li')) {"," this._command(cmd, null);"," return;"," }"," if (div.test(tag)) {"," elm = range.item ? range.item(0) : range.parentElement();"," n = inst.one(elm);"," lis = n.all('li');",""," str = '
';"," lis.each(function(l) {"," str = self._wrapContent(l.get('innerHTML'));"," });"," str += '
';"," s = inst.Node.create(str);"," if (n.get('parentNode').test('div')) {"," n = n.get('parentNode');"," }"," if (n && n.hasAttribute(DIR)) {"," if (useP) {"," s.all('p').setAttribute(DIR, n.getAttribute(DIR));"," } else {"," s.setAttribute(DIR, n.getAttribute(DIR));"," }"," }"," if (useP) {"," n.replace(s.get('innerHTML'));"," } else {"," n.replace(s);"," }"," if (range.moveToElementText) {"," range.moveToElementText(s._node);"," }"," range.select();"," } else {"," par = Y.one(range.parentElement());"," if (!par.test(inst.EditorSelection.BLOCKS)) {"," par = par.ancestor(inst.EditorSelection.BLOCKS);"," }"," if (par) {"," if (par.hasAttribute(DIR)) {"," dir = par.getAttribute(DIR);"," }"," }"," if (html.indexOf('
') > -1) {"," html = html.split(/
/i);"," } else {"," var tmp = inst.Node.create(html),"," ps = tmp ? tmp.all('p') : null;",""," if (ps && ps.size()) {"," html = [];"," ps.each(function(n) {"," html.push(n.get('innerHTML'));"," });"," } else {"," html = [html];"," }"," }"," list = '<' + tag + ' id=\"ie-list\">';"," Y.each(html, function(v) {"," var a = inst.Node.create(v);"," if (a && a.test('p')) {"," if (a.hasAttribute(DIR)) {"," dir = a.getAttribute(DIR);"," }"," v = a.get('innerHTML');"," }"," list += '
  • ' + v + '
  • ';"," });"," list += '';"," range.pasteHTML(list);"," elm = inst.config.doc.getElementById('ie-list');"," elm.id = '';"," if (dir) {"," elm.setAttribute(DIR, dir);"," }"," if (range.moveToElementText) {"," range.moveToElementText(elm);"," }"," range.select();"," }"," } else if (Y.UA.ie) {"," par = inst.one(sel._selection.parentElement());"," if (par.test('p')) {"," if (par && par.hasAttribute(DIR)) {"," dir = par.getAttribute(DIR);"," }"," html = Y.EditorSelection.getText(par);"," if (html === '') {"," var sdir = '';"," if (dir) {"," sdir = ' dir=\"' + dir + '\"';"," }"," list = inst.Node.create(Y.Lang.sub('<{tag}{dir}>
  • ', { tag: tag, dir: sdir }));"," par.replace(list);"," sel.selectNode(list.one('li'));"," } else {"," this._command(cmd, null);"," }"," } else {"," this._command(cmd, null);"," }"," } else {"," inst.all(tag).addClass(cls);"," if (sel.anchorNode.test(inst.EditorSelection.BLOCKS)) {"," par = sel.anchorNode;"," } else {"," par = sel.anchorNode.ancestor(inst.EditorSelection.BLOCKS);"," }"," if (!par) { //No parent, find the first block under the anchorNode"," par = sel.anchorNode.one(inst.EditorSelection.BLOCKS);"," }",""," if (par && par.hasAttribute(DIR)) {"," dir = par.getAttribute(DIR);"," }"," if (par && par.test(tag)) {"," var hasPParent = par.ancestor('p');"," html = inst.Node.create('
    ');"," elm = par.all('li');"," elm.each(function(h) {"," html.append(self._wrapContent(h.get('innerHTML'), hasPParent));"," });"," if (dir) {"," if (useP) {"," html.all('p').setAttribute(DIR, dir);"," } else {"," html.setAttribute(DIR, dir);"," }"," }"," if (useP) {"," html = inst.Node.create(html.get('innerHTML'));"," }"," var fc = html.get('firstChild');"," par.replace(html);"," sel.selectNode(fc);"," } else {"," this._command(cmd, null);"," }"," list = inst.all(tag);"," if (dir) {"," if (list.size()) {"," //Changed to a List"," list.each(function(n) {"," if (!n.hasClass(cls)) {"," n.setAttribute(DIR, dir);"," }"," });"," }"," }",""," list.removeClass(cls);"," }"," },"," /**"," * Noramlizes alignment for Webkit Browsers"," * @method COMMANDS.justify"," * @static"," * @param {String} cmd The command executed: justify (not used)"," * @param {String} val The actual command from the justify{center,all,left,right} stubs"," */"," justify: function(cmd, val) {"," if (Y.UA.webkit) {"," var inst = this.getInstance(),"," sel = new inst.EditorSelection(),"," aNode = sel.anchorNode;",""," var bgColor = aNode.getStyle('backgroundColor');"," this._command(val);"," sel = new inst.EditorSelection();"," if (sel.anchorNode.test('div')) {"," var html = '' + sel.anchorNode.get('innerHTML') + '';"," sel.anchorNode.set('innerHTML', html);"," sel.anchorNode.one('span').setStyle('backgroundColor', bgColor);"," sel.selectNode(sel.anchorNode.one('span'));"," }"," } else {"," this._command(val);"," }"," },"," /**"," * Override method for COMMANDS.justify"," * @method COMMANDS.justifycenter"," * @static"," */"," justifycenter: function(cmd) {"," this.command('justify', 'justifycenter');"," },"," /**"," * Override method for COMMANDS.justify"," * @method COMMANDS.justifyleft"," * @static"," */"," justifyleft: function(cmd) {"," this.command('justify', 'justifyleft');"," },"," /**"," * Override method for COMMANDS.justify"," * @method COMMANDS.justifyright"," * @static"," */"," justifyright: function(cmd) {"," this.command('justify', 'justifyright');"," },"," /**"," * Override method for COMMANDS.justify"," * @method COMMANDS.justifyfull"," * @static"," */"," justifyfull: function(cmd) {"," this.command('justify', 'justifyfull');"," }"," }"," });"," "," /**"," * This method is meant to normalize IE's in ability to exec the proper command on elements with CSS styling."," * @method fixIETags"," * @protected"," * @param {String} cmd The command to execute"," * @param {String} tag The tag to create"," * @param {String} rule The rule that we are looking for."," */"," var fixIETags = function(cmd, tag, rule) {"," var inst = this.getInstance(),"," doc = inst.config.doc,"," sel = doc.selection.createRange(),"," o = doc.queryCommandValue(cmd),"," html, reg, m, p, d, s, c;",""," if (o) {"," html = sel.htmlText;"," reg = new RegExp(rule, 'g');"," m = html.match(reg);",""," if (m) {"," html = html.replace(rule + ';', '').replace(rule, '');",""," sel.pasteHTML('');",""," p = doc.getElementById('yui-ie-bs');"," d = doc.createElement('div');"," s = doc.createElement(tag);"," "," d.innerHTML = html;"," if (p.parentNode !== inst.config.doc.body) {"," p = p.parentNode;"," }",""," c = d.childNodes;",""," p.parentNode.replaceChild(s, p);",""," Y.each(c, function(f) {"," s.appendChild(f);"," });"," sel.collapse();"," if (sel.moveToElementText) {"," sel.moveToElementText(s);"," }"," sel.select();"," }"," }"," this._command(cmd);"," };",""," if (Y.UA.ie) {"," ExecCommand.COMMANDS.bold = function() {"," fixIETags.call(this, 'bold', 'b', 'FONT-WEIGHT: bold');"," };"," ExecCommand.COMMANDS.italic = function() {"," fixIETags.call(this, 'italic', 'i', 'FONT-STYLE: italic');"," };"," ExecCommand.COMMANDS.underline = function() {"," fixIETags.call(this, 'underline', 'u', 'TEXT-DECORATION: underline');"," };"," }",""," Y.namespace('Plugin');"," Y.Plugin.ExecCommand = ExecCommand;","","","","}, '3.7.2', {\"requires\": [\"frame\"]});"]; -_yuitest_coverage["build/exec-command/exec-command.js"].lines = {"1":0,"12":0,"13":0,"16":0,"37":0,"39":0,"40":0,"42":0,"53":0,"54":0,"55":0,"56":0,"58":0,"59":0,"63":0,"73":0,"74":0,"76":0,"79":0,"81":0,"84":0,"88":0,"89":0,"93":0,"95":0,"96":0,"98":0,"100":0,"135":0,"136":0,"147":0,"148":0,"149":0,"151":0,"163":0,"164":0,"165":0,"166":0,"167":0,"168":0,"170":0,"172":0,"181":0,"186":0,"187":0,"189":0,"192":0,"193":0,"194":0,"195":0,"198":0,"199":0,"200":0,"201":0,"202":0,"203":0,"206":0,"207":0,"208":0,"209":0,"210":0,"211":0,"213":0,"216":0,"217":0,"218":0,"230":0,"241":0,"242":0,"253":0,"254":0,"265":0,"268":0,"269":0,"271":0,"272":0,"273":0,"274":0,"275":0,"277":0,"278":0,"280":0,"282":0,"285":0,"297":0,"300":0,"301":0,"303":0,"304":0,"306":0,"307":0,"308":0,"309":0,"310":0,"312":0,"313":0,"315":0,"317":0,"320":0,"332":0,"344":0,"345":0,"348":0,"349":0,"350":0,"364":0,"366":0,"369":0,"370":0,"371":0,"372":0,"375":0,"376":0,"377":0,"378":0,"379":0,"380":0,"392":0,"401":0,"411":0,"423":0,"425":0,"426":0,"427":0,"428":0,"430":0,"431":0,"432":0,"434":0,"435":0,"436":0,"437":0,"439":0,"440":0,"441":0,"443":0,"444":0,"445":0,"446":0,"448":0,"449":0,"450":0,"452":0,"455":0,"456":0,"458":0,"460":0,"461":0,"463":0,"465":0,"466":0,"467":0,"469":0,"470":0,"471":0,"474":0,"475":0,"477":0,"480":0,"481":0,"482":0,"483":0,"486":0,"489":0,"490":0,"491":0,"492":0,"493":0,"494":0,"496":0,"498":0,"500":0,"501":0,"502":0,"503":0,"504":0,"505":0,"507":0,"508":0,"510":0,"512":0,"513":0,"514":0,"515":0,"516":0,"518":0,"519":0,"520":0,"521":0,"522":0,"524":0,"525":0,"526":0,"528":0,"531":0,"534":0,"535":0,"536":0,"538":0,"540":0,"541":0,"544":0,"545":0,"547":0,"548":0,"549":0,"550":0,"551":0,"552":0,"554":0,"555":0,"556":0,"558":0,"561":0,"562":0,"564":0,"565":0,"566":0,"568":0,"570":0,"571":0,"572":0,"574":0,"575":0,"576":0,"582":0,"593":0,"594":0,"598":0,"599":0,"600":0,"601":0,"602":0,"603":0,"604":0,"605":0,"608":0,"617":0,"625":0,"633":0,"641":0,"654":0,"655":0,"661":0,"662":0,"663":0,"664":0,"666":0,"667":0,"669":0,"671":0,"672":0,"673":0,"675":0,"676":0,"677":0,"680":0,"682":0,"684":0,"685":0,"687":0,"688":0,"689":0,"691":0,"694":0,"697":0,"698":0,"699":0,"701":0,"702":0,"704":0,"705":0,"709":0,"710":0}; -_yuitest_coverage["build/exec-command/exec-command.js"].functions = {"ExecCommand:12":0,"command:36":0,"_command:52":0,"getInstance:72":0,"execCommand:80":0,"_execCommand:83":0,"(anonymous 2):88":0,"initializer:78":0,"_wrapContent:92":0,"wrap:134":0,"inserthtml:146":0,"insertandfocus:162":0,"insert:192":0,"(anonymous 3):198":0,"insertbr:180":0,"insertimage:229":0,"addclass:240":0,"removeclass:252":0,"forecolor:264":0,"backcolor:296":0,"hilitecolor:331":0,"fontname2:343":0,"fontsize2:363":0,"insertunorderedlist:391":0,"insertorderedlist:400":0,"(anonymous 4):440":0,"(anonymous 5):482":0,"(anonymous 6):490":0,"(anonymous 7):551":0,"(anonymous 8):574":0,"list:410":0,"justify:592":0,"justifycenter:616":0,"justifyleft:624":0,"justifyright:632":0,"justifyfull:640":0,"(anonymous 9):684":0,"fixIETags:654":0,"bold:698":0,"italic:701":0,"underline:704":0,"(anonymous 1):1":0}; -_yuitest_coverage["build/exec-command/exec-command.js"].coveredLines = 274; -_yuitest_coverage["build/exec-command/exec-command.js"].coveredFunctions = 42; -_yuitest_coverline("build/exec-command/exec-command.js", 1); -YUI.add('exec-command', function (Y, NAME) { - - - /** - * Plugin for the frame module to handle execCommands for Editor - * @class Plugin.ExecCommand - * @extends Base - * @constructor - * @module editor - * @submodule exec-command - */ - _yuitest_coverfunc("build/exec-command/exec-command.js", "(anonymous 1)", 1); -_yuitest_coverline("build/exec-command/exec-command.js", 12); -var ExecCommand = function() { - _yuitest_coverfunc("build/exec-command/exec-command.js", "ExecCommand", 12); -_yuitest_coverline("build/exec-command/exec-command.js", 13); -ExecCommand.superclass.constructor.apply(this, arguments); - }; - - _yuitest_coverline("build/exec-command/exec-command.js", 16); -Y.extend(ExecCommand, Y.Base, { - /** - * An internal reference to the keyCode of the last key that was pressed. - * @private - * @property _lastKey - */ - _lastKey: null, - /** - * An internal reference to the instance of the frame plugged into. - * @private - * @property _inst - */ - _inst: null, - /** - * Execute a command on the frame's document. - * @method command - * @param {String} action The action to perform (bold, italic, fontname) - * @param {String} value The optional value (helvetica) - * @return {Node/NodeList} Should return the Node/Nodelist affected - */ - command: function(action, value) { - _yuitest_coverfunc("build/exec-command/exec-command.js", "command", 36); -_yuitest_coverline("build/exec-command/exec-command.js", 37); -var fn = ExecCommand.COMMANDS[action]; - - _yuitest_coverline("build/exec-command/exec-command.js", 39); -if (fn) { - _yuitest_coverline("build/exec-command/exec-command.js", 40); -return fn.call(this, action, value); - } else { - _yuitest_coverline("build/exec-command/exec-command.js", 42); -return this._command(action, value); - } - }, - /** - * The private version of execCommand that doesn't filter for overrides. - * @private - * @method _command - * @param {String} action The action to perform (bold, italic, fontname) - * @param {String} value The optional value (helvetica) - */ - _command: function(action, value) { - _yuitest_coverfunc("build/exec-command/exec-command.js", "_command", 52); -_yuitest_coverline("build/exec-command/exec-command.js", 53); -var inst = this.getInstance(); - _yuitest_coverline("build/exec-command/exec-command.js", 54); -try { - _yuitest_coverline("build/exec-command/exec-command.js", 55); -try { - _yuitest_coverline("build/exec-command/exec-command.js", 56); -inst.config.doc.execCommand('styleWithCSS', null, 1); - } catch (e1) { - _yuitest_coverline("build/exec-command/exec-command.js", 58); -try { - _yuitest_coverline("build/exec-command/exec-command.js", 59); -inst.config.doc.execCommand('useCSS', null, 0); - } catch (e2) { - } - } - _yuitest_coverline("build/exec-command/exec-command.js", 63); -inst.config.doc.execCommand(action, null, value); - } catch (e) { - } - }, - /** - * Get's the instance of YUI bound to the parent frame - * @method getInstance - * @return {YUI} The YUI instance bound to the parent frame - */ - getInstance: function() { - _yuitest_coverfunc("build/exec-command/exec-command.js", "getInstance", 72); -_yuitest_coverline("build/exec-command/exec-command.js", 73); -if (!this._inst) { - _yuitest_coverline("build/exec-command/exec-command.js", 74); -this._inst = this.get('host').getInstance(); - } - _yuitest_coverline("build/exec-command/exec-command.js", 76); -return this._inst; - }, - initializer: function() { - _yuitest_coverfunc("build/exec-command/exec-command.js", "initializer", 78); -_yuitest_coverline("build/exec-command/exec-command.js", 79); -Y.mix(this.get('host'), { - execCommand: function(action, value) { - _yuitest_coverfunc("build/exec-command/exec-command.js", "execCommand", 80); -_yuitest_coverline("build/exec-command/exec-command.js", 81); -return this.exec.command(action, value); - }, - _execCommand: function(action, value) { - _yuitest_coverfunc("build/exec-command/exec-command.js", "_execCommand", 83); -_yuitest_coverline("build/exec-command/exec-command.js", 84); -return this.exec._command(action, value); - } - }); - - _yuitest_coverline("build/exec-command/exec-command.js", 88); -this.get('host').on('dom:keypress', Y.bind(function(e) { - _yuitest_coverfunc("build/exec-command/exec-command.js", "(anonymous 2)", 88); -_yuitest_coverline("build/exec-command/exec-command.js", 89); -this._lastKey = e.keyCode; - }, this)); - }, - _wrapContent: function(str, override) { - _yuitest_coverfunc("build/exec-command/exec-command.js", "_wrapContent", 92); -_yuitest_coverline("build/exec-command/exec-command.js", 93); -var useP = (this.getInstance().host.editorPara && !override ? true : false); - - _yuitest_coverline("build/exec-command/exec-command.js", 95); -if (useP) { - _yuitest_coverline("build/exec-command/exec-command.js", 96); -str = '

    ' + str + '

    '; - } else { - _yuitest_coverline("build/exec-command/exec-command.js", 98); -str = str + '
    '; - } - _yuitest_coverline("build/exec-command/exec-command.js", 100); -return str; - } - }, { - /** - * execCommand - * @property NAME - * @static - */ - NAME: 'execCommand', - /** - * exec - * @property NS - * @static - */ - NS: 'exec', - ATTRS: { - host: { - value: false - } - }, - /** - * Static object literal of execCommand overrides - * @property COMMANDS - * @static - */ - COMMANDS: { - /** - * Wraps the content with a new element of type (tag) - * @method COMMANDS.wrap - * @static - * @param {String} cmd The command executed: wrap - * @param {String} tag The tag to wrap the selection with - * @return {NodeList} NodeList of the items touched by this command. - */ - wrap: function(cmd, tag) { - _yuitest_coverfunc("build/exec-command/exec-command.js", "wrap", 134); -_yuitest_coverline("build/exec-command/exec-command.js", 135); -var inst = this.getInstance(); - _yuitest_coverline("build/exec-command/exec-command.js", 136); -return (new inst.EditorSelection()).wrapContent(tag); - }, - /** - * Inserts the provided HTML at the cursor, should be a single element. - * @method COMMANDS.inserthtml - * @static - * @param {String} cmd The command executed: inserthtml - * @param {String} html The html to insert - * @return {Node} Node instance of the item touched by this command. - */ - inserthtml: function(cmd, html) { - _yuitest_coverfunc("build/exec-command/exec-command.js", "inserthtml", 146); -_yuitest_coverline("build/exec-command/exec-command.js", 147); -var inst = this.getInstance(); - _yuitest_coverline("build/exec-command/exec-command.js", 148); -if (inst.EditorSelection.hasCursor() || Y.UA.ie) { - _yuitest_coverline("build/exec-command/exec-command.js", 149); -return (new inst.EditorSelection()).insertContent(html); - } else { - _yuitest_coverline("build/exec-command/exec-command.js", 151); -this._command('inserthtml', html); - } - }, - /** - * Inserts the provided HTML at the cursor, and focuses the cursor afterwards. - * @method COMMANDS.insertandfocus - * @static - * @param {String} cmd The command executed: insertandfocus - * @param {String} html The html to insert - * @return {Node} Node instance of the item touched by this command. - */ - insertandfocus: function(cmd, html) { - _yuitest_coverfunc("build/exec-command/exec-command.js", "insertandfocus", 162); -_yuitest_coverline("build/exec-command/exec-command.js", 163); -var inst = this.getInstance(), out, sel; - _yuitest_coverline("build/exec-command/exec-command.js", 164); -if (inst.EditorSelection.hasCursor()) { - _yuitest_coverline("build/exec-command/exec-command.js", 165); -html += inst.EditorSelection.CURSOR; - _yuitest_coverline("build/exec-command/exec-command.js", 166); -out = this.command('inserthtml', html); - _yuitest_coverline("build/exec-command/exec-command.js", 167); -sel = new inst.EditorSelection(); - _yuitest_coverline("build/exec-command/exec-command.js", 168); -sel.focusCursor(true, true); - } else { - _yuitest_coverline("build/exec-command/exec-command.js", 170); -this.command('inserthtml', html); - } - _yuitest_coverline("build/exec-command/exec-command.js", 172); -return out; - }, - /** - * Inserts a BR at the current cursor position - * @method COMMANDS.insertbr - * @static - * @param {String} cmd The command executed: insertbr - */ - insertbr: function(cmd) { - _yuitest_coverfunc("build/exec-command/exec-command.js", "insertbr", 180); -_yuitest_coverline("build/exec-command/exec-command.js", 181); -var inst = this.getInstance(), - sel = new inst.EditorSelection(), - html = '|', last = null, - q = (Y.UA.webkit) ? 'span.Apple-style-span,var' : 'var'; - - _yuitest_coverline("build/exec-command/exec-command.js", 186); -if (sel._selection.pasteHTML) { - _yuitest_coverline("build/exec-command/exec-command.js", 187); -sel._selection.pasteHTML(html); - } else { - _yuitest_coverline("build/exec-command/exec-command.js", 189); -this._command('inserthtml', html); - } - - _yuitest_coverline("build/exec-command/exec-command.js", 192); -var insert = function(n) { - _yuitest_coverfunc("build/exec-command/exec-command.js", "insert", 192); -_yuitest_coverline("build/exec-command/exec-command.js", 193); -var c = inst.Node.create('
    '); - _yuitest_coverline("build/exec-command/exec-command.js", 194); -n.insert(c, 'before'); - _yuitest_coverline("build/exec-command/exec-command.js", 195); -return c; - }; - - _yuitest_coverline("build/exec-command/exec-command.js", 198); -inst.all(q).each(function(n) { - _yuitest_coverfunc("build/exec-command/exec-command.js", "(anonymous 3)", 198); -_yuitest_coverline("build/exec-command/exec-command.js", 199); -var g = true; - _yuitest_coverline("build/exec-command/exec-command.js", 200); -if (Y.UA.webkit) { - _yuitest_coverline("build/exec-command/exec-command.js", 201); -g = false; - _yuitest_coverline("build/exec-command/exec-command.js", 202); -if (n.get('innerHTML') === '|') { - _yuitest_coverline("build/exec-command/exec-command.js", 203); -g = true; - } - } - _yuitest_coverline("build/exec-command/exec-command.js", 206); -if (g) { - _yuitest_coverline("build/exec-command/exec-command.js", 207); -last = insert(n); - _yuitest_coverline("build/exec-command/exec-command.js", 208); -if ((!last.previous() || !last.previous().test('br')) && Y.UA.gecko) { - _yuitest_coverline("build/exec-command/exec-command.js", 209); -var s = last.cloneNode(); - _yuitest_coverline("build/exec-command/exec-command.js", 210); -last.insert(s, 'after'); - _yuitest_coverline("build/exec-command/exec-command.js", 211); -last = s; - } - _yuitest_coverline("build/exec-command/exec-command.js", 213); -n.remove(); - } - }); - _yuitest_coverline("build/exec-command/exec-command.js", 216); -if (Y.UA.webkit && last) { - _yuitest_coverline("build/exec-command/exec-command.js", 217); -insert(last); - _yuitest_coverline("build/exec-command/exec-command.js", 218); -sel.selectNode(last); - } - }, - /** - * Inserts an image at the cursor position - * @method COMMANDS.insertimage - * @static - * @param {String} cmd The command executed: insertimage - * @param {String} img The url of the image to be inserted - * @return {Node} Node instance of the item touched by this command. - */ - insertimage: function(cmd, img) { - _yuitest_coverfunc("build/exec-command/exec-command.js", "insertimage", 229); -_yuitest_coverline("build/exec-command/exec-command.js", 230); -return this.command('inserthtml', ''); - }, - /** - * Add a class to all of the elements in the selection - * @method COMMANDS.addclass - * @static - * @param {String} cmd The command executed: addclass - * @param {String} cls The className to add - * @return {NodeList} NodeList of the items touched by this command. - */ - addclass: function(cmd, cls) { - _yuitest_coverfunc("build/exec-command/exec-command.js", "addclass", 240); -_yuitest_coverline("build/exec-command/exec-command.js", 241); -var inst = this.getInstance(); - _yuitest_coverline("build/exec-command/exec-command.js", 242); -return (new inst.EditorSelection()).getSelected().addClass(cls); - }, - /** - * Remove a class from all of the elements in the selection - * @method COMMANDS.removeclass - * @static - * @param {String} cmd The command executed: removeclass - * @param {String} cls The className to remove - * @return {NodeList} NodeList of the items touched by this command. - */ - removeclass: function(cmd, cls) { - _yuitest_coverfunc("build/exec-command/exec-command.js", "removeclass", 252); -_yuitest_coverline("build/exec-command/exec-command.js", 253); -var inst = this.getInstance(); - _yuitest_coverline("build/exec-command/exec-command.js", 254); -return (new inst.EditorSelection()).getSelected().removeClass(cls); - }, - /** - * Adds a forecolor to the current selection, or creates a new element and applies it - * @method COMMANDS.forecolor - * @static - * @param {String} cmd The command executed: forecolor - * @param {String} val The color value to apply - * @return {NodeList} NodeList of the items touched by this command. - */ - forecolor: function(cmd, val) { - _yuitest_coverfunc("build/exec-command/exec-command.js", "forecolor", 264); -_yuitest_coverline("build/exec-command/exec-command.js", 265); -var inst = this.getInstance(), - sel = new inst.EditorSelection(), n; - - _yuitest_coverline("build/exec-command/exec-command.js", 268); -if (!Y.UA.ie) { - _yuitest_coverline("build/exec-command/exec-command.js", 269); -this._command('useCSS', false); - } - _yuitest_coverline("build/exec-command/exec-command.js", 271); -if (inst.EditorSelection.hasCursor()) { - _yuitest_coverline("build/exec-command/exec-command.js", 272); -if (sel.isCollapsed) { - _yuitest_coverline("build/exec-command/exec-command.js", 273); -if (sel.anchorNode && (sel.anchorNode.get('innerHTML') === ' ')) { - _yuitest_coverline("build/exec-command/exec-command.js", 274); -sel.anchorNode.setStyle('color', val); - _yuitest_coverline("build/exec-command/exec-command.js", 275); -n = sel.anchorNode; - } else { - _yuitest_coverline("build/exec-command/exec-command.js", 277); -n = this.command('inserthtml', '' + inst.EditorSelection.CURSOR + ''); - _yuitest_coverline("build/exec-command/exec-command.js", 278); -sel.focusCursor(true, true); - } - _yuitest_coverline("build/exec-command/exec-command.js", 280); -return n; - } else { - _yuitest_coverline("build/exec-command/exec-command.js", 282); -return this._command(cmd, val); - } - } else { - _yuitest_coverline("build/exec-command/exec-command.js", 285); -this._command(cmd, val); - } - }, - /** - * Adds a background color to the current selection, or creates a new element and applies it - * @method COMMANDS.backcolor - * @static - * @param {String} cmd The command executed: backcolor - * @param {String} val The color value to apply - * @return {NodeList} NodeList of the items touched by this command. - */ - backcolor: function(cmd, val) { - _yuitest_coverfunc("build/exec-command/exec-command.js", "backcolor", 296); -_yuitest_coverline("build/exec-command/exec-command.js", 297); -var inst = this.getInstance(), - sel = new inst.EditorSelection(), n; - - _yuitest_coverline("build/exec-command/exec-command.js", 300); -if (Y.UA.gecko || Y.UA.opera) { - _yuitest_coverline("build/exec-command/exec-command.js", 301); -cmd = 'hilitecolor'; - } - _yuitest_coverline("build/exec-command/exec-command.js", 303); -if (!Y.UA.ie) { - _yuitest_coverline("build/exec-command/exec-command.js", 304); -this._command('useCSS', false); - } - _yuitest_coverline("build/exec-command/exec-command.js", 306); -if (inst.EditorSelection.hasCursor()) { - _yuitest_coverline("build/exec-command/exec-command.js", 307); -if (sel.isCollapsed) { - _yuitest_coverline("build/exec-command/exec-command.js", 308); -if (sel.anchorNode && (sel.anchorNode.get('innerHTML') === ' ')) { - _yuitest_coverline("build/exec-command/exec-command.js", 309); -sel.anchorNode.setStyle('backgroundColor', val); - _yuitest_coverline("build/exec-command/exec-command.js", 310); -n = sel.anchorNode; - } else { - _yuitest_coverline("build/exec-command/exec-command.js", 312); -n = this.command('inserthtml', '' + inst.EditorSelection.CURSOR + ''); - _yuitest_coverline("build/exec-command/exec-command.js", 313); -sel.focusCursor(true, true); - } - _yuitest_coverline("build/exec-command/exec-command.js", 315); -return n; - } else { - _yuitest_coverline("build/exec-command/exec-command.js", 317); -return this._command(cmd, val); - } - } else { - _yuitest_coverline("build/exec-command/exec-command.js", 320); -this._command(cmd, val); - } - }, - /** - * Sugar method, calles backcolor - * @method COMMANDS.hilitecolor - * @static - * @param {String} cmd The command executed: backcolor - * @param {String} val The color value to apply - * @return {NodeList} NodeList of the items touched by this command. - */ - hilitecolor: function() { - _yuitest_coverfunc("build/exec-command/exec-command.js", "hilitecolor", 331); -_yuitest_coverline("build/exec-command/exec-command.js", 332); -return ExecCommand.COMMANDS.backcolor.apply(this, arguments); - }, - /** - * Adds a font name to the current selection, or creates a new element and applies it - * @method COMMANDS.fontname2 - * @deprecated - * @static - * @param {String} cmd The command executed: fontname - * @param {String} val The font name to apply - * @return {NodeList} NodeList of the items touched by this command. - */ - fontname2: function(cmd, val) { - _yuitest_coverfunc("build/exec-command/exec-command.js", "fontname2", 343); -_yuitest_coverline("build/exec-command/exec-command.js", 344); -this._command('fontname', val); - _yuitest_coverline("build/exec-command/exec-command.js", 345); -var inst = this.getInstance(), - sel = new inst.EditorSelection(); - - _yuitest_coverline("build/exec-command/exec-command.js", 348); -if (sel.isCollapsed && (this._lastKey != 32)) { - _yuitest_coverline("build/exec-command/exec-command.js", 349); -if (sel.anchorNode.test('font')) { - _yuitest_coverline("build/exec-command/exec-command.js", 350); -sel.anchorNode.set('face', val); - } - } - }, - /** - * Adds a fontsize to the current selection, or creates a new element and applies it - * @method COMMANDS.fontsize2 - * @deprecated - * @static - * @param {String} cmd The command executed: fontsize - * @param {String} val The font size to apply - * @return {NodeList} NodeList of the items touched by this command. - */ - fontsize2: function(cmd, val) { - _yuitest_coverfunc("build/exec-command/exec-command.js", "fontsize2", 363); -_yuitest_coverline("build/exec-command/exec-command.js", 364); -this._command('fontsize', val); - - _yuitest_coverline("build/exec-command/exec-command.js", 366); -var inst = this.getInstance(), - sel = new inst.EditorSelection(); - - _yuitest_coverline("build/exec-command/exec-command.js", 369); -if (sel.isCollapsed && sel.anchorNode && (this._lastKey != 32)) { - _yuitest_coverline("build/exec-command/exec-command.js", 370); -if (Y.UA.webkit) { - _yuitest_coverline("build/exec-command/exec-command.js", 371); -if (sel.anchorNode.getStyle('lineHeight')) { - _yuitest_coverline("build/exec-command/exec-command.js", 372); -sel.anchorNode.setStyle('lineHeight', ''); - } - } - _yuitest_coverline("build/exec-command/exec-command.js", 375); -if (sel.anchorNode.test('font')) { - _yuitest_coverline("build/exec-command/exec-command.js", 376); -sel.anchorNode.set('size', val); - } else {_yuitest_coverline("build/exec-command/exec-command.js", 377); -if (Y.UA.gecko) { - _yuitest_coverline("build/exec-command/exec-command.js", 378); -var p = sel.anchorNode.ancestor(inst.EditorSelection.DEFAULT_BLOCK_TAG); - _yuitest_coverline("build/exec-command/exec-command.js", 379); -if (p) { - _yuitest_coverline("build/exec-command/exec-command.js", 380); -p.setStyle('fontSize', ''); - } - }} - } - }, - /** - * Overload for COMMANDS.list - * @method COMMANDS.insertorderedlist - * @static - * @param {String} cmd The command executed: list, ul - */ - insertunorderedlist: function(cmd) { - _yuitest_coverfunc("build/exec-command/exec-command.js", "insertunorderedlist", 391); -_yuitest_coverline("build/exec-command/exec-command.js", 392); -this.command('list', 'ul'); - }, - /** - * Overload for COMMANDS.list - * @method COMMANDS.insertunorderedlist - * @static - * @param {String} cmd The command executed: list, ol - */ - insertorderedlist: function(cmd) { - _yuitest_coverfunc("build/exec-command/exec-command.js", "insertorderedlist", 400); -_yuitest_coverline("build/exec-command/exec-command.js", 401); -this.command('list', 'ol'); - }, - /** - * Noramlizes lists creation/destruction for IE. All others pass through to native calls - * @method COMMANDS.list - * @static - * @param {String} cmd The command executed: list (not used) - * @param {String} tag The tag to deal with - */ - list: function(cmd, tag) { - _yuitest_coverfunc("build/exec-command/exec-command.js", "list", 410); -_yuitest_coverline("build/exec-command/exec-command.js", 411); -var inst = this.getInstance(), html, self = this, - /* - The yui3- class name below is not a skinnable class, - it's a utility class used internally by editor and - stripped when completed, calling getClassName on this - is a waste of resources. - */ - DIR = 'dir', cls = 'yui3-touched', - dir, range, div, elm, n, str, s, par, list, lis, - useP = (inst.host.editorPara ? true : false), - sel = new inst.EditorSelection(); - - _yuitest_coverline("build/exec-command/exec-command.js", 423); -cmd = 'insert' + ((tag === 'ul') ? 'un' : '') + 'orderedlist'; - - _yuitest_coverline("build/exec-command/exec-command.js", 425); -if (Y.UA.ie && !sel.isCollapsed) { - _yuitest_coverline("build/exec-command/exec-command.js", 426); -range = sel._selection; - _yuitest_coverline("build/exec-command/exec-command.js", 427); -html = range.htmlText; - _yuitest_coverline("build/exec-command/exec-command.js", 428); -div = inst.Node.create(html) || inst.one('body'); - - _yuitest_coverline("build/exec-command/exec-command.js", 430); -if (div.test('li') || div.one('li')) { - _yuitest_coverline("build/exec-command/exec-command.js", 431); -this._command(cmd, null); - _yuitest_coverline("build/exec-command/exec-command.js", 432); -return; - } - _yuitest_coverline("build/exec-command/exec-command.js", 434); -if (div.test(tag)) { - _yuitest_coverline("build/exec-command/exec-command.js", 435); -elm = range.item ? range.item(0) : range.parentElement(); - _yuitest_coverline("build/exec-command/exec-command.js", 436); -n = inst.one(elm); - _yuitest_coverline("build/exec-command/exec-command.js", 437); -lis = n.all('li'); - - _yuitest_coverline("build/exec-command/exec-command.js", 439); -str = '
    '; - _yuitest_coverline("build/exec-command/exec-command.js", 440); -lis.each(function(l) { - _yuitest_coverfunc("build/exec-command/exec-command.js", "(anonymous 4)", 440); -_yuitest_coverline("build/exec-command/exec-command.js", 441); -str = self._wrapContent(l.get('innerHTML')); - }); - _yuitest_coverline("build/exec-command/exec-command.js", 443); -str += '
    '; - _yuitest_coverline("build/exec-command/exec-command.js", 444); -s = inst.Node.create(str); - _yuitest_coverline("build/exec-command/exec-command.js", 445); -if (n.get('parentNode').test('div')) { - _yuitest_coverline("build/exec-command/exec-command.js", 446); -n = n.get('parentNode'); - } - _yuitest_coverline("build/exec-command/exec-command.js", 448); -if (n && n.hasAttribute(DIR)) { - _yuitest_coverline("build/exec-command/exec-command.js", 449); -if (useP) { - _yuitest_coverline("build/exec-command/exec-command.js", 450); -s.all('p').setAttribute(DIR, n.getAttribute(DIR)); - } else { - _yuitest_coverline("build/exec-command/exec-command.js", 452); -s.setAttribute(DIR, n.getAttribute(DIR)); - } - } - _yuitest_coverline("build/exec-command/exec-command.js", 455); -if (useP) { - _yuitest_coverline("build/exec-command/exec-command.js", 456); -n.replace(s.get('innerHTML')); - } else { - _yuitest_coverline("build/exec-command/exec-command.js", 458); -n.replace(s); - } - _yuitest_coverline("build/exec-command/exec-command.js", 460); -if (range.moveToElementText) { - _yuitest_coverline("build/exec-command/exec-command.js", 461); -range.moveToElementText(s._node); - } - _yuitest_coverline("build/exec-command/exec-command.js", 463); -range.select(); - } else { - _yuitest_coverline("build/exec-command/exec-command.js", 465); -par = Y.one(range.parentElement()); - _yuitest_coverline("build/exec-command/exec-command.js", 466); -if (!par.test(inst.EditorSelection.BLOCKS)) { - _yuitest_coverline("build/exec-command/exec-command.js", 467); -par = par.ancestor(inst.EditorSelection.BLOCKS); - } - _yuitest_coverline("build/exec-command/exec-command.js", 469); -if (par) { - _yuitest_coverline("build/exec-command/exec-command.js", 470); -if (par.hasAttribute(DIR)) { - _yuitest_coverline("build/exec-command/exec-command.js", 471); -dir = par.getAttribute(DIR); - } - } - _yuitest_coverline("build/exec-command/exec-command.js", 474); -if (html.indexOf('
    ') > -1) { - _yuitest_coverline("build/exec-command/exec-command.js", 475); -html = html.split(/
    /i); - } else { - _yuitest_coverline("build/exec-command/exec-command.js", 477); -var tmp = inst.Node.create(html), - ps = tmp ? tmp.all('p') : null; - - _yuitest_coverline("build/exec-command/exec-command.js", 480); -if (ps && ps.size()) { - _yuitest_coverline("build/exec-command/exec-command.js", 481); -html = []; - _yuitest_coverline("build/exec-command/exec-command.js", 482); -ps.each(function(n) { - _yuitest_coverfunc("build/exec-command/exec-command.js", "(anonymous 5)", 482); -_yuitest_coverline("build/exec-command/exec-command.js", 483); -html.push(n.get('innerHTML')); - }); - } else { - _yuitest_coverline("build/exec-command/exec-command.js", 486); -html = [html]; - } - } - _yuitest_coverline("build/exec-command/exec-command.js", 489); -list = '<' + tag + ' id="ie-list">'; - _yuitest_coverline("build/exec-command/exec-command.js", 490); -Y.each(html, function(v) { - _yuitest_coverfunc("build/exec-command/exec-command.js", "(anonymous 6)", 490); -_yuitest_coverline("build/exec-command/exec-command.js", 491); -var a = inst.Node.create(v); - _yuitest_coverline("build/exec-command/exec-command.js", 492); -if (a && a.test('p')) { - _yuitest_coverline("build/exec-command/exec-command.js", 493); -if (a.hasAttribute(DIR)) { - _yuitest_coverline("build/exec-command/exec-command.js", 494); -dir = a.getAttribute(DIR); - } - _yuitest_coverline("build/exec-command/exec-command.js", 496); -v = a.get('innerHTML'); - } - _yuitest_coverline("build/exec-command/exec-command.js", 498); -list += '
  • ' + v + '
  • '; - }); - _yuitest_coverline("build/exec-command/exec-command.js", 500); -list += ''; - _yuitest_coverline("build/exec-command/exec-command.js", 501); -range.pasteHTML(list); - _yuitest_coverline("build/exec-command/exec-command.js", 502); -elm = inst.config.doc.getElementById('ie-list'); - _yuitest_coverline("build/exec-command/exec-command.js", 503); -elm.id = ''; - _yuitest_coverline("build/exec-command/exec-command.js", 504); -if (dir) { - _yuitest_coverline("build/exec-command/exec-command.js", 505); -elm.setAttribute(DIR, dir); - } - _yuitest_coverline("build/exec-command/exec-command.js", 507); -if (range.moveToElementText) { - _yuitest_coverline("build/exec-command/exec-command.js", 508); -range.moveToElementText(elm); - } - _yuitest_coverline("build/exec-command/exec-command.js", 510); -range.select(); - } - } else {_yuitest_coverline("build/exec-command/exec-command.js", 512); -if (Y.UA.ie) { - _yuitest_coverline("build/exec-command/exec-command.js", 513); -par = inst.one(sel._selection.parentElement()); - _yuitest_coverline("build/exec-command/exec-command.js", 514); -if (par.test('p')) { - _yuitest_coverline("build/exec-command/exec-command.js", 515); -if (par && par.hasAttribute(DIR)) { - _yuitest_coverline("build/exec-command/exec-command.js", 516); -dir = par.getAttribute(DIR); - } - _yuitest_coverline("build/exec-command/exec-command.js", 518); -html = Y.EditorSelection.getText(par); - _yuitest_coverline("build/exec-command/exec-command.js", 519); -if (html === '') { - _yuitest_coverline("build/exec-command/exec-command.js", 520); -var sdir = ''; - _yuitest_coverline("build/exec-command/exec-command.js", 521); -if (dir) { - _yuitest_coverline("build/exec-command/exec-command.js", 522); -sdir = ' dir="' + dir + '"'; - } - _yuitest_coverline("build/exec-command/exec-command.js", 524); -list = inst.Node.create(Y.Lang.sub('<{tag}{dir}>
  • ', { tag: tag, dir: sdir })); - _yuitest_coverline("build/exec-command/exec-command.js", 525); -par.replace(list); - _yuitest_coverline("build/exec-command/exec-command.js", 526); -sel.selectNode(list.one('li')); - } else { - _yuitest_coverline("build/exec-command/exec-command.js", 528); -this._command(cmd, null); - } - } else { - _yuitest_coverline("build/exec-command/exec-command.js", 531); -this._command(cmd, null); - } - } else { - _yuitest_coverline("build/exec-command/exec-command.js", 534); -inst.all(tag).addClass(cls); - _yuitest_coverline("build/exec-command/exec-command.js", 535); -if (sel.anchorNode.test(inst.EditorSelection.BLOCKS)) { - _yuitest_coverline("build/exec-command/exec-command.js", 536); -par = sel.anchorNode; - } else { - _yuitest_coverline("build/exec-command/exec-command.js", 538); -par = sel.anchorNode.ancestor(inst.EditorSelection.BLOCKS); - } - _yuitest_coverline("build/exec-command/exec-command.js", 540); -if (!par) { //No parent, find the first block under the anchorNode - _yuitest_coverline("build/exec-command/exec-command.js", 541); -par = sel.anchorNode.one(inst.EditorSelection.BLOCKS); - } - - _yuitest_coverline("build/exec-command/exec-command.js", 544); -if (par && par.hasAttribute(DIR)) { - _yuitest_coverline("build/exec-command/exec-command.js", 545); -dir = par.getAttribute(DIR); - } - _yuitest_coverline("build/exec-command/exec-command.js", 547); -if (par && par.test(tag)) { - _yuitest_coverline("build/exec-command/exec-command.js", 548); -var hasPParent = par.ancestor('p'); - _yuitest_coverline("build/exec-command/exec-command.js", 549); -html = inst.Node.create('
    '); - _yuitest_coverline("build/exec-command/exec-command.js", 550); -elm = par.all('li'); - _yuitest_coverline("build/exec-command/exec-command.js", 551); -elm.each(function(h) { - _yuitest_coverfunc("build/exec-command/exec-command.js", "(anonymous 7)", 551); -_yuitest_coverline("build/exec-command/exec-command.js", 552); -html.append(self._wrapContent(h.get('innerHTML'), hasPParent)); - }); - _yuitest_coverline("build/exec-command/exec-command.js", 554); -if (dir) { - _yuitest_coverline("build/exec-command/exec-command.js", 555); -if (useP) { - _yuitest_coverline("build/exec-command/exec-command.js", 556); -html.all('p').setAttribute(DIR, dir); - } else { - _yuitest_coverline("build/exec-command/exec-command.js", 558); -html.setAttribute(DIR, dir); - } - } - _yuitest_coverline("build/exec-command/exec-command.js", 561); -if (useP) { - _yuitest_coverline("build/exec-command/exec-command.js", 562); -html = inst.Node.create(html.get('innerHTML')); - } - _yuitest_coverline("build/exec-command/exec-command.js", 564); -var fc = html.get('firstChild'); - _yuitest_coverline("build/exec-command/exec-command.js", 565); -par.replace(html); - _yuitest_coverline("build/exec-command/exec-command.js", 566); -sel.selectNode(fc); - } else { - _yuitest_coverline("build/exec-command/exec-command.js", 568); -this._command(cmd, null); - } - _yuitest_coverline("build/exec-command/exec-command.js", 570); -list = inst.all(tag); - _yuitest_coverline("build/exec-command/exec-command.js", 571); -if (dir) { - _yuitest_coverline("build/exec-command/exec-command.js", 572); -if (list.size()) { - //Changed to a List - _yuitest_coverline("build/exec-command/exec-command.js", 574); -list.each(function(n) { - _yuitest_coverfunc("build/exec-command/exec-command.js", "(anonymous 8)", 574); -_yuitest_coverline("build/exec-command/exec-command.js", 575); -if (!n.hasClass(cls)) { - _yuitest_coverline("build/exec-command/exec-command.js", 576); -n.setAttribute(DIR, dir); - } - }); - } - } - - _yuitest_coverline("build/exec-command/exec-command.js", 582); -list.removeClass(cls); - }} - }, - /** - * Noramlizes alignment for Webkit Browsers - * @method COMMANDS.justify - * @static - * @param {String} cmd The command executed: justify (not used) - * @param {String} val The actual command from the justify{center,all,left,right} stubs - */ - justify: function(cmd, val) { - _yuitest_coverfunc("build/exec-command/exec-command.js", "justify", 592); -_yuitest_coverline("build/exec-command/exec-command.js", 593); -if (Y.UA.webkit) { - _yuitest_coverline("build/exec-command/exec-command.js", 594); -var inst = this.getInstance(), - sel = new inst.EditorSelection(), - aNode = sel.anchorNode; - - _yuitest_coverline("build/exec-command/exec-command.js", 598); -var bgColor = aNode.getStyle('backgroundColor'); - _yuitest_coverline("build/exec-command/exec-command.js", 599); -this._command(val); - _yuitest_coverline("build/exec-command/exec-command.js", 600); -sel = new inst.EditorSelection(); - _yuitest_coverline("build/exec-command/exec-command.js", 601); -if (sel.anchorNode.test('div')) { - _yuitest_coverline("build/exec-command/exec-command.js", 602); -var html = '' + sel.anchorNode.get('innerHTML') + ''; - _yuitest_coverline("build/exec-command/exec-command.js", 603); -sel.anchorNode.set('innerHTML', html); - _yuitest_coverline("build/exec-command/exec-command.js", 604); -sel.anchorNode.one('span').setStyle('backgroundColor', bgColor); - _yuitest_coverline("build/exec-command/exec-command.js", 605); -sel.selectNode(sel.anchorNode.one('span')); - } - } else { - _yuitest_coverline("build/exec-command/exec-command.js", 608); -this._command(val); - } - }, - /** - * Override method for COMMANDS.justify - * @method COMMANDS.justifycenter - * @static - */ - justifycenter: function(cmd) { - _yuitest_coverfunc("build/exec-command/exec-command.js", "justifycenter", 616); -_yuitest_coverline("build/exec-command/exec-command.js", 617); -this.command('justify', 'justifycenter'); - }, - /** - * Override method for COMMANDS.justify - * @method COMMANDS.justifyleft - * @static - */ - justifyleft: function(cmd) { - _yuitest_coverfunc("build/exec-command/exec-command.js", "justifyleft", 624); -_yuitest_coverline("build/exec-command/exec-command.js", 625); -this.command('justify', 'justifyleft'); - }, - /** - * Override method for COMMANDS.justify - * @method COMMANDS.justifyright - * @static - */ - justifyright: function(cmd) { - _yuitest_coverfunc("build/exec-command/exec-command.js", "justifyright", 632); -_yuitest_coverline("build/exec-command/exec-command.js", 633); -this.command('justify', 'justifyright'); - }, - /** - * Override method for COMMANDS.justify - * @method COMMANDS.justifyfull - * @static - */ - justifyfull: function(cmd) { - _yuitest_coverfunc("build/exec-command/exec-command.js", "justifyfull", 640); -_yuitest_coverline("build/exec-command/exec-command.js", 641); -this.command('justify', 'justifyfull'); - } - } - }); - - /** - * This method is meant to normalize IE's in ability to exec the proper command on elements with CSS styling. - * @method fixIETags - * @protected - * @param {String} cmd The command to execute - * @param {String} tag The tag to create - * @param {String} rule The rule that we are looking for. - */ - _yuitest_coverline("build/exec-command/exec-command.js", 654); -var fixIETags = function(cmd, tag, rule) { - _yuitest_coverfunc("build/exec-command/exec-command.js", "fixIETags", 654); -_yuitest_coverline("build/exec-command/exec-command.js", 655); -var inst = this.getInstance(), - doc = inst.config.doc, - sel = doc.selection.createRange(), - o = doc.queryCommandValue(cmd), - html, reg, m, p, d, s, c; - - _yuitest_coverline("build/exec-command/exec-command.js", 661); -if (o) { - _yuitest_coverline("build/exec-command/exec-command.js", 662); -html = sel.htmlText; - _yuitest_coverline("build/exec-command/exec-command.js", 663); -reg = new RegExp(rule, 'g'); - _yuitest_coverline("build/exec-command/exec-command.js", 664); -m = html.match(reg); - - _yuitest_coverline("build/exec-command/exec-command.js", 666); -if (m) { - _yuitest_coverline("build/exec-command/exec-command.js", 667); -html = html.replace(rule + ';', '').replace(rule, ''); - - _yuitest_coverline("build/exec-command/exec-command.js", 669); -sel.pasteHTML(''); - - _yuitest_coverline("build/exec-command/exec-command.js", 671); -p = doc.getElementById('yui-ie-bs'); - _yuitest_coverline("build/exec-command/exec-command.js", 672); -d = doc.createElement('div'); - _yuitest_coverline("build/exec-command/exec-command.js", 673); -s = doc.createElement(tag); - - _yuitest_coverline("build/exec-command/exec-command.js", 675); -d.innerHTML = html; - _yuitest_coverline("build/exec-command/exec-command.js", 676); -if (p.parentNode !== inst.config.doc.body) { - _yuitest_coverline("build/exec-command/exec-command.js", 677); -p = p.parentNode; - } - - _yuitest_coverline("build/exec-command/exec-command.js", 680); -c = d.childNodes; - - _yuitest_coverline("build/exec-command/exec-command.js", 682); -p.parentNode.replaceChild(s, p); - - _yuitest_coverline("build/exec-command/exec-command.js", 684); -Y.each(c, function(f) { - _yuitest_coverfunc("build/exec-command/exec-command.js", "(anonymous 9)", 684); -_yuitest_coverline("build/exec-command/exec-command.js", 685); -s.appendChild(f); - }); - _yuitest_coverline("build/exec-command/exec-command.js", 687); -sel.collapse(); - _yuitest_coverline("build/exec-command/exec-command.js", 688); -if (sel.moveToElementText) { - _yuitest_coverline("build/exec-command/exec-command.js", 689); -sel.moveToElementText(s); - } - _yuitest_coverline("build/exec-command/exec-command.js", 691); -sel.select(); - } - } - _yuitest_coverline("build/exec-command/exec-command.js", 694); -this._command(cmd); - }; - - _yuitest_coverline("build/exec-command/exec-command.js", 697); -if (Y.UA.ie) { - _yuitest_coverline("build/exec-command/exec-command.js", 698); -ExecCommand.COMMANDS.bold = function() { - _yuitest_coverfunc("build/exec-command/exec-command.js", "bold", 698); -_yuitest_coverline("build/exec-command/exec-command.js", 699); -fixIETags.call(this, 'bold', 'b', 'FONT-WEIGHT: bold'); - }; - _yuitest_coverline("build/exec-command/exec-command.js", 701); -ExecCommand.COMMANDS.italic = function() { - _yuitest_coverfunc("build/exec-command/exec-command.js", "italic", 701); -_yuitest_coverline("build/exec-command/exec-command.js", 702); -fixIETags.call(this, 'italic', 'i', 'FONT-STYLE: italic'); - }; - _yuitest_coverline("build/exec-command/exec-command.js", 704); -ExecCommand.COMMANDS.underline = function() { - _yuitest_coverfunc("build/exec-command/exec-command.js", "underline", 704); -_yuitest_coverline("build/exec-command/exec-command.js", 705); -fixIETags.call(this, 'underline', 'u', 'TEXT-DECORATION: underline'); - }; - } - - _yuitest_coverline("build/exec-command/exec-command.js", 709); -Y.namespace('Plugin'); - _yuitest_coverline("build/exec-command/exec-command.js", 710); -Y.Plugin.ExecCommand = ExecCommand; - - - -}, '3.7.2', {"requires": ["frame"]}); diff --git a/lib/yuilib/3.7.2/build/exec-command/exec-command-min.js b/lib/yuilib/3.7.2/build/exec-command/exec-command-min.js deleted file mode 100644 index ba060fdc94a..00000000000 --- a/lib/yuilib/3.7.2/build/exec-command/exec-command-min.js +++ /dev/null @@ -1,7 +0,0 @@ -/* -YUI 3.7.2 (build 5639) -Copyright 2012 Yahoo! Inc. All rights reserved. -Licensed under the BSD License. -http://yuilibrary.com/license/ -*/ -YUI.add("exec-command",function(e,t){var n=function(){n.superclass.constructor.apply(this,arguments)};e.extend(n,e.Base,{_lastKey:null,_inst:null,command:function(e,t){var r=n.COMMANDS[e];return r?r.call(this,e,t):this._command(e,t)},_command:function(e,t){var n=this.getInstance();try{try{n.config.doc.execCommand("styleWithCSS",null,1)}catch(r){try{n.config.doc.execCommand("useCSS",null,0)}catch(i){}}n.config.doc.execCommand(e,null,t)}catch(s){}},getInstance:function(){return this._inst||(this._inst=this.get("host").getInstance()),this._inst},initializer:function(){e.mix(this.get("host"),{execCommand:function(e,t){return this.exec.command(e,t)},_execCommand:function(e,t){return this.exec._command(e,t)}}),this.get("host").on("dom:keypress",e.bind(function(e){this._lastKey=e.keyCode},this))},_wrapContent:function(e,t){var n=this.getInstance().host.editorPara&&!t?!0:!1;return n?e="

    "+e+"

    ":e+="
    ",e}},{NAME:"execCommand",NS:"exec",ATTRS:{host:{value:!1}},COMMANDS:{wrap:function(e,t){var n=this.getInstance();return(new n.EditorSelection).wrapContent(t)},inserthtml:function(t,n){var r=this.getInstance();if(r.EditorSelection.hasCursor()||e.UA.ie)return(new r.EditorSelection).insertContent(n);this._command("inserthtml",n)},insertandfocus:function(e,t){var n=this.getInstance(),r,i;return n.EditorSelection.hasCursor()?(t+=n.EditorSelection.CURSOR,r=this.command("inserthtml",t),i=new n.EditorSelection,i.focusCursor(!0,!0)):this.command("inserthtml",t),r},insertbr:function(t){var n=this.getInstance(),r=new n.EditorSelection,i="|",s=null,o=e.UA.webkit?"span.Apple-style-span,var":"var";r._selection.pasteHTML?r._selection.pasteHTML(i):this._command("inserthtml",i);var u=function(e){var t=n.Node.create("
    ");return e.insert(t,"before"),t};n.all(o).each(function(t){var n=!0;e.UA.webkit&&(n=!1,t.get("innerHTML")==="|"&&(n=!0));if(n){s=u(t);if((!s.previous()||!s.previous().test("br"))&&e.UA.gecko){var r=s.cloneNode();s.insert(r,"after"),s=r}t.remove()}}),e.UA.webkit&&s&&(u(s),r.selectNode(s))},insertimage:function(e,t){return this.command("inserthtml",'')},addclass:function(e,t){var n=this.getInstance();return(new n.EditorSelection).getSelected().addClass(t)},removeclass:function(e,t){var n=this.getInstance();return(new n.EditorSelection).getSelected().removeClass(t)},forecolor:function(t,n){var r=this.getInstance(),i=new r.EditorSelection,s;e.UA.ie||this._command("useCSS",!1);if(r.EditorSelection.hasCursor())return i.isCollapsed?(i.anchorNode&&i.anchorNode.get("innerHTML")===" "?(i.anchorNode.setStyle("color",n),s=i.anchorNode):(s=this.command("inserthtml",''+r.EditorSelection.CURSOR+""),i.focusCursor(!0,!0)),s):this._command(t,n);this._command(t,n)},backcolor:function(t,n){var r=this.getInstance(),i=new r.EditorSelection,s;if(e.UA.gecko||e.UA.opera)t="hilitecolor";e.UA.ie||this._command("useCSS",!1);if(r.EditorSelection.hasCursor())return i.isCollapsed?(i.anchorNode&&i.anchorNode.get("innerHTML")===" "?(i.anchorNode.setStyle("backgroundColor",n),s=i.anchorNode):(s=this.command("inserthtml",''+r.EditorSelection.CURSOR+""),i.focusCursor(!0,!0)),s):this._command(t,n);this._command(t,n)},hilitecolor:function(){return n.COMMANDS.backcolor.apply(this,arguments)},fontname2:function(e,t){this._command("fontname",t);var n=this.getInstance(),r=new n.EditorSelection;r.isCollapsed&&this._lastKey!=32&&r.anchorNode.test("font")&&r.anchorNode.set("face",t)},fontsize2:function(t,n){this._command("fontsize",n);var r=this.getInstance(),i=new r.EditorSelection;if(i.isCollapsed&&i.anchorNode&&this._lastKey!=32){e.UA.webkit&&i.anchorNode.getStyle("lineHeight")&&i.anchorNode.setStyle("lineHeight","");if(i.anchorNode.test("font"))i.anchorNode.set("size",n);else if(e.UA.gecko){var s=i.anchorNode.ancestor(r.EditorSelection.DEFAULT_BLOCK_TAG);s&&s.setStyle("fontSize","")}}},insertunorderedlist:function(e){this.command("list","ul")},insertorderedlist:function(e){this.command("list","ol")},list:function(t,n){var r=this.getInstance(),i,s=this,o="dir",u="yui3-touched",a,f,l,c,h,p,d,v,m,g,y=r.host.editorPara?!0:!1,b=new r.EditorSelection;t="insert"+(n==="ul"?"un":"")+"orderedlist";if(e.UA.ie&&!b.isCollapsed){f=b._selection,i=f.htmlText,l=r.Node.create(i)||r.one("body");if(l.test("li")||l.one("li")){this._command(t,null);return}if(l.test(n))c=f.item?f.item(0):f.parentElement(),h=r.one(c),g=h.all("li"),p="
    ",g.each(function(e){p=s._wrapContent(e.get("innerHTML"))}),p+="
    ",d=r.Node.create(p),h.get("parentNode").test("div")&&(h=h.get("parentNode")),h&&h.hasAttribute(o)&&(y?d.all("p").setAttribute(o,h.getAttribute(o)):d.setAttribute(o,h.getAttribute(o))),y?h.replace(d.get("innerHTML")):h.replace(d),f.moveToElementText&&f.moveToElementText(d._node),f.select();else{v=e.one(f.parentElement()),v.test(r.EditorSelection.BLOCKS)||(v=v.ancestor(r.EditorSelection.BLOCKS)),v&&v.hasAttribute(o)&&(a=v.getAttribute(o));if(i.indexOf("
    ")>-1)i=i.split(/
    /i);else{var w=r.Node.create(i),E=w?w.all("p"):null;E&&E.size()?(i=[],E.each(function(e){i.push(e.get("innerHTML"))})):i=[i]}m="<"+n+' id="ie-list">',e.each(i,function(e){var t=r.Node.create(e);t&&t.test("p")&&(t.hasAttribute(o)&&(a=t.getAttribute(o)),e=t.get("innerHTML")),m+="
  • "+e+"
  • "}),m+="",f.pasteHTML(m),c=r.config.doc.getElementById("ie-list"),c.id="",a&&c.setAttribute(o,a),f.moveToElementText&&f.moveToElementText(c),f.select()}}else if(e.UA.ie){v=r.one(b._selection.parentElement());if(v.test("p")){v&&v.hasAttribute(o)&&(a=v.getAttribute(o)),i=e.EditorSelection.getText(v);if(i===""){var S="";a&&(S=' dir="'+a+'"'),m=r.Node.create(e.Lang.sub("<{tag}{dir}>
  • ",{tag:n,dir:S})),v.replace(m),b.selectNode(m.one("li"))}else this._command(t,null)}else this._command(t,null)}else{r.all(n).addClass(u),b.anchorNode.test(r.EditorSelection.BLOCKS)?v=b.anchorNode:v=b.anchorNode.ancestor(r.EditorSelection.BLOCKS),v||(v=b.anchorNode.one(r.EditorSelection.BLOCKS)),v&&v.hasAttribute(o)&&(a=v.getAttribute(o));if(v&&v.test(n)){var x=v.ancestor("p");i=r.Node.create("
    "),c=v.all("li"),c.each(function(e){i.append(s._wrapContent(e.get("innerHTML"),x))}),a&&(y?i.all("p").setAttribute(o,a):i.setAttribute(o,a)),y&&(i=r.Node.create(i.get("innerHTML")));var T=i.get("firstChild");v.replace(i),b.selectNode(T)}else this._command(t,null);m=r.all(n),a&&m.size()&&m.each(function(e){e.hasClass(u)||e.setAttribute(o,a)}),m.removeClass(u)}},justify:function(t,n){if(e.UA.webkit){var r=this.getInstance(),i=new r.EditorSelection,s=i.anchorNode,o=s.getStyle("backgroundColor");this._command(n),i=new r.EditorSelection;if(i.anchorNode.test("div")){var u=""+i.anchorNode.get("innerHTML")+"";i.anchorNode.set("innerHTML",u),i.anchorNode.one("span").setStyle("backgroundColor",o),i.selectNode(i.anchorNode.one("span"))}}else this._command(n)},justifycenter:function(e){this.command("justify","justifycenter")},justifyleft:function(e){this.command("justify","justifyleft")},justifyright:function(e){this.command("justify","justifyright")},justifyfull:function(e){this.command("justify","justifyfull")}}});var r=function(t,n,r){var i=this.getInstance(),s=i.config.doc,o=s.selection.createRange(),u=s.queryCommandValue(t),a,f,l,c,h,p,d;u&&(a=o.htmlText,f=new RegExp(r,"g"),l=a.match(f),l&&(a=a.replace(r+";","").replace(r,""),o.pasteHTML(''),c=s.getElementById("yui-ie-bs"),h=s.createElement("div"),p=s.createElement(n),h.innerHTML=a,c.parentNode!==i.config.doc.body&&(c=c.parentNode),d=h.childNodes,c.parentNode.replaceChild(p,c),e.each(d,function(e){p.appendChild(e)}),o.collapse(),o.moveToElementText&&o.moveToElementText(p),o.select())),this._command(t)};e.UA.ie&&(n.COMMANDS.bold=function(){r.call(this,"bold","b","FONT-WEIGHT: bold")},n.COMMANDS.italic=function(){r.call(this,"italic","i","FONT-STYLE: italic")},n.COMMANDS.underline=function(){r.call(this,"underline","u","TEXT-DECORATION: underline")}),e.namespace("Plugin"),e.Plugin.ExecCommand=n},"3.7.2",{requires:["frame"]}); diff --git a/lib/yuilib/3.7.2/build/features/features-min.js b/lib/yuilib/3.7.2/build/features/features-min.js deleted file mode 100644 index 4292be41682..00000000000 --- a/lib/yuilib/3.7.2/build/features/features-min.js +++ /dev/null @@ -1,7 +0,0 @@ -/* -YUI 3.7.2 (build 5639) -Copyright 2012 Yahoo! Inc. All rights reserved. -Licensed under the BSD License. -http://yuilibrary.com/license/ -*/ -YUI.add("features",function(e,t){var n={};e.mix(e.namespace("Features"),{tests:n,add:function(e,t,r){n[e]=n[e]||{},n[e][t]=r},all:function(t,r){var i=n[t],s=[];return i&&e.Object.each(i,function(n,i){s.push(i+":"+(e.Features.test(t,i,r)?1:0))}),s.length?s.join(";"):""},test:function(t,r,i){i=i||[];var s,o,u,a=n[t],f=a&&a[r];return!f||(s=f.result,e.Lang.isUndefined(s)&&(o=f.ua,o&&(s=e.UA[o]),u=f.test,u&&(!o||s)&&(s=u.apply(e,i)),f.result=s)),s}});var r=e.Features.add;r("load","0",{name:"app-transitions-native",test:function(e){var t=e.config.doc,n=t?t.documentElement:null;return n&&n.style?"MozTransition"in n.style||"WebkitTransition"in n.style:!1},trigger:"app-transitions"}),r("load","1",{name:"autocomplete-list-keys",test:function(e){return!e.UA.ios&&!e.UA.android},trigger:"autocomplete-list"}),r("load","2",{name:"dd-gestures",test:function(e){return e.config.win&&"ontouchstart"in e.config.win&&!(e.UA.chrome&&e.UA.chrome<6)},trigger:"dd-drag"}),r("load","3",{name:"dom-style-ie",test:function(e){var t=e.Features.test,n=e.Features.add,r=e.config.win,i=e.config.doc,s="documentElement",o=!1;return n("style","computedStyle",{test:function(){return r&&"getComputedStyle"in r}}),n("style","opacity",{test:function(){return i&&"opacity"in i[s].style}}),o=!t("style","opacity")&&!t("style","computedStyle"),o},trigger:"dom-style"}),r("load","4",{name:"editor-para-ie",trigger:"editor-para",ua:"ie",when:"instead"}),r("load","5",{name:"event-base-ie",test:function(e){var t=e.config.doc&&e.config.doc.implementation;return t&&!t.hasFeature("Events","2.0")},trigger:"node-base"}),r("load","6",{name:"graphics-canvas",test:function(e){var t=e.config.doc,n=e.config.defaultGraphicEngine&&e.config.defaultGraphicEngine=="canvas",r=t&&t.createElement("canvas"),i=t&&t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1");return(!i||n)&&r&&r.getContext&&r.getContext("2d")},trigger:"graphics"}),r("load","7",{name:"graphics-canvas-default",test:function(e){var t=e.config.doc,n=e.config.defaultGraphicEngine&&e.config.defaultGraphicEngine=="canvas",r=t&&t.createElement("canvas"),i=t&&t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1");return(!i||n)&&r&&r.getContext&&r.getContext("2d")},trigger:"graphics"}),r("load","8",{name:"graphics-svg",test:function(e){var t=e.config.doc,n=!e.config.defaultGraphicEngine||e.config.defaultGraphicEngine!="canvas",r=t&&t.createElement("canvas"),i=t&&t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1");return i&&(n||!r)},trigger:"graphics"}),r("load","9",{name:"graphics-svg-default",test:function(e){var t=e.config.doc,n=!e.config.defaultGraphicEngine||e.config.defaultGraphicEngine!="canvas",r=t&&t.createElement("canvas"),i=t&&t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1");return i&&(n||!r)},trigger:"graphics"}),r("load","10",{name:"graphics-vml",test:function(e){var t=e.config.doc,n=t&&t.createElement("canvas");return t&&!t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(!n||!n.getContext||!n.getContext("2d"))},trigger:"graphics"}),r("load","11",{name:"graphics-vml-default",test:function(e){var t=e.config.doc,n=t&&t.createElement("canvas");return t&&!t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(!n||!n.getContext||!n.getContext("2d"))},trigger:"graphics"}),r("load","12",{name:"history-hash-ie",test:function(e){var t=e.config.doc&&e.config.doc.documentMode;return e.UA.ie&&(!("onhashchange"in e.config.win)||!t||t<8)},trigger:"history-hash"}),r("load","13",{name:"io-nodejs",trigger:"io-base",ua:"nodejs"}),r("load","14",{name:"scrollview-base-ie",trigger:"scrollview-base",ua:"ie"}),r("load","15",{name:"selector-css2",test:function(e){var t=e.config.doc,n=t&&!("querySelectorAll"in t);return n},trigger:"selector"}),r("load","16",{name:"transition-timer",test:function(e){var t=e.config.doc,n=t?t.documentElement:null,r=!0;return n&&n.style&&(r=!("MozTransition"in n.style||"WebkitTransition"in n.style)),r},trigger:"transition"}),r("load","17",{name:"widget-base-ie",trigger:"widget-base",ua:"ie"})},"3.7.2",{requires:["yui-base"]}); diff --git a/lib/yuilib/3.7.2/build/frame/frame-coverage.js b/lib/yuilib/3.7.2/build/frame/frame-coverage.js deleted file mode 100644 index 7f73fbdcd6d..00000000000 --- a/lib/yuilib/3.7.2/build/frame/frame-coverage.js +++ /dev/null @@ -1,1378 +0,0 @@ -/* -YUI 3.7.2 (build 5639) -Copyright 2012 Yahoo! Inc. All rights reserved. -Licensed under the BSD License. -http://yuilibrary.com/license/ -*/ -if (typeof _yuitest_coverage == "undefined"){ - _yuitest_coverage = {}; - _yuitest_coverline = function(src, line){ - var coverage = _yuitest_coverage[src]; - if (!coverage.lines[line]){ - coverage.calledLines++; - } - coverage.lines[line]++; - }; - _yuitest_coverfunc = function(src, name, line){ - var coverage = _yuitest_coverage[src], - funcId = name + ":" + line; - if (!coverage.functions[funcId]){ - coverage.calledFunctions++; - } - coverage.functions[funcId]++; - }; -} -_yuitest_coverage["build/frame/frame.js"] = { - lines: {}, - functions: {}, - coveredLines: 0, - calledLines: 0, - coveredFunctions: 0, - calledFunctions: 0, - path: "build/frame/frame.js", - code: [] -}; -_yuitest_coverage["build/frame/frame.js"].code=["YUI.add('frame', function (Y, NAME) {","",""," /**"," * Creates a wrapper around an iframe. It loads the content either from a local"," * file or from script and creates a local YUI instance bound to that new window and document."," * @class Frame"," * @for Frame"," * @extends Base"," * @constructor"," * @module editor"," * @submodule frame"," */",""," var Frame = function() {"," Frame.superclass.constructor.apply(this, arguments);"," }, LAST_CHILD = ':last-child', BODY = 'body';"," ",""," Y.extend(Frame, Y.Base, {"," /**"," * @private"," * @property _ready"," * @description Internal reference set when the content is ready."," * @type Boolean"," */"," _ready: null,"," /**"," * @private"," * @property _rendered"," * @description Internal reference set when render is called."," * @type Boolean"," */"," _rendered: null,"," /**"," * @private"," * @property _iframe"," * @description Internal Node reference to the iFrame or the window"," * @type Node"," */"," _iframe: null,"," /**"," * @private"," * @property _instance"," * @description Internal reference to the YUI instance bound to the iFrame or window"," * @type YUI"," */"," _instance: null,"," /**"," * @private"," * @method _create"," * @description Create the iframe or Window and get references to the Document & Window"," * @return {Object} Hash table containing references to the new Document & Window"," */"," _create: function(cb) {"," var win, doc, res, node, html = '',"," extra_css = ((this.get('extracss')) ? '' : '');"," "," this._iframe = Y.Node.create(Frame.HTML);"," this._iframe.setStyle('visibility', 'hidden');"," this._iframe.set('src', this.get('src'));"," this.get('container').append(this._iframe);",""," //if the src attr is different than the default, don't create the document"," var create = (this.get('src') === Frame.ATTRS.src.value);",""," this._iframe.set('height', '99%');",""," if (create) {"," html = Y.Lang.sub(Frame.PAGE_HTML, {"," DIR: this.get('dir'),"," LANG: this.get('lang'),"," TITLE: this.get('title'),"," META: Frame.META,"," LINKED_CSS: this.get('linkedcss'),"," CONTENT: this.get('content'),"," BASE_HREF: this.get('basehref'),"," DEFAULT_CSS: Frame.DEFAULT_CSS,"," EXTRA_CSS: extra_css"," });"," if (Y.config.doc.compatMode != 'BackCompat') {"," "," //html = Frame.DOC_TYPE + \"\\n\" + html;"," html = Frame.getDocType() + \"\\n\" + html;"," } else {"," }",""," }",""," res = this._resolveWinDoc();",""," if (html) {"," res.doc.open();"," res.doc.write(html);"," res.doc.close();"," }",""," if (!res.doc.documentElement) {"," var timer = Y.later(1, this, function() {"," if (res.doc && res.doc.documentElement) {"," cb(res);"," timer.cancel();"," }"," }, null, true);"," } else {"," cb(res);"," }",""," },"," /**"," * @private"," * @method _resolveWinDoc"," * @description Resolves the document and window from an iframe or window instance"," * @param {Object} c The YUI Config to add the window and document to"," * @return {Object} Object hash of window and document references, if a YUI config was passed, it is returned."," */"," _resolveWinDoc: function(c) {"," var config = (c) ? c : {};"," config.win = Y.Node.getDOMNode(this._iframe.get('contentWindow'));"," config.doc = Y.Node.getDOMNode(this._iframe.get('contentWindow.document'));"," if (!config.doc) {"," config.doc = Y.config.doc;"," }"," if (!config.win) {"," config.win = Y.config.win;"," }"," return config;"," },"," /**"," * @private"," * @method _onDomEvent"," * @description Generic handler for all DOM events fired by the iframe or window. This handler"," * takes the current EventFacade and augments it to fire on the Frame host. It adds two new properties"," * to the EventFacade called frameX and frameY which adds the scroll and xy position of the iframe"," * to the original pageX and pageY of the event so external nodes can be positioned over the frame."," * @param {Event.Facade} e"," */"," _onDomEvent: function(e) {"," var xy, node;"," "," if (!Y.Node.getDOMNode(this._iframe)) {"," //The iframe is null for some reason, bail on sending events."," return;"," }",""," e.frameX = e.frameY = 0;",""," if (e.pageX > 0 || e.pageY > 0) {"," if (e.type.substring(0, 3) !== 'key') {"," node = this._instance.one('win');"," xy = this._iframe.getXY();"," e.frameX = xy[0] + e.pageX - node.get('scrollLeft');"," e.frameY = xy[1] + e.pageY - node.get('scrollTop');"," }"," }",""," e.frameTarget = e.target;"," e.frameCurrentTarget = e.currentTarget;"," e.frameEvent = e;",""," this.fire('dom:' + e.type, e);"," },"," initializer: function() {"," this.publish('ready', {"," emitFacade: true,"," defaultFn: this._defReadyFn"," });"," },"," destructor: function() {"," var inst = this.getInstance();",""," inst.one('doc').detachAll();"," inst = null;"," this._iframe.remove();"," },"," /**"," * @private"," * @method _DOMPaste"," * @description Simple pass thru handler for the paste event so we can do content cleanup"," * @param {Event.Facade} e"," */"," _DOMPaste: function(e) {"," var inst = this.getInstance(),"," data = '', win = inst.config.win;",""," if (e._event.originalTarget) {"," data = e._event.originalTarget;"," }"," if (e._event.clipboardData) {"," data = e._event.clipboardData.getData('Text');"," }"," "," if (win.clipboardData) {"," data = win.clipboardData.getData('Text');"," if (data === '') { // Could be empty, or failed"," // Verify failure"," if (!win.clipboardData.setData('Text', data)) {"," data = null;"," }"," }"," }"," ",""," e.frameTarget = e.target;"," e.frameCurrentTarget = e.currentTarget;"," e.frameEvent = e;"," "," if (data) {"," e.clipboardData = {"," data: data,"," getData: function() {"," return data;"," }"," };"," } else {"," e.clipboardData = null;"," }",""," this.fire('dom:paste', e);"," },"," /**"," * @private"," * @method _defReadyFn"," * @description Binds DOM events, sets the iframe to visible and fires the ready event"," */"," _defReadyFn: function() {"," var inst = this.getInstance();",""," Y.each(Frame.DOM_EVENTS, function(v, k) {"," var fn = Y.bind(this._onDomEvent, this),"," kfn = ((Y.UA.ie && Frame.THROTTLE_TIME > 0) ? Y.throttle(fn, Frame.THROTTLE_TIME) : fn);",""," if (!inst.Node.DOM_EVENTS[k]) {"," inst.Node.DOM_EVENTS[k] = 1;"," }"," if (v === 1) {"," if (k !== 'focus' && k !== 'blur' && k !== 'paste') {"," if (k.substring(0, 3) === 'key') {"," //Throttle key events in IE"," inst.on(k, kfn, inst.config.doc);"," } else {"," inst.on(k, fn, inst.config.doc);"," }"," }"," }"," }, this);",""," inst.Node.DOM_EVENTS.paste = 1;"," "," inst.on('paste', Y.bind(this._DOMPaste, this), inst.one('body'));",""," //Adding focus/blur to the window object"," inst.on('focus', Y.bind(this._onDomEvent, this), inst.config.win);"," inst.on('blur', Y.bind(this._onDomEvent, this), inst.config.win);",""," inst.__use = inst.use;"," inst.use = Y.bind(this.use, this);"," this._iframe.setStyles({"," visibility: 'inherit'"," });"," inst.one('body').setStyle('display', 'block');"," if (Y.UA.ie) {"," //this._fixIECursors();"," }"," },"," /**"," * It appears that having a BR tag anywhere in the source \"below\" a table with a percentage width (in IE 7 & 8)"," * if there is any TEXTINPUT's outside the iframe, the cursor will rapidly flickr and the CPU would occasionally "," * spike. This method finds all
    's below the sourceIndex of the first table. Does some checks to see if they"," * can be modified and replaces then with a so the layout will remain in tact, but the flickering will"," * no longer happen."," * @method _fixIECursors"," * @private"," */"," _fixIECursors: function() {"," var inst = this.getInstance(),"," tables = inst.all('table'),"," brs = inst.all('br'), si;",""," if (tables.size() && brs.size()) {"," //First Table"," si = tables.item(0).get('sourceIndex');"," brs.each(function(n) {"," var p = n.get('parentNode'),"," c = p.get('children'), b = p.all('>br');"," "," if (p.test('div')) {"," if (c.size() > 2) {"," n.replace(inst.Node.create(''));"," } else {"," if (n.get('sourceIndex') > si) {"," if (b.size()) {"," n.replace(inst.Node.create(''));"," }"," } else {"," if (b.size() > 1) {"," n.replace(inst.Node.create(''));"," }"," }"," }"," }"," "," });"," }"," },"," /**"," * @private"," * @method _onContentReady"," * @description Called once the content is available in the frame/window and calls the final use call"," * on the internal instance so that the modules are loaded properly."," */"," _onContentReady: function(e) {"," if (!this._ready) {"," this._ready = true;"," var inst = this.getInstance(),"," args = Y.clone(this.get('use'));"," "," this.fire('contentready');",""," if (e) {"," inst.config.doc = Y.Node.getDOMNode(e.target);"," }"," //TODO Circle around and deal with CSS loading..."," args.push(Y.bind(function() {"," if (inst.EditorSelection) {"," inst.EditorSelection.DEFAULT_BLOCK_TAG = this.get('defaultblock');"," }"," //Moved to here so that the iframe is ready before allowing editing.."," if (this.get('designMode')) {"," if(Y.UA.ie) {"," inst.config.doc.body.contentEditable = 'true';"," this._ieSetBodyHeight();"," inst.on('keyup', Y.bind(this._ieSetBodyHeight, this), inst.config.doc);"," } else {"," inst.config.doc.designMode = 'on';"," }"," }"," this.fire('ready');"," }, this));"," inst.use.apply(inst, args);",""," inst.one('doc').get('documentElement').addClass('yui-js-enabled');"," }"," },"," _ieHeightCounter: null,"," /**"," * Internal method to set the height of the body to the height of the document in IE."," * With contenteditable being set, the document becomes unresponsive to clicks, this "," * method expands the body to be the height of the document so that doesn't happen."," * @private"," * @method _ieSetBodyHeight"," */"," _ieSetBodyHeight: function(e) {"," if (!this._ieHeightCounter) {"," this._ieHeightCounter = 0;"," }"," this._ieHeightCounter++;"," var run = false;"," if (!e) {"," run = true;"," }"," if (e) {"," switch (e.keyCode) {"," case 8:"," case 13:"," run = true;"," break;"," }"," if (e.ctrlKey || e.shiftKey) {"," run = true;"," }"," }"," if (run) {"," try {"," var inst = this.getInstance();"," var h = this._iframe.get('offsetHeight');"," var bh = inst.config.doc.body.scrollHeight;"," if (h > bh) {"," h = (h - 15) + 'px';"," inst.config.doc.body.style.height = h;"," } else {"," inst.config.doc.body.style.height = 'auto';"," }"," } catch (e) {"," if (this._ieHeightCounter < 100) {"," Y.later(200, this, this._ieSetBodyHeight);"," } else {"," }"," }"," }"," },"," /**"," * @private"," * @method _resolveBaseHref"," * @description Resolves the basehref of the page the frame is created on. Only applies to dynamic content."," * @param {String} href The new value to use, if empty it will be resolved from the current url."," * @return {String}"," */"," _resolveBaseHref: function(href) {"," if (!href || href === '') {"," href = Y.config.doc.location.href;"," if (href.indexOf('?') !== -1) { //Remove the query string"," href = href.substring(0, href.indexOf('?'));"," }"," href = href.substring(0, href.lastIndexOf('/')) + '/';"," }"," return href;"," },"," /**"," * @private"," * @method _getHTML"," * @description Get the content from the iframe"," * @param {String} html The raw HTML from the body of the iframe."," * @return {String}"," */"," _getHTML: function(html) {"," if (this._ready) {"," var inst = this.getInstance();"," html = inst.one('body').get('innerHTML');"," }"," return html;"," },"," /**"," * @private"," * @method _setHTML"," * @description Set the content of the iframe"," * @param {String} html The raw HTML to set the body of the iframe to."," * @return {String}"," */"," _setHTML: function(html) {"," if (this._ready) {"," var inst = this.getInstance();"," inst.one('body').set('innerHTML', html);"," } else {"," //This needs to be wrapped in a contentready callback for the !_ready state"," this.on('contentready', Y.bind(function(html, e) {"," var inst = this.getInstance();"," inst.one('body').set('innerHTML', html);"," }, this, html));"," }"," return html;"," },"," /**"," * @private"," * @method _setLinkedCSS"," * @description Set's the linked CSS on the instance.."," */"," _getLinkedCSS: function(urls) {"," if (!Y.Lang.isArray(urls)) {"," urls = [urls];"," }"," var str = '';"," if (!this._ready) {"," Y.each(urls, function(v) {"," if (v !== '') {"," str += '';"," }"," });"," } else {"," str = urls;"," }"," return str;"," },"," /**"," * @private"," * @method _setLinkedCSS"," * @description Set's the linked CSS on the instance.."," */"," _setLinkedCSS: function(css) {"," if (this._ready) {"," var inst = this.getInstance();"," inst.Get.css(css);"," }"," return css;"," },"," /**"," * @private"," * @method _setExtraCSS"," * @description Set's the extra CSS on the instance.."," */"," _setExtraCSS: function(css) {"," if (this._ready) {"," var inst = this.getInstance(),"," node = inst.one('#extra_css');"," "," node.remove();"," inst.one('head').append('');"," }"," return css;"," },"," /**"," * @private"," * @method _instanceLoaded"," * @description Called from the first YUI instance that sets up the internal instance."," * This loads the content into the window/frame and attaches the contentready event."," * @param {YUI} inst The internal YUI instance bound to the frame/window"," */"," _instanceLoaded: function(inst) {"," this._instance = inst;"," this._onContentReady();"," "," var doc = this._instance.config.doc;",""," if (this.get('designMode')) {"," if (!Y.UA.ie) {"," try {"," //Force other browsers into non CSS styling"," doc.execCommand('styleWithCSS', false, false);"," doc.execCommand('insertbronreturn', false, false);"," } catch (err) {}"," }"," }"," },"," //BEGIN PUBLIC METHODS"," /**"," * @method use"," * @description This is a scoped version of the normal YUI.use method & is bound to this frame/window."," * At setup, the inst.use method is mapped to this method."," */"," use: function() {"," var inst = this.getInstance(),"," args = Y.Array(arguments),"," cb = false;",""," if (Y.Lang.isFunction(args[args.length - 1])) {"," cb = args.pop();"," }"," if (cb) {"," args.push(function() {"," cb.apply(inst, arguments);",""," });"," }"," inst.__use.apply(inst, args);"," },"," /**"," * @method delegate"," * @description A delegate method passed to the instance's delegate method"," * @param {String} type The type of event to listen for"," * @param {Function} fn The method to attach"," * @param {String} cont The container to act as a delegate, if no \"sel\" passed, the body is assumed as the container."," * @param {String} sel The selector to match in the event (optional)"," * @return {EventHandle} The Event handle returned from Y.delegate"," */"," delegate: function(type, fn, cont, sel) {"," var inst = this.getInstance();"," if (!inst) {"," return false;"," }"," if (!sel) {"," sel = cont;"," cont = 'body';"," }"," return inst.delegate(type, fn, cont, sel);"," },"," /**"," * @method getInstance"," * @description Get a reference to the internal YUI instance."," * @return {YUI} The internal YUI instance"," */"," getInstance: function() {"," return this._instance;"," },"," /**"," * @method render"," * @description Render the iframe into the container config option or open the window."," * @param {String/HTMLElement/Node} node The node to render to"," * @return {Frame}"," * @chainable"," */"," render: function(node) {"," if (this._rendered) {"," return this;"," }"," this._rendered = true;"," if (node) {"," this.set('container', node);"," }",""," this._create(Y.bind(function(res) {",""," var inst, timer,"," cb = Y.bind(function(i) {"," this._instanceLoaded(i);"," }, this),"," args = Y.clone(this.get('use')),"," config = {"," debug: false,"," win: res.win,"," doc: res.doc"," },"," fn = Y.bind(function() {"," config = this._resolveWinDoc(config);"," inst = YUI(config);"," inst.host = this.get('host'); //Cross reference to Editor",""," try {"," inst.use('node-base', cb);"," if (timer) {"," clearInterval(timer);"," }"," } catch (e) {"," timer = setInterval(function() {"," fn();"," }, 350);"," }"," }, this);",""," args.push(fn);",""," Y.use.apply(Y, args);",""," }, this));",""," return this;"," },"," /**"," * @private"," * @method _handleFocus"," * @description Does some tricks on focus to set the proper cursor position."," */"," _handleFocus: function() {"," var inst = this.getInstance(),"," sel = new inst.EditorSelection();",""," if (sel.anchorNode) {"," var n = sel.anchorNode, c;"," "," if (n.test('p') && n.get('innerHTML') === '') {"," n = n.get('parentNode');"," }"," c = n.get('childNodes');"," "," if (c.size()) {"," if (c.item(0).test('br')) {"," sel.selectNode(n, true, false);"," } else if (c.item(0).test('p')) {"," n = c.item(0).one('br.yui-cursor');"," if (n) {"," n = n.get('parentNode');"," }"," if (!n) {"," n = c.item(0).get('firstChild');"," }"," if (!n) {"," n = c.item(0);"," }"," if (n) {"," sel.selectNode(n, true, false);"," }"," } else {"," var b = inst.one('br.yui-cursor');"," if (b) {"," var par = b.get('parentNode');"," if (par) {"," sel.selectNode(par, true, false);"," }"," }"," }"," }"," }"," },"," /**"," * @method focus"," * @description Set the focus to the iframe"," * @param {Function} fn Callback function to execute after focus happens "," * @return {Frame}"," * @chainable "," */"," focus: function(fn) {"," if (Y.UA.ie && Y.UA.ie < 9) {"," try {"," Y.one('win').focus();"," if (this.getInstance()) {"," if (this.getInstance().one('win')) {"," this.getInstance().one('win').focus();"," }"," }"," } catch (ierr) {"," }"," if (fn === true) {"," this._handleFocus();"," }"," if (Y.Lang.isFunction(fn)) {"," fn();"," }"," } else {"," try {"," Y.one('win').focus();"," Y.later(100, this, function() {"," if (this.getInstance()) {"," if (this.getInstance().one('win')) {"," this.getInstance().one('win').focus();"," }"," }"," if (fn === true) {"," this._handleFocus();"," }"," if (Y.Lang.isFunction(fn)) {"," fn();"," }"," });"," } catch (ferr) {"," }"," }"," return this;"," },"," /**"," * @method show"," * @description Show the iframe instance"," * @return {Frame}"," * @chainable "," */"," show: function() {"," this._iframe.setStyles({"," position: 'static',"," left: ''"," });"," if (Y.UA.gecko) {"," try {"," if (this.getInstance()) {"," this.getInstance().config.doc.designMode = 'on';"," }"," } catch (e) { }"," this.focus();"," } "," return this;"," },"," /**"," * @method hide"," * @description Hide the iframe instance"," * @return {Frame}"," * @chainable "," */"," hide: function() {"," this._iframe.setStyles({"," position: 'absolute',"," left: '-999999px'"," });"," return this;"," }"," }, {"," /**"," * @static"," * @property THROTTLE_TIME"," * @description The throttle time for key events in IE"," * @type Number"," * @default 100"," */"," THROTTLE_TIME: 100,"," /**"," * @static"," * @property DOM_EVENTS"," * @description The DomEvents that the frame automatically attaches and bubbles"," * @type Object"," */"," DOM_EVENTS: {"," dblclick: 1,"," click: 1,"," paste: 1,"," mouseup: 1,"," mousedown: 1,"," keyup: 1,"," keydown: 1,"," keypress: 1,"," activate: 1,"," deactivate: 1,"," beforedeactivate: 1,"," focusin: 1,"," focusout: 1"," },",""," /**"," * @static"," * @property DEFAULT_CSS"," * @description The default css used when creating the document."," * @type String"," */"," //DEFAULT_CSS: 'html { height: 95%; } body { padding: 7px; background-color: #fff; font: 13px/1.22 arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small; } a, a:visited, a:hover { color: blue !important; text-decoration: underline !important; cursor: text !important; } img { cursor: pointer !important; border: none; }',"," DEFAULT_CSS: 'body { background-color: #fff; font: 13px/1.22 arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small; } a, a:visited, a:hover { color: blue !important; text-decoration: underline !important; cursor: text !important; } img { cursor: pointer !important; border: none; }',"," /**"," * @static"," * @property HTML"," * @description The template string used to create the iframe"," * @type String"," */"," //HTML: '',"," HTML: '',"," /**"," * @static"," * @property PAGE_HTML"," * @description The template used to create the page when created dynamically."," * @type String"," */"," PAGE_HTML: '{TITLE}{META}{LINKED_CSS}{EXTRA_CSS}{CONTENT}',",""," /**"," * @static"," * @method getDocType"," * @description Parses document.doctype and generates a DocType to match the parent page, if supported."," * For IE8, it grabs document.all[0].nodeValue and uses that. For IE < 8, it falls back to Frame.DOC_TYPE."," * @return {String} The normalized DocType to apply to the iframe"," */"," getDocType: function() {"," var dt = Y.config.doc.doctype,"," str = Frame.DOC_TYPE;",""," if (dt) {"," str = '';"," } else {"," if (Y.config.doc.all) {"," dt = Y.config.doc.all[0];"," if (dt.nodeType) {"," if (dt.nodeType === 8) {"," if (dt.nodeValue) {"," if (dt.nodeValue.toLowerCase().indexOf('doctype') !== -1) {"," str = '';"," }"," }"," }"," }"," }"," }"," return str;"," },"," /**"," * @static"," * @property DOC_TYPE"," * @description The DOCTYPE to prepend to the new document when created. Should match the one on the page being served."," * @type String"," */"," DOC_TYPE: '',"," /**"," * @static"," * @property META"," * @description The meta-tag for Content-Type to add to the dynamic document"," * @type String"," */"," META: '',"," //META: '',"," /**"," * @static"," * @property NAME"," * @description The name of the class (frame)"," * @type String"," */"," NAME: 'frame',"," ATTRS: {"," /**"," * @attribute title"," * @description The title to give the blank page."," * @type String"," */"," title: {"," value: 'Blank Page'"," },"," /**"," * @attribute dir"," * @description The default text direction for this new frame. Default: ltr"," * @type String"," */"," dir: {"," value: 'ltr'"," },"," /**"," * @attribute lang"," * @description The default language. Default: en-US"," * @type String"," */"," lang: {"," value: 'en-US'"," },"," /**"," * @attribute src"," * @description The src of the iframe/window. Defaults to javascript:;"," * @type String"," */"," src: {"," //Hackish, IE needs the false in the Javascript URL"," value: 'javascript' + ((Y.UA.ie) ? ':false' : ':') + ';'"," },"," /**"," * @attribute designMode"," * @description Should designMode be turned on after creation."," * @writeonce"," * @type Boolean"," */"," designMode: {"," writeOnce: true,"," value: false"," },"," /**"," * @attribute content"," * @description The string to inject into the body of the new frame/window."," * @type String"," */"," content: {"," value: '
    ',"," setter: '_setHTML',"," getter: '_getHTML'"," },"," /**"," * @attribute basehref"," * @description The base href to use in the iframe."," * @type String"," */"," basehref: {"," value: false,"," getter: '_resolveBaseHref'"," },"," /**"," * @attribute use"," * @description Array of modules to include in the scoped YUI instance at render time. Default: ['none', 'selector-css2']"," * @writeonce"," * @type Array"," */"," use: {"," writeOnce: true,"," value: ['node', 'node-style', 'selector-css3']"," },"," /**"," * @attribute container"," * @description The container to append the iFrame to on render."," * @type String/HTMLElement/Node"," */"," container: {"," value: 'body',"," setter: function(n) {"," return Y.one(n);"," }"," },"," /**"," * @attribute node"," * @description The Node instance of the iframe."," * @type Node"," */"," node: {"," readOnly: true,"," value: null,"," getter: function() {"," return this._iframe;"," }"," },"," /**"," * @attribute id"," * @description Set the id of the new Node. (optional)"," * @type String"," * @writeonce"," */"," id: {"," writeOnce: true,"," getter: function(id) {"," if (!id) {"," id = 'iframe-' + Y.guid();"," }"," return id;"," }"," },"," /**"," * @attribute linkedcss"," * @description An array of url's to external linked style sheets"," * @type String"," */"," linkedcss: {"," value: '',"," getter: '_getLinkedCSS',"," setter: '_setLinkedCSS'"," },"," /**"," * @attribute extracss"," * @description A string of CSS to add to the Head of the Editor"," * @type String"," */"," extracss: {"," value: '',"," setter: '_setExtraCSS'"," },"," /**"," * @attribute host"," * @description A reference to the Editor instance "," * @type Object"," */"," host: {"," value: false"," },"," /**"," * @attribute defaultblock"," * @description The default tag to use for block level items, defaults to: p"," * @type String"," */ "," defaultblock: {"," value: 'p'"," }"," }"," });","",""," Y.Frame = Frame;","","","","}, '3.7.2', {\"requires\": [\"base\", \"node\", \"selector-css3\", \"yui-throttle\"]});"]; -_yuitest_coverage["build/frame/frame.js"].lines = {"1":0,"15":0,"16":0,"20":0,"56":0,"59":0,"60":0,"61":0,"62":0,"65":0,"67":0,"69":0,"70":0,"81":0,"84":0,"90":0,"92":0,"93":0,"94":0,"95":0,"98":0,"99":0,"100":0,"101":0,"102":0,"106":0,"118":0,"119":0,"120":0,"121":0,"122":0,"124":0,"125":0,"127":0,"139":0,"141":0,"143":0,"146":0,"148":0,"149":0,"150":0,"151":0,"152":0,"153":0,"157":0,"158":0,"159":0,"161":0,"164":0,"170":0,"172":0,"173":0,"174":0,"183":0,"186":0,"187":0,"189":0,"190":0,"193":0,"194":0,"195":0,"197":0,"198":0,"204":0,"205":0,"206":0,"208":0,"209":0,"212":0,"216":0,"219":0,"227":0,"229":0,"230":0,"233":0,"234":0,"236":0,"237":0,"238":0,"240":0,"242":0,"248":0,"250":0,"253":0,"254":0,"256":0,"257":0,"258":0,"261":0,"262":0,"276":0,"280":0,"282":0,"283":0,"284":0,"287":0,"288":0,"289":0,"291":0,"292":0,"293":0,"296":0,"297":0,"313":0,"314":0,"315":0,"318":0,"320":0,"321":0,"324":0,"325":0,"326":0,"329":0,"330":0,"331":0,"332":0,"333":0,"335":0,"338":0,"340":0,"342":0,"354":0,"355":0,"357":0,"358":0,"359":0,"360":0,"362":0,"363":0,"366":0,"367":0,"369":0,"370":0,"373":0,"374":0,"375":0,"376":0,"377":0,"378":0,"379":0,"380":0,"382":0,"385":0,"386":0,"400":0,"401":0,"402":0,"403":0,"405":0,"407":0,"417":0,"418":0,"419":0,"421":0,"431":0,"432":0,"433":0,"436":0,"437":0,"438":0,"441":0,"449":0,"450":0,"452":0,"453":0,"454":0,"455":0,"456":0,"460":0,"462":0,"470":0,"471":0,"472":0,"474":0,"482":0,"483":0,"486":0,"487":0,"489":0,"499":0,"500":0,"502":0,"504":0,"505":0,"506":0,"508":0,"509":0,"521":0,"525":0,"526":0,"528":0,"529":0,"530":0,"534":0,"546":0,"547":0,"548":0,"550":0,"551":0,"552":0,"554":0,"562":0,"572":0,"573":0,"575":0,"576":0,"577":0,"580":0,"582":0,"584":0,"593":0,"594":0,"595":0,"597":0,"598":0,"599":0,"600":0,"603":0,"604":0,"609":0,"611":0,"615":0,"623":0,"626":0,"627":0,"629":0,"630":0,"632":0,"634":0,"635":0,"636":0,"637":0,"638":0,"639":0,"640":0,"642":0,"643":0,"645":0,"646":0,"648":0,"649":0,"652":0,"653":0,"654":0,"655":0,"656":0,"671":0,"672":0,"673":0,"674":0,"675":0,"676":0,"681":0,"682":0,"684":0,"685":0,"688":0,"689":0,"690":0,"691":0,"692":0,"693":0,"696":0,"697":0,"699":0,"700":0,"706":0,"715":0,"719":0,"720":0,"721":0,"722":0,"725":0,"727":0,"736":0,"740":0,"805":0,"808":0,"809":0,"811":0,"812":0,"813":0,"814":0,"815":0,"816":0,"817":0,"824":0,"929":0,"941":0,"953":0,"954":0,"956":0,"998":0}; -_yuitest_coverage["build/frame/frame.js"].functions = {"Frame:15":0,"(anonymous 2):99":0,"_create:55":0,"_resolveWinDoc:117":0,"_onDomEvent:138":0,"initializer:163":0,"destructor:169":0,"getData:211":0,"_DOMPaste:182":0,"(anonymous 3):229":0,"_defReadyFn:226":0,"(anonymous 4):283":0,"_fixIECursors:275":0,"(anonymous 5):324":0,"_onContentReady:312":0,"_ieSetBodyHeight:353":0,"_resolveBaseHref:399":0,"_getHTML:416":0,"(anonymous 6):436":0,"_setHTML:430":0,"(anonymous 7):454":0,"_getLinkedCSS:448":0,"_setLinkedCSS:469":0,"_setExtraCSS:481":0,"_instanceLoaded:498":0,"(anonymous 8):529":0,"use:520":0,"delegate:545":0,"getInstance:561":0,"(anonymous 10):583":0,"(anonymous 12):603":0,"(anonymous 11):592":0,"(anonymous 9):580":0,"render:571":0,"_handleFocus:622":0,"(anonymous 13):690":0,"focus:670":0,"show:714":0,"hide:735":0,"getDocType:804":0,"setter:928":0,"getter:940":0,"getter:952":0,"(anonymous 1):1":0}; -_yuitest_coverage["build/frame/frame.js"].coveredLines = 293; -_yuitest_coverage["build/frame/frame.js"].coveredFunctions = 44; -_yuitest_coverline("build/frame/frame.js", 1); -YUI.add('frame', function (Y, NAME) { - - - /** - * Creates a wrapper around an iframe. It loads the content either from a local - * file or from script and creates a local YUI instance bound to that new window and document. - * @class Frame - * @for Frame - * @extends Base - * @constructor - * @module editor - * @submodule frame - */ - - _yuitest_coverfunc("build/frame/frame.js", "(anonymous 1)", 1); -_yuitest_coverline("build/frame/frame.js", 15); -var Frame = function() { - _yuitest_coverfunc("build/frame/frame.js", "Frame", 15); -_yuitest_coverline("build/frame/frame.js", 16); -Frame.superclass.constructor.apply(this, arguments); - }, LAST_CHILD = ':last-child', BODY = 'body'; - - - _yuitest_coverline("build/frame/frame.js", 20); -Y.extend(Frame, Y.Base, { - /** - * @private - * @property _ready - * @description Internal reference set when the content is ready. - * @type Boolean - */ - _ready: null, - /** - * @private - * @property _rendered - * @description Internal reference set when render is called. - * @type Boolean - */ - _rendered: null, - /** - * @private - * @property _iframe - * @description Internal Node reference to the iFrame or the window - * @type Node - */ - _iframe: null, - /** - * @private - * @property _instance - * @description Internal reference to the YUI instance bound to the iFrame or window - * @type YUI - */ - _instance: null, - /** - * @private - * @method _create - * @description Create the iframe or Window and get references to the Document & Window - * @return {Object} Hash table containing references to the new Document & Window - */ - _create: function(cb) { - _yuitest_coverfunc("build/frame/frame.js", "_create", 55); -_yuitest_coverline("build/frame/frame.js", 56); -var win, doc, res, node, html = '', - extra_css = ((this.get('extracss')) ? '' : ''); - - _yuitest_coverline("build/frame/frame.js", 59); -this._iframe = Y.Node.create(Frame.HTML); - _yuitest_coverline("build/frame/frame.js", 60); -this._iframe.setStyle('visibility', 'hidden'); - _yuitest_coverline("build/frame/frame.js", 61); -this._iframe.set('src', this.get('src')); - _yuitest_coverline("build/frame/frame.js", 62); -this.get('container').append(this._iframe); - - //if the src attr is different than the default, don't create the document - _yuitest_coverline("build/frame/frame.js", 65); -var create = (this.get('src') === Frame.ATTRS.src.value); - - _yuitest_coverline("build/frame/frame.js", 67); -this._iframe.set('height', '99%'); - - _yuitest_coverline("build/frame/frame.js", 69); -if (create) { - _yuitest_coverline("build/frame/frame.js", 70); -html = Y.Lang.sub(Frame.PAGE_HTML, { - DIR: this.get('dir'), - LANG: this.get('lang'), - TITLE: this.get('title'), - META: Frame.META, - LINKED_CSS: this.get('linkedcss'), - CONTENT: this.get('content'), - BASE_HREF: this.get('basehref'), - DEFAULT_CSS: Frame.DEFAULT_CSS, - EXTRA_CSS: extra_css - }); - _yuitest_coverline("build/frame/frame.js", 81); -if (Y.config.doc.compatMode != 'BackCompat') { - - //html = Frame.DOC_TYPE + "\n" + html; - _yuitest_coverline("build/frame/frame.js", 84); -html = Frame.getDocType() + "\n" + html; - } else { - } - - } - - _yuitest_coverline("build/frame/frame.js", 90); -res = this._resolveWinDoc(); - - _yuitest_coverline("build/frame/frame.js", 92); -if (html) { - _yuitest_coverline("build/frame/frame.js", 93); -res.doc.open(); - _yuitest_coverline("build/frame/frame.js", 94); -res.doc.write(html); - _yuitest_coverline("build/frame/frame.js", 95); -res.doc.close(); - } - - _yuitest_coverline("build/frame/frame.js", 98); -if (!res.doc.documentElement) { - _yuitest_coverline("build/frame/frame.js", 99); -var timer = Y.later(1, this, function() { - _yuitest_coverfunc("build/frame/frame.js", "(anonymous 2)", 99); -_yuitest_coverline("build/frame/frame.js", 100); -if (res.doc && res.doc.documentElement) { - _yuitest_coverline("build/frame/frame.js", 101); -cb(res); - _yuitest_coverline("build/frame/frame.js", 102); -timer.cancel(); - } - }, null, true); - } else { - _yuitest_coverline("build/frame/frame.js", 106); -cb(res); - } - - }, - /** - * @private - * @method _resolveWinDoc - * @description Resolves the document and window from an iframe or window instance - * @param {Object} c The YUI Config to add the window and document to - * @return {Object} Object hash of window and document references, if a YUI config was passed, it is returned. - */ - _resolveWinDoc: function(c) { - _yuitest_coverfunc("build/frame/frame.js", "_resolveWinDoc", 117); -_yuitest_coverline("build/frame/frame.js", 118); -var config = (c) ? c : {}; - _yuitest_coverline("build/frame/frame.js", 119); -config.win = Y.Node.getDOMNode(this._iframe.get('contentWindow')); - _yuitest_coverline("build/frame/frame.js", 120); -config.doc = Y.Node.getDOMNode(this._iframe.get('contentWindow.document')); - _yuitest_coverline("build/frame/frame.js", 121); -if (!config.doc) { - _yuitest_coverline("build/frame/frame.js", 122); -config.doc = Y.config.doc; - } - _yuitest_coverline("build/frame/frame.js", 124); -if (!config.win) { - _yuitest_coverline("build/frame/frame.js", 125); -config.win = Y.config.win; - } - _yuitest_coverline("build/frame/frame.js", 127); -return config; - }, - /** - * @private - * @method _onDomEvent - * @description Generic handler for all DOM events fired by the iframe or window. This handler - * takes the current EventFacade and augments it to fire on the Frame host. It adds two new properties - * to the EventFacade called frameX and frameY which adds the scroll and xy position of the iframe - * to the original pageX and pageY of the event so external nodes can be positioned over the frame. - * @param {Event.Facade} e - */ - _onDomEvent: function(e) { - _yuitest_coverfunc("build/frame/frame.js", "_onDomEvent", 138); -_yuitest_coverline("build/frame/frame.js", 139); -var xy, node; - - _yuitest_coverline("build/frame/frame.js", 141); -if (!Y.Node.getDOMNode(this._iframe)) { - //The iframe is null for some reason, bail on sending events. - _yuitest_coverline("build/frame/frame.js", 143); -return; - } - - _yuitest_coverline("build/frame/frame.js", 146); -e.frameX = e.frameY = 0; - - _yuitest_coverline("build/frame/frame.js", 148); -if (e.pageX > 0 || e.pageY > 0) { - _yuitest_coverline("build/frame/frame.js", 149); -if (e.type.substring(0, 3) !== 'key') { - _yuitest_coverline("build/frame/frame.js", 150); -node = this._instance.one('win'); - _yuitest_coverline("build/frame/frame.js", 151); -xy = this._iframe.getXY(); - _yuitest_coverline("build/frame/frame.js", 152); -e.frameX = xy[0] + e.pageX - node.get('scrollLeft'); - _yuitest_coverline("build/frame/frame.js", 153); -e.frameY = xy[1] + e.pageY - node.get('scrollTop'); - } - } - - _yuitest_coverline("build/frame/frame.js", 157); -e.frameTarget = e.target; - _yuitest_coverline("build/frame/frame.js", 158); -e.frameCurrentTarget = e.currentTarget; - _yuitest_coverline("build/frame/frame.js", 159); -e.frameEvent = e; - - _yuitest_coverline("build/frame/frame.js", 161); -this.fire('dom:' + e.type, e); - }, - initializer: function() { - _yuitest_coverfunc("build/frame/frame.js", "initializer", 163); -_yuitest_coverline("build/frame/frame.js", 164); -this.publish('ready', { - emitFacade: true, - defaultFn: this._defReadyFn - }); - }, - destructor: function() { - _yuitest_coverfunc("build/frame/frame.js", "destructor", 169); -_yuitest_coverline("build/frame/frame.js", 170); -var inst = this.getInstance(); - - _yuitest_coverline("build/frame/frame.js", 172); -inst.one('doc').detachAll(); - _yuitest_coverline("build/frame/frame.js", 173); -inst = null; - _yuitest_coverline("build/frame/frame.js", 174); -this._iframe.remove(); - }, - /** - * @private - * @method _DOMPaste - * @description Simple pass thru handler for the paste event so we can do content cleanup - * @param {Event.Facade} e - */ - _DOMPaste: function(e) { - _yuitest_coverfunc("build/frame/frame.js", "_DOMPaste", 182); -_yuitest_coverline("build/frame/frame.js", 183); -var inst = this.getInstance(), - data = '', win = inst.config.win; - - _yuitest_coverline("build/frame/frame.js", 186); -if (e._event.originalTarget) { - _yuitest_coverline("build/frame/frame.js", 187); -data = e._event.originalTarget; - } - _yuitest_coverline("build/frame/frame.js", 189); -if (e._event.clipboardData) { - _yuitest_coverline("build/frame/frame.js", 190); -data = e._event.clipboardData.getData('Text'); - } - - _yuitest_coverline("build/frame/frame.js", 193); -if (win.clipboardData) { - _yuitest_coverline("build/frame/frame.js", 194); -data = win.clipboardData.getData('Text'); - _yuitest_coverline("build/frame/frame.js", 195); -if (data === '') { // Could be empty, or failed - // Verify failure - _yuitest_coverline("build/frame/frame.js", 197); -if (!win.clipboardData.setData('Text', data)) { - _yuitest_coverline("build/frame/frame.js", 198); -data = null; - } - } - } - - - _yuitest_coverline("build/frame/frame.js", 204); -e.frameTarget = e.target; - _yuitest_coverline("build/frame/frame.js", 205); -e.frameCurrentTarget = e.currentTarget; - _yuitest_coverline("build/frame/frame.js", 206); -e.frameEvent = e; - - _yuitest_coverline("build/frame/frame.js", 208); -if (data) { - _yuitest_coverline("build/frame/frame.js", 209); -e.clipboardData = { - data: data, - getData: function() { - _yuitest_coverfunc("build/frame/frame.js", "getData", 211); -_yuitest_coverline("build/frame/frame.js", 212); -return data; - } - }; - } else { - _yuitest_coverline("build/frame/frame.js", 216); -e.clipboardData = null; - } - - _yuitest_coverline("build/frame/frame.js", 219); -this.fire('dom:paste', e); - }, - /** - * @private - * @method _defReadyFn - * @description Binds DOM events, sets the iframe to visible and fires the ready event - */ - _defReadyFn: function() { - _yuitest_coverfunc("build/frame/frame.js", "_defReadyFn", 226); -_yuitest_coverline("build/frame/frame.js", 227); -var inst = this.getInstance(); - - _yuitest_coverline("build/frame/frame.js", 229); -Y.each(Frame.DOM_EVENTS, function(v, k) { - _yuitest_coverfunc("build/frame/frame.js", "(anonymous 3)", 229); -_yuitest_coverline("build/frame/frame.js", 230); -var fn = Y.bind(this._onDomEvent, this), - kfn = ((Y.UA.ie && Frame.THROTTLE_TIME > 0) ? Y.throttle(fn, Frame.THROTTLE_TIME) : fn); - - _yuitest_coverline("build/frame/frame.js", 233); -if (!inst.Node.DOM_EVENTS[k]) { - _yuitest_coverline("build/frame/frame.js", 234); -inst.Node.DOM_EVENTS[k] = 1; - } - _yuitest_coverline("build/frame/frame.js", 236); -if (v === 1) { - _yuitest_coverline("build/frame/frame.js", 237); -if (k !== 'focus' && k !== 'blur' && k !== 'paste') { - _yuitest_coverline("build/frame/frame.js", 238); -if (k.substring(0, 3) === 'key') { - //Throttle key events in IE - _yuitest_coverline("build/frame/frame.js", 240); -inst.on(k, kfn, inst.config.doc); - } else { - _yuitest_coverline("build/frame/frame.js", 242); -inst.on(k, fn, inst.config.doc); - } - } - } - }, this); - - _yuitest_coverline("build/frame/frame.js", 248); -inst.Node.DOM_EVENTS.paste = 1; - - _yuitest_coverline("build/frame/frame.js", 250); -inst.on('paste', Y.bind(this._DOMPaste, this), inst.one('body')); - - //Adding focus/blur to the window object - _yuitest_coverline("build/frame/frame.js", 253); -inst.on('focus', Y.bind(this._onDomEvent, this), inst.config.win); - _yuitest_coverline("build/frame/frame.js", 254); -inst.on('blur', Y.bind(this._onDomEvent, this), inst.config.win); - - _yuitest_coverline("build/frame/frame.js", 256); -inst.__use = inst.use; - _yuitest_coverline("build/frame/frame.js", 257); -inst.use = Y.bind(this.use, this); - _yuitest_coverline("build/frame/frame.js", 258); -this._iframe.setStyles({ - visibility: 'inherit' - }); - _yuitest_coverline("build/frame/frame.js", 261); -inst.one('body').setStyle('display', 'block'); - _yuitest_coverline("build/frame/frame.js", 262); -if (Y.UA.ie) { - //this._fixIECursors(); - } - }, - /** - * It appears that having a BR tag anywhere in the source "below" a table with a percentage width (in IE 7 & 8) - * if there is any TEXTINPUT's outside the iframe, the cursor will rapidly flickr and the CPU would occasionally - * spike. This method finds all
    's below the sourceIndex of the first table. Does some checks to see if they - * can be modified and replaces then with a so the layout will remain in tact, but the flickering will - * no longer happen. - * @method _fixIECursors - * @private - */ - _fixIECursors: function() { - _yuitest_coverfunc("build/frame/frame.js", "_fixIECursors", 275); -_yuitest_coverline("build/frame/frame.js", 276); -var inst = this.getInstance(), - tables = inst.all('table'), - brs = inst.all('br'), si; - - _yuitest_coverline("build/frame/frame.js", 280); -if (tables.size() && brs.size()) { - //First Table - _yuitest_coverline("build/frame/frame.js", 282); -si = tables.item(0).get('sourceIndex'); - _yuitest_coverline("build/frame/frame.js", 283); -brs.each(function(n) { - _yuitest_coverfunc("build/frame/frame.js", "(anonymous 4)", 283); -_yuitest_coverline("build/frame/frame.js", 284); -var p = n.get('parentNode'), - c = p.get('children'), b = p.all('>br'); - - _yuitest_coverline("build/frame/frame.js", 287); -if (p.test('div')) { - _yuitest_coverline("build/frame/frame.js", 288); -if (c.size() > 2) { - _yuitest_coverline("build/frame/frame.js", 289); -n.replace(inst.Node.create('')); - } else { - _yuitest_coverline("build/frame/frame.js", 291); -if (n.get('sourceIndex') > si) { - _yuitest_coverline("build/frame/frame.js", 292); -if (b.size()) { - _yuitest_coverline("build/frame/frame.js", 293); -n.replace(inst.Node.create('')); - } - } else { - _yuitest_coverline("build/frame/frame.js", 296); -if (b.size() > 1) { - _yuitest_coverline("build/frame/frame.js", 297); -n.replace(inst.Node.create('')); - } - } - } - } - - }); - } - }, - /** - * @private - * @method _onContentReady - * @description Called once the content is available in the frame/window and calls the final use call - * on the internal instance so that the modules are loaded properly. - */ - _onContentReady: function(e) { - _yuitest_coverfunc("build/frame/frame.js", "_onContentReady", 312); -_yuitest_coverline("build/frame/frame.js", 313); -if (!this._ready) { - _yuitest_coverline("build/frame/frame.js", 314); -this._ready = true; - _yuitest_coverline("build/frame/frame.js", 315); -var inst = this.getInstance(), - args = Y.clone(this.get('use')); - - _yuitest_coverline("build/frame/frame.js", 318); -this.fire('contentready'); - - _yuitest_coverline("build/frame/frame.js", 320); -if (e) { - _yuitest_coverline("build/frame/frame.js", 321); -inst.config.doc = Y.Node.getDOMNode(e.target); - } - //TODO Circle around and deal with CSS loading... - _yuitest_coverline("build/frame/frame.js", 324); -args.push(Y.bind(function() { - _yuitest_coverfunc("build/frame/frame.js", "(anonymous 5)", 324); -_yuitest_coverline("build/frame/frame.js", 325); -if (inst.EditorSelection) { - _yuitest_coverline("build/frame/frame.js", 326); -inst.EditorSelection.DEFAULT_BLOCK_TAG = this.get('defaultblock'); - } - //Moved to here so that the iframe is ready before allowing editing.. - _yuitest_coverline("build/frame/frame.js", 329); -if (this.get('designMode')) { - _yuitest_coverline("build/frame/frame.js", 330); -if(Y.UA.ie) { - _yuitest_coverline("build/frame/frame.js", 331); -inst.config.doc.body.contentEditable = 'true'; - _yuitest_coverline("build/frame/frame.js", 332); -this._ieSetBodyHeight(); - _yuitest_coverline("build/frame/frame.js", 333); -inst.on('keyup', Y.bind(this._ieSetBodyHeight, this), inst.config.doc); - } else { - _yuitest_coverline("build/frame/frame.js", 335); -inst.config.doc.designMode = 'on'; - } - } - _yuitest_coverline("build/frame/frame.js", 338); -this.fire('ready'); - }, this)); - _yuitest_coverline("build/frame/frame.js", 340); -inst.use.apply(inst, args); - - _yuitest_coverline("build/frame/frame.js", 342); -inst.one('doc').get('documentElement').addClass('yui-js-enabled'); - } - }, - _ieHeightCounter: null, - /** - * Internal method to set the height of the body to the height of the document in IE. - * With contenteditable being set, the document becomes unresponsive to clicks, this - * method expands the body to be the height of the document so that doesn't happen. - * @private - * @method _ieSetBodyHeight - */ - _ieSetBodyHeight: function(e) { - _yuitest_coverfunc("build/frame/frame.js", "_ieSetBodyHeight", 353); -_yuitest_coverline("build/frame/frame.js", 354); -if (!this._ieHeightCounter) { - _yuitest_coverline("build/frame/frame.js", 355); -this._ieHeightCounter = 0; - } - _yuitest_coverline("build/frame/frame.js", 357); -this._ieHeightCounter++; - _yuitest_coverline("build/frame/frame.js", 358); -var run = false; - _yuitest_coverline("build/frame/frame.js", 359); -if (!e) { - _yuitest_coverline("build/frame/frame.js", 360); -run = true; - } - _yuitest_coverline("build/frame/frame.js", 362); -if (e) { - _yuitest_coverline("build/frame/frame.js", 363); -switch (e.keyCode) { - case 8: - case 13: - _yuitest_coverline("build/frame/frame.js", 366); -run = true; - _yuitest_coverline("build/frame/frame.js", 367); -break; - } - _yuitest_coverline("build/frame/frame.js", 369); -if (e.ctrlKey || e.shiftKey) { - _yuitest_coverline("build/frame/frame.js", 370); -run = true; - } - } - _yuitest_coverline("build/frame/frame.js", 373); -if (run) { - _yuitest_coverline("build/frame/frame.js", 374); -try { - _yuitest_coverline("build/frame/frame.js", 375); -var inst = this.getInstance(); - _yuitest_coverline("build/frame/frame.js", 376); -var h = this._iframe.get('offsetHeight'); - _yuitest_coverline("build/frame/frame.js", 377); -var bh = inst.config.doc.body.scrollHeight; - _yuitest_coverline("build/frame/frame.js", 378); -if (h > bh) { - _yuitest_coverline("build/frame/frame.js", 379); -h = (h - 15) + 'px'; - _yuitest_coverline("build/frame/frame.js", 380); -inst.config.doc.body.style.height = h; - } else { - _yuitest_coverline("build/frame/frame.js", 382); -inst.config.doc.body.style.height = 'auto'; - } - } catch (e) { - _yuitest_coverline("build/frame/frame.js", 385); -if (this._ieHeightCounter < 100) { - _yuitest_coverline("build/frame/frame.js", 386); -Y.later(200, this, this._ieSetBodyHeight); - } else { - } - } - } - }, - /** - * @private - * @method _resolveBaseHref - * @description Resolves the basehref of the page the frame is created on. Only applies to dynamic content. - * @param {String} href The new value to use, if empty it will be resolved from the current url. - * @return {String} - */ - _resolveBaseHref: function(href) { - _yuitest_coverfunc("build/frame/frame.js", "_resolveBaseHref", 399); -_yuitest_coverline("build/frame/frame.js", 400); -if (!href || href === '') { - _yuitest_coverline("build/frame/frame.js", 401); -href = Y.config.doc.location.href; - _yuitest_coverline("build/frame/frame.js", 402); -if (href.indexOf('?') !== -1) { //Remove the query string - _yuitest_coverline("build/frame/frame.js", 403); -href = href.substring(0, href.indexOf('?')); - } - _yuitest_coverline("build/frame/frame.js", 405); -href = href.substring(0, href.lastIndexOf('/')) + '/'; - } - _yuitest_coverline("build/frame/frame.js", 407); -return href; - }, - /** - * @private - * @method _getHTML - * @description Get the content from the iframe - * @param {String} html The raw HTML from the body of the iframe. - * @return {String} - */ - _getHTML: function(html) { - _yuitest_coverfunc("build/frame/frame.js", "_getHTML", 416); -_yuitest_coverline("build/frame/frame.js", 417); -if (this._ready) { - _yuitest_coverline("build/frame/frame.js", 418); -var inst = this.getInstance(); - _yuitest_coverline("build/frame/frame.js", 419); -html = inst.one('body').get('innerHTML'); - } - _yuitest_coverline("build/frame/frame.js", 421); -return html; - }, - /** - * @private - * @method _setHTML - * @description Set the content of the iframe - * @param {String} html The raw HTML to set the body of the iframe to. - * @return {String} - */ - _setHTML: function(html) { - _yuitest_coverfunc("build/frame/frame.js", "_setHTML", 430); -_yuitest_coverline("build/frame/frame.js", 431); -if (this._ready) { - _yuitest_coverline("build/frame/frame.js", 432); -var inst = this.getInstance(); - _yuitest_coverline("build/frame/frame.js", 433); -inst.one('body').set('innerHTML', html); - } else { - //This needs to be wrapped in a contentready callback for the !_ready state - _yuitest_coverline("build/frame/frame.js", 436); -this.on('contentready', Y.bind(function(html, e) { - _yuitest_coverfunc("build/frame/frame.js", "(anonymous 6)", 436); -_yuitest_coverline("build/frame/frame.js", 437); -var inst = this.getInstance(); - _yuitest_coverline("build/frame/frame.js", 438); -inst.one('body').set('innerHTML', html); - }, this, html)); - } - _yuitest_coverline("build/frame/frame.js", 441); -return html; - }, - /** - * @private - * @method _setLinkedCSS - * @description Set's the linked CSS on the instance.. - */ - _getLinkedCSS: function(urls) { - _yuitest_coverfunc("build/frame/frame.js", "_getLinkedCSS", 448); -_yuitest_coverline("build/frame/frame.js", 449); -if (!Y.Lang.isArray(urls)) { - _yuitest_coverline("build/frame/frame.js", 450); -urls = [urls]; - } - _yuitest_coverline("build/frame/frame.js", 452); -var str = ''; - _yuitest_coverline("build/frame/frame.js", 453); -if (!this._ready) { - _yuitest_coverline("build/frame/frame.js", 454); -Y.each(urls, function(v) { - _yuitest_coverfunc("build/frame/frame.js", "(anonymous 7)", 454); -_yuitest_coverline("build/frame/frame.js", 455); -if (v !== '') { - _yuitest_coverline("build/frame/frame.js", 456); -str += ''; - } - }); - } else { - _yuitest_coverline("build/frame/frame.js", 460); -str = urls; - } - _yuitest_coverline("build/frame/frame.js", 462); -return str; - }, - /** - * @private - * @method _setLinkedCSS - * @description Set's the linked CSS on the instance.. - */ - _setLinkedCSS: function(css) { - _yuitest_coverfunc("build/frame/frame.js", "_setLinkedCSS", 469); -_yuitest_coverline("build/frame/frame.js", 470); -if (this._ready) { - _yuitest_coverline("build/frame/frame.js", 471); -var inst = this.getInstance(); - _yuitest_coverline("build/frame/frame.js", 472); -inst.Get.css(css); - } - _yuitest_coverline("build/frame/frame.js", 474); -return css; - }, - /** - * @private - * @method _setExtraCSS - * @description Set's the extra CSS on the instance.. - */ - _setExtraCSS: function(css) { - _yuitest_coverfunc("build/frame/frame.js", "_setExtraCSS", 481); -_yuitest_coverline("build/frame/frame.js", 482); -if (this._ready) { - _yuitest_coverline("build/frame/frame.js", 483); -var inst = this.getInstance(), - node = inst.one('#extra_css'); - - _yuitest_coverline("build/frame/frame.js", 486); -node.remove(); - _yuitest_coverline("build/frame/frame.js", 487); -inst.one('head').append(''); - } - _yuitest_coverline("build/frame/frame.js", 489); -return css; - }, - /** - * @private - * @method _instanceLoaded - * @description Called from the first YUI instance that sets up the internal instance. - * This loads the content into the window/frame and attaches the contentready event. - * @param {YUI} inst The internal YUI instance bound to the frame/window - */ - _instanceLoaded: function(inst) { - _yuitest_coverfunc("build/frame/frame.js", "_instanceLoaded", 498); -_yuitest_coverline("build/frame/frame.js", 499); -this._instance = inst; - _yuitest_coverline("build/frame/frame.js", 500); -this._onContentReady(); - - _yuitest_coverline("build/frame/frame.js", 502); -var doc = this._instance.config.doc; - - _yuitest_coverline("build/frame/frame.js", 504); -if (this.get('designMode')) { - _yuitest_coverline("build/frame/frame.js", 505); -if (!Y.UA.ie) { - _yuitest_coverline("build/frame/frame.js", 506); -try { - //Force other browsers into non CSS styling - _yuitest_coverline("build/frame/frame.js", 508); -doc.execCommand('styleWithCSS', false, false); - _yuitest_coverline("build/frame/frame.js", 509); -doc.execCommand('insertbronreturn', false, false); - } catch (err) {} - } - } - }, - //BEGIN PUBLIC METHODS - /** - * @method use - * @description This is a scoped version of the normal YUI.use method & is bound to this frame/window. - * At setup, the inst.use method is mapped to this method. - */ - use: function() { - _yuitest_coverfunc("build/frame/frame.js", "use", 520); -_yuitest_coverline("build/frame/frame.js", 521); -var inst = this.getInstance(), - args = Y.Array(arguments), - cb = false; - - _yuitest_coverline("build/frame/frame.js", 525); -if (Y.Lang.isFunction(args[args.length - 1])) { - _yuitest_coverline("build/frame/frame.js", 526); -cb = args.pop(); - } - _yuitest_coverline("build/frame/frame.js", 528); -if (cb) { - _yuitest_coverline("build/frame/frame.js", 529); -args.push(function() { - _yuitest_coverfunc("build/frame/frame.js", "(anonymous 8)", 529); -_yuitest_coverline("build/frame/frame.js", 530); -cb.apply(inst, arguments); - - }); - } - _yuitest_coverline("build/frame/frame.js", 534); -inst.__use.apply(inst, args); - }, - /** - * @method delegate - * @description A delegate method passed to the instance's delegate method - * @param {String} type The type of event to listen for - * @param {Function} fn The method to attach - * @param {String} cont The container to act as a delegate, if no "sel" passed, the body is assumed as the container. - * @param {String} sel The selector to match in the event (optional) - * @return {EventHandle} The Event handle returned from Y.delegate - */ - delegate: function(type, fn, cont, sel) { - _yuitest_coverfunc("build/frame/frame.js", "delegate", 545); -_yuitest_coverline("build/frame/frame.js", 546); -var inst = this.getInstance(); - _yuitest_coverline("build/frame/frame.js", 547); -if (!inst) { - _yuitest_coverline("build/frame/frame.js", 548); -return false; - } - _yuitest_coverline("build/frame/frame.js", 550); -if (!sel) { - _yuitest_coverline("build/frame/frame.js", 551); -sel = cont; - _yuitest_coverline("build/frame/frame.js", 552); -cont = 'body'; - } - _yuitest_coverline("build/frame/frame.js", 554); -return inst.delegate(type, fn, cont, sel); - }, - /** - * @method getInstance - * @description Get a reference to the internal YUI instance. - * @return {YUI} The internal YUI instance - */ - getInstance: function() { - _yuitest_coverfunc("build/frame/frame.js", "getInstance", 561); -_yuitest_coverline("build/frame/frame.js", 562); -return this._instance; - }, - /** - * @method render - * @description Render the iframe into the container config option or open the window. - * @param {String/HTMLElement/Node} node The node to render to - * @return {Frame} - * @chainable - */ - render: function(node) { - _yuitest_coverfunc("build/frame/frame.js", "render", 571); -_yuitest_coverline("build/frame/frame.js", 572); -if (this._rendered) { - _yuitest_coverline("build/frame/frame.js", 573); -return this; - } - _yuitest_coverline("build/frame/frame.js", 575); -this._rendered = true; - _yuitest_coverline("build/frame/frame.js", 576); -if (node) { - _yuitest_coverline("build/frame/frame.js", 577); -this.set('container', node); - } - - _yuitest_coverline("build/frame/frame.js", 580); -this._create(Y.bind(function(res) { - - _yuitest_coverfunc("build/frame/frame.js", "(anonymous 9)", 580); -_yuitest_coverline("build/frame/frame.js", 582); -var inst, timer, - cb = Y.bind(function(i) { - _yuitest_coverfunc("build/frame/frame.js", "(anonymous 10)", 583); -_yuitest_coverline("build/frame/frame.js", 584); -this._instanceLoaded(i); - }, this), - args = Y.clone(this.get('use')), - config = { - debug: false, - win: res.win, - doc: res.doc - }, - fn = Y.bind(function() { - _yuitest_coverfunc("build/frame/frame.js", "(anonymous 11)", 592); -_yuitest_coverline("build/frame/frame.js", 593); -config = this._resolveWinDoc(config); - _yuitest_coverline("build/frame/frame.js", 594); -inst = YUI(config); - _yuitest_coverline("build/frame/frame.js", 595); -inst.host = this.get('host'); //Cross reference to Editor - - _yuitest_coverline("build/frame/frame.js", 597); -try { - _yuitest_coverline("build/frame/frame.js", 598); -inst.use('node-base', cb); - _yuitest_coverline("build/frame/frame.js", 599); -if (timer) { - _yuitest_coverline("build/frame/frame.js", 600); -clearInterval(timer); - } - } catch (e) { - _yuitest_coverline("build/frame/frame.js", 603); -timer = setInterval(function() { - _yuitest_coverfunc("build/frame/frame.js", "(anonymous 12)", 603); -_yuitest_coverline("build/frame/frame.js", 604); -fn(); - }, 350); - } - }, this); - - _yuitest_coverline("build/frame/frame.js", 609); -args.push(fn); - - _yuitest_coverline("build/frame/frame.js", 611); -Y.use.apply(Y, args); - - }, this)); - - _yuitest_coverline("build/frame/frame.js", 615); -return this; - }, - /** - * @private - * @method _handleFocus - * @description Does some tricks on focus to set the proper cursor position. - */ - _handleFocus: function() { - _yuitest_coverfunc("build/frame/frame.js", "_handleFocus", 622); -_yuitest_coverline("build/frame/frame.js", 623); -var inst = this.getInstance(), - sel = new inst.EditorSelection(); - - _yuitest_coverline("build/frame/frame.js", 626); -if (sel.anchorNode) { - _yuitest_coverline("build/frame/frame.js", 627); -var n = sel.anchorNode, c; - - _yuitest_coverline("build/frame/frame.js", 629); -if (n.test('p') && n.get('innerHTML') === '') { - _yuitest_coverline("build/frame/frame.js", 630); -n = n.get('parentNode'); - } - _yuitest_coverline("build/frame/frame.js", 632); -c = n.get('childNodes'); - - _yuitest_coverline("build/frame/frame.js", 634); -if (c.size()) { - _yuitest_coverline("build/frame/frame.js", 635); -if (c.item(0).test('br')) { - _yuitest_coverline("build/frame/frame.js", 636); -sel.selectNode(n, true, false); - } else {_yuitest_coverline("build/frame/frame.js", 637); -if (c.item(0).test('p')) { - _yuitest_coverline("build/frame/frame.js", 638); -n = c.item(0).one('br.yui-cursor'); - _yuitest_coverline("build/frame/frame.js", 639); -if (n) { - _yuitest_coverline("build/frame/frame.js", 640); -n = n.get('parentNode'); - } - _yuitest_coverline("build/frame/frame.js", 642); -if (!n) { - _yuitest_coverline("build/frame/frame.js", 643); -n = c.item(0).get('firstChild'); - } - _yuitest_coverline("build/frame/frame.js", 645); -if (!n) { - _yuitest_coverline("build/frame/frame.js", 646); -n = c.item(0); - } - _yuitest_coverline("build/frame/frame.js", 648); -if (n) { - _yuitest_coverline("build/frame/frame.js", 649); -sel.selectNode(n, true, false); - } - } else { - _yuitest_coverline("build/frame/frame.js", 652); -var b = inst.one('br.yui-cursor'); - _yuitest_coverline("build/frame/frame.js", 653); -if (b) { - _yuitest_coverline("build/frame/frame.js", 654); -var par = b.get('parentNode'); - _yuitest_coverline("build/frame/frame.js", 655); -if (par) { - _yuitest_coverline("build/frame/frame.js", 656); -sel.selectNode(par, true, false); - } - } - }} - } - } - }, - /** - * @method focus - * @description Set the focus to the iframe - * @param {Function} fn Callback function to execute after focus happens - * @return {Frame} - * @chainable - */ - focus: function(fn) { - _yuitest_coverfunc("build/frame/frame.js", "focus", 670); -_yuitest_coverline("build/frame/frame.js", 671); -if (Y.UA.ie && Y.UA.ie < 9) { - _yuitest_coverline("build/frame/frame.js", 672); -try { - _yuitest_coverline("build/frame/frame.js", 673); -Y.one('win').focus(); - _yuitest_coverline("build/frame/frame.js", 674); -if (this.getInstance()) { - _yuitest_coverline("build/frame/frame.js", 675); -if (this.getInstance().one('win')) { - _yuitest_coverline("build/frame/frame.js", 676); -this.getInstance().one('win').focus(); - } - } - } catch (ierr) { - } - _yuitest_coverline("build/frame/frame.js", 681); -if (fn === true) { - _yuitest_coverline("build/frame/frame.js", 682); -this._handleFocus(); - } - _yuitest_coverline("build/frame/frame.js", 684); -if (Y.Lang.isFunction(fn)) { - _yuitest_coverline("build/frame/frame.js", 685); -fn(); - } - } else { - _yuitest_coverline("build/frame/frame.js", 688); -try { - _yuitest_coverline("build/frame/frame.js", 689); -Y.one('win').focus(); - _yuitest_coverline("build/frame/frame.js", 690); -Y.later(100, this, function() { - _yuitest_coverfunc("build/frame/frame.js", "(anonymous 13)", 690); -_yuitest_coverline("build/frame/frame.js", 691); -if (this.getInstance()) { - _yuitest_coverline("build/frame/frame.js", 692); -if (this.getInstance().one('win')) { - _yuitest_coverline("build/frame/frame.js", 693); -this.getInstance().one('win').focus(); - } - } - _yuitest_coverline("build/frame/frame.js", 696); -if (fn === true) { - _yuitest_coverline("build/frame/frame.js", 697); -this._handleFocus(); - } - _yuitest_coverline("build/frame/frame.js", 699); -if (Y.Lang.isFunction(fn)) { - _yuitest_coverline("build/frame/frame.js", 700); -fn(); - } - }); - } catch (ferr) { - } - } - _yuitest_coverline("build/frame/frame.js", 706); -return this; - }, - /** - * @method show - * @description Show the iframe instance - * @return {Frame} - * @chainable - */ - show: function() { - _yuitest_coverfunc("build/frame/frame.js", "show", 714); -_yuitest_coverline("build/frame/frame.js", 715); -this._iframe.setStyles({ - position: 'static', - left: '' - }); - _yuitest_coverline("build/frame/frame.js", 719); -if (Y.UA.gecko) { - _yuitest_coverline("build/frame/frame.js", 720); -try { - _yuitest_coverline("build/frame/frame.js", 721); -if (this.getInstance()) { - _yuitest_coverline("build/frame/frame.js", 722); -this.getInstance().config.doc.designMode = 'on'; - } - } catch (e) { } - _yuitest_coverline("build/frame/frame.js", 725); -this.focus(); - } - _yuitest_coverline("build/frame/frame.js", 727); -return this; - }, - /** - * @method hide - * @description Hide the iframe instance - * @return {Frame} - * @chainable - */ - hide: function() { - _yuitest_coverfunc("build/frame/frame.js", "hide", 735); -_yuitest_coverline("build/frame/frame.js", 736); -this._iframe.setStyles({ - position: 'absolute', - left: '-999999px' - }); - _yuitest_coverline("build/frame/frame.js", 740); -return this; - } - }, { - /** - * @static - * @property THROTTLE_TIME - * @description The throttle time for key events in IE - * @type Number - * @default 100 - */ - THROTTLE_TIME: 100, - /** - * @static - * @property DOM_EVENTS - * @description The DomEvents that the frame automatically attaches and bubbles - * @type Object - */ - DOM_EVENTS: { - dblclick: 1, - click: 1, - paste: 1, - mouseup: 1, - mousedown: 1, - keyup: 1, - keydown: 1, - keypress: 1, - activate: 1, - deactivate: 1, - beforedeactivate: 1, - focusin: 1, - focusout: 1 - }, - - /** - * @static - * @property DEFAULT_CSS - * @description The default css used when creating the document. - * @type String - */ - //DEFAULT_CSS: 'html { height: 95%; } body { padding: 7px; background-color: #fff; font: 13px/1.22 arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small; } a, a:visited, a:hover { color: blue !important; text-decoration: underline !important; cursor: text !important; } img { cursor: pointer !important; border: none; }', - DEFAULT_CSS: 'body { background-color: #fff; font: 13px/1.22 arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small; } a, a:visited, a:hover { color: blue !important; text-decoration: underline !important; cursor: text !important; } img { cursor: pointer !important; border: none; }', - /** - * @static - * @property HTML - * @description The template string used to create the iframe - * @type String - */ - //HTML: '', - HTML: '', - /** - * @static - * @property PAGE_HTML - * @description The template used to create the page when created dynamically. - * @type String - */ - PAGE_HTML: '{TITLE}{META}{LINKED_CSS}{EXTRA_CSS}{CONTENT}', - - /** - * @static - * @method getDocType - * @description Parses document.doctype and generates a DocType to match the parent page, if supported. - * For IE8, it grabs document.all[0].nodeValue and uses that. For IE < 8, it falls back to Frame.DOC_TYPE. - * @return {String} The normalized DocType to apply to the iframe - */ - getDocType: function() { - _yuitest_coverfunc("build/frame/frame.js", "getDocType", 804); -_yuitest_coverline("build/frame/frame.js", 805); -var dt = Y.config.doc.doctype, - str = Frame.DOC_TYPE; - - _yuitest_coverline("build/frame/frame.js", 808); -if (dt) { - _yuitest_coverline("build/frame/frame.js", 809); -str = ''; - } else { - _yuitest_coverline("build/frame/frame.js", 811); -if (Y.config.doc.all) { - _yuitest_coverline("build/frame/frame.js", 812); -dt = Y.config.doc.all[0]; - _yuitest_coverline("build/frame/frame.js", 813); -if (dt.nodeType) { - _yuitest_coverline("build/frame/frame.js", 814); -if (dt.nodeType === 8) { - _yuitest_coverline("build/frame/frame.js", 815); -if (dt.nodeValue) { - _yuitest_coverline("build/frame/frame.js", 816); -if (dt.nodeValue.toLowerCase().indexOf('doctype') !== -1) { - _yuitest_coverline("build/frame/frame.js", 817); -str = ''; - } - } - } - } - } - } - _yuitest_coverline("build/frame/frame.js", 824); -return str; - }, - /** - * @static - * @property DOC_TYPE - * @description The DOCTYPE to prepend to the new document when created. Should match the one on the page being served. - * @type String - */ - DOC_TYPE: '', - /** - * @static - * @property META - * @description The meta-tag for Content-Type to add to the dynamic document - * @type String - */ - META: '', - //META: '', - /** - * @static - * @property NAME - * @description The name of the class (frame) - * @type String - */ - NAME: 'frame', - ATTRS: { - /** - * @attribute title - * @description The title to give the blank page. - * @type String - */ - title: { - value: 'Blank Page' - }, - /** - * @attribute dir - * @description The default text direction for this new frame. Default: ltr - * @type String - */ - dir: { - value: 'ltr' - }, - /** - * @attribute lang - * @description The default language. Default: en-US - * @type String - */ - lang: { - value: 'en-US' - }, - /** - * @attribute src - * @description The src of the iframe/window. Defaults to javascript:; - * @type String - */ - src: { - //Hackish, IE needs the false in the Javascript URL - value: 'javascript' + ((Y.UA.ie) ? ':false' : ':') + ';' - }, - /** - * @attribute designMode - * @description Should designMode be turned on after creation. - * @writeonce - * @type Boolean - */ - designMode: { - writeOnce: true, - value: false - }, - /** - * @attribute content - * @description The string to inject into the body of the new frame/window. - * @type String - */ - content: { - value: '
    ', - setter: '_setHTML', - getter: '_getHTML' - }, - /** - * @attribute basehref - * @description The base href to use in the iframe. - * @type String - */ - basehref: { - value: false, - getter: '_resolveBaseHref' - }, - /** - * @attribute use - * @description Array of modules to include in the scoped YUI instance at render time. Default: ['none', 'selector-css2'] - * @writeonce - * @type Array - */ - use: { - writeOnce: true, - value: ['node', 'node-style', 'selector-css3'] - }, - /** - * @attribute container - * @description The container to append the iFrame to on render. - * @type String/HTMLElement/Node - */ - container: { - value: 'body', - setter: function(n) { - _yuitest_coverfunc("build/frame/frame.js", "setter", 928); -_yuitest_coverline("build/frame/frame.js", 929); -return Y.one(n); - } - }, - /** - * @attribute node - * @description The Node instance of the iframe. - * @type Node - */ - node: { - readOnly: true, - value: null, - getter: function() { - _yuitest_coverfunc("build/frame/frame.js", "getter", 940); -_yuitest_coverline("build/frame/frame.js", 941); -return this._iframe; - } - }, - /** - * @attribute id - * @description Set the id of the new Node. (optional) - * @type String - * @writeonce - */ - id: { - writeOnce: true, - getter: function(id) { - _yuitest_coverfunc("build/frame/frame.js", "getter", 952); -_yuitest_coverline("build/frame/frame.js", 953); -if (!id) { - _yuitest_coverline("build/frame/frame.js", 954); -id = 'iframe-' + Y.guid(); - } - _yuitest_coverline("build/frame/frame.js", 956); -return id; - } - }, - /** - * @attribute linkedcss - * @description An array of url's to external linked style sheets - * @type String - */ - linkedcss: { - value: '', - getter: '_getLinkedCSS', - setter: '_setLinkedCSS' - }, - /** - * @attribute extracss - * @description A string of CSS to add to the Head of the Editor - * @type String - */ - extracss: { - value: '', - setter: '_setExtraCSS' - }, - /** - * @attribute host - * @description A reference to the Editor instance - * @type Object - */ - host: { - value: false - }, - /** - * @attribute defaultblock - * @description The default tag to use for block level items, defaults to: p - * @type String - */ - defaultblock: { - value: 'p' - } - } - }); - - - _yuitest_coverline("build/frame/frame.js", 998); -Y.Frame = Frame; - - - -}, '3.7.2', {"requires": ["base", "node", "selector-css3", "yui-throttle"]}); diff --git a/lib/yuilib/3.7.2/build/frame/frame-min.js b/lib/yuilib/3.7.2/build/frame/frame-min.js deleted file mode 100644 index 1b8a8a4aa9a..00000000000 --- a/lib/yuilib/3.7.2/build/frame/frame-min.js +++ /dev/null @@ -1,7 +0,0 @@ -/* -YUI 3.7.2 (build 5639) -Copyright 2012 Yahoo! Inc. All rights reserved. -Licensed under the BSD License. -http://yuilibrary.com/license/ -*/ -YUI.add("frame",function(e,t){var n=function(){n.superclass.constructor.apply(this,arguments)},r=":last-child",i="body";e.extend(n,e.Base,{_ready:null,_rendered:null,_iframe:null,_instance:null,_create:function(t){var r,i,s,o,u="",a=this.get("extracss")?'":"";this._iframe=e.Node.create(n.HTML),this._iframe.setStyle("visibility","hidden"),this._iframe.set("src",this.get("src")),this.get("container").append(this._iframe);var f=this.get("src")===n.ATTRS.src.value;this._iframe.set("height","99%"),f&&(u=e.Lang.sub(n.PAGE_HTML,{DIR:this.get("dir"),LANG:this.get("lang"),TITLE:this.get("title"),META:n.META,LINKED_CSS:this.get("linkedcss"),CONTENT:this.get("content"),BASE_HREF:this.get("basehref"),DEFAULT_CSS:n.DEFAULT_CSS,EXTRA_CSS:a}),e.config.doc.compatMode!="BackCompat"&&(u=n.getDocType()+"\n"+u)),s=this._resolveWinDoc(),u&&(s.doc.open(),s.doc.write(u),s.doc.close());if(!s.doc.documentElement)var l=e.later(1,this,function(){s.doc&&s.doc.documentElement&&(t(s),l.cancel())},null,!0);else t(s)},_resolveWinDoc:function(t){var n=t?t:{};return n.win=e.Node.getDOMNode(this._iframe.get("contentWindow")),n.doc=e.Node.getDOMNode(this._iframe.get("contentWindow.document")),n.doc||(n.doc=e.config.doc),n.win||(n.win=e.config.win),n},_onDomEvent:function(t){var n,r;if(!e.Node.getDOMNode(this._iframe))return;t.frameX=t.frameY=0,(t.pageX>0||t.pageY>0)&&t.type.substring(0,3)!=="key"&&(r=this._instance.one("win"),n=this._iframe.getXY(),t.frameX=n[0]+t.pageX-r.get("scrollLeft"),t.frameY=n[1]+t.pageY-r.get("scrollTop")),t.frameTarget=t.target,t.frameCurrentTarget=t.currentTarget,t.frameEvent=t,this.fire("dom:"+t.type,t)},initializer:function(){this.publish("ready",{emitFacade:!0,defaultFn:this._defReadyFn})},destructor:function(){var e=this.getInstance();e.one("doc").detachAll(),e=null,this._iframe.remove()},_DOMPaste:function(e){var t=this.getInstance(),n="",r=t.config.win;e._event.originalTarget&&(n=e._event.originalTarget),e._event.clipboardData&&(n=e._event.clipboardData.getData("Text")),r.clipboardData&&(n=r.clipboardData.getData("Text"),n===""&&(r.clipboardData.setData("Text",n)||(n=null))),e.frameTarget=e.target,e.frameCurrentTarget=e.currentTarget,e.frameEvent=e,n?e.clipboardData={data:n,getData:function(){return n}}:e.clipboardData=null,this.fire("dom:paste",e)},_defReadyFn:function(){var t=this.getInstance();e.each(n.DOM_EVENTS,function(r,i){var s=e.bind(this._onDomEvent,this),o=e.UA.ie&&n.THROTTLE_TIME>0?e.throttle(s,n.THROTTLE_TIME):s;t.Node.DOM_EVENTS[i]||(t.Node.DOM_EVENTS[i]=1),r===1&&i!=="focus"&&i!=="blur"&&i!=="paste"&&(i.substring(0,3)==="key"?t.on(i,o,t.config.doc):t.on(i,s,t.config.doc))},this),t.Node.DOM_EVENTS.paste=1,t.on("paste",e.bind(this._DOMPaste,this),t.one("body")),t.on("focus",e.bind(this._onDomEvent,this),t.config.win),t.on("blur",e.bind(this._onDomEvent,this),t.config.win),t.__use=t.use,t.use=e.bind(this.use,this),this._iframe.setStyles({visibility:"inherit"}),t.one("body").setStyle("display","block"),e.UA.ie},_fixIECursors:function(){var e=this.getInstance(),t=e.all("table"),n=e.all("br"),r;t.size()&&n.size()&&(r=t.item(0).get("sourceIndex"),n.each(function(t){var n=t.get("parentNode"),i=n.get("children"),s=n.all(">br");n.test("div")&&(i.size()>2?t.replace(e.Node.create("")):t.get("sourceIndex")>r?s.size()&&t.replace(e.Node.create("")):s.size()>1&&t.replace(e.Node.create("")))}))},_onContentReady:function(t){if(!this._ready){this._ready=!0;var n=this.getInstance(),r=e.clone(this.get("use"));this.fire("contentready"),t&&(n.config.doc=e.Node.getDOMNode(t.target)),r.push(e.bind(function(){n.EditorSelection&&(n.EditorSelection.DEFAULT_BLOCK_TAG=this.get("defaultblock")),this.get("designMode")&&(e.UA.ie?(n.config.doc.body.contentEditable="true",this._ieSetBodyHeight(),n.on("keyup",e.bind(this._ieSetBodyHeight,this),n.config.doc)):n.config.doc.designMode="on"),this.fire("ready")},this)),n.use.apply(n,r),n.one("doc").get("documentElement").addClass("yui-js-enabled")}},_ieHeightCounter:null,_ieSetBodyHeight:function(t){this._ieHeightCounter||(this._ieHeightCounter=0),this._ieHeightCounter++;var n=!1;t||(n=!0);if(t){switch(t.keyCode){case 8:case 13:n=!0}if(t.ctrlKey||t.shiftKey)n=!0}if(n)try{var r=this.getInstance(),i=this._iframe.get("offsetHeight"),s=r.config.doc.body.scrollHeight;i>s?(i=i-15+"px",r.config.doc.body.style.height=i):r.config.doc.body.style.height="auto"}catch(t){this._ieHeightCounter<100&&e.later(200,this,this._ieSetBodyHeight)}},_resolveBaseHref:function(t){if(!t||t==="")t=e.config.doc.location.href,t.indexOf("?")!==-1&&(t=t.substring(0,t.indexOf("?"))),t=t.substring(0,t.lastIndexOf("/"))+"/";return t},_getHTML:function(e){if(this._ready){var t=this.getInstance();e=t.one("body").get("innerHTML")}return e},_setHTML:function(t){if(this._ready){var n=this.getInstance();n.one("body").set("innerHTML",t)}else this.on("contentready",e.bind(function(e,t){var n=this.getInstance();n.one("body").set("innerHTML",e)},this,t));return t},_getLinkedCSS:function(t){e.Lang.isArray(t)||(t=[t]);var n="";return this._ready?n=t:e.each(t,function(e){e!==""&&(n+='')}),n},_setLinkedCSS:function(e){if(this._ready){var t=this.getInstance();t.Get.css(e)}return e},_setExtraCSS:function(e){if(this._ready){var t=this.getInstance(),n=t.one("#extra_css");n.remove(),t.one("head").append('")}return e},_instanceLoaded:function(t){this._instance=t,this._onContentReady();var n=this._instance.config.doc;if(this.get("designMode")&&!e.UA.ie)try{n.execCommand("styleWithCSS",!1,!1),n.execCommand("insertbronreturn",!1,!1)}catch(r){}},use:function(){var t=this.getInstance(),n=e.Array(arguments),r=!1;e.Lang.isFunction(n[n.length-1])&&(r=n.pop()),r&&n.push(function(){r.apply(t,arguments)}),t.__use.apply(t,n)},delegate:function(e,t,n,r){var i=this.getInstance();return i?(r||(r=n,n="body"),i.delegate(e,t,n,r)):!1},getInstance:function(){return this._instance},render:function(t){return this._rendered?this:(this._rendered=!0,t&&this.set("container",t),this._create(e.bind(function(t){var n,r,i=e.bind(function(e){this._instanceLoaded(e)},this),s=e.clone(this.get("use")),o={debug:!1,win:t.win,doc:t.doc},u=e.bind(function(){o=this._resolveWinDoc(o),n=YUI(o),n.host=this.get("host");try{n.use("node-base",i),r&&clearInterval(r)}catch(e){r=setInterval(function(){u()},350)}},this);s.push(u),e.use.apply(e,s)},this)),this)},_handleFocus:function(){var e=this.getInstance(),t=new e.EditorSelection;if(t.anchorNode){var n=t.anchorNode,r;n.test("p")&&n.get("innerHTML")===""&&(n=n.get("parentNode")),r=n.get("childNodes");if(r.size())if(r.item(0).test("br"))t.selectNode(n,!0,!1);else if(r.item(0).test("p"))n=r.item(0).one("br.yui-cursor"),n&&(n=n.get("parentNode")),n||(n=r.item(0).get("firstChild")),n||(n=r.item(0)),n&&t.selectNode(n,!0,!1);else{var i=e.one("br.yui-cursor");if(i){var s=i.get("parentNode");s&&t.selectNode(s,!0,!1)}}}},focus:function(t){if(e.UA.ie&&e.UA.ie<9){try{e.one("win").focus(),this.getInstance()&&this.getInstance().one("win")&&this.getInstance().one("win").focus()}catch(n){}t===!0&&this._handleFocus(),e.Lang.isFunction(t)&&t()}else try{e.one("win").focus(),e.later(100,this,function(){this.getInstance()&&this.getInstance().one("win")&&this.getInstance().one("win").focus(),t===!0&&this._handleFocus(),e.Lang.isFunction(t)&&t()})}catch(r){}return this},show:function(){this._iframe.setStyles({position:"static",left:""});if(e.UA.gecko){try{this.getInstance()&&(this.getInstance().config.doc.designMode="on")}catch(t){}this.focus()}return this},hide:function(){return this._iframe.setStyles({position:"absolute",left:"-999999px"}),this}},{THROTTLE_TIME:100,DOM_EVENTS:{dblclick:1,click:1,paste:1,mouseup:1,mousedown:1,keyup:1,keydown:1,keypress:1,activate:1,deactivate:1,beforedeactivate:1,focusin:1,focusout:1},DEFAULT_CSS:"body { background-color: #fff; font: 13px/1.22 arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small; } a, a:visited, a:hover { color: blue !important; text-decoration: underline !important; cursor: text !important; } img { cursor: pointer !important; border: none; }",HTML:'',PAGE_HTML:'{TITLE}{META}{LINKED_CSS}{EXTRA_CSS}{CONTENT}',getDocType:function(){var t=e.config.doc.doctype,r=n.DOC_TYPE;return t?r="":e.config.doc.all&&(t=e.config.doc.all[0],t.nodeType&&t.nodeType===8&&t.nodeValue&&t.nodeValue.toLowerCase().indexOf("doctype")!==-1&&(r="")),r},DOC_TYPE:'',META:'',NAME:"frame",ATTRS:{title:{value:"Blank Page"},dir:{value:"ltr"},lang:{value:"en-US"},src:{value:"javascript"+(e.UA.ie?":false":":")+";"},designMode:{writeOnce:!0,value:!1},content:{value:"
    ",setter:"_setHTML",getter:"_getHTML"},basehref:{value:!1,getter:"_resolveBaseHref"},use:{writeOnce:!0,value:["node","node-style","selector-css3"]},container:{value:"body",setter:function(t){return e.one(t)}},node:{readOnly:!0,value:null,getter:function(){return this._iframe}},id:{writeOnce:!0,getter:function(t){return t||(t="iframe-"+e.guid()),t}},linkedcss:{value:"",getter:"_getLinkedCSS",setter:"_setLinkedCSS"},extracss:{value:"",setter:"_setExtraCSS"},host:{value:!1},defaultblock:{value:"p"}}}),e.Frame=n},"3.7.2",{requires:["base","node","selector-css3","yui-throttle"]}); diff --git a/lib/yuilib/3.7.2/build/get/get-min.js b/lib/yuilib/3.7.2/build/get/get-min.js deleted file mode 100644 index a9d77f3d953..00000000000 --- a/lib/yuilib/3.7.2/build/get/get-min.js +++ /dev/null @@ -1,7 +0,0 @@ -/* -YUI 3.7.2 (build 5639) -Copyright 2012 Yahoo! Inc. All rights reserved. -Licensed under the BSD License. -http://yuilibrary.com/license/ -*/ -YUI.add("get",function(e,t){var n=e.Lang,r,i,s;e.Get=i={cssOptions:{attributes:{rel:"stylesheet"},doc:e.config.linkDoc||e.config.doc,pollInterval:50},jsOptions:{autopurge:!0,doc:e.config.scriptDoc||e.config.doc},options:{attributes:{charset:"utf-8"},purgethreshold:20},REGEX_CSS:/\.css(?:[?;].*)?$/i,REGEX_JS:/\.js(?:[?;].*)?$/i,_insertCache:{},_pending:null,_purgeNodes:[],_queue:[],abort:function(e){var t,n,r,i,s;if(!e.abort){n=e,s=this._pending,e=null;if(s&&s.transaction.id===n)e=s.transaction,this._pending=null;else for(t=0,i=this._queue.length;t=e&&this._purge(this._purgeNodes)},_getEnv:function(){var t=e.config.doc,n=e.UA;return this._env={async:t&&t.createElement("script").async===!0,cssFail:n.gecko>=9||n.compareVersions(n.webkit,535.24)>=0,cssLoad:(!n.gecko&&!n.webkit||n.gecko>=9||n.compareVersions(n.webkit,535.24)>=0)&&!(n.chrome&&n.chrome<=18),preservesScriptOrder:!!n.gecko||!!n.opera}},_getTransaction:function(t,r){var i=[],o,u,a,f;n.isArray(t)||(t=[t]),r=e.merge(this.options,r),r.attributes=e.merge(this.options.attributes,r.attributes);for(o=0,u=t.length;o-1&&n.splice(i,1))}}},i.script=i.js,i.Transaction=s=function(t,n){var r=this;r.id=s._lastId+=1,r.data=n.data,r.errors=[],r.nodes=[],r.options=n,r.requests=t,r._callbacks=[],r._queue=[],r._waiting=0,r.tId=r.id,r.win=n.win||e.config.win},s._lastId=0,s.prototype={_state:"new",abort:function(e){this._pending=null,this._pendingCSS=null,this._pollTimer=clearTimeout(this._pollTimer),this._queue=[],this._waiting=0,this.errors.push({error:e||"Aborted"}),this._finish()},execute:function(e){var t=this,n=t.requests,r=t._state,i,s,o,u;if(r==="done"){e&&e(t.errors.length?t.errors:null,t);return}e&&t._callbacks.push(e);if(r==="executing")return;t._state="executing",t._queue=o=[],t.options.timeout&&(t._timeout=setTimeout(function(){t.abort("Timeout")},t.options.timeout));for(i=0,s=n.length;i=0)if(l[u].href===a){r.splice(s,1),s-=1,n._progress(null,f);break}}else try{o=!!f.node.sheet.cssRules,r.splice(s,1),s-=1,n._progress(null,f)}catch(c){}}r.length&&(n._pollTimer=setTimeout(function(){n._poll.call(n)},n.options.pollInterval))},_progress:function(e,t){var n=this.options;e&&(t.error=e,this.errors.push({error:e,request:t})),t.node._yuiget_finished=t.finished=!0,n.onProgress&&n.onProgress.call(n.context||this,this._getEventData(t)),t.autopurge&&(i._autoPurge(this.options.purgethreshold),i._purgeNodes.push(t.node)),this._pending===t&&(this._pending=null),this._waiting-=1,this._next()}}},"3.7.2",{requires:["yui-base"]}); diff --git a/lib/yuilib/3.7.2/build/io-base/io-base-min.js b/lib/yuilib/3.7.2/build/io-base/io-base-min.js deleted file mode 100644 index 66c55d53b3e..00000000000 --- a/lib/yuilib/3.7.2/build/io-base/io-base-min.js +++ /dev/null @@ -1,7 +0,0 @@ -/* -YUI 3.7.2 (build 5639) -Copyright 2012 Yahoo! Inc. All rights reserved. -Licensed under the BSD License. -http://yuilibrary.com/license/ -*/ -YUI.add("io-base",function(e,t){function o(t){var n=this;n._uid="io:"+s++,n._init(t),e.io._map[n._uid]=n}var n=["start","complete","end","success","failure","progress"],r=["status","statusText","responseText","responseXML"],i=e.config.win,s=0;o.prototype={_id:0,_headers:{"X-Requested-With":"XMLHttpRequest"},_timeout:{},_init:function(t){var r=this,i,s;r.cfg=t||{},e.augment(r,e.EventTarget);for(i=0,s=n.length;i=200&&n<300||n===304||n===1223?this.success(e,t):this.failure(e,t)},_rS:function(e,t){var n=this;e.c.readyState===4&&(t.timeout&&n._clearTimeout(e.id),setTimeout(function(){n.complete(e,t),n._result(e,t)},0))},_abort:function(e,t){e&&e.c&&(e.e=t,e.c.abort())},send:function(t,n,i){var s,o,u,a,f,l,c=this,h=t,p={};n=n?e.Object(n):{},s=c._create(n,i),o=n.method?n.method.toUpperCase():"GET",f=n.sync,l=n.data,e.Lang.isObject(l)&&!l.nodeType&&!s.upload&&(l=e.QueryString.stringify(l));if(n.form){if(n.form.upload)return c.upload(s,t,n);l=c._serialize(n.form,l)}if(l)switch(o){case"GET":case"HEAD":case"DELETE":h=c._concat(h,l),l="";break;case"POST":case"PUT":n.headers=e.merge({"Content-Type":"application/x-www-form-urlencoded; charset=UTF-8"},n.headers)}if(s.xdr)return c.xdr(h,s,n);if(s.notify)return s.c.send(s,t,n);!f&&!s.upload&&(s.c.onreadystatechange=function(){c._rS(s,n)});try{s.c.open(o,h,!f,n.username||null,n.password||null),c._setHeaders(s.c,n.headers||{}),c.start(s,n),n.xdr&&n.xdr.credentials&&(e.UA.ie||(s.c.withCredentials=!0)),s.c.send(l);if(f){for(u=0,a=r.length;u 0) {"," io._qShift();"," }"," },",""," /**"," * Method for promoting a transaction to the top of the queue."," *"," * @method promote"," * @static"," */"," qPromote: function(o) {"," this._q.promote(o);"," },",""," /**"," * Method for removing a specific, pending transaction from"," * the queue."," *"," * @method remove"," * @private"," * @static"," */"," qRemove: function(o) {"," this._q.remove(o);"," },",""," qStart: function() {"," var io = this;"," io._qState = 1;",""," if (io._q.size() > 0) {"," io._qShift();"," }"," },",""," /**"," * Method for setting queue processing to inactive."," * Transaction requests to YUI.io.queue() will be stored in the queue, but"," * not processed until the queue is reset to \"active\"."," *"," * @method _stop"," * @private"," * @static"," */"," qStop: function() {"," this._qState = 0;"," },",""," /**"," * Method to query the current size of the queue."," *"," * @method _size"," * @private"," * @static"," * @return {Number}"," */"," qSize: function() {"," return this._q.size();"," }","","}, true);","","function _queue(u, c) {"," return io.queue.apply(io, [u, c]);","}","","_queue.start = function () { io.qStart(); };","_queue.stop = function () { io.qStop(); };","_queue.promote = function (o) { io.qPromote(o); };","_queue.remove = function (o) { io.qRemove(o); };","_queue.size = function () { io.qSize(); };","Y.io.queue = _queue;","","","}, '3.7.2', {\"requires\": [\"io-base\", \"queue-promote\"]});"]; -_yuitest_coverage["build/io-queue/io-queue.js"].lines = {"1":0,"10":0,"12":0,"45":0,"48":0,"49":0,"50":0,"62":0,"65":0,"66":0,"67":0,"70":0,"71":0,"72":0,"75":0,"79":0,"80":0,"81":0,"82":0,"93":0,"105":0,"109":0,"110":0,"112":0,"113":0,"127":0,"139":0,"144":0,"145":0,"148":0,"149":0,"150":0,"151":0,"152":0,"153":0}; -_yuitest_coverage["build/io-queue/io-queue.js"].functions = {"_qShift:44":0,"(anonymous 2):66":0,"queue:61":0,"_qNext:78":0,"qPromote:92":0,"qRemove:104":0,"qStart:108":0,"qStop:126":0,"qSize:138":0,"_queue:144":0,"start:148":0,"stop:149":0,"promote:150":0,"remove:151":0,"size:152":0,"(anonymous 1):1":0}; -_yuitest_coverage["build/io-queue/io-queue.js"].coveredLines = 35; -_yuitest_coverage["build/io-queue/io-queue.js"].coveredFunctions = 16; -_yuitest_coverline("build/io-queue/io-queue.js", 1); -YUI.add('io-queue', function (Y, NAME) { - -/** -Extends IO to implement Queue for synchronous -transaction processing. -@module io -@submodule io-queue -@for IO -**/ -_yuitest_coverfunc("build/io-queue/io-queue.js", "(anonymous 1)", 1); -_yuitest_coverline("build/io-queue/io-queue.js", 10); -var io = Y.io._map['io:0'] || new Y.IO(); - -_yuitest_coverline("build/io-queue/io-queue.js", 12); -Y.mix(Y.IO.prototype, { - /** - * Array of transactions queued for processing - * - * @property _q - * @private - * @static - * @type {Object} - */ - _q: new Y.Queue(), - _qActiveId: null, - _qInit: false, - /** - * Property to determine whether the queue is set to - * 1 (active) or 0 (inactive). When inactive, transactions - * will be stored in the queue until the queue is set to active. - * - * @property _qState - * @private - * @static - * @type {Number} - */ - _qState: 1, - - /** - * Method Process the first transaction from the - * queue in FIFO order. - * - * @method _qShift - * @private - * @static - */ - _qShift: function() { - _yuitest_coverfunc("build/io-queue/io-queue.js", "_qShift", 44); -_yuitest_coverline("build/io-queue/io-queue.js", 45); -var io = this, - o = io._q.next(); - - _yuitest_coverline("build/io-queue/io-queue.js", 48); -io._qActiveId = o.id; - _yuitest_coverline("build/io-queue/io-queue.js", 49); -io._qState = 0; - _yuitest_coverline("build/io-queue/io-queue.js", 50); -io.send(o.uri, o.cfg, o.id); - }, - - /** - * Method for queueing a transaction before the request is sent to the - * resource, to ensure sequential processing. - * - * @method queue - * @static - * @return {Object} - */ - queue: function(uri, c) { - _yuitest_coverfunc("build/io-queue/io-queue.js", "queue", 61); -_yuitest_coverline("build/io-queue/io-queue.js", 62); -var io = this, - o = { uri: uri, cfg:c, id: this._id++ }; - - _yuitest_coverline("build/io-queue/io-queue.js", 65); -if(!io._qInit) { - _yuitest_coverline("build/io-queue/io-queue.js", 66); -Y.on('io:complete', function(id, o) { _yuitest_coverfunc("build/io-queue/io-queue.js", "(anonymous 2)", 66); -io._qNext(id); }, io); - _yuitest_coverline("build/io-queue/io-queue.js", 67); -io._qInit = true; - } - - _yuitest_coverline("build/io-queue/io-queue.js", 70); -io._q.add(o); - _yuitest_coverline("build/io-queue/io-queue.js", 71); -if (io._qState === 1) { - _yuitest_coverline("build/io-queue/io-queue.js", 72); -io._qShift(); - } - - _yuitest_coverline("build/io-queue/io-queue.js", 75); -return o; - }, - - _qNext: function(id) { - _yuitest_coverfunc("build/io-queue/io-queue.js", "_qNext", 78); -_yuitest_coverline("build/io-queue/io-queue.js", 79); -var io = this; - _yuitest_coverline("build/io-queue/io-queue.js", 80); -io._qState = 1; - _yuitest_coverline("build/io-queue/io-queue.js", 81); -if (io._qActiveId === id && io._q.size() > 0) { - _yuitest_coverline("build/io-queue/io-queue.js", 82); -io._qShift(); - } - }, - - /** - * Method for promoting a transaction to the top of the queue. - * - * @method promote - * @static - */ - qPromote: function(o) { - _yuitest_coverfunc("build/io-queue/io-queue.js", "qPromote", 92); -_yuitest_coverline("build/io-queue/io-queue.js", 93); -this._q.promote(o); - }, - - /** - * Method for removing a specific, pending transaction from - * the queue. - * - * @method remove - * @private - * @static - */ - qRemove: function(o) { - _yuitest_coverfunc("build/io-queue/io-queue.js", "qRemove", 104); -_yuitest_coverline("build/io-queue/io-queue.js", 105); -this._q.remove(o); - }, - - qStart: function() { - _yuitest_coverfunc("build/io-queue/io-queue.js", "qStart", 108); -_yuitest_coverline("build/io-queue/io-queue.js", 109); -var io = this; - _yuitest_coverline("build/io-queue/io-queue.js", 110); -io._qState = 1; - - _yuitest_coverline("build/io-queue/io-queue.js", 112); -if (io._q.size() > 0) { - _yuitest_coverline("build/io-queue/io-queue.js", 113); -io._qShift(); - } - }, - - /** - * Method for setting queue processing to inactive. - * Transaction requests to YUI.io.queue() will be stored in the queue, but - * not processed until the queue is reset to "active". - * - * @method _stop - * @private - * @static - */ - qStop: function() { - _yuitest_coverfunc("build/io-queue/io-queue.js", "qStop", 126); -_yuitest_coverline("build/io-queue/io-queue.js", 127); -this._qState = 0; - }, - - /** - * Method to query the current size of the queue. - * - * @method _size - * @private - * @static - * @return {Number} - */ - qSize: function() { - _yuitest_coverfunc("build/io-queue/io-queue.js", "qSize", 138); -_yuitest_coverline("build/io-queue/io-queue.js", 139); -return this._q.size(); - } - -}, true); - -_yuitest_coverline("build/io-queue/io-queue.js", 144); -function _queue(u, c) { - _yuitest_coverfunc("build/io-queue/io-queue.js", "_queue", 144); -_yuitest_coverline("build/io-queue/io-queue.js", 145); -return io.queue.apply(io, [u, c]); -} - -_yuitest_coverline("build/io-queue/io-queue.js", 148); -_queue.start = function () { _yuitest_coverfunc("build/io-queue/io-queue.js", "start", 148); -io.qStart(); }; -_yuitest_coverline("build/io-queue/io-queue.js", 149); -_queue.stop = function () { _yuitest_coverfunc("build/io-queue/io-queue.js", "stop", 149); -io.qStop(); }; -_yuitest_coverline("build/io-queue/io-queue.js", 150); -_queue.promote = function (o) { _yuitest_coverfunc("build/io-queue/io-queue.js", "promote", 150); -io.qPromote(o); }; -_yuitest_coverline("build/io-queue/io-queue.js", 151); -_queue.remove = function (o) { _yuitest_coverfunc("build/io-queue/io-queue.js", "remove", 151); -io.qRemove(o); }; -_yuitest_coverline("build/io-queue/io-queue.js", 152); -_queue.size = function () { _yuitest_coverfunc("build/io-queue/io-queue.js", "size", 152); -io.qSize(); }; -_yuitest_coverline("build/io-queue/io-queue.js", 153); -Y.io.queue = _queue; - - -}, '3.7.2', {"requires": ["io-base", "queue-promote"]}); diff --git a/lib/yuilib/3.7.2/build/io-upload-iframe/io-upload-iframe-min.js b/lib/yuilib/3.7.2/build/io-upload-iframe/io-upload-iframe-min.js deleted file mode 100644 index 0cfa41a26ac..00000000000 --- a/lib/yuilib/3.7.2/build/io-upload-iframe/io-upload-iframe-min.js +++ /dev/null @@ -1,7 +0,0 @@ -/* -YUI 3.7.2 (build 5639) -Copyright 2012 Yahoo! Inc. All rights reserved. -Licensed under the BSD License. -http://yuilibrary.com/license/ -*/ -YUI.add("io-upload-iframe",function(e,t){function o(t,n,r){var i=e.Node.create('',"," /**"," * Attributes to auto add to the dynamic iframe under the hood"," * @static"," * @property IFRAME_ATTRS"," * @type Object"," */"," IFRAME_ATTRS: {"," border: '0',"," frameBorder: '0',"," marginWidth: '0',"," marginHeight: '0',"," leftMargin: '0',"," topMargin: '0',"," allowTransparency: 'true',"," width: \"100%\","," height: \"99%\""," },"," /**"," * @static"," * @property PAGE_HTML"," * @description The template used to create the page when created dynamically."," * @type String"," */"," PAGE_HTML: '{TITLE}{META}{LINKED_CSS}{EXTRA_CSS}{CONTENT}',",""," /**"," * @static"," * @method getDocType"," * @description Parses document.doctype and generates a DocType to match the parent page, if supported."," * For IE8, it grabs document.all[0].nodeValue and uses that. For IE < 8, it falls back to Frame.DOC_TYPE."," * @return {String} The normalized DocType to apply to the iframe"," */"," getDocType: function() {"," var dt = Y.config.doc.doctype,"," str = Frame.DOC_TYPE;",""," if (dt) {"," str = '';"," } else {"," if (Y.config.doc.all) {"," dt = Y.config.doc.all[0];"," if (dt.nodeType) {"," if (dt.nodeType === 8) {"," if (dt.nodeValue) {"," if (dt.nodeValue.toLowerCase().indexOf('doctype') !== -1) {"," str = '';"," }"," }"," }"," }"," }"," }"," return str;"," },"," /**"," * @static"," * @property DOC_TYPE"," * @description The DOCTYPE to prepend to the new document when created. Should match the one on the page being served."," * @type String"," */"," DOC_TYPE: '',"," /**"," * @static"," * @property META"," * @description The meta-tag for Content-Type to add to the dynamic document"," * @type String"," */"," META: '',"," //META: '',"," /**"," * @static"," * @property NAME"," * @description The name of the class (frame)"," * @type String"," */"," NAME: 'frame',"," ATTRS: {"," /**"," * @attribute title"," * @description The title to give the blank page."," * @type String"," */"," title: {"," value: 'Blank Page'"," },"," /**"," * @attribute dir"," * @description The default text direction for this new frame. Default: ltr"," * @type String"," */"," dir: {"," value: 'ltr'"," },"," /**"," * @attribute lang"," * @description The default language. Default: en-US"," * @type String"," */"," lang: {"," value: 'en-US'"," },"," /**"," * @attribute src"," * @description The src of the iframe/window. Defaults to javascript:;"," * @type String"," */"," src: {"," //Hackish, IE needs the false in the Javascript URL"," value: 'javascript' + ((Y.UA.ie) ? ':false' : ':') + ';'"," },"," /**"," * @attribute designMode"," * @description Should designMode be turned on after creation."," * @writeonce"," * @type Boolean"," */"," designMode: {"," writeOnce: true,"," value: false"," },"," /**"," * @attribute content"," * @description The string to inject into the body of the new frame/window."," * @type String"," */"," content: {"," value: '
    ',"," setter: '_setHTML',"," getter: '_getHTML'"," },"," /**"," * @attribute basehref"," * @description The base href to use in the iframe."," * @type String"," */"," basehref: {"," value: false,"," getter: '_resolveBaseHref'"," },"," /**"," * @attribute use"," * @description Array of modules to include in the scoped YUI instance at render time. Default: ['none', 'selector-css2']"," * @writeonce"," * @type Array"," */"," use: {"," writeOnce: true,"," value: ['node', 'node-style', 'selector-css3']"," },"," /**"," * @attribute container"," * @description The container to append the iFrame to on render."," * @type String/HTMLElement/Node"," */"," container: {"," value: 'body',"," setter: function(n) {"," return Y.one(n);"," }"," },"," /**"," * @attribute node"," * @description The Node instance of the iframe."," * @type Node"," */"," node: {"," readOnly: true,"," value: null,"," getter: function() {"," return this._iframe;"," }"," },"," /**"," * @attribute id"," * @description Set the id of the new Node. (optional)"," * @type String"," * @writeonce"," */"," id: {"," writeOnce: true,"," getter: function(id) {"," if (!id) {"," id = 'iframe-' + Y.guid();"," }"," return id;"," }"," },"," /**"," * @attribute linkedcss"," * @description An array of url's to external linked style sheets"," * @type String"," */"," linkedcss: {"," value: '',"," getter: '_getLinkedCSS',"," setter: '_setLinkedCSS'"," },"," /**"," * @attribute extracss"," * @description A string of CSS to add to the Head of the Editor"," * @type String"," */"," extracss: {"," value: '',"," setter: '_setExtraCSS'"," },"," /**"," * @attribute host"," * @description A reference to the Editor instance"," * @type Object"," */"," host: {"," value: false"," },"," /**"," * @attribute defaultblock"," * @description The default tag to use for block level items, defaults to: p"," * @type String"," */"," defaultblock: {"," value: 'p'"," }"," }"," });","",""," Y.Frame = Frame;","","","","}, '3.7.3', {\"requires\": [\"base\", \"node\", \"selector-css3\", \"yui-throttle\"]});"]; +_yuitest_coverage["build/frame/frame.js"].lines = {"1":0,"15":0,"16":0,"20":0,"56":0,"61":0,"62":0,"64":0,"65":0,"66":0,"67":0,"69":0,"70":0,"81":0,"84":0,"90":0,"92":0,"93":0,"94":0,"95":0,"98":0,"99":0,"100":0,"101":0,"102":0,"106":0,"118":0,"119":0,"120":0,"121":0,"122":0,"124":0,"125":0,"127":0,"139":0,"141":0,"143":0,"146":0,"148":0,"149":0,"150":0,"151":0,"152":0,"153":0,"157":0,"158":0,"159":0,"161":0,"164":0,"170":0,"172":0,"173":0,"174":0,"183":0,"186":0,"187":0,"189":0,"190":0,"193":0,"194":0,"195":0,"197":0,"198":0,"204":0,"205":0,"206":0,"208":0,"209":0,"212":0,"216":0,"219":0,"227":0,"229":0,"230":0,"233":0,"234":0,"236":0,"237":0,"238":0,"240":0,"242":0,"248":0,"250":0,"253":0,"254":0,"256":0,"257":0,"258":0,"261":0,"273":0,"277":0,"279":0,"280":0,"281":0,"284":0,"285":0,"286":0,"288":0,"289":0,"290":0,"293":0,"294":0,"310":0,"311":0,"312":0,"315":0,"317":0,"318":0,"321":0,"322":0,"323":0,"326":0,"327":0,"328":0,"329":0,"330":0,"332":0,"335":0,"337":0,"339":0,"351":0,"352":0,"354":0,"355":0,"356":0,"357":0,"359":0,"360":0,"363":0,"364":0,"366":0,"367":0,"370":0,"371":0,"372":0,"373":0,"374":0,"375":0,"376":0,"377":0,"379":0,"382":0,"383":0,"397":0,"398":0,"399":0,"400":0,"402":0,"404":0,"414":0,"415":0,"416":0,"418":0,"428":0,"429":0,"430":0,"433":0,"434":0,"435":0,"438":0,"446":0,"447":0,"449":0,"450":0,"451":0,"452":0,"453":0,"457":0,"459":0,"467":0,"468":0,"469":0,"471":0,"479":0,"480":0,"483":0,"484":0,"486":0,"496":0,"497":0,"499":0,"501":0,"502":0,"503":0,"505":0,"506":0,"518":0,"522":0,"523":0,"525":0,"526":0,"527":0,"531":0,"543":0,"544":0,"545":0,"547":0,"548":0,"549":0,"551":0,"559":0,"569":0,"570":0,"572":0,"573":0,"574":0,"577":0,"579":0,"581":0,"590":0,"591":0,"592":0,"594":0,"595":0,"596":0,"597":0,"600":0,"601":0,"606":0,"608":0,"612":0,"620":0,"624":0,"625":0,"627":0,"628":0,"630":0,"632":0,"633":0,"634":0,"635":0,"636":0,"637":0,"638":0,"640":0,"641":0,"643":0,"644":0,"646":0,"647":0,"650":0,"651":0,"652":0,"653":0,"654":0,"669":0,"670":0,"671":0,"672":0,"673":0,"674":0,"679":0,"680":0,"682":0,"683":0,"686":0,"687":0,"688":0,"689":0,"690":0,"691":0,"694":0,"695":0,"697":0,"698":0,"704":0,"713":0,"717":0,"718":0,"719":0,"720":0,"723":0,"725":0,"734":0,"738":0,"819":0,"822":0,"823":0,"825":0,"826":0,"827":0,"828":0,"829":0,"830":0,"831":0,"838":0,"943":0,"955":0,"967":0,"968":0,"970":0,"1012":0}; +_yuitest_coverage["build/frame/frame.js"].functions = {"Frame:15":0,"(anonymous 2):99":0,"_create:55":0,"_resolveWinDoc:117":0,"_onDomEvent:138":0,"initializer:163":0,"destructor:169":0,"getData:211":0,"_DOMPaste:182":0,"(anonymous 3):229":0,"_defReadyFn:226":0,"(anonymous 4):280":0,"_fixIECursors:272":0,"(anonymous 5):321":0,"_onContentReady:309":0,"_ieSetBodyHeight:350":0,"_resolveBaseHref:396":0,"_getHTML:413":0,"(anonymous 6):433":0,"_setHTML:427":0,"(anonymous 7):451":0,"_getLinkedCSS:445":0,"_setLinkedCSS:466":0,"_setExtraCSS:478":0,"_instanceLoaded:495":0,"(anonymous 8):526":0,"use:517":0,"delegate:542":0,"getInstance:558":0,"(anonymous 10):580":0,"(anonymous 12):600":0,"(anonymous 11):589":0,"(anonymous 9):577":0,"render:568":0,"_handleFocus:619":0,"(anonymous 13):688":0,"focus:668":0,"show:712":0,"hide:733":0,"getDocType:818":0,"setter:942":0,"getter:954":0,"getter:966":0,"(anonymous 1):1":0}; +_yuitest_coverage["build/frame/frame.js"].coveredLines = 292; +_yuitest_coverage["build/frame/frame.js"].coveredFunctions = 44; +_yuitest_coverline("build/frame/frame.js", 1); +YUI.add('frame', function (Y, NAME) { + + /*jshint maxlen: 500 */ + /** + * Creates a wrapper around an iframe. It loads the content either from a local + * file or from script and creates a local YUI instance bound to that new window and document. + * @class Frame + * @for Frame + * @extends Base + * @constructor + * @module editor + * @submodule frame + */ + + _yuitest_coverfunc("build/frame/frame.js", "(anonymous 1)", 1); +_yuitest_coverline("build/frame/frame.js", 15); +var Frame = function() { + _yuitest_coverfunc("build/frame/frame.js", "Frame", 15); +_yuitest_coverline("build/frame/frame.js", 16); +Frame.superclass.constructor.apply(this, arguments); + }; + + + _yuitest_coverline("build/frame/frame.js", 20); +Y.extend(Frame, Y.Base, { + /** + * @private + * @property _ready + * @description Internal reference set when the content is ready. + * @type Boolean + */ + _ready: null, + /** + * @private + * @property _rendered + * @description Internal reference set when render is called. + * @type Boolean + */ + _rendered: null, + /** + * @private + * @property _iframe + * @description Internal Node reference to the iFrame or the window + * @type Node + */ + _iframe: null, + /** + * @private + * @property _instance + * @description Internal reference to the YUI instance bound to the iFrame or window + * @type YUI + */ + _instance: null, + /** + * @private + * @method _create + * @description Create the iframe or Window and get references to the Document & Window + * @return {Object} Hash table containing references to the new Document & Window + */ + _create: function(cb) { + _yuitest_coverfunc("build/frame/frame.js", "_create", 55); +_yuitest_coverline("build/frame/frame.js", 56); +var res, html = '', timer, + //if the src attr is different than the default, don't create the document + create = (this.get('src') === Frame.ATTRS.src.value), + extra_css = ((this.get('extracss')) ? '' : ''); + + _yuitest_coverline("build/frame/frame.js", 61); +this._iframe = Y.one(Y.config.doc.createElement('iframe')); + _yuitest_coverline("build/frame/frame.js", 62); +this._iframe.setAttrs(Frame.IFRAME_ATTRS); + + _yuitest_coverline("build/frame/frame.js", 64); +this._iframe.setStyle('visibility', 'hidden'); + _yuitest_coverline("build/frame/frame.js", 65); +this._iframe.set('src', this.get('src')); + _yuitest_coverline("build/frame/frame.js", 66); +this.get('container').append(this._iframe); + _yuitest_coverline("build/frame/frame.js", 67); +this._iframe.set('height', '99%'); + + _yuitest_coverline("build/frame/frame.js", 69); +if (create) { + _yuitest_coverline("build/frame/frame.js", 70); +html = Y.Lang.sub(Frame.PAGE_HTML, { + DIR: this.get('dir'), + LANG: this.get('lang'), + TITLE: this.get('title'), + META: Frame.META, + LINKED_CSS: this.get('linkedcss'), + CONTENT: this.get('content'), + BASE_HREF: this.get('basehref'), + DEFAULT_CSS: Frame.DEFAULT_CSS, + EXTRA_CSS: extra_css + }); + _yuitest_coverline("build/frame/frame.js", 81); +if (Y.config.doc.compatMode !== 'BackCompat') { + + //html = Frame.DOC_TYPE + "\n" + html; + _yuitest_coverline("build/frame/frame.js", 84); +html = Frame.getDocType() + "\n" + html; + } else { + } + + } + + _yuitest_coverline("build/frame/frame.js", 90); +res = this._resolveWinDoc(); + + _yuitest_coverline("build/frame/frame.js", 92); +if (html) { + _yuitest_coverline("build/frame/frame.js", 93); +res.doc.open(); + _yuitest_coverline("build/frame/frame.js", 94); +res.doc.write(html); + _yuitest_coverline("build/frame/frame.js", 95); +res.doc.close(); + } + + _yuitest_coverline("build/frame/frame.js", 98); +if (!res.doc.documentElement) { + _yuitest_coverline("build/frame/frame.js", 99); +timer = Y.later(1, this, function() { + _yuitest_coverfunc("build/frame/frame.js", "(anonymous 2)", 99); +_yuitest_coverline("build/frame/frame.js", 100); +if (res.doc && res.doc.documentElement) { + _yuitest_coverline("build/frame/frame.js", 101); +cb(res); + _yuitest_coverline("build/frame/frame.js", 102); +timer.cancel(); + } + }, null, true); + } else { + _yuitest_coverline("build/frame/frame.js", 106); +cb(res); + } + + }, + /** + * @private + * @method _resolveWinDoc + * @description Resolves the document and window from an iframe or window instance + * @param {Object} c The YUI Config to add the window and document to + * @return {Object} Object hash of window and document references, if a YUI config was passed, it is returned. + */ + _resolveWinDoc: function(c) { + _yuitest_coverfunc("build/frame/frame.js", "_resolveWinDoc", 117); +_yuitest_coverline("build/frame/frame.js", 118); +var config = (c) ? c : {}; + _yuitest_coverline("build/frame/frame.js", 119); +config.win = Y.Node.getDOMNode(this._iframe.get('contentWindow')); + _yuitest_coverline("build/frame/frame.js", 120); +config.doc = Y.Node.getDOMNode(this._iframe.get('contentWindow.document')); + _yuitest_coverline("build/frame/frame.js", 121); +if (!config.doc) { + _yuitest_coverline("build/frame/frame.js", 122); +config.doc = Y.config.doc; + } + _yuitest_coverline("build/frame/frame.js", 124); +if (!config.win) { + _yuitest_coverline("build/frame/frame.js", 125); +config.win = Y.config.win; + } + _yuitest_coverline("build/frame/frame.js", 127); +return config; + }, + /** + * @private + * @method _onDomEvent + * @description Generic handler for all DOM events fired by the iframe or window. This handler + * takes the current EventFacade and augments it to fire on the Frame host. It adds two new properties + * to the EventFacade called frameX and frameY which adds the scroll and xy position of the iframe + * to the original pageX and pageY of the event so external nodes can be positioned over the frame. + * @param {Event.Facade} e + */ + _onDomEvent: function(e) { + _yuitest_coverfunc("build/frame/frame.js", "_onDomEvent", 138); +_yuitest_coverline("build/frame/frame.js", 139); +var xy, node; + + _yuitest_coverline("build/frame/frame.js", 141); +if (!Y.Node.getDOMNode(this._iframe)) { + //The iframe is null for some reason, bail on sending events. + _yuitest_coverline("build/frame/frame.js", 143); +return; + } + + _yuitest_coverline("build/frame/frame.js", 146); +e.frameX = e.frameY = 0; + + _yuitest_coverline("build/frame/frame.js", 148); +if (e.pageX > 0 || e.pageY > 0) { + _yuitest_coverline("build/frame/frame.js", 149); +if (e.type.substring(0, 3) !== 'key') { + _yuitest_coverline("build/frame/frame.js", 150); +node = this._instance.one('win'); + _yuitest_coverline("build/frame/frame.js", 151); +xy = this._iframe.getXY(); + _yuitest_coverline("build/frame/frame.js", 152); +e.frameX = xy[0] + e.pageX - node.get('scrollLeft'); + _yuitest_coverline("build/frame/frame.js", 153); +e.frameY = xy[1] + e.pageY - node.get('scrollTop'); + } + } + + _yuitest_coverline("build/frame/frame.js", 157); +e.frameTarget = e.target; + _yuitest_coverline("build/frame/frame.js", 158); +e.frameCurrentTarget = e.currentTarget; + _yuitest_coverline("build/frame/frame.js", 159); +e.frameEvent = e; + + _yuitest_coverline("build/frame/frame.js", 161); +this.fire('dom:' + e.type, e); + }, + initializer: function() { + _yuitest_coverfunc("build/frame/frame.js", "initializer", 163); +_yuitest_coverline("build/frame/frame.js", 164); +this.publish('ready', { + emitFacade: true, + defaultFn: this._defReadyFn + }); + }, + destructor: function() { + _yuitest_coverfunc("build/frame/frame.js", "destructor", 169); +_yuitest_coverline("build/frame/frame.js", 170); +var inst = this.getInstance(); + + _yuitest_coverline("build/frame/frame.js", 172); +inst.one('doc').detachAll(); + _yuitest_coverline("build/frame/frame.js", 173); +inst = null; + _yuitest_coverline("build/frame/frame.js", 174); +this._iframe.remove(); + }, + /** + * @private + * @method _DOMPaste + * @description Simple pass thru handler for the paste event so we can do content cleanup + * @param {Event.Facade} e + */ + _DOMPaste: function(e) { + _yuitest_coverfunc("build/frame/frame.js", "_DOMPaste", 182); +_yuitest_coverline("build/frame/frame.js", 183); +var inst = this.getInstance(), + data = '', win = inst.config.win; + + _yuitest_coverline("build/frame/frame.js", 186); +if (e._event.originalTarget) { + _yuitest_coverline("build/frame/frame.js", 187); +data = e._event.originalTarget; + } + _yuitest_coverline("build/frame/frame.js", 189); +if (e._event.clipboardData) { + _yuitest_coverline("build/frame/frame.js", 190); +data = e._event.clipboardData.getData('Text'); + } + + _yuitest_coverline("build/frame/frame.js", 193); +if (win.clipboardData) { + _yuitest_coverline("build/frame/frame.js", 194); +data = win.clipboardData.getData('Text'); + _yuitest_coverline("build/frame/frame.js", 195); +if (data === '') { // Could be empty, or failed + // Verify failure + _yuitest_coverline("build/frame/frame.js", 197); +if (!win.clipboardData.setData('Text', data)) { + _yuitest_coverline("build/frame/frame.js", 198); +data = null; + } + } + } + + + _yuitest_coverline("build/frame/frame.js", 204); +e.frameTarget = e.target; + _yuitest_coverline("build/frame/frame.js", 205); +e.frameCurrentTarget = e.currentTarget; + _yuitest_coverline("build/frame/frame.js", 206); +e.frameEvent = e; + + _yuitest_coverline("build/frame/frame.js", 208); +if (data) { + _yuitest_coverline("build/frame/frame.js", 209); +e.clipboardData = { + data: data, + getData: function() { + _yuitest_coverfunc("build/frame/frame.js", "getData", 211); +_yuitest_coverline("build/frame/frame.js", 212); +return data; + } + }; + } else { + _yuitest_coverline("build/frame/frame.js", 216); +e.clipboardData = null; + } + + _yuitest_coverline("build/frame/frame.js", 219); +this.fire('dom:paste', e); + }, + /** + * @private + * @method _defReadyFn + * @description Binds DOM events, sets the iframe to visible and fires the ready event + */ + _defReadyFn: function() { + _yuitest_coverfunc("build/frame/frame.js", "_defReadyFn", 226); +_yuitest_coverline("build/frame/frame.js", 227); +var inst = this.getInstance(); + + _yuitest_coverline("build/frame/frame.js", 229); +Y.each(Frame.DOM_EVENTS, function(v, k) { + _yuitest_coverfunc("build/frame/frame.js", "(anonymous 3)", 229); +_yuitest_coverline("build/frame/frame.js", 230); +var fn = Y.bind(this._onDomEvent, this), + kfn = ((Y.UA.ie && Frame.THROTTLE_TIME > 0) ? Y.throttle(fn, Frame.THROTTLE_TIME) : fn); + + _yuitest_coverline("build/frame/frame.js", 233); +if (!inst.Node.DOM_EVENTS[k]) { + _yuitest_coverline("build/frame/frame.js", 234); +inst.Node.DOM_EVENTS[k] = 1; + } + _yuitest_coverline("build/frame/frame.js", 236); +if (v === 1) { + _yuitest_coverline("build/frame/frame.js", 237); +if (k !== 'focus' && k !== 'blur' && k !== 'paste') { + _yuitest_coverline("build/frame/frame.js", 238); +if (k.substring(0, 3) === 'key') { + //Throttle key events in IE + _yuitest_coverline("build/frame/frame.js", 240); +inst.on(k, kfn, inst.config.doc); + } else { + _yuitest_coverline("build/frame/frame.js", 242); +inst.on(k, fn, inst.config.doc); + } + } + } + }, this); + + _yuitest_coverline("build/frame/frame.js", 248); +inst.Node.DOM_EVENTS.paste = 1; + + _yuitest_coverline("build/frame/frame.js", 250); +inst.on('paste', Y.bind(this._DOMPaste, this), inst.one('body')); + + //Adding focus/blur to the window object + _yuitest_coverline("build/frame/frame.js", 253); +inst.on('focus', Y.bind(this._onDomEvent, this), inst.config.win); + _yuitest_coverline("build/frame/frame.js", 254); +inst.on('blur', Y.bind(this._onDomEvent, this), inst.config.win); + + _yuitest_coverline("build/frame/frame.js", 256); +inst.__use = inst.use; + _yuitest_coverline("build/frame/frame.js", 257); +inst.use = Y.bind(this.use, this); + _yuitest_coverline("build/frame/frame.js", 258); +this._iframe.setStyles({ + visibility: 'inherit' + }); + _yuitest_coverline("build/frame/frame.js", 261); +inst.one('body').setStyle('display', 'block'); + }, + /** + * It appears that having a BR tag anywhere in the source "below" a table with a percentage width (in IE 7 & 8) + * if there is any TEXTINPUT's outside the iframe, the cursor will rapidly flickr and the CPU would occasionally + * spike. This method finds all
    's below the sourceIndex of the first table. Does some checks to see if they + * can be modified and replaces then with a so the layout will remain in tact, but the flickering will + * no longer happen. + * @method _fixIECursors + * @private + */ + _fixIECursors: function() { + _yuitest_coverfunc("build/frame/frame.js", "_fixIECursors", 272); +_yuitest_coverline("build/frame/frame.js", 273); +var inst = this.getInstance(), + tables = inst.all('table'), + brs = inst.all('br'), si; + + _yuitest_coverline("build/frame/frame.js", 277); +if (tables.size() && brs.size()) { + //First Table + _yuitest_coverline("build/frame/frame.js", 279); +si = tables.item(0).get('sourceIndex'); + _yuitest_coverline("build/frame/frame.js", 280); +brs.each(function(n) { + _yuitest_coverfunc("build/frame/frame.js", "(anonymous 4)", 280); +_yuitest_coverline("build/frame/frame.js", 281); +var p = n.get('parentNode'), + c = p.get('children'), b = p.all('>br'); + + _yuitest_coverline("build/frame/frame.js", 284); +if (p.test('div')) { + _yuitest_coverline("build/frame/frame.js", 285); +if (c.size() > 2) { + _yuitest_coverline("build/frame/frame.js", 286); +n.replace(inst.Node.create('')); + } else { + _yuitest_coverline("build/frame/frame.js", 288); +if (n.get('sourceIndex') > si) { + _yuitest_coverline("build/frame/frame.js", 289); +if (b.size()) { + _yuitest_coverline("build/frame/frame.js", 290); +n.replace(inst.Node.create('')); + } + } else { + _yuitest_coverline("build/frame/frame.js", 293); +if (b.size() > 1) { + _yuitest_coverline("build/frame/frame.js", 294); +n.replace(inst.Node.create('')); + } + } + } + } + + }); + } + }, + /** + * @private + * @method _onContentReady + * @description Called once the content is available in the frame/window and calls the final use call + * on the internal instance so that the modules are loaded properly. + */ + _onContentReady: function(e) { + _yuitest_coverfunc("build/frame/frame.js", "_onContentReady", 309); +_yuitest_coverline("build/frame/frame.js", 310); +if (!this._ready) { + _yuitest_coverline("build/frame/frame.js", 311); +this._ready = true; + _yuitest_coverline("build/frame/frame.js", 312); +var inst = this.getInstance(), + args = Y.clone(this.get('use')); + + _yuitest_coverline("build/frame/frame.js", 315); +this.fire('contentready'); + + _yuitest_coverline("build/frame/frame.js", 317); +if (e) { + _yuitest_coverline("build/frame/frame.js", 318); +inst.config.doc = Y.Node.getDOMNode(e.target); + } + //TODO Circle around and deal with CSS loading... + _yuitest_coverline("build/frame/frame.js", 321); +args.push(Y.bind(function() { + _yuitest_coverfunc("build/frame/frame.js", "(anonymous 5)", 321); +_yuitest_coverline("build/frame/frame.js", 322); +if (inst.EditorSelection) { + _yuitest_coverline("build/frame/frame.js", 323); +inst.EditorSelection.DEFAULT_BLOCK_TAG = this.get('defaultblock'); + } + //Moved to here so that the iframe is ready before allowing editing.. + _yuitest_coverline("build/frame/frame.js", 326); +if (this.get('designMode')) { + _yuitest_coverline("build/frame/frame.js", 327); +if(Y.UA.ie) { + _yuitest_coverline("build/frame/frame.js", 328); +inst.config.doc.body.contentEditable = 'true'; + _yuitest_coverline("build/frame/frame.js", 329); +this._ieSetBodyHeight(); + _yuitest_coverline("build/frame/frame.js", 330); +inst.on('keyup', Y.bind(this._ieSetBodyHeight, this), inst.config.doc); + } else { + _yuitest_coverline("build/frame/frame.js", 332); +inst.config.doc.designMode = 'on'; + } + } + _yuitest_coverline("build/frame/frame.js", 335); +this.fire('ready'); + }, this)); + _yuitest_coverline("build/frame/frame.js", 337); +inst.use.apply(inst, args); + + _yuitest_coverline("build/frame/frame.js", 339); +inst.one('doc').get('documentElement').addClass('yui-js-enabled'); + } + }, + _ieHeightCounter: null, + /** + * Internal method to set the height of the body to the height of the document in IE. + * With contenteditable being set, the document becomes unresponsive to clicks, this + * method expands the body to be the height of the document so that doesn't happen. + * @private + * @method _ieSetBodyHeight + */ + _ieSetBodyHeight: function(e) { + _yuitest_coverfunc("build/frame/frame.js", "_ieSetBodyHeight", 350); +_yuitest_coverline("build/frame/frame.js", 351); +if (!this._ieHeightCounter) { + _yuitest_coverline("build/frame/frame.js", 352); +this._ieHeightCounter = 0; + } + _yuitest_coverline("build/frame/frame.js", 354); +this._ieHeightCounter++; + _yuitest_coverline("build/frame/frame.js", 355); +var run = false, inst, h, bh; + _yuitest_coverline("build/frame/frame.js", 356); +if (!e) { + _yuitest_coverline("build/frame/frame.js", 357); +run = true; + } + _yuitest_coverline("build/frame/frame.js", 359); +if (e) { + _yuitest_coverline("build/frame/frame.js", 360); +switch (e.keyCode) { + case 8: + case 13: + _yuitest_coverline("build/frame/frame.js", 363); +run = true; + _yuitest_coverline("build/frame/frame.js", 364); +break; + } + _yuitest_coverline("build/frame/frame.js", 366); +if (e.ctrlKey || e.shiftKey) { + _yuitest_coverline("build/frame/frame.js", 367); +run = true; + } + } + _yuitest_coverline("build/frame/frame.js", 370); +if (run) { + _yuitest_coverline("build/frame/frame.js", 371); +try { + _yuitest_coverline("build/frame/frame.js", 372); +inst = this.getInstance(); + _yuitest_coverline("build/frame/frame.js", 373); +h = this._iframe.get('offsetHeight'); + _yuitest_coverline("build/frame/frame.js", 374); +bh = inst.config.doc.body.scrollHeight; + _yuitest_coverline("build/frame/frame.js", 375); +if (h > bh) { + _yuitest_coverline("build/frame/frame.js", 376); +h = (h - 15) + 'px'; + _yuitest_coverline("build/frame/frame.js", 377); +inst.config.doc.body.style.height = h; + } else { + _yuitest_coverline("build/frame/frame.js", 379); +inst.config.doc.body.style.height = 'auto'; + } + } catch (e) { + _yuitest_coverline("build/frame/frame.js", 382); +if (this._ieHeightCounter < 100) { + _yuitest_coverline("build/frame/frame.js", 383); +Y.later(200, this, this._ieSetBodyHeight); + } else { + } + } + } + }, + /** + * @private + * @method _resolveBaseHref + * @description Resolves the basehref of the page the frame is created on. Only applies to dynamic content. + * @param {String} href The new value to use, if empty it will be resolved from the current url. + * @return {String} + */ + _resolveBaseHref: function(href) { + _yuitest_coverfunc("build/frame/frame.js", "_resolveBaseHref", 396); +_yuitest_coverline("build/frame/frame.js", 397); +if (!href || href === '') { + _yuitest_coverline("build/frame/frame.js", 398); +href = Y.config.doc.location.href; + _yuitest_coverline("build/frame/frame.js", 399); +if (href.indexOf('?') !== -1) { //Remove the query string + _yuitest_coverline("build/frame/frame.js", 400); +href = href.substring(0, href.indexOf('?')); + } + _yuitest_coverline("build/frame/frame.js", 402); +href = href.substring(0, href.lastIndexOf('/')) + '/'; + } + _yuitest_coverline("build/frame/frame.js", 404); +return href; + }, + /** + * @private + * @method _getHTML + * @description Get the content from the iframe + * @param {String} html The raw HTML from the body of the iframe. + * @return {String} + */ + _getHTML: function(html) { + _yuitest_coverfunc("build/frame/frame.js", "_getHTML", 413); +_yuitest_coverline("build/frame/frame.js", 414); +if (this._ready) { + _yuitest_coverline("build/frame/frame.js", 415); +var inst = this.getInstance(); + _yuitest_coverline("build/frame/frame.js", 416); +html = inst.one('body').get('innerHTML'); + } + _yuitest_coverline("build/frame/frame.js", 418); +return html; + }, + /** + * @private + * @method _setHTML + * @description Set the content of the iframe + * @param {String} html The raw HTML to set the body of the iframe to. + * @return {String} + */ + _setHTML: function(html) { + _yuitest_coverfunc("build/frame/frame.js", "_setHTML", 427); +_yuitest_coverline("build/frame/frame.js", 428); +if (this._ready) { + _yuitest_coverline("build/frame/frame.js", 429); +var inst = this.getInstance(); + _yuitest_coverline("build/frame/frame.js", 430); +inst.one('body').set('innerHTML', html); + } else { + //This needs to be wrapped in a contentready callback for the !_ready state + _yuitest_coverline("build/frame/frame.js", 433); +this.on('contentready', Y.bind(function(html) { + _yuitest_coverfunc("build/frame/frame.js", "(anonymous 6)", 433); +_yuitest_coverline("build/frame/frame.js", 434); +var inst = this.getInstance(); + _yuitest_coverline("build/frame/frame.js", 435); +inst.one('body').set('innerHTML', html); + }, this, html)); + } + _yuitest_coverline("build/frame/frame.js", 438); +return html; + }, + /** + * @private + * @method _setLinkedCSS + * @description Set's the linked CSS on the instance.. + */ + _getLinkedCSS: function(urls) { + _yuitest_coverfunc("build/frame/frame.js", "_getLinkedCSS", 445); +_yuitest_coverline("build/frame/frame.js", 446); +if (!Y.Lang.isArray(urls)) { + _yuitest_coverline("build/frame/frame.js", 447); +urls = [urls]; + } + _yuitest_coverline("build/frame/frame.js", 449); +var str = ''; + _yuitest_coverline("build/frame/frame.js", 450); +if (!this._ready) { + _yuitest_coverline("build/frame/frame.js", 451); +Y.each(urls, function(v) { + _yuitest_coverfunc("build/frame/frame.js", "(anonymous 7)", 451); +_yuitest_coverline("build/frame/frame.js", 452); +if (v !== '') { + _yuitest_coverline("build/frame/frame.js", 453); +str += ''; + } + }); + } else { + _yuitest_coverline("build/frame/frame.js", 457); +str = urls; + } + _yuitest_coverline("build/frame/frame.js", 459); +return str; + }, + /** + * @private + * @method _setLinkedCSS + * @description Set's the linked CSS on the instance.. + */ + _setLinkedCSS: function(css) { + _yuitest_coverfunc("build/frame/frame.js", "_setLinkedCSS", 466); +_yuitest_coverline("build/frame/frame.js", 467); +if (this._ready) { + _yuitest_coverline("build/frame/frame.js", 468); +var inst = this.getInstance(); + _yuitest_coverline("build/frame/frame.js", 469); +inst.Get.css(css); + } + _yuitest_coverline("build/frame/frame.js", 471); +return css; + }, + /** + * @private + * @method _setExtraCSS + * @description Set's the extra CSS on the instance.. + */ + _setExtraCSS: function(css) { + _yuitest_coverfunc("build/frame/frame.js", "_setExtraCSS", 478); +_yuitest_coverline("build/frame/frame.js", 479); +if (this._ready) { + _yuitest_coverline("build/frame/frame.js", 480); +var inst = this.getInstance(), + node = inst.one('#extra_css'); + + _yuitest_coverline("build/frame/frame.js", 483); +node.remove(); + _yuitest_coverline("build/frame/frame.js", 484); +inst.one('head').append(''); + } + _yuitest_coverline("build/frame/frame.js", 486); +return css; + }, + /** + * @private + * @method _instanceLoaded + * @description Called from the first YUI instance that sets up the internal instance. + * This loads the content into the window/frame and attaches the contentready event. + * @param {YUI} inst The internal YUI instance bound to the frame/window + */ + _instanceLoaded: function(inst) { + _yuitest_coverfunc("build/frame/frame.js", "_instanceLoaded", 495); +_yuitest_coverline("build/frame/frame.js", 496); +this._instance = inst; + _yuitest_coverline("build/frame/frame.js", 497); +this._onContentReady(); + + _yuitest_coverline("build/frame/frame.js", 499); +var doc = this._instance.config.doc; + + _yuitest_coverline("build/frame/frame.js", 501); +if (this.get('designMode')) { + _yuitest_coverline("build/frame/frame.js", 502); +if (!Y.UA.ie) { + _yuitest_coverline("build/frame/frame.js", 503); +try { + //Force other browsers into non CSS styling + _yuitest_coverline("build/frame/frame.js", 505); +doc.execCommand('styleWithCSS', false, false); + _yuitest_coverline("build/frame/frame.js", 506); +doc.execCommand('insertbronreturn', false, false); + } catch (err) {} + } + } + }, + //BEGIN PUBLIC METHODS + /** + * @method use + * @description This is a scoped version of the normal YUI.use method & is bound to this frame/window. + * At setup, the inst.use method is mapped to this method. + */ + use: function() { + _yuitest_coverfunc("build/frame/frame.js", "use", 517); +_yuitest_coverline("build/frame/frame.js", 518); +var inst = this.getInstance(), + args = Y.Array(arguments), + cb = false; + + _yuitest_coverline("build/frame/frame.js", 522); +if (Y.Lang.isFunction(args[args.length - 1])) { + _yuitest_coverline("build/frame/frame.js", 523); +cb = args.pop(); + } + _yuitest_coverline("build/frame/frame.js", 525); +if (cb) { + _yuitest_coverline("build/frame/frame.js", 526); +args.push(function() { + _yuitest_coverfunc("build/frame/frame.js", "(anonymous 8)", 526); +_yuitest_coverline("build/frame/frame.js", 527); +cb.apply(inst, arguments); + + }); + } + _yuitest_coverline("build/frame/frame.js", 531); +inst.__use.apply(inst, args); + }, + /** + * @method delegate + * @description A delegate method passed to the instance's delegate method + * @param {String} type The type of event to listen for + * @param {Function} fn The method to attach + * @param {String} cont The container to act as a delegate, if no "sel" passed, the body is assumed as the container. + * @param {String} sel The selector to match in the event (optional) + * @return {EventHandle} The Event handle returned from Y.delegate + */ + delegate: function(type, fn, cont, sel) { + _yuitest_coverfunc("build/frame/frame.js", "delegate", 542); +_yuitest_coverline("build/frame/frame.js", 543); +var inst = this.getInstance(); + _yuitest_coverline("build/frame/frame.js", 544); +if (!inst) { + _yuitest_coverline("build/frame/frame.js", 545); +return false; + } + _yuitest_coverline("build/frame/frame.js", 547); +if (!sel) { + _yuitest_coverline("build/frame/frame.js", 548); +sel = cont; + _yuitest_coverline("build/frame/frame.js", 549); +cont = 'body'; + } + _yuitest_coverline("build/frame/frame.js", 551); +return inst.delegate(type, fn, cont, sel); + }, + /** + * @method getInstance + * @description Get a reference to the internal YUI instance. + * @return {YUI} The internal YUI instance + */ + getInstance: function() { + _yuitest_coverfunc("build/frame/frame.js", "getInstance", 558); +_yuitest_coverline("build/frame/frame.js", 559); +return this._instance; + }, + /** + * @method render + * @description Render the iframe into the container config option or open the window. + * @param {String/HTMLElement/Node} node The node to render to + * @return {Frame} + * @chainable + */ + render: function(node) { + _yuitest_coverfunc("build/frame/frame.js", "render", 568); +_yuitest_coverline("build/frame/frame.js", 569); +if (this._rendered) { + _yuitest_coverline("build/frame/frame.js", 570); +return this; + } + _yuitest_coverline("build/frame/frame.js", 572); +this._rendered = true; + _yuitest_coverline("build/frame/frame.js", 573); +if (node) { + _yuitest_coverline("build/frame/frame.js", 574); +this.set('container', node); + } + + _yuitest_coverline("build/frame/frame.js", 577); +this._create(Y.bind(function(res) { + + _yuitest_coverfunc("build/frame/frame.js", "(anonymous 9)", 577); +_yuitest_coverline("build/frame/frame.js", 579); +var inst, timer, + cb = Y.bind(function(i) { + _yuitest_coverfunc("build/frame/frame.js", "(anonymous 10)", 580); +_yuitest_coverline("build/frame/frame.js", 581); +this._instanceLoaded(i); + }, this), + args = Y.clone(this.get('use')), + config = { + debug: false, + win: res.win, + doc: res.doc + }, + fn = Y.bind(function() { + _yuitest_coverfunc("build/frame/frame.js", "(anonymous 11)", 589); +_yuitest_coverline("build/frame/frame.js", 590); +config = this._resolveWinDoc(config); + _yuitest_coverline("build/frame/frame.js", 591); +inst = YUI(config); + _yuitest_coverline("build/frame/frame.js", 592); +inst.host = this.get('host'); //Cross reference to Editor + + _yuitest_coverline("build/frame/frame.js", 594); +try { + _yuitest_coverline("build/frame/frame.js", 595); +inst.use('node-base', cb); + _yuitest_coverline("build/frame/frame.js", 596); +if (timer) { + _yuitest_coverline("build/frame/frame.js", 597); +clearInterval(timer); + } + } catch (e) { + _yuitest_coverline("build/frame/frame.js", 600); +timer = setInterval(function() { + _yuitest_coverfunc("build/frame/frame.js", "(anonymous 12)", 600); +_yuitest_coverline("build/frame/frame.js", 601); +fn(); + }, 350); + } + }, this); + + _yuitest_coverline("build/frame/frame.js", 606); +args.push(fn); + + _yuitest_coverline("build/frame/frame.js", 608); +Y.use.apply(Y, args); + + }, this)); + + _yuitest_coverline("build/frame/frame.js", 612); +return this; + }, + /** + * @private + * @method _handleFocus + * @description Does some tricks on focus to set the proper cursor position. + */ + _handleFocus: function() { + _yuitest_coverfunc("build/frame/frame.js", "_handleFocus", 619); +_yuitest_coverline("build/frame/frame.js", 620); +var inst = this.getInstance(), + sel = new inst.EditorSelection(), + n, c, b, par; + + _yuitest_coverline("build/frame/frame.js", 624); +if (sel.anchorNode) { + _yuitest_coverline("build/frame/frame.js", 625); +n = sel.anchorNode; + + _yuitest_coverline("build/frame/frame.js", 627); +if (n.test('p') && n.get('innerHTML') === '') { + _yuitest_coverline("build/frame/frame.js", 628); +n = n.get('parentNode'); + } + _yuitest_coverline("build/frame/frame.js", 630); +c = n.get('childNodes'); + + _yuitest_coverline("build/frame/frame.js", 632); +if (c.size()) { + _yuitest_coverline("build/frame/frame.js", 633); +if (c.item(0).test('br')) { + _yuitest_coverline("build/frame/frame.js", 634); +sel.selectNode(n, true, false); + } else {_yuitest_coverline("build/frame/frame.js", 635); +if (c.item(0).test('p')) { + _yuitest_coverline("build/frame/frame.js", 636); +n = c.item(0).one('br.yui-cursor'); + _yuitest_coverline("build/frame/frame.js", 637); +if (n) { + _yuitest_coverline("build/frame/frame.js", 638); +n = n.get('parentNode'); + } + _yuitest_coverline("build/frame/frame.js", 640); +if (!n) { + _yuitest_coverline("build/frame/frame.js", 641); +n = c.item(0).get('firstChild'); + } + _yuitest_coverline("build/frame/frame.js", 643); +if (!n) { + _yuitest_coverline("build/frame/frame.js", 644); +n = c.item(0); + } + _yuitest_coverline("build/frame/frame.js", 646); +if (n) { + _yuitest_coverline("build/frame/frame.js", 647); +sel.selectNode(n, true, false); + } + } else { + _yuitest_coverline("build/frame/frame.js", 650); +b = inst.one('br.yui-cursor'); + _yuitest_coverline("build/frame/frame.js", 651); +if (b) { + _yuitest_coverline("build/frame/frame.js", 652); +par = b.get('parentNode'); + _yuitest_coverline("build/frame/frame.js", 653); +if (par) { + _yuitest_coverline("build/frame/frame.js", 654); +sel.selectNode(par, true, false); + } + } + }} + } + } + }, + /** + * @method focus + * @description Set the focus to the iframe + * @param {Function} fn Callback function to execute after focus happens + * @return {Frame} + * @chainable + */ + focus: function(fn) { + _yuitest_coverfunc("build/frame/frame.js", "focus", 668); +_yuitest_coverline("build/frame/frame.js", 669); +if (Y.UA.ie && Y.UA.ie < 9) { + _yuitest_coverline("build/frame/frame.js", 670); +try { + _yuitest_coverline("build/frame/frame.js", 671); +Y.one('win').focus(); + _yuitest_coverline("build/frame/frame.js", 672); +if (this.getInstance()) { + _yuitest_coverline("build/frame/frame.js", 673); +if (this.getInstance().one('win')) { + _yuitest_coverline("build/frame/frame.js", 674); +this.getInstance().one('win').focus(); + } + } + } catch (ierr) { + } + _yuitest_coverline("build/frame/frame.js", 679); +if (fn === true) { + _yuitest_coverline("build/frame/frame.js", 680); +this._handleFocus(); + } + _yuitest_coverline("build/frame/frame.js", 682); +if (Y.Lang.isFunction(fn)) { + _yuitest_coverline("build/frame/frame.js", 683); +fn(); + } + } else { + _yuitest_coverline("build/frame/frame.js", 686); +try { + _yuitest_coverline("build/frame/frame.js", 687); +Y.one('win').focus(); + _yuitest_coverline("build/frame/frame.js", 688); +Y.later(100, this, function() { + _yuitest_coverfunc("build/frame/frame.js", "(anonymous 13)", 688); +_yuitest_coverline("build/frame/frame.js", 689); +if (this.getInstance()) { + _yuitest_coverline("build/frame/frame.js", 690); +if (this.getInstance().one('win')) { + _yuitest_coverline("build/frame/frame.js", 691); +this.getInstance().one('win').focus(); + } + } + _yuitest_coverline("build/frame/frame.js", 694); +if (fn === true) { + _yuitest_coverline("build/frame/frame.js", 695); +this._handleFocus(); + } + _yuitest_coverline("build/frame/frame.js", 697); +if (Y.Lang.isFunction(fn)) { + _yuitest_coverline("build/frame/frame.js", 698); +fn(); + } + }); + } catch (ferr) { + } + } + _yuitest_coverline("build/frame/frame.js", 704); +return this; + }, + /** + * @method show + * @description Show the iframe instance + * @return {Frame} + * @chainable + */ + show: function() { + _yuitest_coverfunc("build/frame/frame.js", "show", 712); +_yuitest_coverline("build/frame/frame.js", 713); +this._iframe.setStyles({ + position: 'static', + left: '' + }); + _yuitest_coverline("build/frame/frame.js", 717); +if (Y.UA.gecko) { + _yuitest_coverline("build/frame/frame.js", 718); +try { + _yuitest_coverline("build/frame/frame.js", 719); +if (this.getInstance()) { + _yuitest_coverline("build/frame/frame.js", 720); +this.getInstance().config.doc.designMode = 'on'; + } + } catch (e) { } + _yuitest_coverline("build/frame/frame.js", 723); +this.focus(); + } + _yuitest_coverline("build/frame/frame.js", 725); +return this; + }, + /** + * @method hide + * @description Hide the iframe instance + * @return {Frame} + * @chainable + */ + hide: function() { + _yuitest_coverfunc("build/frame/frame.js", "hide", 733); +_yuitest_coverline("build/frame/frame.js", 734); +this._iframe.setStyles({ + position: 'absolute', + left: '-999999px' + }); + _yuitest_coverline("build/frame/frame.js", 738); +return this; + } + }, { + /** + * @static + * @property THROTTLE_TIME + * @description The throttle time for key events in IE + * @type Number + * @default 100 + */ + THROTTLE_TIME: 100, + /** + * @static + * @property DOM_EVENTS + * @description The DomEvents that the frame automatically attaches and bubbles + * @type Object + */ + DOM_EVENTS: { + dblclick: 1, + click: 1, + paste: 1, + mouseup: 1, + mousedown: 1, + keyup: 1, + keydown: 1, + keypress: 1, + activate: 1, + deactivate: 1, + beforedeactivate: 1, + focusin: 1, + focusout: 1 + }, + + /** + * @static + * @property DEFAULT_CSS + * @description The default css used when creating the document. + * @type String + */ + DEFAULT_CSS: 'body { background-color: #fff; font: 13px/1.22 arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small; } a, a:visited, a:hover { color: blue !important; text-decoration: underline !important; cursor: text !important; } img { cursor: pointer !important; border: none; }', + /** + * The template string used to create the iframe, deprecated to use DOM instead of innerHTML + * @static + * @property HTML + * @type String + * @deprecated + */ + //HTML: '', + /** + * Attributes to auto add to the dynamic iframe under the hood + * @static + * @property IFRAME_ATTRS + * @type Object + */ + IFRAME_ATTRS: { + border: '0', + frameBorder: '0', + marginWidth: '0', + marginHeight: '0', + leftMargin: '0', + topMargin: '0', + allowTransparency: 'true', + width: "100%", + height: "99%" + }, + /** + * @static + * @property PAGE_HTML + * @description The template used to create the page when created dynamically. + * @type String + */ + PAGE_HTML: '{TITLE}{META}{LINKED_CSS}{EXTRA_CSS}{CONTENT}', + + /** + * @static + * @method getDocType + * @description Parses document.doctype and generates a DocType to match the parent page, if supported. + * For IE8, it grabs document.all[0].nodeValue and uses that. For IE < 8, it falls back to Frame.DOC_TYPE. + * @return {String} The normalized DocType to apply to the iframe + */ + getDocType: function() { + _yuitest_coverfunc("build/frame/frame.js", "getDocType", 818); +_yuitest_coverline("build/frame/frame.js", 819); +var dt = Y.config.doc.doctype, + str = Frame.DOC_TYPE; + + _yuitest_coverline("build/frame/frame.js", 822); +if (dt) { + _yuitest_coverline("build/frame/frame.js", 823); +str = ''; + } else { + _yuitest_coverline("build/frame/frame.js", 825); +if (Y.config.doc.all) { + _yuitest_coverline("build/frame/frame.js", 826); +dt = Y.config.doc.all[0]; + _yuitest_coverline("build/frame/frame.js", 827); +if (dt.nodeType) { + _yuitest_coverline("build/frame/frame.js", 828); +if (dt.nodeType === 8) { + _yuitest_coverline("build/frame/frame.js", 829); +if (dt.nodeValue) { + _yuitest_coverline("build/frame/frame.js", 830); +if (dt.nodeValue.toLowerCase().indexOf('doctype') !== -1) { + _yuitest_coverline("build/frame/frame.js", 831); +str = ''; + } + } + } + } + } + } + _yuitest_coverline("build/frame/frame.js", 838); +return str; + }, + /** + * @static + * @property DOC_TYPE + * @description The DOCTYPE to prepend to the new document when created. Should match the one on the page being served. + * @type String + */ + DOC_TYPE: '', + /** + * @static + * @property META + * @description The meta-tag for Content-Type to add to the dynamic document + * @type String + */ + META: '', + //META: '', + /** + * @static + * @property NAME + * @description The name of the class (frame) + * @type String + */ + NAME: 'frame', + ATTRS: { + /** + * @attribute title + * @description The title to give the blank page. + * @type String + */ + title: { + value: 'Blank Page' + }, + /** + * @attribute dir + * @description The default text direction for this new frame. Default: ltr + * @type String + */ + dir: { + value: 'ltr' + }, + /** + * @attribute lang + * @description The default language. Default: en-US + * @type String + */ + lang: { + value: 'en-US' + }, + /** + * @attribute src + * @description The src of the iframe/window. Defaults to javascript:; + * @type String + */ + src: { + //Hackish, IE needs the false in the Javascript URL + value: 'javascript' + ((Y.UA.ie) ? ':false' : ':') + ';' + }, + /** + * @attribute designMode + * @description Should designMode be turned on after creation. + * @writeonce + * @type Boolean + */ + designMode: { + writeOnce: true, + value: false + }, + /** + * @attribute content + * @description The string to inject into the body of the new frame/window. + * @type String + */ + content: { + value: '
    ', + setter: '_setHTML', + getter: '_getHTML' + }, + /** + * @attribute basehref + * @description The base href to use in the iframe. + * @type String + */ + basehref: { + value: false, + getter: '_resolveBaseHref' + }, + /** + * @attribute use + * @description Array of modules to include in the scoped YUI instance at render time. Default: ['none', 'selector-css2'] + * @writeonce + * @type Array + */ + use: { + writeOnce: true, + value: ['node', 'node-style', 'selector-css3'] + }, + /** + * @attribute container + * @description The container to append the iFrame to on render. + * @type String/HTMLElement/Node + */ + container: { + value: 'body', + setter: function(n) { + _yuitest_coverfunc("build/frame/frame.js", "setter", 942); +_yuitest_coverline("build/frame/frame.js", 943); +return Y.one(n); + } + }, + /** + * @attribute node + * @description The Node instance of the iframe. + * @type Node + */ + node: { + readOnly: true, + value: null, + getter: function() { + _yuitest_coverfunc("build/frame/frame.js", "getter", 954); +_yuitest_coverline("build/frame/frame.js", 955); +return this._iframe; + } + }, + /** + * @attribute id + * @description Set the id of the new Node. (optional) + * @type String + * @writeonce + */ + id: { + writeOnce: true, + getter: function(id) { + _yuitest_coverfunc("build/frame/frame.js", "getter", 966); +_yuitest_coverline("build/frame/frame.js", 967); +if (!id) { + _yuitest_coverline("build/frame/frame.js", 968); +id = 'iframe-' + Y.guid(); + } + _yuitest_coverline("build/frame/frame.js", 970); +return id; + } + }, + /** + * @attribute linkedcss + * @description An array of url's to external linked style sheets + * @type String + */ + linkedcss: { + value: '', + getter: '_getLinkedCSS', + setter: '_setLinkedCSS' + }, + /** + * @attribute extracss + * @description A string of CSS to add to the Head of the Editor + * @type String + */ + extracss: { + value: '', + setter: '_setExtraCSS' + }, + /** + * @attribute host + * @description A reference to the Editor instance + * @type Object + */ + host: { + value: false + }, + /** + * @attribute defaultblock + * @description The default tag to use for block level items, defaults to: p + * @type String + */ + defaultblock: { + value: 'p' + } + } + }); + + + _yuitest_coverline("build/frame/frame.js", 1012); +Y.Frame = Frame; + + + +}, '3.7.3', {"requires": ["base", "node", "selector-css3", "yui-throttle"]}); diff --git a/lib/yuilib/3.7.2/build/frame/frame-debug.js b/lib/yuilib/3.7.3/build/frame/frame-debug.js similarity index 94% rename from lib/yuilib/3.7.2/build/frame/frame-debug.js rename to lib/yuilib/3.7.3/build/frame/frame-debug.js index 01008034493..95460daafca 100644 --- a/lib/yuilib/3.7.2/build/frame/frame-debug.js +++ b/lib/yuilib/3.7.3/build/frame/frame-debug.js @@ -1,12 +1,12 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ */ YUI.add('frame', function (Y, NAME) { - + /*jshint maxlen: 500 */ /** * Creates a wrapper around an iframe. It loads the content either from a local * file or from script and creates a local YUI instance bound to that new window and document. @@ -20,8 +20,8 @@ YUI.add('frame', function (Y, NAME) { var Frame = function() { Frame.superclass.constructor.apply(this, arguments); - }, LAST_CHILD = ':last-child', BODY = 'body'; - + }; + Y.extend(Frame, Y.Base, { /** @@ -59,17 +59,17 @@ YUI.add('frame', function (Y, NAME) { * @return {Object} Hash table containing references to the new Document & Window */ _create: function(cb) { - var win, doc, res, node, html = '', + var res, html = '', timer, + //if the src attr is different than the default, don't create the document + create = (this.get('src') === Frame.ATTRS.src.value), extra_css = ((this.get('extracss')) ? '' : ''); - this._iframe = Y.Node.create(Frame.HTML); + this._iframe = Y.one(Y.config.doc.createElement('iframe')); + this._iframe.setAttrs(Frame.IFRAME_ATTRS); + this._iframe.setStyle('visibility', 'hidden'); this._iframe.set('src', this.get('src')); this.get('container').append(this._iframe); - - //if the src attr is different than the default, don't create the document - var create = (this.get('src') === Frame.ATTRS.src.value); - this._iframe.set('height', '99%'); if (create) { @@ -85,9 +85,9 @@ YUI.add('frame', function (Y, NAME) { DEFAULT_CSS: Frame.DEFAULT_CSS, EXTRA_CSS: extra_css }); - if (Y.config.doc.compatMode != 'BackCompat') { + if (Y.config.doc.compatMode !== 'BackCompat') { Y.log('Adding Doctype to frame: ' + Frame.getDocType(), 'info', 'frame'); - + //html = Frame.DOC_TYPE + "\n" + html; html = Frame.getDocType() + "\n" + html; } else { @@ -108,7 +108,7 @@ YUI.add('frame', function (Y, NAME) { if (!res.doc.documentElement) { Y.log('document.documentElement was not found, running timer', 'warn', 'frame'); - var timer = Y.later(1, this, function() { + timer = Y.later(1, this, function() { if (res.doc && res.doc.documentElement) { Y.log('document.documentElement found inside timer', 'info', 'frame'); cb(res); @@ -151,7 +151,7 @@ YUI.add('frame', function (Y, NAME) { */ _onDomEvent: function(e) { var xy, node; - + if (!Y.Node.getDOMNode(this._iframe)) { //The iframe is null for some reason, bail on sending events. return; @@ -204,7 +204,7 @@ YUI.add('frame', function (Y, NAME) { if (e._event.clipboardData) { data = e._event.clipboardData.getData('Text'); } - + if (win.clipboardData) { data = win.clipboardData.getData('Text'); if (data === '') { // Could be empty, or failed @@ -214,12 +214,12 @@ YUI.add('frame', function (Y, NAME) { } } } - + e.frameTarget = e.target; e.frameCurrentTarget = e.currentTarget; e.frameEvent = e; - + if (data) { e.clipboardData = { data: data, @@ -263,7 +263,7 @@ YUI.add('frame', function (Y, NAME) { }, this); inst.Node.DOM_EVENTS.paste = 1; - + inst.on('paste', Y.bind(this._DOMPaste, this), inst.one('body')); //Adding focus/blur to the window object @@ -276,13 +276,10 @@ YUI.add('frame', function (Y, NAME) { visibility: 'inherit' }); inst.one('body').setStyle('display', 'block'); - if (Y.UA.ie) { - //this._fixIECursors(); - } }, /** * It appears that having a BR tag anywhere in the source "below" a table with a percentage width (in IE 7 & 8) - * if there is any TEXTINPUT's outside the iframe, the cursor will rapidly flickr and the CPU would occasionally + * if there is any TEXTINPUT's outside the iframe, the cursor will rapidly flickr and the CPU would occasionally * spike. This method finds all
    's below the sourceIndex of the first table. Does some checks to see if they * can be modified and replaces then with a so the layout will remain in tact, but the flickering will * no longer happen. @@ -300,7 +297,7 @@ YUI.add('frame', function (Y, NAME) { brs.each(function(n) { var p = n.get('parentNode'), c = p.get('children'), b = p.all('>br'); - + if (p.test('div')) { if (c.size() > 2) { n.replace(inst.Node.create('')); @@ -316,7 +313,7 @@ YUI.add('frame', function (Y, NAME) { } } } - + }); } }, @@ -331,7 +328,7 @@ YUI.add('frame', function (Y, NAME) { this._ready = true; var inst = this.getInstance(), args = Y.clone(this.get('use')); - + this.fire('contentready'); Y.log('On available for body of iframe', 'info', 'frame'); @@ -365,7 +362,7 @@ YUI.add('frame', function (Y, NAME) { _ieHeightCounter: null, /** * Internal method to set the height of the body to the height of the document in IE. - * With contenteditable being set, the document becomes unresponsive to clicks, this + * With contenteditable being set, the document becomes unresponsive to clicks, this * method expands the body to be the height of the document so that doesn't happen. * @private * @method _ieSetBodyHeight @@ -375,7 +372,7 @@ YUI.add('frame', function (Y, NAME) { this._ieHeightCounter = 0; } this._ieHeightCounter++; - var run = false; + var run = false, inst, h, bh; if (!e) { run = true; } @@ -392,9 +389,9 @@ YUI.add('frame', function (Y, NAME) { } if (run) { try { - var inst = this.getInstance(); - var h = this._iframe.get('offsetHeight'); - var bh = inst.config.doc.body.scrollHeight; + inst = this.getInstance(); + h = this._iframe.get('offsetHeight'); + bh = inst.config.doc.body.scrollHeight; if (h > bh) { h = (h - 15) + 'px'; inst.config.doc.body.style.height = h; @@ -454,7 +451,7 @@ YUI.add('frame', function (Y, NAME) { inst.one('body').set('innerHTML', html); } else { //This needs to be wrapped in a contentready callback for the !_ready state - this.on('contentready', Y.bind(function(html, e) { + this.on('contentready', Y.bind(function(html) { var inst = this.getInstance(); inst.one('body').set('innerHTML', html); }, this, html)); @@ -503,7 +500,7 @@ YUI.add('frame', function (Y, NAME) { if (this._ready) { var inst = this.getInstance(), node = inst.one('#extra_css'); - + node.remove(); inst.one('head').append(''); } @@ -519,7 +516,7 @@ YUI.add('frame', function (Y, NAME) { _instanceLoaded: function(inst) { this._instance = inst; this._onContentReady(); - + var doc = this._instance.config.doc; if (this.get('designMode')) { @@ -653,17 +650,18 @@ YUI.add('frame', function (Y, NAME) { */ _handleFocus: function() { var inst = this.getInstance(), - sel = new inst.EditorSelection(); + sel = new inst.EditorSelection(), + n, c, b, par; if (sel.anchorNode) { Y.log('_handleFocus being called..', 'info', 'frame'); - var n = sel.anchorNode, c; - + n = sel.anchorNode; + if (n.test('p') && n.get('innerHTML') === '') { n = n.get('parentNode'); } c = n.get('childNodes'); - + if (c.size()) { if (c.item(0).test('br')) { sel.selectNode(n, true, false); @@ -682,9 +680,9 @@ YUI.add('frame', function (Y, NAME) { sel.selectNode(n, true, false); } } else { - var b = inst.one('br.yui-cursor'); + b = inst.one('br.yui-cursor'); if (b) { - var par = b.get('parentNode'); + par = b.get('parentNode'); if (par) { sel.selectNode(par, true, false); } @@ -696,9 +694,9 @@ YUI.add('frame', function (Y, NAME) { /** * @method focus * @description Set the focus to the iframe - * @param {Function} fn Callback function to execute after focus happens + * @param {Function} fn Callback function to execute after focus happens * @return {Frame} - * @chainable + * @chainable */ focus: function(fn) { if (Y.UA.ie && Y.UA.ie < 9) { @@ -744,7 +742,7 @@ YUI.add('frame', function (Y, NAME) { * @method show * @description Show the iframe instance * @return {Frame} - * @chainable + * @chainable */ show: function() { this._iframe.setStyles({ @@ -758,14 +756,14 @@ YUI.add('frame', function (Y, NAME) { } } catch (e) { } this.focus(); - } + } return this; }, /** * @method hide * @description Hide the iframe instance * @return {Frame} - * @chainable + * @chainable */ hide: function() { this._iframe.setStyles({ @@ -811,16 +809,32 @@ YUI.add('frame', function (Y, NAME) { * @description The default css used when creating the document. * @type String */ - //DEFAULT_CSS: 'html { height: 95%; } body { padding: 7px; background-color: #fff; font: 13px/1.22 arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small; } a, a:visited, a:hover { color: blue !important; text-decoration: underline !important; cursor: text !important; } img { cursor: pointer !important; border: none; }', DEFAULT_CSS: 'body { background-color: #fff; font: 13px/1.22 arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small; } a, a:visited, a:hover { color: blue !important; text-decoration: underline !important; cursor: text !important; } img { cursor: pointer !important; border: none; }', /** + * The template string used to create the iframe, deprecated to use DOM instead of innerHTML * @static * @property HTML - * @description The template string used to create the iframe * @type String + * @deprecated */ //HTML: '', - HTML: '', + /** + * Attributes to auto add to the dynamic iframe under the hood + * @static + * @property IFRAME_ATTRS + * @type Object + */ + IFRAME_ATTRS: { + border: '0', + frameBorder: '0', + marginWidth: '0', + marginHeight: '0', + leftMargin: '0', + topMargin: '0', + allowTransparency: 'true', + width: "100%", + height: "99%" + }, /** * @static * @property PAGE_HTML @@ -1012,7 +1026,7 @@ YUI.add('frame', function (Y, NAME) { }, /** * @attribute host - * @description A reference to the Editor instance + * @description A reference to the Editor instance * @type Object */ host: { @@ -1022,7 +1036,7 @@ YUI.add('frame', function (Y, NAME) { * @attribute defaultblock * @description The default tag to use for block level items, defaults to: p * @type String - */ + */ defaultblock: { value: 'p' } @@ -1034,4 +1048,4 @@ YUI.add('frame', function (Y, NAME) { -}, '3.7.2', {"requires": ["base", "node", "selector-css3", "yui-throttle"]}); +}, '3.7.3', {"requires": ["base", "node", "selector-css3", "yui-throttle"]}); diff --git a/lib/yuilib/3.7.3/build/frame/frame-min.js b/lib/yuilib/3.7.3/build/frame/frame-min.js new file mode 100644 index 00000000000..a8b2b73a5ce --- /dev/null +++ b/lib/yuilib/3.7.3/build/frame/frame-min.js @@ -0,0 +1,7 @@ +/* +YUI 3.7.3 (build 5687) +Copyright 2012 Yahoo! Inc. All rights reserved. +Licensed under the BSD License. +http://yuilibrary.com/license/ +*/ +YUI.add("frame",function(e,t){var n=function(){n.superclass.constructor.apply(this,arguments)};e.extend(n,e.Base,{_ready:null,_rendered:null,_iframe:null,_instance:null,_create:function(t){var r,i="",s,o=this.get("src")===n.ATTRS.src.value,u=this.get("extracss")?'":"";this._iframe=e.one(e.config.doc.createElement("iframe")),this._iframe.setAttrs(n.IFRAME_ATTRS),this._iframe.setStyle("visibility","hidden"),this._iframe.set("src",this.get("src")),this.get("container").append(this._iframe),this._iframe.set("height","99%"),o&&(i=e.Lang.sub(n.PAGE_HTML,{DIR:this.get("dir"),LANG:this.get("lang"),TITLE:this.get("title"),META:n.META,LINKED_CSS:this.get("linkedcss"),CONTENT:this.get("content"),BASE_HREF:this.get("basehref"),DEFAULT_CSS:n.DEFAULT_CSS,EXTRA_CSS:u}),e.config.doc.compatMode!=="BackCompat"&&(i=n.getDocType()+"\n"+i)),r=this._resolveWinDoc(),i&&(r.doc.open(),r.doc.write(i),r.doc.close()),r.doc.documentElement?t(r):s=e.later(1,this,function(){r.doc&&r.doc.documentElement&&(t(r),s.cancel())},null,!0)},_resolveWinDoc:function(t){var n=t?t:{};return n.win=e.Node.getDOMNode(this._iframe.get("contentWindow")),n.doc=e.Node.getDOMNode(this._iframe.get("contentWindow.document")),n.doc||(n.doc=e.config.doc),n.win||(n.win=e.config.win),n},_onDomEvent:function(t){var n,r;if(!e.Node.getDOMNode(this._iframe))return;t.frameX=t.frameY=0,(t.pageX>0||t.pageY>0)&&t.type.substring(0,3)!=="key"&&(r=this._instance.one("win"),n=this._iframe.getXY(),t.frameX=n[0]+t.pageX-r.get("scrollLeft"),t.frameY=n[1]+t.pageY-r.get("scrollTop")),t.frameTarget=t.target,t.frameCurrentTarget=t.currentTarget,t.frameEvent=t,this.fire("dom:"+t.type,t)},initializer:function(){this.publish("ready",{emitFacade:!0,defaultFn:this._defReadyFn})},destructor:function(){var e=this.getInstance();e.one("doc").detachAll(),e=null,this._iframe.remove()},_DOMPaste:function(e){var t=this.getInstance(),n="",r=t.config.win;e._event.originalTarget&&(n=e._event.originalTarget),e._event.clipboardData&&(n=e._event.clipboardData.getData("Text")),r.clipboardData&&(n=r.clipboardData.getData("Text"),n===""&&(r.clipboardData.setData("Text",n)||(n=null))),e.frameTarget=e.target,e.frameCurrentTarget=e.currentTarget,e.frameEvent=e,n?e.clipboardData={data:n,getData:function(){return n}}:e.clipboardData=null,this.fire("dom:paste",e)},_defReadyFn:function(){var t=this.getInstance();e.each(n.DOM_EVENTS,function(r,i){var s=e.bind(this._onDomEvent,this),o=e.UA.ie&&n.THROTTLE_TIME>0?e.throttle(s,n.THROTTLE_TIME):s;t.Node.DOM_EVENTS[i]||(t.Node.DOM_EVENTS[i]=1),r===1&&i!=="focus"&&i!=="blur"&&i!=="paste"&&(i.substring(0,3)==="key"?t.on(i,o,t.config.doc):t.on(i,s,t.config.doc))},this),t.Node.DOM_EVENTS.paste=1,t.on("paste",e.bind(this._DOMPaste,this),t.one("body")),t.on("focus",e.bind(this._onDomEvent,this),t.config.win),t.on("blur",e.bind(this._onDomEvent,this),t.config.win),t.__use=t.use,t.use=e.bind(this.use,this),this._iframe.setStyles({visibility:"inherit"}),t.one("body").setStyle("display","block")},_fixIECursors:function(){var e=this.getInstance(),t=e.all("table"),n=e.all("br"),r;t.size()&&n.size()&&(r=t.item(0).get("sourceIndex"),n.each(function(t){var n=t.get("parentNode"),i=n.get("children"),s=n.all(">br");n.test("div")&&(i.size()>2?t.replace(e.Node.create("")):t.get("sourceIndex")>r?s.size()&&t.replace(e.Node.create("")):s.size()>1&&t.replace(e.Node.create("")))}))},_onContentReady:function(t){if(!this._ready){this._ready=!0;var n=this.getInstance(),r=e.clone(this.get("use"));this.fire("contentready"),t&&(n.config.doc=e.Node.getDOMNode(t.target)),r.push(e.bind(function(){n.EditorSelection&&(n.EditorSelection.DEFAULT_BLOCK_TAG=this.get("defaultblock")),this.get("designMode")&&(e.UA.ie?(n.config.doc.body.contentEditable="true",this._ieSetBodyHeight(),n.on("keyup",e.bind(this._ieSetBodyHeight,this),n.config.doc)):n.config.doc.designMode="on"),this.fire("ready")},this)),n.use.apply(n,r),n.one("doc").get("documentElement").addClass("yui-js-enabled")}},_ieHeightCounter:null,_ieSetBodyHeight:function(t){this._ieHeightCounter||(this._ieHeightCounter=0),this._ieHeightCounter++;var n=!1,r,i,s;t||(n=!0);if(t){switch(t.keyCode){case 8:case 13:n=!0}if(t.ctrlKey||t.shiftKey)n=!0}if(n)try{r=this.getInstance(),i=this._iframe.get("offsetHeight"),s=r.config.doc.body.scrollHeight,i>s?(i=i-15+"px",r.config.doc.body.style.height=i):r.config.doc.body.style.height="auto"}catch(t){this._ieHeightCounter<100&&e.later(200,this,this._ieSetBodyHeight)}},_resolveBaseHref:function(t){if(!t||t==="")t=e.config.doc.location.href,t.indexOf("?")!==-1&&(t=t.substring(0,t.indexOf("?"))),t=t.substring(0,t.lastIndexOf("/"))+"/";return t},_getHTML:function(e){if(this._ready){var t=this.getInstance();e=t.one("body").get("innerHTML")}return e},_setHTML:function(t){if(this._ready){var n=this.getInstance();n.one("body").set("innerHTML",t)}else this.on("contentready",e.bind(function(e){var t=this.getInstance();t.one("body").set("innerHTML",e)},this,t));return t},_getLinkedCSS:function(t){e.Lang.isArray(t)||(t=[t]);var n="";return this._ready?n=t:e.each(t,function(e){e!==""&&(n+='')}),n},_setLinkedCSS:function(e){if(this._ready){var t=this.getInstance();t.Get.css(e)}return e},_setExtraCSS:function(e){if(this._ready){var t=this.getInstance(),n=t.one("#extra_css");n.remove(),t.one("head").append('")}return e},_instanceLoaded:function(t){this._instance=t,this._onContentReady();var n=this._instance.config.doc;if(this.get("designMode")&&!e.UA.ie)try{n.execCommand("styleWithCSS",!1,!1),n.execCommand("insertbronreturn",!1,!1)}catch(r){}},use:function(){var t=this.getInstance(),n=e.Array(arguments),r=!1;e.Lang.isFunction(n[n.length-1])&&(r=n.pop()),r&&n.push(function(){r.apply(t,arguments)}),t.__use.apply(t,n)},delegate:function(e,t,n,r){var i=this.getInstance();return i?(r||(r=n,n="body"),i.delegate(e,t,n,r)):!1},getInstance:function(){return this._instance},render:function(t){return this._rendered?this:(this._rendered=!0,t&&this.set("container",t),this._create(e.bind(function(t){var n,r,i=e.bind(function(e){this._instanceLoaded(e)},this),s=e.clone(this.get("use")),o={debug:!1,win:t.win,doc:t.doc},u=e.bind(function(){o=this._resolveWinDoc(o),n=YUI(o),n.host=this.get("host");try{n.use("node-base",i),r&&clearInterval(r)}catch(e){r=setInterval(function(){u()},350)}},this);s.push(u),e.use.apply(e,s)},this)),this)},_handleFocus:function(){var e=this.getInstance(),t=new e.EditorSelection,n,r,i,s;t.anchorNode&&(n=t.anchorNode,n.test("p")&&n.get("innerHTML")===""&&(n=n.get("parentNode")),r=n.get("childNodes"),r.size()&&(r.item(0).test("br")?t.selectNode(n,!0,!1):r.item(0).test("p")?(n=r.item(0).one("br.yui-cursor"),n&&(n=n.get("parentNode")),n||(n=r.item(0).get("firstChild")),n||(n=r.item(0)),n&&t.selectNode(n,!0,!1)):(i=e.one("br.yui-cursor"),i&&(s=i.get("parentNode"),s&&t.selectNode(s,!0,!1)))))},focus:function(t){if(e.UA.ie&&e.UA.ie<9){try{e.one("win").focus(),this.getInstance()&&this.getInstance().one("win")&&this.getInstance().one("win").focus()}catch(n){}t===!0&&this._handleFocus(),e.Lang.isFunction(t)&&t()}else try{e.one("win").focus(),e.later(100,this,function(){this.getInstance()&&this.getInstance().one("win")&&this.getInstance().one("win").focus(),t===!0&&this._handleFocus(),e.Lang.isFunction(t)&&t()})}catch(r){}return this},show:function(){this._iframe.setStyles({position:"static",left:""});if(e.UA.gecko){try{this.getInstance()&&(this.getInstance().config.doc.designMode="on")}catch(t){}this.focus()}return this},hide:function(){return this._iframe.setStyles({position:"absolute",left:"-999999px"}),this}},{THROTTLE_TIME:100,DOM_EVENTS:{dblclick:1,click:1,paste:1,mouseup:1,mousedown:1,keyup:1,keydown:1,keypress:1,activate:1,deactivate:1,beforedeactivate:1,focusin:1,focusout:1},DEFAULT_CSS:"body { background-color: #fff; font: 13px/1.22 arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small; } a, a:visited, a:hover { color: blue !important; text-decoration: underline !important; cursor: text !important; } img { cursor: pointer !important; border: none; }",IFRAME_ATTRS:{border:"0",frameBorder:"0",marginWidth:"0",marginHeight:"0",leftMargin:"0",topMargin:"0",allowTransparency:"true",width:"100%",height:"99%"},PAGE_HTML:'{TITLE}{META}{LINKED_CSS}{EXTRA_CSS}{CONTENT}',getDocType:function(){var t=e.config.doc.doctype,r=n.DOC_TYPE;return t?r="":e.config.doc.all&&(t=e.config.doc.all[0],t.nodeType&&t.nodeType===8&&t.nodeValue&&t.nodeValue.toLowerCase().indexOf("doctype")!==-1&&(r="")),r},DOC_TYPE:'',META:'',NAME:"frame",ATTRS:{title:{value:"Blank Page"},dir:{value:"ltr"},lang:{value:"en-US"},src:{value:"javascript"+(e.UA.ie?":false":":")+";"},designMode:{writeOnce:!0,value:!1},content:{value:"
    ",setter:"_setHTML",getter:"_getHTML"},basehref:{value:!1,getter:"_resolveBaseHref"},use:{writeOnce:!0,value:["node","node-style","selector-css3"]},container:{value:"body",setter:function(t){return e.one(t)}},node:{readOnly:!0,value:null,getter:function(){return this._iframe}},id:{writeOnce:!0,getter:function(t){return t||(t="iframe-"+e.guid()),t}},linkedcss:{value:"",getter:"_getLinkedCSS",setter:"_setLinkedCSS"},extracss:{value:"",setter:"_setExtraCSS"},host:{value:!1},defaultblock:{value:"p"}}}),e.Frame=n},"3.7.3",{requires:["base","node","selector-css3","yui-throttle"]}); diff --git a/lib/yuilib/3.7.2/build/frame/frame.js b/lib/yuilib/3.7.3/build/frame/frame.js similarity index 93% rename from lib/yuilib/3.7.2/build/frame/frame.js rename to lib/yuilib/3.7.3/build/frame/frame.js index a76eb7af754..59548bcd370 100644 --- a/lib/yuilib/3.7.2/build/frame/frame.js +++ b/lib/yuilib/3.7.3/build/frame/frame.js @@ -1,12 +1,12 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ */ YUI.add('frame', function (Y, NAME) { - + /*jshint maxlen: 500 */ /** * Creates a wrapper around an iframe. It loads the content either from a local * file or from script and creates a local YUI instance bound to that new window and document. @@ -20,8 +20,8 @@ YUI.add('frame', function (Y, NAME) { var Frame = function() { Frame.superclass.constructor.apply(this, arguments); - }, LAST_CHILD = ':last-child', BODY = 'body'; - + }; + Y.extend(Frame, Y.Base, { /** @@ -59,17 +59,17 @@ YUI.add('frame', function (Y, NAME) { * @return {Object} Hash table containing references to the new Document & Window */ _create: function(cb) { - var win, doc, res, node, html = '', + var res, html = '', timer, + //if the src attr is different than the default, don't create the document + create = (this.get('src') === Frame.ATTRS.src.value), extra_css = ((this.get('extracss')) ? '' : ''); - this._iframe = Y.Node.create(Frame.HTML); + this._iframe = Y.one(Y.config.doc.createElement('iframe')); + this._iframe.setAttrs(Frame.IFRAME_ATTRS); + this._iframe.setStyle('visibility', 'hidden'); this._iframe.set('src', this.get('src')); this.get('container').append(this._iframe); - - //if the src attr is different than the default, don't create the document - var create = (this.get('src') === Frame.ATTRS.src.value); - this._iframe.set('height', '99%'); if (create) { @@ -84,8 +84,8 @@ YUI.add('frame', function (Y, NAME) { DEFAULT_CSS: Frame.DEFAULT_CSS, EXTRA_CSS: extra_css }); - if (Y.config.doc.compatMode != 'BackCompat') { - + if (Y.config.doc.compatMode !== 'BackCompat') { + //html = Frame.DOC_TYPE + "\n" + html; html = Frame.getDocType() + "\n" + html; } else { @@ -102,7 +102,7 @@ YUI.add('frame', function (Y, NAME) { } if (!res.doc.documentElement) { - var timer = Y.later(1, this, function() { + timer = Y.later(1, this, function() { if (res.doc && res.doc.documentElement) { cb(res); timer.cancel(); @@ -143,7 +143,7 @@ YUI.add('frame', function (Y, NAME) { */ _onDomEvent: function(e) { var xy, node; - + if (!Y.Node.getDOMNode(this._iframe)) { //The iframe is null for some reason, bail on sending events. return; @@ -195,7 +195,7 @@ YUI.add('frame', function (Y, NAME) { if (e._event.clipboardData) { data = e._event.clipboardData.getData('Text'); } - + if (win.clipboardData) { data = win.clipboardData.getData('Text'); if (data === '') { // Could be empty, or failed @@ -205,12 +205,12 @@ YUI.add('frame', function (Y, NAME) { } } } - + e.frameTarget = e.target; e.frameCurrentTarget = e.currentTarget; e.frameEvent = e; - + if (data) { e.clipboardData = { data: data, @@ -252,7 +252,7 @@ YUI.add('frame', function (Y, NAME) { }, this); inst.Node.DOM_EVENTS.paste = 1; - + inst.on('paste', Y.bind(this._DOMPaste, this), inst.one('body')); //Adding focus/blur to the window object @@ -265,13 +265,10 @@ YUI.add('frame', function (Y, NAME) { visibility: 'inherit' }); inst.one('body').setStyle('display', 'block'); - if (Y.UA.ie) { - //this._fixIECursors(); - } }, /** * It appears that having a BR tag anywhere in the source "below" a table with a percentage width (in IE 7 & 8) - * if there is any TEXTINPUT's outside the iframe, the cursor will rapidly flickr and the CPU would occasionally + * if there is any TEXTINPUT's outside the iframe, the cursor will rapidly flickr and the CPU would occasionally * spike. This method finds all
    's below the sourceIndex of the first table. Does some checks to see if they * can be modified and replaces then with a so the layout will remain in tact, but the flickering will * no longer happen. @@ -289,7 +286,7 @@ YUI.add('frame', function (Y, NAME) { brs.each(function(n) { var p = n.get('parentNode'), c = p.get('children'), b = p.all('>br'); - + if (p.test('div')) { if (c.size() > 2) { n.replace(inst.Node.create('')); @@ -305,7 +302,7 @@ YUI.add('frame', function (Y, NAME) { } } } - + }); } }, @@ -320,7 +317,7 @@ YUI.add('frame', function (Y, NAME) { this._ready = true; var inst = this.getInstance(), args = Y.clone(this.get('use')); - + this.fire('contentready'); if (e) { @@ -351,7 +348,7 @@ YUI.add('frame', function (Y, NAME) { _ieHeightCounter: null, /** * Internal method to set the height of the body to the height of the document in IE. - * With contenteditable being set, the document becomes unresponsive to clicks, this + * With contenteditable being set, the document becomes unresponsive to clicks, this * method expands the body to be the height of the document so that doesn't happen. * @private * @method _ieSetBodyHeight @@ -361,7 +358,7 @@ YUI.add('frame', function (Y, NAME) { this._ieHeightCounter = 0; } this._ieHeightCounter++; - var run = false; + var run = false, inst, h, bh; if (!e) { run = true; } @@ -378,9 +375,9 @@ YUI.add('frame', function (Y, NAME) { } if (run) { try { - var inst = this.getInstance(); - var h = this._iframe.get('offsetHeight'); - var bh = inst.config.doc.body.scrollHeight; + inst = this.getInstance(); + h = this._iframe.get('offsetHeight'); + bh = inst.config.doc.body.scrollHeight; if (h > bh) { h = (h - 15) + 'px'; inst.config.doc.body.style.height = h; @@ -439,7 +436,7 @@ YUI.add('frame', function (Y, NAME) { inst.one('body').set('innerHTML', html); } else { //This needs to be wrapped in a contentready callback for the !_ready state - this.on('contentready', Y.bind(function(html, e) { + this.on('contentready', Y.bind(function(html) { var inst = this.getInstance(); inst.one('body').set('innerHTML', html); }, this, html)); @@ -488,7 +485,7 @@ YUI.add('frame', function (Y, NAME) { if (this._ready) { var inst = this.getInstance(), node = inst.one('#extra_css'); - + node.remove(); inst.one('head').append(''); } @@ -504,7 +501,7 @@ YUI.add('frame', function (Y, NAME) { _instanceLoaded: function(inst) { this._instance = inst; this._onContentReady(); - + var doc = this._instance.config.doc; if (this.get('designMode')) { @@ -627,16 +624,17 @@ YUI.add('frame', function (Y, NAME) { */ _handleFocus: function() { var inst = this.getInstance(), - sel = new inst.EditorSelection(); + sel = new inst.EditorSelection(), + n, c, b, par; if (sel.anchorNode) { - var n = sel.anchorNode, c; - + n = sel.anchorNode; + if (n.test('p') && n.get('innerHTML') === '') { n = n.get('parentNode'); } c = n.get('childNodes'); - + if (c.size()) { if (c.item(0).test('br')) { sel.selectNode(n, true, false); @@ -655,9 +653,9 @@ YUI.add('frame', function (Y, NAME) { sel.selectNode(n, true, false); } } else { - var b = inst.one('br.yui-cursor'); + b = inst.one('br.yui-cursor'); if (b) { - var par = b.get('parentNode'); + par = b.get('parentNode'); if (par) { sel.selectNode(par, true, false); } @@ -669,9 +667,9 @@ YUI.add('frame', function (Y, NAME) { /** * @method focus * @description Set the focus to the iframe - * @param {Function} fn Callback function to execute after focus happens + * @param {Function} fn Callback function to execute after focus happens * @return {Frame} - * @chainable + * @chainable */ focus: function(fn) { if (Y.UA.ie && Y.UA.ie < 9) { @@ -715,7 +713,7 @@ YUI.add('frame', function (Y, NAME) { * @method show * @description Show the iframe instance * @return {Frame} - * @chainable + * @chainable */ show: function() { this._iframe.setStyles({ @@ -729,14 +727,14 @@ YUI.add('frame', function (Y, NAME) { } } catch (e) { } this.focus(); - } + } return this; }, /** * @method hide * @description Hide the iframe instance * @return {Frame} - * @chainable + * @chainable */ hide: function() { this._iframe.setStyles({ @@ -782,16 +780,32 @@ YUI.add('frame', function (Y, NAME) { * @description The default css used when creating the document. * @type String */ - //DEFAULT_CSS: 'html { height: 95%; } body { padding: 7px; background-color: #fff; font: 13px/1.22 arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small; } a, a:visited, a:hover { color: blue !important; text-decoration: underline !important; cursor: text !important; } img { cursor: pointer !important; border: none; }', DEFAULT_CSS: 'body { background-color: #fff; font: 13px/1.22 arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small; } a, a:visited, a:hover { color: blue !important; text-decoration: underline !important; cursor: text !important; } img { cursor: pointer !important; border: none; }', /** + * The template string used to create the iframe, deprecated to use DOM instead of innerHTML * @static * @property HTML - * @description The template string used to create the iframe * @type String + * @deprecated */ //HTML: '', - HTML: '', + /** + * Attributes to auto add to the dynamic iframe under the hood + * @static + * @property IFRAME_ATTRS + * @type Object + */ + IFRAME_ATTRS: { + border: '0', + frameBorder: '0', + marginWidth: '0', + marginHeight: '0', + leftMargin: '0', + topMargin: '0', + allowTransparency: 'true', + width: "100%", + height: "99%" + }, /** * @static * @property PAGE_HTML @@ -983,7 +997,7 @@ YUI.add('frame', function (Y, NAME) { }, /** * @attribute host - * @description A reference to the Editor instance + * @description A reference to the Editor instance * @type Object */ host: { @@ -993,7 +1007,7 @@ YUI.add('frame', function (Y, NAME) { * @attribute defaultblock * @description The default tag to use for block level items, defaults to: p * @type String - */ + */ defaultblock: { value: 'p' } @@ -1005,4 +1019,4 @@ YUI.add('frame', function (Y, NAME) { -}, '3.7.2', {"requires": ["base", "node", "selector-css3", "yui-throttle"]}); +}, '3.7.3', {"requires": ["base", "node", "selector-css3", "yui-throttle"]}); diff --git a/lib/yuilib/3.7.2/build/gesture-simulate/gesture-simulate-coverage.js b/lib/yuilib/3.7.3/build/gesture-simulate/gesture-simulate-coverage.js similarity index 99% rename from lib/yuilib/3.7.2/build/gesture-simulate/gesture-simulate-coverage.js rename to lib/yuilib/3.7.3/build/gesture-simulate/gesture-simulate-coverage.js index d81b6ba60ea..786c671985e 100644 --- a/lib/yuilib/3.7.2/build/gesture-simulate/gesture-simulate-coverage.js +++ b/lib/yuilib/3.7.3/build/gesture-simulate/gesture-simulate-coverage.js @@ -1,5 +1,5 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ @@ -32,7 +32,7 @@ _yuitest_coverage["build/gesture-simulate/gesture-simulate.js"] = { path: "build/gesture-simulate/gesture-simulate.js", code: [] }; -_yuitest_coverage["build/gesture-simulate/gesture-simulate.js"].code=["YUI.add('gesture-simulate', function (Y, NAME) {","","/**"," * Simulate high-level user gestures by generating a set of native DOM events."," *"," * @module gesture-simulate"," * @requires event-simulate, async-queue, node-screen"," */","","var NAME = \"gesture-simulate\",",""," // phantomjs check may be temporary, until we determine if it really support touch all the way through, like it claims to (http://code.google.com/p/phantomjs/issues/detail?id=375)"," SUPPORTS_TOUCH = ((Y.config.win && (\"ontouchstart\" in Y.config.win)) && !(Y.UA.phantomjs) && !(Y.UA.chrome && Y.UA.chrome < 6)),",""," gestureNames = {"," tap: 1,"," doubletap: 1,"," press: 1,"," move: 1,"," flick: 1,"," pinch: 1,"," rotate: 1"," },",""," touchEvents = {"," touchstart: 1,"," touchmove: 1,"," touchend: 1,"," touchcancel: 1"," },",""," document = Y.config.doc,"," emptyTouchList,",""," EVENT_INTERVAL = 20, // 20ms"," START_PAGEX, // will be adjusted to the node element center"," START_PAGEY, // will be adjusted to the node element center",""," // defaults that user can override."," DEFAULTS = {"," // tap gestures"," HOLD_TAP: 10, // 10ms"," DELAY_TAP: 10, // 10ms",""," // press gesture"," HOLD_PRESS: 3000, // 3sec"," MIN_HOLD_PRESS: 1000, // 1sec"," MAX_HOLD_PRESS: 60000, // 1min",""," // move gesture"," DISTANCE_MOVE: 200, // 200 pixels"," DURATION_MOVE: 1000, // 1sec"," MAX_DURATION_MOVE: 5000,// 5sec",""," // flick gesture"," MIN_VELOCITY_FLICK: 1.3,"," DISTANCE_FLICK: 200, // 200 pixels"," DURATION_FLICK: 1000, // 1sec"," MAX_DURATION_FLICK: 5000,// 5sec",""," // pinch/rotation"," DURATION_PINCH: 1000 // 1sec"," },",""," TOUCH_START = 'touchstart',"," TOUCH_MOVE = 'touchmove',"," TOUCH_END = 'touchend',",""," GESTURE_START = 'gesturestart',"," GESTURE_CHANGE = 'gesturechange',"," GESTURE_END = 'gestureend',",""," MOUSE_UP = 'mouseup',"," MOUSE_MOVE = 'mousemove',"," MOUSE_DOWN = 'mousedown',"," MOUSE_CLICK = 'click',"," MOUSE_DBLCLICK = 'dblclick',",""," X_AXIS = 'x',"," Y_AXIS = 'y';","","/**"," *"," */","function Simulations(node) {"," if(!node) {"," Y.error(NAME+': invalid target node');"," }"," this.node = node;"," this.target = Y.Node.getDOMNode(node);",""," var startXY = this.node.getXY(),"," dims = this._getDims();",""," START_PAGEX = startXY[0] + (dims[0])/2;"," START_PAGEY = startXY[1] + (dims[1])/2;","}","","Simulations.prototype = {",""," /**"," * Helper method to convert a degree to a radian."," * "," * @method _toRadian"," * @private"," * @param {Number} deg A degree to be converted to a radian."," * @return {Number} The degree in radian. "," */"," _toRadian: function(deg) {"," return deg * (Math.PI/180);"," },",""," /**"," * Helper method to get height/width while accounting for "," * rotation/scale transforms where possible by using the "," * bounding client rectangle height/width instead of the "," * offsetWidth/Height which region uses."," * @method _getDims"," * @private"," * @return {Array} Array with [height, width]"," */"," _getDims : function() {"," var region,"," width,"," height;",""," // Ideally, this should be in DOM somewhere."," if (this.target.getBoundingClientRect) {"," region = this.target.getBoundingClientRect();",""," if (\"height\" in region) {"," height = region.height;"," } else {"," // IE7,8 has getBCR, but no height."," height = Math.abs(region.bottom - region.top);"," }",""," if (\"width\" in region) {"," width = region.width;"," } else {"," // IE7,8 has getBCR, but no width."," width = Math.abs(region.right - region.left);"," }"," } else {"," region = this.node.get(\"region\");"," width = region.width;"," height = region.height;"," }",""," return [width, height];"," },",""," /**"," * Helper method to convert a point relative to the node element into "," * the point in the page coordination."," * "," * @method _calculateDefaultPoint"," * @private"," * @param {Array} point A point relative to the node element."," * @return {Array} The same point in the page coordination. "," */"," _calculateDefaultPoint: function(point) {",""," var height;",""," if(!Y.Lang.isArray(point) || point.length === 0) {"," point = [START_PAGEX, START_PAGEY];"," } else {"," if(point.length == 1) {"," height = this._getDims[1];"," point[1] = height/2;"," }"," // convert to page(viewport) coordination"," point[0] = this.node.getX() + point[0];"," point[1] = this.node.getY() + point[1];"," }",""," return point;"," },",""," /**"," * The \"rotate\" and \"pinch\" methods are essencially same with the exact same "," * arguments. Only difference is the required parameters. The rotate method "," * requires \"rotation\" parameter while the pinch method requires \"startRadius\" "," * and \"endRadius\" parameters."," *"," * @method rotate"," * @param {Function} cb The callback to execute when the gesture simulation "," * is completed."," * @param {Array} center A center point where the pinch gesture of two fingers"," * should happen. It is relative to the top left corner of the target "," * node element."," * @param {Number} startRadius A radius of start circle where 2 fingers are "," * on when the gesture starts. This is optional. The default is a fourth of "," * either target node width or height whichever is smaller."," * @param {Number} endRadius A radius of end circle where 2 fingers will be on when"," * the pinch or spread gestures are completed. This is optional. "," * The default is a fourth of either target node width or height whichever is less."," * @param {Number} duration A duration of the gesture in millisecond."," * @param {Number} start A start angle(0 degree at 12 o'clock) where the "," * gesture should start. Default is 0. "," * @param {Number} rotation A rotation in degree. It is required."," */"," rotate: function(cb, center, startRadius, endRadius, duration, start, rotation) {"," var radius,"," r1 = startRadius, // optional"," r2 = endRadius; // optional",""," if(!Y.Lang.isNumber(r1) || !Y.Lang.isNumber(r2) || r1<0 || r2<0) {"," radius = (this.target.offsetWidth < this.target.offsetHeight)? "," this.target.offsetWidth/4 : this.target.offsetHeight/4;"," r1 = radius;"," r2 = radius;"," }",""," // required"," if(!Y.Lang.isNumber(rotation)) {"," Y.error(NAME+'Invalid rotation detected.');"," }",""," this.pinch(cb, center, r1, r2, duration, start, rotation);"," },",""," /**"," * The \"rotate\" and \"pinch\" methods are essencially same with the exact same "," * arguments. Only difference is the required parameters. The rotate method "," * requires \"rotation\" parameter while the pinch method requires \"startRadius\" "," * and \"endRadius\" parameters."," *"," * The \"pinch\" gesture can simulate various 2 finger gestures such as pinch, "," * spread and/or rotation. The \"startRadius\" and \"endRadius\" are required."," * If endRadius is larger than startRadius, it becomes a spread gesture "," * otherwise a pinch gesture. "," *"," * @method pinch"," * @param {Function} cb The callback to execute when the gesture simulation "," * is completed."," * @param {Array} center A center point where the pinch gesture of two fingers"," * should happen. It is relative to the top left corner of the target "," * node element."," * @param {Number} startRadius A radius of start circle where 2 fingers are "," * on when the gesture starts. This paramenter is required."," * @param {Number} endRadius A radius of end circle where 2 fingers will be on when"," * the pinch or spread gestures are completed. This parameter is required."," * @param {Number} duration A duration of the gesture in millisecond."," * @param {Number} start A start angle(0 degree at 12 o'clock) where the "," * gesture should start. Default is 0. "," * @param {Number} rotation If rotation is desired during the pinch or "," * spread gestures, this parameter can be used. Default is 0 degree. "," */"," pinch: function(cb, center, startRadius, endRadius, duration, start, rotation) {"," var eventQueue,"," i,"," interval = EVENT_INTERVAL,"," touches,"," id = 0,"," r1 = startRadius, // required"," r2 = endRadius, // required"," radiusPerStep,"," centerX, centerY,"," startScale, endScale, scalePerStep,"," startRot, endRot, rotPerStep,"," path1 = {start: [], end: []}, // paths for 1st and 2nd fingers. "," path2 = {start: [], end: []},"," steps,"," touchMove;",""," center = this._calculateDefaultPoint(center);",""," if(!Y.Lang.isNumber(r1) || !Y.Lang.isNumber(r2) || r1<0 || r2<0) {"," Y.error(NAME+'Invalid startRadius and endRadius detected.');"," }",""," if(!Y.Lang.isNumber(duration) || duration <= 0) {"," duration = DEFAULTS.DURATION_PINCH;"," }",""," if(!Y.Lang.isNumber(start)) {"," start = 0.0;"," } else {"," start = start%360;"," while(start < 0) {"," start += 360;"," }"," }",""," if(!Y.Lang.isNumber(rotation)) {"," rotation = 0.0;"," }",""," Y.AsyncQueue.defaults.timeout = interval;"," eventQueue = new Y.AsyncQueue();",""," // range determination"," centerX = center[0];"," centerY = center[1];",""," startRot = start;"," endRot = start + rotation;",""," // 1st finger path"," path1.start = ["," centerX + r1*Math.sin(this._toRadian(startRot)), "," centerY - r1*Math.cos(this._toRadian(startRot))"," ];"," path1.end = ["," centerX + r2*Math.sin(this._toRadian(endRot)), "," centerY - r2*Math.cos(this._toRadian(endRot))"," ];"," "," // 2nd finger path"," path2.start = ["," centerX - r1*Math.sin(this._toRadian(startRot)), "," centerY + r1*Math.cos(this._toRadian(startRot))"," ];"," path2.end = ["," centerX - r2*Math.sin(this._toRadian(endRot)), "," centerY + r2*Math.cos(this._toRadian(endRot))"," ];",""," startScale = 1.0;"," endScale = endRadius/startRadius;",""," // touch/gesture start"," eventQueue.add({"," fn: function() {"," var coord1, coord2, coord, touches;",""," // coordinate for each touch object."," coord1 = {"," pageX: path1.start[0], "," pageY: path1.start[1],"," clientX: path1.start[0], "," clientY: path1.start[1]"," };"," coord2 = {"," pageX: path2.start[0], "," pageY: path2.start[1],"," clientX: path2.start[0], "," clientY: path2.start[1]"," };"," touches = this._createTouchList([Y.merge({"," identifier: (id++) "," }, coord1), Y.merge({"," identifier: (id++)"," }, coord2)]);",""," // coordinate for top level event"," coord = {"," pageX: (path1.start[0] + path2.start[0])/2,"," pageY: (path1.start[0] + path2.start[1])/2,"," clientX: (path1.start[0] + path2.start[0])/2,"," clientY: (path1.start[0] + path2.start[1])/2"," };",""," this._simulateEvent(this.target, TOUCH_START, Y.merge({"," touches: touches,"," targetTouches: touches,"," changedTouches: touches,"," scale: startScale,"," rotation: startRot"," }, coord));",""," if(Y.UA.ios >= 2.0) {"," /* gesture starts when the 2nd finger touch starts."," * The implementation will fire 1 touch start event for both fingers,"," * simulating 2 fingers touched on the screen at the same time."," */"," this._simulateEvent(this.target, GESTURE_START, Y.merge({"," scale: startScale,"," rotation: startRot"," }, coord));"," }"," },"," timeout: 0,"," context: this"," });",""," // gesture change"," steps = Math.floor(duration/interval);"," radiusPerStep = (r2 - r1)/steps;"," scalePerStep = (endScale - startScale)/steps;"," rotPerStep = (endRot - startRot)/steps;"," "," touchMove = function(step) {"," var radius = r1 + (radiusPerStep)*step,"," px1 = centerX + radius*Math.sin(this._toRadian(startRot + rotPerStep*step)),"," py1 = centerY - radius*Math.cos(this._toRadian(startRot + rotPerStep*step)),"," px2 = centerX - radius*Math.sin(this._toRadian(startRot + rotPerStep*step)),"," py2 = centerY + radius*Math.cos(this._toRadian(startRot + rotPerStep*step)),"," px = (px1+px2)/2,"," py = (py1+py2)/2,"," coord1, coord2, coord, touches;",""," // coordinate for each touch object. "," coord1 = {"," pageX: px1,"," pageY: py1,"," clientX: px1,"," clientY: py1"," };"," coord2 = {"," pageX: px2,"," pageY: py2,"," clientX: px2,"," clientY: py2"," };"," touches = this._createTouchList([Y.merge({"," identifier: (id++) "," }, coord1), Y.merge({"," identifier: (id++)"," }, coord2)]);",""," // coordinate for top level event"," coord = {"," pageX: px,"," pageY: py,"," clientX: px,"," clientY: py"," };",""," this._simulateEvent(this.target, TOUCH_MOVE, Y.merge({"," touches: touches,"," targetTouches: touches,"," changedTouches: touches,"," scale: startScale + scalePerStep*step,"," rotation: startRot + rotPerStep*step"," }, coord));",""," if(Y.UA.ios >= 2.0) {"," this._simulateEvent(this.target, GESTURE_CHANGE, Y.merge({"," scale: startScale + scalePerStep*step,"," rotation: startRot + rotPerStep*step"," }, coord));"," }"," };",""," for (i=0; i < steps; i++) {"," eventQueue.add({"," fn: touchMove,"," args: [i],"," context: this"," });"," }",""," // gesture end"," eventQueue.add({"," fn: function() {"," var emptyTouchList = this._getEmptyTouchList(),"," coord1, coord2, coord, touches;",""," // coordinate for each touch object."," coord1 = {"," pageX: path1.end[0], "," pageY: path1.end[1],"," clientX: path1.end[0], "," clientY: path1.end[1]"," };"," coord2 = {"," pageX: path2.end[0], "," pageY: path2.end[1],"," clientX: path2.end[0], "," clientY: path2.end[1]"," };"," touches = this._createTouchList([Y.merge({"," identifier: (id++) "," }, coord1), Y.merge({"," identifier: (id++)"," }, coord2)]);",""," // coordinate for top level event"," coord = {"," pageX: (path1.end[0] + path2.end[0])/2,"," pageY: (path1.end[0] + path2.end[1])/2,"," clientX: (path1.end[0] + path2.end[0])/2,"," clientY: (path1.end[0] + path2.end[1])/2"," }; ",""," if(Y.UA.ios >= 2.0) {"," this._simulateEvent(this.target, GESTURE_END, Y.merge({"," scale: endScale,"," rotation: endRot"," }, coord));"," }",""," this._simulateEvent(this.target, TOUCH_END, Y.merge({"," touches: emptyTouchList,"," targetTouches: emptyTouchList,"," changedTouches: touches,"," scale: endScale,"," rotation: endRot"," }, coord));"," },"," context: this"," });",""," if(cb && Y.Lang.isFunction(cb)) {"," eventQueue.add({"," fn: cb,",""," // by default, the callback runs the node context where "," // simulateGesture method is called."," context: this.node",""," //TODO: Use args to pass error object as 1st param if there is an error."," //args: "," });"," }",""," eventQueue.run();"," },",""," /**"," * The \"tap\" gesture can be used for various single touch point gestures "," * such as single tap, N number of taps, long press. The default is a single "," * tap."," * "," * @method tap"," * @param {Function} cb The callback to execute when the gesture simulation "," * is completed."," * @param {Array} point A point(relative to the top left corner of the "," * target node element) where the tap gesture should start. The default "," * is the center of the taget node."," * @param {Number} times The number of taps. Default is 1."," * @param {Number} hold The hold time in milliseconds between \"touchstart\" and"," * \"touchend\" event generation. Default is 10ms."," * @param {Number} delay The time gap in millisecond between taps if this"," * gesture has more than 1 tap. Default is 10ms."," */"," tap: function(cb, point, times, hold, delay) { "," var eventQueue = new Y.AsyncQueue(),"," emptyTouchList = this._getEmptyTouchList(),"," touches,"," coord,"," i,"," touchStart,"," touchEnd;",""," point = this._calculateDefaultPoint(point);",""," if(!Y.Lang.isNumber(times) || times < 1) {"," times = 1;"," }",""," if(!Y.Lang.isNumber(hold)) {"," hold = DEFAULTS.HOLD_TAP;"," }",""," if(!Y.Lang.isNumber(delay)) {"," delay = DEFAULTS.DELAY_TAP;"," }",""," coord = {"," pageX: point[0], "," pageY: point[1],"," clientX: point[0], "," clientY: point[1]"," };",""," touches = this._createTouchList([Y.merge({identifier: 0}, coord)]);",""," touchStart = function() {"," this._simulateEvent(this.target, TOUCH_START, Y.merge({"," touches: touches,"," targetTouches: touches,"," changedTouches: touches"," }, coord));"," };"," "," touchEnd = function() {"," this._simulateEvent(this.target, TOUCH_END, Y.merge({"," touches: emptyTouchList,"," targetTouches: emptyTouchList,"," changedTouches: touches"," }, coord));"," };"," "," for (i=0; i < times; i++) {"," eventQueue.add({"," fn: touchStart,"," context: this,"," timeout: (i === 0)? 0 : delay"," });",""," eventQueue.add({"," fn: touchEnd,"," context: this,"," timeout: hold"," });"," }",""," if(times > 1 && !SUPPORTS_TOUCH) {"," eventQueue.add({"," fn: function() {"," this._simulateEvent(this.target, MOUSE_DBLCLICK, coord);"," },"," context: this"," });"," }",""," if(cb && Y.Lang.isFunction(cb)) {"," eventQueue.add({"," fn: cb,",""," // by default, the callback runs the node context where "," // simulateGesture method is called."," context: this.node",""," //TODO: Use args to pass error object as 1st param if there is an error."," //args: "," });"," }",""," eventQueue.run();"," },",""," /**"," * The \"flick\" gesture is a specialized \"move\" that has some velocity "," * and the movement always runs either x or y axis. The velocity is calculated"," * with \"distance\" and \"duration\" arguments. If the calculated velocity is "," * below than the minimum velocity, the given duration will be ignored and "," * new duration will be created to make a valid flick gesture."," * "," * @method flick"," * @param {Function} cb The callback to execute when the gesture simulation "," * is completed."," * @param {Array} point A point(relative to the top left corner of the "," * target node element) where the flick gesture should start. The default "," * is the center of the taget node."," * @param {String} axis Either \"x\" or \"y\"."," * @param {Number} distance A distance in pixels to flick."," * @param {Number} duration A duration of the gesture in millisecond."," * "," */"," flick: function(cb, point, axis, distance, duration) {"," var path;",""," point = this._calculateDefaultPoint(point);",""," if(!Y.Lang.isString(axis)) {"," axis = X_AXIS;"," } else {"," axis = axis.toLowerCase();"," if(axis !== X_AXIS && axis !== Y_AXIS) {"," Y.error(NAME+'(flick): Only x or y axis allowed');"," }"," }",""," if(!Y.Lang.isNumber(distance)) { "," distance = DEFAULTS.DISTANCE_FLICK; "," }",""," if(!Y.Lang.isNumber(duration)){"," duration = DEFAULTS.DURATION_FLICK; // ms"," } else {"," if(duration > DEFAULTS.MAX_DURATION_FLICK) {"," duration = DEFAULTS.MAX_DURATION_FLICK;"," }"," }",""," /**"," * Check if too slow for a flick."," * Adjust duration if the calculated velocity is less than "," * the minimum velcocity to be claimed as a flick."," */"," if(Math.abs(distance)/duration < DEFAULTS.MIN_VELOCITY_FLICK) {"," duration = Math.abs(distance)/DEFAULTS.MIN_VELOCITY_FLICK;"," }",""," path = {"," start: Y.clone(point),"," end: ["," (axis === X_AXIS) ? point[0]+distance : point[0],"," (axis === Y_AXIS) ? point[1]+distance : point[1]"," ]"," };",""," this._move(cb, path, duration);"," },",""," /**"," * The \"move\" gesture simulate the movement of any direction between "," * the straight line of start and end point for the given duration."," * The path argument is an object with \"point\", \"xdist\" and \"ydist\" properties."," * The \"point\" property is an array with x and y coordinations(relative to the"," * top left corner of the target node element) while \"xdist\" and \"ydist\" "," * properties are used for the distance along the x and y axis. A negative "," * distance number can be used to drag either left or up direction. "," * "," * If no arguments are given, it will simulate the default move, which"," * is moving 200 pixels from the center of the element to the positive X-axis "," * direction for 1 sec."," * "," * @method move"," * @param {Function} cb The callback to execute when the gesture simulation "," * is completed."," * @param {Object} path An object with \"point\", \"xdist\" and \"ydist\"."," * @param {Number} duration A duration of the gesture in millisecond."," */"," move: function(cb, path, duration) {"," var convertedPath;",""," if(!Y.Lang.isObject(path)) {"," path = {"," point: this._calculateDefaultPoint([]),"," xdist: DEFAULTS.DISTANCE_MOVE,"," ydist: 0"," };"," } else {"," // convert to the page coordination"," if(!Y.Lang.isArray(path.point)) {"," path.point = this._calculateDefaultPoint([]);"," } else {"," path.point = this._calculateDefaultPoint(path.point);"," }",""," if(!Y.Lang.isNumber(path.xdist)) {"," path.xdist = DEFAULTS.DISTANCE_MOVE;"," }",""," if(!Y.Lang.isNumber(path.ydist)) {"," path.ydist = 0;"," }"," }",""," if(!Y.Lang.isNumber(duration)){"," duration = DEFAULTS.DURATION_MOVE; // ms"," } else {"," if(duration > DEFAULTS.MAX_DURATION_MOVE) {"," duration = DEFAULTS.MAX_DURATION_MOVE;"," }"," }",""," convertedPath = {"," start: Y.clone(path.point),"," end: [path.point[0]+path.xdist, path.point[1]+path.ydist]"," };",""," this._move(cb, convertedPath, duration);"," },",""," /**"," * A base method on top of \"move\" and \"flick\" methods. The method takes"," * the path with start/end properties and duration to generate a set of "," * touch events for the movement gesture. "," *"," * @method _move"," * @private"," * @param {Function} cb The callback to execute when the gesture simulation "," * is completed."," * @param {Object} path An object with \"start\" and \"end\" properties. Each "," * property should be an array with x and y coordination (e.g. start: [100, 50])"," * @param {Number} duration A duration of the gesture in millisecond. "," */"," _move: function(cb, path, duration) {"," var eventQueue,"," i,"," interval = EVENT_INTERVAL,"," steps, stepX, stepY,"," id = 0,"," touchMove;",""," if(!Y.Lang.isNumber(duration)){"," duration = DEFAULTS.DURATION_MOVE; // ms"," } else {"," if(duration > DEFAULTS.MAX_DURATION_MOVE) {"," duration = DEFAULTS.MAX_DURATION_MOVE;"," }"," }",""," if(!Y.Lang.isObject(path)) {"," path = {"," start: ["," START_PAGEX, "," START_PAGEY"," ], "," end: ["," START_PAGEX + DEFAULTS.DISTANCE_MOVE, "," START_PAGEY"," ]"," };"," } else {"," if(!Y.Lang.isArray(path.start)) {"," path.start = ["," START_PAGEX, "," START_PAGEY"," ];"," }"," if(!Y.Lang.isArray(path.end)) {"," path.end = ["," START_PAGEX + DEFAULTS.DISTANCE_MOVE, "," START_PAGEY"," ];"," }"," }",""," Y.AsyncQueue.defaults.timeout = interval;"," eventQueue = new Y.AsyncQueue();",""," // start"," eventQueue.add({"," fn: function() {"," var coord = {"," pageX: path.start[0], "," pageY: path.start[1],"," clientX: path.start[0], "," clientY: path.start[1]"," }, "," touches = this._createTouchList(["," Y.merge({identifier: (id++)}, coord)"," ]);",""," this._simulateEvent(this.target, TOUCH_START, Y.merge({"," touches: touches,"," targetTouches: touches,"," changedTouches: touches"," }, coord));"," },"," timeout: 0,"," context: this"," });",""," // move"," steps = Math.floor(duration/interval);"," stepX = (path.end[0] - path.start[0])/steps;"," stepY = (path.end[1] - path.start[1])/steps;",""," touchMove = function(step) {"," var px = path.start[0]+(stepX * step),"," py = path.start[1]+(stepY * step), "," coord = {"," pageX: px, "," pageY: py,"," clientX: px,"," clientY: py"," }, "," touches = this._createTouchList(["," Y.merge({identifier: (id++)}, coord)"," ]);",""," this._simulateEvent(this.target, TOUCH_MOVE, Y.merge({"," touches: touches,"," targetTouches: touches,"," changedTouches: touches"," }, coord));"," };",""," for (i=0; i < steps; i++) {"," eventQueue.add({"," fn: touchMove,"," args: [i],"," context: this"," });"," }",""," // last move"," eventQueue.add({"," fn: function() {"," var coord = {"," pageX: path.end[0], "," pageY: path.end[1],"," clientX: path.end[0], "," clientY: path.end[1]"," },"," touches = this._createTouchList(["," Y.merge({identifier: id}, coord)"," ]);",""," this._simulateEvent(this.target, TOUCH_MOVE, Y.merge({"," touches: touches,"," targetTouches: touches,"," changedTouches: touches"," }, coord));"," },"," timeout: 0,"," context: this"," });",""," // end"," eventQueue.add({"," fn: function() {"," var coord = {"," pageX: path.end[0], "," pageY: path.end[1],"," clientX: path.end[0], "," clientY: path.end[1]"," },"," emptyTouchList = this._getEmptyTouchList(),"," touches = this._createTouchList(["," Y.merge({identifier: id}, coord)"," ]);",""," this._simulateEvent(this.target, TOUCH_END, Y.merge({"," touches: emptyTouchList,"," targetTouches: emptyTouchList,"," changedTouches: touches"," }, coord));"," },"," context: this"," });"," "," if(cb && Y.Lang.isFunction(cb)) {"," eventQueue.add({"," fn: cb,",""," // by default, the callback runs the node context where "," // simulateGesture method is called."," context: this.node",""," //TODO: Use args to pass error object as 1st param if there is an error."," //args: "," });"," }"," "," eventQueue.run();"," },",""," /**"," * Helper method to return a singleton instance of empty touch list."," * "," * @method _getEmptyTouchList"," * @private"," * @return {TouchList | Array} An empty touch list object."," */"," _getEmptyTouchList: function() {"," if(!emptyTouchList) {"," emptyTouchList = this._createTouchList([]);"," }",""," return emptyTouchList;"," },",""," /**"," * Helper method to convert an array with touch points to TouchList object as"," * defined in http://www.w3.org/TR/touch-events/"," * "," * @method _createTouchList"," * @private"," * @param {Array} touchPoints "," * @return {TouchList | Array} If underlaying platform support creating touch list"," * a TouchList object will be returned otherwise a fake Array object "," * will be returned."," */"," _createTouchList: function(touchPoints) {"," /*"," * Android 4.0.3 emulator:"," * Native touch api supported starting in version 4.0 (Ice Cream Sandwich)."," * However the support seems limited. In Android 4.0.3 emulator, I got"," * \"TouchList is not defined\"."," */"," var touches = [],"," touchList,"," self = this;",""," if(!!touchPoints && Y.Lang.isArray(touchPoints)) {"," if(Y.UA.android && Y.UA.android >= 4.0 || Y.UA.ios && Y.UA.ios >= 2.0) {"," Y.each(touchPoints, function(point) {"," if(!point.identifier) {point.identifier = 0;}"," if(!point.pageX) {point.pageX = 0;}"," if(!point.pageY) {point.pageY = 0;}"," if(!point.screenX) {point.screenX = 0;}"," if(!point.screenY) {point.screenY = 0;}",""," touches.push(document.createTouch(Y.config.win, "," self.target,"," point.identifier, "," point.pageX, point.pageY, "," point.screenX, point.screenY));"," });",""," touchList = document.createTouchList.apply(document, touches);"," } else if(Y.UA.ios && Y.UA.ios < 2.0) { "," Y.error(NAME+': No touch event simulation framework present.');"," } else {"," // this will inclide android(Y.UA.android && Y.UA.android < 4.0) "," // and desktops among all others. ",""," /**"," * Touch APIs are broken in androids older than 4.0. We will use "," * simulated touch apis for these versions. "," */"," touchList = [];"," Y.each(touchPoints, function(point) {"," if(!point.identifier) {point.identifier = 0;}"," if(!point.clientX) {point.clientX = 0;}"," if(!point.clientY) {point.clientY = 0;}"," if(!point.pageX) {point.pageX = 0;}"," if(!point.pageY) {point.pageY = 0;}"," if(!point.screenX) {point.screenX = 0;}"," if(!point.screenY) {point.screenY = 0;}",""," touchList.push({"," target: self.target,"," identifier: point.identifier,"," clientX: point.clientX,"," clientY: point.clientY,"," pageX: point.pageX,"," pageY: point.pageY,"," screenX: point.screenX,"," screenY: point.screenY"," });"," });",""," touchList.item = function(i) {"," return touchList[i];"," };"," }"," } else {"," Y.error(NAME+': Invalid touchPoints passed');"," }",""," return touchList;"," },",""," /**"," * @method _simulateEvent"," * @private"," * @param {HTMLElement} target The DOM element that's the target of the event."," * @param {String} type The type of event or name of the supported gesture to simulate "," * (i.e., \"click\", \"doubletap\", \"flick\")."," * @param {Object} options (Optional) Extra options to copy onto the event object. "," * For gestures, options are used to refine the gesture behavior."," * @return {void}"," */"," _simulateEvent: function(target, type, options) {"," var touches;",""," if (touchEvents[type]) {"," if(SUPPORTS_TOUCH) {"," Y.Event.simulate(target, type, options);"," } else {"," // simulate using mouse events if touch is not applicable on this platform."," // but only single touch event can be simulated."," if(this._isSingleTouch(options.touches, options.targetTouches, options.changedTouches)) {"," type = {"," touchstart: MOUSE_DOWN,"," touchmove: MOUSE_MOVE,"," touchend: MOUSE_UP"," }[type];",""," options.button = 0;"," options.relatedTarget = null; // since we are not using mouseover event.",""," // touchend has none in options.touches."," touches = (type === MOUSE_UP)? options.changedTouches : options.touches;",""," options = Y.mix(options, {"," screenX: touches.item(0).screenX,"," screenY: touches.item(0).screenY,"," clientX: touches.item(0).clientX,"," clientY: touches.item(0).clientY"," }, true);",""," Y.Event.simulate(target, type, options);",""," if(type == MOUSE_UP) {"," Y.Event.simulate(target, MOUSE_CLICK, options);"," }"," } else {"," Y.error(\"_simulateEvent(): Event '\" + type + \"' has multi touch objects that can't be simulated in your platform.\");"," }"," }"," } else {"," // pass thru for all non touch events"," Y.Event.simulate(target, type, options);"," }"," },",""," /**"," * Helper method to check the single touch."," * @method _isSingleTouch"," * @private"," * @param {TouchList} touches"," * @param {TouchList} targetTouches"," * @param {TouchList} changedTouches"," */"," _isSingleTouch: function(touches, targetTouches, changedTouches) {"," return (touches && (touches.length <= 1)) && "," (targetTouches && (targetTouches.length <= 1)) &&"," (changedTouches && (changedTouches.length <= 1));"," }","};","","/**"," * A gesture simulation class."," */","Y.GestureSimulation = Simulations;","","/**"," * Various simulation default behavior properties. If user override "," * Y.GestureSimulation.defaults, overriden values will be used and this "," * should be done before the gesture simulation. "," */","Y.GestureSimulation.defaults = DEFAULTS;","","/**"," * The high level gesture names that YUI knows how to simulate."," */","Y.GestureSimulation.GESTURES = gestureNames;","","/**"," * Simulates the higher user level gesture of the given name on a target. "," * This method generates a set of low level touch events(Apple specific gesture "," * events as well for the iOS platforms) asynchronously. Note that gesture "," * simulation is relying on `Y.Event.simulate()` method to generate "," * the touch events under the hood. The `Y.Event.simulate()` method"," * itself is a synchronous method."," * "," * Users are suggested to use `Node.simulateGesture()` method which "," * basically calls this method internally. Supported gestures are `tap`, "," * `doubletap`, `press`, `move`, `flick`, `pinch` and `rotate`."," * "," * The `pinch` gesture is used to simulate the pinching and spreading of two"," * fingers. During a pinch simulation, rotation is also possible. Essentially"," * `pinch` and `rotate` simulations share the same base implementation to allow"," * both pinching and rotation at the same time. The only difference is `pinch`"," * requires `start` and `end` option properties while `rotate` requires `rotation` "," * option property."," * "," * The `pinch` and `rotate` gestures can be described as placing 2 fingers along a"," * circle. Pinching and spreading can be described by start and end circles while "," * rotation occurs on a single circle. If the radius of the start circle is greater "," * than the end circle, the gesture becomes a pinch, otherwise it is a spread spread."," * "," * @example"," *"," * var node = Y.one(\"#target\");"," * "," * // double tap example"," * node.simulateGesture(\"doubletap\", function() {"," * // my callback function"," * });"," * "," * // flick example from the center of the node, move 50 pixels down for 50ms)"," * node.simulateGesture(\"flick\", {"," * axis: y,"," * distance: -100"," * duration: 50"," * }, function() {"," * // my callback function"," * });"," * "," * // simulate rotating a node 75 degrees counter-clockwise "," * node.simulateGesture(\"rotate\", {"," * rotation: -75"," * });"," *"," * // simulate a pinch and a rotation at the same time. "," * // fingers start on a circle of radius 100 px, placed at top/bottom"," * // fingers end on a circle of radius 50px, placed at right/left "," * node.simulateGesture(\"pinch\", {"," * r1: 100,"," * r2: 50,"," * start: 0"," * rotation: 90"," * });"," * "," * @method simulateGesture"," * @param {HTMLElement|Node} node The YUI node or HTML element that's the target "," * of the event."," * @param {String} name The name of the supported gesture to simulate. The "," * supported gesture name is one of \"tap\", \"doubletap\", \"press\", \"move\", "," * \"flick\", \"pinch\" and \"rotate\". "," * @param {Object} [options] Extra options used to define the gesture behavior:"," * "," * Valid options properties for the `tap` gesture:"," * "," * @param {Array} [options.point] (Optional) Indicates the [x,y] coordinates "," * where the tap should be simulated. Default is the center of the node "," * element."," * @param {Number} [options.hold=10] (Optional) The hold time in milliseconds. "," * This is the time between `touchstart` and `touchend` event generation."," * @param {Number} [options.times=1] (Optional) Indicates the number of taps."," * @param {Number} [options.delay=10] (Optional) The number of milliseconds "," * before the next tap simulation happens. This is valid only when `times` "," * is more than 1. "," * "," * Valid options properties for the `doubletap` gesture:"," * "," * @param {Array} [options.point] (Optional) Indicates the [x,y] coordinates "," * where the doubletap should be simulated. Default is the center of the "," * node element."," * "," * Valid options properties for the `press` gesture:"," * "," * @param {Array} [options.point] (Optional) Indicates the [x,y] coordinates "," * where the press should be simulated. Default is the center of the node "," * element."," * @param {Number} [options.hold=3000] (Optional) The hold time in milliseconds. "," * This is the time between `touchstart` and `touchend` event generation. "," * Default is 3000ms (3 seconds)."," * "," * Valid options properties for the `move` gesture:"," * "," * @param {Object} [options.path] (Optional) Indicates the path of the finger "," * movement. It's an object with three optional properties: `point`, "," * `xdist` and `ydist`."," * @param {Array} [options.path.point] A starting point of the gesture."," * Default is the center of the node element."," * @param {Number} [options.path.xdist=200] A distance to move in pixels "," * along the X axis. A negative distance value indicates moving left."," * @param {Number} [options.path.ydist=0] A distance to move in pixels "," * along the Y axis. A negative distance value indicates moving up."," * @param {Number} [options.duration=1000] (Optional) The duration of the "," * gesture in milliseconds."," * "," * Valid options properties for the `flick` gesture:"," * "," * @param {Array} [options.point] (Optional) Indicates the [x, y] coordinates "," * where the flick should be simulated. Default is the center of the "," * node element."," * @param {String} [options.axis='x'] (Optional) Valid values are either "," * \"x\" or \"y\". Indicates axis to move along. The flick can move to one of "," * 4 directions(left, right, up and down)."," * @param {Number} [options.distance=200] (Optional) Distance to move in pixels"," * @param {Number} [options.duration=1000] (Optional) The duration of the "," * gesture in milliseconds. User given value could be automatically "," * adjusted by the framework if it is below the minimum velocity to be "," * a flick gesture."," * "," * Valid options properties for the `pinch` gesture:"," * "," * @param {Array} [options.center] (Optional) The center of the circle where "," * two fingers are placed. Default is the center of the node element."," * @param {Number} [options.r1] (Required) Pixel radius of the start circle "," * where 2 fingers will be on when the gesture starts. The circles are "," * centered at the center of the element."," * @param {Number} [options.r2] (Required) Pixel radius of the end circle "," * when this gesture ends."," * @param {Number} [options.duration=1000] (Optional) The duration of the "," * gesture in milliseconds."," * @param {Number} [options.start=0] (Optional) Starting degree of the first "," * finger. The value is relative to the path of the north. Default is 0 "," * (i.e., 12:00 on a clock)."," * @param {Number} [options.rotation=0] (Optional) Degrees to rotate from "," * the starting degree. A negative value means rotation to the "," * counter-clockwise direction."," * "," * Valid options properties for the `rotate` gesture:"," * "," * @param {Array} [options.center] (Optional) The center of the circle where "," * two fingers are placed. Default is the center of the node element."," * @param {Number} [options.r1] (Optional) Pixel radius of the start circle "," * where 2 fingers will be on when the gesture starts. The circles are "," * centered at the center of the element. Default is a fourth of the node "," * element width or height, whichever is smaller."," * @param {Number} [options.r2] (Optional) Pixel radius of the end circle "," * when this gesture ends. Default is a fourth of the node element width or "," * height, whichever is smaller."," * @param {Number} [options.duration=1000] (Optional) The duration of the "," * gesture in milliseconds."," * @param {Number} [options.start=0] (Optional) Starting degree of the first "," * finger. The value is relative to the path of the north. Default is 0 "," * (i.e., 12:00 on a clock)."," * @param {Number} [options.rotation] (Required) Degrees to rotate from "," * the starting degree. A negative value means rotation to the "," * counter-clockwise direction."," * "," * @param {Function} [cb] The callback to execute when the asynchronouse gesture "," * simulation is completed. "," * @param {Error} cb.err An error object if the simulation is failed. "," * @return {void}"," * @for Event"," * @static"," */","Y.Event.simulateGesture = function(node, name, options, cb) {",""," node = Y.one(node); ",""," var sim = new Y.GestureSimulation(node);"," name = name.toLowerCase();",""," if(!cb && Y.Lang.isFunction(options)) {"," cb = options;"," options = {};"," }",""," options = options || {};",""," if (gestureNames[name]) {"," switch(name) {"," // single-touch: point gestures "," case 'tap':"," sim.tap(cb, options.point, options.times, options.hold, options.delay);"," break;"," case 'doubletap':"," sim.tap(cb, options.point, 2);"," break;"," case 'press':"," if(!Y.Lang.isNumber(options.hold)) {"," options.hold = DEFAULTS.HOLD_PRESS;"," } else if(options.hold < DEFAULTS.MIN_HOLD_PRESS) {"," options.hold = DEFAULTS.MIN_HOLD_PRESS;"," } else if(options.hold > DEFAULTS.MAX_HOLD_PRESS) {"," options.hold = DEFAULTS.MAX_HOLD_PRESS;"," }"," sim.tap(cb, options.point, 1, options.hold);"," break;",""," // single-touch: move gestures "," case 'move':"," sim.move(cb, options.path, options.duration);"," break;"," case 'flick':"," sim.flick(cb, options.point, options.axis, options.distance, "," options.duration);"," break;",""," // multi-touch: pinch/rotation gestures"," case 'pinch':"," sim.pinch(cb, options.center, options.r1, options.r2, "," options.duration, options.start, options.rotation);"," break; "," case 'rotate':"," sim.rotate(cb, options.center, options.r1, options.r2, "," options.duration, options.start, options.rotation);"," break;"," }"," } else {"," Y.error(NAME+': Not a supported gesture simulation: '+name);"," }","};","","","}, '3.7.2', {\"requires\": [\"async-queue\", \"event-simulate\", \"node-screen\"]});"]; +_yuitest_coverage["build/gesture-simulate/gesture-simulate.js"].code=["YUI.add('gesture-simulate', function (Y, NAME) {","","/**"," * Simulate high-level user gestures by generating a set of native DOM events."," *"," * @module gesture-simulate"," * @requires event-simulate, async-queue, node-screen"," */","","var NAME = \"gesture-simulate\",",""," // phantomjs check may be temporary, until we determine if it really support touch all the way through, like it claims to (http://code.google.com/p/phantomjs/issues/detail?id=375)"," SUPPORTS_TOUCH = ((Y.config.win && (\"ontouchstart\" in Y.config.win)) && !(Y.UA.phantomjs) && !(Y.UA.chrome && Y.UA.chrome < 6)),",""," gestureNames = {"," tap: 1,"," doubletap: 1,"," press: 1,"," move: 1,"," flick: 1,"," pinch: 1,"," rotate: 1"," },",""," touchEvents = {"," touchstart: 1,"," touchmove: 1,"," touchend: 1,"," touchcancel: 1"," },",""," document = Y.config.doc,"," emptyTouchList,",""," EVENT_INTERVAL = 20, // 20ms"," START_PAGEX, // will be adjusted to the node element center"," START_PAGEY, // will be adjusted to the node element center",""," // defaults that user can override."," DEFAULTS = {"," // tap gestures"," HOLD_TAP: 10, // 10ms"," DELAY_TAP: 10, // 10ms",""," // press gesture"," HOLD_PRESS: 3000, // 3sec"," MIN_HOLD_PRESS: 1000, // 1sec"," MAX_HOLD_PRESS: 60000, // 1min",""," // move gesture"," DISTANCE_MOVE: 200, // 200 pixels"," DURATION_MOVE: 1000, // 1sec"," MAX_DURATION_MOVE: 5000,// 5sec",""," // flick gesture"," MIN_VELOCITY_FLICK: 1.3,"," DISTANCE_FLICK: 200, // 200 pixels"," DURATION_FLICK: 1000, // 1sec"," MAX_DURATION_FLICK: 5000,// 5sec",""," // pinch/rotation"," DURATION_PINCH: 1000 // 1sec"," },",""," TOUCH_START = 'touchstart',"," TOUCH_MOVE = 'touchmove',"," TOUCH_END = 'touchend',",""," GESTURE_START = 'gesturestart',"," GESTURE_CHANGE = 'gesturechange',"," GESTURE_END = 'gestureend',",""," MOUSE_UP = 'mouseup',"," MOUSE_MOVE = 'mousemove',"," MOUSE_DOWN = 'mousedown',"," MOUSE_CLICK = 'click',"," MOUSE_DBLCLICK = 'dblclick',",""," X_AXIS = 'x',"," Y_AXIS = 'y';","","/**"," *"," */","function Simulations(node) {"," if(!node) {"," Y.error(NAME+': invalid target node');"," }"," this.node = node;"," this.target = Y.Node.getDOMNode(node);",""," var startXY = this.node.getXY(),"," dims = this._getDims();",""," START_PAGEX = startXY[0] + (dims[0])/2;"," START_PAGEY = startXY[1] + (dims[1])/2;","}","","Simulations.prototype = {",""," /**"," * Helper method to convert a degree to a radian."," * "," * @method _toRadian"," * @private"," * @param {Number} deg A degree to be converted to a radian."," * @return {Number} The degree in radian. "," */"," _toRadian: function(deg) {"," return deg * (Math.PI/180);"," },",""," /**"," * Helper method to get height/width while accounting for "," * rotation/scale transforms where possible by using the "," * bounding client rectangle height/width instead of the "," * offsetWidth/Height which region uses."," * @method _getDims"," * @private"," * @return {Array} Array with [height, width]"," */"," _getDims : function() {"," var region,"," width,"," height;",""," // Ideally, this should be in DOM somewhere."," if (this.target.getBoundingClientRect) {"," region = this.target.getBoundingClientRect();",""," if (\"height\" in region) {"," height = region.height;"," } else {"," // IE7,8 has getBCR, but no height."," height = Math.abs(region.bottom - region.top);"," }",""," if (\"width\" in region) {"," width = region.width;"," } else {"," // IE7,8 has getBCR, but no width."," width = Math.abs(region.right - region.left);"," }"," } else {"," region = this.node.get(\"region\");"," width = region.width;"," height = region.height;"," }",""," return [width, height];"," },",""," /**"," * Helper method to convert a point relative to the node element into "," * the point in the page coordination."," * "," * @method _calculateDefaultPoint"," * @private"," * @param {Array} point A point relative to the node element."," * @return {Array} The same point in the page coordination. "," */"," _calculateDefaultPoint: function(point) {",""," var height;",""," if(!Y.Lang.isArray(point) || point.length === 0) {"," point = [START_PAGEX, START_PAGEY];"," } else {"," if(point.length == 1) {"," height = this._getDims[1];"," point[1] = height/2;"," }"," // convert to page(viewport) coordination"," point[0] = this.node.getX() + point[0];"," point[1] = this.node.getY() + point[1];"," }",""," return point;"," },",""," /**"," * The \"rotate\" and \"pinch\" methods are essencially same with the exact same "," * arguments. Only difference is the required parameters. The rotate method "," * requires \"rotation\" parameter while the pinch method requires \"startRadius\" "," * and \"endRadius\" parameters."," *"," * @method rotate"," * @param {Function} cb The callback to execute when the gesture simulation "," * is completed."," * @param {Array} center A center point where the pinch gesture of two fingers"," * should happen. It is relative to the top left corner of the target "," * node element."," * @param {Number} startRadius A radius of start circle where 2 fingers are "," * on when the gesture starts. This is optional. The default is a fourth of "," * either target node width or height whichever is smaller."," * @param {Number} endRadius A radius of end circle where 2 fingers will be on when"," * the pinch or spread gestures are completed. This is optional. "," * The default is a fourth of either target node width or height whichever is less."," * @param {Number} duration A duration of the gesture in millisecond."," * @param {Number} start A start angle(0 degree at 12 o'clock) where the "," * gesture should start. Default is 0. "," * @param {Number} rotation A rotation in degree. It is required."," */"," rotate: function(cb, center, startRadius, endRadius, duration, start, rotation) {"," var radius,"," r1 = startRadius, // optional"," r2 = endRadius; // optional",""," if(!Y.Lang.isNumber(r1) || !Y.Lang.isNumber(r2) || r1<0 || r2<0) {"," radius = (this.target.offsetWidth < this.target.offsetHeight)? "," this.target.offsetWidth/4 : this.target.offsetHeight/4;"," r1 = radius;"," r2 = radius;"," }",""," // required"," if(!Y.Lang.isNumber(rotation)) {"," Y.error(NAME+'Invalid rotation detected.');"," }",""," this.pinch(cb, center, r1, r2, duration, start, rotation);"," },",""," /**"," * The \"rotate\" and \"pinch\" methods are essencially same with the exact same "," * arguments. Only difference is the required parameters. The rotate method "," * requires \"rotation\" parameter while the pinch method requires \"startRadius\" "," * and \"endRadius\" parameters."," *"," * The \"pinch\" gesture can simulate various 2 finger gestures such as pinch, "," * spread and/or rotation. The \"startRadius\" and \"endRadius\" are required."," * If endRadius is larger than startRadius, it becomes a spread gesture "," * otherwise a pinch gesture. "," *"," * @method pinch"," * @param {Function} cb The callback to execute when the gesture simulation "," * is completed."," * @param {Array} center A center point where the pinch gesture of two fingers"," * should happen. It is relative to the top left corner of the target "," * node element."," * @param {Number} startRadius A radius of start circle where 2 fingers are "," * on when the gesture starts. This paramenter is required."," * @param {Number} endRadius A radius of end circle where 2 fingers will be on when"," * the pinch or spread gestures are completed. This parameter is required."," * @param {Number} duration A duration of the gesture in millisecond."," * @param {Number} start A start angle(0 degree at 12 o'clock) where the "," * gesture should start. Default is 0. "," * @param {Number} rotation If rotation is desired during the pinch or "," * spread gestures, this parameter can be used. Default is 0 degree. "," */"," pinch: function(cb, center, startRadius, endRadius, duration, start, rotation) {"," var eventQueue,"," i,"," interval = EVENT_INTERVAL,"," touches,"," id = 0,"," r1 = startRadius, // required"," r2 = endRadius, // required"," radiusPerStep,"," centerX, centerY,"," startScale, endScale, scalePerStep,"," startRot, endRot, rotPerStep,"," path1 = {start: [], end: []}, // paths for 1st and 2nd fingers. "," path2 = {start: [], end: []},"," steps,"," touchMove;",""," center = this._calculateDefaultPoint(center);",""," if(!Y.Lang.isNumber(r1) || !Y.Lang.isNumber(r2) || r1<0 || r2<0) {"," Y.error(NAME+'Invalid startRadius and endRadius detected.');"," }",""," if(!Y.Lang.isNumber(duration) || duration <= 0) {"," duration = DEFAULTS.DURATION_PINCH;"," }",""," if(!Y.Lang.isNumber(start)) {"," start = 0.0;"," } else {"," start = start%360;"," while(start < 0) {"," start += 360;"," }"," }",""," if(!Y.Lang.isNumber(rotation)) {"," rotation = 0.0;"," }",""," Y.AsyncQueue.defaults.timeout = interval;"," eventQueue = new Y.AsyncQueue();",""," // range determination"," centerX = center[0];"," centerY = center[1];",""," startRot = start;"," endRot = start + rotation;",""," // 1st finger path"," path1.start = ["," centerX + r1*Math.sin(this._toRadian(startRot)), "," centerY - r1*Math.cos(this._toRadian(startRot))"," ];"," path1.end = ["," centerX + r2*Math.sin(this._toRadian(endRot)), "," centerY - r2*Math.cos(this._toRadian(endRot))"," ];"," "," // 2nd finger path"," path2.start = ["," centerX - r1*Math.sin(this._toRadian(startRot)), "," centerY + r1*Math.cos(this._toRadian(startRot))"," ];"," path2.end = ["," centerX - r2*Math.sin(this._toRadian(endRot)), "," centerY + r2*Math.cos(this._toRadian(endRot))"," ];",""," startScale = 1.0;"," endScale = endRadius/startRadius;",""," // touch/gesture start"," eventQueue.add({"," fn: function() {"," var coord1, coord2, coord, touches;",""," // coordinate for each touch object."," coord1 = {"," pageX: path1.start[0], "," pageY: path1.start[1],"," clientX: path1.start[0], "," clientY: path1.start[1]"," };"," coord2 = {"," pageX: path2.start[0], "," pageY: path2.start[1],"," clientX: path2.start[0], "," clientY: path2.start[1]"," };"," touches = this._createTouchList([Y.merge({"," identifier: (id++) "," }, coord1), Y.merge({"," identifier: (id++)"," }, coord2)]);",""," // coordinate for top level event"," coord = {"," pageX: (path1.start[0] + path2.start[0])/2,"," pageY: (path1.start[0] + path2.start[1])/2,"," clientX: (path1.start[0] + path2.start[0])/2,"," clientY: (path1.start[0] + path2.start[1])/2"," };",""," this._simulateEvent(this.target, TOUCH_START, Y.merge({"," touches: touches,"," targetTouches: touches,"," changedTouches: touches,"," scale: startScale,"," rotation: startRot"," }, coord));",""," if(Y.UA.ios >= 2.0) {"," /* gesture starts when the 2nd finger touch starts."," * The implementation will fire 1 touch start event for both fingers,"," * simulating 2 fingers touched on the screen at the same time."," */"," this._simulateEvent(this.target, GESTURE_START, Y.merge({"," scale: startScale,"," rotation: startRot"," }, coord));"," }"," },"," timeout: 0,"," context: this"," });",""," // gesture change"," steps = Math.floor(duration/interval);"," radiusPerStep = (r2 - r1)/steps;"," scalePerStep = (endScale - startScale)/steps;"," rotPerStep = (endRot - startRot)/steps;"," "," touchMove = function(step) {"," var radius = r1 + (radiusPerStep)*step,"," px1 = centerX + radius*Math.sin(this._toRadian(startRot + rotPerStep*step)),"," py1 = centerY - radius*Math.cos(this._toRadian(startRot + rotPerStep*step)),"," px2 = centerX - radius*Math.sin(this._toRadian(startRot + rotPerStep*step)),"," py2 = centerY + radius*Math.cos(this._toRadian(startRot + rotPerStep*step)),"," px = (px1+px2)/2,"," py = (py1+py2)/2,"," coord1, coord2, coord, touches;",""," // coordinate for each touch object. "," coord1 = {"," pageX: px1,"," pageY: py1,"," clientX: px1,"," clientY: py1"," };"," coord2 = {"," pageX: px2,"," pageY: py2,"," clientX: px2,"," clientY: py2"," };"," touches = this._createTouchList([Y.merge({"," identifier: (id++) "," }, coord1), Y.merge({"," identifier: (id++)"," }, coord2)]);",""," // coordinate for top level event"," coord = {"," pageX: px,"," pageY: py,"," clientX: px,"," clientY: py"," };",""," this._simulateEvent(this.target, TOUCH_MOVE, Y.merge({"," touches: touches,"," targetTouches: touches,"," changedTouches: touches,"," scale: startScale + scalePerStep*step,"," rotation: startRot + rotPerStep*step"," }, coord));",""," if(Y.UA.ios >= 2.0) {"," this._simulateEvent(this.target, GESTURE_CHANGE, Y.merge({"," scale: startScale + scalePerStep*step,"," rotation: startRot + rotPerStep*step"," }, coord));"," }"," };",""," for (i=0; i < steps; i++) {"," eventQueue.add({"," fn: touchMove,"," args: [i],"," context: this"," });"," }",""," // gesture end"," eventQueue.add({"," fn: function() {"," var emptyTouchList = this._getEmptyTouchList(),"," coord1, coord2, coord, touches;",""," // coordinate for each touch object."," coord1 = {"," pageX: path1.end[0], "," pageY: path1.end[1],"," clientX: path1.end[0], "," clientY: path1.end[1]"," };"," coord2 = {"," pageX: path2.end[0], "," pageY: path2.end[1],"," clientX: path2.end[0], "," clientY: path2.end[1]"," };"," touches = this._createTouchList([Y.merge({"," identifier: (id++) "," }, coord1), Y.merge({"," identifier: (id++)"," }, coord2)]);",""," // coordinate for top level event"," coord = {"," pageX: (path1.end[0] + path2.end[0])/2,"," pageY: (path1.end[0] + path2.end[1])/2,"," clientX: (path1.end[0] + path2.end[0])/2,"," clientY: (path1.end[0] + path2.end[1])/2"," }; ",""," if(Y.UA.ios >= 2.0) {"," this._simulateEvent(this.target, GESTURE_END, Y.merge({"," scale: endScale,"," rotation: endRot"," }, coord));"," }",""," this._simulateEvent(this.target, TOUCH_END, Y.merge({"," touches: emptyTouchList,"," targetTouches: emptyTouchList,"," changedTouches: touches,"," scale: endScale,"," rotation: endRot"," }, coord));"," },"," context: this"," });",""," if(cb && Y.Lang.isFunction(cb)) {"," eventQueue.add({"," fn: cb,",""," // by default, the callback runs the node context where "," // simulateGesture method is called."," context: this.node",""," //TODO: Use args to pass error object as 1st param if there is an error."," //args: "," });"," }",""," eventQueue.run();"," },",""," /**"," * The \"tap\" gesture can be used for various single touch point gestures "," * such as single tap, N number of taps, long press. The default is a single "," * tap."," * "," * @method tap"," * @param {Function} cb The callback to execute when the gesture simulation "," * is completed."," * @param {Array} point A point(relative to the top left corner of the "," * target node element) where the tap gesture should start. The default "," * is the center of the taget node."," * @param {Number} times The number of taps. Default is 1."," * @param {Number} hold The hold time in milliseconds between \"touchstart\" and"," * \"touchend\" event generation. Default is 10ms."," * @param {Number} delay The time gap in millisecond between taps if this"," * gesture has more than 1 tap. Default is 10ms."," */"," tap: function(cb, point, times, hold, delay) { "," var eventQueue = new Y.AsyncQueue(),"," emptyTouchList = this._getEmptyTouchList(),"," touches,"," coord,"," i,"," touchStart,"," touchEnd;",""," point = this._calculateDefaultPoint(point);",""," if(!Y.Lang.isNumber(times) || times < 1) {"," times = 1;"," }",""," if(!Y.Lang.isNumber(hold)) {"," hold = DEFAULTS.HOLD_TAP;"," }",""," if(!Y.Lang.isNumber(delay)) {"," delay = DEFAULTS.DELAY_TAP;"," }",""," coord = {"," pageX: point[0], "," pageY: point[1],"," clientX: point[0], "," clientY: point[1]"," };",""," touches = this._createTouchList([Y.merge({identifier: 0}, coord)]);",""," touchStart = function() {"," this._simulateEvent(this.target, TOUCH_START, Y.merge({"," touches: touches,"," targetTouches: touches,"," changedTouches: touches"," }, coord));"," };"," "," touchEnd = function() {"," this._simulateEvent(this.target, TOUCH_END, Y.merge({"," touches: emptyTouchList,"," targetTouches: emptyTouchList,"," changedTouches: touches"," }, coord));"," };"," "," for (i=0; i < times; i++) {"," eventQueue.add({"," fn: touchStart,"," context: this,"," timeout: (i === 0)? 0 : delay"," });",""," eventQueue.add({"," fn: touchEnd,"," context: this,"," timeout: hold"," });"," }",""," if(times > 1 && !SUPPORTS_TOUCH) {"," eventQueue.add({"," fn: function() {"," this._simulateEvent(this.target, MOUSE_DBLCLICK, coord);"," },"," context: this"," });"," }",""," if(cb && Y.Lang.isFunction(cb)) {"," eventQueue.add({"," fn: cb,",""," // by default, the callback runs the node context where "," // simulateGesture method is called."," context: this.node",""," //TODO: Use args to pass error object as 1st param if there is an error."," //args: "," });"," }",""," eventQueue.run();"," },",""," /**"," * The \"flick\" gesture is a specialized \"move\" that has some velocity "," * and the movement always runs either x or y axis. The velocity is calculated"," * with \"distance\" and \"duration\" arguments. If the calculated velocity is "," * below than the minimum velocity, the given duration will be ignored and "," * new duration will be created to make a valid flick gesture."," * "," * @method flick"," * @param {Function} cb The callback to execute when the gesture simulation "," * is completed."," * @param {Array} point A point(relative to the top left corner of the "," * target node element) where the flick gesture should start. The default "," * is the center of the taget node."," * @param {String} axis Either \"x\" or \"y\"."," * @param {Number} distance A distance in pixels to flick."," * @param {Number} duration A duration of the gesture in millisecond."," * "," */"," flick: function(cb, point, axis, distance, duration) {"," var path;",""," point = this._calculateDefaultPoint(point);",""," if(!Y.Lang.isString(axis)) {"," axis = X_AXIS;"," } else {"," axis = axis.toLowerCase();"," if(axis !== X_AXIS && axis !== Y_AXIS) {"," Y.error(NAME+'(flick): Only x or y axis allowed');"," }"," }",""," if(!Y.Lang.isNumber(distance)) { "," distance = DEFAULTS.DISTANCE_FLICK; "," }",""," if(!Y.Lang.isNumber(duration)){"," duration = DEFAULTS.DURATION_FLICK; // ms"," } else {"," if(duration > DEFAULTS.MAX_DURATION_FLICK) {"," duration = DEFAULTS.MAX_DURATION_FLICK;"," }"," }",""," /**"," * Check if too slow for a flick."," * Adjust duration if the calculated velocity is less than "," * the minimum velcocity to be claimed as a flick."," */"," if(Math.abs(distance)/duration < DEFAULTS.MIN_VELOCITY_FLICK) {"," duration = Math.abs(distance)/DEFAULTS.MIN_VELOCITY_FLICK;"," }",""," path = {"," start: Y.clone(point),"," end: ["," (axis === X_AXIS) ? point[0]+distance : point[0],"," (axis === Y_AXIS) ? point[1]+distance : point[1]"," ]"," };",""," this._move(cb, path, duration);"," },",""," /**"," * The \"move\" gesture simulate the movement of any direction between "," * the straight line of start and end point for the given duration."," * The path argument is an object with \"point\", \"xdist\" and \"ydist\" properties."," * The \"point\" property is an array with x and y coordinations(relative to the"," * top left corner of the target node element) while \"xdist\" and \"ydist\" "," * properties are used for the distance along the x and y axis. A negative "," * distance number can be used to drag either left or up direction. "," * "," * If no arguments are given, it will simulate the default move, which"," * is moving 200 pixels from the center of the element to the positive X-axis "," * direction for 1 sec."," * "," * @method move"," * @param {Function} cb The callback to execute when the gesture simulation "," * is completed."," * @param {Object} path An object with \"point\", \"xdist\" and \"ydist\"."," * @param {Number} duration A duration of the gesture in millisecond."," */"," move: function(cb, path, duration) {"," var convertedPath;",""," if(!Y.Lang.isObject(path)) {"," path = {"," point: this._calculateDefaultPoint([]),"," xdist: DEFAULTS.DISTANCE_MOVE,"," ydist: 0"," };"," } else {"," // convert to the page coordination"," if(!Y.Lang.isArray(path.point)) {"," path.point = this._calculateDefaultPoint([]);"," } else {"," path.point = this._calculateDefaultPoint(path.point);"," }",""," if(!Y.Lang.isNumber(path.xdist)) {"," path.xdist = DEFAULTS.DISTANCE_MOVE;"," }",""," if(!Y.Lang.isNumber(path.ydist)) {"," path.ydist = 0;"," }"," }",""," if(!Y.Lang.isNumber(duration)){"," duration = DEFAULTS.DURATION_MOVE; // ms"," } else {"," if(duration > DEFAULTS.MAX_DURATION_MOVE) {"," duration = DEFAULTS.MAX_DURATION_MOVE;"," }"," }",""," convertedPath = {"," start: Y.clone(path.point),"," end: [path.point[0]+path.xdist, path.point[1]+path.ydist]"," };",""," this._move(cb, convertedPath, duration);"," },",""," /**"," * A base method on top of \"move\" and \"flick\" methods. The method takes"," * the path with start/end properties and duration to generate a set of "," * touch events for the movement gesture. "," *"," * @method _move"," * @private"," * @param {Function} cb The callback to execute when the gesture simulation "," * is completed."," * @param {Object} path An object with \"start\" and \"end\" properties. Each "," * property should be an array with x and y coordination (e.g. start: [100, 50])"," * @param {Number} duration A duration of the gesture in millisecond. "," */"," _move: function(cb, path, duration) {"," var eventQueue,"," i,"," interval = EVENT_INTERVAL,"," steps, stepX, stepY,"," id = 0,"," touchMove;",""," if(!Y.Lang.isNumber(duration)){"," duration = DEFAULTS.DURATION_MOVE; // ms"," } else {"," if(duration > DEFAULTS.MAX_DURATION_MOVE) {"," duration = DEFAULTS.MAX_DURATION_MOVE;"," }"," }",""," if(!Y.Lang.isObject(path)) {"," path = {"," start: ["," START_PAGEX, "," START_PAGEY"," ], "," end: ["," START_PAGEX + DEFAULTS.DISTANCE_MOVE, "," START_PAGEY"," ]"," };"," } else {"," if(!Y.Lang.isArray(path.start)) {"," path.start = ["," START_PAGEX, "," START_PAGEY"," ];"," }"," if(!Y.Lang.isArray(path.end)) {"," path.end = ["," START_PAGEX + DEFAULTS.DISTANCE_MOVE, "," START_PAGEY"," ];"," }"," }",""," Y.AsyncQueue.defaults.timeout = interval;"," eventQueue = new Y.AsyncQueue();",""," // start"," eventQueue.add({"," fn: function() {"," var coord = {"," pageX: path.start[0], "," pageY: path.start[1],"," clientX: path.start[0], "," clientY: path.start[1]"," }, "," touches = this._createTouchList(["," Y.merge({identifier: (id++)}, coord)"," ]);",""," this._simulateEvent(this.target, TOUCH_START, Y.merge({"," touches: touches,"," targetTouches: touches,"," changedTouches: touches"," }, coord));"," },"," timeout: 0,"," context: this"," });",""," // move"," steps = Math.floor(duration/interval);"," stepX = (path.end[0] - path.start[0])/steps;"," stepY = (path.end[1] - path.start[1])/steps;",""," touchMove = function(step) {"," var px = path.start[0]+(stepX * step),"," py = path.start[1]+(stepY * step), "," coord = {"," pageX: px, "," pageY: py,"," clientX: px,"," clientY: py"," }, "," touches = this._createTouchList(["," Y.merge({identifier: (id++)}, coord)"," ]);",""," this._simulateEvent(this.target, TOUCH_MOVE, Y.merge({"," touches: touches,"," targetTouches: touches,"," changedTouches: touches"," }, coord));"," };",""," for (i=0; i < steps; i++) {"," eventQueue.add({"," fn: touchMove,"," args: [i],"," context: this"," });"," }",""," // last move"," eventQueue.add({"," fn: function() {"," var coord = {"," pageX: path.end[0], "," pageY: path.end[1],"," clientX: path.end[0], "," clientY: path.end[1]"," },"," touches = this._createTouchList(["," Y.merge({identifier: id}, coord)"," ]);",""," this._simulateEvent(this.target, TOUCH_MOVE, Y.merge({"," touches: touches,"," targetTouches: touches,"," changedTouches: touches"," }, coord));"," },"," timeout: 0,"," context: this"," });",""," // end"," eventQueue.add({"," fn: function() {"," var coord = {"," pageX: path.end[0], "," pageY: path.end[1],"," clientX: path.end[0], "," clientY: path.end[1]"," },"," emptyTouchList = this._getEmptyTouchList(),"," touches = this._createTouchList(["," Y.merge({identifier: id}, coord)"," ]);",""," this._simulateEvent(this.target, TOUCH_END, Y.merge({"," touches: emptyTouchList,"," targetTouches: emptyTouchList,"," changedTouches: touches"," }, coord));"," },"," context: this"," });"," "," if(cb && Y.Lang.isFunction(cb)) {"," eventQueue.add({"," fn: cb,",""," // by default, the callback runs the node context where "," // simulateGesture method is called."," context: this.node",""," //TODO: Use args to pass error object as 1st param if there is an error."," //args: "," });"," }"," "," eventQueue.run();"," },",""," /**"," * Helper method to return a singleton instance of empty touch list."," * "," * @method _getEmptyTouchList"," * @private"," * @return {TouchList | Array} An empty touch list object."," */"," _getEmptyTouchList: function() {"," if(!emptyTouchList) {"," emptyTouchList = this._createTouchList([]);"," }",""," return emptyTouchList;"," },",""," /**"," * Helper method to convert an array with touch points to TouchList object as"," * defined in http://www.w3.org/TR/touch-events/"," * "," * @method _createTouchList"," * @private"," * @param {Array} touchPoints "," * @return {TouchList | Array} If underlaying platform support creating touch list"," * a TouchList object will be returned otherwise a fake Array object "," * will be returned."," */"," _createTouchList: function(touchPoints) {"," /*"," * Android 4.0.3 emulator:"," * Native touch api supported starting in version 4.0 (Ice Cream Sandwich)."," * However the support seems limited. In Android 4.0.3 emulator, I got"," * \"TouchList is not defined\"."," */"," var touches = [],"," touchList,"," self = this;",""," if(!!touchPoints && Y.Lang.isArray(touchPoints)) {"," if(Y.UA.android && Y.UA.android >= 4.0 || Y.UA.ios && Y.UA.ios >= 2.0) {"," Y.each(touchPoints, function(point) {"," if(!point.identifier) {point.identifier = 0;}"," if(!point.pageX) {point.pageX = 0;}"," if(!point.pageY) {point.pageY = 0;}"," if(!point.screenX) {point.screenX = 0;}"," if(!point.screenY) {point.screenY = 0;}",""," touches.push(document.createTouch(Y.config.win, "," self.target,"," point.identifier, "," point.pageX, point.pageY, "," point.screenX, point.screenY));"," });",""," touchList = document.createTouchList.apply(document, touches);"," } else if(Y.UA.ios && Y.UA.ios < 2.0) { "," Y.error(NAME+': No touch event simulation framework present.');"," } else {"," // this will inclide android(Y.UA.android && Y.UA.android < 4.0) "," // and desktops among all others. ",""," /**"," * Touch APIs are broken in androids older than 4.0. We will use "," * simulated touch apis for these versions. "," */"," touchList = [];"," Y.each(touchPoints, function(point) {"," if(!point.identifier) {point.identifier = 0;}"," if(!point.clientX) {point.clientX = 0;}"," if(!point.clientY) {point.clientY = 0;}"," if(!point.pageX) {point.pageX = 0;}"," if(!point.pageY) {point.pageY = 0;}"," if(!point.screenX) {point.screenX = 0;}"," if(!point.screenY) {point.screenY = 0;}",""," touchList.push({"," target: self.target,"," identifier: point.identifier,"," clientX: point.clientX,"," clientY: point.clientY,"," pageX: point.pageX,"," pageY: point.pageY,"," screenX: point.screenX,"," screenY: point.screenY"," });"," });",""," touchList.item = function(i) {"," return touchList[i];"," };"," }"," } else {"," Y.error(NAME+': Invalid touchPoints passed');"," }",""," return touchList;"," },",""," /**"," * @method _simulateEvent"," * @private"," * @param {HTMLElement} target The DOM element that's the target of the event."," * @param {String} type The type of event or name of the supported gesture to simulate "," * (i.e., \"click\", \"doubletap\", \"flick\")."," * @param {Object} options (Optional) Extra options to copy onto the event object. "," * For gestures, options are used to refine the gesture behavior."," * @return {void}"," */"," _simulateEvent: function(target, type, options) {"," var touches;",""," if (touchEvents[type]) {"," if(SUPPORTS_TOUCH) {"," Y.Event.simulate(target, type, options);"," } else {"," // simulate using mouse events if touch is not applicable on this platform."," // but only single touch event can be simulated."," if(this._isSingleTouch(options.touches, options.targetTouches, options.changedTouches)) {"," type = {"," touchstart: MOUSE_DOWN,"," touchmove: MOUSE_MOVE,"," touchend: MOUSE_UP"," }[type];",""," options.button = 0;"," options.relatedTarget = null; // since we are not using mouseover event.",""," // touchend has none in options.touches."," touches = (type === MOUSE_UP)? options.changedTouches : options.touches;",""," options = Y.mix(options, {"," screenX: touches.item(0).screenX,"," screenY: touches.item(0).screenY,"," clientX: touches.item(0).clientX,"," clientY: touches.item(0).clientY"," }, true);",""," Y.Event.simulate(target, type, options);",""," if(type == MOUSE_UP) {"," Y.Event.simulate(target, MOUSE_CLICK, options);"," }"," } else {"," Y.error(\"_simulateEvent(): Event '\" + type + \"' has multi touch objects that can't be simulated in your platform.\");"," }"," }"," } else {"," // pass thru for all non touch events"," Y.Event.simulate(target, type, options);"," }"," },",""," /**"," * Helper method to check the single touch."," * @method _isSingleTouch"," * @private"," * @param {TouchList} touches"," * @param {TouchList} targetTouches"," * @param {TouchList} changedTouches"," */"," _isSingleTouch: function(touches, targetTouches, changedTouches) {"," return (touches && (touches.length <= 1)) && "," (targetTouches && (targetTouches.length <= 1)) &&"," (changedTouches && (changedTouches.length <= 1));"," }","};","","/**"," * A gesture simulation class."," */","Y.GestureSimulation = Simulations;","","/**"," * Various simulation default behavior properties. If user override "," * Y.GestureSimulation.defaults, overriden values will be used and this "," * should be done before the gesture simulation. "," */","Y.GestureSimulation.defaults = DEFAULTS;","","/**"," * The high level gesture names that YUI knows how to simulate."," */","Y.GestureSimulation.GESTURES = gestureNames;","","/**"," * Simulates the higher user level gesture of the given name on a target. "," * This method generates a set of low level touch events(Apple specific gesture "," * events as well for the iOS platforms) asynchronously. Note that gesture "," * simulation is relying on `Y.Event.simulate()` method to generate "," * the touch events under the hood. The `Y.Event.simulate()` method"," * itself is a synchronous method."," * "," * Users are suggested to use `Node.simulateGesture()` method which "," * basically calls this method internally. Supported gestures are `tap`, "," * `doubletap`, `press`, `move`, `flick`, `pinch` and `rotate`."," * "," * The `pinch` gesture is used to simulate the pinching and spreading of two"," * fingers. During a pinch simulation, rotation is also possible. Essentially"," * `pinch` and `rotate` simulations share the same base implementation to allow"," * both pinching and rotation at the same time. The only difference is `pinch`"," * requires `start` and `end` option properties while `rotate` requires `rotation` "," * option property."," * "," * The `pinch` and `rotate` gestures can be described as placing 2 fingers along a"," * circle. Pinching and spreading can be described by start and end circles while "," * rotation occurs on a single circle. If the radius of the start circle is greater "," * than the end circle, the gesture becomes a pinch, otherwise it is a spread spread."," * "," * @example"," *"," * var node = Y.one(\"#target\");"," * "," * // double tap example"," * node.simulateGesture(\"doubletap\", function() {"," * // my callback function"," * });"," * "," * // flick example from the center of the node, move 50 pixels down for 50ms)"," * node.simulateGesture(\"flick\", {"," * axis: y,"," * distance: -100"," * duration: 50"," * }, function() {"," * // my callback function"," * });"," * "," * // simulate rotating a node 75 degrees counter-clockwise "," * node.simulateGesture(\"rotate\", {"," * rotation: -75"," * });"," *"," * // simulate a pinch and a rotation at the same time. "," * // fingers start on a circle of radius 100 px, placed at top/bottom"," * // fingers end on a circle of radius 50px, placed at right/left "," * node.simulateGesture(\"pinch\", {"," * r1: 100,"," * r2: 50,"," * start: 0"," * rotation: 90"," * });"," * "," * @method simulateGesture"," * @param {HTMLElement|Node} node The YUI node or HTML element that's the target "," * of the event."," * @param {String} name The name of the supported gesture to simulate. The "," * supported gesture name is one of \"tap\", \"doubletap\", \"press\", \"move\", "," * \"flick\", \"pinch\" and \"rotate\". "," * @param {Object} [options] Extra options used to define the gesture behavior:"," * "," * Valid options properties for the `tap` gesture:"," * "," * @param {Array} [options.point] (Optional) Indicates the [x,y] coordinates "," * where the tap should be simulated. Default is the center of the node "," * element."," * @param {Number} [options.hold=10] (Optional) The hold time in milliseconds. "," * This is the time between `touchstart` and `touchend` event generation."," * @param {Number} [options.times=1] (Optional) Indicates the number of taps."," * @param {Number} [options.delay=10] (Optional) The number of milliseconds "," * before the next tap simulation happens. This is valid only when `times` "," * is more than 1. "," * "," * Valid options properties for the `doubletap` gesture:"," * "," * @param {Array} [options.point] (Optional) Indicates the [x,y] coordinates "," * where the doubletap should be simulated. Default is the center of the "," * node element."," * "," * Valid options properties for the `press` gesture:"," * "," * @param {Array} [options.point] (Optional) Indicates the [x,y] coordinates "," * where the press should be simulated. Default is the center of the node "," * element."," * @param {Number} [options.hold=3000] (Optional) The hold time in milliseconds. "," * This is the time between `touchstart` and `touchend` event generation. "," * Default is 3000ms (3 seconds)."," * "," * Valid options properties for the `move` gesture:"," * "," * @param {Object} [options.path] (Optional) Indicates the path of the finger "," * movement. It's an object with three optional properties: `point`, "," * `xdist` and `ydist`."," * @param {Array} [options.path.point] A starting point of the gesture."," * Default is the center of the node element."," * @param {Number} [options.path.xdist=200] A distance to move in pixels "," * along the X axis. A negative distance value indicates moving left."," * @param {Number} [options.path.ydist=0] A distance to move in pixels "," * along the Y axis. A negative distance value indicates moving up."," * @param {Number} [options.duration=1000] (Optional) The duration of the "," * gesture in milliseconds."," * "," * Valid options properties for the `flick` gesture:"," * "," * @param {Array} [options.point] (Optional) Indicates the [x, y] coordinates "," * where the flick should be simulated. Default is the center of the "," * node element."," * @param {String} [options.axis='x'] (Optional) Valid values are either "," * \"x\" or \"y\". Indicates axis to move along. The flick can move to one of "," * 4 directions(left, right, up and down)."," * @param {Number} [options.distance=200] (Optional) Distance to move in pixels"," * @param {Number} [options.duration=1000] (Optional) The duration of the "," * gesture in milliseconds. User given value could be automatically "," * adjusted by the framework if it is below the minimum velocity to be "," * a flick gesture."," * "," * Valid options properties for the `pinch` gesture:"," * "," * @param {Array} [options.center] (Optional) The center of the circle where "," * two fingers are placed. Default is the center of the node element."," * @param {Number} [options.r1] (Required) Pixel radius of the start circle "," * where 2 fingers will be on when the gesture starts. The circles are "," * centered at the center of the element."," * @param {Number} [options.r2] (Required) Pixel radius of the end circle "," * when this gesture ends."," * @param {Number} [options.duration=1000] (Optional) The duration of the "," * gesture in milliseconds."," * @param {Number} [options.start=0] (Optional) Starting degree of the first "," * finger. The value is relative to the path of the north. Default is 0 "," * (i.e., 12:00 on a clock)."," * @param {Number} [options.rotation=0] (Optional) Degrees to rotate from "," * the starting degree. A negative value means rotation to the "," * counter-clockwise direction."," * "," * Valid options properties for the `rotate` gesture:"," * "," * @param {Array} [options.center] (Optional) The center of the circle where "," * two fingers are placed. Default is the center of the node element."," * @param {Number} [options.r1] (Optional) Pixel radius of the start circle "," * where 2 fingers will be on when the gesture starts. The circles are "," * centered at the center of the element. Default is a fourth of the node "," * element width or height, whichever is smaller."," * @param {Number} [options.r2] (Optional) Pixel radius of the end circle "," * when this gesture ends. Default is a fourth of the node element width or "," * height, whichever is smaller."," * @param {Number} [options.duration=1000] (Optional) The duration of the "," * gesture in milliseconds."," * @param {Number} [options.start=0] (Optional) Starting degree of the first "," * finger. The value is relative to the path of the north. Default is 0 "," * (i.e., 12:00 on a clock)."," * @param {Number} [options.rotation] (Required) Degrees to rotate from "," * the starting degree. A negative value means rotation to the "," * counter-clockwise direction."," * "," * @param {Function} [cb] The callback to execute when the asynchronouse gesture "," * simulation is completed. "," * @param {Error} cb.err An error object if the simulation is failed. "," * @return {void}"," * @for Event"," * @static"," */","Y.Event.simulateGesture = function(node, name, options, cb) {",""," node = Y.one(node); ",""," var sim = new Y.GestureSimulation(node);"," name = name.toLowerCase();",""," if(!cb && Y.Lang.isFunction(options)) {"," cb = options;"," options = {};"," }",""," options = options || {};",""," if (gestureNames[name]) {"," switch(name) {"," // single-touch: point gestures "," case 'tap':"," sim.tap(cb, options.point, options.times, options.hold, options.delay);"," break;"," case 'doubletap':"," sim.tap(cb, options.point, 2);"," break;"," case 'press':"," if(!Y.Lang.isNumber(options.hold)) {"," options.hold = DEFAULTS.HOLD_PRESS;"," } else if(options.hold < DEFAULTS.MIN_HOLD_PRESS) {"," options.hold = DEFAULTS.MIN_HOLD_PRESS;"," } else if(options.hold > DEFAULTS.MAX_HOLD_PRESS) {"," options.hold = DEFAULTS.MAX_HOLD_PRESS;"," }"," sim.tap(cb, options.point, 1, options.hold);"," break;",""," // single-touch: move gestures "," case 'move':"," sim.move(cb, options.path, options.duration);"," break;"," case 'flick':"," sim.flick(cb, options.point, options.axis, options.distance, "," options.duration);"," break;",""," // multi-touch: pinch/rotation gestures"," case 'pinch':"," sim.pinch(cb, options.center, options.r1, options.r2, "," options.duration, options.start, options.rotation);"," break; "," case 'rotate':"," sim.rotate(cb, options.center, options.r1, options.r2, "," options.duration, options.start, options.rotation);"," break;"," }"," } else {"," Y.error(NAME+': Not a supported gesture simulation: '+name);"," }","};","","","}, '3.7.3', {\"requires\": [\"async-queue\", \"event-simulate\", \"node-screen\"]});"]; _yuitest_coverage["build/gesture-simulate/gesture-simulate.js"].lines = {"1":0,"10":0,"85":0,"86":0,"87":0,"89":0,"90":0,"92":0,"95":0,"96":0,"99":0,"110":0,"123":0,"128":0,"129":0,"131":0,"132":0,"135":0,"138":0,"139":0,"142":0,"145":0,"146":0,"147":0,"150":0,"164":0,"166":0,"167":0,"169":0,"170":0,"171":0,"174":0,"175":0,"178":0,"205":0,"209":0,"210":0,"212":0,"213":0,"217":0,"218":0,"221":0,"252":0,"268":0,"270":0,"271":0,"274":0,"275":0,"278":0,"279":0,"281":0,"282":0,"283":0,"287":0,"288":0,"291":0,"292":0,"295":0,"296":0,"298":0,"299":0,"302":0,"306":0,"312":0,"316":0,"321":0,"322":0,"325":0,"327":0,"330":0,"336":0,"342":0,"349":0,"356":0,"364":0,"369":0,"380":0,"381":0,"382":0,"383":0,"385":0,"386":0,"396":0,"402":0,"408":0,"415":0,"422":0,"430":0,"431":0,"438":0,"439":0,"447":0,"449":0,"453":0,"459":0,"465":0,"472":0,"479":0,"480":0,"486":0,"497":0,"498":0,"510":0,"531":0,"539":0,"541":0,"542":0,"545":0,"546":0,"549":0,"550":0,"553":0,"560":0,"562":0,"563":0,"570":0,"571":0,"578":0,"579":0,"585":0,"592":0,"593":0,"595":0,"601":0,"602":0,"614":0,"636":0,"638":0,"640":0,"641":0,"643":0,"644":0,"645":0,"649":0,"650":0,"653":0,"654":0,"656":0,"657":0,"666":0,"667":0,"670":0,"678":0,"701":0,"703":0,"704":0,"711":0,"712":0,"714":0,"717":0,"718":0,"721":0,"722":0,"726":0,"727":0,"729":0,"730":0,"734":0,"739":0,"756":0,"763":0,"764":0,"766":0,"767":0,"771":0,"772":0,"783":0,"784":0,"789":0,"790":0,"797":0,"798":0,"801":0,"803":0,"813":0,"824":0,"825":0,"826":0,"828":0,"829":0,"841":0,"848":0,"849":0,"857":0,"859":0,"869":0,"880":0,"882":0,"893":0,"902":0,"903":0,"915":0,"926":0,"927":0,"930":0,"951":0,"955":0,"956":0,"957":0,"958":0,"959":0,"960":0,"961":0,"962":0,"964":0,"971":0,"972":0,"973":0,"982":0,"983":0,"984":0,"985":0,"986":0,"987":0,"988":0,"989":0,"990":0,"992":0,"1004":0,"1005":0,"1009":0,"1012":0,"1026":0,"1028":0,"1029":0,"1030":0,"1034":0,"1035":0,"1041":0,"1042":0,"1045":0,"1047":0,"1054":0,"1056":0,"1057":0,"1060":0,"1065":0,"1078":0,"1087":0,"1094":0,"1099":0,"1266":0,"1268":0,"1270":0,"1271":0,"1273":0,"1274":0,"1275":0,"1278":0,"1280":0,"1281":0,"1284":0,"1285":0,"1287":0,"1288":0,"1290":0,"1291":0,"1292":0,"1293":0,"1294":0,"1295":0,"1297":0,"1298":0,"1302":0,"1303":0,"1305":0,"1307":0,"1311":0,"1313":0,"1315":0,"1317":0,"1320":0}; _yuitest_coverage["build/gesture-simulate/gesture-simulate.js"].functions = {"Simulations:85":0,"_toRadian:109":0,"_getDims:122":0,"_calculateDefaultPoint:162":0,"rotate:204":0,"fn:326":0,"touchMove:385":0,"fn:448":0,"pinch:251":0,"touchStart:562":0,"touchEnd:570":0,"fn:594":0,"tap:530":0,"flick:635":0,"move:700":0,"fn:802":0,"touchMove:828":0,"fn:858":0,"fn:881":0,"_move:755":0,"_getEmptyTouchList:925":0,"(anonymous 2):957":0,"(anonymous 3):983":0,"item:1004":0,"_createTouchList:944":0,"_simulateEvent:1025":0,"_isSingleTouch:1077":0,"simulateGesture:1266":0,"(anonymous 1):1":0}; _yuitest_coverage["build/gesture-simulate/gesture-simulate.js"].coveredLines = 272; @@ -1662,4 +1662,4 @@ Y.error(NAME+': Not a supported gesture simulation: '+name); }; -}, '3.7.2', {"requires": ["async-queue", "event-simulate", "node-screen"]}); +}, '3.7.3', {"requires": ["async-queue", "event-simulate", "node-screen"]}); diff --git a/lib/yuilib/3.7.2/build/gesture-simulate/gesture-simulate-debug.js b/lib/yuilib/3.7.3/build/gesture-simulate/gesture-simulate-debug.js similarity index 99% rename from lib/yuilib/3.7.2/build/gesture-simulate/gesture-simulate-debug.js rename to lib/yuilib/3.7.3/build/gesture-simulate/gesture-simulate-debug.js index eaed9b7dfb0..939c250562b 100644 --- a/lib/yuilib/3.7.2/build/gesture-simulate/gesture-simulate-debug.js +++ b/lib/yuilib/3.7.3/build/gesture-simulate/gesture-simulate-debug.js @@ -1,5 +1,5 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ @@ -1328,4 +1328,4 @@ Y.Event.simulateGesture = function(node, name, options, cb) { }; -}, '3.7.2', {"requires": ["async-queue", "event-simulate", "node-screen"]}); +}, '3.7.3', {"requires": ["async-queue", "event-simulate", "node-screen"]}); diff --git a/lib/yuilib/3.7.2/build/gesture-simulate/gesture-simulate-min.js b/lib/yuilib/3.7.3/build/gesture-simulate/gesture-simulate-min.js similarity index 99% rename from lib/yuilib/3.7.2/build/gesture-simulate/gesture-simulate-min.js rename to lib/yuilib/3.7.3/build/gesture-simulate/gesture-simulate-min.js index 223b507c096..15432473568 100644 --- a/lib/yuilib/3.7.2/build/gesture-simulate/gesture-simulate-min.js +++ b/lib/yuilib/3.7.3/build/gesture-simulate/gesture-simulate-min.js @@ -1,7 +1,7 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ */ -YUI.add("gesture-simulate",function(e,t){function T(n){n||e.error(t+": invalid target node"),this.node=n,this.target=e.Node.getDOMNode(n);var r=this.node.getXY(),i=this._getDims();a=r[0]+i[0]/2,f=r[1]+i[1]/2}var t="gesture-simulate",n=e.config.win&&"ontouchstart"in e.config.win&&!e.UA.phantomjs&&!(e.UA.chrome&&e.UA.chrome<6),r={tap:1,doubletap:1,press:1,move:1,flick:1,pinch:1,rotate:1},i={touchstart:1,touchmove:1,touchend:1,touchcancel:1},s=e.config.doc,o,u=20,a,f,l={HOLD_TAP:10,DELAY_TAP:10,HOLD_PRESS:3e3,MIN_HOLD_PRESS:1e3,MAX_HOLD_PRESS:6e4,DISTANCE_MOVE:200,DURATION_MOVE:1e3,MAX_DURATION_MOVE:5e3,MIN_VELOCITY_FLICK:1.3,DISTANCE_FLICK:200,DURATION_FLICK:1e3,MAX_DURATION_FLICK:5e3,DURATION_PINCH:1e3},c="touchstart",h="touchmove",p="touchend",d="gesturestart",v="gesturechange",m="gestureend",g="mouseup",y="mousemove",b="mousedown",w="click",E="dblclick",S="x",x="y";T.prototype={_toRadian:function(e){return e*(Math.PI/180)},_getDims:function(){var e,t,n;return this.target.getBoundingClientRect?(e=this.target.getBoundingClientRect(),"height"in e?n=e.height:n=Math.abs(e.bottom-e.top),"width"in e?t=e.width:t=Math.abs(e.right-e.left)):(e=this.node.get("region"),t=e.width,n=e.height),[t,n]},_calculateDefaultPoint:function(t){var n;return!e.Lang.isArray(t)||t.length===0?t=[a,f]:(t.length==1&&(n=this._getDims[1],t[1]=n/2),t[0]=this.node.getX()+t[0],t[1]=this.node.getY()+t[1]),t},rotate:function(n,r,i,s,o,u,a){var f,l=i,c=s;if(!e.Lang.isNumber(l)||!e.Lang.isNumber(c)||l<0||c<0)f=this.target.offsetWidth=2&&this._simulateEvent(this.target,d,e.merge({scale:k,rotation:O},r))},timeout:0,context:this}),H=Math.floor(o/b),T=(x-S)/H,A=(L-k)/H,_=(M-O)/H,B=function(t){var n=S+T*t,r=N+n*Math.sin(this._toRadian(O+_*t)),i=C-n*Math.cos(this._toRadian(O+_*t)),s=N-n*Math.sin(this._toRadian(O+_*t)),o=C+n*Math.cos(this._toRadian(O+_*t)),u=(r+s)/2,a=(i+o)/2,f,l,c,p;f={pageX:r,pageY:i,clientX:r,clientY:i},l={pageX:s,pageY:o,clientX:s,clientY:o},p=this._createTouchList([e.merge({identifier:E++},f),e.merge({identifier:E++},l)]),c={pageX:u,pageY:a,clientX:u,clientY:a},this._simulateEvent(this.target,h,e.merge({touches:p,targetTouches:p,changedTouches:p,scale:k+A*t,rotation:O+_*t},c)),e.UA.ios>=2&&this._simulateEvent(this.target,v,e.merge({scale:k+A*t,rotation:O+_*t},c))};for(y=0;y=2&&this._simulateEvent(this.target,m,e.merge({scale:L,rotation:M},i)),this._simulateEvent(this.target,p,e.merge({touches:t,targetTouches:t,changedTouches:s,scale:L,rotation:M},i))},context:this}),n&&e.Lang.isFunction(n)&&g.add({fn:n,context:this.node}),g.run()},tap:function(t,r,i,s,o){var u=new e.AsyncQueue,a=this._getEmptyTouchList(),f,h,d,v,m;r=this._calculateDefaultPoint(r);if(!e.Lang.isNumber(i)||i<1)i=1;e.Lang.isNumber(s)||(s=l.HOLD_TAP),e.Lang.isNumber(o)||(o=l.DELAY_TAP),h={pageX:r[0],pageY:r[1],clientX:r[0],clientY:r[1]},f=this._createTouchList([e.merge({identifier:0},h)]),v=function(){this._simulateEvent(this.target,c,e.merge({touches:f,targetTouches:f,changedTouches:f},h))},m=function(){this._simulateEvent(this.target,p,e.merge({touches:a,targetTouches:a,changedTouches:f},h))};for(d=0;d1&&!n&&u.add({fn:function(){this._simulateEvent(this.target,E,h)},context:this}),t&&e.Lang.isFunction(t)&&u.add({fn:t,context:this.node}),u.run()},flick:function(n,r,i,s,o){var u;r=this._calculateDefaultPoint(r),e.Lang.isString(i)?(i=i.toLowerCase(),i!==S&&i!==x&&e.error(t+"(flick): Only x or y axis allowed")):i=S,e.Lang.isNumber(s)||(s=l.DISTANCE_FLICK),e.Lang.isNumber(o)?o>l.MAX_DURATION_FLICK&&(o=l.MAX_DURATION_FLICK):o=l.DURATION_FLICK,Math.abs(s)/ol.MAX_DURATION_MOVE&&(r=l.MAX_DURATION_MOVE):r=l.DURATION_MOVE,i={start:e.clone(n.point),end:[n.point[0]+n.xdist,n.point[1]+n.ydist]},this._move(t,i,r)},_move:function(t,n,r){var i,s,o=u,d,v,m,g=0,y;e.Lang.isNumber(r)?r>l.MAX_DURATION_MOVE&&(r=l.MAX_DURATION_MOVE):r=l.DURATION_MOVE,e.Lang.isObject(n)?(e.Lang.isArray(n.start)||(n.start=[a,f]),e.Lang.isArray(n.end)||(n.end=[a+l.DISTANCE_MOVE,f])):n={start:[a,f],end:[a+l.DISTANCE_MOVE,f]},e.AsyncQueue.defaults.timeout=o,i=new e.AsyncQueue,i.add({fn:function(){var t={pageX:n.start[0],pageY:n.start[1],clientX:n.start[0],clientY:n.start[1]},r=this._createTouchList([e.merge({identifier:g++},t)]);this._simulateEvent(this.target,c,e.merge({touches:r,targetTouches:r,changedTouches:r},t))},timeout:0,context:this}),d=Math.floor(r/o),v=(n.end[0]-n.start[0])/d,m=(n.end[1]-n.start[1])/d,y=function(t){var r=n.start[0]+v*t,i=n.start[1]+m*t,s={pageX:r,pageY:i,clientX:r,clientY:i},o=this._createTouchList([e.merge({identifier:g++},s)]);this._simulateEvent(this.target,h,e.merge({touches:o,targetTouches:o,changedTouches:o},s))};for(s=0;s=4||e.UA.ios&&e.UA.ios>=2?(e.each(n,function(t){t.identifier||(t.identifier=0),t.pageX||(t.pageX=0),t.pageY||(t.pageY=0),t.screenX||(t.screenX=0),t.screenY||(t.screenY=0),r.push(s.createTouch(e.config.win,o.target,t.identifier,t.pageX,t.pageY,t.screenX,t.screenY))}),i=s.createTouchList.apply(s,r)):e.UA.ios&&e.UA.ios<2?e.error(t+": No touch event simulation framework present."):(i=[],e.each(n,function(e){e.identifier||(e.identifier=0),e.clientX||(e.clientX=0),e.clientY||(e.clientY=0),e.pageX||(e.pageX=0),e.pageY||(e.pageY=0),e.screenX||(e.screenX=0),e.screenY||(e.screenY=0),i.push({target:o.target,identifier:e.identifier,clientX:e.clientX,clientY:e.clientY,pageX:e.pageX,pageY:e.pageY,screenX:e.screenX,screenY:e.screenY})}),i.item=function(e){return i[e]}):e.error(t+": Invalid touchPoints passed"),i},_simulateEvent:function(t,r,s){var o;i[r]?n?e.Event.simulate(t,r,s):this._isSingleTouch(s.touches,s.targetTouches,s.changedTouches)?(r={touchstart:b,touchmove:y,touchend:g}[r],s.button=0,s.relatedTarget=null,o=r===g?s.changedTouches:s.touches,s=e.mix(s,{screenX:o.item(0).screenX,screenY:o.item(0).screenY,clientX:o.item(0).clientX,clientY:o.item(0).clientY},!0),e.Event.simulate(t,r,s),r==g&&e.Event.simulate(t,w,s)):e.error("_simulateEvent(): Event '"+r+"' has multi touch objects that can't be simulated in your platform."):e.Event.simulate(t,r,s)},_isSingleTouch:function(e,t,n){return e&&e.length<=1&&t&&t.length<=1&&n&&n.length<=1}},e.GestureSimulation=T,e.GestureSimulation.defaults=l,e.GestureSimulation.GESTURES=r,e.Event.simulateGesture=function(n,i,s,o){n=e.one(n);var u=new e.GestureSimulation(n);i=i.toLowerCase(),!o&&e.Lang.isFunction(s)&&(o=s,s={}),s=s||{};if(r[i])switch(i){case"tap":u.tap(o,s.point,s.times,s.hold,s.delay);break;case"doubletap":u.tap(o,s.point,2);break;case"press":e.Lang.isNumber(s.hold)?s.holdl.MAX_HOLD_PRESS&&(s.hold=l.MAX_HOLD_PRESS):s.hold=l.HOLD_PRESS,u.tap(o,s.point,1,s.hold);break;case"move":u.move(o,s.path,s.duration);break;case"flick":u.flick(o,s.point,s.axis,s.distance,s.duration);break;case"pinch":u.pinch(o,s.center,s.r1,s.r2,s.duration,s.start,s.rotation);break;case"rotate":u.rotate(o,s.center,s.r1,s.r2,s.duration,s.start,s.rotation)}else e.error(t+": Not a supported gesture simulation: "+i)}},"3.7.2",{requires:["async-queue","event-simulate","node-screen"]}); +YUI.add("gesture-simulate",function(e,t){function T(n){n||e.error(t+": invalid target node"),this.node=n,this.target=e.Node.getDOMNode(n);var r=this.node.getXY(),i=this._getDims();a=r[0]+i[0]/2,f=r[1]+i[1]/2}var t="gesture-simulate",n=e.config.win&&"ontouchstart"in e.config.win&&!e.UA.phantomjs&&!(e.UA.chrome&&e.UA.chrome<6),r={tap:1,doubletap:1,press:1,move:1,flick:1,pinch:1,rotate:1},i={touchstart:1,touchmove:1,touchend:1,touchcancel:1},s=e.config.doc,o,u=20,a,f,l={HOLD_TAP:10,DELAY_TAP:10,HOLD_PRESS:3e3,MIN_HOLD_PRESS:1e3,MAX_HOLD_PRESS:6e4,DISTANCE_MOVE:200,DURATION_MOVE:1e3,MAX_DURATION_MOVE:5e3,MIN_VELOCITY_FLICK:1.3,DISTANCE_FLICK:200,DURATION_FLICK:1e3,MAX_DURATION_FLICK:5e3,DURATION_PINCH:1e3},c="touchstart",h="touchmove",p="touchend",d="gesturestart",v="gesturechange",m="gestureend",g="mouseup",y="mousemove",b="mousedown",w="click",E="dblclick",S="x",x="y";T.prototype={_toRadian:function(e){return e*(Math.PI/180)},_getDims:function(){var e,t,n;return this.target.getBoundingClientRect?(e=this.target.getBoundingClientRect(),"height"in e?n=e.height:n=Math.abs(e.bottom-e.top),"width"in e?t=e.width:t=Math.abs(e.right-e.left)):(e=this.node.get("region"),t=e.width,n=e.height),[t,n]},_calculateDefaultPoint:function(t){var n;return!e.Lang.isArray(t)||t.length===0?t=[a,f]:(t.length==1&&(n=this._getDims[1],t[1]=n/2),t[0]=this.node.getX()+t[0],t[1]=this.node.getY()+t[1]),t},rotate:function(n,r,i,s,o,u,a){var f,l=i,c=s;if(!e.Lang.isNumber(l)||!e.Lang.isNumber(c)||l<0||c<0)f=this.target.offsetWidth=2&&this._simulateEvent(this.target,d,e.merge({scale:k,rotation:O},r))},timeout:0,context:this}),H=Math.floor(o/b),T=(x-S)/H,A=(L-k)/H,_=(M-O)/H,B=function(t){var n=S+T*t,r=N+n*Math.sin(this._toRadian(O+_*t)),i=C-n*Math.cos(this._toRadian(O+_*t)),s=N-n*Math.sin(this._toRadian(O+_*t)),o=C+n*Math.cos(this._toRadian(O+_*t)),u=(r+s)/2,a=(i+o)/2,f,l,c,p;f={pageX:r,pageY:i,clientX:r,clientY:i},l={pageX:s,pageY:o,clientX:s,clientY:o},p=this._createTouchList([e.merge({identifier:E++},f),e.merge({identifier:E++},l)]),c={pageX:u,pageY:a,clientX:u,clientY:a},this._simulateEvent(this.target,h,e.merge({touches:p,targetTouches:p,changedTouches:p,scale:k+A*t,rotation:O+_*t},c)),e.UA.ios>=2&&this._simulateEvent(this.target,v,e.merge({scale:k+A*t,rotation:O+_*t},c))};for(y=0;y=2&&this._simulateEvent(this.target,m,e.merge({scale:L,rotation:M},i)),this._simulateEvent(this.target,p,e.merge({touches:t,targetTouches:t,changedTouches:s,scale:L,rotation:M},i))},context:this}),n&&e.Lang.isFunction(n)&&g.add({fn:n,context:this.node}),g.run()},tap:function(t,r,i,s,o){var u=new e.AsyncQueue,a=this._getEmptyTouchList(),f,h,d,v,m;r=this._calculateDefaultPoint(r);if(!e.Lang.isNumber(i)||i<1)i=1;e.Lang.isNumber(s)||(s=l.HOLD_TAP),e.Lang.isNumber(o)||(o=l.DELAY_TAP),h={pageX:r[0],pageY:r[1],clientX:r[0],clientY:r[1]},f=this._createTouchList([e.merge({identifier:0},h)]),v=function(){this._simulateEvent(this.target,c,e.merge({touches:f,targetTouches:f,changedTouches:f},h))},m=function(){this._simulateEvent(this.target,p,e.merge({touches:a,targetTouches:a,changedTouches:f},h))};for(d=0;d1&&!n&&u.add({fn:function(){this._simulateEvent(this.target,E,h)},context:this}),t&&e.Lang.isFunction(t)&&u.add({fn:t,context:this.node}),u.run()},flick:function(n,r,i,s,o){var u;r=this._calculateDefaultPoint(r),e.Lang.isString(i)?(i=i.toLowerCase(),i!==S&&i!==x&&e.error(t+"(flick): Only x or y axis allowed")):i=S,e.Lang.isNumber(s)||(s=l.DISTANCE_FLICK),e.Lang.isNumber(o)?o>l.MAX_DURATION_FLICK&&(o=l.MAX_DURATION_FLICK):o=l.DURATION_FLICK,Math.abs(s)/ol.MAX_DURATION_MOVE&&(r=l.MAX_DURATION_MOVE):r=l.DURATION_MOVE,i={start:e.clone(n.point),end:[n.point[0]+n.xdist,n.point[1]+n.ydist]},this._move(t,i,r)},_move:function(t,n,r){var i,s,o=u,d,v,m,g=0,y;e.Lang.isNumber(r)?r>l.MAX_DURATION_MOVE&&(r=l.MAX_DURATION_MOVE):r=l.DURATION_MOVE,e.Lang.isObject(n)?(e.Lang.isArray(n.start)||(n.start=[a,f]),e.Lang.isArray(n.end)||(n.end=[a+l.DISTANCE_MOVE,f])):n={start:[a,f],end:[a+l.DISTANCE_MOVE,f]},e.AsyncQueue.defaults.timeout=o,i=new e.AsyncQueue,i.add({fn:function(){var t={pageX:n.start[0],pageY:n.start[1],clientX:n.start[0],clientY:n.start[1]},r=this._createTouchList([e.merge({identifier:g++},t)]);this._simulateEvent(this.target,c,e.merge({touches:r,targetTouches:r,changedTouches:r},t))},timeout:0,context:this}),d=Math.floor(r/o),v=(n.end[0]-n.start[0])/d,m=(n.end[1]-n.start[1])/d,y=function(t){var r=n.start[0]+v*t,i=n.start[1]+m*t,s={pageX:r,pageY:i,clientX:r,clientY:i},o=this._createTouchList([e.merge({identifier:g++},s)]);this._simulateEvent(this.target,h,e.merge({touches:o,targetTouches:o,changedTouches:o},s))};for(s=0;s=4||e.UA.ios&&e.UA.ios>=2?(e.each(n,function(t){t.identifier||(t.identifier=0),t.pageX||(t.pageX=0),t.pageY||(t.pageY=0),t.screenX||(t.screenX=0),t.screenY||(t.screenY=0),r.push(s.createTouch(e.config.win,o.target,t.identifier,t.pageX,t.pageY,t.screenX,t.screenY))}),i=s.createTouchList.apply(s,r)):e.UA.ios&&e.UA.ios<2?e.error(t+": No touch event simulation framework present."):(i=[],e.each(n,function(e){e.identifier||(e.identifier=0),e.clientX||(e.clientX=0),e.clientY||(e.clientY=0),e.pageX||(e.pageX=0),e.pageY||(e.pageY=0),e.screenX||(e.screenX=0),e.screenY||(e.screenY=0),i.push({target:o.target,identifier:e.identifier,clientX:e.clientX,clientY:e.clientY,pageX:e.pageX,pageY:e.pageY,screenX:e.screenX,screenY:e.screenY})}),i.item=function(e){return i[e]}):e.error(t+": Invalid touchPoints passed"),i},_simulateEvent:function(t,r,s){var o;i[r]?n?e.Event.simulate(t,r,s):this._isSingleTouch(s.touches,s.targetTouches,s.changedTouches)?(r={touchstart:b,touchmove:y,touchend:g}[r],s.button=0,s.relatedTarget=null,o=r===g?s.changedTouches:s.touches,s=e.mix(s,{screenX:o.item(0).screenX,screenY:o.item(0).screenY,clientX:o.item(0).clientX,clientY:o.item(0).clientY},!0),e.Event.simulate(t,r,s),r==g&&e.Event.simulate(t,w,s)):e.error("_simulateEvent(): Event '"+r+"' has multi touch objects that can't be simulated in your platform."):e.Event.simulate(t,r,s)},_isSingleTouch:function(e,t,n){return e&&e.length<=1&&t&&t.length<=1&&n&&n.length<=1}},e.GestureSimulation=T,e.GestureSimulation.defaults=l,e.GestureSimulation.GESTURES=r,e.Event.simulateGesture=function(n,i,s,o){n=e.one(n);var u=new e.GestureSimulation(n);i=i.toLowerCase(),!o&&e.Lang.isFunction(s)&&(o=s,s={}),s=s||{};if(r[i])switch(i){case"tap":u.tap(o,s.point,s.times,s.hold,s.delay);break;case"doubletap":u.tap(o,s.point,2);break;case"press":e.Lang.isNumber(s.hold)?s.holdl.MAX_HOLD_PRESS&&(s.hold=l.MAX_HOLD_PRESS):s.hold=l.HOLD_PRESS,u.tap(o,s.point,1,s.hold);break;case"move":u.move(o,s.path,s.duration);break;case"flick":u.flick(o,s.point,s.axis,s.distance,s.duration);break;case"pinch":u.pinch(o,s.center,s.r1,s.r2,s.duration,s.start,s.rotation);break;case"rotate":u.rotate(o,s.center,s.r1,s.r2,s.duration,s.start,s.rotation)}else e.error(t+": Not a supported gesture simulation: "+i)}},"3.7.3",{requires:["async-queue","event-simulate","node-screen"]}); diff --git a/lib/yuilib/3.7.2/build/gesture-simulate/gesture-simulate.js b/lib/yuilib/3.7.3/build/gesture-simulate/gesture-simulate.js similarity index 99% rename from lib/yuilib/3.7.2/build/gesture-simulate/gesture-simulate.js rename to lib/yuilib/3.7.3/build/gesture-simulate/gesture-simulate.js index eaed9b7dfb0..939c250562b 100644 --- a/lib/yuilib/3.7.2/build/gesture-simulate/gesture-simulate.js +++ b/lib/yuilib/3.7.3/build/gesture-simulate/gesture-simulate.js @@ -1,5 +1,5 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ @@ -1328,4 +1328,4 @@ Y.Event.simulateGesture = function(node, name, options, cb) { }; -}, '3.7.2', {"requires": ["async-queue", "event-simulate", "node-screen"]}); +}, '3.7.3', {"requires": ["async-queue", "event-simulate", "node-screen"]}); diff --git a/lib/yuilib/3.7.2/build/get-nodejs/get-coverage.js b/lib/yuilib/3.7.3/build/get-nodejs/get-coverage.js similarity index 99% rename from lib/yuilib/3.7.2/build/get-nodejs/get-coverage.js rename to lib/yuilib/3.7.3/build/get-nodejs/get-coverage.js index a3c4f356e16..a1b442ec3fa 100644 --- a/lib/yuilib/3.7.2/build/get-nodejs/get-coverage.js +++ b/lib/yuilib/3.7.3/build/get-nodejs/get-coverage.js @@ -1,5 +1,5 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ @@ -32,7 +32,7 @@ _yuitest_coverage["/build/get/get.js"] = { path: "/build/get/get.js", code: [] }; -_yuitest_coverage["/build/get/get.js"].code=["YUI.add('get', function(Y) {",""," /**"," * NodeJS specific Get module used to load remote resources. It contains the same signature as the default Get module so there is no code change needed."," * @module get-nodejs"," * @class GetNodeJS"," */"," "," var path = require('path'),"," vm = require('vm'),"," fs = require('fs'),"," request = require('request'),"," existsSync = fs.existsSync || path.existsSync;","",""," Y.Get = function() {"," };",""," //Setup the default config base path"," Y.config.base = path.join(__dirname, '../');",""," YUI.require = require;"," YUI.process = process;"," "," /**"," * Escape the path for Windows, they need to be double encoded when used as `__dirname` or `__filename`"," * @method escapeWinPath"," * @protected"," * @param {String} p The path to modify"," * @return {String} The encoded path"," */"," var escapeWinPath = function(p) {"," return p.replace(/\\\\/g, '\\\\\\\\');"," };",""," /**"," * Takes the raw JS files and wraps them to be executed in the YUI context so they can be loaded"," * into the YUI object"," * @method _exec"," * @private"," * @param {String} data The JS to execute"," * @param {String} url The path to the file that was parsed"," * @param {Callback} cb The callback to execute when this is completed"," * @param {Error} cb.err=null Error object"," * @param {String} cb.url The URL that was just parsed"," */",""," Y.Get._exec = function(data, url, cb) {"," var dirName = escapeWinPath(path.dirname(url));"," var fileName = escapeWinPath(url);",""," if (dirName.match(/^https?:\\/\\//)) {"," dirName = '.';"," fileName = 'remoteResource';"," }",""," var mod = \"(function(YUI) { var __dirname = '\" + dirName + \"'; \"+"," \"var __filename = '\" + fileName + \"'; \" +"," \"var process = YUI.process;\" +"," \"var require = function(file) {\" +"," \" if (file.indexOf('./') === 0) {\" +"," \" file = __dirname + file.replace('./', '/'); }\" +"," \" return YUI.require(file); }; \" +"," data + \" ;return YUI; })\";"," "," //var mod = \"(function(YUI) { \" + data + \";return YUI; })\";"," var script = vm.createScript(mod, url);"," var fn = script.runInThisContext(mod);"," YUI = fn(YUI);"," cb(null, url);"," };"," "," /**"," * Fetches the content from a remote URL or a file from disc and passes the content"," * off to `_exec` for parsing"," * @method _include"," * @private"," * @param {String} url The URL/File path to fetch the content from"," * @param {Callback} cb The callback to fire once the content has been executed via `_exec`"," */"," Y.Get._include = function(url, cb) {"," var self = this;",""," if (url.match(/^https?:\\/\\//)) {"," var cfg = {"," url: url,"," timeout: self.timeout"," };"," request(cfg, function (err, response, body) {"," if (err) {"," cb(err, url);"," } else {"," Y.Get._exec(body, url, cb);"," }"," });"," } else {"," if (Y.config.useSync) {"," //Needs to be in useSync"," if (existsSync(url)) {"," var mod = fs.readFileSync(url,'utf8');"," Y.Get._exec(mod, url, cb);"," } else {"," cb('Path does not exist: ' + url, url);"," }"," } else {"," fs.readFile(url, 'utf8', function(err, mod) {"," if (err) {"," cb(err, url);"," } else {"," Y.Get._exec(mod, url, cb);"," }"," });"," }"," }"," "," };","",""," var end = function(cb, msg, result) {"," if (Y.Lang.isFunction(cb.onEnd)) {"," cb.onEnd.call(Y, msg, result);"," }"," }, pass = function(cb) {"," if (Y.Lang.isFunction(cb.onSuccess)) {"," cb.onSuccess.call(Y, cb);"," }"," end(cb, 'success', 'success');"," }, fail = function(cb, er) {"," er.errors = [er];"," if (Y.Lang.isFunction(cb.onFailure)) {"," cb.onFailure.call(Y, er, cb);"," }"," end(cb, er, 'fail');"," };","",""," /**"," * Override for Get.script for loading local or remote YUI modules."," * @method js"," * @param {Array|String} s The URL's to load into this context"," * @param {Object} options Transaction options"," */"," Y.Get.js = function(s, options) {"," var A = Y.Array,"," self = this,"," urls = A(s), url, i, l = urls.length, c= 0,"," check = function() {"," if (c === l) {"," pass(options);"," }"," };","","",""," for (i=0; i` nodes, a failed CSS"," request may still be reported as a success because in these browsers"," it can be difficult or impossible to distinguish between success and"," failure for CSS resources.",""," @property {Function} [options.onTimeout] Callback to execute after a"," transaction times out.",""," @property {Number} [options.pollInterval=50] Polling interval (in"," milliseconds) for detecting CSS load completion in browsers that don't"," support the `load` event on `` nodes. This isn't used for"," JavaScript.",""," @property {Number} [options.purgethreshold=20] Number of nodes to insert"," before triggering an automatic purge when `autopurge` is `true`.",""," @property {Number} [options.timeout] Number of milliseconds to wait before"," aborting a transaction. When a timeout occurs, the `onTimeout` callback"," is called, followed by `onFailure` and finally `onEnd`. By default,"," there is no timeout.",""," @property {String} [options.type] Resource type (\"css\" or \"js\"). This option"," is set automatically by the `css()` and `js()` functions and will be"," ignored there, but may be useful when using the `load()` function. If"," not specified, the type will be inferred from the URL, defaulting to"," \"js\" if the URL doesn't contain a recognizable file extension."," **/"," options: {"," attributes: {"," charset: 'utf-8'"," },",""," purgethreshold: 20"," },",""," // -- Protected Properties -------------------------------------------------",""," /**"," Regex that matches a CSS URL. Used to guess the file type when it's not"," specified.",""," @property REGEX_CSS"," @type RegExp"," @final"," @protected"," @static"," @since 3.5.0"," **/"," REGEX_CSS: /\\.css(?:[?;].*)?$/i,",""," /**"," Regex that matches a JS URL. Used to guess the file type when it's not"," specified.",""," @property REGEX_JS"," @type RegExp"," @final"," @protected"," @static"," @since 3.5.0"," **/"," REGEX_JS : /\\.js(?:[?;].*)?$/i,",""," /**"," Contains information about the current environment, such as what script and"," link injection features it supports.",""," This object is created and populated the first time the `_getEnv()` method"," is called.",""," @property _env"," @type Object"," @protected"," @static"," @since 3.5.0"," **/",""," /**"," Mapping of document _yuid strings to or node references so we"," don't have to look the node up each time we want to insert a request node.",""," @property _insertCache"," @type Object"," @protected"," @static"," @since 3.5.0"," **/"," _insertCache: {},",""," /**"," Information about the currently pending transaction, if any.",""," This is actually an object with two properties: `callback`, containing the"," optional callback passed to `css()`, `load()`, or `js()`; and `transaction`,"," containing the actual transaction instance.",""," @property _pending"," @type Object"," @protected"," @static"," @since 3.5.0"," **/"," _pending: null,",""," /**"," HTML nodes eligible to be purged next time autopurge is triggered.",""," @property _purgeNodes"," @type HTMLElement[]"," @protected"," @static"," @since 3.5.0"," **/"," _purgeNodes: [],",""," /**"," Queued transactions and associated callbacks.",""," @property _queue"," @type Object[]"," @protected"," @static"," @since 3.5.0"," **/"," _queue: [],",""," // -- Public Methods -------------------------------------------------------",""," /**"," Aborts the specified transaction.",""," This will cause the transaction's `onFailure` callback to be called and"," will prevent any new script and link nodes from being added to the document,"," but any resources that have already been requested will continue loading"," (there's no safe way to prevent this, unfortunately).",""," *Note:* This method is deprecated as of 3.5.0, and will be removed in a"," future version of YUI. Use the transaction-level `abort()` method instead.",""," @method abort"," @param {Get.Transaction} transaction Transaction to abort."," @deprecated Use the `abort()` method on the transaction instead."," @static"," **/"," abort: function (transaction) {"," var i, id, item, len, pending;","",""," if (!transaction.abort) {"," id = transaction;"," pending = this._pending;"," transaction = null;",""," if (pending && pending.transaction.id === id) {"," transaction = pending.transaction;"," this._pending = null;"," } else {"," for (i = 0, len = this._queue.length; i < len; ++i) {"," item = this._queue[i].transaction;",""," if (item.id === id) {"," transaction = item;"," this._queue.splice(i, 1);"," break;"," }"," }"," }"," }",""," transaction && transaction.abort();"," },",""," /**"," Loads one or more CSS files.",""," The _urls_ parameter may be provided as a URL string, a request object,"," or an array of URL strings and/or request objects.",""," A request object is just an object that contains a `url` property and zero"," or more options that should apply specifically to that request."," Request-specific options take priority over transaction-level options and"," default options.",""," URLs may be relative or absolute, and do not have to have the same origin"," as the current page.",""," The `options` parameter may be omitted completely and a callback passed in"," its place, if desired.",""," @example",""," // Load a single CSS file and log a message on completion."," Y.Get.css('foo.css', function (err) {"," if (err) {"," } else {"," }"," });",""," // Load multiple CSS files and log a message when all have finished"," // loading."," var urls = ['foo.css', 'http://example.com/bar.css', 'baz/quux.css'];",""," Y.Get.css(urls, function (err) {"," if (err) {"," } else {"," }"," });",""," // Specify transaction-level options, which will apply to all requests"," // within the transaction."," Y.Get.css(urls, {"," attributes: {'class': 'my-css'},"," timeout : 5000"," });",""," // Specify per-request options, which override transaction-level and"," // default options."," Y.Get.css(["," {url: 'foo.css', attributes: {id: 'foo'}},"," {url: 'bar.css', attributes: {id: 'bar', charset: 'iso-8859-1'}}"," ]);",""," @method css"," @param {String|Object|Array} urls URL string, request object, or array"," of URLs and/or request objects to load."," @param {Object} [options] Options for this transaction. See the"," `Y.Get.options` property for a complete list of available options."," @param {Function} [callback] Callback function to be called on completion."," This is a general callback and will be called before any more granular"," callbacks (`onSuccess`, `onFailure`, etc.) specified in the `options`"," object.",""," @param {Array|null} callback.err Array of errors that occurred during"," the transaction, or `null` on success."," @param {Get.Transaction} callback.transaction Transaction object.",""," @return {Get.Transaction} Transaction object."," @static"," **/"," css: function (urls, options, callback) {"," return this._load('css', urls, options, callback);"," },",""," /**"," Loads one or more JavaScript resources.",""," The _urls_ parameter may be provided as a URL string, a request object,"," or an array of URL strings and/or request objects.",""," A request object is just an object that contains a `url` property and zero"," or more options that should apply specifically to that request."," Request-specific options take priority over transaction-level options and"," default options.",""," URLs may be relative or absolute, and do not have to have the same origin"," as the current page.",""," The `options` parameter may be omitted completely and a callback passed in"," its place, if desired.",""," Scripts will be executed in the order they're specified unless the `async`"," option is `true`, in which case they'll be loaded in parallel and executed"," in whatever order they finish loading.",""," @example",""," // Load a single JS file and log a message on completion."," Y.Get.js('foo.js', function (err) {"," if (err) {"," } else {"," }"," });",""," // Load multiple JS files, execute them in order, and log a message when"," // all have finished loading."," var urls = ['foo.js', 'http://example.com/bar.js', 'baz/quux.js'];",""," Y.Get.js(urls, function (err) {"," if (err) {"," } else {"," }"," });",""," // Specify transaction-level options, which will apply to all requests"," // within the transaction."," Y.Get.js(urls, {"," attributes: {'class': 'my-js'},"," timeout : 5000"," });",""," // Specify per-request options, which override transaction-level and"," // default options."," Y.Get.js(["," {url: 'foo.js', attributes: {id: 'foo'}},"," {url: 'bar.js', attributes: {id: 'bar', charset: 'iso-8859-1'}}"," ]);",""," @method js"," @param {String|Object|Array} urls URL string, request object, or array"," of URLs and/or request objects to load."," @param {Object} [options] Options for this transaction. See the"," `Y.Get.options` property for a complete list of available options."," @param {Function} [callback] Callback function to be called on completion."," This is a general callback and will be called before any more granular"," callbacks (`onSuccess`, `onFailure`, etc.) specified in the `options`"," object.",""," @param {Array|null} callback.err Array of errors that occurred during"," the transaction, or `null` on success."," @param {Get.Transaction} callback.transaction Transaction object.",""," @return {Get.Transaction} Transaction object."," @since 3.5.0"," @static"," **/"," js: function (urls, options, callback) {"," return this._load('js', urls, options, callback);"," },",""," /**"," Loads one or more CSS and/or JavaScript resources in the same transaction.",""," Use this method when you want to load both CSS and JavaScript in a single"," transaction and be notified when all requested URLs have finished loading,"," regardless of type.",""," Behavior and options are the same as for the `css()` and `js()` methods. If"," a resource type isn't specified in per-request options or transaction-level"," options, Get will guess the file type based on the URL's extension (`.css`"," or `.js`, with or without a following query string). If the file type can't"," be guessed from the URL, a warning will be logged and Get will assume the"," URL is a JavaScript resource.",""," @example",""," // Load both CSS and JS files in a single transaction, and log a message"," // when all files have finished loading."," Y.Get.load(['foo.css', 'bar.js', 'baz.css'], function (err) {"," if (err) {"," } else {"," }"," });",""," @method load"," @param {String|Object|Array} urls URL string, request object, or array"," of URLs and/or request objects to load."," @param {Object} [options] Options for this transaction. See the"," `Y.Get.options` property for a complete list of available options."," @param {Function} [callback] Callback function to be called on completion."," This is a general callback and will be called before any more granular"," callbacks (`onSuccess`, `onFailure`, etc.) specified in the `options`"," object.",""," @param {Array|null} err Array of errors that occurred during the"," transaction, or `null` on success."," @param {Get.Transaction} Transaction object.",""," @return {Get.Transaction} Transaction object."," @since 3.5.0"," @static"," **/"," load: function (urls, options, callback) {"," return this._load(null, urls, options, callback);"," },",""," // -- Protected Methods ----------------------------------------------------",""," /**"," Triggers an automatic purge if the purge threshold has been reached.",""," @method _autoPurge"," @param {Number} threshold Purge threshold to use, in milliseconds."," @protected"," @since 3.5.0"," @static"," **/"," _autoPurge: function (threshold) {"," if (threshold && this._purgeNodes.length >= threshold) {"," this._purge(this._purgeNodes);"," }"," },",""," /**"," Populates the `_env` property with information about the current"," environment.",""," @method _getEnv"," @return {Object} Environment information."," @protected"," @since 3.5.0"," @static"," **/"," _getEnv: function () {"," var doc = Y.config.doc,"," ua = Y.UA;",""," // Note: some of these checks require browser sniffs since it's not"," // feasible to load test files on every pageview just to perform a"," // feature test. I'm sorry if this makes you sad."," return (this._env = {"," // True if this is a browser that supports disabling async mode on"," // dynamically created script nodes. See"," // https://developer.mozilla.org/En/HTML/Element/Script#Attributes"," async: doc && doc.createElement('script').async === true,",""," // True if this browser fires an event when a dynamically injected"," // link node fails to load. This is currently true for Firefox 9+"," // and WebKit 535.24+."," cssFail: ua.gecko >= 9 || ua.compareVersions(ua.webkit, 535.24) >= 0,",""," // True if this browser fires an event when a dynamically injected"," // link node finishes loading. This is currently true for IE, Opera,"," // Firefox 9+, and WebKit 535.24+. Note that IE versions <9 fire the"," // DOM 0 \"onload\" event, but not \"load\". All versions of IE fire"," // \"onload\"."," // davglass: Seems that Chrome on Android needs this to be false."," cssLoad: ("," (!ua.gecko && !ua.webkit) || ua.gecko >= 9 ||"," ua.compareVersions(ua.webkit, 535.24) >= 0"," ) && !(ua.chrome && ua.chrome <= 18),",""," // True if this browser preserves script execution order while"," // loading scripts in parallel as long as the script node's `async`"," // attribute is set to false to explicitly disable async execution."," preservesScriptOrder: !!(ua.gecko || ua.opera)"," });"," },",""," _getTransaction: function (urls, options) {"," var requests = [],"," i, len, req, url;",""," if (!Lang.isArray(urls)) {"," urls = [urls];"," }",""," options = Y.merge(this.options, options);",""," // Clone the attributes object so we don't end up modifying it by ref."," options.attributes = Y.merge(this.options.attributes,"," options.attributes);",""," for (i = 0, len = urls.length; i < len; ++i) {"," url = urls[i];"," req = {attributes: {}};",""," // If `url` is a string, we create a URL object for it, then mix in"," // global options and request-specific options. If it's an object"," // with a \"url\" property, we assume it's a request object containing"," // URL-specific options."," if (typeof url === 'string') {"," req.url = url;"," } else if (url.url) {"," // URL-specific options override both global defaults and"," // request-specific options."," Y.mix(req, url, false, null, 0, true);"," url = url.url; // Make url a string so we can use it later."," } else {"," continue;"," }",""," Y.mix(req, options, false, null, 0, true);",""," // If we didn't get an explicit type for this URL either in the"," // request options or the URL-specific options, try to determine"," // one from the file extension."," if (!req.type) {"," if (this.REGEX_CSS.test(url)) {"," req.type = 'css';"," } else {"," if (!this.REGEX_JS.test(url)) {"," }",""," req.type = 'js';"," }"," }",""," // Mix in type-specific default options, but don't overwrite any"," // options that have already been set."," Y.mix(req, req.type === 'js' ? this.jsOptions : this.cssOptions,"," false, null, 0, true);",""," // Give the node an id attribute if it doesn't already have one."," req.attributes.id || (req.attributes.id = Y.guid());",""," // Backcompat for <3.5.0 behavior."," if (req.win) {"," req.doc = req.win.document;"," } else {"," req.win = req.doc.defaultView || req.doc.parentWindow;"," }",""," if (req.charset) {"," req.attributes.charset = req.charset;"," }",""," requests.push(req);"," }",""," return new Transaction(requests, options);"," },",""," _load: function (type, urls, options, callback) {"," var transaction;",""," // Allow callback as third param."," if (typeof options === 'function') {"," callback = options;"," options = {};"," }",""," options || (options = {});"," options.type = type;",""," if (!this._env) {"," this._getEnv();"," }",""," transaction = this._getTransaction(urls, options);",""," this._queue.push({"," callback : callback,"," transaction: transaction"," });",""," this._next();",""," return transaction;"," },",""," _next: function () {"," var item;",""," if (this._pending) {"," return;"," }",""," item = this._queue.shift();",""," if (item) {"," this._pending = item;",""," item.transaction.execute(function () {"," item.callback && item.callback.apply(this, arguments);",""," Get._pending = null;"," Get._next();"," });"," }"," },",""," _purge: function (nodes) {"," var purgeNodes = this._purgeNodes,"," isTransaction = nodes !== purgeNodes,"," index, node;",""," while (node = nodes.pop()) { // assignment"," // Don't purge nodes that haven't finished loading (or errored out),"," // since this can hang the transaction."," if (!node._yuiget_finished) {"," continue;"," }",""," node.parentNode && node.parentNode.removeChild(node);",""," // If this is a transaction-level purge and this node also exists in"," // the Get-level _purgeNodes array, we need to remove it from"," // _purgeNodes to avoid creating a memory leak. The indexOf lookup"," // sucks, but until we get WeakMaps, this is the least troublesome"," // way to do this (we can't just hold onto node ids because they may"," // not be in the same document)."," if (isTransaction) {"," index = Y.Array.indexOf(purgeNodes, node);",""," if (index > -1) {"," purgeNodes.splice(index, 1);"," }"," }"," }"," }","};","","/**","Alias for `js()`.","","@method script","@static","**/","Get.script = Get.js;","","/**","Represents a Get transaction, which may contain requests for one or more JS or","CSS files.","","This class should not be instantiated manually. Instances will be created and","returned as needed by Y.Get's `css()`, `js()`, and `load()` methods.","","@class Get.Transaction","@constructor","@since 3.5.0","**/","Get.Transaction = Transaction = function (requests, options) {"," var self = this;",""," self.id = Transaction._lastId += 1;"," self.data = options.data;"," self.errors = [];"," self.nodes = [];"," self.options = options;"," self.requests = requests;",""," self._callbacks = []; // callbacks to call after execution finishes"," self._queue = [];"," self._waiting = 0;",""," // Deprecated pre-3.5.0 properties."," self.tId = self.id; // Use `id` instead."," self.win = options.win || Y.config.win;","};","","/**","Arbitrary data object associated with this transaction.","","This object comes from the options passed to `Get.css()`, `Get.js()`, or","`Get.load()`, and will be `undefined` if no data object was specified.","","@property {Object} data","**/","","/**","Array of errors that have occurred during this transaction, if any.","","@since 3.5.0","@property {Object[]} errors","@property {String} errors.error Error message.","@property {Object} errors.request Request object related to the error.","**/","","/**","Numeric id for this transaction, unique among all transactions within the same","YUI sandbox in the current pageview.","","@property {Number} id","@since 3.5.0","**/","","/**","HTMLElement nodes (native ones, not YUI Node instances) that have been inserted","during the current transaction.","","@property {HTMLElement[]} nodes","**/","","/**","Options associated with this transaction.","","See `Get.options` for the full list of available options.","","@property {Object} options","@since 3.5.0","**/","","/**","Request objects contained in this transaction. Each request object represents","one CSS or JS URL that will be (or has been) requested and loaded into the page.","","@property {Object} requests","@since 3.5.0","**/","","/**","Id of the most recent transaction.","","@property _lastId","@type Number","@protected","@static","**/","Transaction._lastId = 0;","","Transaction.prototype = {"," // -- Public Properties ----------------------------------------------------",""," /**"," Current state of this transaction. One of \"new\", \"executing\", or \"done\".",""," @property _state"," @type String"," @protected"," **/"," _state: 'new', // \"new\", \"executing\", or \"done\"",""," // -- Public Methods -------------------------------------------------------",""," /**"," Aborts this transaction.",""," This will cause the transaction's `onFailure` callback to be called and"," will prevent any new script and link nodes from being added to the document,"," but any resources that have already been requested will continue loading"," (there's no safe way to prevent this, unfortunately).",""," @method abort"," @param {String} [msg=\"Aborted.\"] Optional message to use in the `errors`"," array describing why the transaction was aborted."," **/"," abort: function (msg) {"," this._pending = null;"," this._pendingCSS = null;"," this._pollTimer = clearTimeout(this._pollTimer);"," this._queue = [];"," this._waiting = 0;",""," this.errors.push({error: msg || 'Aborted'});"," this._finish();"," },",""," /**"," Begins execting the transaction.",""," There's usually no reason to call this manually, since Get will call it"," automatically when other pending transactions have finished. If you really"," want to execute your transaction before Get does, you can, but be aware that"," this transaction's scripts may end up executing before the scripts in other"," pending transactions.",""," If the transaction is already executing, the specified callback (if any)"," will be queued and called after execution finishes. If the transaction has"," already finished, the callback will be called immediately (the transaction"," will not be executed again).",""," @method execute"," @param {Function} callback Callback function to execute after all requests"," in the transaction are complete, or after the transaction is aborted."," **/"," execute: function (callback) {"," var self = this,"," requests = self.requests,"," state = self._state,"," i, len, queue, req;",""," if (state === 'done') {"," callback && callback(self.errors.length ? self.errors : null, self);"," return;"," } else {"," callback && self._callbacks.push(callback);",""," if (state === 'executing') {"," return;"," }"," }",""," self._state = 'executing';"," self._queue = queue = [];",""," if (self.options.timeout) {"," self._timeout = setTimeout(function () {"," self.abort('Timeout');"," }, self.options.timeout);"," }",""," for (i = 0, len = requests.length; i < len; ++i) {"," req = self.requests[i];",""," if (req.async || req.type === 'css') {"," // No need to queue CSS or fully async JS."," self._insert(req);"," } else {"," queue.push(req);"," }"," }",""," self._next();"," },",""," /**"," Manually purges any `"," ","","@method template","@param {Function} template Precompiled Handlebars template function.","@return {Function} Compiled template function.","*/","","","}, '3.7.2', {\"requires\": [\"escape\"]});"]; +_yuitest_coverage["build/handlebars-base/handlebars-base.js"].code=["YUI.add('handlebars-base', function (Y, NAME) {","","/*!","Handlebars.js - Copyright (C) 2011 Yehuda Katz","https://raw.github.com/wycats/handlebars.js/master/LICENSE","*/","/* THIS FILE IS GENERATED BY A BUILD SCRIPT - DO NOT EDIT! */","","// BEGIN(BROWSER)","","/*jshint eqnull:true*/","var Handlebars = {};","","Handlebars.VERSION = \"1.0.beta.5\";","","Handlebars.helpers = {};","Handlebars.partials = {};","","Handlebars.registerHelper = function(name, fn, inverse) {"," if(inverse) { fn.not = inverse; }"," this.helpers[name] = fn;","};","","Handlebars.registerPartial = function(name, str) {"," this.partials[name] = str;","};","","Handlebars.registerHelper('helperMissing', function(arg) {"," if(arguments.length === 2) {"," return undefined;"," } else {"," throw new Error(\"Could not find property '\" + arg + \"'\");"," }","});","","var toString = Object.prototype.toString, functionType = \"[object Function]\";","","Handlebars.registerHelper('blockHelperMissing', function(context, options) {"," var inverse = options.inverse || function() {}, fn = options.fn;","",""," var ret = \"\";"," var type = toString.call(context);",""," if(type === functionType) { context = context.call(this); }",""," if(context === true) {"," return fn(this);"," } else if(context === false || context == null) {"," return inverse(this);"," } else if(type === \"[object Array]\") {"," if(context.length > 0) {"," for(var i=0, j=context.length; i 0) {"," for(var i=0, j=context.length; i.","","@module handlebars","@main handlebars","@since 3.5.0","*/","","/**","Provides basic Handlebars template rendering functionality. Use this module when","you only need to render pre-compiled templates.","","@module handlebars","@submodule handlebars-base","*/","","/**","Handlebars is a simple template language inspired by Mustache.","","This is a YUI port of the original Handlebars project, which can be found at",".","","@class Handlebars","@since 3.5.0","*/","Y.Handlebars = Handlebars;","","Handlebars.VERSION += '-yui';","","// The rest of this file is just API docs for methods defined in Handlebars","// itself.","","/**","Registers a helper function that will be made available to all templates.","","Helper functions receive the current template context as the `this` object, and","can also receive arguments passed by the template.","","@example",""," Y.Handlebars.registerHelper('linkify', function () {"," return '' +"," Y.Escape.html(this.text) + '';"," });",""," var source = '
      {{#links}}
    • {{{linkify}}}
    • {{/links}}
    ';",""," Y.Handlebars.render(source, {"," links: ["," {url: '/foo', text: 'Foo'},"," {url: '/bar', text: 'Bar'},"," {url: '/baz', text: 'Baz'}"," ]"," });","","@method registerHelper","@param {String} name Name of this helper.","@param {Function} fn Helper function.","@param {Boolean} [inverse=false] If `true`, this helper will be considered an"," \"inverse\" helper, like \"unless\". This means it will only be called if the"," expression given in the template evaluates to a false or empty value.","*/","","/**","Registers a partial that will be made available to all templates.","","A partial is another template that can be used to render part of a larger","template. For example, a website with a common header and footer across all its","pages might use a template for each page, which would call shared partials to","render the headers and footers.","","Partials may be specified as uncompiled template strings or as compiled template","functions.","","@example",""," Y.Handlebars.registerPartial('header', '

    {{title}}

    ');"," Y.Handlebars.registerPartial('footer', 'Copyright (c) 2011 by Me.');",""," var source = '{{> header}}

    Mustaches are awesome!

    {{> footer}}';",""," Y.Handlebars.render(source, {title: 'My Page About Mustaches'});","","@method registerPartial","@param {String} name Name of this partial.","@param {Function|String} partial Template string or compiled template function.","*/","","/**","Converts a precompiled template into a renderable template function.","","@example",""," "," ","","@method template","@param {Function} template Precompiled Handlebars template function.","@return {Function} Compiled template function.","*/","","","}, '3.7.3', {\"requires\": [\"escape\"]});"]; _yuitest_coverage["build/handlebars-base/handlebars-base.js"].lines = {"1":0,"12":0,"14":0,"16":0,"17":0,"19":0,"20":0,"21":0,"24":0,"25":0,"28":0,"29":0,"30":0,"32":0,"36":0,"38":0,"39":0,"42":0,"43":0,"45":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"57":0,"59":0,"61":0,"65":0,"66":0,"67":0,"69":0,"70":0,"71":0,"74":0,"76":0,"79":0,"80":0,"81":0,"83":0,"84":0,"86":0,"90":0,"91":0,"92":0,"93":0,"95":0,"98":0,"99":0,"102":0,"103":0,"112":0,"114":0,"115":0,"118":0,"119":0,"120":0,"124":0,"127":0,"129":0,"130":0,"133":0,"134":0,"137":0,"140":0,"141":0,"146":0,"147":0,"148":0,"149":0,"157":0,"161":0,"165":0,"168":0,"174":0,"177":0,"182":0,"183":0,"184":0,"185":0,"186":0,"188":0,"189":0,"196":0,"197":0,"198":0,"203":0,"205":0,"206":0,"208":0,"212":0,"213":0,"215":0,"218":0,"220":0,"222":0,"223":0,"224":0,"225":0,"226":0,"227":0,"229":0,"230":0,"235":0,"269":0,"271":0}; _yuitest_coverage["build/handlebars-base/handlebars-base.js"].functions = {"registerHelper:19":0,"registerPartial:24":0,"(anonymous 2):28":0,"(anonymous 3):38":0,"(anonymous 5):65":0,"(anonymous 6):79":0,"(anonymous 7):90":0,"(anonymous 8):98":0,"(anonymous 9):102":0,"Exception:114":0,"SafeString:129":0,"toString:133":0,"escapeExpression:138":0,"isEmpty:160":0,"program:181":0,"(anonymous 10):196":0,"template:175":0,"(anonymous 11):205":0,"programWithDepth:202":0,"(anonymous 12):212":0,"program:211":0,"noop:218":0,"invokePartial:219":0,"(anonymous 1):1":0}; _yuitest_coverage["build/handlebars-base/handlebars-base.js"].coveredLines = 109; @@ -524,4 +524,4 @@ Converts a precompiled template into a renderable template function. */ -}, '3.7.2', {"requires": ["escape"]}); +}, '3.7.3', {"requires": ["escape"]}); diff --git a/lib/yuilib/3.7.2/build/handlebars-base/handlebars-base-debug.js b/lib/yuilib/3.7.3/build/handlebars-base/handlebars-base-debug.js similarity index 99% rename from lib/yuilib/3.7.2/build/handlebars-base/handlebars-base-debug.js rename to lib/yuilib/3.7.3/build/handlebars-base/handlebars-base-debug.js index 65abbf5d50e..a20c3c87fd7 100644 --- a/lib/yuilib/3.7.2/build/handlebars-base/handlebars-base-debug.js +++ b/lib/yuilib/3.7.3/build/handlebars-base/handlebars-base-debug.js @@ -1,5 +1,5 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ @@ -358,4 +358,4 @@ Converts a precompiled template into a renderable template function. */ -}, '3.7.2', {"requires": ["escape"]}); +}, '3.7.3', {"requires": ["escape"]}); diff --git a/lib/yuilib/3.7.2/build/handlebars-base/handlebars-base-min.js b/lib/yuilib/3.7.3/build/handlebars-base/handlebars-base-min.js similarity index 97% rename from lib/yuilib/3.7.2/build/handlebars-base/handlebars-base-min.js rename to lib/yuilib/3.7.3/build/handlebars-base/handlebars-base-min.js index 274fe7e065a..e55055cad7e 100644 --- a/lib/yuilib/3.7.2/build/handlebars-base/handlebars-base-min.js +++ b/lib/yuilib/3.7.3/build/handlebars-base/handlebars-base-min.js @@ -1,5 +1,5 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ @@ -9,4 +9,4 @@ YUI.add("handlebars-base",function(e,t){ Handlebars.js - Copyright (C) 2011 Yehuda Katz https://raw.github.com/wycats/handlebars.js/master/LICENSE */ -;var n={};n.VERSION="1.0.beta.5",n.helpers={},n.partials={},n.registerHelper=function(e,t,n){n&&(t.not=n),this.helpers[e]=t},n.registerPartial=function(e,t){this.partials[e]=t},n.registerHelper("helperMissing",function(e){if(arguments.length===2)return undefined;throw new Error("Could not find property '"+e+"'")});var r=Object.prototype.toString,i="[object Function]";n.registerHelper("blockHelperMissing",function(e,t){var n=t.inverse||function(){},s=t.fn,o="",u=r.call(e);u===i&&(e=e.call(this));if(e===!0)return s(this);if(e===!1||e==null)return n(this);if(u==="[object Array]"){if(e.length>0)for(var a=0,f=e.length;a0)for(var s=0,o=e.length;s0)for(var a=0,f=e.length;a0)for(var s=0,o=e.length;s 2) {"," expected.push(\"'\"+this.terminals_[p]+\"'\");"," }"," if (this.lexer.showPosition) {"," errStr = 'Parse error on line '+(yylineno+1)+\":\\n\"+this.lexer.showPosition()+\"\\nExpecting \"+expected.join(', ') + \", got '\" + (this.terminals_[symbol] || symbol)+ \"'\";"," } else {"," errStr = 'Parse error on line '+(yylineno+1)+\": Unexpected \" +"," (symbol == 1 /*EOF*/ ? \"end of input\" :"," (\"'\"+(this.terminals_[symbol] || symbol)+\"'\"));"," }"," this.parseError(errStr,"," {text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected});"," }",""," // just recovered from another error"," if (recovering == 3) {"," if (symbol == EOF) {"," throw new Error(errStr || 'Parsing halted.');"," }",""," // discard current lookahead and grab another"," yyleng = this.lexer.yyleng;"," yytext = this.lexer.yytext;"," yylineno = this.lexer.yylineno;"," yyloc = this.lexer.yylloc;"," symbol = lex();"," }",""," // try to recover from error"," while (1) {"," // check for error recovery rule in this state"," if ((TERROR.toString()) in table[state]) {"," break;"," }"," if (state === 0) {"," throw new Error(errStr || 'Parsing halted.');"," }"," popStack(1);"," state = stack[stack.length-1];"," }",""," preErrorSymbol = symbol == 2 ? null : symbol; // save the lookahead token"," symbol = TERROR; // insert generic error symbol as new lookahead"," state = stack[stack.length-1];"," action = table[state] && table[state][TERROR];"," recovering = 3; // allow 3 real symbols to be shifted before reporting a new error"," }",""," // this shouldn't happen, unless resolve defaults are off"," if (action[0] instanceof Array && action.length > 1) {"," throw new Error('Parse Error: multiple actions possible at state: '+state+', token: '+symbol);"," }",""," switch (action[0]) {",""," case 1: // shift"," //this.shiftCount++;",""," stack.push(symbol);"," vstack.push(this.lexer.yytext);"," lstack.push(this.lexer.yylloc);"," stack.push(action[1]); // push state"," symbol = null;"," if (!preErrorSymbol) { // normal execution/no error"," yyleng = this.lexer.yyleng;"," yytext = this.lexer.yytext;"," yylineno = this.lexer.yylineno;"," yyloc = this.lexer.yylloc;"," if (recovering > 0)"," recovering--;"," } else { // error just occurred, resume old lookahead f/ before error"," symbol = preErrorSymbol;"," preErrorSymbol = null;"," }"," break;",""," case 2: // reduce"," //this.reductionCount++;",""," len = this.productions_[action[1]][1];",""," // perform semantic action"," yyval.$ = vstack[vstack.length-len]; // default to $$ = $1"," // default location, uses first token for firsts, last for lasts"," yyval._$ = {"," first_line: lstack[lstack.length-(len||1)].first_line,"," last_line: lstack[lstack.length-1].last_line,"," first_column: lstack[lstack.length-(len||1)].first_column,"," last_column: lstack[lstack.length-1].last_column"," };"," r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack);",""," if (typeof r !== 'undefined') {"," return r;"," }",""," // pop off stack"," if (len) {"," stack = stack.slice(0,-1*len*2);"," vstack = vstack.slice(0, -1*len);"," lstack = lstack.slice(0, -1*len);"," }",""," stack.push(this.productions_[action[1]][0]); // push nonterminal (reduce)"," vstack.push(yyval.$);"," lstack.push(yyval._$);"," // goto new state = table[STATE][NONTERMINAL]"," newState = table[stack[stack.length-2]][stack[stack.length-1]];"," stack.push(newState);"," break;",""," case 3: // accept"," return true;"," }",""," }",""," return true;","}};","/* Jison generated lexer */","var lexer = (function(){","var lexer = ({EOF:1,","parseError:function parseError(str, hash) {"," if (this.yy.parser) {"," this.yy.parser.parseError(str, hash);"," } else {"," throw new Error(str);"," }"," },","setInput:function (input) {"," this._input = input;"," this._more = this._less = this.done = false;"," this.yylineno = this.yyleng = 0;"," this.yytext = this.matched = this.match = '';"," this.conditionStack = ['INITIAL'];"," this.yylloc = {first_line:1,first_column:0,last_line:1,last_column:0};"," return this;"," },","input:function () {"," var ch = this._input[0];"," this.yytext+=ch;"," this.yyleng++;"," this.match+=ch;"," this.matched+=ch;"," var lines = ch.match(/\\n/);"," if (lines) this.yylineno++;"," this._input = this._input.slice(1);"," return ch;"," },","unput:function (ch) {"," this._input = ch + this._input;"," return this;"," },","more:function () {"," this._more = true;"," return this;"," },","less:function (n) {"," this._input = this.match.slice(n) + this._input;"," },","pastInput:function () {"," var past = this.matched.substr(0, this.matched.length - this.match.length);"," return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\\n/g, \"\");"," },","upcomingInput:function () {"," var next = this.match;"," if (next.length < 20) {"," next += this._input.substr(0, 20-next.length);"," }"," return (next.substr(0,20)+(next.length > 20 ? '...':'')).replace(/\\n/g, \"\");"," },","showPosition:function () {"," var pre = this.pastInput();"," var c = new Array(pre.length + 1).join(\"-\");"," return pre + this.upcomingInput() + \"\\n\" + c+\"^\";"," },","next:function () {"," if (this.done) {"," return this.EOF;"," }"," if (!this._input) this.done = true;",""," var token,"," match,"," tempMatch,"," index,"," col,"," lines;"," if (!this._more) {"," this.yytext = '';"," this.match = '';"," }"," var rules = this._currentRules();"," for (var i=0;i < rules.length; i++) {"," tempMatch = this._input.match(this.rules[rules[i]]);"," if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {"," match = tempMatch;"," index = i;"," if (!this.options.flex) break;"," }"," }"," if (match) {"," lines = match[0].match(/\\n.*/g);"," if (lines) this.yylineno += lines.length;"," this.yylloc = {first_line: this.yylloc.last_line,"," last_line: this.yylineno+1,"," first_column: this.yylloc.last_column,"," last_column: lines ? lines[lines.length-1].length-1 : this.yylloc.last_column + match[0].length};"," this.yytext += match[0];"," this.match += match[0];"," this.yyleng = this.yytext.length;"," this._more = false;"," this._input = this._input.slice(match[0].length);"," this.matched += match[0];"," token = this.performAction.call(this, this.yy, this, rules[index],this.conditionStack[this.conditionStack.length-1]);"," if (this.done && this._input) this.done = false;"," if (token) return token;"," else return;"," }"," if (this._input === \"\") {"," return this.EOF;"," } else {"," return this.parseError('Lexical error on line '+(this.yylineno+1)+'. Unrecognized text.\\n'+this.showPosition(),"," {text: \"\", token: null, line: this.yylineno});"," }"," },","lex:function lex() {"," var r = this.next();"," if (typeof r !== 'undefined') {"," return r;"," } else {"," return this.lex();"," }"," },","begin:function begin(condition) {"," this.conditionStack.push(condition);"," },","popState:function popState() {"," return this.conditionStack.pop();"," },","_currentRules:function _currentRules() {"," return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules;"," },","topState:function () {"," return this.conditionStack[this.conditionStack.length-2];"," },","pushState:function begin(condition) {"," this.begin(condition);"," }});","lexer.options = {};","lexer.performAction = function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {","","var YYSTATE=YY_START","switch($avoiding_name_collisions) {","case 0:"," if(yy_.yytext.slice(-1) !== \"\\\\\") this.begin(\"mu\");"," if(yy_.yytext.slice(-1) === \"\\\\\") yy_.yytext = yy_.yytext.substr(0,yy_.yyleng-1), this.begin(\"emu\");"," if(yy_.yytext) return 14;"," ","break;","case 1: return 14; ","break;","case 2: this.popState(); return 14; ","break;","case 3: return 24; ","break;","case 4: return 16; ","break;","case 5: return 20; ","break;","case 6: return 19; ","break;","case 7: return 19; ","break;","case 8: return 23; ","break;","case 9: return 23; ","break;","case 10: yy_.yytext = yy_.yytext.substr(3,yy_.yyleng-5); this.popState(); return 15; ","break;","case 11: return 22; ","break;","case 12: return 34; ","break;","case 13: return 33; ","break;","case 14: return 33; ","break;","case 15: return 36; ","break;","case 16: /*ignore whitespace*/ ","break;","case 17: this.popState(); return 18; ","break;","case 18: this.popState(); return 18; ","break;","case 19: yy_.yytext = yy_.yytext.substr(1,yy_.yyleng-2).replace(/\\\\\"/g,'\"'); return 28; ","break;","case 20: return 30; ","break;","case 21: return 30; ","break;","case 22: return 29; ","break;","case 23: return 33; ","break;","case 24: yy_.yytext = yy_.yytext.substr(1, yy_.yyleng-2); return 33; ","break;","case 25: return 'INVALID'; ","break;","case 26: return 5; ","break;","}","};","lexer.rules = [/^(?:[^\\x00]*?(?=(\\{\\{)))/,/^(?:[^\\x00]+)/,/^(?:[^\\x00]{2,}?(?=(\\{\\{)))/,/^(?:\\{\\{>)/,/^(?:\\{\\{#)/,/^(?:\\{\\{\\/)/,/^(?:\\{\\{\\^)/,/^(?:\\{\\{\\s*else\\b)/,/^(?:\\{\\{\\{)/,/^(?:\\{\\{&)/,/^(?:\\{\\{![\\s\\S]*?\\}\\})/,/^(?:\\{\\{)/,/^(?:=)/,/^(?:\\.(?=[} ]))/,/^(?:\\.\\.)/,/^(?:[\\/.])/,/^(?:\\s+)/,/^(?:\\}\\}\\})/,/^(?:\\}\\})/,/^(?:\"(\\\\[\"]|[^\"])*\")/,/^(?:true(?=[}\\s]))/,/^(?:false(?=[}\\s]))/,/^(?:[0-9]+(?=[}\\s]))/,/^(?:[a-zA-Z0-9_$-]+(?=[=}\\s\\/.]))/,/^(?:\\[[^\\]]*\\])/,/^(?:.)/,/^(?:$)/];","lexer.conditions = {\"mu\":{\"rules\":[3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26],\"inclusive\":false},\"emu\":{\"rules\":[2],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,1,26],\"inclusive\":true}};","return lexer;})()","parser.lexer = lexer;function Parser () { this.yy = {}; }Parser.prototype = parser;parser.Parser = Parser;","return new Parser;","})();","if (typeof require !== 'undefined' && typeof exports !== 'undefined') {","exports.parser = handlebars;","exports.Parser = handlebars.Parser;","exports.parse = function () { return handlebars.parse.apply(handlebars, arguments); }","exports.main = function commonjsMain(args) {"," if (!args[1])"," throw new Error('Usage: '+args[0]+' FILE');"," var source, cwd;"," if (typeof process !== 'undefined') {"," source = require('fs').readFileSync(require('path').resolve(args[1]), \"utf8\");"," } else {"," source = require(\"file\").path(require(\"file\").cwd()).join(args[1]).read({charset: \"utf-8\"});"," }"," return exports.parser.parse(source);","}","if (typeof module !== 'undefined' && require.main === module) {"," exports.main(typeof process !== 'undefined' ? process.argv.slice(1) : require(\"system\").args);","}","};","/* THIS FILE IS GENERATED BY A BUILD SCRIPT - DO NOT EDIT! */","","// BEGIN(BROWSER)","Handlebars.Parser = handlebars;","","Handlebars.parse = function(string) {"," Handlebars.Parser.yy = Handlebars.AST;"," return Handlebars.Parser.parse(string);","};","","Handlebars.print = function(ast) {"," return new Handlebars.PrintVisitor().accept(ast);","};","","Handlebars.logger = {"," DEBUG: 0, INFO: 1, WARN: 2, ERROR: 3, level: 3,",""," // override in the host environment"," log: function(level, str) {}","};","","Handlebars.log = function(level, str) { Handlebars.logger.log(level, str); };","","// END(BROWSER)","/* THIS FILE IS GENERATED BY A BUILD SCRIPT - DO NOT EDIT! */","","// BEGIN(BROWSER)","(function() {",""," Handlebars.AST = {};",""," Handlebars.AST.ProgramNode = function(statements, inverse) {"," this.type = \"program\";"," this.statements = statements;"," if(inverse) { this.inverse = new Handlebars.AST.ProgramNode(inverse); }"," };",""," Handlebars.AST.MustacheNode = function(rawParams, hash, unescaped) {"," this.type = \"mustache\";"," this.escaped = !unescaped;"," this.hash = hash;",""," var id = this.id = rawParams[0];"," var params = this.params = rawParams.slice(1);",""," // a mustache is an eligible helper if:"," // * its id is simple (a single part, not `this` or `..`)"," var eligibleHelper = this.eligibleHelper = id.isSimple;",""," // a mustache is definitely a helper if:"," // * it is an eligible helper, and"," // * it has at least one parameter or hash segment"," this.isHelper = eligibleHelper && (params.length || hash);",""," // if a mustache is an eligible helper but not a definite"," // helper, it is ambiguous, and will be resolved in a later"," // pass or at runtime."," };",""," Handlebars.AST.PartialNode = function(id, context) {"," this.type = \"partial\";",""," // TODO: disallow complex IDs",""," this.id = id;"," this.context = context;"," };",""," var verifyMatch = function(open, close) {"," if(open.original !== close.original) {"," throw new Handlebars.Exception(open.original + \" doesn't match \" + close.original);"," }"," };",""," Handlebars.AST.BlockNode = function(mustache, program, inverse, close) {"," verifyMatch(mustache.id, close);"," this.type = \"block\";"," this.mustache = mustache;"," this.program = program;"," this.inverse = inverse;",""," if (this.inverse && !this.program) {"," this.isInverse = true;"," }"," };",""," Handlebars.AST.ContentNode = function(string) {"," this.type = \"content\";"," this.string = string;"," };",""," Handlebars.AST.HashNode = function(pairs) {"," this.type = \"hash\";"," this.pairs = pairs;"," };",""," Handlebars.AST.IdNode = function(parts) {"," this.type = \"ID\";"," this.original = parts.join(\".\");",""," var dig = [], depth = 0;",""," for(var i=0,l=parts.length; i 0) {"," this.source[1] = this.source[1] + \", \" + locals.join(\", \");"," }",""," // Generate minimizer alias mappings"," if (!this.isChild) {"," var aliases = [];"," for (var alias in this.context.aliases) {"," this.source[1] = this.source[1] + ', ' + alias + '=' + this.context.aliases[alias];"," }"," }",""," if (this.source[1]) {"," this.source[1] = \"var \" + this.source[1].substring(2) + \";\";"," }",""," // Merge children"," if (!this.isChild) {"," this.source[1] += '\\n' + this.context.programs.join('\\n') + '\\n';"," }",""," if (!this.environment.isSimple) {"," this.source.push(\"return buffer;\");"," }",""," var params = this.isChild ? [\"depth0\", \"data\"] : [\"Handlebars\", \"depth0\", \"helpers\", \"partials\", \"data\"];",""," for(var i=0, l=this.environment.depths.list.length; i this.stackVars.length) { this.stackVars.push(\"stack\" + this.stackSlot); }"," return \"stack\" + this.stackSlot;"," },",""," popStack: function() {"," var item = this.compileStack.pop();",""," if (item instanceof Literal) {"," return item.value;"," } else {"," this.stackSlot--;"," return item;"," }"," },",""," topStack: function() {"," var item = this.compileStack[this.compileStack.length - 1];",""," if (item instanceof Literal) {"," return item.value;"," } else {"," return item;"," }"," },",""," quotedString: function(str) {"," return '\"' + str"," .replace(/\\\\/g, '\\\\\\\\')"," .replace(/\"/g, '\\\\\"')"," .replace(/\\n/g, '\\\\n')"," .replace(/\\r/g, '\\\\r') + '\"';"," },",""," setupHelper: function(paramSize, name) {"," var params = [];"," this.setupParams(paramSize, params);"," var foundHelper = this.nameLookup('helpers', name, 'helper');",""," return {"," params: params,"," name: foundHelper,"," callParams: [\"depth0\"].concat(params).join(\", \"),"," helperMissingParams: [\"depth0\", this.quotedString(name)].concat(params).join(\", \")"," };"," },",""," // the params and contexts arguments are passed in arrays"," // to fill in"," setupParams: function(paramSize, params) {"," var options = [], contexts = [], param, inverse, program;",""," options.push(\"hash:\" + this.popStack());",""," inverse = this.popStack();"," program = this.popStack();",""," // Avoid setting fn and inverse if neither are set. This allows"," // helpers to do a check for `if (options.fn)`"," if (program || inverse) {"," if (!program) {"," this.context.aliases.self = \"this\";"," program = \"self.noop\";"," }",""," if (!inverse) {"," this.context.aliases.self = \"this\";"," inverse = \"self.noop\";"," }",""," options.push(\"inverse:\" + inverse);"," options.push(\"fn:\" + program);"," }",""," for(var i=0; i \"The pie of the day is Maple Custard!\"","","@method render","@param {String} string Handlebars template string to render.","@param {Object} context Context object to pass to the template.","@param {Object} [options] Compile/render options."," @param {Object} [options.helpers] Helper functions."," @param {Object} [options.partials] Partials."," @param {Object} [options.data] Data.","@return {String} Rendered template string.","*/","Handlebars.render = function (string, context, options) {"," return Handlebars.compile(string)(context, options);","};","","// The rest of this file is just API docs for methods defined in Handlebars","// itself.","","/**","Compiles a Handlebars template string into a function. To render the template,","call the function and pass in a context object.","","@example",""," var template = Y.Handlebars.compile('The pie of the day is {{pie}}!.');"," template({pie: 'Pecan'});"," // => \"The pie of the day is Pecan!\"","","@method compile","@param {String} string Handlebars template string to compile.","@param {Object} [options] Compiler options.","@return {Function} Compiled template function.","*/","","/**","Precompiles a Handlebars template string into a string of JavaScript code. This","can be used to precompile a template at build time or on the server, and the","resulting template can then be rendered at runtime or on the client without","needing to go through a compile step.","","To render a precompiled template, evaluate the code and then pass the resulting","function to `Y.Handlebars.template()` to get back an executable template","function.","","@method precompile","@param {String} string Handlebars template string to compile.","@param {Object} [options] Compiler options.","@return {String} Precompiled template code.","*/","","","}, '3.7.2', {\"requires\": [\"handlebars-base\"]});"]; +_yuitest_coverage["build/handlebars-compiler/handlebars-compiler.js"].code=["YUI.add('handlebars-compiler', function (Y, NAME) {","","/*!","Handlebars.js - Copyright (C) 2011 Yehuda Katz","https://raw.github.com/wycats/handlebars.js/master/LICENSE","*/","// This file contains code that will be inserted at the beginning of the","// handlebars-compiler module.","","// This is necessary because the Y.Handlebars object is created in the","// handlebars-base module, but the native Handlebars code expects to use a local","// Handlebars reference.","var Handlebars = Y.Handlebars;","/* THIS FILE IS GENERATED BY A BUILD SCRIPT - DO NOT EDIT! */","","/* Jison generated parser */","var handlebars = (function(){","var parser = {trace: function trace() { },","yy: {},","symbols_: {\"error\":2,\"root\":3,\"program\":4,\"EOF\":5,\"statements\":6,\"simpleInverse\":7,\"statement\":8,\"openInverse\":9,\"closeBlock\":10,\"openBlock\":11,\"mustache\":12,\"partial\":13,\"CONTENT\":14,\"COMMENT\":15,\"OPEN_BLOCK\":16,\"inMustache\":17,\"CLOSE\":18,\"OPEN_INVERSE\":19,\"OPEN_ENDBLOCK\":20,\"path\":21,\"OPEN\":22,\"OPEN_UNESCAPED\":23,\"OPEN_PARTIAL\":24,\"params\":25,\"hash\":26,\"param\":27,\"STRING\":28,\"INTEGER\":29,\"BOOLEAN\":30,\"hashSegments\":31,\"hashSegment\":32,\"ID\":33,\"EQUALS\":34,\"pathSegments\":35,\"SEP\":36,\"$accept\":0,\"$end\":1},","terminals_: {2:\"error\",5:\"EOF\",14:\"CONTENT\",15:\"COMMENT\",16:\"OPEN_BLOCK\",18:\"CLOSE\",19:\"OPEN_INVERSE\",20:\"OPEN_ENDBLOCK\",22:\"OPEN\",23:\"OPEN_UNESCAPED\",24:\"OPEN_PARTIAL\",28:\"STRING\",29:\"INTEGER\",30:\"BOOLEAN\",33:\"ID\",34:\"EQUALS\",36:\"SEP\"},","productions_: [0,[3,2],[4,3],[4,1],[4,0],[6,1],[6,2],[8,3],[8,3],[8,1],[8,1],[8,1],[8,1],[11,3],[9,3],[10,3],[12,3],[12,3],[13,3],[13,4],[7,2],[17,3],[17,2],[17,2],[17,1],[25,2],[25,1],[27,1],[27,1],[27,1],[27,1],[26,1],[31,2],[31,1],[32,3],[32,3],[32,3],[32,3],[21,1],[35,3],[35,1]],","performAction: function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$) {","","var $0 = $$.length - 1;","switch (yystate) {","case 1: return $$[$0-1]; ","break;","case 2: this.$ = new yy.ProgramNode($$[$0-2], $$[$0]); ","break;","case 3: this.$ = new yy.ProgramNode($$[$0]); ","break;","case 4: this.$ = new yy.ProgramNode([]); ","break;","case 5: this.$ = [$$[$0]]; ","break;","case 6: $$[$0-1].push($$[$0]); this.$ = $$[$0-1]; ","break;","case 7: this.$ = new yy.BlockNode($$[$0-2], $$[$0-1].inverse, $$[$0-1], $$[$0]); ","break;","case 8: this.$ = new yy.BlockNode($$[$0-2], $$[$0-1], $$[$0-1].inverse, $$[$0]); ","break;","case 9: this.$ = $$[$0]; ","break;","case 10: this.$ = $$[$0]; ","break;","case 11: this.$ = new yy.ContentNode($$[$0]); ","break;","case 12: this.$ = new yy.CommentNode($$[$0]); ","break;","case 13: this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1]); ","break;","case 14: this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1]); ","break;","case 15: this.$ = $$[$0-1]; ","break;","case 16: this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1]); ","break;","case 17: this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1], true); ","break;","case 18: this.$ = new yy.PartialNode($$[$0-1]); ","break;","case 19: this.$ = new yy.PartialNode($$[$0-2], $$[$0-1]); ","break;","case 20: ","break;","case 21: this.$ = [[$$[$0-2]].concat($$[$0-1]), $$[$0]]; ","break;","case 22: this.$ = [[$$[$0-1]].concat($$[$0]), null]; ","break;","case 23: this.$ = [[$$[$0-1]], $$[$0]]; ","break;","case 24: this.$ = [[$$[$0]], null]; ","break;","case 25: $$[$0-1].push($$[$0]); this.$ = $$[$0-1]; ","break;","case 26: this.$ = [$$[$0]]; ","break;","case 27: this.$ = $$[$0]; ","break;","case 28: this.$ = new yy.StringNode($$[$0]); ","break;","case 29: this.$ = new yy.IntegerNode($$[$0]); ","break;","case 30: this.$ = new yy.BooleanNode($$[$0]); ","break;","case 31: this.$ = new yy.HashNode($$[$0]); ","break;","case 32: $$[$0-1].push($$[$0]); this.$ = $$[$0-1]; ","break;","case 33: this.$ = [$$[$0]]; ","break;","case 34: this.$ = [$$[$0-2], $$[$0]]; ","break;","case 35: this.$ = [$$[$0-2], new yy.StringNode($$[$0])]; ","break;","case 36: this.$ = [$$[$0-2], new yy.IntegerNode($$[$0])]; ","break;","case 37: this.$ = [$$[$0-2], new yy.BooleanNode($$[$0])]; ","break;","case 38: this.$ = new yy.IdNode($$[$0]); ","break;","case 39: $$[$0-2].push($$[$0]); this.$ = $$[$0-2]; ","break;","case 40: this.$ = [$$[$0]]; ","break;","}","},","table: [{3:1,4:2,5:[2,4],6:3,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],22:[1,13],23:[1,14],24:[1,15]},{1:[3]},{5:[1,16]},{5:[2,3],7:17,8:18,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,19],20:[2,3],22:[1,13],23:[1,14],24:[1,15]},{5:[2,5],14:[2,5],15:[2,5],16:[2,5],19:[2,5],20:[2,5],22:[2,5],23:[2,5],24:[2,5]},{4:20,6:3,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,4],22:[1,13],23:[1,14],24:[1,15]},{4:21,6:3,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,4],22:[1,13],23:[1,14],24:[1,15]},{5:[2,9],14:[2,9],15:[2,9],16:[2,9],19:[2,9],20:[2,9],22:[2,9],23:[2,9],24:[2,9]},{5:[2,10],14:[2,10],15:[2,10],16:[2,10],19:[2,10],20:[2,10],22:[2,10],23:[2,10],24:[2,10]},{5:[2,11],14:[2,11],15:[2,11],16:[2,11],19:[2,11],20:[2,11],22:[2,11],23:[2,11],24:[2,11]},{5:[2,12],14:[2,12],15:[2,12],16:[2,12],19:[2,12],20:[2,12],22:[2,12],23:[2,12],24:[2,12]},{17:22,21:23,33:[1,25],35:24},{17:26,21:23,33:[1,25],35:24},{17:27,21:23,33:[1,25],35:24},{17:28,21:23,33:[1,25],35:24},{21:29,33:[1,25],35:24},{1:[2,1]},{6:30,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],22:[1,13],23:[1,14],24:[1,15]},{5:[2,6],14:[2,6],15:[2,6],16:[2,6],19:[2,6],20:[2,6],22:[2,6],23:[2,6],24:[2,6]},{17:22,18:[1,31],21:23,33:[1,25],35:24},{10:32,20:[1,33]},{10:34,20:[1,33]},{18:[1,35]},{18:[2,24],21:40,25:36,26:37,27:38,28:[1,41],29:[1,42],30:[1,43],31:39,32:44,33:[1,45],35:24},{18:[2,38],28:[2,38],29:[2,38],30:[2,38],33:[2,38],36:[1,46]},{18:[2,40],28:[2,40],29:[2,40],30:[2,40],33:[2,40],36:[2,40]},{18:[1,47]},{18:[1,48]},{18:[1,49]},{18:[1,50],21:51,33:[1,25],35:24},{5:[2,2],8:18,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,2],22:[1,13],23:[1,14],24:[1,15]},{14:[2,20],15:[2,20],16:[2,20],19:[2,20],22:[2,20],23:[2,20],24:[2,20]},{5:[2,7],14:[2,7],15:[2,7],16:[2,7],19:[2,7],20:[2,7],22:[2,7],23:[2,7],24:[2,7]},{21:52,33:[1,25],35:24},{5:[2,8],14:[2,8],15:[2,8],16:[2,8],19:[2,8],20:[2,8],22:[2,8],23:[2,8],24:[2,8]},{14:[2,14],15:[2,14],16:[2,14],19:[2,14],20:[2,14],22:[2,14],23:[2,14],24:[2,14]},{18:[2,22],21:40,26:53,27:54,28:[1,41],29:[1,42],30:[1,43],31:39,32:44,33:[1,45],35:24},{18:[2,23]},{18:[2,26],28:[2,26],29:[2,26],30:[2,26],33:[2,26]},{18:[2,31],32:55,33:[1,56]},{18:[2,27],28:[2,27],29:[2,27],30:[2,27],33:[2,27]},{18:[2,28],28:[2,28],29:[2,28],30:[2,28],33:[2,28]},{18:[2,29],28:[2,29],29:[2,29],30:[2,29],33:[2,29]},{18:[2,30],28:[2,30],29:[2,30],30:[2,30],33:[2,30]},{18:[2,33],33:[2,33]},{18:[2,40],28:[2,40],29:[2,40],30:[2,40],33:[2,40],34:[1,57],36:[2,40]},{33:[1,58]},{14:[2,13],15:[2,13],16:[2,13],19:[2,13],20:[2,13],22:[2,13],23:[2,13],24:[2,13]},{5:[2,16],14:[2,16],15:[2,16],16:[2,16],19:[2,16],20:[2,16],22:[2,16],23:[2,16],24:[2,16]},{5:[2,17],14:[2,17],15:[2,17],16:[2,17],19:[2,17],20:[2,17],22:[2,17],23:[2,17],24:[2,17]},{5:[2,18],14:[2,18],15:[2,18],16:[2,18],19:[2,18],20:[2,18],22:[2,18],23:[2,18],24:[2,18]},{18:[1,59]},{18:[1,60]},{18:[2,21]},{18:[2,25],28:[2,25],29:[2,25],30:[2,25],33:[2,25]},{18:[2,32],33:[2,32]},{34:[1,57]},{21:61,28:[1,62],29:[1,63],30:[1,64],33:[1,25],35:24},{18:[2,39],28:[2,39],29:[2,39],30:[2,39],33:[2,39],36:[2,39]},{5:[2,19],14:[2,19],15:[2,19],16:[2,19],19:[2,19],20:[2,19],22:[2,19],23:[2,19],24:[2,19]},{5:[2,15],14:[2,15],15:[2,15],16:[2,15],19:[2,15],20:[2,15],22:[2,15],23:[2,15],24:[2,15]},{18:[2,34],33:[2,34]},{18:[2,35],33:[2,35]},{18:[2,36],33:[2,36]},{18:[2,37],33:[2,37]}],","defaultActions: {16:[2,1],37:[2,23],53:[2,21]},","parseError: function parseError(str, hash) {"," throw new Error(str);","},","parse: function parse(input) {"," var self = this,"," stack = [0],"," vstack = [null], // semantic value stack"," lstack = [], // location stack"," table = this.table,"," yytext = '',"," yylineno = 0,"," yyleng = 0,"," recovering = 0,"," TERROR = 2,"," EOF = 1;",""," //this.reductionCount = this.shiftCount = 0;",""," this.lexer.setInput(input);"," this.lexer.yy = this.yy;"," this.yy.lexer = this.lexer;"," this.yy.parser = this;"," if (typeof this.lexer.yylloc == 'undefined')"," this.lexer.yylloc = {};"," var yyloc = this.lexer.yylloc;"," lstack.push(yyloc);",""," if (typeof this.yy.parseError === 'function')"," this.parseError = this.yy.parseError;",""," function popStack (n) {"," stack.length = stack.length - 2*n;"," vstack.length = vstack.length - n;"," lstack.length = lstack.length - n;"," }",""," function lex() {"," var token;"," token = self.lexer.lex() || 1; // $end = 1"," // if token isn't its numeric value, convert"," if (typeof token !== 'number') {"," token = self.symbols_[token] || token;"," }"," return token;"," }",""," var symbol, preErrorSymbol, state, action, a, r, yyval={},p,len,newState, expected;"," while (true) {"," // retreive state number from top of stack"," state = stack[stack.length-1];",""," // use default actions if available"," if (this.defaultActions[state]) {"," action = this.defaultActions[state];"," } else {"," if (symbol === null || typeof symbol == 'undefined') {"," symbol = lex();"," }"," // read action for current state and first input"," action = table[state] && table[state][symbol];"," }",""," // handle parse error"," _handle_error:"," if (typeof action === 'undefined' || !action.length || !action[0]) {",""," var errStr = '';"," if (!recovering) {"," // Report error"," expected = [];"," for (p in table[state]) if (this.terminals_[p] && p > 2) {"," expected.push(\"'\"+this.terminals_[p]+\"'\");"," }"," if (this.lexer.showPosition) {"," errStr = 'Parse error on line '+(yylineno+1)+\":\\n\"+this.lexer.showPosition()+\"\\nExpecting \"+expected.join(', ') + \", got '\" + (this.terminals_[symbol] || symbol)+ \"'\";"," } else {"," errStr = 'Parse error on line '+(yylineno+1)+\": Unexpected \" +"," (symbol == 1 /*EOF*/ ? \"end of input\" :"," (\"'\"+(this.terminals_[symbol] || symbol)+\"'\"));"," }"," this.parseError(errStr,"," {text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected});"," }",""," // just recovered from another error"," if (recovering == 3) {"," if (symbol == EOF) {"," throw new Error(errStr || 'Parsing halted.');"," }",""," // discard current lookahead and grab another"," yyleng = this.lexer.yyleng;"," yytext = this.lexer.yytext;"," yylineno = this.lexer.yylineno;"," yyloc = this.lexer.yylloc;"," symbol = lex();"," }",""," // try to recover from error"," while (1) {"," // check for error recovery rule in this state"," if ((TERROR.toString()) in table[state]) {"," break;"," }"," if (state === 0) {"," throw new Error(errStr || 'Parsing halted.');"," }"," popStack(1);"," state = stack[stack.length-1];"," }",""," preErrorSymbol = symbol == 2 ? null : symbol; // save the lookahead token"," symbol = TERROR; // insert generic error symbol as new lookahead"," state = stack[stack.length-1];"," action = table[state] && table[state][TERROR];"," recovering = 3; // allow 3 real symbols to be shifted before reporting a new error"," }",""," // this shouldn't happen, unless resolve defaults are off"," if (action[0] instanceof Array && action.length > 1) {"," throw new Error('Parse Error: multiple actions possible at state: '+state+', token: '+symbol);"," }",""," switch (action[0]) {",""," case 1: // shift"," //this.shiftCount++;",""," stack.push(symbol);"," vstack.push(this.lexer.yytext);"," lstack.push(this.lexer.yylloc);"," stack.push(action[1]); // push state"," symbol = null;"," if (!preErrorSymbol) { // normal execution/no error"," yyleng = this.lexer.yyleng;"," yytext = this.lexer.yytext;"," yylineno = this.lexer.yylineno;"," yyloc = this.lexer.yylloc;"," if (recovering > 0)"," recovering--;"," } else { // error just occurred, resume old lookahead f/ before error"," symbol = preErrorSymbol;"," preErrorSymbol = null;"," }"," break;",""," case 2: // reduce"," //this.reductionCount++;",""," len = this.productions_[action[1]][1];",""," // perform semantic action"," yyval.$ = vstack[vstack.length-len]; // default to $$ = $1"," // default location, uses first token for firsts, last for lasts"," yyval._$ = {"," first_line: lstack[lstack.length-(len||1)].first_line,"," last_line: lstack[lstack.length-1].last_line,"," first_column: lstack[lstack.length-(len||1)].first_column,"," last_column: lstack[lstack.length-1].last_column"," };"," r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack);",""," if (typeof r !== 'undefined') {"," return r;"," }",""," // pop off stack"," if (len) {"," stack = stack.slice(0,-1*len*2);"," vstack = vstack.slice(0, -1*len);"," lstack = lstack.slice(0, -1*len);"," }",""," stack.push(this.productions_[action[1]][0]); // push nonterminal (reduce)"," vstack.push(yyval.$);"," lstack.push(yyval._$);"," // goto new state = table[STATE][NONTERMINAL]"," newState = table[stack[stack.length-2]][stack[stack.length-1]];"," stack.push(newState);"," break;",""," case 3: // accept"," return true;"," }",""," }",""," return true;","}};","/* Jison generated lexer */","var lexer = (function(){","var lexer = ({EOF:1,","parseError:function parseError(str, hash) {"," if (this.yy.parser) {"," this.yy.parser.parseError(str, hash);"," } else {"," throw new Error(str);"," }"," },","setInput:function (input) {"," this._input = input;"," this._more = this._less = this.done = false;"," this.yylineno = this.yyleng = 0;"," this.yytext = this.matched = this.match = '';"," this.conditionStack = ['INITIAL'];"," this.yylloc = {first_line:1,first_column:0,last_line:1,last_column:0};"," return this;"," },","input:function () {"," var ch = this._input[0];"," this.yytext+=ch;"," this.yyleng++;"," this.match+=ch;"," this.matched+=ch;"," var lines = ch.match(/\\n/);"," if (lines) this.yylineno++;"," this._input = this._input.slice(1);"," return ch;"," },","unput:function (ch) {"," this._input = ch + this._input;"," return this;"," },","more:function () {"," this._more = true;"," return this;"," },","less:function (n) {"," this._input = this.match.slice(n) + this._input;"," },","pastInput:function () {"," var past = this.matched.substr(0, this.matched.length - this.match.length);"," return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\\n/g, \"\");"," },","upcomingInput:function () {"," var next = this.match;"," if (next.length < 20) {"," next += this._input.substr(0, 20-next.length);"," }"," return (next.substr(0,20)+(next.length > 20 ? '...':'')).replace(/\\n/g, \"\");"," },","showPosition:function () {"," var pre = this.pastInput();"," var c = new Array(pre.length + 1).join(\"-\");"," return pre + this.upcomingInput() + \"\\n\" + c+\"^\";"," },","next:function () {"," if (this.done) {"," return this.EOF;"," }"," if (!this._input) this.done = true;",""," var token,"," match,"," tempMatch,"," index,"," col,"," lines;"," if (!this._more) {"," this.yytext = '';"," this.match = '';"," }"," var rules = this._currentRules();"," for (var i=0;i < rules.length; i++) {"," tempMatch = this._input.match(this.rules[rules[i]]);"," if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {"," match = tempMatch;"," index = i;"," if (!this.options.flex) break;"," }"," }"," if (match) {"," lines = match[0].match(/\\n.*/g);"," if (lines) this.yylineno += lines.length;"," this.yylloc = {first_line: this.yylloc.last_line,"," last_line: this.yylineno+1,"," first_column: this.yylloc.last_column,"," last_column: lines ? lines[lines.length-1].length-1 : this.yylloc.last_column + match[0].length};"," this.yytext += match[0];"," this.match += match[0];"," this.yyleng = this.yytext.length;"," this._more = false;"," this._input = this._input.slice(match[0].length);"," this.matched += match[0];"," token = this.performAction.call(this, this.yy, this, rules[index],this.conditionStack[this.conditionStack.length-1]);"," if (this.done && this._input) this.done = false;"," if (token) return token;"," else return;"," }"," if (this._input === \"\") {"," return this.EOF;"," } else {"," return this.parseError('Lexical error on line '+(this.yylineno+1)+'. Unrecognized text.\\n'+this.showPosition(),"," {text: \"\", token: null, line: this.yylineno});"," }"," },","lex:function lex() {"," var r = this.next();"," if (typeof r !== 'undefined') {"," return r;"," } else {"," return this.lex();"," }"," },","begin:function begin(condition) {"," this.conditionStack.push(condition);"," },","popState:function popState() {"," return this.conditionStack.pop();"," },","_currentRules:function _currentRules() {"," return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules;"," },","topState:function () {"," return this.conditionStack[this.conditionStack.length-2];"," },","pushState:function begin(condition) {"," this.begin(condition);"," }});","lexer.options = {};","lexer.performAction = function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {","","var YYSTATE=YY_START","switch($avoiding_name_collisions) {","case 0:"," if(yy_.yytext.slice(-1) !== \"\\\\\") this.begin(\"mu\");"," if(yy_.yytext.slice(-1) === \"\\\\\") yy_.yytext = yy_.yytext.substr(0,yy_.yyleng-1), this.begin(\"emu\");"," if(yy_.yytext) return 14;"," ","break;","case 1: return 14; ","break;","case 2: this.popState(); return 14; ","break;","case 3: return 24; ","break;","case 4: return 16; ","break;","case 5: return 20; ","break;","case 6: return 19; ","break;","case 7: return 19; ","break;","case 8: return 23; ","break;","case 9: return 23; ","break;","case 10: yy_.yytext = yy_.yytext.substr(3,yy_.yyleng-5); this.popState(); return 15; ","break;","case 11: return 22; ","break;","case 12: return 34; ","break;","case 13: return 33; ","break;","case 14: return 33; ","break;","case 15: return 36; ","break;","case 16: /*ignore whitespace*/ ","break;","case 17: this.popState(); return 18; ","break;","case 18: this.popState(); return 18; ","break;","case 19: yy_.yytext = yy_.yytext.substr(1,yy_.yyleng-2).replace(/\\\\\"/g,'\"'); return 28; ","break;","case 20: return 30; ","break;","case 21: return 30; ","break;","case 22: return 29; ","break;","case 23: return 33; ","break;","case 24: yy_.yytext = yy_.yytext.substr(1, yy_.yyleng-2); return 33; ","break;","case 25: return 'INVALID'; ","break;","case 26: return 5; ","break;","}","};","lexer.rules = [/^(?:[^\\x00]*?(?=(\\{\\{)))/,/^(?:[^\\x00]+)/,/^(?:[^\\x00]{2,}?(?=(\\{\\{)))/,/^(?:\\{\\{>)/,/^(?:\\{\\{#)/,/^(?:\\{\\{\\/)/,/^(?:\\{\\{\\^)/,/^(?:\\{\\{\\s*else\\b)/,/^(?:\\{\\{\\{)/,/^(?:\\{\\{&)/,/^(?:\\{\\{![\\s\\S]*?\\}\\})/,/^(?:\\{\\{)/,/^(?:=)/,/^(?:\\.(?=[} ]))/,/^(?:\\.\\.)/,/^(?:[\\/.])/,/^(?:\\s+)/,/^(?:\\}\\}\\})/,/^(?:\\}\\})/,/^(?:\"(\\\\[\"]|[^\"])*\")/,/^(?:true(?=[}\\s]))/,/^(?:false(?=[}\\s]))/,/^(?:[0-9]+(?=[}\\s]))/,/^(?:[a-zA-Z0-9_$-]+(?=[=}\\s\\/.]))/,/^(?:\\[[^\\]]*\\])/,/^(?:.)/,/^(?:$)/];","lexer.conditions = {\"mu\":{\"rules\":[3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26],\"inclusive\":false},\"emu\":{\"rules\":[2],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,1,26],\"inclusive\":true}};","return lexer;})()","parser.lexer = lexer;function Parser () { this.yy = {}; }Parser.prototype = parser;parser.Parser = Parser;","return new Parser;","})();","if (typeof require !== 'undefined' && typeof exports !== 'undefined') {","exports.parser = handlebars;","exports.Parser = handlebars.Parser;","exports.parse = function () { return handlebars.parse.apply(handlebars, arguments); }","exports.main = function commonjsMain(args) {"," if (!args[1])"," throw new Error('Usage: '+args[0]+' FILE');"," var source, cwd;"," if (typeof process !== 'undefined') {"," source = require('fs').readFileSync(require('path').resolve(args[1]), \"utf8\");"," } else {"," source = require(\"file\").path(require(\"file\").cwd()).join(args[1]).read({charset: \"utf-8\"});"," }"," return exports.parser.parse(source);","}","if (typeof module !== 'undefined' && require.main === module) {"," exports.main(typeof process !== 'undefined' ? process.argv.slice(1) : require(\"system\").args);","}","};","/* THIS FILE IS GENERATED BY A BUILD SCRIPT - DO NOT EDIT! */","","// BEGIN(BROWSER)","Handlebars.Parser = handlebars;","","Handlebars.parse = function(string) {"," Handlebars.Parser.yy = Handlebars.AST;"," return Handlebars.Parser.parse(string);","};","","Handlebars.print = function(ast) {"," return new Handlebars.PrintVisitor().accept(ast);","};","","Handlebars.logger = {"," DEBUG: 0, INFO: 1, WARN: 2, ERROR: 3, level: 3,",""," // override in the host environment"," log: function(level, str) {}","};","","Handlebars.log = function(level, str) { Handlebars.logger.log(level, str); };","","// END(BROWSER)","/* THIS FILE IS GENERATED BY A BUILD SCRIPT - DO NOT EDIT! */","","// BEGIN(BROWSER)","(function() {",""," Handlebars.AST = {};",""," Handlebars.AST.ProgramNode = function(statements, inverse) {"," this.type = \"program\";"," this.statements = statements;"," if(inverse) { this.inverse = new Handlebars.AST.ProgramNode(inverse); }"," };",""," Handlebars.AST.MustacheNode = function(rawParams, hash, unescaped) {"," this.type = \"mustache\";"," this.escaped = !unescaped;"," this.hash = hash;",""," var id = this.id = rawParams[0];"," var params = this.params = rawParams.slice(1);",""," // a mustache is an eligible helper if:"," // * its id is simple (a single part, not `this` or `..`)"," var eligibleHelper = this.eligibleHelper = id.isSimple;",""," // a mustache is definitely a helper if:"," // * it is an eligible helper, and"," // * it has at least one parameter or hash segment"," this.isHelper = eligibleHelper && (params.length || hash);",""," // if a mustache is an eligible helper but not a definite"," // helper, it is ambiguous, and will be resolved in a later"," // pass or at runtime."," };",""," Handlebars.AST.PartialNode = function(id, context) {"," this.type = \"partial\";",""," // TODO: disallow complex IDs",""," this.id = id;"," this.context = context;"," };",""," var verifyMatch = function(open, close) {"," if(open.original !== close.original) {"," throw new Handlebars.Exception(open.original + \" doesn't match \" + close.original);"," }"," };",""," Handlebars.AST.BlockNode = function(mustache, program, inverse, close) {"," verifyMatch(mustache.id, close);"," this.type = \"block\";"," this.mustache = mustache;"," this.program = program;"," this.inverse = inverse;",""," if (this.inverse && !this.program) {"," this.isInverse = true;"," }"," };",""," Handlebars.AST.ContentNode = function(string) {"," this.type = \"content\";"," this.string = string;"," };",""," Handlebars.AST.HashNode = function(pairs) {"," this.type = \"hash\";"," this.pairs = pairs;"," };",""," Handlebars.AST.IdNode = function(parts) {"," this.type = \"ID\";"," this.original = parts.join(\".\");",""," var dig = [], depth = 0;",""," for(var i=0,l=parts.length; i 0) {"," this.source[1] = this.source[1] + \", \" + locals.join(\", \");"," }",""," // Generate minimizer alias mappings"," if (!this.isChild) {"," var aliases = [];"," for (var alias in this.context.aliases) {"," this.source[1] = this.source[1] + ', ' + alias + '=' + this.context.aliases[alias];"," }"," }",""," if (this.source[1]) {"," this.source[1] = \"var \" + this.source[1].substring(2) + \";\";"," }",""," // Merge children"," if (!this.isChild) {"," this.source[1] += '\\n' + this.context.programs.join('\\n') + '\\n';"," }",""," if (!this.environment.isSimple) {"," this.source.push(\"return buffer;\");"," }",""," var params = this.isChild ? [\"depth0\", \"data\"] : [\"Handlebars\", \"depth0\", \"helpers\", \"partials\", \"data\"];",""," for(var i=0, l=this.environment.depths.list.length; i this.stackVars.length) { this.stackVars.push(\"stack\" + this.stackSlot); }"," return \"stack\" + this.stackSlot;"," },",""," popStack: function() {"," var item = this.compileStack.pop();",""," if (item instanceof Literal) {"," return item.value;"," } else {"," this.stackSlot--;"," return item;"," }"," },",""," topStack: function() {"," var item = this.compileStack[this.compileStack.length - 1];",""," if (item instanceof Literal) {"," return item.value;"," } else {"," return item;"," }"," },",""," quotedString: function(str) {"," return '\"' + str"," .replace(/\\\\/g, '\\\\\\\\')"," .replace(/\"/g, '\\\\\"')"," .replace(/\\n/g, '\\\\n')"," .replace(/\\r/g, '\\\\r') + '\"';"," },",""," setupHelper: function(paramSize, name) {"," var params = [];"," this.setupParams(paramSize, params);"," var foundHelper = this.nameLookup('helpers', name, 'helper');",""," return {"," params: params,"," name: foundHelper,"," callParams: [\"depth0\"].concat(params).join(\", \"),"," helperMissingParams: [\"depth0\", this.quotedString(name)].concat(params).join(\", \")"," };"," },",""," // the params and contexts arguments are passed in arrays"," // to fill in"," setupParams: function(paramSize, params) {"," var options = [], contexts = [], param, inverse, program;",""," options.push(\"hash:\" + this.popStack());",""," inverse = this.popStack();"," program = this.popStack();",""," // Avoid setting fn and inverse if neither are set. This allows"," // helpers to do a check for `if (options.fn)`"," if (program || inverse) {"," if (!program) {"," this.context.aliases.self = \"this\";"," program = \"self.noop\";"," }",""," if (!inverse) {"," this.context.aliases.self = \"this\";"," inverse = \"self.noop\";"," }",""," options.push(\"inverse:\" + inverse);"," options.push(\"fn:\" + program);"," }",""," for(var i=0; i \"The pie of the day is Maple Custard!\"","","@method render","@param {String} string Handlebars template string to render.","@param {Object} context Context object to pass to the template.","@param {Object} [options] Compile/render options."," @param {Object} [options.helpers] Helper functions."," @param {Object} [options.partials] Partials."," @param {Object} [options.data] Data.","@return {String} Rendered template string.","*/","Handlebars.render = function (string, context, options) {"," return Handlebars.compile(string)(context, options);","};","","// The rest of this file is just API docs for methods defined in Handlebars","// itself.","","/**","Compiles a Handlebars template string into a function. To render the template,","call the function and pass in a context object.","","@example",""," var template = Y.Handlebars.compile('The pie of the day is {{pie}}!.');"," template({pie: 'Pecan'});"," // => \"The pie of the day is Pecan!\"","","@method compile","@param {String} string Handlebars template string to compile.","@param {Object} [options] Compiler options.","@return {Function} Compiled template function.","*/","","/**","Precompiles a Handlebars template string into a string of JavaScript code. This","can be used to precompile a template at build time or on the server, and the","resulting template can then be rendered at runtime or on the client without","needing to go through a compile step.","","To render a precompiled template, evaluate the code and then pass the resulting","function to `Y.Handlebars.template()` to get back an executable template","function.","","@method precompile","@param {String} string Handlebars template string to compile.","@param {Object} [options] Compiler options.","@return {String} Precompiled template code.","*/","","","}, '3.7.3', {\"requires\": [\"handlebars-base\"]});"]; _yuitest_coverage["build/handlebars-compiler/handlebars-compiler.js"].lines = {"1":0,"13":0,"17":0,"18":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,"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,"112":0,"115":0,"129":0,"130":0,"131":0,"132":0,"133":0,"134":0,"135":0,"136":0,"138":0,"139":0,"141":0,"142":0,"143":0,"144":0,"147":0,"148":0,"149":0,"151":0,"152":0,"154":0,"157":0,"158":0,"160":0,"163":0,"164":0,"166":0,"167":0,"170":0,"174":0,"175":0,"177":0,"178":0,"180":0,"181":0,"182":0,"184":0,"185":0,"187":0,"191":0,"196":0,"197":0,"198":0,"202":0,"203":0,"204":0,"205":0,"206":0,"210":0,"212":0,"213":0,"215":0,"216":0,"218":0,"219":0,"222":0,"223":0,"224":0,"225":0,"226":0,"230":0,"231":0,"234":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,"252":0,"253":0,"255":0,"260":0,"263":0,"265":0,"271":0,"273":0,"274":0,"278":0,"279":0,"280":0,"281":0,"284":0,"285":0,"286":0,"288":0,"289":0,"290":0,"293":0,"298":0,"301":0,"302":0,"304":0,"305":0,"307":0,"311":0,"312":0,"313":0,"314":0,"315":0,"316":0,"317":0,"320":0,"321":0,"322":0,"323":0,"324":0,"325":0,"326":0,"327":0,"328":0,"331":0,"332":0,"335":0,"336":0,"339":0,"342":0,"343":0,"346":0,"347":0,"348":0,"350":0,"353":0,"354":0,"355":0,"358":0,"359":0,"361":0,"363":0,"369":0,"370":0,"371":0,"373":0,"374":0,"375":0,"376":0,"377":0,"378":0,"379":0,"382":0,"383":0,"384":0,"385":0,"389":0,"390":0,"391":0,"392":0,"393":0,"394":0,"395":0,"396":0,"397":0,"398":0,"400":0,"401":0,"403":0,"408":0,"409":0,"410":0,"412":0,"416":0,"419":0,"422":0,"425":0,"428":0,"430":0,"431":0,"433":0,"434":0,"436":0,"437":0,"438":0,"440":0,"441":0,"442":0,"443":0,"444":0,"445":0,"446":0,"447":0,"448":0,"449":0,"450":0,"451":0,"452":0,"453":0,"454":0,"455":0,"456":0,"457":0,"458":0,"459":0,"460":0,"461":0,"462":0,"463":0,"464":0,"465":0,"466":0,"467":0,"468":0,"469":0,"470":0,"472":0,"473":0,"474":0,"475":0,"476":0,"477":0,"478":0,"479":0,"480":0,"481":0,"482":0,"483":0,"484":0,"485":0,"486":0,"487":0,"488":0,"489":0,"490":0,"491":0,"492":0,"495":0,"496":0,"497":0,"498":0,"499":0,"501":0,"502":0,"503":0,"504":0,"505":0,"506":0,"507":0,"508":0,"509":0,"510":0,"512":0,"514":0,"516":0,"517":0,"519":0,"523":0,"525":0,"526":0,"527":0,"530":0,"531":0,"534":0,"541":0,"547":0,"549":0,"551":0,"552":0,"553":0,"554":0,"557":0,"558":0,"559":0,"560":0,"562":0,"563":0,"567":0,"572":0,"579":0,"580":0,"584":0,"585":0,"588":0,"589":0,"590":0,"594":0,"595":0,"596":0,"597":0,"598":0,"599":0,"601":0,"602":0,"606":0,"607":0,"608":0,"611":0,"612":0,"613":0,"616":0,"617":0,"618":0,"620":0,"622":0,"623":0,"625":0,"626":0,"630":0,"631":0,"632":0,"636":0,"639":0,"640":0,"641":0,"644":0,"645":0,"646":0,"649":0,"650":0,"651":0,"654":0,"655":0,"656":0,"666":0,"667":0,"669":0,"675":0,"679":0,"681":0,"682":0,"684":0,"685":0,"687":0,"688":0,"689":0,"690":0,"691":0,"693":0,"695":0,"699":0,"705":0,"706":0,"707":0,"710":0,"711":0,"720":0,"721":0,"722":0,"726":0,"730":0,"734":0,"735":0,"737":0,"738":0,"739":0,"741":0,"743":0,"744":0,"747":0,"751":0,"752":0,"754":0,"756":0,"758":0,"759":0,"761":0,"765":0,"769":0,"773":0,"774":0,"777":0,"778":0,"781":0,"783":0,"784":0,"785":0,"786":0,"790":0,"791":0,"792":0,"793":0,"795":0,"799":0,"800":0,"801":0,"802":0,"805":0,"809":0,"811":0,"813":0,"814":0,"815":0,"817":0,"818":0,"823":0,"824":0,"826":0,"827":0,"829":0,"832":0,"833":0,"837":0,"841":0,"842":0,"844":0,"845":0,"846":0,"847":0,"849":0,"852":0,"853":0,"855":0,"860":0,"862":0,"864":0,"865":0,"867":0,"871":0,"873":0,"874":0,"876":0,"877":0,"878":0,"879":0,"882":0,"884":0,"888":0,"891":0,"892":0,"893":0,"894":0,"896":0,"901":0,"902":0,"903":0,"905":0,"906":0,"911":0,"915":0,"919":0,"926":0,"930":0,"934":0,"936":0,"937":0,"938":0,"943":0,"944":0,"945":0,"948":0,"949":0,"951":0,"952":0,"953":0,"954":0,"958":0,"959":0,"964":0,"966":0,"967":0,"969":0,"970":0,"971":0,"974":0,"975":0,"977":0,"983":0,"984":0,"986":0,"987":0,"989":0,"992":0,"997":0,"998":0,"1000":0,"1001":0,"1003":0,"1004":0,"1006":0,"1009":0,"1013":0,"1014":0,"1017":0,"1021":0,"1022":0,"1023":0,"1024":0,"1027":0,"1032":0,"1033":0,"1035":0,"1040":0,"1047":0,"1048":0,"1050":0,"1052":0,"1053":0,"1054":0,"1059":0,"1061":0,"1062":0,"1063":0,"1064":0,"1066":0,"1068":0,"1070":0,"1072":0,"1073":0,"1075":0,"1076":0,"1078":0,"1082":0,"1086":0,"1087":0,"1091":0,"1095":0,"1097":0,"1098":0,"1099":0,"1100":0,"1101":0,"1103":0,"1106":0,"1107":0,"1109":0,"1114":0,"1115":0,"1119":0,"1121":0,"1122":0,"1126":0,"1127":0,"1128":0,"1129":0,"1133":0,"1134":0,"1138":0,"1139":0,"1142":0,"1143":0,"1146":0,"1148":0,"1149":0,"1152":0,"1153":0,"1155":0,"1157":0,"1158":0,"1159":0,"1173":0,"1175":0,"1176":0,"1178":0,"1179":0,"1180":0,"1191":0,"1193":0,"1194":0,"1196":0,"1197":0,"1199":0,"1209":0,"1222":0,"1223":0,"1224":0,"1225":0,"1236":0,"1237":0,"1239":0,"1240":0,"1241":0,"1244":0,"1255":0,"1256":0,"1268":0,"1278":0,"1289":0,"1291":0,"1292":0,"1304":0,"1305":0,"1318":0,"1319":0,"1329":0,"1339":0,"1351":0,"1363":0,"1364":0,"1366":0,"1380":0,"1382":0,"1383":0,"1385":0,"1398":0,"1399":0,"1415":0,"1417":0,"1418":0,"1420":0,"1421":0,"1423":0,"1424":0,"1426":0,"1427":0,"1438":0,"1440":0,"1441":0,"1444":0,"1445":0,"1456":0,"1457":0,"1459":0,"1467":0,"1469":0,"1470":0,"1471":0,"1473":0,"1474":0,"1475":0,"1476":0,"1477":0,"1482":0,"1484":0,"1485":0,"1488":0,"1491":0,"1493":0,"1494":0,"1496":0,"1500":0,"1501":0,"1503":0,"1504":0,"1509":0,"1510":0,"1514":0,"1515":0,"1516":0,"1521":0,"1522":0,"1526":0,"1527":0,"1528":0,"1532":0,"1534":0,"1535":0,"1539":0,"1540":0,"1541":0,"1545":0,"1546":0,"1547":0,"1551":0,"1553":0,"1554":0,"1556":0,"1557":0,"1562":0,"1564":0,"1565":0,"1567":0,"1572":0,"1580":0,"1581":0,"1582":0,"1584":0,"1595":0,"1597":0,"1599":0,"1600":0,"1604":0,"1605":0,"1606":0,"1607":0,"1610":0,"1611":0,"1612":0,"1615":0,"1616":0,"1619":0,"1620":0,"1621":0,"1623":0,"1624":0,"1628":0,"1629":0,"1632":0,"1633":0,"1636":0,"1637":0,"1641":0,"1659":0,"1661":0,"1662":0,"1665":0,"1666":0,"1667":0,"1669":0,"1674":0,"1675":0,"1677":0,"1678":0,"1679":0,"1682":0,"1683":0,"1685":0,"1686":0,"1687":0,"1688":0,"1689":0,"1690":0,"1694":0,"1695":0,"1696":0,"1698":0,"1714":0,"1726":0,"1755":0,"1756":0}; _yuitest_coverage["build/handlebars-compiler/handlebars-compiler.js"].functions = {"anonymous:23":0,"parseError:111":0,"popStack:141":0,"lex:147":0,"parse:114":0,"parseError:303":0,"setInput:310":0,"input:319":0,"unput:330":0,"more:334":0,"less:338":0,"pastInput:341":0,"upcomingInput:345":0,"showPosition:352":0,"next:357":0,"lex:407":0,"begin:415":0,"popState:418":0,"_currentRules:421":0,"topState:424":0,"begin:427":0,"anonymous:431":0,"(anonymous 3):301":0,"Parser:498":0,"(anonymous 2):17":0,"parse:504":0,"commonjsMain:505":0,"parse:525":0,"print:530":0,"log:541":0,"ProgramNode:551":0,"MustacheNode:557":0,"PartialNode:579":0,"verifyMatch:588":0,"BlockNode:594":0,"ContentNode:606":0,"HashNode:611":0,"IdNode:616":0,"StringNode:639":0,"IntegerNode:644":0,"BooleanNode:649":0,"CommentNode:654":0,"(anonymous 4):547":0,"disassemble:678":0,"compile:704":0,"accept:729":0,"(anonymous 6):743":0,"program:733":0,"compileProgram:750":0,"block:768":0,"hash:808":0,"partial:822":0,"content:836":0,"mustache:840":0,"ambiguousMustache:859":0,"simpleMustache:870":0,"helperMustache:887":0,"ID:900":0,"STRING:910":0,"INTEGER:914":0,"BOOLEAN:918":0,"opcode:925":0,"declare:929":0,"addDepth:933":0,"classifyMustache:942":0,"pushParams:963":0,"setupMustacheParams:982":0,"setupFullMustacheParams:996":0,"Literal:1013":0,"nameLookup:1020":0,"appendToBuffer:1031":0,"initializeBuffer:1039":0,"compile:1046":0,"nextOpcode:1085":0,"eat:1090":0,"preamble:1094":0,"createFunctionContext:1118":0,"(anonymous 7):1178":0,"blockValue:1172":0,"ambiguousBlockValue:1190":0,"appendContent:1208":0,"append:1221":0,"appendEscaped:1235":0,"getContext:1254":0,"lookupOnContext:1267":0,"pushContext:1277":0,"(anonymous 8):1291":0,"resolvePossibleLambda:1288":0,"(anonymous 9):1304":0,"lookup:1303":0,"pushStringParam:1317":0,"pushString:1328":0,"push:1338":0,"pushLiteral:1350":0,"pushProgram:1362":0,"invokeHelper:1379":0,"invokeKnownHelper:1397":0,"invokeAmbiguous:1414":0,"invokePartial:1437":0,"assignToHash:1455":0,"compileChildren:1466":0,"programExpression:1481":0,"register:1508":0,"useRegister:1513":0,"pushStackLiteral:1520":0,"pushStack:1525":0,"replaceStack:1531":0,"nextStack:1538":0,"incrStack:1544":0,"popStack:1550":0,"topStack:1561":0,"quotedString:1571":0,"setupHelper:1579":0,"setupParams:1594":0,"isValidJavaScriptVariableName:1665":0,"(anonymous 5):669":0,"precompile:1674":0,"compile:1686":0,"(anonymous 10):1694":0,"compile:1682":0,"render:1755":0,"(anonymous 1):1":0}; _yuitest_coverage["build/handlebars-compiler/handlebars-compiler.js"].coveredLines = 799; @@ -2752,4 +2752,4 @@ function. */ -}, '3.7.2', {"requires": ["handlebars-base"]}); +}, '3.7.3', {"requires": ["handlebars-base"]}); diff --git a/lib/yuilib/3.7.2/build/handlebars-compiler/handlebars-compiler-debug.js b/lib/yuilib/3.7.3/build/handlebars-compiler/handlebars-compiler-debug.js similarity index 99% rename from lib/yuilib/3.7.2/build/handlebars-compiler/handlebars-compiler-debug.js rename to lib/yuilib/3.7.3/build/handlebars-compiler/handlebars-compiler-debug.js index 2e3e1899beb..4498ad15a34 100644 --- a/lib/yuilib/3.7.2/build/handlebars-compiler/handlebars-compiler-debug.js +++ b/lib/yuilib/3.7.3/build/handlebars-compiler/handlebars-compiler-debug.js @@ -1,5 +1,5 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ @@ -1798,4 +1798,4 @@ function. */ -}, '3.7.2', {"requires": ["handlebars-base"]}); +}, '3.7.3', {"requires": ["handlebars-base"]}); diff --git a/lib/yuilib/3.7.2/build/handlebars-compiler/handlebars-compiler-min.js b/lib/yuilib/3.7.3/build/handlebars-compiler/handlebars-compiler-min.js similarity index 99% rename from lib/yuilib/3.7.2/build/handlebars-compiler/handlebars-compiler-min.js rename to lib/yuilib/3.7.3/build/handlebars-compiler/handlebars-compiler-min.js index 81bb3d4d30d..7e0a801f5ed 100644 --- a/lib/yuilib/3.7.2/build/handlebars-compiler/handlebars-compiler-min.js +++ b/lib/yuilib/3.7.3/build/handlebars-compiler/handlebars-compiler-min.js @@ -1,5 +1,5 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ @@ -9,4 +9,4 @@ YUI.add("handlebars-compiler",function(e,t){ Handlebars.js - Copyright (C) 2011 Yehuda Katz https://raw.github.com/wycats/handlebars.js/master/LICENSE */ -;var n=e.Handlebars,r=function(){function n(){this.yy={}}var e={trace:function(){},yy:{},symbols_:{error:2,root:3,program:4,EOF:5,statements:6,simpleInverse:7,statement:8,openInverse:9,closeBlock:10,openBlock:11,mustache:12,partial:13,CONTENT:14,COMMENT:15,OPEN_BLOCK:16,inMustache:17,CLOSE:18,OPEN_INVERSE:19,OPEN_ENDBLOCK:20,path:21,OPEN:22,OPEN_UNESCAPED:23,OPEN_PARTIAL:24,params:25,hash:26,param:27,STRING:28,INTEGER:29,BOOLEAN:30,hashSegments:31,hashSegment:32,ID:33,EQUALS:34,pathSegments:35,SEP:36,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",14:"CONTENT",15:"COMMENT",16:"OPEN_BLOCK",18:"CLOSE",19:"OPEN_INVERSE",20:"OPEN_ENDBLOCK",22:"OPEN",23:"OPEN_UNESCAPED",24:"OPEN_PARTIAL",28:"STRING",29:"INTEGER",30:"BOOLEAN",33:"ID",34:"EQUALS",36:"SEP"},productions_:[0,[3,2],[4,3],[4,1],[4,0],[6,1],[6,2],[8,3],[8,3],[8,1],[8,1],[8,1],[8,1],[11,3],[9,3],[10,3],[12,3],[12,3],[13,3],[13,4],[7,2],[17,3],[17,2],[17,2],[17,1],[25,2],[25,1],[27,1],[27,1],[27,1],[27,1],[26,1],[31,2],[31,1],[32,3],[32,3],[32,3],[32,3],[21,1],[35,3],[35,1]],performAction:function(t,n,r,i,s,o,u){var a=o.length-1;switch(s){case 1:return o[a-1];case 2:this.$=new i.ProgramNode(o[a-2],o[a]);break;case 3:this.$=new i.ProgramNode(o[a]);break;case 4:this.$=new i.ProgramNode([]);break;case 5:this.$=[o[a]];break;case 6:o[a-1].push(o[a]),this.$=o[a-1];break;case 7:this.$=new i.BlockNode(o[a-2],o[a-1].inverse,o[a-1],o[a]);break;case 8:this.$=new i.BlockNode(o[a-2],o[a-1],o[a-1].inverse,o[a]);break;case 9:this.$=o[a];break;case 10:this.$=o[a];break;case 11:this.$=new i.ContentNode(o[a]);break;case 12:this.$=new i.CommentNode(o[a]);break;case 13:this.$=new i.MustacheNode(o[a-1][0],o[a-1][1]);break;case 14:this.$=new i.MustacheNode(o[a-1][0],o[a-1][1]);break;case 15:this.$=o[a-1];break;case 16:this.$=new i.MustacheNode(o[a-1][0],o[a-1][1]);break;case 17:this.$=new i.MustacheNode(o[a-1][0],o[a-1][1],!0);break;case 18:this.$=new i.PartialNode(o[a-1]);break;case 19:this.$=new i.PartialNode(o[a-2],o[a-1]);break;case 20:break;case 21:this.$=[[o[a-2]].concat(o[a-1]),o[a]];break;case 22:this.$=[[o[a-1]].concat(o[a]),null];break;case 23:this.$=[[o[a-1]],o[a]];break;case 24:this.$=[[o[a]],null];break;case 25:o[a-1].push(o[a]),this.$=o[a-1];break;case 26:this.$=[o[a]];break;case 27:this.$=o[a];break;case 28:this.$=new i.StringNode(o[a]);break;case 29:this.$=new i.IntegerNode(o[a]);break;case 30:this.$=new i.BooleanNode(o[a]);break;case 31:this.$=new i.HashNode(o[a]);break;case 32:o[a-1].push(o[a]),this.$=o[a-1];break;case 33:this.$=[o[a]];break;case 34:this.$=[o[a-2],o[a]];break;case 35:this.$=[o[a-2],new i.StringNode(o[a])];break;case 36:this.$=[o[a-2],new i.IntegerNode(o[a])];break;case 37:this.$=[o[a-2],new i.BooleanNode(o[a])];break;case 38:this.$=new i.IdNode(o[a]);break;case 39:o[a-2].push(o[a]),this.$=o[a-2];break;case 40:this.$=[o[a]]}},table:[{3:1,4:2,5:[2,4],6:3,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],22:[1,13],23:[1,14],24:[1,15]},{1:[3]},{5:[1,16]},{5:[2,3],7:17,8:18,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,19],20:[2,3],22:[1,13],23:[1,14],24:[1,15]},{5:[2,5],14:[2,5],15:[2,5],16:[2,5],19:[2,5],20:[2,5],22:[2,5],23:[2,5],24:[2,5]},{4:20,6:3,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,4],22:[1,13],23:[1,14],24:[1,15]},{4:21,6:3,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,4],22:[1,13],23:[1,14],24:[1,15]},{5:[2,9],14:[2,9],15:[2,9],16:[2,9],19:[2,9],20:[2,9],22:[2,9],23:[2,9],24:[2,9]},{5:[2,10],14:[2,10],15:[2,10],16:[2,10],19:[2,10],20:[2,10],22:[2,10],23:[2,10],24:[2,10]},{5:[2,11],14:[2,11],15:[2,11],16:[2,11],19:[2,11],20:[2,11],22:[2,11],23:[2,11],24:[2,11]},{5:[2,12],14:[2,12],15:[2,12],16:[2,12],19:[2,12],20:[2,12],22:[2,12],23:[2,12],24:[2,12]},{17:22,21:23,33:[1,25],35:24},{17:26,21:23,33:[1,25],35:24},{17:27,21:23,33:[1,25],35:24},{17:28,21:23,33:[1,25],35:24},{21:29,33:[1,25],35:24},{1:[2,1]},{6:30,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],22:[1,13],23:[1,14],24:[1,15]},{5:[2,6],14:[2,6],15:[2,6],16:[2,6],19:[2,6],20:[2,6],22:[2,6],23:[2,6],24:[2,6]},{17:22,18:[1,31],21:23,33:[1,25],35:24},{10:32,20:[1,33]},{10:34,20:[1,33]},{18:[1,35]},{18:[2,24],21:40,25:36,26:37,27:38,28:[1,41],29:[1,42],30:[1,43],31:39,32:44,33:[1,45],35:24},{18:[2,38],28:[2,38],29:[2,38],30:[2,38],33:[2,38],36:[1,46]},{18:[2,40],28:[2,40],29:[2,40],30:[2,40],33:[2,40],36:[2,40]},{18:[1,47]},{18:[1,48]},{18:[1,49]},{18:[1,50],21:51,33:[1,25],35:24},{5:[2,2],8:18,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,2],22:[1,13],23:[1,14],24:[1,15]},{14:[2,20],15:[2,20],16:[2,20],19:[2,20],22:[2,20],23:[2,20],24:[2,20]},{5:[2,7],14:[2,7],15:[2,7],16:[2,7],19:[2,7],20:[2,7],22:[2,7],23:[2,7],24:[2,7]},{21:52,33:[1,25],35:24},{5:[2,8],14:[2,8],15:[2,8],16:[2,8],19:[2,8],20:[2,8],22:[2,8],23:[2,8],24:[2,8]},{14:[2,14],15:[2,14],16:[2,14],19:[2,14],20:[2,14],22:[2,14],23:[2,14],24:[2,14]},{18:[2,22],21:40,26:53,27:54,28:[1,41],29:[1,42],30:[1,43],31:39,32:44,33:[1,45],35:24},{18:[2,23]},{18:[2,26],28:[2,26],29:[2,26],30:[2,26],33:[2,26]},{18:[2,31],32:55,33:[1,56]},{18:[2,27],28:[2,27],29:[2,27],30:[2,27],33:[2,27]},{18:[2,28],28:[2,28],29:[2,28],30:[2,28],33:[2,28]},{18:[2,29],28:[2,29],29:[2,29],30:[2,29],33:[2,29]},{18:[2,30],28:[2,30],29:[2,30],30:[2,30],33:[2,30]},{18:[2,33],33:[2,33]},{18:[2,40],28:[2,40],29:[2,40],30:[2,40],33:[2,40],34:[1,57],36:[2,40]},{33:[1,58]},{14:[2,13],15:[2,13],16:[2,13],19:[2,13],20:[2,13],22:[2,13],23:[2,13],24:[2,13]},{5:[2,16],14:[2,16],15:[2,16],16:[2,16],19:[2,16],20:[2,16],22:[2,16],23:[2,16],24:[2,16]},{5:[2,17],14:[2,17],15:[2,17],16:[2,17],19:[2,17],20:[2,17],22:[2,17],23:[2,17],24:[2,17]},{5:[2,18],14:[2,18],15:[2,18],16:[2,18],19:[2,18],20:[2,18],22:[2,18],23:[2,18],24:[2,18]},{18:[1,59]},{18:[1,60]},{18:[2,21]},{18:[2,25],28:[2,25],29:[2,25],30:[2,25],33:[2,25]},{18:[2,32],33:[2,32]},{34:[1,57]},{21:61,28:[1,62],29:[1,63],30:[1,64],33:[1,25],35:24},{18:[2,39],28:[2,39],29:[2,39],30:[2,39],33:[2,39],36:[2,39]},{5:[2,19],14:[2,19],15:[2,19],16:[2,19],19:[2,19],20:[2,19],22:[2,19],23:[2,19],24:[2,19]},{5:[2,15],14:[2,15],15:[2,15],16:[2,15],19:[2,15],20:[2,15],22:[2,15],23:[2,15],24:[2,15]},{18:[2,34],33:[2,34]},{18:[2,35],33:[2,35]},{18:[2,36],33:[2,36]},{18:[2,37],33:[2,37]}],defaultActions:{16:[2,1],37:[2,23],53:[2,21]},parseError:function(t,n){throw new Error(t)},parse:function(t){function d(e){r.length=r.length-2*e,i.length=i.length-e,s.length=s.length-e}function v(){var e;return e=n.lexer.lex()||1,typeof e!="number"&&(e=n.symbols_[e]||e),e}var n=this,r=[0],i=[null],s=[],o=this.table,u="",a=0,f=0,l=0,c=2,h=1;this.lexer.setInput(t),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,this.yy.parser=this,typeof this.lexer.yylloc=="undefined"&&(this.lexer.yylloc={});var p=this.lexer.yylloc;s.push(p),typeof this.yy.parseError=="function"&&(this.parseError=this.yy.parseError);var m,g,y,b,w,E,S={},x,T,N,C;for(;;){y=r[r.length-1];if(this.defaultActions[y])b=this.defaultActions[y];else{if(m===null||typeof m=="undefined")m=v();b=o[y]&&o[y][m]}if(typeof b=="undefined"||!b.length||!b[0]){var k="";if(!l){C=[];for(x in o[y])this.terminals_[x]&&x>2&&C.push("'"+this.terminals_[x]+"'");this.lexer.showPosition?k="Parse error on line "+(a+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[m]||m)+"'":k="Parse error on line "+(a+1)+": Unexpected "+(m==1?"end of input":"'"+(this.terminals_[m]||m)+"'"),this.parseError(k,{text:this.lexer.match,token:this.terminals_[m]||m,line:this.lexer.yylineno,loc:p,expected:C})}if(l==3){if(m==h)throw new Error(k||"Parsing halted.");f=this.lexer.yyleng,u=this.lexer.yytext,a=this.lexer.yylineno,p=this.lexer.yylloc,m=v()}for(;;){if(c.toString()in o[y])break;if(y===0)throw new Error(k||"Parsing halted.");d(1),y=r[r.length-1]}g=m==2?null:m,m=c,y=r[r.length-1],b=o[y]&&o[y][c],l=3}if(b[0]instanceof Array&&b.length>1)throw new Error("Parse Error: multiple actions possible at state: "+y+", token: "+m);switch(b[0]){case 1:r.push(m),i.push(this.lexer.yytext),s.push(this.lexer.yylloc),r.push(b[1]),m=null,g?(m=g,g=null):(f=this.lexer.yyleng,u=this.lexer.yytext,a=this.lexer.yylineno,p=this.lexer.yylloc,l>0&&l--);break;case 2:T=this.productions_[b[1]][1],S.$=i[i.length-T],S._$={first_line:s[s.length-(T||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(T||1)].first_column,last_column:s[s.length-1].last_column},E=this.performAction.call(S,u,f,a,this.yy,b[1],i,s);if(typeof E!="undefined")return E;T&&(r=r.slice(0,-1*T*2),i=i.slice(0,-1*T),s=s.slice(0,-1*T)),r.push(this.productions_[b[1]][0]),i.push(S.$),s.push(S._$),N=o[r[r.length-2]][r[r.length-1]],r.push(N);break;case 3:return!0}}return!0}},t=function(){var e={EOF:1,parseError:function(t,n){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,n)},setInput:function(e){return this._input=e,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this},input:function(){var e=this._input[0];this.yytext+=e,this.yyleng++,this.match+=e,this.matched+=e;var t=e.match(/\n/);return t&&this.yylineno++,this._input=this._input.slice(1),e},unput:function(e){return this._input=e+this._input,this},more:function(){return this._more=!0,this},less:function(e){this._input=this.match.slice(e)+this._input},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=(new Array(e.length+1)).join("-");return e+this.upcomingInput()+"\n"+t+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var e,t,n,r,i,s;this._more||(this.yytext="",this.match="");var o=this._currentRules();for(var u=0;ut[0].length)){t=n,r=u;if(!this.options.flex)break}}if(t){s=t[0].match(/\n.*/g),s&&(this.yylineno+=s.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:s?s[s.length-1].length-1:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.yyleng=this.yytext.length,this._more=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],e=this.performAction.call(this,this.yy,this,o[r],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1);if(e)return e;return}return this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return typeof t!="undefined"?t:this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(t){this.begin(t)}};return e.options={},e.performAction=function(t,n,r,i){var s=i;switch(r){case 0:n.yytext.slice(-1)!=="\\"&&this.begin("mu"),n.yytext.slice(-1)==="\\"&&(n.yytext=n.yytext.substr(0,n.yyleng-1),this.begin("emu"));if(n.yytext)return 14;break;case 1:return 14;case 2:return this.popState(),14;case 3:return 24;case 4:return 16;case 5:return 20;case 6:return 19;case 7:return 19;case 8:return 23;case 9:return 23;case 10:return n.yytext=n.yytext.substr(3,n.yyleng-5),this.popState(),15;case 11:return 22;case 12:return 34;case 13:return 33;case 14:return 33;case 15:return 36;case 16:break;case 17:return this.popState(),18;case 18:return this.popState(),18;case 19:return n.yytext=n.yytext.substr(1,n.yyleng-2).replace(/\\"/g,'"'),28;case 20:return 30;case 21:return 30;case 22:return 29;case 23:return 33;case 24:return n.yytext=n.yytext.substr(1,n.yyleng-2),33;case 25:return"INVALID";case 26:return 5}},e.rules=[/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{)))/,/^(?:\{\{>)/,/^(?:\{\{#)/,/^(?:\{\{\/)/,/^(?:\{\{\^)/,/^(?:\{\{\s*else\b)/,/^(?:\{\{\{)/,/^(?:\{\{&)/,/^(?:\{\{![\s\S]*?\}\})/,/^(?:\{\{)/,/^(?:=)/,/^(?:\.(?=[} ]))/,/^(?:\.\.)/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}\}\})/,/^(?:\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:true(?=[}\s]))/,/^(?:false(?=[}\s]))/,/^(?:[0-9]+(?=[}\s]))/,/^(?:[a-zA-Z0-9_$-]+(?=[=}\s\/.]))/,/^(?:\[[^\]]*\])/,/^(?:.)/,/^(?:$)/],e.conditions={mu:{rules:[3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26],inclusive:!1},emu:{rules:[2],inclusive:!1},INITIAL:{rules:[0,1,26],inclusive:!0}},e}();return e.lexer=t,n.prototype=e,e.Parser=n,new n}();typeof require!="undefined"&&typeof exports!="undefined"&&(exports.parser=r,exports.Parser=r.Parser,exports.parse=function(){return r.parse.apply(r,arguments)},exports.main=function(t){if(!t[1])throw new Error("Usage: "+t[0]+" FILE");var n,r;return typeof process!="undefined"?n=require("fs").readFileSync(require("path").resolve(t[1]),"utf8"):n=require("file").path(require("file").cwd()).join(t[1]).read({charset:"utf-8"}),exports.parser.parse(n)},typeof module!="undefined"&&require.main===module&&exports.main(typeof process!="undefined"?process.argv.slice(1):require("system").args)),n.Parser=r,n.parse=function(e){return n.Parser.yy=n.AST,n.Parser.parse(e)},n.print=function(e){return(new n.PrintVisitor).accept(e)},n.logger={DEBUG:0,INFO:1,WARN:2,ERROR:3,level:3,log:function(e,t){}},n.log=function(e,t){n.logger.log(e,t)},function(){n.AST={},n.AST.ProgramNode=function(e,t){this.type="program",this.statements=e,t&&(this.inverse=new n.AST.ProgramNode(t))},n.AST.MustacheNode=function(e,t,n){this.type="mustache",this.escaped=!n,this.hash=t;var r=this.id=e[0],i=this.params=e.slice(1),s=this.eligibleHelper=r.isSimple;this.isHelper=s&&(i.length||t)},n.AST.PartialNode=function(e,t){this.type="partial",this.id=e,this.context=t};var e=function(e,t){if(e.original!==t.original)throw new n.Exception(e.original+" doesn't match "+t.original)};n.AST.BlockNode=function(t,n,r,i){e(t.id,i),this.type="block",this.mustache=t,this.program=n,this.inverse=r,this.inverse&&!this.program&&(this.isInverse=!0)},n.AST.ContentNode=function(e){this.type="content",this.string=e},n.AST.HashNode=function(e){this.type="hash",this.pairs=e},n.AST.IdNode=function(e){this.type="ID",this.original=e.join(".");var t=[],n=0;for(var r=0,i=e.length;rthis.stackVars.length&&this.stackVars.push("stack"+this.stackSlot),"stack"+this.stackSlot},popStack:function(){var e=this.compileStack.pop();return e instanceof r?e.value:(this.stackSlot--,e)},topStack:function(){var e=this.compileStack[this.compileStack.length-1];return e instanceof r?e.value:e},quotedString:function(e){return'"'+e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r")+'"'},setupHelper:function(e,t){var n=[];this.setupParams(e,n);var r=this.nameLookup("helpers",t,"helper");return{params:n,name:r,callParams:["depth0"].concat(n).join(", "),helperMissingParams:["depth0",this.quotedString(t)].concat(n).join(", ")}},setupParams:function(e,t){var n=[],r=[],i,s,o;n.push("hash:"+this.popStack()),s=this.popStack(),o=this.popStack();if(o||s)o||(this.context.aliases.self="this",o="self.noop"),s||(this.context.aliases.self="this",s="self.noop"),n.push("inverse:"+s),n.push("fn:"+o);for(var u=0;u2&&C.push("'"+this.terminals_[x]+"'");this.lexer.showPosition?k="Parse error on line "+(a+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[m]||m)+"'":k="Parse error on line "+(a+1)+": Unexpected "+(m==1?"end of input":"'"+(this.terminals_[m]||m)+"'"),this.parseError(k,{text:this.lexer.match,token:this.terminals_[m]||m,line:this.lexer.yylineno,loc:p,expected:C})}if(l==3){if(m==h)throw new Error(k||"Parsing halted.");f=this.lexer.yyleng,u=this.lexer.yytext,a=this.lexer.yylineno,p=this.lexer.yylloc,m=v()}for(;;){if(c.toString()in o[y])break;if(y===0)throw new Error(k||"Parsing halted.");d(1),y=r[r.length-1]}g=m==2?null:m,m=c,y=r[r.length-1],b=o[y]&&o[y][c],l=3}if(b[0]instanceof Array&&b.length>1)throw new Error("Parse Error: multiple actions possible at state: "+y+", token: "+m);switch(b[0]){case 1:r.push(m),i.push(this.lexer.yytext),s.push(this.lexer.yylloc),r.push(b[1]),m=null,g?(m=g,g=null):(f=this.lexer.yyleng,u=this.lexer.yytext,a=this.lexer.yylineno,p=this.lexer.yylloc,l>0&&l--);break;case 2:T=this.productions_[b[1]][1],S.$=i[i.length-T],S._$={first_line:s[s.length-(T||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(T||1)].first_column,last_column:s[s.length-1].last_column},E=this.performAction.call(S,u,f,a,this.yy,b[1],i,s);if(typeof E!="undefined")return E;T&&(r=r.slice(0,-1*T*2),i=i.slice(0,-1*T),s=s.slice(0,-1*T)),r.push(this.productions_[b[1]][0]),i.push(S.$),s.push(S._$),N=o[r[r.length-2]][r[r.length-1]],r.push(N);break;case 3:return!0}}return!0}},t=function(){var e={EOF:1,parseError:function(t,n){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,n)},setInput:function(e){return this._input=e,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this},input:function(){var e=this._input[0];this.yytext+=e,this.yyleng++,this.match+=e,this.matched+=e;var t=e.match(/\n/);return t&&this.yylineno++,this._input=this._input.slice(1),e},unput:function(e){return this._input=e+this._input,this},more:function(){return this._more=!0,this},less:function(e){this._input=this.match.slice(e)+this._input},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=(new Array(e.length+1)).join("-");return e+this.upcomingInput()+"\n"+t+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var e,t,n,r,i,s;this._more||(this.yytext="",this.match="");var o=this._currentRules();for(var u=0;ut[0].length)){t=n,r=u;if(!this.options.flex)break}}if(t){s=t[0].match(/\n.*/g),s&&(this.yylineno+=s.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:s?s[s.length-1].length-1:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.yyleng=this.yytext.length,this._more=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],e=this.performAction.call(this,this.yy,this,o[r],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1);if(e)return e;return}return this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return typeof t!="undefined"?t:this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(t){this.begin(t)}};return e.options={},e.performAction=function(t,n,r,i){var s=i;switch(r){case 0:n.yytext.slice(-1)!=="\\"&&this.begin("mu"),n.yytext.slice(-1)==="\\"&&(n.yytext=n.yytext.substr(0,n.yyleng-1),this.begin("emu"));if(n.yytext)return 14;break;case 1:return 14;case 2:return this.popState(),14;case 3:return 24;case 4:return 16;case 5:return 20;case 6:return 19;case 7:return 19;case 8:return 23;case 9:return 23;case 10:return n.yytext=n.yytext.substr(3,n.yyleng-5),this.popState(),15;case 11:return 22;case 12:return 34;case 13:return 33;case 14:return 33;case 15:return 36;case 16:break;case 17:return this.popState(),18;case 18:return this.popState(),18;case 19:return n.yytext=n.yytext.substr(1,n.yyleng-2).replace(/\\"/g,'"'),28;case 20:return 30;case 21:return 30;case 22:return 29;case 23:return 33;case 24:return n.yytext=n.yytext.substr(1,n.yyleng-2),33;case 25:return"INVALID";case 26:return 5}},e.rules=[/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{)))/,/^(?:\{\{>)/,/^(?:\{\{#)/,/^(?:\{\{\/)/,/^(?:\{\{\^)/,/^(?:\{\{\s*else\b)/,/^(?:\{\{\{)/,/^(?:\{\{&)/,/^(?:\{\{![\s\S]*?\}\})/,/^(?:\{\{)/,/^(?:=)/,/^(?:\.(?=[} ]))/,/^(?:\.\.)/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}\}\})/,/^(?:\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:true(?=[}\s]))/,/^(?:false(?=[}\s]))/,/^(?:[0-9]+(?=[}\s]))/,/^(?:[a-zA-Z0-9_$-]+(?=[=}\s\/.]))/,/^(?:\[[^\]]*\])/,/^(?:.)/,/^(?:$)/],e.conditions={mu:{rules:[3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26],inclusive:!1},emu:{rules:[2],inclusive:!1},INITIAL:{rules:[0,1,26],inclusive:!0}},e}();return e.lexer=t,n.prototype=e,e.Parser=n,new n}();typeof require!="undefined"&&typeof exports!="undefined"&&(exports.parser=r,exports.Parser=r.Parser,exports.parse=function(){return r.parse.apply(r,arguments)},exports.main=function(t){if(!t[1])throw new Error("Usage: "+t[0]+" FILE");var n,r;return typeof process!="undefined"?n=require("fs").readFileSync(require("path").resolve(t[1]),"utf8"):n=require("file").path(require("file").cwd()).join(t[1]).read({charset:"utf-8"}),exports.parser.parse(n)},typeof module!="undefined"&&require.main===module&&exports.main(typeof process!="undefined"?process.argv.slice(1):require("system").args)),n.Parser=r,n.parse=function(e){return n.Parser.yy=n.AST,n.Parser.parse(e)},n.print=function(e){return(new n.PrintVisitor).accept(e)},n.logger={DEBUG:0,INFO:1,WARN:2,ERROR:3,level:3,log:function(e,t){}},n.log=function(e,t){n.logger.log(e,t)},function(){n.AST={},n.AST.ProgramNode=function(e,t){this.type="program",this.statements=e,t&&(this.inverse=new n.AST.ProgramNode(t))},n.AST.MustacheNode=function(e,t,n){this.type="mustache",this.escaped=!n,this.hash=t;var r=this.id=e[0],i=this.params=e.slice(1),s=this.eligibleHelper=r.isSimple;this.isHelper=s&&(i.length||t)},n.AST.PartialNode=function(e,t){this.type="partial",this.id=e,this.context=t};var e=function(e,t){if(e.original!==t.original)throw new n.Exception(e.original+" doesn't match "+t.original)};n.AST.BlockNode=function(t,n,r,i){e(t.id,i),this.type="block",this.mustache=t,this.program=n,this.inverse=r,this.inverse&&!this.program&&(this.isInverse=!0)},n.AST.ContentNode=function(e){this.type="content",this.string=e},n.AST.HashNode=function(e){this.type="hash",this.pairs=e},n.AST.IdNode=function(e){this.type="ID",this.original=e.join(".");var t=[],n=0;for(var r=0,i=e.length;rthis.stackVars.length&&this.stackVars.push("stack"+this.stackSlot),"stack"+this.stackSlot},popStack:function(){var e=this.compileStack.pop();return e instanceof r?e.value:(this.stackSlot--,e)},topStack:function(){var e=this.compileStack[this.compileStack.length-1];return e instanceof r?e.value:e},quotedString:function(e){return'"'+e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r")+'"'},setupHelper:function(e,t){var n=[];this.setupParams(e,n);var r=this.nameLookup("helpers",t,"helper");return{params:n,name:r,callParams:["depth0"].concat(n).join(", "),helperMissingParams:["depth0",this.quotedString(t)].concat(n).join(", ")}},setupParams:function(e,t){var n=[],r=[],i,s,o;n.push("hash:"+this.popStack()),s=this.popStack(),o=this.popStack();if(o||s)o||(this.context.aliases.self="this",o="self.noop"),s||(this.context.aliases.self="this",s="self.noop"),n.push("inverse:"+s),n.push("fn:"+o);for(var u=0;u \"ae\". Doing so correctly would be prohibitively"," // expensive both in terms of code size and runtime performance, so"," // I've chosen to take the pragmatic route and just not do it at"," // all. This is one of many reasons why accent folding is best done"," // on the server."," replacer: function (match, p1, foldedNeedle, pos) {"," var len;",""," // Ignore matches inside HTML entities."," if (p1 && !(/\\s/).test(foldedNeedle)) {"," return match;"," }",""," len = foldedNeedle.length;",""," results.push(["," haystack.substring(startPos, pos), // substring between previous match and this match"," haystack.substr(pos, len) // match to be highlighted"," ]);",""," startPos = pos + len;"," }"," }, options || EMPTY_OBJECT);",""," // Run the highlighter on the folded strings. We don't care about the"," // output; our replacer function will build the canonical highlighted"," // string, with original accented characters."," Highlight.all(AccentFold.fold(haystack), AccentFold.fold(needles), options);",""," // Tack on the remainder of the haystack that wasn't highlighted, if"," // any."," if (startPos < haystack.length) {"," results.push([haystack.substr(startPos)]);"," }",""," // Highlight and escape the string."," for (i = 0, len = results.length; i < len; ++i) {"," chunk = Escape.html(results[i][0]);",""," if ((match = results[i][1])) {"," chunk += template.replace(/\\{s\\}/g, Escape.html(match));"," }",""," results[i] = chunk;"," }",""," return results.join('');"," },",""," /**"," Accent-folding version of `start()`.",""," @method startFold"," @param {String} haystack String to apply highlighting to."," @param {String|String[]} needles String or array of strings that should be"," highlighted."," @return {String} Escaped and highlighted copy of _haystack_."," @static"," **/"," startFold: function (haystack, needles) {"," return Highlight.allFold(haystack, needles, {startsWith: true});"," },",""," /**"," Accent-folding version of `words()`.",""," @method wordsFold"," @param {String} haystack String to apply highlighting to."," @param {String|String[]} needles String or array of strings containing words"," that should be highlighted. If a string is passed, it will be split"," into words; if an array is passed, it is assumed to have already been"," split."," @return {String} Escaped and highlighted copy of _haystack_."," @static"," **/"," wordsFold: function (haystack, needles) {"," var template = Highlight._TEMPLATE;",""," return Highlight.words(haystack, AccentFold.fold(needles), {"," mapper: function (word, needles) {"," if (needles.hasOwnProperty(AccentFold.fold(word))) {"," return template.replace(/\\{s\\}/g, Escape.html(word));"," }",""," return Escape.html(word);"," }"," });"," }","});","","","}, '3.7.2', {\"requires\": [\"highlight-base\", \"text-accentfold\"]});"]; +_yuitest_coverage["build/highlight-accentfold/highlight-accentfold.js"].code=["YUI.add('highlight-accentfold', function (Y, NAME) {","","/**","Adds accent-folding highlighters to `Y.Highlight`.","","@module highlight","@submodule highlight-accentfold","**/","","/**","@class Highlight","@static","**/","","var AccentFold = Y.Text.AccentFold,"," Escape = Y.Escape,",""," EMPTY_OBJECT = {},","","Highlight = Y.mix(Y.Highlight, {"," // -- Public Static Methods ------------------------------------------------",""," /**"," Accent-folding version of `all()`.",""," @method allFold"," @param {String} haystack String to apply highlighting to."," @param {String|String[]} needles String or array of strings that should be"," highlighted."," @param {Object} [options] Options object."," @param {Boolean} [options.startsWith=false] If `true`, matches must be"," anchored to the beginning of the string."," @return {String} Escaped and highlighted copy of _haystack_."," @static"," **/"," allFold: function (haystack, needles, options) {"," var template = Highlight._TEMPLATE,"," results = [],"," startPos = 0,"," chunk, i, len, match, result;",""," options = Y.merge({"," // This tells Highlight.all() not to escape HTML, in order to ensure"," // usable match offsets. The output of all() is discarded, and we"," // perform our own escaping before returning the highlighted string."," escapeHTML: false,",""," // While the highlight regex operates on the accent-folded strings,"," // this replacer will highlight the matched positions in the"," // original string."," //"," // Note: this implementation doesn't handle multi-character folds,"," // like \"æ\" -> \"ae\". Doing so correctly would be prohibitively"," // expensive both in terms of code size and runtime performance, so"," // I've chosen to take the pragmatic route and just not do it at"," // all. This is one of many reasons why accent folding is best done"," // on the server."," replacer: function (match, p1, foldedNeedle, pos) {"," var len;",""," // Ignore matches inside HTML entities."," if (p1 && !(/\\s/).test(foldedNeedle)) {"," return match;"," }",""," len = foldedNeedle.length;",""," results.push(["," haystack.substring(startPos, pos), // substring between previous match and this match"," haystack.substr(pos, len) // match to be highlighted"," ]);",""," startPos = pos + len;"," }"," }, options || EMPTY_OBJECT);",""," // Run the highlighter on the folded strings. We don't care about the"," // output; our replacer function will build the canonical highlighted"," // string, with original accented characters."," Highlight.all(AccentFold.fold(haystack), AccentFold.fold(needles), options);",""," // Tack on the remainder of the haystack that wasn't highlighted, if"," // any."," if (startPos < haystack.length) {"," results.push([haystack.substr(startPos)]);"," }",""," // Highlight and escape the string."," for (i = 0, len = results.length; i < len; ++i) {"," chunk = Escape.html(results[i][0]);",""," if ((match = results[i][1])) {"," chunk += template.replace(/\\{s\\}/g, Escape.html(match));"," }",""," results[i] = chunk;"," }",""," return results.join('');"," },",""," /**"," Accent-folding version of `start()`.",""," @method startFold"," @param {String} haystack String to apply highlighting to."," @param {String|String[]} needles String or array of strings that should be"," highlighted."," @return {String} Escaped and highlighted copy of _haystack_."," @static"," **/"," startFold: function (haystack, needles) {"," return Highlight.allFold(haystack, needles, {startsWith: true});"," },",""," /**"," Accent-folding version of `words()`.",""," @method wordsFold"," @param {String} haystack String to apply highlighting to."," @param {String|String[]} needles String or array of strings containing words"," that should be highlighted. If a string is passed, it will be split"," into words; if an array is passed, it is assumed to have already been"," split."," @return {String} Escaped and highlighted copy of _haystack_."," @static"," **/"," wordsFold: function (haystack, needles) {"," var template = Highlight._TEMPLATE;",""," return Highlight.words(haystack, AccentFold.fold(needles), {"," mapper: function (word, needles) {"," if (needles.hasOwnProperty(AccentFold.fold(word))) {"," return template.replace(/\\{s\\}/g, Escape.html(word));"," }",""," return Escape.html(word);"," }"," });"," }","});","","","}, '3.7.3', {\"requires\": [\"highlight-base\", \"text-accentfold\"]});"]; _yuitest_coverage["build/highlight-accentfold/highlight-accentfold.js"].lines = {"1":0,"15":0,"37":0,"42":0,"59":0,"62":0,"63":0,"66":0,"68":0,"73":0,"80":0,"84":0,"85":0,"89":0,"90":0,"92":0,"93":0,"96":0,"99":0,"113":0,"129":0,"131":0,"133":0,"134":0,"137":0}; _yuitest_coverage["build/highlight-accentfold/highlight-accentfold.js"].functions = {"replacer:58":0,"allFold:36":0,"startFold:112":0,"mapper:132":0,"wordsFold:128":0,"(anonymous 1):1":0}; _yuitest_coverage["build/highlight-accentfold/highlight-accentfold.js"].coveredLines = 25; @@ -211,4 +211,4 @@ return Escape.html(word); }); -}, '3.7.2', {"requires": ["highlight-base", "text-accentfold"]}); +}, '3.7.3', {"requires": ["highlight-base", "text-accentfold"]}); diff --git a/lib/yuilib/3.7.2/build/highlight-accentfold/highlight-accentfold-debug.js b/lib/yuilib/3.7.3/build/highlight-accentfold/highlight-accentfold-debug.js similarity index 98% rename from lib/yuilib/3.7.2/build/highlight-accentfold/highlight-accentfold-debug.js rename to lib/yuilib/3.7.3/build/highlight-accentfold/highlight-accentfold-debug.js index cda712ec39b..aa7a3560b07 100644 --- a/lib/yuilib/3.7.2/build/highlight-accentfold/highlight-accentfold-debug.js +++ b/lib/yuilib/3.7.3/build/highlight-accentfold/highlight-accentfold-debug.js @@ -1,5 +1,5 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ @@ -147,4 +147,4 @@ Highlight = Y.mix(Y.Highlight, { }); -}, '3.7.2', {"requires": ["highlight-base", "text-accentfold"]}); +}, '3.7.3', {"requires": ["highlight-base", "text-accentfold"]}); diff --git a/lib/yuilib/3.7.2/build/highlight-accentfold/highlight-accentfold-min.js b/lib/yuilib/3.7.3/build/highlight-accentfold/highlight-accentfold-min.js similarity index 90% rename from lib/yuilib/3.7.2/build/highlight-accentfold/highlight-accentfold-min.js rename to lib/yuilib/3.7.3/build/highlight-accentfold/highlight-accentfold-min.js index aa29f36f457..806b17259b4 100644 --- a/lib/yuilib/3.7.2/build/highlight-accentfold/highlight-accentfold-min.js +++ b/lib/yuilib/3.7.3/build/highlight-accentfold/highlight-accentfold-min.js @@ -1,7 +1,7 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ */ -YUI.add("highlight-accentfold",function(e,t){var n=e.Text.AccentFold,r=e.Escape,i={},s=e.mix(e.Highlight,{allFold:function(t,o,u){var a=s._TEMPLATE,f=[],l=0,c,h,p,d,v;u=e.merge({escapeHTML:!1,replacer:function(e,n,r,i){var s;if(n&&!/\s/.test(r))return e;s=r.length,f.push([t.substring(l,i),t.substr(i,s)]),l=i+s}},u||i),s.all(n.fold(t),n.fold(o),u),l` element. The `` element is used rather than","`` in accordance with HTML5's definition of `` as being purely","presentational, which is exactly what highlighting is.","","@class Highlight","@static","**/","","var YArray = Y.Array,"," Escape = Y.Escape,"," WordBreak = Y.Text.WordBreak,",""," isArray = Y.Lang.isArray,",""," EMPTY_OBJECT = {},",""," // Regex string that captures zero or one unclosed HTML entities. Used in"," // the static regex template properties below. The entity matching is"," // intentionally loose here, since there's a world of complexity involved in"," // doing strict matching for this use case."," UNCLOSED_ENTITY = '(&[^;\\\\s]*)?',","","Highlight = {"," // -- Protected Static Properties ------------------------------------------",""," /**"," Regular expression template for highlighting a match that occurs anywhere"," in a string. The placeholder `%needles` will be replaced with a list of"," needles to match, joined by `|` characters.",""," This regex should have two capturing subpatterns:",""," 1. Zero or one unclosed HTML entity (e.g. \"&\" without a \";\" at the"," end)."," 2. The `%needles` placeholder.",""," The first subpattern match is used to emulate a negative lookbehind"," assertion in order to prevent highlighting inside HTML entities.",""," @property _REGEX"," @type String"," @protected"," @static"," @final"," **/"," _REGEX: UNCLOSED_ENTITY + '(%needles)',",""," /**"," Regex replacer function or string for normal matches.",""," @property _REPLACER"," @type Function|String"," @protected"," @static"," @final"," **/"," _REPLACER: function (match, p1, p2) {"," // Mimicking a negative lookbehind assertion to prevent matches inside"," // HTML entities. Hat tip to Steven Levithan for the technique:"," // http://blog.stevenlevithan.com/archives/mimic-lookbehind-javascript"," return p1 && !(/\\s/).test(p2) ? match :"," Highlight._TEMPLATE.replace(/\\{s\\}/g, p2);"," },",""," /**"," Regular expression template for highlighting start-of-string matches"," (i.e., only matches that occur at the beginning of a string). The"," placeholder `%needles` will be replaced with a list of needles to match,"," joined by `|` characters.",""," See `_REGEX` for a description of the capturing subpatterns this regex"," string should contain.",""," @property _START_REGEX"," @type String"," @protected"," @static"," @final"," */"," _START_REGEX: '^' + UNCLOSED_ENTITY + '(%needles)',",""," /**"," Highlight template which will be used as a replacement for matched"," substrings. The placeholder `{s}` will be replaced with the matched"," substring.",""," @property _TEMPLATE"," @type String"," @default '{s}'"," @protected"," @static"," @final"," **/"," _TEMPLATE: '{s}',",""," // -- Public Static Methods ------------------------------------------------",""," /**"," Highlights all occurrences in the _haystack_ string of the items in the"," _needles_ array, regardless of where they occur. The returned string will"," have all HTML characters escaped except for the highlighting markup.",""," @method all"," @param {String} haystack String to apply highlighting to."," @param {String|String[]} needles String or array of strings that should be"," highlighted."," @param {Object} [options] Options object."," @param {Boolean} [options.caseSensitive=false] If `true`, matching will"," be case-sensitive."," @param {Boolean} [options.startsWith=false] If `true`, matches must be"," anchored to the beginning of the string."," @return {String} Escaped and highlighted copy of _haystack_."," @static"," **/"," all: function (haystack, needles, options) {"," var validNeedles = [],"," esc, i, len, needle, regex, replacer;",""," if (!options) {"," options = EMPTY_OBJECT;"," }",""," // TODO: document options.replacer"," esc = options.escapeHTML !== false;"," regex = options.startsWith ? Highlight._START_REGEX : Highlight._REGEX;"," replacer = options.replacer || Highlight._REPLACER;"," needles = isArray(needles) ? needles : [needles];",""," // Escape HTML characters and special regular expression characters in"," // the needles so they can be used in a regex and matched against the"," // escaped haystack."," for (i = 0, len = needles.length; i < len; ++i) {"," needle = needles[i];",""," if (needle) {"," validNeedles.push(Escape.regex(esc ? Escape.html(needle) : needle));"," }"," }",""," // Escape HTML characters in the haystack to prevent HTML injection."," if (esc) {"," haystack = Escape.html(haystack);"," }",""," // No point continuing if there are no needles."," if (!validNeedles.length) {"," return haystack;"," }",""," return haystack.replace("," new RegExp("," regex.replace('%needles', validNeedles.join('|')),"," options.caseSensitive ? 'g' : 'gi'"," ),"," replacer"," );"," },",""," /**"," Same as `all()`, but case-sensitive by default.",""," @method allCase"," @param {String} haystack String to apply highlighting to."," @param {String|String[]} needles String or array of strings that should be"," highlighted."," @param {Object} [options] Options object. See `all()` for details."," @return {String} Escaped and highlighted copy of _haystack_."," @static"," **/"," allCase: function (haystack, needles, options) {"," return Highlight.all(haystack, needles,"," Y.merge(options || EMPTY_OBJECT, {caseSensitive: true}));"," },",""," /**"," Highlights _needles_ that occur at the start of _haystack_. The returned"," string will have all HTML characters escaped except for the highlighting"," markup.",""," @method start"," @param {String} haystack String to apply highlighting to."," @param {String|String[]} needles String or array of strings that should be"," highlighted."," @param {Object} [options] Options object."," @param {Boolean} [options.caseSensitive=false] If `true`, matching will"," be case-sensitive."," @return {String} Escaped and highlighted copy of _haystack_."," @static"," **/"," start: function (haystack, needles, options) {"," return Highlight.all(haystack, needles,"," Y.merge(options || EMPTY_OBJECT, {startsWith: true}));"," },",""," /**"," Same as `start()`, but case-sensitive by default.",""," @method startCase"," @param {String} haystack String to apply highlighting to."," @param {String|String[]} needles String or array of strings that should be"," highlighted."," @return {String} Escaped and highlighted copy of _haystack_."," @static"," **/"," startCase: function (haystack, needles) {"," // No options passthru for now, since it would be redundant. If start()"," // ever supports more options than caseSensitive, then we'll start"," // passing the options through."," return Highlight.start(haystack, needles, {caseSensitive: true});"," },",""," /**"," Highlights complete words in the _haystack_ string that are also in the"," _needles_ array. The returned string will have all HTML characters escaped"," except for the highlighting markup.",""," @method words"," @param {String} haystack String to apply highlighting to."," @param {String|String[]} needles String or array of strings containing words"," that should be highlighted. If a string is passed, it will be split"," into words; if an array is passed, it is assumed to have already been"," split."," @param {Object} [options] Options object."," @param {Boolean} [options.caseSensitive=false] If `true`, matching will"," be case-sensitive."," @return {String} Escaped and highlighted copy of _haystack_."," @static"," **/"," words: function (haystack, needles, options) {"," var caseSensitive,"," mapper,"," template = Highlight._TEMPLATE,"," words;",""," if (!options) {"," options = EMPTY_OBJECT;"," }",""," caseSensitive = !!options.caseSensitive;",""," // Convert needles to a hash for faster lookups."," needles = YArray.hash("," isArray(needles) ? needles : WordBreak.getUniqueWords(needles, {"," ignoreCase: !caseSensitive"," })"," );",""," // The default word mapping function can be overridden with a custom"," // one. This is used to implement accent-folded highlighting in the"," // highlight-accentfold module."," mapper = options.mapper || function (word, needles) {"," if (needles.hasOwnProperty(caseSensitive ? word : word.toLowerCase())) {"," return template.replace(/\\{s\\}/g, Escape.html(word));"," }",""," return Escape.html(word);"," };",""," // Split the haystack into an array of words, including punctuation and"," // whitespace so we can rebuild the string later."," words = WordBreak.getWords(haystack, {"," includePunctuation: true,"," includeWhitespace : true"," });",""," return YArray.map(words, function (word) {"," return mapper(word, needles);"," }).join('');"," },",""," /**"," Same as `words()`, but case-sensitive by default.",""," @method wordsCase"," @param {String} haystack String to apply highlighting to."," @param {String|String[]} needles String or array of strings containing words"," that should be highlighted. If a string is passed, it will be split"," into words; if an array is passed, it is assumed to have already been"," split."," @return {String} Escaped and highlighted copy of _haystack_."," @static"," **/"," wordsCase: function (haystack, needles) {"," // No options passthru for now, since it would be redundant. If words()"," // ever supports more options than caseSensitive, then we'll start"," // passing the options through."," return Highlight.words(haystack, needles, {caseSensitive: true});"," }","};","","Y.Highlight = Highlight;","","","}, '3.7.2', {\"requires\": [\"array-extras\", \"classnamemanager\", \"escape\", \"text-wordbreak\"]});"]; +_yuitest_coverage["build/highlight-base/highlight-base.js"].code=["YUI.add('highlight-base', function (Y, NAME) {","","/**","Provides methods for highlighting strings within other strings by wrapping","them in HTML.","","@module highlight","@submodule highlight-base","@main","@since 3.3.0","**/","","/**","Provides methods for highlighting strings within other strings by wrapping","them in HTML.","","The highlight methods first escape any special HTML characters in the input","strings and then highlight the appropriate substrings by wrapping them in a","`` element. The `` element is used rather than","`` in accordance with HTML5's definition of `` as being purely","presentational, which is exactly what highlighting is.","","@class Highlight","@static","**/","","var YArray = Y.Array,"," Escape = Y.Escape,"," WordBreak = Y.Text.WordBreak,",""," isArray = Y.Lang.isArray,",""," EMPTY_OBJECT = {},",""," // Regex string that captures zero or one unclosed HTML entities. Used in"," // the static regex template properties below. The entity matching is"," // intentionally loose here, since there's a world of complexity involved in"," // doing strict matching for this use case."," UNCLOSED_ENTITY = '(&[^;\\\\s]*)?',","","Highlight = {"," // -- Protected Static Properties ------------------------------------------",""," /**"," Regular expression template for highlighting a match that occurs anywhere"," in a string. The placeholder `%needles` will be replaced with a list of"," needles to match, joined by `|` characters.",""," This regex should have two capturing subpatterns:",""," 1. Zero or one unclosed HTML entity (e.g. \"&\" without a \";\" at the"," end)."," 2. The `%needles` placeholder.",""," The first subpattern match is used to emulate a negative lookbehind"," assertion in order to prevent highlighting inside HTML entities.",""," @property _REGEX"," @type String"," @protected"," @static"," @final"," **/"," _REGEX: UNCLOSED_ENTITY + '(%needles)',",""," /**"," Regex replacer function or string for normal matches.",""," @property _REPLACER"," @type Function|String"," @protected"," @static"," @final"," **/"," _REPLACER: function (match, p1, p2) {"," // Mimicking a negative lookbehind assertion to prevent matches inside"," // HTML entities. Hat tip to Steven Levithan for the technique:"," // http://blog.stevenlevithan.com/archives/mimic-lookbehind-javascript"," return p1 && !(/\\s/).test(p2) ? match :"," Highlight._TEMPLATE.replace(/\\{s\\}/g, p2);"," },",""," /**"," Regular expression template for highlighting start-of-string matches"," (i.e., only matches that occur at the beginning of a string). The"," placeholder `%needles` will be replaced with a list of needles to match,"," joined by `|` characters.",""," See `_REGEX` for a description of the capturing subpatterns this regex"," string should contain.",""," @property _START_REGEX"," @type String"," @protected"," @static"," @final"," */"," _START_REGEX: '^' + UNCLOSED_ENTITY + '(%needles)',",""," /**"," Highlight template which will be used as a replacement for matched"," substrings. The placeholder `{s}` will be replaced with the matched"," substring.",""," @property _TEMPLATE"," @type String"," @default '{s}'"," @protected"," @static"," @final"," **/"," _TEMPLATE: '{s}',",""," // -- Public Static Methods ------------------------------------------------",""," /**"," Highlights all occurrences in the _haystack_ string of the items in the"," _needles_ array, regardless of where they occur. The returned string will"," have all HTML characters escaped except for the highlighting markup.",""," @method all"," @param {String} haystack String to apply highlighting to."," @param {String|String[]} needles String or array of strings that should be"," highlighted."," @param {Object} [options] Options object."," @param {Boolean} [options.caseSensitive=false] If `true`, matching will"," be case-sensitive."," @param {Boolean} [options.startsWith=false] If `true`, matches must be"," anchored to the beginning of the string."," @return {String} Escaped and highlighted copy of _haystack_."," @static"," **/"," all: function (haystack, needles, options) {"," var validNeedles = [],"," esc, i, len, needle, regex, replacer;",""," if (!options) {"," options = EMPTY_OBJECT;"," }",""," // TODO: document options.replacer"," esc = options.escapeHTML !== false;"," regex = options.startsWith ? Highlight._START_REGEX : Highlight._REGEX;"," replacer = options.replacer || Highlight._REPLACER;"," needles = isArray(needles) ? needles : [needles];",""," // Escape HTML characters and special regular expression characters in"," // the needles so they can be used in a regex and matched against the"," // escaped haystack."," for (i = 0, len = needles.length; i < len; ++i) {"," needle = needles[i];",""," if (needle) {"," validNeedles.push(Escape.regex(esc ? Escape.html(needle) : needle));"," }"," }",""," // Escape HTML characters in the haystack to prevent HTML injection."," if (esc) {"," haystack = Escape.html(haystack);"," }",""," // No point continuing if there are no needles."," if (!validNeedles.length) {"," return haystack;"," }",""," return haystack.replace("," new RegExp("," regex.replace('%needles', validNeedles.join('|')),"," options.caseSensitive ? 'g' : 'gi'"," ),"," replacer"," );"," },",""," /**"," Same as `all()`, but case-sensitive by default.",""," @method allCase"," @param {String} haystack String to apply highlighting to."," @param {String|String[]} needles String or array of strings that should be"," highlighted."," @param {Object} [options] Options object. See `all()` for details."," @return {String} Escaped and highlighted copy of _haystack_."," @static"," **/"," allCase: function (haystack, needles, options) {"," return Highlight.all(haystack, needles,"," Y.merge(options || EMPTY_OBJECT, {caseSensitive: true}));"," },",""," /**"," Highlights _needles_ that occur at the start of _haystack_. The returned"," string will have all HTML characters escaped except for the highlighting"," markup.",""," @method start"," @param {String} haystack String to apply highlighting to."," @param {String|String[]} needles String or array of strings that should be"," highlighted."," @param {Object} [options] Options object."," @param {Boolean} [options.caseSensitive=false] If `true`, matching will"," be case-sensitive."," @return {String} Escaped and highlighted copy of _haystack_."," @static"," **/"," start: function (haystack, needles, options) {"," return Highlight.all(haystack, needles,"," Y.merge(options || EMPTY_OBJECT, {startsWith: true}));"," },",""," /**"," Same as `start()`, but case-sensitive by default.",""," @method startCase"," @param {String} haystack String to apply highlighting to."," @param {String|String[]} needles String or array of strings that should be"," highlighted."," @return {String} Escaped and highlighted copy of _haystack_."," @static"," **/"," startCase: function (haystack, needles) {"," // No options passthru for now, since it would be redundant. If start()"," // ever supports more options than caseSensitive, then we'll start"," // passing the options through."," return Highlight.start(haystack, needles, {caseSensitive: true});"," },",""," /**"," Highlights complete words in the _haystack_ string that are also in the"," _needles_ array. The returned string will have all HTML characters escaped"," except for the highlighting markup.",""," @method words"," @param {String} haystack String to apply highlighting to."," @param {String|String[]} needles String or array of strings containing words"," that should be highlighted. If a string is passed, it will be split"," into words; if an array is passed, it is assumed to have already been"," split."," @param {Object} [options] Options object."," @param {Boolean} [options.caseSensitive=false] If `true`, matching will"," be case-sensitive."," @return {String} Escaped and highlighted copy of _haystack_."," @static"," **/"," words: function (haystack, needles, options) {"," var caseSensitive,"," mapper,"," template = Highlight._TEMPLATE,"," words;",""," if (!options) {"," options = EMPTY_OBJECT;"," }",""," caseSensitive = !!options.caseSensitive;",""," // Convert needles to a hash for faster lookups."," needles = YArray.hash("," isArray(needles) ? needles : WordBreak.getUniqueWords(needles, {"," ignoreCase: !caseSensitive"," })"," );",""," // The default word mapping function can be overridden with a custom"," // one. This is used to implement accent-folded highlighting in the"," // highlight-accentfold module."," mapper = options.mapper || function (word, needles) {"," if (needles.hasOwnProperty(caseSensitive ? word : word.toLowerCase())) {"," return template.replace(/\\{s\\}/g, Escape.html(word));"," }",""," return Escape.html(word);"," };",""," // Split the haystack into an array of words, including punctuation and"," // whitespace so we can rebuild the string later."," words = WordBreak.getWords(haystack, {"," includePunctuation: true,"," includeWhitespace : true"," });",""," return YArray.map(words, function (word) {"," return mapper(word, needles);"," }).join('');"," },",""," /**"," Same as `words()`, but case-sensitive by default.",""," @method wordsCase"," @param {String} haystack String to apply highlighting to."," @param {String|String[]} needles String or array of strings containing words"," that should be highlighted. If a string is passed, it will be split"," into words; if an array is passed, it is assumed to have already been"," split."," @return {String} Escaped and highlighted copy of _haystack_."," @static"," **/"," wordsCase: function (haystack, needles) {"," // No options passthru for now, since it would be redundant. If words()"," // ever supports more options than caseSensitive, then we'll start"," // passing the options through."," return Highlight.words(haystack, needles, {caseSensitive: true});"," }","};","","Y.Highlight = Highlight;","","","}, '3.7.3', {\"requires\": [\"array-extras\", \"classnamemanager\", \"escape\", \"text-wordbreak\"]});"]; _yuitest_coverage["build/highlight-base/highlight-base.js"].lines = {"1":0,"27":0,"79":0,"134":0,"137":0,"138":0,"142":0,"143":0,"144":0,"145":0,"150":0,"151":0,"153":0,"154":0,"159":0,"160":0,"164":0,"165":0,"168":0,"189":0,"209":0,"227":0,"248":0,"253":0,"254":0,"257":0,"260":0,"269":0,"270":0,"271":0,"274":0,"279":0,"284":0,"285":0,"305":0,"309":0}; _yuitest_coverage["build/highlight-base/highlight-base.js"].functions = {"_REPLACER:75":0,"all:133":0,"allCase:188":0,"start:208":0,"startCase:223":0,"(anonymous 2):269":0,"(anonymous 3):284":0,"words:247":0,"wordsCase:301":0,"(anonymous 1):1":0}; _yuitest_coverage["build/highlight-base/highlight-base.js"].coveredLines = 36; @@ -394,4 +394,4 @@ _yuitest_coverline("build/highlight-base/highlight-base.js", 309); Y.Highlight = Highlight; -}, '3.7.2', {"requires": ["array-extras", "classnamemanager", "escape", "text-wordbreak"]}); +}, '3.7.3', {"requires": ["array-extras", "classnamemanager", "escape", "text-wordbreak"]}); diff --git a/lib/yuilib/3.7.2/build/highlight-base/highlight-base-debug.js b/lib/yuilib/3.7.3/build/highlight-base/highlight-base-debug.js similarity index 99% rename from lib/yuilib/3.7.2/build/highlight-base/highlight-base-debug.js rename to lib/yuilib/3.7.3/build/highlight-base/highlight-base-debug.js index e0b7923fcfe..38d9abb6f66 100644 --- a/lib/yuilib/3.7.2/build/highlight-base/highlight-base-debug.js +++ b/lib/yuilib/3.7.3/build/highlight-base/highlight-base-debug.js @@ -1,5 +1,5 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ @@ -315,4 +315,4 @@ Highlight = { Y.Highlight = Highlight; -}, '3.7.2', {"requires": ["array-extras", "classnamemanager", "escape", "text-wordbreak"]}); +}, '3.7.3', {"requires": ["array-extras", "classnamemanager", "escape", "text-wordbreak"]}); diff --git a/lib/yuilib/3.7.2/build/highlight-base/highlight-base-min.js b/lib/yuilib/3.7.3/build/highlight-base/highlight-base-min.js similarity index 94% rename from lib/yuilib/3.7.2/build/highlight-base/highlight-base-min.js rename to lib/yuilib/3.7.3/build/highlight-base/highlight-base-min.js index 60b899766e3..60e1fba867e 100644 --- a/lib/yuilib/3.7.2/build/highlight-base/highlight-base-min.js +++ b/lib/yuilib/3.7.3/build/highlight-base/highlight-base-min.js @@ -1,7 +1,7 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ */ -YUI.add("highlight-base",function(e,t){var n=e.Array,r=e.Escape,i=e.Text.WordBreak,s=e.Lang.isArray,o={},u="(&[^;\\s]*)?",a={_REGEX:u+"(%needles)",_REPLACER:function(e,t,n){return t&&!/\s/.test(n)?e:a._TEMPLATE.replace(/\{s\}/g,n)},_START_REGEX:"^"+u+"(%needles)",_TEMPLATE:'{s}',all:function(e,t,n){var i=[],u,f,l,c,h,p;n||(n=o),u=n.escapeHTML!==!1,h=n.startsWith?a._START_REGEX:a._REGEX,p=n.replacer||a._REPLACER,t=s(t)?t:[t];for(f=0,l=t.length;f{s}',all:function(e,t,n){var i=[],u,f,l,c,h,p;n||(n=o),u=n.escapeHTML!==!1,h=n.startsWith?a._START_REGEX:a._REGEX,p=n.replacer||a._REPLACER,t=s(t)?t:[t];for(f=0,l=t.length;f"," *
    force (Boolean)
    "," *
    "," * If `true`, a `history:change` event will be fired whenever the URL"," * changes, even if there is no associated state change. Default is `false`."," *
    "," *"," *
    initialState (Object)
    "," *
    "," * Initial state to set, as an object hash of key/value pairs. This will be"," * merged into the current global state."," *
    "," * "," */","","var Lang = Y.Lang,"," Obj = Y.Object,"," GlobalEnv = YUI.namespace('Env.History'),"," YArray = Y.Array,",""," doc = Y.config.doc,"," docMode = doc.documentMode,"," win = Y.config.win,",""," DEFAULT_OPTIONS = {merge: true},"," EVT_CHANGE = 'change',"," SRC_ADD = 'add',"," SRC_REPLACE = 'replace';","","function HistoryBase() {"," this._init.apply(this, arguments);","}","","Y.augment(HistoryBase, Y.EventTarget, null, null, {"," emitFacade : true,"," prefix : 'history',"," preventable: false,"," queueable : true","});","","if (!GlobalEnv._state) {"," GlobalEnv._state = {};","}","","// -- Private Methods ----------------------------------------------------------","","/**"," * Returns true if value is a simple object and not a"," * function or an array."," *"," * @method _isSimpleObject"," * @param {mixed} value"," * @return {Boolean}"," * @private"," */","function _isSimpleObject(value) {"," return Lang.type(value) === 'object';","}","","// -- Public Static Properties -------------------------------------------------","","/**"," * Name of this component."," *"," * @property NAME"," * @type String"," * @static"," */","HistoryBase.NAME = 'historyBase';","","/**"," * Constant used to identify state changes originating from the"," * add() method."," *"," * @property SRC_ADD"," * @type String"," * @static"," * @final"," */","HistoryBase.SRC_ADD = SRC_ADD;","","/**"," * Constant used to identify state changes originating from the"," * replace() method."," *"," * @property SRC_REPLACE"," * @type String"," * @static"," * @final"," */","HistoryBase.SRC_REPLACE = SRC_REPLACE;","","/**"," * Whether or not this browser supports the HTML5 History API."," *"," * @property html5"," * @type Boolean"," * @static"," */","","// All HTML5-capable browsers except Gecko 2+ (Firefox 4+) correctly return","// true for 'onpopstate' in win. In order to support Gecko 2, we fall back to a","// UA sniff for now. (current as of Firefox 4.0b2)","HistoryBase.html5 = !!(win.history && win.history.pushState &&"," win.history.replaceState && ('onpopstate' in win || Y.UA.gecko >= 2) &&"," (!Y.UA.android || Y.UA.android >= 2.4));","","/**"," * Whether or not this browser supports the window.onhashchange"," * event natively. Note that even if this is true, you may"," * still want to use HistoryHash's synthetic hashchange event"," * since it normalizes implementation differences and fixes spec violations"," * across various browsers."," *"," * @property nativeHashChange"," * @type Boolean"," * @static"," */","","// Most browsers that support hashchange expose it on the window. Opera 10.6+","// exposes it on the document (but you can still attach to it on the window).","//","// IE8 supports the hashchange event, but only in IE8 Standards","// Mode. However, IE8 in IE7 compatibility mode still defines the","// event but never fires it, so we can't just detect the event. We also can't","// just UA sniff for IE8, since other browsers support this event as well.","HistoryBase.nativeHashChange = ('onhashchange' in win || 'onhashchange' in doc) &&"," (!docMode || docMode > 7);","","Y.mix(HistoryBase.prototype, {"," // -- Initialization -------------------------------------------------------",""," /**"," * Initializes this HistoryBase instance. This method is called by the"," * constructor."," *"," * @method _init"," * @param {Object} config configuration object"," * @protected"," */"," _init: function (config) {"," var initialState;",""," /**"," * Configuration object provided by the user on instantiation, or an"," * empty object if one wasn't provided."," *"," * @property _config"," * @type Object"," * @default {}"," * @protected"," */"," config = this._config = config || {};",""," /**"," * If `true`, a `history:change` event will be fired whenever the URL"," * changes, even if there is no associated state change."," *"," * @property force"," * @type Boolean"," * @default false"," */"," this.force = !!config.force;",""," /**"," * Resolved initial state: a merge of the user-supplied initial state"," * (if any) and any initial state provided by a subclass. This may"," * differ from _config.initialState. If neither the config"," * nor a subclass supplies an initial state, this property will be"," * null."," *"," * @property _initialState"," * @type Object|null"," * @default {}"," * @protected"," */"," initialState = this._initialState = this._initialState ||"," config.initialState || null;",""," /**"," * Fired when the state changes. To be notified of all state changes"," * regardless of the History or YUI instance that generated them,"," * subscribe to this event on Y.Global. If you would rather"," * be notified only about changes generated by this specific History"," * instance, subscribe to this event on the instance."," *"," * @event history:change"," * @param {EventFacade} e Event facade with the following additional"," * properties:"," *"," *
    "," *
    changed (Object)
    "," *
    "," * Object hash of state items that have been added or changed. The"," * key is the item key, and the value is an object containing"," * newVal and prevVal properties"," * representing the values of the item both before and after the"," * change. If the item was newly added, prevVal will be"," * undefined."," *
    "," *"," *
    newVal (Object)
    "," *
    "," * Object hash of key/value pairs of all state items after the"," * change."," *
    "," *"," *
    prevVal (Object)
    "," *
    "," * Object hash of key/value pairs of all state items before the"," * change."," *
    "," *"," *
    removed (Object)
    "," *
    "," * Object hash of key/value pairs of state items that have been"," * removed. Values are the old values prior to removal."," *
    "," *"," *
    src (String)
    "," *
    "," * The source of the event. This can be used to selectively ignore"," * events generated by certain sources."," *
    "," *
    "," */"," this.publish(EVT_CHANGE, {"," broadcast: 2,"," defaultFn: this._defChangeFn"," });",""," // If initialState was provided, merge it into the current state."," if (initialState) {"," this.replace(initialState);"," }"," },",""," // -- Public Methods -------------------------------------------------------",""," /**"," * Adds a state entry with new values for the specified keys. By default,"," * the new state will be merged into the existing state, and new values will"," * override existing values. Specifying a null or"," * undefined value will cause that key to be removed from the"," * new state entry."," *"," * @method add"," * @param {Object} state Object hash of key/value pairs."," * @param {Object} options (optional) Zero or more of the following options:"," *
    "," *
    merge (Boolean)
    "," *
    "," *

    "," * If true (the default), the new state will be merged"," * into the existing state. New values will override existing values,"," * and null or undefined values will be"," * removed from the state."," *

    "," *"," *

    "," * If false, the existing state will be discarded as a"," * whole and the new state will take its place."," *

    "," *
    "," *
    "," * @chainable"," */"," add: function () {"," var args = YArray(arguments, 0, true);"," args.unshift(SRC_ADD);"," return this._change.apply(this, args);"," },",""," /**"," * Adds a state entry with a new value for a single key. By default, the new"," * value will be merged into the existing state values, and will override an"," * existing value with the same key if there is one. Specifying a"," * null or undefined value will cause the key to"," * be removed from the new state entry."," *"," * @method addValue"," * @param {String} key State parameter key."," * @param {String} value New value."," * @param {Object} options (optional) Zero or more options. See"," * add() for a list of supported options."," * @chainable"," */"," addValue: function (key, value, options) {"," var state = {};"," state[key] = value;"," return this._change(SRC_ADD, state, options);"," },",""," /**"," * Returns the current value of the state parameter specified by key,"," * or an object hash of key/value pairs for all current state parameters if"," * no key is specified."," *"," * @method get"," * @param {String} key (optional) State parameter key."," * @return {Object|String} Value of the specified state parameter, or an"," * object hash of key/value pairs for all current state parameters."," */"," get: function (key) {"," var state = GlobalEnv._state,"," isObject = _isSimpleObject(state);",""," if (key) {"," return isObject && Obj.owns(state, key) ? state[key] : undefined;"," } else {"," return isObject ? Y.mix({}, state, true) : state; // mix provides a fast shallow clone."," }"," },",""," /**"," * Same as add() except that a new browser history entry will"," * not be created. Instead, the current history entry will be replaced with"," * the new state."," *"," * @method replace"," * @param {Object} state Object hash of key/value pairs."," * @param {Object} options (optional) Zero or more options. See"," * add() for a list of supported options."," * @chainable"," */"," replace: function () {"," var args = YArray(arguments, 0, true);"," args.unshift(SRC_REPLACE);"," return this._change.apply(this, args);"," },",""," /**"," * Same as addValue() except that a new browser history entry"," * will not be created. Instead, the current history entry will be replaced"," * with the new state."," *"," * @method replaceValue"," * @param {String} key State parameter key."," * @param {String} value New value."," * @param {Object} options (optional) Zero or more options. See"," * add() for a list of supported options."," * @chainable"," */"," replaceValue: function (key, value, options) {"," var state = {};"," state[key] = value;"," return this._change(SRC_REPLACE, state, options);"," },",""," // -- Protected Methods ----------------------------------------------------",""," /**"," * Changes the state. This method provides a common implementation shared by"," * the public methods for changing state."," *"," * @method _change"," * @param {String} src Source of the change, for inclusion in event facades"," * to facilitate filtering."," * @param {Object} state Object hash of key/value pairs."," * @param {Object} options (optional) Zero or more options. See"," * add() for a list of supported options."," * @protected"," * @chainable"," */"," _change: function (src, state, options) {"," options = options ? Y.merge(DEFAULT_OPTIONS, options) : DEFAULT_OPTIONS;",""," if (options.merge && _isSimpleObject(state) &&"," _isSimpleObject(GlobalEnv._state)) {"," state = Y.merge(GlobalEnv._state, state);"," }",""," this._resolveChanges(src, state, options);"," return this;"," },",""," /**"," * Called by _resolveChanges() when the state has changed. This method takes"," * care of actually firing the necessary events."," *"," * @method _fireEvents"," * @param {String} src Source of the changes, for inclusion in event facades"," * to facilitate filtering."," * @param {Object} changes Resolved changes."," * @param {Object} options Zero or more options. See add() for"," * a list of supported options."," * @protected"," */"," _fireEvents: function (src, changes, options) {"," // Fire the global change event."," this.fire(EVT_CHANGE, {"," _options: options,"," changed : changes.changed,"," newVal : changes.newState,"," prevVal : changes.prevState,"," removed : changes.removed,"," src : src"," });",""," // Fire change/remove events for individual items."," Obj.each(changes.changed, function (value, key) {"," this._fireChangeEvent(src, key, value);"," }, this);",""," Obj.each(changes.removed, function (value, key) {"," this._fireRemoveEvent(src, key, value);"," }, this);"," },",""," /**"," * Fires a dynamic \"[key]Change\" event."," *"," * @method _fireChangeEvent"," * @param {String} src source of the change, for inclusion in event facades"," * to facilitate filtering"," * @param {String} key key of the item that was changed"," * @param {Object} value object hash containing newVal and"," * prevVal properties for the changed item"," * @protected"," */"," _fireChangeEvent: function (src, key, value) {"," /**"," *

    "," * Dynamic event fired when an individual history item is added or"," * changed. The name of this event depends on the name of the key that"," * changed. To listen to change events for a key named \"foo\", subscribe"," * to the fooChange event; for a key named \"bar\", subscribe"," * to barChange, etc."," *

    "," *"," *

    "," * Key-specific events are only fired for instance-level changes; that"," * is, changes that were made via the same History instance on which the"," * event is subscribed. To be notified of changes made by other History"," * instances, subscribe to the global history:change event."," *

    "," *"," * @event [key]Change"," * @param {EventFacade} e Event facade with the following additional"," * properties:"," *"," *
    "," *
    newVal (mixed)
    "," *
    "," * The new value of the item after the change."," *
    "," *"," *
    prevVal (mixed)
    "," *
    "," * The previous value of the item before the change, or"," * undefined if the item was just added and has no"," * previous value."," *
    "," *"," *
    src (String)
    "," *
    "," * The source of the event. This can be used to selectively ignore"," * events generated by certain sources."," *
    "," *
    "," */"," this.fire(key + 'Change', {"," newVal : value.newVal,"," prevVal: value.prevVal,"," src : src"," });"," },",""," /**"," * Fires a dynamic \"[key]Remove\" event."," *"," * @method _fireRemoveEvent"," * @param {String} src source of the change, for inclusion in event facades"," * to facilitate filtering"," * @param {String} key key of the item that was removed"," * @param {mixed} value value of the item prior to its removal"," * @protected"," */"," _fireRemoveEvent: function (src, key, value) {"," /**"," *

    "," * Dynamic event fired when an individual history item is removed. The"," * name of this event depends on the name of the key that was removed."," * To listen to remove events for a key named \"foo\", subscribe to the"," * fooRemove event; for a key named \"bar\", subscribe to"," * barRemove, etc."," *

    "," *"," *

    "," * Key-specific events are only fired for instance-level changes; that"," * is, changes that were made via the same History instance on which the"," * event is subscribed. To be notified of changes made by other History"," * instances, subscribe to the global history:change event."," *

    "," *"," * @event [key]Remove"," * @param {EventFacade} e Event facade with the following additional"," * properties:"," *"," *
    "," *
    prevVal (mixed)
    "," *
    "," * The value of the item before it was removed."," *
    "," *"," *
    src (String)
    "," *
    "," * The source of the event. This can be used to selectively ignore"," * events generated by certain sources."," *
    "," *
    "," */"," this.fire(key + 'Remove', {"," prevVal: value,"," src : src"," });"," },",""," /**"," * Resolves the changes (if any) between newState and the current"," * state and fires appropriate events if things have changed."," *"," * @method _resolveChanges"," * @param {String} src source of the changes, for inclusion in event facades"," * to facilitate filtering"," * @param {Object} newState object hash of key/value pairs representing the"," * new state"," * @param {Object} options Zero or more options. See add() for"," * a list of supported options."," * @protected"," */"," _resolveChanges: function (src, newState, options) {"," var changed = {},"," isChanged,"," prevState = GlobalEnv._state,"," removed = {};",""," newState || (newState = {});"," options || (options = {});",""," if (_isSimpleObject(newState) && _isSimpleObject(prevState)) {"," // Figure out what was added or changed."," Obj.each(newState, function (newVal, key) {"," var prevVal = prevState[key];",""," if (newVal !== prevVal) {"," changed[key] = {"," newVal : newVal,"," prevVal: prevVal"," };",""," isChanged = true;"," }"," }, this);",""," // Figure out what was removed."," Obj.each(prevState, function (prevVal, key) {"," if (!Obj.owns(newState, key) || newState[key] === null) {"," delete newState[key];"," removed[key] = prevVal;"," isChanged = true;"," }"," }, this);"," } else {"," isChanged = newState !== prevState;"," }",""," if (isChanged || this.force) {"," this._fireEvents(src, {"," changed : changed,"," newState : newState,"," prevState: prevState,"," removed : removed"," }, options);"," }"," },",""," /**"," * Stores the specified state. Don't call this method directly; go through"," * _resolveChanges() to ensure that changes are resolved and all events are"," * fired properly."," *"," * @method _storeState"," * @param {String} src source of the changes"," * @param {Object} newState new state to store"," * @param {Object} options Zero or more options. See add() for"," * a list of supported options."," * @protected"," */"," _storeState: function (src, newState) {"," // Note: the src and options params aren't used here, but they are used"," // by subclasses."," GlobalEnv._state = newState || {};"," },",""," // -- Protected Event Handlers ---------------------------------------------",""," /**"," * Default history:change event handler."," *"," * @method _defChangeFn"," * @param {EventFacade} e state change event facade"," * @protected"," */"," _defChangeFn: function (e) {"," this._storeState(e.src, e.newVal, e._options);"," }","}, true);","","Y.HistoryBase = HistoryBase;","","","}, '3.7.2', {\"requires\": [\"event-custom-complex\"]});"]; +_yuitest_coverage["build/history-base/history-base.js"].code=["YUI.add('history-base', function (Y, NAME) {","","/**"," * Provides browser history management functionality using a simple"," * add/replace/get paradigm. This can be used to ensure that the browser's back"," * and forward buttons work as the user expects and to provide bookmarkable URLs"," * that return the user to the current application state, even in an Ajax"," * application that doesn't perform full-page refreshes."," *"," * @module history"," * @main history"," * @since 3.2.0"," */","","/**"," * Provides global state management backed by an object, but with no browser"," * history integration. For actual browser history integration and back/forward"," * support, use the history-html5 or history-hash modules."," *"," * @module history"," * @submodule history-base"," * @class HistoryBase"," * @uses EventTarget"," * @constructor"," * @param {Object} config (optional) configuration object, which may contain"," * zero or more of the following properties:"," *"," *
    "," *
    force (Boolean)
    "," *
    "," * If `true`, a `history:change` event will be fired whenever the URL"," * changes, even if there is no associated state change. Default is `false`."," *
    "," *"," *
    initialState (Object)
    "," *
    "," * Initial state to set, as an object hash of key/value pairs. This will be"," * merged into the current global state."," *
    "," *
    "," */","","var Lang = Y.Lang,"," Obj = Y.Object,"," GlobalEnv = YUI.namespace('Env.History'),"," YArray = Y.Array,",""," doc = Y.config.doc,"," docMode = doc.documentMode,"," win = Y.config.win,",""," DEFAULT_OPTIONS = {merge: true},"," EVT_CHANGE = 'change',"," SRC_ADD = 'add',"," SRC_REPLACE = 'replace';","","function HistoryBase() {"," this._init.apply(this, arguments);","}","","Y.augment(HistoryBase, Y.EventTarget, null, null, {"," emitFacade : true,"," prefix : 'history',"," preventable: false,"," queueable : true","});","","if (!GlobalEnv._state) {"," GlobalEnv._state = {};","}","","// -- Private Methods ----------------------------------------------------------","","/**"," * Returns true if value is a simple object and not a"," * function or an array."," *"," * @method _isSimpleObject"," * @param {mixed} value"," * @return {Boolean}"," * @private"," */","function _isSimpleObject(value) {"," return Lang.type(value) === 'object';","}","","// -- Public Static Properties -------------------------------------------------","","/**"," * Name of this component."," *"," * @property NAME"," * @type String"," * @static"," */","HistoryBase.NAME = 'historyBase';","","/**"," * Constant used to identify state changes originating from the"," * add() method."," *"," * @property SRC_ADD"," * @type String"," * @static"," * @final"," */","HistoryBase.SRC_ADD = SRC_ADD;","","/**"," * Constant used to identify state changes originating from the"," * replace() method."," *"," * @property SRC_REPLACE"," * @type String"," * @static"," * @final"," */","HistoryBase.SRC_REPLACE = SRC_REPLACE;","","/**"," * Whether or not this browser supports the HTML5 History API."," *"," * @property html5"," * @type Boolean"," * @static"," */","","// All HTML5-capable browsers except Gecko 2+ (Firefox 4+) correctly return","// true for 'onpopstate' in win. In order to support Gecko 2, we fall back to a","// UA sniff for now. (current as of Firefox 4.0b2)","HistoryBase.html5 = !!(win.history && win.history.pushState &&"," win.history.replaceState && ('onpopstate' in win || Y.UA.gecko >= 2) &&"," (!Y.UA.android || Y.UA.android >= 2.4));","","/**"," * Whether or not this browser supports the window.onhashchange"," * event natively. Note that even if this is true, you may"," * still want to use HistoryHash's synthetic hashchange event"," * since it normalizes implementation differences and fixes spec violations"," * across various browsers."," *"," * @property nativeHashChange"," * @type Boolean"," * @static"," */","","// Most browsers that support hashchange expose it on the window. Opera 10.6+","// exposes it on the document (but you can still attach to it on the window).","//","// IE8 supports the hashchange event, but only in IE8 Standards","// Mode. However, IE8 in IE7 compatibility mode still defines the","// event but never fires it, so we can't just detect the event. We also can't","// just UA sniff for IE8, since other browsers support this event as well.","HistoryBase.nativeHashChange = ('onhashchange' in win || 'onhashchange' in doc) &&"," (!docMode || docMode > 7);","","Y.mix(HistoryBase.prototype, {"," // -- Initialization -------------------------------------------------------",""," /**"," * Initializes this HistoryBase instance. This method is called by the"," * constructor."," *"," * @method _init"," * @param {Object} config configuration object"," * @protected"," */"," _init: function (config) {"," var initialState;",""," /**"," * Configuration object provided by the user on instantiation, or an"," * empty object if one wasn't provided."," *"," * @property _config"," * @type Object"," * @default {}"," * @protected"," */"," config = this._config = config || {};",""," /**"," * If `true`, a `history:change` event will be fired whenever the URL"," * changes, even if there is no associated state change."," *"," * @property force"," * @type Boolean"," * @default false"," */"," this.force = !!config.force;",""," /**"," * Resolved initial state: a merge of the user-supplied initial state"," * (if any) and any initial state provided by a subclass. This may"," * differ from _config.initialState. If neither the config"," * nor a subclass supplies an initial state, this property will be"," * null."," *"," * @property _initialState"," * @type Object|null"," * @default {}"," * @protected"," */"," initialState = this._initialState = this._initialState ||"," config.initialState || null;",""," /**"," * Fired when the state changes. To be notified of all state changes"," * regardless of the History or YUI instance that generated them,"," * subscribe to this event on Y.Global. If you would rather"," * be notified only about changes generated by this specific History"," * instance, subscribe to this event on the instance."," *"," * @event history:change"," * @param {EventFacade} e Event facade with the following additional"," * properties:"," *"," *
    "," *
    changed (Object)
    "," *
    "," * Object hash of state items that have been added or changed. The"," * key is the item key, and the value is an object containing"," * newVal and prevVal properties"," * representing the values of the item both before and after the"," * change. If the item was newly added, prevVal will be"," * undefined."," *
    "," *"," *
    newVal (Object)
    "," *
    "," * Object hash of key/value pairs of all state items after the"," * change."," *
    "," *"," *
    prevVal (Object)
    "," *
    "," * Object hash of key/value pairs of all state items before the"," * change."," *
    "," *"," *
    removed (Object)
    "," *
    "," * Object hash of key/value pairs of state items that have been"," * removed. Values are the old values prior to removal."," *
    "," *"," *
    src (String)
    "," *
    "," * The source of the event. This can be used to selectively ignore"," * events generated by certain sources."," *
    "," *
    "," */"," this.publish(EVT_CHANGE, {"," broadcast: 2,"," defaultFn: this._defChangeFn"," });",""," // If initialState was provided, merge it into the current state."," if (initialState) {"," this.replace(initialState);"," }"," },",""," // -- Public Methods -------------------------------------------------------",""," /**"," * Adds a state entry with new values for the specified keys. By default,"," * the new state will be merged into the existing state, and new values will"," * override existing values. Specifying a null or"," * undefined value will cause that key to be removed from the"," * new state entry."," *"," * @method add"," * @param {Object} state Object hash of key/value pairs."," * @param {Object} options (optional) Zero or more of the following options:"," *
    "," *
    merge (Boolean)
    "," *
    "," *

    "," * If true (the default), the new state will be merged"," * into the existing state. New values will override existing values,"," * and null or undefined values will be"," * removed from the state."," *

    "," *"," *

    "," * If false, the existing state will be discarded as a"," * whole and the new state will take its place."," *

    "," *
    "," *
    "," * @chainable"," */"," add: function () {"," var args = YArray(arguments, 0, true);"," args.unshift(SRC_ADD);"," return this._change.apply(this, args);"," },",""," /**"," * Adds a state entry with a new value for a single key. By default, the new"," * value will be merged into the existing state values, and will override an"," * existing value with the same key if there is one. Specifying a"," * null or undefined value will cause the key to"," * be removed from the new state entry."," *"," * @method addValue"," * @param {String} key State parameter key."," * @param {String} value New value."," * @param {Object} options (optional) Zero or more options. See"," * add() for a list of supported options."," * @chainable"," */"," addValue: function (key, value, options) {"," var state = {};"," state[key] = value;"," return this._change(SRC_ADD, state, options);"," },",""," /**"," * Returns the current value of the state parameter specified by key,"," * or an object hash of key/value pairs for all current state parameters if"," * no key is specified."," *"," * @method get"," * @param {String} key (optional) State parameter key."," * @return {Object|String} Value of the specified state parameter, or an"," * object hash of key/value pairs for all current state parameters."," */"," get: function (key) {"," var state = GlobalEnv._state,"," isObject = _isSimpleObject(state);",""," if (key) {"," return isObject && Obj.owns(state, key) ? state[key] : undefined;"," } else {"," return isObject ? Y.mix({}, state, true) : state; // mix provides a fast shallow clone."," }"," },",""," /**"," * Same as add() except that a new browser history entry will"," * not be created. Instead, the current history entry will be replaced with"," * the new state."," *"," * @method replace"," * @param {Object} state Object hash of key/value pairs."," * @param {Object} options (optional) Zero or more options. See"," * add() for a list of supported options."," * @chainable"," */"," replace: function () {"," var args = YArray(arguments, 0, true);"," args.unshift(SRC_REPLACE);"," return this._change.apply(this, args);"," },",""," /**"," * Same as addValue() except that a new browser history entry"," * will not be created. Instead, the current history entry will be replaced"," * with the new state."," *"," * @method replaceValue"," * @param {String} key State parameter key."," * @param {String} value New value."," * @param {Object} options (optional) Zero or more options. See"," * add() for a list of supported options."," * @chainable"," */"," replaceValue: function (key, value, options) {"," var state = {};"," state[key] = value;"," return this._change(SRC_REPLACE, state, options);"," },",""," // -- Protected Methods ----------------------------------------------------",""," /**"," * Changes the state. This method provides a common implementation shared by"," * the public methods for changing state."," *"," * @method _change"," * @param {String} src Source of the change, for inclusion in event facades"," * to facilitate filtering."," * @param {Object} state Object hash of key/value pairs."," * @param {Object} options (optional) Zero or more options. See"," * add() for a list of supported options."," * @protected"," * @chainable"," */"," _change: function (src, state, options) {"," options = options ? Y.merge(DEFAULT_OPTIONS, options) : DEFAULT_OPTIONS;",""," if (options.merge && _isSimpleObject(state) &&"," _isSimpleObject(GlobalEnv._state)) {"," state = Y.merge(GlobalEnv._state, state);"," }",""," this._resolveChanges(src, state, options);"," return this;"," },",""," /**"," * Called by _resolveChanges() when the state has changed. This method takes"," * care of actually firing the necessary events."," *"," * @method _fireEvents"," * @param {String} src Source of the changes, for inclusion in event facades"," * to facilitate filtering."," * @param {Object} changes Resolved changes."," * @param {Object} options Zero or more options. See add() for"," * a list of supported options."," * @protected"," */"," _fireEvents: function (src, changes, options) {"," // Fire the global change event."," this.fire(EVT_CHANGE, {"," _options: options,"," changed : changes.changed,"," newVal : changes.newState,"," prevVal : changes.prevState,"," removed : changes.removed,"," src : src"," });",""," // Fire change/remove events for individual items."," Obj.each(changes.changed, function (value, key) {"," this._fireChangeEvent(src, key, value);"," }, this);",""," Obj.each(changes.removed, function (value, key) {"," this._fireRemoveEvent(src, key, value);"," }, this);"," },",""," /**"," * Fires a dynamic \"[key]Change\" event."," *"," * @method _fireChangeEvent"," * @param {String} src source of the change, for inclusion in event facades"," * to facilitate filtering"," * @param {String} key key of the item that was changed"," * @param {Object} value object hash containing newVal and"," * prevVal properties for the changed item"," * @protected"," */"," _fireChangeEvent: function (src, key, value) {"," /**"," *

    "," * Dynamic event fired when an individual history item is added or"," * changed. The name of this event depends on the name of the key that"," * changed. To listen to change events for a key named \"foo\", subscribe"," * to the fooChange event; for a key named \"bar\", subscribe"," * to barChange, etc."," *

    "," *"," *

    "," * Key-specific events are only fired for instance-level changes; that"," * is, changes that were made via the same History instance on which the"," * event is subscribed. To be notified of changes made by other History"," * instances, subscribe to the global history:change event."," *

    "," *"," * @event [key]Change"," * @param {EventFacade} e Event facade with the following additional"," * properties:"," *"," *
    "," *
    newVal (mixed)
    "," *
    "," * The new value of the item after the change."," *
    "," *"," *
    prevVal (mixed)
    "," *
    "," * The previous value of the item before the change, or"," * undefined if the item was just added and has no"," * previous value."," *
    "," *"," *
    src (String)
    "," *
    "," * The source of the event. This can be used to selectively ignore"," * events generated by certain sources."," *
    "," *
    "," */"," this.fire(key + 'Change', {"," newVal : value.newVal,"," prevVal: value.prevVal,"," src : src"," });"," },",""," /**"," * Fires a dynamic \"[key]Remove\" event."," *"," * @method _fireRemoveEvent"," * @param {String} src source of the change, for inclusion in event facades"," * to facilitate filtering"," * @param {String} key key of the item that was removed"," * @param {mixed} value value of the item prior to its removal"," * @protected"," */"," _fireRemoveEvent: function (src, key, value) {"," /**"," *

    "," * Dynamic event fired when an individual history item is removed. The"," * name of this event depends on the name of the key that was removed."," * To listen to remove events for a key named \"foo\", subscribe to the"," * fooRemove event; for a key named \"bar\", subscribe to"," * barRemove, etc."," *

    "," *"," *

    "," * Key-specific events are only fired for instance-level changes; that"," * is, changes that were made via the same History instance on which the"," * event is subscribed. To be notified of changes made by other History"," * instances, subscribe to the global history:change event."," *

    "," *"," * @event [key]Remove"," * @param {EventFacade} e Event facade with the following additional"," * properties:"," *"," *
    "," *
    prevVal (mixed)
    "," *
    "," * The value of the item before it was removed."," *
    "," *"," *
    src (String)
    "," *
    "," * The source of the event. This can be used to selectively ignore"," * events generated by certain sources."," *
    "," *
    "," */"," this.fire(key + 'Remove', {"," prevVal: value,"," src : src"," });"," },",""," /**"," * Resolves the changes (if any) between newState and the current"," * state and fires appropriate events if things have changed."," *"," * @method _resolveChanges"," * @param {String} src source of the changes, for inclusion in event facades"," * to facilitate filtering"," * @param {Object} newState object hash of key/value pairs representing the"," * new state"," * @param {Object} options Zero or more options. See add() for"," * a list of supported options."," * @protected"," */"," _resolveChanges: function (src, newState, options) {"," var changed = {},"," isChanged,"," prevState = GlobalEnv._state,"," removed = {};",""," newState || (newState = {});"," options || (options = {});",""," if (_isSimpleObject(newState) && _isSimpleObject(prevState)) {"," // Figure out what was added or changed."," Obj.each(newState, function (newVal, key) {"," var prevVal = prevState[key];",""," if (newVal !== prevVal) {"," changed[key] = {"," newVal : newVal,"," prevVal: prevVal"," };",""," isChanged = true;"," }"," }, this);",""," // Figure out what was removed."," Obj.each(prevState, function (prevVal, key) {"," if (!Obj.owns(newState, key) || newState[key] === null) {"," delete newState[key];"," removed[key] = prevVal;"," isChanged = true;"," }"," }, this);"," } else {"," isChanged = newState !== prevState;"," }",""," if (isChanged || this.force) {"," this._fireEvents(src, {"," changed : changed,"," newState : newState,"," prevState: prevState,"," removed : removed"," }, options);"," }"," },",""," /**"," * Stores the specified state. Don't call this method directly; go through"," * _resolveChanges() to ensure that changes are resolved and all events are"," * fired properly."," *"," * @method _storeState"," * @param {String} src source of the changes"," * @param {Object} newState new state to store"," * @param {Object} options Zero or more options. See add() for"," * a list of supported options."," * @protected"," */"," _storeState: function (src, newState) {"," // Note: the src and options params aren't used here, but they are used"," // by subclasses."," GlobalEnv._state = newState || {};"," },",""," // -- Protected Event Handlers ---------------------------------------------",""," /**"," * Default history:change event handler."," *"," * @method _defChangeFn"," * @param {EventFacade} e state change event facade"," * @protected"," */"," _defChangeFn: function (e) {"," this._storeState(e.src, e.newVal, e._options);"," }","}, true);","","Y.HistoryBase = HistoryBase;","","","}, '3.7.3', {\"requires\": [\"event-custom-complex\"]});"]; _yuitest_coverage["build/history-base/history-base.js"].lines = {"1":0,"43":0,"57":0,"58":0,"61":0,"68":0,"69":0,"83":0,"84":0,"96":0,"107":0,"118":0,"131":0,"154":0,"157":0,"169":0,"180":0,"190":0,"204":0,"254":0,"260":0,"261":0,"296":0,"297":0,"298":0,"316":0,"317":0,"318":0,"332":0,"335":0,"336":0,"338":0,"354":0,"355":0,"356":0,"372":0,"373":0,"374":0,"393":0,"395":0,"397":0,"400":0,"401":0,"418":0,"428":0,"429":0,"432":0,"433":0,"489":0,"540":0,"560":0,"565":0,"566":0,"568":0,"570":0,"571":0,"573":0,"574":0,"579":0,"584":0,"585":0,"586":0,"587":0,"588":0,"592":0,"595":0,"596":0,"620":0,"633":0,"637":0}; _yuitest_coverage["build/history-base/history-base.js"].functions = {"HistoryBase:57":0,"_isSimpleObject:83":0,"_init:168":0,"add:295":0,"addValue:315":0,"get:331":0,"replace:353":0,"replaceValue:371":0,"_change:392":0,"(anonymous 2):428":0,"(anonymous 3):432":0,"_fireEvents:416":0,"_fireChangeEvent:448":0,"_fireRemoveEvent:506":0,"(anonymous 4):570":0,"(anonymous 5):584":0,"_resolveChanges:559":0,"_storeState:617":0,"_defChangeFn:632":0,"(anonymous 1):1":0}; _yuitest_coverage["build/history-base/history-base.js"].coveredLines = 70; @@ -766,4 +766,4 @@ _yuitest_coverline("build/history-base/history-base.js", 637); Y.HistoryBase = HistoryBase; -}, '3.7.2', {"requires": ["event-custom-complex"]}); +}, '3.7.3', {"requires": ["event-custom-complex"]}); diff --git a/lib/yuilib/3.7.2/build/history-base/history-base-debug.js b/lib/yuilib/3.7.3/build/history-base/history-base-debug.js similarity index 99% rename from lib/yuilib/3.7.2/build/history-base/history-base-debug.js rename to lib/yuilib/3.7.3/build/history-base/history-base-debug.js index c067a671ae9..67a58f1b204 100644 --- a/lib/yuilib/3.7.2/build/history-base/history-base-debug.js +++ b/lib/yuilib/3.7.3/build/history-base/history-base-debug.js @@ -1,5 +1,5 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ @@ -643,4 +643,4 @@ Y.mix(HistoryBase.prototype, { Y.HistoryBase = HistoryBase; -}, '3.7.2', {"requires": ["event-custom-complex"]}); +}, '3.7.3', {"requires": ["event-custom-complex"]}); diff --git a/lib/yuilib/3.7.2/build/history-base/history-base-min.js b/lib/yuilib/3.7.3/build/history-base/history-base-min.js similarity index 97% rename from lib/yuilib/3.7.2/build/history-base/history-base-min.js rename to lib/yuilib/3.7.3/build/history-base/history-base-min.js index 0f4069fb096..45f27e08489 100644 --- a/lib/yuilib/3.7.2/build/history-base/history-base-min.js +++ b/lib/yuilib/3.7.3/build/history-base/history-base-min.js @@ -1,7 +1,7 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ */ -YUI.add("history-base",function(e,t){function p(){this._init.apply(this,arguments)}function d(e){return n.type(e)==="object"}var n=e.Lang,r=e.Object,i=YUI.namespace("Env.History"),s=e.Array,o=e.config.doc,u=o.documentMode,a=e.config.win,f={merge:!0},l="change",c="add",h="replace";e.augment(p,e.EventTarget,null,null,{emitFacade:!0,prefix:"history",preventable:!1,queueable:!0}),i._state||(i._state={}),p.NAME="historyBase",p.SRC_ADD=c,p.SRC_REPLACE=h,p.html5=!!(a.history&&a.history.pushState&&a.history.replaceState&&("onpopstate"in a||e.UA.gecko>=2)&&(!e.UA.android||e.UA.android>=2.4)),p.nativeHashChange=("onhashchange"in a||"onhashchange"in o)&&(!u||u>7),e.mix(p.prototype,{_init:function(e){var t;e=this._config=e||{},this.force=!!e.force,t=this._initialState=this._initialState||e.initialState||null,this.publish(l,{broadcast:2,defaultFn:this._defChangeFn}),t&&this.replace(t)},add:function(){var e=s(arguments,0,!0);return e.unshift(c),this._change.apply(this,e)},addValue:function(e,t,n){var r={};return r[e]=t,this._change(c,r,n)},get:function(t){var n=i._state,s=d(n);return t?s&&r.owns(n,t)?n[t]:undefined:s?e.mix({},n,!0):n},replace:function(){var e=s(arguments,0,!0);return e.unshift(h),this._change.apply(this,e)},replaceValue:function(e,t,n){var r={};return r[e]=t,this._change(h,r,n)},_change:function(t,n,r){return r=r?e.merge(f,r):f,r.merge&&d(n)&&d(i._state)&&(n=e.merge(i._state,n)),this._resolveChanges(t,n,r),this},_fireEvents:function(e,t,n){this.fire(l,{_options:n,changed:t.changed,newVal:t.newState,prevVal:t.prevState,removed:t.removed,src:e}),r.each(t.changed,function(t,n){this._fireChangeEvent(e,n,t)},this),r.each(t.removed,function(t,n){this._fireRemoveEvent(e,n,t)},this)},_fireChangeEvent:function(e,t,n){this.fire(t+"Change",{newVal:n.newVal,prevVal:n.prevVal,src:e})},_fireRemoveEvent:function(e,t,n){this.fire(t+"Remove",{prevVal:n,src:e})},_resolveChanges:function(e,t,n){var s={},o,u=i._state,a={};t||(t={}),n||(n={}),d(t)&&d(u)?(r.each(t,function(e,t){var n=u[t];e!==n&&(s[t]={newVal:e,prevVal:n},o=!0)},this),r.each(u,function(e,n){if(!r.owns(t,n)||t[n]===null)delete t[n],a[n]=e,o=!0},this)):o=t!==u,(o||this.force)&&this._fireEvents(e,{changed:s,newState:t,prevState:u,removed:a},n)},_storeState:function(e,t){i._state=t||{}},_defChangeFn:function(e){this._storeState(e.src,e.newVal,e._options)}},!0),e.HistoryBase=p},"3.7.2",{requires:["event-custom-complex"]}); +YUI.add("history-base",function(e,t){function p(){this._init.apply(this,arguments)}function d(e){return n.type(e)==="object"}var n=e.Lang,r=e.Object,i=YUI.namespace("Env.History"),s=e.Array,o=e.config.doc,u=o.documentMode,a=e.config.win,f={merge:!0},l="change",c="add",h="replace";e.augment(p,e.EventTarget,null,null,{emitFacade:!0,prefix:"history",preventable:!1,queueable:!0}),i._state||(i._state={}),p.NAME="historyBase",p.SRC_ADD=c,p.SRC_REPLACE=h,p.html5=!!(a.history&&a.history.pushState&&a.history.replaceState&&("onpopstate"in a||e.UA.gecko>=2)&&(!e.UA.android||e.UA.android>=2.4)),p.nativeHashChange=("onhashchange"in a||"onhashchange"in o)&&(!u||u>7),e.mix(p.prototype,{_init:function(e){var t;e=this._config=e||{},this.force=!!e.force,t=this._initialState=this._initialState||e.initialState||null,this.publish(l,{broadcast:2,defaultFn:this._defChangeFn}),t&&this.replace(t)},add:function(){var e=s(arguments,0,!0);return e.unshift(c),this._change.apply(this,e)},addValue:function(e,t,n){var r={};return r[e]=t,this._change(c,r,n)},get:function(t){var n=i._state,s=d(n);return t?s&&r.owns(n,t)?n[t]:undefined:s?e.mix({},n,!0):n},replace:function(){var e=s(arguments,0,!0);return e.unshift(h),this._change.apply(this,e)},replaceValue:function(e,t,n){var r={};return r[e]=t,this._change(h,r,n)},_change:function(t,n,r){return r=r?e.merge(f,r):f,r.merge&&d(n)&&d(i._state)&&(n=e.merge(i._state,n)),this._resolveChanges(t,n,r),this},_fireEvents:function(e,t,n){this.fire(l,{_options:n,changed:t.changed,newVal:t.newState,prevVal:t.prevState,removed:t.removed,src:e}),r.each(t.changed,function(t,n){this._fireChangeEvent(e,n,t)},this),r.each(t.removed,function(t,n){this._fireRemoveEvent(e,n,t)},this)},_fireChangeEvent:function(e,t,n){this.fire(t+"Change",{newVal:n.newVal,prevVal:n.prevVal,src:e})},_fireRemoveEvent:function(e,t,n){this.fire(t+"Remove",{prevVal:n,src:e})},_resolveChanges:function(e,t,n){var s={},o,u=i._state,a={};t||(t={}),n||(n={}),d(t)&&d(u)?(r.each(t,function(e,t){var n=u[t];e!==n&&(s[t]={newVal:e,prevVal:n},o=!0)},this),r.each(u,function(e,n){if(!r.owns(t,n)||t[n]===null)delete t[n],a[n]=e,o=!0},this)):o=t!==u,(o||this.force)&&this._fireEvents(e,{changed:s,newState:t,prevState:u,removed:a},n)},_storeState:function(e,t){i._state=t||{}},_defChangeFn:function(e){this._storeState(e.src,e.newVal,e._options)}},!0),e.HistoryBase=p},"3.7.3",{requires:["event-custom-complex"]}); diff --git a/lib/yuilib/3.7.2/build/history-base/history-base.js b/lib/yuilib/3.7.3/build/history-base/history-base.js similarity index 99% rename from lib/yuilib/3.7.2/build/history-base/history-base.js rename to lib/yuilib/3.7.3/build/history-base/history-base.js index c067a671ae9..67a58f1b204 100644 --- a/lib/yuilib/3.7.2/build/history-base/history-base.js +++ b/lib/yuilib/3.7.3/build/history-base/history-base.js @@ -1,5 +1,5 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ @@ -643,4 +643,4 @@ Y.mix(HistoryBase.prototype, { Y.HistoryBase = HistoryBase; -}, '3.7.2', {"requires": ["event-custom-complex"]}); +}, '3.7.3', {"requires": ["event-custom-complex"]}); diff --git a/lib/yuilib/3.7.2/build/history-hash-ie/history-hash-ie-coverage.js b/lib/yuilib/3.7.3/build/history-hash-ie/history-hash-ie-coverage.js similarity index 99% rename from lib/yuilib/3.7.2/build/history-hash-ie/history-hash-ie-coverage.js rename to lib/yuilib/3.7.3/build/history-hash-ie/history-hash-ie-coverage.js index 4aa87670e00..eaf4c3563a5 100644 --- a/lib/yuilib/3.7.2/build/history-hash-ie/history-hash-ie-coverage.js +++ b/lib/yuilib/3.7.3/build/history-hash-ie/history-hash-ie-coverage.js @@ -1,5 +1,5 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ @@ -32,7 +32,7 @@ _yuitest_coverage["build/history-hash-ie/history-hash-ie.js"] = { path: "build/history-hash-ie/history-hash-ie.js", code: [] }; -_yuitest_coverage["build/history-hash-ie/history-hash-ie.js"].code=["YUI.add('history-hash-ie', function (Y, NAME) {","","/**"," * Improves IE6/7 support in history-hash by using a hidden iframe to create"," * entries in IE's browser history. This module is only needed if IE6/7 support"," * is necessary; it's not needed for any other browser."," *"," * @module history"," * @submodule history-hash-ie"," * @since 3.2.0"," */","","// Combination of a UA sniff to ensure this is IE (or a browser that wants us to","// treat it like IE) and feature detection for native hashchange support (false","// for IE < 8 or IE8/9 in IE7 mode).","if (Y.UA.ie && !Y.HistoryBase.nativeHashChange) {"," var Do = Y.Do,"," GlobalEnv = YUI.namespace('Env.HistoryHash'),"," HistoryHash = Y.HistoryHash,",""," iframe = GlobalEnv._iframe,"," win = Y.config.win;",""," /**"," * Gets the raw (not decoded) current location hash from the IE iframe,"," * minus the preceding '#' character and the hashPrefix (if one is set)."," *"," * @method getIframeHash"," * @return {String} current iframe hash"," * @static"," */"," HistoryHash.getIframeHash = function () {"," if (!iframe || !iframe.contentWindow) {"," return '';"," }",""," var prefix = HistoryHash.hashPrefix,"," hash = iframe.contentWindow.location.hash.substr(1);",""," return prefix && hash.indexOf(prefix) === 0 ?"," hash.replace(prefix, '') : hash;"," };",""," /**"," * Updates the history iframe with the specified hash."," *"," * @method _updateIframe"," * @param {String} hash location hash"," * @param {Boolean} replace (optional) if true, the current"," * history state will be replaced without adding a new history entry"," * @protected"," * @static"," * @for HistoryHash"," */"," HistoryHash._updateIframe = function (hash, replace) {"," var iframeDoc = iframe && iframe.contentWindow && iframe.contentWindow.document,"," iframeLocation = iframeDoc && iframeDoc.location;",""," if (!iframeDoc || !iframeLocation) {"," return;"," }","",""," if (replace) {"," iframeLocation.replace(hash.charAt(0) === '#' ? hash : '#' + hash);"," } else {"," iframeDoc.open().close();"," iframeLocation.hash = hash;"," }"," };",""," Do.before(HistoryHash._updateIframe, HistoryHash, 'replaceHash', HistoryHash, true);",""," if (!iframe) {"," Y.on('domready', function () {"," var lastUrlHash = HistoryHash.getHash();",""," // Create a hidden iframe to store history state, following the"," // iframe-hiding recommendations from"," // http://www.paciellogroup.com/blog/?p=604."," //"," // This iframe will allow history navigation within the current page"," // context. After navigating to another page, all but the most"," // recent history state will be lost."," //"," // Earlier versions of the YUI History Utility attempted to work"," // around this limitation by having the iframe load a static"," // resource. This workaround was extremely fragile and tended to"," // break frequently (and silently) since it was entirely dependent"," // on IE's inconsistent handling of iframe history."," //"," // Since this workaround didn't work much of the time anyway and"," // added significant complexity, it has been removed, and IE6 and 7"," // now get slightly degraded history support.",""," iframe = GlobalEnv._iframe = Y.Node.getDOMNode(Y.Node.create("," '';","","","NodeMenuNav.ATTRS = {",""," /**"," * Boolean indicating if use of the WAI-ARIA Roles and States should be "," * enabled for the menu."," *"," * @attribute useARIA"," * @readOnly"," * @writeOnce "," * @default true"," * @type boolean"," */"," useARIA: {"," "," value: true,"," writeOnce: true,"," lazyAdd: false,"," setter: function (value) {",""," var oMenu = this.get(HOST),"," oMenuLabel,"," oMenuToggle,"," oSubmenu,"," sID;",""," if (value) {",""," oMenu.set(ROLE, MENU);",""," oMenu.all(\"ul,li,\" + MENU_CONTENT_SELECTOR).set(ROLE, PRESENTATION);",""," oMenu.all((PERIOD + getClassName(MENUITEM, CONTENT))).set(ROLE, MENUITEM);",""," oMenu.all((PERIOD + CSS_MENU_LABEL)).each(function (node) {",""," oMenuLabel = node;"," oMenuToggle = node.one(MENU_TOGGLE_SELECTOR);",""," if (oMenuToggle) {"," oMenuToggle.set(ROLE, PRESENTATION);"," oMenuLabel = oMenuToggle.previous();"," }",""," oMenuLabel.set(ROLE, MENUITEM);"," oMenuLabel.set(\"aria-haspopup\", true);",""," oSubmenu = node.next();",""," if (oSubmenu) {",""," oSubmenu.set(ROLE, MENU);",""," oMenuLabel = oSubmenu.previous();"," oMenuToggle = oMenuLabel.one(MENU_TOGGLE_SELECTOR);",""," if (oMenuToggle) {"," oMenuLabel = oMenuToggle;"," }",""," sID = Y.stamp(oMenuLabel);",""," if (!oMenuLabel.get(ID)) {"," oMenuLabel.set(ID, sID);"," }",""," oSubmenu.set(\"aria-labelledby\", sID);"," oSubmenu.set(ARIA_HIDDEN, true);"," "," }",""," });"," "," }",""," }"," "," },","",""," /**"," * Boolean indicating if submenus are automatically made visible when the "," * user mouses over the menu's items."," *"," * @attribute autoSubmenuDisplay"," * @readOnly"," * @writeOnce "," * @default true"," * @type boolean"," */ "," autoSubmenuDisplay: {"," "," value: true,"," writeOnce: true"," "," },","",""," /**"," * Number indicating the time (in milliseconds) that should expire before a "," * submenu is made visible when the user mouses over the menu's label."," *"," * @attribute submenuShowDelay"," * @readOnly"," * @writeOnce "," * @default 250"," * @type Number"," */"," submenuShowDelay: {"," "," value: 250,"," writeOnce: true"," "," },","",""," /**"," * Number indicating the time (in milliseconds) that should expire before a "," * submenu is hidden when the user mouses out of a menu label heading in the "," * direction of a submenu. "," *"," * @attribute submenuHideDelay"," * @readOnly"," * @writeOnce "," * @default 250"," * @type Number"," */"," submenuHideDelay: {"," "," value: 250,"," writeOnce: true"," "," },","",""," /**"," * Number indicating the time (in milliseconds) that should expire before a "," * submenu is hidden when the user mouses out of it."," * "," * @attribute mouseOutHideDelay"," * @readOnly"," * @writeOnce "," * @default 750"," * @type Number"," */ "," mouseOutHideDelay: {"," "," value: 750,"," writeOnce: true"," "," }","","};","","","Y.extend(NodeMenuNav, Y.Plugin.Base, {",""," // Protected properties",""," /** "," * @property _rootMenu"," * @description Node instance representing the root menu in the menu."," * @default null"," * @protected"," * @type Node"," */"," _rootMenu: null, ","",""," /** "," * @property _activeItem"," * @description Node instance representing the menu's active descendent: "," * the menuitem or menu label the user is currently interacting with."," * @default null"," * @protected"," * @type Node"," */"," _activeItem: null, ","",""," /** "," * @property _activeMenu"," * @description Node instance representing the menu that is the parent of "," * the menu's active descendent."," * @default null"," * @protected"," * @type Node"," */"," _activeMenu: null,","",""," /** "," * @property _hasFocus"," * @description Boolean indicating if the menu has focus."," * @default false"," * @protected"," * @type Boolean"," */"," _hasFocus: false,","",""," // In gecko-based browsers a mouseover and mouseout event will fire even "," // if a DOM element moves out from under the mouse without the user "," // actually moving the mouse. This bug affects NodeMenuNav because the "," // user can hit the Esc key to hide a menu, and if the mouse is over the "," // menu when the user presses Esc, the _onMenuMouseOut handler will be "," // called. To fix this bug the following flag (_blockMouseEvent) is used "," // to block the code in the _onMenuMouseOut handler from executing.",""," /** "," * @property _blockMouseEvent"," * @description Boolean indicating whether or not to handle the "," * \"mouseover\" event."," * @default false"," * @protected"," * @type Boolean"," */"," _blockMouseEvent: false,","",""," /** "," * @property _currentMouseX"," * @description Number representing the current x coordinate of the mouse "," * inside the menu."," * @default 0"," * @protected"," * @type Number"," */"," _currentMouseX: 0,","",""," /** "," * @property _movingToSubmenu"," * @description Boolean indicating if the mouse is moving from a menu "," * label to its corresponding submenu."," * @default false"," * @protected"," * @type Boolean"," */"," _movingToSubmenu: false,","",""," /** "," * @property _showSubmenuTimer"," * @description Timer used to show a submenu."," * @default null"," * @protected"," * @type Object"," */"," _showSubmenuTimer: null,","",""," /** "," * @property _hideSubmenuTimer"," * @description Timer used to hide a submenu."," * @default null"," * @protected"," * @type Object"," */"," _hideSubmenuTimer: null,","",""," /** "," * @property _hideAllSubmenusTimer"," * @description Timer used to hide a all submenus."," * @default null"," * @protected"," * @type Object"," */"," _hideAllSubmenusTimer: null,","",""," /** "," * @property _firstItem"," * @description Node instance representing the first item (menuitem or menu "," * label) in the root menu of a menu."," * @default null"," * @protected"," * @type Node"," */"," _firstItem: null,","",""," // Public methods","",""," initializer: function (config) {",""," var menuNav = this,"," oRootMenu = this.get(HOST),"," aHandlers = [],"," oDoc;","",""," if (oRootMenu) {",""," menuNav._rootMenu = oRootMenu;",""," oRootMenu.all(\"ul:first-child\").addClass(FIRST_OF_TYPE);",""," // Hide all visible submenus",""," oRootMenu.all(MENU_SELECTOR).addClass(CSS_MENU_HIDDEN);","",""," // Wire up all event handlers",""," aHandlers.push(oRootMenu.on(\"mouseover\", menuNav._onMouseOver, menuNav));"," aHandlers.push(oRootMenu.on(\"mouseout\", menuNav._onMouseOut, menuNav));"," aHandlers.push(oRootMenu.on(\"mousemove\", menuNav._onMouseMove, menuNav));"," aHandlers.push(oRootMenu.on(MOUSEDOWN, menuNav._toggleSubmenuDisplay, menuNav));"," aHandlers.push(Y.on(\"key\", menuNav._toggleSubmenuDisplay, oRootMenu, \"down:13\", menuNav));"," aHandlers.push(oRootMenu.on(CLICK, menuNav._toggleSubmenuDisplay, menuNav));"," aHandlers.push(oRootMenu.on(\"keypress\", menuNav._onKeyPress, menuNav));"," aHandlers.push(oRootMenu.on(KEYDOWN, menuNav._onKeyDown, menuNav));",""," oDoc = oRootMenu.get(\"ownerDocument\");",""," aHandlers.push(oDoc.on(MOUSEDOWN, menuNav._onDocMouseDown, menuNav));"," aHandlers.push(oDoc.on(\"focus\", menuNav._onDocFocus, menuNav));",""," this._eventHandlers = aHandlers;",""," menuNav._initFocusManager();",""," }"," ",""," },",""," destructor: function () {",""," var aHandlers = this._eventHandlers;",""," if (aHandlers) {",""," Y.Array.each(aHandlers, function (handle) {"," handle.detach();"," });",""," this._eventHandlers = null;",""," }"," "," this.get(HOST).unplug(\"focusManager\");"," "," },","","",""," // Protected methods",""," /**"," * @method _isRoot"," * @description Returns a boolean indicating if the specified menu is the "," * root menu in the menu."," * @protected"," * @param {Node} menu Node instance representing a menu."," * @return {Boolean} Boolean indicating if the specified menu is the root "," * menu in the menu."," */"," _isRoot: function (menu) {",""," return this._rootMenu.compareTo(menu);",""," },","",""," /**"," * @method _getTopmostSubmenu"," * @description Returns the topmost submenu of a submenu hierarchy."," * @protected"," * @param {Node} menu Node instance representing a menu."," * @return {Node} Node instance representing a menu."," */"," _getTopmostSubmenu: function (menu) {"," "," var menuNav = this,"," oMenu = getParentMenu(menu),"," returnVal;","",""," if (!oMenu) {"," returnVal = menu;"," }"," else if (menuNav._isRoot(oMenu)) {"," returnVal = menu;"," }"," else {"," returnVal = menuNav._getTopmostSubmenu(oMenu);"," }"," "," return returnVal;"," "," },","",""," /**"," * @method _clearActiveItem"," * @description Clears the menu's active descendent."," * @protected"," */"," _clearActiveItem: function () {",""," var menuNav = this,"," oActiveItem = menuNav._activeItem;"," "," if (oActiveItem) {"," oActiveItem.removeClass(getActiveClass(oActiveItem));"," }",""," menuNav._activeItem = null;"," "," },","",""," /**"," * @method _setActiveItem"," * @description Sets the specified menuitem or menu label as the menu's "," * active descendent."," * @protected"," * @param {Node} item Node instance representing a menuitem or menu label."," */"," _setActiveItem: function (item) {",""," var menuNav = this;"," "," if (item) {"," "," menuNav._clearActiveItem();"," "," item.addClass(getActiveClass(item));"," "," menuNav._activeItem = item;"," "," }"," "," },","",""," /**"," * @method _focusItem"," * @description Focuses the specified menuitem or menu label."," * @protected"," * @param {Node} item Node instance representing a menuitem or menu label."," */"," _focusItem: function (item) {"," "," var menuNav = this,"," oMenu,"," oItem;"," "," if (item && menuNav._hasFocus) {",""," oMenu = getParentMenu(item);"," oItem = getItemAnchor(item);",""," if (oMenu && !oMenu.compareTo(menuNav._activeMenu)) {"," menuNav._activeMenu = oMenu;"," menuNav._initFocusManager();"," }"," "," menuNav._focusManager.focus(oItem);",""," }"," "," },","",""," /**"," * @method _showMenu"," * @description Shows the specified menu."," * @protected"," * @param {Node} menu Node instance representing a menu."," */"," _showMenu: function (menu) {",""," var oParentMenu = getParentMenu(menu),"," oLI = menu.get(PARENT_NODE),"," aXY = oLI.getXY();","",""," if (this.get(USE_ARIA)) {"," menu.set(ARIA_HIDDEN, false);"," }","",""," if (isHorizontalMenu(oParentMenu)) {"," aXY[1] = aXY[1] + oLI.get(OFFSET_HEIGHT);"," }"," else {"," aXY[0] = aXY[0] + oLI.get(OFFSET_WIDTH);"," }"," "," menu.setXY(aXY);",""," if (UA.ie < 8) {",""," if (UA.ie === 6 && !menu.hasIFrameShim) {"," "," menu.appendChild(Y.Node.create(NodeMenuNav.SHIM_TEMPLATE));"," menu.hasIFrameShim = true;",""," }",""," // Clear previous values for height and width",""," menu.setStyles({ height: EMPTY_STRING, width: EMPTY_STRING });",""," // Set the width and height of the menu's bounding box - this is "," // necessary for IE 6 so that the CSS for the ';","","","NodeMenuNav.ATTRS = {",""," /**"," * Boolean indicating if use of the WAI-ARIA Roles and States should be "," * enabled for the menu."," *"," * @attribute useARIA"," * @readOnly"," * @writeOnce "," * @default true"," * @type boolean"," */"," useARIA: {"," "," value: true,"," writeOnce: true,"," lazyAdd: false,"," setter: function (value) {",""," var oMenu = this.get(HOST),"," oMenuLabel,"," oMenuToggle,"," oSubmenu,"," sID;",""," if (value) {",""," oMenu.set(ROLE, MENU);",""," oMenu.all(\"ul,li,\" + MENU_CONTENT_SELECTOR).set(ROLE, PRESENTATION);",""," oMenu.all((PERIOD + getClassName(MENUITEM, CONTENT))).set(ROLE, MENUITEM);",""," oMenu.all((PERIOD + CSS_MENU_LABEL)).each(function (node) {",""," oMenuLabel = node;"," oMenuToggle = node.one(MENU_TOGGLE_SELECTOR);",""," if (oMenuToggle) {"," oMenuToggle.set(ROLE, PRESENTATION);"," oMenuLabel = oMenuToggle.previous();"," }",""," oMenuLabel.set(ROLE, MENUITEM);"," oMenuLabel.set(\"aria-haspopup\", true);",""," oSubmenu = node.next();",""," if (oSubmenu) {",""," oSubmenu.set(ROLE, MENU);",""," oMenuLabel = oSubmenu.previous();"," oMenuToggle = oMenuLabel.one(MENU_TOGGLE_SELECTOR);",""," if (oMenuToggle) {"," oMenuLabel = oMenuToggle;"," }",""," sID = Y.stamp(oMenuLabel);",""," if (!oMenuLabel.get(ID)) {"," oMenuLabel.set(ID, sID);"," }",""," oSubmenu.set(\"aria-labelledby\", sID);"," oSubmenu.set(ARIA_HIDDEN, true);"," "," }",""," });"," "," }",""," }"," "," },","",""," /**"," * Boolean indicating if submenus are automatically made visible when the "," * user mouses over the menu's items."," *"," * @attribute autoSubmenuDisplay"," * @readOnly"," * @writeOnce "," * @default true"," * @type boolean"," */ "," autoSubmenuDisplay: {"," "," value: true,"," writeOnce: true"," "," },","",""," /**"," * Number indicating the time (in milliseconds) that should expire before a "," * submenu is made visible when the user mouses over the menu's label."," *"," * @attribute submenuShowDelay"," * @readOnly"," * @writeOnce "," * @default 250"," * @type Number"," */"," submenuShowDelay: {"," "," value: 250,"," writeOnce: true"," "," },","",""," /**"," * Number indicating the time (in milliseconds) that should expire before a "," * submenu is hidden when the user mouses out of a menu label heading in the "," * direction of a submenu. "," *"," * @attribute submenuHideDelay"," * @readOnly"," * @writeOnce "," * @default 250"," * @type Number"," */"," submenuHideDelay: {"," "," value: 250,"," writeOnce: true"," "," },","",""," /**"," * Number indicating the time (in milliseconds) that should expire before a "," * submenu is hidden when the user mouses out of it."," * "," * @attribute mouseOutHideDelay"," * @readOnly"," * @writeOnce "," * @default 750"," * @type Number"," */ "," mouseOutHideDelay: {"," "," value: 750,"," writeOnce: true"," "," }","","};","","","Y.extend(NodeMenuNav, Y.Plugin.Base, {",""," // Protected properties",""," /** "," * @property _rootMenu"," * @description Node instance representing the root menu in the menu."," * @default null"," * @protected"," * @type Node"," */"," _rootMenu: null, ","",""," /** "," * @property _activeItem"," * @description Node instance representing the menu's active descendent: "," * the menuitem or menu label the user is currently interacting with."," * @default null"," * @protected"," * @type Node"," */"," _activeItem: null, ","",""," /** "," * @property _activeMenu"," * @description Node instance representing the menu that is the parent of "," * the menu's active descendent."," * @default null"," * @protected"," * @type Node"," */"," _activeMenu: null,","",""," /** "," * @property _hasFocus"," * @description Boolean indicating if the menu has focus."," * @default false"," * @protected"," * @type Boolean"," */"," _hasFocus: false,","",""," // In gecko-based browsers a mouseover and mouseout event will fire even "," // if a DOM element moves out from under the mouse without the user "," // actually moving the mouse. This bug affects NodeMenuNav because the "," // user can hit the Esc key to hide a menu, and if the mouse is over the "," // menu when the user presses Esc, the _onMenuMouseOut handler will be "," // called. To fix this bug the following flag (_blockMouseEvent) is used "," // to block the code in the _onMenuMouseOut handler from executing.",""," /** "," * @property _blockMouseEvent"," * @description Boolean indicating whether or not to handle the "," * \"mouseover\" event."," * @default false"," * @protected"," * @type Boolean"," */"," _blockMouseEvent: false,","",""," /** "," * @property _currentMouseX"," * @description Number representing the current x coordinate of the mouse "," * inside the menu."," * @default 0"," * @protected"," * @type Number"," */"," _currentMouseX: 0,","",""," /** "," * @property _movingToSubmenu"," * @description Boolean indicating if the mouse is moving from a menu "," * label to its corresponding submenu."," * @default false"," * @protected"," * @type Boolean"," */"," _movingToSubmenu: false,","",""," /** "," * @property _showSubmenuTimer"," * @description Timer used to show a submenu."," * @default null"," * @protected"," * @type Object"," */"," _showSubmenuTimer: null,","",""," /** "," * @property _hideSubmenuTimer"," * @description Timer used to hide a submenu."," * @default null"," * @protected"," * @type Object"," */"," _hideSubmenuTimer: null,","",""," /** "," * @property _hideAllSubmenusTimer"," * @description Timer used to hide a all submenus."," * @default null"," * @protected"," * @type Object"," */"," _hideAllSubmenusTimer: null,","",""," /** "," * @property _firstItem"," * @description Node instance representing the first item (menuitem or menu "," * label) in the root menu of a menu."," * @default null"," * @protected"," * @type Node"," */"," _firstItem: null,","",""," // Public methods","",""," initializer: function (config) {",""," var menuNav = this,"," oRootMenu = this.get(HOST),"," aHandlers = [],"," oDoc;","",""," if (oRootMenu) {",""," menuNav._rootMenu = oRootMenu;",""," oRootMenu.all(\"ul:first-child\").addClass(FIRST_OF_TYPE);",""," // Hide all visible submenus",""," oRootMenu.all(MENU_SELECTOR).addClass(CSS_MENU_HIDDEN);","",""," // Wire up all event handlers",""," aHandlers.push(oRootMenu.on(\"mouseover\", menuNav._onMouseOver, menuNav));"," aHandlers.push(oRootMenu.on(\"mouseout\", menuNav._onMouseOut, menuNav));"," aHandlers.push(oRootMenu.on(\"mousemove\", menuNav._onMouseMove, menuNav));"," aHandlers.push(oRootMenu.on(MOUSEDOWN, menuNav._toggleSubmenuDisplay, menuNav));"," aHandlers.push(Y.on(\"key\", menuNav._toggleSubmenuDisplay, oRootMenu, \"down:13\", menuNav));"," aHandlers.push(oRootMenu.on(CLICK, menuNav._toggleSubmenuDisplay, menuNav));"," aHandlers.push(oRootMenu.on(\"keypress\", menuNav._onKeyPress, menuNav));"," aHandlers.push(oRootMenu.on(KEYDOWN, menuNav._onKeyDown, menuNav));",""," oDoc = oRootMenu.get(\"ownerDocument\");",""," aHandlers.push(oDoc.on(MOUSEDOWN, menuNav._onDocMouseDown, menuNav));"," aHandlers.push(oDoc.on(\"focus\", menuNav._onDocFocus, menuNav));",""," this._eventHandlers = aHandlers;",""," menuNav._initFocusManager();",""," }"," ",""," },",""," destructor: function () {",""," var aHandlers = this._eventHandlers;",""," if (aHandlers) {",""," Y.Array.each(aHandlers, function (handle) {"," handle.detach();"," });",""," this._eventHandlers = null;",""," }"," "," this.get(HOST).unplug(\"focusManager\");"," "," },","","",""," // Protected methods",""," /**"," * @method _isRoot"," * @description Returns a boolean indicating if the specified menu is the "," * root menu in the menu."," * @protected"," * @param {Node} menu Node instance representing a menu."," * @return {Boolean} Boolean indicating if the specified menu is the root "," * menu in the menu."," */"," _isRoot: function (menu) {",""," return this._rootMenu.compareTo(menu);",""," },","",""," /**"," * @method _getTopmostSubmenu"," * @description Returns the topmost submenu of a submenu hierarchy."," * @protected"," * @param {Node} menu Node instance representing a menu."," * @return {Node} Node instance representing a menu."," */"," _getTopmostSubmenu: function (menu) {"," "," var menuNav = this,"," oMenu = getParentMenu(menu),"," returnVal;","",""," if (!oMenu) {"," returnVal = menu;"," }"," else if (menuNav._isRoot(oMenu)) {"," returnVal = menu;"," }"," else {"," returnVal = menuNav._getTopmostSubmenu(oMenu);"," }"," "," return returnVal;"," "," },","",""," /**"," * @method _clearActiveItem"," * @description Clears the menu's active descendent."," * @protected"," */"," _clearActiveItem: function () {",""," var menuNav = this,"," oActiveItem = menuNav._activeItem;"," "," if (oActiveItem) {"," oActiveItem.removeClass(getActiveClass(oActiveItem));"," }",""," menuNav._activeItem = null;"," "," },","",""," /**"," * @method _setActiveItem"," * @description Sets the specified menuitem or menu label as the menu's "," * active descendent."," * @protected"," * @param {Node} item Node instance representing a menuitem or menu label."," */"," _setActiveItem: function (item) {",""," var menuNav = this;"," "," if (item) {"," "," menuNav._clearActiveItem();"," "," item.addClass(getActiveClass(item));"," "," menuNav._activeItem = item;"," "," }"," "," },","",""," /**"," * @method _focusItem"," * @description Focuses the specified menuitem or menu label."," * @protected"," * @param {Node} item Node instance representing a menuitem or menu label."," */"," _focusItem: function (item) {"," "," var menuNav = this,"," oMenu,"," oItem;"," "," if (item && menuNav._hasFocus) {",""," oMenu = getParentMenu(item);"," oItem = getItemAnchor(item);",""," if (oMenu && !oMenu.compareTo(menuNav._activeMenu)) {"," menuNav._activeMenu = oMenu;"," menuNav._initFocusManager();"," }"," "," menuNav._focusManager.focus(oItem);",""," }"," "," },","",""," /**"," * @method _showMenu"," * @description Shows the specified menu."," * @protected"," * @param {Node} menu Node instance representing a menu."," */"," _showMenu: function (menu) {",""," var oParentMenu = getParentMenu(menu),"," oLI = menu.get(PARENT_NODE),"," aXY = oLI.getXY();","",""," if (this.get(USE_ARIA)) {"," menu.set(ARIA_HIDDEN, false);"," }","",""," if (isHorizontalMenu(oParentMenu)) {"," aXY[1] = aXY[1] + oLI.get(OFFSET_HEIGHT);"," }"," else {"," aXY[0] = aXY[0] + oLI.get(OFFSET_WIDTH);"," }"," "," menu.setXY(aXY);",""," if (UA.ie < 8) {",""," if (UA.ie === 6 && !menu.hasIFrameShim) {"," "," menu.appendChild(Y.Node.create(NodeMenuNav.SHIM_TEMPLATE));"," menu.hasIFrameShim = true;",""," }",""," // Clear previous values for height and width",""," menu.setStyles({ height: EMPTY_STRING, width: EMPTY_STRING });",""," // Set the width and height of the menu's bounding box - this is "," // necessary for IE 6 so that the CSS for the ',vt.ATTRS={useARIA:{value:!0,writeOnce:!0,lazyAdd:!1,setter:function(t){var n=this.get(D),r,u,a,f;t&&(n.set(N,s),n.all("ul,li,"+$).set(N,C),n.all(d+i(o,_)).set(N,o),n.all(d+q).each(function(t){r=t,u=t.one(V),u&&(u.set(N,C),r=u.previous()),r.set(N,o),r.set("aria-haspopup",!0),a=t.next(),a&&(a.set(N,s),r=a.previous(),u=r.one(V),u&&(r=u),f=e.stamp(r),r.get(p)||r.set(p,f),a.set("aria-labelledby",f),a.set(M,!0))}))}},autoSubmenuDisplay:{value:!0,writeOnce:!0},submenuShowDelay:{value:250,writeOnce:!0},submenuHideDelay:{value:250,writeOnce:!0},mouseOutHideDelay:{value:750,writeOnce:!0}},e.extend(vt,e.Plugin.Base,{_rootMenu:null,_activeItem:null,_activeMenu:null,_hasFocus:!1,_blockMouseEvent:!1,_currentMouseX:0,_movingToSubmenu:!1,_showSubmenuTimer:null,_hideSubmenuTimer:null,_hideAllSubmenusTimer:null,_firstItem:null,initializer:function(t){var n=this,r=this.get(D),i=[],s;r&&(n._rootMenu=r,r.all("ul:first-child").addClass(T),r.all(X).addClass(F),i.push(r.on("mouseover",n._onMouseOver,n)),i.push(r.on("mouseout",n._onMouseOut,n)),i.push(r.on("mousemove",n._onMouseMove,n)),i.push(r.on(w,n._toggleSubmenuDisplay,n)),i.push(e.on("key",n._toggleSubmenuDisplay,r,"down:13",n)),i.push(r.on(S,n._toggleSubmenuDisplay,n)),i.push(r.on("keypress",n._onKeyPress,n)),i.push(r.on(E,n._onKeyDown,n)),s=r.get("ownerDocument"),i.push(s.on(w,n._onDocMouseDown,n)),i.push(s.on("focus",n._onDocFocus,n)),this._eventHandlers=i,n._initFocusManager())},destructor:function(){var t=this._eventHandlers;t&&(e.Array.each(t,function(e){e.detach()}),this._eventHandlers=null),this.get(D).unplug("focusManager")},_isRoot:function(e){return this._rootMenu.compareTo(e)},_getTopmostSubmenu:function(e){var t=this,n=ot(e),r;return n?t._isRoot(n)?r=e:r=t._getTopmostSubmenu(n):r=e,r},_clearActiveItem:function(){var e=this,t=e._activeItem;t&&t.removeClass(ht(t)),e._activeItem=null},_setActiveItem:function(e){var t=this;e&&(t._clearActiveItem(),e.addClass(ht(e)),t._activeItem=e)},_focusItem:function(e){var t=this,n,r;e&&t._hasFocus&&(n=ot(e),r=it(e),n&&!n.compareTo(t._activeMenu)&&(t._activeMenu=n,t._initFocusManager()),t._focusManager.focus(r))},_showMenu:function(t){var r=ot(t),i=t.get(a),s=i.getXY();this.get(O)&&t.set(M,!1),nt(r)?s[1]=s[1]+i.get(l):s[0]=s[0]+i.get(c),t.setXY(s),n.ie<8&&(n.ie===6&&!t.hasIFrameShim&&(t.appendChild(e.Node.create(vt.SHIM_TEMPLATE)),t.hasIFrameShim=!0),t.setStyles({height:x,width:x}),t.setStyles({height:t.get(l)+h,width:t.get(c)+h})),t.previous().addClass(U),t.removeClass(F)},_hideMenu:function(e,t){var n=this,r=e.previous(),i;r.removeClass(U),t&&(n._focusItem(r),n._setActiveItem(r)),i=e.one(d+W),i&&i.removeClass(W),e.setStyles({left:x,top:x}),e.addClass(F),n.get(O)&&e.set(M,!0)},_hideAllSubmenus:function(t){var n=this;t.all(X).each(e.bind(function(e){n._hideMenu(e)},n))},_cancelShowSubmenuTimer:function(){var e=this,t=e._showSubmenuTimer;t&&(t.cancel(),e._showSubmenuTimer=null)},_cancelHideSubmenuTimer:function(){var e=this,t=e._hideSubmenuTimer;t&&(t.cancel(),e._hideSubmenuTimer=null)},_initFocusManager:function(){var t=this,n=t._rootMenu,r=t._activeMenu||n,i=t._isRoot(r)?x:"#"+r.get("id"),s=t._focusManager,o,u,a;nt(r)?(u=i+K+","+i+Q,o={next:"down:39",previous:"down:37"}):(u=i+K,o={next:"down:40",previous:"down:38"}),s?(s.set(A,-1),s.set(k,u),s.set("keys",o)):(n.plug(e.Plugin.NodeFocusManager,{descendants:u,keys:o,circular:!0}),s=n.focusManager,a="#"+n.get("id")+X+" a,"+V,n.all(a).set("tabIndex",-1),s.on(P,this._onActiveDescendantChange,s,this),s.after(P,this._afterActiveDescendantChange,s,this),t._focusManager=s)},_onActiveDescendantChange:function(e,t){e.src===L&&t._activeMenu&&!t._movingToSubmenu&&t._hideAllSubmenus(t._activeMenu)},_afterActiveDescendantChange:function(e,t){var n;e.src===L&&(n=lt(this.get(k).item(e.newVal),!0),t._setActiveItem(n))},_onDocFocus:function(e){var t=this,n=t._activeItem,r=e.target,i;t._rootMenu.contains(r)?t._hasFocus?(i=ot(r),t._activeMenu.compareTo(i)||(t._activeMenu=i,t._initFocusManager(),t._focusManager.set(A,r),t._setActiveItem(lt(r,!0)))):(t._hasFocus=!0,n=lt(r,!0),n&&t._setActiveItem(n)):(t._clearActiveItem(),t._cancelShowSubmenuTimer(),t._hideAllSubmenus(t._rootMenu),t._activeMenu=t._rootMenu,t._initFocusManager(),t._focusManager.set(A,0),t._hasFocus=!1)},_onMenuMouseOver:function(e,t){var n=this,r=n._hideAllSubmenusTimer;r&&(r.cancel(),n._hideAllSubmenusTimer=null),n._cancelHideSubmenuTimer(),e&&!e.compareTo(n._activeMenu)&&(n._activeMenu=e,n._hasFocus&&n._initFocusManager()),n._movingToSubmenu&&nt(e)&&(n._movingToSubmenu=!1)},_hideAndFocusLabel:function(){var e=this,t=e._activeMenu,n;e._hideAllSubmenus(e._rootMenu),t&&(n=e._getTopmostSubmenu(t),e._focusItem(n.previous()))},_onMenuMouseOut:function(e,t){var n=this,i=n._activeMenu,s=t.relatedTarget,o=n._activeItem,u,a;i&&!i.contains(s)&&(u=ot(i),u&&!u.contains(s)?n.get(B)>0&&(n._cancelShowSubmenuTimer(),n._hideAllSubmenusTimer=r(n.get(B),n,n._hideAndFocusLabel)):o&&(a=ot(o),n._isRoot(a)||n._focusItem(a.previous())))},_onMenuLabelMouseOver:function(e,t){var n=this,i=n._activeMenu,s=n._isRoot(i),o=n.get(H)&&s||!s,u=n.get("submenuShowDelay"),a,f=function(t){n._cancelHideSubmenuTimer(),n._cancelShowSubmenuTimer(),rt(e)||(a=e.next(),a&&(n._hideAllSubmenus(i),n._showSubmenuTimer=r(t,n,n._showMenu,a)))};n._focusItem(e),n._setActiveItem(e),o&&(n._movingToSubmenu?n._hoverTimer=r(u,n,function(){f(0)}):f(u))},_onMenuLabelMouseOut:function(e,t){var n=this,i=n._isRoot(n._activeMenu),s=n.get(H)&&i||!i,o=t.relatedTarget,u=e.next(),a=n._hoverTimer;a&&a.cancel(),n._clearActiveItem(),s&&(n._movingToSubmenu&&!n._showSubmenuTimer&&u?n._hideSubmenuTimer=r(n.get("submenuHideDelay"),n,n._hideMenu,u):!n._movingToSubmenu&&u&&(!o||o&&!u.contains(o)&&!o.compareTo(u))&&(n._cancelShowSubmenuTimer(),n._hideMenu(u)))},_onMenuItemMouseOver:function(e,t){var n=this,r=n._activeMenu,i=n._isRoot(r),s=n.get(H)&&i||!i;n._focusItem(e),n._setActiveItem(e),s&&!n._movingToSubmenu&&n._hideAllSubmenus(r)},_onMenuItemMouseOut:function(e,t){this._clearActiveItem()},_onVerticalMenuKeyDown:function(e){var t=this,n=t._activeMenu,r=t._rootMenu,i=e.target,s=!1,o=e.keyCode,u,f,l,c;switch(o){case 37:f=ot(n),f&&nt(f)?(t._hideMenu(n),l=G(n.get(a)),c=lt(l),c&&(tt(c)?(u=c.next(),u?(t._showMenu(u),t._focusItem(ct(u)),t._setActiveItem(ct(u))):(t._focusItem(c),t._setActiveItem(c))):(t._focusItem(c),t._setActiveItem(c)))):t._isRoot(n)||t._hideMenu(n,!0),s=!0;break;case 39:tt(i)?(u=i.next(),u&&(t._showMenu(u),t._focusItem(ct(u)),t._setActiveItem(ct(u)))):nt(r)&&(u=t._getTopmostSubmenu(n),l=Y(u.get(a)),c=lt(l),t._hideAllSubmenus(r),c&&(tt(c)?(u=c.next(),u?(t._showMenu(u),t._focusItem(ct(u)),t._setActiveItem(ct(u))):(t._focusItem(c),t._setActiveItem(c))):(t._focusItem(c),t._setActiveItem(c)))),s=!0}s&&e.preventDefault()},_onHorizontalMenuKeyDown:function(e){var t=this,n=t._activeMenu,r=e.target,i=lt(r,!0),s=!1,o=e.keyCode,u;o===40&&(t._hideAllSubmenus(n),tt(i)&&(u=i.next(),u&&(t._showMenu(u),t._focusItem(ct(u)),t._setActiveItem(ct(u))),s=!0)),s&&e.preventDefault()},_onMouseMove:function(e){var t=this;r(10,t,function(){t._currentMouseX=e.pageX})},_onMouseOver:function(e){var t=this,n,r,i,s,o;t._blockMouseEvent?t._blockMouseEvent=!1:(n=e.target,r=ut(n,!0),i=ft(n,!0),o=at(n,!0),pt(r,n)&&(t._onMenuMouseOver(r,e),r[m]=!0,r[v]=!1,s=ot(r),s&&(s[v]=!0,s[m]=!1)),pt(i,n)&&(t._onMenuLabelMouseOver(i,e),i[m]=!0,i[v]=!1),pt(o,n)&&(t._onMenuItemMouseOver(o,e),o[m]=!0,o[v]=!1))},_onMouseOut:function(e){var t=this,n=t._activeMenu,r=!1,i,s,o,u,a,f;t._movingToSubmenu=n&&!nt(n)&&e.pageX-5>t._currentMouseX,i=e.target,s=e.relatedTarget,o=ut(i,!0),u=ft(i,!0),f=at(i,!0),dt(u,s)&&(t._onMenuLabelMouseOut(u,e),u[v]=!0,u[m]=!1),dt(f,s)&&(t._onMenuItemMouseOut(f,e),f[v]=!0,f[m]=!1),u&&(a=u.next(),a&&s&&(s.compareTo(a)||a.contains(s))&&(r=!0));if(dt(o,s)||r)t._onMenuMouseOut(o,e),o[v]=!0,o[m]=!1},_toggleSubmenuDisplay:function(e){var t=this,r=e.target,i=ft(r,!0),s=e.type,o,u,a,f,l,c;if(i){o=Z(r)?r:r.ancestor(Z);if(o){a=o.getAttribute("href",2),f=a.indexOf("#"),l=a.length;if(f===0&&l>1){c=a.substr(1,l),u=i.next();if(u&&u.get(p)===c){if(s===w||s===E)(n.opera||n.gecko||n.ie)&&s===E&&!t._preventClickHandle&&(t._preventClickHandle=t._rootMenu.on("click",function(e){e.preventDefault(),t._preventClickHandle.detach(),t._preventClickHandle=null})),s==w&&(e.preventDefault(),e.stopImmediatePropagation(),t._hasFocus=!0),t._isRoot(ot(r))?rt(i)?(t._hideMenu(u),t._focusItem(i),t._setActiveItem(i)):(t._hideAllSubmenus(t._rootMenu),t._showMenu(u),t._focusItem(ct(u)),t._setActiveItem(ct(u))):t._activeItem==i?(t._showMenu(u),t._focusItem(ct(u)),t._setActiveItem(ct(u))):i._clickHandle||(i._clickHandle=i.on("click",function(){t._hideAllSubmenus(t._rootMenu),t._hasFocus=!1,t._clearActiveItem(),i._clickHandle.detach(),i._clickHandle=null}));s===S&&e.preventDefault()}}}}},_onKeyPress:function(e){switch(e.keyCode){case 37:case 38:case 39:case 40:e.preventDefault()}},_onKeyDown:function(e){var t=this,i=t._activeItem,s=e.target,o=ot(s),u;o&&(t._activeMenu=o,nt(o)?t._onHorizontalMenuKeyDown(e):t._onVerticalMenuKeyDown(e),e.keyCode===27&&(t._isRoot(o)?i&&(tt(i)&&rt(i)?(u=i.next(),u&&t._hideMenu(u)):(t._focusManager.blur(),t._clearActiveItem(),t._hasFocus=!1)):(n.opera?r(0,t,function(){t._hideMenu(o,!0)}):t._hideMenu(o,!0),e.stopPropagation(),t._blockMouseEvent=n.gecko?!0:!1)))},_onDocMouseDown:function(e){var t=this,r=t._rootMenu,i=e.target;!r.compareTo(i)&&!r.contains(i)&&(t._hideAllSubmenus(r),n.webkit&&(t._hasFocus=!1,t._clearActiveItem()))}}),e.namespace("Plugin"),e.Plugin.NodeMenuNav=vt},"3.7.2",{requires:["node","classnamemanager","plugin","node-focusmanager"],skinnable:!0}); +YUI.add("node-menunav",function(e,t){var n=e.UA,r=e.later,i=e.ClassNameManager.getClassName,s="menu",o="menuitem",u="hidden",a="parentNode",f="children",l="offsetHeight",c="offsetWidth",h="px",p="id",d=".",v="handledMouseOut",m="handledMouseOver",g="active",y="label",b="a",w="mousedown",E="keydown",S="click",x="",T="first-of-type",N="role",C="presentation",k="descendants",L="UI",A="activeDescendant",O="useARIA",M="aria-hidden",_="content",D="host",P=A+"Change",H="autoSubmenuDisplay",B="mouseOutHideDelay",j=i(s),F=i(s,u),I=i(s,"horizontal"),q=i(s,y),R=i(s,y,g),U=i(s,y,s+"visible"),z=i(o),W=i(o,g),X=d+j,V=d+i(s,"toggle"),$=d+i(s,_),J=d+q,K=">"+$+">ul>li>a",Q=">"+$+">ul>li>"+J+">a:first-child",G=function(e){var t=e.previous(),n;return t||(n=e.get(a).get(f),t=n.item(n.size()-1)),t},Y=function(e){var t=e.next();return t||(t=e.get(a).get(f).item(0)),t},Z=function(e){var t=!1;return e&&(t=e.get("nodeName").toLowerCase()===b),t},et=function(e){return e.hasClass(z)},tt=function(e){return e.hasClass(q)},nt=function(e){return e.hasClass(I)},rt=function(e){return e.hasClass(U)},it=function(e){return Z(e)?e:e.one(b)},st=function(e,t,n){var r;return e&&(e.hasClass(t)&&(r=e),!r&&n&&(r=e.ancestor(d+t))),r},ot=function(e){return e.ancestor(X)},ut=function(e,t){return st(e,j,t)},at=function(e,t){var n;return e&&(n=st(e,z,t)),n},ft=function(e,t){var n;return e&&(t?n=st(e,q,t):n=st(e,q)||e.one(d+q)),n},lt=function(e,t){var n;return e&&(n=at(e,t)||ft(e,t)),n},ct=function(e){return lt(e.one("li"))},ht=function(e){return et(e)?W:R},pt=function(e,t){return e&&!e[m]&&(e.compareTo(t)||e.contains(t))},dt=function(e,t){return e&&!e[v]&&!e.compareTo(t)&&!e.contains(t)},vt=function(){vt.superclass.constructor.apply(this,arguments)};vt.NAME="nodeMenuNav",vt.NS="menuNav",vt.SHIM_TEMPLATE_TITLE="Menu Stacking Shim",vt.SHIM_TEMPLATE='',vt.ATTRS={useARIA:{value:!0,writeOnce:!0,lazyAdd:!1,setter:function(t){var n=this.get(D),r,u,a,f;t&&(n.set(N,s),n.all("ul,li,"+$).set(N,C),n.all(d+i(o,_)).set(N,o),n.all(d+q).each(function(t){r=t,u=t.one(V),u&&(u.set(N,C),r=u.previous()),r.set(N,o),r.set("aria-haspopup",!0),a=t.next(),a&&(a.set(N,s),r=a.previous(),u=r.one(V),u&&(r=u),f=e.stamp(r),r.get(p)||r.set(p,f),a.set("aria-labelledby",f),a.set(M,!0))}))}},autoSubmenuDisplay:{value:!0,writeOnce:!0},submenuShowDelay:{value:250,writeOnce:!0},submenuHideDelay:{value:250,writeOnce:!0},mouseOutHideDelay:{value:750,writeOnce:!0}},e.extend(vt,e.Plugin.Base,{_rootMenu:null,_activeItem:null,_activeMenu:null,_hasFocus:!1,_blockMouseEvent:!1,_currentMouseX:0,_movingToSubmenu:!1,_showSubmenuTimer:null,_hideSubmenuTimer:null,_hideAllSubmenusTimer:null,_firstItem:null,initializer:function(t){var n=this,r=this.get(D),i=[],s;r&&(n._rootMenu=r,r.all("ul:first-child").addClass(T),r.all(X).addClass(F),i.push(r.on("mouseover",n._onMouseOver,n)),i.push(r.on("mouseout",n._onMouseOut,n)),i.push(r.on("mousemove",n._onMouseMove,n)),i.push(r.on(w,n._toggleSubmenuDisplay,n)),i.push(e.on("key",n._toggleSubmenuDisplay,r,"down:13",n)),i.push(r.on(S,n._toggleSubmenuDisplay,n)),i.push(r.on("keypress",n._onKeyPress,n)),i.push(r.on(E,n._onKeyDown,n)),s=r.get("ownerDocument"),i.push(s.on(w,n._onDocMouseDown,n)),i.push(s.on("focus",n._onDocFocus,n)),this._eventHandlers=i,n._initFocusManager())},destructor:function(){var t=this._eventHandlers;t&&(e.Array.each(t,function(e){e.detach()}),this._eventHandlers=null),this.get(D).unplug("focusManager")},_isRoot:function(e){return this._rootMenu.compareTo(e)},_getTopmostSubmenu:function(e){var t=this,n=ot(e),r;return n?t._isRoot(n)?r=e:r=t._getTopmostSubmenu(n):r=e,r},_clearActiveItem:function(){var e=this,t=e._activeItem;t&&t.removeClass(ht(t)),e._activeItem=null},_setActiveItem:function(e){var t=this;e&&(t._clearActiveItem(),e.addClass(ht(e)),t._activeItem=e)},_focusItem:function(e){var t=this,n,r;e&&t._hasFocus&&(n=ot(e),r=it(e),n&&!n.compareTo(t._activeMenu)&&(t._activeMenu=n,t._initFocusManager()),t._focusManager.focus(r))},_showMenu:function(t){var r=ot(t),i=t.get(a),s=i.getXY();this.get(O)&&t.set(M,!1),nt(r)?s[1]=s[1]+i.get(l):s[0]=s[0]+i.get(c),t.setXY(s),n.ie<8&&(n.ie===6&&!t.hasIFrameShim&&(t.appendChild(e.Node.create(vt.SHIM_TEMPLATE)),t.hasIFrameShim=!0),t.setStyles({height:x,width:x}),t.setStyles({height:t.get(l)+h,width:t.get(c)+h})),t.previous().addClass(U),t.removeClass(F)},_hideMenu:function(e,t){var n=this,r=e.previous(),i;r.removeClass(U),t&&(n._focusItem(r),n._setActiveItem(r)),i=e.one(d+W),i&&i.removeClass(W),e.setStyles({left:x,top:x}),e.addClass(F),n.get(O)&&e.set(M,!0)},_hideAllSubmenus:function(t){var n=this;t.all(X).each(e.bind(function(e){n._hideMenu(e)},n))},_cancelShowSubmenuTimer:function(){var e=this,t=e._showSubmenuTimer;t&&(t.cancel(),e._showSubmenuTimer=null)},_cancelHideSubmenuTimer:function(){var e=this,t=e._hideSubmenuTimer;t&&(t.cancel(),e._hideSubmenuTimer=null)},_initFocusManager:function(){var t=this,n=t._rootMenu,r=t._activeMenu||n,i=t._isRoot(r)?x:"#"+r.get("id"),s=t._focusManager,o,u,a;nt(r)?(u=i+K+","+i+Q,o={next:"down:39",previous:"down:37"}):(u=i+K,o={next:"down:40",previous:"down:38"}),s?(s.set(A,-1),s.set(k,u),s.set("keys",o)):(n.plug(e.Plugin.NodeFocusManager,{descendants:u,keys:o,circular:!0}),s=n.focusManager,a="#"+n.get("id")+X+" a,"+V,n.all(a).set("tabIndex",-1),s.on(P,this._onActiveDescendantChange,s,this),s.after(P,this._afterActiveDescendantChange,s,this),t._focusManager=s)},_onActiveDescendantChange:function(e,t){e.src===L&&t._activeMenu&&!t._movingToSubmenu&&t._hideAllSubmenus(t._activeMenu)},_afterActiveDescendantChange:function(e,t){var n;e.src===L&&(n=lt(this.get(k).item(e.newVal),!0),t._setActiveItem(n))},_onDocFocus:function(e){var t=this,n=t._activeItem,r=e.target,i;t._rootMenu.contains(r)?t._hasFocus?(i=ot(r),t._activeMenu.compareTo(i)||(t._activeMenu=i,t._initFocusManager(),t._focusManager.set(A,r),t._setActiveItem(lt(r,!0)))):(t._hasFocus=!0,n=lt(r,!0),n&&t._setActiveItem(n)):(t._clearActiveItem(),t._cancelShowSubmenuTimer(),t._hideAllSubmenus(t._rootMenu),t._activeMenu=t._rootMenu,t._initFocusManager(),t._focusManager.set(A,0),t._hasFocus=!1)},_onMenuMouseOver:function(e,t){var n=this,r=n._hideAllSubmenusTimer;r&&(r.cancel(),n._hideAllSubmenusTimer=null),n._cancelHideSubmenuTimer(),e&&!e.compareTo(n._activeMenu)&&(n._activeMenu=e,n._hasFocus&&n._initFocusManager()),n._movingToSubmenu&&nt(e)&&(n._movingToSubmenu=!1)},_hideAndFocusLabel:function(){var e=this,t=e._activeMenu,n;e._hideAllSubmenus(e._rootMenu),t&&(n=e._getTopmostSubmenu(t),e._focusItem(n.previous()))},_onMenuMouseOut:function(e,t){var n=this,i=n._activeMenu,s=t.relatedTarget,o=n._activeItem,u,a;i&&!i.contains(s)&&(u=ot(i),u&&!u.contains(s)?n.get(B)>0&&(n._cancelShowSubmenuTimer(),n._hideAllSubmenusTimer=r(n.get(B),n,n._hideAndFocusLabel)):o&&(a=ot(o),n._isRoot(a)||n._focusItem(a.previous())))},_onMenuLabelMouseOver:function(e,t){var n=this,i=n._activeMenu,s=n._isRoot(i),o=n.get(H)&&s||!s,u=n.get("submenuShowDelay"),a,f=function(t){n._cancelHideSubmenuTimer(),n._cancelShowSubmenuTimer(),rt(e)||(a=e.next(),a&&(n._hideAllSubmenus(i),n._showSubmenuTimer=r(t,n,n._showMenu,a)))};n._focusItem(e),n._setActiveItem(e),o&&(n._movingToSubmenu?n._hoverTimer=r(u,n,function(){f(0)}):f(u))},_onMenuLabelMouseOut:function(e,t){var n=this,i=n._isRoot(n._activeMenu),s=n.get(H)&&i||!i,o=t.relatedTarget,u=e.next(),a=n._hoverTimer;a&&a.cancel(),n._clearActiveItem(),s&&(n._movingToSubmenu&&!n._showSubmenuTimer&&u?n._hideSubmenuTimer=r(n.get("submenuHideDelay"),n,n._hideMenu,u):!n._movingToSubmenu&&u&&(!o||o&&!u.contains(o)&&!o.compareTo(u))&&(n._cancelShowSubmenuTimer(),n._hideMenu(u)))},_onMenuItemMouseOver:function(e,t){var n=this,r=n._activeMenu,i=n._isRoot(r),s=n.get(H)&&i||!i;n._focusItem(e),n._setActiveItem(e),s&&!n._movingToSubmenu&&n._hideAllSubmenus(r)},_onMenuItemMouseOut:function(e,t){this._clearActiveItem()},_onVerticalMenuKeyDown:function(e){var t=this,n=t._activeMenu,r=t._rootMenu,i=e.target,s=!1,o=e.keyCode,u,f,l,c;switch(o){case 37:f=ot(n),f&&nt(f)?(t._hideMenu(n),l=G(n.get(a)),c=lt(l),c&&(tt(c)?(u=c.next(),u?(t._showMenu(u),t._focusItem(ct(u)),t._setActiveItem(ct(u))):(t._focusItem(c),t._setActiveItem(c))):(t._focusItem(c),t._setActiveItem(c)))):t._isRoot(n)||t._hideMenu(n,!0),s=!0;break;case 39:tt(i)?(u=i.next(),u&&(t._showMenu(u),t._focusItem(ct(u)),t._setActiveItem(ct(u)))):nt(r)&&(u=t._getTopmostSubmenu(n),l=Y(u.get(a)),c=lt(l),t._hideAllSubmenus(r),c&&(tt(c)?(u=c.next(),u?(t._showMenu(u),t._focusItem(ct(u)),t._setActiveItem(ct(u))):(t._focusItem(c),t._setActiveItem(c))):(t._focusItem(c),t._setActiveItem(c)))),s=!0}s&&e.preventDefault()},_onHorizontalMenuKeyDown:function(e){var t=this,n=t._activeMenu,r=e.target,i=lt(r,!0),s=!1,o=e.keyCode,u;o===40&&(t._hideAllSubmenus(n),tt(i)&&(u=i.next(),u&&(t._showMenu(u),t._focusItem(ct(u)),t._setActiveItem(ct(u))),s=!0)),s&&e.preventDefault()},_onMouseMove:function(e){var t=this;r(10,t,function(){t._currentMouseX=e.pageX})},_onMouseOver:function(e){var t=this,n,r,i,s,o;t._blockMouseEvent?t._blockMouseEvent=!1:(n=e.target,r=ut(n,!0),i=ft(n,!0),o=at(n,!0),pt(r,n)&&(t._onMenuMouseOver(r,e),r[m]=!0,r[v]=!1,s=ot(r),s&&(s[v]=!0,s[m]=!1)),pt(i,n)&&(t._onMenuLabelMouseOver(i,e),i[m]=!0,i[v]=!1),pt(o,n)&&(t._onMenuItemMouseOver(o,e),o[m]=!0,o[v]=!1))},_onMouseOut:function(e){var t=this,n=t._activeMenu,r=!1,i,s,o,u,a,f;t._movingToSubmenu=n&&!nt(n)&&e.pageX-5>t._currentMouseX,i=e.target,s=e.relatedTarget,o=ut(i,!0),u=ft(i,!0),f=at(i,!0),dt(u,s)&&(t._onMenuLabelMouseOut(u,e),u[v]=!0,u[m]=!1),dt(f,s)&&(t._onMenuItemMouseOut(f,e),f[v]=!0,f[m]=!1),u&&(a=u.next(),a&&s&&(s.compareTo(a)||a.contains(s))&&(r=!0));if(dt(o,s)||r)t._onMenuMouseOut(o,e),o[v]=!0,o[m]=!1},_toggleSubmenuDisplay:function(e){var t=this,r=e.target,i=ft(r,!0),s=e.type,o,u,a,f,l,c;if(i){o=Z(r)?r:r.ancestor(Z);if(o){a=o.getAttribute("href",2),f=a.indexOf("#"),l=a.length;if(f===0&&l>1){c=a.substr(1,l),u=i.next();if(u&&u.get(p)===c){if(s===w||s===E)(n.opera||n.gecko||n.ie)&&s===E&&!t._preventClickHandle&&(t._preventClickHandle=t._rootMenu.on("click",function(e){e.preventDefault(),t._preventClickHandle.detach(),t._preventClickHandle=null})),s==w&&(e.preventDefault(),e.stopImmediatePropagation(),t._hasFocus=!0),t._isRoot(ot(r))?rt(i)?(t._hideMenu(u),t._focusItem(i),t._setActiveItem(i)):(t._hideAllSubmenus(t._rootMenu),t._showMenu(u),t._focusItem(ct(u)),t._setActiveItem(ct(u))):t._activeItem==i?(t._showMenu(u),t._focusItem(ct(u)),t._setActiveItem(ct(u))):i._clickHandle||(i._clickHandle=i.on("click",function(){t._hideAllSubmenus(t._rootMenu),t._hasFocus=!1,t._clearActiveItem(),i._clickHandle.detach(),i._clickHandle=null}));s===S&&e.preventDefault()}}}}},_onKeyPress:function(e){switch(e.keyCode){case 37:case 38:case 39:case 40:e.preventDefault()}},_onKeyDown:function(e){var t=this,i=t._activeItem,s=e.target,o=ot(s),u;o&&(t._activeMenu=o,nt(o)?t._onHorizontalMenuKeyDown(e):t._onVerticalMenuKeyDown(e),e.keyCode===27&&(t._isRoot(o)?i&&(tt(i)&&rt(i)?(u=i.next(),u&&t._hideMenu(u)):(t._focusManager.blur(),t._clearActiveItem(),t._hasFocus=!1)):(n.opera?r(0,t,function(){t._hideMenu(o,!0)}):t._hideMenu(o,!0),e.stopPropagation(),t._blockMouseEvent=n.gecko?!0:!1)))},_onDocMouseDown:function(e){var t=this,r=t._rootMenu,i=e.target;!r.compareTo(i)&&!r.contains(i)&&(t._hideAllSubmenus(r),n.webkit&&(t._hasFocus=!1,t._clearActiveItem()))}}),e.namespace("Plugin"),e.Plugin.NodeMenuNav=vt},"3.7.3",{requires:["node","classnamemanager","plugin","node-focusmanager"],skinnable:!0}); diff --git a/lib/yuilib/3.7.2/build/node-menunav/node-menunav.js b/lib/yuilib/3.7.3/build/node-menunav/node-menunav.js similarity index 99% rename from lib/yuilib/3.7.2/build/node-menunav/node-menunav.js rename to lib/yuilib/3.7.3/build/node-menunav/node-menunav.js index b8c04218ff1..71649dd7d3f 100644 --- a/lib/yuilib/3.7.2/build/node-menunav/node-menunav.js +++ b/lib/yuilib/3.7.3/build/node-menunav/node-menunav.js @@ -1,5 +1,5 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ @@ -2187,4 +2187,4 @@ Y.namespace('Plugin'); Y.Plugin.NodeMenuNav = NodeMenuNav; -}, '3.7.2', {"requires": ["node", "classnamemanager", "plugin", "node-focusmanager"], "skinnable": true}); +}, '3.7.3', {"requires": ["node", "classnamemanager", "plugin", "node-focusmanager"], "skinnable": true}); diff --git a/lib/yuilib/3.7.2/build/node-pluginhost/node-pluginhost-coverage.js b/lib/yuilib/3.7.3/build/node-pluginhost/node-pluginhost-coverage.js similarity index 98% rename from lib/yuilib/3.7.2/build/node-pluginhost/node-pluginhost-coverage.js rename to lib/yuilib/3.7.3/build/node-pluginhost/node-pluginhost-coverage.js index 3a878f5df2a..e61b3abcfcc 100644 --- a/lib/yuilib/3.7.2/build/node-pluginhost/node-pluginhost-coverage.js +++ b/lib/yuilib/3.7.3/build/node-pluginhost/node-pluginhost-coverage.js @@ -1,5 +1,5 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ @@ -32,7 +32,7 @@ _yuitest_coverage["build/node-pluginhost/node-pluginhost.js"] = { path: "build/node-pluginhost/node-pluginhost.js", code: [] }; -_yuitest_coverage["build/node-pluginhost/node-pluginhost.js"].code=["YUI.add('node-pluginhost', function (Y, NAME) {","","/**"," * @module node"," * @submodule node-pluginhost"," */","","/**"," * Registers plugins to be instantiated at the class level (plugins"," * which should be plugged into every instance of Node by default)."," *"," * @method plug"," * @static"," * @for Node"," * @param {Function | Array} plugin Either the plugin class, an array of plugin classes or an array of objects (with fn and cfg properties defined)"," * @param {Object} config (Optional) If plugin is the plugin class, the configuration for the plugin"," */","Y.Node.plug = function() {"," var args = Y.Array(arguments);"," args.unshift(Y.Node);"," Y.Plugin.Host.plug.apply(Y.Base, args);"," return Y.Node;","};","","/**"," * Unregisters any class level plugins which have been registered by the Node"," *"," * @method unplug"," * @static"," *"," * @param {Function | Array} plugin The plugin class, or an array of plugin classes"," */","Y.Node.unplug = function() {"," var args = Y.Array(arguments);"," args.unshift(Y.Node);"," Y.Plugin.Host.unplug.apply(Y.Base, args);"," return Y.Node;","};","","Y.mix(Y.Node, Y.Plugin.Host, false, null, 1);","","// allow batching of plug/unplug via NodeList","// doesn't use NodeList.importMethod because we need real Nodes (not tmpNode)","/**"," * Adds a plugin to each node in the NodeList."," * This will instantiate the plugin and attach it to the configured namespace on each node"," * @method plug"," * @for NodeList"," * @param P {Function | Object |Array} Accepts the plugin class, or an "," * object with a \"fn\" property specifying the plugin class and "," * a \"cfg\" property specifying the configuration for the Plugin."," *

    "," * Additionally an Array can also be passed in, with the above function or "," * object values, allowing the user to add multiple plugins in a single call."," *

    "," * @param config (Optional) If the first argument is the plugin class, the second argument"," * can be the configuration for the plugin."," * @chainable"," */","Y.NodeList.prototype.plug = function() {"," var args = arguments;"," Y.NodeList.each(this, function(node) {"," Y.Node.prototype.plug.apply(Y.one(node), args);"," });"," return this;","};","","/**"," * Removes a plugin from all nodes in the NodeList. This will destroy the "," * plugin instance and delete the namespace each node. "," * @method unplug"," * @for NodeList"," * @param {String | Function} plugin The namespace of the plugin, or the plugin class with the static NS namespace property defined. If not provided,"," * all registered plugins are unplugged."," * @chainable"," */","Y.NodeList.prototype.unplug = function() {"," var args = arguments;"," Y.NodeList.each(this, function(node) {"," Y.Node.prototype.unplug.apply(Y.one(node), args);"," });"," return this;","};","","","}, '3.7.2', {\"requires\": [\"node-base\", \"pluginhost\"]});"]; +_yuitest_coverage["build/node-pluginhost/node-pluginhost.js"].code=["YUI.add('node-pluginhost', function (Y, NAME) {","","/**"," * @module node"," * @submodule node-pluginhost"," */","","/**"," * Registers plugins to be instantiated at the class level (plugins"," * which should be plugged into every instance of Node by default)."," *"," * @method plug"," * @static"," * @for Node"," * @param {Function | Array} plugin Either the plugin class, an array of plugin classes or an array of objects (with fn and cfg properties defined)"," * @param {Object} config (Optional) If plugin is the plugin class, the configuration for the plugin"," */","Y.Node.plug = function() {"," var args = Y.Array(arguments);"," args.unshift(Y.Node);"," Y.Plugin.Host.plug.apply(Y.Base, args);"," return Y.Node;","};","","/**"," * Unregisters any class level plugins which have been registered by the Node"," *"," * @method unplug"," * @static"," *"," * @param {Function | Array} plugin The plugin class, or an array of plugin classes"," */","Y.Node.unplug = function() {"," var args = Y.Array(arguments);"," args.unshift(Y.Node);"," Y.Plugin.Host.unplug.apply(Y.Base, args);"," return Y.Node;","};","","Y.mix(Y.Node, Y.Plugin.Host, false, null, 1);","","// allow batching of plug/unplug via NodeList","// doesn't use NodeList.importMethod because we need real Nodes (not tmpNode)","/**"," * Adds a plugin to each node in the NodeList."," * This will instantiate the plugin and attach it to the configured namespace on each node"," * @method plug"," * @for NodeList"," * @param P {Function | Object |Array} Accepts the plugin class, or an "," * object with a \"fn\" property specifying the plugin class and "," * a \"cfg\" property specifying the configuration for the Plugin."," *

    "," * Additionally an Array can also be passed in, with the above function or "," * object values, allowing the user to add multiple plugins in a single call."," *

    "," * @param config (Optional) If the first argument is the plugin class, the second argument"," * can be the configuration for the plugin."," * @chainable"," */","Y.NodeList.prototype.plug = function() {"," var args = arguments;"," Y.NodeList.each(this, function(node) {"," Y.Node.prototype.plug.apply(Y.one(node), args);"," });"," return this;","};","","/**"," * Removes a plugin from all nodes in the NodeList. This will destroy the "," * plugin instance and delete the namespace each node. "," * @method unplug"," * @for NodeList"," * @param {String | Function} plugin The namespace of the plugin, or the plugin class with the static NS namespace property defined. If not provided,"," * all registered plugins are unplugged."," * @chainable"," */","Y.NodeList.prototype.unplug = function() {"," var args = arguments;"," Y.NodeList.each(this, function(node) {"," Y.Node.prototype.unplug.apply(Y.one(node), args);"," });"," return this;","};","","","}, '3.7.3', {\"requires\": [\"node-base\", \"pluginhost\"]});"]; _yuitest_coverage["build/node-pluginhost/node-pluginhost.js"].lines = {"1":0,"18":0,"19":0,"20":0,"21":0,"22":0,"33":0,"34":0,"35":0,"36":0,"37":0,"40":0,"60":0,"61":0,"62":0,"63":0,"65":0,"77":0,"78":0,"79":0,"80":0,"82":0}; _yuitest_coverage["build/node-pluginhost/node-pluginhost.js"].functions = {"plug:18":0,"unplug:33":0,"(anonymous 2):62":0,"plug:60":0,"(anonymous 3):79":0,"unplug:77":0,"(anonymous 1):1":0}; _yuitest_coverage["build/node-pluginhost/node-pluginhost.js"].coveredLines = 22; @@ -151,4 +151,4 @@ return this; }; -}, '3.7.2', {"requires": ["node-base", "pluginhost"]}); +}, '3.7.3', {"requires": ["node-base", "pluginhost"]}); diff --git a/lib/yuilib/3.7.2/build/node-pluginhost/node-pluginhost-debug.js b/lib/yuilib/3.7.3/build/node-pluginhost/node-pluginhost-debug.js similarity index 97% rename from lib/yuilib/3.7.2/build/node-pluginhost/node-pluginhost-debug.js rename to lib/yuilib/3.7.3/build/node-pluginhost/node-pluginhost-debug.js index b48c6917127..82f56faaf7d 100644 --- a/lib/yuilib/3.7.2/build/node-pluginhost/node-pluginhost-debug.js +++ b/lib/yuilib/3.7.3/build/node-pluginhost/node-pluginhost-debug.js @@ -1,5 +1,5 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ @@ -89,4 +89,4 @@ Y.NodeList.prototype.unplug = function() { }; -}, '3.7.2', {"requires": ["node-base", "pluginhost"]}); +}, '3.7.3', {"requires": ["node-base", "pluginhost"]}); diff --git a/lib/yuilib/3.7.2/build/node-pluginhost/node-pluginhost-min.js b/lib/yuilib/3.7.3/build/node-pluginhost/node-pluginhost-min.js similarity index 88% rename from lib/yuilib/3.7.2/build/node-pluginhost/node-pluginhost-min.js rename to lib/yuilib/3.7.3/build/node-pluginhost/node-pluginhost-min.js index b5dc5dc7f4f..33aee8a969c 100644 --- a/lib/yuilib/3.7.2/build/node-pluginhost/node-pluginhost-min.js +++ b/lib/yuilib/3.7.3/build/node-pluginhost/node-pluginhost-min.js @@ -1,7 +1,7 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ */ -YUI.add("node-pluginhost",function(e,t){e.Node.plug=function(){var t=e.Array(arguments);return t.unshift(e.Node),e.Plugin.Host.plug.apply(e.Base,t),e.Node},e.Node.unplug=function(){var t=e.Array(arguments);return t.unshift(e.Node),e.Plugin.Host.unplug.apply(e.Base,t),e.Node},e.mix(e.Node,e.Plugin.Host,!1,null,1),e.NodeList.prototype.plug=function(){var t=arguments;return e.NodeList.each(this,function(n){e.Node.prototype.plug.apply(e.one(n),t)}),this},e.NodeList.prototype.unplug=function(){var t=arguments;return e.NodeList.each(this,function(n){e.Node.prototype.unplug.apply(e.one(n),t)}),this}},"3.7.2",{requires:["node-base","pluginhost"]}); +YUI.add("node-pluginhost",function(e,t){e.Node.plug=function(){var t=e.Array(arguments);return t.unshift(e.Node),e.Plugin.Host.plug.apply(e.Base,t),e.Node},e.Node.unplug=function(){var t=e.Array(arguments);return t.unshift(e.Node),e.Plugin.Host.unplug.apply(e.Base,t),e.Node},e.mix(e.Node,e.Plugin.Host,!1,null,1),e.NodeList.prototype.plug=function(){var t=arguments;return e.NodeList.each(this,function(n){e.Node.prototype.plug.apply(e.one(n),t)}),this},e.NodeList.prototype.unplug=function(){var t=arguments;return e.NodeList.each(this,function(n){e.Node.prototype.unplug.apply(e.one(n),t)}),this}},"3.7.3",{requires:["node-base","pluginhost"]}); diff --git a/lib/yuilib/3.7.2/build/node-pluginhost/node-pluginhost.js b/lib/yuilib/3.7.3/build/node-pluginhost/node-pluginhost.js similarity index 97% rename from lib/yuilib/3.7.2/build/node-pluginhost/node-pluginhost.js rename to lib/yuilib/3.7.3/build/node-pluginhost/node-pluginhost.js index b48c6917127..82f56faaf7d 100644 --- a/lib/yuilib/3.7.2/build/node-pluginhost/node-pluginhost.js +++ b/lib/yuilib/3.7.3/build/node-pluginhost/node-pluginhost.js @@ -1,5 +1,5 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ @@ -89,4 +89,4 @@ Y.NodeList.prototype.unplug = function() { }; -}, '3.7.2', {"requires": ["node-base", "pluginhost"]}); +}, '3.7.3', {"requires": ["node-base", "pluginhost"]}); diff --git a/lib/yuilib/3.7.2/build/node-screen/node-screen-coverage.js b/lib/yuilib/3.7.3/build/node-screen/node-screen-coverage.js similarity index 99% rename from lib/yuilib/3.7.2/build/node-screen/node-screen-coverage.js rename to lib/yuilib/3.7.3/build/node-screen/node-screen-coverage.js index 38e8df4bbc0..6266104203b 100644 --- a/lib/yuilib/3.7.2/build/node-screen/node-screen-coverage.js +++ b/lib/yuilib/3.7.3/build/node-screen/node-screen-coverage.js @@ -1,5 +1,5 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ @@ -32,7 +32,7 @@ _yuitest_coverage["build/node-screen/node-screen.js"] = { path: "build/node-screen/node-screen.js", code: [] }; -_yuitest_coverage["build/node-screen/node-screen.js"].code=["YUI.add('node-screen', function (Y, NAME) {","","/**"," * Extended Node interface for managing regions and screen positioning."," * Adds support for positioning elements and normalizes window size and scroll detection. "," * @module node"," * @submodule node-screen"," */","","// these are all \"safe\" returns, no wrapping required","Y.each(["," /**"," * Returns the inner width of the viewport (exludes scrollbar). "," * @config winWidth"," * @for Node"," * @type {Int}"," */"," 'winWidth',",""," /**"," * Returns the inner height of the viewport (exludes scrollbar). "," * @config winHeight"," * @type {Int}"," */"," 'winHeight',",""," /**"," * Document width "," * @config docWidth"," * @type {Int}"," */"," 'docWidth',",""," /**"," * Document height "," * @config docHeight"," * @type {Int}"," */"," 'docHeight',",""," /**"," * Pixel distance the page has been scrolled horizontally "," * @config docScrollX"," * @type {Int}"," */"," 'docScrollX',",""," /**"," * Pixel distance the page has been scrolled vertically "," * @config docScrollY"," * @type {Int}"," */"," 'docScrollY'"," ],"," function(name) {"," Y.Node.ATTRS[name] = {"," getter: function() {"," var args = Array.prototype.slice.call(arguments);"," args.unshift(Y.Node.getDOMNode(this));",""," return Y.DOM[name].apply(this, args);"," }"," };"," }",");","","Y.Node.ATTRS.scrollLeft = {"," getter: function() {"," var node = Y.Node.getDOMNode(this);"," return ('scrollLeft' in node) ? node.scrollLeft : Y.DOM.docScrollX(node);"," },",""," setter: function(val) {"," var node = Y.Node.getDOMNode(this);"," if (node) {"," if ('scrollLeft' in node) {"," node.scrollLeft = val;"," } else if (node.document || node.nodeType === 9) {"," Y.DOM._getWin(node).scrollTo(val, Y.DOM.docScrollY(node)); // scroll window if win or doc"," }"," } else {"," }"," }","};","","Y.Node.ATTRS.scrollTop = {"," getter: function() {"," var node = Y.Node.getDOMNode(this);"," return ('scrollTop' in node) ? node.scrollTop : Y.DOM.docScrollY(node);"," },",""," setter: function(val) {"," var node = Y.Node.getDOMNode(this);"," if (node) {"," if ('scrollTop' in node) {"," node.scrollTop = val;"," } else if (node.document || node.nodeType === 9) {"," Y.DOM._getWin(node).scrollTo(Y.DOM.docScrollX(node), val); // scroll window if win or doc"," }"," } else {"," }"," }","};","","Y.Node.importMethod(Y.DOM, [","/**"," * Gets the current position of the node in page coordinates. "," * @method getXY"," * @for Node"," * @return {Array} The XY position of the node","*/"," 'getXY',","","/**"," * Set the position of the node in page coordinates, regardless of how the node is positioned."," * @method setXY"," * @param {Array} xy Contains X & Y values for new position (coordinates are page-based)"," * @chainable"," */"," 'setXY',","","/**"," * Gets the current position of the node in page coordinates. "," * @method getX"," * @return {Int} The X position of the node","*/"," 'getX',","","/**"," * Set the position of the node in page coordinates, regardless of how the node is positioned."," * @method setX"," * @param {Int} x X value for new position (coordinates are page-based)"," * @chainable"," */"," 'setX',","","/**"," * Gets the current position of the node in page coordinates. "," * @method getY"," * @return {Int} The Y position of the node","*/"," 'getY',","","/**"," * Set the position of the node in page coordinates, regardless of how the node is positioned."," * @method setY"," * @param {Int} y Y value for new position (coordinates are page-based)"," * @chainable"," */"," 'setY',","","/**"," * Swaps the XY position of this node with another node. "," * @method swapXY"," * @param {Node | HTMLElement} otherNode The node to swap with."," * @chainable"," */"," 'swapXY'","]);","","/**"," * @module node"," * @submodule node-screen"," */","","/**"," * Returns a region object for the node"," * @config region"," * @for Node"," * @type Node"," */","Y.Node.ATTRS.region = {"," getter: function() {"," var node = this.getDOMNode(),"," region;",""," if (node && !node.tagName) {"," if (node.nodeType === 9) { // document"," node = node.documentElement;"," }"," }"," if (Y.DOM.isWindow(node)) {"," region = Y.DOM.viewportRegion(node);"," } else {"," region = Y.DOM.region(node);"," }"," return region;"," }","};","","/**"," * Returns a region object for the node's viewport"," * @config viewportRegion"," * @type Node"," */","Y.Node.ATTRS.viewportRegion = {"," getter: function() {"," return Y.DOM.viewportRegion(Y.Node.getDOMNode(this));"," }","};","","Y.Node.importMethod(Y.DOM, 'inViewportRegion');","","// these need special treatment to extract 2nd node arg","/**"," * Compares the intersection of the node with another node or region"," * @method intersect"," * @for Node"," * @param {Node|Object} node2 The node or region to compare with."," * @param {Object} altRegion An alternate region to use (rather than this node's)."," * @return {Object} An object representing the intersection of the regions."," */","Y.Node.prototype.intersect = function(node2, altRegion) {"," var node1 = Y.Node.getDOMNode(this);"," if (Y.instanceOf(node2, Y.Node)) { // might be a region object"," node2 = Y.Node.getDOMNode(node2);"," }"," return Y.DOM.intersect(node1, node2, altRegion);","};","","/**"," * Determines whether or not the node is within the giving region."," * @method inRegion"," * @param {Node|Object} node2 The node or region to compare with."," * @param {Boolean} all Whether or not all of the node must be in the region."," * @param {Object} altRegion An alternate region to use (rather than this node's)."," * @return {Object} An object representing the intersection of the regions."," */","Y.Node.prototype.inRegion = function(node2, all, altRegion) {"," var node1 = Y.Node.getDOMNode(this);"," if (Y.instanceOf(node2, Y.Node)) { // might be a region object"," node2 = Y.Node.getDOMNode(node2);"," }"," return Y.DOM.inRegion(node1, node2, all, altRegion);","};","","","}, '3.7.2', {\"requires\": [\"dom-screen\", \"node-base\"]});"]; +_yuitest_coverage["build/node-screen/node-screen.js"].code=["YUI.add('node-screen', function (Y, NAME) {","","/**"," * Extended Node interface for managing regions and screen positioning."," * Adds support for positioning elements and normalizes window size and scroll detection. "," * @module node"," * @submodule node-screen"," */","","// these are all \"safe\" returns, no wrapping required","Y.each(["," /**"," * Returns the inner width of the viewport (exludes scrollbar). "," * @config winWidth"," * @for Node"," * @type {Int}"," */"," 'winWidth',",""," /**"," * Returns the inner height of the viewport (exludes scrollbar). "," * @config winHeight"," * @type {Int}"," */"," 'winHeight',",""," /**"," * Document width "," * @config docWidth"," * @type {Int}"," */"," 'docWidth',",""," /**"," * Document height "," * @config docHeight"," * @type {Int}"," */"," 'docHeight',",""," /**"," * Pixel distance the page has been scrolled horizontally "," * @config docScrollX"," * @type {Int}"," */"," 'docScrollX',",""," /**"," * Pixel distance the page has been scrolled vertically "," * @config docScrollY"," * @type {Int}"," */"," 'docScrollY'"," ],"," function(name) {"," Y.Node.ATTRS[name] = {"," getter: function() {"," var args = Array.prototype.slice.call(arguments);"," args.unshift(Y.Node.getDOMNode(this));",""," return Y.DOM[name].apply(this, args);"," }"," };"," }",");","","Y.Node.ATTRS.scrollLeft = {"," getter: function() {"," var node = Y.Node.getDOMNode(this);"," return ('scrollLeft' in node) ? node.scrollLeft : Y.DOM.docScrollX(node);"," },",""," setter: function(val) {"," var node = Y.Node.getDOMNode(this);"," if (node) {"," if ('scrollLeft' in node) {"," node.scrollLeft = val;"," } else if (node.document || node.nodeType === 9) {"," Y.DOM._getWin(node).scrollTo(val, Y.DOM.docScrollY(node)); // scroll window if win or doc"," }"," } else {"," }"," }","};","","Y.Node.ATTRS.scrollTop = {"," getter: function() {"," var node = Y.Node.getDOMNode(this);"," return ('scrollTop' in node) ? node.scrollTop : Y.DOM.docScrollY(node);"," },",""," setter: function(val) {"," var node = Y.Node.getDOMNode(this);"," if (node) {"," if ('scrollTop' in node) {"," node.scrollTop = val;"," } else if (node.document || node.nodeType === 9) {"," Y.DOM._getWin(node).scrollTo(Y.DOM.docScrollX(node), val); // scroll window if win or doc"," }"," } else {"," }"," }","};","","Y.Node.importMethod(Y.DOM, [","/**"," * Gets the current position of the node in page coordinates. "," * @method getXY"," * @for Node"," * @return {Array} The XY position of the node","*/"," 'getXY',","","/**"," * Set the position of the node in page coordinates, regardless of how the node is positioned."," * @method setXY"," * @param {Array} xy Contains X & Y values for new position (coordinates are page-based)"," * @chainable"," */"," 'setXY',","","/**"," * Gets the current position of the node in page coordinates. "," * @method getX"," * @return {Int} The X position of the node","*/"," 'getX',","","/**"," * Set the position of the node in page coordinates, regardless of how the node is positioned."," * @method setX"," * @param {Int} x X value for new position (coordinates are page-based)"," * @chainable"," */"," 'setX',","","/**"," * Gets the current position of the node in page coordinates. "," * @method getY"," * @return {Int} The Y position of the node","*/"," 'getY',","","/**"," * Set the position of the node in page coordinates, regardless of how the node is positioned."," * @method setY"," * @param {Int} y Y value for new position (coordinates are page-based)"," * @chainable"," */"," 'setY',","","/**"," * Swaps the XY position of this node with another node. "," * @method swapXY"," * @param {Node | HTMLElement} otherNode The node to swap with."," * @chainable"," */"," 'swapXY'","]);","","/**"," * @module node"," * @submodule node-screen"," */","","/**"," * Returns a region object for the node"," * @config region"," * @for Node"," * @type Node"," */","Y.Node.ATTRS.region = {"," getter: function() {"," var node = this.getDOMNode(),"," region;",""," if (node && !node.tagName) {"," if (node.nodeType === 9) { // document"," node = node.documentElement;"," }"," }"," if (Y.DOM.isWindow(node)) {"," region = Y.DOM.viewportRegion(node);"," } else {"," region = Y.DOM.region(node);"," }"," return region;"," }","};","","/**"," * Returns a region object for the node's viewport"," * @config viewportRegion"," * @type Node"," */","Y.Node.ATTRS.viewportRegion = {"," getter: function() {"," return Y.DOM.viewportRegion(Y.Node.getDOMNode(this));"," }","};","","Y.Node.importMethod(Y.DOM, 'inViewportRegion');","","// these need special treatment to extract 2nd node arg","/**"," * Compares the intersection of the node with another node or region"," * @method intersect"," * @for Node"," * @param {Node|Object} node2 The node or region to compare with."," * @param {Object} altRegion An alternate region to use (rather than this node's)."," * @return {Object} An object representing the intersection of the regions."," */","Y.Node.prototype.intersect = function(node2, altRegion) {"," var node1 = Y.Node.getDOMNode(this);"," if (Y.instanceOf(node2, Y.Node)) { // might be a region object"," node2 = Y.Node.getDOMNode(node2);"," }"," return Y.DOM.intersect(node1, node2, altRegion);","};","","/**"," * Determines whether or not the node is within the giving region."," * @method inRegion"," * @param {Node|Object} node2 The node or region to compare with."," * @param {Boolean} all Whether or not all of the node must be in the region."," * @param {Object} altRegion An alternate region to use (rather than this node's)."," * @return {Object} An object representing the intersection of the regions."," */","Y.Node.prototype.inRegion = function(node2, all, altRegion) {"," var node1 = Y.Node.getDOMNode(this);"," if (Y.instanceOf(node2, Y.Node)) { // might be a region object"," node2 = Y.Node.getDOMNode(node2);"," }"," return Y.DOM.inRegion(node1, node2, all, altRegion);","};","","","}, '3.7.3', {\"requires\": [\"dom-screen\", \"node-base\"]});"]; _yuitest_coverage["build/node-screen/node-screen.js"].lines = {"1":0,"11":0,"56":0,"58":0,"59":0,"61":0,"67":0,"69":0,"70":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"86":0,"88":0,"89":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"105":0,"172":0,"174":0,"177":0,"178":0,"179":0,"182":0,"183":0,"185":0,"187":0,"196":0,"198":0,"202":0,"213":0,"214":0,"215":0,"216":0,"218":0,"229":0,"230":0,"231":0,"232":0,"234":0}; _yuitest_coverage["build/node-screen/node-screen.js"].functions = {"getter:57":0,"(anonymous 2):55":0,"getter:68":0,"setter:73":0,"getter:87":0,"setter:92":0,"getter:173":0,"getter:197":0,"intersect:213":0,"inRegion:229":0,"(anonymous 1):1":0}; _yuitest_coverage["build/node-screen/node-screen.js"].coveredLines = 47; @@ -332,4 +332,4 @@ return Y.DOM.inRegion(node1, node2, all, altRegion); }; -}, '3.7.2', {"requires": ["dom-screen", "node-base"]}); +}, '3.7.3', {"requires": ["dom-screen", "node-base"]}); diff --git a/lib/yuilib/3.7.2/build/node-screen/node-screen-debug.js b/lib/yuilib/3.7.3/build/node-screen/node-screen-debug.js similarity index 98% rename from lib/yuilib/3.7.2/build/node-screen/node-screen-debug.js rename to lib/yuilib/3.7.3/build/node-screen/node-screen-debug.js index e72f094a3cc..d522a7215e3 100644 --- a/lib/yuilib/3.7.2/build/node-screen/node-screen-debug.js +++ b/lib/yuilib/3.7.3/build/node-screen/node-screen-debug.js @@ -1,5 +1,5 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ @@ -243,4 +243,4 @@ Y.Node.prototype.inRegion = function(node2, all, altRegion) { }; -}, '3.7.2', {"requires": ["dom-screen", "node-base"]}); +}, '3.7.3', {"requires": ["dom-screen", "node-base"]}); diff --git a/lib/yuilib/3.7.2/build/node-screen/node-screen-min.js b/lib/yuilib/3.7.3/build/node-screen/node-screen-min.js similarity index 95% rename from lib/yuilib/3.7.2/build/node-screen/node-screen-min.js rename to lib/yuilib/3.7.3/build/node-screen/node-screen-min.js index 74615f37c96..3227c28488b 100644 --- a/lib/yuilib/3.7.2/build/node-screen/node-screen-min.js +++ b/lib/yuilib/3.7.3/build/node-screen/node-screen-min.js @@ -1,7 +1,7 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ */ -YUI.add("node-screen",function(e,t){e.each(["winWidth","winHeight","docWidth","docHeight","docScrollX","docScrollY"],function(t){e.Node.ATTRS[t]={getter:function(){var n=Array.prototype.slice.call(arguments);return n.unshift(e.Node.getDOMNode(this)),e.DOM[t].apply(this,n)}}}),e.Node.ATTRS.scrollLeft={getter:function(){var t=e.Node.getDOMNode(this);return"scrollLeft"in t?t.scrollLeft:e.DOM.docScrollX(t)},setter:function(t){var n=e.Node.getDOMNode(this);n&&("scrollLeft"in n?n.scrollLeft=t:(n.document||n.nodeType===9)&&e.DOM._getWin(n).scrollTo(t,e.DOM.docScrollY(n)))}},e.Node.ATTRS.scrollTop={getter:function(){var t=e.Node.getDOMNode(this);return"scrollTop"in t?t.scrollTop:e.DOM.docScrollY(t)},setter:function(t){var n=e.Node.getDOMNode(this);n&&("scrollTop"in n?n.scrollTop=t:(n.document||n.nodeType===9)&&e.DOM._getWin(n).scrollTo(e.DOM.docScrollX(n),t))}},e.Node.importMethod(e.DOM,["getXY","setXY","getX","setX","getY","setY","swapXY"]),e.Node.ATTRS.region={getter:function(){var t=this.getDOMNode(),n;return t&&!t.tagName&&t.nodeType===9&&(t=t.documentElement),e.DOM.isWindow(t)?n=e.DOM.viewportRegion(t):n=e.DOM.region(t),n}},e.Node.ATTRS.viewportRegion={getter:function(){return e.DOM.viewportRegion(e.Node.getDOMNode(this))}},e.Node.importMethod(e.DOM,"inViewportRegion"),e.Node.prototype.intersect=function(t,n){var r=e.Node.getDOMNode(this);return e.instanceOf(t,e.Node)&&(t=e.Node.getDOMNode(t)),e.DOM.intersect(r,t,n)},e.Node.prototype.inRegion=function(t,n,r){var i=e.Node.getDOMNode(this);return e.instanceOf(t,e.Node)&&(t=e.Node.getDOMNode(t)),e.DOM.inRegion(i,t,n,r)}},"3.7.2",{requires:["dom-screen","node-base"]}); +YUI.add("node-screen",function(e,t){e.each(["winWidth","winHeight","docWidth","docHeight","docScrollX","docScrollY"],function(t){e.Node.ATTRS[t]={getter:function(){var n=Array.prototype.slice.call(arguments);return n.unshift(e.Node.getDOMNode(this)),e.DOM[t].apply(this,n)}}}),e.Node.ATTRS.scrollLeft={getter:function(){var t=e.Node.getDOMNode(this);return"scrollLeft"in t?t.scrollLeft:e.DOM.docScrollX(t)},setter:function(t){var n=e.Node.getDOMNode(this);n&&("scrollLeft"in n?n.scrollLeft=t:(n.document||n.nodeType===9)&&e.DOM._getWin(n).scrollTo(t,e.DOM.docScrollY(n)))}},e.Node.ATTRS.scrollTop={getter:function(){var t=e.Node.getDOMNode(this);return"scrollTop"in t?t.scrollTop:e.DOM.docScrollY(t)},setter:function(t){var n=e.Node.getDOMNode(this);n&&("scrollTop"in n?n.scrollTop=t:(n.document||n.nodeType===9)&&e.DOM._getWin(n).scrollTo(e.DOM.docScrollX(n),t))}},e.Node.importMethod(e.DOM,["getXY","setXY","getX","setX","getY","setY","swapXY"]),e.Node.ATTRS.region={getter:function(){var t=this.getDOMNode(),n;return t&&!t.tagName&&t.nodeType===9&&(t=t.documentElement),e.DOM.isWindow(t)?n=e.DOM.viewportRegion(t):n=e.DOM.region(t),n}},e.Node.ATTRS.viewportRegion={getter:function(){return e.DOM.viewportRegion(e.Node.getDOMNode(this))}},e.Node.importMethod(e.DOM,"inViewportRegion"),e.Node.prototype.intersect=function(t,n){var r=e.Node.getDOMNode(this);return e.instanceOf(t,e.Node)&&(t=e.Node.getDOMNode(t)),e.DOM.intersect(r,t,n)},e.Node.prototype.inRegion=function(t,n,r){var i=e.Node.getDOMNode(this);return e.instanceOf(t,e.Node)&&(t=e.Node.getDOMNode(t)),e.DOM.inRegion(i,t,n,r)}},"3.7.3",{requires:["dom-screen","node-base"]}); diff --git a/lib/yuilib/3.7.2/build/node-screen/node-screen.js b/lib/yuilib/3.7.3/build/node-screen/node-screen.js similarity index 98% rename from lib/yuilib/3.7.2/build/node-screen/node-screen.js rename to lib/yuilib/3.7.3/build/node-screen/node-screen.js index 6776da62ee0..cceaa3330e5 100644 --- a/lib/yuilib/3.7.2/build/node-screen/node-screen.js +++ b/lib/yuilib/3.7.3/build/node-screen/node-screen.js @@ -1,5 +1,5 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ @@ -241,4 +241,4 @@ Y.Node.prototype.inRegion = function(node2, all, altRegion) { }; -}, '3.7.2', {"requires": ["dom-screen", "node-base"]}); +}, '3.7.3', {"requires": ["dom-screen", "node-base"]}); diff --git a/lib/yuilib/3.7.2/build/node-scroll-info/node-scroll-info-coverage.js b/lib/yuilib/3.7.3/build/node-scroll-info/node-scroll-info-coverage.js similarity index 99% rename from lib/yuilib/3.7.2/build/node-scroll-info/node-scroll-info-coverage.js rename to lib/yuilib/3.7.3/build/node-scroll-info/node-scroll-info-coverage.js index 73a3ce72c4c..94fface2cf1 100644 --- a/lib/yuilib/3.7.2/build/node-scroll-info/node-scroll-info-coverage.js +++ b/lib/yuilib/3.7.3/build/node-scroll-info/node-scroll-info-coverage.js @@ -1,5 +1,5 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ @@ -32,7 +32,7 @@ _yuitest_coverage["build/node-scroll-info/node-scroll-info.js"] = { path: "build/node-scroll-info/node-scroll-info.js", code: [] }; -_yuitest_coverage["build/node-scroll-info/node-scroll-info.js"].code=["YUI.add('node-scroll-info', function (Y, NAME) {","","/**","Provides the ScrollInfo Node plugin, which exposes convenient events and methods","related to scrolling.","","@module node-scroll-info","@since 3.7.0","**/","","/**","Provides convenient events and methods related to scrolling. This could be used,","for example, to implement infinite scrolling, or to lazy-load content based on","the current scroll position.","","### Example",""," var body = Y.one('body');",""," body.plug(Y.Plugin.ScrollInfo);",""," body.scrollInfo.on('scrollToBottom', function (e) {"," // Load more content when the user scrolls to the bottom of the page."," });","","@class Plugin.ScrollInfo","@extends Plugin.Base","@since 3.7.0","**/","","/**","Fired when the user scrolls within the host node.","","This event (like all scroll events exposed by ScrollInfo) is throttled and fired","only after the number of milliseconds specified by the `scrollDelay` attribute","have passed in order to prevent thrashing.","","This event passes along the event facade for the standard DOM `scroll` event and","mixes in the following additional properties.","","@event scroll","@param {Boolean} atBottom Whether the current scroll position is at the bottom"," of the scrollable region.","@param {Boolean} atLeft Whether the current scroll position is at the extreme"," left of the scrollable region.","@param {Boolean} atRight Whether the current scroll position is at the extreme"," right of the scrollable region.","@param {Boolean} atTop Whether the current scroll position is at the top of the"," scrollable region.","@param {Boolean} isScrollDown `true` if the user scrolled down.","@param {Boolean} isScrollLeft `true` if the user scrolled left.","@param {Boolean} isScrollRight `true` if the user scrolled right.","@param {Boolean} isScrollUp `true` if the user scrolled up.","@param {Number} scrollBottom Y value of the bottom-most onscreen pixel of the"," scrollable region.","@param {Number} scrollHeight Total height in pixels of the scrollable region,"," including offscreen pixels.","@param {Number} scrollLeft X value of the left-most onscreen pixel of the"," scrollable region.","@param {Number} scrollRight X value of the right-most onscreen pixel of the"," scrollable region.","@param {Number} scrollTop Y value of the top-most onscreen pixel of the"," scrollable region.","@param {Number} scrollWidth Total width in pixels of the scrollable region,"," including offscreen pixels.","@see scrollDelay","@see scrollMargin","**/","var EVT_SCROLL = 'scroll',",""," /**"," Fired when the user scrolls down within the host node.",""," This event provides the same event facade as the `scroll` event. See that"," event for details.",""," @event scrollDown"," @see scroll"," **/"," EVT_SCROLL_DOWN = 'scrollDown',",""," /**"," Fired when the user scrolls left within the host node.",""," This event provides the same event facade as the `scroll` event. See that"," event for details.",""," @event scrollLeft"," @see scroll"," **/"," EVT_SCROLL_LEFT = 'scrollLeft',",""," /**"," Fired when the user scrolls right within the host node.",""," This event provides the same event facade as the `scroll` event. See that"," event for details.",""," @event scrollRight"," @see scroll"," **/"," EVT_SCROLL_RIGHT = 'scrollRight',",""," /**"," Fired when the user scrolls up within the host node.",""," This event provides the same event facade as the `scroll` event. See that"," event for details.",""," @event scrollUp"," @see scroll"," **/"," EVT_SCROLL_UP = 'scrollUp',",""," /**"," Fired when the user scrolls to the bottom of the scrollable region within"," the host node.",""," This event provides the same event facade as the `scroll` event. See that"," event for details.",""," @event scrollToBottom"," @see scroll"," **/"," EVT_SCROLL_TO_BOTTOM = 'scrollToBottom',",""," /**"," Fired when the user scrolls to the extreme left of the scrollable region"," within the host node.",""," This event provides the same event facade as the `scroll` event. See that"," event for details.",""," @event scrollToLeft"," @see scroll"," **/"," EVT_SCROLL_TO_LEFT = 'scrollToLeft',",""," /**"," Fired when the user scrolls to the extreme right of the scrollable region"," within the host node.",""," This event provides the same event facade as the `scroll` event. See that"," event for details.",""," @event scrollToRight"," @see scroll"," **/"," EVT_SCROLL_TO_RIGHT = 'scrollToRight',",""," /**"," Fired when the user scrolls to the top of the scrollable region within the"," host node.",""," This event provides the same event facade as the `scroll` event. See that"," event for details.",""," @event scrollToTop"," @see scroll"," **/"," EVT_SCROLL_TO_TOP = 'scrollToTop';","","Y.Plugin.ScrollInfo = Y.Base.create('scrollInfoPlugin', Y.Plugin.Base, [], {"," // -- Lifecycle Methods ----------------------------------------------------"," initializer: function (config) {"," // Cache for quicker lookups in the critical path."," this._host = config.host;"," this._hostIsBody = this._host.get('nodeName').toLowerCase() === 'body';"," this._scrollDelay = this.get('scrollDelay');"," this._scrollMargin = this.get('scrollMargin');"," this._scrollNode = this._getScrollNode();",""," this.refreshDimensions();",""," this._lastScroll = this.getScrollInfo();",""," this._bind();"," },",""," destructor: function () {"," (new Y.EventHandle(this._events)).detach();"," delete this._events;"," },",""," // -- Public Methods -------------------------------------------------------",""," /**"," Returns a NodeList containing all offscreen nodes inside the host node that"," match the given CSS selector. An offscreen node is any node that is entirely"," outside the visible (onscreen) region of the host node based on the current"," scroll location.",""," @method getOffscreenNodes"," @param {String} [selector] CSS selector. If omitted, all offscreen nodes"," will be returned."," @param {Number} [margin] Additional margin in pixels beyond the actual"," onscreen region that should be considered \"onscreen\" for the purposes of"," this query. Defaults to the value of the `scrollMargin` attribute."," @return {NodeList} Offscreen nodes matching _selector_."," @see scrollMargin"," **/"," getOffscreenNodes: function (selector, margin) {"," if (typeof margin === 'undefined') {"," margin = this._scrollMargin;"," }",""," var lastScroll = this._lastScroll,"," nodes = this._host.all(selector || '*'),",""," scrollBottom = lastScroll.scrollBottom + margin,"," scrollLeft = lastScroll.scrollLeft - margin,"," scrollRight = lastScroll.scrollRight + margin,"," scrollTop = lastScroll.scrollTop - margin,",""," self = this;",""," return nodes.filter(function (el) {"," var xy = Y.DOM.getXY(el),"," elLeft = xy[0] - self._left,"," elTop = xy[1] - self._top,"," elBottom, elRight;",""," // Check whether the element's top left point is within the"," // viewport. This is the least expensive check."," if (elLeft >= scrollLeft && elLeft < scrollRight &&"," elTop >= scrollTop && elTop < scrollBottom) {",""," return false;"," }",""," // Check whether the element's bottom right point is within the"," // viewport. This check is more expensive since we have to get the"," // element's height and width."," elBottom = elTop + el.offsetHeight;"," elRight = elLeft + el.offsetWidth;",""," if (elRight < scrollRight && elRight >= scrollLeft &&"," elBottom < scrollBottom && elBottom >= scrollTop) {",""," return false;"," }",""," // If we get here, the element isn't within the viewport."," return true;"," });"," },",""," /**"," Returns a NodeList containing all onscreen nodes inside the host node that"," match the given CSS selector. An onscreen node is any node that is fully or"," partially within the visible (onscreen) region of the host node based on the"," current scroll location.",""," @method getOnscreenNodes"," @param {String} [selector] CSS selector. If omitted, all onscreen nodes will"," be returned."," @param {Number} [margin] Additional margin in pixels beyond the actual"," onscreen region that should be considered \"onscreen\" for the purposes of"," this query. Defaults to the value of the `scrollMargin` attribute."," @return {NodeList} Onscreen nodes matching _selector_."," @see scrollMargin"," **/"," getOnscreenNodes: function (selector, margin) {"," if (typeof margin === 'undefined') {"," margin = this._scrollMargin;"," }",""," var lastScroll = this._lastScroll,"," nodes = this._host.all(selector || '*'),",""," scrollBottom = lastScroll.scrollBottom + margin,"," scrollLeft = lastScroll.scrollLeft - margin,"," scrollRight = lastScroll.scrollRight + margin,"," scrollTop = lastScroll.scrollTop - margin,",""," self = this;",""," return nodes.filter(function (el) {"," var xy = Y.DOM.getXY(el),"," elLeft = xy[0] - self._left,"," elTop = xy[1] - self._top,"," elBottom, elRight;",""," // Check whether the element's top left point is within the"," // viewport. This is the least expensive check."," if (elLeft >= scrollLeft && elLeft < scrollRight &&"," elTop >= scrollTop && elTop < scrollBottom) {",""," return true;"," }",""," // Check whether the element's bottom right point is within the"," // viewport. This check is more expensive since we have to get the"," // element's height and width."," elBottom = elTop + el.offsetHeight;"," elRight = elLeft + el.offsetWidth;",""," if (elRight < scrollRight && elRight >= scrollLeft &&"," elBottom < scrollBottom && elBottom >= scrollTop) {",""," return true;"," }",""," // If we get here, the element isn't within the viewport."," return false;"," });"," },",""," /**"," Returns an object hash containing information about the current scroll"," position of the host node. This is the same information that's mixed into"," the event facade of the `scroll` event and other scroll-related events.",""," @method getScrollInfo"," @return {Object} Object hash containing information about the current scroll"," position. See the `scroll` event for details on what properties this"," object contains."," @see scroll"," **/"," getScrollInfo: function () {"," var domNode = this._scrollNode,"," lastScroll = this._lastScroll,"," margin = this._scrollMargin,",""," scrollLeft = domNode.scrollLeft,"," scrollHeight = domNode.scrollHeight,"," scrollTop = domNode.scrollTop,"," scrollWidth = domNode.scrollWidth,",""," scrollBottom = scrollTop + this._height,"," scrollRight = scrollLeft + this._width;",""," return {"," atBottom: scrollBottom > (scrollHeight - margin),"," atLeft : scrollLeft < margin,"," atRight : scrollRight > (scrollWidth - margin),"," atTop : scrollTop < margin,",""," isScrollDown : lastScroll && scrollTop > lastScroll.scrollTop,"," isScrollLeft : lastScroll && scrollLeft < lastScroll.scrollLeft,"," isScrollRight: lastScroll && scrollLeft > lastScroll.scrollLeft,"," isScrollUp : lastScroll && scrollTop < lastScroll.scrollTop,",""," scrollBottom: scrollBottom,"," scrollHeight: scrollHeight,"," scrollLeft : scrollLeft,"," scrollRight : scrollRight,"," scrollTop : scrollTop,"," scrollWidth : scrollWidth"," };"," },",""," /**"," Refreshes cached position, height, and width dimensions for the host node."," If the host node is the body, then the viewport height and width will be"," used.",""," This info is cached to improve performance during scroll events, since it's"," expensive to touch the DOM for these values. Dimensions are automatically"," refreshed whenever the browser is resized, but if you change the dimensions"," or position of the host node in JS, you may need to call"," `refreshDimensions()` manually to cache the new dimensions.",""," @method refreshDimensions"," **/"," refreshDimensions: function () {"," // WebKit only returns reliable scroll info on the body, and only"," // returns reliable height/width info on the documentElement, so we"," // have to special-case it (see the other special case in"," // _getScrollNode())."," //"," // On iOS devices, documentElement.clientHeight/Width aren't reliable,"," // but window.innerHeight/Width are. And no, dom-screen's viewport size"," // methods don't account for this, which is why we do it here.",""," var hostIsBody = this._hostIsBody,"," iosHack = hostIsBody && Y.UA.ios,"," win = Y.config.win,"," el;",""," if (hostIsBody && Y.UA.webkit) {"," el = Y.config.doc.documentElement;"," } else {"," el = this._scrollNode;"," }",""," this._height = iosHack ? win.innerHeight : el.clientHeight;"," this._left = el.offsetLeft;"," this._top = el.offsetTop;"," this._width = iosHack ? win.innerWidth : el.clientWidth;"," },",""," // -- Protected Methods ----------------------------------------------------",""," /**"," Binds event handlers.",""," @method _bind"," @protected"," **/"," _bind: function () {"," var winNode = Y.one('win');",""," this._events = ["," this.after({"," scrollDelayChange : this._afterScrollDelayChange,"," scrollMarginChange: this._afterScrollMarginChange"," }),",""," winNode.on('windowresize', this._afterResize, this),",""," // If we're attached to the body, listen for the scroll event on the"," // window, since doesn't have a scroll event."," (this._hostIsBody ? winNode : this._host).after("," 'scroll', this._afterScroll, this)"," ];"," },",""," /**"," Returns the DOM node that should be used to lookup scroll coordinates. In"," some browsers, the `` element doesn't return scroll coordinates, and"," the documentElement must be used instead; this method takes care of"," determining which node should be used.",""," @method _getScrollNode"," @return {HTMLElement} DOM node."," @protected"," **/"," _getScrollNode: function () {"," // WebKit returns scroll coordinates on the body element, but other"," // browsers don't, so we have to use the documentElement."," return this._hostIsBody && !Y.UA.webkit ? Y.config.doc.documentElement :"," Y.Node.getDOMNode(this._host);"," },",""," /**"," Mixes detailed scroll information into the given DOM `scroll` event facade"," and fires appropriate local events.",""," @method _triggerScroll"," @param {EventFacade} e Event facade from the DOM `scroll` event."," @protected"," **/"," _triggerScroll: function (e) {"," var info = this.getScrollInfo(),"," facade = Y.merge(e, info),"," lastScroll = this._lastScroll;",""," this._lastScroll = info;",""," this.fire(EVT_SCROLL, facade);",""," if (info.isScrollLeft) {"," this.fire(EVT_SCROLL_LEFT, facade);"," } else if (info.isScrollRight) {"," this.fire(EVT_SCROLL_RIGHT, facade);"," }",""," if (info.isScrollUp) {"," this.fire(EVT_SCROLL_UP, facade);"," } else if (info.isScrollDown) {"," this.fire(EVT_SCROLL_DOWN, facade);"," }",""," if (info.atBottom && (!lastScroll.atBottom ||"," info.scrollHeight > lastScroll.scrollHeight)) {",""," this.fire(EVT_SCROLL_TO_BOTTOM, facade);"," }",""," if (info.atLeft && !lastScroll.atLeft) {"," this.fire(EVT_SCROLL_TO_LEFT, facade);"," }",""," if (info.atRight && (!lastScroll.atRight ||"," info.scrollWidth > lastScroll.scrollWidth)) {",""," this.fire(EVT_SCROLL_TO_RIGHT, facade);"," }",""," if (info.atTop && !lastScroll.atTop) {"," this.fire(EVT_SCROLL_TO_TOP, facade);"," }"," },",""," // -- Protected Event Handlers ---------------------------------------------",""," /**"," Handles browser resize events.",""," @method _afterResize"," @param {EventFacade} e"," @protected"," **/"," _afterResize: function (e) {"," this.refreshDimensions();"," },",""," /**"," Handles DOM `scroll` events.",""," @method _afterScroll"," @param {EventFacade} e"," @protected"," **/"," _afterScroll: function (e) {"," var self = this;",""," clearTimeout(this._scrollTimeout);",""," this._scrollTimeout = setTimeout(function () {"," self._triggerScroll(e);"," }, this._scrollDelay);"," },",""," /**"," Caches the `scrollDelay` value after that attribute changes to allow"," quicker lookups in critical path code.",""," @method _afterScrollDelayChange"," @param {EventFacade} e"," @protected"," **/"," _afterScrollDelayChange: function (e) {"," this._scrollDelay = e.newVal;"," },",""," /**"," Caches the `scrollMargin` value after that attribute changes to allow"," quicker lookups in critical path code.",""," @method _afterScrollMarginChange"," @param {EventFacade} e"," @protected"," **/"," _afterScrollMarginChange: function (e) {"," this._scrollMargin = e.newVal;"," }","}, {"," NS: 'scrollInfo',",""," ATTRS: {"," /**"," Number of milliseconds to wait after a native `scroll` event before"," firing local scroll events. If another native scroll event occurs during"," this time, previous events will be ignored. This ensures that we don't"," fire thousands of events when the user is scrolling quickly.",""," @attribute scrollDelay"," @type Number"," @default 50"," **/"," scrollDelay: {"," value: 50"," },",""," /**"," Additional margin in pixels beyond the onscreen region of the host node"," that should be considered \"onscreen\".",""," For example, if set to 50, then a `scrollToBottom` event would be fired"," when the user scrolls to within 50 pixels of the bottom of the"," scrollable region, even if they don't actually scroll completely to the"," very bottom pixel.",""," This margin also applies to the `getOffscreenNodes()` and"," `getOnscreenNodes()` methods by default.",""," @attribute scrollMargin"," @type Number"," @default 50"," **/"," scrollMargin: {"," value: 50"," }"," }","});","","","}, '3.7.2', {\"requires\": [\"base-build\", \"dom-screen\", \"event-resize\", \"node-pluginhost\", \"plugin\"]});"]; +_yuitest_coverage["build/node-scroll-info/node-scroll-info.js"].code=["YUI.add('node-scroll-info', function (Y, NAME) {","","/**","Provides the ScrollInfo Node plugin, which exposes convenient events and methods","related to scrolling.","","@module node-scroll-info","@since 3.7.0","**/","","/**","Provides convenient events and methods related to scrolling. This could be used,","for example, to implement infinite scrolling, or to lazy-load content based on","the current scroll position.","","### Example",""," var body = Y.one('body');",""," body.plug(Y.Plugin.ScrollInfo);",""," body.scrollInfo.on('scrollToBottom', function (e) {"," // Load more content when the user scrolls to the bottom of the page."," });","","@class Plugin.ScrollInfo","@extends Plugin.Base","@since 3.7.0","**/","","/**","Fired when the user scrolls within the host node.","","This event (like all scroll events exposed by ScrollInfo) is throttled and fired","only after the number of milliseconds specified by the `scrollDelay` attribute","have passed in order to prevent thrashing.","","This event passes along the event facade for the standard DOM `scroll` event and","mixes in the following additional properties.","","@event scroll","@param {Boolean} atBottom Whether the current scroll position is at the bottom"," of the scrollable region.","@param {Boolean} atLeft Whether the current scroll position is at the extreme"," left of the scrollable region.","@param {Boolean} atRight Whether the current scroll position is at the extreme"," right of the scrollable region.","@param {Boolean} atTop Whether the current scroll position is at the top of the"," scrollable region.","@param {Boolean} isScrollDown `true` if the user scrolled down.","@param {Boolean} isScrollLeft `true` if the user scrolled left.","@param {Boolean} isScrollRight `true` if the user scrolled right.","@param {Boolean} isScrollUp `true` if the user scrolled up.","@param {Number} scrollBottom Y value of the bottom-most onscreen pixel of the"," scrollable region.","@param {Number} scrollHeight Total height in pixels of the scrollable region,"," including offscreen pixels.","@param {Number} scrollLeft X value of the left-most onscreen pixel of the"," scrollable region.","@param {Number} scrollRight X value of the right-most onscreen pixel of the"," scrollable region.","@param {Number} scrollTop Y value of the top-most onscreen pixel of the"," scrollable region.","@param {Number} scrollWidth Total width in pixels of the scrollable region,"," including offscreen pixels.","@see scrollDelay","@see scrollMargin","**/","var EVT_SCROLL = 'scroll',",""," /**"," Fired when the user scrolls down within the host node.",""," This event provides the same event facade as the `scroll` event. See that"," event for details.",""," @event scrollDown"," @see scroll"," **/"," EVT_SCROLL_DOWN = 'scrollDown',",""," /**"," Fired when the user scrolls left within the host node.",""," This event provides the same event facade as the `scroll` event. See that"," event for details.",""," @event scrollLeft"," @see scroll"," **/"," EVT_SCROLL_LEFT = 'scrollLeft',",""," /**"," Fired when the user scrolls right within the host node.",""," This event provides the same event facade as the `scroll` event. See that"," event for details.",""," @event scrollRight"," @see scroll"," **/"," EVT_SCROLL_RIGHT = 'scrollRight',",""," /**"," Fired when the user scrolls up within the host node.",""," This event provides the same event facade as the `scroll` event. See that"," event for details.",""," @event scrollUp"," @see scroll"," **/"," EVT_SCROLL_UP = 'scrollUp',",""," /**"," Fired when the user scrolls to the bottom of the scrollable region within"," the host node.",""," This event provides the same event facade as the `scroll` event. See that"," event for details.",""," @event scrollToBottom"," @see scroll"," **/"," EVT_SCROLL_TO_BOTTOM = 'scrollToBottom',",""," /**"," Fired when the user scrolls to the extreme left of the scrollable region"," within the host node.",""," This event provides the same event facade as the `scroll` event. See that"," event for details.",""," @event scrollToLeft"," @see scroll"," **/"," EVT_SCROLL_TO_LEFT = 'scrollToLeft',",""," /**"," Fired when the user scrolls to the extreme right of the scrollable region"," within the host node.",""," This event provides the same event facade as the `scroll` event. See that"," event for details.",""," @event scrollToRight"," @see scroll"," **/"," EVT_SCROLL_TO_RIGHT = 'scrollToRight',",""," /**"," Fired when the user scrolls to the top of the scrollable region within the"," host node.",""," This event provides the same event facade as the `scroll` event. See that"," event for details.",""," @event scrollToTop"," @see scroll"," **/"," EVT_SCROLL_TO_TOP = 'scrollToTop';","","Y.Plugin.ScrollInfo = Y.Base.create('scrollInfoPlugin', Y.Plugin.Base, [], {"," // -- Lifecycle Methods ----------------------------------------------------"," initializer: function (config) {"," // Cache for quicker lookups in the critical path."," this._host = config.host;"," this._hostIsBody = this._host.get('nodeName').toLowerCase() === 'body';"," this._scrollDelay = this.get('scrollDelay');"," this._scrollMargin = this.get('scrollMargin');"," this._scrollNode = this._getScrollNode();",""," this.refreshDimensions();",""," this._lastScroll = this.getScrollInfo();",""," this._bind();"," },",""," destructor: function () {"," (new Y.EventHandle(this._events)).detach();"," delete this._events;"," },",""," // -- Public Methods -------------------------------------------------------",""," /**"," Returns a NodeList containing all offscreen nodes inside the host node that"," match the given CSS selector. An offscreen node is any node that is entirely"," outside the visible (onscreen) region of the host node based on the current"," scroll location.",""," @method getOffscreenNodes"," @param {String} [selector] CSS selector. If omitted, all offscreen nodes"," will be returned."," @param {Number} [margin] Additional margin in pixels beyond the actual"," onscreen region that should be considered \"onscreen\" for the purposes of"," this query. Defaults to the value of the `scrollMargin` attribute."," @return {NodeList} Offscreen nodes matching _selector_."," @see scrollMargin"," **/"," getOffscreenNodes: function (selector, margin) {"," if (typeof margin === 'undefined') {"," margin = this._scrollMargin;"," }",""," var lastScroll = this._lastScroll,"," nodes = this._host.all(selector || '*'),",""," scrollBottom = lastScroll.scrollBottom + margin,"," scrollLeft = lastScroll.scrollLeft - margin,"," scrollRight = lastScroll.scrollRight + margin,"," scrollTop = lastScroll.scrollTop - margin,",""," self = this;",""," return nodes.filter(function (el) {"," var xy = Y.DOM.getXY(el),"," elLeft = xy[0] - self._left,"," elTop = xy[1] - self._top,"," elBottom, elRight;",""," // Check whether the element's top left point is within the"," // viewport. This is the least expensive check."," if (elLeft >= scrollLeft && elLeft < scrollRight &&"," elTop >= scrollTop && elTop < scrollBottom) {",""," return false;"," }",""," // Check whether the element's bottom right point is within the"," // viewport. This check is more expensive since we have to get the"," // element's height and width."," elBottom = elTop + el.offsetHeight;"," elRight = elLeft + el.offsetWidth;",""," if (elRight < scrollRight && elRight >= scrollLeft &&"," elBottom < scrollBottom && elBottom >= scrollTop) {",""," return false;"," }",""," // If we get here, the element isn't within the viewport."," return true;"," });"," },",""," /**"," Returns a NodeList containing all onscreen nodes inside the host node that"," match the given CSS selector. An onscreen node is any node that is fully or"," partially within the visible (onscreen) region of the host node based on the"," current scroll location.",""," @method getOnscreenNodes"," @param {String} [selector] CSS selector. If omitted, all onscreen nodes will"," be returned."," @param {Number} [margin] Additional margin in pixels beyond the actual"," onscreen region that should be considered \"onscreen\" for the purposes of"," this query. Defaults to the value of the `scrollMargin` attribute."," @return {NodeList} Onscreen nodes matching _selector_."," @see scrollMargin"," **/"," getOnscreenNodes: function (selector, margin) {"," if (typeof margin === 'undefined') {"," margin = this._scrollMargin;"," }",""," var lastScroll = this._lastScroll,"," nodes = this._host.all(selector || '*'),",""," scrollBottom = lastScroll.scrollBottom + margin,"," scrollLeft = lastScroll.scrollLeft - margin,"," scrollRight = lastScroll.scrollRight + margin,"," scrollTop = lastScroll.scrollTop - margin,",""," self = this;",""," return nodes.filter(function (el) {"," var xy = Y.DOM.getXY(el),"," elLeft = xy[0] - self._left,"," elTop = xy[1] - self._top,"," elBottom, elRight;",""," // Check whether the element's top left point is within the"," // viewport. This is the least expensive check."," if (elLeft >= scrollLeft && elLeft < scrollRight &&"," elTop >= scrollTop && elTop < scrollBottom) {",""," return true;"," }",""," // Check whether the element's bottom right point is within the"," // viewport. This check is more expensive since we have to get the"," // element's height and width."," elBottom = elTop + el.offsetHeight;"," elRight = elLeft + el.offsetWidth;",""," if (elRight < scrollRight && elRight >= scrollLeft &&"," elBottom < scrollBottom && elBottom >= scrollTop) {",""," return true;"," }",""," // If we get here, the element isn't within the viewport."," return false;"," });"," },",""," /**"," Returns an object hash containing information about the current scroll"," position of the host node. This is the same information that's mixed into"," the event facade of the `scroll` event and other scroll-related events.",""," @method getScrollInfo"," @return {Object} Object hash containing information about the current scroll"," position. See the `scroll` event for details on what properties this"," object contains."," @see scroll"," **/"," getScrollInfo: function () {"," var domNode = this._scrollNode,"," lastScroll = this._lastScroll,"," margin = this._scrollMargin,",""," scrollLeft = domNode.scrollLeft,"," scrollHeight = domNode.scrollHeight,"," scrollTop = domNode.scrollTop,"," scrollWidth = domNode.scrollWidth,",""," scrollBottom = scrollTop + this._height,"," scrollRight = scrollLeft + this._width;",""," return {"," atBottom: scrollBottom > (scrollHeight - margin),"," atLeft : scrollLeft < margin,"," atRight : scrollRight > (scrollWidth - margin),"," atTop : scrollTop < margin,",""," isScrollDown : lastScroll && scrollTop > lastScroll.scrollTop,"," isScrollLeft : lastScroll && scrollLeft < lastScroll.scrollLeft,"," isScrollRight: lastScroll && scrollLeft > lastScroll.scrollLeft,"," isScrollUp : lastScroll && scrollTop < lastScroll.scrollTop,",""," scrollBottom: scrollBottom,"," scrollHeight: scrollHeight,"," scrollLeft : scrollLeft,"," scrollRight : scrollRight,"," scrollTop : scrollTop,"," scrollWidth : scrollWidth"," };"," },",""," /**"," Refreshes cached position, height, and width dimensions for the host node."," If the host node is the body, then the viewport height and width will be"," used.",""," This info is cached to improve performance during scroll events, since it's"," expensive to touch the DOM for these values. Dimensions are automatically"," refreshed whenever the browser is resized, but if you change the dimensions"," or position of the host node in JS, you may need to call"," `refreshDimensions()` manually to cache the new dimensions.",""," @method refreshDimensions"," **/"," refreshDimensions: function () {"," // WebKit only returns reliable scroll info on the body, and only"," // returns reliable height/width info on the documentElement, so we"," // have to special-case it (see the other special case in"," // _getScrollNode())."," //"," // On iOS devices, documentElement.clientHeight/Width aren't reliable,"," // but window.innerHeight/Width are. And no, dom-screen's viewport size"," // methods don't account for this, which is why we do it here.",""," var hostIsBody = this._hostIsBody,"," iosHack = hostIsBody && Y.UA.ios,"," win = Y.config.win,"," el;",""," if (hostIsBody && Y.UA.webkit) {"," el = Y.config.doc.documentElement;"," } else {"," el = this._scrollNode;"," }",""," this._height = iosHack ? win.innerHeight : el.clientHeight;"," this._left = el.offsetLeft;"," this._top = el.offsetTop;"," this._width = iosHack ? win.innerWidth : el.clientWidth;"," },",""," // -- Protected Methods ----------------------------------------------------",""," /**"," Binds event handlers.",""," @method _bind"," @protected"," **/"," _bind: function () {"," var winNode = Y.one('win');",""," this._events = ["," this.after({"," scrollDelayChange : this._afterScrollDelayChange,"," scrollMarginChange: this._afterScrollMarginChange"," }),",""," winNode.on('windowresize', this._afterResize, this),",""," // If we're attached to the body, listen for the scroll event on the"," // window, since doesn't have a scroll event."," (this._hostIsBody ? winNode : this._host).after("," 'scroll', this._afterScroll, this)"," ];"," },",""," /**"," Returns the DOM node that should be used to lookup scroll coordinates. In"," some browsers, the `` element doesn't return scroll coordinates, and"," the documentElement must be used instead; this method takes care of"," determining which node should be used.",""," @method _getScrollNode"," @return {HTMLElement} DOM node."," @protected"," **/"," _getScrollNode: function () {"," // WebKit returns scroll coordinates on the body element, but other"," // browsers don't, so we have to use the documentElement."," return this._hostIsBody && !Y.UA.webkit ? Y.config.doc.documentElement :"," Y.Node.getDOMNode(this._host);"," },",""," /**"," Mixes detailed scroll information into the given DOM `scroll` event facade"," and fires appropriate local events.",""," @method _triggerScroll"," @param {EventFacade} e Event facade from the DOM `scroll` event."," @protected"," **/"," _triggerScroll: function (e) {"," var info = this.getScrollInfo(),"," facade = Y.merge(e, info),"," lastScroll = this._lastScroll;",""," this._lastScroll = info;",""," this.fire(EVT_SCROLL, facade);",""," if (info.isScrollLeft) {"," this.fire(EVT_SCROLL_LEFT, facade);"," } else if (info.isScrollRight) {"," this.fire(EVT_SCROLL_RIGHT, facade);"," }",""," if (info.isScrollUp) {"," this.fire(EVT_SCROLL_UP, facade);"," } else if (info.isScrollDown) {"," this.fire(EVT_SCROLL_DOWN, facade);"," }",""," if (info.atBottom && (!lastScroll.atBottom ||"," info.scrollHeight > lastScroll.scrollHeight)) {",""," this.fire(EVT_SCROLL_TO_BOTTOM, facade);"," }",""," if (info.atLeft && !lastScroll.atLeft) {"," this.fire(EVT_SCROLL_TO_LEFT, facade);"," }",""," if (info.atRight && (!lastScroll.atRight ||"," info.scrollWidth > lastScroll.scrollWidth)) {",""," this.fire(EVT_SCROLL_TO_RIGHT, facade);"," }",""," if (info.atTop && !lastScroll.atTop) {"," this.fire(EVT_SCROLL_TO_TOP, facade);"," }"," },",""," // -- Protected Event Handlers ---------------------------------------------",""," /**"," Handles browser resize events.",""," @method _afterResize"," @param {EventFacade} e"," @protected"," **/"," _afterResize: function (e) {"," this.refreshDimensions();"," },",""," /**"," Handles DOM `scroll` events.",""," @method _afterScroll"," @param {EventFacade} e"," @protected"," **/"," _afterScroll: function (e) {"," var self = this;",""," clearTimeout(this._scrollTimeout);",""," this._scrollTimeout = setTimeout(function () {"," self._triggerScroll(e);"," }, this._scrollDelay);"," },",""," /**"," Caches the `scrollDelay` value after that attribute changes to allow"," quicker lookups in critical path code.",""," @method _afterScrollDelayChange"," @param {EventFacade} e"," @protected"," **/"," _afterScrollDelayChange: function (e) {"," this._scrollDelay = e.newVal;"," },",""," /**"," Caches the `scrollMargin` value after that attribute changes to allow"," quicker lookups in critical path code.",""," @method _afterScrollMarginChange"," @param {EventFacade} e"," @protected"," **/"," _afterScrollMarginChange: function (e) {"," this._scrollMargin = e.newVal;"," }","}, {"," NS: 'scrollInfo',",""," ATTRS: {"," /**"," Number of milliseconds to wait after a native `scroll` event before"," firing local scroll events. If another native scroll event occurs during"," this time, previous events will be ignored. This ensures that we don't"," fire thousands of events when the user is scrolling quickly.",""," @attribute scrollDelay"," @type Number"," @default 50"," **/"," scrollDelay: {"," value: 50"," },",""," /**"," Additional margin in pixels beyond the onscreen region of the host node"," that should be considered \"onscreen\".",""," For example, if set to 50, then a `scrollToBottom` event would be fired"," when the user scrolls to within 50 pixels of the bottom of the"," scrollable region, even if they don't actually scroll completely to the"," very bottom pixel.",""," This margin also applies to the `getOffscreenNodes()` and"," `getOnscreenNodes()` methods by default.",""," @attribute scrollMargin"," @type Number"," @default 50"," **/"," scrollMargin: {"," value: 50"," }"," }","});","","","}, '3.7.3', {\"requires\": [\"base-build\", \"dom-screen\", \"event-resize\", \"node-pluginhost\", \"plugin\"]});"]; _yuitest_coverage["build/node-scroll-info/node-scroll-info.js"].lines = {"1":0,"69":0,"163":0,"167":0,"168":0,"169":0,"170":0,"171":0,"173":0,"175":0,"177":0,"181":0,"182":0,"203":0,"204":0,"207":0,"217":0,"218":0,"225":0,"228":0,"234":0,"235":0,"237":0,"240":0,"244":0,"264":0,"265":0,"268":0,"278":0,"279":0,"286":0,"289":0,"295":0,"296":0,"298":0,"301":0,"305":0,"321":0,"333":0,"376":0,"381":0,"382":0,"384":0,"387":0,"388":0,"389":0,"390":0,"402":0,"404":0,"432":0,"445":0,"449":0,"451":0,"453":0,"454":0,"455":0,"456":0,"459":0,"460":0,"461":0,"462":0,"465":0,"468":0,"471":0,"472":0,"475":0,"478":0,"481":0,"482":0,"496":0,"507":0,"509":0,"511":0,"512":0,"525":0,"537":0}; _yuitest_coverage["build/node-scroll-info/node-scroll-info.js"].functions = {"initializer:165":0,"destructor:180":0,"(anonymous 2):217":0,"getOffscreenNodes:202":0,"(anonymous 3):278":0,"getOnscreenNodes:263":0,"getScrollInfo:320":0,"refreshDimensions:366":0,"_bind:401":0,"_getScrollNode:429":0,"_triggerScroll:444":0,"_afterResize:495":0,"(anonymous 4):511":0,"_afterScroll:506":0,"_afterScrollDelayChange:524":0,"_afterScrollMarginChange:536":0,"(anonymous 1):1":0}; _yuitest_coverage["build/node-scroll-info/node-scroll-info.js"].coveredLines = 76; @@ -709,4 +709,4 @@ this._scrollMargin = e.newVal; }); -}, '3.7.2', {"requires": ["base-build", "dom-screen", "event-resize", "node-pluginhost", "plugin"]}); +}, '3.7.3', {"requires": ["base-build", "dom-screen", "event-resize", "node-pluginhost", "plugin"]}); diff --git a/lib/yuilib/3.7.2/build/node-scroll-info/node-scroll-info-debug.js b/lib/yuilib/3.7.3/build/node-scroll-info/node-scroll-info-debug.js similarity index 99% rename from lib/yuilib/3.7.2/build/node-scroll-info/node-scroll-info-debug.js rename to lib/yuilib/3.7.3/build/node-scroll-info/node-scroll-info-debug.js index 1d93c04b062..51db919cc64 100644 --- a/lib/yuilib/3.7.2/build/node-scroll-info/node-scroll-info-debug.js +++ b/lib/yuilib/3.7.3/build/node-scroll-info/node-scroll-info-debug.js @@ -1,5 +1,5 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ @@ -583,4 +583,4 @@ Y.Plugin.ScrollInfo = Y.Base.create('scrollInfoPlugin', Y.Plugin.Base, [], { }); -}, '3.7.2', {"requires": ["base-build", "dom-screen", "event-resize", "node-pluginhost", "plugin"]}); +}, '3.7.3', {"requires": ["base-build", "dom-screen", "event-resize", "node-pluginhost", "plugin"]}); diff --git a/lib/yuilib/3.7.2/build/node-scroll-info/node-scroll-info-min.js b/lib/yuilib/3.7.3/build/node-scroll-info/node-scroll-info-min.js similarity index 97% rename from lib/yuilib/3.7.2/build/node-scroll-info/node-scroll-info-min.js rename to lib/yuilib/3.7.3/build/node-scroll-info/node-scroll-info-min.js index 73a29be19f8..104319baf65 100644 --- a/lib/yuilib/3.7.2/build/node-scroll-info/node-scroll-info-min.js +++ b/lib/yuilib/3.7.3/build/node-scroll-info/node-scroll-info-min.js @@ -1,7 +1,7 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ */ -YUI.add("node-scroll-info",function(e,t){var n="scroll",r="scrollDown",i="scrollLeft",s="scrollRight",o="scrollUp",u="scrollToBottom",a="scrollToLeft",f="scrollToRight",l="scrollToTop";e.Plugin.ScrollInfo=e.Base.create("scrollInfoPlugin",e.Plugin.Base,[],{initializer:function(e){this._host=e.host,this._hostIsBody=this._host.get("nodeName").toLowerCase()==="body",this._scrollDelay=this.get("scrollDelay"),this._scrollMargin=this.get("scrollMargin"),this._scrollNode=this._getScrollNode(),this.refreshDimensions(),this._lastScroll=this.getScrollInfo(),this._bind()},destructor:function(){(new e.EventHandle(this._events)).detach(),delete this._events},getOffscreenNodes:function(t,n){typeof n=="undefined"&&(n=this._scrollMargin);var r=this._lastScroll,i=this._host.all(t||"*"),s=r.scrollBottom+n,o=r.scrollLeft-n,u=r.scrollRight+n,a=r.scrollTop-n,f=this;return i.filter(function(t){var n=e.DOM.getXY(t),r=n[0]-f._left,i=n[1]-f._top,l,c;return r>=o&&r=a&&i=o&&l=a?!1:!0)})},getOnscreenNodes:function(t,n){typeof n=="undefined"&&(n=this._scrollMargin);var r=this._lastScroll,i=this._host.all(t||"*"),s=r.scrollBottom+n,o=r.scrollLeft-n,u=r.scrollRight+n,a=r.scrollTop-n,f=this;return i.filter(function(t){var n=e.DOM.getXY(t),r=n[0]-f._left,i=n[1]-f._top,l,c;return r>=o&&r=a&&i=o&&l=a?!0:!1)})},getScrollInfo:function(){var e=this._scrollNode,t=this._lastScroll,n=this._scrollMargin,r=e.scrollLeft,i=e.scrollHeight,s=e.scrollTop,o=e.scrollWidth,u=s+this._height,a=r+this._width;return{atBottom:u>i-n,atLeft:ro-n,atTop:st.scrollTop,isScrollLeft:t&&rt.scrollLeft,isScrollUp:t&&sp.scrollHeight)&&this.fire(u,h),c.atLeft&&!p.atLeft&&this.fire(a,h),c.atRight&&(!p.atRight||c.scrollWidth>p.scrollWidth)&&this.fire(f,h),c.atTop&&!p.atTop&&this.fire(l,h)},_afterResize:function(e){this.refreshDimensions()},_afterScroll:function(e){var t=this;clearTimeout(this._scrollTimeout),this._scrollTimeout=setTimeout(function(){t._triggerScroll(e)},this._scrollDelay)},_afterScrollDelayChange:function(e){this._scrollDelay=e.newVal},_afterScrollMarginChange:function(e){this._scrollMargin=e.newVal}},{NS:"scrollInfo",ATTRS:{scrollDelay:{value:50},scrollMargin:{value:50}}})},"3.7.2",{requires:["base-build","dom-screen","event-resize","node-pluginhost","plugin"]}); +YUI.add("node-scroll-info",function(e,t){var n="scroll",r="scrollDown",i="scrollLeft",s="scrollRight",o="scrollUp",u="scrollToBottom",a="scrollToLeft",f="scrollToRight",l="scrollToTop";e.Plugin.ScrollInfo=e.Base.create("scrollInfoPlugin",e.Plugin.Base,[],{initializer:function(e){this._host=e.host,this._hostIsBody=this._host.get("nodeName").toLowerCase()==="body",this._scrollDelay=this.get("scrollDelay"),this._scrollMargin=this.get("scrollMargin"),this._scrollNode=this._getScrollNode(),this.refreshDimensions(),this._lastScroll=this.getScrollInfo(),this._bind()},destructor:function(){(new e.EventHandle(this._events)).detach(),delete this._events},getOffscreenNodes:function(t,n){typeof n=="undefined"&&(n=this._scrollMargin);var r=this._lastScroll,i=this._host.all(t||"*"),s=r.scrollBottom+n,o=r.scrollLeft-n,u=r.scrollRight+n,a=r.scrollTop-n,f=this;return i.filter(function(t){var n=e.DOM.getXY(t),r=n[0]-f._left,i=n[1]-f._top,l,c;return r>=o&&r=a&&i=o&&l=a?!1:!0)})},getOnscreenNodes:function(t,n){typeof n=="undefined"&&(n=this._scrollMargin);var r=this._lastScroll,i=this._host.all(t||"*"),s=r.scrollBottom+n,o=r.scrollLeft-n,u=r.scrollRight+n,a=r.scrollTop-n,f=this;return i.filter(function(t){var n=e.DOM.getXY(t),r=n[0]-f._left,i=n[1]-f._top,l,c;return r>=o&&r=a&&i=o&&l=a?!0:!1)})},getScrollInfo:function(){var e=this._scrollNode,t=this._lastScroll,n=this._scrollMargin,r=e.scrollLeft,i=e.scrollHeight,s=e.scrollTop,o=e.scrollWidth,u=s+this._height,a=r+this._width;return{atBottom:u>i-n,atLeft:ro-n,atTop:st.scrollTop,isScrollLeft:t&&rt.scrollLeft,isScrollUp:t&&sp.scrollHeight)&&this.fire(u,h),c.atLeft&&!p.atLeft&&this.fire(a,h),c.atRight&&(!p.atRight||c.scrollWidth>p.scrollWidth)&&this.fire(f,h),c.atTop&&!p.atTop&&this.fire(l,h)},_afterResize:function(e){this.refreshDimensions()},_afterScroll:function(e){var t=this;clearTimeout(this._scrollTimeout),this._scrollTimeout=setTimeout(function(){t._triggerScroll(e)},this._scrollDelay)},_afterScrollDelayChange:function(e){this._scrollDelay=e.newVal},_afterScrollMarginChange:function(e){this._scrollMargin=e.newVal}},{NS:"scrollInfo",ATTRS:{scrollDelay:{value:50},scrollMargin:{value:50}}})},"3.7.3",{requires:["base-build","dom-screen","event-resize","node-pluginhost","plugin"]}); diff --git a/lib/yuilib/3.7.2/build/node-scroll-info/node-scroll-info.js b/lib/yuilib/3.7.3/build/node-scroll-info/node-scroll-info.js similarity index 99% rename from lib/yuilib/3.7.2/build/node-scroll-info/node-scroll-info.js rename to lib/yuilib/3.7.3/build/node-scroll-info/node-scroll-info.js index 1d93c04b062..51db919cc64 100644 --- a/lib/yuilib/3.7.2/build/node-scroll-info/node-scroll-info.js +++ b/lib/yuilib/3.7.3/build/node-scroll-info/node-scroll-info.js @@ -1,5 +1,5 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ @@ -583,4 +583,4 @@ Y.Plugin.ScrollInfo = Y.Base.create('scrollInfoPlugin', Y.Plugin.Base, [], { }); -}, '3.7.2', {"requires": ["base-build", "dom-screen", "event-resize", "node-pluginhost", "plugin"]}); +}, '3.7.3', {"requires": ["base-build", "dom-screen", "event-resize", "node-pluginhost", "plugin"]}); diff --git a/lib/yuilib/3.7.2/build/node-style/node-style-coverage.js b/lib/yuilib/3.7.3/build/node-style/node-style-coverage.js similarity index 98% rename from lib/yuilib/3.7.2/build/node-style/node-style-coverage.js rename to lib/yuilib/3.7.3/build/node-style/node-style-coverage.js index 4575c319ee6..6eec6c956e2 100644 --- a/lib/yuilib/3.7.2/build/node-style/node-style-coverage.js +++ b/lib/yuilib/3.7.3/build/node-style/node-style-coverage.js @@ -1,5 +1,5 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ @@ -32,7 +32,7 @@ _yuitest_coverage["build/node-style/node-style.js"] = { path: "build/node-style/node-style.js", code: [] }; -_yuitest_coverage["build/node-style/node-style.js"].code=["YUI.add('node-style', function (Y, NAME) {","","(function(Y) {","/**"," * Extended Node interface for managing node styles."," * @module node"," * @submodule node-style"," */","","Y.mix(Y.Node.prototype, {"," /**"," * Sets a style property of the node."," * Use camelCase (e.g. 'backgroundColor') for multi-word properties."," * @method setStyle"," * @param {String} attr The style attribute to set. "," * @param {String|Number} val The value. "," * @chainable"," */"," setStyle: function(attr, val) {"," Y.DOM.setStyle(this._node, attr, val);"," return this;"," },",""," /**"," * Sets multiple style properties on the node."," * Use camelCase (e.g. 'backgroundColor') for multi-word properties."," * @method setStyles"," * @param {Object} hash An object literal of property:value pairs. "," * @chainable"," */"," setStyles: function(hash) {"," Y.DOM.setStyles(this._node, hash);"," return this;"," },",""," /**"," * Returns the style's current value."," * Use camelCase (e.g. 'backgroundColor') for multi-word properties."," * @method getStyle"," * @for Node"," * @param {String} attr The style attribute to retrieve. "," * @return {String} The current value of the style property for the element."," */",""," getStyle: function(attr) {"," return Y.DOM.getStyle(this._node, attr);"," },",""," /**"," * Returns the computed value for the given style property."," * Use camelCase (e.g. 'backgroundColor') for multi-word properties."," * @method getComputedStyle"," * @param {String} attr The style attribute to retrieve. "," * @return {String} The computed value of the style property for the element."," */"," getComputedStyle: function(attr) {"," return Y.DOM.getComputedStyle(this._node, attr);"," }","});","","/**"," * Returns an array of values for each node."," * Use camelCase (e.g. 'backgroundColor') for multi-word properties."," * @method getStyle"," * @for NodeList"," * @see Node.getStyle"," * @param {String} attr The style attribute to retrieve. "," * @return {Array} The current values of the style property for the element."," */","","/**"," * Returns an array of the computed value for each node."," * Use camelCase (e.g. 'backgroundColor') for multi-word properties."," * @method getComputedStyle"," * @see Node.getComputedStyle"," * @param {String} attr The style attribute to retrieve. "," * @return {Array} The computed values for each node."," */","","/**"," * Sets a style property on each node."," * Use camelCase (e.g. 'backgroundColor') for multi-word properties."," * @method setStyle"," * @see Node.setStyle"," * @param {String} attr The style attribute to set. "," * @param {String|Number} val The value. "," * @chainable"," */","","/**"," * Sets multiple style properties on each node."," * Use camelCase (e.g. 'backgroundColor') for multi-word properties."," * @method setStyles"," * @see Node.setStyles"," * @param {Object} hash An object literal of property:value pairs. "," * @chainable"," */","","// These are broken out to handle undefined return (avoid false positive for","// chainable)","","Y.NodeList.importMethod(Y.Node.prototype, ['getStyle', 'getComputedStyle', 'setStyle', 'setStyles']);","})(Y);","","","}, '3.7.2', {\"requires\": [\"dom-style\", \"node-base\"]});"]; +_yuitest_coverage["build/node-style/node-style.js"].code=["YUI.add('node-style', function (Y, NAME) {","","(function(Y) {","/**"," * Extended Node interface for managing node styles."," * @module node"," * @submodule node-style"," */","","Y.mix(Y.Node.prototype, {"," /**"," * Sets a style property of the node."," * Use camelCase (e.g. 'backgroundColor') for multi-word properties."," * @method setStyle"," * @param {String} attr The style attribute to set. "," * @param {String|Number} val The value. "," * @chainable"," */"," setStyle: function(attr, val) {"," Y.DOM.setStyle(this._node, attr, val);"," return this;"," },",""," /**"," * Sets multiple style properties on the node."," * Use camelCase (e.g. 'backgroundColor') for multi-word properties."," * @method setStyles"," * @param {Object} hash An object literal of property:value pairs. "," * @chainable"," */"," setStyles: function(hash) {"," Y.DOM.setStyles(this._node, hash);"," return this;"," },",""," /**"," * Returns the style's current value."," * Use camelCase (e.g. 'backgroundColor') for multi-word properties."," * @method getStyle"," * @for Node"," * @param {String} attr The style attribute to retrieve. "," * @return {String} The current value of the style property for the element."," */",""," getStyle: function(attr) {"," return Y.DOM.getStyle(this._node, attr);"," },",""," /**"," * Returns the computed value for the given style property."," * Use camelCase (e.g. 'backgroundColor') for multi-word properties."," * @method getComputedStyle"," * @param {String} attr The style attribute to retrieve. "," * @return {String} The computed value of the style property for the element."," */"," getComputedStyle: function(attr) {"," return Y.DOM.getComputedStyle(this._node, attr);"," }","});","","/**"," * Returns an array of values for each node."," * Use camelCase (e.g. 'backgroundColor') for multi-word properties."," * @method getStyle"," * @for NodeList"," * @see Node.getStyle"," * @param {String} attr The style attribute to retrieve. "," * @return {Array} The current values of the style property for the element."," */","","/**"," * Returns an array of the computed value for each node."," * Use camelCase (e.g. 'backgroundColor') for multi-word properties."," * @method getComputedStyle"," * @see Node.getComputedStyle"," * @param {String} attr The style attribute to retrieve. "," * @return {Array} The computed values for each node."," */","","/**"," * Sets a style property on each node."," * Use camelCase (e.g. 'backgroundColor') for multi-word properties."," * @method setStyle"," * @see Node.setStyle"," * @param {String} attr The style attribute to set. "," * @param {String|Number} val The value. "," * @chainable"," */","","/**"," * Sets multiple style properties on each node."," * Use camelCase (e.g. 'backgroundColor') for multi-word properties."," * @method setStyles"," * @see Node.setStyles"," * @param {Object} hash An object literal of property:value pairs. "," * @chainable"," */","","// These are broken out to handle undefined return (avoid false positive for","// chainable)","","Y.NodeList.importMethod(Y.Node.prototype, ['getStyle', 'getComputedStyle', 'setStyle', 'setStyles']);","})(Y);","","","}, '3.7.3', {\"requires\": [\"dom-style\", \"node-base\"]});"]; _yuitest_coverage["build/node-style/node-style.js"].lines = {"1":0,"3":0,"10":0,"20":0,"21":0,"32":0,"33":0,"46":0,"57":0,"102":0}; _yuitest_coverage["build/node-style/node-style.js"].functions = {"setStyle:19":0,"setStyles:31":0,"getStyle:45":0,"getComputedStyle:56":0,"(anonymous 2):3":0,"(anonymous 1):1":0}; _yuitest_coverage["build/node-style/node-style.js"].coveredLines = 10; @@ -158,4 +158,4 @@ Y.NodeList.importMethod(Y.Node.prototype, ['getStyle', 'getComputedStyle', 'setS })(Y); -}, '3.7.2', {"requires": ["dom-style", "node-base"]}); +}, '3.7.3', {"requires": ["dom-style", "node-base"]}); diff --git a/lib/yuilib/3.7.2/build/node-style/node-style-debug.js b/lib/yuilib/3.7.3/build/node-style/node-style-debug.js similarity index 97% rename from lib/yuilib/3.7.2/build/node-style/node-style-debug.js rename to lib/yuilib/3.7.3/build/node-style/node-style-debug.js index d3f91297d37..81ace44d2af 100644 --- a/lib/yuilib/3.7.2/build/node-style/node-style-debug.js +++ b/lib/yuilib/3.7.3/build/node-style/node-style-debug.js @@ -1,5 +1,5 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ @@ -109,4 +109,4 @@ Y.NodeList.importMethod(Y.Node.prototype, ['getStyle', 'getComputedStyle', 'setS })(Y); -}, '3.7.2', {"requires": ["dom-style", "node-base"]}); +}, '3.7.3', {"requires": ["dom-style", "node-base"]}); diff --git a/lib/yuilib/3.7.2/build/node-style/node-style-min.js b/lib/yuilib/3.7.3/build/node-style/node-style-min.js similarity index 86% rename from lib/yuilib/3.7.2/build/node-style/node-style-min.js rename to lib/yuilib/3.7.3/build/node-style/node-style-min.js index db60139eea2..90e6e06bbe8 100644 --- a/lib/yuilib/3.7.2/build/node-style/node-style-min.js +++ b/lib/yuilib/3.7.3/build/node-style/node-style-min.js @@ -1,7 +1,7 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ */ -YUI.add("node-style",function(e,t){(function(e){e.mix(e.Node.prototype,{setStyle:function(t,n){return e.DOM.setStyle(this._node,t,n),this},setStyles:function(t){return e.DOM.setStyles(this._node,t),this},getStyle:function(t){return e.DOM.getStyle(this._node,t)},getComputedStyle:function(t){return e.DOM.getComputedStyle(this._node,t)}}),e.NodeList.importMethod(e.Node.prototype,["getStyle","getComputedStyle","setStyle","setStyles"])})(e)},"3.7.2",{requires:["dom-style","node-base"]}); +YUI.add("node-style",function(e,t){(function(e){e.mix(e.Node.prototype,{setStyle:function(t,n){return e.DOM.setStyle(this._node,t,n),this},setStyles:function(t){return e.DOM.setStyles(this._node,t),this},getStyle:function(t){return e.DOM.getStyle(this._node,t)},getComputedStyle:function(t){return e.DOM.getComputedStyle(this._node,t)}}),e.NodeList.importMethod(e.Node.prototype,["getStyle","getComputedStyle","setStyle","setStyles"])})(e)},"3.7.3",{requires:["dom-style","node-base"]}); diff --git a/lib/yuilib/3.7.2/build/node-style/node-style.js b/lib/yuilib/3.7.3/build/node-style/node-style.js similarity index 97% rename from lib/yuilib/3.7.2/build/node-style/node-style.js rename to lib/yuilib/3.7.3/build/node-style/node-style.js index d3f91297d37..81ace44d2af 100644 --- a/lib/yuilib/3.7.2/build/node-style/node-style.js +++ b/lib/yuilib/3.7.3/build/node-style/node-style.js @@ -1,5 +1,5 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ @@ -109,4 +109,4 @@ Y.NodeList.importMethod(Y.Node.prototype, ['getStyle', 'getComputedStyle', 'setS })(Y); -}, '3.7.2', {"requires": ["dom-style", "node-base"]}); +}, '3.7.3', {"requires": ["dom-style", "node-base"]}); diff --git a/lib/yuilib/3.7.2/build/oop/oop-coverage.js b/lib/yuilib/3.7.3/build/oop/oop-coverage.js similarity index 99% rename from lib/yuilib/3.7.2/build/oop/oop-coverage.js rename to lib/yuilib/3.7.3/build/oop/oop-coverage.js index d13d4b7bd0f..b5767fe3986 100644 --- a/lib/yuilib/3.7.2/build/oop/oop-coverage.js +++ b/lib/yuilib/3.7.3/build/oop/oop-coverage.js @@ -1,5 +1,5 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ @@ -32,7 +32,7 @@ _yuitest_coverage["build/oop/oop.js"] = { path: "build/oop/oop.js", code: [] }; -_yuitest_coverage["build/oop/oop.js"].code=["YUI.add('oop', function (Y, NAME) {","","/**","Adds object inheritance and manipulation utilities to the YUI instance. This","module is required by most YUI components.","","@module oop","**/","","var L = Y.Lang,"," A = Y.Array,"," OP = Object.prototype,"," CLONE_MARKER = '_~yuim~_',",""," hasOwn = OP.hasOwnProperty,"," toString = OP.toString;","","function dispatch(o, f, c, proto, action) {"," if (o && o[action] && o !== Y) {"," return o[action].call(o, f, c);"," } else {"," switch (A.test(o)) {"," case 1:"," return A[action](o, f, c);"," case 2:"," return A[action](Y.Array(o, 0, true), f, c);"," default:"," return Y.Object[action](o, f, c, proto);"," }"," }","}","","/**","Augments the _receiver_ with prototype properties from the _supplier_. The","receiver may be a constructor function or an object. The supplier must be a","constructor function.","","If the _receiver_ is an object, then the _supplier_ constructor will be called","immediately after _receiver_ is augmented, with _receiver_ as the `this` object.","","If the _receiver_ is a constructor function, then all prototype methods of","_supplier_ that are copied to _receiver_ will be sequestered, and the","_supplier_ constructor will not be called immediately. The first time any","sequestered method is called on the _receiver_'s prototype, all sequestered","methods will be immediately copied to the _receiver_'s prototype, the","_supplier_'s constructor will be executed, and finally the newly unsequestered","method that was called will be executed.","","This sequestering logic sounds like a bunch of complicated voodoo, but it makes","it cheap to perform frequent augmentation by ensuring that suppliers'","constructors are only called if a supplied method is actually used. If none of","the supplied methods is ever used, then there's no need to take the performance","hit of calling the _supplier_'s constructor.","","@method augment","@param {Function|Object} receiver Object or function to be augmented.","@param {Function} supplier Function that supplies the prototype properties with"," which to augment the _receiver_.","@param {Boolean} [overwrite=false] If `true`, properties already on the receiver"," will be overwritten if found on the supplier's prototype.","@param {String[]} [whitelist] An array of property names. If specified,"," only the whitelisted prototype properties will be applied to the receiver, and"," all others will be ignored.","@param {Array|any} [args] Argument or array of arguments to pass to the"," supplier's constructor when initializing.","@return {Function} Augmented object.","@for YUI","**/","Y.augment = function (receiver, supplier, overwrite, whitelist, args) {"," var rProto = receiver.prototype,"," sequester = rProto && supplier,"," sProto = supplier.prototype,"," to = rProto || receiver,",""," copy,"," newPrototype,"," replacements,"," sequestered,"," unsequester;",""," args = args ? Y.Array(args) : [];",""," if (sequester) {"," newPrototype = {};"," replacements = {};"," sequestered = {};",""," copy = function (value, key) {"," if (overwrite || !(key in rProto)) {"," if (toString.call(value) === '[object Function]') {"," sequestered[key] = value;",""," newPrototype[key] = replacements[key] = function () {"," return unsequester(this, value, arguments);"," };"," } else {"," newPrototype[key] = value;"," }"," }"," };",""," unsequester = function (instance, fn, fnArgs) {"," // Unsequester all sequestered functions."," for (var key in sequestered) {"," if (hasOwn.call(sequestered, key)"," && instance[key] === replacements[key]) {",""," instance[key] = sequestered[key];"," }"," }",""," // Execute the supplier constructor."," supplier.apply(instance, args);",""," // Finally, execute the original sequestered function."," return fn.apply(instance, fnArgs);"," };",""," if (whitelist) {"," Y.Array.each(whitelist, function (name) {"," if (name in sProto) {"," copy(sProto[name], name);"," }"," });"," } else {"," Y.Object.each(sProto, copy, null, true);"," }"," }",""," Y.mix(to, newPrototype || sProto, overwrite, whitelist);",""," if (!sequester) {"," supplier.apply(to, args);"," }",""," return receiver;","};","","/**"," * Copies object properties from the supplier to the receiver. If the target has"," * the property, and the property is an object, the target object will be"," * augmented with the supplier's value."," *"," * @method aggregate"," * @param {Object} receiver Object to receive the augmentation."," * @param {Object} supplier Object that supplies the properties with which to"," * augment the receiver."," * @param {Boolean} [overwrite=false] If `true`, properties already on the receiver"," * will be overwritten if found on the supplier."," * @param {String[]} [whitelist] Whitelist. If supplied, only properties in this"," * list will be applied to the receiver."," * @return {Object} Augmented object."," */","Y.aggregate = function(r, s, ov, wl) {"," return Y.mix(r, s, ov, wl, 0, true);","};","","/**"," * Utility to set up the prototype, constructor and superclass properties to"," * support an inheritance strategy that can chain constructors and methods."," * Static members will not be inherited."," *"," * @method extend"," * @param {function} r the object to modify."," * @param {function} s the object to inherit."," * @param {object} px prototype properties to add/override."," * @param {object} sx static properties to add/override."," * @return {object} the extended object."," */","Y.extend = function(r, s, px, sx) {"," if (!s || !r) {"," Y.error('extend failed, verify dependencies');"," }",""," var sp = s.prototype, rp = Y.Object(sp);"," r.prototype = rp;",""," rp.constructor = r;"," r.superclass = sp;",""," // assign constructor property"," if (s != Object && sp.constructor == OP.constructor) {"," sp.constructor = s;"," }",""," // add prototype overrides"," if (px) {"," Y.mix(rp, px, true);"," }",""," // add object overrides"," if (sx) {"," Y.mix(r, sx, true);"," }",""," return r;","};","","/**"," * Executes the supplied function for each item in"," * a collection. Supports arrays, objects, and"," * NodeLists"," * @method each"," * @param {object} o the object to iterate."," * @param {function} f the function to execute. This function"," * receives the value, key, and object as parameters."," * @param {object} c the execution context for the function."," * @param {boolean} proto if true, prototype properties are"," * iterated on objects."," * @return {YUI} the YUI instance."," */","Y.each = function(o, f, c, proto) {"," return dispatch(o, f, c, proto, 'each');","};","","/**"," * Executes the supplied function for each item in"," * a collection. The operation stops if the function"," * returns true. Supports arrays, objects, and"," * NodeLists."," * @method some"," * @param {object} o the object to iterate."," * @param {function} f the function to execute. This function"," * receives the value, key, and object as parameters."," * @param {object} c the execution context for the function."," * @param {boolean} proto if true, prototype properties are"," * iterated on objects."," * @return {boolean} true if the function ever returns true,"," * false otherwise."," */","Y.some = function(o, f, c, proto) {"," return dispatch(o, f, c, proto, 'some');","};","","/**"," * Deep object/array copy. Function clones are actually"," * wrappers around the original function."," * Array-like objects are treated as arrays."," * Primitives are returned untouched. Optionally, a"," * function can be provided to handle other data types,"," * filter keys, validate values, etc."," *"," * NOTE: Cloning a non-trivial object is a reasonably heavy operation, due to"," * the need to recurrsively iterate down non-primitive properties. Clone"," * should be used only when a deep clone down to leaf level properties"," * is explicitly required."," *"," * In many cases (for example, when trying to isolate objects used as "," * hashes for configuration properties), a shallow copy, using Y.merge is "," * normally sufficient. If more than one level of isolation is required, "," * Y.merge can be used selectively at each level which needs to be "," * isolated from the original without going all the way to leaf properties."," *"," * @method clone"," * @param {object} o what to clone."," * @param {boolean} safe if true, objects will not have prototype"," * items from the source. If false, they will. In this case, the"," * original is initially protected, but the clone is not completely"," * immune from changes to the source object prototype. Also, cloned"," * prototype items that are deleted from the clone will result"," * in the value of the source prototype being exposed. If operating"," * on a non-safe clone, items should be nulled out rather than deleted."," * @param {function} f optional function to apply to each item in a"," * collection; it will be executed prior to applying the value to"," * the new object. Return false to prevent the copy."," * @param {object} c optional execution context for f."," * @param {object} owner Owner object passed when clone is iterating"," * an object. Used to set up context for cloned functions."," * @param {object} cloned hash of previously cloned objects to avoid"," * multiple clones."," * @return {Array|Object} the cloned object."," */","Y.clone = function(o, safe, f, c, owner, cloned) {",""," if (!L.isObject(o)) {"," return o;"," }",""," // @todo cloning YUI instances doesn't currently work"," if (Y.instanceOf(o, YUI)) {"," return o;"," }",""," var o2, marked = cloned || {}, stamp,"," yeach = Y.each;",""," switch (L.type(o)) {"," case 'date':"," return new Date(o);"," case 'regexp':"," // if we do this we need to set the flags too"," // return new RegExp(o.source);"," return o;"," case 'function':"," // o2 = Y.bind(o, owner);"," // break;"," return o;"," case 'array':"," o2 = [];"," break;"," default:",""," // #2528250 only one clone of a given object should be created."," if (o[CLONE_MARKER]) {"," return marked[o[CLONE_MARKER]];"," }",""," stamp = Y.guid();",""," o2 = (safe) ? {} : Y.Object(o);",""," o[CLONE_MARKER] = stamp;"," marked[stamp] = o;"," }",""," // #2528250 don't try to clone element properties"," if (!o.addEventListener && !o.attachEvent) {"," yeach(o, function(v, k) {","if ((k || k === 0) && (!f || (f.call(c || this, v, k, this, o) !== false))) {"," if (k !== CLONE_MARKER) {"," if (k == 'prototype') {"," // skip the prototype"," // } else if (o[k] === o) {"," // this[k] = this;"," } else {"," this[k] ="," Y.clone(v, safe, f, c, owner || o, marked);"," }"," }"," }"," }, o2);"," }",""," if (!cloned) {"," Y.Object.each(marked, function(v, k) {"," if (v[CLONE_MARKER]) {"," try {"," delete v[CLONE_MARKER];"," } catch (e) {"," v[CLONE_MARKER] = null;"," }"," }"," }, this);"," marked = null;"," }",""," return o2;","};","","","/**"," * Returns a function that will execute the supplied function in the"," * supplied object's context, optionally adding any additional"," * supplied parameters to the beginning of the arguments collection the"," * supplied to the function."," *"," * @method bind"," * @param {Function|String} f the function to bind, or a function name"," * to execute on the context object."," * @param {object} c the execution context."," * @param {any} args* 0..n arguments to include before the arguments the"," * function is executed with."," * @return {function} the wrapped function."," */","Y.bind = function(f, c) {"," var xargs = arguments.length > 2 ?"," Y.Array(arguments, 2, true) : null;"," return function() {"," var fn = L.isString(f) ? c[f] : f,"," args = (xargs) ?"," xargs.concat(Y.Array(arguments, 0, true)) : arguments;"," return fn.apply(c || fn, args);"," };","};","","/**"," * Returns a function that will execute the supplied function in the"," * supplied object's context, optionally adding any additional"," * supplied parameters to the end of the arguments the function"," * is executed with."," *"," * @method rbind"," * @param {Function|String} f the function to bind, or a function name"," * to execute on the context object."," * @param {object} c the execution context."," * @param {any} args* 0..n arguments to append to the end of"," * arguments collection supplied to the function."," * @return {function} the wrapped function."," */","Y.rbind = function(f, c) {"," var xargs = arguments.length > 2 ? Y.Array(arguments, 2, true) : null;"," return function() {"," var fn = L.isString(f) ? c[f] : f,"," args = (xargs) ?"," Y.Array(arguments, 0, true).concat(xargs) : arguments;"," return fn.apply(c || fn, args);"," };","};","","","}, '3.7.2', {\"requires\": [\"yui-base\"]});"]; +_yuitest_coverage["build/oop/oop.js"].code=["YUI.add('oop', function (Y, NAME) {","","/**","Adds object inheritance and manipulation utilities to the YUI instance. This","module is required by most YUI components.","","@module oop","**/","","var L = Y.Lang,"," A = Y.Array,"," OP = Object.prototype,"," CLONE_MARKER = '_~yuim~_',",""," hasOwn = OP.hasOwnProperty,"," toString = OP.toString;","","function dispatch(o, f, c, proto, action) {"," if (o && o[action] && o !== Y) {"," return o[action].call(o, f, c);"," } else {"," switch (A.test(o)) {"," case 1:"," return A[action](o, f, c);"," case 2:"," return A[action](Y.Array(o, 0, true), f, c);"," default:"," return Y.Object[action](o, f, c, proto);"," }"," }","}","","/**","Augments the _receiver_ with prototype properties from the _supplier_. The","receiver may be a constructor function or an object. The supplier must be a","constructor function.","","If the _receiver_ is an object, then the _supplier_ constructor will be called","immediately after _receiver_ is augmented, with _receiver_ as the `this` object.","","If the _receiver_ is a constructor function, then all prototype methods of","_supplier_ that are copied to _receiver_ will be sequestered, and the","_supplier_ constructor will not be called immediately. The first time any","sequestered method is called on the _receiver_'s prototype, all sequestered","methods will be immediately copied to the _receiver_'s prototype, the","_supplier_'s constructor will be executed, and finally the newly unsequestered","method that was called will be executed.","","This sequestering logic sounds like a bunch of complicated voodoo, but it makes","it cheap to perform frequent augmentation by ensuring that suppliers'","constructors are only called if a supplied method is actually used. If none of","the supplied methods is ever used, then there's no need to take the performance","hit of calling the _supplier_'s constructor.","","@method augment","@param {Function|Object} receiver Object or function to be augmented.","@param {Function} supplier Function that supplies the prototype properties with"," which to augment the _receiver_.","@param {Boolean} [overwrite=false] If `true`, properties already on the receiver"," will be overwritten if found on the supplier's prototype.","@param {String[]} [whitelist] An array of property names. If specified,"," only the whitelisted prototype properties will be applied to the receiver, and"," all others will be ignored.","@param {Array|any} [args] Argument or array of arguments to pass to the"," supplier's constructor when initializing.","@return {Function} Augmented object.","@for YUI","**/","Y.augment = function (receiver, supplier, overwrite, whitelist, args) {"," var rProto = receiver.prototype,"," sequester = rProto && supplier,"," sProto = supplier.prototype,"," to = rProto || receiver,",""," copy,"," newPrototype,"," replacements,"," sequestered,"," unsequester;",""," args = args ? Y.Array(args) : [];",""," if (sequester) {"," newPrototype = {};"," replacements = {};"," sequestered = {};",""," copy = function (value, key) {"," if (overwrite || !(key in rProto)) {"," if (toString.call(value) === '[object Function]') {"," sequestered[key] = value;",""," newPrototype[key] = replacements[key] = function () {"," return unsequester(this, value, arguments);"," };"," } else {"," newPrototype[key] = value;"," }"," }"," };",""," unsequester = function (instance, fn, fnArgs) {"," // Unsequester all sequestered functions."," for (var key in sequestered) {"," if (hasOwn.call(sequestered, key)"," && instance[key] === replacements[key]) {",""," instance[key] = sequestered[key];"," }"," }",""," // Execute the supplier constructor."," supplier.apply(instance, args);",""," // Finally, execute the original sequestered function."," return fn.apply(instance, fnArgs);"," };",""," if (whitelist) {"," Y.Array.each(whitelist, function (name) {"," if (name in sProto) {"," copy(sProto[name], name);"," }"," });"," } else {"," Y.Object.each(sProto, copy, null, true);"," }"," }",""," Y.mix(to, newPrototype || sProto, overwrite, whitelist);",""," if (!sequester) {"," supplier.apply(to, args);"," }",""," return receiver;","};","","/**"," * Copies object properties from the supplier to the receiver. If the target has"," * the property, and the property is an object, the target object will be"," * augmented with the supplier's value."," *"," * @method aggregate"," * @param {Object} receiver Object to receive the augmentation."," * @param {Object} supplier Object that supplies the properties with which to"," * augment the receiver."," * @param {Boolean} [overwrite=false] If `true`, properties already on the receiver"," * will be overwritten if found on the supplier."," * @param {String[]} [whitelist] Whitelist. If supplied, only properties in this"," * list will be applied to the receiver."," * @return {Object} Augmented object."," */","Y.aggregate = function(r, s, ov, wl) {"," return Y.mix(r, s, ov, wl, 0, true);","};","","/**"," * Utility to set up the prototype, constructor and superclass properties to"," * support an inheritance strategy that can chain constructors and methods."," * Static members will not be inherited."," *"," * @method extend"," * @param {function} r the object to modify."," * @param {function} s the object to inherit."," * @param {object} px prototype properties to add/override."," * @param {object} sx static properties to add/override."," * @return {object} the extended object."," */","Y.extend = function(r, s, px, sx) {"," if (!s || !r) {"," Y.error('extend failed, verify dependencies');"," }",""," var sp = s.prototype, rp = Y.Object(sp);"," r.prototype = rp;",""," rp.constructor = r;"," r.superclass = sp;",""," // assign constructor property"," if (s != Object && sp.constructor == OP.constructor) {"," sp.constructor = s;"," }",""," // add prototype overrides"," if (px) {"," Y.mix(rp, px, true);"," }",""," // add object overrides"," if (sx) {"," Y.mix(r, sx, true);"," }",""," return r;","};","","/**"," * Executes the supplied function for each item in"," * a collection. Supports arrays, objects, and"," * NodeLists"," * @method each"," * @param {object} o the object to iterate."," * @param {function} f the function to execute. This function"," * receives the value, key, and object as parameters."," * @param {object} c the execution context for the function."," * @param {boolean} proto if true, prototype properties are"," * iterated on objects."," * @return {YUI} the YUI instance."," */","Y.each = function(o, f, c, proto) {"," return dispatch(o, f, c, proto, 'each');","};","","/**"," * Executes the supplied function for each item in"," * a collection. The operation stops if the function"," * returns true. Supports arrays, objects, and"," * NodeLists."," * @method some"," * @param {object} o the object to iterate."," * @param {function} f the function to execute. This function"," * receives the value, key, and object as parameters."," * @param {object} c the execution context for the function."," * @param {boolean} proto if true, prototype properties are"," * iterated on objects."," * @return {boolean} true if the function ever returns true,"," * false otherwise."," */","Y.some = function(o, f, c, proto) {"," return dispatch(o, f, c, proto, 'some');","};","","/**"," * Deep object/array copy. Function clones are actually"," * wrappers around the original function."," * Array-like objects are treated as arrays."," * Primitives are returned untouched. Optionally, a"," * function can be provided to handle other data types,"," * filter keys, validate values, etc."," *"," * NOTE: Cloning a non-trivial object is a reasonably heavy operation, due to"," * the need to recurrsively iterate down non-primitive properties. Clone"," * should be used only when a deep clone down to leaf level properties"," * is explicitly required."," *"," * In many cases (for example, when trying to isolate objects used as "," * hashes for configuration properties), a shallow copy, using Y.merge is "," * normally sufficient. If more than one level of isolation is required, "," * Y.merge can be used selectively at each level which needs to be "," * isolated from the original without going all the way to leaf properties."," *"," * @method clone"," * @param {object} o what to clone."," * @param {boolean} safe if true, objects will not have prototype"," * items from the source. If false, they will. In this case, the"," * original is initially protected, but the clone is not completely"," * immune from changes to the source object prototype. Also, cloned"," * prototype items that are deleted from the clone will result"," * in the value of the source prototype being exposed. If operating"," * on a non-safe clone, items should be nulled out rather than deleted."," * @param {function} f optional function to apply to each item in a"," * collection; it will be executed prior to applying the value to"," * the new object. Return false to prevent the copy."," * @param {object} c optional execution context for f."," * @param {object} owner Owner object passed when clone is iterating"," * an object. Used to set up context for cloned functions."," * @param {object} cloned hash of previously cloned objects to avoid"," * multiple clones."," * @return {Array|Object} the cloned object."," */","Y.clone = function(o, safe, f, c, owner, cloned) {",""," if (!L.isObject(o)) {"," return o;"," }",""," // @todo cloning YUI instances doesn't currently work"," if (Y.instanceOf(o, YUI)) {"," return o;"," }",""," var o2, marked = cloned || {}, stamp,"," yeach = Y.each;",""," switch (L.type(o)) {"," case 'date':"," return new Date(o);"," case 'regexp':"," // if we do this we need to set the flags too"," // return new RegExp(o.source);"," return o;"," case 'function':"," // o2 = Y.bind(o, owner);"," // break;"," return o;"," case 'array':"," o2 = [];"," break;"," default:",""," // #2528250 only one clone of a given object should be created."," if (o[CLONE_MARKER]) {"," return marked[o[CLONE_MARKER]];"," }",""," stamp = Y.guid();",""," o2 = (safe) ? {} : Y.Object(o);",""," o[CLONE_MARKER] = stamp;"," marked[stamp] = o;"," }",""," // #2528250 don't try to clone element properties"," if (!o.addEventListener && !o.attachEvent) {"," yeach(o, function(v, k) {","if ((k || k === 0) && (!f || (f.call(c || this, v, k, this, o) !== false))) {"," if (k !== CLONE_MARKER) {"," if (k == 'prototype') {"," // skip the prototype"," // } else if (o[k] === o) {"," // this[k] = this;"," } else {"," this[k] ="," Y.clone(v, safe, f, c, owner || o, marked);"," }"," }"," }"," }, o2);"," }",""," if (!cloned) {"," Y.Object.each(marked, function(v, k) {"," if (v[CLONE_MARKER]) {"," try {"," delete v[CLONE_MARKER];"," } catch (e) {"," v[CLONE_MARKER] = null;"," }"," }"," }, this);"," marked = null;"," }",""," return o2;","};","","","/**"," * Returns a function that will execute the supplied function in the"," * supplied object's context, optionally adding any additional"," * supplied parameters to the beginning of the arguments collection the"," * supplied to the function."," *"," * @method bind"," * @param {Function|String} f the function to bind, or a function name"," * to execute on the context object."," * @param {object} c the execution context."," * @param {any} args* 0..n arguments to include before the arguments the"," * function is executed with."," * @return {function} the wrapped function."," */","Y.bind = function(f, c) {"," var xargs = arguments.length > 2 ?"," Y.Array(arguments, 2, true) : null;"," return function() {"," var fn = L.isString(f) ? c[f] : f,"," args = (xargs) ?"," xargs.concat(Y.Array(arguments, 0, true)) : arguments;"," return fn.apply(c || fn, args);"," };","};","","/**"," * Returns a function that will execute the supplied function in the"," * supplied object's context, optionally adding any additional"," * supplied parameters to the end of the arguments the function"," * is executed with."," *"," * @method rbind"," * @param {Function|String} f the function to bind, or a function name"," * to execute on the context object."," * @param {object} c the execution context."," * @param {any} args* 0..n arguments to append to the end of"," * arguments collection supplied to the function."," * @return {function} the wrapped function."," */","Y.rbind = function(f, c) {"," var xargs = arguments.length > 2 ? Y.Array(arguments, 2, true) : null;"," return function() {"," var fn = L.isString(f) ? c[f] : f,"," args = (xargs) ?"," Y.Array(arguments, 0, true).concat(xargs) : arguments;"," return fn.apply(c || fn, args);"," };","};","","","}, '3.7.3', {\"requires\": [\"yui-base\"]});"]; _yuitest_coverage["build/oop/oop.js"].lines = {"1":0,"10":0,"18":0,"19":0,"20":0,"22":0,"24":0,"26":0,"28":0,"69":0,"70":0,"81":0,"83":0,"84":0,"85":0,"86":0,"88":0,"89":0,"90":0,"91":0,"93":0,"94":0,"97":0,"102":0,"104":0,"105":0,"108":0,"113":0,"116":0,"119":0,"120":0,"121":0,"122":0,"126":0,"130":0,"132":0,"133":0,"136":0,"154":0,"155":0,"170":0,"171":0,"172":0,"175":0,"176":0,"178":0,"179":0,"182":0,"183":0,"187":0,"188":0,"192":0,"193":0,"196":0,"212":0,"213":0,"231":0,"232":0,"273":0,"275":0,"276":0,"280":0,"281":0,"284":0,"287":0,"289":0,"293":0,"297":0,"299":0,"300":0,"304":0,"305":0,"308":0,"310":0,"312":0,"313":0,"317":0,"318":0,"319":0,"320":0,"321":0,"326":0,"334":0,"335":0,"336":0,"337":0,"338":0,"340":0,"344":0,"347":0,"365":0,"366":0,"368":0,"369":0,"372":0,"390":0,"391":0,"392":0,"393":0,"396":0}; _yuitest_coverage["build/oop/oop.js"].functions = {"dispatch:18":0,"]:93":0,"copy:88":0,"unsequester:102":0,"(anonymous 2):120":0,"augment:69":0,"aggregate:154":0,"extend:170":0,"each:212":0,"some:231":0,"(anonymous 3):318":0,"(anonymous 4):335":0,"clone:273":0,"(anonymous 5):368":0,"bind:365":0,"(anonymous 6):392":0,"rbind:390":0,"(anonymous 1):1":0}; _yuitest_coverage["build/oop/oop.js"].coveredLines = 100; @@ -555,4 +555,4 @@ return fn.apply(c || fn, args); }; -}, '3.7.2', {"requires": ["yui-base"]}); +}, '3.7.3', {"requires": ["yui-base"]}); diff --git a/lib/yuilib/3.7.2/build/oop/oop-debug.js b/lib/yuilib/3.7.3/build/oop/oop-debug.js similarity index 99% rename from lib/yuilib/3.7.2/build/oop/oop-debug.js rename to lib/yuilib/3.7.3/build/oop/oop-debug.js index b58cbe3b4bb..218c0270e17 100644 --- a/lib/yuilib/3.7.2/build/oop/oop-debug.js +++ b/lib/yuilib/3.7.3/build/oop/oop-debug.js @@ -1,5 +1,5 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ @@ -404,4 +404,4 @@ Y.rbind = function(f, c) { }; -}, '3.7.2', {"requires": ["yui-base"]}); +}, '3.7.3', {"requires": ["yui-base"]}); diff --git a/lib/yuilib/3.7.2/build/oop/oop-min.js b/lib/yuilib/3.7.3/build/oop/oop-min.js similarity index 96% rename from lib/yuilib/3.7.2/build/oop/oop-min.js rename to lib/yuilib/3.7.3/build/oop/oop-min.js index a4f00c80002..af3be061bde 100644 --- a/lib/yuilib/3.7.2/build/oop/oop-min.js +++ b/lib/yuilib/3.7.3/build/oop/oop-min.js @@ -1,7 +1,7 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ */ -YUI.add("oop",function(e,t){function a(t,n,i,s,o){if(t&&t[o]&&t!==e)return t[o].call(t,n,i);switch(r.test(t)){case 1:return r[o](t,n,i);case 2:return r[o](e.Array(t,0,!0),n,i);default:return e.Object[o](t,n,i,s)}}var n=e.Lang,r=e.Array,i=Object.prototype,s="_~yuim~_",o=i.hasOwnProperty,u=i.toString;e.augment=function(t,n,r,i,s){var a=t.prototype,f=a&&n,l=n.prototype,c=a||t,h,p,d,v,m;return s=s?e.Array(s):[],f&&(p={},d={},v={},h=function(e,t){if(r||!(t in a))u.call(e)==="[object Function]"?(v[t]=e,p[t]=d[t]=function(){return m(this,e,arguments)}):p[t]=e},m=function(e,t,r){for(var i in v)o.call(v,i)&&e[i]===d[i]&&(e[i]=v[i]);return n.apply(e,s),t.apply(e,r)},i?e.Array.each(i,function(e){e in l&&h(l[e],e)}):e.Object.each(l,h,null,!0)),e.mix(c,p||l,r,i),f||n.apply(c,s),t},e.aggregate=function(t,n,r,i){return e.mix(t,n,r,i,0,!0)},e.extend=function(t,n,r,s){(!n||!t)&&e.error("extend failed, verify dependencies");var o=n.prototype,u=e.Object(o);return t.prototype=u,u.constructor=t,t.superclass=o,n!=Object&&o.constructor==i.constructor&&(o.constructor=n),r&&e.mix(u,r,!0),s&&e.mix(t,s,!0),t},e.each=function(e,t,n,r){return a(e,t,n,r,"each")},e.some=function(e,t,n,r){return a(e,t,n,r,"some")},e.clone=function(t,r,i,o,u,a){if(!n.isObject(t))return t;if(e.instanceOf(t,YUI))return t;var f,l=a||{},c,h=e.each;switch(n.type(t)){case"date":return new Date(t);case"regexp":return t;case"function":return t;case"array":f=[];break;default:if(t[s])return l[t[s]];c=e.guid(),f=r?{}:e.Object(t),t[s]=c,l[c]=t}return!t.addEventListener&&!t.attachEvent&&h(t,function(n,a){(a||a===0)&&(!i||i.call(o||this,n,a,this,t)!==!1)&&a!==s&&a!="prototype"&&(this[a]=e.clone(n,r,i,o,u||t,l))},f),a||(e.Object.each(l,function(e,t){if(e[s])try{delete e[s]}catch(n){e[s]=null}},this),l=null),f},e.bind=function(t,r){var i=arguments.length>2?e.Array(arguments,2,!0):null;return function(){var s=n.isString(t)?r[t]:t,o=i?i.concat(e.Array(arguments,0,!0)):arguments;return s.apply(r||s,o)}},e.rbind=function(t,r){var i=arguments.length>2?e.Array(arguments,2,!0):null;return function(){var s=n.isString(t)?r[t]:t,o=i?e.Array(arguments,0,!0).concat(i):arguments;return s.apply(r||s,o)}}},"3.7.2",{requires:["yui-base"]}); +YUI.add("oop",function(e,t){function a(t,n,i,s,o){if(t&&t[o]&&t!==e)return t[o].call(t,n,i);switch(r.test(t)){case 1:return r[o](t,n,i);case 2:return r[o](e.Array(t,0,!0),n,i);default:return e.Object[o](t,n,i,s)}}var n=e.Lang,r=e.Array,i=Object.prototype,s="_~yuim~_",o=i.hasOwnProperty,u=i.toString;e.augment=function(t,n,r,i,s){var a=t.prototype,f=a&&n,l=n.prototype,c=a||t,h,p,d,v,m;return s=s?e.Array(s):[],f&&(p={},d={},v={},h=function(e,t){if(r||!(t in a))u.call(e)==="[object Function]"?(v[t]=e,p[t]=d[t]=function(){return m(this,e,arguments)}):p[t]=e},m=function(e,t,r){for(var i in v)o.call(v,i)&&e[i]===d[i]&&(e[i]=v[i]);return n.apply(e,s),t.apply(e,r)},i?e.Array.each(i,function(e){e in l&&h(l[e],e)}):e.Object.each(l,h,null,!0)),e.mix(c,p||l,r,i),f||n.apply(c,s),t},e.aggregate=function(t,n,r,i){return e.mix(t,n,r,i,0,!0)},e.extend=function(t,n,r,s){(!n||!t)&&e.error("extend failed, verify dependencies");var o=n.prototype,u=e.Object(o);return t.prototype=u,u.constructor=t,t.superclass=o,n!=Object&&o.constructor==i.constructor&&(o.constructor=n),r&&e.mix(u,r,!0),s&&e.mix(t,s,!0),t},e.each=function(e,t,n,r){return a(e,t,n,r,"each")},e.some=function(e,t,n,r){return a(e,t,n,r,"some")},e.clone=function(t,r,i,o,u,a){if(!n.isObject(t))return t;if(e.instanceOf(t,YUI))return t;var f,l=a||{},c,h=e.each;switch(n.type(t)){case"date":return new Date(t);case"regexp":return t;case"function":return t;case"array":f=[];break;default:if(t[s])return l[t[s]];c=e.guid(),f=r?{}:e.Object(t),t[s]=c,l[c]=t}return!t.addEventListener&&!t.attachEvent&&h(t,function(n,a){(a||a===0)&&(!i||i.call(o||this,n,a,this,t)!==!1)&&a!==s&&a!="prototype"&&(this[a]=e.clone(n,r,i,o,u||t,l))},f),a||(e.Object.each(l,function(e,t){if(e[s])try{delete e[s]}catch(n){e[s]=null}},this),l=null),f},e.bind=function(t,r){var i=arguments.length>2?e.Array(arguments,2,!0):null;return function(){var s=n.isString(t)?r[t]:t,o=i?i.concat(e.Array(arguments,0,!0)):arguments;return s.apply(r||s,o)}},e.rbind=function(t,r){var i=arguments.length>2?e.Array(arguments,2,!0):null;return function(){var s=n.isString(t)?r[t]:t,o=i?e.Array(arguments,0,!0).concat(i):arguments;return s.apply(r||s,o)}}},"3.7.3",{requires:["yui-base"]}); diff --git a/lib/yuilib/3.7.2/build/oop/oop.js b/lib/yuilib/3.7.3/build/oop/oop.js similarity index 99% rename from lib/yuilib/3.7.2/build/oop/oop.js rename to lib/yuilib/3.7.3/build/oop/oop.js index b58cbe3b4bb..218c0270e17 100644 --- a/lib/yuilib/3.7.2/build/oop/oop.js +++ b/lib/yuilib/3.7.3/build/oop/oop.js @@ -1,5 +1,5 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ @@ -404,4 +404,4 @@ Y.rbind = function(f, c) { }; -}, '3.7.2', {"requires": ["yui-base"]}); +}, '3.7.3', {"requires": ["yui-base"]}); diff --git a/lib/yuilib/3.7.2/build/overlay/assets/overlay-core.css b/lib/yuilib/3.7.3/build/overlay/assets/overlay-core.css similarity index 92% rename from lib/yuilib/3.7.2/build/overlay/assets/overlay-core.css rename to lib/yuilib/3.7.3/build/overlay/assets/overlay-core.css index 2c0978be3ba..fd0e1164b20 100644 --- a/lib/yuilib/3.7.2/build/overlay/assets/overlay-core.css +++ b/lib/yuilib/3.7.3/build/overlay/assets/overlay-core.css @@ -1,5 +1,5 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ diff --git a/lib/yuilib/3.7.2/build/overlay/assets/skins/night/overlay-skin.css b/lib/yuilib/3.7.3/build/overlay/assets/skins/night/overlay-skin.css similarity index 99% rename from lib/yuilib/3.7.2/build/overlay/assets/skins/night/overlay-skin.css rename to lib/yuilib/3.7.3/build/overlay/assets/skins/night/overlay-skin.css index d467c52763a..fd8052f5e02 100644 --- a/lib/yuilib/3.7.2/build/overlay/assets/skins/night/overlay-skin.css +++ b/lib/yuilib/3.7.3/build/overlay/assets/skins/night/overlay-skin.css @@ -1,5 +1,5 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ diff --git a/lib/yuilib/3.7.2/build/overlay/assets/skins/night/overlay.css b/lib/yuilib/3.7.3/build/overlay/assets/skins/night/overlay.css similarity index 99% rename from lib/yuilib/3.7.2/build/overlay/assets/skins/night/overlay.css rename to lib/yuilib/3.7.3/build/overlay/assets/skins/night/overlay.css index b015710f060..3ea5a89c41d 100644 --- a/lib/yuilib/3.7.2/build/overlay/assets/skins/night/overlay.css +++ b/lib/yuilib/3.7.3/build/overlay/assets/skins/night/overlay.css @@ -1,5 +1,5 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ diff --git a/lib/yuilib/3.7.2/build/overlay/assets/skins/sam/overlay-skin.css b/lib/yuilib/3.7.3/build/overlay/assets/skins/sam/overlay-skin.css similarity index 83% rename from lib/yuilib/3.7.2/build/overlay/assets/skins/sam/overlay-skin.css rename to lib/yuilib/3.7.3/build/overlay/assets/skins/sam/overlay-skin.css index a1b1d94ffa5..ab590e648f8 100644 --- a/lib/yuilib/3.7.2/build/overlay/assets/skins/sam/overlay-skin.css +++ b/lib/yuilib/3.7.3/build/overlay/assets/skins/sam/overlay-skin.css @@ -1,5 +1,5 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ diff --git a/lib/yuilib/3.7.2/build/assets/skins/sam/overlay.css b/lib/yuilib/3.7.3/build/overlay/assets/skins/sam/overlay.css similarity index 93% rename from lib/yuilib/3.7.2/build/assets/skins/sam/overlay.css rename to lib/yuilib/3.7.3/build/overlay/assets/skins/sam/overlay.css index 222ebdeb2a4..925769f7a58 100644 --- a/lib/yuilib/3.7.2/build/assets/skins/sam/overlay.css +++ b/lib/yuilib/3.7.3/build/overlay/assets/skins/sam/overlay.css @@ -1,5 +1,5 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ diff --git a/lib/yuilib/3.7.2/build/overlay/overlay-coverage.js b/lib/yuilib/3.7.3/build/overlay/overlay-coverage.js similarity index 96% rename from lib/yuilib/3.7.2/build/overlay/overlay-coverage.js rename to lib/yuilib/3.7.3/build/overlay/overlay-coverage.js index 11b3eb2a265..55f6118b8cc 100644 --- a/lib/yuilib/3.7.2/build/overlay/overlay-coverage.js +++ b/lib/yuilib/3.7.3/build/overlay/overlay-coverage.js @@ -1,5 +1,5 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ @@ -32,7 +32,7 @@ _yuitest_coverage["build/overlay/overlay.js"] = { path: "build/overlay/overlay.js", code: [] }; -_yuitest_coverage["build/overlay/overlay.js"].code=["YUI.add('overlay', function (Y, NAME) {","","/**"," * Provides a basic Overlay widget, with Standard Module content support. The Overlay widget"," * provides Page XY positioning support, alignment and centering support along with basic "," * stackable support (z-index and shimming)."," *"," * @module overlay"," */","","/**"," * A basic Overlay Widget, which can be positioned based on Page XY co-ordinates and is stackable (z-index support)."," * It also provides alignment and centering support and uses a standard module format for it's content, with header,"," * body and footer section support."," *"," * @class Overlay"," * @constructor"," * @extends Widget"," * @uses WidgetStdMod"," * @uses WidgetPosition"," * @uses WidgetStack"," * @uses WidgetPositionAlign"," * @uses WidgetPositionConstrain"," * @param {Object} object The user configuration for the instance."," */","Y.Overlay = Y.Base.create(\"overlay\", Y.Widget, [Y.WidgetStdMod, Y.WidgetPosition, Y.WidgetStack, Y.WidgetPositionAlign, Y.WidgetPositionConstrain]);","","","}, '3.7.2', {\"requires\": [\"widget\", \"widget-stdmod\", \"widget-position\", \"widget-position-align\", \"widget-stack\", \"widget-position-constrain\"], \"skinnable\": true});"]; +_yuitest_coverage["build/overlay/overlay.js"].code=["YUI.add('overlay', function (Y, NAME) {","","/**"," * Provides a basic Overlay widget, with Standard Module content support. The Overlay widget"," * provides Page XY positioning support, alignment and centering support along with basic "," * stackable support (z-index and shimming)."," *"," * @module overlay"," */","","/**"," * A basic Overlay Widget, which can be positioned based on Page XY co-ordinates and is stackable (z-index support)."," * It also provides alignment and centering support and uses a standard module format for it's content, with header,"," * body and footer section support."," *"," * @class Overlay"," * @constructor"," * @extends Widget"," * @uses WidgetStdMod"," * @uses WidgetPosition"," * @uses WidgetStack"," * @uses WidgetPositionAlign"," * @uses WidgetPositionConstrain"," * @param {Object} object The user configuration for the instance."," */","Y.Overlay = Y.Base.create(\"overlay\", Y.Widget, [Y.WidgetStdMod, Y.WidgetPosition, Y.WidgetStack, Y.WidgetPositionAlign, Y.WidgetPositionConstrain]);","","","}, '3.7.3', {\"requires\": [\"widget\", \"widget-stdmod\", \"widget-position\", \"widget-position-align\", \"widget-stack\", \"widget-position-constrain\"], \"skinnable\": true});"]; _yuitest_coverage["build/overlay/overlay.js"].lines = {"1":0,"26":0}; _yuitest_coverage["build/overlay/overlay.js"].functions = {"(anonymous 1):1":0}; _yuitest_coverage["build/overlay/overlay.js"].coveredLines = 2; @@ -68,4 +68,4 @@ _yuitest_coverline("build/overlay/overlay.js", 26); Y.Overlay = Y.Base.create("overlay", Y.Widget, [Y.WidgetStdMod, Y.WidgetPosition, Y.WidgetStack, Y.WidgetPositionAlign, Y.WidgetPositionConstrain]); -}, '3.7.2', {"requires": ["widget", "widget-stdmod", "widget-position", "widget-position-align", "widget-stack", "widget-position-constrain"], "skinnable": true}); +}, '3.7.3', {"requires": ["widget", "widget-stdmod", "widget-position", "widget-position-align", "widget-stack", "widget-position-constrain"], "skinnable": true}); diff --git a/lib/yuilib/3.7.2/build/overlay/overlay-debug.js b/lib/yuilib/3.7.3/build/overlay/overlay-debug.js similarity index 93% rename from lib/yuilib/3.7.2/build/overlay/overlay-debug.js rename to lib/yuilib/3.7.3/build/overlay/overlay-debug.js index e8fa6795700..99ceee7b31b 100644 --- a/lib/yuilib/3.7.2/build/overlay/overlay-debug.js +++ b/lib/yuilib/3.7.3/build/overlay/overlay-debug.js @@ -1,5 +1,5 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ @@ -32,4 +32,4 @@ YUI.add('overlay', function (Y, NAME) { Y.Overlay = Y.Base.create("overlay", Y.Widget, [Y.WidgetStdMod, Y.WidgetPosition, Y.WidgetStack, Y.WidgetPositionAlign, Y.WidgetPositionConstrain]); -}, '3.7.2', {"requires": ["widget", "widget-stdmod", "widget-position", "widget-position-align", "widget-stack", "widget-position-constrain"], "skinnable": true}); +}, '3.7.3', {"requires": ["widget", "widget-stdmod", "widget-position", "widget-position-align", "widget-stack", "widget-position-constrain"], "skinnable": true}); diff --git a/lib/yuilib/3.7.2/build/overlay/overlay-min.js b/lib/yuilib/3.7.3/build/overlay/overlay-min.js similarity index 81% rename from lib/yuilib/3.7.2/build/overlay/overlay-min.js rename to lib/yuilib/3.7.3/build/overlay/overlay-min.js index f50a14431c0..bbf8c0fbbe0 100644 --- a/lib/yuilib/3.7.2/build/overlay/overlay-min.js +++ b/lib/yuilib/3.7.3/build/overlay/overlay-min.js @@ -1,7 +1,7 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ */ -YUI.add("overlay",function(e,t){e.Overlay=e.Base.create("overlay",e.Widget,[e.WidgetStdMod,e.WidgetPosition,e.WidgetStack,e.WidgetPositionAlign,e.WidgetPositionConstrain])},"3.7.2",{requires:["widget","widget-stdmod","widget-position","widget-position-align","widget-stack","widget-position-constrain"],skinnable:!0}); +YUI.add("overlay",function(e,t){e.Overlay=e.Base.create("overlay",e.Widget,[e.WidgetStdMod,e.WidgetPosition,e.WidgetStack,e.WidgetPositionAlign,e.WidgetPositionConstrain])},"3.7.3",{requires:["widget","widget-stdmod","widget-position","widget-position-align","widget-stack","widget-position-constrain"],skinnable:!0}); diff --git a/lib/yuilib/3.7.2/build/overlay/overlay.js b/lib/yuilib/3.7.3/build/overlay/overlay.js similarity index 93% rename from lib/yuilib/3.7.2/build/overlay/overlay.js rename to lib/yuilib/3.7.3/build/overlay/overlay.js index e8fa6795700..99ceee7b31b 100644 --- a/lib/yuilib/3.7.2/build/overlay/overlay.js +++ b/lib/yuilib/3.7.3/build/overlay/overlay.js @@ -1,5 +1,5 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ @@ -32,4 +32,4 @@ YUI.add('overlay', function (Y, NAME) { Y.Overlay = Y.Base.create("overlay", Y.Widget, [Y.WidgetStdMod, Y.WidgetPosition, Y.WidgetStack, Y.WidgetPositionAlign, Y.WidgetPositionConstrain]); -}, '3.7.2', {"requires": ["widget", "widget-stdmod", "widget-position", "widget-position-align", "widget-stack", "widget-position-constrain"], "skinnable": true}); +}, '3.7.3', {"requires": ["widget", "widget-stdmod", "widget-position", "widget-position-align", "widget-stack", "widget-position-constrain"], "skinnable": true}); diff --git a/lib/yuilib/3.7.2/build/panel/assets/panel-core.css b/lib/yuilib/3.7.3/build/panel/assets/panel-core.css similarity index 96% rename from lib/yuilib/3.7.2/build/panel/assets/panel-core.css rename to lib/yuilib/3.7.3/build/panel/assets/panel-core.css index 76f2da440ef..6670f46c908 100644 --- a/lib/yuilib/3.7.2/build/panel/assets/panel-core.css +++ b/lib/yuilib/3.7.3/build/panel/assets/panel-core.css @@ -1,5 +1,5 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ diff --git a/lib/yuilib/3.7.2/build/panel/assets/skins/night/panel-skin.css b/lib/yuilib/3.7.3/build/panel/assets/skins/night/panel-skin.css similarity index 99% rename from lib/yuilib/3.7.2/build/panel/assets/skins/night/panel-skin.css rename to lib/yuilib/3.7.3/build/panel/assets/skins/night/panel-skin.css index 36bd39f127d..667283574c5 100644 --- a/lib/yuilib/3.7.2/build/panel/assets/skins/night/panel-skin.css +++ b/lib/yuilib/3.7.3/build/panel/assets/skins/night/panel-skin.css @@ -1,5 +1,5 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ diff --git a/lib/yuilib/3.7.2/build/panel/assets/skins/night/panel.css b/lib/yuilib/3.7.3/build/panel/assets/skins/night/panel.css similarity index 99% rename from lib/yuilib/3.7.2/build/panel/assets/skins/night/panel.css rename to lib/yuilib/3.7.3/build/panel/assets/skins/night/panel.css index 7242dd7b604..13a66407093 100644 --- a/lib/yuilib/3.7.2/build/panel/assets/skins/night/panel.css +++ b/lib/yuilib/3.7.3/build/panel/assets/skins/night/panel.css @@ -1,5 +1,5 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ diff --git a/lib/yuilib/3.7.2/build/panel/assets/skins/night/sprite_icons.png b/lib/yuilib/3.7.3/build/panel/assets/skins/night/sprite_icons.png similarity index 100% rename from lib/yuilib/3.7.2/build/panel/assets/skins/night/sprite_icons.png rename to lib/yuilib/3.7.3/build/panel/assets/skins/night/sprite_icons.png diff --git a/lib/yuilib/3.7.2/build/panel/assets/skins/sam/panel-skin.css b/lib/yuilib/3.7.3/build/panel/assets/skins/sam/panel-skin.css similarity index 99% rename from lib/yuilib/3.7.2/build/panel/assets/skins/sam/panel-skin.css rename to lib/yuilib/3.7.3/build/panel/assets/skins/sam/panel-skin.css index 7e0bac03cce..fd445d585a9 100644 --- a/lib/yuilib/3.7.2/build/panel/assets/skins/sam/panel-skin.css +++ b/lib/yuilib/3.7.3/build/panel/assets/skins/sam/panel-skin.css @@ -1,5 +1,5 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ diff --git a/lib/yuilib/3.7.2/build/panel/assets/skins/sam/panel.css b/lib/yuilib/3.7.3/build/panel/assets/skins/sam/panel.css similarity index 98% rename from lib/yuilib/3.7.2/build/panel/assets/skins/sam/panel.css rename to lib/yuilib/3.7.3/build/panel/assets/skins/sam/panel.css index 12168cd90de..270c58294b8 100644 --- a/lib/yuilib/3.7.2/build/panel/assets/skins/sam/panel.css +++ b/lib/yuilib/3.7.3/build/panel/assets/skins/sam/panel.css @@ -1,5 +1,5 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ diff --git a/lib/yuilib/3.7.2/build/panel/assets/skins/sam/sprite_icons.png b/lib/yuilib/3.7.3/build/panel/assets/skins/sam/sprite_icons.png similarity index 100% rename from lib/yuilib/3.7.2/build/panel/assets/skins/sam/sprite_icons.png rename to lib/yuilib/3.7.3/build/panel/assets/skins/sam/sprite_icons.png diff --git a/lib/yuilib/3.7.2/build/panel/panel-coverage.js b/lib/yuilib/3.7.3/build/panel/panel-coverage.js similarity index 97% rename from lib/yuilib/3.7.2/build/panel/panel-coverage.js rename to lib/yuilib/3.7.3/build/panel/panel-coverage.js index cd8c09d3c93..ba877ced2b6 100644 --- a/lib/yuilib/3.7.2/build/panel/panel-coverage.js +++ b/lib/yuilib/3.7.3/build/panel/panel-coverage.js @@ -1,5 +1,5 @@ /* -YUI 3.7.2 (build 5639) +YUI 3.7.3 (build 5687) Copyright 2012 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ @@ -32,7 +32,7 @@ _yuitest_coverage["build/panel/panel.js"] = { path: "build/panel/panel.js", code: [] }; -_yuitest_coverage["build/panel/panel.js"].code=["YUI.add('panel', function (Y, NAME) {","","// TODO: Change this description!","/**","Provides a Panel widget, a widget that mimics the functionality of a regular OS","window. Comes with Standard Module support, XY Positioning, Alignment Support,","Stack (z-index) support, modality, auto-focus and auto-hide functionality, and","header/footer button support.","","@module panel","**/","","var getClassName = Y.ClassNameManager.getClassName;","","// TODO: Change this description!","/**","A basic Panel Widget, which can be positioned based on Page XY co-ordinates and","is stackable (z-index support). It also provides alignment and centering support","and uses a standard module format for it's content, with header, body and footer","section support. It can be made modal, and has functionality to hide and focus","on different events. The header and footer sections can be modified to allow for","button support.","","@class Panel","@constructor","@extends Widget","@uses WidgetAutohide","@uses WidgetButtons","@uses WidgetModality","@uses WidgetPosition","@uses WidgetPositionAlign","@uses WidgetPositionConstrain","@uses WidgetStack","@uses WidgetStdMod","@since 3.4.0"," */","Y.Panel = Y.Base.create('panel', Y.Widget, ["," // Other Widget extensions depend on these two."," Y.WidgetPosition,"," Y.WidgetStdMod,",""," Y.WidgetAutohide,"," Y.WidgetButtons,"," Y.WidgetModality,"," Y.WidgetPositionAlign,"," Y.WidgetPositionConstrain,"," Y.WidgetStack","], {"," // -- Public Properties ----------------------------------------------------",""," /**"," Collection of predefined buttons mapped from name => config.",""," Panel includes a \"close\" button which can be use by name. When the close"," button is in the header (which is the default), it will look like: [x].",""," See `addButton()` for a list of possible configuration values.",""," @example"," // Panel with close button in header."," var panel = new Y.Panel({"," buttons: ['close']"," });",""," // Panel with close button in footer."," var otherPanel = new Y.Panel({"," buttons: {"," footer: ['close']"," }"," });",""," @property BUTTONS"," @type Object"," @default {close: {}}"," @since 3.5.0"," **/"," BUTTONS: {"," close: {"," label : 'Close',"," action : 'hide',"," section: 'header',",""," // Uses `type=\"button\"` so the button's default action can still"," // occur but it won't cause things like a form to submit."," template : '