From a16d7cd4678e8eb506411bdc7d611147d4d04c84 Mon Sep 17 00:00:00 2001 From: dkhunt27 Date: Wed, 24 Jul 2013 18:11:11 -0400 Subject: [PATCH 1/2] updated to support subscribe/unsubscribe to multiple destinations --- .gitignore | 1 + lib/stomp.js | 44 ++++++++++++++++++++++++++------------------ package.json | 2 +- 3 files changed, 28 insertions(+), 19 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9f11b75 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.idea/ diff --git a/lib/stomp.js b/lib/stomp.js index bb51546..47f58db 100644 --- a/lib/stomp.js +++ b/lib/stomp.js @@ -353,22 +353,19 @@ Stomp.prototype.disconnect = function() { Stomp.prototype.subscribe = function(headers, callback) { var destination = headers['destination']; headers['session'] = this.session; - send_command(this, 'SUBSCRIBE', headers); - - /** - / Maybe we could subscribe to mulitple queues? - / if (destination instanceof Array) { - / for (var = i; i < 0; i++) { - / this._subscribed_to[destination[i]] = { enabled: true, callback: callback }; - / } - / } - / else { - / this._subscribed_to[destination] = { enabled: true, callback: callback }; - / } - / - */ - - this._subscribed_to[destination] = { enabled: true, callback: callback }; + + if (destination instanceof Array) { + for (var i=0; i < destination.length; i++) { + headers.destination = destination[i]; + send_command(this, 'SUBSCRIBE', headers); + this._subscribed_to[destination[i]] = { enabled: true, callback: callback }; + } + } + else { + send_command(this, 'SUBSCRIBE', headers); + this._subscribed_to[destination] = { enabled: true, callback: callback }; + } + this.log.debug('subscribed to: ' + destination + ' with headers ' + sys.inspect(headers)); }; @@ -382,8 +379,19 @@ Stomp.prototype.subscribe = function(headers, callback) { Stomp.prototype.unsubscribe = function(headers) { var destination = headers['destination']; headers['session'] = this.session; - send_command(this, 'UNSUBSCRIBE', headers); - this._subscribed_to[destination].enabled = false; + + if (destination instanceof Array) { + for (var i=0; i < destination.length; i++) { + headers.destination = destination[i]; + send_command(this, 'UNSUBSCRIBE', headers); + this._subscribed_to[destination[i]].enabled = false; + } + } + else { + send_command(this, 'UNSUBSCRIBE', headers); + this._subscribed_to[destination].enabled = false; + } + this.log.debug('no longer subscribed to: ' + destination); }; diff --git a/package.json b/package.json index 5a5e777..1cb2caa 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name" : "stomp", "description": "Implementation of the STOMP protocol in node.js", "keywords": [ "STOMP", "messaging", "queue", "protocol" ], - "version": "v0.1.1", + "version": "v0.1.2", "homepage": "https://github.com/benjaminws/stomp-js", "author": "Benjamin W. Smith ", "contributors" : [ "rofflwaffls@gmail.com" ], From 1e1e790347fe9cec0f5d054dd6b5d2e99864ca16 Mon Sep 17 00:00:00 2001 From: dkhunt27 Date: Tue, 30 Jul 2013 13:45:48 -0400 Subject: [PATCH 2/2] refactored using revealing module pattern and other OCD refactoring; jshint fixes; added tests; updat ed examples; updated readme for example app; switch documenation to jsduck; added make file for common commands --- .gitignore | 1 + .jshintignore | 2 + .jshintrc | 96 ++ Makefile | 40 + README.md | 29 +- docs/app-20ea5717ade2476617d0305b69058533.js | 1 + docs/bg.png | Bin 8401 -> 0 bytes docs/data-7123939d7aa281aafe53073d4dfed19f.js | 1 + docs/eg-iframe.html | 26 + docs/extjs/ext-all.js | 38 + .../default/boundlist/trigger-arrow.png | Bin 0 -> 2869 bytes .../images/default/box/corners-blue.gif | Bin 0 -> 1010 bytes .../themes/images/default/box/corners.gif | Bin 0 -> 1005 bytes .../themes/images/default/box/l-blue.gif | Bin 0 -> 810 bytes .../resources/themes/images/default/box/l.gif | Bin 0 -> 810 bytes .../themes/images/default/box/r-blue.gif | Bin 0 -> 810 bytes .../resources/themes/images/default/box/r.gif | Bin 0 -> 810 bytes .../themes/images/default/box/tb-blue.gif | Bin 0 -> 851 bytes .../themes/images/default/box/tb.gif | Bin 0 -> 839 bytes .../btn-group-default-framed-corners.gif | Bin 0 -> 1598 bytes ...n-group-default-framed-notitle-corners.gif | Bin 0 -> 1598 bytes ...btn-group-default-framed-notitle-sides.gif | Bin 0 -> 1623 bytes .../btn-group-default-framed-sides.gif | Bin 0 -> 1630 bytes .../default/btn/btn-default-large-bg.gif | Bin 0 -> 1825 bytes .../default/btn/btn-default-large-corners.gif | Bin 0 -> 1616 bytes .../btn/btn-default-large-disabled-bg.gif | Bin 0 -> 1825 bytes .../btn-default-large-disabled-corners.gif | Bin 0 -> 1614 bytes .../btn/btn-default-large-disabled-sides.gif | Bin 0 -> 1923 bytes .../btn/btn-default-large-focus-bg.gif | Bin 0 -> 1840 bytes .../btn/btn-default-large-focus-corners.gif | Bin 0 -> 1621 bytes .../btn/btn-default-large-focus-sides.gif | Bin 0 -> 1923 bytes .../default/btn/btn-default-large-over-bg.gif | Bin 0 -> 1840 bytes .../btn/btn-default-large-over-corners.gif | Bin 0 -> 1621 bytes .../btn/btn-default-large-over-sides.gif | Bin 0 -> 1923 bytes .../btn/btn-default-large-pressed-bg.gif | Bin 0 -> 1869 bytes .../btn/btn-default-large-pressed-corners.gif | Bin 0 -> 1619 bytes .../btn/btn-default-large-pressed-sides.gif | Bin 0 -> 1953 bytes .../default/btn/btn-default-large-sides.gif | Bin 0 -> 1923 bytes .../default/btn/btn-default-medium-bg.gif | Bin 0 -> 1809 bytes .../btn/btn-default-medium-corners.gif | Bin 0 -> 1616 bytes .../btn/btn-default-medium-disabled-bg.gif | Bin 0 -> 1809 bytes .../btn-default-medium-disabled-corners.gif | Bin 0 -> 1614 bytes .../btn/btn-default-medium-disabled-sides.gif | Bin 0 -> 1907 bytes .../btn/btn-default-medium-focus-bg.gif | Bin 0 -> 1817 bytes .../btn/btn-default-medium-focus-corners.gif | Bin 0 -> 1622 bytes .../btn/btn-default-medium-focus-sides.gif | Bin 0 -> 1897 bytes .../btn/btn-default-medium-over-bg.gif | Bin 0 -> 1817 bytes .../btn/btn-default-medium-over-corners.gif | Bin 0 -> 1622 bytes .../btn/btn-default-medium-over-sides.gif | Bin 0 -> 1897 bytes .../btn/btn-default-medium-pressed-bg.gif | Bin 0 -> 1849 bytes .../btn-default-medium-pressed-corners.gif | Bin 0 -> 1619 bytes .../btn/btn-default-medium-pressed-sides.gif | Bin 0 -> 1929 bytes .../default/btn/btn-default-medium-sides.gif | Bin 0 -> 1907 bytes .../default/btn/btn-default-small-bg.gif | Bin 0 -> 1791 bytes .../default/btn/btn-default-small-corners.gif | Bin 0 -> 1614 bytes .../btn/btn-default-small-disabled-bg.gif | Bin 0 -> 1791 bytes .../btn-default-small-disabled-corners.gif | Bin 0 -> 1614 bytes .../btn/btn-default-small-disabled-sides.gif | Bin 0 -> 1878 bytes .../btn/btn-default-small-focus-bg.gif | Bin 0 -> 1800 bytes .../btn/btn-default-small-focus-corners.gif | Bin 0 -> 1622 bytes .../btn/btn-default-small-focus-sides.gif | Bin 0 -> 1879 bytes .../default/btn/btn-default-small-over-bg.gif | Bin 0 -> 1800 bytes .../btn/btn-default-small-over-corners.gif | Bin 0 -> 1621 bytes .../btn/btn-default-small-over-sides.gif | Bin 0 -> 1879 bytes .../btn/btn-default-small-pressed-bg.gif | Bin 0 -> 1811 bytes .../btn/btn-default-small-pressed-corners.gif | Bin 0 -> 1621 bytes .../btn/btn-default-small-pressed-sides.gif | Bin 0 -> 1892 bytes .../default/btn/btn-default-small-sides.gif | Bin 0 -> 1873 bytes .../btn/btn-default-toolbar-large-corners.gif | Bin 0 -> 1585 bytes ...default-toolbar-large-disabled-corners.gif | Bin 0 -> 1585 bytes ...n-default-toolbar-large-disabled-sides.gif | Bin 0 -> 1596 bytes .../btn-default-toolbar-large-focus-bg.gif | Bin 0 -> 1851 bytes ...tn-default-toolbar-large-focus-corners.gif | Bin 0 -> 1621 bytes .../btn-default-toolbar-large-focus-sides.gif | Bin 0 -> 1939 bytes .../btn/btn-default-toolbar-large-over-bg.gif | Bin 0 -> 1851 bytes ...btn-default-toolbar-large-over-corners.gif | Bin 0 -> 1621 bytes .../btn-default-toolbar-large-over-sides.gif | Bin 0 -> 1939 bytes .../btn-default-toolbar-large-pressed-bg.gif | Bin 0 -> 1846 bytes ...-default-toolbar-large-pressed-corners.gif | Bin 0 -> 1623 bytes ...tn-default-toolbar-large-pressed-sides.gif | Bin 0 -> 1933 bytes .../btn/btn-default-toolbar-large-sides.gif | Bin 0 -> 1596 bytes .../btn-default-toolbar-medium-corners.gif | Bin 0 -> 1585 bytes ...efault-toolbar-medium-disabled-corners.gif | Bin 0 -> 1585 bytes ...-default-toolbar-medium-disabled-sides.gif | Bin 0 -> 1594 bytes .../btn-default-toolbar-medium-focus-bg.gif | Bin 0 -> 1826 bytes ...n-default-toolbar-medium-focus-corners.gif | Bin 0 -> 1622 bytes ...btn-default-toolbar-medium-focus-sides.gif | Bin 0 -> 1917 bytes .../btn-default-toolbar-medium-over-bg.gif | Bin 0 -> 1826 bytes ...tn-default-toolbar-medium-over-corners.gif | Bin 0 -> 1622 bytes .../btn-default-toolbar-medium-over-sides.gif | Bin 0 -> 1917 bytes .../btn-default-toolbar-medium-pressed-bg.gif | Bin 0 -> 1846 bytes ...default-toolbar-medium-pressed-corners.gif | Bin 0 -> 1621 bytes ...n-default-toolbar-medium-pressed-sides.gif | Bin 0 -> 1919 bytes .../btn/btn-default-toolbar-medium-sides.gif | Bin 0 -> 1594 bytes .../btn/btn-default-toolbar-small-corners.gif | Bin 0 -> 1585 bytes ...default-toolbar-small-disabled-corners.gif | Bin 0 -> 1585 bytes ...n-default-toolbar-small-disabled-sides.gif | Bin 0 -> 1589 bytes .../btn-default-toolbar-small-focus-bg.gif | Bin 0 -> 1799 bytes ...tn-default-toolbar-small-focus-corners.gif | Bin 0 -> 1622 bytes .../btn-default-toolbar-small-focus-sides.gif | Bin 0 -> 1879 bytes .../btn/btn-default-toolbar-small-over-bg.gif | Bin 0 -> 1799 bytes ...btn-default-toolbar-small-over-corners.gif | Bin 0 -> 1622 bytes .../btn-default-toolbar-small-over-sides.gif | Bin 0 -> 1879 bytes .../btn-default-toolbar-small-pressed-bg.gif | Bin 0 -> 1813 bytes ...-default-toolbar-small-pressed-corners.gif | Bin 0 -> 1624 bytes ...tn-default-toolbar-small-pressed-sides.gif | Bin 0 -> 1892 bytes .../btn/btn-default-toolbar-small-sides.gif | Bin 0 -> 1589 bytes .../themes/images/default/button/arrow.gif | Bin 0 -> 828 bytes .../themes/images/default/button/btn.gif | Bin 0 -> 4298 bytes .../themes/images/default/button/group-cs.gif | Bin 0 -> 2459 bytes .../themes/images/default/button/group-lr.gif | Bin 0 -> 861 bytes .../themes/images/default/button/group-tb.gif | Bin 0 -> 846 bytes .../default/button/s-arrow-b-noline.gif | Bin 0 -> 898 bytes .../images/default/button/s-arrow-b.gif | Bin 0 -> 937 bytes .../images/default/button/s-arrow-bo.gif | Bin 0 -> 139 bytes .../images/default/button/s-arrow-light.gif | Bin 0 -> 116 bytes .../images/default/button/s-arrow-noline.gif | Bin 0 -> 863 bytes .../images/default/button/s-arrow-o.gif | Bin 0 -> 937 bytes .../themes/images/default/button/s-arrow.gif | Bin 0 -> 937 bytes .../datepicker/datepicker-footer-bg.gif | Bin 0 -> 1833 bytes .../datepicker/datepicker-footer-bg.png | Bin 0 -> 328 bytes .../datepicker/datepicker-header-bg.gif | Bin 0 -> 1860 bytes .../datepicker/datepicker-header-bg.png | Bin 0 -> 309 bytes .../themes/images/default/dd/drop-add.gif | Bin 0 -> 1001 bytes .../themes/images/default/dd/drop-no.gif | Bin 0 -> 949 bytes .../themes/images/default/dd/drop-yes.gif | Bin 0 -> 1016 bytes .../images/default/editor/tb-sprite.gif | Bin 0 -> 2072 bytes .../form-invalid-tip-corners.gif | Bin 0 -> 1688 bytes .../form-invalid-tip-default-corners.gif | Bin 0 -> 1690 bytes .../form-invalid-tip-default-sides.gif | Bin 0 -> 1647 bytes .../form-invalid-tip-sides.gif | Bin 0 -> 1647 bytes .../themes/images/default/form/checkbox.gif | Bin 0 -> 2061 bytes .../images/default/form/clear-trigger.gif | Bin 0 -> 1988 bytes .../images/default/form/date-trigger.gif | Bin 0 -> 1603 bytes .../images/default/form/error-tip-corners.gif | Bin 0 -> 4183 bytes .../images/default/form/exclamation.gif | Bin 0 -> 996 bytes .../themes/images/default/form/radio.gif | Bin 0 -> 1746 bytes .../images/default/form/search-trigger.gif | Bin 0 -> 2182 bytes .../images/default/form/spinner-small.gif | Bin 0 -> 743 bytes .../themes/images/default/form/spinner.gif | Bin 0 -> 1975 bytes .../themes/images/default/form/text-bg.gif | Bin 0 -> 819 bytes .../images/default/form/trigger-square.gif | Bin 0 -> 1810 bytes .../images/default/form/trigger-tpl.gif | Bin 0 -> 1487 bytes .../themes/images/default/form/trigger.gif | Bin 0 -> 1816 bytes .../images/default/grid/arrow-left-white.gif | Bin 0 -> 825 bytes .../images/default/grid/arrow-right-white.gif | Bin 0 -> 825 bytes .../images/default/grid/cell-special-bg.gif | Bin 0 -> 1636 bytes .../images/default/grid/cell-special-bg.png | Bin 0 -> 121 bytes .../default/grid/cell-special-selected-bg.gif | Bin 0 -> 1640 bytes .../default/grid/cell-special-selected-bg.png | Bin 0 -> 136 bytes .../themes/images/default/grid/checked.gif | Bin 0 -> 959 bytes .../images/default/grid/col-move-bottom.gif | Bin 0 -> 868 bytes .../images/default/grid/col-move-top.gif | Bin 0 -> 869 bytes .../images/default/grid/column-header-bg.gif | Bin 0 -> 1858 bytes .../images/default/grid/column-header-bg.png | Bin 0 -> 293 bytes .../default/grid/column-header-over-bg.gif | Bin 0 -> 1767 bytes .../default/grid/column-header-over-bg.png | Bin 0 -> 283 bytes .../themes/images/default/grid/columns.gif | Bin 0 -> 962 bytes .../default/grid/dd-insert-arrow-left.gif | Bin 0 -> 299 bytes .../default/grid/dd-insert-arrow-left.png | Bin 0 -> 345 bytes .../default/grid/dd-insert-arrow-right.gif | Bin 0 -> 301 bytes .../default/grid/dd-insert-arrow-right.png | Bin 0 -> 349 bytes .../themes/images/default/grid/dirty.gif | Bin 0 -> 832 bytes .../themes/images/default/grid/done.gif | Bin 0 -> 133 bytes .../themes/images/default/grid/drop-no.gif | Bin 0 -> 947 bytes .../themes/images/default/grid/drop-yes.gif | Bin 0 -> 860 bytes .../themes/images/default/grid/footer-bg.gif | Bin 0 -> 834 bytes .../images/default/grid/grid-blue-hd.gif | Bin 0 -> 829 bytes .../images/default/grid/grid-blue-split.gif | Bin 0 -> 817 bytes .../themes/images/default/grid/grid-hrow.gif | Bin 0 -> 855 bytes .../images/default/grid/grid-loading.gif | Bin 0 -> 701 bytes .../themes/images/default/grid/grid-split.gif | Bin 0 -> 817 bytes .../images/default/grid/grid-vista-hd.gif | Bin 0 -> 829 bytes .../images/default/grid/grid3-hd-btn.gif | Bin 0 -> 1229 bytes .../images/default/grid/grid3-hrow-over.gif | Bin 0 -> 823 bytes .../themes/images/default/grid/grid3-hrow.gif | Bin 0 -> 836 bytes .../images/default/grid/grid3-rowheader.gif | Bin 0 -> 43 bytes .../themes/images/default/grid/group-by.gif | Bin 0 -> 917 bytes .../images/default/grid/group-collapse.gif | Bin 0 -> 881 bytes .../default/grid/group-expand-sprite.gif | Bin 0 -> 955 bytes .../images/default/grid/group-expand.gif | Bin 0 -> 884 bytes .../themes/images/default/grid/hd-pop.gif | Bin 0 -> 839 bytes .../themes/images/default/grid/hmenu-asc.gif | Bin 0 -> 931 bytes .../themes/images/default/grid/hmenu-desc.gif | Bin 0 -> 930 bytes .../themes/images/default/grid/hmenu-lock.gif | Bin 0 -> 955 bytes .../themes/images/default/grid/hmenu-lock.png | Bin 0 -> 648 bytes .../images/default/grid/hmenu-unlock.gif | Bin 0 -> 971 bytes .../images/default/grid/hmenu-unlock.png | Bin 0 -> 697 bytes .../images/default/grid/invalid_line.gif | Bin 0 -> 815 bytes .../themes/images/default/grid/loading.gif | Bin 0 -> 771 bytes .../themes/images/default/grid/mso-hd.gif | Bin 0 -> 875 bytes .../themes/images/default/grid/nowait.gif | Bin 0 -> 884 bytes .../default/grid/page-first-disabled.gif | Bin 0 -> 925 bytes .../themes/images/default/grid/page-first.gif | Bin 0 -> 925 bytes .../default/grid/page-last-disabled.gif | Bin 0 -> 923 bytes .../themes/images/default/grid/page-last.gif | Bin 0 -> 923 bytes .../default/grid/page-next-disabled.gif | Bin 0 -> 875 bytes .../themes/images/default/grid/page-next.gif | Bin 0 -> 875 bytes .../default/grid/page-prev-disabled.gif | Bin 0 -> 879 bytes .../themes/images/default/grid/page-prev.gif | Bin 0 -> 879 bytes .../images/default/grid/pick-button.gif | Bin 0 -> 1036 bytes .../images/default/grid/property-cell-bg.gif | Bin 0 -> 155 bytes .../grid/property-cell-selected-bg.gif | Bin 0 -> 843 bytes .../images/default/grid/refresh-disabled.gif | Bin 0 -> 577 bytes .../themes/images/default/grid/refresh.gif | Bin 0 -> 977 bytes .../images/default/grid/row-check-sprite.gif | Bin 0 -> 1083 bytes .../images/default/grid/row-expand-sprite.gif | Bin 0 -> 955 bytes .../themes/images/default/grid/row-over.gif | Bin 0 -> 823 bytes .../themes/images/default/grid/row-sel.gif | Bin 0 -> 823 bytes .../themes/images/default/grid/sort-hd.gif | Bin 0 -> 1473 bytes .../themes/images/default/grid/sort_asc.gif | Bin 0 -> 830 bytes .../themes/images/default/grid/sort_desc.gif | Bin 0 -> 833 bytes .../themes/images/default/grid/unchecked.gif | Bin 0 -> 941 bytes .../themes/images/default/grid/wait.gif | Bin 0 -> 1100 bytes .../images/default/layout/mini-bottom.gif | Bin 0 -> 856 bytes .../images/default/layout/mini-left.gif | Bin 0 -> 871 bytes .../images/default/layout/mini-right.gif | Bin 0 -> 872 bytes .../themes/images/default/layout/mini-top.gif | Bin 0 -> 856 bytes .../themes/images/default/menu/checked.gif | Bin 0 -> 959 bytes .../images/default/menu/group-checked.gif | Bin 0 -> 891 bytes .../themes/images/default/menu/item-over.gif | Bin 0 -> 47 bytes .../default/menu/menu-item-active-bg.gif | Bin 0 -> 1833 bytes .../default/menu/menu-item-active-corners.gif | Bin 0 -> 1621 bytes .../default/menu/menu-item-active-sides.gif | Bin 0 -> 1909 bytes .../images/default/menu/menu-parent.gif | Bin 0 -> 854 bytes .../themes/images/default/menu/menu.gif | Bin 0 -> 834 bytes .../themes/images/default/menu/unchecked.gif | Bin 0 -> 941 bytes .../panel-header-default-bottom-bg.gif | Bin 0 -> 1862 bytes .../panel-header-default-framed-bottom-bg.gif | Bin 0 -> 1839 bytes ...l-header-default-framed-bottom-corners.gif | Bin 0 -> 1648 bytes ...nel-header-default-framed-bottom-sides.gif | Bin 0 -> 2015 bytes ...der-default-framed-collapsed-bottom-bg.gif | Bin 0 -> 1820 bytes ...efault-framed-collapsed-bottom-corners.gif | Bin 0 -> 1667 bytes ...-default-framed-collapsed-bottom-sides.gif | Bin 0 -> 1998 bytes ...eader-default-framed-collapsed-left-bg.gif | Bin 0 -> 1634 bytes ...-default-framed-collapsed-left-corners.gif | Bin 0 -> 1684 bytes ...er-default-framed-collapsed-left-sides.gif | Bin 0 -> 1831 bytes ...ader-default-framed-collapsed-right-bg.gif | Bin 0 -> 1634 bytes ...default-framed-collapsed-right-corners.gif | Bin 0 -> 1687 bytes ...r-default-framed-collapsed-right-sides.gif | Bin 0 -> 1831 bytes ...header-default-framed-collapsed-top-bg.gif | Bin 0 -> 1821 bytes ...r-default-framed-collapsed-top-corners.gif | Bin 0 -> 1668 bytes ...der-default-framed-collapsed-top-sides.gif | Bin 0 -> 2002 bytes .../panel-header-default-framed-left-bg.gif | Bin 0 -> 1638 bytes ...nel-header-default-framed-left-corners.gif | Bin 0 -> 1669 bytes ...panel-header-default-framed-left-sides.gif | Bin 0 -> 1841 bytes .../panel-header-default-framed-right-bg.gif | Bin 0 -> 1639 bytes ...el-header-default-framed-right-corners.gif | Bin 0 -> 1667 bytes ...anel-header-default-framed-right-sides.gif | Bin 0 -> 1844 bytes .../panel-header-default-framed-top-bg.gif | Bin 0 -> 1842 bytes ...anel-header-default-framed-top-corners.gif | Bin 0 -> 1652 bytes .../panel-header-default-framed-top-sides.gif | Bin 0 -> 2019 bytes .../panel-header-default-left-bg.gif | Bin 0 -> 1640 bytes .../panel-header-default-right-bg.gif | Bin 0 -> 1640 bytes .../panel-header-default-top-bg.gif | Bin 0 -> 1863 bytes .../panel/panel-default-framed-corners.gif | Bin 0 -> 1639 bytes .../panel/panel-default-framed-sides.gif | Bin 0 -> 1727 bytes .../default/progress/progress-default-bg.gif | Bin 0 -> 1837 bytes .../images/default/shared/blue-loading.gif | Bin 0 -> 3236 bytes .../themes/images/default/shared/calendar.gif | Bin 0 -> 979 bytes .../themes/images/default/shared/glass-bg.gif | Bin 0 -> 873 bytes .../images/default/shared/hd-sprite.gif | Bin 0 -> 1099 bytes .../images/default/shared/icon-error.gif | Bin 0 -> 1669 bytes .../images/default/shared/icon-info.gif | Bin 0 -> 1586 bytes .../images/default/shared/icon-question.gif | Bin 0 -> 1607 bytes .../images/default/shared/icon-warning.gif | Bin 0 -> 1483 bytes .../images/default/shared/large-loading.gif | Bin 0 -> 3236 bytes .../themes/images/default/shared/left-btn.gif | Bin 0 -> 870 bytes .../images/default/shared/loading-balls.gif | Bin 0 -> 2118 bytes .../images/default/shared/right-btn.gif | Bin 0 -> 871 bytes .../themes/images/default/shared/shadow-c.png | Bin 0 -> 118 bytes .../images/default/shared/shadow-lr.png | Bin 0 -> 135 bytes .../themes/images/default/shared/shadow.png | Bin 0 -> 311 bytes .../themes/images/default/shared/warning.gif | Bin 0 -> 960 bytes .../images/default/sizer/e-handle-dark.gif | Bin 0 -> 1062 bytes .../themes/images/default/sizer/e-handle.gif | Bin 0 -> 1586 bytes .../images/default/sizer/ne-handle-dark.gif | Bin 0 -> 839 bytes .../themes/images/default/sizer/ne-handle.gif | Bin 0 -> 854 bytes .../images/default/sizer/nw-handle-dark.gif | Bin 0 -> 839 bytes .../themes/images/default/sizer/nw-handle.gif | Bin 0 -> 853 bytes .../images/default/sizer/s-handle-dark.gif | Bin 0 -> 1060 bytes .../themes/images/default/sizer/s-handle.gif | Bin 0 -> 1318 bytes .../images/default/sizer/se-handle-dark.gif | Bin 0 -> 838 bytes .../themes/images/default/sizer/se-handle.gif | Bin 0 -> 853 bytes .../themes/images/default/sizer/square.gif | Bin 0 -> 864 bytes .../images/default/sizer/sw-handle-dark.gif | Bin 0 -> 839 bytes .../themes/images/default/sizer/sw-handle.gif | Bin 0 -> 855 bytes .../images/default/slider/slider-bg.gif | Bin 0 -> 145 bytes .../images/default/slider/slider-bg.png | Bin 0 -> 1494 bytes .../images/default/slider/slider-thumb.gif | Bin 0 -> 542 bytes .../images/default/slider/slider-thumb.png | Bin 0 -> 933 bytes .../images/default/slider/slider-v-bg.gif | Bin 0 -> 150 bytes .../images/default/slider/slider-v-bg.png | Bin 0 -> 288 bytes .../images/default/slider/slider-v-thumb.gif | Bin 0 -> 533 bytes .../images/default/slider/slider-v-thumb.png | Bin 0 -> 883 bytes .../images/default/tab-bar/scroll-left.gif | Bin 0 -> 457 bytes .../images/default/tab-bar/scroll-right.gif | Bin 0 -> 460 bytes .../default/tab-bar/tab-bar-default-bg.gif | Bin 0 -> 1829 bytes .../tab/tab-default-bottom-active-bg.gif | Bin 0 -> 1785 bytes .../tab/tab-default-bottom-active-corners.gif | Bin 0 -> 1639 bytes .../tab/tab-default-bottom-active-sides.gif | Bin 0 -> 1982 bytes .../default/tab/tab-default-bottom-bg.gif | Bin 0 -> 1789 bytes .../tab/tab-default-bottom-corners.gif | Bin 0 -> 1648 bytes .../tab/tab-default-bottom-disabled-bg.gif | Bin 0 -> 1798 bytes .../tab-default-bottom-disabled-corners.gif | Bin 0 -> 1648 bytes .../tab/tab-default-bottom-disabled-sides.gif | Bin 0 -> 1984 bytes .../tab/tab-default-bottom-over-bg.gif | Bin 0 -> 1791 bytes .../tab/tab-default-bottom-over-corners.gif | Bin 0 -> 1643 bytes .../tab/tab-default-bottom-over-sides.gif | Bin 0 -> 1985 bytes .../default/tab/tab-default-bottom-sides.gif | Bin 0 -> 1984 bytes .../images/default/tab/tab-default-close.gif | Bin 0 -> 896 bytes .../default/tab/tab-default-top-active-bg.gif | Bin 0 -> 1775 bytes .../tab/tab-default-top-active-corners.gif | Bin 0 -> 1640 bytes .../tab/tab-default-top-active-sides.gif | Bin 0 -> 1962 bytes .../images/default/tab/tab-default-top-bg.gif | Bin 0 -> 1775 bytes .../default/tab/tab-default-top-corners.gif | Bin 0 -> 1648 bytes .../tab/tab-default-top-disabled-bg.gif | Bin 0 -> 1794 bytes .../tab/tab-default-top-disabled-corners.gif | Bin 0 -> 1649 bytes .../tab/tab-default-top-disabled-sides.gif | Bin 0 -> 1979 bytes .../default/tab/tab-default-top-over-bg.gif | Bin 0 -> 1777 bytes .../tab/tab-default-top-over-corners.gif | Bin 0 -> 1649 bytes .../tab/tab-default-top-over-sides.gif | Bin 0 -> 1963 bytes .../default/tab/tab-default-top-sides.gif | Bin 0 -> 1962 bytes .../themes/images/default/tip/tip-corners.gif | Bin 0 -> 1621 bytes .../themes/images/default/tip/tip-sides.gif | Bin 0 -> 1623 bytes .../themes/images/default/toolbar/more.gif | Bin 0 -> 845 bytes .../images/default/toolbar/scroll-left.gif | Bin 0 -> 1861 bytes .../images/default/toolbar/scroll-right.gif | Bin 0 -> 1865 bytes .../default/toolbar/toolbar-default-bg.gif | Bin 0 -> 1837 bytes .../images/default/tools/tool-sprite-tpl.gif | Bin 0 -> 971 bytes .../images/default/tools/tool-sprites.gif | Bin 0 -> 5421 bytes .../default/tools/tools-sprites-trans.gif | Bin 0 -> 2843 bytes .../themes/images/default/tree/arrows.gif | Bin 0 -> 617 bytes .../themes/images/default/tree/drop-above.gif | Bin 0 -> 911 bytes .../themes/images/default/tree/drop-add.gif | Bin 0 -> 1001 bytes .../images/default/tree/drop-append.gif | Bin 0 -> 1001 bytes .../themes/images/default/tree/drop-below.gif | Bin 0 -> 911 bytes .../images/default/tree/drop-between.gif | Bin 0 -> 907 bytes .../themes/images/default/tree/drop-no.gif | Bin 0 -> 949 bytes .../themes/images/default/tree/drop-over.gif | Bin 0 -> 911 bytes .../themes/images/default/tree/drop-under.gif | Bin 0 -> 911 bytes .../themes/images/default/tree/drop-yes.gif | Bin 0 -> 1016 bytes .../default/tree/elbow-end-minus-nl.gif | Bin 0 -> 151 bytes .../images/default/tree/elbow-end-minus.gif | Bin 0 -> 157 bytes .../images/default/tree/elbow-end-plus-nl.gif | Bin 0 -> 152 bytes .../images/default/tree/elbow-end-plus.gif | Bin 0 -> 159 bytes .../themes/images/default/tree/elbow-end.gif | Bin 0 -> 70 bytes .../themes/images/default/tree/elbow-line.gif | Bin 0 -> 72 bytes .../images/default/tree/elbow-minus-nl.gif | Bin 0 -> 151 bytes .../images/default/tree/elbow-minus.gif | Bin 0 -> 159 bytes .../images/default/tree/elbow-plus-nl.gif | Bin 0 -> 152 bytes .../themes/images/default/tree/elbow-plus.gif | Bin 0 -> 160 bytes .../themes/images/default/tree/elbow.gif | Bin 0 -> 73 bytes .../images/default/tree/folder-open.gif | Bin 0 -> 356 bytes .../themes/images/default/tree/folder.gif | Bin 0 -> 351 bytes .../themes/images/default/tree/leaf.gif | Bin 0 -> 945 bytes .../themes/images/default/tree/loading.gif | Bin 0 -> 771 bytes .../themes/images/default/tree/s.gif | Bin 0 -> 43 bytes .../default/util/splitter/mini-bottom.gif | Bin 0 -> 856 bytes .../default/util/splitter/mini-left.gif | Bin 0 -> 871 bytes .../default/util/splitter/mini-right.gif | Bin 0 -> 872 bytes .../images/default/util/splitter/mini-top.gif | Bin 0 -> 856 bytes .../window-header-default-bottom-corners.gif | Bin 0 -> 1664 bytes .../window-header-default-bottom-sides.gif | Bin 0 -> 1624 bytes ...eader-default-collapsed-bottom-corners.gif | Bin 0 -> 213 bytes ...-header-default-collapsed-bottom-sides.gif | Bin 0 -> 1624 bytes ...-header-default-collapsed-left-corners.gif | Bin 0 -> 211 bytes ...ow-header-default-collapsed-left-sides.gif | Bin 0 -> 70 bytes ...header-default-collapsed-right-corners.gif | Bin 0 -> 213 bytes ...w-header-default-collapsed-right-sides.gif | Bin 0 -> 70 bytes ...w-header-default-collapsed-top-corners.gif | Bin 0 -> 215 bytes ...dow-header-default-collapsed-top-sides.gif | Bin 0 -> 1624 bytes .../window-header-default-left-corners.gif | Bin 0 -> 1655 bytes .../window-header-default-left-sides.gif | Bin 0 -> 1610 bytes .../window-header-default-right-corners.gif | Bin 0 -> 1656 bytes .../window-header-default-right-sides.gif | Bin 0 -> 1610 bytes .../window-header-default-top-corners.gif | Bin 0 -> 199 bytes .../window-header-default-top-sides.gif | Bin 0 -> 1624 bytes .../default/window/window-default-corners.gif | Bin 0 -> 1686 bytes .../default/window/window-default-sides.gif | Bin 0 -> 1776 bytes docs/favicon.ico | Bin 0 -> 1150 bytes docs/frame.html | 82 -- docs/index.html | 69 +- docs/output/Frame.js | 1 + docs/output/Stomp.js | 1 + docs/output/StompLogger.js | 1 + docs/output/StompUtils.js | 1 + .../app-851b66f18114a2a31d488e9c8d7cb964.css | 1 + docs/resources/css/reset.css | 59 ++ docs/resources/css/scrollbars.css | 17 + docs/resources/css/welcome.css | 84 ++ docs/resources/css/welcome_ie6.css | 72 ++ docs/resources/images/ajax-loader.gif | Bin 0 -> 1849 bytes docs/resources/images/arrows.png | Bin 0 -> 1187 bytes docs/resources/images/class-m.png | Bin 0 -> 5910 bytes docs/resources/images/comment-bubble.png | Bin 0 -> 1250 bytes docs/resources/images/comment.png | Bin 0 -> 5163 bytes docs/resources/images/component-m.png | Bin 0 -> 3287 bytes docs/resources/images/default-guide.png | Bin 0 -> 13215 bytes docs/resources/images/doc-m.png | Bin 0 -> 3368 bytes docs/resources/images/down-arr.png | Bin 0 -> 963 bytes docs/resources/images/elbow-end.gif | Bin 0 -> 844 bytes docs/resources/images/example-icons.png | Bin 0 -> 2639 bytes docs/resources/images/expandcollapse.png | Bin 0 -> 1051 bytes docs/resources/images/gettingstarted.jpg | Bin 0 -> 20437 bytes docs/resources/images/group-expand-sprite.gif | Bin 0 -> 955 bytes docs/resources/images/guide-icon.png | Bin 0 -> 1659 bytes docs/resources/images/guides.png | Bin 0 -> 22038 bytes docs/resources/images/header.png | Bin 0 -> 1089 bytes docs/resources/images/hero-extjs4-alt.png | Bin 0 -> 56899 bytes docs/resources/images/icons.png | Bin 0 -> 11943 bytes docs/resources/images/link-arrow-next.png | Bin 0 -> 501 bytes .../images/link-green-standard-over.png | Bin 0 -> 240 bytes docs/resources/images/link-green-standard.png | Bin 0 -> 240 bytes docs/resources/images/loading.gif | Bin 0 -> 16717 bytes docs/resources/images/logo-screen-noglow.png | Bin 0 -> 9394 bytes docs/resources/images/logo.png | Bin 0 -> 1243 bytes docs/resources/images/member-collapsed.gif | Bin 0 -> 856 bytes docs/resources/images/member-expanded.gif | Bin 0 -> 845 bytes docs/resources/images/member-hover.gif | Bin 0 -> 861 bytes docs/resources/images/more.png | Bin 0 -> 498 bytes docs/resources/images/phone-l.jpg | Bin 0 -> 23894 bytes docs/resources/images/phone-p.jpg | Bin 0 -> 24174 bytes docs/resources/images/phone-small-l.jpg | Bin 0 -> 12852 bytes docs/resources/images/phone-small-p.jpg | Bin 0 -> 12905 bytes docs/resources/images/preview.png | Bin 0 -> 1361 bytes docs/resources/images/print.png | Bin 0 -> 829 bytes docs/resources/images/sample-over.gif | Bin 0 -> 2594 bytes docs/resources/images/search-box.png | Bin 0 -> 1988 bytes docs/resources/images/sencha-stamp.png | Bin 0 -> 1849 bytes docs/resources/images/singleton-m.png | Bin 0 -> 6253 bytes docs/resources/images/tablet-l.jpg | Bin 0 -> 35936 bytes docs/resources/images/tablet-p.jpg | Bin 0 -> 34731 bytes docs/resources/images/tabs.png | Bin 0 -> 5291 bytes docs/resources/images/text-bg.gif | Bin 0 -> 819 bytes docs/resources/images/version-tabs.png | Bin 0 -> 3594 bytes docs/resources/images/vote-arrows.png | Bin 0 -> 883 bytes docs/resources/images/welcome-bg-js4.gif | Bin 0 -> 3419 bytes docs/resources/images/x.png | Bin 0 -> 1299 bytes docs/resources/images/x12.png | Bin 0 -> 1242 bytes docs/resources/images/x122.png | Bin 0 -> 1418 bytes docs/resources/prettify/prettify.css | 1 + docs/resources/prettify/prettify.js | 28 + docs/rocco.css | 224 ---- docs/source/frame.html | 106 ++ docs/source/stomp.html | 652 ++++++++++++ docs/source/stomp.logger.html | 95 ++ docs/source/stomp.utils.html | 62 ++ docs/stomp-exceptions.html | 10 - docs/stomp-utils.html | 44 - docs/stomp.html | 365 ------- examples/app.js | 52 + examples/stomp-consumer.js | 58 - examples/stomp-examples.js | 280 +++++ examples/stomp-producer-txn.js | 58 - examples/stomp-producer.js | 59 -- jsduckCategories.json | 21 + jsduckConfig.json | 11 + lib/frame.js | 155 ++- lib/stomp-exceptions.js | 8 - lib/stomp-utils.js | 42 - lib/stomp.js | 987 ++++++++++-------- lib/stomp.logger.js | 75 ++ lib/stomp.utils.js | 42 + package.json | 59 +- test/stomp.Integration.Tests.js | 361 +++++++ test/stomp.utils.Unit.Tests.js | 357 +++++++ test/test-frame.js | 65 -- 468 files changed, 3350 insertions(+), 1549 deletions(-) create mode 100644 .jshintignore create mode 100644 .jshintrc create mode 100644 Makefile create mode 100644 docs/app-20ea5717ade2476617d0305b69058533.js delete mode 100644 docs/bg.png create mode 100644 docs/data-7123939d7aa281aafe53073d4dfed19f.js create mode 100644 docs/eg-iframe.html create mode 100644 docs/extjs/ext-all.js create mode 100755 docs/extjs/resources/themes/images/default/boundlist/trigger-arrow.png create mode 100755 docs/extjs/resources/themes/images/default/box/corners-blue.gif create mode 100755 docs/extjs/resources/themes/images/default/box/corners.gif create mode 100755 docs/extjs/resources/themes/images/default/box/l-blue.gif create mode 100755 docs/extjs/resources/themes/images/default/box/l.gif create mode 100755 docs/extjs/resources/themes/images/default/box/r-blue.gif create mode 100755 docs/extjs/resources/themes/images/default/box/r.gif create mode 100755 docs/extjs/resources/themes/images/default/box/tb-blue.gif create mode 100755 docs/extjs/resources/themes/images/default/box/tb.gif create mode 100755 docs/extjs/resources/themes/images/default/btn-group/btn-group-default-framed-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn-group/btn-group-default-framed-notitle-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn-group/btn-group-default-framed-notitle-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn-group/btn-group-default-framed-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-large-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-large-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-large-disabled-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-large-disabled-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-large-disabled-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-large-focus-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-large-focus-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-large-focus-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-large-over-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-large-over-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-large-over-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-large-pressed-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-large-pressed-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-large-pressed-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-large-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-medium-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-medium-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-medium-disabled-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-medium-disabled-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-medium-disabled-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-medium-focus-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-medium-focus-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-medium-focus-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-medium-over-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-medium-over-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-medium-over-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-medium-pressed-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-medium-pressed-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-medium-pressed-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-medium-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-small-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-small-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-small-disabled-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-small-disabled-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-small-disabled-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-small-focus-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-small-focus-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-small-focus-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-small-over-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-small-over-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-small-over-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-small-pressed-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-small-pressed-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-small-pressed-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-small-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-disabled-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-disabled-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-focus-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-focus-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-focus-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-over-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-over-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-over-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-pressed-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-pressed-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-pressed-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-disabled-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-disabled-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-focus-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-focus-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-focus-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-over-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-over-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-over-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-pressed-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-pressed-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-pressed-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-disabled-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-disabled-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-focus-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-focus-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-focus-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-over-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-over-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-over-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-pressed-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-pressed-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-pressed-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/button/arrow.gif create mode 100755 docs/extjs/resources/themes/images/default/button/btn.gif create mode 100755 docs/extjs/resources/themes/images/default/button/group-cs.gif create mode 100755 docs/extjs/resources/themes/images/default/button/group-lr.gif create mode 100755 docs/extjs/resources/themes/images/default/button/group-tb.gif create mode 100755 docs/extjs/resources/themes/images/default/button/s-arrow-b-noline.gif create mode 100755 docs/extjs/resources/themes/images/default/button/s-arrow-b.gif create mode 100755 docs/extjs/resources/themes/images/default/button/s-arrow-bo.gif create mode 100755 docs/extjs/resources/themes/images/default/button/s-arrow-light.gif create mode 100755 docs/extjs/resources/themes/images/default/button/s-arrow-noline.gif create mode 100755 docs/extjs/resources/themes/images/default/button/s-arrow-o.gif create mode 100755 docs/extjs/resources/themes/images/default/button/s-arrow.gif create mode 100755 docs/extjs/resources/themes/images/default/datepicker/datepicker-footer-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/datepicker/datepicker-footer-bg.png create mode 100755 docs/extjs/resources/themes/images/default/datepicker/datepicker-header-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/datepicker/datepicker-header-bg.png create mode 100755 docs/extjs/resources/themes/images/default/dd/drop-add.gif create mode 100755 docs/extjs/resources/themes/images/default/dd/drop-no.gif create mode 100755 docs/extjs/resources/themes/images/default/dd/drop-yes.gif create mode 100755 docs/extjs/resources/themes/images/default/editor/tb-sprite.gif create mode 100755 docs/extjs/resources/themes/images/default/form-invalid-tip/form-invalid-tip-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/form-invalid-tip/form-invalid-tip-default-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/form-invalid-tip/form-invalid-tip-default-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/form-invalid-tip/form-invalid-tip-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/form/checkbox.gif create mode 100755 docs/extjs/resources/themes/images/default/form/clear-trigger.gif create mode 100755 docs/extjs/resources/themes/images/default/form/date-trigger.gif create mode 100755 docs/extjs/resources/themes/images/default/form/error-tip-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/form/exclamation.gif create mode 100755 docs/extjs/resources/themes/images/default/form/radio.gif create mode 100755 docs/extjs/resources/themes/images/default/form/search-trigger.gif create mode 100755 docs/extjs/resources/themes/images/default/form/spinner-small.gif create mode 100755 docs/extjs/resources/themes/images/default/form/spinner.gif create mode 100755 docs/extjs/resources/themes/images/default/form/text-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/form/trigger-square.gif create mode 100755 docs/extjs/resources/themes/images/default/form/trigger-tpl.gif create mode 100755 docs/extjs/resources/themes/images/default/form/trigger.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/arrow-left-white.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/arrow-right-white.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/cell-special-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/cell-special-bg.png create mode 100755 docs/extjs/resources/themes/images/default/grid/cell-special-selected-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/cell-special-selected-bg.png create mode 100755 docs/extjs/resources/themes/images/default/grid/checked.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/col-move-bottom.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/col-move-top.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/column-header-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/column-header-bg.png create mode 100755 docs/extjs/resources/themes/images/default/grid/column-header-over-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/column-header-over-bg.png create mode 100755 docs/extjs/resources/themes/images/default/grid/columns.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/dd-insert-arrow-left.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/dd-insert-arrow-left.png create mode 100755 docs/extjs/resources/themes/images/default/grid/dd-insert-arrow-right.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/dd-insert-arrow-right.png create mode 100755 docs/extjs/resources/themes/images/default/grid/dirty.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/done.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/drop-no.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/drop-yes.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/footer-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/grid-blue-hd.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/grid-blue-split.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/grid-hrow.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/grid-loading.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/grid-split.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/grid-vista-hd.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/grid3-hd-btn.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/grid3-hrow-over.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/grid3-hrow.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/grid3-rowheader.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/group-by.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/group-collapse.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/group-expand-sprite.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/group-expand.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/hd-pop.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/hmenu-asc.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/hmenu-desc.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/hmenu-lock.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/hmenu-lock.png create mode 100755 docs/extjs/resources/themes/images/default/grid/hmenu-unlock.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/hmenu-unlock.png create mode 100755 docs/extjs/resources/themes/images/default/grid/invalid_line.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/loading.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/mso-hd.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/nowait.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/page-first-disabled.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/page-first.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/page-last-disabled.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/page-last.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/page-next-disabled.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/page-next.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/page-prev-disabled.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/page-prev.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/pick-button.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/property-cell-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/property-cell-selected-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/refresh-disabled.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/refresh.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/row-check-sprite.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/row-expand-sprite.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/row-over.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/row-sel.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/sort-hd.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/sort_asc.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/sort_desc.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/unchecked.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/wait.gif create mode 100755 docs/extjs/resources/themes/images/default/layout/mini-bottom.gif create mode 100755 docs/extjs/resources/themes/images/default/layout/mini-left.gif create mode 100755 docs/extjs/resources/themes/images/default/layout/mini-right.gif create mode 100755 docs/extjs/resources/themes/images/default/layout/mini-top.gif create mode 100755 docs/extjs/resources/themes/images/default/menu/checked.gif create mode 100755 docs/extjs/resources/themes/images/default/menu/group-checked.gif create mode 100755 docs/extjs/resources/themes/images/default/menu/item-over.gif create mode 100755 docs/extjs/resources/themes/images/default/menu/menu-item-active-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/menu/menu-item-active-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/menu/menu-item-active-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/menu/menu-parent.gif create mode 100755 docs/extjs/resources/themes/images/default/menu/menu.gif create mode 100755 docs/extjs/resources/themes/images/default/menu/unchecked.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-bottom-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-bottom-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-bottom-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-bottom-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-bottom-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-bottom-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-bottom-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-left-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-left-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-left-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-right-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-right-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-right-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-top-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-top-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-top-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-left-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-left-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-left-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-right-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-right-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-right-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-top-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-top-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-top-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-left-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-right-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-top-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/panel/panel-default-framed-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/panel/panel-default-framed-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/progress/progress-default-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/shared/blue-loading.gif create mode 100755 docs/extjs/resources/themes/images/default/shared/calendar.gif create mode 100755 docs/extjs/resources/themes/images/default/shared/glass-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/shared/hd-sprite.gif create mode 100755 docs/extjs/resources/themes/images/default/shared/icon-error.gif create mode 100755 docs/extjs/resources/themes/images/default/shared/icon-info.gif create mode 100755 docs/extjs/resources/themes/images/default/shared/icon-question.gif create mode 100755 docs/extjs/resources/themes/images/default/shared/icon-warning.gif create mode 100755 docs/extjs/resources/themes/images/default/shared/large-loading.gif create mode 100755 docs/extjs/resources/themes/images/default/shared/left-btn.gif create mode 100755 docs/extjs/resources/themes/images/default/shared/loading-balls.gif create mode 100755 docs/extjs/resources/themes/images/default/shared/right-btn.gif create mode 100755 docs/extjs/resources/themes/images/default/shared/shadow-c.png create mode 100755 docs/extjs/resources/themes/images/default/shared/shadow-lr.png create mode 100755 docs/extjs/resources/themes/images/default/shared/shadow.png create mode 100755 docs/extjs/resources/themes/images/default/shared/warning.gif create mode 100755 docs/extjs/resources/themes/images/default/sizer/e-handle-dark.gif create mode 100755 docs/extjs/resources/themes/images/default/sizer/e-handle.gif create mode 100755 docs/extjs/resources/themes/images/default/sizer/ne-handle-dark.gif create mode 100755 docs/extjs/resources/themes/images/default/sizer/ne-handle.gif create mode 100755 docs/extjs/resources/themes/images/default/sizer/nw-handle-dark.gif create mode 100755 docs/extjs/resources/themes/images/default/sizer/nw-handle.gif create mode 100755 docs/extjs/resources/themes/images/default/sizer/s-handle-dark.gif create mode 100755 docs/extjs/resources/themes/images/default/sizer/s-handle.gif create mode 100755 docs/extjs/resources/themes/images/default/sizer/se-handle-dark.gif create mode 100755 docs/extjs/resources/themes/images/default/sizer/se-handle.gif create mode 100755 docs/extjs/resources/themes/images/default/sizer/square.gif create mode 100755 docs/extjs/resources/themes/images/default/sizer/sw-handle-dark.gif create mode 100755 docs/extjs/resources/themes/images/default/sizer/sw-handle.gif create mode 100755 docs/extjs/resources/themes/images/default/slider/slider-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/slider/slider-bg.png create mode 100755 docs/extjs/resources/themes/images/default/slider/slider-thumb.gif create mode 100755 docs/extjs/resources/themes/images/default/slider/slider-thumb.png create mode 100755 docs/extjs/resources/themes/images/default/slider/slider-v-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/slider/slider-v-bg.png create mode 100755 docs/extjs/resources/themes/images/default/slider/slider-v-thumb.gif create mode 100755 docs/extjs/resources/themes/images/default/slider/slider-v-thumb.png create mode 100755 docs/extjs/resources/themes/images/default/tab-bar/scroll-left.gif create mode 100755 docs/extjs/resources/themes/images/default/tab-bar/scroll-right.gif create mode 100755 docs/extjs/resources/themes/images/default/tab-bar/tab-bar-default-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-bottom-active-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-bottom-active-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-bottom-active-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-bottom-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-bottom-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-bottom-disabled-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-bottom-disabled-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-bottom-disabled-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-bottom-over-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-bottom-over-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-bottom-over-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-bottom-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-close.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-top-active-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-top-active-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-top-active-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-top-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-top-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-top-disabled-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-top-disabled-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-top-disabled-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-top-over-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-top-over-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-top-over-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-top-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/tip/tip-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/tip/tip-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/toolbar/more.gif create mode 100755 docs/extjs/resources/themes/images/default/toolbar/scroll-left.gif create mode 100755 docs/extjs/resources/themes/images/default/toolbar/scroll-right.gif create mode 100755 docs/extjs/resources/themes/images/default/toolbar/toolbar-default-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/tools/tool-sprite-tpl.gif create mode 100755 docs/extjs/resources/themes/images/default/tools/tool-sprites.gif create mode 100755 docs/extjs/resources/themes/images/default/tools/tools-sprites-trans.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/arrows.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/drop-above.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/drop-add.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/drop-append.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/drop-below.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/drop-between.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/drop-no.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/drop-over.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/drop-under.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/drop-yes.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/elbow-end-minus-nl.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/elbow-end-minus.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/elbow-end-plus-nl.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/elbow-end-plus.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/elbow-end.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/elbow-line.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/elbow-minus-nl.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/elbow-minus.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/elbow-plus-nl.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/elbow-plus.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/elbow.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/folder-open.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/folder.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/leaf.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/loading.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/s.gif create mode 100755 docs/extjs/resources/themes/images/default/util/splitter/mini-bottom.gif create mode 100755 docs/extjs/resources/themes/images/default/util/splitter/mini-left.gif create mode 100755 docs/extjs/resources/themes/images/default/util/splitter/mini-right.gif create mode 100755 docs/extjs/resources/themes/images/default/util/splitter/mini-top.gif create mode 100755 docs/extjs/resources/themes/images/default/window-header/window-header-default-bottom-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/window-header/window-header-default-bottom-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-bottom-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-bottom-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-left-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-left-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-right-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-right-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-top-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-top-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/window-header/window-header-default-left-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/window-header/window-header-default-left-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/window-header/window-header-default-right-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/window-header/window-header-default-right-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/window-header/window-header-default-top-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/window-header/window-header-default-top-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/window/window-default-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/window/window-default-sides.gif create mode 100644 docs/favicon.ico delete mode 100644 docs/frame.html create mode 100644 docs/output/Frame.js create mode 100644 docs/output/Stomp.js create mode 100644 docs/output/StompLogger.js create mode 100644 docs/output/StompUtils.js create mode 100644 docs/resources/css/app-851b66f18114a2a31d488e9c8d7cb964.css create mode 100644 docs/resources/css/reset.css create mode 100644 docs/resources/css/scrollbars.css create mode 100644 docs/resources/css/welcome.css create mode 100644 docs/resources/css/welcome_ie6.css create mode 100644 docs/resources/images/ajax-loader.gif create mode 100644 docs/resources/images/arrows.png create mode 100644 docs/resources/images/class-m.png create mode 100644 docs/resources/images/comment-bubble.png create mode 100644 docs/resources/images/comment.png create mode 100644 docs/resources/images/component-m.png create mode 100644 docs/resources/images/default-guide.png create mode 100644 docs/resources/images/doc-m.png create mode 100644 docs/resources/images/down-arr.png create mode 100644 docs/resources/images/elbow-end.gif create mode 100644 docs/resources/images/example-icons.png create mode 100644 docs/resources/images/expandcollapse.png create mode 100644 docs/resources/images/gettingstarted.jpg create mode 100644 docs/resources/images/group-expand-sprite.gif create mode 100644 docs/resources/images/guide-icon.png create mode 100644 docs/resources/images/guides.png create mode 100644 docs/resources/images/header.png create mode 100644 docs/resources/images/hero-extjs4-alt.png create mode 100644 docs/resources/images/icons.png create mode 100644 docs/resources/images/link-arrow-next.png create mode 100644 docs/resources/images/link-green-standard-over.png create mode 100644 docs/resources/images/link-green-standard.png create mode 100644 docs/resources/images/loading.gif create mode 100644 docs/resources/images/logo-screen-noglow.png create mode 100644 docs/resources/images/logo.png create mode 100644 docs/resources/images/member-collapsed.gif create mode 100644 docs/resources/images/member-expanded.gif create mode 100644 docs/resources/images/member-hover.gif create mode 100644 docs/resources/images/more.png create mode 100644 docs/resources/images/phone-l.jpg create mode 100644 docs/resources/images/phone-p.jpg create mode 100644 docs/resources/images/phone-small-l.jpg create mode 100644 docs/resources/images/phone-small-p.jpg create mode 100644 docs/resources/images/preview.png create mode 100644 docs/resources/images/print.png create mode 100644 docs/resources/images/sample-over.gif create mode 100644 docs/resources/images/search-box.png create mode 100644 docs/resources/images/sencha-stamp.png create mode 100644 docs/resources/images/singleton-m.png create mode 100644 docs/resources/images/tablet-l.jpg create mode 100644 docs/resources/images/tablet-p.jpg create mode 100644 docs/resources/images/tabs.png create mode 100644 docs/resources/images/text-bg.gif create mode 100644 docs/resources/images/version-tabs.png create mode 100644 docs/resources/images/vote-arrows.png create mode 100644 docs/resources/images/welcome-bg-js4.gif create mode 100644 docs/resources/images/x.png create mode 100644 docs/resources/images/x12.png create mode 100644 docs/resources/images/x122.png create mode 100644 docs/resources/prettify/prettify.css create mode 100644 docs/resources/prettify/prettify.js delete mode 100644 docs/rocco.css create mode 100644 docs/source/frame.html create mode 100644 docs/source/stomp.html create mode 100644 docs/source/stomp.logger.html create mode 100644 docs/source/stomp.utils.html delete mode 100644 docs/stomp-exceptions.html delete mode 100644 docs/stomp-utils.html delete mode 100644 docs/stomp.html create mode 100644 examples/app.js delete mode 100755 examples/stomp-consumer.js create mode 100644 examples/stomp-examples.js delete mode 100755 examples/stomp-producer-txn.js delete mode 100755 examples/stomp-producer.js create mode 100644 jsduckCategories.json create mode 100644 jsduckConfig.json delete mode 100644 lib/stomp-exceptions.js delete mode 100644 lib/stomp-utils.js create mode 100644 lib/stomp.logger.js create mode 100644 lib/stomp.utils.js create mode 100644 test/stomp.Integration.Tests.js create mode 100644 test/stomp.utils.Unit.Tests.js delete mode 100644 test/test-frame.js diff --git a/.gitignore b/.gitignore index 9f11b75..637d92c 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ .idea/ +node_modules/ \ No newline at end of file diff --git a/.jshintignore b/.jshintignore new file mode 100644 index 0000000..677def8 --- /dev/null +++ b/.jshintignore @@ -0,0 +1,2 @@ +node_modules/** +docs/** diff --git a/.jshintrc b/.jshintrc new file mode 100644 index 0000000..e0bf894 --- /dev/null +++ b/.jshintrc @@ -0,0 +1,96 @@ +{ + // JSHint Default Configuration File (as on JSHint website) + // See http://jshint.com/docs/ for more details + + "maxerr" : 50, // {int} Maximum error before stopping + + // Enforcing + "bitwise" : true, // true: Prohibit bitwise operators (&, |, ^, etc.) + "camelcase" : false, // true: Identifiers must be in camelCase + "curly" : true, // true: Require {} for every new block or scope + "eqeqeq" : true, // true: Require triple equals (===) for comparison + "forin" : true, // true: Require filtering for..in loops with obj.hasOwnProperty() + "immed" : false, // true: Require immediate invocations to be wrapped in parens e.g. `(function () { } ());` + "indent" : 4, // {int} Number of spaces to use for indentation + "latedef" : true, // true: Require variables/functions to be defined before being used; (DEFAULT:false) + "newcap" : false, // true: Require capitalization of all constructor functions e.g. `new F()` + "noarg" : true, // true: Prohibit use of `arguments.caller` and `arguments.callee` + "noempty" : false, // true: Prohibit use of empty blocks; (DEFAULT:true) + "nonew" : false, // true: Prohibit use of constructors for side-effects (without assignment) + "plusplus" : false, // true: Prohibit use of `++` & `--` + "quotmark" : false, // Quotation mark consistency: + // false : do nothing (default) + // true : ensure whatever is used is consistent + // "single" : require single quotes + // "double" : require double quotes + "undef" : true, // true: Require all non-global variables to be declared (prevents global leaks) + "unused" : false, // true: Require all defined variables be used (DEFAULT:true) + "strict" : true, // true: Requires all functions run in ES5 Strict Mode + "trailing" : false, // true: Prohibit trailing whitespaces + "maxparams" : false, // {int} Max number of formal params allowed per function + "maxdepth" : false, // {int} Max depth of nested blocks (within functions) + "maxstatements" : false, // {int} Max number statements per function + "maxcomplexity" : false, // {int} Max cyclomatic complexity per function + "maxlen" : false, // {int} Max number of characters per line + + // Relaxing + "asi" : false, // true: Tolerate Automatic Semicolon Insertion (no semicolons) + "boss" : false, // true: Tolerate assignments where comparisons would be expected + "debug" : false, // true: Allow debugger statements e.g. browser breakpoints. + "eqnull" : false, // true: Tolerate use of `== null` + "es5" : false, // true: Allow ES5 syntax (ex: getters and setters) + "esnext" : false, // true: Allow ES.next (ES6) syntax (ex: `const`) + "evil" : false, // true: Tolerate use of `eval` and `new Function()` + "expr" : true, // true: Tolerate `ExpressionStatement` as Programs (had to switch to true for sinon chai statments...calledOnce) + "funcscope" : false, // true: Tolerate defining variables inside control statements" + "globalstrict" : false, // true: Allow global "use strict" (also enables 'strict') + "iterator" : false, // true: Tolerate using the `__iterator__` property + "lastsemic" : false, // true: Tolerate omitting a semicolon for the last statement of a 1-line block + "laxbreak" : false, // true: Tolerate possibly unsafe line breakings + "laxcomma" : false, // true: Tolerate comma-first style coding + "loopfunc" : true, // true: Tolerate functions being defined in loops (DEFAULT:false) + "multistr" : false, // true: Tolerate multi-line strings + "proto" : false, // true: Tolerate using the `__proto__` property + "scripturl" : false, // true: Tolerate script-targeted URLs + "smarttabs" : false, // true: Tolerate mixed tabs/spaces when used for alignment + "shadow" : false, // true: Allows re-define variables later in code e.g. `var x=1; x=2;` + "sub" : false, // true: Tolerate using `[]` notation when it can still be expressed in dot notation + "supernew" : false, // true: Tolerate `new function () { ... };` and `new Object;` + "validthis" : false, // true: Tolerate using this in a non-constructor function + + // Environments + "browser" : true, // Web Browser (window, document, etc) + "couch" : false, // CouchDB + "devel" : true, // Development/debugging (alert, confirm, etc) + "dojo" : false, // Dojo Toolkit + "jquery" : true, // jQuery (DEFAULT:false) + "mootools" : false, // MooTools + "node" : true, // Node.js (DEFAULT:false) + "nonstandard" : false, // Widely adopted globals (escape, unescape, etc) + "prototypejs" : false, // Prototype and Scriptaculous + "rhino" : false, // Rhino + "worker" : false, // Web Workers + "wsh" : false, // Windows Scripting Host + "yui" : false, // Yahoo User Interface + + // Legacy + "nomen" : false, // true: Prohibit dangling `_` in variables + "onevar" : false, // true: Allow only one `var` statement per function + "passfail" : false, // true: Stop on first error + "white" : false, // true: Check against strict whitespace and indentation rules + + // Custom Globals + // additional predefined global variables + "predef" : [ + "process", + + // mocha testing + "should", + "describe", + "it", + "beforeEach", + "afterEach", + "before", + "after" + ] +} \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..0503277 --- /dev/null +++ b/Makefile @@ -0,0 +1,40 @@ +ACTIVEMQ_HOME = "/usr/local/Cellar/activemq/5.7.0" + +start:;@ \ + echo "...starting activemq server..."; \ + pushd ${ACTIVEMQ_HOME}; \ + bin/activemq start; \ + popd; \ + echo "----------------------------------------------------------------------------------------------------------"; \ + echo "----------------------------------------------------------------------------------------------------------"; \ + echo "Started!!!"; \ + echo "...http://localhost:8161/admin to manage activemq"; \ + echo "----------------------------------------------------------------------------------------------------------"; \ + echo "----------------------------------------------------------------------------------------------------------"; \ + +stop:;@ \ + echo "----------------------------------------------------------------------------------------------------------"; \ + echo "----------------------------------------------------------------------------------------------------------"; \ + echo "...stopping activemq server..."; \ + pushd ${ACTIVEMQ_HOME}; \ + bin/activemq stop \ + popd; \ + echo "----------------------------------------------------------------------------------------------------------"; \ + echo "----------------------------------------------------------------------------------------------------------"; \ + echo "Stopped!!!"; \ + +testUnit:;@echo "Running unit tests ..."; \ + ./node_modules/.bin/mocha ./test/*.Unit.Tests.js \ + --reporter spec \ + --recursive \ + --globals "logger,events,buffertools,SlowBuffer, util" + +testInt:;@echo "Running integration tests..."; \ + ./node_modules/.bin/mocha ./test/*.Integration.Tests.js \ + --reporter spec \ + --recursive \ + --timeout 2000 \ + --globals "logger" + +jsduck:;@echo "Running jsduck to build documentation..."; \ + jsduck --config=jsduckConfig.json \ No newline at end of file diff --git a/README.md b/README.md index fc3c656..2e057cb 100644 --- a/README.md +++ b/README.md @@ -17,16 +17,39 @@ For documentation see http://benjaminws.github.com/stomp-js/ ### Consumer -See examples/stomp-consumer.js +See examples/stomp-examples.js #listener() ### Producer -See examples/stomp-producer.js +See examples/stomp-examples.js #publishMessage() ### Producer with Transaction Support -See examples/stomp-producer-txn.js +See examples/stomp-examples.js #publishMessageWithTransaction() + +### App +To run the examples app, open 5 terminal windows. + +In each window, navigate to stomp-js folder. +Make sure active mq is running (you can modify the make file start/stop) + +In a each window, run one of the following: + node examples/app --file ./stomp-examples.js --debug false -- params ListenerA + node examples/app --file ./stomp-examples.js --debug false -- params ListenerB + node examples/app --file ./stomp-examples.js --debug false -- params ListenerC + node examples/app --file ./stomp-examples.js --debug false -- params ListenerAll + node examples/app --file ./stomp-examples.js --debug false -- params Publisher + +Once you run the publisher, you should see the listeners dequeue their messages. +There are 3 A, 2 B, and 1 C message. A and C are topics so Listener All should also get a copy of those, but B is a queue so Listener B should get 1 and Listener All should get 1. +Therefore, you should see the following output: +Listener A should get 3 messages +Listener B should get 1 message +Listener C should get 1 message +Listener All should get 5 messages + ### Contributors rofflwaffls -at- gmail.com +dkhunt27 -at- gmail.com \ No newline at end of file diff --git a/docs/app-20ea5717ade2476617d0305b69058533.js b/docs/app-20ea5717ade2476617d0305b69058533.js new file mode 100644 index 0000000..32fc015 --- /dev/null +++ b/docs/app-20ea5717ade2476617d0305b69058533.js @@ -0,0 +1 @@ +var CodeMirror=(function(){function v(aN,aK){var b2={},bk=v.defaults;for(var aA in bk){if(bk.hasOwnProperty(aA)){b2[aA]=(aK&&aK.hasOwnProperty(aA)?aK:bk)[aA]}}var aE=document.createElement("div");aE.className="CodeMirror"+(b2.lineWrapping?" CodeMirror-wrap":"");aE.innerHTML='
 
';if(aN.appendChild){aN.appendChild(aE)}else{aN(aE)}var bY=aE.firstChild,bn=bY.firstChild,bl=aE.lastChild,bN=bl.firstChild,ch=bN.firstChild,aI=ch.firstChild,aZ=aI.firstChild,bv=aI.nextSibling.firstChild,aw=bv.firstChild,bd=aw.nextSibling,bh=bd.nextSibling,ar=bh.nextSibling;cE();if(t){bn.style.width="0px"}if(!f){bv.draggable=true}bv.style.outline="none";if(b2.tabindex!=null){bn.tabIndex=b2.tabindex}if(b2.autofocus){bA()}if(!b2.gutter&&!b2.lineNumbers){aI.style.display="none"}if(m){bY.style.height="1px",bY.style.position="absolute"}try{cu("x")}catch(b9){if(b9.message.match(/runtime/i)){b9=new Error("A CodeMirror inside a P-style element does not work in Internet Explorer. (innerHTML bug)")}throw b9}var b8=new A(),ax=new A(),cQ;var cc,cz=new i([new ai([new e("")])]),ci,ck;bU();var cX={from:{line:0,ch:0},to:{line:0,ch:0},inverted:false};var cj,br,a0,bG=0,bc,co=false,ct=false;var cq,b7,aC,cO,aQ,bg,aT,cB;var be=0,cR=0,bM=0,bO=0;var b5;var bE="",aG;var aq={};at(function(){aX(b2.value||"");cq=false})();var a9=new k();s(bl,"mousedown",at(cl));s(bl,"dblclick",at(bX));s(bv,"selectstart",U);if(!O){s(bl,"contextmenu",a2)}s(bl,"scroll",function(){bG=bl.scrollTop;ce([]);if(b2.fixedGutter){aI.style.left=bl.scrollLeft+"px"}if(b2.onScroll){b2.onScroll(ca)}});s(window,"resize",function(){ce(true)});s(bn,"keyup",at(cm));s(bn,"input",aR);s(bn,"keydown",at(cd));s(bn,"keypress",at(bo));s(bn,"focus",cV);s(bn,"blur",aF);if(b2.dragDrop){s(bv,"dragstart",aJ);function bD(c0){if(b2.onDragEvent&&b2.onDragEvent(ca,P(c0))){return}x(c0)}s(bl,"dragenter",bD);s(bl,"dragover",bD);s(bl,"drop",at(ao))}s(bl,"paste",function(){bA();aR()});s(bn,"paste",aR);s(bn,"cut",at(function(){if(!b2.readOnly){bt("")}}));if(m){s(bN,"mouseup",function(){if(document.activeElement==bn){bn.blur()}bA()})}var cx;try{cx=(document.activeElement==bn)}catch(b9){}if(cx||b2.autofocus){setTimeout(cV,20)}else{aF()}function bs(c0){return c0>=0&&c0c0&&c4.y>c2.offsetHeight){c5=c4.y-c2.offsetHeight}if(c1+c2.offsetWidth>c7){c1=c7-c2.offsetWidth}}}c2.style.top=(c5+cs())+"px";c2.style.left=c2.style.right="";if(c8=="right"){c1=bN.clientWidth-c2.offsetWidth;c2.style.right="0px"}else{if(c8=="left"){c1=0}else{if(c8=="middle"){c1=(bN.clientWidth-c2.offsetWidth)/2}}c2.style.left=(c1+a6())+"px"}if(c6){aB(c1,c5,c1+c2.offsetWidth,c5+c2.offsetHeight)}},lineCount:function(){return cz.size},clipPos:aU,getCursor:function(c0){if(c0==null){c0=cX.inverted}return ab(c0?cX.from:cX.to)},somethingSelected:function(){return !ae(cX.from,cX.to)},setCursor:at(function(c0,c2,c1){if(c2==null&&typeof c0.line=="number"){a7(c0.line,c0.ch,c1)}else{a7(c0,c2,c1)}}),setSelection:at(function(c2,c1,c0){(c0?by:bx)(aU(c2),aU(c1||c2))}),getLine:function(c0){if(bs(c0)){return cG(c0).text}},getLineHandle:function(c0){if(bs(c0)){return cG(c0)}},setLine:at(function(c0,c1){if(bs(c0)){bR(c1,{line:c0,ch:0},{line:c0,ch:cG(c0).text.length})}}),removeLine:at(function(c0){if(bs(c0)){bR("",{line:c0,ch:0},aU({line:c0+1,ch:0}))}}),replaceRange:at(bR),getRange:function(c1,c0){return cP(aU(c1),aU(c0))},triggerOnKeyDown:at(cd),execCommand:function(c0){return M[c0](ca)},moveH:at(cF),deleteH:at(cn),moveV:at(cy),toggleOverwrite:function(){if(co){co=false;bd.className=bd.className.replace(" CodeMirror-overwrite","")}else{co=true;bd.className+=" CodeMirror-overwrite"}},posFromIndex:function(c1){var c2=0,c0;cz.iter(0,cz.size,function(c3){var c4=c3.text.length+1;if(c4>c1){c0=c1;return true}c1-=c4;++c2});return aU({line:c2,ch:c0})},indexFromPos:function(c1){if(c1.line<0||c1.ch<0){return 0}var c0=c1.ch;cz.iter(0,c1.line,function(c2){c0+=c2.text.length+1});return c0},scrollTo:function(c0,c1){if(c0!=null){bl.scrollLeft=c0}if(c1!=null){bl.scrollTop=c1}ce([])},operation:function(c0){return at(c0)()},compoundChange:function(c0){return bP(c0)},refresh:function(){ce(true);if(bl.scrollHeight>bG){bl.scrollTop=bG}},getInputField:function(){return bn},getWrapperElement:function(){return aE},getScrollerElement:function(){return bl},getGutterElement:function(){return aI}};function cG(c0){return D(cz,c0)}function a4(c1,c0){aT=true;var c2=c0-c1.height;for(var c3=c1;c3;c3=c3.parent){c3.height+=c2}}function aX(c0){var c1={line:0,ch:0};aP(c1,{line:cz.size-1,ch:cG(cz.size-1).text.length},B(c0),c1,c1);cq=true}function b3(){var c0=[];cz.iter(0,cz.size,function(c1){c0.push(c1.text)});return c0.join("\n")}function cl(c9){a5(z(c9,"shiftKey"));for(var c4=j(c9);c4!=aE;c4=c4.parentNode){if(c4.parentNode==bN&&c4!=ch){return}}for(var c4=j(c9);c4!=aE;c4=c4.parentNode){if(c4.parentNode==aZ){if(b2.onGutterClick){b2.onGutterClick(ca,r(aZ.childNodes,c4)+cR,c9)}return U(c9)}}var c0=a3(c9);switch(y(c9)){case 3:if(O&&!N){a2(c9)}return;case 2:if(c0){a7(c0.line,c0.ch,true)}return}if(!c0){if(j(c9)==bl){U(c9)}return}if(!ck){cV()}var c1=+new Date;if(a0&&a0.time>c1-400&&ae(a0.pos,c0)){U(c9);setTimeout(bA,20);return aL(c0.line)}else{if(br&&br.time>c1-400&&ae(br.pos,c0)){a0={time:c1,pos:c0};U(c9);return bJ(c0)}else{br={time:c1,pos:c0}}}var db=c0,c2;if(b2.dragDrop&&G&&!b2.readOnly&&!ae(cX.from,cX.to)&&!aa(c0,cX.from)&&!aa(cX.to,c0)){if(f){bv.draggable=true}function c5(dc){if(f){bv.draggable=false}bc=false;c8();c3();if(Math.abs(c9.clientX-dc.clientX)+Math.abs(c9.clientY-dc.clientY)<10){U(dc);a7(c0.line,c0.ch,true);bA()}}var c8=s(document,"mouseup",at(c5),true);var c3=s(bl,"drop",at(c5),true);bc=true;if(bv.dragDrop){bv.dragDrop()}return}U(c9);a7(c0.line,c0.ch,true);function da(dc){var de=a3(dc,true);if(de&&!ae(de,db)){if(!ck){cV()}db=de;by(c0,de);cq=false;var dd=bB();if(de.line>=dd.to||de.line-1){setTimeout(at(function(){bz(cX.to.line,"smart")}),75)}}if(bZ(c3,c1)){return}aR()}function cm(c0){if(b2.onKeyEvent&&b2.onKeyEvent(ca,P(c0))){return}if(z(c0,"keyCode")==16){cj=null}}function cV(){if(b2.readOnly=="nocursor"){return}if(!ck){if(b2.onFocus){b2.onFocus(ca)}ck=true;if(aE.className.search(/\bCodeMirror-focused\b/)==-1){aE.className+=" CodeMirror-focused"}if(!bg){cD(true)}}an();cN()}function aF(){if(ck){if(b2.onBlur){b2.onBlur(ca)}ck=false;if(b5){at(function(){if(b5){b5();b5=null}})()}aE.className=aE.className.replace(" CodeMirror-focused","")}clearInterval(cQ);setTimeout(function(){if(!ck){cj=null}},150)}function aP(c5,c4,c3,c1,c0){if(ct){return}if(a9){var c2=[];cz.iter(c5.line,c4.line+1,function(c6){c2.push(c6.text)});a9.addChange(c5.line,c3.length,c2);while(a9.done.length>b2.undoDepth){a9.done.shift()}}au(c5,c4,c3,c1,c0)}function cb(c5,c6){if(!c5.length){return}var c7=c5.pop(),c1=[];for(var c2=c7.length-1;c2>=0;c2-=1){var c4=c7[c2];var c8=[],c0=c4.start+c4.added;cz.iter(c4.start,c0,function(c9){c8.push(c9.text)});c1.push({start:c4.start,added:c4.old.length,old:c8});var c3=aU({line:c4.start+c4.old.length-1,ch:X(c8[c8.length-1],c4.old[c4.old.length-1])});au({line:c4.start,ch:0},{line:c0-1,ch:cG(c0-1).text.length},c4.old,c3,c3)}cq=true;c6.push(c1)}function cU(){cb(a9.done,a9.undone)}function cK(){cb(a9.undone,a9.done)}function au(df,c4,dl,c0,dm){if(ct){return}var dk=false,c3=bE.length;if(!b2.lineWrapping){cz.iter(df.line,c4.line+1,function(dn){if(dn.text.length==c3){dk=true;return true}})}if(df.line!=c4.line||dl.length>1){aT=true}var dc=c4.line-df.line,db=cG(df.line),c1=cG(c4.line);if(df.ch==0&&c4.ch==0&&dl[dl.length-1]==""){var c9=[],da=null;if(df.line){da=cG(df.line-1);da.fixMarkEnds(c1)}else{c1.fixMarkStarts()}for(var dh=0,dj=dl.length-1;dh1){cz.remove(df.line+1,dc-1,cB)}cz.insert(df.line+1,c9)}}}if(b2.lineWrapping){var c6=Math.max(5,bl.clientWidth/bi()-3);cz.iter(df.line,df.line+dl.length,function(dn){if(dn.hidden){return}var dp=Math.ceil(dn.text.length/c6)||1;if(dp!=dn.height){a4(dn,dp)}})}else{cz.iter(df.line,df.line+dl.length,function(dp){var dn=dp.text;if(dn.length>c3){bE=dn;c3=dn.length;aG=null;dk=false}});if(dk){c3=0;bE="";aG=null;cz.iter(0,cz.size,function(dp){var dn=dp.text;if(dn.length>c3){c3=dn.length;bE=dn}})}}var c2=[],c8=dl.length-dc-1;for(var dh=0,de=ci.length;dhc4.line){c2.push(di+c8)}}}var dg=df.line+Math.min(dl.length,500);cI(df.line,dg);c2.push(dg);ci=c2;bH(100);aC.push({from:df.line,to:c4.line+1,diff:c8});var c7={from:df,to:c4,text:dl};if(cO){for(var c5=cO;c5.next;c5=c5.next){}c5.next=c7}else{cO=c7}function dd(dn){return dn<=Math.min(c4.line,c4.line+c8)?dn:dn+c8}bx(c0,dm,dd(cX.from.line),dd(cX.to.line));if(bl.clientHeight){bN.style.height=(cz.height*bQ()+2*cs())+"px"}}function bR(c1,c4,c3){c4=aU(c4);if(!c3){c3=c4}else{c3=aU(c3)}c1=B(c1);function c2(c7){if(aa(c7,c4)){return c7}if(!aa(c3,c7)){return c0}var c5=c7.line+c1.length-(c3.line-c4.line)-1;var c6=c7.ch;if(c7.line==c3.line){c6+=c1[c1.length-1].length-(c3.ch-(c3.line==c4.line?c4.ch:0))}return{line:c5,ch:c6}}var c0;aD(c1,c4,c3,function(c5){c0=c5;return{from:c2(cX.from),to:c2(cX.to)}});return c0}function bt(c0,c1){aD(B(c0),cX.from,cX.to,function(c2){if(c1=="end"){return{from:c2,to:c2}}else{if(c1=="start"){return{from:cX.from,to:cX.from}}else{return{from:cX.from,to:c2}}}})}function aD(c3,c5,c4,c0){var c2=c3.length==1?c3[0].length+c5.ch:c3[c3.length-1].length;var c1=c0({line:c5.line+c3.length-1,ch:c2});aP(c5,c4,c3,c1.from,c1.to)}function cP(c4,c3){var c1=c4.line,c0=c3.line;if(c1==c0){return cG(c1).text.slice(c4.ch,c3.ch)}var c2=[cG(c1).text.slice(c4.ch)];cz.iter(c1+1,c0,function(c5){c2.push(c5.text)});c2.push(cG(c0).text.slice(0,c3.ch));return c2.join("\n")}function b4(){return cP(cX.from,cX.to)}var bu=false;function an(){if(bu){return}b8.set(b2.pollInterval,function(){aO();bL();if(ck){an()}az()})}function aR(){var c0=false;bu=true;function c1(){aO();var c2=bL();if(!c2&&!c0){c0=true;b8.set(60,c1)}else{bu=false;an()}az()}b8.set(20,c1)}var bb="";function bL(){if(bg||!ck||af(bn)||b2.readOnly){return false}var c1=bn.value;if(c1==bb){return false}cj=null;var c2=0,c0=Math.min(bb.length,c1.length);while(c2c1){bd.scrollIntoView()}}function cg(){var c1=cS(cX.inverted?cX.from:cX.to);var c0=b2.lineWrapping?Math.min(c1.x,bv.offsetWidth):c1.x;return aB(c0,c1.y,c0,c1.yBot)}function aB(c2,c8,c0,c7){var c5=a6(),dd=cs();c8+=dd;c7+=dd;c2+=c5;c0+=c5;var da=bl.clientHeight,c3=bl.scrollTop,c1=false,dc=true;if(c8c3+da){bl.scrollTop=c7-da;c1=true}}var c9=bl.clientWidth,db=bl.scrollLeft;var c6=b2.fixedGutter?aI.clientWidth:0;var c4=c2c9+db-3){bl.scrollLeft=c0+10-c9;c1=true;if(c0>bN.clientWidth){dc=false}}}if(c1&&b2.onScroll){b2.onScroll(ca)}return dc}function bB(){var c0=bQ(),c3=bl.scrollTop-cs();var c2=Math.max(0,Math.floor(c3/c0));var c1=Math.ceil((c3+bl.clientHeight)/c0);return{from:Y(cz,c2),to:Y(cz,c1)}}function ce(c8,c4){if(!bl.clientWidth){cR=bM=be=0;return}var c3=bB();if(c8!==true&&c8.length==0&&c3.from>cR&&c3.toda&&bM-da<20){da=Math.min(cz.size,bM)}var dc=c8===true?[]:b1([{from:cR,to:bM,domStart:0}],c8);var c7=0;for(var c5=0;c5da){c6.to=da}if(c6.from>=c6.to){dc.splice(c5--,1)}else{c7+=c6.to-c6.from}}if(c7==da-c9&&c9==cR&&da==bM){return}dc.sort(function(de,dd){return de.domStart-dd.domStart});var c2=bQ(),c0=aI.style.display;ar.style.display="none";aS(c9,da,dc);ar.style.display=aI.style.display="";var c1=c9!=cR||da!=bM||bO!=bl.clientHeight+c2;if(c1){bO=bl.clientHeight+c2}cR=c9;bM=da;be=g(cz,c9);ch.style.top=(be*c2)+"px";if(bl.clientHeight){bN.style.height=(cz.height*c2+2*cs())+"px"}if(ar.childNodes.length!=bM-cR){throw new Error("BAD PATCH! "+JSON.stringify(dc)+" size="+(bM-cR)+" nodes="+ar.childNodes.length)}function db(){aG=bl.clientWidth;var de=ar.firstChild,dd=false;cz.iter(cR,bM,function(dg){if(!dg.hidden){var df=Math.round(de.offsetHeight/c2)||1;if(dg.height!=df){a4(dg,df);aT=dd=true}}de=de.nextSibling});if(dd){bN.style.height=(cz.height*c2+2*cs())+"px"}return dd}if(b2.lineWrapping){db()}else{if(aG==null){aG=cu(bE)}if(aG>bl.clientWidth){bv.style.width=aG+"px";bN.style.width="";bN.style.width=bl.scrollWidth+"px"}else{bv.style.width=bN.style.width=""}}aI.style.display=c0;if(c1||aT){aM()&&b2.lineWrapping&&db()&&aM()}cW();if(!c4&&b2.onUpdate){b2.onUpdate(ca)}return true}function b1(c9,c7){for(var c4=0,c2=c7.length||0;c4=c5.to){c0.push(c5)}else{if(c6.from>c5.from){c0.push({from:c5.from,to:c6.from,domStart:c5.domStart})}if(c6.toc4){c2=c0(c2);c4++}for(var c3=0,c7=db.to-db.from;c3c3){if(dd.hidden){var de=c8.innerHTML="
"}else{var de=""+dd.getHTML(ba)+"";if(dd.bgClassName){de='
 
'+de+"
"}}c8.innerHTML=de;ar.insertBefore(c8.firstChild,c2)}else{c2=c2.nextSibling}++c3})}function aM(){if(!b2.gutter&&!b2.lineNumbers){return}var c1=ch.offsetHeight,c9=bl.clientHeight;aI.style.height=(c1-c9<2?c9:c1)+"px";var c7=[],c5=cR,c8;cz.iter(cR,Math.max(bM,cR+1),function(db){if(db.hidden){c7.push("
")}else{var da=db.gutterMarker;var dd=b2.lineNumbers?c5+b2.firstLineNumber:null;if(da&&da.text){dd=da.text.replace("%N%",dd!=null?dd:"")}else{if(dd==null){dd="\u00a0"}}c7.push((da&&da.style?'
':"
"),dd);for(var dc=1;dc ")}c7.push("
");if(!da){c8=c5}}++c5});aI.style.display="none";aZ.innerHTML=c7.join("");if(c8!=null){var c3=aZ.childNodes[c8-cR];var c4=String(cz.size).length,c0=I(c3),c2="";while(c0.length+c2.length2;bv.style.marginLeft=aI.offsetWidth+"px";aT=false;return c6}function cW(){var c3=ae(cX.from,cX.to);var de=cS(cX.from,true);var c9=c3?de:cS(cX.to,true);var c7=cX.inverted?de:c9,c1=bQ();var c0=al(aE),c2=al(ar);bY.style.top=Math.max(0,Math.min(bl.offsetHeight,c7.y+c2.top-c0.top))+"px";bY.style.left=Math.max(0,Math.min(bl.offsetWidth,c7.x+c2.left-c0.left))+"px";if(c3){bd.style.top=c7.y+"px";bd.style.left=(b2.lineWrapping?Math.min(c7.x,bv.offsetWidth):c7.x)+"px";bd.style.display="";bh.style.display="none"}else{var dc=de.y==c9.y,c5="";var da=bv.clientWidth||bv.offsetWidth;var c6=bv.clientHeight||bv.offsetHeight;function dd(dj,di,dh,df){var dg=F?"width: "+(!dh?da:da-dh-dj)+"px":"right: "+dh+"px";c5+='
'}if(cX.from.ch&&de.y>=0){var db=dc?da-c9.x:0;dd(de.x,de.y,db,c1)}var c4=Math.max(0,de.y+(cX.from.ch?c1:0));var c8=Math.min(c9.y,c6)-c4;if(c8>0.2*c1){dd(0,c4,0,c8)}if((!dc||!cX.from.ch)&&c9.yc2||c9>c6.text.length){c9=c6.text.length}return{line:da,ch:c9}}da+=c8}}var c0=cG(c5.line);var c3=c5.ch==c0.text.length&&c5.ch!=c2;if(!c0.hidden){return c5}if(c5.line>=c1){return c4(1)||c4(-1)}else{return c4(-1)||c4(1)}}function a7(c0,c2,c1){var c3=aU({line:c0,ch:c2||0});(c1?by:bx)(c3,c3)}function b0(c0){return Math.max(0,Math.min(c0,cz.size-1))}function aU(c2){if(c2.line<0){return{line:0,ch:0}}if(c2.line>=cz.size){return{line:cz.size-1,ch:cG(cz.size-1).text.length}}var c0=c2.ch,c1=cG(c2.line).text.length;if(c0==null||c0>c1){return{line:c2.line,ch:c1}}else{if(c0<0){return{line:c2.line,ch:0}}else{return c2}}}function cp(c3,c7){var c4=cX.inverted?cX.from:cX.to,c8=c4.line,c0=c4.ch;var c6=cG(c8);function c1(){for(var c9=c8+c3,db=c3<0?-1:cz.size;c9!=db;c9+=c3){var da=cG(c9);if(!da.hidden){c8=c9;c6=da;return true}}}function c5(c9){if(c0==(c3<0?0:c6.text.length)){if(!c9&&c1()){c0=c3<0?c6.text.length:0}else{return false}}else{c0+=c3}return true}if(c7=="char"){c5()}else{if(c7=="column"){c5(true)}else{if(c7=="word"){var c2=false;for(;;){if(c3<0){if(!c5()){break}}if(ah(c6.text.charAt(c0))){c2=true}else{if(c2){if(c3<0){c3=1;c5()}break}}if(c3>0){if(!c5()){break}}}}}}return{line:c8,ch:c0}}function cF(c0,c1){var c2=c0<0?cX.from:cX.to;if(cj||ae(cX.from,cX.to)){c2=cp(c0,c1)}a7(c2.line,c2.ch,true)}function cn(c0,c1){if(!ae(cX.from,cX.to)){bR("",cX.from,cX.to)}else{if(c0<0){bR("",cp(c0,c1),cX.to)}else{bR("",cX.from,cp(c0,c1))}}b7=true}var cw=null;function cy(c0,c1){var c3=0,c4=cS(cX.inverted?cX.from:cX.to,true);if(cw!=null){c4.x=cw}if(c1=="page"){c3=Math.min(bl.clientHeight,window.innerHeight||document.documentElement.clientHeight)}else{if(c1=="line"){c3=bQ()}}var c2=bI(c4.x,c4.y+c3*c0+2);if(c1=="page"){bl.scrollTop+=cS(c2,true).y-c4.y}a7(c2.line,c2.ch,true);cw=c4.x}function bJ(c3){var c1=cG(c3.line).text;var c2=c3.ch,c0=c3.ch;while(c2>0&&ah(c1.charAt(c2-1))){--c2}while(c0bE.length){bE=c3.text}})}aC.push({from:0,to:cz.size})}function ba(c1){var c0=b2.tabSize-c1%b2.tabSize,c3=aq[c0];if(c3){return c3}for(var c4='',c2=0;c2",width:c0})}function cE(){bl.className=bl.className.replace(/\s*cm-s-\S+/g,"")+b2.theme.replace(/(^|\s)\s*/g," cm-s-")}function cY(){this.set=[]}cY.prototype.clear=at(function(){var c5=Infinity,c1=-Infinity;for(var c4=0,c7=this.set.length;c4=c5.ch)){c4.push(c0.marker||c0)}}return c4}function bW(c0,c2,c1){if(typeof c0=="number"){c0=cG(b0(c0))}c0.gutterMarker={text:c2,style:c1};aT=true;return c0}function av(c0){if(typeof c0=="number"){c0=cG(b0(c0))}c0.gutterMarker=null;aT=true}function aY(c1,c3){var c2=c1,c0=c1;if(typeof c1=="number"){c0=cG(b0(c1))}else{c2=Z(c1)}if(c2==null){return null}if(c3(c0,c2)){aC.push({from:c2,to:c2+1})}else{return null}return c0}function bm(c1,c0,c2){return aY(c1,function(c3){if(c3.className!=c0||c3.bgClassName!=c2){c3.className=c0;c3.bgClassName=c2;return true}})}function cL(c1,c0){return aY(c1,function(c2,c5){if(c2.hidden!=c0){c2.hidden=c0;a4(c2,c0?0:1);var c4=cX.from.line,c3=cX.to.line;if(c0&&(c4==c5||c3==c5)){var c7=c4==c5?bS({line:c4,ch:0},c4,0):cX.from;var c6=c3==c5?bS({line:c3,ch:0},c3,0):cX.to;if(!c6){return}bx(c7,c6)}return(aT=true)}})}function aW(c1){if(typeof c1=="number"){if(!bs(c1)){return null}var c2=c1;c1=cG(c1);if(!c1){return null}}else{var c2=Z(c1);if(c2==null){return null}}var c0=c1.gutterMarker;return{line:c2,handle:c1,text:c1.text,markerText:c0&&c0.text,markerClass:c0&&c0.style,lineClass:c1.className,bgClass:c1.bgClassName}}function cu(c0){aw.innerHTML="
x
";aw.firstChild.firstChild.firstChild.nodeValue=c0;return aw.firstChild.firstChild.offsetWidth||10}function aH(dc,c6){if(c6<=0){return 0}var c3=cG(dc),c9=c3.text;function da(dd){return b6(c3,dd).left}var c7=0,c5=0,c8=c9.length,c4;var c1=Math.min(c8,Math.ceil(c6/bi()));for(;;){var c2=da(c1);if(c2<=c6&&c1c4){return c8}c1=Math.floor(c8*0.8);c2=da(c1);if(c2c6-c5)?c7:c8}var db=Math.ceil((c7+c8)/2),c0=da(db);if(c0>c6){c8=db;c4=c0}else{c7=db;c5=c0}}}var cA="CodeMirror-temp-"+Math.floor(Math.random()*16777215).toString(16);function b6(c1,c4){if(c4==0){return{top:0,left:0}}var c0=b2.lineWrapping&&c4"+c1.getHTML(ba,c4,cA,c0)+"
";var c3=document.getElementById(cA);var c6=c3.offsetTop,c5=c3.offsetLeft;if(J&&c6==0&&c5==0){var c2=document.createElement("span");c2.innerHTML="x";c3.parentNode.insertBefore(c2,c3.nextSibling);c6=c2.offsetTop}return{top:c6,left:c5}}function cS(c5,c3){var c0,c1=bQ(),c4=c1*(g(cz,c5.line)-(c3?be:0));if(c5.ch==0){c0=0}else{var c2=b6(cG(c5.line),c5.ch);c0=c2.left;if(b2.lineWrapping){c4+=Math.max(0,c2.top)}}return{x:c0,y:c4,yBot:c4+c1}}function bI(c9,c8){if(c8<0){c8=0}var c6=bQ(),c4=bi(),df=be+Math.floor(c8/c6);var da=Y(cz,df);if(da>=cz.size){return{line:cz.size-1,ch:cG(cz.size-1).text.length}}var c1=cG(da),dc=c1.text;var dh=b2.lineWrapping,c7=dh?df-g(cz,da):0;if(c9<=0&&c7==0){return{line:da,ch:0}}function dg(dj){var dk=b6(c1,dj);if(dh){var dl=Math.round(dk.top/c6);return Math.max(0,dk.left+(dl-c7)*bl.clientWidth)}return dk.left}var de=0,dd=0,c2=dc.length,c0;var db=Math.min(c2,Math.ceil((c9+c7*bl.clientWidth*0.9)/c4));for(;;){var c5=dg(db);if(c5<=c9&&dbc0){return{line:da,ch:c2}}db=Math.floor(c2*0.8);c5=dg(db);if(c5c9-dd)?de:c2}}var di=Math.ceil((de+c2)/2),c3=dg(di);if(c3>c9){c2=di;c0=c3}else{de=di;dd=c3}}}function ap(c2){var c0=cS(c2,true),c1=al(bv);return{x:c1.left+c0.x,y:c1.top+c0.y,yBot:c1.top+c0.yBot}}var a1,ay,bV;function bQ(){if(bV==null){bV="
";for(var c1=0;c1<49;++c1){bV+="x
"}bV+="x
"}var c0=ar.clientHeight;if(c0==ay){return a1}ay=c0;aw.innerHTML=bV;a1=aw.firstChild.offsetHeight/50||1;aw.innerHTML="";return a1}var cT,bw=0;function bi(){if(bl.clientWidth==bw){return cT}bw=bl.clientWidth;return(cT=cu("x"))}function cs(){return bv.offsetTop}function a6(){return bv.offsetLeft}function a3(c4,c3){var c2=al(bl,true),c0,c5;try{c0=c4.clientX;c5=c4.clientY}catch(c4){return null}if(!c3&&(c0-c2.left>bl.clientWidth||c5-c2.top>bl.clientHeight)){return null}var c1=al(bv,true);return bI(c0-c1.left,c5-c1.top)}function a2(c1){var c6=a3(c1),c5=bl.scrollTop;if(!c6||window.opera){return}if(ae(cX.from,cX.to)||aa(c6,cX.from)||!aa(c6,cX.to)){at(a7)(c6.line,c6.ch)}var c4=bn.style.cssText;bY.style.position="absolute";bn.style.cssText="position: fixed; width: 30px; height: 30px; top: "+(c1.clientY-5)+"px; left: "+(c1.clientX-5)+"px; z-index: 1000; background: white; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);";bg=true;var c3=bn.value=b4();bA();a(bn);function c0(){var c7=B(bn.value).join("\n");if(c7!=c3){at(bt)(c7,"end")}bY.style.position="relative";bn.style.cssText=c4;if(C){bl.scrollTop=c5}bg=false;cD(true);an()}if(O){x(c1);var c2=s(window,"mouseup",function(){c2();setTimeout(c0,20)},true)}else{setTimeout(c0,50)}}function cN(){clearInterval(cQ);var c0=true;bd.style.visibility="";cQ=setInterval(function(){bd.style.visibility=(c0=!c0)?"":"hidden"},650)}var bq={"(":")>",")":"(<","[":"]>","]":"[<","{":"}>","}":"{<"};function cf(c6){var c0=cX.inverted?cX.from:cX.to,c8=cG(c0.line),c1=c0.ch-1;var c5=(c1>=0&&bq[c8.text.charAt(c1)])||bq[c8.text.charAt(++c1)];if(!c5){return}var c9=c5.charAt(0),c7=c5.charAt(1)==">",dj=c7?1:-1,de=c8.styles;for(var dk=c1+1,dg=0,di=de.length;dg=ds&&dr"==c7){c3.push(du)}else{if(c3.pop()!=dp.charAt(0)){return{pos:dr,match:false}}else{if(!c3.length){return{pos:dr,match:true}}}}}}}}for(var dg=c0.line,di=c7?Math.min(dg+100,cz.size):Math.max(-1,dg-100);dg!=di;dg+=dj){var c8=cG(dg),c4=dg==c0.line;var da=db(c8,c4&&c7?c1+1:0,c4&&!c7?c1:c8.text.length);if(da){break}}if(!da){da={pos:null,match:false}}var dh=da.match?"CodeMirror-matchingbracket":"CodeMirror-nonmatchingbracket";var df=bF({line:c0.line,ch:c1},{line:c0.line,ch:c1+1},dh),c2=da.pos!=null&&bF({line:dg,ch:da.pos},{line:dg,ch:da.pos+1},dh);var dc=at(function(){df.clear();c2&&c2.clear()});if(c6){setTimeout(dc,800)}else{b5=dc}}function a8(c6){var c5,c2;for(var c1=c6,c3=c6-40;c1>c3;--c1){if(c1==0){return 0}var c0=cG(c1-1);if(c0.stateAfter){return c1}var c4=c0.indentation(b2.tabSize);if(c2==null||c5>c4){c2=c1-1;c5=c4}}return c2}function cv(c2){var c1=a8(c2),c0=c1&&cG(c1-1).stateAfter;if(!c0){c0=W(cc)}else{c0=p(cc,c0)}cz.iter(c1,c2,function(c3){c3.highlight(cc,c0,b2.tabSize);c3.stateAfter=p(cc,c0)});if(c1=cz.size){continue}var c1=a8(c3),c0=c1&&cG(c1-1).stateAfter;if(c0){c0=p(cc,c0)}else{c0=W(cc)}var c5=0,c2=cc.compareStates,c8=false,c7=c1,c4=false;cz.iter(c7,cz.size,function(db){var dc=db.stateAfter;if(+new Date>c6){ci.push(c7);bH(b2.workDelay);if(c8){aC.push({from:c3,to:c7+1})}return(c4=true)}var dd=db.highlight(cc,c0,b2.tabSize);if(dd){c8=true}db.stateAfter=p(cc,c0);var da=null;if(c2){var de=dc&&c2(dc,c0);if(de!=ac){da=!!de}}if(da==null){if(dd!==false||!dc){c5=0}else{if(++c5>3&&(!cc.indent||cc.indent(dc,"")==cc.indent(c0,""))){da=true}}}if(da){return true}++c7});if(c4){return}if(c8){aC.push({from:c3,to:c7+1})}}if(c9&&b2.onHighlightComplete){b2.onHighlightComplete(ca)}}function bH(c0){if(!ci.length){return}ax.set(c0,at(bT))}function aO(){cq=b7=cO=null;aC=[];aQ=false;cB=[]}function az(){var c4=false,c1;if(aQ){c4=!cg()}if(aC.length){c1=ce(aC,true)}else{if(aQ){cW()}if(aT){aM()}}if(c4){cg()}if(aQ){cZ();cN()}if(ck&&!bg&&(cq===true||(cq!==false&&aQ))){cD(b7)}if(aQ&&b2.matchBrackets){setTimeout(at(function(){if(b5){b5();b5=null}if(ae(cX.from,cX.to)){cf(false)}}),20)}var c0=cO,c2=cB;if(aQ&&b2.onCursorActivity){b2.onCursorActivity(ca)}if(c0&&b2.onChange&&ca){b2.onChange(ca,c0)}for(var c3=0;c32){ap.dependencies=[];for(var ao=2;ao0&&ap.ch=this.string.length},sol:function(){return this.pos==0},peek:function(){return this.string.charAt(this.pos)},next:function(){if(this.posao},eatSpace:function(){var an=this.pos;while(/[\s\u00a0]/.test(this.string.charAt(this.pos))){++this.pos}return this.pos>an},skipToEnd:function(){this.pos=this.string.length},skipTo:function(an){var ao=this.string.indexOf(an,this.pos);if(ao>-1){this.pos=ao;return true}},backUp:function(an){this.pos-=an},column:function(){return n(this.string,this.start,this.tabSize)},indentation:function(){return n(this.string,null,this.tabSize)},match:function(aq,ao,an){if(typeof aq=="string"){function ar(at){return an?at.toLowerCase():at}if(ar(this.string).indexOf(ar(aq),this.pos)==this.pos){if(ao!==false){this.pos+=aq.length}return true}}else{var ap=this.string.slice(this.pos).match(aq);if(ap&&ao!==false){this.pos+=ap[0].length}return ap}},current:function(){return this.string.slice(this.start,this.pos)}};v.StringStream=b;function L(aq,ap,ao,an){this.from=aq;this.to=ap;this.style=ao;this.marker=an}L.prototype={attach:function(an){this.marker.set.push(an)},detach:function(ao){var an=r(this.marker.set,ao);if(an>-1){this.marker.set.splice(an,1)}},split:function(aq,an){if(this.to<=aq&&this.to!=null){return null}var ap=this.fromthis.from&&(aq=ar){this.from=Math.max(aq,this.from)+ap}}if(an&&(arthis.from||this.from==null)){this.to=null}else{if(this.to!=null&&this.to>ar){this.to=aq=this.to},sameSet:function(an){return this.marker==an.marker}};function H(an){this.from=an;this.to=an;this.line=null}H.prototype={attach:function(an){this.line=an},detach:function(an){if(this.line==an){this.line=null}},split:function(ao,an){if(aothis.to},clipTo:function(ao,ar,an,aq,ap){if((ao||arthis.to)){this.from=0;this.to=-1}else{if(this.from>ar){this.from=this.to=Math.max(aq,this.from)+ap}}},sameSet:function(an){return false},find:function(){if(!this.line||!this.line.parent){return null}return{line:Z(this.line),ch:this.from}},clear:function(){if(this.line){var an=r(this.line.marked,this);if(an!=-1){this.line.marked.splice(an,1)}this.line=null}}};function e(ao,an){this.styles=an||[ao,null];this.text=ao;this.height=1;this.marked=this.gutterMarker=this.className=this.bgClassName=this.handlers=null;this.stateAfter=this.parent=this.hidden=null}e.inheritMarks=function(ar,av){var aq=new e(ar),an=av&&av.marked;if(an){for(var ap=0;ap5000){ay[av++]=this.text.slice(ax.pos);ay[av++]=null;break}}if(ay.length!=av){ay.length=av;ar=true}if(av&&ay[av-2]!=aw){ar=true}return ar||(ay.length<5&&this.text.length<10?null:false)},getTokenAt:function(at,aq,ap){var an=this.text,ar=new b(an);while(ar.pos',aY,"")}else{ay.push(aY)}}var aM=aJ;if(an!=null){var aH=0,aC='';aM=function(aX,aW){var aV=aX.length;if(an>=aH&&anaH){aJ(aX.slice(0,an-aH),aW);if(ar){ay.push("")}}ay.push(aC);aJ(aX.slice(an-aH),aW);ay.push("");an--;aH+=aV}else{aH+=aV;aJ(aX,aW);if(aH==an&&aH==aR){ay.push(aC+"")}else{if(aH>an+10&&/\s/.test(aX)){aM=function(){}}}}}}var aG=this.styles,ax=this.text,aD=this.marked;var aR=ax.length;function at(aV){if(!aV){return null}return"cm-"+aV.replace(/ +/g," cm-")}if(!ax&&an==null){aM(" ")}else{if(!aD||!aD.length){for(var aO=0,az=0;azaR){aF=aF.slice(0,aR-az)}az+=aI;aM(aF,at(aQ))}}else{var av=0,aO=0,aB="",aQ,aU=0;var aT=aD[0].from||0,aL=[],aS=0;function aP(){var aV;while(aSaA?aB.slice(0,aA-av):aB,ao);if(aq>=aA){aB=aB.slice(aA-av);av=aA;break}av=aq}aB=aG[aO++];aQ=at(aG[aO++])}}}}return ay.join("")},cleanUp:function(){this.parent=null;if(this.marked){for(var an=0,ao=this.marked.length;anau){aw.push(ap.slice(au-at,Math.min(ap.length,av-at)),an[ar+1])}if(aq>=au){ao=1}}else{if(ao==1){if(aq>av){aw.push(ap.slice(0,av-at),an[ar+1])}else{aw.push(ap,an[ar+1])}}}at=aq}}function ai(ao){this.lines=ao;this.parent=null;for(var ap=0,aq=ao.length,an=0;ap50){while(an.lines.length>50){var aq=an.lines.splice(an.lines.length-25,25);var av=new ai(aq);an.height-=av.height;this.children.splice(ap+1,0,av);av.parent=this}this.maybeSpill()}break}ao-=au}},maybeSpill:function(){if(this.children.length<=10){return}var aq=this;do{var ao=aq.children.splice(aq.children.length-5,5);var ap=new i(ao);if(!aq.parent){var ar=new i(aq.children);ar.parent=aq;aq.children=[ar,ap];aq=ar}else{aq.size-=ap.size;aq.height-=ap.height;var an=r(aq.parent.children,aq);aq.parent.children.splice(an+1,0,ap)}ap.parent=aq.parent}while(aq.children.length>10);aq.parent.maybeSpill()},iter:function(ap,ao,an){this.iterN(ap,ao-ap,an)},iterN:function(an,aw,av){for(var ao=0,ar=this.children.length;ao400||!aw||this.closed||aw.start>an+ao.length||aw.start+aw.added0;--aq){aw.old.unshift(ao[aq-1])}for(var aq=ax;aq>0;--aq){aw.old.push(ao[ao.length-aq])}if(au){aw.start=an}aw.added+=at-(ao.length-au-ax)}}this.time=ap},startCompound:function(){if(!this.compound++){this.closed=true}},endCompound:function(){if(!--this.compound){this.closed=true}}};function K(){x(this)}function P(an){if(!an.stop){an.stop=K}return an}function U(an){if(an.preventDefault){an.preventDefault()}else{an.returnValue=false}}function E(an){if(an.stopPropagation){an.stopPropagation()}else{an.cancelBubble=true}}function x(an){U(an);E(an)}v.e_stop=x;v.e_preventDefault=U;v.e_stopPropagation=E;function j(an){return an.target||an.srcElement}function y(an){if(an.which){return an.which}else{if(an.button&1){return 1}else{if(an.button&2){return 3}else{if(an.button&4){return 2}}}}}function z(ao,ap){var an=ao.override&&ao.override.hasOwnProperty(ap);return an?ao.override[ap]:ao[ap]}function s(aq,ap,ao,an){if(typeof aq.addEventListener=="function"){aq.addEventListener(ap,ao,false);if(an){return function(){aq.removeEventListener(ap,ao,false)}}}else{var ar=function(at){ao(at||window.event)};aq.attachEvent("on"+ap,ar);if(an){return function(){aq.detachEvent("on"+ap,ar)}}}}v.connect=s;function A(){this.id=null}A.prototype={set:function(an,ao){clearTimeout(this.id);this.id=setTimeout(ao,an)}};var ac=v.Pass={toString:function(){return"CodeMirror.Pass"}};var O=/gecko\/\d{7}/i.test(navigator.userAgent);var J=/MSIE \d/.test(navigator.userAgent);var C=/MSIE [1-8]\b/.test(navigator.userAgent);var F=J&&document.documentMode==5;var f=/WebKit\//.test(navigator.userAgent);var ag=/Chrome\//.test(navigator.userAgent);var h=/Apple Computer/.test(navigator.vendor);var m=/KHTML\//.test(navigator.userAgent);var G=function(){if(C){return false}var an=document.createElement("div");return"draggable" in an||"dragDrop" in an}();var d=function(){var an=document.createElement("textarea");an.value="foo\nbar";if(an.value.indexOf("\r")>-1){return"\r\n"}return"\n"}();var o=/^$/;if(O){o=/$'/}else{if(h){o=/\-[^ \-?]|\?[^ !'\"\),.\-\/:;\?\]\}]/}else{if(ag){o=/\-[^ \-\.?]|\?[^ \-\.?\]\}:;!'\"\),\/]|[\.!\"#&%\)*+,:;=>\]|\}~][\(\{\[<]|\$'/}}}function n(ao,an,aq){if(an==null){an=ao.search(/[^\s\u00a0]/);if(an==-1){an=ao.length}}for(var ap=0,ar=0;ap=0&&an>=0;--ao,--an){if(aq.charAt(ao)!=ap.charAt(an)){break}}return an+1}function r(aq,an){if(aq.indexOf){return aq.indexOf(an)}for(var ao=0,ap=aq.length;ao-1){an.push(ap.slice(aq,ap.charAt(ao-1)=="\r"?ao-1:ao));aq=ao+1}an.push(ap.slice(aq));return an}:function(an){return an.split(/\r?\n/)};v.splitLines=B;var af=window.getSelection?function(ao){try{return ao.selectionStart!=ao.selectionEnd}catch(an){return false}}:function(ap){try{var an=ap.ownerDocument.selection.createRange()}catch(ao){}if(!an||an.parentElement()!=ap){return false}return an.compareEndPoints("StartToEnd",an)!=0};v.defineMode("null",function(){return{token:function(an){an.skipToEnd()}}});v.defineMIME("text/plain","null");var S={3:"Enter",8:"Backspace",9:"Tab",13:"Enter",16:"Shift",17:"Ctrl",18:"Alt",19:"Pause",20:"CapsLock",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"PrintScrn",45:"Insert",46:"Delete",59:";",91:"Mod",92:"Mod",93:"Mod",127:"Delete",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",63276:"PageUp",63277:"PageDown",63275:"End",63273:"Home",63234:"Left",63232:"Up",63235:"Right",63233:"Down",63302:"Insert",63272:"Delete"};v.keyNames=S;(function(){for(var an=0;an<10;an++){S[an+48]=String(an)}for(var an=65;an<=90;an++){S[an]=String.fromCharCode(an)}for(var an=1;an<=12;an++){S[an+111]=S[an+63235]="F"+an}})();return v})();CodeMirror.defineMode("javascript",function(J,N){var w=J.indentUnit;var R=N.json;var b=function(){function X(aa){return{type:aa,style:"keyword"}}var U=X("keyword a"),Z=X("keyword b"),Y=X("keyword c");var V=X("operator"),W={type:"atom",style:"atom"};return{"if":U,"while":U,"with":U,"else":Z,"do":Z,"try":Z,"finally":Z,"return":Y,"break":Y,"continue":Y,"new":Y,"delete":Y,"throw":Y,"var":X("var"),"const":X("var"),let:X("var"),"function":X("function"),"catch":X("catch"),"for":X("for"),"switch":X("switch"),"case":X("case"),"default":X("default"),"in":V,"typeof":V,"instanceof":V,"true":W,"false":W,"null":W,"undefined":W,"NaN":W,"Infinity":W}}();var O=/[+\-*&%=<>!?|]/;function S(W,V,U){V.tokenize=U;return U(W,V)}function h(X,U){var W=false,V;while((V=X.next())!=null){if(V==U&&!W){return false}W=!W&&V=="\\"}return W}var T,p;function C(W,V,U){T=W;p=U;return V}function l(Y,W){var U=Y.next();if(U=='"'||U=="'"){return S(Y,W,A(U))}else{if(/[\[\]{}\(\),;\:\.]/.test(U)){return C(U)}else{if(U=="0"&&Y.eat(/x/i)){Y.eatWhile(/[\da-f]/i);return C("number","number")}else{if(/\d/.test(U)){Y.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/);return C("number","number")}else{if(U=="/"){if(Y.eat("*")){return S(Y,W,f)}else{if(Y.eat("/")){Y.skipToEnd();return C("comment","comment")}else{if(W.reAllowed){h(Y,"/");Y.eatWhile(/[gimy]/);return C("regexp","string-2")}else{Y.eatWhile(O);return C("operator",null,Y.current())}}}}else{if(U=="#"){Y.skipToEnd();return C("error","error")}else{if(O.test(U)){Y.eatWhile(O);return C("operator",null,Y.current())}else{Y.eatWhile(/[\w\$_]/);var X=Y.current(),V=b.propertyIsEnumerable(X)&&b[X];return(V&&W.kwAllowed)?C(V.type,V.style,X):C("variable","variable",X)}}}}}}}}function A(U){return function(W,V){if(!h(W,U)){V.tokenize=l}return C("string","string")}}function f(X,W){var U=false,V;while(V=X.next()){if(V=="/"&&U){W.tokenize=l;break}U=(V=="*")}return C("comment","comment")}var k={atom:true,number:true,variable:true,string:true,regexp:true};function u(Z,V,U,Y,W,X){this.indented=Z;this.column=V;this.type=U;this.prev=W;this.info=X;if(Y!=null){this.align=Y}}function x(W,V){for(var U=W.localVars;U;U=U.next){if(U.name==V){return true}}}function F(Y,V,U,X,Z){var aa=Y.cc;v.state=Y;v.stream=Z;v.marked=null,v.cc=aa;if(!Y.lexical.hasOwnProperty("align")){Y.lexical.align=true}while(true){var W=aa.length?aa.pop():R?y:z;if(W(U,X)){while(aa.length&&aa[aa.length-1].lex){aa.pop()()}if(v.marked){return v.marked}if(U=="variable"&&x(Y,X)){return"variable-2"}return V}}}var v={state:null,column:null,marked:null,cc:null};function a(){for(var U=arguments.length-1;U>=0;U--){v.cc.push(arguments[U])}}function H(){a.apply(null,arguments);return true}function m(V){var W=v.state;if(W.context){v.marked="def";for(var U=W.localVars;U;U=U.next){if(U.name==V){return}}W.localVars={name:V,next:W.localVars}}}var E={name:"this",next:{name:"arguments"}};function t(){if(!v.state.context){v.state.localVars=E}v.state.context={prev:v.state.context,vars:v.state.localVars}}function s(){v.state.localVars=v.state.context.vars;v.state.context=v.state.context.prev}function j(V,W){var U=function(){var X=v.state;X.lexical=new u(X.indented,v.stream.column(),V,null,X.lexical,W)};U.lex=true;return U}function G(){var U=v.state;if(U.lexical.prev){if(U.lexical.type==")"){U.indented=U.lexical.indented}U.lexical=U.lexical.prev}}G.lex=true;function c(V){return function U(W){if(W==V){return H()}else{if(V==";"){return a()}else{return H(arguments.callee)}}}}function z(U){if(U=="var"){return H(j("vardef"),K,c(";"),G)}if(U=="keyword a"){return H(j("form"),y,z,G)}if(U=="keyword b"){return H(j("form"),z,G)}if(U=="{"){return H(j("}"),n,G)}if(U==";"){return H()}if(U=="function"){return H(i)}if(U=="for"){return H(j("form"),c("("),j(")"),g,c(")"),G,z,G)}if(U=="variable"){return H(j("stat"),D)}if(U=="switch"){return H(j("form"),y,j("}","switch"),c("{"),n,G,G)}if(U=="case"){return H(y,c(":"))}if(U=="default"){return H(c(":"))}if(U=="catch"){return H(j("form"),t,c("("),r,c(")"),z,G,s)}return a(j("stat"),y,c(";"),G)}function y(U){if(k.hasOwnProperty(U)){return H(M)}if(U=="function"){return H(i)}if(U=="keyword c"){return H(B)}if(U=="("){return H(j(")"),B,c(")"),G,M)}if(U=="operator"){return H(y)}if(U=="["){return H(j("]"),P(y,"]"),G,M)}if(U=="{"){return H(j("}"),P(o,"}"),G,M)}return H()}function B(U){if(U.match(/[;\}\)\],]/)){return a()}return a(y)}function M(U,V){if(U=="operator"&&/\+\+|--/.test(V)){return H(M)}if(U=="operator"||U==":"){return H(y)}if(U==";"){return}if(U=="("){return H(j(")"),P(y,")"),G,M)}if(U=="."){return H(Q,M)}if(U=="["){return H(j("]"),y,c("]"),G,M)}}function D(U){if(U==":"){return H(G,z)}return a(M,c(";"),G)}function Q(U){if(U=="variable"){v.marked="property";return H()}}function o(U){if(U=="variable"){v.marked="property"}if(k.hasOwnProperty(U)){return H(c(":"),y)}}function P(W,U){function V(Y){if(Y==","){return H(W,V)}if(Y==U){return H()}return H(c(U))}return function X(Y){if(Y==U){return H()}else{return a(W,V)}}}function n(U){if(U=="}"){return H()}return a(z,n)}function K(U,V){if(U=="variable"){m(V);return H(I)}return H()}function I(U,V){if(V=="="){return H(y,I)}if(U==","){return H(K)}}function g(U){if(U=="var"){return H(K,e)}if(U==";"){return a(e)}if(U=="variable"){return H(L)}return a(e)}function L(U,V){if(V=="in"){return H(y)}return H(M,e)}function e(U,V){if(U==";"){return H(d)}if(V=="in"){return H(y)}return H(y,c(";"),d)}function d(U){if(U!=")"){H(y)}}function i(U,V){if(U=="variable"){m(V);return H(i)}if(U=="("){return H(j(")"),t,P(r,")"),G,z,s)}}function r(U,V){if(U=="variable"){m(V);return H()}}return{startState:function(U){return{tokenize:l,reAllowed:true,kwAllowed:true,cc:[],lexical:new u((U||0)-w,0,"block",false),localVars:N.localVars,context:N.localVars&&{vars:N.localVars},indented:0}},token:function(W,V){if(W.sol()){if(!V.lexical.hasOwnProperty("align")){V.lexical.align=false}V.indented=W.indentation()}if(W.eatSpace()){return null}var U=V.tokenize(W,V);if(T=="comment"){return U}V.reAllowed=!!(T=="operator"||T=="keyword c"||T.match(/^[\[{}\(,;:]$/));V.kwAllowed=T!=".";return F(V,U,T,p,W)},indent:function(Z,U){if(Z.tokenize!=l){return 0}var Y=U&&U.charAt(0),W=Z.lexical;if(W.type=="stat"&&Y=="}"){W=W.prev}var X=W.type,V=Y==X;if(X=="vardef"){return W.indented+4}else{if(X=="form"&&Y=="{"){return W.indented}else{if(X=="stat"||X=="form"){return W.indented+w}else{if(W.info=="switch"&&!V){return W.indented+(/^(?:case|default)\b/.test(U)?w:2*w)}else{if(W.align){return W.column+(V?0:1)}else{return W.indented+(V?0:w)}}}}}},electricChars:":{}"}});CodeMirror.defineMIME("text/javascript","javascript");CodeMirror.defineMIME("application/json",{name:"javascript",json:true});CodeMirror.defineMode("xml",function(z,k){var s=z.indentUnit;var y=k.htmlMode?{autoSelfClosers:{area:true,base:true,br:true,col:true,command:true,embed:true,frame:true,hr:true,img:true,input:true,keygen:true,link:true,meta:true,param:true,source:true,track:true,wbr:true},implicitlyClosed:{dd:true,li:true,optgroup:true,option:true,p:true,rp:true,rt:true,tbody:true,td:true,tfoot:true,th:true,tr:true},contextGrabbers:{dd:{dd:true,dt:true},dt:{dd:true,dt:true},li:{li:true},option:{option:true,optgroup:true},optgroup:{optgroup:true},p:{address:true,article:true,aside:true,blockquote:true,dir:true,div:true,dl:true,fieldset:true,footer:true,form:true,h1:true,h2:true,h3:true,h4:true,h5:true,h6:true,header:true,hgroup:true,hr:true,menu:true,nav:true,ol:true,p:true,pre:true,section:true,table:true,ul:true},rp:{rp:true,rt:true},rt:{rp:true,rt:true},tbody:{tbody:true,tfoot:true},td:{td:true,th:true},tfoot:{tbody:true},th:{td:true,th:true},thead:{tbody:true,tfoot:true},tr:{tr:true}},doNotIndent:{pre:true},allowUnquoted:true,allowMissing:false}:{autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:false,allowMissing:false};var a=k.alignCDATA;var f,g;function o(F,E){function C(H){E.tokenize=H;return H(F,E)}var D=F.next();if(D=="<"){if(F.eat("!")){if(F.eat("[")){if(F.match("CDATA[")){return C(x("atom","]]>"))}else{return null}}else{if(F.match("--")){return C(x("comment","-->"))}else{if(F.match("DOCTYPE",true,true)){F.eatWhile(/[\w\._\-]/);return C(A(1))}else{return null}}}}else{if(F.eat("?")){F.eatWhile(/[\w\._\-]/);E.tokenize=x("meta","?>");return"meta"}else{g=F.eat("/")?"closeTag":"openTag";F.eatSpace();f="";var G;while((G=F.eat(/[^\s\u00a0=<>\"\'\/?]/))){f+=G}E.tokenize=n;return"tag"}}}else{if(D=="&"){var B;if(F.eat("#")){if(F.eat("x")){B=F.eatWhile(/[a-fA-F\d]/)&&F.eat(";")}else{B=F.eatWhile(/[\d]/)&&F.eat(";")}}else{B=F.eatWhile(/[\w\.\-:]/)&&F.eat(";")}return B?"atom":"error"}else{F.eatWhile(/[^&<]/);return null}}}function n(D,C){var B=D.next();if(B==">"||(B=="/"&&D.eat(">"))){C.tokenize=o;g=B==">"?"endTag":"selfcloseTag";return"tag"}else{if(B=="="){g="equals";return null}else{if(/[\'\"]/.test(B)){C.tokenize=j(B);return C.tokenize(D,C)}else{D.eatWhile(/[^\s\u00a0=<>\"\'\/?]/);return"word"}}}}function j(B){return function(D,C){while(!D.eol()){if(D.next()==B){C.tokenize=n;break}}return"string"}}function x(C,B){return function(E,D){while(!E.eol()){if(E.match(B)){D.tokenize=o;break}E.next()}return C}}function A(B){return function(E,D){var C;while((C=E.next())!=null){if(C=="<"){D.tokenize=A(B+1);return D.tokenize(E,D)}else{if(C==">"){if(B==1){D.tokenize=o;break}else{D.tokenize=A(B-1);return D.tokenize(E,D)}}}}return"meta"}}var l,h;function b(){for(var B=arguments.length-1;B>=0;B--){l.cc.push(arguments[B])}}function e(){b.apply(null,arguments);return true}function i(B,D){var C=y.doNotIndent.hasOwnProperty(B)||(l.context&&l.context.noIndent);l.context={prev:l.context,tagName:B,indent:l.indented,startOfLine:D,noIndent:C}}function v(){if(l.context){l.context=l.context.prev}}function d(B){if(B=="openTag"){l.tagName=f;return e(m,c(l.startOfLine))}else{if(B=="closeTag"){var C=false;if(l.context){if(l.context.tagName!=f){if(y.implicitlyClosed.hasOwnProperty(l.context.tagName.toLowerCase())){v()}C=!l.context||l.context.tagName!=f}}else{C=true}if(C){h="error"}return e(t(C))}}return e()}function c(B){return function(C){if(C=="selfcloseTag"||(C=="endTag"&&y.autoSelfClosers.hasOwnProperty(l.tagName.toLowerCase()))){r(l.tagName.toLowerCase());return e()}if(C=="endTag"){r(l.tagName.toLowerCase());i(l.tagName,B);return e()}return e()}}function t(B){return function(C){if(B){h="error"}if(C=="endTag"){v();return e()}h="error";return e(arguments.callee)}}function r(C){var B;while(true){if(!l.context){return}B=l.context.tagName.toLowerCase();if(!y.contextGrabbers.hasOwnProperty(B)||!y.contextGrabbers[B].hasOwnProperty(C)){return}v()}}function m(B){if(B=="word"){h="attribute";return e(p,m)}if(B=="endTag"||B=="selfcloseTag"){return b()}h="error";return e(m)}function p(B){if(B=="equals"){return e(w,m)}if(!y.allowMissing){h="error"}return(B=="endTag"||B=="selfcloseTag")?b():e()}function w(B){if(B=="string"){return e(u)}if(B=="word"&&y.allowUnquoted){h="string";return e()}h="error";return(B=="endTag"||B=="selfCloseTag")?b():e()}function u(B){if(B=="string"){return e(u)}else{return b()}}return{startState:function(){return{tokenize:o,cc:[],indented:0,startOfLine:true,tagName:null,context:null}},token:function(E,D){if(E.sol()){D.startOfLine=true;D.indented=E.indentation()}if(E.eatSpace()){return null}h=g=f=null;var C=D.tokenize(E,D);D.type=g;if((C||g)&&C!="comment"){l=D;while(true){var B=D.cc.pop()||d;if(B(g||C)){break}}}D.startOfLine=false;return h||C},indent:function(E,B,D){var C=E.context;if((E.tokenize!=n&&E.tokenize!=o)||C&&C.noIndent){return D?D.match(/^(\s*)/)[0].length:0}if(a&&/`]+/;function e(J,I,H){I.f=I.inline=H;return H(J,I)}function s(J,I,H){I.f=I.block=H;return H(J,I)}function o(H){H.em=false;H.strong=false;return null}function l(J,I){var H;if(I.indentationDiff>=4){I.indentation-=I.indentationDiff;J.skipToEnd();return d}else{if(J.eatSpace()){return null}else{if(J.peek()==="#"||J.match(n)){I.header=true}else{if(J.eat(">")){I.indentation++;I.quote=true}else{if(J.peek()==="["){return e(J,I,k)}else{if(J.match(G,true)){return F}else{if(H=J.match(p,true)||J.match(v,true)){I.indentation+=H[0].length;return A}}}}}}}return e(J,I,I.inline)}function y(J,I){var H=i.token(J,I.htmlState);if(H==="tag"&&I.htmlState.type!=="openTag"&&!I.htmlState.context){I.f=r;I.block=l}return H}function u(I){var H=[];if(I.strong){H.push(I.em?x:j)}else{if(I.em){H.push(g)}}if(I.header){H.push(z)}if(I.quote){H.push(B)}return H.length?H.join(" "):null}function b(I,H){if(I.match(f,true)){return u(H)}return undefined}function r(L,K){var J=K.text(L,K);if(typeof J!=="undefined"){return J}var I=L.next();if(I==="\\"){L.next();return u(K)}if(I==="`"){return e(L,K,w(d,"`"))}if(I==="["){return e(L,K,D)}if(I==="<"&&L.match(/^\w/,false)){L.backUp(1);return s(L,K,y)}var H=u(K);if(I==="*"||I==="_"){if(L.eat(I)){return(K.strong=!K.strong)?u(K):H}return(K.em=!K.em)?u(K):H}return u(K)}function D(J,I){while(!J.eol()){var H=J.next();if(H==="\\"){J.next()}if(H==="]"){I.inline=I.f=h;return t}}return t}function h(J,I){J.eatSpace();var H=J.next();if(H==="("||H==="["){return e(J,I,w(E,H==="("?")":"]"))}return"error"}function k(I,H){if(I.match(/^[^\]]*\]:/,true)){H.f=a;return t}return e(I,H,r)}function a(I,H){I.eatSpace();I.match(/^[^\s]+/,true);H.f=H.inline=r;return E}function c(H){if(!c[H]){c[H]=new RegExp("^(?:[^\\\\\\"+H+"]|\\\\.)*(?:\\"+H+"|$)")}return c[H]}function w(I,J,H){H=H||r;return function(L,K){L.match(c(J));K.inline=K.f=H;return I}}return{startState:function(){return{f:l,block:l,htmlState:i.startState(),indentation:0,inline:r,text:b,em:false,strong:false,header:false,quote:false}},copyState:function(H){return{f:H.f,block:H.block,htmlState:CodeMirror.copyState(i,H.htmlState),indentation:H.indentation,inline:H.inline,text:H.text,em:H.em,strong:H.strong,header:H.header,quote:H.quote}},token:function(J,I){if(J.sol()){if(J.match(/^\s*$/,true)){return o(I)}I.header=false;I.quote=false;I.f=I.block;var H=J.match(/^\s*/,true)[0].replace(/\t/g," ").length;I.indentationDiff=H-I.indentation;I.indentation=H;if(H>0){return null}}return I.f(J,I)},blankLine:o,getType:u}},"xml");CodeMirror.defineMIME("text/x-markdown","markdown");Ext.define("Docs.History",{singleton:true,init:function(){Ext.util.History.useTopWindow=false;Ext.util.History.init(function(){this.historyLoaded=true;this.initialNavigate()},this);Ext.util.History.on("change",function(b){this.navigate(b,true)},this)},notifyTabsLoaded:function(){this.tabsLoaded=true;this.initialNavigate()},initialNavigate:function(){if(this.tabsLoaded&&this.historyLoaded){this.navigate(Ext.util.History.getToken(),true)}},navigate:function(e,g){var f=this.parseToken(e);if(f.url=="#!/api"){Docs.App.getController("Classes").loadIndex(g)}else{if(f.type==="api"){Docs.App.getController("Classes").loadClass(f.url,g)}else{if(f.url==="#!/guide"){Docs.App.getController("Guides").loadIndex(g)}else{if(f.type==="guide"){Docs.App.getController("Guides").loadGuide(f.url,g)}else{if(f.url==="#!/video"){Docs.App.getController("Videos").loadIndex(g)}else{if(f.type==="video"){Docs.App.getController("Videos").loadVideo(f.url,g)}else{if(f.url==="#!/example"){Docs.App.getController("Examples").loadIndex()}else{if(f.type==="example"){Docs.App.getController("Examples").loadExample(f.url,g)}else{if(f.url==="#!/comment"){Docs.App.getController("Comments").loadIndex()}else{if(f.url==="#!/tests"){Docs.App.getController("Tests").loadIndex()}else{if(Docs.App.getController("Welcome").isActive()){Docs.App.getController("Welcome").loadIndex(g)}else{if(!this.noRepeatNav){this.noRepeatNav=true;var h=Ext.getCmp("doctabs").staticTabs[0];if(h){this.navigate(h.href,g)}}}}}}}}}}}}}},parseToken:function(d){var c=d&&d.match(/!?(\/(api|guide|example|video|comment|tests)(\/(.*))?)/);return c?{type:c[2],url:"#!"+c[1]}:{}},push:function(e,f){e=this.cleanUrl(e);if(!/^#!?/.test(e)){e="#!"+e}var d=Ext.util.History.getToken()||"";if("#"+d.replace(/^%21/,"!")!==e){Ext.util.History.add(e)}},cleanUrl:function(b){return b.replace(/^[^#]*#/,"#")}});Ext.define("Docs.view.examples.Container",{extend:"Ext.container.Container",alias:"widget.examplecontainer",layout:"fit",initComponent:function(){this.tpl=new Ext.XTemplate('');this.callParent(arguments)},load:function(b){this.update(this.tpl.apply(b))},clear:function(){this.update("")}});Ext.define("Docs.controller.Content",{extend:"Ext.app.Controller",MIDDLE:1,title:"",loadIndex:function(b){b||Docs.History.push(this.baseUrl);this.getViewport().setPageTitle(this.title);Ext.getCmp("doctabs").activateTab(this.baseUrl);Ext.getCmp("card-panel").layout.setActiveItem(this.getIndex());this.getIndex().restoreScrollState()},opensNewWindow:function(b){return b.button===this.MIDDLE||b.shiftKey||b.ctrlKey},getBaseUrl:function(){return document.location.href.replace(/\/?(index.html|template.html)?#.*/,"")}});Ext.define("Docs.CommentCounts",{constructor:function(b){this.counts={};Ext.Array.each(b,function(a){this.counts[a._id]=a.value},this)},get:function(b){return this.counts[b.join("__")]||0},change:function(c,d){delete this.totals;return this.counts[c.join("__")]=this.get(c)+d},getClassTotal:function(b){if(!this.totals){this.totals={};Ext.Object.each(this.counts,function(a,f){var e=a.split("__");if(e[0]==="class"){this.totals[e[1]]=(this.totals[e[1]]||0)+f}},this)}return this.totals[b]}});Ext.define("Docs.CommentSubscriptions",{constructor:function(b){this.subscriptions={};Ext.Array.each(b,function(a){this.subscriptions[a.join("__")]=true},this)},has:function(b){return this.subscriptions[b.join("__")]},set:function(c,d){this.subscriptions[c.join("__")]=d}});Ext.define("Docs.Auth",{singleton:true,requires:["Ext.Ajax","Ext.util.Cookies"],init:function(c,d){Ext.Ajax.request({url:Docs.data.commentsUrl+"/session",params:{sid:this.getSid()},method:"GET",cors:true,callback:function(g,a,h){if(h&&h.responseText){var b=Ext.JSON.decode(h.responseText);if(b&&b.sessionID){this.setSid(b.sessionID)}if(b&&b.userName){this.currentUser=b}c.call(d,true)}else{c.call(d,false)}},scope:this})},login:function(b){Ext.Ajax.request({url:Docs.data.commentsUrl+"/login",method:"POST",cors:true,params:{username:b.username,password:b.password},callback:function(h,f,a){var g=Ext.JSON.decode(a.responseText);if(g.success){this.currentUser=g;this.setSid(g.sessionID,b.remember);b.success&&b.success.call(b.scope)}else{b.failure&&b.failure.call(b.scope,g.reason)}},scope:this})},logout:function(c,d){Ext.Ajax.request({url:Docs.data.commentsUrl+"/logout?sid="+this.getSid(),method:"POST",cors:true,callback:function(){this.currentUser=undefined;c&&c.call(d)},scope:this})},setSid:function(d,f){this.sid=d;if(d){var e=null;if(f){e=new Date();e.setTime(e.getTime()+(60*60*24*30*1000))}Ext.util.Cookies.set("sid",d,e)}else{Ext.util.Cookies.clear("sid")}},getSid:function(){if(!this.sid){this.sid=Ext.util.Cookies.get("sid")}return this.sid},getUser:function(){return this.currentUser},isLoggedIn:function(){return !!this.getUser()},isModerator:function(){return this.getUser()&&this.getUser().mod},getRegistrationUrl:function(){return Docs.data.commentsUrl+"/register"}});Ext.define("Docs.view.TabMenu",{extend:"Ext.menu.Menu",plain:true,componentCls:"tab-menu",initComponent:function(){this.addEvents("tabItemClick","closeAllTabs");this.items=[{text:"Close other tabs",iconCls:"close",cls:"close-all",handler:function(){this.fireEvent("closeAllTabs")},scope:this}];this.callParent()},addTab:function(c,d){this.insert(this.items.length-1,{text:c.text,iconCls:c.iconCls,origIcon:c.iconCls,href:c.href,cls:d,handler:this.onTabItemClick,scope:this})},onTabItemClick:function(b){this.fireEvent("tabItemClick",b)},addTabCls:function(c,d){this.items.each(function(a){if(a.href===c.href){a.addCls(d)}})}});Ext.define("Docs.LocalStore",{storeName:"",init:function(){this.localStorage=!!window.localStorage;this.store=Ext.create(this.storeName);if(this.localStorage){this.cleanup();this.store.load();if(window.addEventListener){window.addEventListener("storage",Ext.Function.bind(this.onStorageChange,this),false)}else{window.attachEvent("onstorage",Ext.Function.bind(this.onStorageChange,this))}}},onStorageChange:function(b){b=b||window.event;if(b.key===this.store.getProxy().id){this.store.load()}},syncStore:function(){this.localStorage&&this.store.sync()},cleanup:function(){var f=/-settings/;for(var d=0;d$&");c.fullName=c.fullName.replace(d,"$&");return c}});Ext.define("Docs.store.Search",{extend:"Ext.data.Store",fields:["name","fullName","icon","url","meta","sort"],proxy:{type:"memory",reader:{type:"json"}}});Ext.define("Docs.view.search.Dropdown",{extend:"Ext.view.View",alias:"widget.searchdropdown",floating:true,autoShow:false,autoRender:true,toFrontOnShow:true,focusOnToFront:false,store:"Search",id:"search-dropdown",overItemCls:"x-view-over",trackOver:true,itemSelector:"div.item",singleSelect:true,pageStart:0,pageSize:10,initComponent:function(){this.addEvents("changePage","footerClick");this.tpl=new Ext.XTemplate('','
','
','
{[this.getMetaTags(values.meta)]}
','
{name}
','
{fullName}
',"
","
",'",{getCls:function(b){return b["private"]?"private":(b.removed?"removed":"")},getMetaTags:function(b){return Ext.Array.map(Docs.data.signatures,function(a){return b[a.key]?''+(a["short"])+"":""}).join(" ")},getTotal:Ext.bind(this.getTotal,this),getStart:Ext.bind(this.getStart,this),getEnd:Ext.bind(this.getEnd,this)});this.on("afterrender",function(){this.el.addListener("click",function(){this.fireEvent("changePage",this,-1)},this,{preventDefault:true,delegate:".prev"});this.el.addListener("click",function(){this.fireEvent("changePage",this,+1)},this,{preventDefault:true,delegate:".next"});this.el.addListener("click",function(){this.fireEvent("footerClick",this)},this,{delegate:".footer"})},this);this.callParent(arguments)},setTotal:function(b){this.total=b},getTotal:function(){return this.total},setStart:function(b){this.pageStart=b},getStart:function(b){return this.pageStart},getEnd:function(c){var d=this.pageStart+this.pageSize;return d>this.total?this.total:d}});Ext.define("Docs.Syntax",{singleton:true,highlight:function(b){Ext.Array.forEach(Ext.query("pre",b.dom||b),function(a){a=Ext.get(a);if(a.child("code")){if(!(a.hasCls("inline-example")&&a.hasCls("preview"))){a.addCls("prettyprint")}}else{if(!a.parent(".CodeMirror")&&!a.hasCls("hierarchy")){a.addCls("notpretty")}}});prettyPrint()}});Ext.define("Docs.view.cls.Header",{extend:"Ext.container.Container",padding:"10 0 17 0",height:55,alias:"widget.classheader",cls:"classheader",initComponent:function(){this.tpl=Ext.create("Ext.XTemplate",'

','','{name}','View source...',"","",'{name}',"",'',"singleton","","",'enum of {[values["enum"].type]}',"","{[this.renderAliases(values.aliases)]}","{[this.renderMetaTags(values.meta)]}","

",'','Print',"",{getClass:function(b){if(b.singleton){return"singleton"}else{if(b.component){return"component"}else{return"class"}}},renderAliases:function(e){var f={widget:"xtype",plugin:"ptype",feature:"ftype"};var d=[];e&&Ext.Object.each(e,function(a,b){d.push((f[a]||a)+": "+b.join(", "))});if(d.length>0){return""+d.join(", ")+""}else{return""}},renderMetaTags:function(b){return" "+Ext.Array.map(Docs.data.signatures,function(a){return b[a.key]?''+(a["long"])+"":""}).join(" ")}});if(Docs.data.source){this.on("render",this.initSourceLink,this)}this.callParent()},initSourceLink:function(){this.classLinkEvent("click",function(){var d=this.loadedCls.files;if(d.length===1){window.open("source/"+d[0].href)}else{var c=this.createFileMenu(d);c.showBy(this,undefined,[58,-20])}},this);this.classLinkEvent("mouseover",function(){this.el.down(".class-source-tip").addCls("hover")},this);this.classLinkEvent("mouseout",function(){this.el.down(".class-source-tip").removeCls("hover")},this)},classLinkEvent:function(d,e,f){this.el.on(d,e,f,{preventDefault:true,delegate:"a.class-source-link"})},createFileMenu:function(b){return new Ext.menu.Menu({items:Ext.Array.map(b,function(a){return{text:a.filename,handler:function(){window.open("source/"+a.href)}}},this)})},load:function(b){this.loadedCls=b;this.update(this.tpl.apply(b))}});Ext.define("Docs.view.Scrolling",{onClassMixedIn:function(b){Ext.Function.interceptBefore(b.prototype,"initComponent",this.prototype.initScrolling)},initScrolling:function(){this.scrollContext="index";this.scrollState={};this.on("afterrender",function(){this.getScrollEl().addListener("scroll",this.saveScrollState,this)},this)},setScrollContext:function(b){this.scrollContext=b},eraseScrollContext:function(b){delete this.scrollState[b]},saveScrollState:function(){this.scrollState[this.scrollContext]=this.getScrollTop()},restoreScrollState:function(){this.setScrollTop(this.scrollState[this.scrollContext]||0)},scrollToView:function(d,c){d=Ext.get(d);c=c||{};if(d){this.setScrollTop(this.getScrollTop()+d.getY()+(c.offset||0));c.highlight&&d.highlight()}},getScrollTop:function(){return this.getScrollEl().getScroll()["top"]},setScrollTop:function(b){return this.getScrollEl().scrollTo("top",b)},scrollToTop:function(){this.getScrollEl().scrollTo("top")},getScrollEl:function(){return this.body||this.el}});Ext.define("Docs.ContentGrabber",{singleton:true,get:function(f){var e;var d=Ext.get(f);if(d){e=d.dom.innerHTML;d.remove()}return e}});Ext.define("Docs.view.comments.HeaderMenu",{extend:"Ext.container.Container",alias:"widget.commentsHeaderMenu",componentCls:"comments-header-menu",html:["

",' Users',' Topics',' Tags',"

"].join(""),afterRender:function(){this.callParent(arguments);Ext.Array.forEach(["users","targets","tags"],function(d){var c=this.getEl().down("a."+d);c.on("click",function(b,a){this.getEl().select("a",true).removeCls("selected");c.addCls("selected");this.fireEvent("select",d)},this,{preventDefault:true})},this)}});Ext.define("Docs.view.examples.Device",{config:{url:"",id:undefined,device:"phone",orientation:"landscape"},constructor:function(b){this.initConfig(b);Ext.apply(this,this.getIframeSize());this.id=this.id||Ext.id();this.tpl=new Ext.XTemplate('
','',"
",{deviceUrl:function(a){return a.url+"?deviceType="+(a.device==="tablet"?"Tablet":"Phone")}})},toHtml:function(){return this.tpl.apply(this)},setDevice:function(b){this.device=b;Ext.apply(this,this.getIframeSize())},setOrientation:function(b){this.orientation=b;Ext.apply(this,this.getIframeSize())},getIframeSize:function(){var b={phone:{width:"481px",height:"320px"},miniphone:{width:"320px",height:"219px"},tablet:{width:"717px",height:"538px"}}[this.device];if(this.orientation==="landscape"){return b}else{return{width:b.height,height:b.width}}}});Ext.define("Docs.model.Test",{extend:"Ext.data.Model",fields:["id","name","href","code","options",{name:"status",defaultValue:"ready"},"message"]});Ext.define("Docs.model.Setting",{fields:["id","key","value"],extend:"Ext.data.Model",requires:["Ext.data.proxy.LocalStorage"],proxy:{type:window.localStorage?"localstorage":"memory",id:Docs.data.localStorageDb+"-settings"}});Ext.define("Docs.view.DocTree",{extend:"Ext.tree.Panel",alias:"widget.doctree",cls:"doc-tree iScroll",useArrows:true,rootVisible:false,border:false,bodyBorder:false,initComponent:function(){this.addEvents("urlclick");this.root.expanded=true;this.on("itemclick",this.onItemClick,this);this.on("beforeitemcollapse",this.handleBeforeExpandCollapse,this);this.on("beforeitemexpand",this.handleBeforeExpandCollapse,this);this.callParent();this.nodeTpl=new Ext.XTemplate('{text}');this.initNodeLinks()},initNodeLinks:function(){this.getRootNode().cascadeBy(this.applyNodeTpl,this)},applyNodeTpl:function(b){if(b.get("leaf")){b.set("text",this.nodeTpl.apply({text:b.get("text"),url:b.raw.url}));b.commit()}},onItemClick:function(h,j,k,l,i){var e=j.raw?j.raw.url:j.data.url;if(e){this.fireEvent("urlclick",e,i)}else{if(!j.isLeaf()){if(j.isExpanded()){j.collapse(false)}else{j.expand(false)}}}},selectUrl:function(d){var c=this.findNodeByUrl(d);if(c){c.bubble(function(a){a.expand()});this.getSelectionModel().select(c)}else{this.getSelectionModel().deselectAll()}},findNodeByUrl:function(b){return this.getRootNode().findChildBy(function(a){return b===a.raw.url},this,true)},findRecordByUrl:function(d){var c=this.findNodeByUrl(d);return c?c.raw:undefined},handleBeforeExpandCollapse:function(b){if(this.getView().isAnimating(b)){return false}}});Ext.define("Docs.view.cls.MemberWrap",{constructor:function(b){Ext.apply(this,b);this.el=Ext.get(b.el)},setExpanded:function(b){if(b){if(!this.isExpanded()){this.el.addCls("open")}}else{this.el.removeCls("open")}},isExpanded:function(){return this.el.hasCls("open")},getDefinedIn:function(){return this.el.down(".meta .defined-in").getAttribute("rel")},getMemberId:function(){return this.el.getAttribute("id")}});Ext.define("Docs.view.comments.Pager",{extend:"Ext.Component",alias:"widget.commentsPager",componentCls:"recent-comments-pager",afterRender:function(){this.callParent(arguments);this.getEl().on("click",function(){this.fireEvent("loadMore",this.offset+this.limit)},this,{preventDefault:true,delegate:"a.fetchMoreComments"})},configure:function(b){Ext.apply(this,b);this.update(this.getPagerHtml())},reset:function(){this.update("No comments found.")},getPagerHtml:function(){var d=this.total_rows||0;var e=this.offset+this.limit;var f=Math.min(this.limit,d-e);if(d>e){return["",'',"Showing comments 1-"+e+" of "+d+". ","Click to load "+f+" more...",""].join("")}else{return"That's all. Total "+d+" comments."}}});Ext.define("Docs.view.comments.FilterField",{extend:"Ext.form.field.Trigger",alias:"widget.commentsFilterField",triggerCls:"reset",componentCls:"comments-filter-field",hideTrigger:true,enableKeyEvents:true,initComponent:function(){this.callParent(arguments);this.on({keyup:this.onKeyUp,specialkey:this.onSpecialKey,scope:this})},onKeyUp:function(){this.fireEvent("filter",this.getValue());this.setHideTrigger(this.getValue().length===0)},onSpecialKey:function(c,d){if(d.keyCode===Ext.EventObject.ESC){this.reset();this.fireEvent("filter","")}},onTriggerClick:function(){this.reset();this.focus();this.fireEvent("filter","");this.setHideTrigger(true)}});Ext.define("Docs.Tip",{singleton:true,show:function(g,e,f){f=f||"right";this.tips=this.tips||{};if(this.tips[f]){var h=this.tips[f];h.update(g);h.setTarget(e);h.show()}else{var h=this.tips[f]=Ext.create("Ext.tip.ToolTip",{anchor:f,target:e,html:g});h.show()}}});Ext.define("Docs.view.examples.InlineToolbar",{extend:"Ext.toolbar.Toolbar",componentCls:"inline-example-tb",height:30,initComponent:function(){this.addEvents("buttonclick");this.items=[{iconCls:"code",padding:"0 2 0 0",margin:"0 3 0 0",text:"Code Editor",handler:this.createEventFirerer("code")},{padding:0,margin:"0 3 0 0",iconCls:"preview",text:"Live Preview",handler:this.createEventFirerer("preview")},"->",{padding:0,margin:0,iconCls:"copy",text:"Select Code",handler:this.createEventFirerer("copy")}];this.callParent(arguments)},createEventFirerer:function(b){return Ext.Function.bind(function(){this.fireEvent("buttonclick",b)},this)},activateButton:function(b){Ext.Array.each(this.query("button"),function(a){a.removeCls("active")});Ext.Array.each(this.query("button[iconCls="+b+"]"),function(a){a.addCls("active")})}});Ext.define("Docs.view.Header",{extend:"Ext.container.Container",alias:"widget.docheader",contentEl:"header-content",initComponent:function(){if(Docs.otherProducts){this.style="cursor: pointer;",this.cls="dropdown";this.menu=Ext.create("Ext.menu.Menu",{renderTo:Ext.getBody(),plain:true,items:Docs.otherProducts})}this.callParent()},listeners:{afterrender:function(b){if(this.menu){b.el.addListener("click",function(d,a){this.menu.showBy(this.el,"bl",[120,0])},this)}}}});Ext.define("Docs.view.examples.InlineEditor",{extend:"Ext.Panel",bodyPadding:2,autoScroll:true,componentCls:"inline-example-editor",initComponent:function(){this.addEvents("init","change");this.on("afterlayout",this.initCodeMirror,this);this.callParent(arguments)},initCodeMirror:function(b){if(!this.codemirror){this.codemirror=CodeMirror(this.body,{mode:"javascript",indentUnit:4,value:this.value,extraKeys:{Tab:"indentMore","Shift-Tab":"indentLess"},onChange:Ext.Function.bind(function(a){this.fireEvent("change")},this)});this.fireEvent("init")}},refresh:function(){this.codemirror.refresh()},getValue:function(){return this.codemirror?this.codemirror.getValue():this.value},getHeight:function(){var b=this.el.down(".CodeMirror-lines");return b?b.getHeight():undefined},selectAll:function(){var d=this.codemirror.lineCount()-1;var c=this.codemirror.getLine(d).length;this.codemirror.setSelection({line:0,ch:0},{line:d,ch:c})}});Ext.define("Docs.view.comments.Form",{extend:"Ext.Component",alias:"widget.commentsForm",requires:["Docs.Tip"],tpl:['
newComment">','',"

{title}

","
","",'
',"{[Docs.Comments.avatar(values.user.emailHash)]}",'
Logged in as {user.userName}
','',' />',' | ',"","",'Show help ↓','','',' or cancel',"","
",'","
"],initComponent:function(){this.data={title:this.title,updateComment:(this.content!==undefined),content:this.content,userSubscribed:this.userSubscribed,user:this.user};this.callParent(arguments)},setValue:function(b){this.codeMirror.setValue(b)},afterRender:function(){this.callParent(arguments);this.makeCodeMirror(this.getEl().down("textarea").dom);this.bindEvents()},makeCodeMirror:function(d){var c=true;this.codeMirror=CodeMirror.fromTextArea(d,{mode:"markdown",lineWrapping:true,indentUnit:4,extraKeys:{Tab:"indentMore","Shift-Tab":"indentLess"},onFocus:Ext.Function.bind(function(){if(c&&this.codeMirror.getValue()===""){this.toggleGuide(true)}c=false},this)})},bindEvents:function(){this.getEl().on("click",function(){this.toggleGuide()},this,{preventDefault:true,delegate:"a.toggleCommentGuide"});this.getEl().on("click",function(){this.fireEvent("cancel")},this,{preventDefault:true,delegate:"a.cancelUpdateComment"});this.getEl().on("click",function(){this.fireEvent("submit",this.codeMirror.getValue())},this,{preventDefault:true,delegate:"input.submitComment"});this.getEl().on("click",function(c,d){this.fireEvent("subscriptionChange",Ext.get(d).dom.checked)},this,{delegate:"input.subscriptionCheckbox"})},toggleGuide:function(f){var d=this.getEl().down(".commentGuideTxt");d.setVisibilityMode(Ext.dom.Element.DISPLAY);var e=this.getEl().down(".toggleCommentGuide");if(!d.isVisible()||f===true){d.show(true);e.update("Hide help ↑")}else{d.hide(true);e.update("Show help ↓")}},showSubscriptionMessage:function(d){var e=this.getEl().down("input.subscriptionCheckbox");var f=d?"Updates to this thread will be e-mailed to you":"You have unsubscribed from this thread";Docs.Tip.show(f,e,"bottom")}});Ext.define("Docs.view.SimpleSelectBehavior",{mixins:{observable:"Ext.util.Observable"},constructor:function(c,d){this.mixins.observable.constructor.call(this,{listeners:d});c.on({select:this.onSelect,deselect:this.onDeselect,scope:this})},onSelect:function(c,d){this.selectedItem=d;this.fireEvent("select",d)},onDeselect:function(c,d){this.selectedItem=undefined;Ext.Function.defer(function(){if(!this.selectedItem){this.fireEvent("deselect",d)}},10,this)}});Ext.define("Docs.view.examples.InlinePreview",{extend:"Ext.Panel",requires:["Docs.view.examples.Device"],bodyPadding:"0 10",statics:{iframeCounter:0,getNextIframeId:function(){this.iframeCounter++;return this.iframeCounter.toString()}},options:{},constructor:function(b){b=b||{};b.iframeId=this.self.getNextIframeId();b.id="inline-preview-"+b.iframeId;this.callParent([b]);this.addEvents(["previewsuccess","previewfailure"])},initComponent:function(){this.html=this.getHtml();this.callParent(arguments)},getHtml:function(){if(Docs.data.touchExamplesUi){return Ext.create("Docs.view.examples.Device",{url:"eg-iframe.html",id:this.iframeId,device:this.options.device,orientation:this.options.orientation}).toHtml()}else{var b=new Ext.XTemplate('');return b.apply({id:this.iframeId})}},update:function(h){var f=this.options;var e=Ext.get(this.iframeId);var g=Ext.Function.bind(this.iframeCallback,this);if(e){e.on("load",function(){Ext.Function.defer(function(){e.dom.contentWindow.loadInlineExample(h+"\n",f,g)},100)},this,{single:true});e.dom.src="eg-iframe.html"}},iframeCallback:function(c,d){if(c){this.fireEvent("previewsuccess",this)}else{this.fireEvent("previewfailure",this,d)}},getHeight:function(){return document.getElementById(this.iframeId).parentNode.clientHeight}});Ext.define("Docs.view.cls.Logic",{showPrivateClasses:false,constructor:function(b){Ext.apply(this,b)}});Ext.define("Docs.view.comments.TopLevelDropZone",{extend:"Ext.dd.DropZone",getTargetFromEvent:function(b){return b.getTarget("a.side.toggleComments",10)},onNodeEnter:function(g,f,h,e){if(this.isValidDropTarget(e)){Ext.fly(g).addCls("drop-target-hover")}},onNodeOut:function(g,f,h,e){Ext.fly(g).removeCls("drop-target-hover")},onNodeOver:function(g,f,h,e){if(this.isValidDropTarget(e)){return this.dropAllowed}else{return false}},isValidDropTarget:function(b){return !!b.comment.get("parentId")},onNodeDrop:function(g,f,h,e){if(this.isValidDropTarget(e)){this.onValidDrop(e.comment,undefined);return true}return false},onValidDrop:Ext.emptyFn});Ext.define("Docs.view.comments.DragZone",{extend:"Ext.dd.DragZone",constructor:function(d,c){this.view=d;this.callParent([d.getEl(),c])},getDragData:function(f){var d=f.getTarget("img.drag-handle",10);if(d){var e=Ext.fly(d).up(this.view.itemSelector).dom;return{sourceEl:e,repairXY:Ext.fly(e).getXY(),ddel:this.cloneCommentEl(e),comment:this.view.getRecord(e)}}return false},cloneCommentEl:function(e){var f=e.cloneNode(true);var d=Ext.fly(f).down(".comments-list-with-form");d&&d.remove();f.id=Ext.id();return f},getRepairXY:function(){return this.dragData.repairXY}});Ext.define("Docs.view.comments.DropZone",{extend:"Ext.dd.DropZone",constructor:function(d,c){this.view=d;this.callParent([d.getEl(),c])},getTargetFromEvent:function(b){return b.getTarget(this.view.itemSelector,10)},onNodeEnter:function(g,f,h,e){if(this.isValidDropTarget(g,e)){Ext.fly(g).addCls("drop-target-hover")}},onNodeOut:function(g,f,h,e){Ext.fly(g).removeCls("drop-target-hover")},onNodeOver:function(g,f,h,e){if(this.isValidDropTarget(g,e)){return this.dropAllowed}else{return false}},isValidDropTarget:function(d,e){var f=this.view.getRecord(d);return f&&f.get("id")!==e.comment.get("id")},onNodeDrop:function(g,f,h,e){if(this.isValidDropTarget(g,e)){this.onValidDrop(e.comment,this.view.getRecord(g));return true}return false},onValidDrop:Ext.emptyFn});Ext.define("Docs.controller.Welcome",{extend:"Docs.controller.Content",baseUrl:"#",refs:[{ref:"viewport",selector:"#viewport"},{ref:"index",selector:"#welcomeindex"}],init:function(){this.addEvents("loadIndex")},loadIndex:function(){this.fireEvent("loadIndex");Ext.getCmp("treecontainer").hide();this.callParent([true])},isActive:function(){return !!this.getIndex().getTab()}});Ext.define("Docs.Comments",{extend:"Ext.util.Observable",singleton:true,requires:["Docs.Auth","Docs.CommentCounts","Docs.CommentSubscriptions","Ext.data.JsonP","Ext.Ajax"],init:function(c,d){if(!(Docs.data.commentsUrl&&Docs.data.commentsDomain&&this.isBrowserSupported())){c.call(d);return}Docs.Auth.init(function(a){if(a){this.enabled=true;this.fetchCountsAndSubscriptions(function(f,b){this.counts=new Docs.CommentCounts(f);this.subscriptions=new Docs.CommentSubscriptions(b);c.call(d)},this)}else{c.call(d)}},this)},isBrowserSupported:function(){return("withCredentials" in new XMLHttpRequest())||(Ext.ieVersion>=8)},fetchCountsAndSubscriptions:function(c,d){this.request("jsonp",{url:"/comments_meta",method:"GET",success:function(a){c.call(d,a.comments,a.subscriptions)},scope:this})},loadSubscriptions:function(c,d){this.fetchSubscriptions(function(a){this.subscriptions=new Docs.CommentSubscriptions(a);c.call(d)},this)},clearSubscriptions:function(){this.subscriptions=new Docs.CommentSubscriptions([])},fetchSubscriptions:function(c,d){this.request("jsonp",{url:"/subscriptions",method:"GET",success:function(a){c.call(d,a.subscriptions)},scope:this})},isEnabled:function(){return this.enabled},getCount:function(b){return this.enabled?this.counts.get(b):0},changeCount:function(f,e){var d=this.counts.change(f,e);this.fireEvent("countChange",f,d)},hasSubscription:function(b){return this.subscriptions.has(b)},getClassTotalCount:function(b){return this.counts.getClassTotal(b)},load:function(d,f,e){this.request("jsonp",{url:"/comments",method:"GET",params:{startkey:Ext.JSON.encode(d)},success:f,scope:e})},loadReplies:function(f,d,e){this.request("jsonp",{url:"/replies",method:"GET",params:{parentId:f},success:d,scope:e})},post:function(b){this.request("ajax",{url:"/comments",method:"POST",params:{target:Ext.JSON.encode(b.target),parentId:b.parentId,comment:b.content,url:this.buildPostUrl(b.target)},callback:function(h,f,a){var g=Ext.JSON.decode(a.responseText);if(f&&g.success){this.changeCount(b.target,+1);b.callback&&b.callback.call(b.scope,g.comment)}},scope:this})},buildPostUrl:function(i){var f=i[0];var g=i[1];var h=i[2];if(f=="video"){var j="#!/video/"+g}else{if(f=="guide"){var j="#!/guide/"+g}else{var j="#!/api/"+g+(h?"-"+h:"")}}return"http://"+window.location.host+window.location.pathname+j},subscribe:function(h,e,g,f){this.request("ajax",{url:"/subscribe",method:"POST",params:{target:Ext.JSON.encode(h),subscribed:e},callback:function(c,a,d){var b=Ext.JSON.decode(d.responseText);if(a&&b.success){this.subscriptions.set(h,e);g&&g.call(f)}},scope:this})},request:function(c,d){d.url=this.buildRequestUrl(d.url);if(c==="jsonp"){Ext.data.JsonP.request(d)}else{d.cors=true;Ext.Ajax.request(d)}},buildRequestUrl:function(b){b=Docs.data.commentsUrl+"/"+Docs.data.commentsDomain+b;return b+(b.match(/\?/)?"&":"?")+"sid="+Docs.Auth.getSid()},avatar:function(c,d){return''},counterHtml:function(b){return b>0?''+b+"":""}});Ext.define("Docs.controller.Auth",{extend:"Ext.app.Controller",requires:["Docs.Auth","Docs.Comments"],refs:[{ref:"authHeaderForm",selector:"authHeaderForm"}],init:function(){this.control({"authHeaderForm, authForm":{login:this.login,logout:this.logout}});var b=this.getController("Tabs");b.onLaunch=Ext.Function.createSequence(b.onLaunch,this.afterTabsLaunch,this)},afterTabsLaunch:function(){if(Docs.Comments.isEnabled()){if(Docs.Auth.isLoggedIn()){this.setLoggedIn()}else{this.setLoggedOut()}}},login:function(e,g,f,h){Docs.Auth.login({username:g,password:f,remember:h,success:this.setLoggedIn,failure:function(a){e.showMessage(a)},scope:this})},logout:function(b){Docs.Auth.logout(this.setLoggedOut,this)},setLoggedIn:function(){Docs.Comments.loadSubscriptions(function(){this.getAuthHeaderForm().showLoggedIn(Docs.Auth.getUser());this.eachCmp("commentsListWithForm",function(b){b.showCommentingForm()});this.eachCmp("commentsList",function(b){b.refresh()});this.getController("Tabs").showCommentsTab()},this)},setLoggedOut:function(){Docs.Comments.clearSubscriptions();this.getAuthHeaderForm().showLoggedOut();this.eachCmp("commentsListWithForm",function(b){b.showAuthForm()});this.eachCmp("commentsList",function(b){b.refresh()});this.getController("Tabs").hideCommentsTab()},eachCmp:function(e,f,d){Ext.Array.forEach(Ext.ComponentQuery.query(e),f,d)}});Ext.define("Docs.controller.Failure",{extend:"Docs.controller.Content",baseUrl:"#",refs:[{ref:"viewport",selector:"#viewport"},{ref:"index",selector:"#failure"}],show404:function(c){var d=new Ext.XTemplate("

Oops...

","

{msg}

","

Maybe it was renamed to something else?
Or maybe your internet connection has failed?
","This would be sad. Hopefully it's just a bug on our side.

","

Most likely you just followed a broken link inside this very documentation. ","Go and report it to the authors of the docs.

","

But if you think it's a bug in JSDuck documentation-generator itself, feel free to open ","an issue at the JSDuck issue tracker.

","

Sorry for all this :(

");Ext.getCmp("failure").update(d.apply({msg:c}));Ext.getCmp("card-panel").layout.setActiveItem("failure")}});Ext.define("Docs.controller.Search",{extend:"Ext.app.Controller",requires:["Docs.ClassRegistry","Docs.store.Search","Docs.History"],stores:["Search"],refs:[{ref:"field",selector:"#search-field"}],pageIndex:0,pageSize:10,init:function(){this.control({"#search-dropdown":{itemclick:function(c,d){this.loadRecord(d)},changePage:function(c,d){this.pageIndex+=d;this.search(this.getField().getValue());this.keepDropdown()},footerClick:function(b){this.keepDropdown()}},"#search-field":{keyup:function(m,l){var j=this.getDropdown();m.setHideTrigger(m.getValue().length===0);if(l.keyCode===Ext.EventObject.ESC||!m.value){j.hide();m.setValue("");return}else{j.show()}var h=j.getSelectionModel();var i=h.getLastSelected();var n=j.store.indexOf(i);var k=j.store.getCount()-1;if(l.keyCode===Ext.EventObject.UP){if(n===undefined){h.select(0)}else{h.select(n===0?k:(n-1))}}else{if(l.keyCode===Ext.EventObject.DOWN){if(n===undefined){h.select(0)}else{h.select(n===k?0:n+1)}}else{if(l.keyCode===Ext.EventObject.ENTER){l.preventDefault();i&&this.loadRecord(i)}else{this.pageIndex=0;clearTimeout(this.searchTimeout);this.searchTimeout=Ext.Function.defer(function(){this.search(m.value)},50,this)}}}},focus:function(b){if(b.value&&this.getDropdown().store.getCount()>0){this.getDropdown().show()}},blur:function(){var b=this.getDropdown();this.hideTimeout=Ext.Function.defer(b.hide,500,b)}}})},getDropdown:function(){return this.dropdown||(this.dropdown=Ext.getCmp("search-dropdown"))},keepDropdown:function(){clearTimeout(this.hideTimeout);this.getField().focus()},loadRecord:function(b){Docs.History.navigate(b.get("url"));this.getDropdown().hide()},search:function(h){var e=Docs.ClassRegistry.search(h);if(this.pageIndex<0){this.pageIndex=0}else{if(this.pageIndex>Math.floor(e.length/this.pageSize)){this.pageIndex=Math.floor(e.length/this.pageSize)}}var g=this.pageIndex*this.pageSize;var f=g+this.pageSize;this.getDropdown().setTotal(e.length);this.getDropdown().setStart(g);this.getDropdown().getStore().loadData(e.slice(g,f));this.getDropdown().alignTo("search-field","bl",[-12,-2]);if(e.length>0){this.getDropdown().getSelectionModel().select(0)}}});Ext.define("Docs.controller.CommentCounts",{extend:"Ext.app.Controller",requires:["Docs.Comments"],refs:[{ref:"class",selector:"classoverview"},{ref:"classIndex",selector:"#classindex"},{ref:"guide",selector:"#guide"},{ref:"guideIndex",selector:"#guideindex"},{ref:"video",selector:"#video"},{ref:"videoIndex",selector:"#videoindex"}],init:function(){Docs.Comments.on("countChange",this.updateCounts,this)},updateCounts:function(c,d){this.getClass().updateCommentCounts();this.getClassIndex().updateCommentCounts();this.getGuide().updateCommentCounts();this.getGuideIndex().updateCommentCounts();this.getVideo().updateCommentCounts();this.getVideoIndex().updateCommentCounts()}});Ext.define("Docs.controller.Videos",{extend:"Docs.controller.Content",baseUrl:"#!/video",title:"Videos",refs:[{ref:"viewport",selector:"#viewport"},{ref:"index",selector:"#videoindex"},{ref:"tree",selector:"#videotree"}],init:function(){this.addEvents("showVideo");this.control({"#videotree":{urlclick:function(b){this.loadVideo(b)}},"videoindex > thumblist":{urlclick:function(b){this.loadVideo(b)}}})},loadIndex:function(){Ext.getCmp("treecontainer").showTree("videotree");this.callParent()},loadVideo:function(j,h){var f=false;Ext.getCmp("card-panel").layout.setActiveItem("video");Ext.getCmp("treecontainer").showTree("videotree");var g=j.match(/^#!\/video\/(.*)$/)[1];var i=this.getVideo(g);if(!i){this.getController("Failure").show404("Video "+g+" was not found.");return}this.getViewport().setPageTitle(i.title);if(this.activeUrl!==j){Ext.getCmp("video").load(i);f=true}h||Docs.History.push(j);this.fireEvent("showVideo",g,{reRendered:f});this.getTree().selectUrl(j);this.activeUrl=j},getVideo:function(b){if(!this.map){this.map={};Ext.Array.forEach(Docs.data.videos,function(a){Ext.Array.forEach(a.items,function(d){this.map[d.name]=d},this)},this)}return this.map[b]}});Ext.define("Docs.controller.Guides",{extend:"Docs.controller.Content",baseUrl:"#!/guide",title:"Guides",refs:[{ref:"viewport",selector:"#viewport"},{ref:"index",selector:"#guideindex"},{ref:"tree",selector:"#guidetree"},{ref:"guide",selector:"#guide"}],cache:{},init:function(){this.addEvents("showGuide");this.control({"#guidetree":{urlclick:function(d,c){this.handleUrlClick(d,c,this.getTree())}},"guideindex > thumblist":{urlclick:function(b){this.loadGuide(b)}},indexcontainer:{afterrender:function(b){b.el.addListener("click",function(d,a){this.handleUrlClick(a.href,d)},this,{preventDefault:true,delegate:".guide"})}},doctabs:{tabClose:function(b){this.getGuide().eraseScrollContext(b)}}})},handleUrlClick:function(d,f,e){d=d.replace(/.*#!?/,"#!");if(this.opensNewWindow(f)){window.open(d);e&&e.selectUrl(this.activeUrl?this.activeUrl:"")}else{this.loadGuide(d)}},loadIndex:function(){Ext.getCmp("treecontainer").showTree("guidetree");this.callParent()},loadGuide:function(j,h){Ext.getCmp("card-panel").layout.setActiveItem("guide");Ext.getCmp("treecontainer").showTree("guidetree");var g=j.match(/^#!\/guide\/(.*?)(-section-[0-9]+)?$/);var f=g[1];var i=g[2];j="#!/guide/"+f;h||Docs.History.push(j);if(this.cache[f]){this.showGuide(this.cache[f],j,f,i)}else{this.cache[f]="in-progress";Ext.data.JsonP.request({url:this.getBaseUrl()+"/guides/"+f+"/README.js",callbackName:f,success:function(a){this.cache[f]=a;this.showGuide(a,j,f,i)},failure:function(b,a){this.cache[f]=false;this.getController("Failure").show404("Guide "+f+" was not found.")},scope:this})}},showGuide:function(i,j,f,h){var g=false;if(i==="in-progress"){return}this.getViewport().setPageTitle(i.title);if(this.activeUrl!==j){Ext.getCmp("guide").load({name:f,content:i.guide});g=true}this.activeUrl=j;this.getGuide().setScrollContext(this.activeUrl);if(h){this.getGuide().scrollToEl(f+h)}else{this.getGuide().restoreScrollState()}this.fireEvent("showGuide",f,{reRendered:g});this.getTree().selectUrl(j)}});Ext.define("Docs.view.search.Container",{extend:"Ext.container.Container",alias:"widget.searchcontainer",requires:"Docs.view.search.Dropdown",initComponent:function(){if(Docs.data.search.length){this.cls="search";this.items=[{xtype:"triggerfield",triggerCls:"reset",emptyText:"Search",width:170,id:"search-field",enableKeyEvents:true,hideTrigger:true,onTriggerClick:function(){this.reset();this.focus();this.setHideTrigger(true);Ext.getCmp("search-dropdown").hide()}},{xtype:"searchdropdown"}]}this.callParent()}});Ext.define("Docs.controller.Examples",{extend:"Docs.controller.Content",baseUrl:"#!/example",title:"Examples",refs:[{ref:"viewport",selector:"#viewport"},{ref:"index",selector:"#exampleindex"},{ref:"tree",selector:"#exampletree"},{ref:"page",selector:"#example"}],init:function(){this.addEvents("showExample");this.control({"#exampletree":{urlclick:function(d,c){this.loadExample(d)}},"exampleindex > thumblist":{urlclick:function(b){this.loadExample(b)}},touchexamplecontainer:{afterrender:function(b){b.el.addListener("click",function(d,a){this.changeDevice("tablet")},this,{delegate:"button.tablet"});b.el.addListener("click",function(d,a){this.changeDevice("phone")},this,{delegate:"button.phone"});b.el.addListener("click",function(d,a){this.changeOrientation("portrait")},this,{delegate:"button.portrait"});b.el.addListener("click",function(d,a){this.changeOrientation("landscape")},this,{delegate:"button.landscape"});b.el.addListener("click",function(d,a){this.openInNewWindow()},this,{delegate:"button.new-window"})}}})},loadIndex:function(){Ext.getCmp("treecontainer").showTree("exampletree");this.callParent()},loadExample:function(d,f){var e=this.getExample(d);if(!e){this.getController("Failure").show404("Example "+d+" was not found.");return}this.getViewport().setPageTitle(e.text);if(this.activeUrl!==d){this.getPage().clear();this.activateExampleCard();this.getPage().load(e)}else{this.activateExampleCard()}f||Docs.History.push(d);this.fireEvent("showExample",d);this.getTree().selectUrl(d);this.activeUrl=d},activateExampleCard:function(){Ext.getCmp("card-panel").layout.setActiveItem("example");Ext.getCmp("treecontainer").showTree("exampletree")},getExample:function(b){if(!this.map){this.map={};Ext.Array.forEach(Docs.data.examples,function(a){Ext.Array.forEach(a.items,function(d){this.map["#!/example/"+d.name]=d},this)},this)}return this.map[b]},changeOrientation:function(b){this.getPage().setOrientation(b)},changeDevice:function(b){this.getPage().setDevice(b)},openInNewWindow:function(){window.open(this.getExample(this.activeUrl).url)}});Ext.define("Docs.view.Tabs",{extend:"Ext.container.Container",alias:"widget.doctabs",id:"doctabs",componentCls:"doctabs",requires:["Docs.History","Docs.view.TabMenu"],minTabWidth:80,maxTabWidth:160,animDuration:150,tabs:[],tabsInBar:[],tabCache:{},staticTabs:[],initComponent:function(){this.addEvents("tabActivate","tabClose");this.tpl=Ext.create("Ext.XTemplate",'','
','
','
','','{text}',"",' ',"","
",'
',"
","
",'
 
','
');this.html=this.tpl.applyTemplate(this.staticTabs);this.tabTpl=Ext.create("Ext.XTemplate",'
','
','
',' ','{text}',"
",'',"
");this.on("afterrender",this.initListeners,this);this.on("resize",this.refresh,this);this.callParent()},initListeners:function(){this.el.on("mouseover",function(c,d){Ext.get(d).addCls("ovr")},this,{delegate:".close"});this.el.on("mouseout",function(c,d){Ext.get(d).removeCls("ovr")},this,{delegate:".close"});this.el.on("click",function(f,d){var e=Ext.get(d).up(".doctab").down(".tabUrl").getAttribute("href");e=Docs.History.cleanUrl(e);this.removeTab(e);this.fireEvent("tabClose",e)},this,{delegate:".close",preventDefault:true});this.el.on("click",function(f,d){if(Ext.fly(f.getTarget()).hasCls("close")){return}var e=Ext.get(d).down(".tabUrl").getAttribute("href");this.fireEvent("tabActivate",e,{navigate:true})},this,{delegate:".doctab"});this.el.on("contextmenu",function(c,d){if(!Ext.get(d).hasCls("overview")){this.createMenu().showBy(d)}},this,{delegate:".doctab",preventDefault:true});this.el.on("click",Ext.emptyFn,this,{delegate:".tabUrl",preventDefault:true});this.el.on("mouseleave",function(){if(this.shouldResize){this.resizeTabs({animate:true})}},this)},setStaticTabs:function(b){this.staticTabs=b;this.refresh()},getStaticTabs:function(b){return this.staticTabs},addTab:function(d,c){this.tabCache[d.href]=d;if(!this.hasTab(d.href)){this.tabs.push(d.href);if(this.roomForNewTab()){this.addTabToBar(d,c)}this.addTabToMenu(this.overflowButton.menu,d)}if(c.activate){this.activateTab(d.href)}this.saveTabs()},removeTab:function(d){if(!this.hasTab(d)){return}this.removeFromArray(this.tabs,d);var e=this.removeFromArray(this.tabsInBar,d);var f=this.tabs[this.tabsInBar.length];if(f){this.tabsInBar.push(f)}if(this.activeTab===d){if(this.tabs.length===0){Docs.App.getController(this.getControllerName(d)).loadIndex()}else{if(e===this.tabs.length){e-=1}this.activateTab(this.tabs[e]);this.fireEvent("tabActivate",this.tabs[e])}}if(this.tabs.length>=this.maxTabsInBar()){this.refresh()}else{this.removeTabFromBar(d)}this.saveTabs()},removeFromArray:function(f,d){var e=Ext.Array.indexOf(f,d);if(e!==-1){Ext.Array.erase(f,e,1)}return e},activateTab:function(d){this.activeTab=d;if(!this.inTabs(d)){this.swapLastTabWith(d)}Ext.Array.each(Ext.query(".doctab a.tabUrl"),function(a){Ext.get(a).up(".doctab").removeCls(["active","highlight"])});var e=Ext.query('.doctab a[href="'+d+'"]')[0];if(e){var f=Ext.get(e).up(".doctab");f.addCls("active")}this.highlightOverviewTab(d)},refresh:function(){var i=this.tpl.applyTemplate(this.staticTabs);var f=this.maxTabsInBar()this.maxTabWidth){return this.maxTabWidth}else{if(bthis.tabsInBar.length&&f===this.maxTabsInBar()){g.addTabCls(h,"overflow")}var e=this.inTabBar(h.href);g.addTab(h,e?"":"overflow")},addToolTips:function(){Ext.Array.each(this.staticTabs,function(c){var d=Ext.get(Ext.query(".doctab."+c.cls)[0]);if(d){Ext.create("Ext.tip.ToolTip",{target:d,html:c.tooltip})}})},saveTabs:function(){Docs.Settings.set("tabs",this.tabs)},getControllerName:function(b){if(/#!?\/api/.test(b)){return"Classes"}else{if(/#!?\/guide/.test(b)){return"Guides"}else{if(/#!?\/video/.test(b)){return"Videos"}else{if(/#!?\/example/.test(b)){return"Examples"}else{if(/#!?\/tests/.test(b)){return"Tests"}else{if(/#!?\/comment/.test(b)){return"Comments"}else{return"Index"}}}}}}}});Ext.define("Docs.controller.Tests",{extend:"Docs.controller.Content",baseUrl:"#!/tests",refs:[{ref:"viewport",selector:"#viewport"},{ref:"index",selector:"#testsindex"}],init:function(){this.addEvents("loadIndex");this.control({"#testsgrid":{afterrender:this.loadExamples}})},loadIndex:function(){this.fireEvent("loadIndex");Ext.getCmp("treecontainer").hide();this.callParent([true])},isActive:function(){return !!this.getIndex().getTab()},loadExamples:function(){this.getIndex().disable();Ext.data.JsonP.request({url:this.getBaseUrl()+"/inline-examples.js",callbackName:"__inline_examples__",success:function(b){this.getIndex().addExamples(b);this.getIndex().enable()},scope:this})}});Ext.define("Docs.controller.Classes",{extend:"Docs.controller.Content",baseUrl:"#!/api",title:"API Documentation",requires:["Docs.History","Docs.Syntax","Docs.ClassRegistry"],refs:[{ref:"viewport",selector:"#viewport"},{ref:"index",selector:"#classindex"},{ref:"header",selector:"classheader"},{ref:"overview",selector:"classoverview"},{ref:"tabPanel",selector:"classtabpanel"},{ref:"tree",selector:"#classtree"},{ref:"favoritesGrid",selector:"#favorites-grid"}],cache:{},init:function(){this.addEvents("showIndex","showClass","showMember");Ext.getBody().addListener("click",function(c,d){this.handleUrlClick(decodeURI(d.href),c)},this,{preventDefault:true,delegate:".docClass"});this.control({classtree:{urlclick:function(d,c){this.handleUrlClick(d,c,this.getTree())}},toolbar:{toggleExpanded:function(b){this.getOverview().setAllMembersExpanded(b)}},classoverview:{afterrender:function(b){b.el.addListener("click",function(i,k){var h=Ext.get(k).up(".member"),l=h.down(".meta .defined-in"),j=l.getAttribute("rel"),a=h.getAttribute("id");if(this.getOverview().isMemberExpanded(a)){this.setExpanded(a,false)}else{this.setExpanded(a,true);this.fireEvent("showMember",j,a)}},this,{preventDefault:true,delegate:".expandable"});b.el.addListener("click",Ext.emptyFn,this,{preventDefault:true,delegate:".not-expandable"})}},treecontainer:{afterrender:function(b){b.el.addListener("dblclick",function(){if(b.getWidth()<30){b.setWidth(b.expandedWidth)}else{b.expandedWidth=b.getWidth();b.setWidth(20)}},this,{delegate:".x-resizable-handle"})}},doctabs:{tabClose:function(b){this.getOverview().eraseScrollContext(b)}}})},setExpanded:function(f,d){var e=this.currentCls;if(!e.expanded){e.expanded={}}this.getOverview().setMemberExpanded(f,d);if(d){e.expanded[f]=d}else{delete e.expanded[f]}},applyExpanded:function(b){Ext.Object.each(b.expanded||{},function(a){Ext.get(a).addCls("open")},this)},handleUrlClick:function(d,f,e){d=Docs.History.cleanUrl(d);if(this.opensNewWindow(f)){window.open(d);e&&e.selectUrl(this.currentCls?"#!/api/"+this.currentCls.name:"")}else{this.loadClass(d)}},loadIndex:function(b){Ext.getCmp("treecontainer").showTree("classtree");this.callParent(arguments);this.fireEvent("showIndex")},loadClass:function(f,i){Ext.getCmp("card-panel").layout.setActiveItem("classcontainer");Ext.getCmp("treecontainer").showTree("classtree");i||Docs.History.push(f);var j=f.match(/^#!\/api\/(.*?)(?:-(.*))?$/);var g=Docs.ClassRegistry.canonicalName(j[1]);var h=j[2];if(this.getOverview()){this.getOverview().setLoading(true)}if(this.cache[g]){this.showClass(this.cache[g],h)}else{this.cache[g]="in-progress";Ext.data.JsonP.request({url:this.getBaseUrl()+"/output/"+g+".js",callbackName:g.replace(/\./g,"_"),success:function(b,a){this.cache[g]=b;this.showClass(b,h)},failure:function(b,a){this.cache[g]=false;this.getOverview().setLoading(false);this.getController("Failure").show404("Class "+g+" was not found.")},scope:this})}},showClass:function(e,f){var d=false;if(e==="in-progress"){return}this.getOverview().setLoading(false);this.getViewport().setPageTitle(e.name);if(this.currentCls!==e){this.currentCls=e;this.getHeader().load(e);this.getOverview().load(e);this.applyExpanded(e);d=true}this.currentCls=e;this.getOverview().setScrollContext("#!/api/"+e.name);if(f){this.getOverview().scrollToEl("#"+f);this.fireEvent("showMember",e.name,f)}else{this.getOverview().restoreScrollState()}this.getTree().selectUrl("#!/api/"+e.name);this.fireEvent("showClass",e.name,{reRendered:d})}});Ext.define("Docs.view.welcome.Index",{extend:"Ext.container.Container",alias:"widget.welcomeindex",mixins:["Docs.view.Scrolling"],requires:["Docs.ContentGrabber"],cls:"welcome iScroll",initComponent:function(){this.html=Docs.ContentGrabber.get("welcome-content");this.hasContent=!!this.html;this.callParent(arguments)},getTab:function(){return this.hasContent?{cls:"index",href:"#",tooltip:"Home"}:false}});Ext.define("Docs.view.cls.Index",{extend:"Ext.container.Container",alias:"widget.classindex",requires:["Docs.ContentGrabber","Docs.Comments"],mixins:["Docs.view.Scrolling"],cls:"class-categories iScroll",margin:"15 10",autoScroll:true,initComponent:function(){this.tpl=new Ext.XTemplate('

API Documentation

','','
{notice}
',"
","{categories}");this.data={notice:Docs.ContentGrabber.get("notice-text"),categories:Docs.ContentGrabber.get("categories-content")};this.callParent(arguments)},afterRender:function(){this.callParent(arguments);if(!Docs.Comments.isEnabled()){return}this.initComments()},initComments:function(){this.getEl().select("a.docClass").each(function(a){var f=a.getHTML();var e=Docs.Comments.getClassTotalCount(f);if(e){Ext.DomHelper.append(a,Docs.Comments.counterHtml(e))}},this)},updateCommentCounts:function(){if(!this.getEl()){return}this.getEl().select(".comment-counter-small").remove();this.initComments()},getTab:function(){var b=(Docs.data.classes||[]).length>0;return b?{cls:"classes",href:"#!/api",tooltip:"API Documentation"}:false}});Ext.define("Docs.view.examples.TouchContainer",{extend:"Ext.panel.Panel",alias:"widget.touchexamplecontainer",requires:["Docs.view.examples.Device"],layout:"fit",cls:"example-container iScroll",autoScroll:true,bodyPadding:"10 0 5 0",initComponent:function(){this.dockedItems=[{xtype:"container",dock:"top",html:['

Example

','
','
','','',"
",' ','
','','',"
",' ',"
",'',"
","
"].join("")}];this.callParent(arguments)},load:function(b){this.title=b.title+" Example";this.device=Ext.create("Docs.view.examples.Device",{url:b.url,device:b.device||"phone",orientation:b.orientation||"landscape"});this.refresh()},refresh:function(){this.update(this.device.toHtml());this.updateScale();this.updateTitle();this.updateButtons()},setDevice:function(b){this.device.setDevice(b);this.refresh()},setOrientation:function(b){this.device.setOrientation(b);this.refresh()},updateScale:function(){var b=Ext.query("iframe",this.el.dom)[0];if(b){b.onload=Ext.Function.bind(function(){var d=document.createElement("style");var a="html { overflow: hidden }";if(this.device.getDevice()==="tablet"){a+="body { font-size: 79.8% !important; }"}d.innerHTML=a;b.contentWindow.document.body.appendChild(d)},this)}},updateTitle:function(){Ext.get(Ext.query(".example-title")).update(this.title)},updateButtons:function(){Ext.Array.each(Ext.query(".example-toolbar .orientations button"),function(b){Ext.get(b).removeCls("selected")});Ext.get(Ext.query(".example-toolbar .orientations button."+this.device.getOrientation())).addCls("selected");Ext.Array.each(Ext.query(".example-toolbar .devices button"),function(b){Ext.get(b).removeCls("selected")});Ext.get(Ext.query(".example-toolbar .devices button."+this.device.getDevice())).addCls("selected")},clear:function(){this.update("")}});Ext.define("Docs.store.Settings",{extend:"Ext.data.Store",requires:["Docs.model.Setting"],model:"Docs.model.Setting"});Ext.define("Docs.Settings",{extend:"Docs.LocalStore",singleton:true,requires:"Docs.store.Settings",storeName:"Docs.store.Settings",defaults:{show:{"public":true,"protected":false,"private":false,deprecated:false,removed:false,inherited:true,accessor:true},comments:{hideRead:false},showPrivateClasses:false,classTreeLogic:"PackageLogic"},set:function(d,f){var e=this.store.findExact("key",d);if(e>-1){this.store.removeAt(e)}this.store.add({key:d,value:f});this.syncStore()},get:function(c){var d=this.store.findExact("key",c);return d>-1?this.store.getAt(d).get("value"):this.defaults[c]}});Ext.define("Docs.controller.Tabs",{extend:"Ext.app.Controller",requires:["Docs.History","Docs.Settings"],refs:[{ref:"welcomeIndex",selector:"#welcomeindex"},{ref:"classIndex",selector:"#classindex"},{ref:"guideIndex",selector:"#guideindex"},{ref:"videoIndex",selector:"#videoindex"},{ref:"exampleIndex",selector:"#exampleindex"},{ref:"testsIndex",selector:"#testsindex"},{ref:"commentIndex",selector:"#commentindex"},{ref:"classTree",selector:"#classtree"},{ref:"guideTree",selector:"#guidetree"},{ref:"exampleTree",selector:"#exampletree"},{ref:"videoTree",selector:"#videotree"},{ref:"doctabs",selector:"#doctabs"}],init:function(){this.getController("Classes").addListener({showClass:function(b){this.addTabFromTree("#!/api/"+b)},scope:this});this.getController("Guides").addListener({showGuide:function(b){this.addTabFromTree("#!/guide/"+b)},scope:this});this.getController("Examples").addListener({showExample:function(b){this.addTabFromTree(b)},scope:this});this.getController("Videos").addListener({showVideo:function(b){this.addTabFromTree("#!/video/"+b)},scope:this});this.control({"[componentCls=doctabs]":{tabActivate:function(d,c){Docs.History.push(d,c)},scope:this}})},onLaunch:function(){this.getDoctabs().setStaticTabs(Ext.Array.filter([this.getWelcomeIndex().getTab(),this.getClassIndex().getTab(),this.getGuideIndex().getTab(),this.getVideoIndex().getTab(),this.getExampleIndex().getTab(),this.getTestsIndex().getTab()],function(a){return a}));this.commentsTab=this.getCommentIndex().getTab();var b=Docs.Settings.get("tabs");if(b){Ext.Array.forEach(b,function(a){this.addTabFromTree(a,{animate:false})},this)}Docs.History.notifyTabsLoaded()},showCommentsTab:function(){var b=this.getDoctabs().getStaticTabs();this.getDoctabs().setStaticTabs(b.concat(this.commentsTab))},hideCommentsTab:function(){var b=this.getDoctabs().getStaticTabs();this.getDoctabs().setStaticTabs(Ext.Array.remove(b,this.commentsTab))},addTabFromTree:function(h,g){var e=this.getTree(h);var f=e.findRecordByUrl(h);if(f){this.addTab(f,g)}},addTab:function(d,c){c=c||{animate:true,activate:true};this.getDoctabs().addTab({href:d.url,text:d.text,iconCls:d.iconCls},c)},getTree:function(b){if(/#!?\/api/.test(b)){return this.getClassTree()}else{if(/#!?\/guide/.test(b)){return this.getGuideTree()}else{if(/#!?\/video/.test(b)){return this.getVideoTree()}else{if(/#!?\/example/.test(b)){return this.getExampleTree()}else{return this.getClassTree()}}}}}});Ext.define("Docs.controller.Comments",{extend:"Docs.controller.Content",baseUrl:"#!/comment",title:"Comments",requires:["Docs.Settings","Docs.Comments"],refs:[{ref:"viewport",selector:"#viewport"},{ref:"index",selector:"#commentindex"},{ref:"commentsFullList",selector:"commentsFullList"}],recentCommentsSettings:{},init:function(){this.control({commentsFullList:{hideReadChange:function(){this.fetchRecentComments()},sortOrderChange:function(b){this.recentCommentsSettings.sortByScore=(b==="votes");this.fetchRecentComments()}},commentsPager:{loadMore:function(b){this.fetchRecentComments(b)}},commentsUsers:{select:function(b){this.recentCommentsSettings.username=b;this.fetchRecentComments()}},commentsTargets:{select:function(b){this.recentCommentsSettings.targetId=b&&b.get("id");this.fetchRecentComments()}},commentsTags:{select:function(b){this.recentCommentsSettings.tagname=b&&b.get("tagname");this.fetchRecentComments()}}})},loadIndex:function(){this.fireEvent("loadIndex");Ext.getCmp("treecontainer").hide();if(!this.recentComments){this.fetchRecentComments();this.recentComments=true}this.callParent([true])},fetchRecentComments:function(f){var e=Docs.Settings.get("comments");var d={offset:f||0,limit:100,hideRead:e.hideRead?1:undefined,sortByScore:this.recentCommentsSettings.sortByScore?1:undefined,username:this.recentCommentsSettings.username,targetId:this.recentCommentsSettings.targetId,tagname:this.recentCommentsSettings.tagname};this.getCommentsFullList().setMasked(true);Docs.Comments.request("jsonp",{url:"/comments_recent",method:"GET",params:d,success:function(a){this.getCommentsFullList().setMasked(false);var b=f>0;this.getCommentsFullList().load(a,b)},scope:this})}});Ext.define("Docs.view.GroupTree",{extend:"Docs.view.DocTree",alias:"widget.grouptree",initComponent:function(){this.root={text:"Root",children:this.buildTree(this.data)};this.callParent()},buildTree:function(b){return Ext.Array.map(b,function(a){if(a.items){return{text:a.title,expanded:true,iconCls:"icon-pkg",children:this.buildTree(a.items)}}else{return this.convert(a)}},this)}});Ext.define("Docs.view.auth.BaseForm",{extend:"Ext.Component",requires:["Docs.Tip","Docs.Auth"],createLoginFormHtml:function(){return['
','','','',''," or ",'Register',"
"].join("")},bindFormSubmitEvent:function(){this.getEl().down("form").on("submit",this.submitLogin,this,{preventDefault:true})},submitLogin:function(m,h){var n=Ext.get(h);var j=n.down("input[name=username]").getValue();var i=n.down("input[name=password]").getValue();var l=n.down("input[name=remember]");var k=l?!!(l.getAttribute("checked")):false;this.fireEvent("login",this,j,i,k)},showMessage:function(c){var d=this.getEl().down("input[type=submit]");Docs.Tip.show(c,d,"bottom")}});Ext.define("Docs.view.auth.HeaderForm",{extend:"Docs.view.auth.BaseForm",alias:"widget.authHeaderForm",requires:["Docs.Comments"],afterRender:function(){this.callParent(arguments);this.getEl().addListener("click",this.showLoginForm,this,{preventDefault:true,delegate:".login"});this.getEl().addListener("click",function(){this.fireEvent("logout",this)},this,{preventDefault:true,delegate:".logout"})},showLoginForm:function(){this.update(this.createLoginFormHtml());this.bindFormSubmitEvent()},showLoggedIn:function(d){var c=Docs.Comments.avatar(d.emailHash);this.update(c+"
"+d.userName+' | Logout
')},showLoggedOut:function(){this.update('')}});Ext.define("Docs.view.ThumbList",{extend:"Ext.view.View",alias:"widget.thumblist",requires:["Docs.Comments"],cls:"thumb-list",itemSelector:"dl",urlField:"url",commentType:"",itemTpl:[],initComponent:function(){this.addEvents("urlclick");Ext.Array.forEach(this.data,function(c,d){c.id="sample-"+d});this.store=Ext.create("Ext.data.JsonStore",{fields:["id","title","items"]});this.store.loadData(this.flattenSubgroups(this.data));this.tpl=new Ext.XTemplate(Ext.Array.flatten(["
",'','

{title}

',"
",'',this.itemTpl,"",'
',"
","
"]));this.itemTpl=undefined;this.data=undefined;this.on("viewready",function(){this.initHover();if(Docs.Comments.isEnabled()){this.initComments()}},this);this.callParent(arguments)},initHover:function(){this.getEl().on("mouseover",function(c,d){Ext.get(d).addCls("over")},this,{delegate:"dd"});this.getEl().on("mouseout",function(c,d){Ext.get(d).removeCls("over")},this,{delegate:"dd"})},initComments:function(){this.getEl().select("dd").each(function(e){var d=e.getAttributeNS("ext",this.urlField).replace(/^.*\//,"");var f=Docs.Comments.getCount([this.commentType,d,""]);if(f){Ext.DomHelper.append(e.down("p"),Docs.Comments.counterHtml(f))}},this)},updateCommentCounts:function(){if(!this.getEl()){return}this.getEl().select(".comment-counter-small").remove();this.initComments()},flattenSubgroups:function(c){function d(a){if(a.items){return Ext.Array.map(a.items,d)}else{return a}}return Ext.Array.map(c,function(a){return{id:a.id,title:a.title,items:Ext.Array.map(a.items,function(b){if(b.items){var f=Ext.apply({},d(b)[0]);f.title=b.title;return f}else{return b}})}})},onContainerClick:function(c){var d=c.getTarget("h2",3,true);if(d){d.up("div").toggleCls("collapsed")}},onItemClick:function(h,j,l,i){var k=i.getTarget("dd",5,true);if(k&&!i.getTarget("a",2)){var e=k.getAttributeNS("ext",this.urlField);this.fireEvent("urlclick",e)}return this.callParent(arguments)}});Ext.define("Docs.view.guides.Index",{extend:"Ext.container.Container",alias:"widget.guideindex",requires:["Docs.view.ThumbList"],mixins:["Docs.view.Scrolling"],cls:"iScroll",margin:"10 0 0 0",autoScroll:true,initComponent:function(){this.items=[{xtype:"container",html:'

Guides

'},Ext.create("Docs.view.ThumbList",{commentType:"guide",itemTpl:['
',"

{title}

{description}

","
"],data:Docs.data.guides})];this.callParent(arguments)},getTab:function(){var b=(Docs.data.guides||[]).length>0;return b?{cls:"guides",href:"#!/guide",tooltip:"Guides"}:false},updateCommentCounts:function(){this.down("thumblist").updateCommentCounts()}});Ext.define("Docs.view.videos.Index",{extend:"Ext.container.Container",alias:"widget.videoindex",requires:["Docs.view.ThumbList"],mixins:["Docs.view.Scrolling"],cls:"iScroll",margin:"10 0 0 0",autoScroll:true,initComponent:function(){this.items=[{xtype:"container",html:'

Videos

'},Ext.create("Docs.view.ThumbList",{commentType:"video",itemTpl:['
',"

{title}","

{[values.description.substr(0,80)]}...

","
"],data:Docs.data.videos})];this.callParent(arguments)},getTab:function(){var b=(Docs.data.videos||[]).length>0;return b?{cls:"videos",href:"#!/video",tooltip:"Videos"}:false},updateCommentCounts:function(){this.down("thumblist").updateCommentCounts()}});Ext.define("Docs.view.examples.Index",{extend:"Ext.container.Container",alias:"widget.exampleindex",requires:["Docs.view.ThumbList"],mixins:["Docs.view.Scrolling"],cls:"iScroll",margin:"10 0 0 0",autoScroll:true,initComponent:function(){this.cls+=Docs.data.touchExamplesUi?" touch-examples-ui":"";this.items=[{xtype:"container",html:'

Examples

'},Ext.create("Docs.view.ThumbList",{itemTpl:['
','
',"

{title}","",' (New)',"","",' (Updated)',"","",' (Experimental)',"","

{description}

","
"],data:Docs.data.examples})];this.callParent(arguments)},getTab:function(){var b=(Docs.data.examples||[]).length>0;return b?{cls:"examples",href:"#!/example",tooltip:"Examples"}:false}});Ext.define("Docs.view.comments.Users",{alias:"widget.commentsUsers",extend:"Ext.panel.Panel",componentCls:"comments-users",requires:["Docs.Comments","Docs.view.SimpleSelectBehavior","Docs.view.comments.FilterField"],layout:"border",initComponent:function(){this.items=[this.tabpanel=Ext.widget("tabpanel",{plain:true,region:"north",height:50,items:[{title:"Votes"},{title:"Comments"}],dockedItems:[{dock:"bottom",items:[{xtype:"commentsFilterField",emptyText:"Filter users by name...",width:320,height:20,listeners:{filter:this.onFilter,scope:this}}]}],listeners:{tabchange:this.onTabChange,scope:this}}),this.list=Ext.widget("dataview",{region:"center",cls:"iScroll users-list",autoScroll:true,store:Ext.create("Ext.data.Store",{fields:["userName","score","emailHash","mod"]}),allowDeselect:true,tpl:["
    ",'',"
  • ",'{score}',"{[Docs.Comments.avatar(values.emailHash)]}",'moderator">{userName}',"
  • ","
    ","
"],itemSelector:"li"})];new Docs.view.SimpleSelectBehavior(this.list,{select:this.onSelect,deselect:this.onDeselect,scope:this});this.callParent(arguments)},afterRender:function(){this.callParent(arguments);this.fetchUsers("votes")},onTabChange:function(d,c){if(c.title==="Votes"){this.fetchUsers("votes")}else{this.fetchUsers("comments")}},onFilter:function(b){this.list.getSelectionModel().deselectAll();this.list.getStore().clearFilter(true);this.list.getStore().filter({property:"userName",value:b,anyMatch:true})},deselectAll:function(){this.list.getSelectionModel().deselectAll()},onSelect:function(b){this.selectedUser=b;this.fireEvent("select",b.get("userName"))},onDeselect:function(){this.selectedUser=undefined;this.fireEvent("select",undefined)},fetchUsers:function(b){Docs.Comments.request("jsonp",{url:"/users",method:"GET",params:{sortBy:b},success:this.loadUsers,scope:this})},loadUsers:function(c){this.list.getStore().loadData(c.data);if(this.selectedUser){var d=this.list.getStore().findExact("userName",this.selectedUser.get("userName"));this.list.getSelectionModel().select(d,false,true)}}});Ext.define("Docs.view.examples.Inline",{extend:"Ext.Panel",alias:"widget.inlineexample",requires:["Docs.view.examples.InlineEditor","Docs.view.examples.InlinePreview"],componentCls:"inline-example-cmp",layout:"card",border:0,resizable:{transparent:true,handles:"s",constrainTo:false},maxCodeHeight:400,options:{},constructor:function(){this.callParent(arguments);this.addEvents("previewsuccess","previewfailure")},initComponent:function(){this.options=Ext.apply({device:"phone",orientation:"landscape"},this.options);this.items=[this.editor=Ext.create("Docs.view.examples.InlineEditor",{cmpName:"code",value:this.value,listeners:{init:this.updateHeight,change:this.updateHeight,scope:this}}),this.preview=Ext.create("Docs.view.examples.InlinePreview",{cmpName:"preview",options:this.options})];this.relayEvents(this.preview,["previewsuccess","previewfailure"]);if(this.options.preview){this.activeItem=1;if(this.toolbar){this.toolbar.activateButton("preview")}}else{this.activeItem=0;if(this.toolbar){this.toolbar.activateButton("code")}}this.on("afterrender",this.init,this);this.callParent(arguments)},init:function(){var b=this.layout.getActiveItem();if(b.cmpName==="preview"){this.showPreview()}this.updateHeight();if(this.toolbar){this.initToolbarEvents()}},initToolbarEvents:function(){this.toolbar.on("buttonclick",function(b){if(b==="code"){this.showCode()}else{if(b==="preview"){this.showPreview()}else{if(b==="copy"){this.showCode();this.editor.selectAll()}}}},this)},showCode:function(){this.layout.setActiveItem(0);this.updateHeight();if(this.toolbar){this.toolbar.activateButton("code")}},showPreview:function(){this.preview.update(this.editor.getValue());this.layout.setActiveItem(1);this.updateHeight();if(this.toolbar){this.toolbar.activateButton("preview")}},updateHeight:function(){var d=this.preview.getHeight();var e=this.editor.getHeight();var f=30;if(Docs.data.touchExamplesUi&&d>0){this.setHeight(d+f)}else{if(e>0){this.setHeight(Ext.Number.constrain(e+f,0,this.maxCodeHeight))}}}});Ext.define("Docs.view.examples.InlineWrap",{requires:["Docs.view.examples.Inline","Docs.view.examples.InlineToolbar"],constructor:function(c){this.pre=c;var d=this.parseOptions(c.className);this.initToolbar();if(d.preview){this.replacePre(d)}else{this.tb.on("buttonclick",function(a){d.preview=(a==="preview");this.replacePre(d)},this,{single:true})}},parseOptions:function(c){var d={};Ext.Array.forEach(c.split(/ +/),function(a){if(a==="phone"||a==="miniphone"||a==="tablet"){d.device=a}else{if(a==="ladscape"||a==="portrait"){d.orientation=a}else{d[a]=true}}});return d},initToolbar:function(){var b=document.createElement("div");this.pre.parentNode.insertBefore(b,this.pre);this.tb=Ext.create("Docs.view.examples.InlineToolbar",{renderTo:b})},replacePre:function(d){var c=document.createElement("div");this.pre.parentNode.replaceChild(c,this.pre);Ext.create("Docs.view.examples.Inline",{height:200,renderTo:c,value:Ext.String.htmlDecode(Ext.util.Format.stripTags(this.pre.innerHTML)),options:d,toolbar:this.tb})}});Ext.define("Docs.controller.InlineExamples",{extend:"Ext.app.Controller",requires:["Docs.view.examples.InlineWrap"],init:function(){this.control({classoverview:{resize:this.createResizer(".class-overview"),afterload:this.replaceExampleDivs},guidecontainer:{resize:this.createResizer(".guide-container"),afterload:this.replaceExampleDivs}})},createResizer:function(b){return function(){Ext.Array.each(Ext.ComponentQuery.query(b+" .inlineexample"),function(a){if(a.editor&&a.isVisible()){a.doLayout()}})}},replaceExampleDivs:function(){Ext.Array.each(Ext.query(".inline-example"),function(b){Ext.create("Docs.view.examples.InlineWrap",b)},this)}});Ext.define("Docs.view.tests.BatchRunner",{extend:"Ext.container.Container",requires:["Docs.view.examples.Inline"],initComponent:function(){this.addEvents("start","finish","statuschange");this.callParent(arguments)},run:function(b){this.fireEvent("start");this.runNext({pass:0,fail:0,total:b.length,remaining:b})},runNext:function(h){this.fireEvent("statuschange",h);if(!h.remaining||h.remaining.length<1){this.fireEvent("finish");return}var j=h.remaining.shift();var i=j.get("options");i.preview=false;var f="var alert = function(){};\n";var g=Ext.create("Docs.view.examples.Inline",{cls:"doc-test-preview",height:0,value:f+j.get("code"),options:i,listeners:{previewsuccess:function(a){this.onSuccess(j,h)},previewfailure:function(a,b){this.onFailure(j,h,b)},scope:this}});this.removeAll();this.add(g);g.showPreview()},onSuccess:function(d,c){d.set("status","success");d.commit();c.pass++;this.runNext(c)},onFailure:function(e,f,d){e.set("status","failure");e.set("message",d.toString());e.commit();f.fail++;this.runNext(f)}});Ext.define("Docs.view.tests.Index",{extend:"Ext.container.Container",requires:["Docs.model.Test","Docs.view.tests.BatchRunner"],mixins:["Docs.view.Scrolling"],alias:"widget.testsindex",layout:{type:"vbox",align:"stretch",shrinkToFit:true},padding:10,initComponent:function(){this.store=Ext.create("Ext.data.Store",{model:"Docs.model.Test",data:[]});this.grid=Ext.create("Ext.grid.Panel",{itemId:"testsgrid",padding:"5 0 5 0",autoScroll:true,flex:1,store:this.store,selModel:{mode:"MULTI"},columns:[{xtype:"templatecolumn",text:"Name",width:300,tpl:'{name}'},{xtype:"templatecolumn",text:"Status",width:80,tpl:'{status}'},{text:"Message",flex:1,dataIndex:"message"}],listeners:{itemdblclick:function(c,d){this.batchRunner.run([d])},scope:this}});this.batchRunner=Ext.create("Docs.view.tests.BatchRunner",{height:0,listeners:{start:this.disable,finish:this.enable,statuschange:this.updateTestStatus,scope:this}});this.items=[{html:"

Inline examples test page

",height:30},{itemId:"testcontainer",layout:{type:"vbox",align:"stretch",shrinkToFit:true},flex:1,items:[{itemId:"testcontrols",layout:"hbox",items:[{html:"Double-click to run an example, or",margin:"5 5 5 0"},{xtype:"button",itemId:"run-selected-button",text:"Run Selected",margin:5,handler:function(){this.batchRunner.run(this.grid.getSelectionModel().getSelection())},scope:this},{html:"or",margin:5},{xtype:"button",itemId:"run-all-button",text:"Run All Examples",margin:5,handler:function(){this.batchRunner.run(this.store.getRange())},scope:this},{itemId:"testStatus",margin:"5 5 5 15"}]},this.grid]},this.batchRunner];this.callParent(arguments)},getTab:function(){return Docs.data.tests?{cls:"tests",href:"#!/tests",tooltip:"Tests",text:"Tests"}:false},addExamples:function(b){this.store.add(b);this.setStatus(true,this.store.getCount()+" examples loaded.")},updateTestStatus:function(d){var c=d.pass+d.fail;this.setStatus(d.fail===0,c+"/"+d.total+" examples tested, "+d.fail+" failures")},setStatus:function(d,f){var e=d?"doc-test-success":"doc-test-failure";this.down("#testStatus").update(''+f+"")}});Ext.define("Docs.view.cls.InheritanceLogic",{extend:"Docs.view.cls.Logic",create:function(){this.root={children:[],text:"Root"};this.privates=[];this.subclasses=this.buildLookupTable(this.classes);Ext.Array.forEach(this.classes,this.addClass,this);if(!this.showPrivateClasses){this.stripPrivateClasses(this.root)}this.sortTree(this.root);return{root:this.root,privates:this.privates}},sortTree:function(b){b.children.sort(Ext.bind(this.compare,this));Ext.Array.forEach(b.children,this.sortTree,this)},compare:function(g,h){var b=g.text.toLowerCase();var a=h.text.toLowerCase();return b>a?1:(ba?1:(b{2}',d,Docs.Settings.get("classTreeLogic")===d?"selected":"",c)},setupButtonClickHandler:function(){this.el.addListener("click",function(g,h){var f=Ext.get(h),e=Ext.get(Ext.query(".cls-grouping button.selected")[0]);if(e.dom===f.dom){return}e.removeCls("selected");f.addCls("selected");if(f.hasCls("PackageLogic")){this.setLogic("PackageLogic",Docs.Settings.get("showPrivateClasses"))}else{this.setLogic("InheritanceLogic",Docs.Settings.get("showPrivateClasses"))}},this,{delegate:"button"})},setLogic:function(i,f){Docs.Settings.set("classTreeLogic",i);Docs.Settings.set("showPrivateClasses",f);var g=new Docs.view.cls[i]({classes:this.data,showPrivateClasses:f});if(this.root){var h=this.getSelectionModel().getLastSelected();var j=g.create();this.expandLonelyNode(j.root);this.setRootNode(j.root);this.initNodeLinks();h&&this.selectUrl(h.raw.url)}else{var j=g.create();this.root=j.root;this.expandLonelyNode(this.root)}this.privates=j.privates},expandLonelyNode:function(d){var c=Ext.Array.filter(d.children,function(a){return a.children.length>0});if(c.length==1){c[0].expanded=true}},findRecordByUrl:function(b){return this.callParent([b])||this.findPrivateRecordByUrl(b)},findPrivateRecordByUrl:function(e){var f=this.privates;for(var d=0;d','',"{[this.renderCount(values.count)]}","",{renderCount:this.renderCount});this.data={count:this.count};this.callParent(arguments)},renderCount:function(b){if(b===1){return"View 1 comment."}else{if(b>1){return"View "+b+" comments."}else{return"No comments. Click to add."}}},afterRender:function(){this.callParent(arguments);this.getEl().select(".toggleComments").each(function(b){b.on("click",this.toggle,this,{preventDefault:true})},this);new Docs.view.comments.TopLevelDropZone(this.getEl().down(".side.toggleComments"),{onValidDrop:Ext.Function.bind(this.setParent,this)})},setParent:function(c,d){c.setParent(d,this.reload,this)},toggle:function(){this.expanded?this.collapse():this.expand()},expand:function(){this.expanded=true;this.getEl().addCls("open");this.getEl().down(".name").setStyle("display","none");if(this.list){this.list.show()}else{this.loadComments()}},collapse:function(){this.expanded=false;this.getEl().removeCls("open");this.getEl().down(".name").setStyle("display","block");if(this.list){this.list.hide()}},loadComments:function(){this.list=new Docs.view.comments.ListWithForm({target:this.target,newCommentTitle:this.newCommentTitle,renderTo:this.getEl(),listeners:{reorder:this.reload,scope:this}});this.reload()},reload:function(){Docs.Comments.load(this.target,function(b){this.list.load(b)},this)},setCount:function(b){this.getEl().down(".name").update(this.renderCount(b))}});Ext.define("Docs.view.comments.LargeExpander",{requires:["Docs.Comments","Docs.view.comments.Expander"],html:['
','

Comments

',"
","
"].join(""),type:"class",constructor:function(e){Ext.apply(this,e);this.el=Ext.get(e.el);var d=Ext.DomHelper.append(this.el,this.html,true).down("div");var f=[this.type,this.name,""];this.expander=new Docs.view.comments.Expander({count:Docs.Comments.getCount(f),target:f,renderTo:d,onCountUpdated:this.onCountUpdated})},getExpander:function(){return this.expander}});Ext.define("Docs.view.guides.Container",{extend:"Ext.panel.Panel",alias:"widget.guidecontainer",componentCls:"guide-container",mixins:["Docs.view.Scrolling"],requires:["Docs.Comments","Docs.view.comments.LargeExpander"],initComponent:function(){this.addEvents("afterload");this.callParent(arguments)},scrollToEl:function(b){this.scrollToView(b,{highlight:true,offset:-100})},load:function(b){this.guide=b;this.tpl=this.tpl||new Ext.XTemplate(Docs.data.showPrintButton?'Print':"","{content}");this.update(this.tpl.apply(b));Docs.Syntax.highlight(this.getEl());if(Docs.Comments.isEnabled()){this.initComments()}this.fireEvent("afterload")},initComments:function(){this.expander=new Docs.view.comments.LargeExpander({type:"guide",name:this.guide.name,el:this.getEl().down(".x-panel-body")})},updateCommentCounts:function(){if(!this.expander){return}this.expander.getExpander().setCount(Docs.Comments.getCount(["guide",this.guide.name,""]))}});Ext.define("Docs.view.videos.Container",{extend:"Ext.panel.Panel",alias:"widget.videocontainer",componentCls:"video-container",requires:["Docs.Comments","Docs.view.comments.LargeExpander"],initComponent:function(){this.callParent(arguments);this.on("hide",this.pauseVideo,this)},pauseVideo:function(){var b=document.getElementById("video_player");if(b&&b.api_pause){b.api_pause()}},load:function(b){this.video=b;this.tpl=this.tpl||new Ext.XTemplate('','','','','','',"","

{title}

","

{[this.linkify(values.description)]}

",{linkify:function(a){return a.replace(/(\bhttps?:\/\/\S+)/ig,"$1")}});this.update(this.tpl.apply(b));if(Docs.Comments.isEnabled()){this.initComments()}},initComments:function(){this.expander=new Docs.view.comments.LargeExpander({type:"video",name:this.video.name,el:this.getEl().down(".x-panel-body")})},updateCommentCounts:function(){if(!this.expander){return}this.expander.getExpander().setCount(Docs.Comments.getCount(["video",this.video.name,""]))}});Ext.define("Docs.view.comments.MemberWrap",{extend:"Docs.view.cls.MemberWrap",requires:["Docs.Comments","Docs.view.comments.Expander"],constructor:function(d){this.callParent([d]);var c=Docs.Comments.getCount(this.getTarget());if(c>0){this.updateSignatureCommentCount(c)}},getTarget:function(){if(!this.target){this.target=["class",this.getDefinedIn(),this.getMemberId()]}return this.target},getExpander:function(){if(!this.expander){var b=Ext.DomHelper.append(this.el.down(".long"),"
");this.expander=new Docs.view.comments.Expander({count:Docs.Comments.getCount(this.getTarget()),target:this.getTarget(),newCommentTitle:this.getNewCommentTitle(),renderTo:b})}return this.expander},setCount:function(b){this.getExpander().setCount(b);this.updateSignatureCommentCount(b)},updateSignatureCommentCount:function(g){var e=this.el.down(".title");var f=e.down(".comment-counter-small");if(g>0){if(f){f.update(""+g)}else{var h=Ext.DomHelper.append(e,Docs.Comments.counterHtml(g),true);h.on("click",function(){this.el.addCls("open");this.getExpander().expand();this.parent.scrollToEl(this.getExpander().getEl())},this)}}else{if(f){f.remove()}}},getNewCommentTitle:function(){if(this.getDefinedIn()!==this.className){return["Be aware. This comment will be posted to "+this.getDefinedIn()+" class, ","from where this member is inherited from."].join("")}else{return undefined}},setExpanded:function(b){this.callParent([b]);if(b){this.getExpander().show()}}});Ext.define("Docs.view.comments.TopList",{extend:"Ext.panel.Panel",componentCls:"comments-toplist",requires:["Docs.view.SimpleSelectBehavior","Docs.view.comments.FilterField"],layout:"border",displayField:"text",scoreField:"score",filterEmptyText:"Filter by name...",initComponent:function(){this.items=[this.tabpanel=Ext.widget("tabpanel",{plain:true,region:"north",height:50,items:[{title:"By comment count"}],dockedItems:[{dock:"bottom",items:[{xtype:"commentsFilterField",emptyText:this.filterEmptyText,width:320,height:20,listeners:{filter:this.onFilter,scope:this}}]}]}),this.list=Ext.widget("dataview",{region:"center",cls:"iScroll top-list",autoScroll:true,store:new Ext.data.Store({model:this.model}),allowDeselect:true,tpl:["
    ",'',"
  • ",'{'+this.scoreField+"}",'{'+this.displayField+"}","
  • ","
    ","
"],itemSelector:"li"})];new Docs.view.SimpleSelectBehavior(this.list,{select:this.onSelect,deselect:this.onDeselect,scope:this});this.callParent(arguments)},afterRender:function(){this.callParent(arguments);this.list.getStore().load()},onFilter:function(b){this.list.getSelectionModel().deselectAll();this.list.getStore().clearFilter(true);this.list.getStore().filter({property:this.displayField,value:b,anyMatch:true})},deselectAll:function(){this.list.getSelectionModel().deselectAll()},onSelect:function(b){this.fireEvent("select",b)},onDeselect:function(){this.fireEvent("select",undefined)}});Ext.define("Docs.view.comments.Template",{extend:"Ext.XTemplate",requires:["Docs.Auth","Docs.Comments"],statics:{create:function(d){var c="tpl-"+Ext.JSON.encode(d);if(!this[c]){this[c]=new this();Ext.apply(this[c],d)}return this[c]}},constructor:function(){this.callParent(["
",'','
','','
Comment was deleted. Undo.
',"",'
',"{[this.avatar(values.emailHash)]}",'
moderator" title="Sencha Engineer">',"{author}",'',' on {[this.target(values.target)]}',"","
",'
','','',"{.}",'',"","",'','+',"",'','read">Read',"",'','Edit','Delete',"",'{[this.dateStr(values.createdAt)]}',"
",'
',' ','{score}',' ',"
","
",'
{contentHtml}
',"
","
","
","
",this])},avatar:function(b){return Docs.Comments.avatar(b,this.isMod()&&this.enableDragDrop?"drag-handle":"")},isTargetVisible:function(){return this.showTarget},dateStr:function(e){try{var h=Math.ceil(Number(new Date())/1000);var i=Math.ceil(Number(new Date(e))/1000);var k=h-i;if(k<60){return"just now"}else{if(k<60*60){var j=String(Math.round(k/(60)));return j+(j=="1"?" minute":" minutes")+" ago"}else{if(k<60*60*24){var j=String(Math.round(k/(60*60)));return j+(j=="1"?" hour":" hours")+" ago"}else{if(k<60*60*24*31){var j=String(Math.round(k/(60*60*24)));return j+(j=="1"?" day":" days")+" ago"}else{return Ext.Date.format(new Date(e),"jS M 'y")}}}}}catch(l){return""}},date:function(d){try{return Ext.Date.format(new Date(d),"jS F Y g:ia")}catch(c){return""}},isMod:function(){return Docs.Auth.isModerator()},isAuthor:function(b){return Docs.Auth.getUser().userName==b},target:function(h){var e=h[1],g=h[1],f="#!/api/";if(h[0]=="video"){g="Video "+g;f="#!/video/"}else{if(h[0]=="guide"){g="Guide "+g;f="#!/guide/"}else{if(h[2]!=""){e+="-"+h[2];if(h[0]=="class"){g+="#"+h[2].replace(/^.*-/,"")}else{g+=" "+h[2]}}}}return''+g+""}});Ext.define("Docs.view.comments.RepliesExpander",{alias:"widget.commentsRepliesExpander",extend:"Ext.Component",requires:["Docs.Comments"],uses:["Docs.view.comments.ListWithForm"],componentCls:"comments-replies-expander",initComponent:function(){this.tpl=new Ext.XTemplate('',"{[this.renderCount(values.count)]}","",{renderCount:this.renderCount,getCountCls:this.getCountCls});this.data={count:this.count};this.callParent(arguments)},renderCount:function(b){if(b===1){return"1 reply..."}else{if(b>1){return b+" replies..."}else{return"Write reply..."}}},getCountCls:function(b){return(b>0)?"with-replies":""},afterRender:function(){this.callParent(arguments);this.getEl().down(".replies-button").on("click",this.toggle,this,{preventDefault:true})},toggle:function(){this.expanded?this.collapse():this.expand()},expand:function(){this.expanded=true;this.getEl().down(".replies-button").update("Hide replies.");if(this.list){this.list.show()}else{this.loadComments()}},collapse:function(){this.expanded=false;this.refreshRepliesButton();if(this.list){this.list.hide()}},refreshRepliesButton:function(){var b=this.getEl().down(".replies-button");b.update(this.renderCount(this.count));b.removeCls("with-replies");b.addCls(this.getCountCls(this.count))},loadComments:function(){this.list=new Docs.view.comments.ListWithForm({target:this.target,parentId:this.parentId,newCommentTitle:"Reply to comment",renderTo:this.getEl(),listeners:{countChange:this.setCount,scope:this}});Docs.Comments.loadReplies(this.parentId,function(b){this.list.load(b)},this)},setCount:function(b){this.count=b;if(!this.expanded){this.refreshRepliesButton()}}});Ext.define("Docs.model.Comment",{extend:"Ext.data.Model",requires:["Docs.Comments"],fields:[{name:"id",mapping:"_id"},"author","emailHash","moderator","createdAt","target","score","upVote","downVote","contentHtml","read","tags","deleted","parentId","replyCount"],proxy:{type:"ajax",reader:"json"},vote:function(c,d){this.request({method:"POST",url:"/comments/"+this.get("id"),params:{vote:c},success:function(a){this.set("upVote",a.direction==="up");this.set("downVote",a.direction==="down");this.set("score",a.total);this.commit()},failure:Ext.Function.bind(d.failure,d.scope),scope:this})},loadContent:function(c,d){this.request({url:"/comments/"+this.get("id"),method:"GET",success:function(a){c.call(d,a.content)},scope:this})},saveContent:function(b){this.request({url:"/comments/"+this.get("id"),method:"POST",params:{content:b},success:function(a){this.set("contentHtml",a.content);this.commit()},scope:this})},setDeleted:function(b){this.request({url:"/comments/"+this.get("id")+(b?"/delete":"/undo_delete"),method:"POST",success:function(){this.set("deleted",b);this.commit();Docs.Comments.changeCount(this.get("target"),b?-1:+1)},scope:this})},markRead:function(){this.request({url:"/comments/"+this.get("id")+"/read",method:"POST",success:function(){this.set("read",true);this.commit()},scope:this})},setParent:function(d,f,e){this.request({url:"/comments/"+this.get("id")+"/set_parent",method:"POST",params:d?{parentId:d.get("id")}:undefined,success:f,scope:e})},addTag:function(b){this.changeTag("add_tag",b,function(){this.get("tags").push(b)},this)},removeTag:function(b){this.changeTag("remove_tag",b,function(){Ext.Array.remove(this.get("tags"),b)},this)},changeTag:function(h,e,g,f){this.request({url:"/comments/"+this.get("id")+"/"+h,method:"POST",params:{tagname:e},success:function(){g.call(f);this.commit()},scope:this})},request:function(b){Docs.Comments.request("ajax",{url:b.url,method:b.method,params:b.params,callback:function(h,f,a){var g=Ext.JSON.decode(a.responseText);if(f&&g.success){b.success&&b.success.call(b.scope,g)}else{b.failure&&b.failure.call(b.scope,g.reason)}},scope:this})}});Ext.define("Docs.CommentsProxy",{extend:"Ext.data.proxy.JsonP",alias:"proxy.comments",requires:["Docs.Comments"],constructor:function(b){b.url=Docs.Comments.buildRequestUrl(b.url);this.callParent([b])}});Ext.define("Docs.model.Tag",{extend:"Ext.data.Model",requires:["Docs.CommentsProxy"],fields:["tagname","score"],proxy:{type:"comments",url:"/tags",reader:{type:"json",root:"data"}}});Ext.define("Docs.view.comments.Tags",{extend:"Docs.view.comments.TopList",alias:"widget.commentsTags",requires:["Docs.model.Tag"],model:"Docs.model.Tag",displayField:"tagname",filterEmptyText:"Filter tags by name..."});Ext.define("Docs.model.Target",{extend:"Ext.data.Model",requires:["Docs.CommentsProxy"],fields:["id","type","cls","member","score",{name:"text",convert:function(e,f){var d=f.data;if(d.type==="class"){return d.cls+(d.member?"#"+d.member.replace(/^.*-/,""):"")}else{return d.type+" "+d.cls}}}],proxy:{type:"comments",url:"/targets",reader:{type:"json",root:"data"}}});Ext.define("Docs.view.comments.Targets",{extend:"Docs.view.comments.TopList",alias:"widget.commentsTargets",requires:["Docs.model.Target"],model:"Docs.model.Target",displayField:"text",filterEmptyText:"Filter topics by name..."});Ext.define("Docs.view.comments.TagEditor",{extend:"Ext.container.Container",requires:["Docs.model.Tag"],floating:true,hidden:true,componentCls:"comments-tageditor",statics:{cachedStore:undefined,getStore:function(){if(!this.cachedStore){this.cachedStore=Ext.create("Ext.data.Store",{model:"Docs.model.Tag",listeners:{load:function(){this.cachedStore.sort("tagname","ASC")},scope:this}});this.cachedStore.load()}return this.cachedStore}},initComponent:function(){this.items=[{xtype:"combobox",listConfig:{cls:"comments-tageditor-boundlist"},store:this.statics().getStore(),queryMode:"local",displayField:"tagname",valueField:"tagname",enableKeyEvents:true,emptyText:"New tag name...",listeners:{select:this.handleSelect,blur:this.destroy,keyup:this.onKeyUp,scope:this}}];this.callParent(arguments)},popup:function(b){this.show();this.alignTo(b,"bl",[-12,-2]);this.down("combobox").focus(true,100)},onKeyUp:function(c,d){if(d.keyCode===Ext.EventObject.ENTER){this.handleSelect()}else{if(d.keyCode===Ext.EventObject.ESC){this.destroy()}}},handleSelect:function(){var c=Ext.String.trim(this.down("combobox").getValue()||"");if(c){var d=this.rememberNewTag(c);this.fireEvent("select",d)}this.destroy()},rememberNewTag:function(g){var f=this.statics().getStore();var e=new RegExp("^"+Ext.String.escapeRegex(g)+"$","i");var h=f.query("tagname",e);if(h.getCount()===0){f.add({tagname:g});f.sort("tagname","ASC");return g}else{return h.get(0).get("tagname")}}});Ext.define("Docs.view.comments.List",{extend:"Ext.view.View",alias:"widget.commentsList",requires:["Docs.Auth","Docs.Syntax","Docs.Comments","Docs.view.comments.Template","Docs.view.comments.Form","Docs.view.comments.TagEditor","Docs.view.comments.RepliesExpander","Docs.view.comments.DragZone","Docs.view.comments.DropZone","Docs.model.Comment","Docs.Tip"],componentCls:"comments-list",itemSelector:"div.comment",emptyText:'
Loading...
',deferEmptyText:false,initComponent:function(){this.store=Ext.create("Ext.data.Store",{model:"Docs.model.Comment",listeners:{update:this.fireChangeEvent,scope:this}});this.tpl=Docs.view.comments.Template.create({showTarget:this.showTarget,enableDragDrop:this.enableDragDrop});this.callParent(arguments);this.on("refresh",function(){Docs.Syntax.highlight(this.getEl());this.renderExpanders(this.store.getRange())},this);this.on("itemupdate",function(f,e,d){Docs.Syntax.highlight(d);this.renderExpanders([f])},this)},renderExpanders:function(b){if(b[0]&&b[0].get("parentId")){return}Ext.Array.forEach(b,function(a){if(a.get("deleted")){return}new Docs.view.comments.RepliesExpander({count:a.get("replyCount"),target:a.get("target"),parentId:a.get("id"),renderTo:this.getNode(a)})},this)},afterRender:function(){this.callParent(arguments);this.mun(this.getTargetEl(),"keydown");this.delegateClick("a.voteCommentUp",function(d,c){this.vote(d,c,"up")},this);this.delegateClick("a.voteCommentDown",function(d,c){this.vote(d,c,"down")},this);this.delegateClick("a.editComment",function(d,c){this.edit(d,c)},this);this.delegateClick("a.deleteComment",function(d,c){this.setDeleted(d,c,true)},this);this.delegateClick("a.undoDeleteComment",function(d,c){this.setDeleted(d,c,false)},this);this.delegateClick("a.readComment",this.markRead,this);this.delegateClick("a.add-tag",this.addTag,this);this.delegateClick("a.remove-tag",this.removeTag,this);if(this.enableDragDrop){new Docs.view.comments.DragZone(this);new Docs.view.comments.DropZone(this,{onValidDrop:Ext.Function.bind(this.setParent,this)})}},delegateClick:function(e,f,d){this.getEl().on("click",function(b,c){var a=this.getRecord(this.findItemByChild(c));if(a){f.call(d,c,a)}},this,{preventDefault:true,delegate:e})},vote:function(e,f,d){if(!Docs.Auth.isLoggedIn()){Docs.Tip.show("Please login to vote on this comment",e);return}if(f.get("upVote")&&d==="up"||f.get("downVote")&&d==="down"){Docs.Tip.show("You have already voted on this comment",e);return}f.vote(d,{failure:function(a){Docs.Tip.show(a,e)}})},edit:function(d,c){c.loadContent(function(a){var b=Ext.get(d).up(".comment").down(".content");b.update("");new Docs.view.comments.Form({renderTo:b,title:"Edit comment",user:Docs.Auth.getUser(),content:a,listeners:{submit:function(f){c.saveContent(f)},cancel:function(){this.refreshComment(c)},scope:this}})},this)},refreshComment:function(b){this.refreshNode(this.getStore().findExact("id",b.get("id")))},setDeleted:function(d,f,e){f.setDeleted(e)},markRead:function(d,c){c.markRead()},addTag:function(d,f){var e=new Docs.view.comments.TagEditor();e.on("select",f.addTag,f);e.popup(d)},removeTag:function(e,f){var d=Ext.get(e).up(".tag").down("b").getHTML();f.removeTag(d)},setParent:function(c,d){c.setParent(d,function(){this.fireEvent("reorder")},this)},load:function(f,e){if(f.length===0){this.emptyText=""}var d=this.store.getProxy().getReader().readRecords(f).records;this.store.loadData(d,e);this.fireChangeEvent()},fireChangeEvent:function(){var b=function(a){return !a.get("deleted")};this.fireEvent("countChange",this.getStore().queryBy(b).getCount())}});Ext.define("Docs.view.comments.FullList",{extend:"Ext.panel.Panel",alias:"widget.commentsFullList",requires:["Docs.Settings","Docs.Auth","Docs.Comments","Docs.view.comments.List","Docs.view.comments.Pager"],componentCls:"comments-full-list",dockedItems:[{xtype:"container",dock:"top",height:35,html:['

Comments

','

','',"

"].join(" ")}],layout:"border",items:[{xtype:"tabpanel",cls:"comments-tabpanel",plain:true,region:"north",height:25,items:[{title:"Recent"},{title:"Votes"}]},{region:"center",xtype:"container",autoScroll:true,cls:"iScroll",items:[{xtype:"commentsList",id:"recentcomments",showTarget:true},{xtype:"commentsPager"}]}],afterRender:function(){this.callParent(arguments);this.initCheckboxes();this.initTabs();this.setMasked(true)},load:function(f,e){this.down("commentsList").load(f,e);var d=f[f.length-1];if(d){this.down("commentsPager").configure(d)}else{this.down("commentsPager").reset()}},setMasked:function(c){var d=this.getEl();if(d){d[c?"mask":"unmask"]()}},initCheckboxes:function(){var f=Docs.Settings.get("comments");var e=Ext.get("hideRead");if(e){e.dom.checked=f.hideRead;e.on("change",function(){this.saveSetting("hideRead",e.dom.checked);this.fireEvent("hideReadChange")},this)}this.setHideReadVisibility();var d=Docs.App.getController("Auth");d.on("available",this.setHideReadVisibility,this);d.on("loggedIn",this.setHideReadVisibility,this);d.on("loggedOut",this.setHideReadVisibility,this)},setHideReadVisibility:function(){var b=Docs.Auth.isModerator();Ext.get("hideRead").up("label").setStyle("display",b?"inline":"none")},initTabs:function(){this.down("tabpanel[cls=comments-tabpanel]").on("tabchange",function(d,c){if(c.title==="Recent"){this.fireEvent("sortOrderChange","recent")}else{this.fireEvent("sortOrderChange","votes")}},this)},saveSetting:function(d,e){var f=Docs.Settings.get("comments");f[d]=e;Docs.Settings.set("comments",f)},getTab:function(){return Docs.Comments.isEnabled()?{cls:"comments",href:"#!/comment",tooltip:"Comments"}:false}});Ext.define("Docs.view.comments.Index",{extend:"Ext.panel.Panel",alias:"widget.commentindex",mixins:["Docs.view.Scrolling"],requires:["Docs.Comments","Docs.view.comments.FullList","Docs.view.comments.HeaderMenu","Docs.view.comments.Users","Docs.view.comments.Targets","Docs.view.comments.Tags"],componentCls:"comments-index",margin:"10 0 0 0",layout:"border",items:[{region:"center",xtype:"commentsFullList"},{region:"east",itemId:"cardPanel",layout:"border",width:300,margin:"0 0 0 20",layout:"card",dockedItems:[{xtype:"commentsHeaderMenu",dock:"top",height:35}],items:[{xtype:"commentsUsers"},{xtype:"commentsTargets"},{xtype:"commentsTags"}]}],initComponent:function(){this.callParent(arguments);var d=this.down("#cardPanel");var c={users:this.down("commentsUsers"),targets:this.down("commentsTargets"),tags:this.down("commentsTags")};this.down("commentsHeaderMenu").on("select",function(a){Ext.Object.each(c,function(b,f){if(b!==a){f.deselectAll()}});d.getLayout().setActiveItem(c[a])},this)},getTab:function(){return Docs.Comments.isEnabled()?{cls:"comments",href:"#!/comment",tooltip:"Comments"}:false}});Ext.define("Docs.view.HoverMenu",{extend:"Ext.view.View",requires:["Docs.Comments"],alias:"widget.hovermenu",componentCls:"hover-menu",itemSelector:"div.item",deferEmptyText:false,columnHeight:25,initComponent:function(){this.renderTo=Ext.getBody();this.tpl=new Ext.XTemplate("","","","","
",'','
',"{[this.renderLink(values)]}","
",'',"
","","","
",{columnHeight:this.columnHeight,renderLink:function(e){var d=Ext.Array.map(Docs.data.signatures,function(a){return e.meta[a.key]?''+(a["short"])+"":""}).join(" ");var f=Docs.Comments.counterHtml(e.commentCount);return Ext.String.format('{1} {2} {3}',e.url,e.label,d,f)}});this.callParent()}});Ext.define("Docs.view.HoverMenuButton",{extend:"Ext.toolbar.TextItem",alias:"widget.hovermenubutton",componentCls:"hover-menu-button",requires:["Docs.view.HoverMenu"],showCount:false,statics:{menus:[]},initComponent:function(){this.addEvents("click");if(this.showCount){this.initialText=this.text;this.text+=" "+this.store.getCount()+"";this.store.on("datachanged",function(){this.setText(this.initialText+" "+this.store.getCount()+"")},this)}this.callParent(arguments)},getColumnHeight:function(){var c=200;var d=18;return Math.floor((Ext.Element.getViewportHeight()-c)/d)},onRender:function(){this.callParent(arguments);this.getEl().on({click:function(){this.fireEvent("click")},mouseover:this.deferShowMenu,mouseout:this.deferHideMenu,scope:this})},onDestroy:function(){if(this.menu){this.menu.destroy();Ext.Array.remove(Docs.view.HoverMenuButton.menus,this.menu)}this.callParent(arguments)},renderMenu:function(){this.menu=Ext.create("Docs.view.HoverMenu",{store:this.store,columnHeight:this.getColumnHeight()});this.menu.getEl().on({click:function(b){this.menu.hide();b.preventDefault()},mouseover:function(){clearTimeout(this.hideTimeout)},mouseout:this.deferHideMenu,scope:this});Docs.view.HoverMenuButton.menus.push(this.menu)},deferHideMenu:function(){clearTimeout(Docs.view.HoverMenuButton.showTimeout);if(!this.menu){return}this.hideTimeout=Ext.Function.defer(function(){this.menu.hide()},200,this)},deferShowMenu:function(){clearTimeout(Docs.view.HoverMenuButton.showTimeout);Docs.view.HoverMenuButton.showTimeout=Ext.Function.defer(function(){if(!this.menu){this.renderMenu()}Ext.Array.forEach(Docs.view.HoverMenuButton.menus,function(a){if(a!==this.menu){a.hide()}},this);clearTimeout(this.hideTimeout);this.menu.show();var j=this.getEl().getXY(),n=Ext.ComponentQuery.query("classoverview toolbar")[0],k=j[0]-10,l=n.getEl().getXY(),i=n.getWidth(),m=this.menu.getEl().getWidth(),h=Ext.getCmp("doctabs").getWidth();if(m>h){k=0}else{if((k+m)>h){k=h-m-30}}if(kb.name?1:0)});if(f.length>0){var j=this.createMemberButton({text:h[i],type:i,members:f});this.memberButtons[i]=j;this.items.push(j)}}this.checkItems={"public":this.createCb("Public","public"),"protected":this.createCb("Protected","protected"),"private":this.createCb("Private","private"),inherited:this.createCb("Inherited","inherited"),accessor:this.createCb("Accessor","accessor"),deprecated:this.createCb("Deprecated","deprecated"),removed:this.createCb("Removed","removed")};var g=this;this.items=this.items.concat([{xtype:"tbfill"},this.filterField=Ext.widget("triggerfield",{triggerCls:"reset",cls:"member-filter",hideTrigger:true,emptyText:"Filter class members",enableKeyEvents:true,width:150,listeners:{keyup:function(a){this.fireEvent("filter",a.getValue(),this.getShowFlags());a.setHideTrigger(a.getValue().length===0)},specialkey:function(a,b){if(b.keyCode===Ext.EventObject.ESC){a.reset();this.fireEvent("filter","",this.getShowFlags())}},scope:this},onTriggerClick:function(){this.reset();this.focus();g.fireEvent("filter","",g.getShowFlags());this.setHideTrigger(true)}}),{xtype:"tbspacer",width:10},this.commentCount=this.createCommentCount(),{xtype:"button",text:"Show",menu:[this.checkItems["public"],this.checkItems["protected"],this.checkItems["private"],"-",this.checkItems.inherited,this.checkItems.accessor,this.checkItems.deprecated,this.checkItems.removed]},{xtype:"button",iconCls:"expand-all-members",tooltip:"Expand all",enableToggle:true,toggleHandler:function(b,a){b.setIconCls(a?"collapse-all-members":"expand-all-members");this.fireEvent("toggleExpanded",a)},scope:this}]);this.callParent(arguments)},getShowFlags:function(){var d={};for(var c in this.checkItems){d[c]=this.checkItems[c].checked}return d},createCb:function(c,d){return Ext.widget("menucheckitem",{text:c,checked:Docs.Settings.get("show")[d],listeners:{checkchange:function(){this.fireEvent("filter",this.filterField.getValue(),this.getShowFlags())},scope:this}})},createMemberButton:function(d){var c=Ext.Array.map(d.members,function(a){return this.createLinkRecord(this.docClass.name,a)},this);return Ext.create("Docs.view.HoverMenuButton",{text:d.text,cls:"icon-"+d.type,store:this.createStore(c),showCount:true,listeners:{click:function(){this.fireEvent("menubuttonclick",d.type)},scope:this}})},createStore:function(c){var d=Ext.create("Ext.data.Store",{fields:["id","url","label","inherited","accessor","meta","commentCount"]});d.add(c);return d},createLinkRecord:function(d,c){return{id:c.id,url:d+"-"+c.id,label:(c.tagname==="method"&&c.name==="constructor")?"new "+d:c.name,inherited:c.owner!==d,accessor:c.tagname==="method"&&this.accessors.hasOwnProperty(c.name),meta:c.meta,commentCount:Docs.Comments.getCount(["class",d,c.id])}},showMenuItems:function(d,e,f){Ext.Array.forEach(["cfg","property","method","event"],function(b){if(this.memberButtons[b]){var c=this.memberButtons[b].getStore();c.filterBy(function(h){return !(!d["public"]&&!(h.get("meta")["private"]||h.get("meta")["protected"])||!d["protected"]&&h.get("meta")["protected"]||!d["private"]&&h.get("meta")["private"]||!d.inherited&&h.get("inherited")||!d.accessor&&h.get("accessor")||!d.deprecated&&h.get("meta")["deprecated"]||!d.removed&&h.get("meta")["removed"]||e&&!f.test(h.get("label")))});var a=this.memberButtons[b].menu;if(a&&Ext.getVersion().version>="4.1.0"){a.show();a.hide()}}},this)},getFilterValue:function(){return this.filterField.getValue()},createCommentCount:function(){return Ext.create("Ext.container.Container",{width:24,margin:"0 4 0 0",cls:"comment-btn",html:"0",hidden:true,listeners:{afterrender:function(b){b.el.addListener("click",function(){this.fireEvent("commentcountclick")},this)},scope:this}})},showCommentCount:function(){this.commentCount.show()},setCommentCount:function(b){this.commentCount.update(""+(b||0));this.refreshMenuCommentCounts()},refreshMenuCommentCounts:function(){Ext.Object.each(this.memberButtons,function(c,d){d.getStore().each(function(a){a.set("commentCount",Docs.Comments.getCount(["class",this.docClass.name,a.get("id")]))},this)},this)}});Ext.define("Docs.view.cls.Overview",{extend:"Ext.panel.Panel",alias:"widget.classoverview",requires:["Docs.view.cls.Toolbar","Docs.view.examples.Inline","Docs.view.comments.LargeExpander","Docs.view.cls.MemberWrap","Docs.view.comments.MemberWrap","Docs.Syntax","Docs.Settings","Docs.Comments"],mixins:["Docs.view.Scrolling"],cls:"class-overview iScroll",autoScroll:true,border:false,bodyPadding:"20 8 20 5",initComponent:function(){this.addEvents("afterload");this.callParent(arguments)},scrollToEl:function(j,h){var g=(typeof j=="string")?Ext.get(Ext.query(j)[0]):j;if(g){var f=g.hasCls("member");g.show();if(!g.isVisible(true)){g.up(".subsection").show();g.up(".members-section").show()}if(f&&g.down(".expandable")){this.setMemberExpanded(j.replace(/#/,""),true)}var i=this.body.getBox().y;this.scrollToView(g,{highlight:true,offset:(h||0)-(f?i:i-10)})}},load:function(b){this.docClass=b;this.accessors=this.buildAccessorsMap();if(this.toolbar){this.removeDocked(this.toolbar,false);this.toolbar.destroy()}this.toolbar=Ext.create("Docs.view.cls.Toolbar",{docClass:this.docClass,accessors:this.accessors,listeners:{filter:function(d,a){this.filterMembers(d,a)},menubuttonclick:function(a){this.scrollToEl("h3.members-title.icon-"+a,-20)},commentcountclick:this.expandClassComments,scope:this}});this.addDocked(this.toolbar);this.update(b.html);Docs.Syntax.highlight(this.getEl());this.filterMembers("",Docs.Settings.get("show"));if(Docs.Comments.isEnabled()){this.initComments()}else{this.initBasicMemberWrappers()}this.fireEvent("afterload")},initComments:function(){this.toolbar.showCommentCount();this.toolbar.setCommentCount(Docs.Comments.getCount(["class",this.docClass.name,""]));this.clsExpander=new Docs.view.comments.LargeExpander({name:this.docClass.name,el:Ext.query(".doc-contents")[0]});this.memberWrappers={};Ext.Array.forEach(Ext.query(".member"),function(c){var d=new Docs.view.comments.MemberWrap({parent:this,className:this.docClass.name,el:c});this.memberWrappers[d.getMemberId()]=d},this)},initBasicMemberWrappers:function(){this.memberWrappers={};Ext.Array.forEach(Ext.query(".member"),function(c){var d=new Docs.view.cls.MemberWrap({el:c});this.memberWrappers[d.getMemberId()]=d},this)},updateCommentCounts:function(){if(!this.docClass){return}var b=Docs.Comments.getCount(["class",this.docClass.name,""]);this.toolbar.setCommentCount(b);this.clsExpander.getExpander().setCount(b);Ext.Object.each(this.memberWrappers,function(a,d){d.setCount(Docs.Comments.getCount(d.getTarget()))},this)},expandClassComments:function(){var b=this.clsExpander.getExpander();b.expand();this.scrollToEl(b.getEl(),-40)},setMemberExpanded:function(c,d){this.memberWrappers[c].setExpanded(d)},isMemberExpanded:function(b){return this.memberWrappers[b].isExpanded()},setAllMembersExpanded:function(b){if(Docs.Comments.isEnabled()){Ext.Object.each(this.memberWrappers,function(a,d){d.getExpander().show()},this)}Ext.Object.each(this.memberWrappers,function(a,d){d.setExpanded(b)},this)},filterMembers:function(h,e){Docs.Settings.set("show",e);var f=h.length>0;Ext.Array.forEach(Ext.query(".doc-contents, .hierarchy"),function(a){Ext.get(a).setStyle({display:f?"none":"block"})});var g=new RegExp(Ext.String.escapeRegex(h),"i");this.eachMember(function(c){var b=Ext.get(c.id);var a=!(!e["public"]&&!(c.meta["private"]||c.meta["protected"])||!e["protected"]&&c.meta["protected"]||!e["private"]&&c.meta["private"]||!e.inherited&&(c.owner!==this.docClass.name)||!e.accessor&&c.tagname==="method"&&this.accessors.hasOwnProperty(c.name)||!e.deprecated&&c.meta.deprecated||!e.removed&&c.meta.removed||f&&!g.test(c.name));if(a){b.setStyle({display:"block"})}else{b.setStyle({display:"none"})}},this);Ext.Array.forEach(Ext.query(".member.first-child"),function(a){Ext.get(a).removeCls("first-child")});Ext.Array.forEach(Ext.query(".members-section"),function(b){var a=this.getVisibleElements(".member",b);Ext.get(b).setStyle({display:a.length>0?"block":"none"});Ext.Array.forEach(Ext.query(".subsection",b),function(d){var c=this.getVisibleElements(".member",d);if(c.length>0){c[0].addCls("first-child");Ext.get(d).setStyle({display:"block"})}else{Ext.get(d).setStyle({display:"none"})}},this)},this);this.toolbar.showMenuItems(e,f,g)},buildAccessorsMap:function(c){var d={};Ext.Array.forEach(this.docClass.members.cfg,function(b){var a=Ext.String.capitalize(b.name);d["get"+a]=true;d["set"+a]=true});return d},getVisibleElements:function(e,d){var f=Ext.Array.map(Ext.query(e,d),function(a){return Ext.get(a)});return Ext.Array.filter(f,function(a){return a.isVisible()})},eachMember:function(c,d){Ext.Array.forEach(["members","statics"],function(a){Ext.Object.each(this.docClass[a],function(b,f){Ext.Array.forEach(f,c,d)},this)},this)}});Ext.define("Docs.view.cls.Container",{extend:"Ext.container.Container",alias:"widget.classcontainer",requires:["Docs.view.cls.Header","Docs.view.cls.Overview"],layout:"border",padding:"5 10 0 10",initComponent:function(){this.items=[Ext.create("Docs.view.cls.Header",{region:"north"}),Ext.create("Docs.view.cls.Overview",{region:"center"})];this.callParent(arguments)}});Ext.define("Docs.view.Viewport",{extend:"Ext.container.Viewport",requires:["Docs.view.search.Container","Docs.view.Header","Docs.view.Tabs","Docs.view.TreeContainer","Docs.view.welcome.Index","Docs.view.auth.HeaderForm","Docs.view.comments.Index","Docs.view.cls.Index","Docs.view.cls.Container","Docs.view.guides.Index","Docs.view.guides.Container","Docs.view.videos.Index","Docs.view.videos.Container","Docs.view.examples.Index","Docs.view.examples.Container","Docs.view.examples.TouchContainer","Docs.view.tests.Index"],id:"viewport",layout:"border",defaults:{xtype:"container"},initComponent:function(){this.items=[{region:"north",id:"north-region",height:65,layout:{type:"vbox",align:"stretch"},items:[{height:37,xtype:"container",layout:"hbox",items:[{xtype:"docheader"},{xtype:"container",flex:1},{id:"loginContainer",xtype:"authHeaderForm",padding:"10 20 0 0"},{xtype:"searchcontainer",id:"search-container",width:230,margin:"4 0 0 0"}]},{xtype:"doctabs"}]},{region:"center",layout:"border",items:[{region:"west",xtype:"treecontainer",id:"treecontainer",border:1,bodyPadding:"10 9 4 9",width:240},{region:"center",id:"center-container",layout:"fit",border:false,padding:"5 10",items:{id:"card-panel",cls:"card-panel",xtype:"container",layout:{type:"card",deferredRender:true},items:[{autoScroll:true,xtype:"welcomeindex",id:"welcomeindex"},{xtype:"container",id:"failure"},{autoScroll:true,xtype:"classindex",id:"classindex"},{xtype:"classcontainer",id:"classcontainer"},{autoScroll:true,xtype:"guideindex",id:"guideindex"},{autoScroll:true,xtype:"guidecontainer",id:"guide",cls:"iScroll"},{xtype:"videoindex",id:"videoindex"},{autoScroll:true,xtype:"videocontainer",id:"video",cls:"iScroll"},{xtype:"exampleindex",id:"exampleindex"},{xtype:Docs.data.touchExamplesUi?"touchexamplecontainer":"examplecontainer",id:"example"},{xtype:"testsindex",id:"testsindex"},{xtype:"commentindex",id:"commentindex"}]}}]},{region:"south",id:"footer",height:20,contentEl:"footer-content"}];this.callParent(arguments)},setPageTitle:function(b){b=Ext.util.Format.stripTags(b);if(!this.origTitle){this.origTitle=document.title}document.title=b?(b+" - "+this.origTitle):this.origTitle}});Ext.define("Docs.Application",{requires:["Ext.app.Application","Docs.History","Docs.Comments","Docs.Settings","Docs.view.Viewport","Docs.controller.Auth","Docs.controller.Welcome","Docs.controller.Failure","Docs.controller.Classes","Docs.controller.Search","Docs.controller.InlineExamples","Docs.controller.Examples","Docs.controller.Guides","Docs.controller.Videos","Docs.controller.Tabs","Docs.controller.Comments","Docs.controller.CommentCounts","Docs.controller.Tests"],constructor:function(){Docs.Comments.init(this.createApp,this)},createApp:function(){new Ext.app.Application({name:"Docs",controllers:["Auth","Welcome","Failure","Classes","Search","InlineExamples","Examples","Guides","Videos","Tabs","Comments","CommentCounts","Tests"],launch:this.launch})},launch:function(){Docs.App=this;Docs.Settings.init();Ext.create("Docs.view.Viewport");Docs.History.init();if(Docs.initEventTracking){Docs.initEventTracking()}Ext.get("loading").remove()}});Ext.define("Docs.view.auth.Form",{extend:"Docs.view.auth.BaseForm",alias:"widget.authForm",componentCls:"auth-form",initComponent:function(){this.html=['Sign in to post a comment:',this.createLoginFormHtml()];this.callParent(arguments)},afterRender:function(){this.callParent(arguments);this.bindFormSubmitEvent()}});Ext.define("Docs.view.comments.ListWithForm",{extend:"Ext.container.Container",alias:"widget.commentsListWithForm",requires:["Docs.view.comments.List","Docs.view.comments.Form","Docs.view.auth.Form","Docs.Comments","Docs.Auth"],componentCls:"comments-list-with-form",initComponent:function(){this.items=[this.list=new Docs.view.comments.List({enableDragDrop:true})];this.relayEvents(this.list,["countChange","reorder"]);this.callParent(arguments)},load:function(c,d){this.list.load(c,d);if(Docs.Auth.isLoggedIn()){this.showCommentingForm()}else{this.showAuthForm()}},showAuthForm:function(){if(this.commentingForm){this.remove(this.commentingForm);delete this.commentingForm}if(!this.authForm){this.authForm=new Docs.view.auth.Form();this.add(this.authForm)}},showCommentingForm:function(){if(this.authForm){this.remove(this.authForm);delete this.authForm}if(!this.commentingForm){this.commentingForm=new Docs.view.comments.Form({title:this.newCommentTitle,user:Docs.Auth.getUser(),userSubscribed:Docs.Comments.hasSubscription(this.target),listeners:{submit:this.postComment,subscriptionChange:this.subscribe,scope:this}});this.add(this.commentingForm)}},postComment:function(b){Docs.Comments.post({target:this.target,parentId:this.parentId,content:b,callback:function(a){this.commentingForm.setValue("");this.list.load([a],true)},scope:this})},subscribe:function(b){Docs.Comments.subscribe(this.target,b,function(){this.commentingForm.showSubscriptionMessage(b)},this)}});Ext.ns("Docs");Ext.Loader.setConfig({enabled:true,paths:{Docs:"app"}});Ext.require("Ext.form.field.Trigger");Ext.require("Ext.tab.Panel");Ext.require("Ext.grid.column.Action");Ext.require("Ext.grid.plugin.DragDrop");Ext.require("Ext.layout.container.Border");Ext.require("Ext.data.TreeStore");Ext.require("Ext.toolbar.Spacer");Ext.require("Docs.Application");Ext.onReady(function(){Ext.create("Docs.Application")});var q=null;window.PR_SHOULD_USE_CONTINUATION=!0;(function(){function d(F){function w(J){var K=J.charCodeAt(0);if(K!==92){return K}var I=J.charAt(1);return(K=k[I])?K:"0"<=I&&I<="7"?parseInt(J.substring(1),8):I==="u"||I==="x"?parseInt(J.substring(2),16):J.charCodeAt(1)}function C(I){if(I<32){return(I<16?"\\x0":"\\x")+I.toString(16)}I=String.fromCharCode(I);if(I==="\\"||I==="-"||I==="["||I==="]"){I="\\"+I}return I}function A(J){for(var M=J.substring(1,J.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),J=[],I=[],O=M[0]==="^",P=O?1:0,L=M.length;P122||(N<65||K>90||I.push([Math.max(65,K)|32,Math.min(N,90)|32]),N<97||K>122||I.push([Math.max(97,K)&-33,Math.min(N,122)&-33]))}}I.sort(function(Q,R){return Q[0]-R[0]||R[1]-Q[1]});M=[];K=[NaN,NaN];for(P=0;PL[0]&&(L[1]+1>L[0]&&I.push("-"),I.push(C(L[1])))}I.push("]");return I.join("")}function E(J){for(var M=J.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),I=M.length,N=[],O=0,L=0;O=2&&J==="["?M[O]=A(K):J!=="\\"&&(M[O]=K.replace(/[A-Za-z]/g,function(P){P=P.charCodeAt(0);return"["+String.fromCharCode(P&-33,P|32)+"]"}))}}return M.join("")}for(var G=0,H=!1,x=!1,u=0,D=F.length;u=5&&"lang-"===O.substring(0,5))&&!(D&&typeof D[1]==="string")){M=!1,O="src"}M||(B[K]=O)}I=L;L+=K.length;if(M){M=D[1];var H=K.indexOf(M),G=H+M.length;D[2]&&(G=K.length-D[2].length,H=G-M.length);O=O.substring(5);t(F+I,K.substring(0,H),x,C);t(F+I+H,M,s(O,M),C);t(F+I+G,K.substring(G),x,C)}else{C.push(F+I,O)}}P.e=C}var w={},A;(function(){for(var G=u.concat(k),B=[],F={},H=0,E=G.length;H=0;){w[I.charAt(C)]=D}}D=D[1];I=""+D;F.hasOwnProperty(I)||(B.push(D),F[I]=q)}B.push(/[\S\s]/);A=d(B)})();var v=k.length;return x}function o(u){var k=[],w=[];u.tripleQuotedStrings?k.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):u.multiLineStrings?k.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/,q,"'\"`"]):k.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);u.verbatimStrings&&w.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var v=u.hashComments;v&&(u.cStyleComments?(v>1?k.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):k.push(["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),w.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,q])):k.push(["com",/^#[^\n\r]*/,q,"#"]));u.cStyleComments&&(w.push(["com",/^\/\/[^\n\r]*/,q]),w.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));u.regexLiterals&&w.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(v=u.types)&&w.push(["typ",v]);u=(""+u.keywords).replace(/^ | $/g,"");u.length&&w.push(["kwd",RegExp("^(?:"+u.replace(/[\s,]+/g,"|")+")\\b"),q]);k.push(["pln",/^\s+/,q," \r\n\t\xa0"]);w.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]);return h(k,w)}function r(H,x){function E(K){switch(K.nodeType){case 1:if(B.test(K.className)){break}if("BR"===K.nodeName){C(K),K.parentNode&&K.parentNode.removeChild(K)}else{for(K=K.firstChild;K;K=K.nextSibling){E(K)}}break;case 3:case 4:if(v){var k=K.nodeValue,L=k.match(I);if(L){var M=k.substring(0,L.index);K.nodeValue=M;(k=k.substring(L.index+L[0].length))&&K.parentNode.insertBefore(J.createTextNode(k),K.nextSibling);C(K);M||K.parentNode.removeChild(K)}}}}function C(K){function k(M,R){var Q=R?M.cloneNode(!1):M,P=M.parentNode;if(P){var P=k(P,1),O=M.nextSibling;P.appendChild(Q);for(var N=O;N;N=O){O=N.nextSibling,P.appendChild(N)}}return Q}for(;!K.nextSibling;){if(K=K.parentNode,!K){return}}for(var K=k(K.nextSibling,0),L;(L=K.parentNode)&&L.nodeType===1;){K=L}F.push(K)}var B=/(?:^|\s)nocode(?:\s|$)/,I=/\r\n?|\n/,J=H.ownerDocument,A;H.currentStyle?A=H.currentStyle.whiteSpace:window.getComputedStyle&&(A=J.defaultView.getComputedStyle(H,q).getPropertyValue("white-space"));var v=A&&"pre"===A.substring(0,3);for(A=J.createElement("LI");H.firstChild;){A.appendChild(H.firstChild)}for(var F=[A],D=0;D=0;){var v=k[w];y.hasOwnProperty(v)?window.console&&console.warn("cannot override language handler %s",v):y[v]=u}}function s(u,k){if(!u||!y.hasOwnProperty(u)){u=/^\s*=J&&(Q+=2);T>=V&&(X+=2)}}catch(C){"console" in window&&console.log(C&&C.stack?C.stack:C)}}var m=["break,continue,do,else,for,if,return,while"],j=[[m,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],n=[j,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],l=[j,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"],i=[l,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],j=[j,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],g=[m,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],f=[m,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],m=[m,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,b=/\S/,a=o({keywords:[n,i,j,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+g,f,m],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),y={};z(a,["default-code"]);z(h([],[["pln",/^[^]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);z(h([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css",/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);z(h([],[["atv",/^[\S\s]+/]]),["uq.val"]);z(o({keywords:n,hashComments:!0,cStyleComments:!0,types:e}),["c","cc","cpp","cxx","cyc","m"]);z(o({keywords:"null,true,false"}),["json"]);z(o({keywords:i,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:e}),["cs"]);z(o({keywords:l,cStyleComments:!0}),["java"]);z(o({keywords:m,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);z(o({keywords:g,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),["cv","py"]);z(o({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);z(o({keywords:f,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb"]);z(o({keywords:j,cStyleComments:!0,regexLiterals:!0}),["js"]);z(o({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes",hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);z(h([],[["str",/^[\S\s]+/]]),["regex"]);window.prettyPrintOne=function(u,k,w){var v=document.createElement("PRE");v.innerHTML=u;w&&r(v,w);p({g:k,i:w,h:v});return v.innerHTML};window.prettyPrint=function(E){function v(){for(var L=window.PR_SHOULD_USE_CONTINUATION?w.now()+250:Infinity;u=0){var I=I.match(B),K,H;if(H=!I){H=O;for(var M=void 0,N=H.firstChild;N;N=N.nextSibling){var J=N.nodeType,M=J===1?M?H:N:J===3?b.test(N.nodeValue)?H:M:M}H=(K=M===H?void 0:M)&&"CODE"===K.tagName}H&&(I=K.className.match(B));I&&(I=I[1]);H=!1;for(M=O.parentNode;M;M=M.parentNode){if((M.tagName==="pre"||M.tagName==="code"||M.tagName==="xmp")&&M.className&&M.className.indexOf("prettyprint")>=0){H=!0;break}}H||((H=(H=O.className.match(/\blinenums\b(?::(\d+))?/))?H[1]&&H[1].length?+H[1]:!0:!1)&&r(O,H),D={g:I,h:O,i:H},p(D))}}u-o5p;@7Dgl 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 diff --git a/docs/data-7123939d7aa281aafe53073d4dfed19f.js b/docs/data-7123939d7aa281aafe53073d4dfed19f.js new file mode 100644 index 0000000..00524bd --- /dev/null +++ b/docs/data-7123939d7aa281aafe53073d4dfed19f.js @@ -0,0 +1 @@ +Docs = {"data":{"touchExamplesUi":false,"search":[{"url":"#!/api/Frame","icon":"icon-class","fullName":"Frame","sort":1,"name":"Frame","meta":{}},{"url":"#!/api/Frame-method-buildFrame","icon":"icon-method","fullName":"Frame.buildFrame","sort":3,"name":"buildFrame","meta":{"chainable":true}},{"url":"#!/api/Frame-method-asString","icon":"icon-method","fullName":"Frame.asString","sort":3,"name":"asString","meta":{}},{"url":"#!/api/Stomp","icon":"icon-class","fullName":"Stomp","sort":1,"name":"Stomp","meta":{}},{"url":"#!/api/Stomp-method-Client","icon":"icon-method","fullName":"Stomp.Client","sort":3,"name":"Client","meta":{}},{"url":"#!/api/Stomp-method-isInitialized","icon":"icon-method","fullName":"Stomp.isInitialized","sort":3,"name":"isInitialized","meta":{}},{"url":"#!/api/Stomp-method-isConnected","icon":"icon-method","fullName":"Stomp.isConnected","sort":3,"name":"isConnected","meta":{}},{"url":"#!/api/Stomp-method-connect","icon":"icon-method","fullName":"Stomp.connect","sort":3,"name":"connect","meta":{}},{"url":"#!/api/Stomp-method-disconnect","icon":"icon-method","fullName":"Stomp.disconnect","sort":3,"name":"disconnect","meta":{}},{"url":"#!/api/Stomp-method-subscribe","icon":"icon-method","fullName":"Stomp.subscribe","sort":3,"name":"subscribe","meta":{}},{"url":"#!/api/Stomp-method-unsubscribe","icon":"icon-method","fullName":"Stomp.unsubscribe","sort":3,"name":"unsubscribe","meta":{}},{"url":"#!/api/Stomp-method-send","icon":"icon-method","fullName":"Stomp.send","sort":3,"name":"send","meta":{}},{"url":"#!/api/Stomp-method-ack","icon":"icon-method","fullName":"Stomp.ack","sort":3,"name":"ack","meta":{}},{"url":"#!/api/Stomp-method-begin","icon":"icon-method","fullName":"Stomp.begin","sort":3,"name":"begin","meta":{}},{"url":"#!/api/Stomp-method-commit","icon":"icon-method","fullName":"Stomp.commit","sort":3,"name":"commit","meta":{}},{"url":"#!/api/Stomp-method-abort","icon":"icon-method","fullName":"Stomp.abort","sort":3,"name":"abort","meta":{}},{"url":"#!/api/Stomp-method-handleNewFrame","icon":"icon-method","fullName":"Stomp.handleNewFrame","sort":3,"name":"handleNewFrame","meta":{"private":true}},{"url":"#!/api/Stomp-method-setupListeners","icon":"icon-method","fullName":"Stomp.setupListeners","sort":3,"name":"setupListeners","meta":{"private":true}},{"url":"#!/api/Stomp-method-stompConnect","icon":"icon-method","fullName":"Stomp.stompConnect","sort":3,"name":"stompConnect","meta":{"private":true}},{"url":"#!/api/Stomp-method-emitWrapper","icon":"icon-method","fullName":"Stomp.emitWrapper","sort":3,"name":"emitWrapper","meta":{"private":true}},{"url":"#!/api/Stomp-method-getOptions","icon":"icon-method","fullName":"Stomp.getOptions","sort":3,"name":"getOptions","meta":{"private":true}},{"url":"#!/api/Stomp-method-parseCommand","icon":"icon-method","fullName":"Stomp.parseCommand","sort":3,"name":"parseCommand","meta":{"private":true}},{"url":"#!/api/Stomp-method-parseHeaders","icon":"icon-method","fullName":"Stomp.parseHeaders","sort":3,"name":"parseHeaders","meta":{"private":true}},{"url":"#!/api/Stomp-method-parseFrame","icon":"icon-method","fullName":"Stomp.parseFrame","sort":3,"name":"parseFrame","meta":{"private":true}},{"url":"#!/api/Stomp-method-buildHeaders","icon":"icon-method","fullName":"Stomp.buildHeaders","sort":3,"name":"buildHeaders","meta":{"private":true}},{"url":"#!/api/Stomp-method-sendCommand","icon":"icon-method","fullName":"Stomp.sendCommand","sort":3,"name":"sendCommand","meta":{"private":true}},{"url":"#!/api/Stomp-method-sendFrame","icon":"icon-method","fullName":"Stomp.sendFrame","sort":3,"name":"sendFrame","meta":{"private":true}},{"url":"#!/api/Stomp-method-isMessage","icon":"icon-method","fullName":"Stomp.isMessage","sort":3,"name":"isMessage","meta":{"private":true}},{"url":"#!/api/Stomp-method-shouldRunMessageCallback","icon":"icon-method","fullName":"Stomp.shouldRunMessageCallback","sort":3,"name":"shouldRunMessageCallback","meta":{"private":true}},{"url":"#!/api/StompLogger","icon":"icon-class","fullName":"StompLogger","sort":1,"name":"StompLogger","meta":{}},{"url":"#!/api/StompLogger-method-debug","icon":"icon-method","fullName":"StompLogger.debug","sort":3,"name":"debug","meta":{}},{"url":"#!/api/StompLogger-method-info","icon":"icon-method","fullName":"StompLogger.info","sort":3,"name":"info","meta":{}},{"url":"#!/api/StompLogger-method-warn","icon":"icon-method","fullName":"StompLogger.warn","sort":3,"name":"warn","meta":{}},{"url":"#!/api/StompLogger-method-error","icon":"icon-method","fullName":"StompLogger.error","sort":3,"name":"error","meta":{}},{"url":"#!/api/StompLogger-method-die","icon":"icon-method","fullName":"StompLogger.die","sort":3,"name":"die","meta":{}},{"url":"#!/api/StompUtils","icon":"icon-class","fullName":"StompUtils","sort":1,"name":"StompUtils","meta":{}},{"url":"#!/api/StompUtils-method-isDefined","icon":"icon-method","fullName":"StompUtils.isDefined","sort":3,"name":"isDefined","meta":{}},{"url":"#!/api/StompUtils-method-extend","icon":"icon-method","fullName":"StompUtils.extend","sort":3,"name":"extend","meta":{}}],"classes":[{"icon":"icon-class","private":null,"extends":null,"name":"Frame"},{"icon":"icon-class","private":null,"extends":null,"name":"Stomp"},{"icon":"icon-class","private":null,"extends":null,"name":"StompLogger"},{"icon":"icon-class","private":null,"extends":null,"name":"StompUtils"}],"tests":false,"commentsUrl":null,"source":true,"localStorageDb":"docs","guides":[],"videos":[],"commentsDomain":null,"showPrintButton":false,"signatures":[{"key":"abstract","short":"ABS","long":"abstract"},{"key":"chainable","short":">","long":"chainable"},{"key":"deprecated","short":"DEP","long":"deprecated"},{"key":"new","short":"★","long":"★"},{"key":"preventable","short":"PREV","long":"preventable"},{"key":"private","short":"PRI","long":"private"},{"key":"protected","short":"PRO","long":"protected"},{"key":"readonly","short":"R O","long":"readonly"},{"key":"removed","short":"REM","long":"removed"},{"key":"required","short":"REQ","long":"required"},{"key":"static","short":"STA","long":"static"},{"key":"template","short":"TMP","long":"template"}],"examples":[]}}; diff --git a/docs/eg-iframe.html b/docs/eg-iframe.html new file mode 100644 index 0000000..022f929 --- /dev/null +++ b/docs/eg-iframe.html @@ -0,0 +1,26 @@ + + + + + + Sencha Examples + + + + + + + + + diff --git a/docs/extjs/ext-all.js b/docs/extjs/ext-all.js new file mode 100644 index 0000000..46aeaa0 --- /dev/null +++ b/docs/extjs/ext-all.js @@ -0,0 +1,38 @@ +/* +Ext JS 4.1 - JavaScript Library +Copyright (c) 2006-2012, Sencha Inc. +All rights reserved. +licensing@sencha.com + +http://www.sencha.com/license + +Open Source License +------------------------------------------------------------------------------------------ +This version of Ext JS is licensed under the terms of the Open Source GPL 3.0 license. + +http://www.gnu.org/licenses/gpl.html + +There are several FLOSS exceptions available for use with this release for +open source applications that are distributed under a license other than GPL. + +* Open Source License Exception for Applications + + http://www.sencha.com/products/floss-exception.php + +* Open Source License Exception for Development + + http://www.sencha.com/products/ux-exception.php + + +Alternate Licensing +------------------------------------------------------------------------------------------ +Commercial and OEM Licenses are available for an alternate download of Ext JS. +This is the appropriate option if you are creating proprietary applications and you are +not prepared to distribute and share the source code of your application under the +GPL v3 license. Please visit http://www.sencha.com/license for more details. + +-- + +This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT OF THIRD-PARTY INTELLECTUAL PROPERTY RIGHTS. See the GNU General Public License for more details. +*/ +var Ext=Ext||{};Ext._startTime=new Date().getTime();(function(){var h=this,a=Object.prototype,j=a.toString,b=true,g={toString:1},e=function(){},d=function(){var i=d.caller.caller;return i.$owner.prototype[i.$name].apply(this,arguments)},c;Ext.global=h;for(c in g){b=null}if(b){b=["hasOwnProperty","valueOf","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","constructor"]}Ext.enumerables=b;Ext.apply=function(o,n,q){if(q){Ext.apply(o,q)}if(o&&n&&typeof n==="object"){var p,m,l;for(p in n){o[p]=n[p]}if(b){for(m=b.length;m--;){l=b[m];if(n.hasOwnProperty(l)){o[l]=n[l]}}}}return o};Ext.buildSettings=Ext.apply({baseCSSPrefix:"x-",scopeResetCSS:false},Ext.buildSettings||{});Ext.apply(Ext,{name:Ext.sandboxName||"Ext",emptyFn:e,emptyString:new String(),baseCSSPrefix:Ext.buildSettings.baseCSSPrefix,applyIf:function(k,i){var l;if(k){for(l in i){if(k[l]===undefined){k[l]=i[l]}}}return k},iterate:function(i,l,k){if(Ext.isEmpty(i)){return}if(k===undefined){k=i}if(Ext.isIterable(i)){Ext.Array.each.call(Ext.Array,i,l,k)}else{Ext.Object.each.call(Ext.Object,i,l,k)}}});Ext.apply(Ext,{extend:(function(){var i=a.constructor,k=function(n){for(var l in n){if(!n.hasOwnProperty(l)){continue}this[l]=n[l]}};return function(l,q,o){if(Ext.isObject(q)){o=q;q=l;l=o.constructor!==i?o.constructor:function(){q.apply(this,arguments)}}var n=function(){},m,p=q.prototype;n.prototype=p;m=l.prototype=new n();m.constructor=l;l.superclass=p;if(p.constructor===i){p.constructor=q}l.override=function(r){Ext.override(l,r)};m.override=k;m.proto=m;l.override(o);l.extend=function(r){return Ext.extend(l,r)};return l}}()),override:function(m,n){if(m.$isClass){m.override(n)}else{if(typeof m=="function"){Ext.apply(m.prototype,n)}else{var i=m.self,k,l;if(i&&i.$isClass){for(k in n){if(n.hasOwnProperty(k)){l=n[k];if(typeof l=="function"){l.$name=k;l.$owner=i;l.$previous=m.hasOwnProperty(k)?m[k]:d}m[k]=l}}}else{Ext.apply(m,n)}}}return m}});Ext.apply(Ext,{valueFrom:function(l,i,k){return Ext.isEmpty(l,k)?i:l},typeOf:function(k){var i,l;if(k===null){return"null"}i=typeof k;if(i==="undefined"||i==="string"||i==="number"||i==="boolean"){return i}l=j.call(k);switch(l){case"[object Array]":return"array";case"[object Date]":return"date";case"[object Boolean]":return"boolean";case"[object Number]":return"number";case"[object RegExp]":return"regexp"}if(i==="function"){return"function"}if(i==="object"){if(k.nodeType!==undefined){if(k.nodeType===3){return(/\S/).test(k.nodeValue)?"textnode":"whitespace"}else{return"element"}}return"object"}},isEmpty:function(i,k){return(i===null)||(i===undefined)||(!k?i==="":false)||(Ext.isArray(i)&&i.length===0)},isArray:("isArray" in Array)?Array.isArray:function(i){return j.call(i)==="[object Array]"},isDate:function(i){return j.call(i)==="[object Date]"},isObject:(j.call(null)==="[object Object]")?function(i){return i!==null&&i!==undefined&&j.call(i)==="[object Object]"&&i.ownerDocument===undefined}:function(i){return j.call(i)==="[object Object]"},isSimpleObject:function(i){return i instanceof Object&&i.constructor===Object},isPrimitive:function(k){var i=typeof k;return i==="string"||i==="number"||i==="boolean"},isFunction:(typeof document!=="undefined"&&typeof document.getElementsByTagName("body")==="function")?function(i){return j.call(i)==="[object Function]"}:function(i){return typeof i==="function"},isNumber:function(i){return typeof i==="number"&&isFinite(i)},isNumeric:function(i){return !isNaN(parseFloat(i))&&isFinite(i)},isString:function(i){return typeof i==="string"},isBoolean:function(i){return typeof i==="boolean"},isElement:function(i){return i?i.nodeType===1:false},isTextNode:function(i){return i?i.nodeName==="#text":false},isDefined:function(i){return typeof i!=="undefined"},isIterable:function(k){var i=typeof k,l=false;if(k&&i!="string"){if(i=="function"){if(Ext.isSafari){l=k instanceof NodeList||k instanceof HTMLCollection}}else{l=true}}return l?k.length!==undefined:false}});Ext.apply(Ext,{clone:function(q){var p,o,m,l,r,n;if(q===null||q===undefined){return q}if(q.nodeType&&q.cloneNode){return q.cloneNode(true)}p=j.call(q);if(p==="[object Date]"){return new Date(q.getTime())}if(p==="[object Array]"){o=q.length;r=[];while(o--){r[o]=Ext.clone(q[o])}}else{if(p==="[object Object]"&&q.constructor===Object){r={};for(n in q){r[n]=Ext.clone(q[n])}if(b){for(m=b.length;m--;){l=b[m];r[l]=q[l]}}}}return r||q},getUniqueGlobalNamespace:function(){var l=this.uniqueGlobalNamespace,k;if(l===undefined){k=0;do{l="ExtBox"+(++k)}while(Ext.global[l]!==undefined);Ext.global[l]=Ext;this.uniqueGlobalNamespace=l}return l},functionFactoryCache:{},cacheableFunctionFactory:function(){var o=this,l=Array.prototype.slice.call(arguments),k=o.functionFactoryCache,i,m,n;if(Ext.isSandboxed){n=l.length;if(n>0){n--;l[n]="var Ext=window."+Ext.name+";"+l[n]}}i=l.join("");m=k[i];if(!m){m=Function.prototype.constructor.apply(Function.prototype,l);k[i]=m}return m},functionFactory:function(){var l=this,i=Array.prototype.slice.call(arguments),k;if(Ext.isSandboxed){k=i.length;if(k>0){k--;i[k]="var Ext=window."+Ext.name+";"+i[k]}}return Function.prototype.constructor.apply(Function.prototype,i)},Logger:{verbose:e,log:e,info:e,warn:e,error:function(i){throw new Error(i)},deprecate:e}});Ext.type=Ext.typeOf}());Ext.globalEval=Ext.global.execScript?function(a){execScript(a)}:function($$code){(function(){eval($$code)}())};(function(){var a="4.1.1.1",b;Ext.Version=b=Ext.extend(Object,{constructor:function(c){var e,d;if(c instanceof b){return c}this.version=this.shortVersion=String(c).toLowerCase().replace(/_/g,".").replace(/[\-+]/g,"");d=this.version.search(/([^\d\.])/);if(d!==-1){this.release=this.version.substr(d,c.length);this.shortVersion=this.version.substr(0,d)}this.shortVersion=this.shortVersion.replace(/[^\d]/g,"");e=this.version.split(".");this.major=parseInt(e.shift()||0,10);this.minor=parseInt(e.shift()||0,10);this.patch=parseInt(e.shift()||0,10);this.build=parseInt(e.shift()||0,10);return this},toString:function(){return this.version},valueOf:function(){return this.version},getMajor:function(){return this.major||0},getMinor:function(){return this.minor||0},getPatch:function(){return this.patch||0},getBuild:function(){return this.build||0},getRelease:function(){return this.release||""},isGreaterThan:function(c){return b.compare(this.version,c)===1},isGreaterThanOrEqual:function(c){return b.compare(this.version,c)>=0},isLessThan:function(c){return b.compare(this.version,c)===-1},isLessThanOrEqual:function(c){return b.compare(this.version,c)<=0},equals:function(c){return b.compare(this.version,c)===0},match:function(c){c=String(c);return this.version.substr(0,c.length)===c},toArray:function(){return[this.getMajor(),this.getMinor(),this.getPatch(),this.getBuild(),this.getRelease()]},getShortVersion:function(){return this.shortVersion},gt:function(){return this.isGreaterThan.apply(this,arguments)},lt:function(){return this.isLessThan.apply(this,arguments)},gtEq:function(){return this.isGreaterThanOrEqual.apply(this,arguments)},ltEq:function(){return this.isLessThanOrEqual.apply(this,arguments)}});Ext.apply(b,{releaseValueMap:{dev:-6,alpha:-5,a:-5,beta:-4,b:-4,rc:-3,"#":-2,p:-1,pl:-1},getComponentValue:function(c){return !c?0:(isNaN(c)?this.releaseValueMap[c]||c:parseInt(c,10))},compare:function(h,g){var d,e,c;h=new b(h).toArray();g=new b(g).toArray();for(c=0;ce){return 1}}}return 0}});Ext.apply(Ext,{versions:{},lastRegisteredVersion:null,setVersion:function(d,c){Ext.versions[d]=new b(c);Ext.lastRegisteredVersion=Ext.versions[d];return this},getVersion:function(c){if(c===undefined){return Ext.lastRegisteredVersion}return Ext.versions[c]},deprecate:function(c,e,g,d){if(b.compare(Ext.getVersion(c),e)<1){g.call(d)}}});Ext.setVersion("core",a)}());Ext.String=(function(){var i=/^[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u2028\u2029\u202f\u205f\u3000]+|[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u2028\u2029\u202f\u205f\u3000]+$/g,m=/('|\\)/g,h=/\{(\d+)\}/g,b=/([-.*+?\^${}()|\[\]\/\\])/g,n=/^\s+|\s+$/g,j=/\s+/,l=/(^[^a-z]*|[^\w])/gi,d,a,g,c,e=function(p,o){return d[o]},k=function(p,o){return(o in a)?a[o]:String.fromCharCode(parseInt(o.substr(2),10))};return{createVarName:function(o){return o.replace(l,"")},htmlEncode:function(o){return(!o)?o:String(o).replace(g,e)},htmlDecode:function(o){return(!o)?o:String(o).replace(c,k)},addCharacterEntities:function(p){var o=[],s=[],q,r;for(q in p){r=p[q];a[q]=r;d[r]=q;o.push(r);s.push(q)}g=new RegExp("("+o.join("|")+")","g");c=new RegExp("("+s.join("|")+"|&#[0-9]{1,5};)","g")},resetCharacterEntities:function(){d={};a={};this.addCharacterEntities({"&":"&",">":">","<":"<",""":'"',"'":"'"})},urlAppend:function(p,o){if(!Ext.isEmpty(o)){return p+(p.indexOf("?")===-1?"?":"&")+o}return p},trim:function(o){return o.replace(i,"")},capitalize:function(o){return o.charAt(0).toUpperCase()+o.substr(1)},uncapitalize:function(o){return o.charAt(0).toLowerCase()+o.substr(1)},ellipsis:function(q,o,r){if(q&&q.length>o){if(r){var s=q.substr(0,o-2),p=Math.max(s.lastIndexOf(" "),s.lastIndexOf("."),s.lastIndexOf("!"),s.lastIndexOf("?"));if(p!==-1&&p>=(o-15)){return s.substr(0,p)+"..."}}return q.substr(0,o-3)+"..."}return q},escapeRegex:function(o){return o.replace(b,"\\$1")},escape:function(o){return o.replace(m,"\\$1")},toggle:function(p,q,o){return p===q?o:q},leftPad:function(p,q,r){var o=String(p);r=r||" ";while(o.lengthe)?e:d)},snap:function(h,e,g,i){var d;if(h===undefined||h=e){h+=e}else{if(d*2<-e){h-=e}}}}return b.constrain(h,g,i)},snapInRange:function(h,d,g,i){var e;g=(g||0);if(h===undefined||h=d){h+=d}}if(i!==undefined){if(h>(i=b.snapInRange(i,d,g))){h=i}}return h},toFixed:c?function(g,d){d=d||0;var e=a.pow(10,d);return(a.round(g*e)/e).toFixed(d)}:function(e,d){return e.toFixed(d)},from:function(e,d){if(isFinite(e)){e=parseFloat(e)}return !isNaN(e)?e:d},randomInt:function(e,d){return a.floor(a.random()*(d-e+1)+e)}});Ext.num=function(){return b.from.apply(this,arguments)}};(function(){var g=Array.prototype,o=g.slice,q=(function(){var A=[],e,z=20;if(!A.splice){return false}while(z--){A.push("A")}A.splice(15,0,"F","F","F","F","F","F","F","F","F","F","F","F","F","F","F","F","F","F","F","F","F");e=A.length;A.splice(13,0,"XXX");if(e+1!=A.length){return false}return true}()),j="forEach" in g,u="map" in g,p="indexOf" in g,y="every" in g,c="some" in g,d="filter" in g,n=(function(){var e=[1,2,3,4,5].sort(function(){return 0});return e[0]===1&&e[1]===2&&e[2]===3&&e[3]===4&&e[4]===5}()),k=true,a,w,t,v;try{if(typeof document!=="undefined"){o.call(document.getElementsByTagName("body"))}}catch(s){k=false}function m(z,e){return(e<0)?Math.max(0,z.length+e):Math.min(z.length,e)}function x(G,F,z,J){var K=J?J.length:0,B=G.length,H=m(G,F),E,I,A,e,C,D;if(H===B){if(K){G.push.apply(G,J)}}else{E=Math.min(z,B-H);I=H+E;A=I+K-E;e=B-I;C=B-E;if(AI){for(D=e;D--;){G[A+D]=G[I+D]}}}if(K&&H===C){G.length=C;G.push.apply(G,J)}else{G.length=C+K;for(D=0;D-1;z--){if(B.call(A||D[z],D[z],z,D)===false){return z}}}return true},forEach:j?function(A,z,e){return A.forEach(z,e)}:function(C,A,z){var e=0,B=C.length;for(;ee){e=A}}}return e},mean:function(e){return e.length>0?a.sum(e)/e.length:undefined},sum:function(C){var z=0,e,B,A;for(e=0,B=C.length;e0){return setTimeout(Ext.supports.TimeoutActualLateness?function(){e()}:e,c)}e();return 0},createSequence:function(b,c,a){if(!c){return b}else{return function(){var d=b.apply(this,arguments);c.apply(a||this,arguments);return d}}},createBuffered:function(e,b,d,c){var a;return function(){var h=c||Array.prototype.slice.call(arguments,0),g=d||this;if(a){clearTimeout(a)}a=setTimeout(function(){e.apply(g,h)},b)}},createThrottled:function(e,b,d){var g,a,c,i,h=function(){e.apply(d||this,c);g=new Date().getTime()};return function(){a=new Date().getTime()-g;c=arguments;clearTimeout(i);if(!g||(a>=b)){h()}else{i=setTimeout(h,b-a)}}},interceptBefore:function(b,a,d,c){var e=b[a]||Ext.emptyFn;return(b[a]=function(){var g=d.apply(c||this,arguments);e.apply(this,arguments);return g})},interceptAfter:function(b,a,d,c){var e=b[a]||Ext.emptyFn;return(b[a]=function(){e.apply(this,arguments);return d.apply(c||this,arguments)})}};Ext.defer=Ext.Function.alias(Ext.Function,"defer");Ext.pass=Ext.Function.alias(Ext.Function,"pass");Ext.bind=Ext.Function.alias(Ext.Function,"bind");(function(){var a=function(){},b=Ext.Object={chain:function(d){a.prototype=d;var c=new a();a.prototype=null;return c},toQueryObjects:function(e,k,d){var c=b.toQueryObjects,j=[],g,h;if(Ext.isArray(k)){for(g=0,h=k.length;g0){k=o.split("=");w=decodeURIComponent(k[0]);n=(k[1]!==undefined)?decodeURIComponent(k[1]):"";if(!r){if(u.hasOwnProperty(w)){if(!Ext.isArray(u[w])){u[w]=[u[w]]}u[w].push(n)}else{u[w]=n}}else{h=w.match(/(\[):?([^\]]*)\]/g);t=w.match(/^([^\[]+)/);w=t[0];l=[];if(h===null){u[w]=n;continue}for(p=0,c=h.length;p 0 ? +1 : (Ext.Date.getWeekOfYear(this) >= 52 && this.getMonth() < 11 ? -1 : 0)))",Y:"Ext.String.leftPad(this.getFullYear(), 4, '0')",y:"('' + this.getFullYear()).substring(2, 4)",a:"(this.getHours() < 12 ? 'am' : 'pm')",A:"(this.getHours() < 12 ? 'AM' : 'PM')",g:"((this.getHours() % 12) ? this.getHours() % 12 : 12)",G:"this.getHours()",h:"Ext.String.leftPad((this.getHours() % 12) ? this.getHours() % 12 : 12, 2, '0')",H:"Ext.String.leftPad(this.getHours(), 2, '0')",i:"Ext.String.leftPad(this.getMinutes(), 2, '0')",s:"Ext.String.leftPad(this.getSeconds(), 2, '0')",u:"Ext.String.leftPad(this.getMilliseconds(), 3, '0')",O:"Ext.Date.getGMTOffset(this)",P:"Ext.Date.getGMTOffset(this, true)",T:"Ext.Date.getTimezone(this)",Z:"(this.getTimezoneOffset() * -60)",c:function(){var k,h,g,d,j;for(k="Y-m-dTH:i:sP",h=[],g=0,d=k.length;g= 0 && y >= 0){","v = Ext.Date.add(new Date(y < 100 ? 100 : y, 0, 1, h, i, s, ms), Ext.Date.YEAR, y < 100 ? y - 100 : 0);","v = !strict? v : (strict === true && (z <= 364 || (Ext.Date.isLeapYear(v) && z <= 365))? Ext.Date.add(v, Ext.Date.DAY, z) : null);","}else if(strict === true && !Ext.Date.isValid(y, m + 1, d, h, i, s, ms)){","v = null;","}else{","v = Ext.Date.add(new Date(y < 100 ? 100 : y, m, d, h, i, s, ms), Ext.Date.YEAR, y < 100 ? y - 100 : 0);","}","}","}","if(v){","if(zz != null){","v = Ext.Date.add(v, Ext.Date.SECOND, -v.getTimezoneOffset() * 60 - zz);","}else if(o){","v = Ext.Date.add(v, Ext.Date.MINUTE, -v.getTimezoneOffset() + (sn == '+'? -1 : 1) * (hr * 60 + mn));","}","}","return v;"].join("\n");return function(o){var e=a.parseRegexes.length,p=1,g=[],n=[],l=false,d="",j=0,k=o.length,m=[],h;for(;j Ext.Date.y2kYear ? 1900 + ty : 2000 + ty;\n",s:"(\\d{1,2})"},a:{g:1,c:"if (/(am)/i.test(results[{0}])) {\nif (!h || h == 12) { h = 0; }\n} else { if (!h || h < 12) { h = (h || 0) + 12; }}",s:"(am|pm|AM|PM)",calcAtEnd:true},A:{g:1,c:"if (/(am)/i.test(results[{0}])) {\nif (!h || h == 12) { h = 0; }\n} else { if (!h || h < 12) { h = (h || 0) + 12; }}",s:"(AM|PM|am|pm)",calcAtEnd:true},g:{g:1,c:"h = parseInt(results[{0}], 10);\n",s:"(1[0-2]|[0-9])"},G:{g:1,c:"h = parseInt(results[{0}], 10);\n",s:"(2[0-3]|1[0-9]|[0-9])"},h:{g:1,c:"h = parseInt(results[{0}], 10);\n",s:"(1[0-2]|0[1-9])"},H:{g:1,c:"h = parseInt(results[{0}], 10);\n",s:"(2[0-3]|[0-1][0-9])"},i:{g:1,c:"i = parseInt(results[{0}], 10);\n",s:"([0-5][0-9])"},s:{g:1,c:"s = parseInt(results[{0}], 10);\n",s:"([0-5][0-9])"},u:{g:1,c:"ms = results[{0}]; ms = parseInt(ms, 10)/Math.pow(10, ms.length - 3);\n",s:"(\\d+)"},O:{g:1,c:["o = results[{0}];","var sn = o.substring(0,1),","hr = o.substring(1,3)*1 + Math.floor(o.substring(3,5) / 60),","mn = o.substring(3,5) % 60;","o = ((-12 <= (hr*60 + mn)/60) && ((hr*60 + mn)/60 <= 14))? (sn + Ext.String.leftPad(hr, 2, '0') + Ext.String.leftPad(mn, 2, '0')) : null;\n"].join("\n"),s:"([+-]\\d{4})"},P:{g:1,c:["o = results[{0}];","var sn = o.substring(0,1),","hr = o.substring(1,3)*1 + Math.floor(o.substring(4,6) / 60),","mn = o.substring(4,6) % 60;","o = ((-12 <= (hr*60 + mn)/60) && ((hr*60 + mn)/60 <= 14))? (sn + Ext.String.leftPad(hr, 2, '0') + Ext.String.leftPad(mn, 2, '0')) : null;\n"].join("\n"),s:"([+-]\\d{2}:\\d{2})"},T:{g:0,c:null,s:"[A-Z]{1,4}"},Z:{g:1,c:"zz = results[{0}] * 1;\nzz = (-43200 <= zz && zz <= 50400)? zz : null;\n",s:"([+-]?\\d{1,5})"},c:function(){var e=[],c=[a.formatCodeToRegex("Y",1),a.formatCodeToRegex("m",2),a.formatCodeToRegex("d",3),a.formatCodeToRegex("H",4),a.formatCodeToRegex("i",5),a.formatCodeToRegex("s",6),{c:"ms = results[7] || '0'; ms = parseInt(ms, 10)/Math.pow(10, ms.length - 3);\n"},{c:["if(results[8]) {","if(results[8] == 'Z'){","zz = 0;","}else if (results[8].indexOf(':') > -1){",a.formatCodeToRegex("P",8).c,"}else{",a.formatCodeToRegex("O",8).c,"}","}"].join("\n")}],g,d;for(g=0,d=c.length;g0?"-":"+")+Ext.String.leftPad(Math.floor(Math.abs(e)/60),2,"0")+(d?":":"")+Ext.String.leftPad(Math.abs(e%60),2,"0")},getDayOfYear:function(g){var e=0,j=Ext.Date.clone(g),c=g.getMonth(),h;for(h=0,j.setDate(1),j.setMonth(0);h28){e=Math.min(e,Ext.Date.getLastDateOfMonth(Ext.Date.add(Ext.Date.getFirstDateOfMonth(h),Ext.Date.MONTH,i)).getDate())}j.setDate(e);j.setMonth(h.getMonth()+i);break;case Ext.Date.YEAR:e=h.getDate();if(e>28){e=Math.min(e,Ext.Date.getLastDateOfMonth(Ext.Date.add(Ext.Date.getFirstDateOfMonth(h),Ext.Date.YEAR,i)).getDate())}j.setDate(e);j.setFullYear(h.getFullYear()+i);break}return j},between:function(d,g,c){var e=d.getTime();return g.getTime()<=e&&e<=c.getTime()},compat:function(){var d=window.Date,c,l,j=["useStrict","formatCodeToRegex","parseFunctions","parseRegexes","formatFunctions","y2kYear","MILLI","SECOND","MINUTE","HOUR","DAY","MONTH","YEAR","defaults","dayNames","monthNames","monthNumbers","getShortMonthName","getShortDayName","getMonthNumber","formatCodes","isValid","parseDate","getFormatCode","createFormat","createParser","parseCodes"],h=["dateFormat","format","getTimezone","getGMTOffset","getDayOfYear","getWeekOfYear","isLeapYear","getFirstDayOfMonth","getLastDayOfMonth","getDaysInMonth","getSuffix","clone","isDST","clearTime","add","between"],i=j.length,e=h.length,g,k,m;for(m=0;m0){for(d=0;d0){if(x===w){return z[x]}y=z[x];w=w.substring(x.length+1)}if(y.length>0){y+="/"}return y.replace(c,"/")+w.replace(g,"/")+".js"},getPrefix:function(x){var z=j.config.paths,y,w="";if(z.hasOwnProperty(x)){return x}for(y in z){if(z.hasOwnProperty(y)&&y+"."===x.substring(0,y.length+1)){if(y.length>w.length){w=y}}}return w},isAClassNameWithAKnownPrefix:function(w){var x=j.getPrefix(w);return x!==""&&x!==w},require:function(y,x,w,z){if(x){x.call(w)}},syncRequire:function(){},exclude:function(w){return{require:function(z,y,x){return j.require(z,y,x,w)},syncRequire:function(z,y,x){return j.syncRequire(z,y,x,w)}}},onReady:function(z,y,A,w){var x;if(A!==false&&Ext.onDocumentReady){x=z;z=function(){Ext.onDocumentReady(x,y,w)}}z.call(y)}});var o=[],p={},s={},q={},n={},u=[],v=[],i={};Ext.apply(j,{documentHead:typeof document!="undefined"&&(document.head||document.getElementsByTagName("head")[0]),isLoading:false,queue:o,isClassFileLoaded:p,isFileLoaded:s,readyListeners:u,optionalRequires:v,requiresMap:i,numPendingFiles:0,numLoadedFiles:0,hasFileLoadError:false,classNameToFilePathMap:q,scriptsLoading:0,syncModeEnabled:false,scriptElements:n,refreshQueue:function(){var A=o.length,x,z,w,y;if(!A&&!j.scriptsLoading){return j.triggerReady()}for(x=0;xj.numLoadedFiles){continue}for(w=0;w=200&&A<300)||(A===304)){if(!Ext.isIE){B="\n//@ sourceURL="+x}Ext.globalEval(G.responseText+B);E.call(H)}else{}}G=null}},syncRequire:function(){var w=j.syncModeEnabled;if(!w){j.syncModeEnabled=true}j.require.apply(j,arguments);if(!w){j.syncModeEnabled=false}j.refreshQueue()},require:function(O,F,z,B){var H={},y={},E=[],Q=[],N=[],x=[],D,P,J,I,w,C,M,L,K,G,A;if(B){B=(typeof B==="string")?[B]:B;for(L=0,G=B.length;L0){E=b.getNamesByExpression(w);for(K=0,A=E.length;K0){D=function(){var S=[],R,T;for(R=0,T=x.length;R0){Q=b.getNamesByExpression(I);A=Q.length;for(K=0;K0){if(!j.config.enabled){throw new Error("Ext.Loader is not enabled, so dependencies cannot be resolved dynamically. Missing required class"+((N.length>1)?"es":"")+": "+N.join(", "))}}else{D.call(z);return j}P=j.syncModeEnabled;if(!P){o.push({requires:N.slice(),callback:D,scope:z})}G=N.length;for(L=0;Lwindow.innerWidth?"portrait":"landscape"},destroy:function(){var c=arguments.length,b,a;for(b=0;b]+>/gi,c=/(?:)((\n|\r|.)*?)(?:<\/script>)/ig,b=/\r?\n/g,d=/[^\d\.]/g,a;Ext.apply(g,{thousandSeparator:",",decimalSeparator:".",currencyPrecision:2,currencySign:"$",currencyAtEnd:false,undef:function(h){return h!==undefined?h:""},defaultValue:function(i,h){return i!==undefined&&i!==""?i:h},substr:"ab".substr(-1)!="b"?function(i,k,h){var j=String(i);return(k<0)?j.substr(Math.max(j.length+k,0),h):j.substr(k,h)}:function(i,j,h){return String(i).substr(j,h)},lowercase:function(h){return String(h).toLowerCase()},uppercase:function(h){return String(h).toUpperCase()},usMoney:function(h){return g.currency(h,"$",2)},currency:function(k,m,j,h){var o="",n=",0",l=0;k=k-0;if(k<0){k=-k;o="-"}j=Ext.isDefined(j)?j:g.currencyPrecision;n+=n+(j>0?".":"");for(;l2){}else{if(h.length>1){y=Ext.Number.toFixed(y,h[1].length)}else{y=Ext.Number.toFixed(y,0)}}x=y.toString();h=x.split(".");if(k){w=h[0];p=[];t=w.length;o=Math.floor(t/3);l=w.length%3||3;for(u=0;u")},capitalize:Ext.String.capitalize,ellipsis:Ext.String.ellipsis,format:Ext.String.format,htmlDecode:Ext.String.htmlDecode,htmlEncode:Ext.String.htmlEncode,leftPad:Ext.String.leftPad,trim:Ext.String.trim,parseBox:function(i){i=Ext.isEmpty(i)?"":i;if(Ext.isNumber(i)){i=i.toString()}var j=i.split(" "),h=j.length;if(h==1){j[1]=j[2]=j[3]=j[0]}else{if(h==2){j[2]=j[0];j[3]=j[1]}else{if(h==3){j[3]=j[1]}}}return{top:parseInt(j[0],10)||0,right:parseInt(j[1],10)||0,bottom:parseInt(j[2],10)||0,left:parseInt(j[3],10)||0}},escapeRegex:function(h){return h.replace(/([\-.*+?\^${}()|\[\]\/\\])/g,"\\$1")}})}());Ext.define("Ext.util.TaskRunner",{interval:10,timerId:null,constructor:function(a){var b=this;if(typeof a=="number"){b.interval=a}else{if(a){Ext.apply(b,a)}}b.tasks=[];b.timerFn=Ext.Function.bind(b.onTick,b)},newTask:function(b){var a=new Ext.util.TaskRunner.Task(b);a.manager=this;return a},start:function(a){var c=this,b=new Date().getTime();if(!a.pending){c.tasks.push(a);a.pending=true}a.stopped=false;a.taskStartTime=b;a.taskRunTime=a.fireOnStart!==false?0:a.taskStartTime;a.taskRunCount=0;if(!c.firing){if(a.fireOnStart!==false){c.startTimer(0,b)}else{c.startTimer(a.interval,b)}}return a},stop:function(a){if(!a.stopped){a.stopped=true;if(a.onStop){a.onStop.call(a.scope||a,a)}}return a},stopAll:function(){Ext.each(this.tasks,this.stop,this)},firing:false,nextExpires:1e+99,onTick:function(){var m=this,e=m.tasks,a=new Date().getTime(),n=1e+99,k=e.length,c,o,h,b,d,g;m.timerId=null;m.firing=true;for(h=0;hc){n=c}}}if(o){m.tasks=o}m.firing=false;if(m.tasks.length){m.startTimer(n-a,new Date().getTime())}},startTimer:function(e,c){var d=this,b=c+e,a=d.timerId;if(a&&d.nextExpires-b>d.interval){clearTimeout(a);a=null}if(!a){if(e',''," ({childCount} children)","",''," ({depth} deep)","",'',", {type}: {[this.time(values.sum)]} msec (","avg={[this.time(values.sum / parent.count)]}",")","",""].join(""),{time:function(n){return Math.round(n*100)/100}})}var m=this.getData(l);m.name=this.name;m.pure.type="Pure";m.total.type="Total";m.times=[m.pure,m.total];return d.apply(m)},getData:function(l){var m=this;return{count:m.count,childCount:m.childCount,depth:m.maxDepth,pure:g(m.count,m.childCount,l,m.pure),total:g(m.count,m.childCount,l,m.total)}},enter:function(){var l=this,m={accum:l,leave:e,childTime:0,parent:c};++l.depth;if(l.maxDepth','
',"",'
','
',"
",'
','
'].join("");e.body.appendChild(h)}while(i--){g=c[i];if(h||g.early){d[g.identity]=g.fn.call(d,e,h)}else{b.push(g)}}if(h){e.body.removeChild(h)}d.tests=b},PointerEvents:"pointerEvents" in document.documentElement.style,CSS3BoxShadow:"boxShadow" in document.documentElement.style||"WebkitBoxShadow" in document.documentElement.style||"MozBoxShadow" in document.documentElement.style,ClassList:!!document.documentElement.classList,OrientationChange:((typeof window.orientation!="undefined")&&("onorientationchange" in window)),DeviceMotion:("ondevicemotion" in window),Touch:("ontouchstart" in window)&&(!Ext.is.Desktop),TimeoutActualLateness:(function(){setTimeout(function(){Ext.supports.TimeoutActualLateness=arguments.length!==0},0)}()),tests:[{identity:"Transitions",fn:function(h,k){var g=["webkit","Moz","o","ms","khtml"],j="TransitionEnd",b=[g[0]+j,"transitionend",g[2]+j,g[3]+j,g[4]+j],e=g.length,d=0,c=false;for(;d

";return(c.childNodes.length==2)}},{identity:"Float",fn:function(b,c){return !!c.lastChild.style.cssFloat}},{identity:"AudioTag",fn:function(b){return !!b.createElement("audio").canPlayType}},{identity:"History",fn:function(){var b=window.history;return !!(b&&b.pushState)}},{identity:"CSS3DTransform",fn:function(){return(typeof WebKitCSSMatrix!="undefined"&&new WebKitCSSMatrix().hasOwnProperty("m41"))}},{identity:"CSS3LinearGradient",fn:function(h,j){var g="background-image:",d="-webkit-gradient(linear, left top, right bottom, from(black), to(white))",i="linear-gradient(left top, black, white)",e="-moz-"+i,b="-o-"+i,c=[g+d,g+i,g+e,g+b];j.style.cssText=c.join(";");return(""+j.style.backgroundImage).indexOf("gradient")!==-1}},{identity:"CSS3BorderRadius",fn:function(e,g){var c=["borderRadius","BorderRadius","MozBorderRadius","WebkitBorderRadius","OBorderRadius","KhtmlBorderRadius"],d=false,b;for(b=0;b=534.16}},{identity:"TextAreaMaxLength",fn:function(){var b=document.createElement("textarea");return("maxlength" in b)}},{identity:"GetPositionPercentage",fn:function(b,c){return a(c.childNodes[2],"left")=="10%"}}]}}());Ext.supports.init();Ext.util.DelayedTask=function(d,c,a){var e=this,g,b=function(){clearInterval(g);g=null;d.apply(c,a||[])};this.delay=function(i,k,j,h){e.cancel();d=k||d;c=j||c;a=h||a;g=setInterval(b,i)};this.cancel=function(){if(g){clearInterval(g);g=null}}};Ext.require("Ext.util.DelayedTask",function(){Ext.util.Event=Ext.extend(Object,(function(){var b={};function d(h,i,j,g){return function(){if(j.target===arguments[0]){h.apply(g,arguments)}}}function c(h,i,j,g){i.task=new Ext.util.DelayedTask();return function(){i.task.delay(j.buffer,h,g,Ext.Array.toArray(arguments))}}function a(h,i,j,g){return function(){var k=new Ext.util.DelayedTask();if(!i.tasks){i.tasks=[]}i.tasks.push(k);k.delay(j.delay||10,h,g,Ext.Array.toArray(arguments))}}function e(h,i,j,g){return function(){var k=i.ev;if(k.removeListener(i.fn,g)&&k.observable){k.observable.hasListeners[k.name]--}return h.apply(g,arguments)}}return{isEvent:true,constructor:function(h,g){this.name=g;this.observable=h;this.listeners=[]},addListener:function(i,h,g){var j=this,k;h=h||j.observable;if(!j.isListening(i,h)){k=j.createListener(i,h,g);if(j.firing){j.listeners=j.listeners.slice(0)}j.listeners.push(k)}},createListener:function(j,i,g){g=g||b;i=i||this.observable;var k={fn:j,scope:i,o:g,ev:this},h=j;if(g.single){h=e(h,k,g,i)}if(g.target){h=d(h,k,g,i)}if(g.delay){h=a(h,k,g,i)}if(g.buffer){h=c(h,k,g,i)}k.fireFn=h;return k},findListener:function(l,k){var j=this.listeners,g=j.length,m,h;while(g--){m=j[g];if(m){h=m.scope;if(m.fn==l&&(h==(k||this.observable))){return g}}}return -1},isListening:function(h,g){return this.findListener(h,g)!==-1},removeListener:function(j,i){var l=this,h,m,g;h=l.findListener(j,i);if(h!=-1){m=l.listeners[h];if(l.firing){l.listeners=l.listeners.slice(0)}if(m.task){m.task.cancel();delete m.task}g=m.tasks&&m.tasks.length;if(g){while(g--){m.tasks[g].cancel()}delete m.tasks}Ext.Array.erase(l.listeners,h,1);return true}return false},clearListeners:function(){var h=this.listeners,g=h.length;while(g--){this.removeListener(h[g].fn,h[g].scope)}},fire:function(){var l=this,j=l.listeners,k=j.length,h,g,m;if(k>0){l.firing=true;for(h=0;h";for(;r\^])\s?|\s|$)/,c=/^(#)?([\w\-]+|\*)(?:\((true|false)\))?/,b=[{re:/^\.([\w\-]+)(?:\((true|false)\))?/,method:m},{re:/^(?:[\[](?:@)?([\w\-]+)\s?(?:(=|.=)\s?['"]?(.*?)["']?)?[\]])/,method:n},{re:/^#([\w\-]+)/,method:d},{re:/^\:([\w\-]+)(?:\(((?:\{[^\}]+\})|(?:(?!\{)[^\s>\/]*?(?!\})))\))?/,method:l},{re:/^(?:\{([^\}]+)\})/,method:k}];h.Query=Ext.extend(Object,{constructor:function(o){o=o||{};Ext.apply(this,o)},execute:function(p){var r=this.operations,s=0,t=r.length,q,o;if(!p){o=Ext.ComponentManager.all.getArray()}else{if(Ext.isArray(p)){o=p}else{if(p.isMixedCollection){o=p.items}}}for(;s1){for(r=0,s=t.length;r0){o.push(p[0])}return o},last:function(q){var o=q.length,p=[];if(o>0){p.push(q[o-1])}return p}},query:function(p,w){var x=p.split(","),o=x.length,q=0,r=[],y=[],v={},t,s,u;for(;q1){s=r.length;for(q=0;q111&&g.keyCode<124){g.keyCode=-1}}catch(h){}}},getRelatedTarget:function(e){e=e.browserEvent||e;var g=e.relatedTarget;if(!g){if(a.mouseLeaveRe.test(e.type)){g=e.toElement}else{if(a.mouseEnterRe.test(e.type)){g=e.fromElement}}}return a.resolveTextNode(g)},getPageX:function(e){return a.getPageXY(e)[0]},getPageY:function(e){return a.getPageXY(e)[1]},getPageXY:function(h){h=h.browserEvent||h;var g=h.pageX,j=h.pageY,i=d.documentElement,e=d.body;if(!g&&g!==0){g=h.clientX+(i&&i.scrollLeft||e&&e.scrollLeft||0)-(i&&i.clientLeft||e&&e.clientLeft||0);j=h.clientY+(i&&i.scrollTop||e&&e.scrollTop||0)-(i&&i.clientTop||e&&e.clientTop||0)}return[g,j]},getTarget:function(e){e=e.browserEvent||e;return a.resolveTextNode(e.target||e.srcElement)},resolveTextNode:Ext.isGecko?function(g){if(!g){return}var e=HTMLElement.prototype.toString.call(g);if(e=="[xpconnect wrapped native prototype]"||e=="[object XULElement]"){return}return g.nodeType==3?g.parentNode:g}:function(e){return e&&e.nodeType==3?e.parentNode:e},curWidth:0,curHeight:0,onWindowResize:function(i,h,g){var e=a.resizeEvent;if(!e){a.resizeEvent=e=new Ext.util.Event();a.on(c,"resize",a.fireResize,null,{buffer:100})}e.addListener(i,h,g)},fireResize:function(){var e=Ext.Element.getViewWidth(),g=Ext.Element.getViewHeight();if(a.curHeight!=g||a.curWidth!=e){a.curHeight=g;a.curWidth=e;a.resizeEvent.fire(e,g)}},removeResizeListener:function(h,g){var e=a.resizeEvent;if(e){e.removeListener(h,g)}},onWindowUnload:function(i,h,g){var e=a.unloadEvent;if(!e){a.unloadEvent=e=new Ext.util.Event();a.addListener(c,"unload",a.fireUnload)}if(i){e.addListener(i,h,g)}},fireUnload:function(){try{d=c=undefined;var m,h,k,j,g;a.unloadEvent.fire();if(Ext.isGecko3){m=Ext.ComponentQuery.query("gridview");h=0;k=m.length;for(;h=525:!((Ext.isGecko&&!Ext.isWindows)||Ext.isOpera),getKeyEvent:function(){return a.useKeyDown?"keydown":"keypress"}});if(!("addEventListener" in document)&&document.attachEvent){Ext.apply(a,{pollScroll:function(){var g=true;try{document.documentElement.doScroll("left")}catch(h){g=false}if(g&&document.body){a.onReadyEvent({type:"doScroll"})}else{a.scrollTimeout=setTimeout(a.pollScroll,20)}return g},scrollTimeout:null,readyStatesRe:/complete/i,checkReadyState:function(){var e=document.readyState;if(a.readyStatesRe.test(e)){a.onReadyEvent({type:e})}},bindReadyEvent:function(){var g=true;if(a.hasBoundOnReady){return}try{g=window.frameElement===undefined}catch(h){g=false}if(!g||!d.documentElement.doScroll){a.pollScroll=Ext.emptyFn}if(a.pollScroll()===true){return}if(d.readyState=="complete"){a.onReadyEvent({type:"already "+(d.readyState||"body")})}else{d.attachEvent("onreadystatechange",a.checkReadyState);window.attachEvent("onload",a.onReadyEvent);a.hasBoundOnReady=true}},onReadyEvent:function(g){if(g&&g.type){a.onReadyChain.push(g.type)}if(a.hasBoundOnReady){document.detachEvent("onreadystatechange",a.checkReadyState);window.detachEvent("onload",a.onReadyEvent)}if(Ext.isNumber(a.scrollTimeout)){clearTimeout(a.scrollTimeout);delete a.scrollTimeout}if(!Ext.isReady){a.fireDocReady()}},onReadyChain:[]})}Ext.onReady=function(h,g,e){Ext.Loader.onReady(h,g,true,e)};Ext.onDocumentReady=a.onDocumentReady;a.on=a.addListener;a.un=a.removeListener;Ext.onReady(b)};Ext.define("Ext.EventObjectImpl",{uses:["Ext.util.Point"],BACKSPACE:8,TAB:9,NUM_CENTER:12,ENTER:13,RETURN:13,SHIFT:16,CTRL:17,ALT:18,PAUSE:19,CAPS_LOCK:20,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,PRINT_SCREEN:44,INSERT:45,DELETE:46,ZERO:48,ONE:49,TWO:50,THREE:51,FOUR:52,FIVE:53,SIX:54,SEVEN:55,EIGHT:56,NINE:57,A:65,B:66,C:67,D:68,E:69,F:70,G:71,H:72,I:73,J:74,K:75,L:76,M:77,N:78,O:79,P:80,Q:81,R:82,S:83,T:84,U:85,V:86,W:87,X:88,Y:89,Z:90,CONTEXT_MENU:93,NUM_ZERO:96,NUM_ONE:97,NUM_TWO:98,NUM_THREE:99,NUM_FOUR:100,NUM_FIVE:101,NUM_SIX:102,NUM_SEVEN:103,NUM_EIGHT:104,NUM_NINE:105,NUM_MULTIPLY:106,NUM_PLUS:107,NUM_MINUS:109,NUM_PERIOD:110,NUM_DIVISION:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,WHEEL_SCALE:(function(){var a;if(Ext.isGecko){a=3}else{if(Ext.isMac){if(Ext.isSafari&&Ext.webKitVersion>=532){a=120}else{a=12}a*=3}else{a=120}}return a}()),clickRe:/(dbl)?click/,safariKeys:{3:13,63234:37,63235:39,63232:38,63233:40,63276:33,63277:34,63272:46,63273:36,63275:35},btnMap:Ext.isIE?{1:0,4:1,2:2}:{0:0,1:1,2:2},constructor:function(a,b){if(a){this.setEvent(a.browserEvent||a,b)}},setEvent:function(d,e){var c=this,b,a;if(d==c||(d&&d.browserEvent)){return d}c.browserEvent=d;if(d){b=d.button?c.btnMap[d.button]:(d.which?d.which-1:-1);if(c.clickRe.test(d.type)&&b==-1){b=0}a={type:d.type,button:b,shiftKey:d.shiftKey,ctrlKey:d.ctrlKey||d.metaKey||false,altKey:d.altKey,keyCode:d.keyCode,charCode:d.charCode,target:Ext.EventManager.getTarget(d),relatedTarget:Ext.EventManager.getRelatedTarget(d),currentTarget:d.currentTarget,xy:(e?c.getXY():null)}}else{a={button:-1,shiftKey:false,ctrlKey:false,altKey:false,keyCode:0,charCode:0,target:null,xy:[0,0]}}Ext.apply(c,a);return c},stopEvent:function(){this.stopPropagation();this.preventDefault()},preventDefault:function(){if(this.browserEvent){Ext.EventManager.preventDefault(this.browserEvent)}},stopPropagation:function(){var a=this.browserEvent;if(a){if(a.type=="mousedown"){Ext.EventManager.stoppedMouseDownEvent.fire(this)}Ext.EventManager.stopPropagation(a)}},getCharCode:function(){return this.charCode||this.keyCode},getKey:function(){return this.normalizeKey(this.keyCode||this.charCode)},normalizeKey:function(a){return Ext.isWebKit?(this.safariKeys[a]||a):a},getPageX:function(){return this.getX()},getPageY:function(){return this.getY()},getX:function(){return this.getXY()[0]},getY:function(){return this.getXY()[1]},getXY:function(){if(!this.xy){this.xy=Ext.EventManager.getPageXY(this.browserEvent)}return this.xy},getTarget:function(b,c,a){if(b){return Ext.fly(this.target).findParent(b,c,a)}return a?Ext.get(this.target):this.target},getRelatedTarget:function(b,c,a){if(b){return Ext.fly(this.relatedTarget).findParent(b,c,a)}return a?Ext.get(this.relatedTarget):this.relatedTarget},correctWheelDelta:function(c){var b=this.WHEEL_SCALE,a=Math.round(c/b);if(!a&&c){a=(c<0)?-1:1}return a},getWheelDeltas:function(){var d=this,c=d.browserEvent,b=0,a=0;if(Ext.isDefined(c.wheelDeltaX)){b=c.wheelDeltaX;a=c.wheelDeltaY}else{if(c.wheelDelta){a=c.wheelDelta}else{if(c.detail){a=-c.detail;if(a>100){a=3}else{if(a<-100){a=-3}}if(Ext.isDefined(c.axis)&&c.axis===c.HORIZONTAL_AXIS){b=a;a=0}}}}return{x:d.correctWheelDelta(b),y:d.correctWheelDelta(a)}},getWheelDelta:function(){var a=this.getWheelDeltas();return a.y},within:function(d,e,b){if(d){var c=e?this.getRelatedTarget():this.getTarget(),a;if(c){a=Ext.fly(d).contains(c);if(!a&&b){a=c==Ext.getDom(d)}return a}}return false},isNavKeyPress:function(){var b=this,a=this.normalizeKey(b.keyCode);return(a>=33&&a<=40)||a==b.RETURN||a==b.TAB||a==b.ESC},isSpecialKey:function(){var a=this.normalizeKey(this.keyCode);return(this.type=="keypress"&&this.ctrlKey)||this.isNavKeyPress()||(a==this.BACKSPACE)||(a>=16&&a<=20)||(a>=44&&a<=46)},getPoint:function(){var a=this.getXY();return new Ext.util.Point(a[0],a[1])},hasModifier:function(){return this.ctrlKey||this.altKey||this.shiftKey||this.metaKey},injectEvent:(function(){var d,e={},c;if(!Ext.isIE&&document.createEvent){d={createHtmlEvent:function(k,i,h,g){var j=k.createEvent("HTMLEvents");j.initEvent(i,h,g);return j},createMouseEvent:function(u,s,m,l,o,k,i,j,g,r,q,n,p){var h=u.createEvent("MouseEvents"),t=u.defaultView||window;if(h.initMouseEvent){h.initMouseEvent(s,m,l,t,o,k,i,k,i,j,g,r,q,n,p)}else{h=u.createEvent("UIEvents");h.initEvent(s,m,l);h.view=t;h.detail=o;h.screenX=k;h.screenY=i;h.clientX=k;h.clientY=i;h.ctrlKey=j;h.altKey=g;h.metaKey=q;h.shiftKey=r;h.button=n;h.relatedTarget=p}return h},createUIEvent:function(m,k,i,h,j){var l=m.createEvent("UIEvents"),g=m.defaultView||window;l.initUIEvent(k,i,h,g,j);return l},fireEvent:function(i,g,h){i.dispatchEvent(h)},fixTarget:function(g){if(g==window&&!g.dispatchEvent){return document}return g}}}else{if(document.createEventObject){c={0:1,1:4,2:2};d={createHtmlEvent:function(k,i,h,g){var j=k.createEventObject();j.bubbles=h;j.cancelable=g;return j},createMouseEvent:function(t,s,m,l,o,k,i,j,g,r,q,n,p){var h=t.createEventObject();h.bubbles=m;h.cancelable=l;h.detail=o;h.screenX=k;h.screenY=i;h.clientX=k;h.clientY=i;h.ctrlKey=j;h.altKey=g;h.shiftKey=r;h.metaKey=q;h.button=c[n]||n;h.relatedTarget=p;return h},createUIEvent:function(l,j,h,g,i){var k=l.createEventObject();k.bubbles=h;k.cancelable=g;return k},fireEvent:function(i,g,h){i.fireEvent("on"+g,h)},fixTarget:function(g){if(g==document){return document.documentElement}return g}}}}Ext.Object.each({load:[false,false],unload:[false,false],select:[true,false],change:[true,false],submit:[true,true],reset:[true,false],resize:[true,false],scroll:[true,false]},function(i,j){var h=j[0],g=j[1];e[i]=function(m,k){var l=d.createHtmlEvent(i,h,g);d.fireEvent(m,i,l)}});function b(i,h){var g=(i!="mousemove");return function(m,j){var l=j.getXY(),k=d.createMouseEvent(m.ownerDocument,i,true,g,h,l[0],l[1],j.ctrlKey,j.altKey,j.shiftKey,j.metaKey,j.button,j.relatedTarget);d.fireEvent(m,i,k)}}Ext.each(["click","dblclick","mousedown","mouseup","mouseover","mousemove","mouseout"],function(g){e[g]=b(g,1)});Ext.Object.each({focusin:[true,false],focusout:[true,false],activate:[true,true],focus:[false,false],blur:[false,false]},function(i,j){var h=j[0],g=j[1];e[i]=function(m,k){var l=d.createUIEvent(m.ownerDocument,i,h,g,1);d.fireEvent(m,i,l)}});if(!d){e={};d={fixTarget:function(g){return g}}}function a(h,g){}return function(j){var i=this,h=e[i.type]||a,g=j?(j.dom||j):i.getTarget();g=d.fixTarget(g);h(g,i)}}())},function(){Ext.EventObject=new Ext.EventObjectImpl()});Ext.define("Ext.dom.AbstractQuery",{select:function(k,b){var h=[],d,g,e,c,a;b=b||document;if(typeof b=="string"){b=document.getElementById(b)}k=k.split(",");for(g=0,c=k.length;g")}else{c.push(">");if((j=d.tpl)){j.applyOut(d.tplData,c)}if((j=d.html)){c.push(j)}if((j=d.cn||d.children)){h.generateMarkup(j,c)}g=h.closeTags;c.push(g[a]||(g[a]=""))}}}return c},generateStyles:function(e,c){var b=c||[],d;for(d in e){if(e.hasOwnProperty(d)){b.push(this.decamelizeName(d),":",e[d],";")}}return c||b.join("")},markup:function(a){if(typeof a=="string"){return a}var b=this.generateMarkup(a,[]);return b.join("")},applyStyles:function(d,e){if(e){var b=0,a,c;d=Ext.fly(d);if(typeof e=="function"){e=e.call()}if(typeof e=="string"){e=Ext.util.Format.trim(e).split(/\s*(?::|;)\s*/);for(a=e.length;b "'+g+'"'},insertBefore:function(a,c,b){return this.doInsert(a,c,b,"beforebegin")},insertAfter:function(a,c,b){return this.doInsert(a,c,b,"afterend","nextSibling")},insertFirst:function(a,c,b){return this.doInsert(a,c,b,"afterbegin","firstChild")},append:function(a,c,b){return this.doInsert(a,c,b,"beforeend","",true)},overwrite:function(a,c,b){a=Ext.getDom(a);a.innerHTML=this.markup(c);return b?Ext.get(a.firstChild):a.firstChild},doInsert:function(d,g,e,h,c,a){var b=this.insertHtml(h,Ext.getDom(d),this.markup(g));return e?Ext.get(b,true):b}});(function(){var a=window.document,b=/^\s+|\s+$/g,c=/\s/;if(!Ext.cache){Ext.cache={}}Ext.define("Ext.dom.AbstractElement",{inheritableStatics:{get:function(e){var g=this,h=Ext.dom.Element,d,j,i,k;if(!e){return null}if(typeof e=="string"){if(e==Ext.windowId){return h.get(window)}else{if(e==Ext.documentId){return h.get(a)}}d=Ext.cache[e];if(d&&d.skipGarbageCollection){j=d.el;return j}if(!(i=a.getElementById(e))){return null}if(d&&d.el){j=Ext.updateCacheEntry(d,i).el}else{j=new h(i,!!d)}return j}else{if(e.tagName){if(!(k=e.id)){k=Ext.id(e)}d=Ext.cache[k];if(d&&d.el){j=Ext.updateCacheEntry(d,e).el}else{j=new h(e,!!d)}return j}else{if(e instanceof g){if(e!=g.docEl&&e!=g.winEl){k=e.id;d=Ext.cache[k];if(d){Ext.updateCacheEntry(d,a.getElementById(k)||e.dom)}}return e}else{if(e.isComposite){return e}else{if(Ext.isArray(e)){return g.select(e)}else{if(e===a){if(!g.docEl){g.docEl=Ext.Object.chain(h.prototype);g.docEl.dom=a;g.docEl.id=Ext.id(a);g.addToCache(g.docEl)}return g.docEl}else{if(e===window){if(!g.winEl){g.winEl=Ext.Object.chain(h.prototype);g.winEl.dom=window;g.winEl.id=Ext.id(window);g.addToCache(g.winEl)}return g.winEl}}}}}}}return null},addToCache:function(d,e){if(d){Ext.addCacheEntry(e,d)}return d},addMethods:function(){this.override.apply(this,arguments)},mergeClsList:function(){var n,m={},k,d,g,l,e,o=[],h=false;for(k=0,d=arguments.length;kwindow.innerWidth)?"portrait":"landscape"},fromPoint:function(a,b){return Ext.get(document.elementFromPoint(a,b))},parseStyles:function(c){var a={},b=this.cssRe,d;if(c){b.lastIndex=0;while((d=b.exec(c))){a[d[1]]=d[2]}}return a}});(function(){var g=document,a=Ext.dom.AbstractElement,e=null,d=g.compatMode=="CSS1Compat",c,b=function(i){if(!c){c=new a.Fly()}c.attach(i);return c};if(!("activeElement" in g)&&g.addEventListener){g.addEventListener("focus",function(i){if(i&&i.target){e=(i.target==g)?null:i.target}},true)}function h(j,k,i){return function(){j.selectionStart=k;j.selectionEnd=i}}a.addInheritableStatics({getActiveElement:function(){return g.activeElement||e},getRightMarginFixCleaner:function(n){var k=Ext.supports,l=k.DisplayChangeInputSelectionBug,m=k.DisplayChangeTextAreaSelectionBug,o,i,p,j;if(l||m){o=g.activeElement||e;i=o&&o.tagName;if((m&&i=="TEXTAREA")||(l&&i=="INPUT"&&o.type=="text")){if(Ext.dom.Element.isAncestor(n,o)){p=o.selectionStart;j=o.selectionEnd;if(Ext.isNumber(p)&&Ext.isNumber(j)){return h(o,p,j)}}}}return Ext.emptyFn},getViewWidth:function(i){return i?Ext.dom.Element.getDocumentWidth():Ext.dom.Element.getViewportWidth()},getViewHeight:function(i){return i?Ext.dom.Element.getDocumentHeight():Ext.dom.Element.getViewportHeight()},getDocumentHeight:function(){return Math.max(!d?g.body.scrollHeight:g.documentElement.scrollHeight,Ext.dom.Element.getViewportHeight())},getDocumentWidth:function(){return Math.max(!d?g.body.scrollWidth:g.documentElement.scrollWidth,Ext.dom.Element.getViewportWidth())},getViewportHeight:function(){return Ext.isIE?(Ext.isStrict?g.documentElement.clientHeight:g.body.clientHeight):self.innerHeight},getViewportWidth:function(){return(!Ext.isStrict&&!Ext.isOpera)?g.body.clientWidth:Ext.isIE?g.documentElement.clientWidth:self.innerWidth},getY:function(i){return Ext.dom.Element.getXY(i)[1]},getX:function(i){return Ext.dom.Element.getXY(i)[0]},getXY:function(k){var n=g.body,j=g.documentElement,i=0,l=0,o=[0,0],r=Math.round,m,q;k=Ext.getDom(k);if(k!=g&&k!=n){if(Ext.isIE){try{m=k.getBoundingClientRect();l=j.clientTop||n.clientTop;i=j.clientLeft||n.clientLeft}catch(p){m={left:0,top:0}}}else{m=k.getBoundingClientRect()}q=b(document).getScroll();o=[r(m.left+q.left-i),r(m.top+q.top-l)]}return o},setXY:function(j,k){(j=Ext.fly(j,"_setXY")).position();var l=j.translatePoints(k),i=j.dom.style,m;for(m in l){if(!isNaN(l[m])){i[m]=l[m]+"px"}}},setX:function(j,i){Ext.dom.Element.setXY(j,[i,false])},setY:function(i,j){Ext.dom.Element.setXY(i,[false,j])},serializeForm:function(k){var l=k.elements||(document.forms[k]||Ext.getDom(k)).elements,v=false,u=encodeURIComponent,p="",n=l.length,q,i,t,x,w,r,m,s,j;for(r=0;rn){m=q?h.left-r:n-r}if(m<0){m=q?h.right:0}if(l+p>u){l=o?h.top-p:u-p}if(l<0){l=o?h.bottom:0}}return[m,l]},getAnchor:function(){var b=(this.$cache||this.getCache()).data,a;if(!this.dom){return}a=b._anchor;if(!a){a=b._anchor={}}return a},adjustForConstraints:function(c,b){var a=this.getConstrainVector(b,c);if(a){c[0]+=a[0];c[1]+=a[1]}return c}});Ext.dom.AbstractElement.addMethods({appendChild:function(a){return Ext.get(a).appendTo(this)},appendTo:function(a){Ext.getDom(a).appendChild(this.dom);return this},insertBefore:function(a){a=Ext.getDom(a);a.parentNode.insertBefore(this.dom,a);return this},insertAfter:function(a){a=Ext.getDom(a);a.parentNode.insertBefore(this.dom,a.nextSibling);return this},insertFirst:function(b,a){b=b||{};if(b.nodeType||b.dom||typeof b=="string"){b=Ext.getDom(b);this.dom.insertBefore(b,this.dom.firstChild);return !a?Ext.get(b):b}else{return this.createChild(b,this.dom.firstChild,a)}},insertSibling:function(b,g,j){var i=this,k=(g||"before").toLowerCase()=="after",d,a,c,h;if(Ext.isArray(b)){a=i;c=b.length;for(h=0;h1){g=[g,arguments[1]]}e=c.translatePoints(g);b=c.dom.style;for(d in e){if(!e.hasOwnProperty(d)){continue}if(!isNaN(e[d])){b[d]=e[d]+"px"}}return c},getLeft:function(b){return parseInt(this.getStyle("left"),10)||0},getRight:function(b){return parseInt(this.getStyle("right"),10)||0},getTop:function(b){return parseInt(this.getStyle("top"),10)||0},getBottom:function(b){return parseInt(this.getStyle("bottom"),10)||0},translatePoints:function(b,i){i=isNaN(b[1])?i:b[1];b=isNaN(b[0])?b:b[0];var e=this,g=e.isStyle("position","relative"),h=e.getXY(),c=parseInt(e.getStyle("left"),10),d=parseInt(e.getStyle("top"),10);c=!isNaN(c)?c:(g?0:e.dom.offsetLeft);d=!isNaN(d)?d:(g?0:e.dom.offsetTop);return{left:(b-h[0]+c),top:(i-h[1]+d)}},setBox:function(e){var d=this,c=e.width,b=e.height,h=e.top,g=e.left;if(g!==undefined){d.setLeft(g)}if(h!==undefined){d.setTop(h)}if(c!==undefined){d.setWidth(c)}if(b!==undefined){d.setHeight(b)}return this},getBox:function(i,m){var j=this,g=j.dom,d=g.offsetWidth,n=g.offsetHeight,p,h,e,c,o,k;if(!m){p=j.getXY()}else{if(i){p=[0,0]}else{p=[parseInt(j.getStyle("left"),10)||0,parseInt(j.getStyle("top"),10)||0]}}if(!i){h={x:p[0],y:p[1],0:p[0],1:p[1],width:d,height:n}}else{e=j.getBorderWidth.call(j,"l")+j.getPadding.call(j,"l");c=j.getBorderWidth.call(j,"r")+j.getPadding.call(j,"r");o=j.getBorderWidth.call(j,"t")+j.getPadding.call(j,"t");k=j.getBorderWidth.call(j,"b")+j.getPadding.call(j,"b");h={x:p[0]+e,y:p[1]+o,0:p[0]+e,1:p[1]+o,width:d-(e+c),height:n-(o+k)}}h.left=h.x;h.top=h.y;h.right=h.x+h.width;h.bottom=h.y+h.height;return h},getPageBox:function(g){var j=this,d=j.dom,m=d.offsetWidth,i=d.offsetHeight,o=j.getXY(),n=o[1],c=o[0]+m,k=o[1]+i,e=o[0];if(!d){return new Ext.util.Region()}if(g){return new Ext.util.Region(n,c,k,e)}else{return{left:e,top:n,width:m,height:i,right:c,bottom:k}}}})}());(function(){var q=Ext.dom.AbstractElement,o=document.defaultView,n=Ext.Array,m=/^\s+|\s+$/g,b=/\w/g,p=/\s+/,t=/^(?:transparent|(?:rgba[(](?:\s*\d+\s*[,]){3}\s*0\s*[)]))$/i,h=Ext.supports.ClassList,e="padding",d="margin",s="border",k="-left",r="-right",l="-top",c="-bottom",i="-width",j={l:s+k+i,r:s+r+i,t:s+l+i,b:s+c+i},g={l:e+k,r:e+r,t:e+l,b:e+c},a={l:d+k,r:d+r,t:d+l,b:d+c};q.override({styleHooks:{},addStyles:function(B,A){var w=0,z=(B||"").match(b),y,u=z.length,x,v=[];if(u==1){w=Math.abs(parseFloat(this.getStyle(A[z[0]]))||0)}else{if(u){for(y=0;y0?u:0},getWidth:function(u){var w=this.dom,v=u?(w.clientWidth-this.getPadding("lr")):w.offsetWidth;return v>0?v:0},setWidth:function(u){var v=this;v.dom.style.width=q.addUnits(u);return v},setHeight:function(u){var v=this;v.dom.style.height=q.addUnits(u);return v},getBorderWidth:function(u){return this.addStyles(u,j)},getPadding:function(u){return this.addStyles(u,g)},margins:a,applyStyles:function(w){if(w){var v,u,x=this.dom;if(typeof w=="function"){w=w.call()}if(typeof w=="string"){w=Ext.util.Format.trim(w).split(/\s*(?::|;)\s*/);for(v=0,u=w.length;v'+v+""):""});C=A.getSize();x.mask=E;if(w===document.body){C.height=window.innerHeight;if(A.orientationHandler){Ext.EventManager.unOrientationChange(A.orientationHandler,A)}A.orientationHandler=function(){C=A.getSize();C.height=window.innerHeight;E.setSize(C)};Ext.EventManager.onOrientationChange(A.orientationHandler,A)}E.setSize(C);if(Ext.is.iPad){Ext.repaint()}},unmask:function(){var v=this,x=(v.$cache||v.getCache()).data,u=x.mask,w=Ext.baseCSSPrefix;if(u){u.remove();delete x.mask}v.removeCls([w+"masked",w+"masked-relative"]);if(v.dom===document.body){Ext.EventManager.unOrientationChange(v.orientationHandler,v);delete v.orientationHandler}}});q.populateStyleMap=function(B,u){var A=["margin-","padding-","border-width-"],z=["before","after"],w,y,v,x;for(w=A.length;w--;){for(x=2;x--;){y=A[w]+z[x];B[q.normalize(y)]=B[y]={name:q.normalize(A[w]+u[x])}}}};Ext.onReady(function(){var C=Ext.supports,u,A,y,v,B;function z(H,E,G,D){var F=D[this.name]||"";return t.test(F)?"transparent":F}function x(J,G,I,F){var D=F.marginRight,E,H;if(D!="0px"){E=J.style;H=E.display;E.display="inline-block";D=(I?F:J.ownerDocument.defaultView.getComputedStyle(J,null)).marginRight;E.display=H}return D}function w(K,H,J,G){var D=G.marginRight,F,E,I;if(D!="0px"){F=K.style;E=q.getRightMarginFixCleaner(K);I=F.display;F.display="inline-block";D=(J?G:K.ownerDocument.defaultView.getComputedStyle(K,"")).marginRight;F.display=I;E()}return D}u=q.prototype.styleHooks;q.populateStyleMap(u,["left","right"]);if(C.init){C.init()}if(!C.RightMargin){u.marginRight=u["margin-right"]={name:"marginRight",get:(C.DisplayChangeInputSelectionBug||C.DisplayChangeTextAreaSelectionBug)?w:x}}if(!C.TransparentColor){A=["background-color","border-color","color","outline-color"];for(y=A.length;y--;){v=A[y];B=q.normalize(v);u[v]=u[B]={name:B,get:z}}}})}());Ext.dom.AbstractElement.override({findParent:function(h,b,a){var e=this.dom,c=document.documentElement,g=0,d;b=b||50;if(isNaN(b)){d=Ext.getDom(b);b=Number.MAX_VALUE}while(e&&e.nodeType==1&&g "+a,c.dom);return b?d:Ext.get(d)},parent:function(a,b){return this.matchNode("parentNode","parentNode",a,b)},next:function(a,b){return this.matchNode("nextSibling","nextSibling",a,b)},prev:function(a,b){return this.matchNode("previousSibling","previousSibling",a,b)},first:function(a,b){return this.matchNode("nextSibling","firstChild",a,b)},last:function(a,b){return this.matchNode("previousSibling","lastChild",a,b)},matchNode:function(b,e,a,c){if(!this.dom){return null}var d=this.dom[e];while(d){if(d.nodeType==1&&(!a||Ext.DomQuery.is(d,a))){return !c?Ext.get(d):d}d=d[b]}return null},isAncestor:function(a){return this.self.isAncestor.call(this.self,this.dom,a)}});(function(){var b="afterbegin",i="afterend",a="beforebegin",o="beforeend",l="",h="
",c=l+"",n=""+h,k=c+"",e=""+n,p=document.createElement("div"),m=["BeforeBegin","previousSibling"],j=["AfterEnd","nextSibling"],d={beforebegin:m,afterend:j},g={beforebegin:m,afterend:j,afterbegin:["AfterBegin","firstChild"],beforeend:["BeforeEnd","lastChild"]};Ext.define("Ext.dom.Helper",{extend:"Ext.dom.AbstractHelper",requires:["Ext.dom.AbstractElement"],tableRe:/^table|tbody|tr|td$/i,tableElRe:/td|tr|tbody/i,useDom:false,createDom:function(q,w){var r,z=document,u,x,s,y,v,t;if(Ext.isArray(q)){r=z.createDocumentFragment();for(v=0,t=q.length;v+~]\s?|\s|$)/,tagTokenRe=/^(#)?([\w\-\*\\]+)/,nthRe=/(\d*)n\+?(\d*)/,nthRe2=/\D/,startIdRe=/^\s*\#/,isIE=window.ActiveXObject?true:false,key=30803,longHex=/\\([0-9a-fA-F]{6})/g,shortHex=/\\([0-9a-fA-F]{1,6})\s{0,1}/g,nonHex=/\\([^0-9a-fA-F]{1})/g,escapes=/\\/g,num,hasEscapes,longHexToChar=function($0,$1){return String.fromCharCode(parseInt($1,16))},shortToLongHex=function($0,$1){while($1.length<6){$1="0"+$1}return"\\"+$1},charToLongHex=function($0,$1){num=$1.charCodeAt(0).toString(16);if(num.length===1){num="0"+num}return"\\0000"+num},unescapeCssSelector=function(selector){return(hasEscapes)?selector.replace(longHex,longHexToChar):selector},setupEscapes=function(path){hasEscapes=(path.indexOf("\\")>-1);if(hasEscapes){path=path.replace(shortHex,shortToLongHex).replace(nonHex,charToLongHex).replace(escapes,"\\\\")}return path};eval("var batch = 30803;");function child(parent,index){var i=0,n=parent.firstChild;while(n){if(n.nodeType==1){if(++i==index){return n}}n=n.nextSibling}return null}function next(n){while((n=n.nextSibling)&&n.nodeType!=1){}return n}function prev(n){while((n=n.previousSibling)&&n.nodeType!=1){}return n}function children(parent){var n=parent.firstChild,nodeIndex=-1,nextNode;while(n){nextNode=n.nextSibling;if(n.nodeType==3&&!nonSpace.test(n.nodeValue)){parent.removeChild(n)}else{n.nodeIndex=++nodeIndex}n=nextNode}return this}function byClassName(nodeSet,cls){cls=unescapeCssSelector(cls);if(!cls){return nodeSet}var result=[],ri=-1,i,ci;for(i=0,ci;ci=nodeSet[i];i++){if((" "+ci.className+" ").indexOf(cls)!=-1){result[++ri]=ci}}return result}function attrValue(n,attr){if(!n.tagName&&typeof n.length!="undefined"){n=n[0]}if(!n){return null}if(attr=="for"){return n.htmlFor}if(attr=="class"||attr=="className"){return n.className}return n.getAttribute(attr)||n[attr]}function getNodes(ns,mode,tagName){var result=[],ri=-1,cs,i,ni,j,ci,cn,utag,n,cj;if(!ns){return result}tagName=tagName||"*";if(typeof ns.getElementsByTagName!="undefined"){ns=[ns]}if(!mode){for(i=0,ni;ni=ns[i];i++){cs=ni.getElementsByTagName(tagName);for(j=0,ci;ci=cs[j];j++){result[++ri]=ci}}}else{if(mode=="/"||mode==">"){utag=tagName.toUpperCase();for(i=0,ni,cn;ni=ns[i];i++){cn=ni.childNodes;for(j=0,cj;cj=cn[j];j++){if(cj.nodeName==utag||cj.nodeName==tagName||tagName=="*"){result[++ri]=cj}}}}else{if(mode=="+"){utag=tagName.toUpperCase();for(i=0,n;n=ns[i];i++){while((n=n.nextSibling)&&n.nodeType!=1){}if(n&&(n.nodeName==utag||n.nodeName==tagName||tagName=="*")){result[++ri]=n}}}else{if(mode=="~"){utag=tagName.toUpperCase();for(i=0,n;n=ns[i];i++){while((n=n.nextSibling)){if(n.nodeName==utag||n.nodeName==tagName||tagName=="*"){result[++ri]=n}}}}}}}return result}function concat(a,b){if(b.slice){return a.concat(b)}for(var i=0,l=b.length;i1){return nodup(results)}return results},isXml:function(el){var docEl=(el?el.ownerDocument||el:0).documentElement;return docEl?docEl.nodeName!=="HTML":false},select:document.querySelectorAll?function(path,root,type){root=root||document;if(!Ext.DomQuery.isXml(root)){try{if(root.parentNode&&(root.nodeType!==9)&&path.indexOf(",")===-1&&!startIdRe.test(path)){path="#"+Ext.escapeId(Ext.id(root))+" "+path;root=root.parentNode}return Ext.Array.toArray(root.querySelectorAll(path))}catch(e){}}return Ext.DomQuery.jsSelect.call(this,path,root,type)}:function(path,root,type){return Ext.DomQuery.jsSelect.call(this,path,root,type)},selectNode:function(path,root){return Ext.DomQuery.select(path,root)[0]},selectValue:function(path,root,defaultValue){path=path.replace(trimRe,"");if(!valueCache[path]){valueCache[path]=Ext.DomQuery.compile(path,"select")}else{setupEscapes(path)}var n=valueCache[path](root),v;n=n[0]?n[0]:n;if(typeof n.normalize=="function"){n.normalize()}v=(n&&n.firstChild?n.firstChild.nodeValue:null);return((v===null||v===undefined||v==="")?defaultValue:v)},selectNumber:function(path,root,defaultValue){var v=Ext.DomQuery.selectValue(path,root,defaultValue||0);return parseFloat(v)},is:function(el,ss){if(typeof el=="string"){el=document.getElementById(el)}var isArray=Ext.isArray(el),result=Ext.DomQuery.filter(isArray?el:[el],ss);return isArray?(result.length==el.length):(result.length>0)},filter:function(els,ss,nonMatches){ss=ss.replace(trimRe,"");if(!simpleCache[ss]){simpleCache[ss]=Ext.DomQuery.compile(ss,"simple")}else{setupEscapes(ss)}var result=simpleCache[ss](els);return nonMatches?quickDiff(result,els):result},matchers:[{re:/^\.([\w\-\\]+)/,select:'n = byClassName(n, " {1} ");'},{re:/^\:([\w\-]+)(?:\(((?:[^\s>\/]*|.*?))\))?/,select:'n = byPseudo(n, "{1}", "{2}");'},{re:/^(?:([\[\{])(?:@)?([\w\-]+)\s?(?:(=|.=)\s?['"]?(.*?)["']?)?[\]\}])/,select:'n = byAttribute(n, "{2}", "{4}", "{3}", "{1}");'},{re:/^#([\w\-\\]+)/,select:'n = byId(n, "{1}");'},{re:/^@([\w\-]+)/,select:'return {firstChild:{nodeValue:attrValue(n, "{1}")}};'}],operators:{"=":function(a,v){return a==v},"!=":function(a,v){return a!=v},"^=":function(a,v){return a&&a.substr(0,v.length)==v},"$=":function(a,v){return a&&a.substr(a.length-v.length)==v},"*=":function(a,v){return a&&a.indexOf(v)!==-1},"%=":function(a,v){return(a%v)==0},"|=":function(a,v){return a&&(a==v||a.substr(0,v.length+1)==v+"-")},"~=":function(a,v){return a&&(" "+a+" ").indexOf(" "+v+" ")!=-1}},pseudos:{"first-child":function(c){var r=[],ri=-1,n,i,ci;for(i=0;(ci=n=c[i]);i++){while((n=n.previousSibling)&&n.nodeType!=1){}if(!n){r[++ri]=ci}}return r},"last-child":function(c){var r=[],ri=-1,n,i,ci;for(i=0;(ci=n=c[i]);i++){while((n=n.nextSibling)&&n.nodeType!=1){}if(!n){r[++ri]=ci}}return r},"nth-child":function(c,a){var r=[],ri=-1,m=nthRe.exec(a=="even"&&"2n"||a=="odd"&&"2n+1"||!nthRe2.test(a)&&"n+"+a||a),f=(m[1]||1)-0,l=m[2]-0,i,n,j,cn,pn;for(i=0;n=c[i];i++){pn=n.parentNode;if(batch!=pn._batch){j=0;for(cn=pn.firstChild;cn;cn=cn.nextSibling){if(cn.nodeType==1){cn.nodeIndex=++j}}pn._batch=batch}if(f==1){if(l==0||n.nodeIndex==l){r[++ri]=n}}else{if((n.nodeIndex+l)%f==0){r[++ri]=n}}}return r},"only-child":function(c){var r=[],ri=-1,i,ci;for(i=0;ci=c[i];i++){if(!prev(ci)&&!next(ci)){r[++ri]=ci}}return r},empty:function(c){var r=[],ri=-1,i,ci,cns,j,cn,empty;for(i=0,ci;ci=c[i];i++){cns=ci.childNodes;j=0;empty=true;while(cn=cns[j]){++j;if(cn.nodeType==1||cn.nodeType==3){empty=false;break}}if(empty){r[++ri]=ci}}return r},contains:function(c,v){var r=[],ri=-1,i,ci;for(i=0;ci=c[i];i++){if((ci.textContent||ci.innerText||ci.text||"").indexOf(v)!=-1){r[++ri]=ci}}return r},nodeValue:function(c,v){var r=[],ri=-1,i,ci;for(i=0;ci=c[i];i++){if(ci.firstChild&&ci.firstChild.nodeValue==v){r[++ri]=ci}}return r},checked:function(c){var r=[],ri=-1,i,ci;for(i=0;ci=c[i];i++){if(ci.checked==true){r[++ri]=ci}}return r},not:function(c,ss){return Ext.DomQuery.filter(c,ss,true)},any:function(c,selectors){var ss=selectors.split("|"),r=[],ri=-1,s,i,ci,j;for(i=0;ci=c[i];i++){for(j=0;s=ss[j];j++){if(Ext.DomQuery.is(ci,s)){r[++ri]=ci;break}}}return r},odd:function(c){return this["nth-child"](c,"odd")},even:function(c){return this["nth-child"](c,"even")},nth:function(c,a){return c[a-1]||[]},first:function(c){return c[0]||[]},last:function(c){return c[c.length-1]||[]},has:function(c,ss){var s=Ext.DomQuery.select,r=[],ri=-1,i,ci;for(i=0;ci=c[i];i++){if(s(ss,ci).length>0){r[++ri]=ci}}return r},next:function(c,ss){var is=Ext.DomQuery.is,r=[],ri=-1,i,ci,n;for(i=0;ci=c[i];i++){n=next(ci);if(n&&is(n,ss)){r[++ri]=ci}}return r},prev:function(c,ss){var is=Ext.DomQuery.is,r=[],ri=-1,i,ci,n;for(i=0;ci=c[i];i++){n=prev(ci);if(n&&is(n,ss)){r[++ri]=ci}}return r}}}}());Ext.query=Ext.DomQuery.select;(function(){var HIDDEN="hidden",DOC=document,VISIBILITY="visibility",DISPLAY="display",NONE="none",XMASKED=Ext.baseCSSPrefix+"masked",XMASKEDRELATIVE=Ext.baseCSSPrefix+"masked-relative",EXTELMASKMSG=Ext.baseCSSPrefix+"mask-msg",bodyRe=/^body/i,visFly,noBoxAdjust=Ext.isStrict?{select:1}:{input:1,select:1,textarea:1},isScrolled=function(c){var r=[],ri=-1,i,ci;for(i=0;ci=c[i];i++){if(ci.scrollTop>0||ci.scrollLeft>0){r[++ri]=ci}}return r},Element=Ext.define("Ext.dom.Element",{extend:"Ext.dom.AbstractElement",alternateClassName:["Ext.Element","Ext.core.Element"],addUnits:function(){return this.self.addUnits.apply(this.self,arguments)},focus:function(defer,dom){var me=this,scrollTop,body;dom=dom||me.dom;body=(dom.ownerDocument||DOC).body||DOC.body;try{if(Number(defer)){Ext.defer(me.focus,defer,me,[null,dom])}else{if(dom.offsetHeight>Element.getViewHeight()){scrollTop=body.scrollTop}dom.focus();if(scrollTop!==undefined){body.scrollTop=scrollTop}}}catch(e){}return me},blur:function(){try{this.dom.blur()}catch(e){}return this},isBorderBox:function(){var box=Ext.isBorderBox;if(box){box=!((this.dom.tagName||"").toLowerCase() in noBoxAdjust)}return box},hover:function(overFn,outFn,scope,options){var me=this;me.on("mouseenter",overFn,scope||me.dom,options);me.on("mouseleave",outFn,scope||me.dom,options);return me},getAttributeNS:function(ns,name){return this.getAttribute(name,ns)},getAttribute:(Ext.isIE&&!(Ext.isIE9&&DOC.documentMode===9))?function(name,ns){var d=this.dom,type;if(ns){type=typeof d[ns+":"+name];if(type!="undefined"&&type!="unknown"){return d[ns+":"+name]||null}return null}if(name==="for"){name="htmlFor"}return d[name]||null}:function(name,ns){var d=this.dom;if(ns){return d.getAttributeNS(ns,name)||d.getAttribute(ns+":"+name)}return d.getAttribute(name)||d[name]||null},cacheScrollValues:function(){var me=this,scrolledDescendants,el,i,scrollValues=[],result=function(){for(i=0;i]*)?>)((\n|\r|.)*?)(?:<\/script>)/ig,replaceScriptTagRe=/(?:)((\n|\r|.)*?)(?:<\/script>)/ig,srcRe=/\ssrc=([\'\"])(.*?)\1/i,typeRe=/\stype=([\'\"])(.*?)\1/i,useDocForId=!(Ext.isIE6||Ext.isIE7||Ext.isIE8);El.boxMarkup='
';function garbageCollect(){if(!Ext.enableGarbageCollector){clearInterval(El.collectorThreadId)}else{var eid,d,o,t;for(eid in EC){if(!EC.hasOwnProperty(eid)){continue}o=EC[eid];if(o.skipGarbageCollection){continue}d=o.dom;if(!d.parentNode||(!d.offsetParent&&!Ext.getElementById(eid))){if(d&&Ext.enableListenerCollection){Ext.EventManager.removeAll(d)}delete EC[eid]}}if(Ext.isIE){t={};for(eid in EC){if(!EC.hasOwnProperty(eid)){continue}t[eid]=EC[eid]}EC=Ext.cache=t}}}El.collectorThreadId=setInterval(garbageCollect,30000);El.addMethods({monitorMouseLeave:function(delay,handler,scope){var me=this,timer,listeners={mouseleave:function(e){timer=setTimeout(Ext.Function.bind(handler,scope||me,[e]),delay)},mouseenter:function(){clearTimeout(timer)},freezeEvent:true};me.on(listeners);return listeners},swallowEvent:function(eventName,preventDefault){var me=this,e,eLen;function fn(e){e.stopPropagation();if(preventDefault){e.preventDefault()}}if(Ext.isArray(eventName)){eLen=eventName.length;for(e=0;e';interval=setInterval(function(){var hd,match,attrs,srcMatch,typeMatch,el,s;if(!(el=DOC.getElementById(id))){return false}clearInterval(interval);Ext.removeNode(el);hd=Ext.getHead().dom;while((match=scriptTagRe.exec(html))){attrs=match[1];srcMatch=attrs?attrs.match(srcRe):false;if(srcMatch&&srcMatch[2]){s=DOC.createElement("script");s.src=srcMatch[2];typeMatch=attrs.match(typeRe);if(typeMatch&&typeMatch[2]){s.type=typeMatch[2]}hd.appendChild(s)}else{if(match[2]&&match[2].length>0){if(window.execScript){window.execScript(match[2])}else{window.eval(match[2])}}}}Ext.callback(callback,me)},20);dom.innerHTML=html.replace(replaceScriptTagRe,"");return me},removeAllListeners:function(){this.removeAnchor();Ext.EventManager.removeAll(this.dom);return this},createProxy:function(config,renderTo,matchBox){config=(typeof config=="object")?config:{tag:"div",cls:config};var me=this,proxy=renderTo?Ext.DomHelper.append(renderTo,config,true):Ext.DomHelper.insertBefore(me.dom,config,true);proxy.setVisibilityMode(Element.DISPLAY);proxy.hide();if(matchBox&&me.setBox&&me.getBox){proxy.setBox(me.getBox())}return proxy},getScopeParent:function(){var parent=this.dom.parentNode;if(Ext.scopeResetCSS){parent=parent.parentNode;if(!Ext.supports.CSS3LinearGradient||!Ext.supports.CSS3BorderRadius){parent=parent.parentNode}}return parent},needsTabIndex:function(){if(this.dom){if((this.dom.nodeName==="a")&&(!this.dom.href)){return true}return !focusRe.test(this.dom.nodeName)}},focusable:function(){var dom=this.dom,nodeName=dom.nodeName,canFocus=false;if(!dom.disabled){if(focusRe.test(nodeName)){if((nodeName!=="a")||dom.href){canFocus=true}}else{canFocus=!isNaN(dom.tabIndex)}}return canFocus&&this.isVisible(true)}});if(Ext.isIE){El.prototype.getById=function(id,asDom){var dom=this.dom,cacheItem,el,ret;if(dom){el=(useDocForId&&DOC.getElementById(id))||dom.all[id];if(el){if(asDom){ret=el}else{cacheItem=EC[id];if(cacheItem&&cacheItem.el){ret=Ext.updateCacheEntry(cacheItem,el).el}else{ret=new Element(el)}}return ret}}return asDom?Ext.getDom(id):El.get(id)}}El.createAlias({addListener:"on",removeListener:"un",clearListeners:"removeAllListeners"});El.Fly=AbstractElement.Fly=new Ext.Class({extend:El,constructor:function(dom){this.dom=dom},attach:AbstractElement.Fly.prototype.attach});if(Ext.isIE){Ext.getElementById=function(id){var el=DOC.getElementById(id),detachedBodyEl;if(!el&&(detachedBodyEl=AbstractElement.detachedBodyEl)){el=detachedBodyEl.dom.all[id]}return el}}else{if(!DOC.querySelector){Ext.getDetachedBody=Ext.getBody;Ext.getElementById=function(id){return DOC.getElementById(id)}}}})}());Ext.dom.Element.override((function(){var d=document,c=window,a=/^([a-z]+)-([a-z]+)(\?)?$/,b=Math.round;return{getAnchorXY:function(j,o,h){j=(j||"tl").toLowerCase();h=h||{};var m=this,i=m.dom==d.body||m.dom==d,e=h.width||i?Ext.dom.Element.getViewWidth():m.getWidth(),g=h.height||i?Ext.dom.Element.getViewHeight():m.getHeight(),q,n=m.getXY(),p=m.getScroll(),l=i?p.left:!o?n[0]:0,k=i?p.top:!o?n[1]:0;switch(j){case"tl":q=[0,0];break;case"bl":q=[0,g];break;case"tr":q=[e,0];break;case"c":q=[b(e*0.5),b(g*0.5)];break;case"t":q=[b(e*0.5),0];break;case"l":q=[0,b(g*0.5)];break;case"r":q=[e,b(g*0.5)];break;case"b":q=[b(e*0.5),g];break;case"br":q=[e,g]}return[q[0]+l,q[1]+k]},getAlignToXY:function(m,G,j){m=Ext.get(m);if(!m||!m.dom){}j=j||[0,0];G=(!G||G=="?"?"tl-bl?":(!(/-/).test(G)&&G!==""?"tl-"+G:G||"tl-bl")).toLowerCase();var H=this,l,w,q,o,k,z,A,E=Ext.dom.Element.getViewWidth()-10,i=Ext.dom.Element.getViewHeight()-10,g,h,n,p,u,v,F=d.documentElement,s=d.body,D=(F.scrollLeft||s.scrollLeft||0),B=(F.scrollTop||s.scrollTop||0),C,t,r,e=G.match(a);t=e[1];r=e[2];C=!!e[3];l=H.getAnchorXY(t,true);w=m.getAnchorXY(r,false);q=w[0]-l[0]+j[0];o=w[1]-l[1]+j[1];if(C){k=H.getWidth();z=H.getHeight();A=m.getRegion();g=t.charAt(0);h=t.charAt(t.length-1);n=r.charAt(0);p=r.charAt(r.length-1);u=((g=="t"&&n=="b")||(g=="b"&&n=="t"));v=((h=="r"&&p=="l")||(h=="l"&&p=="r"));if(q+k>E+D){q=v?A.left-k:E+D-k}if(qi+B){o=u?A.top-z:i+B-z}if(oi.right){h=true;e[0]=(i.right-k.right)}if(k.left+e[0]i.bottom){h=true;e[1]=(i.bottom-k.bottom)}if(k.top+e[1]a.clientHeight||a.scrollWidth>a.clientWidth},getScroll:function(){var i=this.dom,h=document,a=h.body,c=h.documentElement,b,g,e;if(i==h||i==a){if(Ext.isIE&&Ext.isStrict){b=c.scrollLeft;g=c.scrollTop}else{b=window.pageXOffset;g=window.pageYOffset}e={left:b||(a?a.scrollLeft:0),top:g||(a?a.scrollTop:0)}}else{e={left:i.scrollLeft,top:i.scrollTop}}return e},scrollBy:function(b,a,c){var d=this,e=d.dom;if(b.length){c=a;a=b[1];b=b[0]}else{if(typeof b!="number"){c=a;a=b.y;b=b.x}}if(b){d.scrollTo("left",Math.max(Math.min(e.scrollLeft+b,e.scrollWidth-e.clientWidth),0),c)}if(a){d.scrollTo("top",Math.max(Math.min(e.scrollTop+a,e.scrollHeight-e.clientHeight),0),c)}return d},scrollTo:function(c,e,a){var g=/top/i.test(c),d=this,h=d.dom,b,i;if(!a||!d.anim){i="scroll"+(g?"Top":"Left");h[i]=e;h[i]=e}else{b={to:{}};b.to["scroll"+(g?"Top":"Left")]=e;if(Ext.isObject(a)){Ext.applyIf(b,a)}d.animate(b)}return d},scrollIntoView:function(b,g,c){b=Ext.getDom(b)||Ext.getBody().dom;var d=this.dom,i=this.getOffsetsTo(b),h=i[0]+b.scrollLeft,l=i[1]+b.scrollTop,a=l+d.offsetHeight,m=h+d.offsetWidth,p=b.clientHeight,o=parseInt(b.scrollTop,10),e=parseInt(b.scrollLeft,10),j=o+p,n=e+b.clientWidth,k;if(d.offsetHeight>p||lj){k=a-p}}if(k!=null){Ext.get(b).scrollTo("top",k,c)}if(g!==false){k=null;if(d.offsetWidth>b.clientWidth||hn){k=m-b.clientWidth}}if(k!=null){Ext.get(b).scrollTo("left",k,c)}}return this},scrollChildIntoView:function(b,a){Ext.fly(b,"_scrollChildIntoView").scrollIntoView(this,a)},scroll:function(m,b,d){if(!this.isScrollable()){return false}var e=this.dom,g=e.scrollLeft,p=e.scrollTop,n=e.scrollWidth,k=e.scrollHeight,i=e.clientWidth,a=e.clientHeight,c=false,o,j={l:Math.min(g+b,n-i),r:o=Math.max(g-b,0),t:Math.max(p-b,0),b:Math.min(p+b,k-a)};j.d=j.b;j.u=j.t;m=m.substr(0,1);if((o=j[m])>-1){c=true;this.scrollTo(m=="l"||m=="r"?"left":"top",o,this.anim(d))}return c}});(function(){var p=Ext.dom.Element,m=document.defaultView,n=/table-row|table-.*-group/,a="_internal",r="hidden",o="height",g="width",e="isClipped",i="overflow",l="overflow-x",j="overflow-y",s="originalClip",b=/#document|body/i,t,d,q,h,u;if(!m||!m.getComputedStyle){p.prototype.getStyle=function(z,y){var L=this,G=L.dom,J=typeof z!="string",k=L.styleHooks,w=z,x=w,F=1,B=y,K,C,v,A,E,H,D;if(J){v={};w=x[0];D=0;if(!(F=x.length)){return v}}if(!G||G.documentElement){return v||""}C=G.style;if(y){H=C}else{H=G.currentStyle;if(!H){B=true;H=C}}do{A=k[w];if(!A){k[w]=A={name:p.normalize(w)}}if(A.get){E=A.get(G,L,B,H)}else{K=A.name;if(A.canThrow){try{E=H[K]}catch(I){E=""}}else{E=H?H[K]:""}}if(!J){return E}v[w]=E;w=x[++D]}while(D0&&A<0.5){k++}}}if(x){k-=w.getBorderWidth("tb")+w.getPadding("tb")}return(k<0)?0:k},getWidth:function(k,z){var x=this,A=x.dom,y=x.isStyle("display","none"),w,v,B;if(y){return 0}if(Ext.supports.BoundingClientRect){w=A.getBoundingClientRect();v=w.right-w.left;v=z?v:Math.ceil(v)}else{v=A.offsetWidth}v=Math.max(v,A.clientWidth)||0;if(Ext.supports.Direct2DBug){B=x.adjustDirect2DDimension(g);if(z){v+=B}else{if(B>0&&B<0.5){v++}}}if(k){v-=x.getBorderWidth("lr")+x.getPadding("lr")}return(v<0)?0:v},setWidth:function(v,k){var w=this;v=w.adjustWidth(v);if(!k||!w.anim){w.dom.style.width=w.addUnits(v)}else{if(!Ext.isObject(k)){k={}}w.animate(Ext.applyIf({to:{width:v}},k))}return w},setHeight:function(k,v){var w=this;k=w.adjustHeight(k);if(!v||!w.anim){w.dom.style.height=w.addUnits(k)}else{if(!Ext.isObject(v)){v={}}w.animate(Ext.applyIf({to:{height:k}},v))}return w},applyStyles:function(k){Ext.DomHelper.applyStyles(this.dom,k);return this},setSize:function(w,k,v){var x=this;if(Ext.isObject(w)){v=k;k=w.height;w=w.width}w=x.adjustWidth(w);k=x.adjustHeight(k);if(!v||!x.anim){x.dom.style.width=x.addUnits(w);x.dom.style.height=x.addUnits(k)}else{if(v===true){v={}}x.animate(Ext.applyIf({to:{width:w,height:k}},v))}return x},getViewSize:function(){var w=this,x=w.dom,v=b.test(x.nodeName),k;if(v){k={width:p.getViewWidth(),height:p.getViewHeight()}}else{k={width:x.clientWidth,height:x.clientHeight}}return k},getSize:function(k){return{width:this.getWidth(k),height:this.getHeight(k)}},adjustWidth:function(k){var v=this,w=(typeof k=="number");if(w&&v.autoBoxAdjust&&!v.isBorderBox()){k-=(v.getBorderWidth("lr")+v.getPadding("lr"))}return(w&&k<0)?0:k},adjustHeight:function(k){var v=this,w=(typeof k=="number");if(w&&v.autoBoxAdjust&&!v.isBorderBox()){k-=(v.getBorderWidth("tb")+v.getPadding("tb"))}return(w&&k<0)?0:k},getColor:function(w,x,C){var z=this.getStyle(w),y=C||C===""?C:"#",B,k,A=0;if(!z||(/transparent|inherit/.test(z))){return x}if(/^r/.test(z)){z=z.slice(4,z.length-1).split(",");k=z.length;for(;A5?y.toLowerCase():x)},setOpacity:function(v,k){var w=this;if(!w.dom){return w}if(!k||!w.anim){w.setStyle("opacity",v)}else{if(typeof k!="object"){k={duration:350,easing:"ease-in"}}w.animate(Ext.applyIf({to:{opacity:v}},k))}return w},clearOpacity:function(){return this.setOpacity("")},adjustDirect2DDimension:function(w){var B=this,v=B.dom,z=B.getStyle("display"),y=v.style.display,C=v.style.position,A=w===g?0:1,k=v.currentStyle,x;if(z==="inline"){v.style.display="inline-block"}v.style.position=z.match(n)?"absolute":"static";x=(parseFloat(k[w])||parseFloat(k.msTransformOrigin.split(" ")[A])*2)%1;v.style.position=C;if(z==="inline"){v.style.display=y}return x},clip:function(){var v=this,w=(v.$cache||v.getCache()).data,k;if(!w[e]){w[e]=true;k=v.getStyle([i,l,j]);w[s]={o:k[i],x:k[l],y:k[j]};v.setStyle(i,r);v.setStyle(l,r);v.setStyle(j,r)}return v},unclip:function(){var v=this,w=(v.$cache||v.getCache()).data,k;if(w[e]){w[e]=false;k=w[s];if(k.o){v.setStyle(i,k.o)}if(k.x){v.setStyle(l,k.x)}if(k.y){v.setStyle(j,k.y)}}return v},boxWrap:function(k){k=k||Ext.baseCSSPrefix+"box";var v=Ext.get(this.insertHtml("beforeBegin","
"+Ext.String.format(p.boxMarkup,k)+"
"));Ext.DomQuery.selectNode("."+k+"-mc",v.dom).appendChild(this.dom);return v},getComputedHeight:function(){var v=this,k=Math.max(v.dom.offsetHeight,v.dom.clientHeight);if(!k){k=parseFloat(v.getStyle(o))||0;if(!v.isBorderBox()){k+=v.getFrameWidth("tb")}}return k},getComputedWidth:function(){var v=this,k=Math.max(v.dom.offsetWidth,v.dom.clientWidth);if(!k){k=parseFloat(v.getStyle(g))||0;if(!v.isBorderBox()){k+=v.getFrameWidth("lr")}}return k},getFrameWidth:function(v,k){return(k&&this.isBorderBox())?0:(this.getPadding(v)+this.getBorderWidth(v))},addClsOnOver:function(w,z,v){var x=this,y=x.dom,k=Ext.isFunction(z);x.hover(function(){if(k&&z.call(v||x,x)===false){return}Ext.fly(y,a).addCls(w)},function(){Ext.fly(y,a).removeCls(w)});return x},addClsOnFocus:function(w,z,v){var x=this,y=x.dom,k=Ext.isFunction(z);x.on("focus",function(){if(k&&z.call(v||x,x)===false){return false}Ext.fly(y,a).addCls(w)});x.on("blur",function(){Ext.fly(y,a).removeCls(w)});return x},addClsOnClick:function(w,z,v){var x=this,y=x.dom,k=Ext.isFunction(z);x.on("mousedown",function(){if(k&&z.call(v||x,x)===false){return false}Ext.fly(y,a).addCls(w);var B=Ext.getDoc(),A=function(){Ext.fly(y,a).removeCls(w);B.removeListener("mouseup",A)};B.on("mouseup",A)});return x},getStyleSize:function(){var z=this,A=this.dom,v=b.test(A.nodeName),y,k,x;if(v){return{width:p.getViewWidth(),height:p.getViewHeight()}}y=z.getStyle([o,g],true);if(y.width&&y.width!="auto"){k=parseFloat(y.width);if(z.isBorderBox()){k-=z.getFrameWidth("lr")}}if(y.height&&y.height!="auto"){x=parseFloat(y.height);if(z.isBorderBox()){x-=z.getFrameWidth("tb")}}return{width:k||z.getWidth(true),height:x||z.getHeight(true)}},selectable:function(){var k=this;k.dom.unselectable="off";k.on("selectstart",function(v){v.stopPropagation();return true});k.applyStyles("-moz-user-select: text; -khtml-user-select: text;");k.removeCls(Ext.baseCSSPrefix+"unselectable");return k},unselectable:function(){var k=this;k.dom.unselectable="on";k.swallowEvent("selectstart",true);k.applyStyles("-moz-user-select:-moz-none;-khtml-user-select:none;");k.addCls(Ext.baseCSSPrefix+"unselectable");return k}});p.prototype.styleHooks=t=Ext.dom.AbstractElement.prototype.styleHooks;if(Ext.isIE6||Ext.isIE7){t.fontSize=t["font-size"]={name:"fontSize",canThrow:true};t.fontStyle=t["font-style"]={name:"fontStyle",canThrow:true};t.fontFamily=t["font-family"]={name:"fontFamily",canThrow:true}}if(Ext.isIEQuirks||Ext.isIE&&Ext.ieVersion<=8){function c(x,v,w,k){if(k[this.styleName]=="none"){return"0px"}return k[this.name]}d=["Top","Right","Bottom","Left"];q=d.length;while(q--){h=d[q];u="border"+h+"Width";t["border-"+h.toLowerCase()+"-width"]=t[u]={name:u,styleName:"border"+h+"Style",get:c}}}}());Ext.onReady(function(){var c=/alpha\(opacity=(.*)\)/i,b=/^\s+|\s+$/g,a=Ext.dom.Element.prototype.styleHooks;a.opacity={name:"opacity",afterSet:function(g,e,d){if(d.isLayer){d.onOpacitySet(e)}}};if(!Ext.supports.Opacity&&Ext.isIE){Ext.apply(a.opacity,{get:function(h){var g=h.style.filter,e,d;if(g.match){e=g.match(c);if(e){d=parseFloat(e[1]);if(!isNaN(d)){return d?d/100:0}}}return 1},set:function(h,e){var d=h.style,g=d.filter.replace(c,"").replace(b,"");d.zoom=1;if(typeof(e)=="number"&&e>=0&&e<1){e*=100;d.filter=g+(g.length?" ":"")+"alpha(opacity="+e+")"}else{d.filter=g}}})}});Ext.dom.Element.override({select:function(a){return Ext.dom.Element.select(a,false,this.dom)}});Ext.define("Ext.dom.CompositeElementLite",{alternateClassName:"Ext.CompositeElementLite",requires:["Ext.dom.Element","Ext.dom.Query"],statics:{importElementMethods:function(){var b,c=Ext.dom.Element.prototype,a=this.prototype;for(b in c){if(typeof c[b]=="function"){(function(d){a[d]=a[d]||function(){return this.invoke(d,arguments)}}).call(a,b)}}}},constructor:function(b,a){this.elements=[];this.add(b,a);this.el=new Ext.dom.AbstractElement.Fly()},isComposite:true,getElement:function(a){return this.el.attach(a)},transformElement:function(a){return Ext.getDom(a)},getCount:function(){return this.elements.length},add:function(c,a){var e=this.elements,b,d;if(!c){return this}if(typeof c=="string"){c=Ext.dom.Element.selectorFunction(c,a)}else{if(c.isComposite){c=c.elements}else{if(!Ext.isIterable(c)){c=[c]}}}for(b=0,d=c.length;b-1){c=Ext.getDom(c);if(a){g=this.elements[b];g.parentNode.insertBefore(c,g);Ext.removeNode(g)}Ext.Array.splice(this.elements,b,1,c)}return this},clear:function(){this.elements=[]},addElements:function(d,b){if(!d){return this}if(typeof d=="string"){d=Ext.dom.Element.selectorFunction(d,b)}var c=this.elements,a=d.length,g;for(g=0;g','
{parent.baseCls}-{parent.ui}-{.}-tl" style="background-position: {tl}; padding-left: {frameWidth}px" role="presentation">','
{parent.baseCls}-{parent.ui}-{.}-tr" style="background-position: {tr}; padding-right: {frameWidth}px" role="presentation">','
{parent.baseCls}-{parent.ui}-{.}-tc" style="background-position: {tc}; height: {frameWidth}px" role="presentation">
','
','
',"",'
{parent.baseCls}-{parent.ui}-{.}-ml" style="background-position: {ml}; padding-left: {frameWidth}px" role="presentation">','
{parent.baseCls}-{parent.ui}-{.}-mr" style="background-position: {mr}; padding-right: {frameWidth}px" role="presentation">','
{parent.baseCls}-{parent.ui}-{.}-mc" role="presentation">',"{%this.applyRenderTpl(out, values)%}","
",'
','
','','
{parent.baseCls}-{parent.ui}-{.}-bl" style="background-position: {bl}; padding-left: {frameWidth}px" role="presentation">','
{parent.baseCls}-{parent.ui}-{.}-br" style="background-position: {br}; padding-right: {frameWidth}px" role="presentation">','
{parent.baseCls}-{parent.ui}-{.}-bc" style="background-position: {bc}; height: {frameWidth}px" role="presentation">
','
','
',"
","{%this.renderDockedItems(out,values,1);%}"],frameTableTpl:["{%this.renderDockedItems(out,values,0);%}","",'',"",'','','',"","","",'','",'',"",'',"",'','','',"","","
{parent.baseCls}-{parent.ui}-{.}-tl" style="background-position: {tl}; padding-left:{frameWidth}px" role="presentation"> {parent.baseCls}-{parent.ui}-{.}-tc" style="background-position: {tc}; height: {frameWidth}px" role="presentation"> {parent.baseCls}-{parent.ui}-{.}-tr" style="background-position: {tr}; padding-left: {frameWidth}px" role="presentation">
{parent.baseCls}-{parent.ui}-{.}-ml" style="background-position: {ml}; padding-left: {frameWidth}px" role="presentation"> {parent.baseCls}-{parent.ui}-{.}-mc" style="background-position: 0 0;" role="presentation">',"{%this.applyRenderTpl(out, values)%}"," {parent.baseCls}-{parent.ui}-{.}-mr" style="background-position: {mr}; padding-left: {frameWidth}px" role="presentation">
{parent.baseCls}-{parent.ui}-{.}-bl" style="background-position: {bl}; padding-left: {frameWidth}px" role="presentation"> {parent.baseCls}-{parent.ui}-{.}-bc" style="background-position: {bc}; height: {frameWidth}px" role="presentation"> {parent.baseCls}-{parent.ui}-{.}-br" style="background-position: {br}; padding-left: {frameWidth}px" role="presentation">
","{%this.renderDockedItems(out,values,1);%}"],afterRender:function(){var b=this,c={},e=b.protoEl,d=b.getTargetEl(),a;b.finishRenderChildren();if(b.styleHtmlContent){d.addCls(b.styleHtmlCls)}e.writeTo(c);a=c.removed;if(a){d.removeCls(a)}a=c.cls;if(a.length){d.addCls(a)}a=c.style;if(c.style){d.setStyle(a)}b.protoEl=null;if(!b.ownerCt){b.updateLayout()}},afterFirstLayout:function(d,a){var e=this,c=Ext.isDefined(e.x),b=Ext.isDefined(e.y),h,g;if(e.floating&&(!c||!b)){if(e.floatParent){h=e.floatParent.getTargetEl().getViewRegion();g=e.el.getAlignToXY(e.floatParent.getTargetEl(),"c-c");h.left=g[0]-h.left;h.top=g[1]-h.top}else{g=e.el.getAlignToXY(e.container,"c-c");h=e.container.translatePoints(g[0],g[1])}e.x=c?e.x:h.left;e.y=b?e.y:h.top;c=b=true}if(c||b){e.setPosition(e.x,e.y)}e.onBoxReady(d,a);if(e.hasListeners.boxready){e.fireEvent("boxready",e,d,a)}},onBoxReady:Ext.emptyFn,applyRenderSelectors:function(){var d=this,b=d.renderSelectors,c=d.el,e=c.dom,a;d.applyChildEls(c);if(b){for(a in b){if(b.hasOwnProperty(a)&&b[a]){d[a]=Ext.get(Ext.DomQuery.selectNode(b[a],e))}}}},beforeRender:function(){var b=this,c=b.getTargetEl(),a=b.getComponentLayout();b.frame=b.frame||b.alwaysFramed;if(!a.initialized){a.initLayout()}if(c){c.setStyle(b.getOverflowStyle());b.overflowStyleSet=true}b.setUI(b.ui);if(b.disabled){b.disable(true)}},doApplyRenderTpl:function(c,a){var d=a.$comp,b;if(!d.rendered){b=d.initRenderTpl();b.applyOut(a.renderData,c)}},doAutoRender:function(){var a=this;if(!a.rendered){if(a.floating){a.render(document.body)}else{a.render(Ext.isBoolean(a.autoRender)?Ext.getBody():a.autoRender)}}},doRenderContent:function(a,c){var b=c.$comp;if(b.html){Ext.DomHelper.generateMarkup(b.html,a);delete b.html}if(b.tpl){if(!b.tpl.isTemplate){b.tpl=new Ext.XTemplate(b.tpl)}if(b.data){b.tpl.applyOut(b.data,a);delete b.data}}},doRenderFramingDockedItems:function(a,c,d){var b=c.$comp;if(!b.rendered&&b.doRenderDockedItems){c.renderData.$skipDockedItems=true;b.doRenderDockedItems.call(this,a,c,d)}},finishRender:function(a){var g=this,b,h,e,d,i,c;if(!g.el||g.$pid){if(g.container){d=g.container.getById(g.id,true)}else{d=Ext.getDom(g.id)}if(!g.el){g.wrapPrimaryEl(d)}else{delete g.$pid;if(!g.el.dom){g.wrapPrimaryEl(g.el)}d.parentNode.insertBefore(g.el.dom,d);Ext.removeNode(d)}}else{if(!g.rendering){b=g.initRenderTpl();if(b){h=g.initRenderData();b.insertFirst(g.getTargetEl(),h)}}}if(!g.container){g.container=Ext.get(g.el.dom.parentNode)}if(g.ctCls){g.container.addCls(g.ctCls)}g.onRender(g.container,a);if(!g.overflowStyleSet){g.getTargetEl().setStyle(g.getOverflowStyle())}g.el.setVisibilityMode(Ext.Element[g.hideMode.toUpperCase()]);if(g.overCls){g.el.hover(g.addOverCls,g.removeOverCls,g)}if(g.hasListeners.render){g.fireEvent("render",g)}if(g.contentEl){i=Ext.baseCSSPrefix;c=i+"hide-";e=Ext.get(g.contentEl);e.removeCls([i+"hidden",c+"display",c+"offsets",c+"nosize"]);g.getTargetEl().appendChild(e.dom)}g.afterRender();if(g.hasListeners.afterrender){g.fireEvent("afterrender",g)}g.initEvents();if(g.hidden){g.el.hide()}},finishRenderChildren:function(){var a=this.getComponentLayout();a.finishRender()},getElConfig:function(){var h=this,j=h.autoEl,e=h.getFrameInfo(),a={tag:"div",tpl:e?h.initFramingTpl(e.table):h.initRenderTpl()},b,d,g,k,c;h.initStyles(h.protoEl);h.protoEl.writeTo(a);h.protoEl.flush();if(Ext.isString(j)){a.tag=j}else{Ext.apply(a,j)}a.id=h.id;if(a.tpl){if(e){d=h.frameElNames;g=d.length;c=h.id+"-frame1";h.frameGenId=1;a.tplData=Ext.apply({},{$comp:h,fgid:c,ui:h.ui,uiCls:h.uiCls,frameCls:h.frameCls,baseCls:h.baseCls,frameWidth:e.maxWidth,top:!!e.top,left:!!e.left,right:!!e.right,bottom:!!e.bottom,renderData:h.initRenderData()},h.getFramePositions(e));for(b=0;b table")[1].remove()}else{if(g){g.remove()}if(d){d.remove()}if(c){c.remove()}}}}else{if(e.frame){this.applyRenderSelectors()}}},getFrameInfo:function(){if(Ext.supports.CSS3BorderRadius||!this.frame){return false}var g=this,i=g.frameInfoCache,a=g.el||g.protoEl,j=a.dom?a.dom.className:a.classList.join(" "),d=i[j],e,c,h,b;if(d==null){e=Ext.fly(g.getStyleProxy(j),"frame-style-el");c=e.getStyle("background-position-x");h=e.getStyle("background-position-y");if(!c&&!h){b=e.getStyle("background-position").split(" ");c=b[0];h=b[1]}d=g.calculateFrame(c,h);if(d){a.setStyle("background-image","none")}i[j]=d}g.frame=!!d;g.frameSize=d;return d},calculateFrame:function(h,g){if(!(parseInt(h,10)>=1000000&&parseInt(g,10)>=1000000)){return false}var a=Math.max,b=parseInt(h.substr(3,2),10),e=parseInt(h.substr(5,2),10),c=parseInt(g.substr(3,2),10),i=parseInt(g.substr(5,2),10),d={table:h.substr(0,3)=="110",vertical:g.substr(0,3)=="110",top:a(b,e),right:a(e,c),bottom:a(i,c),left:a(b,i)};d.maxWidth=a(d.top,d.right,d.bottom,d.left);d.width=d.left+d.right;d.height=d.top+d.bottom;return d},getStyleProxy:function(b){var a=this.styleProxyEl||(Ext.AbstractComponent.prototype.styleProxyEl=Ext.resetElement.createChild({style:{position:"absolute",top:"-10000px"}},null,true));a.className=b;return a},getFramePositions:function(e){var h=this,i=e.maxWidth,j=h.dock,d,b,g,c,a;if(e.vertical){b="0 -"+(i*0)+"px";g="0 -"+(i*1)+"px";if(j&&j=="right"){b="right -"+(i*0)+"px";g="right -"+(i*1)+"px"}d={tl:"0 -"+(i*0)+"px",tr:"0 -"+(i*1)+"px",bl:"0 -"+(i*2)+"px",br:"0 -"+(i*3)+"px",ml:"-"+(i*1)+"px 0",mr:"right 0",tc:b,bc:g}}else{c="-"+(i*0)+"px 0";a="right 0";if(j&&j=="bottom"){c="left bottom";a="right bottom"}d={tl:"0 -"+(i*2)+"px",tr:"right -"+(i*3)+"px",bl:"0 -"+(i*4)+"px",br:"right -"+(i*5)+"px",ml:c,mr:a,tc:"0 -"+(i*0)+"px",bc:"0 -"+(i*1)+"px"}}return d},getFrameTpl:function(a){return this.getTpl(a?"frameTableTpl":"frameTpl")},frameInfoCache:{}});Ext.define("Ext.state.Provider",{mixins:{observable:"Ext.util.Observable"},prefix:"ext-",constructor:function(a){a=a||{};var b=this;Ext.apply(b,a);b.addEvents("statechange");b.state={};b.mixins.observable.constructor.call(b)},get:function(b,a){return typeof this.state[b]=="undefined"?a:this.state[b]},clear:function(a){var b=this;delete b.state[a];b.fireEvent("statechange",b,a,null)},set:function(a,c){var b=this;b.state[a]=c;b.fireEvent("statechange",b,a,c)},decodeValue:function(g){var c=this,k=/^(a|n|d|b|s|o|e)\:(.*)$/,b=k.exec(unescape(g)),h,d,a,j,e,i;if(!b||!b[1]){return}d=b[1];g=b[2];switch(d){case"e":return null;case"n":return parseFloat(g);case"d":return new Date(Date.parse(g));case"b":return(g=="1");case"a":h=[];if(g!=""){j=g.split("^");e=j.length;for(i=0;ii){c=d;a=true}if(e&&p>j){n=p;a=true}if(a){m=!Ext.isNumber(k.width);l=!Ext.isNumber(k.height);k.setSize(n,c);k.el.setSize(j,i);if(m){delete k.width}if(l){delete k.height}}if(e){o.width=p}if(g){o.height=d}}return k.mixins.animate.animate.apply(k,arguments)},onHide:function(){this.updateLayout({isRoot:false})},onShow:function(){this.updateLayout({isRoot:false})},constructPlugin:function(a){if(a.ptype&&typeof a.init!="function"){a.cmp=this;a=Ext.PluginManager.create(a)}else{if(typeof a=="string"){a=Ext.PluginManager.create({ptype:a,cmp:this})}}return a},constructPlugins:function(){var e=this,c,b=[],d,a;if(e.plugins){c=Ext.isArray(e.plugins)?e.plugins:[e.plugins];for(d=0,a=c.length;d=0;a--){if((g=d.getAt(a)).is(b)){return g}}}else{if(a){return d.getAt(--a)}}}}return null},previousNode:function(b,d){var j=this,h=j.ownerCt,a,g,e,c;if(d&&j.is(b)){return j}if(h){for(g=h.items.items,e=Ext.Array.indexOf(g,j)-1;e>-1;e--){c=g[e];if(c.query){a=c.query(b);a=a[a.length-1];if(a){return a}}if(c.is(b)){return c}}return h.previousNode(b,true)}return null},nextNode:function(d,j){var b=this,c=b.ownerCt,k,e,h,g,a;if(j&&b.is(d)){return b}if(c){for(e=c.items.items,g=Ext.Array.indexOf(e,b)+1,h=e.length;g=8){b=new XDomainRequest()}else{b=this.getXhrInstance()}return b},openRequest:function(c,a,d,g,b){var e=this.newRequest(c);if(g){e.open(a.method,a.url,d,g,b)}else{e.open(a.method,a.url,d)}if(c.withCredentials||this.withCredentials){e.withCredentials=true}return e},getXhrInstance:(function(){var b=[function(){return new XMLHttpRequest()},function(){return new ActiveXObject("MSXML2.XMLHTTP.3.0")},function(){return new ActiveXObject("MSXML2.XMLHTTP")},function(){return new ActiveXObject("Microsoft.XMLHTTP")}],c=0,a=b.length,g;for(;c=200&&a<300)||a==304,b=false;if(!c){switch(a){case 12002:case 12029:case 12030:case 12031:case 12152:case 13030:b=true;break}}return{success:c,isException:b}},createResponse:function(c){var i=c.xhr,a={},j=i.getAllResponseHeaders().replace(/\r\n/g,"\n").split("\n"),d=j.length,k,e,h,g,b;while(d--){k=j[d];e=k.indexOf(":");if(e>=0){h=k.substr(0,e).toLowerCase();if(k.charAt(e+1)==" "){++e}a[h]=k.substr(e+1)}}c.xhr=null;delete c.xhr;b={request:c,requestId:c.id,status:i.status,statusText:i.statusText,getResponseHeader:function(l){return a[l.toLowerCase()]},getAllResponseHeaders:function(){return a},responseText:i.responseText,responseXML:i.responseXML};i=null;return b},createException:function(a){return{request:a,requestId:a.id,status:a.aborted?-1:0,statusText:a.aborted?"transaction aborted":"communication failure",aborted:a.aborted,timedout:a.timedout}}});Ext.define("Ext.Ajax",{extend:"Ext.data.Connection",singleton:true,autoAbort:false});Ext.define("Ext.util.Floating",{uses:["Ext.Layer","Ext.window.Window"],focusOnToFront:true,shadow:"sides",constructor:function(b){var a=this;a.el=new Ext.Layer(Ext.apply({hideMode:a.hideMode,hidden:a.hidden,shadow:(typeof a.shadow!="undefined")?a.shadow:"sides",shadowOffset:a.shadowOffset,constrain:false,shim:(a.shim===false)?false:undefined},a.floating),b);a.floating=true;a.registerWithOwnerCt()},registerWithOwnerCt:function(){var a=this;if(a.zIndexParent){a.zIndexParent.unregisterFloatingItem(a)}a.zIndexParent=a.up("[floating]");a.setFloatParent(a.ownerCt);delete a.ownerCt;if(a.zIndexParent){a.zIndexParent.registerFloatingItem(a)}else{Ext.WindowManager.register(a)}},setFloatParent:function(b){var a=this;if(a.floatParent){a.mun(a.floatParent,{hide:a.onFloatParentHide,show:a.onFloatParentShow,scope:a})}a.floatParent=b;if(b){a.mon(a.floatParent,{hide:a.onFloatParentHide,show:a.onFloatParentShow,scope:a})}if((a.constrain||a.constrainHeader)&&!a.constrainTo){a.constrainTo=b?b.getTargetEl():a.container}},onAfterFloatLayout:function(){this.syncShadow()},onFloatParentHide:function(){var a=this;if(a.hideOnParentHide!==false&&a.isVisible()){a.hide();a.showOnParentShow=true}},onFloatParentShow:function(){if(this.showOnParentShow){delete this.showOnParentShow;this.show()}},setZIndex:function(a){var b=this;b.el.setZIndex(a);a+=10;if(b.floatingDescendants){a=Math.floor(b.floatingDescendants.setBase(a)/100)*100+10000}return a},doConstrain:function(b){var c=this,a=c.getConstrainVector(b),d;if(a){d=c.getPosition(!!c.floatParent);d[0]+=a[0];d[1]+=a[1];c.setPosition(d)}},getConstrainVector:function(a){var b=this;if(b.constrain||b.constrainHeader){a=a||(b.floatParent&&b.floatParent.getTargetEl())||b.container||b.el.getScopeParent();return(b.constrainHeader?b.header.el:b.el).getConstrainVector(a)}},alignTo:function(b,a,c){this.setPagePosition(this.el.getAlignToXY(b.el||b,a,c));return this},toFront:function(b){var a=this;if(a.zIndexParent&&a.bringParentToFront!==false){a.zIndexParent.toFront(true)}if(!Ext.isDefined(b)){b=!a.focusOnToFront}if(b){a.preventFocusOnActivate=true}if(a.zIndexManager.bringToFront(a)){if(!b){a.focus(false,true)}}delete a.preventFocusOnActivate;return a},setActive:function(b,c){var a=this;if(b){if(a.el.shadow&&!a.maximized){a.el.enableShadow(true)}if(a.modal&&!a.preventFocusOnActivate){a.focus(false,true)}a.fireEvent("activate",a)}else{if(a.isWindow&&(c&&c.isWindow)){a.el.disableShadow()}a.fireEvent("deactivate",a)}},toBack:function(){this.zIndexManager.sendToBack(this);return this},center:function(){var a=this,b;if(a.isVisible()){b=a.el.getAlignToXY(a.container,"c-c");a.setPagePosition(b)}else{a.needsCenter=true}return a},onFloatShow:function(){if(this.needsCenter){this.center()}delete this.needsCenter},syncShadow:function(){if(this.floating){this.el.sync(true)}},fitContainer:function(){var c=this,b=c.floatParent,a=b?b.getTargetEl():c.container;c.setSize(a.getViewSize(false));c.setPosition.apply(c,b?[0,0]:a.getXY())}});Ext.define("Ext.Component",{alias:["widget.component","widget.box"],extend:"Ext.AbstractComponent",requires:["Ext.util.DelayedTask"],uses:["Ext.Layer","Ext.resizer.Resizer","Ext.util.ComponentDragger"],mixins:{floating:"Ext.util.Floating"},statics:{DIRECTION_TOP:"top",DIRECTION_RIGHT:"right",DIRECTION_BOTTOM:"bottom",DIRECTION_LEFT:"left",VERTICAL_DIRECTION_Re:/^(?:top|bottom)$/,INVALID_ID_CHARS_Re:/[\.,\s]/g},resizeHandles:"all",floating:false,toFrontOnShow:true,hideMode:"display",bubbleEvents:[],monPropRe:/^(?:scope|delay|buffer|single|stopEvent|preventDefault|stopPropagation|normalized|args|delegate)$/,defaultComponentLayoutType:"autocomponent",constructor:function(a){var b=this;a=a||{};if(a.initialConfig){if(a.isAction){b.baseAction=a}a=a.initialConfig}else{if(a.tagName||a.dom||Ext.isString(a)){a={applyTo:a,id:a.id||a}}}b.callParent([a]);if(b.baseAction){b.baseAction.addComponent(b)}},initComponent:function(){var a=this;a.callParent();if(a.listeners){a.on(a.listeners);a.listeners=null}a.enableBubble(a.bubbleEvents);a.mons=[]},afterRender:function(){var a=this;a.callParent();if(!(a.x&&a.y)&&(a.pageX||a.pageY)){a.setPagePosition(a.pageX,a.pageY)}},setAutoScroll:function(a){var b=this;b.autoScroll=!!a;if(b.rendered){b.getTargetEl().setStyle(b.getOverflowStyle())}b.updateLayout();return b},setOverflowXY:function(b,a){var c=this,d=arguments.length;if(d){c.overflowX=b||"";if(d>1){c.overflowY=a||""}}if(c.rendered){c.getTargetEl().setStyle(c.getOverflowStyle())}c.updateLayout();return c},beforeRender:function(){var b=this,c=b.floating,a;if(c){b.addCls(Ext.baseCSSPrefix+"layer");a=c.cls;if(a){b.addCls(a)}}return b.callParent()},afterComponentLayout:function(){this.callParent(arguments);if(this.floating){this.onAfterFloatLayout()}},makeFloating:function(a){this.mixins.floating.constructor.call(this,a)},wrapPrimaryEl:function(a){if(this.floating){this.makeFloating(a)}else{this.callParent(arguments)}},initResizable:function(a){var b=this;a=Ext.apply({target:b,dynamic:false,constrainTo:b.constrainTo||(b.floatParent?b.floatParent.getTargetEl():null),handles:b.resizeHandles},a);a.target=b;b.resizer=new Ext.resizer.Resizer(a)},getDragEl:function(){return this.el},initDraggable:function(){var c=this,a=(c.resizer&&c.resizer.el!==c.el)?c.resizerComponent=new Ext.Component({el:c.resizer.el,rendered:true,container:c.container}):c,b=Ext.applyIf({el:a.getDragEl(),constrainTo:c.constrain?(c.constrainTo||(c.floatParent?c.floatParent.getTargetEl():c.el.getScopeParent())):undefined},c.draggable);if(c.constrain||c.constrainDelegate){b.constrain=c.constrain;b.constrainDelegate=c.constrainDelegate}c.dd=new Ext.util.ComponentDragger(a,b)},scrollBy:function(b,a,c){var d;if((d=this.getTargetEl())&&d.dom){d.scrollBy.apply(d,arguments)}},setLoading:function(c,d){var b=this,a;if(b.rendered){Ext.destroy(b.loadMask);b.loadMask=null;if(c!==false&&!b.collapsed){if(Ext.isObject(c)){a=Ext.apply({},c)}else{if(Ext.isString(c)){a={msg:c}}else{a={}}}if(d){Ext.applyIf(a,{useTargetEl:true})}b.loadMask=new Ext.LoadMask(b,a);b.loadMask.show()}}return b.loadMask},beforeSetPosition:function(){var b=this,c=b.callParent(arguments),a;if(c){a=b.adjustPosition(c.x,c.y);c.x=a.x;c.y=a.y}return c||null},afterSetPosition:function(b,a){this.onPosition(b,a);this.fireEvent("move",this,b,a)},showAt:function(a,d,b){var c=this;if(!c.rendered&&(c.autoRender||c.floating)){c.doAutoRender();c.hidden=true}if(c.floating){c.setPosition(a,d,b)}else{c.setPagePosition(a,d,b)}c.show()},setPagePosition:function(a,g,b){var c=this,d,e;if(Ext.isArray(a)){g=a[1];a=a[0]}c.pageX=a;c.pageY=g;if(c.floating){if(c.isContainedFloater()){e=c.floatParent.getTargetEl().getViewRegion();if(Ext.isNumber(a)&&Ext.isNumber(e.left)){a-=e.left}if(Ext.isNumber(g)&&Ext.isNumber(e.top)){g-=e.top}}else{d=c.el.translatePoints(a,g);a=d.left;g=d.top}c.setPosition(a,g,b)}else{d=c.el.translatePoints(a,g);c.setPosition(d.left,d.top,b)}return c},isContainedFloater:function(){return(this.floating&&this.floatParent)},getBox:function(b){var c=b?this.getPosition(b):this.el.getXY(),a=this.getSize();a.x=c[0];a.y=c[1];return a},updateBox:function(a){this.setSize(a.width,a.height);this.setPagePosition(a.x,a.y);return this},getOuterSize:function(){var a=this.el;return{width:a.getWidth()+a.getMargin("lr"),height:a.getHeight()+a.getMargin("tb")}},adjustPosition:function(a,d){var b=this,c;if(b.isContainedFloater()){c=b.floatParent.getTargetEl().getViewRegion();a+=c.left;d+=c.top}return{x:a,y:d}},getPosition:function(a){var c=this,b=c.el,e,d=c.isContainedFloater(),g;if((a===true)&&!d){return[b.getLocalX(),b.getLocalY()]}e=c.el.getXY();if((a===true)&&d){g=c.floatParent.getTargetEl().getViewRegion();e[0]-=g.left;e[1]-=g.top}return e},getId:function(){var a=this,b;if(!a.id){b=a.getXType();if(b){b=b.replace(Ext.Component.INVALID_ID_CHARS_Re,"-")}else{b=Ext.name.toLowerCase()+"-comp"}a.id=b+"-"+a.getAutoId()}return a.id},show:function(d,a,b){var c=this,e=c.rendered;if(e&&c.isVisible()){if(c.toFrontOnShow&&c.floating){c.toFront()}}else{if(c.fireEvent("beforeshow",c)!==false){c.hidden=false;if(!e&&(c.autoRender||c.floating)){c.doAutoRender();e=c.rendered}if(e){c.beforeShow();c.onShow.apply(c,arguments);c.afterShow.apply(c,arguments)}}else{c.onShowVeto()}}return c},onShowVeto:Ext.emptyFn,beforeShow:Ext.emptyFn,onShow:function(){var a=this;a.el.show();a.callParent(arguments);if(a.floating){if(a.maximized){a.fitContainer()}else{if(a.constrain){a.doConstrain()}}}},afterShow:function(h,b,e){var g=this,a,c,d;h=h||g.animateTarget;if(!g.ghost){h=null}if(h){h=h.el?h.el:Ext.get(h);c=g.el.getBox();a=h.getBox();g.el.addCls(Ext.baseCSSPrefix+"hide-offsets");d=g.ghost();d.el.stopAnimation();d.el.setX(-10000);d.el.animate({from:a,to:c,listeners:{afteranimate:function(){delete d.componentLayout.lastComponentSize;g.unghost();g.el.removeCls(Ext.baseCSSPrefix+"hide-offsets");g.onShowComplete(b,e)}}})}else{g.onShowComplete(b,e)}},onShowComplete:function(a,b){var c=this;if(c.floating){c.toFront();c.onFloatShow()}Ext.callback(a,b||c);c.fireEvent("show",c);delete c.hiddenByLayout},hide:function(){var a=this;a.showOnParentShow=false;if(!(a.rendered&&!a.isVisible())&&a.fireEvent("beforehide",a)!==false){a.hidden=true;if(a.rendered){a.onHide.apply(a,arguments)}}return a},onHide:function(g,a,d){var e=this,c,b;g=g||e.animateTarget;if(!e.ghost){g=null}if(g){g=g.el?g.el:Ext.get(g);c=e.ghost();c.el.stopAnimation();b=g.getBox();b.width+="px";b.height+="px";c.el.animate({to:b,listeners:{afteranimate:function(){delete c.componentLayout.lastComponentSize;c.el.hide();e.afterHide(a,d)}}})}e.el.hide();if(!g){e.afterHide(a,d)}},afterHide:function(a,b){var c=this;delete c.hiddenByLayout;Ext.AbstractComponent.prototype.onHide.call(this);Ext.callback(a,b||c);c.fireEvent("hide",c)},onDestroy:function(){var a=this;if(a.rendered){Ext.destroy(a.proxy,a.proxyWrap,a.resizer,a.resizerComponent)}delete a.focusTask;a.callParent()},deleteMembers:function(){var b=arguments,a=b.length,c=0;for(;c1){for(;c]*)\>)|(?:<\/tpl>)/g,actionsRe:/\s*(elif|elseif|if|for|exec|switch|case|eval)\s*\=\s*(?:(?:"([^"]*)")|(?:'([^']*)'))\s*/g,propRe:/prop=(?:(?:"([^"]*)")|(?:'([^']*)'))/,defaultRe:/^\s*default\s*$/,elseRe:/^\s*else\s*$/});Ext.define("Ext.XTemplateCompiler",{extend:"Ext.XTemplateParser",useEval:Ext.isGecko,useIndex:Ext.isIE6||Ext.isIE7,useFormat:true,propNameRe:/^[\w\d\$]*$/,compile:function(a){var c=this,b=c.generate(a);return c.useEval?c.evalTpl(b):(new Function("Ext",b))(Ext)},generate:function(a){var d=this,b="var fm=Ext.util.Format,ts=Object.prototype.toString;",c;d.maxLevel=0;d.body=["var c0=values, a0="+d.createArrayTest(0)+", p0=parent, n0=xcount, i0=xindex, v;\n"];if(d.definitions){if(typeof d.definitions==="string"){d.definitions=[d.definitions,b]}else{d.definitions.push(b)}}else{d.definitions=[b]}d.switches=[];d.parse(a);d.definitions.push((d.useEval?"$=":"return")+" function ("+d.fnArgs+") {",d.body.join(""),"}");c=d.definitions.join("\n");d.definitions.length=d.body.length=d.switches.length=0;delete d.definitions;delete d.body;delete d.switches;return c},doText:function(c){var b=this,a=b.body;c=c.replace(b.aposRe,"\\'").replace(b.newLineRe,"\\n");if(b.useIndex){a.push("out[out.length]='",c,"'\n")}else{a.push("out.push('",c,"')\n")}},doExpr:function(b){var a=this.body;a.push("if ((v="+b+")!==undefined) out");if(this.useIndex){a.push("[out.length]=v+''\n")}else{a.push(".push(v+'')\n")}},doTag:function(a){this.doExpr(this.parseTag(a))},doElse:function(){this.body.push("} else {\n")},doEval:function(a){this.body.push(a,"\n")},doIf:function(b,c){var a=this;if(b==="."){a.body.push("if (values) {\n")}else{if(a.propNameRe.test(b)){a.body.push("if (",a.parseTag(b),") {\n")}else{a.body.push("if (",a.addFn(b),a.callFn,") {\n")}}if(c.exec){a.doExec(c.exec)}},doElseIf:function(b,c){var a=this;if(b==="."){a.body.push("else if (values) {\n")}else{if(a.propNameRe.test(b)){a.body.push("} else if (",a.parseTag(b),") {\n")}else{a.body.push("} else if (",a.addFn(b),a.callFn,") {\n")}}if(c.exec){a.doExec(c.exec)}},doSwitch:function(b){var a=this;if(b==="."){a.body.push("switch (values) {\n")}else{if(a.propNameRe.test(b)){a.body.push("switch (",a.parseTag(b),") {\n")}else{a.body.push("switch (",a.addFn(b),a.callFn,") {\n")}}a.switches.push(0)},doCase:function(e){var d=this,c=Ext.isArray(e)?e:[e],g=d.switches.length-1,a,b;if(d.switches[g]){d.body.push("break;\n")}else{d.switches[g]++}for(b=0,g=c.length;b');c.scrollRangeFlags=e}}},finishRender:function(){var b=this,c,a;b.callParent();b.cacheElements();c=b.getRenderTarget();a=b.getLayoutItems();if(b.targetCls){b.getTarget().addCls(b.targetCls)}b.finishRenderItems(c,a)},notifyOwner:function(){this.owner.afterLayout(this)},getContainerSize:function(c,h){var d=c.targetContext,g=d.getFrameInfo(),k=d.getPaddingInfo(),j=0,l=0,a=c.state.overflowAdjust,e,i,b,m;if(!c.widthModel.shrinkWrap){++l;b=h?d.getDomProp("width"):d.getProp("width");e=(typeof b=="number");if(e){++j;b-=g.width+k.width;if(a){b-=a.width}}}if(!c.heightModel.shrinkWrap){++l;m=h?d.getDomProp("height"):d.getProp("height");i=(typeof m=="number");if(i){++j;m-=g.height+k.height;if(a){m-=a.height}}}return{width:b,height:m,needed:l,got:j,gotAll:j==l,gotWidth:e,gotHeight:i}},getLayoutItems:function(){var a=this.owner,b=a&&a.items;return(b&&b.items)||[]},getRenderData:function(){var a=this.owner;return{$comp:a,$layout:this,ownerId:a.id}},getRenderedItems:function(){var e=this,h=e.getRenderTarget(),a=e.getLayoutItems(),d=a.length,g=[],b,c;for(b=0;b'],calculate:function(b){var a=this,c;if(!b.hasDomProp("containerChildrenDone")){a.done=false}else{c=a.getContainerSize(b);if(!c.gotAll){a.done=false}a.calculateContentSize(b)}}});Ext.define("Ext.util.Filter",{anyMatch:false,exactMatch:false,caseSensitive:false,constructor:function(a){var b=this;Ext.apply(b,a);b.filter=b.filter||b.filterFn;if(b.filter===undefined){if(b.property===undefined||b.value===undefined){}else{b.filter=b.createFilterFn()}b.filterFn=b.filter}},createFilterFn:function(){var a=this,c=a.createValueMatcher(),b=a.property;return function(d){var e=a.getRoot.call(a,d)[b];return c===null?e===null:c.test(e)}},getRoot:function(b){var a=this.root;return a===undefined?b:b[a]},createValueMatcher:function(){var d=this,e=d.value,g=d.anyMatch,c=d.exactMatch,a=d.caseSensitive,b=Ext.String.escapeRegex;if(e===null){return e}if(!e.exec){e=String(e);if(g===true){e=b(e)}else{e="^"+b(e);if(c===true){e+="$"}}e=new RegExp(e,a?"":"i")}return e}});Ext.define("Ext.util.AbstractMixedCollection",{requires:["Ext.util.Filter"],mixins:{observable:"Ext.util.Observable"},isMixedCollection:true,generation:0,constructor:function(b,a){var c=this;c.items=[];c.map={};c.keys=[];c.length=0;c.allowFunctions=b===true;if(a){c.getKey=a}c.mixins.observable.constructor.call(c)},allowFunctions:false,add:function(b,e){var d=this,g=e,c=b,a;if(arguments.length==1){g=c;c=d.getKey(g)}if(typeof c!="undefined"&&c!==null){a=d.map[c];if(typeof a!="undefined"){return d.replace(c,g)}d.map[c]=g}d.generation++;d.length++;d.items.push(g);d.keys.push(c);if(d.hasListeners.add){d.fireEvent("add",d.length-1,g,c)}return g},getKey:function(a){return a.id},replace:function(c,e){var d=this,a,b;if(arguments.length==1){e=arguments[0];c=d.getKey(e)}a=d.map[c];if(typeof c=="undefined"||c===null||typeof a=="undefined"){return d.add(c,e)}d.generation++;b=d.indexOfKey(c);d.items[b]=e;d.map[c]=e;if(d.hasListeners.replace){d.fireEvent("replace",c,a,e)}return e},addAll:function(g){var e=this,d=0,b,a,c;if(arguments.length>1||Ext.isArray(g)){b=arguments.length>1?arguments:g;for(a=b.length;d=d.length){return d.add(c,g)}d.generation++;d.length++;Ext.Array.splice(d.items,a,0,g);if(typeof c!="undefined"&&c!==null){d.map[c]=g}Ext.Array.splice(d.keys,a,0,c);if(d.hasListeners.add){d.fireEvent("add",a,g,c)}return g},remove:function(a){this.generation++;return this.removeAt(this.indexOf(a))},removeAll:function(b){b=[].concat(b);var c,a=b.length;for(c=0;c=0){c.length--;d=c.items[a];Ext.Array.erase(c.items,a,1);b=c.keys[a];if(typeof b!="undefined"){delete c.map[b]}Ext.Array.erase(c.keys,a,1);if(c.hasListeners.remove){c.fireEvent("remove",d,b)}c.generation++;return d}return false},removeAtKey:function(a){return this.removeAt(this.indexOfKey(a))},getCount:function(){return this.length},indexOf:function(a){return Ext.Array.indexOf(this.items,a)},indexOfKey:function(a){return Ext.Array.indexOf(this.keys,a)},get:function(b){var d=this,a=d.map[b],c=a!==undefined?a:(typeof b=="number")?d.items[b]:undefined;return typeof c!="function"||d.allowFunctions?c:null},getAt:function(a){return this.items[a]},getByKey:function(a){return this.map[a]},contains:function(a){return typeof this.map[this.getKey(a)]!="undefined"},containsKey:function(a){return typeof this.map[a]!="undefined"},clear:function(){var a=this;a.length=0;a.items=[];a.keys=[];a.map={};a.generation++;if(a.hasListeners.clear){a.fireEvent("clear")}},first:function(){return this.items[0]},last:function(){return this.items[this.length-1]},sum:function(h,b,j,a){var c=this.extractValues(h,b),g=c.length,e=0,d;j=j||0;a=(a||a===0)?a:g-1;for(d=j;d<=a;d++){e+=c[d]}return e},collect:function(k,e,h){var l=this.extractValues(k,e),a=l.length,b={},c=[],j,g,d;for(d=0;d=a;d--){b[b.length]=c[d]}}return b},filter:function(d,c,g,a){var b=[],e;if(Ext.isString(d)){b.push(new Ext.util.Filter({property:d,value:c,anyMatch:g,caseSensitive:a}))}else{if(Ext.isArray(d)||d instanceof Ext.util.Filter){b=b.concat(d)}}e=function(h){var n=true,o=b.length,j,m,l,k;for(j=0;je?1:(g>1;h=d(e,b[c]);if(h>=0){i=c+1}else{if(h<0){a=c-1}}}return i},reorder:function(d){var h=this,b=h.items,c=0,g=b.length,a=[],e=[],i;h.suspendEvents();for(i in d){a[d[i]]=b[i]}for(c=0;ce?1:(g=0&&a[d].hidden;--d){}if((b=a[d])){e._setActiveChild(b,c);if(b.modal){return}}for(;d>=0;--d){b=a[d];if(b.isVisible()&&b.modal){e._showModalMask(b);return}}e._hideModalMask()},_showModalMask:function(a){var c=this,e=a.el.getStyle("zIndex")-4,b=a.floatParent?a.floatParent.getTargetEl():a.container,d=b.getBox();if(b.dom===document.body){d.height=Math.max(document.body.scrollHeight,Ext.dom.Element.getDocumentHeight());d.width=Math.max(document.body.scrollWidth,d.width)}if(!c.mask){c.mask=Ext.getBody().createChild({cls:Ext.baseCSSPrefix+"mask"});c.mask.setVisibilityMode(Ext.Element.DISPLAY);c.mask.on("click",c._onMaskClick,c)}c.mask.maskTarget=b;b.addCls(Ext.baseCSSPrefix+"body-masked");c.mask.setStyle("zIndex",e);c.mask.show();c.mask.setBox(d)},_hideModalMask:function(){var a=this.mask;if(a&&a.isVisible()){a.maskTarget.removeCls(Ext.baseCSSPrefix+"body-masked");a.maskTarget=undefined;a.hide()}},_onMaskClick:function(){if(this.front){this.front.focus()}},_onContainerResize:function(){var a=this.mask,b,c;if(a&&a.isVisible()){a.hide();b=a.maskTarget;if(b.dom===document.body){c={height:Math.max(document.body.scrollHeight,Ext.dom.Element.getDocumentHeight()),width:Math.max(document.body.scrollWidth,document.documentElement.clientWidth)}}else{c=b.getViewSize(true)}a.setSize(c);a.show()}},register:function(a){var b=this;if(a.zIndexManager){a.zIndexManager.unregister(a)}a.zIndexManager=b;b.list[a.id]=a;b.zIndexStack.push(a);a.on("hide",b.onComponentHide,b)},unregister:function(a){var b=this,c=b.list;delete a.zIndexManager;if(c&&c[a.id]){delete c[a.id];a.un("hide",b.onComponentHide);Ext.Array.remove(b.zIndexStack,a);b._activateLast()}},get:function(a){return a.isComponent?a:this.list[a]},bringToFront:function(b){var c=this,a=false,d=c.zIndexStack;b=c.get(b);if(b!==c.front){Ext.Array.remove(d,b);if(b.preventBringToFront){d.unshift(b)}else{d.push(b)}c.assignZIndices();a=true;this.front=b}if(a&&b.modal){c._showModalMask(b)}return a},sendToBack:function(a){var b=this;a=b.get(a);Ext.Array.remove(b.zIndexStack,a);b.zIndexStack.unshift(a);b.assignZIndices();this._activateLast();return a},hideAll:function(){var b=this.list,a,c;for(c in b){if(b.hasOwnProperty(c)){a=b[c];if(a.isComponent&&a.isVisible()){a.hide()}}}},hide:function(){var g=this,c=g.mask,e=0,b=g.zIndexStack,a=b.length,d;g.tempHidden=g.tempHidden||[];for(;e0;){b=a[c];if(b.isComponent&&e.call(d||b,b)===false){return}}},destroy:function(){var b=this,c=b.list,a,d;for(d in c){if(c.hasOwnProperty(d)){a=c[d];if(a.isComponent){a.destroy()}}}delete b.zIndexStack;delete b.list;delete b.container;delete b.targetEl}},function(){Ext.WindowManager=Ext.WindowMgr=new this()});Ext.define("Ext.container.AbstractContainer",{extend:"Ext.Component",requires:["Ext.util.MixedCollection","Ext.layout.container.Auto","Ext.ZIndexManager"],renderTpl:"{%this.renderContainer(out,values)%}",suspendLayout:false,autoDestroy:true,defaultType:"panel",detachOnRemove:true,isContainer:true,layoutCounter:0,baseCls:Ext.baseCSSPrefix+"container",bubbleEvents:["add","remove"],defaultLayoutType:"auto",initComponent:function(){var a=this;a.addEvents("afterlayout","beforeadd","beforeremove","add","remove");a.callParent();a.getLayout();a.initItems()},initItems:function(){var b=this,a=b.items;b.items=new Ext.util.AbstractMixedCollection(false,b.getComponentId);if(a){if(!Ext.isArray(a)){a=[a]}b.add(a)}},getFocusEl:function(){return this.getTargetEl()},finishRenderChildren:function(){this.callParent();var a=this.getLayout();if(a){a.finishRender()}},beforeRender:function(){var b=this,a=b.getLayout();b.callParent();if(!a.initialized){a.initLayout()}},setupRenderTpl:function(b){var a=this.getLayout();this.callParent(arguments);a.setupRenderTpl(b)},setLayout:function(b){var a=this.layout;if(a&&a.isLayout&&a!=b){a.setOwner(null)}this.layout=b;b.setOwner(this)},getLayout:function(){var a=this;if(!a.layout||!a.layout.isLayout){a.setLayout(Ext.layout.Layout.create(a.layout,a.self.prototype.layout||"autocontainer"))}return a.layout},doLayout:function(){this.updateLayout();return this},afterLayout:function(b){var a=this;++a.layoutCounter;if(a.hasListeners.afterlayout){a.fireEvent("afterlayout",a,b)}},prepareItems:function(b,d){if(Ext.isArray(b)){b=b.slice()}else{b=[b]}var g=this,c=0,a=b.length,e;for(;c "+a)[0]||null},nextChild:function(e,b){var c=this,a,d=c.items.indexOf(e);if(d!==-1){a=b?Ext.ComponentQuery(b,c.items.items.slice(d+1)):c.items.getAt(d+1);if(!a&&c.ownerCt){a=c.ownerCt.nextChild(c,b)}}return a},prevChild:function(e,b){var c=this,a,d=c.items.indexOf(e);if(d!==-1){a=b?Ext.ComponentQuery(b,c.items.items.slice(d+1)):c.items.getAt(d+1);if(!a&&c.ownerCt){a=c.ownerCt.nextChild(c,b)}}return a},down:function(a){return this.query(a)[0]||null},enable:function(){this.callParent(arguments);var d=this.getChildItemsToDisable(),c=d.length,b,a;for(a=0;a=d){h=0}else{if(h<0){h=d-1}}if(h===e){return[]}if((k=g[h]).isFocusable()){return[k]}}return[]},prevFocus:function(e,d){return this.nextFocus(e,d,-1)},root:function(e){var d=e.length,h=[],g=0,j;for(;ge.el.getZIndex()});return d.concat(b)},initDOM:function(c){var g=this,b=g.focusFrameCls,e=Ext.ComponentQuery.query("{getFocusEl()}:not([focusListenerAdded])"),d=0,a=e.length;if(!Ext.isReady){return Ext.onReady(g.initDOM,g)}for(;d:focusable",a)[0]:a;if(d){d.focus()}else{if(Ext.isFunction(a.onClick)){g.button=0;a.onClick(g);if(a.isVisible(true)){a.focus()}else{c.navigateOut()}}}}},navigateOut:function(c){var b=this,a;if(!b.focusedCmp||!(a=b.focusedCmp.up(":focusable"))){b.focusEl.focus()}else{a.focus()}return true},navigateSiblings:function(i,b,o){var j=this,a=b||j,p=i.getKey(),g=Ext.EventObject,k=i.shiftKey||p==g.LEFT||p==g.UP,c=p==g.LEFT||p==g.RIGHT||p==g.UP||p==g.DOWN,h=k?"prev":"next",n,d,m,l;m=(a.focusedCmp&&a.focusedCmp.comp)||a.focusedCmp;if(!m&&!o){return true}if(c&&j.isWhitelisted(m)){return true}if(!m||m.is(":root")){l=j.getRootComponents()}else{o=o||m.up();if(o){l=o.getRefItems()}}if(l){n=m?Ext.Array.indexOf(l,m):-1;d=Ext.ComponentQuery.query(":"+h+"Focus("+n+")",l)[0];if(d&&m!==d){d.focus();return d}}},onComponentBlur:function(b,c){var a=this;if(a.focusedCmp===b){a.previousFocusedCmp=b;delete a.focusedCmp}if(a.focusFrame){a.focusFrame.hide()}},onComponentFocus:function(d,g){var c=this,a=c.focusChain,b;if(!d.isFocusable()){c.clearComponent(d);if(a[d.id]){return}b=d.up();if(b){a[d.id]=true;b.focus()}return}c.focusChain={};c.focusTask.delay(10,null,null,[d,d.getFocusEl()])},handleComponentFocus:function(m,i){var k=this,p,a,d,h,o,b,l,e,g,c,n,j;if(k.fireEvent("beforecomponentfocus",k,m,k.previousFocusedCmp)===false){k.clearComponent(m);return}k.focusedCmp=m;if(k.shouldShowFocusFrame(m)){p="."+k.focusFrameCls+"-";a=k.focusFrame;h=i.getPageBox();o=h.top;b=h.left;l=h.width;e=h.height;g=a.child(p+"top");c=a.child(p+"bottom");n=a.child(p+"left");j=a.child(p+"right");g.setWidth(l).setLeftTop(b,o);c.setWidth(l).setLeftTop(b,o+e-2);n.setHeight(e-2).setLeftTop(b,o+2);j.setHeight(e-2).setLeftTop(b+l-2,o+2);a.show()}k.fireEvent("componentfocus",k,m,k.previousFocusedCmp)},onComponentHide:function(e){var d=this,b=false,a=d.focusedCmp,c;if(a){b=e.hasFocus||(e.isContainer&&e.isAncestor(d.focusedCmp))}d.clearComponent(e);if(b&&(c=e.up(":focusable"))){c.focus()}else{d.focusEl.focus()}},onComponentDestroy:function(){},removeDOM:function(){var a=this;if(a.enabled||a.subscribers.length){return}Ext.destroy(a.focusFrame);delete a.focusEl;delete a.focusFrame},removeXTypeFromWhitelist:function(b){var a=this;if(Ext.isArray(b)){Ext.Array.forEach(b,a.removeXTypeFromWhitelist,a);return}Ext.Array.remove(a.whitelist,b)},setupSubscriberKeys:function(a,g){var e=this,d=a.getFocusEl(),c=g.scope,b={backspace:e.focusLast,enter:e.navigateIn,esc:e.navigateOut,scope:e},h=function(i){if(e.focusedCmp===a){return e.navigateSiblings(i,e,a)}else{return e.navigateSiblings(i)}};Ext.iterate(g,function(j,i){b[j]=function(l){var k=h(l);if(Ext.isFunction(i)&&i.call(c||a,l,k)===true){return true}return k}},e);return new Ext.util.KeyNav(d,b)},shouldShowFocusFrame:function(c){var b=this,a=b.options||{},e=c.getFocusEl(),d=Ext.getDom(e).tagName;if(!b.focusFrame||!c){return false}if(a.focusFrame){return true}if(b.focusData[c.id].focusFrame){return true}return false}});Ext.define("Ext.Img",{extend:"Ext.Component",alias:["widget.image","widget.imagecomponent"],autoEl:"img",src:"",alt:"",imgCls:"",getElConfig:function(){var c=this,b=c.callParent(),a;if(c.autoEl=="img"){a=b}else{b.cn=[a={tag:"img",id:c.id+"-img"}]}if(c.imgCls){a.cls=(a.cls?a.cls+" ":"")+c.imgCls}a.src=c.src||Ext.BLANK_IMAGE_URL;if(c.alt){a.alt=c.alt}return b},onRender:function(){var b=this,a;b.callParent(arguments);a=b.el;b.imgEl=(b.autoEl=="img")?a:a.getById(b.id+"-img")},onDestroy:function(){Ext.destroy(this.imgEl);this.imgEl=null;this.callParent()},setSrc:function(c){var a=this,b=a.imgEl;a.src=c;if(b){b.dom.src=c||Ext.BLANK_IMAGE_URL}}});Ext.define("Ext.Layer",{extend:"Ext.Element",uses:["Ext.Shadow"],statics:{shims:[]},isLayer:true,constructor:function(b,a){b=b||{};var c=this,d=Ext.DomHelper,g=b.parentEl,e=g?Ext.getDom(g):document.body,h=b.hideMode;if(a){c.dom=Ext.getDom(a)}if(!c.dom){c.dom=d.append(e,b.dh||{tag:"div",cls:Ext.baseCSSPrefix+"layer"})}else{c.addCls(Ext.baseCSSPrefix+"layer");if(!c.dom.parentNode){e.appendChild(c.dom)}}if(b.id){c.id=c.dom.id=b.id}else{c.id=Ext.id(c.dom)}Ext.Element.addToCache(c);if(b.cls){c.addCls(b.cls)}c.constrain=b.constrain!==false;if(h){c.setVisibilityMode(Ext.Element[h.toUpperCase()]);if(c.visibilityMode==Ext.Element.ASCLASS){c.visibilityCls=b.visibilityCls}}else{if(b.useDisplay){c.setVisibilityMode(Ext.Element.DISPLAY)}else{c.setVisibilityMode(Ext.Element.VISIBILITY)}}if(b.shadow){c.shadowOffset=b.shadowOffset||4;c.shadow=new Ext.Shadow({offset:c.shadowOffset,mode:b.shadow});c.disableShadow()}else{c.shadowOffset=0}c.useShim=b.shim!==false&&Ext.useShims;if(b.hidden===true){c.hide()}else{c.show()}},getZIndex:function(){return parseInt((this.getShim()||this).getStyle("z-index"),10)},getShim:function(){var b=this,c,a;if(!b.useShim){return null}if(!b.shim){c=b.self.shims.shift();if(!c){c=b.createShim();c.enableDisplayMode("block");c.hide()}a=b.dom.parentNode;if(c.dom.parentNode!=a){a.insertBefore(c.dom,b.dom)}b.shim=c}return b.shim},hideShim:function(){var a=this;if(a.shim){a.shim.setDisplayed(false);a.self.shims.push(a.shim);delete a.shim}},disableShadow:function(){var a=this;if(a.shadow&&!a.shadowDisabled){a.shadowDisabled=true;a.shadow.hide();a.lastShadowOffset=a.shadowOffset;a.shadowOffset=0}},enableShadow:function(a){var b=this;if(b.shadow&&b.shadowDisabled){b.shadowDisabled=false;b.shadowOffset=b.lastShadowOffset;delete b.lastShadowOffset;if(a){b.sync(true)}}},sync:function(b){var j=this,n=j.shadow,i,e,a,d,c,o,m,g,k;if(!j.updating&&j.isVisible()&&(n||j.useShim)){d=j.getShim();c=j.getLocalX();o=j.getLocalY();m=j.dom.offsetWidth;g=j.dom.offsetHeight;if(n&&!j.shadowDisabled){if(b&&!n.isVisible()){n.show(j)}else{n.realign(c,o,m,g)}if(d){k=d.getStyle("z-index");if(k>j.zindex){j.shim.setStyle("z-index",j.zindex-2)}d.show();if(n.isVisible()){i=n.el.getXY();e=d.dom.style;a=n.el.getSize();if(Ext.supports.CSS3BoxShadow){a.height+=6;a.width+=4;i[0]-=2;i[1]-=4}e.left=(i[0])+"px";e.top=(i[1])+"px";e.width=(a.width)+"px";e.height=(a.height)+"px"}else{d.setSize(m,g);d.setLeftTop(c,o)}}}else{if(d){k=d.getStyle("z-index");if(k>j.zindex){j.shim.setStyle("z-index",j.zindex-2)}d.show();d.setSize(m,g);d.setLeftTop(c,o)}}}return j},remove:function(){this.hideUnders();this.callParent()},beginUpdate:function(){this.updating=true},endUpdate:function(){this.updating=false;this.sync(true)},hideUnders:function(){if(this.shadow){this.shadow.hide()}this.hideShim()},constrainXY:function(){if(this.constrain){var g=Ext.Element.getViewWidth(),b=Ext.Element.getViewHeight(),l=Ext.getDoc().getScroll(),k=this.getXY(),i=k[0],e=k[1],a=this.shadowOffset,j=this.dom.offsetWidth+a,c=this.dom.offsetHeight+a,d=false;if((i+j)>g+l.left){i=g-j-a;d=true}if((e+c)>b+l.top){e=b-c-a;d=true}if(i',floating:{shadow:"frame"},focusOnToFront:false,bringParentToFront:false,constructor:function(a,b){var c=this;if(!a.isComponent){a=Ext.get(a);this.isElement=true}c.ownerCt=a;if(!this.isElement){c.bindComponent(a)}c.callParent([b]);if(c.store){c.bindStore(c.store,true)}},bindComponent:function(a){var c=this,b={scope:this,resize:c.sizeMask,added:c.onComponentAdded,removed:c.onComponentRemoved},d=Ext.container.Container.hierarchyEventSource;if(a.floating){b.move=c.sizeMask;c.activeOwner=a}else{if(a.ownerCt){c.onComponentAdded(a.ownerCt)}else{c.preventBringToFront=true}}c.mon(a,b);c.mon(d,{show:c.onContainerShow,hide:c.onContainerHide,expand:c.onContainerExpand,collapse:c.onContainerCollapse,scope:c})},onComponentAdded:function(a){var b=this;delete b.activeOwner;b.floatParent=a;if(!a.floating){a=a.up("[floating]")}if(a){b.activeOwner=a;b.mon(a,"move",b.sizeMask,b)}a=b.floatParent.ownerCt;if(b.rendered&&b.isVisible()&&a){b.floatOwner=a;b.mon(a,"afterlayout",b.sizeMask,b,{single:true})}},onComponentRemoved:function(a){var c=this,d=c.activeOwner,b=c.floatOwner;if(d){c.mun(d,"move",c.sizeMask,c)}if(b){c.mun(b,"afterlayout",c.sizeMask,c)}delete c.activeOwner;delete c.floatOwner},afterRender:function(){this.callParent(arguments);this.container=this.floatParent.getContentTarget()},onContainerShow:function(a){if(this.isActiveContainer(a)){this.onComponentShow()}},onContainerHide:function(a){if(this.isActiveContainer(a)){this.onComponentHide()}},onContainerExpand:function(a){if(this.isActiveContainer(a)){this.onComponentShow()}},onContainerCollapse:function(a){if(this.isActiveContainer(a)){this.onComponentHide()}},isActiveContainer:function(a){return this.isDescendantOf(a)},onComponentHide:function(){var a=this;if(a.rendered&&a.isVisible()){a.hide();a.showNext=true}},onComponentShow:function(){if(this.showNext){this.show()}delete this.showNext},sizeMask:function(){var a=this,b;if(a.rendered&&a.isVisible()){a.center();b=a.getMaskTarget();a.getMaskEl().show().setSize(b.getSize()).alignTo(b,"tl-tl")}},bindStore:function(a,b){var c=this;c.mixins.bindable.bindStore.apply(c,arguments);a=c.store;if(a&&a.isLoading()){c.onBeforeLoad()}},getStoreListeners:function(){return{beforeload:this.onBeforeLoad,load:this.onLoad,exception:this.onLoad,cachemiss:this.onBeforeLoad,cachefilled:this.onLoad}},onDisable:function(){this.callParent(arguments);if(this.loading){this.onLoad()}},getOwner:function(){return this.ownerCt||this.floatParent},getMaskTarget:function(){var a=this.getOwner();return this.useTargetEl?a.getTargetEl():a.getEl()},onBeforeLoad:function(){var c=this,a=c.getOwner(),b;if(!c.disabled){c.loading=true;if(a.componentLayoutCounter){c.maybeShow()}else{b=a.afterComponentLayout;a.afterComponentLayout=function(){a.afterComponentLayout=b;b.apply(a,arguments);c.maybeShow()}}}},maybeShow:function(){var b=this,a=b.getOwner();if(!a.isVisible(true)){b.showNext=true}else{if(b.loading&&a.rendered){b.show()}}},getMaskEl:function(){var a=this;return a.maskEl||(a.maskEl=a.el.insertSibling({cls:a.maskCls,style:{zIndex:a.el.getStyle("zIndex")-2}},"before"))},onShow:function(){var b=this,a=b.msgEl;b.callParent(arguments);b.loading=true;if(b.useMsg){a.show().update(b.msg)}else{a.parent().hide()}},hide:function(){if(this.isElement){this.ownerCt.unmask();this.fireEvent("hide",this);return}delete this.showNext;return this.callParent(arguments)},onHide:function(){this.callParent();this.getMaskEl().hide()},show:function(){if(this.isElement){this.ownerCt.mask(this.useMsg?this.msg:"",this.msgCls);this.fireEvent("show",this);return}return this.callParent(arguments)},afterShow:function(){this.callParent(arguments);this.sizeMask()},setZIndex:function(b){var c=this,a=c.activeOwner;if(a){b=parseInt(a.el.getStyle("zIndex"),10)+1}c.getMaskEl().setStyle("zIndex",b-1);return c.mixins.floating.setZIndex.apply(c,arguments)},onLoad:function(){this.loading=false;this.hide()},onDestroy:function(){var a=this;if(a.isElement){a.ownerCt.unmask()}Ext.destroy(a.maskEl);a.callParent()}});Ext.define("Ext.data.association.Association",{alternateClassName:"Ext.data.Association",primaryKey:"id",defaultReaderType:"json",isAssociation:true,initialConfig:null,statics:{AUTO_ID:1000,create:function(a){if(Ext.isString(a)){a={type:a}}switch(a.type){case"belongsTo":return new Ext.data.association.BelongsTo(a);case"hasMany":return new Ext.data.association.HasMany(a);case"hasOne":return new Ext.data.association.HasOne(a);default:}return a}},constructor:function(a){Ext.apply(this,a);var d=this,b=Ext.ModelManager.types,c=a.ownerModel,g=a.associatedModel,e=b[c],h=b[g];d.initialConfig=a;d.ownerModel=e;d.associatedModel=h;Ext.applyIf(d,{ownerName:c,associatedName:g});d.associationId="association"+(++d.statics().AUTO_ID)},getReader:function(){var c=this,a=c.reader,b=c.associatedModel;if(a){if(Ext.isString(a)){a={type:a}}if(a.isReader){a.setModel(b)}else{Ext.applyIf(a,{model:b,type:c.defaultReaderType})}c.reader=Ext.createByAlias("reader."+a.type,a)}return c.reader||null}});Ext.define("Ext.ModelManager",{extend:"Ext.AbstractManager",alternateClassName:"Ext.ModelMgr",requires:["Ext.data.association.Association"],singleton:true,typeName:"mtype",associationStack:[],registerType:function(c,b){var d=b.prototype,a;if(d&&d.isModel){a=b}else{if(!b.extend){b.extend="Ext.data.Model"}a=Ext.define(c,b)}this.types[c]=a;return a},onModelDefined:function(c){var a=this.associationStack,g=a.length,e=[],b,d,h;for(d=0;d','
{text}
',"",'
','','
',"
{text}
","
","
","
"],componentLayout:"progressbar",initComponent:function(){this.callParent();this.addEvents("update")},initRenderData:function(){var a=this;return Ext.apply(a.callParent(),{internalText:!a.hasOwnProperty("textEl"),text:a.text||" ",percentage:a.value?a.value*100:0})},onRender:function(){var a=this;a.callParent(arguments);if(a.textEl){a.textEl=Ext.get(a.textEl);a.updateText(a.text)}else{a.textEl=a.el.select("."+a.baseCls+"-text")}},updateProgress:function(d,e,a){var c=this,b=c.value;c.value=d||0;if(e){c.updateText(e)}if(c.rendered&&!c.isDestroyed){if(a===true||(a!==false&&c.animate)){c.bar.stopAnimation();c.bar.animate(Ext.apply({from:{width:(b*100)+"%"},to:{width:(c.value*100)+"%"}},c.animate))}else{c.bar.setStyle("width",(c.value*100)+"%")}}c.fireEvent("update",c,c.value,e);return c},updateText:function(b){var a=this;a.text=b;if(a.rendered){a.textEl.update(a.text)}return a},applyText:function(a){this.updateText(a)},getText:function(){return this.text},wait:function(c){var b=this,a;if(!b.waitTimer){a=b;c=c||{};b.updateText(c.text);b.waitTimer=Ext.TaskManager.start({run:function(d){var e=c.increment||10;d-=1;b.updateProgress(((((d+e)%e)+1)*(100/e))*0.01,null,c.animate)},interval:c.interval||1000,duration:c.duration,onStop:function(){if(c.fn){c.fn.apply(c.scope||b)}b.reset()},scope:a})}return b},isWaiting:function(){return this.waitTimer!==null},reset:function(a){var b=this;b.updateProgress(0);b.clearTimer();if(a===true){b.hide()}return b},clearTimer:function(){var a=this;if(a.waitTimer){a.waitTimer.onStop=null;Ext.TaskManager.stop(a.waitTimer);a.waitTimer=null}},onDestroy:function(){var a=this;a.clearTimer();if(a.rendered){if(a.textEl.isComposite){a.textEl.clear()}Ext.destroyMembers(a,"textEl","progressBar")}a.callParent()}});Ext.define("Ext.ShadowPool",{singleton:true,requires:["Ext.DomHelper"],markup:(function(){return Ext.String.format('',Ext.baseCSSPrefix,Ext.isIE&&!Ext.supports.CSS3BoxShadow?"ie":"css")}()),shadows:[],pull:function(){var a=this.shadows.shift();if(!a){a=Ext.get(Ext.DomHelper.insertHtml("beforeBegin",document.body.firstChild,this.markup));a.autoBoxAdjust=false}return a},push:function(a){this.shadows.push(a)},reset:function(){var c=[].concat(this.shadows),b,a=c.length;for(b=0;b]+>/gi,asText:function(a){return String(a).replace(this.stripTagsRE,"")},asUCText:function(a){return String(a).toUpperCase().replace(this.stripTagsRE,"")},asUCString:function(a){return String(a).toUpperCase()},asDate:function(a){if(!a){return 0}if(Ext.isDate(a)){return a.getTime()}return Date.parse(String(a))},asFloat:function(a){var b=parseFloat(String(a).replace(/,/g,""));return isNaN(b)?0:b},asInt:function(a){var b=parseInt(String(a).replace(/,/g,""),10);return isNaN(b)?0:b}});Ext.define("Ext.data.Types",{singleton:true,requires:["Ext.data.SortTypes"]},function(){var a=Ext.data.SortTypes;Ext.apply(Ext.data.Types,{stripRe:/[\$,%]/g,AUTO:{sortType:a.none,type:"auto"},STRING:{convert:function(c){var b=this.useNull?null:"";return(c===undefined||c===null)?b:String(c)},sortType:a.asUCString,type:"string"},INT:{convert:function(b){return b!==undefined&&b!==null&&b!==""?parseInt(String(b).replace(Ext.data.Types.stripRe,""),10):(this.useNull?null:0)},sortType:a.none,type:"int"},FLOAT:{convert:function(b){return b!==undefined&&b!==null&&b!==""?parseFloat(String(b).replace(Ext.data.Types.stripRe,""),10):(this.useNull?null:0)},sortType:a.none,type:"float"},BOOL:{convert:function(b){if(this.useNull&&(b===undefined||b===null||b==="")){return null}return b===true||b==="true"||b==1},sortType:a.none,type:"bool"},DATE:{convert:function(c){var d=this.dateFormat,b;if(!c){return null}if(Ext.isDate(c)){return c}if(d){if(d=="timestamp"){return new Date(c*1000)}if(d=="time"){return new Date(parseInt(c,10))}return Ext.Date.parse(c,d)}b=Date.parse(c);return b?new Date(b):null},sortType:a.asDate,type:"date"}});Ext.apply(Ext.data.Types,{BOOLEAN:this.BOOL,INTEGER:this.INT,NUMBER:this.FLOAT})});Ext.define("Ext.data.Field",{requires:["Ext.data.Types","Ext.data.SortTypes"],alias:"data.field",isField:true,constructor:function(b){var d=this,c=Ext.data.Types,a;if(Ext.isString(b)){b={name:b}}Ext.apply(d,b);a=d.sortType;if(d.type){if(Ext.isString(d.type)){d.type=c[d.type.toUpperCase()]||c.AUTO}}else{d.type=c.AUTO}if(Ext.isString(a)){d.sortType=Ext.data.SortTypes[a]}else{if(Ext.isEmpty(a)){d.sortType=d.type.sortType}}if(!b.hasOwnProperty("convert")){d.convert=d.type.convert}else{if(!d.convert&&d.type.convert&&!b.hasOwnProperty("defaultValue")){d.defaultValue=d.type.convert(d.defaultValue)}}if(b.convert){d.hasCustomConvert=true}},dateFormat:null,useNull:false,defaultValue:"",mapping:null,sortType:null,sortDir:"ASC",allowBlank:true,persist:true});Ext.define("Ext.data.Errors",{extend:"Ext.util.MixedCollection",isValid:function(){return this.length===0},getByField:function(e){var d=[],a,c,b;for(b=0;b1){if(h.action=="update"||a[0].clientIdProperty){j=new Ext.util.MixedCollection();j.addAll(k);for(g=a.length;g--;){b=a[g];c=j.findBy(h.matchClientRec,b);b.copyFrom(c)}}else{for(d=0,e=a.length;da)){return false}else{return true}},email:function(b,a){return Ext.data.validations.emailRe.test(a)},format:function(a,b){return !!(a.matcher&&a.matcher.test(b))},inclusion:function(a,b){return a.list&&Ext.Array.indexOf(a.list,b)!=-1},exclusion:function(a,b){return a.list&&Ext.Array.indexOf(a.list,b)==-1}});Ext.define("Ext.data.Model",{alternateClassName:"Ext.data.Record",mixins:{observable:"Ext.util.Observable"},requires:["Ext.ModelManager","Ext.data.IdGenerator","Ext.data.Field","Ext.data.Errors","Ext.data.Operation","Ext.data.validations","Ext.util.MixedCollection"],compareConvertFields:function(a,d){var c=a.convert&&a.type&&a.convert!==a.type.convert,b=d.convert&&d.type&&d.convert!==d.type.convert;if(c&&!b){return 1}if(!c&&b){return -1}return 0},itemNameFn:function(a){return a.name},onClassExtended:function(b,c,a){var d=a.onBeforeCreated;a.onBeforeCreated=function(g,D){var C=this,E=Ext.getClassName(g),r=g.prototype,x=g.prototype.superclass,j=D.validations||[],t=D.fields||[],h,m=D.associations||[],e=function(G,I){var H=0,F,J;if(G){G=Ext.Array.from(G);for(F=G.length;H0;delete b.modifiedSave;delete b.dataSave;delete b.dirtySave;if(d&&a!==true){b.afterEdit(c)}}},getModifiedFieldNames:function(){var d=this,c=d.dataSave,e=d[d.persistenceProperty],a=[],b;for(b in e){if(e.hasOwnProperty(b)){if(!d.isEqual(e[b],c[b])){a.push(b)}}}return a},getChanges:function(){var a=this.modified,b={},c;for(c in a){if(a.hasOwnProperty(c)){b[c]=this.get(c)}}return b},isModified:function(a){return this.modified.hasOwnProperty(a)},setDirty:function(){var c=this,a=c.fields.items,g=a.length,e,b,d;c.dirty=true;for(d=0;d0){b=p.data.items;h=b.length;for(r=0;ra.maxSize){i=j.constrainedMax;d=a.maxSize}else{d=m}}}if(b){m=h.size;if(mh.maxSize){g=j.constrainedMax;k=h.maxSize}else{if(!e.collapsedVert&&!this.owner.manageHeight){c=false;e.bodyContext.setProp("margin-bottom",h.dockedPixelsEnd)}k=m}}}if(i||g){if(i&&g&&i.constrainedMax&&g.constrainedMin){e.invalidate({widthModel:i});return false}if(!e.widthModel.calculatedFromShrinkWrap&&!e.heightModel.calculatedFromShrinkWrap){e.invalidate({widthModel:i,heightModel:g});return false}}if(l){e.setWidth(d);if(i){e.widthModel=i}}if(b){e.setHeight(k,c);if(g){e.heightModel=g}}return true},finishPositions:function(d,a,h){var j=d.dockedItems,c=j.length,g=a.delta,e=h.delta,i,b;for(i=0;i/,constructor:function(){this.callParent(arguments);this.hackWidth=Ext.isIE&&(!Ext.isStrict||Ext.isIE6||Ext.isIE7||Ext.isIE8);this.heightIncludesPadding=Ext.isIE6&&Ext.isStrict},beginLayout:function(a){this.callParent(arguments);this.cacheTargetInfo(a)},beginLayoutCycle:function(e){var c=this,d="",a=c.owner,b=a.btnEl,i=a.btnInnerEl,g=a.text,h;c.callParent(arguments);i.setStyle("overflow",d);if(!e.widthModel.natural){a.el.setStyle("width",d)}h=e.heightModel.shrinkWrap&&g&&c.htmlRE.test(g);b.setStyle("width",d);b.setStyle("height",h?"auto":d);i.setStyle("width",d);i.setStyle("height",h?"auto":d);i.setStyle("line-height",h?"normal":d);i.setStyle("padding-top",d);a.btnIconEl.setStyle("width",d)},calculateOwnerHeightFromContentHeight:function(b,a){return a},calculateOwnerWidthFromContentWidth:function(b,a){return a},measureContentWidth:function(c){var i=this,b=i.owner,g=b.btnEl,d=b.btnInnerEl,l=b.text,m,j,h,a,k,e;if(b.text&&i.hackWidth&&g){m=i.btnFrameWidth;if(l.indexOf(">")===-1){l=l.replace(/=0){h.setProp("line-height",e-b+"px")}if(l&&j.htmlRE.test(l)){h.setProp("line-height","normal");d.setStyle("line-height","normal");k=Ext.util.TextMetrics.measure(d,l).height;n=Math.floor(Math.max(e-b-k,0)/2);h.setProp("padding-top",j.btnFrameTop+n);h.setHeight(e-(j.heightIncludesPadding?n:0))}},publishInnerWidth:function(g,c){var e=this,h=Ext.isNumber,a=g.getEl("btnEl"),b=g.getEl("btnInnerEl"),d=h(c)?c-e.adjWidth:c;a.setWidth(d);b.setWidth(d)},clearTargetCache:function(){delete this.adjWidth},cacheTargetInfo:function(b){var g=this,a=g.owner,d=a.scale,i,e,j,c,h;if(!("adjWidth" in g)||g.lastScale!==d){if(g.lastScale){a.btnInnerEl.setStyle("line-height","")}g.lastScale=d;i=b.getPaddingInfo();e=b.getFrameInfo();j=b.getEl("btnWrap").getPaddingInfo();c=b.getEl("btnInnerEl");h=c.getPaddingInfo();Ext.apply(g,{adjWidth:j.width+e.width+i.width,adjHeight:j.height+e.height+i.height,btnFrameWidth:h.width,btnFrameHeight:h.height,btnFrameTop:h.top,minTextHeight:parseInt(c.getStyle("line-height"),10)})}g.callParent(arguments)},finishedLayout:function(){var a=this.owner;this.callParent(arguments);if(Ext.isWebKit){a.el.dom.offsetWidth}}});Ext.define("Ext.menu.Manager",{singleton:true,requires:["Ext.util.MixedCollection","Ext.util.KeyMap"],alternateClassName:"Ext.menu.MenuMgr",uses:["Ext.menu.Menu"],menus:{},groups:{},attached:false,lastShow:new Date(),init:function(){var a=this;a.active=new Ext.util.MixedCollection();Ext.getDoc().addKeyListener(27,function(){if(a.active.length>0){a.hideAll()}},a)},hideAll:function(){var c=this.active,e,b,a,d;if(c&&c.length>0){e=c.clone();b=e.items;d=b.length;for(a=0;a50&&c.length>0&&!d.getTarget("."+Ext.baseCSSPrefix+"menu")){b.hideAll()}},register:function(b){var a=this;if(!a.active){a.init()}if(b.floating){a.menus[b.id]=b;b.on({beforehide:a.onBeforeHide,hide:a.onHide,beforeshow:a.onBeforeShow,show:a.onShow,scope:a})}},get:function(b){var a=this.menus;if(typeof b=="string"){if(!a){return null}return a[b]}else{if(b.isMenu){return b}else{if(Ext.isArray(b)){return new Ext.menu.Menu({items:b})}else{return Ext.ComponentManager.create(b,"menu")}}}},unregister:function(d){var a=this,b=a.menus,c=a.active;delete b[d.id];c.remove(d);d.un({beforehide:a.onBeforeHide,hide:a.onHide,beforeshow:a.onBeforeShow,show:a.onShow,scope:a})},registerCheckable:function(c){var a=this.groups,b=c.group;if(b){if(!a[b]){a[b]=[]}a[b].push(c)}},unregisterCheckable:function(c){var a=this.groups,b=c.group;if(b){Ext.Array.remove(a[b],c)}},onCheckChange:function(d,g){var a=this.groups,c=d.group,b=0,j,e,h;if(c&&g){j=a[c];e=j.length;for(;b class="{splitCls}">','',' tabIndex="{tabIndex}"',' disabled="disabled"',' role="link">','',"{text}","",' style="background-image:url({iconUrl})">',"","",'","","",'','',""],scale:"small",allowedScales:["small","medium","large"],iconAlign:"left",arrowAlign:"right",arrowCls:"arrow",maskOnDisable:false,persistentPadding:undefined,shrinkWrap:3,frame:true,initComponent:function(){var a=this;a.callParent(arguments);a.addEvents("click","toggle","mouseover","mouseout","menushow","menuhide","menutriggerover","menutriggerout");if(a.menu){a.split=true;a.menu=Ext.menu.Manager.get(a.menu);a.menu.ownerButton=a}if(a.url){a.href=a.url}if(a.href&&!a.hasOwnProperty("preventDefault")){a.preventDefault=false}if(Ext.isString(a.toggleGroup)&&a.toggleGroup!==""){a.enableToggle=true}if(a.html&&!a.text){a.text=a.html;delete a.html}},getActionEl:function(){return this.btnEl},getFocusEl:function(){return this.useElForFocus?this.el:this.btnEl},onFocus:function(b){var a=this;a.useElForFocus=true;a.callParent(arguments);a.useElForFocus=false},onBlur:function(a){this.useElForFocus=true;this.callParent(arguments);this.useElForFocus=false},onDisable:function(){this.useElForFocus=true;this.callParent(arguments);this.useElForFocus=false},setComponentCls:function(){var b=this,a=b.getComponentCls();if(!Ext.isEmpty(b.oldCls)){b.removeClsWithUI(b.oldCls);b.removeClsWithUI(b.pressedCls)}b.oldCls=a;b.addClsWithUI(a)},getComponentCls:function(){var b=this,a=[];if(b.iconCls||b.icon){if(b.text){a.push("icon-text-"+b.iconAlign)}else{a.push("icon")}}else{if(b.text){a.push("noicon")}}if(b.pressed){a.push(b.pressedCls)}return a},beforeRender:function(){var a=this;a.callParent();a.oldCls=a.getComponentCls();a.addClsWithUI(a.oldCls);Ext.applyIf(a.renderData,a.getTemplateArgs());if(a.scale){a.setScale(a.scale)}},onRender:function(){var c=this,d,a,b;c.doc=Ext.getDoc();c.callParent(arguments);if(c.split&&c.arrowTooltip){c.arrowEl.dom.setAttribute(c.getTipAttr(),c.arrowTooltip)}a=c.el;if(c.tooltip){c.setTooltip(c.tooltip,true)}if(c.handleMouseEvents){b={scope:c,mouseover:c.onMouseOver,mouseout:c.onMouseOut,mousedown:c.onMouseDown};if(c.split){b.mousemove=c.onMouseMove}}else{b={scope:c}}if(c.menu){c.mon(c.menu,{scope:c,show:c.onMenuShow,hide:c.onMenuHide});c.keyMap=new Ext.util.KeyMap({target:c.el,key:Ext.EventObject.DOWN,handler:c.onDownKey,scope:c})}if(c.repeat){c.mon(new Ext.util.ClickRepeater(a,Ext.isObject(c.repeat)?c.repeat:{}),"click",c.onRepeatClick,c)}else{if(b[c.clickEvent]){d=true}else{b[c.clickEvent]=c.onClick}}c.mon(a,b);if(d){c.mon(a,c.clickEvent,c.onClick,c)}Ext.ButtonToggleManager.register(c)},getTemplateArgs:function(){var c=this,b=c.getPersistentPadding(),a="";if(Math.max.apply(Math,b)>0){a="margin:"+Ext.Array.map(b,function(d){return -d+"px"}).join(" ")}return{href:c.getHref(),disabled:c.disabled,hrefTarget:c.hrefTarget,type:c.type,btnCls:c.getBtnCls(),splitCls:c.getSplitCls(),iconUrl:c.icon,iconCls:c.iconCls,text:c.text||" ",tabIndex:c.tabIndex,innerSpanStyle:a}},getHref:function(){var a=this,b=Ext.apply({},a.baseParams);b=Ext.apply(b,a.params);return a.href?Ext.urlAppend(a.href,Ext.Object.toQueryString(b)):false},setParams:function(a){this.params=a;this.btnEl.dom.href=this.getHref()},getSplitCls:function(){var a=this;return a.split?(a.baseCls+"-"+a.arrowCls)+" "+(a.baseCls+"-"+a.arrowCls+"-"+a.arrowAlign):""},getBtnCls:function(){return this.textAlign?this.baseCls+"-"+this.textAlign:""},setIconCls:function(b){var d=this,a=d.btnIconEl,c=d.iconCls;d.iconCls=b;if(a){a.removeCls(c);a.addCls(b||"");d.setComponentCls();if(d.didIconStateChange(c,b)){d.updateLayout()}}return d},setTooltip:function(c,a){var b=this;if(b.rendered){if(!a){b.clearTip()}if(Ext.isObject(c)){Ext.tip.QuickTipManager.register(Ext.apply({target:b.btnEl.id},c));b.tooltip=c}else{b.btnEl.dom.setAttribute(b.getTipAttr(),c)}}else{b.tooltip=c}return b},setTextAlign:function(c){var b=this,a=b.btnEl;if(a){a.removeCls(b.baseCls+"-"+b.textAlign);a.addCls(b.baseCls+"-"+c)}b.textAlign=c;return b},getTipAttr:function(){return this.tooltipType=="qtip"?"data-qtip":"title"},getRefItems:function(a){var c=this.menu,b;if(c){b=c.getRefItems(a);b.unshift(c)}return b||[]},clearTip:function(){if(Ext.isObject(this.tooltip)){Ext.tip.QuickTipManager.unregister(this.btnEl)}},beforeDestroy:function(){var a=this;if(a.rendered){a.clearTip()}if(a.menu&&a.destroyMenu!==false){Ext.destroy(a.menu)}Ext.destroy(a.btnInnerEl,a.repeater);a.callParent()},onDestroy:function(){var a=this;if(a.rendered){a.doc.un("mouseover",a.monitorMouseOver,a);a.doc.un("mouseup",a.onMouseUp,a);delete a.doc;Ext.ButtonToggleManager.unregister(a);Ext.destroy(a.keyMap);delete a.keyMap}a.callParent()},setHandler:function(b,a){this.handler=b;this.scope=a;return this},setText:function(b){var a=this;a.text=b;if(a.rendered){a.btnInnerEl.update(b||" ");a.setComponentCls();if(Ext.isStrict&&Ext.isIE8){a.el.repaint()}a.updateLayout()}return a},setIcon:function(b){var c=this,a=c.btnIconEl,d=c.icon;c.icon=b;if(a){a.setStyle("background-image",b?"url("+b+")":"");c.setComponentCls();if(c.didIconStateChange(d,b)){c.updateLayout()}}return c},didIconStateChange:function(a,c){var b=Ext.isEmpty(c);return Ext.isEmpty(a)?!b:b},getText:function(){return this.text},toggle:function(c,a){var b=this;c=c===undefined?!b.pressed:!!c;if(c!==b.pressed){if(b.rendered){b[c?"addClsWithUI":"removeClsWithUI"](b.pressedCls)}b.pressed=c;if(!a){b.fireEvent("toggle",b,c);Ext.callback(b.toggleHandler,b.scope||b,[b,c])}}return b},maybeShowMenu:function(){var a=this;if(a.menu&&!a.hasVisibleMenu()&&!a.ignoreNextClick){a.showMenu()}},showMenu:function(){var a=this;if(a.rendered&&a.menu){if(a.tooltip&&a.getTipAttr()!="title"){Ext.tip.QuickTipManager.getQuickTip().cancelShow(a.btnEl)}if(a.menu.isVisible()){a.menu.hide()}a.menu.showBy(a.el,a.menuAlign,((!Ext.isStrict&&Ext.isIE)||Ext.isIE6)?[-2,-2]:undefined)}return a},hideMenu:function(){if(this.hasVisibleMenu()){this.menu.hide()}return this},hasVisibleMenu:function(){var a=this.menu;return a&&a.rendered&&a.isVisible()},onRepeatClick:function(a,b){this.onClick(b)},onClick:function(b){var a=this;if(a.preventDefault||(a.disabled&&a.getHref())&&b){b.preventDefault()}if(b.button!==0){return}if(!a.disabled){a.doToggle();a.maybeShowMenu();a.fireHandler(b)}},fireHandler:function(c){var b=this,a=b.handler;if(b.fireEvent("click",b,c)!==false){if(a){a.call(b.scope||b,b,c)}b.blur()}},doToggle:function(){var a=this;if(a.enableToggle&&(a.allowDepress!==false||!a.pressed)){a.toggle()}},onMouseOver:function(b){var a=this;if(!a.disabled&&!b.within(a.el,true,true)){a.onMouseEnter(b)}},onMouseOut:function(b){var a=this;if(!b.within(a.el,true,true)){if(a.overMenuTrigger){a.onMenuTriggerOut(b)}a.onMouseLeave(b)}},onMouseMove:function(h){var d=this,c=d.el,g=d.overMenuTrigger,b,a;if(d.split){if(d.arrowAlign==="right"){b=h.getX()-c.getX();a=c.getWidth()}else{b=h.getY()-c.getY();a=c.getHeight()}if(b>(a-d.getTriggerSize())){if(!g){d.onMenuTriggerOver(h)}}else{if(g){d.onMenuTriggerOut(h)}}}},getTriggerSize:function(){var e=this,c=e.triggerSize,b,a,d;if(c===d){b=e.arrowAlign;a=b.charAt(0);c=e.triggerSize=e.el.getFrameWidth(a)+e.btnWrap.getFrameWidth(a)+e.frameSize[b]}return c},onMouseEnter:function(b){var a=this;a.addClsWithUI(a.overCls);a.fireEvent("mouseover",a,b)},onMouseLeave:function(b){var a=this;a.removeClsWithUI(a.overCls);a.fireEvent("mouseout",a,b)},onMenuTriggerOver:function(b){var a=this;a.overMenuTrigger=true;a.fireEvent("menutriggerover",a,a.menu,b)},onMenuTriggerOut:function(b){var a=this;delete a.overMenuTrigger;a.fireEvent("menutriggerout",a,a.menu,b)},enable:function(a){var b=this;b.callParent(arguments);if(b.btnEl){b.btnEl.dom.disabled=false}b.removeClsWithUI("disabled");return b},disable:function(a){var b=this;b.callParent(arguments);if(b.btnEl){b.btnEl.dom.disabled=true}b.addClsWithUI("disabled");b.removeClsWithUI(b.overCls);if(b.btnInnerEl&&(Ext.isIE6||Ext.isIE7)){b.btnInnerEl.repaint()}return b},setScale:function(c){var a=this,b=a.ui.replace("-"+a.scale,"");if(!Ext.Array.contains(a.allowedScales,c)){throw ("#setScale: scale must be an allowed scale ("+a.allowedScales.join(", ")+")")}a.scale=c;a.setUI(b)},setUI:function(b){var a=this;if(a.scale&&!b.match(a.scale)){b=b+"-"+a.scale}a.callParent([b])},onMouseDown:function(b){var a=this;if(!a.disabled&&b.button===0){a.addClsWithUI(a.pressedCls);a.doc.on("mouseup",a.onMouseUp,a)}},onMouseUp:function(b){var a=this;if(b.button===0){if(!a.pressed){a.removeClsWithUI(a.pressedCls)}a.doc.un("mouseup",a.onMouseUp,a)}},onMenuShow:function(b){var a=this;a.ignoreNextClick=0;a.addClsWithUI(a.menuActiveCls);a.fireEvent("menushow",a,a.menu)},onMenuHide:function(b){var a=this;a.removeClsWithUI(a.menuActiveCls);a.ignoreNextClick=Ext.defer(a.restoreClick,250,a);a.fireEvent("menuhide",a,a.menu)},restoreClick:function(){this.ignoreNextClick=0},onDownKey:function(){var a=this;if(!a.disabled){if(a.menu){a.showMenu()}}},getPersistentPadding:function(){var g=this,e=Ext.scopeResetCSS,h=g.persistentPadding,b,a,d,i,c;if(!h){h=g.self.prototype.persistentPadding=[0,0,0,0];if(!Ext.isIE){b=new Ext.button.Button({text:"test",style:"position:absolute;top:-999px;"});b.el=Ext.DomHelper.append(Ext.resetElement,b.getRenderTree(),true);b.applyChildEls(b.el);d=b.btnEl;i=b.btnInnerEl;d.setSize(null,null);a=i.getOffsetsTo(d);h[0]=a[1];h[1]=d.getWidth()-i.getWidth()-a[0];h[2]=d.getHeight()-i.getHeight()-a[1];h[3]=a[0];b.destroy();b.el.remove()}}return h}},function(){var a={},b=function(d,j){if(j){var h=a[d.toggleGroup],e=h.length,c;for(c=0;c(None)',constructor:function(b){var a=this;a.callParent(arguments);a.triggerButtonCls=a.triggerButtonCls||Ext.baseCSSPrefix+"box-menu-"+b.getNames().right;a.menuItems=[]},beginLayout:function(a){this.callParent(arguments);this.clearOverflow(a)},beginLayoutCycle:function(b,a){this.callParent(arguments);if(!a){this.clearOverflow(b);this.layout.cacheChildItems(b)}},onRemove:function(a){Ext.Array.remove(this.menuItems,a)},getSuffixConfig:function(){var c=this,b=c.layout,a=b.owner.id;c.menu=new Ext.menu.Menu({listeners:{scope:c,beforeshow:c.beforeMenuShow}});c.menuTrigger=new Ext.button.Button({id:a+"-menu-trigger",cls:Ext.layout.container.Box.prototype.innerCls+" "+c.triggerButtonCls,hidden:true,ownerCt:b.owner,ownerLayout:b,iconCls:Ext.baseCSSPrefix+c.getOwnerType(b.owner)+"-more-icon",ui:b.owner instanceof Ext.toolbar.Toolbar?"default-toolbar":"default",menu:c.menu,getSplitCls:function(){return""}});return c.menuTrigger.getRenderTree()},getOverflowCls:function(){return Ext.baseCSSPrefix+this.layout.direction+"-box-overflow-body"},handleOverflow:function(d){var c=this,b=c.layout,g=b.getNames(),e=d.state.boxPlan,a=[null,null];c.showTrigger(d);a[g.heightIndex]=(e.maxSize-c.menuTrigger[g.getHeight]())/2;c.menuTrigger.setPosition.apply(c.menuTrigger,a);return{reservedSpace:c.menuTrigger[g.getWidth]()}},captureChildElements:function(){var a=this.menuTrigger;if(a.rendering){a.finishRender()}},_asLayoutRoot:{isRoot:true},clearOverflow:function(h){var g=this,b=g.menuItems,e,c=0,d=b.length,a=g.layout.owner,j=g._asLayoutRoot;a.suspendLayouts();g.captureChildElements();g.hideTrigger();a.resumeLayouts();for(;cb){j=q.target;o.menuItems.push(j);j.hide()}}a.resumeLayouts()},hideTrigger:function(){var a=this.menuTrigger;if(a){a.hide()}},beforeMenuShow:function(j){var h=this,b=h.menuItems,d=0,a=b.length,g,e,c=function(k,i){return k.isXType("buttongroup")&&!(i instanceof Ext.toolbar.Separator)};j.suspendLayouts();h.clearMenu();j.removeAll();for(;d=this.getMaxScrollPosition()},scrollTo:function(a,b){var g=this,e=g.layout,h=e.getNames(),d=g.getScrollPosition(),c=Ext.Number.constrain(a,0,g.getMaxScrollPosition());if(c!=d&&!g.scrolling){delete g.scrollPosition;if(b===undefined){b=g.animateScroll}e.innerCt.scrollTo(h.left,c,b?g.getScrollAnim():false);if(b){g.scrolling=true}else{g.updateScrollButtons()}g.fireEvent("scroll",g,c,b?g.getScrollAnim():false)}},scrollToItem:function(h,b){var g=this,e=g.layout,i=e.getNames(),a,d,c;h=g.getItem(h);if(h!==undefined){a=g.getItemVisibility(h);if(!a.fullyVisible){d=h.getBox(true,true);c=d[i.x];if(a.hiddenEnd){c-=(g.layout.innerCt["get"+i.widthCap]()-d[i.width])}g.scrollTo(c,b)}}},getItemVisibility:function(j){var h=this,b=h.getItem(j).getBox(true,true),c=h.layout,g=c.getNames(),e=b[g.x],d=e+b[g.width],a=h.getScrollPosition(),i=a+c.innerCt["get"+g.widthCap]();return{hiddenStart:ei,fullyVisible:e>a&&d=a.x&&b.right<=a.right&&b.y>=a.y&&b.bottom<=a.bottom)},intersect:function(h){var g=this,d=Math.max(g.y,h.y),e=Math.min(g.right,h.right),a=Math.min(g.bottom,h.bottom),c=Math.max(g.x,h.x);if(a>d&&e>c){return new this.self(d,e,a,c)}else{return false}},union:function(h){var g=this,d=Math.min(g.y,h.y),e=Math.max(g.right,h.right),a=Math.max(g.bottom,h.bottom),c=Math.min(g.x,h.x);return new this.self(d,e,a,c)},constrainTo:function(b){var a=this,c=Ext.Number.constrain;a.top=a.y=c(a.top,b.y,b.bottom);a.bottom=c(a.bottom,b.y,b.bottom);a.left=a.x=c(a.left,b.x,b.right);a.right=c(a.right,b.x,b.right);return a},adjust:function(d,g,a,c){var e=this;e.top=e.y+=d;e.left=e.x+=c;e.right+=g;e.bottom+=a;return e},getOutOfBoundOffset:function(a,b){if(!Ext.isObject(a)){if(a=="x"){return this.getOutOfBoundOffsetX(b)}else{return this.getOutOfBoundOffsetY(b)}}else{b=a;var c=new Ext.util.Offset();c.x=this.getOutOfBoundOffsetX(b.x);c.y=this.getOutOfBoundOffsetY(b.y);return c}},getOutOfBoundOffsetX:function(a){if(a<=this.x){return this.x-a}else{if(a>=this.right){return this.right-a}}return 0},getOutOfBoundOffsetY:function(a){if(a<=this.y){return this.y-a}else{if(a>=this.bottom){return this.bottom-a}}return 0},isOutOfBound:function(a,b){if(!Ext.isObject(a)){if(a=="x"){return this.isOutOfBoundX(b)}else{return this.isOutOfBoundY(b)}}else{b=a;return(this.isOutOfBoundX(b.x)||this.isOutOfBoundY(b.y))}},isOutOfBoundX:function(a){return(athis.right)},isOutOfBoundY:function(a){return(athis.bottom)},restrict:function(b,d,a){if(Ext.isObject(b)){var c;a=d;d=b;if(d.copy){c=d.copy()}else{c={x:d.x,y:d.y}}c.x=this.restrictX(d.x,a);c.y=this.restrictY(d.y,a);return c}else{if(b=="x"){return this.restrictX(d,a)}else{return this.restrictY(d,a)}}},restrictX:function(b,a){if(!a){a=1}if(b<=this.x){b-=(b-this.x)*a}else{if(b>=this.right){b-=(b-this.right)*a}}return b},restrictY:function(b,a){if(!a){a=1}if(b<=this.y){b-=(b-this.y)*a}else{if(b>=this.bottom){b-=(b-this.bottom)*a}}return b},getSize:function(){return{width:this.right-this.x,height:this.bottom-this.y}},copy:function(){return new this.self(this.y,this.right,this.bottom,this.x)},copyFrom:function(b){var a=this;a.top=a.y=a[1]=b.y;a.right=b.right;a.bottom=b.bottom;a.left=a.x=a[0]=b.x;return this},toString:function(){return"Region["+this.top+","+this.right+","+this.bottom+","+this.left+"]"},translateBy:function(a,c){if(arguments.length==1){c=a.y;a=a.x}var b=this;b.top=b.y+=c;b.right+=a;b.bottom+=c;b.left=b.x+=a;return b},round:function(){var a=this;a.top=a.y=Math.round(a.y);a.right=Math.round(a.right);a.bottom=Math.round(a.bottom);a.left=a.x=Math.round(a.x);return a},equals:function(a){return(this.top==a.top&&this.right==a.right&&this.bottom==a.bottom&&this.left==a.left)}});Ext.define("Ext.dd.DragDropManager",{singleton:true,requires:["Ext.util.Region"],uses:["Ext.tip.QuickTipManager"],alternateClassName:["Ext.dd.DragDropMgr","Ext.dd.DDM"],ids:{},handleIds:{},dragCurrent:null,dragOvers:{},deltaX:0,deltaY:0,preventDefault:true,stopPropagation:true,initialized:false,locked:false,init:function(){this.initialized=true},POINT:0,INTERSECT:1,mode:0,notifyOccluded:false,_execOnAll:function(c,b){var d,a,e;for(d in this.ids){for(a in this.ids[d]){e=this.ids[d][a];if(!this.isTypeOfDD(e)){continue}e[c].apply(e,b)}}},_onLoad:function(){this.init();var a=Ext.EventManager;a.on(document,"mouseup",this.handleMouseUp,this,true);a.on(document,"mousemove",this.handleMouseMove,this,true);a.on(window,"unload",this._onUnload,this,true);a.on(window,"resize",this._onResize,this,true)},_onResize:function(a){this._execOnAll("resetConstraints",[])},lock:function(){this.locked=true},unlock:function(){this.locked=false},isLocked:function(){return this.locked},locationCache:{},useCache:true,clickPixelThresh:3,clickTimeThresh:350,dragThreshMet:false,clickTimeout:null,startX:0,startY:0,regDragDrop:function(b,a){if(!this.initialized){this.init()}if(!this.ids[a]){this.ids[a]={}}this.ids[a][b.id]=b},removeDDFromGroup:function(c,a){if(!this.ids[a]){this.ids[a]={}}var b=this.ids[a];if(b&&b[c.id]){delete b[c.id]}},_remove:function(b){for(var a in b.groups){if(a&&this.ids[a]&&this.ids[a][b.id]){delete this.ids[a][b.id]}}delete this.handleIds[b.id]},regHandle:function(b,a){if(!this.handleIds[b]){this.handleIds[b]={}}this.handleIds[b][a]=a},isDragDrop:function(a){return(this.getDDById(a))?true:false},getRelated:function(g,b){var e=[],d,c,a;for(d in g.groups){for(c in this.ids[d]){a=this.ids[d][c];if(!this.isTypeOfDD(a)){continue}if(!b||a.isTarget){e[e.length]=a}}}return e},isLegalTarget:function(e,d){var b=this.getRelated(e,true),c,a;for(c=0,a=b.length;cc.clickPixelThresh||a>c.clickPixelThresh){c.startDrag(c.startX,c.startY)}}if(c.dragThreshMet){c.dragCurrent.b4Drag(d);c.dragCurrent.onDrag(d);if(!c.dragCurrent.moveOnly){c.fireEvents(d,false)}}c.stopEvent(d);return true},fireEvents:function(n,q){var p=this,k=p.dragCurrent,r=n.getPoint(),b,t,d=[],a=[],g=[],l=[],j=[],c=[],o,h,m,s;if(!k||k.isLocked()){return}for(h in p.dragOvers){b=p.dragOvers[h];if(!p.isTypeOfDD(b)){continue}if(!this.isOverTarget(r,b,p.mode)){g.push(b)}a[h]=true;delete p.dragOvers[h]}for(s in k.groups){if("string"!=typeof s){continue}for(h in p.ids[s]){b=p.ids[s][h];if(p.isTypeOfDD(b)&&(t=b.getEl())&&(b.isTarget)&&(!b.isLocked())&&(Ext.fly(t).isVisible(true))&&((b!=k)||(k.ignoreSelf===false))){if((b.zIndex=p.getZIndex(t))!==-1){o=true}d.push(b)}}}if(o){Ext.Array.sort(d,p.byZIndex)}for(h=0,m=d.length;h','
',"{%this.renderBody(out, values)%}","
","","{%if (oh.getSuffixConfig!==Ext.emptyFn) {","if(oc=oh.getSuffixConfig())dh.generateMarkup(oc, out)","}%}",{disableFormats:true,definitions:"var dh=Ext.DomHelper;"}],constructor:function(a){var c=this,b;c.callParent(arguments);c.flexSortFn=Ext.Function.bind(c.flexSort,c);c.initOverflowHandler();b=typeof c.padding;if(b=="string"||b=="number"){c.padding=Ext.util.Format.parseBox(c.padding);c.padding.height=c.padding.top+c.padding.bottom;c.padding.width=c.padding.left+c.padding.right}},getNames:function(){return this.names},_percentageRe:/^\s*(\d+(?:\.\d*)?)\s*[%]\s*$/,getItemSizePolicy:function(m,n){var j=this,h=j.sizePolicy,g=j.align,e=m.flex,k=g,i=j.names,a=m[i.width],l=m[i.height],c=j._percentageRe,b=c.test(a),d=(g=="stretch");if((d||e||b)&&!n){n=j.owner.getSizeModel()}if(d){if(!c.test(l)&&n[i.height].shrinkWrap){k="stretchmax"}}else{if(g!="stretchmax"){if(c.test(l)){k="stretch"}else{k=""}}}if(e||b){if(!n[i.width].shrinkWrap){h=h.flex}}return h[k]},flexSort:function(d,c){var e=this.getNames().maxWidth,g=Infinity;d=d.target[e]||g;c=c.target[e]||g;if(!isFinite(d)&&!isFinite(c)){return 0}return d-c},isItemBoxParent:function(a){return true},isItemShrinkWrap:function(a){return true},minSizeSortFn:function(d,c){return c.available-d.available},roundFlex:function(a){return Math.ceil(a)},beginCollapse:function(b){var a=this;if(a.direction==="vertical"&&b.collapsedVertical()){b.collapseMemento.capture(["flex"]);delete b.flex}else{if(a.direction==="horizontal"&&b.collapsedHorizontal()){b.collapseMemento.capture(["flex"]);delete b.flex}}},beginExpand:function(a){a.collapseMemento.restore(["flex"])},beginLayout:function(c){var b=this,e=b.owner.stretchMaxPartner,a=b.innerCt.dom.style,d=b.getNames();c.boxNames=d;b.overflowHandler.beginLayout(c);if(typeof e==="string"){e=Ext.getCmp(e)||b.owner.query(e)[0]}c.stretchMaxPartner=e&&c.context.getCmp(e);b.callParent(arguments);c.innerCtContext=c.getEl("innerCt",b);b.scrollParallel=!!(b.owner.autoScroll||b.owner[d.overflowX]);b.scrollPerpendicular=!!(b.owner.autoScroll||b.owner[d.overflowY]);if(b.scrollParallel){b.scrollPos=b.owner.getTargetEl().dom[d.scrollLeft]}a.width="";a.height=""},beginLayoutCycle:function(e,a){var d=this,h=d.align,g=e.boxNames,b=d.pack,c=g.heightModel;d.overflowHandler.beginLayoutCycle(e,a);d.callParent(arguments);e.parallelSizeModel=e[g.widthModel];e.perpendicularSizeModel=e[c];e.boxOptions={align:h={stretch:h=="stretch",stretchmax:h=="stretchmax",center:h==g.center},pack:b={center:b=="center",end:b=="end"}};if(h.stretch&&e.perpendicularSizeModel.shrinkWrap){h.stretchmax=true;h.stretch=false}h.nostretch=!(h.stretch||h.stretchmax);if(e.parallelSizeModel.shrinkWrap){b.center=b.end=false}d.cacheFlexes(e);if(Ext.isWebKit){d.targetEl.setWidth(20000)}},cacheFlexes:function(k){var u=this,l=k.boxNames,a=l.widthModel,d=l.heightModel,c=k.boxOptions.align.nostretch,o=0,b=k.childItems,q=b.length,s=[],m=0,j=l.minWidth,g=u._percentageRe,r=0,t=0,e,n,p,h;while(q--){n=b[q];e=n.target;if(n[a].calculated){n.flex=p=e.flex;if(p){o+=p;s.push(n);m+=e[j]||0}else{h=g.exec(e[l.width]);n.percentageParallel=parseFloat(h[1])/100;++r}}if(c&&n[d].calculated){h=g.exec(e[l.height]);n.percentagePerpendicular=parseFloat(h[1])/100;++t}}k.flexedItems=s;k.flexedMinSize=m;k.totalFlex=o;k.percentageWidths=r;k.percentageHeights=t;Ext.Array.sort(s,u.flexSortFn)},calculate:function(d){var b=this,a=b.getContainerSize(d),g=d.boxNames,c=d.state,e=c.boxPlan||(c.boxPlan={});e.targetSize=a;if(!d.parallelSizeModel.shrinkWrap&&!a[g.gotWidth]){b.done=false;return}if(!c.parallelDone){c.parallelDone=b.calculateParallel(d,g,e)}if(!c.perpendicularDone){c.perpendicularDone=b.calculatePerpendicular(d,g,e)}if(c.parallelDone&&c.perpendicularDone){if(b.owner.dock&&(Ext.isIE6||Ext.isIE7||Ext.isIEQuirks)&&!b.owner.width&&!b.horizontal){e.isIEVerticalDock=true;e.calculatedWidth=e.maxSize+d.getPaddingInfo().width+d.getFrameInfo().width}b.publishInnerCtSize(d,b.reserveOffset?b.availableSpaceOffset:0);if(b.done&&d.childItems.length>1&&d.boxOptions.align.stretchmax&&!c.stretchMaxDone){b.calculateStretchMax(d,g,e);c.stretchMaxDone=true}}else{b.done=false}},calculateParallel:function(k,n,b){var F=this,z=n.width,a=k.childItems,d=n.left,r=n.right,q=n.setWidth,A=a.length,x=k.flexedItems,s=x.length,v=k.boxOptions.pack,m=F.padding,h=b.targetSize[z],B=0,e=m[d],E=e+m[r]+F.scrollOffset+(F.reserveOffset?F.availableSpaceOffset:0),w=Ext.getScrollbarSize()[n.width],u,l,g,y,o,t,D,p,C,c,j;if(w&&F.scrollPerpendicular&&k.parallelSizeModel.shrinkWrap&&!k.boxOptions.align.stretch&&!k.perpendicularSizeModel.shrinkWrap){if(!k.state.perpendicularDone){return false}C=true}for(u=0;ub.targetSize[n.height])){p+=w;k[n.hasOverflowY]=true;k.target.componentLayout[n.setWidthInDom]=true;k[n.invalidateScrollY]=(Ext.isStrict&&Ext.isIE8)}k[n.setContentWidth](p);return true},calculatePerpendicular:function(r,v,c){var G=this,a=r.perpendicularSizeModel.shrinkWrap,d=c.targetSize,b=r.childItems,E=b.length,J=Math.max,H=v.height,m=v.setHeight,p=v.top,F=v.y,u=G.padding,w=u[p],h=d[H]-w-u[v.bottom],B=r.boxOptions.align,o=B.stretch,z=B.stretchmax,n=B.center,A=0,g=0,l=Ext.getScrollbarSize().height,I,C,e,t,s,y,x,k,j,q,D;if(o||(n&&!a)){if(isNaN(h)){return false}}if(G.scrollParallel&&c.tooNarrow){if(a){q=true}else{h-=l;c.targetSize[H]-=l}}if(o){y=h}else{for(C=0;C0){I=w+Math.round(s/2)}}}x.setProp(F,I)}return true},calculateStretchMax:function(d,k,m){var l=this,h=k.height,n=k.width,g=d.childItems,b=g.length,o=m.maxSize,a=l.onBeforeInvalidateChild,q=l.onAfterInvalidateChild,p,j,e,c;for(e=0;e":{xtype:"tbfill",height:0}},1:{"->":{xtype:"tbfill",width:0}}}},initComponent:function(){var b=this,a;if(!b.layout&&b.enableOverflow){b.layout={overflowHandler:"Menu"}}if(b.dock==="right"||b.dock==="left"){b.vertical=true}b.layout=Ext.applyIf(Ext.isString(b.layout)?{type:b.layout}:b.layout||{},{type:b.vertical?"vbox":"hbox",align:b.vertical?"stretchmax":"middle"});if(b.vertical){b.addClsWithUI("vertical")}if(b.ui==="footer"){b.ignoreBorderManagement=true}b.callParent();b.addEvents("overflowchange")},getRefItems:function(a){var e=this,b=e.callParent(arguments),d=e.layout,c;if(a&&e.enableOverflow){c=d.overflowHandler;if(c&&c.menu){b=b.concat(c.menu.getRefItems(a))}}return b},lookupComponent:function(d){if(typeof d=="string"){var b=Ext.toolbar.Toolbar,a=b.shortcutsHV[this.vertical?1:0][d]||b.shortcuts[d];if(typeof a=="string"){d={xtype:a}}else{if(a){d=Ext.apply({},a)}else{d={xtype:"tbtext",text:d}}}this.applyDefaults(d)}return this.callParent(arguments)},applyDefaults:function(a){if(!Ext.isString(a)){a=this.callParent(arguments)}return a},trackMenu:function(c,a){if(this.trackMenus&&c.menu){var d=a?"mun":"mon",b=this;b[d](c,"mouseover",b.onButtonOver,b);b[d](c,"menushow",b.onButtonMenuShow,b);b[d](c,"menuhide",b.onButtonMenuHide,b)}},constructButton:function(a){return a.events?a:Ext.widget(a.split?"splitbutton":this.defaultType,a)},onBeforeAdd:function(a){if(a.is("field")||(a.is("button")&&this.ui!="footer")){a.ui=a.ui+"-toolbar"}if(a instanceof Ext.toolbar.Separator){a.setUI((this.vertical)?"vertical":"horizontal")}this.callParent(arguments)},onAdd:function(a){this.callParent(arguments);this.trackMenu(a)},onRemove:function(a){this.callParent(arguments);this.trackMenu(a,true)},getChildItemsToDisable:function(){return this.items.getRange()},onButtonOver:function(a){if(this.activeMenuBtn&&this.activeMenuBtn!=a){this.activeMenuBtn.hideMenu();a.showMenu();this.activeMenuBtn=a}},onButtonMenuShow:function(a){this.activeMenuBtn=a},onButtonMenuHide:function(a){delete this.activeMenuBtn}});Ext.define("Ext.container.DockingContainer",{requires:["Ext.util.MixedCollection","Ext.Element"],isDockingContainer:true,defaultDockWeights:{top:{render:1,visual:1},left:{render:3,visual:5},right:{render:5,visual:7},bottom:{render:7,visual:3}},dockOrder:{top:-1,left:-1,right:1,bottom:1},addDocked:function(a,g){var e=this,b=0,d,c;a=e.prepareItems(a);c=a.length;for(;b":"",'
{bodyCls}',' {baseCls}-body-{ui}',' {parent.baseCls}-body-{parent.ui}-{.}','" style="{bodyStyle}">',"{%this.renderContainer(out,values);%}","
","{% this.renderDockedItems(out,values,1); %}"],bodyPosProps:{x:"x",y:"y"},border:true,emptyArray:[],initComponent:function(){var a=this;if(a.frame&&a.border&&a.bodyBorder===undefined){a.bodyBorder=false}if(a.frame&&a.border&&(a.bodyBorder===false||a.bodyBorder===0)){a.manageBodyBorders=true}a.callParent()},beforeDestroy:function(){this.destroyDockedItems();this.callParent()},initItems:function(){this.callParent();this.initDockingItems()},initRenderData:function(){var a=this,b=a.callParent();a.initBodyStyles();a.protoBody.writeTo(b);delete a.protoBody;return b},getComponent:function(a){var b=this.callParent(arguments);if(b===undefined&&!Ext.isNumber(a)){b=this.getDockedComponent(a)}return b},getProtoBody:function(){var b=this,a=b.protoBody;if(!a){b.protoBody=a=new Ext.util.ProtoElement({cls:b.bodyCls,style:b.bodyStyle,clsProp:"bodyCls",styleProp:"bodyStyle",styleIsText:true})}return a},initBodyStyles:function(){var c=this,a=c.getProtoBody(),b=Ext.Element;if(c.bodyPadding!==undefined){a.setStyle("padding",b.unitizeBox((c.bodyPadding===true)?5:c.bodyPadding))}if(c.frame&&c.bodyBorder){if(!Ext.isNumber(c.bodyBorder)){c.bodyBorder=1}a.setStyle("border-width",b.unitizeBox(c.bodyBorder))}},getCollapsedDockedItems:function(){var a=this;return a.collapseMode=="placeholder"?a.emptyArray:[a.getReExpander()]},setBodyStyle:function(b,d){var c=this,a=c.rendered?c.body:c.getProtoBody();if(Ext.isFunction(b)){b=b()}if(arguments.length==1){if(Ext.isString(b)){b=Ext.Element.parseStyles(b)}a.setStyle(b)}else{a.setStyle(b,d)}return c},addBodyCls:function(b){var c=this,a=c.rendered?c.body:c.getProtoBody();a.addCls(b);return c},removeBodyCls:function(b){var c=this,a=c.rendered?c.body:c.getProtoBody();a.removeCls(b);return c},addUIClsToElement:function(b){var c=this,a=c.callParent(arguments);c.addBodyCls([Ext.baseCSSPrefix+b,c.baseCls+"-body-"+b,c.baseCls+"-body-"+c.ui+"-"+b]);return a},removeUIClsFromElement:function(b){var c=this,a=c.callParent(arguments);c.removeBodyCls([Ext.baseCSSPrefix+b,c.baseCls+"-body-"+b,c.baseCls+"-body-"+c.ui+"-"+b]);return a},addUIToElement:function(){var a=this;a.callParent(arguments);a.addBodyCls(a.baseCls+"-body-"+a.ui)},removeUIFromElement:function(){var a=this;a.callParent(arguments);a.removeBodyCls(a.baseCls+"-body-"+a.ui)},getTargetEl:function(){return this.body},getRefItems:function(a){var b=this.callParent(arguments);return this.getDockingRefItems(a,b)},setupRenderTpl:function(a){this.callParent(arguments);this.setupDockingRenderTpl(a)}});Ext.define("Ext.layout.component.Body",{alias:["layout.body"],extend:"Ext.layout.component.Auto",type:"body",beginLayout:function(a){this.callParent(arguments);a.bodyContext=a.getEl("body")},calculateOwnerHeightFromContentHeight:function(c,b){var a=this.callParent(arguments);if(c.targetContext!=c){a+=c.getPaddingInfo().height}return a},calculateOwnerWidthFromContentWidth:function(c,a){var b=this.callParent(arguments);if(c.targetContext!=c){b+=c.getPaddingInfo().width}return b},measureContentWidth:function(a){return a.bodyContext.setWidth(a.bodyContext.el.dom.offsetWidth,false)},measureContentHeight:function(a){return a.bodyContext.setHeight(a.bodyContext.el.dom.offsetHeight,false)},publishInnerHeight:function(c,a){var d=a-c.getFrameInfo().height,b=c.targetContext;if(b!=c){d-=c.getPaddingInfo().height}return c.bodyContext.setHeight(d,!c.heightModel.natural)},publishInnerWidth:function(d,c){var a=c-d.getFrameInfo().width,b=d.targetContext;if(b!=d){a-=d.getPaddingInfo().width}d.bodyContext.setWidth(a,!d.widthModel.natural)}});Ext.define("Ext.panel.Header",{extend:"Ext.container.Container",uses:["Ext.panel.Tool","Ext.draw.Component","Ext.util.CSS","Ext.layout.component.Body","Ext.Img"],alias:"widget.header",isHeader:true,defaultType:"tool",indicateDrag:false,weight:-1,componentLayout:"body",titleAlign:"left",childEls:["body"],renderTpl:['
{parent.baseCls}-body-{parent.ui}-{.}"',' style="{bodyStyle}">',"{%this.renderContainer(out,values)%}","
"],headingTpl:'{title}',shrinkWrap:3,initComponent:function(){var b=this,e,d,a,c,g;b.addEvents("click","dblclick");b.indicateDragCls=b.baseCls+"-draggable";b.title=b.title||" ";b.tools=b.tools||[];b.items=b.items||[];b.orientation=b.orientation||"horizontal";b.dock=(b.dock)?b.dock:(b.orientation=="horizontal")?"top":"left";b.addClsWithUI([b.orientation,b.dock]);if(b.indicateDrag){b.addCls(b.indicateDragCls)}if(!Ext.isEmpty(b.iconCls)||!Ext.isEmpty(b.icon)){b.initIconCmp();b.items.push(b.iconCmp)}if(b.orientation=="vertical"){b.layout={type:"vbox",align:"center"};b.textConfig={width:16,cls:b.baseCls+"-text",type:"text",text:b.title,rotate:{degrees:90}};c=b.ui;if(Ext.isArray(c)){c=c[0]}e="."+b.baseCls+"-text-"+c;if(Ext.scopeResetCSS){e="."+Ext.baseCSSPrefix+"reset "+e}d=Ext.util.CSS.getRule(e);if(d){a=d.style}else{a=(g=Ext.resetElement.createChild({style:"position:absolute",cls:b.baseCls+"-text-"+c})).getStyles("fontFamily","fontWeight","fontSize","color");g.remove()}if(a){Ext.apply(b.textConfig,{"font-family":a.fontFamily,"font-weight":a.fontWeight,"font-size":a.fontSize,fill:a.color})}b.titleCmp=new Ext.draw.Component({width:16,ariaRole:"heading",focusable:false,viewBox:false,flex:1,id:b.id+"_hd",autoSize:true,items:b.textConfig,xhooks:{setSize:function(h){this.callParent([h])}},childEls:[{name:"textEl",select:"."+b.baseCls+"-text"}]})}else{b.layout={type:"hbox",align:"middle"};b.titleCmp=new Ext.Component({ariaRole:"heading",focusable:false,noWrap:true,flex:1,id:b.id+"_hd",style:"text-align:"+b.titleAlign,cls:b.baseCls+"-text-container",renderTpl:b.getTpl("headingTpl"),renderData:{title:b.title,cls:b.baseCls,ui:b.ui},childEls:["textEl"]})}b.items.push(b.titleCmp);b.items=b.items.concat(b.tools);b.callParent();b.on({dblclick:b.onDblClick,click:b.onClick,element:"el",scope:b})},initIconCmp:function(){var b=this,a={focusable:false,src:Ext.BLANK_IMAGE_URL,cls:[b.baseCls+"-icon",b.iconCls],id:b.id+"-iconEl",iconCls:b.iconCls};if(!Ext.isEmpty(b.icon)){delete a.iconCls;a.src=b.icon}b.iconCmp=new Ext.Img(a)},afterRender:function(){this.el.unselectable();this.callParent()},addUIClsToElement:function(b){var e=this,a=e.callParent(arguments),d=[e.baseCls+"-body-"+b,e.baseCls+"-body-"+e.ui+"-"+b],g,c;if(e.bodyCls){g=e.bodyCls.split(" ");for(c=0;c=e.duration),g,i;g=this.collectTargetData(e,a,h,c);if(h){e.target.setAttr(g.anims[e.id].attributes,true);d.collectTargetData(e,e.duration,h,c);e.paused=true;g=e.target.target;if(e.target.isComposite){g=e.target.target.last()}i={};i[Ext.supports.CSS3TransitionEnd]=e.lastFrame;i.scope=e;i.single=true;g.on(i)}},collectTargetData:function(c,a,e,g){var b=c.target.getId(),d=this.targetArr[b];if(!d){d=this.targetArr[b]={id:b,el:c.target,anims:{}}}d.anims[c.id]={id:c.id,anim:c,elapsed:a,isLastFrame:g,attributes:[{duration:c.duration,easing:(e&&c.reverse)?c.easingFn.reverse().toCSS3():c.easing,attrs:c.runAnim(a)}]};return d},applyPendingAttrs:function(){var e=this.targetArr,g,c,b,d,a;for(c in e){if(e.hasOwnProperty(c)){g=e[c];for(a in g.anims){if(g.anims.hasOwnProperty(a)){b=g.anims[a];d=b.anim;if(b.attributes&&d.isRunning()){g.el.setAttr(b.attributes,false,b.isLastFrame);if(b.isLastFrame){d.lastFrame()}}}}}}}});Ext.define("Ext.fx.Animator",{mixins:{observable:"Ext.util.Observable"},requires:["Ext.fx.Manager"],isAnimator:true,duration:250,delay:0,delayStart:0,dynamic:false,easing:"ease",running:false,paused:false,damper:1,iterations:1,currentIteration:0,keyframeStep:0,animKeyFramesRE:/^(from|to|\d+%?)$/,constructor:function(a){var b=this;a=Ext.apply(b,a||{});b.config=a;b.id=Ext.id(null,"ext-animator-");b.addEvents("beforeanimate","keyframe","afteranimate");b.mixins.observable.constructor.call(b,a);b.timeline=[];b.createTimeline(b.keyframes);if(b.target){b.applyAnimator(b.target);Ext.fx.Manager.addAnim(b)}},sorter:function(d,c){return d.pct-c.pct},createTimeline:function(g){var k=this,n=[],l=k.to||{},c=k.duration,o,a,e,j,m,b,d,h;for(m in g){if(g.hasOwnProperty(m)&&k.animKeyFramesRE.test(m)){h={attrs:Ext.apply(g[m],l)};if(m=="from"){m=0}else{if(m=="to"){m=100}}h.pct=parseInt(m,10);n.push(h)}}Ext.Array.sort(n,k.sorter);j=n.length;for(e=0;e0},isRunning:function(){return false}});Ext.define("Ext.fx.CubicBezier",{singleton:true,cubicBezierAtTime:function(o,d,b,n,m,i){var j=3*d,l=3*(n-d)-j,a=1-j-l,h=3*b,k=3*(m-b)-h,p=1-h-k;function g(q){return((a*q+l)*q+j)*q}function c(q,s){var r=e(q,s);return((p*r+k)*r+h)*r}function e(q,y){var w,v,t,r,u,s;for(t=q,s=0;s<8;s++){r=g(t)-q;if(Math.abs(r)v){return v}while(wr){w=t}else{v=t}t=(v-w)/2+w}return t}return c(o,1/(200*i))},cubicBezier:function(b,e,a,c){var d=function(g){return Ext.fx.CubicBezier.cubicBezierAtTime(g,b,e,a,c,1)};d.toCSS3=function(){return"cubic-bezier("+[b,e,a,c].join(",")+")"};d.reverse=function(){return Ext.fx.CubicBezier.cubicBezier(1-a,1-c,1-b,1-e)};return d}});Ext.ns("Ext.fx");Ext.require("Ext.fx.CubicBezier",function(){var e=Math,h=e.PI,d=e.pow,b=e.sin,g=e.sqrt,a=e.abs,c=1.70158;Ext.fx.Easing={};Ext.apply(Ext.fx.Easing,{linear:function(i){return i},ease:function(l){var i=0.07813-l/2,m=-0.25,o=g(0.0066+i*i),r=o-i,k=d(a(r),1/3)*(r<0?-1:1),p=-o-i,j=d(a(p),1/3)*(p<0?-1:1),s=k+j+0.25;return d(1-s,2)*3*s*0.1+(1-s)*3*s*s+s*s*s},easeIn:function(i){return d(i,1.7)},easeOut:function(i){return d(i,0.48)},easeInOut:function(r){var l=0.48-r/1.04,k=g(0.1734+l*l),i=k-l,p=d(a(i),1/3)*(i<0?-1:1),o=-k-l,m=d(a(o),1/3)*(o<0?-1:1),j=p+m+0.5;return(1-j)*3*j*j+j*j*j},backIn:function(i){return i*i*((c+1)*i-c)},backOut:function(i){i=i-1;return i*i*((c+1)*i+c)+1},elasticIn:function(k){if(k===0||k===1){return k}var j=0.3,i=j/4;return d(2,-10*k)*b((k-i)*(2*h)/j)+1},elasticOut:function(i){return 1-Ext.fx.Easing.elasticIn(1-i)},bounceIn:function(i){return 1-Ext.fx.Easing.bounceOut(1-i)},bounceOut:function(m){var j=7.5625,k=2.75,i;if(m<(1/k)){i=j*m*m}else{if(m<(2/k)){m-=(1.5/k);i=j*m*m+0.75}else{if(m<(2.5/k)){m-=(2.25/k);i=j*m*m+0.9375}else{m-=(2.625/k);i=j*m*m+0.984375}}}return i}});Ext.apply(Ext.fx.Easing,{"back-in":Ext.fx.Easing.backIn,"back-out":Ext.fx.Easing.backOut,"ease-in":Ext.fx.Easing.easeIn,"ease-out":Ext.fx.Easing.easeOut,"elastic-in":Ext.fx.Easing.elasticIn,"elastic-out":Ext.fx.Easing.elasticIn,"bounce-in":Ext.fx.Easing.bounceIn,"bounce-out":Ext.fx.Easing.bounceOut,"ease-in-out":Ext.fx.Easing.easeInOut})});Ext.define("Ext.draw.Color",{colorToHexRe:/(.*?)rgb\((\d+),\s*(\d+),\s*(\d+)\)/,rgbRe:/\s*rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)\s*/,hexRe:/\s*#([0-9a-fA-F][0-9a-fA-F]?)([0-9a-fA-F][0-9a-fA-F]?)([0-9a-fA-F][0-9a-fA-F]?)\s*/,lightnessFactor:0.2,constructor:function(d,c,a){var b=this,e=Ext.Number.constrain;b.r=e(d,0,255);b.g=e(c,0,255);b.b=e(a,0,255)},getRed:function(){return this.r},getGreen:function(){return this.g},getBlue:function(){return this.b},getRGB:function(){var a=this;return[a.r,a.g,a.b]},getHSL:function(){var j=this,a=j.r/255,i=j.g/255,k=j.b/255,m=Math.max(a,i,k),d=Math.min(a,i,k),n=m-d,e,o=0,c=0.5*(m+d);if(d!=m){o=(c<0.5)?n/(m+d):n/(2-m-d);if(a==m){e=60*(i-k)/n}else{if(i==m){e=120+60*(k-a)/n}else{e=240+60*(a-i)/n}}if(e<0){e+=360}if(e>=360){e-=360}}return[e,o,c]},getLighter:function(b){var a=this.getHSL();b=b||this.lightnessFactor;a[2]=Ext.Number.constrain(a[2]+b,0,1);return this.fromHSL(a[0],a[1],a[2])},getDarker:function(a){a=a||this.lightnessFactor;return this.getLighter(-a)},toString:function(){var h=this,c=Math.round,e=c(h.r).toString(16),d=c(h.g).toString(16),a=c(h.b).toString(16);e=(e.length==1)?"0"+e:e;d=(d.length==1)?"0"+d:d;a=(a.length==1)?"0"+a:a;return["#",e,d,a].join("")},toHex:function(b){if(Ext.isArray(b)){b=b[0]}if(!Ext.isString(b)){return""}if(b.substr(0,1)==="#"){return b}var e=this.colorToHexRe.exec(b),g,d,a,c;if(Ext.isArray(e)){g=parseInt(e[2],10);d=parseInt(e[3],10);a=parseInt(e[4],10);c=a|(d<<8)|(g<<16);return e[1]+"#"+("000000"+c.toString(16)).slice(-6)}else{return b}},fromString:function(i){var c,e,d,a,h=parseInt;if((i.length==4||i.length==7)&&i.substr(0,1)==="#"){c=i.match(this.hexRe);if(c){e=h(c[1],16)>>0;d=h(c[2],16)>>0;a=h(c[3],16)>>0;if(i.length==4){e+=(e*16);d+=(d*16);a+=(a*16)}}}else{c=i.match(this.rgbRe);if(c){e=c[1];d=c[2];a=c[3]}}return(typeof e=="undefined")?undefined:new Ext.draw.Color(e,d,a)},getGrayscale:function(){return this.r*0.3+this.g*0.59+this.b*0.11},fromHSL:function(g,o,d){var a,b,c,e,k=[],n=Math.abs,j=Math.floor;if(o==0||g==null){k=[d,d,d]}else{g/=60;a=o*(1-n(2*d-1));b=a*(1-n(g-2*j(g/2)-1));c=d-a/2;switch(j(g)){case 0:k=[a,b,0];break;case 1:k=[b,a,0];break;case 2:k=[0,a,b];break;case 3:k=[0,b,a];break;case 4:k=[b,0,a];break;case 5:k=[a,0,b];break}k=[k[0]+c,k[1]+c,k[2]+c]}return new Ext.draw.Color(k[0]*255,k[1]*255,k[2]*255)}},function(){var a=this.prototype;this.addStatics({fromHSL:function(){return a.fromHSL.apply(a,arguments)},fromString:function(){return a.fromString.apply(a,arguments)},toHex:function(){return a.toHex.apply(a,arguments)}})});Ext.define("Ext.draw.Draw",{singleton:true,requires:["Ext.draw.Color"],pathToStringRE:/,?([achlmqrstvxz]),?/gi,pathCommandRE:/([achlmqstvz])[\s,]*((-?\d*\.?\d*(?:e[-+]?\d+)?\s*,?\s*)+)/ig,pathValuesRE:/(-?\d*\.?\d*(?:e[-+]?\d+)?)\s*,?\s*/ig,stopsRE:/^(\d+%?)$/,radian:Math.PI/180,availableAnimAttrs:{along:"along",blur:null,"clip-rect":"csv",cx:null,cy:null,fill:"color","fill-opacity":null,"font-size":null,height:null,opacity:null,path:"path",r:null,rotation:"csv",rx:null,ry:null,scale:"csv",stroke:"color","stroke-opacity":null,"stroke-width":null,translation:"csv",width:null,x:null,y:null},is:function(b,a){a=String(a).toLowerCase();return(a=="object"&&b===Object(b))||(a=="undefined"&&typeof b==a)||(a=="null"&&b===null)||(a=="array"&&Array.isArray&&Array.isArray(b))||(Object.prototype.toString.call(b).toLowerCase().slice(8,-1))==a},ellipsePath:function(b){var a=b.attr;return Ext.String.format("M{0},{1}A{2},{3},0,1,1,{0},{4}A{2},{3},0,1,1,{0},{1}z",a.x,a.y-a.ry,a.rx,a.ry,a.y+a.ry)},rectPath:function(b){var a=b.attr;if(a.radius){return Ext.String.format("M{0},{1}l{2},0a{3},{3},0,0,1,{3},{3}l0,{5}a{3},{3},0,0,1,{4},{3}l{6},0a{3},{3},0,0,1,{4},{4}l0,{7}a{3},{3},0,0,1,{3},{4}z",a.x+a.radius,a.y,a.width-a.radius*2,a.radius,-a.radius,a.height-a.radius*2,a.radius*2-a.width,a.radius*2-a.height)}else{return Ext.String.format("M{0},{1}L{2},{1},{2},{3},{0},{3}z",a.x,a.y,a.width+a.x,a.height+a.y)}},path2string:function(){return this.join(",").replace(Ext.draw.Draw.pathToStringRE,"$1")},pathToString:function(a){return a.join(",").replace(Ext.draw.Draw.pathToStringRE,"$1")},parsePathString:function(a){if(!a){return null}var d={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},c=[],b=this;if(b.is(a,"array")&&b.is(a[0],"array")){c=b.pathClone(a)}if(!c.length){String(a).replace(b.pathCommandRE,function(g,e,j){var i=[],h=e.toLowerCase();j.replace(b.pathValuesRE,function(l,k){k&&i.push(+k)});if(h=="m"&&i.length>2){c.push([e].concat(Ext.Array.splice(i,0,2)));h="l";e=(e=="m")?"l":"L"}while(i.length>=d[h]){c.push([e].concat(Ext.Array.splice(i,0,d[h])));if(!d[h]){break}}})}c.toString=b.path2string;return c},mapPath:function(l,g){if(!g){return l}var h,e,c,k,a,d,b;l=this.path2curve(l);for(c=0,k=l.length;c7){h[b].shift();e=h[b];while(e.length){Ext.Array.splice(h,b++,0,["C"].concat(Ext.Array.splice(e,0,6)))}Ext.Array.erase(h,b,1);c=h.length;b--}a=h[b];g=a.length;j.x=a[g-2];j.y=a[g-1];j.bx=parseFloat(a[g-4])||j.x;j.by=parseFloat(a[g-3])||j.y}return h},interpolatePaths:function(r,l){var j=this,d=j.pathToAbsolute(r),m=j.pathToAbsolute(l),n={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},a={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},b=function(p,s){if(p[s].length>7){p[s].shift();var t=p[s];while(t.length){Ext.Array.splice(p,s++,0,["C"].concat(Ext.Array.splice(t,0,6)))}Ext.Array.erase(p,s,1);o=Math.max(d.length,m.length||0)}},c=function(v,u,s,p,t){if(v&&u&&v[t][0]=="M"&&u[t][0]!="M"){Ext.Array.splice(u,t,0,["M",p.x,p.y]);s.bx=0;s.by=0;s.x=v[t][1];s.y=v[t][2];o=Math.max(d.length,m.length||0)}},h,o,g,q,e,k;for(h=0,o=Math.max(d.length,m.length||0);h1){ac=X(ac);J=ac*J;H=ac*H}d=J*J;T=H*H;W=(o==j?-1:1)*X(w((d*T-d*P*P-T*Q*Q)/(d*P*P+T*Q*Q)));E=W*J*P/H+(v+u)/2;D=W*-H*Q/J+(ah+ag)/2;n=p(((ah-D)/H).toFixed(7));m=p(((ag-D)/H).toFixed(7));n=vm){n=n-e*2}if(!j&&m>n){m=m-e*2}}else{n=C[0];m=C[1];E=C[2];D=C[3]}s=m-n;if(w(s)>G){F=m;I=u;q=ag;m=n+G*(j&&m>n?1:-1);u=E+J*V(m);ag=D+H*a(m);O=z.arc2curve(u,ag,J,H,B,0,j,I,q,[m,F,E,D])}s=m-n;l=V(n);af=a(n);g=V(m);ae=a(m);R=L.tan(s/4);U=4/3*J*R;S=4/3*H*R;ad=[v,ah];ab=[v+U*af,ah-S*l];aa=[u+U*ae,ag-S*g];Y=[u,ag];ab[0]=2*ad[0]-ab[0];ab[1]=2*ad[1]-ab[1];if(C){return[ab,aa,Y].concat(O)}else{O=[ab,aa,Y].concat(O).join().split(",");N=[];M=O.length;for(Z=0;Z(a[1]-c[1])*(b[0]-c[0])},intersectIntersection:function(n,m,g,d){var c=[],b=g[0]-d[0],a=g[1]-d[1],k=n[0]-m[0],i=n[1]-m[1],l=g[0]*d[1]-g[1]*d[0],j=n[0]*m[1]-n[1]*m[0],h=1/(b*i-a*k);c[0]=(l*k-j*b)*h;c[1]=(l*i-j*a)*h;return c},intersect:function(o,c){var n=this,k=0,m=c.length,h=c[m-1],q=o,g,r,l,p,a,b,d;for(;k0){v.push(g)}}else{j=t-3*q+3*n-m;p=2*(t-q-q+n);h=t-q;u=p*p-4*j*h;e=j+j;if(u===0){g=p/e;if(g<1&&g>0){v.push(g)}}else{if(u>0){w=Math.sqrt(u);g=(w+p)/e;if(g<1&&g>0){v.push(g)}g=(p-w)/e;if(g<1&&g>0){v.push(g)}}}}k=Math.min(t,m);o=Math.max(t,m);for(l=0;l=d&&j>=u)||(j<=d&&j<=u)){h=l=r}else{h=g((k-e)/m(j-d));if(dr){c-=p}h+=c;l+=c;o=k-t*a(h);n=j+t*b(h);x=k+s*a(l);w=j+s*b(l);if((j>d&&nd)){o+=m(d-n)*(o-k)/(n-j);n=d}if((j>u&&wu)){x-=m(u-w)*(x-k)/(w-j);w=u}return{x1:o,y1:n,x2:x,y2:w}},smooth:function(a,r){var q=this.path2curve(a),e=[q[0]],k=q[0][1],h=q[0][2],s,u,v=1,l=q.length,g=1,n=k,m=h,c=0,b=0,A,z,w,o,t,p,d;for(;v=b.x&&a<=(b.x+b.width)&&c>=b.y&&c<=(b.y+b.height))},parseGradient:function(k){var e=this,g=k.type||"linear",c=k.angle||0,i=e.radian,l=k.stops,a=[],j,b,h,d;if(g=="linear"){b=[0,0,Math.cos(c*i),Math.sin(c*i)];h=1/(Math.max(Math.abs(b[2]),Math.abs(b[3]))||1);b[2]*=h;b[3]*=h;if(b[2]<0){b[0]=-b[2];b[2]=0}if(b[3]<0){b[1]=-b[3];b[3]=0}}for(j in l){if(l.hasOwnProperty(j)&&e.stopsRE.test(j)){d={offset:parseInt(j,10),color:Ext.draw.Color.toHex(l[j].color)||"#ffffff",opacity:l[j].opacity||1};a.push(d)}}Ext.Array.sort(a,e.sorter);if(g=="linear"){return{id:k.id,type:g,vector:b,stops:a}}else{return{id:k.id,type:g,centerX:k.centerX,centerY:k.centerY,focalX:k.focalX,focalY:k.focalY,radius:k.radius,vector:b,stops:a}}}});Ext.define("Ext.fx.PropertyHandler",{requires:["Ext.draw.Draw"],statics:{defaultHandler:{pixelDefaultsRE:/width|height|top$|bottom$|left$|right$/i,unitRE:/^(-?\d*\.?\d*){1}(em|ex|px|in|cm|mm|pt|pc|%)*$/,scrollRE:/^scroll/i,computeDelta:function(j,c,a,g,i){a=(typeof a=="number")?a:1;var h=this.unitRE,d=h.exec(j),b,e;if(d){j=d[1];e=d[2];if(!this.scrollRE.test(i)&&!e&&this.pixelDefaultsRE.test(i)){e="px"}}j=+j||0;d=h.exec(c);if(d){c=d[1];e=d[2]||e}c=+c||0;b=(g!=null)?g:j;return{from:j,delta:(c-b)*a,units:e}},get:function(o,b,a,n,k){var m=o.length,d=[],e,h,l,c,g;for(e=0;e=d){l=d;a=true}if(i.reverse){l=d-l}for(e in k){if(k.hasOwnProperty(e)){j=k[e];h=a?1:c(l/d);g[e]=b[e].set(j,h)}}i.frameCount++;return g},lastFrame:function(){var c=this,a=c.iterations,b=c.currentIteration;b++;if(b0},isRunning:function(){return this.paused===false&&this.running===true&&this.isAnimator!==true}});Ext.enableFx=true;Ext.define("Ext.dd.DragDrop",{requires:["Ext.dd.DragDropManager"],constructor:function(c,a,b){if(c){this.init(c,a,b)}},id:null,config:null,dragElId:null,handleElId:null,invalidHandleTypes:null,invalidHandleIds:null,invalidHandleClasses:null,startPageX:0,startPageY:0,groups:null,locked:false,lock:function(){this.locked=true},moveOnly:false,unlock:function(){this.locked=false},isTarget:true,padding:null,_domRef:null,__ygDragDrop:true,constrainX:false,constrainY:false,minX:0,maxX:0,minY:0,maxY:0,maintainOffset:false,xTicks:null,yTicks:null,primaryButtonOnly:true,available:false,hasOuterHandles:false,b4StartDrag:function(a,b){},startDrag:function(a,b){},b4Drag:function(a){},onDrag:function(a){},onDragEnter:function(a,b){},b4DragOver:function(a){},onDragOver:function(a,b){},b4DragOut:function(a){},onDragOut:function(a,b){},b4DragDrop:function(a){},onDragDrop:function(a,b){},onInvalidDrop:function(a){},b4EndDrag:function(a){},endDrag:function(a){},b4MouseDown:function(a){},onMouseDown:function(a){},onMouseUp:function(a){},onAvailable:function(){},defaultPadding:{left:0,right:0,top:0,bottom:0},constrainTo:function(i,g,n){if(Ext.isNumber(g)){g={left:g,right:g,top:g,bottom:g}}g=g||this.defaultPadding;var k=Ext.get(this.getEl()).getBox(),a=Ext.get(i),m=a.getScroll(),j,d=a.dom,l,h,e;if(d==document.body){j={x:m.left,y:m.top,width:Ext.Element.getViewWidth(),height:Ext.Element.getViewHeight()}}else{l=a.getXY();j={x:l[0],y:l[1],width:d.clientWidth,height:d.clientHeight}}h=k.y-j.y;e=k.x-j.x;this.resetConstraints();this.setXConstraint(e-(g.left||0),j.width-e-k.width-(g.right||0),this.xTickSize);this.setYConstraint(h-(g.top||0),j.height-h-k.height-(g.bottom||0),this.yTickSize)},getEl:function(){if(!this._domRef){this._domRef=Ext.getDom(this.id)}return this._domRef},getDragEl:function(){return Ext.getDom(this.dragElId)},init:function(c,a,b){this.initTarget(c,a,b);Ext.EventManager.on(this.id,"mousedown",this.handleMouseDown,this)},initTarget:function(c,a,b){this.config=b||{};this.DDMInstance=Ext.dd.DragDropManager;this.groups={};if(typeof c!=="string"){c=Ext.id(c)}this.id=c;this.addToGroup((a)?a:"default");this.handleElId=c;this.setDragElId(c);this.invalidHandleTypes={A:"A"};this.invalidHandleIds={};this.invalidHandleClasses=[];this.applyConfig();this.handleOnAvailable()},applyConfig:function(){this.padding=this.config.padding||[0,0,0,0];this.isTarget=(this.config.isTarget!==false);this.maintainOffset=(this.config.maintainOffset);this.primaryButtonOnly=(this.config.primaryButtonOnly!==false)},handleOnAvailable:function(){this.available=true;this.resetConstraints();this.onAvailable()},setPadding:function(c,a,d,b){if(!a&&0!==a){this.padding=[c,c,c,c]}else{if(!d&&0!==d){this.padding=[c,a,c,a]}else{this.padding=[c,a,d,b]}}},setInitPosition:function(d,c){var e=this.getEl(),b,a,g;if(!this.DDMInstance.verifyEl(e)){return}b=d||0;a=c||0;g=Ext.Element.getXY(e);this.initPageX=g[0]-b;this.initPageY=g[1]-a;this.lastPageX=g[0];this.lastPageY=g[1];this.setStartPosition(g)},setStartPosition:function(b){var a=b||Ext.Element.getXY(this.getEl());this.deltaSetXY=null;this.startPageX=a[0];this.startPageY=a[1]},addToGroup:function(a){this.groups[a]=true;this.DDMInstance.regDragDrop(this,a)},removeFromGroup:function(a){if(this.groups[a]){delete this.groups[a]}this.DDMInstance.removeDDFromGroup(this,a)},setDragElId:function(a){this.dragElId=a},setHandleElId:function(a){if(typeof a!=="string"){a=Ext.id(a)}this.handleElId=a;this.DDMInstance.regHandle(this.id,a)},setOuterHandleElId:function(a){if(typeof a!=="string"){a=Ext.id(a)}Ext.EventManager.on(a,"mousedown",this.handleMouseDown,this);this.setHandleElId(a);this.hasOuterHandles=true},unreg:function(){Ext.EventManager.un(this.id,"mousedown",this.handleMouseDown,this);this._domRef=null;this.DDMInstance._remove(this)},destroy:function(){this.unreg()},isLocked:function(){return(this.DDMInstance.isLocked()||this.locked)},handleMouseDown:function(b,a){if(this.primaryButtonOnly&&b.button!=0){return}if(this.isLocked()){return}this.DDMInstance.refreshCache(this.groups);if(this.hasOuterHandles||this.DDMInstance.isOverTarget(b.getPoint(),this)){if(this.clickValidator(b)){this.setStartPosition();this.b4MouseDown(b);this.onMouseDown(b);this.DDMInstance.handleMouseDown(b,this);this.DDMInstance.stopEvent(b)}}},clickValidator:function(b){var a=b.getTarget();return(this.isValidHandleChild(a)&&(this.id==this.handleElId||this.DDMInstance.handleWasClicked(a,this.id)))},addInvalidHandleType:function(a){var b=a.toUpperCase();this.invalidHandleTypes[b]=b},addInvalidHandleId:function(a){if(typeof a!=="string"){a=Ext.id(a)}this.invalidHandleIds[a]=a},addInvalidHandleClass:function(a){this.invalidHandleClasses.push(a)},removeInvalidHandleType:function(a){var b=a.toUpperCase();delete this.invalidHandleTypes[b]},removeInvalidHandleId:function(a){if(typeof a!=="string"){a=Ext.id(a)}delete this.invalidHandleIds[a]},removeInvalidHandleClass:function(b){for(var c=0,a=this.invalidHandleClasses.length;c=this.minX;b=b-a){if(!c[b]){this.xTicks[this.xTicks.length]=b;c[b]=true}}for(b=this.initPageX;b<=this.maxX;b=b+a){if(!c[b]){this.xTicks[this.xTicks.length]=b;c[b]=true}}Ext.Array.sort(this.xTicks,this.DDMInstance.numericSort)},setYTicks:function(d,a){this.yTicks=[];this.yTickSize=a;var c={},b;for(b=this.initPageY;b>=this.minY;b=b-a){if(!c[b]){this.yTicks[this.yTicks.length]=b;c[b]=true}}for(b=this.initPageY;b<=this.maxY;b=b+a){if(!c[b]){this.yTicks[this.yTicks.length]=b;c[b]=true}}Ext.Array.sort(this.yTicks,this.DDMInstance.numericSort)},setXConstraint:function(c,b,a){this.leftConstraint=c;this.rightConstraint=b;this.minX=this.initPageX-c;this.maxX=this.initPageX+b;if(a){this.setXTicks(this.initPageX,a)}this.constrainX=true},clearConstraints:function(){this.constrainX=false;this.constrainY=false;this.clearTicks()},clearTicks:function(){this.xTicks=null;this.yTicks=null;this.xTickSize=0;this.yTickSize=0},setYConstraint:function(a,c,b){this.topConstraint=a;this.bottomConstraint=c;this.minY=this.initPageY-a;this.maxY=this.initPageY+c;if(b){this.setYTicks(this.initPageY,b)}this.constrainY=true},resetConstraints:function(){if(this.initPageX||this.initPageX===0){var b=(this.maintainOffset)?this.lastPageX-this.initPageX:0,a=(this.maintainOffset)?this.lastPageY-this.initPageY:0;this.setInitPosition(b,a)}else{this.setInitPosition()}if(this.constrainX){this.setXConstraint(this.leftConstraint,this.rightConstraint,this.xTickSize)}if(this.constrainY){this.setYConstraint(this.topConstraint,this.bottomConstraint,this.yTickSize)}},getTick:function(h,d){if(!d){return h}else{if(d[0]>=h){return d[0]}else{var b,a,c,g,e;for(b=0,a=d.length;b=h){g=h-d[b];e=d[c]-h;return(e>g)?d[b]:d[c]}}return d[d.length-1]}}},toString:function(){return("DragDrop "+this.id)}});Ext.define("Ext.dd.DD",{extend:"Ext.dd.DragDrop",requires:["Ext.dd.DragDropManager"],constructor:function(c,a,b){if(c){this.init(c,a,b)}},scroll:true,autoOffset:function(c,b){var a=c-this.startPageX,d=b-this.startPageY;this.setDelta(a,d)},setDelta:function(b,a){this.deltaX=b;this.deltaY=a},setDragElPos:function(c,b){var a=this.getDragEl();this.alignElWithMouse(a,c,b)},alignElWithMouse:function(b,e,c){var g=this.getTargetCoord(e,c),d=b.dom?b:Ext.fly(b,"_dd"),l=d.getSize(),i=Ext.Element,j,a,k,h;if(!this.deltaSetXY){j=this.cachedViewportSize={width:i.getDocumentWidth(),height:i.getDocumentHeight()};a=[Math.max(0,Math.min(g.x,j.width-l.width)),Math.max(0,Math.min(g.y,j.height-l.height))];d.setXY(a);k=d.getLocalX();h=d.getLocalY();this.deltaSetXY=[k-g.x,h-g.y]}else{j=this.cachedViewportSize;d.setLeftTop(Math.max(0,Math.min(g.x+this.deltaSetXY[0],j.width-l.width)),Math.max(0,Math.min(g.y+this.deltaSetXY[1],j.height-l.height)))}this.cachePosition(g.x,g.y);this.autoScroll(g.x,g.y,b.offsetHeight,b.offsetWidth);return g},cachePosition:function(b,a){if(b){this.lastPageX=b;this.lastPageY=a}else{var c=Ext.Element.getXY(this.getEl());this.lastPageX=c[0];this.lastPageY=c[1]}},autoScroll:function(l,k,e,m){if(this.scroll){var n=Ext.Element.getViewHeight(),b=Ext.Element.getViewWidth(),p=this.DDMInstance.getScrollTop(),d=this.DDMInstance.getScrollLeft(),j=e+k,o=m+l,i=(n+p-k-this.deltaY),g=(b+d-l-this.deltaX),c=40,a=(document.all)?80:30;if(j>n&&i0&&k-pb&&g0&&l-dthis.maxX){a=this.maxX}}if(this.constrainY){if(dthis.maxY){d=this.maxY}}a=this.getTick(a,this.xTicks);d=this.getTick(d,this.yTicks);return{x:a,y:d}},applyConfig:function(){this.callParent();this.scroll=(this.config.scroll!==false)},b4MouseDown:function(a){this.autoOffset(a.getPageX(),a.getPageY())},b4Drag:function(a){this.setDragElPos(a.getPageX(),a.getPageY())},toString:function(){return("DD "+this.id)}});Ext.define("Ext.dd.DDProxy",{extend:"Ext.dd.DD",statics:{dragElId:"ygddfdiv"},constructor:function(c,a,b){if(c){this.init(c,a,b);this.initFrame()}},resizeFrame:true,centerFrame:false,createFrame:function(){var b=this,a=document.body,d,c;if(!a||!a.firstChild){setTimeout(function(){b.createFrame()},50);return}d=this.getDragEl();if(!d){d=document.createElement("div");d.id=this.dragElId;c=d.style;c.position="absolute";c.visibility="hidden";c.cursor="move";c.border="2px solid #aaa";c.zIndex=999;a.insertBefore(d,a.firstChild)}},initFrame:function(){this.createFrame()},applyConfig:function(){this.callParent();this.resizeFrame=(this.config.resizeFrame!==false);this.centerFrame=(this.config.centerFrame);this.setDragElId(this.config.dragElId||Ext.dd.DDProxy.dragElId)},showFrame:function(e,d){var c=this.getEl(),a=this.getDragEl(),b=a.style;this._resizeProxy();if(this.centerFrame){this.setDelta(Math.round(parseInt(b.width,10)/2),Math.round(parseInt(b.height,10)/2))}this.setDragElPos(e,d);Ext.fly(a).show()},_resizeProxy:function(){if(this.resizeFrame){var a=this.getEl();Ext.fly(this.getDragEl()).setSize(a.offsetWidth,a.offsetHeight)}},b4MouseDown:function(b){var a=b.getPageX(),c=b.getPageY();this.autoOffset(a,c);this.setDragElPos(a,c)},b4StartDrag:function(a,b){this.showFrame(a,b)},b4EndDrag:function(a){Ext.fly(this.getDragEl()).hide()},endDrag:function(c){var b=this.getEl(),a=this.getDragEl();a.style.visibility="";this.beforeMove();b.style.visibility="hidden";Ext.dd.DDM.moveToEl(b,a);a.style.visibility="hidden";b.style.visibility="";this.afterDrag()},beforeMove:function(){},afterDrag:function(){},toString:function(){return("DDProxy "+this.id)}});Ext.define("Ext.dd.StatusProxy",{extend:"Ext.Component",animRepair:false,childEls:["ghost"],renderTpl:['
'],constructor:function(a){var b=this;a=a||{};Ext.apply(b,{hideMode:"visibility",hidden:true,floating:true,id:b.id||Ext.id(),cls:Ext.baseCSSPrefix+"dd-drag-proxy "+this.dropNotAllowed,shadow:a.shadow||false,renderTo:Ext.getDetachedBody()});b.callParent(arguments);this.dropStatus=this.dropNotAllowed},dropAllowed:Ext.baseCSSPrefix+"dd-drop-ok",dropNotAllowed:Ext.baseCSSPrefix+"dd-drop-nodrop",setStatus:function(a){a=a||this.dropNotAllowed;if(this.dropStatus!=a){this.el.replaceCls(this.dropStatus,a);this.dropStatus=a}},reset:function(b){var c=this,a=Ext.baseCSSPrefix+"dd-drag-proxy ";c.el.replaceCls(a+c.dropAllowed,a+c.dropNotAllowed);c.dropStatus=c.dropNotAllowed;if(b){c.ghost.update("")}},update:function(a){if(typeof a=="string"){this.ghost.update(a)}else{this.ghost.update("");a.style.margin="0";this.ghost.dom.appendChild(a)}var b=this.ghost.dom.firstChild;if(b){Ext.fly(b).setStyle("float","none")}},getGhost:function(){return this.ghost},hide:function(a){this.callParent();if(a){this.reset(true)}},stop:function(){if(this.anim&&this.anim.isAnimated&&this.anim.isAnimated()){this.anim.stop()}},sync:function(){this.el.sync()},repair:function(c,d,a){var b=this;b.callback=d;b.scope=a;if(c&&b.animRepair!==false){b.el.addCls(Ext.baseCSSPrefix+"dd-drag-repair");b.el.hideUnders(true);b.anim=b.el.animate({duration:b.repairDuration||500,easing:"ease-out",to:{x:c[0],y:c[1]},stopAnimation:true,callback:b.afterRepair,scope:b})}else{b.afterRepair()}},afterRepair:function(){var a=this;a.hide(true);a.el.removeCls(Ext.baseCSSPrefix+"dd-drag-repair");if(typeof a.callback=="function"){a.callback.call(a.scope||a)}delete a.callback;delete a.scope}});Ext.define("Ext.dd.DragSource",{extend:"Ext.dd.DDProxy",requires:["Ext.dd.StatusProxy","Ext.dd.DragDropManager"],dropAllowed:Ext.baseCSSPrefix+"dd-drop-ok",dropNotAllowed:Ext.baseCSSPrefix+"dd-drop-nodrop",animRepair:true,repairHighlightColor:"c3daf9",constructor:function(b,a){this.el=Ext.get(b);if(!this.dragData){this.dragData={}}Ext.apply(this,a);if(!this.proxy){this.proxy=new Ext.dd.StatusProxy({id:this.el.id+"-drag-status-proxy",animRepair:this.animRepair})}this.callParent([this.el.dom,this.ddGroup||this.group,{dragElId:this.proxy.id,resizeFrame:false,isTarget:false,scroll:this.scroll===true}]);this.dragging=false},getDragData:function(a){return this.dragData},onDragEnter:function(c,d){var b=Ext.dd.DragDropManager.getDDById(d),a;this.cachedTarget=b;if(this.beforeDragEnter(b,c,d)!==false){if(b.isNotifyTarget){a=b.notifyEnter(this,c,this.dragData);this.proxy.setStatus(a)}else{this.proxy.setStatus(this.dropAllowed)}if(this.afterDragEnter){this.afterDragEnter(b,c,d)}}},beforeDragEnter:function(b,a,c){return true},onDragOver:function(c,d){var b=this.cachedTarget||Ext.dd.DragDropManager.getDDById(d),a;if(this.beforeDragOver(b,c,d)!==false){if(b.isNotifyTarget){a=b.notifyOver(this,c,this.dragData);this.proxy.setStatus(a)}if(this.afterDragOver){this.afterDragOver(b,c,d)}}},beforeDragOver:function(b,a,c){return true},onDragOut:function(b,c){var a=this.cachedTarget||Ext.dd.DragDropManager.getDDById(c);if(this.beforeDragOut(a,b,c)!==false){if(a.isNotifyTarget){a.notifyOut(this,b,this.dragData)}this.proxy.reset();if(this.afterDragOut){this.afterDragOut(a,b,c)}}this.cachedTarget=null},beforeDragOut:function(b,a,c){return true},onDragDrop:function(b,c){var a=this.cachedTarget||Ext.dd.DragDropManager.getDDById(c);if(this.beforeDragDrop(a,b,c)!==false){if(a.isNotifyTarget){if(a.notifyDrop(this,b,this.dragData)!==false){this.onValidDrop(a,b,c)}else{this.onInvalidDrop(a,b,c)}}else{this.onValidDrop(a,b,c)}if(this.afterDragDrop){this.afterDragDrop(a,b,c)}}delete this.cachedTarget},beforeDragDrop:function(b,a,c){return true},onValidDrop:function(b,a,c){this.hideProxy();if(this.afterValidDrop){this.afterValidDrop(b,a,c)}},getRepairXY:function(b,a){return this.el.getXY()},onInvalidDrop:function(b,a,c){if(!a){a=b;b=null;c=a.getTarget().id}this.beforeInvalidDrop(b,a,c);if(this.cachedTarget){if(this.cachedTarget.isNotifyTarget){this.cachedTarget.notifyOut(this,a,this.dragData)}this.cacheTarget=null}this.proxy.repair(this.getRepairXY(a,this.dragData),this.afterRepair,this);if(this.afterInvalidDrop){this.afterInvalidDrop(a,c)}},afterRepair:function(){var a=this;if(Ext.enableFx){a.el.highlight(a.repairHighlightColor)}a.dragging=false},beforeInvalidDrop:function(b,a,c){return true},handleMouseDown:function(b){if(this.dragging){return}var a=this.getDragData(b);if(a&&this.onBeforeDrag(a,b)!==false){this.dragData=a;this.proxy.stop();this.callParent(arguments)}},onBeforeDrag:function(a,b){return true},onStartDrag:Ext.emptyFn,alignElWithMouse:function(){this.proxy.ensureAttachedToBody(true);return this.callParent(arguments)},startDrag:function(a,b){this.proxy.reset();this.proxy.hidden=false;this.dragging=true;this.proxy.update("");this.onInitDrag(a,b);this.proxy.show()},onInitDrag:function(a,c){var b=this.el.dom.cloneNode(true);b.id=Ext.id();this.proxy.update(b);this.onStartDrag(a,c);return true},getProxy:function(){return this.proxy},hideProxy:function(){this.proxy.hide();this.proxy.reset(true);this.dragging=false},triggerCacheRefresh:function(){Ext.dd.DDM.refreshCache(this.groups)},b4EndDrag:function(a){},endDrag:function(a){this.onEndDrag(this.dragData,a)},onEndDrag:function(a,b){},autoOffset:function(a,b){this.setDelta(-12,-20)},destroy:function(){this.callParent();Ext.destroy(this.proxy)}});Ext.define("Ext.panel.Proxy",{alternateClassName:"Ext.dd.PanelProxy",moveOnDrag:true,constructor:function(a,b){var c=this;c.panel=a;c.id=c.panel.id+"-ddproxy";Ext.apply(c,b)},insertProxy:true,setStatus:Ext.emptyFn,reset:Ext.emptyFn,update:Ext.emptyFn,stop:Ext.emptyFn,sync:Ext.emptyFn,getEl:function(){return this.ghost.el},getGhost:function(){return this.ghost},getProxy:function(){return this.proxy},hide:function(){var a=this;if(a.ghost){if(a.proxy){a.proxy.remove();delete a.proxy}a.panel.unghost(null,a.moveOnDrag);delete a.ghost}},show:function(){var b=this,a;if(!b.ghost){a=b.panel.getSize();b.panel.el.setVisibilityMode(Ext.Element.DISPLAY);b.ghost=b.panel.ghost();if(b.insertProxy){b.proxy=b.panel.el.insertSibling({cls:Ext.baseCSSPrefix+"panel-dd-spacer"});b.proxy.setSize(a)}}},repair:function(b,c,a){this.hide();Ext.callback(c,a||this)},moveProxy:function(a,b){if(this.proxy){a.insertBefore(this.proxy.dom,b)}}});Ext.define("Ext.panel.DD",{extend:"Ext.dd.DragSource",requires:["Ext.panel.Proxy"],constructor:function(b,a){var c=this;c.panel=b;c.dragData={panel:b};c.panelProxy=new Ext.panel.Proxy(b,a);c.proxy=c.panelProxy.proxy;c.callParent([b.el,a]);c.setupEl(b)},setupEl:function(a){var c=this,d=a.header,b=a.body;if(d){c.setHandleElId(d.id);b=d.el}if(b){b.setStyle("cursor","move");c.scroll=false}else{a.on("boxready",c.setupEl,c,{single:true})}},showFrame:Ext.emptyFn,startDrag:Ext.emptyFn,b4StartDrag:function(a,b){this.panelProxy.show()},b4MouseDown:function(b){var a=b.getPageX(),c=b.getPageY();this.autoOffset(a,c)},onInitDrag:function(a,b){this.onStartDrag(a,b);return true},createFrame:Ext.emptyFn,getDragEl:function(a){return this.panelProxy.ghost.el.dom},endDrag:function(a){this.panelProxy.hide();this.panel.saveState()},autoOffset:function(a,b){a-=this.startPageX;b-=this.startPageY;this.setDelta(a,b)},onInvalidDrop:function(c,b,d){var a=this;a.beforeInvalidDrop(c,b,d);if(a.cachedTarget){if(a.cachedTarget.isNotifyTarget){a.cachedTarget.notifyOut(a,b,a.dragData)}a.cacheTarget=null}if(a.afterInvalidDrop){a.afterInvalidDrop(b,d)}}});Ext.define("Ext.util.Memento",(function(){function d(i,h,j,g){i[g?g+j:j]=h[j]}function c(h,g,i){delete h[i]}function e(k,j,l,i){var g=i?i+l:l,h=k[g];if(h||k.hasOwnProperty(g)){a(j,l,h)}}function a(h,i,g){if(Ext.isDefined(g)){h[i]=g}else{delete h[i]}}function b(h,m,l,i,j){if(m){if(Ext.isArray(i)){var k,g=i.length;for(k=0;ka){if(j.anchorToTarget){j.defaultAlign="r-l";if(j.mouseOffset){j.mouseOffset[0]*=-1}}j.anchor="right";return j.getTargetXY()}if(b[1]i){if(j.anchorToTarget){j.defaultAlign="b-t";if(j.mouseOffset){j.mouseOffset[1]*=-1}}j.anchor="bottom";return j.getTargetXY()}}j.anchorCls=Ext.baseCSSPrefix+"tip-anchor-"+j.getAnchorPosition();j.anchorEl.addCls(j.anchorCls);j.targetCounter=0;return b}else{d=j.getMouseOffset();return(j.targetXY)?[j.targetXY[0]+d[0],j.targetXY[1]+d[1]]:d}},getMouseOffset:function(){var a=this,b=a.anchor?[0,0]:[15,18];if(a.mouseOffset){b[0]+=a.mouseOffset[0];b[1]+=a.mouseOffset[1]}return b},getAnchorPosition:function(){var b=this,a;if(b.anchor){b.tipAnchor=b.anchor.charAt(0)}else{a=b.defaultAlign.match(/^([a-z]+)-([a-z]+)(\?)?$/);b.tipAnchor=a[1].charAt(0)}switch(b.tipAnchor){case"t":return"top";case"b":return"bottom";case"r":return"right"}return"left"},getAnchorAlign:function(){switch(this.anchor){case"top":return"tl-bl";case"left":return"tl-tr";case"right":return"tr-tl";default:return"bl-tl"}},getOffsets:function(){var c=this,d,b,a=c.getAnchorPosition().charAt(0);if(c.anchorToTarget&&!c.trackMouse){switch(a){case"t":b=[0,9];break;case"b":b=[0,-13];break;case"r":b=[-13,0];break;default:b=[9,0];break}}else{switch(a){case"t":b=[-15-c.anchorOffset,30];break;case"b":b=[-19-c.anchorOffset,-13-c.el.dom.offsetHeight];break;case"r":b=[-15-c.el.dom.offsetWidth,-13-c.anchorOffset];break;default:b=[25,-13-c.anchorOffset];break}}d=c.getMouseOffset();b[0]+=d[0];b[1]+=d[1];return b},onTargetOver:function(c){var b=this,a;if(b.disabled||c.within(b.target.dom,true)){return}a=c.getTarget(b.delegate);if(a){b.triggerElement=a;b.clearTimer("hide");b.targetXY=c.getXY();b.delayShow()}},delayShow:function(){var a=this;if(a.hidden&&!a.showTimer){if(Ext.Date.getElapsed(a.lastActive)b){e=d[a];for(c in e){if(e[c]){e[c].hide(true)}}}}});Ext.define("Ext.layout.component.Draw",{alias:"layout.draw",extend:"Ext.layout.component.Auto",type:"draw",measureContentWidth:function(b){var c=b.target,a=b.getPaddingInfo(),d=this.getBBox(b);if(!c.viewBox){if(c.autoSize){return d.width+a.width}else{return d.x+d.width+a.width}}else{if(b.heightModel.shrinkWrap){return a.width}else{return d.width/d.height*(b.getProp("contentHeight")-a.height)+a.width}}},measureContentHeight:function(b){var c=b.target,a=b.getPaddingInfo(),d=this.getBBox(b);if(!b.target.viewBox){if(c.autoSize){return d.height+a.height}else{return d.y+d.height+a.height}}else{if(b.widthModel.shrinkWrap){return a.height}else{return d.height/d.width*(b.getProp("contentWidth")-a.width)+a.height}}},getBBox:function(a){var b=a.surfaceBBox;if(!b){b=a.target.surface.items.getBBox();if(b.width===-Infinity&&b.height===-Infinity){b.width=b.height=b.x=b.y=0}a.surfaceBBox=b}return b},publishInnerWidth:function(b,a){b.setContentWidth(a-b.getFrameInfo().width,true)},publishInnerHeight:function(b,a){b.setContentHeight(a-b.getFrameInfo().height,true)},finishedLayout:function(c){var b=c.props,a=c.getPaddingInfo();this.owner.setSurfaceSize(b.contentWidth-a.width,b.contentHeight-a.height);this.callParent(arguments)}});Ext.define("Ext.draw.CompositeSprite",{extend:"Ext.util.MixedCollection",mixins:{animate:"Ext.util.Animate"},autoDestroy:false,isCompositeSprite:true,constructor:function(a){var b=this;a=a||{};Ext.apply(b,a);b.addEvents("mousedown","mouseup","mouseover","mouseout","click");b.id=Ext.id(null,"ext-sprite-group-");b.callParent()},onClick:function(a){this.fireEvent("click",a)},onMouseUp:function(a){this.fireEvent("mouseup",a)},onMouseDown:function(a){this.fireEvent("mousedown",a)},onMouseOver:function(a){this.fireEvent("mouseover",a)},onMouseOut:function(a){this.fireEvent("mouseout",a)},attachEvents:function(b){var a=this;b.on({scope:a,mousedown:a.onMouseDown,mouseup:a.onMouseUp,mouseover:a.onMouseOver,mouseout:a.onMouseOut,click:a.onClick})},add:function(b,c){var a=this.callParent(arguments);this.attachEvents(a);return a},insert:function(a,b,c){return this.callParent(arguments)},remove:function(b){var a=this;b.un({scope:a,mousedown:a.onMouseDown,mouseup:a.onMouseUp,mouseover:a.onMouseOver,mouseout:a.onMouseOut,click:a.onClick});return a.callParent(arguments)},getBBox:function(){var e=0,n,j,k=this.items,g=this.length,h=Infinity,c=h,m=-h,b=h,l=-h,d,a;for(;e0){b=d.first();d.remove(b);a.remove(b,c)}}d.clearListeners()}});Ext.define("Ext.draw.Surface",{mixins:{observable:"Ext.util.Observable"},requires:["Ext.draw.CompositeSprite"],uses:["Ext.draw.engine.Svg","Ext.draw.engine.Vml","Ext.draw.engine.SvgExporter","Ext.draw.engine.ImageExporter"],separatorRe:/[, ]+/,statics:{create:function(b,d){d=d||["Svg","Vml"];var c=0,a=d.length,e;for(;c1,h,b,c,e,k;if(a||Ext.isArray(g[0])){h=a?g:g[0];b=[];for(c=0,e=h.length;ch){b=i-1}else{if(a-1;b--){this.remove(a[b],d)}},onRemove:Ext.emptyFn,onDestroy:Ext.emptyFn,applyViewBox:function(){var d=this,l=d.viewBox,a=d.width||1,h=d.height||1,g,e,j,b,i,c,k;if(l&&(a||h)){g=l.x;e=l.y;j=l.width;b=l.height;i=h/b;c=a/j;k=Math.min(c,i);if(j*k0.85){e=e.getDarker(0.3)}else{if(h>0.7){e=e.getDarker(0.15)}}}}c.colors=[e.getDarker(0.3).toString(),e.getDarker(0.15).toString(),e.toString(),e.getLighter(0.15).toString(),e.getLighter(0.3).toString()];delete c.baseColor}if(c.colors){a=c.colors.slice();s=b.markerThemes;r=b.seriesThemes;j=a.length;b.colors=a;for(;m0?s:s+m,y:k>0?r:r+k,width:j(m),height:j(k)};u.mask.updateBox(u.maskSelection);u.mask.show();u.maskSprite.setAttributes({hidden:true},true)}else{if(o=="horizontal"){l=["M",s,h,"L",s,k]}else{if(o=="vertical"){l=["M",i,r,"L",m,r]}else{l=["M",s,h,"L",s,k,"M",i,r,"L",m,r]}}u.maskSprite.setAttributes({path:l,fill:u.maskMouseDown?u.maskSprite.stroke:false,"stroke-width":o===true?1:3,hidden:false},true)}},onMouseLeave:function(b){var a=this;a.mouseMoved=false;a.mouseDown=false;a.maskMouseDown=false;a.mask.hide();a.maskSprite.hide(true)}});Ext.define("Ext.chart.Navigation",{constructor:function(){this.originalStore=this.store},setZoom:function(k){var j=this,g=j.axes,a=g.items,e,h,c,p=j.chartBBox,o=1/p.width,b=1/p.height,d={x:k.x*o,y:k.y*b,width:k.width*o,height:k.height*b},l,n,m;for(e=0,h=a.length;e0.5?0.2:0.8;F.setAttributes({fill:String(m.fromHSL.apply({},B))},true)}}E++;y++}}l=q.length;while(l>c){K.push(c);c++}}o.hideLabels(K)},hideLabels:function(b){var a=this.labelsGroup,c=!!b&&b.length;if(!a){return}if(c===false){c=a.getCount();while(c--){a.getAt(c).hide(true)}}else{while(c--){a.getAt(b[c]).hide(true)}}}});Ext.define("Ext.chart.TipSurface",{extend:"Ext.draw.Component",spriteArray:false,renderFirst:true,constructor:function(a){this.callParent([a]);if(a.sprites){this.spriteArray=[].concat(a.sprites);delete a.sprites}},onRender:function(){var c=this,b=0,a=0,d,e;this.callParent(arguments);e=c.spriteArray;if(c.renderFirst&&e){c.renderFirst=false;for(a=e.length;bs){u=s}if(y0){u=0}if(y=y){y=u+1}return{min:u,max:y}},calcEnds:function(){var h=this,d=h.getRange(),g=d.min,a=d.max,c,i,e,b;c=(Ext.isNumber(h.majorTickSteps)?h.majorTickSteps+1:h.steps);i=!(Ext.isNumber(h.maximum)&&Ext.isNumber(h.minimum)&&Ext.isNumber(h.majorTickSteps)&&h.majorTickSteps>0);e=Ext.draw.Draw.snapEnds(g,a,c,i);if(Ext.isNumber(h.maximum)){e.to=h.maximum;b=true}if(Ext.isNumber(h.minimum)){e.from=h.minimum;b=true}if(h.adjustMaximumByMajorUnit){e.to=Math.ceil(e.to/e.step)*e.step;b=true}if(h.adjustMinimumByMajorUnit){e.from=Math.floor(e.from/e.step)*e.step;b=true}if(b){e.steps=Math.ceil((e.to-e.from)/e.step)}h.prevMin=(g==a?0:g);h.prevMax=a;return e},drawAxis:function(r){var C=this,s,j=C.x,h=C.y,A=C.chart.maxGutter[0],z=C.chart.maxGutter[1],e=C.dashSize,w=C.minorTickSteps||0,v=C.minorTickSteps||0,b=C.length,D=C.position,g=[],m=false,c=C.applyData(),d=c.step,t=c.steps,q=c.from,a=c.to,u,p,o,n,l,k,B;if(C.hidden||isNaN(d)||(q>a)){return}C.from=c.from;C.to=c.to;if(D=="left"||D=="right"){p=Math.floor(j)+0.5;n=["M",p,h,"l",0,-b];u=b-(z*2)}else{o=Math.floor(h)+0.5;n=["M",j,o,"l",b,0];u=b-(A*2)}B=t&&u/t;l=Math.max(w+1,0);k=Math.max(v+1,0);if(C.type=="Numeric"||C.type=="Time"){m=true;C.labels=[c.from]}if(D=="right"||D=="left"){o=h-z;p=j-((D=="left")*e*2);while(o>=h-z-u){n.push("M",p,Math.floor(o)+0.5,"l",e*2+1,0);if(o!=h-z){for(s=1;s=0){if(!this.sprites){for(e=0;e<=l;e++){n=a.add({type:"path",path:["M",d+(m-c)*o(e/l*g-g),b+(m-c)*k(e/l*g-g),"L",d+m*o(e/l*g-g),b+m*k(e/l*g-g),"Z"],stroke:"#ccc"});n.setAttributes({hidden:false},true);h.push(n)}}else{h=this.sprites;for(e=0;e<=l;e++){h[e].setAttributes({path:["M",d+(m-c)*o(e/l*g-g),b+(m-c)*k(e/l*g-g),"L",d+m*o(e/l*g-g),b+m*k(e/l*g-g),"Z"],stroke:"#ccc"},true)}}}this.sprites=h;this.drawLabel();if(this.title){this.drawTitle()}},drawTitle:function(){var e=this,d=e.chart,a=d.surface,g=d.chartBBox,c=e.titleSprite,b;if(!c){e.titleSprite=c=a.add({type:"text",zIndex:2})}c.setAttributes(Ext.apply({text:e.title},e.label||{}),true);b=c.getBBox();c.setAttributes({x:g.x+(g.width/2)-(b.width/2),y:g.y+g.height-(b.height/2)-4},true)},setTitle:function(a){this.title=a;this.drawTitle()},drawLabel:function(){var l=this.chart,p=l.surface,b=l.chartBBox,j=b.x+(b.width/2),h=b.y+b.height,m=this.margin||10,d=Math.min(b.width,2*b.height)/2+2*m,u=Math.round,n=[],g,s=this.maximum||0,k=this.minimum||0,r=this.steps,q=0,v,t=Math.PI,c=Math.cos,a=Math.sin,e=this.label,o=e.renderer||function(i){return i};if(!this.labelArray){for(q=0;q<=r;q++){v=(q===0||q===r)?7:0;g=p.add({type:"text",text:o(u(k+q/r*(s-k))),x:j+d*c(q/r*t-t),y:h+d*a(q/r*t-t)-v,"text-anchor":"middle","stroke-width":0.2,zIndex:10,stroke:"#333"});g.setAttributes({hidden:false},true);n.push(g)}}else{n=this.labelArray;for(q=0;q<=r;q++){v=(q===0||q===r)?7:0;n[q].setAttributes({text:o(u(k+q/r*(s-k))),x:j+d*c(q/r*t-t),y:h+d*a(q/r*t-t)-v},true)}}this.labelArray=n}});Ext.define("Ext.chart.axis.Numeric",{extend:"Ext.chart.axis.Axis",alternateClassName:"Ext.chart.NumericAxis",type:"numeric",alias:"axis.numeric",uses:["Ext.data.Store"],constructor:function(c){var d=this,a=!!(c.label&&c.label.renderer),b;d.callParent([c]);b=d.label;if(c.constrain==null){d.constrain=(c.minimum!=null&&c.maximum!=null)}if(!a){b.renderer=function(e){return d.roundToDecimal(e,d.decimals)}}},roundToDecimal:function(a,c){var b=Math.pow(10,c||0);return Math.round(a*b)/b},minimum:NaN,maximum:NaN,constrain:true,decimals:2,scale:"linear",doConstrain:function(){var t=this,b=t.chart.store,h=b.data.items,s,u,a,e=t.chart.series.items,j=t.fields,c=j.length,g=t.calcEnds(),m=g.from,p=g.to,q,n,r=false,k,v=[],o;for(q=0,n=e.length;q+p){o=false;break}}if(o){v.push(a)}}t.chart.substore=Ext.create("Ext.data.Store",{model:b.model});t.chart.substore.loadData(v)},position:"left",adjustMaximumByMajorUnit:false,adjustMinimumByMajorUnit:false,processView:function(){var a=this,b=a.constrain;if(b){a.doConstrain()}},applyData:function(){this.callParent();return this.calcEnds()}});Ext.define("Ext.chart.axis.Radial",{extend:"Ext.chart.axis.Abstract",position:"radial",alias:"axis.radial",drawAxis:function(u){var m=this.chart,a=m.surface,t=m.chartBBox,q=m.store,b=q.getCount(),e=t.x+(t.width/2),c=t.y+(t.height/2),p=Math.min(t.width,t.height)/2,k=[],r,o=this.steps,g,d,h=Math.PI*2,s=Math.cos,n=Math.sin;if(this.sprites&&!m.resizing){this.drawLabel();return}if(!this.sprites){for(g=1;g<=o;g++){r=a.add({type:"circle",x:e,y:c,radius:Math.max(p*g/o,0),stroke:"#ccc"});r.setAttributes({hidden:false},true);k.push(r)}for(g=0;g>0),e)}}}},processView:function(){var a=this;if(a.fromDate){a.minimum=+a.fromDate}if(a.toDate){a.maximum=+a.toDate}if(a.constrain){a.doConstrain()}},calcEnds:function(){var c=this,a,b=c.step;if(b){a=c.getRange();a=Ext.draw.Draw.snapEndsByDateAndStep(new Date(a.min),new Date(a.max),Ext.isNumber(b)?[Date.MILLI,b]:b);if(c.minimum){a.from=c.minimum}if(c.maximum){a.to=c.maximum}a.step=(a.to-a.from)/a.steps;return a}else{return c.callParent(arguments)}}});Ext.define("Ext.chart.series.Series",{mixins:{observable:"Ext.util.Observable",labels:"Ext.chart.Label",highlights:"Ext.chart.Highlight",tips:"Ext.chart.Tip",callouts:"Ext.chart.Callout"},type:null,title:null,showInLegend:true,renderer:function(e,a,c,d,b){return c},shadowAttributes:null,animating:false,constructor:function(a){var b=this;if(a){Ext.apply(b,a)}b.shadowGroups=[];b.mixins.labels.constructor.call(b,a);b.mixins.highlights.constructor.call(b,a);b.mixins.tips.constructor.call(b,a);b.mixins.callouts.constructor.call(b,a);b.addEvents({scope:b,itemmouseover:true,itemmouseout:true,itemmousedown:true,itemmouseup:true,mouseleave:true,afterdraw:true,titlechange:true});b.mixins.observable.constructor.call(b,a);b.on({scope:b,itemmouseover:b.onItemMouseOver,itemmouseout:b.onItemMouseOut,mouseleave:b.onMouseLeave});if(b.style){Ext.apply(b.seriesStyle,b.style)}},eachRecord:function(c,b){var a=this.chart;(a.substore||a.store).each(c,b)},getRecordCount:function(){var b=this.chart,a=b.substore||b.store;return a?a.getCount():0},isExcluded:function(a){var b=this.__excludes;return !!(b&&b[a])},setBBox:function(a){var e=this,c=e.chart,b=c.chartBBox,g=a?0:c.maxGutter[0],d=a?0:c.maxGutter[1],h,i;h={x:b.x,y:b.y,width:b.width,height:b.height};e.clipBox=h;i={x:(h.x+g)-(c.zoom.x*c.zoom.width),y:(h.y+d)-(c.zoom.y*c.zoom.height),width:(h.width-(g*2))*c.zoom.width,height:(h.height-(d*2))*c.zoom.height};e.bbox=i},onAnimate:function(b,a){var c=this;b.stopAnimation();if(c.animating){return b.animate(Ext.applyIf(a,c.chart.animate))}else{c.animating=true;return b.animate(Ext.apply(Ext.applyIf(a,c.chart.animate),{listeners:{afteranimate:function(){c.animating=false;c.fireEvent("afterrender")}}}))}},getGutters:function(){return[0,0]},onItemMouseOver:function(b){var a=this;if(b.series===a){if(a.highlight){a.highlightItem(b)}if(a.tooltip){a.showTip(b)}}},onItemMouseOut:function(b){var a=this;if(b.series===a){a.unHighlightItem();if(a.tooltip){a.hideTip(b)}}},onMouseLeave:function(){var a=this;a.unHighlightItem();if(a.tooltip){a.hideTip()}},getItemForPoint:function(a,j){if(!this.items||!this.items.length||this.seriesIsHidden){return null}var g=this,b=g.items,h=g.bbox,e,c,d;if(!Ext.draw.Draw.withinBox(a,j,h)){return null}for(c=0,d=b.length;c0){c=Infinity;l=-c;for(e=0,h=d.length;el){l=b}if(bl){l=r}if(r0){b=Infinity;l=-b;for(d=0,h=c.length;dl){l=n}if(m-1){b="top"}else{if(Ext.Array.indexOf(d,"bottom")>-1){b="bottom"}else{if(l.get("top")&&l.get("bottom")){for(h=0,k=o.length;h-1){a="left"}else{if(Ext.Array.indexOf(d,"right")>-1){a="right"}else{if(l.get("left")&&l.get("right")){for(h=0,k=e.length;hk.width)&&j.areas){H=j.shrink(z,D,k.width);z=H.x;D=H.y}return{bbox:k,minX:C,minY:B,xValues:z,yValues:D,xScale:h,yScale:E,areasLen:A}},getPaths:function(){var w=this,m=w.chart,c=m.getChartStore(),e=true,g=w.getBounds(),a=g.bbox,n=w.items=[],v=[],b,d=0,p=[],s,j,k,h,q,t,l,z,r,u,o;j=g.xValues.length;for(s=0;sa.x+a.width)?(j-(j+n-a.x-a.width)):j;h=h-ma.y+a.height)?(h-(h+m-a.y-a.height)):h;if(u.chart.animate&&!u.chart.resizing){g.show(true);u.onAnimate(g,{to:{x:j,y:h}})}else{g.setAttributes({x:j,y:h},true);if(r){u.animation.on("afteranimate",function(){g.show(true)})}else{g.show(true)}}},onPlaceCallout:function(m,r,J,G,F,d,k){var M=this,s=M.chart,D=s.surface,H=s.resizing,L=M.callouts,t=M.items,v=(G==0)?false:t[G-1].point,z=(G==t.length-1)?false:t[G+1].point,c=J.point,A,g,N,K,o,q,b=m.label.getBBox(),I=30,C=10,B=3,h,e,j,w,u,E=M.clipRect,n,l;if(!v){v=c}if(!z){z=c}K=(z[1]-v[1])/(z[0]-v[0]);o=(c[1]-v[1])/(c[0]-v[0]);q=(z[1]-c[1])/(z[0]-c[0]);g=Math.sqrt(1+K*K);A=[1/g,K/g];N=[-A[1],A[0]];if(o>0&&q<0&&N[1]<0||o<0&&q>0&&N[1]>0){N[0]*=-1;N[1]*=-1}else{if(Math.abs(o)Math.abs(q)&&N[0]>0){N[0]*=-1;N[1]*=-1}}n=c[0]+N[0]*I;l=c[1]+N[1]*I;h=n+(N[0]>0?0:-(b.width+2*B));e=l-b.height/2-B;j=b.width+2*B;w=b.height+2*B;if(h(E[0]+E[2])){N[0]*=-1}if(e(E[1]+E[3])){N[1]*=-1}n=c[0]+N[0]*I;l=c[1]+N[1]*I;h=n+(N[0]>0?0:-(b.width+2*B));e=l-b.height/2-B;j=b.width+2*B;w=b.height+2*B;m.lines.setAttributes({path:["M",c[0],c[1],"L",n,l,"Z"]},true);m.box.setAttributes({x:h,y:e,width:j,height:w},true);m.label.setAttributes({x:n+(N[0]>0?B:-(b.width+B)),y:l},true);for(u in m){m[u].show(true)}},isItemInPoint:function(j,h,m,c){var g=this,b=m.pointsUp,d=m.pointsDown,q=Math.abs,o=false,l=false,e=Infinity,a,n,k;for(a=0,n=b.length;aq(j-k[0])){e=q(j-k[0]);o=true;if(l){++a}}if(!o||(o&&l)){k=b[a-1];if(h>=k[1]&&(!d.length||h<=(d[a-1][1]))){m.storeIndex=a-1;m.storeField=g.yField[c];m.storeItem=g.chart.store.getAt(a-1);m._points=d.length?[k,d[a-1]]:[k];return true}else{break}}}return false},highlightSeries:function(){var a,c,b;if(this._index!==undefined){a=this.areas[this._index];if(a.__highlightAnim){a.__highlightAnim.paused=true}a.__highlighted=true;a.__prevOpacity=a.__prevOpacity||a.attr.opacity||1;a.__prevFill=a.__prevFill||a.attr.fill;a.__prevLineWidth=a.__prevLineWidth||a.attr.lineWidth;b=Ext.draw.Color.fromString(a.__prevFill);c={lineWidth:(a.__prevLineWidth||0)+2};if(b){c.fill=b.getLighter(0.2).toString()}else{c.opacity=Math.max(a.__prevOpacity-0.3,0)}if(this.chart.animate){a.__highlightAnim=new Ext.fx.Anim(Ext.apply({target:a,to:c},this.chart.animate))}else{a.setAttributes(c,true)}}},unHighlightSeries:function(){var a;if(this._index!==undefined){a=this.areas[this._index];if(a.__highlightAnim){a.__highlightAnim.paused=true}if(a.__highlighted){a.__highlighted=false;a.__highlightAnim=new Ext.fx.Anim({target:a,to:{fill:a.__prevFill,opacity:a.__prevOpacity,lineWidth:a.__prevLineWidth}})}}},highlightItem:function(c){var b=this,a,d;if(!c){this.highlightSeries();return}a=c._points;d=a.length==2?["M",a[0][0],a[0][1],"L",a[1][0],a[1][1]]:["M",a[0][0],a[0][1],"L",a[0][0],b.bbox.y+b.bbox.height];b.highlightSprite.setAttributes({path:d,hidden:false},true)},unHighlightItem:function(a){if(!a){this.unHighlightSeries()}if(this.highlightSprite){this.highlightSprite.hide(true)}},hideAll:function(a){var b=this;a=(isNaN(b._index)?a:b._index)||0;b.__excludes[a]=true;b.areas[a].hide(true);b.redraw()},showAll:function(a){var b=this;a=(isNaN(b._index)?a:b._index)||0;b.__excludes[a]=false;b.areas[a].show(true);b.redraw()},redraw:function(){var a=this,b;b=a.chart.legend.rebuild;a.chart.legend.rebuild=false;a.chart.redraw();a.chart.legend.rebuild=b},hide:function(){if(this.areas){var h=this,b=h.areas,d,c,a,g,e;if(b&&b.length){for(d=0,g=b.length;d0)][M]+=n(I)}}w[+(r>0)].push(n(r));w[+(F>0)].push(n(F));g=k.apply(u,w[0]);d=k.apply(u,w[1]);z=(H?q.height-m*2:q.width-h*2)/(d+g);a=a+g*z*(H?-1:1)}else{if(F/r<0){a=a-F*z*(H?-1:1)}}return{bars:v,bbox:q,shrunkBarWidth:C,barsLen:p,groupBarsLen:l,barWidth:t,groupBarWidth:e,scale:z,zero:a,xPadding:h,yPadding:m,signed:F/r<0,minY:F,maxY:r}},getPaths:function(){var v=this,X=v.chart,b=X.getChartStore(),W=b.data.items,V,E,L,G=v.bounds=v.getBounds(),z=v.items=[],P=v.yField,l=v.gutter/100,c=v.groupGutter/100,T=X.animate,N=v.column,x=v.group,m=X.shadow,R=v.shadowGroups,Q=v.shadowAttributes,q=R.length,y=G.bbox,B=G.barWidth,K=G.shrunkBarWidth,n=v.xPadding,r=v.yPadding,S=v.stacked,w=G.barsLen,O=v.colorArrayStyle,h=O&&O.length||0,C=Math,o=C.max,I=C.min,u=C.abs,U,Y,e,J,D,a,k,t,s,p,g,d,F,A,M,H;for(V=0,E=W.length;V1?U:0)%h]};if(N){Ext.apply(s,{height:e,width:o(G.groupBarWidth,0),x:(y.x+n+(B-K)*0.5+V*B*(1+l)+g*G.groupBarWidth*(1+c)*!S),y:a-e})}else{M=(E-1)-V;Ext.apply(s,{height:o(G.groupBarWidth,0),width:e+(a==G.zero),x:a+(a!=G.zero),y:(y.y+r+(B-K)*0.5+M*B*(1+l)+g*G.groupBarWidth*(1+c)*!S+1)})}if(e<0){if(N){s.y=k;s.height=u(e)}else{s.x=k+e;s.width=u(e)}}if(S){if(e<0){k+=e*(N?-1:1)}else{a+=e*(N?-1:1)}J+=u(e);if(e<0){D+=u(e)}}s.x=Math.floor(s.x)+1;H=Math.floor(s.y);if(!Ext.isIE9&&s.y>H){H--}s.y=H;s.width=Math.floor(s.width);s.height=Math.floor(s.height);z.push({series:v,yField:P[U],storeItem:L,value:[L.get(v.xField),Y],attr:s,point:N?[s.x+s.width/2,Y>=0?s.y:s.y+s.height]:[Y>=0?s.x+s.width:s.x,s.y+s.height/2]});if(T&&X.resizing){p=N?{x:s.x,y:G.zero,width:s.width,height:0}:{x:G.zero,y:s.y,width:0,height:s.height};if(m&&(S&&!t||!S)){t=true;for(d=0;d(O>=0?b-u.y:u.y+u.height-b)){p=M}}else{if(c+C>l.height){p=k;G.isOutside=true}}D=l.x+d/2;B=p==q?(b+((c/2+3)*(O>=0?-1:1))):(O>=0?(l.y+((c/2+3)*(p==k?-1:1))):(l.y+l.height+((c/2+3)*(p===k?1:-1))))}else{if(p==k){if(a+E+l.width>(O>=0?u.x+u.width-b:b-u.x)){p=M}}else{if(a+E>l.width){p=k;G.isOutside=true}}D=p==q?(b+((a/2+5)*(O>=0?1:-1))):(O>=0?(l.x+l.width+((a/2+5)*(p===k?1:-1))):(l.x+((a/2+5)*(p===k?-1:1))));B=l.y+d/2}w={x:D,y:B};if(K){w.rotate={x:D,y:B,degrees:270}}if(H&&A){if(F){D=l.x+l.width/2;B=b}else{D=b;B=l.y+l.height/2}G.setAttributes({x:D,y:B},true);if(K){G.setAttributes({rotate:{x:D,y:B,degrees:270}},true)}}if(H){m.onAnimate(G,{to:w})}else{G.setAttributes(Ext.apply(w,{hidden:false}),true)}},getLabelSize:function(g){var k=this.testerLabel,a=this.label,d=Ext.apply({},a,this.seriesLabelStyle||{}),b=a.orientation==="vertical",j,i,e,c;if(!k){k=this.testerLabel=this.chart.surface.add(Ext.apply({type:"text",opacity:0},d))}k.setAttributes({text:g},true);j=k.getBBox();i=j.width;e=j.height;return{width:b?e:i,height:b?i:e}},onAnimate:function(b,a){b.show();return this.callParent(arguments)},isItemInPoint:function(a,d,b){var c=b.sprite.getBBox();return c.x<=a&&c.y<=d&&(c.x+c.width)>=a&&(c.y+c.height)>=d},hideAll:function(a){var e=this.chart.axes,c=e.items,d=c.length,b=0;a=(isNaN(this._index)?a:this._index)||0;if(!this.__excludes){this.__excludes=[]}this.__excludes[a]=true;this.drawSeries();for(b;b180,D=Math.min(q,p)*B,A=Math.max(q,p)*B,o=false;k+=l*d(j);i+=l*a(j);w=k+b.startRho*d(D);h=i+b.startRho*a(D);v=k+b.endRho*d(D);g=i+b.endRho*a(D);u=k+b.startRho*d(A);e=i+b.startRho*a(A);s=k+b.endRho*d(A);c=i+b.endRho*a(A);if(n(w-u)<=z&&n(h-e)<=z){o=true}if(o){return{path:[["M",w,h],["L",v,g],["A",b.endRho,b.endRho,0,+t,1,s,c],["Z"]]}}else{return{path:[["M",w,h],["L",v,g],["A",b.endRho,b.endRho,0,+t,1,s,c],["L",u,e],["A",b.startRho,b.startRho,0,+t,0,w,h],["Z"]]}}},calcMiddle:function(p){var k=this,l=k.rad,o=p.slice,n=k.centerX,m=k.centerY,j=o.startAngle,e=o.endAngle,i=Math.max(("rho" in o)?o.rho:k.radius,k.label.minMargin),h=+k.donut,b=Math.min(j,e)*l,a=Math.max(j,e)*l,d=-(b+(a-b)/2),g=n+(p.endRho+p.startRho)/2*Math.cos(d),c=m-(p.endRho+p.startRho)/2*Math.sin(d);p.middle={x:g,y:c}},drawSeries:function(){var w=this,W=w.chart,b=W.getChartStore(),A=w.group,S=w.chart.animate,D=w.chart.axes.get(0),E=D&&D.minimum||w.minimum||0,I=D&&D.maximum||w.maximum||0,n=w.angleField||w.field||w.xField,M=W.surface,H=W.chartBBox,h=w.rad,c=+w.donut,X={},B=[],m=w.seriesStyle,a=w.seriesLabelStyle,g=w.colorArrayStyle,z=g&&g.length||0,K=W.maxGutter[0],J=W.maxGutter[1],k=Math.cos,s=Math.sin,t,e,d,v,r,C,O,F,G,L,U,T,l,V,x,o,Q,R,q,y,u,P,N;Ext.apply(m,w.style||{});w.setBBox();y=w.bbox;if(w.colorSet){g=w.colorSet;z=g.length}if(!b||!b.getCount()||w.seriesIsHidden){w.hide();w.items=[];return}e=w.centerX=H.x+(H.width/2);d=w.centerY=H.y+H.height;w.radius=Math.min(e-H.x,d-H.y);w.slices=r=[];w.items=B=[];if(!w.value){L=b.getAt(0);w.value=L.get(n)}O=w.value;if(w.needle){P={series:w,value:O,startAngle:-180,endAngle:0,rho:w.radius};u=-180*(1-(O-E)/(I-E));r.push(P)}else{u=-180*(1-(O-E)/(I-E));P={series:w,value:O,startAngle:-180,endAngle:u,rho:w.radius};N={series:w,value:w.maximum-O,startAngle:u,endAngle:0,rho:w.radius};r.push(P,N)}for(U=0,G=r.length;U=g&&b=n.startRho&&k<=n.endRho)},showAll:function(){if(!isNaN(this._index)){this.__excludes[this._index]=false;this.drawSeries()}},getLegendColor:function(a){var b=this;return b.colorArrayStyle[a%b.colorArrayStyle.length]}});Ext.define("Ext.chart.series.Line",{extend:"Ext.chart.series.Cartesian",alternateClassName:["Ext.chart.LineSeries","Ext.chart.LineChart"],requires:["Ext.chart.axis.Axis","Ext.chart.Shape","Ext.draw.Draw","Ext.fx.Anim"],type:"line",alias:"series.line",selectionTolerance:20,showMarkers:true,markerConfig:{},style:{},smooth:false,defaultSmoothness:3,fill:false,constructor:function(c){this.callParent(arguments);var e=this,a=e.chart.surface,g=e.chart.shadow,d,b;c.highlightCfg=Ext.Object.merge({"stroke-width":3},c.highlightCfg);Ext.apply(e,c,{shadowAttributes:[{"stroke-width":6,"stroke-opacity":0.05,stroke:"rgb(0, 0, 0)",translate:{x:1,y:1}},{"stroke-width":4,"stroke-opacity":0.1,stroke:"rgb(0, 0, 0)",translate:{x:1,y:1}},{"stroke-width":2,"stroke-opacity":0.15,stroke:"rgb(0, 0, 0)",translate:{x:1,y:1}}]});e.group=a.getGroup(e.seriesId);if(e.showMarkers){e.markerGroup=a.getGroup(e.seriesId+"-markers")}if(g){for(d=0,b=e.shadowAttributes.length;dau.width){a=an.shrink(aB,ae,au.width);aB=a.x;ae=a.y}an.items=[];l=0;az=aB.length;for(Q=0;Qa.x+a.width)?(j-(j+n-a.x-a.width)):j;h=(h-ma.x+a.width)?(j-(j+n-a.x-a.width)):j;h=h-ma.y+a.height)?(h-(h+m-a.y-a.height)):h}}if(u.chart.animate&&!u.chart.resizing){g.show(true);u.onAnimate(g,{to:{x:j,y:h}})}else{g.setAttributes({x:j,y:h},true);if(r&&u.animation){u.animation.on("afteranimate",function(){g.show(true)})}else{g.show(true)}}},highlightItem:function(){var a=this;a.callParent(arguments);if(a.line&&!a.highlighted){if(!("__strokeWidth" in a.line)){a.line.__strokeWidth=parseFloat(a.line.attr["stroke-width"])||0}if(a.line.__anim){a.line.__anim.paused=true}a.line.__anim=Ext.create("Ext.fx.Anim",{target:a.line,to:{"stroke-width":a.line.__strokeWidth+3}});a.highlighted=true}},unHighlightItem:function(){var a=this;a.callParent(arguments);if(a.line&&a.highlighted){a.line.__anim=Ext.create("Ext.fx.Anim",{target:a.line,to:{"stroke-width":a.line.__strokeWidth}});a.highlighted=false}},onPlaceCallout:function(m,r,J,G,F,d,k){if(!F){return}var M=this,s=M.chart,D=s.surface,H=s.resizing,L=M.callouts,t=M.items,v=G==0?false:t[G-1].point,z=(G==t.length-1)?false:t[G+1].point,c=[+J.point[0],+J.point[1]],A,g,N,K,o,q,I=L.offsetFromViz||30,C=L.offsetToSide||10,B=L.offsetBox||3,h,e,j,w,u,E=M.clipRect,b={width:L.styles.width||10,height:L.styles.height||10},n,l;if(!v){v=c}if(!z){z=c}K=(z[1]-v[1])/(z[0]-v[0]);o=(c[1]-v[1])/(c[0]-v[0]);q=(z[1]-c[1])/(z[0]-c[0]);g=Math.sqrt(1+K*K);A=[1/g,K/g];N=[-A[1],A[0]];if(o>0&&q<0&&N[1]<0||o<0&&q>0&&N[1]>0){N[0]*=-1;N[1]*=-1}else{if(Math.abs(o)Math.abs(q)&&N[0]>0){N[0]*=-1;N[1]*=-1}}n=c[0]+N[0]*I;l=c[1]+N[1]*I;h=n+(N[0]>0?0:-(b.width+2*B));e=l-b.height/2-B;j=b.width+2*B;w=b.height+2*B;if(h(E[0]+E[2])){N[0]*=-1}if(e(E[1]+E[3])){N[1]*=-1}n=c[0]+N[0]*I;l=c[1]+N[1]*I;h=n+(N[0]>0?0:-(b.width+2*B));e=l-b.height/2-B;j=b.width+2*B;w=b.height+2*B;if(s.animate){M.onAnimate(m.lines,{to:{path:["M",c[0],c[1],"L",n,l,"Z"]}});if(m.panel){m.panel.setPosition(h,e,true)}}else{m.lines.setAttributes({path:["M",c[0],c[1],"L",n,l,"Z"]},true);if(m.panel){m.panel.setPosition(h,e)}}for(u in m){m[u].show(true)}},isItemInPoint:function(j,g,A,q){var C=this,n=C.items,s=C.selectionTolerance,k=null,z,c,p,v,h,w,b,t,a,l,B,e,d,o,u,r,D=Math.sqrt,m=Math.abs;c=n[q];z=q&&n[q-1];if(q>=h){z=n[h-1]}p=z&&z.point;v=c&&c.point;w=z?p[0]:v[0]-s;b=z?p[1]:v[1];t=c?v[0]:p[0]+s;a=c?v[1]:p[1];e=D((j-w)*(j-w)+(g-b)*(g-b));d=D((j-t)*(j-t)+(g-a)*(g-a));o=Math.min(e,d);if(o<=s){return o==e?z:c}return false},toggleAll:function(a){var e=this,b,d,g,c;if(!a){Ext.chart.series.Cartesian.prototype.hideAll.call(e)}else{Ext.chart.series.Cartesian.prototype.showAll.call(e)}if(e.line){e.line.setAttributes({hidden:!a},true);if(e.line.shadows){for(b=0,c=e.line.shadows,d=c.length;b1?T:U)%w]}||{}));D=Ext.apply({},o.segment,{slice:r,series:s,storeItem:r.storeItem,index:U});s.calcMiddle(D);if(g){D.shadows=r.shadowAttrs[T]}y[U]=D;if(!z){m=Ext.apply({type:"path",group:x,middle:D.middle},Ext.apply(h,e&&{fill:e[(K>1?T:U)%w]}||{}));z=J.add(Ext.apply(m,o))}r.sprite=r.sprite||[];D.sprite=z;r.sprite.push(z);r.point=[D.middle.x,D.middle.y];if(S){o=s.renderer(z,a.getAt(U),o,U,a);z._to=o;z._animating=true;s.onAnimate(z,{to:o,listeners:{afteranimate:{fn:function(){this._animating=false},scope:z}}})}else{o=s.renderer(z,a.getAt(U),Ext.apply(o,{hidden:false}),U,a);z.setAttributes(o,true)}B+=q}}F=x.getCount();for(U=0;U>0]&&x.getAt(U)){x.getAt(U).hide(true)}}if(g){aa=Q.length;for(E=0;E>0]){for(T=0;T90&&v<270)?v+180:v;h=k.attr.rotation.degrees;if(h!=null&&Math.abs(h-v)>180*0.5){if(v>h){v-=360}else{v+=360}v=v%360}else{v=a(v)}b.rotate={degrees:v,x:b.x,y:b.y};break;default:break}b.translate={x:0,y:0};if(e&&!w&&(s!="rotate"||h!=null)){B.onAnimate(k,{to:b})}else{k.setAttributes(b,true)}k._from=r},onPlaceCallout:function(l,o,z,v,u,d,e){var A=this,q=A.chart,j=A.centerX,h=A.centerY,B=z.middle,b={x:B.x,y:B.y},m=B.x-j,k=B.y-h,c=1,n,g=Math.atan2(k,m||1),a=l.label.getBBox(),w=20,t=10,s=10,r;c=z.endRho+w;n=(z.endRho+z.startRho)/2+(z.endRho-z.startRho)/3;b.x=c*Math.cos(g)+j;b.y=c*Math.sin(g)+h;m=n*Math.cos(g);k=n*Math.sin(g);if(q.animate){A.onAnimate(l.lines,{to:{path:["M",m+j,k+h,"L",b.x,b.y,"Z","M",b.x,b.y,"l",m>0?t:-t,0,"z"]}});A.onAnimate(l.box,{to:{x:b.x+(m>0?t:-(t+a.width+2*s)),y:b.y+(k>0?(-a.height-s/2):(-a.height-s/2)),width:a.width+2*s,height:a.height+2*s}});A.onAnimate(l.label,{to:{x:b.x+(m>0?(t+s):-(t+a.width+s)),y:b.y+(k>0?-a.height/4:-a.height/4)}})}else{l.lines.setAttributes({path:["M",m+j,k+h,"L",b.x,b.y,"Z","M",b.x,b.y,"l",m>0?t:-t,0,"z"]},true);l.box.setAttributes({x:b.x+(m>0?t:-(t+a.width+2*s)),y:b.y+(k>0?(-a.height-s/2):(-a.height-s/2)),width:a.width+2*s,height:a.height+2*s},true);l.label.setAttributes({x:b.x+(m>0?(t+s):-(t+a.width+s)),y:b.y+(k>0?-a.height/4:-a.height/4)},true)}for(r in l){l[r].show(true)}},onAnimate:function(b,a){b.show();return this.callParent(arguments)},isItemInPoint:function(l,j,n,e){var h=this,d=h.centerX,c=h.centerY,p=Math.abs,o=p(l-d),m=p(j-c),g=n.startAngle,a=n.endAngle,k=Math.sqrt(o*o+m*m),b=Math.atan2(j-c,l-d)/h.rad;if(b>h.firstAngle){b-=h.accuracy}return(b<=g&&b>a&&k>=n.startRho&&k<=n.endRho)},hideAll:function(c){var g,b,j,h,e,a,d;c=(isNaN(this._index)?c:this._index)||0;this.__excludes=this.__excludes||[];this.__excludes[c]=true;d=this.slices[c].sprite;for(e=0,a=d.length;ea.x+a.width)?(j-(j+n-a.x-a.width)):j;h=(h-ma.x+a.width)?(j-(j+n-a.x-a.width)):j;h=h-ma.y+a.height)?(h-(h+m-a.y-a.height)):h}}if(!l.animate){g.setAttributes({x:j,y:h},true);g.show(true)}else{if(s){o=t.sprite.getActiveAnimation();if(o){o.on("afteranimate",function(){g.setAttributes({x:j,y:h},true);g.show(true)})}else{g.show(true)}}else{v.onAnimate(g,{to:{x:j,y:h}})}}},onPlaceCallout:function(k,m,B,z,w,c,h){var E=this,n=E.chart,u=n.surface,A=n.resizing,D=E.callouts,o=E.items,b=B.point,F,a=k.label.getBBox(),C=30,t=10,s=3,e,d,g,r,q,v=E.bbox,l,j;F=[Math.cos(Math.PI/4),-Math.sin(Math.PI/4)];l=b[0]+F[0]*C;j=b[1]+F[1]*C;e=l+(F[0]>0?0:-(a.width+2*s));d=j-a.height/2-s;g=a.width+2*s;r=a.height+2*s;if(e(v[0]+v[2])){F[0]*=-1}if(d(v[1]+v[3])){F[1]*=-1}l=b[0]+F[0]*C;j=b[1]+F[1]*C;e=l+(F[0]>0?0:-(a.width+2*s));d=j-a.height/2-s;g=a.width+2*s;r=a.height+2*s;if(n.animate){E.onAnimate(k.lines,{to:{path:["M",b[0],b[1],"L",l,j,"Z"]}},true);E.onAnimate(k.box,{to:{x:e,y:d,width:g,height:r}},true);E.onAnimate(k.label,{to:{x:l+(F[0]>0?s:-(a.width+s)),y:j}},true)}else{k.lines.setAttributes({path:["M",b[0],b[1],"L",l,j,"Z"]},true);k.box.setAttributes({x:e,y:d,width:g,height:r},true);k.label.setAttributes({x:l+(F[0]>0?s:-(a.width+s)),y:j},true)}for(q in k){k[q].show(true)}},onAnimate:function(b,a){b.show();return this.callParent(arguments)},isItemInPoint:function(c,h,e){var b,d=10,a=Math.abs;function g(i){var k=a(i[0]-c),j=a(i[1]-h);return Math.sqrt(k*k+j*j)}b=e.point;return(b[0]-d<=c&&b[0]+d>=c&&b[1]-d<=h&&b[1]+d>=h)}});Ext.define("Ext.layout.container.Table",{alias:["layout.table"],extend:"Ext.layout.container.Container",alternateClassName:"Ext.layout.TableLayout",monitorResize:false,type:"table",clearEl:true,targetCls:Ext.baseCSSPrefix+"table-layout-ct",tableCls:Ext.baseCSSPrefix+"table-layout",cellCls:Ext.baseCSSPrefix+"table-layout-cell",tableAttrs:null,itemSizePolicy:{setsWidth:0,setsHeight:0},getItemSizePolicy:function(a){return this.itemSizePolicy},getLayoutItems:function(){var g=this,b=[],c=g.callParent(),e,a=c.length,d;for(d=0;d=h||n[d]>0){if(d>=h){d=0;a=0;b++;for(c=0;c0){n[c]--}}}else{d++}}m.push({rowIdx:b,cellIdx:a});for(c=l.colspan||1;c;--c){n[d]=l.rowspan||1;++d}++a}return m},getRenderTree:function(){var k=this,h=k.getLayoutItems(),o,p=[],q=Ext.apply({tag:"table",role:"presentation",cls:k.tableCls,cellspacing:0,cn:{tag:"tbody",cn:p}},k.tableAttrs),c=k.tdAttrs,d=k.needsDivWrap(),e,g=h.length,n,m,j,b,a,l;o=k.calculateCells(h);for(e=0;e0){b.create=g;h=true}if(d.length>0){b.update=d;h=true}if(a.length>0){b.destroy=a;h=true}if(h&&e.fireEvent("beforesync",b)!==false){c=c||{};e.proxy.batch(Ext.apply(c,{operations:b,listeners:e.getBatchListeners()}))}return e},getBatchListeners:function(){var b=this,a={scope:b,exception:b.onBatchException};if(b.batchUpdateMode=="operation"){a.operationcomplete=b.onBatchOperationComplete}else{a.complete=b.onBatchComplete}return a},save:function(){return this.sync.apply(this,arguments)},load:function(b){var c=this,a;b=Ext.apply({action:"read",filters:c.filters.items,sorters:c.getSorters()},b);c.lastOptions=b;a=new Ext.data.Operation(b);if(c.fireEvent("beforeload",c,a)!==false){c.loading=true;c.proxy.read(a,c.onProxyLoad,c)}return c},reload:function(a){return this.load(Ext.apply(this.lastOptions,a))},afterEdit:function(a,e){var d=this,b,c;if(d.autoSync&&!d.autoSyncSuspended){for(b=e.length;b--;){if(a.fields.get(e[b]).persist){c=true;break}}if(c){d.sync()}}d.fireEvent("update",d,a,Ext.data.Model.EDIT,e)},afterReject:function(a){this.fireEvent("update",this,a,Ext.data.Model.REJECT,null)},afterCommit:function(a){this.fireEvent("update",this,a,Ext.data.Model.COMMIT,null)},destroyStore:function(){var a=this;if(!a.isDestroyed){if(a.storeId){Ext.data.StoreManager.unregister(a)}a.clearData();a.data=a.tree=a.sorters=a.filters=a.groupers=null;if(a.reader){a.reader.destroyReader()}a.proxy=a.reader=a.writer=null;a.clearListeners();a.isDestroyed=true;if(a.implicitModel){Ext.destroy(a.model)}else{a.model=null}}},doSort:function(a){var b=this;if(b.remoteSort){b.load()}else{b.data.sortBy(a);b.fireEvent("datachanged",b);b.fireEvent("refresh",b)}},clearData:Ext.emptyFn,getCount:Ext.emptyFn,getById:Ext.emptyFn,removeAll:Ext.emptyFn,isLoading:function(){return !!this.loading},suspendAutoSync:function(){this.autoSyncSuspended=true},resumeAutoSync:function(){this.autoSyncSuspended=false}});Ext.define("Ext.data.ResultSet",{loaded:true,count:0,total:0,success:false,constructor:function(a){Ext.apply(this,a);this.totalRecords=this.total;if(a.count===undefined){this.count=this.records.length}}});Ext.define("Ext.data.reader.Reader",{requires:["Ext.data.ResultSet","Ext.XTemplate"],alternateClassName:["Ext.data.Reader","Ext.data.DataReader"],mixins:{observable:"Ext.util.Observable"},totalProperty:"total",successProperty:"success",root:"",implicitIncludes:true,readRecordsOnFailure:true,isReader:true,applyDefaults:true,lastFieldGeneration:null,constructor:function(a){var b=this;b.mixins.observable.constructor.call(b,a);b.fieldCount=0;b.model=Ext.ModelManager.getModel(b.model);b.accessExpressionFn=Ext.Function.bind(b.createFieldAccessExpression,b);if(b.model&&b.model.prototype.fields){b.buildExtractors()}this.addEvents("exception")},setModel:function(a,c){var b=this;b.model=Ext.ModelManager.getModel(a);b.buildExtractors(true);if(c&&b.proxy){b.proxy.setModel(b.model,true)}},read:function(a){var b;if(a){b=a.responseText?this.getResponseData(a):this.readRecords(a)}return b||this.nullResultSet},readRecords:function(c){var d=this,i,b,a,g,e,h,j;if(d.lastFieldGeneration!==d.model.prototype.fields.generation){d.buildExtractors(true)}d.rawData=c;c=d.getData(c);i=true;b=0;a=[];if(d.successProperty){h=d.getSuccess(c);if(h===false||h==="false"){i=false}}if(d.messageProperty){j=d.getMessage(c)}if(d.readRecordsOnFailure||i){g=Ext.isArray(c)?c:d.getRoot(c);if(g){e=g.length}if(d.totalProperty){h=parseInt(d.getTotal(c),10);if(!isNaN(h)){e=h}}if(g){a=d.extractData(g);b=a.length}}return new Ext.data.ResultSet({total:e||b,count:b,records:a,success:i,message:j})},extractData:function(k){var j=this,d=[],b=j.model,a=k.length,e,c,h,g;if(!k.length&&Ext.isObject(k)){k=[k];a=1}for(g=0;g',' ,__field{#} = fields.get("{name}")\n',"",";\n","return function(dest, source, record) {\n",'',' value = {[ this.createFieldAccessExpression(values, "__field" + xindex, "source") ]};\n','',' dest["{name}"] = value === undefined ? __field{#}.convert(__field{#}.defaultValue, record) : __field{#}.convert(value, record);\n',''," if (value === undefined) {\n"," if (me.applyDefaults) {\n",'',' dest["{name}"] = __field{#}.convert(__field{#}.defaultValue, record);\n',"",' dest["{name}"] = __field{#}.defaultValue\n',""," };\n"," } else {\n",'',' dest["{name}"] = __field{#}.convert(value, record);\n',"",' dest["{name}"] = value;\n',""," };",""," if (value !== undefined) {\n",'',' dest["{name}"] = __field{#}.convert(value, record);\n',"",' dest["{name}"] = value;\n',""," }\n","","",'',' if (record && (internalId = {[ this.createFieldAccessExpression({mapping: values.clientIdProp}, null, "source") ]})) {\n',' record.{["internalId"]} = internalId;\n'," }\n","","};"],buildRecordDataExtractor:function(){var c=this,a=c.model.prototype,b={clientIdProp:a.clientIdProperty,fields:a.fields.items};c.recordDataExtractorTemplate.createFieldAccessExpression=c.accessExpressionFn;return Ext.functionFactory(c.recordDataExtractorTemplate.apply(b)).call(c)},destroyReader:function(){var a=this;delete a.proxy;delete a.model;delete a.convertRecordData;delete a.getId;delete a.getTotal;delete a.getSuccess;delete a.getMessage}},function(){var a=this.prototype;Ext.apply(a,{nullResultSet:new Ext.data.ResultSet({total:0,count:0,records:[],success:true}),recordDataExtractorTemplate:new Ext.XTemplate(a.recordDataExtractorTemplate)})});Ext.define("Ext.data.reader.Json",{extend:"Ext.data.reader.Reader",alternateClassName:"Ext.data.JsonReader",alias:"reader.json",root:"",useSimpleAccessors:false,readRecords:function(a){if(a.metaData){this.onMetaChange(a.metaData)}this.jsonData=a;return this.callParent([a])},getResponseData:function(a){var d,b;try{d=Ext.decode(a.responseText);return this.readRecords(d)}catch(c){b=new Ext.data.ResultSet({total:0,count:0,records:[],success:false,message:c.message});this.fireEvent("exception",this,a,b);Ext.Logger.warn("Unable to parse the JSON returned by the server");return b}},buildExtractors:function(){var a=this;a.callParent(arguments);if(a.root){a.getRoot=a.createAccessor(a.root)}else{a.getRoot=function(b){return b}}},extractData:function(a){var e=this.record,d=[],c,b;if(e){c=a.length;if(!c&&Ext.isObject(a)){c=1;a=[a]}for(b=0;b=0){return Ext.functionFactory("obj","return obj"+(b>0?".":"")+c)}}return function(d){return d[c]}}}()),createFieldAccessExpression:(function(){var a=/[\[\.]/;return function(i,d,c){var e=this,g=(i.mapping!==null),h=g?i.mapping:i.name,b,j;if(typeof h==="function"){b=d+".mapping("+c+", this)"}else{if(this.useSimpleAccessors===true||((j=String(h).search(a))<0)){if(!g||isNaN(h)){h='"'+h+'"'}b=c+"["+h+"]"}else{b=c+(j>0?".":"")+h}}return b}}())});Ext.define("Ext.data.writer.Writer",{alias:"writer.base",alternateClassName:["Ext.data.DataWriter","Ext.data.Writer"],writeAllFields:true,nameProperty:"name",isWriter:true,constructor:function(a){Ext.apply(this,a)},write:function(e){var c=e.operation,b=c.records||[],a=b.length,d=0,g=[];for(;d1){e[l]=g.internalId}}else{e[g.idProperty]=g.getId()}return e}});Ext.define("Ext.data.writer.Json",{extend:"Ext.data.writer.Writer",alternateClassName:"Ext.data.JsonWriter",alias:"writer.json",root:undefined,encode:false,allowSingle:true,writeRecords:function(b,c){var a=this.root;if(this.allowSingle&&c.length==1){c=c[0]}if(this.encode){if(a){b.params[a]=Ext.encode(c)}else{}}else{b.jsonData=b.jsonData||{};if(a){b.jsonData[a]=c}else{b.jsonData=c}}return b}});Ext.define("Ext.data.proxy.Server",{extend:"Ext.data.proxy.Proxy",alias:"proxy.server",alternateClassName:"Ext.data.ServerProxy",uses:["Ext.data.Request"],pageParam:"page",startParam:"start",limitParam:"limit",groupParam:"group",groupDirectionParam:"groupDir",sortParam:"sort",filterParam:"filter",directionParam:"dir",simpleSortMode:false,simpleGroupMode:false,noCache:true,cacheString:"_dc",timeout:30000,constructor:function(a){var b=this;a=a||{};b.callParent([a]);b.extraParams=a.extraParams||{};b.api=Ext.apply({},a.api||b.api);b.nocache=b.noCache},create:function(){return this.doRequest.apply(this,arguments)},read:function(){return this.doRequest.apply(this,arguments)},update:function(){return this.doRequest.apply(this,arguments)},destroy:function(){return this.doRequest.apply(this,arguments)},setExtraParam:function(a,b){this.extraParams[a]=b},buildRequest:function(a){var c=this,d=Ext.applyIf(a.params||{},c.extraParams||{}),b;d=Ext.applyIf(d,c.getParams(a));if(a.id!==undefined&&d.id===undefined){d.id=a.id}b=new Ext.data.Request({params:d,action:a.action,records:a.records,operation:a,url:a.url,proxy:c});b.url=c.buildUrl(b);a.request=b;return b},processResponse:function(h,a,c,b,g,i){var e=this,d,j;if(h===true){d=e.getReader();d.applyDefaults=a.action==="read";j=d.read(e.extractResponseData(b));if(j.success!==false){Ext.apply(a,{response:b,resultSet:j});a.commitRecords(j.records);a.setCompleted();a.setSuccessful()}else{a.setException(j.message);e.fireEvent("exception",this,b,a)}}else{e.setException(a,b);e.fireEvent("exception",this,b,a)}if(typeof g=="function"){g.call(i||e,a)}e.afterRequest(c,h)},setException:function(b,a){b.setException({status:a.status,statusText:a.statusText})},extractResponseData:function(a){return a},applyEncoding:function(a){return Ext.encode(a)},encodeSorters:function(d){var b=[],c=d.length,a=0;for(;a0){if(d){t[c]=r[0].property;t[k]=r[0].direction||"ASC"}else{t[c]=u.encodeSorters(r)}}if(e&&a&&a.length>0){if(j){t[e]=a[0].property;t[m]=a[0].direction}else{t[e]=u.encodeSorters(a)}}if(o&&l&&l.length>0){t[o]=u.encodeFilters(l)}return t},buildUrl:function(c){var b=this,a=b.getUrl(c);if(b.noCache){a=Ext.urlAppend(a,Ext.String.format("{0}={1}",b.cacheString,Ext.Date.now()))}return a},getUrl:function(a){return a.url||this.api[a.action]||this.url},doRequest:function(a,c,b){},afterRequest:Ext.emptyFn,onDestroy:function(){Ext.destroy(this.reader,this.writer)}});Ext.define("Ext.data.proxy.Ajax",{requires:["Ext.util.MixedCollection","Ext.Ajax"],extend:"Ext.data.proxy.Server",alias:"proxy.ajax",alternateClassName:["Ext.data.HttpProxy","Ext.data.AjaxProxy"],actionMethods:{create:"POST",read:"GET",update:"POST",destroy:"POST"},doRequest:function(a,e,b){var d=this.getWriter(),c=this.buildRequest(a,e,b);if(a.allowWrite()){c=d.write(c)}Ext.apply(c,{headers:this.headers,timeout:this.timeout,scope:this,callback:this.createRequestCallback(c,a,e,b),method:this.getMethod(c),disableCaching:false});Ext.Ajax.request(c);return c},getMethod:function(a){return this.actionMethods[a.action]},createRequestCallback:function(d,a,e,b){var c=this;return function(h,i,g){c.processResponse(i,a,d,g,e,b)}}},function(){Ext.data.HttpProxy=this});Ext.define("Ext.data.proxy.Client",{extend:"Ext.data.proxy.Proxy",alternateClassName:"Ext.data.ClientProxy",isSynchronous:true,clear:function(){}});Ext.define("Ext.data.proxy.Memory",{extend:"Ext.data.proxy.Client",alias:"proxy.memory",alternateClassName:"Ext.data.MemoryProxy",constructor:function(a){this.callParent([a]);this.setReader(this.reader)},updateOperation:function(b,g,d){var c=0,e=b.getRecords(),a=e.length;for(c;c0){for(;a.first&&b;b--){a.removeAtKey(a.first.key)}}}});Ext.define("Ext.data.Store",{extend:"Ext.data.AbstractStore",alias:"store.store",requires:["Ext.data.StoreManager","Ext.data.Model","Ext.data.proxy.Ajax","Ext.data.proxy.Memory","Ext.data.reader.Json","Ext.data.writer.Json","Ext.util.LruCache"],uses:["Ext.ModelManager","Ext.util.Grouper"],remoteSort:false,remoteFilter:false,remoteGroup:false,groupField:undefined,groupDir:"ASC",trailingBufferZone:25,leadingBufferZone:200,pageSize:undefined,currentPage:1,clearOnPageLoad:true,loading:false,sortOnFilter:true,buffered:false,purgePageCount:5,clearRemovedOnLoad:true,defaultPageSize:25,addRecordsOptions:{addRecords:true},statics:{recordIdFn:function(a){return a.internalId},recordIndexFn:function(a){return a.index}},onClassExtended:function(b,d,a){var c=d.model,e;if(typeof c=="string"){e=a.onBeforeCreated;a.onBeforeCreated=function(){var h=this,g=arguments;Ext.require(c,function(){e.apply(h,g)})}}},constructor:function(b){b=Ext.Object.merge({},b);var d=this,g=b.groupers||d.groupers,a=b.groupField||d.groupField,c,e;e=b.data||d.data;d.data=new Ext.util.MixedCollection(false,Ext.data.Store.recordIdFn);if(e){d.inlineData=e;delete b.data}if(!g&&a){g=[{property:a,direction:b.groupDir||d.groupDir}]}delete b.groupers;d.groupers=new Ext.util.MixedCollection();d.groupers.addAll(d.decodeGroupers(g));this.callParent([b]);if(d.buffered){d.pageMap=new d.PageMap({pageSize:d.pageSize,maxSize:d.purgePageCount,listeners:{clear:d.cancelAllPrefetches,scope:d}});d.pageRequests={};d.sortOnLoad=false;d.filterOnLoad=false}if(d.remoteGroup){d.remoteSort=true}if(d.groupers.items.length&&!d.remoteGroup){d.sort(d.groupers.items,"prepend",false)}c=d.proxy;e=d.inlineData;if(!d.buffered&&!d.pageSize){d.pageSize=d.defaultPageSize}if(e){if(c instanceof Ext.data.proxy.Memory){c.data=e;d.read()}else{d.add.apply(d,[e])}d.sort();delete d.inlineData}else{if(d.autoLoad){Ext.defer(d.load,10,d,[typeof d.autoLoad==="object"?d.autoLoad:undefined])}}},destroyStore:function(){this.callParent(arguments);if(this.pageMap){this.pageMap.clear()}},onBeforeSort:function(){var a=this.groupers;if(a.getCount()>0){this.sort(a.items,"prepend",false)}},decodeGroupers:function(e){if(!Ext.isArray(e)){if(e===undefined){e=[]}else{e=[e]}}var d=e.length,g=Ext.util.Grouper,b,c,a=[];for(c=0;c0},fireGroupChange:function(){this.fireEvent("groupchange",this,this.groupers)},getGroups:function(b){var d=this.data.items,a=d.length,c=[],k={},g,h,j,e;for(e=0;e-1){b=e.phantom!==true;if(!k&&b){e.removedFrom=g;h.removed.push(e)}e.unjoin(h);h.data.remove(e);j=j||b;h.fireEvent("remove",h,e,g)}}h.fireEvent("datachanged",h);if(!k&&h.autoSync&&j&&!h.autoSyncSuspended){h.sync()}},removeAt:function(b){var a=this.getAt(b);if(a){this.remove(a)}},load:function(a){var b=this;a=a||{};if(typeof a=="function"){a={callback:a}}a.groupers=a.groupers||b.groupers.items;a.page=a.page||b.currentPage;a.start=(a.start!==undefined)?a.start:(a.page-1)*b.pageSize;a.limit=a.limit||b.pageSize;a.addRecords=a.addRecords||false;if(b.buffered){return b.loadToPrefetch(a)}return b.callParent([a])},reload:function(l){var g=this,h,b,e,k,d,a,j,c;if(!l){l={}}if(g.buffered){delete g.totalCount;a=function(){if(g.rangeCached(h,b)){g.loading=false;g.pageMap.un("pageAdded",a);c=g.pageMap.getRange(h,b);g.loadRecords(c,{start:h});g.fireEvent("load",g,c,true)}};j=Math.ceil((g.leadingBufferZone+g.trailingBufferZone)/2);h=l.start||g.getAt(0).index;b=h+(l.count||g.getCount())-1;e=g.getPageFromRecordIndex(Math.max(h-j,0));k=g.getPageFromRecordIndex(b+j);g.pageMap.clear(true);if(g.fireEvent("beforeload",g,l)!==false){g.loading=true;for(d=e;d<=k;d++){g.prefetchPage(d,l)}g.pageMap.on("pageAdded",a)}}else{return g.callParent(arguments)}},onProxyLoad:function(b){var d=this,c=b.getResultSet(),a=b.getRecords(),e=b.wasSuccessful();if(c){d.totalCount=c.total}if(e){d.loadRecords(a,b)}d.loading=false;if(d.hasListeners.load){d.fireEvent("load",d,a,e)}if(d.hasListeners.read){d.fireEvent("read",d,a,e)}Ext.callback(b.callback,b.scope||d,[a,b,e])},getNewRecords:function(){return this.data.filterBy(this.filterNew).items},getUpdatedRecords:function(){return this.data.filterBy(this.filterUpdated).items},filter:function(e,g){if(Ext.isString(e)){e={property:e,value:g}}var d=this,a=d.decodeFilters(e),b=0,h=d.sorters.length&&d.sortOnFilter&&!d.remoteSort,c=a.length;for(;bthis.totalCount)?this.totalCount-1:c;var h=this,e=h.lastRequestStart,d={prefetchStart:i,prefetchEnd:c,cb:a,scope:g},b;h.lastRequestStart=i;if(h.rangeCached(i,c)){if(i0){c=b[0].get(g)}for(;d0){a=c[0].get(g)}for(;da){a=e}}return a},average:function(c,a){var b=this;if(a&&b.isGrouped()){return b.aggregate(b.getAverage,b,true,[c])}else{return b.getAverage(b.data.items,c)}},getAverage:function(b,e){var c=0,a=b.length,d=0;if(b.length>0){for(;c1){for(a=b.length;c0){g.timeout=setTimeout(Ext.bind(j.handleTimeout,j,[g]),m)}j.setupErrorHandling(g);j[l]=Ext.bind(j.handleResponse,j,[g],true);j.loadScript(g);return g},abort:function(c){var b=this,d=b.requests,a;if(c){if(!c.id){c=d[c]}b.handleAbort(c)}else{for(a in d){if(d.hasOwnProperty(a)){b.abort(d[a])}}}},setupErrorHandling:function(a){a.script.onerror=Ext.bind(this.handleError,this,[a])},handleAbort:function(a){a.errorType="abort";this.handleResponse(null,a)},handleError:function(a){a.errorType="error";this.handleResponse(null,a)},cleanupErrorHandling:function(a){a.script.onerror=null},handleTimeout:function(a){a.errorType="timeout";this.handleResponse(null,a)},handleResponse:function(a,b){var c=true;if(b.timeout){clearTimeout(b.timeout)}delete this[b.callbackName];delete this.requests[b.id];this.cleanupErrorHandling(b);Ext.fly(b.script).remove();if(b.errorType){c=false;Ext.callback(b.failure,b.scope,[b.errorType])}else{Ext.callback(b.success,b.scope,[a])}Ext.callback(b.callback,b.scope,[c,a,b.errorType])},createScript:function(c,d,b){var a=document.createElement("script");a.setAttribute("src",Ext.urlAppend(c,Ext.Object.toQueryString(d)));a.setAttribute("async",true);a.setAttribute("type","text/javascript");return a},loadScript:function(a){Ext.getHead().appendChild(a.script)}});Ext.define("Ext.data.proxy.JsonP",{extend:"Ext.data.proxy.Server",alternateClassName:"Ext.data.ScriptTagProxy",alias:["proxy.jsonp","proxy.scripttag"],requires:["Ext.data.JsonP"],defaultWriterType:"base",callbackKey:"callback",recordParam:"records",autoAppendParams:true,constructor:function(){this.addEvents("exception");this.callParent(arguments)},doRequest:function(a,h,b){var d=this,e=d.getWriter(),c=d.buildRequest(a),g=c.params;if(a.allowWrite()){c=e.write(c)}Ext.apply(c,{callbackKey:d.callbackKey,timeout:d.timeout,scope:d,disableCaching:false,callback:d.createRequestCallback(c,a,h,b)});if(d.autoAppendParams){c.params={}}c.jsonp=Ext.data.JsonP.request(c);c.params=g;a.setStarted();d.lastRequest=c;return c},createRequestCallback:function(d,a,e,b){var c=this;return function(i,g,h){delete c.lastRequest;c.processResponse(i,a,d,g,e,b)}},setException:function(b,a){b.setException(b.request.jsonp.errorType)},buildUrl:function(h){var g=this,b=g.callParent(arguments),j=Ext.apply({},h.params),e=j.filters,a,d,c;delete j.filters;if(g.autoAppendParams){b=Ext.urlAppend(b,Ext.Object.toQueryString(j))}if(e&&e.length){for(c=0;c0){b=Ext.urlAppend(b,Ext.String.format("{0}={1}",g.recordParam,g.encodeRecords(a)))}return b},destroy:function(){this.abort();this.callParent(arguments)},abort:function(){var a=this.lastRequest;if(a){Ext.data.JsonP.abort(a.jsonp)}},encodeRecords:function(b){var d="",c=0,a=b.length;for(;c0},isExpandable:function(){var a=this;if(a.get("expandable")){return !(a.isLeaf()||(a.isLoaded()&&!a.hasChildNodes()))}return false},triggerUIUpdate:function(){this.afterEdit([])},appendChild:function(b,k,c){var h=this,d,g,e,j,a;if(Ext.isArray(b)){h.callStore("suspendAutoSync");for(d=0,g=b.length-1;d0?c-1:0,a=h.childNodes.length;d0?k-1:0,c=h.childNodes.length;d0){Ext.Array.sort(d,g);for(c=0;cj){i=i.substring(i.length-j)}else{if(i.length>>16)&4095)|(j.version<<12),4);k[3]=a(128|((j.clockSeq>>>8)&63),2)+a(j.clockSeq&255,2);k[4]=a(j.salt.hi,4)+a(j.salt.lo,8);if(j.version==4){j.init()}else{++i.lo;if(i.lo>=c){i.lo=0;++i.hi}}return k.join("-").toLowerCase()},getRecId:function(i){return i.getId()},init:function(){var j=this,i,k;if(j.version==4){j.clockSeq=d(0,h-1);i=j.salt||(j.salt={});k=j.timestamp||(j.timestamp={});i.lo=d(0,c-1);i.hi=d(0,g-1);k.lo=d(0,c-1);k.hi=d(0,e-1)}else{j.salt=b(j.salt);j.timestamp=b(j.timestamp);j.salt.hi|=256}},reconfigure:function(i){Ext.apply(this,i);this.init()}}}()));Ext.define("Ext.data.reader.Xml",{extend:"Ext.data.reader.Reader",alternateClassName:"Ext.data.XmlReader",alias:"reader.xml",createAccessor:function(b){var a=this;if(Ext.isEmpty(b)){return Ext.emptyFn}if(Ext.isFunction(b)){return b}return function(c){return a.getNodeValue(Ext.DomQuery.selectNode(b,c))}},getNodeValue:function(a){if(a&&a.firstChild){return a.firstChild.nodeValue}return undefined},getResponseData:function(a){var c=a.responseXML,b,d;if(!c){d="XML data not found in the response";b=new Ext.data.ResultSet({total:0,count:0,records:[],success:false,message:d});this.fireEvent("exception",this,a,b);Ext.Logger.warn(d);return b}return this.readRecords(c)},getData:function(a){return a.documentElement||a},getRoot:function(b){var c=b.nodeName,a=this.root;if(!a||(c&&c==a)){return b}else{if(Ext.DomQuery.isXml(b)){return Ext.DomQuery.selectNode(a,b)}}},extractData:function(a){var b=this.record;if(b!=a.nodeName){a=Ext.DomQuery.select(b,a)}else{a=[a]}return this.callParent([a])},getAssociatedDataRoot:function(b,a){return Ext.DomQuery.select(a,b)[0]},readRecords:function(a){if(Ext.isArray(a)){a=a[0]}this.xmlData=a;return this.callParent([a])},createFieldAccessExpression:function(e,d,c){var b=e.mapping||e.name,a;if(typeof b==="function"){a=d+".mapping("+c+", this)"}else{a='me.getNodeValue(Ext.DomQuery.selectNode("'+b+'", '+c+"))"}return a}});Ext.define("Ext.data.writer.Xml",{extend:"Ext.data.writer.Writer",alternateClassName:"Ext.data.XmlWriter",alias:"writer.xml",documentRoot:"xmlData",defaultDocumentRoot:"xmlData",header:"",record:"record",writeRecords:function(a,b){var h=this,d=[],c=0,g=b.length,j=h.documentRoot,e=h.record,m=b.length!==1,l,k;d.push(h.header||"");if(!j&&m){j=h.defaultDocumentRoot}if(j){d.push("<",j,">")}for(;c");for(k in l){if(l.hasOwnProperty(k)){d.push("<",k,">",l[k],"")}}d.push("")}if(j){d.push("")}a.xmlData=d.join("");return a}});Ext.define("Ext.data.XmlStore",{extend:"Ext.data.Store",alias:"store.xml",requires:["Ext.data.proxy.Ajax","Ext.data.reader.Xml","Ext.data.writer.Xml"],constructor:function(a){a=Ext.apply({proxy:{type:"ajax",reader:"xml",writer:"xml"}},a);this.callParent([a])}});Ext.define("Ext.data.association.BelongsTo",{extend:"Ext.data.association.Association",alternateClassName:"Ext.data.BelongsToAssociation",alias:"association.belongsto",constructor:function(c){this.callParent(arguments);var e=this,a=e.ownerModel.prototype,g=e.associatedName,d=e.getterName||"get"+g,b=e.setterName||"set"+g;Ext.applyIf(e,{name:g,foreignKey:g.toLowerCase()+"_id",instanceName:g+"BelongsToInstance",associationKey:g.toLowerCase()});a[d]=e.createGetter();a[b]=e.createSetter()},createSetter:function(){var b=this,a=b.foreignKey;return function(e,c,d){if(e&&e.isModel){e=e.getId()}this.set(a,e);if(Ext.isFunction(c)){c={callback:c,scope:d||this}}if(Ext.isObject(c)){return this.save(c)}}},createGetter:function(){var d=this,e=d.associatedName,g=d.associatedModel,c=d.foreignKey,b=d.primaryKey,a=d.instanceName;return function(k,l){k=k||{};var j=this,m=j.get(c),n,h,i;if(k.reload===true||j[a]===undefined){h=Ext.ModelManager.create({},e);h.set(b,m);if(typeof k=="function"){k={callback:k,scope:l||j}}n=k.success;k.success=function(o){j[a]=o;if(n){n.apply(this,arguments)}};g.load(m,k);j[a]=h;return h}else{h=j[a];i=[h];l=l||k.scope||j;Ext.callback(k,l,i);Ext.callback(k.success,l,i);Ext.callback(k.failure,l,i);Ext.callback(k.callback,l,i);return h}}},read:function(b,a,c){b[this.instanceName]=a.read([c]).records[0]}});Ext.define("Ext.util.Inflector",{singleton:true,plurals:[[(/(quiz)$/i),"$1zes"],[(/^(ox)$/i),"$1en"],[(/([m|l])ouse$/i),"$1ice"],[(/(matr|vert|ind)ix|ex$/i),"$1ices"],[(/(x|ch|ss|sh)$/i),"$1es"],[(/([^aeiouy]|qu)y$/i),"$1ies"],[(/(hive)$/i),"$1s"],[(/(?:([^f])fe|([lr])f)$/i),"$1$2ves"],[(/sis$/i),"ses"],[(/([ti])um$/i),"$1a"],[(/(buffal|tomat|potat)o$/i),"$1oes"],[(/(bu)s$/i),"$1ses"],[(/(alias|status|sex)$/i),"$1es"],[(/(octop|vir)us$/i),"$1i"],[(/(ax|test)is$/i),"$1es"],[(/^person$/),"people"],[(/^man$/),"men"],[(/^(child)$/),"$1ren"],[(/s$/i),"s"],[(/$/),"s"]],singulars:[[(/(quiz)zes$/i),"$1"],[(/(matr)ices$/i),"$1ix"],[(/(vert|ind)ices$/i),"$1ex"],[(/^(ox)en/i),"$1"],[(/(alias|status)es$/i),"$1"],[(/(octop|vir)i$/i),"$1us"],[(/(cris|ax|test)es$/i),"$1is"],[(/(shoe)s$/i),"$1"],[(/(o)es$/i),"$1"],[(/(bus)es$/i),"$1"],[(/([m|l])ice$/i),"$1ouse"],[(/(x|ch|ss|sh)es$/i),"$1"],[(/(m)ovies$/i),"$1ovie"],[(/(s)eries$/i),"$1eries"],[(/([^aeiouy]|qu)ies$/i),"$1y"],[(/([lr])ves$/i),"$1f"],[(/(tive)s$/i),"$1"],[(/(hive)s$/i),"$1"],[(/([^f])ves$/i),"$1fe"],[(/(^analy)ses$/i),"$1sis"],[(/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i),"$1$2sis"],[(/([ti])a$/i),"$1um"],[(/(n)ews$/i),"$1ews"],[(/people$/i),"person"],[(/s$/i),""]],uncountable:["sheep","fish","series","species","money","rice","information","equipment","grass","mud","offspring","deer","means"],singular:function(b,a){this.singulars.unshift([b,a])},plural:function(b,a){this.plurals.unshift([b,a])},clearSingulars:function(){this.singulars=[]},clearPlurals:function(){this.plurals=[]},isTransnumeral:function(a){return Ext.Array.indexOf(this.uncountable,a)!=-1},pluralize:function(g){if(this.isTransnumeral(g)){return g}var e=this.plurals,d=e.length,a,c,b;for(b=0;bb.tolerance){b.triggerStart(g)}else{return}}if(b.fireEvent("mousemove",b,g)===false){b.onMouseUp(g)}else{b.onDrag(g);b.fireEvent("drag",b,g)}},onMouseUp:function(b){var a=this;a.mouseIsDown=false;if(a.mouseIsOut){a.mouseIsOut=false;a.onMouseOut(b)}b.preventDefault();if(Ext.isIE&&document.releaseCapture){document.releaseCapture()}a.fireEvent("mouseup",a,b);a.endDrag(b)},endDrag:function(d){var b=this,c=Ext.getDoc(),a=b.active;c.un("mousemove",b.onMouseMove,b);c.un("mouseup",b.onMouseUp,b);c.un("selectstart",b.stopSelect,b);b.clearStart();b.active=false;if(a){b.onEnd(d);b.fireEvent("dragend",b,d)}delete b._constrainRegion;delete Ext.EventObject.dragTracked},triggerStart:function(b){var a=this;a.clearStart();a.active=true;a.onStart(b);a.fireEvent("dragstart",a,b)},clearStart:function(){var a=this.timer;if(a){clearTimeout(a);delete this.timer}},stopSelect:function(a){a.stopEvent();return false},onBeforeStart:function(a){},onStart:function(a){},onDrag:function(a){},onEnd:function(a){},getDragTarget:function(){return this.dragTarget},getDragCt:function(){return this.el},getConstrainRegion:function(){var a=this;if(a.constrainTo){if(a.constrainTo instanceof Ext.util.Region){return a.constrainTo}if(!a._constrainRegion){a._constrainRegion=Ext.fly(a.constrainTo).getViewRegion()}}else{if(!a._constrainRegion){a._constrainRegion=a.getDragCt().getViewRegion()}}return a._constrainRegion},getXY:function(a){return a?this.constrainModes[a](this,this.lastXY):this.lastXY},getOffset:function(c){var b=this.getXY(c),a=this.startXY;return[b[0]-a[0],b[1]-a[1]]},constrainModes:{point:function(b,d){var c=b.dragRegion,a=b.getConstrainRegion();if(!a){return d}c.x=c.left=c[0]=c.right=d[0];c.y=c.top=c[1]=c.bottom=d[1];c.constrainTo(a);return[c.left,c.top]},dragTarget:function(c,g){var b=c.startXY,e=c.startRegion.copy(),a=c.getConstrainRegion(),d;if(!a){return g}e.translateBy(g[0]-b[0],g[1]-b[1]);if(e.right>a.right){g[0]+=d=(a.right-e.right);e.left+=d}if(e.lefta.bottom){g[1]+=d=(a.bottom-e.bottom);e.top+=d}if(e.top0){if(b){for(d=0,a=b.length;d0){this.sendRequest(a==1?b[0]:b);this.callBuffer=[]}},configureFormRequest:function(e,a,b,i,j){var h=this,c=new Ext.direct.Transaction({provider:h,action:e,method:a.name,args:[b,i,j],callback:j&&Ext.isFunction(i)?Ext.Function.bind(i,j):i,isForm:true}),g,d;if(h.fireEvent("beforecall",h,c,a)!==false){Ext.direct.Manager.addTransaction(c);g=String(b.getAttribute("enctype")).toLowerCase()=="multipart/form-data";d={extTID:c.id,extAction:e,extMethod:a.name,extType:"rpc",extUpload:String(g)};Ext.apply(c,{form:Ext.getDom(b),isUpload:g,params:i&&Ext.isObject(i.params)?Ext.apply(d,i.params):d});h.fireEvent("call",h,c,a);h.sendFormRequest(c)}},sendFormRequest:function(a){Ext.Ajax.request({url:this.url,params:a.params,callback:this.onData,scope:this,form:a.form,isUpload:a.isUpload,transaction:a})}});Ext.define("Ext.draw.Matrix",{requires:["Ext.draw.Draw"],constructor:function(h,g,l,k,j,i){if(h!=null){this.matrix=[[h,l,j],[g,k,i],[0,0,1]]}else{this.matrix=[[1,0,0],[0,1,0],[0,0,1]]}},add:function(s,p,m,k,i,h){var n=this,g=[[],[],[]],r=[[s,m,i],[p,k,h],[0,0,1]],q,o,l,j;for(q=0;q<3;q++){for(o=0;o<3;o++){j=0;for(l=0;l<3;l++){j+=n.matrix[q][l]*r[l][o]}g[q][o]=j}}n.matrix=g},prepend:function(s,p,m,k,i,h){var n=this,g=[[],[],[]],r=[[s,m,i],[p,k,h],[0,0,1]],q,o,l,j;for(q=0;q<3;q++){for(o=0;o<3;o++){j=0;for(l=0;l<3;l++){j+=r[q][l]*n.matrix[l][o]}g[q][o]=j}}n.matrix=g},invert:function(){var j=this.matrix,i=j[0][0],h=j[1][0],n=j[0][1],m=j[1][1],l=j[0][2],k=j[1][2],g=i*m-h*n;return new Ext.draw.Matrix(m/g,-h/g,-n/g,i/g,(n*k-m*l)/g,(h*l-i*k)/g)},clone:function(){var i=this.matrix,h=i[0][0],g=i[1][0],m=i[0][1],l=i[1][1],k=i[0][2],j=i[1][2];return new Ext.draw.Matrix(h,g,m,l,k,j)},translate:function(a,b){this.prepend(1,0,0,1,a,b)},scale:function(b,e,a,d){var c=this;if(e==null){e=b}c.add(b,0,0,e,a*(1-b),d*(1-e))},rotate:function(c,b,h){c=Ext.draw.Draw.rad(c);var e=this,g=+Math.cos(c).toFixed(9),d=+Math.sin(c).toFixed(9);e.add(g,d,-d,g,b-g*b+d*h,-(d*b)+h-g*h)},x:function(a,c){var b=this.matrix;return a*b[0][0]+c*b[0][1]+b[0][2]},y:function(a,c){var b=this.matrix;return a*b[1][0]+c*b[1][1]+b[1][2]},get:function(b,a){return +this.matrix[b][a].toFixed(4)},toString:function(){var a=this;return[a.get(0,0),a.get(0,1),a.get(1,0),a.get(1,1),0,0].join()},toSvg:function(){var a=this;return"matrix("+[a.get(0,0),a.get(1,0),a.get(0,1),a.get(1,1),a.get(0,2),a.get(1,2)].join()+")"},toFilter:function(b,a){var c=this;b=b||0;a=a||0;return"progid:DXImageTransform.Microsoft.Matrix(sizingMethod='auto expand', filterType='bilinear', M11="+c.get(0,0)+", M12="+c.get(0,1)+", M21="+c.get(1,0)+", M22="+c.get(1,1)+", Dx="+(c.get(0,2)+b)+", Dy="+(c.get(1,2)+a)+")"},offset:function(){var a=this.matrix;return[(a[0][2]||0).toFixed(4),(a[1][2]||0).toFixed(4)]},split:function(){function d(g){return g[0]*g[0]+g[1]*g[1]}function b(g){var h=Math.sqrt(d(g));g[0]/=h;g[1]/=h}var a=this.matrix,c={translateX:a[0][2],translateY:a[1][2]},e;e=[[a[0][0],a[0][1]],[a[1][1],a[1][1]]];c.scaleX=Math.sqrt(d(e[0]));b(e[0]);c.shear=e[0][0]*e[1][0]+e[0][1]*e[1][1];e[1]=[e[1][0]-e[0][0]*c.shear,e[1][1]-e[0][1]*c.shear];c.scaleY=Math.sqrt(d(e[1]));b(e[1]);c.shear/=c.scaleY;c.rotate=Math.asin(-e[0][1]);c.isSimple=!+c.shear.toFixed(9)&&(c.scaleX.toFixed(9)==c.scaleY.toFixed(9)||!c.rotate);return c}});Ext.define("Ext.draw.SpriteDD",{extend:"Ext.dd.DragSource",constructor:function(b,a){var d=this,c=b.el;d.sprite=b;d.el=c;d.dragData={el:c,sprite:b};d.callParent([c,a]);d.sprite.setStyle("cursor","move")},showFrame:Ext.emptyFn,createFrame:Ext.emptyFn,getDragEl:function(a){return this.el},getRegion:function(){var j=this,g=j.el,m,d,c,o,n,s,a,k,h,q,p;p=j.sprite;q=p.getBBox();try{m=Ext.Element.getXY(g)}catch(i){}if(!m){return null}d=m[0];c=d+q.width;o=m[1];n=o+q.height;return new Ext.util.Region(o,c,n,d)},startDrag:function(b,d){var c=this,a=c.sprite.attr;c.prev=c.sprite.surface.transformToViewBox(b,d)},onDrag:function(i){var h=i.getXY(),g=this,d=g.sprite,a=d.attr,c,b;h=g.sprite.surface.transformToViewBox(h[0],h[1]);c=h[0]-g.prev[0];b=h[1]-g.prev[1];d.setAttributes({translate:{x:a.translation.x+c,y:a.translation.y+b}},true);g.prev=h},setDragElPos:function(){return false}});Ext.define("Ext.draw.Sprite",{mixins:{observable:"Ext.util.Observable",animate:"Ext.util.Animate"},requires:["Ext.draw.SpriteDD"],dirty:false,dirtyHidden:false,dirtyTransform:false,dirtyPath:true,dirtyFont:true,zIndexDirty:true,isSprite:true,zIndex:0,fontProperties:["font","font-size","font-weight","font-style","font-family","text-anchor","text"],pathProperties:["x","y","d","path","height","width","radius","r","rx","ry","cx","cy"],constructor:function(a){var b=this;a=Ext.merge({},a||{});b.id=Ext.id(null,"ext-sprite-");b.transformations=[];Ext.copyTo(this,a,"surface,group,type,draggable");b.bbox={};b.attr={zIndex:0,translation:{x:null,y:null},rotation:{degrees:null,x:null,y:null},scaling:{x:null,y:null,cx:null,cy:null}};delete a.surface;delete a.group;delete a.type;delete a.draggable;b.setAttributes(a);b.addEvents("beforedestroy","destroy","render","mousedown","mouseup","mouseover","mouseout","mousemove","click");b.mixins.observable.constructor.apply(this,arguments)},initDraggable:function(){var a=this;a.draggable=true;if(!a.el){a.surface.createSpriteElement(a)}a.dd=new Ext.draw.SpriteDD(a,Ext.isBoolean(a.draggable)?null:a.draggable);a.on("beforedestroy",a.dd.destroy,a.dd)},setAttributes:function(l,o){var t=this,j=t.fontProperties,q=j.length,h=t.pathProperties,g=h.length,r=!!t.surface,a=r&&t.surface.customAttributes||{},c=t.attr,b=false,m,p,k,d,s,n,u,e;l=Ext.apply({},l);for(m in a){if(l.hasOwnProperty(m)&&typeof a[m]=="function"){Ext.apply(l,a[m].apply(t,[].concat(l[m])))}}if(!!l.hidden!==!!c.hidden){t.dirtyHidden=true}for(p=0;p-1)&&(p[o] in g)){p[o]=g[p[o]]}if(o=="hidden"&&r.type=="text"){continue}if(o in s){c.dom.setAttribute(o,s[o](p[o],r,m))}else{c.dom.setAttribute(o,p[o])}}}if(r.type=="text"){m.tuneText(r,p)}r.dirtyFont=false;b=j.style;if(b){c.setStyle(b)}r.dirty=false;if(Ext.isSafari3){m.webkitRect.show();setTimeout(function(){m.webkitRect.hide()})}},setClip:function(b,g){var e=this,d=g["clip-rect"],a,c;if(d){if(b.clip){b.clip.parentNode.parentNode.removeChild(b.clip.parentNode)}a=e.createSvgElement("clipPath");c=e.createSvgElement("rect");a.id=Ext.id(null,"ext-clip-");c.setAttribute("x",d.x);c.setAttribute("y",d.y);c.setAttribute("width",d.width);c.setAttribute("height",d.height);a.appendChild(c);e.getDefs().appendChild(a);b.el.dom.setAttribute("clip-path","url(#"+a.id+")");b.clip=c}},applyZIndex:function(d){var g=this,b=g.items,a=b.indexOf(d),e=d.el,c;if(g.el.dom.childNodes[a+2]!==e.dom){if(a>0){do{c=b.getAt(--a).el}while(!c&&a>0)}e.insertAfter(c||g.bgRect)}d.zIndexDirty=false},createItem:function(a){var b=new Ext.draw.Sprite(a);b.surface=this;return b},addGradient:function(h){h=Ext.draw.Draw.parseGradient(h);var e=this,d=h.stops.length,a=h.vector,l=Ext.isSafari&&!Ext.isStrict,j,g,k,c,b;b=e.gradientsMap||{};if(!l){if(h.type=="linear"){j=e.createSvgElement("linearGradient");j.setAttribute("x1",a[0]);j.setAttribute("y1",a[1]);j.setAttribute("x2",a[2]);j.setAttribute("y2",a[3])}else{j=e.createSvgElement("radialGradient");j.setAttribute("cx",h.centerX);j.setAttribute("cy",h.centerY);j.setAttribute("r",h.radius);if(Ext.isNumber(h.focalX)&&Ext.isNumber(h.focalY)){j.setAttribute("fx",h.focalX);j.setAttribute("fy",h.focalY)}}j.id=h.id;e.getDefs().appendChild(j);for(c=0;c"},text:function(u){var r=u.attr,q=c.exec(r.font),w=(q&&q[1])||"12",p=(q&&q[3])||"Arial",v=r.text,t=(Ext.isFF3_0||Ext.isFF3_5)?2:4,o="",s;u.getBBox();o+='';o+=Ext.htmlEncode(v)+"";s=d({x:r.x,y:r.y,"font-size":w,"font-family":p,"font-weight":r["font-weight"],"text-anchor":r["text-anchor"],fill:r.fill||"#000","fill-opacity":r.opacity,transform:u.matrix.toSvg()});return""+o+""},rect:function(p){var o=p.attr,q=d({x:o.x,y:o.y,rx:o.rx,ry:o.ry,width:o.width,height:o.height,fill:o.fill||"none","fill-opacity":o.opacity,stroke:o.stroke,"stroke-opacity":o["stroke-opacity"],"stroke-width":o["stroke-width"],transform:p.matrix&&p.matrix.toSvg()});return""},circle:function(p){var o=p.attr,q=d({cx:o.x,cy:o.y,r:o.radius,fill:o.translation.fill||o.fill||"none","fill-opacity":o.opacity,stroke:o.stroke,"stroke-opacity":o["stroke-opacity"],"stroke-width":o["stroke-width"],transform:p.matrix.toSvg()});return""},image:function(p){var o=p.attr,q=d({x:o.x-(o.width/2>>0),y:o.y-(o.height/2>>0),width:o.width,height:o.height,"xlink:href":o.src,transform:p.matrix.toSvg()});return""}},a=function(){var o='';o+='';return o},l=function(){var w='',p="",H,F,v,q,G,J,z,x,t,y,B,o,K,u,E,C,I,D,s,r;v=g.items.items;F=v.length;G=function(O){var V=O.childNodes,S=V.length,R=0,P,Q,L="",M,U,N,T;for(;R0){L+=G(M)}L+=""}return L};if(g.getDefs){p=G(g.getDefs())}else{x=g.gradientsColl;if(x){t=x.keys;y=x.items;B=0;o=t.length}for(;B';var A=q.colors.replace(j,"rgb($1|$2|$3)");A=A.replace(h,"rgba($1|$2|$3|$4)");J=A.split(",");for(E=0,I=J.length;E'}p+=""}}w+=""+p+"";w+=k.rect({attr:{width:"100%",height:"100%",fill:"#fff",stroke:"none",opacity:"0"}});D=new Array(F);for(E=0;E";return w},d=function(q){var p="",o;for(o in q){if(q.hasOwnProperty(o)&&q[o]!=null){p+=o+'="'+q[o]+'" '}}return p};return{singleton:true,generate:function(o,p){p=p||{};n(o);return a()+l()}}});Ext.define("Ext.draw.engine.Vml",{extend:"Ext.draw.Surface",requires:["Ext.draw.Draw","Ext.draw.Color","Ext.draw.Sprite","Ext.draw.Matrix","Ext.Element"],engine:"Vml",map:{M:"m",L:"l",C:"c",Z:"x",m:"t",l:"r",c:"v",z:"x"},bitesRe:/([clmz]),?([^clmz]*)/gi,valRe:/-?[^,\s\-]+/g,fillUrlRe:/^url\(\s*['"]?([^\)]+?)['"]?\s*\)$/i,pathlike:/^(path|rect)$/,NonVmlPathRe:/[ahqstv]/ig,partialPathRe:/[clmz]/g,fontFamilyRe:/^['"]+|['"]+$/g,baseVmlCls:Ext.baseCSSPrefix+"vml-base",vmlGroupCls:Ext.baseCSSPrefix+"vml-group",spriteCls:Ext.baseCSSPrefix+"vml-sprite",measureSpanCls:Ext.baseCSSPrefix+"vml-measure-span",zoom:21600,coordsize:1000,coordorigin:"0 0",zIndexShift:0,orderSpritesByZIndex:false,path2vml:function(t){var n=this,u=n.NonVmlPathRe,b=n.map,e=n.valRe,s=n.zoom,d=n.bitesRe,g=Ext.Function.bind(Ext.draw.Draw.pathToAbsolute,Ext.draw.Draw),m,o,c,a,k,q,h,l;if(String(t).match(u)){g=Ext.Function.bind(Ext.draw.Draw.path2curve,Ext.draw.Draw)}else{if(!String(t).match(n.partialPathRe)){m=String(t).replace(d,function(r,w,j){var v=[],i=w.toLowerCase()=="m",p=b[w];j.replace(e,function(x){if(i&&v.length===2){p+=v+b[w=="m"?"l":"L"];v=[]}v.push(Math.round(x*s))});return p+v});return m}}o=g(t);m=[];for(k=0,q=o.length;k")}a.W=h.span.offsetWidth;a.H=h.span.offsetHeight+2;if(c["text-anchor"]=="middle"){e["v-text-align"]="center"}else{if(c["text-anchor"]=="end"){e["v-text-align"]="right";a.bbx=-Math.round(a.W/2)}else{e["v-text-align"]="left";a.bbx=Math.round(a.W/2)}}}a.X=c.x;a.Y=c.y;a.path.v=Ext.String.format("m{0},{1}l{2},{1}",Math.round(a.X*j),Math.round(a.Y*j),Math.round(a.X*j)+1);i.bbox.plain=null;i.bbox.transform=null;i.dirtyFont=false},setText:function(a,b){a.vml.textpath.string=Ext.htmlDecode(b)},hide:function(){this.el.hide()},show:function(){this.el.show()},hidePrim:function(a){a.el.addCls(Ext.baseCSSPrefix+"hide-visibility")},showPrim:function(a){a.el.removeCls(Ext.baseCSSPrefix+"hide-visibility")},setSize:function(b,a){var c=this;b=b||c.width;a=a||c.height;c.width=b;c.height=a;if(c.el){if(b!=undefined){c.el.setWidth(b)}if(a!=undefined){c.el.setHeight(a)}}c.callParent(arguments)},applyViewBox:function(){var g=this,h=g.viewBox,e=g.width,b=g.height,c,a,d;g.callParent();if(h&&(e||b)){c=g.items.items;a=c.length;for(d=0;d')}}catch(d){c.createNode=function(e){return g.createElement("<"+e+' xmlns="urn:schemas-microsoft.com:vml" class="rvml">')}}}if(!c.el){b=g.createElement("div");c.el=Ext.get(b);c.el.addCls(c.baseVmlCls);c.span=g.createElement("span");Ext.get(c.span).addCls(c.measureSpanCls);b.appendChild(c.span);c.el.setSize(c.width||0,c.height||0);a.appendChild(b);c.el.on({scope:c,mouseup:c.onMouseUp,mousedown:c.onMouseDown,mouseover:c.onMouseOver,mouseout:c.onMouseOut,mousemove:c.onMouseMove,mouseenter:c.onMouseEnter,mouseleave:c.onMouseLeave,click:c.onClick,dblclick:c.onDblClick})}c.renderAll()},renderAll:function(){this.items.each(this.renderItem,this)},redraw:function(a){a.dirty=true;this.renderItem(a)},renderItem:function(a){if(!this.el){return}if(!a.el){this.createSpriteElement(a)}if(a.dirty){this.applyAttrs(a);if(a.dirtyTransform){this.applyTransformations(a)}}},rotationCompensation:function(d,c,a){var b=new Ext.draw.Matrix();b.rotate(-d,0.5,0.5);return{x:b.x(c,a),y:b.y(c,a)}},transform:function(x,I){var H=this,b=H.getBBox(x,true),j=b.x+b.width*0.5,h=b.y+b.height*0.5,B=new Ext.draw.Matrix(),q=x.transformations,v=q.length,C=0,o=0,d=1,c=1,n="",g=x.el,E=g.dom,z=E.style,a=H.zoom,k=x.skew,D=H.viewBoxShift,G,F,s,l,r,p,A,w,u,t,e,m;for(;C32767){m[0]=32767}else{if(m[0]<-32768){m[0]=-32768}}if(m[1]>32767){m[1]=32767}else{if(m[1]<-32768){m[1]=-32768}}k.offset=m}else{z.filter=B.toFilter();z.left=Math.min(B.x(b.x,b.y),B.x(b.x+b.width,b.y),B.x(b.x,b.y+b.height),B.x(b.x+b.width,b.y+b.height))+"px";z.top=Math.min(B.y(b.x,b.y),B.y(b.x+b.width,b.y),B.y(b.x,b.y+b.height),B.y(b.x+b.width,b.y+b.height))+"px"}},createItem:function(a){return Ext.create("Ext.draw.Sprite",a)},getRegion:function(){return this.el.getRegion()},addCls:function(a,b){if(a&&a.el){a.el.addCls(b)}},removeCls:function(a,b){if(a&&a.el){a.el.removeCls(b)}},addGradient:function(g){var d=this.gradientsColl||(this.gradientsColl=Ext.create("Ext.util.MixedCollection")),a=[],j=Ext.create("Ext.util.MixedCollection"),l,e,b,h,k,c;j.addAll(g.stops);j.sortByKey("ASC",function(m,i){m=parseInt(m,10);i=parseInt(i,10);return m>i?1:(m'],initComponent:function(){this.callParent();this.addEvents("success","failure")},beforeRender:function(){this.callParent();Ext.applyIf(this.renderData,{swfId:this.getSwfId()})},afterRender:function(){var b=this,a=Ext.apply({},b.flashParams),c=Ext.apply({},b.flashVars);b.callParent();a=Ext.apply({allowScriptAccess:"always",bgcolor:b.backgroundColor,wmode:b.wmode},a);c=Ext.apply({allowedDomain:document.location.hostname},c);new swfobject.embedSWF(b.url,b.getSwfId(),b.swfWidth,b.swfHeight,b.flashVersion,b.expressInstall?b.statics.EXPRESS_INSTALL_URL:undefined,c,a,b.flashAttributes,Ext.bind(b.swfCallback,b))},swfCallback:function(b){var a=this;if(b.success){a.swf=Ext.get(b.ref);a.onSuccess();a.fireEvent("success",a)}else{a.onFailure();a.fireEvent("failure",a)}},getSwfId:function(){return this.swfId||(this.swfId="extswf"+this.getAutoId())},onSuccess:function(){this.swf.setStyle("visibility","inherit")},onFailure:Ext.emptyFn,beforeDestroy:function(){var b=this,a=b.swf;if(a){swfobject.removeSWF(b.getSwfId());Ext.destroy(a);delete b.swf}b.callParent()},statics:{EXPRESS_INSTALL_URL:"http://swfobject.googlecode.com/svn/trunk/swfobject/expressInstall.swf"}});Ext.define("Ext.form.action.Action",{alternateClassName:"Ext.form.Action",submitEmptyText:true,constructor:function(a){if(a){Ext.apply(this,a)}var b=a.params;if(Ext.isString(b)){this.params=Ext.Object.fromQueryString(b)}},run:Ext.emptyFn,onFailure:function(a){this.response=a;this.failureType=Ext.form.action.Action.CONNECT_FAILURE;this.form.afterAction(this,false)},processResponse:function(a){this.response=a;if(!a.responseText&&!a.responseXML){return true}return(this.result=this.handleResponse(a))},getUrl:function(){return this.url||this.form.url},getMethod:function(){return(this.method||this.form.method||"POST").toUpperCase()},getParams:function(){return Ext.apply({},this.params,this.form.baseParams)},createCallback:function(){var c=this,a,b=c.form;return{success:c.onSuccess,failure:c.onFailure,scope:c,timeout:(this.timeout*1000)||(b.timeout*1000),upload:b.fileUpload?c.onSuccess:a}},statics:{CLIENT_INVALID:"client",SERVER_INVALID:"server",CONNECT_FAILURE:"connect",LOAD_FAILURE:"load"}});Ext.define("Ext.form.action.Load",{extend:"Ext.form.action.Action",requires:["Ext.data.Connection"],alternateClassName:"Ext.form.Action.Load",alias:"formaction.load",type:"load",run:function(){Ext.Ajax.request(Ext.apply(this.createCallback(),{method:this.getMethod(),url:this.getUrl(),headers:this.headers,params:this.getParams()}))},onSuccess:function(b){var a=this.processResponse(b),c=this.form;if(a===true||!a.success||!a.data){this.failureType=Ext.form.action.Action.LOAD_FAILURE;c.afterAction(this,false);return}c.clearInvalid();c.setValues(a.data);c.afterAction(this,true)},handleResponse:function(c){var a=this.form.reader,b,d;if(a){b=a.read(c);d=b.records&&b.records[0]?b.records[0].data:null;return{success:b.success,data:d}}return Ext.decode(c.responseText)}});Ext.define("Ext.form.action.Submit",{extend:"Ext.form.action.Action",alternateClassName:"Ext.form.Action.Submit",alias:"formaction.submit",type:"submit",run:function(){var a=this.form;if(this.clientValidation===false||a.isValid()){this.doSubmit()}else{this.failureType=Ext.form.action.Action.CLIENT_INVALID;a.afterAction(this,false)}},doSubmit:function(){var b,a=Ext.apply(this.createCallback(),{url:this.getUrl(),method:this.getMethod(),headers:this.headers});if(this.form.hasUpload()){b=a.form=this.buildForm();a.isUpload=true}else{a.params=this.getParams()}Ext.Ajax.request(a);if(b){Ext.removeNode(b)}},getParams:function(){var c=false,b=this.callParent(),a=this.form.getValues(c,c,this.submitEmptyText!==c);return Ext.apply({},a,b)},buildForm:function(){var k=[],i,q,e=this.form,d=this.getParams(),c=[],g=e.getFields().items,h,r=g.length,j,o,m,n,l,p,b;for(h=0;hid="{id}">','','',"{beforeLabelTpl}",' class="{labelCls}"',' style="{labelStyle}">',"{beforeLabelTextTpl}",'{fieldLabel}{labelSeparator}',"{afterLabelTextTpl}","","{afterLabelTpl}","","",'',"{beforeBodyEl}","","{beforeLabelTpl}",'
','","
","{afterLabelTpl}","
","{beforeSubTpl}","{[values.$comp.getSubTplMarkup()]}","{afterSubTpl}","","{afterBodyEl}","","",'',"","",'',"{afterBodyEl}","","","",{disableFormats:true}],activeErrorsTpl:['','
  • {.}
',"
"],isFieldLabelable:true,formItemCls:Ext.baseCSSPrefix+"form-item",labelCls:Ext.baseCSSPrefix+"form-item-label",errorMsgCls:Ext.baseCSSPrefix+"form-error-msg",baseBodyCls:Ext.baseCSSPrefix+"form-item-body",fieldBodyCls:"",clearCls:Ext.baseCSSPrefix+"clear",invalidCls:Ext.baseCSSPrefix+"form-invalid",fieldLabel:undefined,labelAlign:"left",labelWidth:100,labelPad:5,labelSeparator:":",hideLabel:false,hideEmptyLabel:true,preventMark:false,autoFitErrors:true,msgTarget:"qtip",noWrap:true,labelableInsertions:["beforeBodyEl","afterBodyEl","beforeLabelTpl","afterLabelTpl","beforeSubTpl","afterSubTpl","beforeLabelTextTpl","afterLabelTextTpl","labelAttrTpl"],labelableRenderProps:["allowBlank","id","labelAlign","fieldBodyCls","baseBodyCls","clearCls","labelSeparator","msgTarget"],initLabelable:function(){var a=this,b=a.padding;if(b){a.padding=undefined;a.extraMargins=Ext.Element.parseBox(b)}a.addCls(a.formItemCls);a.lastActiveError="";a.addEvents("errorchange")},trimLabelSeparator:function(){var c=this,d=c.labelSeparator,a=c.fieldLabel||"",b=a.substr(a.length-1);return b===d?a.slice(0,-1):a},getFieldLabel:function(){return this.trimLabelSeparator()},setFieldLabel:function(b){b=b||"";var c=this,d=c.labelSeparator,a=c.labelEl;c.fieldLabel=b;if(c.rendered){if(Ext.isEmpty(b)&&c.hideEmptyLabel){a.parent().setDisplayed("none")}else{if(d){b=c.trimLabelSeparator()+d}a.update(b);a.parent().setDisplayed("")}c.updateLayout()}},getInsertionRenderData:function(d,e){var b=e.length,a,c;while(b--){a=e[b];c=this[a];if(c){if(typeof c!="string"){if(!c.isTemplate){c=Ext.XTemplate.getTpl(this,a)}c=c.apply(d)}}d[a]=c||""}return d},getLabelableRenderData:function(){var b=this,c,d,a=b.labelAlign==="top";if(!Ext.form.Labelable.errorIconWidth){Ext.form.Labelable.errorIconWidth=(d=Ext.resetElement.createChild({style:"position:absolute",cls:Ext.baseCSSPrefix+"form-invalid-icon"})).getWidth();d.remove()}c=Ext.copyTo({inFormLayout:b.ownerLayout&&b.ownerLayout.type==="form",inputId:b.getInputId(),labelOnLeft:!a,hideLabel:!b.hasVisibleLabel(),fieldLabel:b.getFieldLabel(),labelCellStyle:b.getLabelCellStyle(),labelCellAttrs:b.getLabelCellAttrs(),labelCls:b.getLabelCls(),labelStyle:b.getLabelStyle(),bodyColspan:b.getBodyColspan(),externalError:!b.autoFitErrors,errorMsgCls:b.getErrorMsgCls(),errorIconWidth:Ext.form.Labelable.errorIconWidth},b,b.labelableRenderProps,true);b.getInsertionRenderData(c,b.labelableInsertions);return c},beforeLabelableRender:function(){var a=this;if(a.ownerLayout){a.addCls(Ext.baseCSSPrefix+a.ownerLayout.type+"-form-item")}},onLabelableRender:function(){var c=this,d,a,b={};if(c.extraMargins){d=c.el.getMargin();for(a in d){if(d.hasOwnProperty(a)){b["margin-"+a]=(d[a]+c.extraMargins[a])+"px"}}c.el.setStyle(b)}},hasVisibleLabel:function(){if(this.hideLabel){return false}return !(this.hideEmptyLabel&&!this.getFieldLabel())},getBodyColspan:function(){var b=this,a;if(b.msgTarget==="side"&&(!b.autoFitErrors||b.hasActiveError())){a=1}else{a=2}if(b.labelAlign!=="top"&&!b.hasVisibleLabel()){a++}return a},getLabelCls:function(){var b=this.labelCls,a=this.labelClsExtra;if(this.labelAlign==="top"){b+="-top"}return a?b+" "+a:b},getLabelCellStyle:function(){var b=this,a=b.hideLabel||(!b.fieldLabel&&b.hideEmptyLabel);return a?"display:none;":""},getErrorMsgCls:function(){var b=this,a=(b.hideLabel||(!b.fieldLabel&&b.hideEmptyLabel));return b.errorMsgCls+(!a&&b.labelAlign==="top"?" "+Ext.baseCSSPrefix+"lbl-top-err-icon":"")},getLabelCellAttrs:function(){var c=this,b=c.labelAlign,a="";if(b!=="top"){a='valign="top" halign="'+b+'" width="'+(c.labelWidth+c.labelPad)+'"'}return a+' class="'+Ext.baseCSSPrefix+'field-label-cell"'},getLabelStyle:function(){var c=this,b=c.labelPad,a="";if(c.labelAlign!=="top"){if(c.labelWidth){a="width:"+c.labelWidth+"px;"}a+="margin-right:"+b+"px;"}return a+(c.labelStyle||"")},getSubTplMarkup:function(){return""},getInputId:function(){return""},getActiveError:function(){return this.activeError||""},hasActiveError:function(){return !!this.getActiveError()},setActiveError:function(a){this.setActiveErrors(a)},getActiveErrors:function(){return this.activeErrors||[]},setActiveErrors:function(a){a=Ext.Array.from(a);this.activeError=a[0];this.activeErrors=a;this.activeError=this.getTpl("activeErrorsTpl").apply({errors:a});this.renderActiveError()},unsetActiveError:function(){delete this.activeError;delete this.activeErrors;this.renderActiveError()},renderActiveError:function(){var c=this,b=c.getActiveError(),a=!!b;if(b!==c.lastActiveError){c.fireEvent("errorchange",c,b);c.lastActiveError=b}if(c.rendered&&!c.isDestroyed&&!c.preventMark){c.el[a?"addCls":"removeCls"](c.invalidCls);c.getActionEl().dom.setAttribute("aria-invalid",a);if(c.errorEl){c.errorEl.dom.innerHTML=b}}},setFieldDefaults:function(c){var b=this,d,a;for(a in c){if(c.hasOwnProperty(a)){d=c[a];if(!b.hasOwnProperty(a)){b[a]=d}}}}});Ext.define("Ext.form.field.Field",{isFormField:true,disabled:false,submitValue:true,validateOnChange:true,suspendCheckChange:0,initField:function(){this.addEvents("change","validitychange","dirtychange");this.initValue()},initValue:function(){var a=this;a.value=a.transformOriginalValue(a.value);a.originalValue=a.lastValue=a.value;a.suspendCheckChange++;a.setValue(a.value);a.suspendCheckChange--},transformOriginalValue:function(a){return a},getName:function(){return this.name},getValue:function(){return this.value},setValue:function(b){var a=this;a.value=b;a.checkChange();return a},isEqual:function(b,a){return String(b)===String(a)},isEqualAsString:function(b,a){return String(Ext.value(b,""))===String(Ext.value(a,""))},getSubmitData:function(){var a=this,b=null;if(!a.disabled&&a.submitValue&&!a.isFileUpload()){b={};b[a.getName()]=""+a.getValue()}return b},getModelData:function(){var a=this,b=null;if(!a.disabled&&!a.isFileUpload()){b={};b[a.getName()]=a.getValue()}return b},reset:function(){var a=this;a.beforeReset();a.setValue(a.originalValue);a.clearInvalid();delete a.wasValid},beforeReset:Ext.emptyFn,resetOriginalValue:function(){this.originalValue=this.getValue();this.checkDirty()},checkChange:function(){if(!this.suspendCheckChange){var c=this,b=c.getValue(),a=c.lastValue;if(!c.isEqual(b,a)&&!c.isDestroyed){c.lastValue=b;c.fireEvent("change",c,b,a);c.onChange(b,a)}}},onChange:function(b,a){if(this.validateOnChange){this.validate()}this.checkDirty()},isDirty:function(){var a=this;return !a.disabled&&!a.isEqual(a.getValue(),a.originalValue)},checkDirty:function(){var a=this,b=a.isDirty();if(b!==a.wasDirty){a.fireEvent("dirtychange",a,b);a.onDirtyChange(b);a.wasDirty=b}},onDirtyChange:Ext.emptyFn,getErrors:function(a){return[]},isValid:function(){var a=this;return a.disabled||Ext.isEmpty(a.getErrors())},validate:function(){var a=this,b=a.isValid();if(b!==a.wasValid){a.wasValid=b;a.fireEvent("validitychange",a,b)}return b},batchChanges:function(a){try{this.suspendCheckChange++;a()}catch(b){throw b}finally{this.suspendCheckChange--}this.checkChange()},isFileUpload:function(){return false},extractFileInput:function(){return null},markInvalid:Ext.emptyFn,clearInvalid:Ext.emptyFn});Ext.define("Ext.form.field.Base",{extend:"Ext.Component",mixins:{labelable:"Ext.form.Labelable",field:"Ext.form.field.Field"},alias:"widget.field",alternateClassName:["Ext.form.Field","Ext.form.BaseField"],requires:["Ext.util.DelayedTask","Ext.XTemplate","Ext.layout.component.field.Field"],fieldSubTpl:[' name="{name}"
',' value="{[Ext.util.Format.htmlEncode(values.value)]}"',' placeholder="{placeholder}"','{%if (values.maxLength !== undefined){%} maxlength="{maxLength}"{%}%}',' readonly="readonly"',' disabled="disabled"',' tabIndex="{tabIdx}"',' style="{fieldStyle}"',' class="{fieldCls} {typeCls} {editableCls}" autocomplete="off"/>',{disableFormats:true}],subTplInsertions:["inputAttrTpl"],inputType:"text",invalidText:"The value in this field is invalid",fieldCls:Ext.baseCSSPrefix+"form-field",focusCls:"form-focus",dirtyCls:Ext.baseCSSPrefix+"form-dirty",checkChangeEvents:Ext.isIE&&(!document.documentMode||document.documentMode<9)?["change","propertychange"]:["change","input","textInput","keyup","dragdrop"],checkChangeBuffer:50,componentLayout:"field",readOnly:false,readOnlyCls:Ext.baseCSSPrefix+"form-readonly",validateOnBlur:true,hasFocus:false,baseCls:Ext.baseCSSPrefix+"field",maskOnDisable:false,initComponent:function(){var a=this;a.callParent();a.subTplData=a.subTplData||{};a.addEvents("specialkey","writeablechange");a.initLabelable();a.initField();if(!a.name){a.name=a.getInputId()}},beforeRender:function(){var a=this;a.callParent(arguments);a.beforeLabelableRender(arguments);if(a.readOnly){a.addCls(a.readOnlyCls)}},getInputId:function(){return this.inputId||(this.inputId=this.id+"-inputEl")},getSubTplData:function(){var c=this,b=c.inputType,a=c.getInputId(),d;d=Ext.apply({id:a,cmpId:c.id,name:c.name||a,disabled:c.disabled,readOnly:c.readOnly,value:c.getRawValue(),type:b,fieldCls:c.fieldCls,fieldStyle:c.getFieldStyle(),tabIdx:c.tabIndex,typeCls:Ext.baseCSSPrefix+"form-"+(b==="password"?"text":b)},c.subTplData);c.getInsertionRenderData(d,c.subTplInsertions);return d},afterFirstLayout:function(){this.callParent();var a=this.inputEl;if(a){a.selectable()}},applyRenderSelectors:function(){var a=this;a.callParent();a.inputEl=a.el.getById(a.getInputId())},getSubTplMarkup:function(){return this.getTpl("fieldSubTpl").apply(this.getSubTplData())},initRenderTpl:function(){var a=this;if(!a.hasOwnProperty("renderTpl")){a.renderTpl=a.getTpl("labelableRenderTpl")}return a.callParent()},initRenderData:function(){return Ext.applyIf(this.callParent(),this.getLabelableRenderData())},setFieldStyle:function(a){var b=this,c=b.inputEl;if(c){c.applyStyles(a)}b.fieldStyle=a},getFieldStyle:function(){return"width:100%;"+(Ext.isObject(this.fieldStyle)?Ext.DomHelper.generateStyles(this.fieldStyle):this.fieldStyle||"")},onRender:function(){var a=this;a.callParent(arguments);a.onLabelableRender();a.renderActiveError()},getFocusEl:function(){return this.inputEl},isFileUpload:function(){return this.inputType==="file"},extractFileInput:function(){var b=this,a=b.isFileUpload()?b.inputEl.dom:null,c;if(a){c=a.cloneNode(true);a.parentNode.replaceChild(c,a);b.inputEl=Ext.get(c)}return a},getSubmitData:function(){var a=this,b=null,c;if(!a.disabled&&a.submitValue&&!a.isFileUpload()){c=a.getSubmitValue();if(c!==null){b={};b[a.getName()]=c}}return b},getSubmitValue:function(){return this.processRawValue(this.getRawValue())},getRawValue:function(){var b=this,a=(b.inputEl?b.inputEl.getValue():Ext.value(b.rawValue,""));b.rawValue=a;return a},setRawValue:function(b){var a=this;b=Ext.value(a.transformRawValue(b),"");a.rawValue=b;if(a.inputEl){a.inputEl.dom.value=b}return b},transformRawValue:function(a){return a},valueToRaw:function(a){return""+Ext.value(a,"")},rawToValue:function(a){return a},processRawValue:function(a){return a},getValue:function(){var a=this,b=a.rawToValue(a.processRawValue(a.getRawValue()));a.value=b;return b},setValue:function(b){var a=this;a.setRawValue(a.valueToRaw(b));return a.mixins.field.setValue.call(a,b)},onBoxReady:function(){var a=this;a.callParent();if(a.setReadOnlyOnBoxReady){a.setReadOnly(a.readOnly)}},onDisable:function(){var a=this,b=a.inputEl;a.callParent();if(b){b.dom.disabled=true;if(a.hasActiveError()){a.clearInvalid();a.needsValidateOnEnable=true}}},onEnable:function(){var a=this,b=a.inputEl;a.callParent();if(b){b.dom.disabled=false;if(a.needsValidateOnEnable){delete a.needsValidateOnEnable;a.forceValidation=true;a.isValid();delete a.forceValidation}}},setReadOnly:function(c){var a=this,b=a.inputEl;c=!!c;a[c?"addCls":"removeCls"](a.readOnlyCls);a.readOnly=c;if(b){b.dom.readOnly=c}else{if(a.rendering){a.setReadOnlyOnBoxReady=true}}a.fireEvent("writeablechange",a,c)},fireKey:function(a){if(a.isSpecialKey()){this.fireEvent("specialkey",this,new Ext.EventObjectImpl(a))}},initEvents:function(){var g=this,i=g.inputEl,b,j,c=g.checkChangeEvents,h,a=c.length,d;if(g.inEditor){g.onBlur=Ext.Function.createBuffered(g.onBlur,10)}if(i){g.mon(i,Ext.EventManager.getKeyEvent(),g.fireKey,g);b=new Ext.util.DelayedTask(g.checkChange,g);g.onChangeEvent=j=function(){b.delay(g.checkChangeBuffer)};for(h=0;hg.maxLength){k.push(j(g.maxLengthText,g.maxLength))}if(e){if(!h[e](l,g)){k.push(g.vtypeText||h[e+"Text"])}}if(i&&!i.test(l)){k.push(g.regexText||g.invalidText)}return k},selectText:function(i,a){var h=this,c=h.getRawValue(),d=true,g=h.inputEl.dom,e,b;if(c.length>0){i=i===e?0:i;a=a===e?c.length:a;if(g.setSelectionRange){g.setSelectionRange(i,a)}else{if(g.createTextRange){b=g.createTextRange();b.moveStart("character",i);b.moveEnd("character",a-c.length);b.select()}}d=Ext.isGecko||Ext.isOpera}if(d){h.focus()}},autoSize:function(){var a=this;if(a.grow&&a.rendered){a.autoSizing=true;a.updateLayout()}},afterComponentLayout:function(){var b=this,a;b.callParent(arguments);if(b.autoSizing){a=b.inputEl.getWidth();if(a!==b.lastInputWidth){b.fireEvent("autosize",b,a);b.lastInputWidth=a;delete b.autoSizing}}}});Ext.define("Ext.layout.component.field.TextArea",{extend:"Ext.layout.component.field.Text",alias:"layout.textareafield",type:"textareafield",canGrowWidth:false,naturalSizingProp:"cols",beginLayout:function(a){this.callParent(arguments);a.target.inputEl.setStyle("height","")},measureContentHeight:function(b){var e=this,a=e.owner,k=e.callParent(arguments),c,i,h,g,d,j;if(a.grow&&!b.state.growHandled){c=b.inputContext;i=a.inputEl;d=i.getWidth(true);h=Ext.util.Format.htmlEncode(i.dom.value)||" ";h+=a.growAppend;h=h.replace(/\n/g,"
");j=Ext.util.TextMetrics.measure(i,h,d).height+c.getBorderInfo().height+c.getPaddingInfo().height;j=Ext.Number.constrain(j,a.growMin,a.growMax);c.setHeight(j);b.state.growHandled=true;c.domBlock(e,"height");k=NaN}return k}});Ext.define("Ext.form.field.TextArea",{extend:"Ext.form.field.Text",alias:["widget.textareafield","widget.textarea"],alternateClassName:"Ext.form.TextArea",requires:["Ext.XTemplate","Ext.layout.component.field.TextArea","Ext.util.DelayedTask"],fieldSubTpl:['",{disableFormats:true}],growMin:60,growMax:1000,growAppend:"\n-",cols:20,rows:4,enterIsSpecial:false,preventScrollbars:false,componentLayout:"textareafield",setGrowSizePolicy:Ext.emptyFn,returnRe:/\r/g,getSubTplData:function(){var c=this,b=c.getFieldStyle(),a=c.callParent();if(c.grow){if(c.preventScrollbars){a.fieldStyle=(b||"")+";overflow:hidden;height:"+c.growMin+"px"}}Ext.applyIf(a,{cols:c.cols,rows:c.rows});return a},afterRender:function(){var a=this;a.callParent(arguments);a.needsMaxCheck=a.enforceMaxLength&&a.maxLength!==Number.MAX_VALUE&&!Ext.supports.TextAreaMaxLength;if(a.needsMaxCheck){a.inputEl.on("paste",a.onPaste,a)}},transformRawValue:function(a){return this.stripReturns(a)},transformOriginalValue:function(a){return this.stripReturns(a)},valueToRaw:function(a){a=this.stripReturns(a);return this.callParent([a])},stripReturns:function(a){if(a){a=a.replace(this.returnRe,"")}return a},onPaste:function(b){var a=this;if(!a.pasteTask){a.pasteTask=new Ext.util.DelayedTask(a.pasteCheck,a)}a.pasteTask.delay(1)},pasteCheck:function(){var b=this,c=b.getValue(),a=b.maxLength;if(c.length>a){c=c.substr(0,a);b.setValue(c)}},fireKey:function(d){var b=this,a=d.getKey(),c;if(d.isSpecialKey()&&(b.enterIsSpecial||(a!==d.ENTER||d.hasModifier()))){b.fireEvent("specialkey",b,d)}if(b.needsMaxCheck&&a!==d.BACKSPACE&&a!==d.DELETE&&!d.isNavKeyPress()&&!b.isCutCopyPasteSelectAll(d,a)){c=b.getValue();if(c.length>=b.maxLength){d.stopEvent()}}},isCutCopyPasteSelectAll:function(b,a){if(b.CTRL){return a===b.A||a===b.C||a===b.V||a===b.X}return false},autoSize:function(){var b=this,a;if(b.grow&&b.rendered){b.updateLayout();a=b.inputEl.getHeight();if(a!==b.lastInputHeight){b.fireEvent("autosize",b,a);b.lastInputHeight=a}}},initAria:function(){this.callParent(arguments);this.getActionEl().dom.setAttribute("aria-multiline",true)},beforeDestroy:function(){var a=this.pasteTask;if(a){a.delay()}this.callParent()}});Ext.define("Ext.form.field.Display",{extend:"Ext.form.field.Base",alias:"widget.displayfield",requires:["Ext.util.Format","Ext.XTemplate"],alternateClassName:["Ext.form.DisplayField","Ext.form.Display"],fieldSubTpl:['
style="{fieldStyle}"',' class="{fieldCls}">{value}
',{compiled:true,disableFormats:true}],fieldCls:Ext.baseCSSPrefix+"form-display-field",htmlEncode:false,validateOnChange:false,initEvents:Ext.emptyFn,submitValue:false,isDirty:function(){return false},isValid:function(){return true},validate:function(){return true},getRawValue:function(){return this.rawValue},setRawValue:function(b){var a=this,c;b=Ext.value(b,"");a.rawValue=b;if(a.rendered){a.inputEl.dom.innerHTML=a.getDisplayValue();a.updateLayout()}return b},getDisplayValue:function(){var a=this,b=this.getRawValue(),c;if(a.renderer){c=a.renderer.call(a.scope||a,b,a)}else{c=a.htmlEncode?Ext.util.Format.htmlEncode(b):b}return c},getSubTplData:function(){var a=this.callParent(arguments);a.value=this.getDisplayValue();return a}});Ext.define("Ext.layout.container.Anchor",{alias:"layout.anchor",extend:"Ext.layout.container.Container",alternateClassName:"Ext.layout.AnchorLayout",type:"anchor",manageOverflow:2,renderTpl:["{%this.renderBody(out,values);this.renderPadder(out,values)%}"],defaultAnchor:"100%",parseAnchorRE:/^(r|right|b|bottom)$/i,beginLayout:function(c){var j=this,a=0,g,k,e,d,b,h;j.callParent(arguments);e=c.childItems;b=e.length;for(d=0;d','','',"{% this.renderColumn(out,parent,xindex-1) %}","","",""],lastOwnerItemsGeneration:null,beginLayout:function(b){var k=this,e,d,h,a,j,g=0,m=0,l=k.autoFlex,c=k.innerCt.dom.style;k.callParent(arguments);e=k.columnNodes;b.innerCtContext=b.getEl("innerCt",k);if(!b.widthModel.shrinkWrap){d=e.length;if(k.columnsArray){for(h=0;ha){d=b-a;g=e.rowEl;for(c=0;c',"{%this.renderContainer(out,values);%}",""],stateEvents:["collapse","expand"],maskOnDisable:false,beforeDestroy:function(){var b=this,a=b.legend;if(a){delete a.ownerCt;a.destroy();b.legend=null}b.callParent()},initComponent:function(){var b=this,a=b.baseCls;b.callParent();b.addEvents("beforeexpand","beforecollapse","expand","collapse");if(b.collapsed){b.addCls(a+"-collapsed");b.collapse()}if(b.title){b.addCls(a+"-with-title")}if(b.title||b.checkboxToggle||b.collapsible){b.addCls(a+"-with-legend");b.legend=Ext.widget(b.createLegendCt())}},initRenderData:function(){var a=this.callParent();a.baseCls=this.baseCls;return a},getState:function(){var a=this.callParent();a=this.addPropertyToState(a,"collapsed");return a},afterCollapse:Ext.emptyFn,afterExpand:Ext.emptyFn,collapsedHorizontal:function(){return true},collapsedVertical:function(){return true},createLegendCt:function(){var c=this,a=[],b={xtype:"container",baseCls:c.baseCls+"-header",id:c.id+"-legend",autoEl:"legend",items:a,ownerCt:c,ownerLayout:c.componentLayout};if(c.checkboxToggle){a.push(c.createCheckboxCmp())}else{if(c.collapsible){a.push(c.createToggleCmp())}}a.push(c.createTitleCmp());return b},createTitleCmp:function(){var b=this,a={xtype:"component",html:b.title,cls:b.baseCls+"-header-text",id:b.id+"-legendTitle"};if(b.collapsible&&b.toggleOnTitleClick){a.listeners={el:{scope:b,click:b.toggle}};a.cls+=" "+b.baseCls+"-header-text-collapsible"}return(b.titleCmp=Ext.widget(a))},createCheckboxCmp:function(){var a=this,b="-checkbox";a.checkboxCmp=Ext.widget({xtype:"checkbox",hideEmptyLabel:true,name:a.checkboxName||a.id+b,cls:a.baseCls+"-header"+b,id:a.id+"-legendChk",checked:!a.collapsed,listeners:{change:a.onCheckChange,scope:a}});return a.checkboxCmp},createToggleCmp:function(){var a=this;a.toggleCmp=Ext.widget({xtype:"tool",type:"toggle",handler:a.toggle,id:a.id+"-legendToggle",scope:a});return a.toggleCmp},doRenderLegend:function(b,e){var d=e.$comp,c=d.legend,a;if(c){c.ownerLayout.configureItem(c);a=c.getRenderTree();Ext.DomHelper.generateMarkup(a,b)}},finishRender:function(){var a=this.legend;this.callParent();if(a){a.finishRender()}},getCollapsed:function(){return this.collapsed?"top":false},getCollapsedDockedItems:function(){var a=this.legend;return a?[a]:[]},setTitle:function(c){var b=this,a=b.legend;b.title=c;if(b.rendered){if(!b.legend){b.legend=a=Ext.widget(b.createLegendCt());a.ownerLayout.configureItem(a);a.render(b.el,0)}b.titleCmp.update(c)}return b},getTargetEl:function(){return this.body||this.frameBody||this.el},getContentTarget:function(){return this.body},expand:function(){return this.setExpanded(true)},collapse:function(){return this.setExpanded(false)},setExpanded:function(b){var c=this,d=c.checkboxCmp,a=b?"expand":"collapse";if(!c.rendered||c.fireEvent("before"+a,c)!==false){b=!!b;if(d){d.setValue(b)}if(b){c.removeCls(c.baseCls+"-collapsed")}else{c.addCls(c.baseCls+"-collapsed")}c.collapsed=!b;if(c.rendered){c.updateLayout({isRoot:false});c.fireEvent(a,c)}}return c},getRefItems:function(a){var c=this.callParent(arguments),b=this.legend;if(b){c.unshift(b);if(a){c.unshift.apply(c,b.getRefItems(true))}}return c},toggle:function(){this.setExpanded(!!this.collapsed)},onCheckChange:function(b,a){this.setExpanded(a)},setupRenderTpl:function(a){this.callParent(arguments);a.renderLegend=this.doRenderLegend}});Ext.define("Ext.form.Label",{extend:"Ext.Component",alias:"widget.label",requires:["Ext.util.Format"],autoEl:"label",maskOnDisable:false,getElConfig:function(){var a=this;a.html=a.text?Ext.util.Format.htmlEncode(a.text):(a.html||"");return Ext.apply(a.callParent(),{htmlFor:a.forId||""})},setText:function(c,b){var a=this;b=b!==false;if(b){a.text=c;delete a.html}else{a.html=c;delete a.text}if(a.rendered){a.el.dom.innerHTML=b!==false?Ext.util.Format.htmlEncode(c):c;a.updateLayout()}return a}});Ext.define("Ext.form.Panel",{extend:"Ext.panel.Panel",mixins:{fieldAncestor:"Ext.form.FieldAncestor"},alias:"widget.form",alternateClassName:["Ext.FormPanel","Ext.form.FormPanel"],requires:["Ext.form.Basic","Ext.util.TaskRunner"],layout:"anchor",ariaRole:"form",basicFormConfigs:["api","baseParams","errorReader","method","paramOrder","paramsAsHash","reader","standardSubmit","timeout","trackResetOnLoad","url","waitMsgTarget","waitTitle"],initComponent:function(){var a=this;if(a.frame){a.border=false}a.initFieldAncestor();a.callParent();a.relayEvents(a.form,["beforeaction","actionfailed","actioncomplete","validitychange","dirtychange"]);if(a.pollForChanges){a.startPolling(a.pollInterval||500)}},initItems:function(){var a=this;a.form=a.createForm();a.callParent()},afterFirstLayout:function(){this.callParent();this.form.initialize()},createForm:function(){var b={},d=this.basicFormConfigs,a=d.length,c=0,e;for(;c","{beforeBoxLabelTpl}",'","{afterBoxLabelTpl}","
",' tabIndex="{tabIdx}"
',' disabled="disabled"',' style="{fieldStyle}"',' class="{fieldCls} {typeCls}" autocomplete="off" hidefocus="true" />',"","{beforeBoxLabelTpl}",'","{afterBoxLabelTpl}","",{disableFormats:true,compiled:true}],subTplInsertions:["beforeBoxLabelTpl","afterBoxLabelTpl","beforeBoxLabelTextTpl","afterBoxLabelTextTpl","boxLabelAttrTpl","inputAttrTpl"],isCheckbox:true,focusCls:"form-cb-focus",fieldBodyCls:Ext.baseCSSPrefix+"form-cb-wrap",checked:false,checkedCls:Ext.baseCSSPrefix+"form-cb-checked",boxLabelCls:Ext.baseCSSPrefix+"form-cb-label",boxLabelAlign:"after",inputValue:"on",checkChangeEvents:[],inputType:"checkbox",onRe:/^on$/i,initComponent:function(){this.callParent(arguments);this.getManager().add(this)},initValue:function(){var b=this,a=!!b.checked;b.originalValue=b.lastValue=a;b.setValue(a)},getElConfig:function(){var a=this;if(a.isChecked(a.rawValue,a.inputValue)){a.addCls(a.checkedCls)}return a.callParent()},getFieldStyle:function(){return Ext.isObject(this.fieldStyle)?Ext.DomHelper.generateStyles(this.fieldStyle):this.fieldStyle||""},getSubTplData:function(){var a=this;return Ext.apply(a.callParent(),{disabled:a.readOnly||a.disabled,boxLabel:a.boxLabel,boxLabelCls:a.boxLabelCls,boxLabelAlign:a.boxLabelAlign})},initEvents:function(){var a=this;a.callParent();a.mon(a.inputEl,"click",a.onBoxClick,a)},onBoxClick:function(b){var a=this;if(!a.disabled&&!a.readOnly){this.setValue(!this.checked)}},getRawValue:function(){return this.checked},getValue:function(){return this.checked},getSubmitValue:function(){var a=this.uncheckedValue,b=Ext.isDefined(a)?a:null;return this.checked?this.inputValue:b},isChecked:function(b,a){return(b===true||b==="true"||b==="1"||b===1||(((Ext.isString(b)||Ext.isNumber(b))&&a)?b==a:this.onRe.test(b)))},setRawValue:function(c){var b=this,d=b.inputEl,a=b.isChecked(c,b.inputValue);if(d){b[a?"addCls":"removeCls"](b.checkedCls)}b.checked=b.rawValue=a;return a},setValue:function(g){var e=this,c,b,a,d;if(Ext.isArray(g)){c=e.getManager().getByName(e.name,e.getFormId()).items;a=c.length;for(b=0;bc){c=g;k=m}}a=Math.max(h.callParent(arguments),b.inputEl.getTextWidth(k+b.growAppend));if(!h.startingWidth||b.removingRecords){h.startingWidth=a;if(a'+b+""+a.getTriggerMarkup()+""},getSubTplData:function(){var b=this,c=b.callParent(),d=b.readOnly===true,a=b.editable!==false;return Ext.apply(c,{editableCls:(d||!a)?" "+b.triggerNoEditCls:"",readOnly:!a||d})},getLabelableRenderData:function(){var b=this,c=b.triggerWrapCls,a=b.callParent(arguments);return Ext.applyIf(a,{triggerWrapCls:c,triggerMarkup:b.getTriggerMarkup()})},getTriggerMarkup:function(){var c=this,b=0,d=(c.readOnly||c.hideTrigger),g,e=c.triggerBaseCls,a=[];if(!c.trigger1Cls){c.trigger1Cls=c.triggerCls}for(b=0;(g=c["trigger"+(b+1)+"Cls"])||b<1;b++){a.push({tag:"td",valign:"top",cls:Ext.baseCSSPrefix+"trigger-cell",style:"width:"+c.triggerWidth+(d?"px;display:none":"px"),cn:{cls:[Ext.baseCSSPrefix+"trigger-index-"+b,e,g].join(" "),role:"button"}})}a[b-1].cn.cls+=" "+e+"-last";return Ext.DomHelper.markup(a)},disableCheck:function(){return !this.disabled},beforeRender:function(){var a=this,b=a.triggerBaseCls,c;if(!a.triggerWidth){c=Ext.resetElement.createChild({style:"position: absolute;",cls:Ext.baseCSSPrefix+"form-trigger"});Ext.form.field.Trigger.prototype.triggerWidth=c.getWidth();c.remove()}a.callParent();if(b!=Ext.baseCSSPrefix+"form-trigger"){a.addChildEls({name:"triggerEl",select:"."+b})}a.lastTriggerStateFlags=a.getTriggerStateFlags()},onRender:function(){var a=this;a.callParent(arguments);a.doc=Ext.getDoc();a.initTrigger();a.triggerEl.unselectable()},getTriggerWidth:function(){var b=this,a=0;if(b.triggerWrap&&!b.hideTrigger&&!b.readOnly){a=b.triggerEl.getCount()*b.triggerWidth}return a},setHideTrigger:function(a){if(a!=this.hideTrigger){this.hideTrigger=a;this.updateLayout()}},setEditable:function(a){if(a!=this.editable){this.editable=a;this.updateLayout()}},setReadOnly:function(a){if(a!=this.readOnly){this.readOnly=a;this.updateLayout()}},initTrigger:function(){var h=this,i=h.triggerWrap,k=h.triggerEl,a=h.disableCheck,d,c,b,g,j;if(h.repeatTriggerClick){h.triggerRepeater=new Ext.util.ClickRepeater(i,{preventDefault:true,handler:h.onTriggerWrapClick,listeners:{mouseup:h.onTriggerWrapMouseup,scope:h},scope:h})}else{h.mon(i,{click:h.onTriggerWrapClick,mouseup:h.onTriggerWrapMouseup,scope:h})}k.setVisibilityMode(Ext.Element.DISPLAY);k.addClsOnOver(h.triggerBaseCls+"-over",a,h);d=k.elements;c=d.length;for(g=0;g1){b.doSelect(a,c,false)}else{b.doSelect(a,false)}}}}break;case"SIMPLE":if(b.isSelected(a)){b.doDeselect(a)}else{b.doSelect(a,true)}break;case"SINGLE":if(b.allowDeselect&&b.isSelected(a)){b.doDeselect(a)}else{b.doSelect(a,false)}break}},selectRange:function(l,e,m,c){var j=this,k=j.store,d=0,h,g,a,b=[];if(j.isLocked()){return}if(!m){j.deselectAll(true)}if(!Ext.isNumber(l)){l=k.indexOf(l)}if(!Ext.isNumber(e)){e=k.indexOf(e)}if(l>e){g=e;e=l;l=g}for(h=l;h<=e;h++){if(j.isSelected(k.getAt(h))){d++}}if(!c){a=-1}else{a=(c=="up")?l:e}for(h=l;h<=e;h++){if(d==(e-l+1)){if(h!=a){j.doDeselect(h,true)}}else{b.push(k.getAt(h))}}j.doMultiSelect(b,true)},select:function(b,c,a){if(Ext.isDefined(b)){this.doSelect(b,c,a)}},deselect:function(b,a){this.doDeselect(b,a)},doSelect:function(c,e,b){var d=this,a;if(d.locked||!d.store){return}if(typeof c==="number"){c=[d.store.getAt(c)]}if(d.selectionMode=="SINGLE"&&c){a=c.length?c[0]:c;d.doSingleSelect(a,b)}else{d.doMultiSelect(c,e,b)}},doMultiSelect:function(a,l,k){var h=this,b=h.selected,j=false,d=0,g,e;if(h.locked){return}a=!Ext.isArray(a)?[a]:a;g=a.length;if(!l&&b.getCount()>0){if(h.doDeselect(h.getSelection(),k)===false){return}}function c(){b.add(e);j=true}for(;d0&&!k);return g===l},doSingleSelect:function(a,b){var d=this,g=false,c=d.selected;if(d.locked){return}if(d.isSelected(a)){return}function e(){d.bulkChange=true;if(c.getCount()>0&&d.doDeselect(d.lastSelected,b)===false){delete d.bulkChange;return false}delete d.bulkChange;c.add(a);d.lastSelected=a;g=true}d.onSelectChange(a,true,b,e);if(g){if(!b){d.setLastFocused(a)}d.maybeFireSelectionChange(!b)}},setLastFocused:function(c,b){var d=this,a=d.lastFocused;d.lastFocused=c;if(c!==a){d.onLastFocusChanged(a,c,b)}},isFocused:function(a){return a===this.getLastFocused()},maybeFireSelectionChange:function(a){var b=this;if(a&&!b.bulkChange){b.fireEvent("selectionchange",b,b.getSelection())}},getLastSelected:function(){return this.lastSelected},getLastFocused:function(){return this.lastFocused},getSelection:function(){return this.selected.getRange()},getSelectionMode:function(){return this.selectionMode},setSelectionMode:function(a){a=a?a.toUpperCase():"SINGLE";this.selectionMode=this.modes[a]?a:"SINGLE"},isLocked:function(){return this.locked},setLocked:function(a){this.locked=!!a},isSelected:function(a){a=Ext.isNumber(a)?this.store.getAt(a):a;return this.selected.indexOf(a)!==-1},hasSelection:function(){return this.selected.getCount()>0},refresh:function(){var e=this,j=e.store,c=[],a=e.getSelection(),d=a.length,h,g,b=0,k=e.getLastFocused();if(!j){return}for(;b0){this.clearSelections();this.maybeFireSelectionChange(true)}},onStoreRemove:function(b,a,c){var e=this,d=e.selected;if(e.locked||!e.pruneRemoved){return}if(d.remove(a)){if(e.lastSelected==a){e.lastSelected=null}if(e.getLastFocused()==a){e.setLastFocused(null)}e.maybeFireSelectionChange(true)}},getCount:function(){return this.selected.getCount()},destroy:Ext.emptyFn,onStoreUpdate:Ext.emptyFn,onStoreLoad:Ext.emptyFn,onSelectChange:Ext.emptyFn,onLastFocusChanged:function(b,a){this.fireEvent("focuschange",this,b,a)},onEditorKey:Ext.emptyFn,bindComponent:Ext.emptyFn,beforeViewRender:Ext.emptyFn});Ext.define("Ext.selection.DataViewModel",{extend:"Ext.selection.Model",requires:["Ext.util.KeyNav"],deselectOnContainerClick:true,enableKeyNav:true,constructor:function(a){this.addEvents("beforedeselect","beforeselect","deselect","select");this.callParent(arguments)},bindComponent:function(a){var b=this,c={refresh:b.refresh,scope:b};b.view=a;b.bindStore(a.getStore());c[a.triggerEvent]=b.onItemClick;c[a.triggerCtEvent]=b.onContainerClick;a.on(c);if(b.enableKeyNav){b.initKeyNav(a)}},onItemClick:function(b,a,d,c,g){this.selectWithEvent(a,g)},onContainerClick:function(){if(this.deselectOnContainerClick){this.deselectAll()}},initKeyNav:function(a){var b=this;if(!a.rendered){a.on({render:Ext.Function.bind(b.initKeyNav,b,[a]),single:true});return}a.el.set({tabIndex:-1});b.keyNav=new Ext.util.KeyNav({target:a.el,ignoreInputFields:true,down:Ext.pass(b.onNavKey,[1],b),right:Ext.pass(b.onNavKey,[1],b),left:Ext.pass(b.onNavKey,[-1],b),up:Ext.pass(b.onNavKey,[-1],b),scope:b})},onNavKey:function(g){g=g||1;var e=this,b=e.view,d=e.getSelection()[0],c=e.view.store.getCount(),a;if(d){a=b.indexOf(b.getNode(d))+g}else{a=0}if(a<0){a=c-1}else{if(a>=c){a=0}}e.select(a)},onSelectChange:function(b,e,d,h){var g=this,a=g.view,c=e?"select":"deselect";if((d||g.fireEvent("before"+c,g,b))!==false&&h()!==false){if(a){if(e){a.onItemSelect(b)}else{a.onItemDeselect(b)}}if(!d){g.fireEvent(c,g,b)}}},destroy:function(){Ext.destroy(this.keyNav);this.callParent()}});Ext.define("Ext.view.AbstractView",{extend:"Ext.Component",requires:["Ext.LoadMask","Ext.data.StoreManager","Ext.CompositeElementLite","Ext.DomQuery","Ext.selection.DataViewModel"],mixins:{bindable:"Ext.util.Bindable"},inheritableStatics:{getRecord:function(a){return this.getBoundView(a).getRecord(a)},getBoundView:function(a){return Ext.getCmp(a.boundView)}},deferInitialRefresh:true,itemCls:Ext.baseCSSPrefix+"dataview-item",loadingText:"Loading...",loadMask:true,loadingUseMsg:true,selectedItemCls:Ext.baseCSSPrefix+"item-selected",emptyText:"",deferEmptyText:true,trackOver:false,blockRefresh:false,preserveScrollOnRefresh:false,last:false,triggerEvent:"itemclick",triggerCtEvent:"containerclick",addCmpEvents:function(){},initComponent:function(){var c=this,a=Ext.isDefined,d=c.itemTpl,b={};if(d){if(Ext.isArray(d)){d=d.join("")}else{if(Ext.isObject(d)){b=Ext.apply(b,d.initialConfig);d=d.html}}if(!c.itemSelector){c.itemSelector="."+c.itemCls}d=Ext.String.format('
{1}
',c.itemCls,d);c.tpl=new Ext.XTemplate(d,b)}c.callParent();if(Ext.isString(c.tpl)||Ext.isArray(c.tpl)){c.tpl=new Ext.XTemplate(c.tpl)}c.addEvents("beforerefresh","refresh","viewready","itemupdate","itemadd","itemremove");c.addCmpEvents();c.store=Ext.data.StoreManager.lookup(c.store||"ext-empty-store");c.bindStore(c.store,true);c.all=new Ext.CompositeElementLite();c.scrollState={top:0,left:0};c.on({scroll:c.onViewScroll,element:"el",scope:c})},onRender:function(){var c=this,b=c.loadMask,a={msg:c.loadingText,msgCls:c.loadingCls,useMsg:c.loadingUseMsg,store:c.getMaskStore()};c.callParent(arguments);if(b){if(Ext.isObject(b)){a=Ext.apply(a,b)}c.loadMask=new Ext.LoadMask(c,a);c.loadMask.on({scope:c,beforeshow:c.onMaskBeforeShow,hide:c.onMaskHide})}},finishRender:function(){var a=this;a.callParent(arguments);if(!a.up("[collapsed],[hidden]")){a.doFirstRefresh(a.store)}},onBoxReady:function(){var a=this;a.callParent(arguments);if(!a.firstRefreshDone){a.doFirstRefresh(a.store)}},getMaskStore:function(){return this.store},onMaskBeforeShow:function(){var b=this,a=b.loadingHeight;b.getSelectionModel().deselectAll();b.all.clear();if(a&&a>b.getHeight()){b.hasLoadingHeight=true;b.oldMinHeight=b.minHeight;b.minHeight=a;b.updateLayout()}},onMaskHide:function(){var a=this;if(!a.destroying&&a.hasLoadingHeight){a.minHeight=a.oldMinHeight;a.updateLayout();delete a.hasLoadingHeight}},beforeRender:function(){this.callParent(arguments);this.getSelectionModel().beforeViewRender(this)},afterRender:function(){this.callParent(arguments);this.getSelectionModel().bindComponent(this)},getSelectionModel:function(){var a=this,b="SINGLE";if(!a.selModel){a.selModel={}}if(a.simpleSelect){b="SIMPLE"}else{if(a.multiSelect){b="MULTI"}}Ext.applyIf(a.selModel,{allowDeselect:a.allowDeselect,mode:b});if(!a.selModel.events){a.selModel=new Ext.selection.DataViewModel(a.selModel)}if(!a.selModel.hasRelaySetup){a.relayEvents(a.selModel,["selectionchange","beforeselect","beforedeselect","select","deselect","focuschange"]);a.selModel.hasRelaySetup=true}if(a.disableSelection){a.selModel.locked=true}return a.selModel},refresh:function(){var c=this,h,b,e,d,g,a;if(!c.rendered||c.isDestroyed){return}if(!c.hasListeners.beforerefresh||c.fireEvent("beforerefresh",c)!==false){h=c.getTargetEl();a=c.store.getRange();g=h.dom;if(!c.preserveScrollOnRefresh){b=g.parentNode;e=g.style.display;g.style.display="none";d=g.nextSibling;b.removeChild(g)}if(c.refreshCounter){c.clearViewEl()}else{c.fixedNodes=h.dom.childNodes.length;c.refreshCounter=1}c.tpl.append(h,c.collectData(a,0));if(a.length<1){if(!c.deferEmptyText||c.hasSkippedEmptyText){Ext.core.DomHelper.insertHtml("beforeEnd",h.dom,c.emptyText)}c.all.clear()}else{c.all.fill(Ext.query(c.getItemSelector(),h.dom));c.updateIndexes(0)}c.selModel.refresh();c.hasSkippedEmptyText=true;if(!c.preserveScrollOnRefresh){b.insertBefore(g,d);g.style.display=e}this.refreshSize();c.fireEvent("refresh",c);if(!c.viewReady){c.viewReady=true;c.fireEvent("viewready",c)}}},refreshSize:function(){var a=this.getSizeModel();if(a.height.shrinkWrap||a.width.shrinkWrap){this.updateLayout()}},clearViewEl:function(){var b=this,a=b.getTargetEl();if(b.fixedNodes){while(a.dom.childNodes[b.fixedNodes]){a.dom.removeChild(a.dom.childNodes[b.fixedNodes])}}else{a.update("")}b.refreshCounter++},onViewScroll:Ext.emptyFn,saveScrollState:function(){if(this.rendered){var b=this.el.dom,a=this.scrollState;a.left=b.scrollLeft;a.top=b.scrollTop}},restoreScrollState:function(){if(this.rendered){var b=this.el.dom,a=this.scrollState;b.scrollLeft=a.left;b.scrollTop=a.top}},prepareData:function(e,d,c){var b,a;if(c){b=c.getAssociatedData();for(a in b){if(b.hasOwnProperty(a)){e[a]=b[a]}}}return e},collectData:function(c,g){var e=[],d=0,a=c.length,b;for(;d-1){c=d.bufferRender([a],b)[0];if(d.getNode(a)){d.all.replaceElement(b,c,true);d.updateIndexes(b,b);d.selModel.refresh();if(d.hasListeners.itemupdate){d.fireEvent("itemupdate",a,b,c)}return c}}}},onAdd:function(e,b,c){var d=this,a;if(d.rendered){if(d.all.getCount()===0){d.refresh();return}a=d.bufferRender(b,c);d.doAdd(a,b,c);d.selModel.refresh();d.updateIndexes(c);d.refreshSize();if(d.hasListeners.itemadd){d.fireEvent("itemadd",b,c,a)}}},doAdd:function(b,a,c){var d=this.all,e=d.getCount();if(e===0){this.clearViewEl();this.getTargetEl().appendChild(b)}else{if(c
',initComponent:function(){this.callParent();this.addEvents("spin","spinup","spindown")},onRender:function(){var b=this,a;b.callParent(arguments);a=b.triggerEl;b.spinUpEl=a.item(0);b.spinDownEl=a.item(1);b.triggerCell=b.spinUpEl.parent();b.setSpinUpEnabled(b.spinUpEnabled);b.setSpinDownEnabled(b.spinDownEnabled);if(b.keyNavEnabled){b.spinnerKeyNav=new Ext.util.KeyNav(b.inputEl,{scope:b,up:b.spinUp,down:b.spinDown})}if(b.mouseWheelEnabled){b.mon(b.bodyEl,"mousewheel",b.onMouseWheel,b)}},getSubTplMarkup:function(){var a=this,b=Ext.form.field.Base.prototype.getSubTplMarkup.apply(a,arguments);return'"+a.getTriggerMarkup()+"
'+b+"
"},getTriggerMarkup:function(){var a=this,b=(a.readOnly||a.hideTrigger);return a.getTpl("triggerTpl").apply({triggerStyle:"width:"+a.triggerWidth+(b?"px;display:none":"px")})},getTriggerWidth:function(){var b=this,a=0;if(b.triggerWrap&&!b.hideTrigger&&!b.readOnly){a=b.triggerWidth}return a},onTrigger1Click:function(){this.spinUp()},onTrigger2Click:function(){this.spinDown()},onTriggerWrapMouseup:function(){this.inputEl.focus()},spinUp:function(){var a=this;if(a.spinUpEnabled&&!a.disabled){a.fireEvent("spin",a,"up");a.fireEvent("spinup",a);a.onSpinUp()}},spinDown:function(){var a=this;if(a.spinDownEnabled&&!a.disabled){a.fireEvent("spin",a,"down");a.fireEvent("spindown",a);a.onSpinDown()}},setSpinUpEnabled:function(a){var b=this,c=b.spinUpEnabled;b.spinUpEnabled=a;if(c!==a&&b.rendered){b.spinUpEl[a?"removeCls":"addCls"](b.trigger1Cls+"-disabled")}},setSpinDownEnabled:function(a){var b=this,c=b.spinDownEnabled;b.spinDownEnabled=a;if(c!==a&&b.rendered){b.spinDownEl[a?"removeCls":"addCls"](b.trigger2Cls+"-disabled")}},onMouseWheel:function(b){var a=this,c;if(a.hasFocus){c=b.getWheelDelta();if(c>0){a.spinUp()}else{if(c<0){a.spinDown()}}b.stopEvent()}},onDestroy:function(){Ext.destroyMembers(this,"spinnerKeyNav","spinUpEl","spinDownEl");this.callParent()}});Ext.define("Ext.form.field.Number",{extend:"Ext.form.field.Spinner",alias:"widget.numberfield",alternateClassName:["Ext.form.NumberField","Ext.form.Number"],allowDecimals:true,decimalSeparator:".",submitLocaleSeparator:true,decimalPrecision:2,minValue:Number.NEGATIVE_INFINITY,maxValue:Number.MAX_VALUE,step:1,minText:"The minimum value for this field is {0}",maxText:"The maximum value for this field is {0}",nanText:"{0} is not a valid number",negativeText:"The value cannot be negative",baseChars:"0123456789",autoStripChars:false,initComponent:function(){var a=this,b;a.callParent();a.setMinValue(a.minValue);a.setMaxValue(a.maxValue);if(a.disableKeyFilter!==true){b=a.baseChars+"";if(a.allowDecimals){b+=a.decimalSeparator}if(a.minValue<0){b+="-"}b=Ext.String.escapeRegex(b);a.maskRe=new RegExp("["+b+"]");if(a.autoStripChars){a.stripCharsRe=new RegExp("[^"+b+"]","gi")}}},getErrors:function(c){var b=this,e=b.callParent(arguments),d=Ext.String.format,a;c=Ext.isDefined(c)?c:this.processRawValue(this.getRawValue());if(c.length<1){return e}c=String(c).replace(b.decimalSeparator,".");if(isNaN(c)){e.push(d(b.nanText,c))}a=b.parseValue(c);if(b.minValue===0&&a<0){e.push(this.negativeText)}else{if(ab.maxValue){e.push(d(b.maxText,b.maxValue))}return e},rawToValue:function(b){var a=this.fixPrecision(this.parseValue(b));if(a===null){a=b||null}return a},valueToRaw:function(c){var b=this,a=b.decimalSeparator;c=b.parseValue(c);c=b.fixPrecision(c);c=Ext.isNumber(c)?c:parseFloat(String(c).replace(a,"."));c=isNaN(c)?"":String(c).replace(".",a);return c},getSubmitValue:function(){var a=this,b=a.callParent();if(!a.submitLocaleSeparator){b=b.replace(a.decimalSeparator,".")}return b},onChange:function(){this.toggleSpinners();this.callParent(arguments)},toggleSpinners:function(){var b=this,c=b.getValue(),a=c===null;b.setSpinUpEnabled(a||cb.minValue)},setMinValue:function(a){this.minValue=Ext.Number.from(a,Number.NEGATIVE_INFINITY);this.toggleSpinners()},setMaxValue:function(a){this.maxValue=Ext.Number.from(a,Number.MAX_VALUE);this.toggleSpinners()},parseValue:function(a){a=parseFloat(String(a).replace(this.decimalSeparator,"."));return isNaN(a)?null:a},fixPrecision:function(d){var c=this,b=isNaN(d),a=c.decimalPrecision;if(b||!d){return b?"":d}else{if(!c.allowDecimals||a<=0){a=0}}return parseFloat(Ext.Number.toFixed(parseFloat(d),a))},beforeBlur:function(){var b=this,a=b.parseValue(b.getRawValue());if(!Ext.isEmpty(a)){b.setValue(a)}},onSpinUp:function(){var a=this;if(!a.readOnly){a.setValue(Ext.Number.constrain(a.getValue()+a.step,a.minValue,a.maxValue))}},onSpinDown:function(){var a=this;if(!a.readOnly){a.setValue(Ext.Number.constrain(a.getValue()-a.step,a.minValue,a.maxValue))}}});Ext.define("Ext.toolbar.Paging",{extend:"Ext.toolbar.Toolbar",alias:"widget.pagingtoolbar",alternateClassName:"Ext.PagingToolbar",requires:["Ext.toolbar.TextItem","Ext.form.field.Number"],mixins:{bindable:"Ext.util.Bindable"},displayInfo:false,prependButtons:false,displayMsg:"Displaying {0} - {1} of {2}",emptyMsg:"No data to display",beforePageText:"Page",afterPageText:"of {0}",firstText:"First Page",prevText:"Previous Page",nextText:"Next Page",lastText:"Last Page",refreshText:"Refresh",inputItemWidth:30,getPagingItems:function(){var a=this;return[{itemId:"first",tooltip:a.firstText,overflowText:a.firstText,iconCls:Ext.baseCSSPrefix+"tbar-page-first",disabled:true,handler:a.moveFirst,scope:a},{itemId:"prev",tooltip:a.prevText,overflowText:a.prevText,iconCls:Ext.baseCSSPrefix+"tbar-page-prev",disabled:true,handler:a.movePrevious,scope:a},"-",a.beforePageText,{xtype:"numberfield",itemId:"inputItem",name:"inputItem",cls:Ext.baseCSSPrefix+"tbar-page-number",allowDecimals:false,minValue:1,hideTrigger:true,enableKeyEvents:true,keyNavEnabled:false,selectOnFocus:true,submitValue:false,isFormField:false,width:a.inputItemWidth,margins:"-1 2 3 2",listeners:{scope:a,keydown:a.onPagingKeyDown,blur:a.onPagingBlur}},{xtype:"tbtext",itemId:"afterTextItem",text:Ext.String.format(a.afterPageText,1)},"-",{itemId:"next",tooltip:a.nextText,overflowText:a.nextText,iconCls:Ext.baseCSSPrefix+"tbar-page-next",disabled:true,handler:a.moveNext,scope:a},{itemId:"last",tooltip:a.lastText,overflowText:a.lastText,iconCls:Ext.baseCSSPrefix+"tbar-page-last",disabled:true,handler:a.moveLast,scope:a},"-",{itemId:"refresh",tooltip:a.refreshText,overflowText:a.refreshText,iconCls:Ext.baseCSSPrefix+"tbar-loading",handler:a.doRefresh,scope:a}]},initComponent:function(){var b=this,c=b.getPagingItems(),a=b.items||b.buttons||[];if(b.prependButtons){b.items=a.concat(c)}else{b.items=c.concat(a)}delete b.buttons;if(b.displayInfo){b.items.push("->");b.items.push({xtype:"tbtext",itemId:"displayItem"})}b.callParent();b.addEvents("change","beforechange");b.on("beforerender",b.onLoad,b,{single:true});b.bindStore(b.store||"ext-empty-store",true)},updateInfo:function(){var e=this,c=e.child("#displayItem"),a=e.store,b=e.getPageData(),d,g;if(c){d=a.getCount();if(d===0){g=e.emptyMsg}else{g=Ext.String.format(e.displayMsg,b.fromRecord,b.toRecord,b.total)}c.setText(g)}},onLoad:function(){var g=this,d,b,c,a,e,h;e=g.store.getCount();h=e===0;if(!h){d=g.getPageData();b=d.currentPage;c=d.pageCount;a=Ext.String.format(g.afterPageText,isNaN(c)?1:c)}else{b=0;c=0;a=Ext.String.format(g.afterPageText,0)}Ext.suspendLayouts();g.child("#afterTextItem").setText(a);g.child("#inputItem").setDisabled(h).setValue(b);g.child("#first").setDisabled(b===1||h);g.child("#prev").setDisabled(b===1||h);g.child("#next").setDisabled(b===c||h);g.child("#last").setDisabled(b===c||h);g.child("#refresh").enable();g.updateInfo();Ext.resumeLayouts(true);if(g.rendered){g.fireEvent("change",g,d)}},getPageData:function(){var b=this.store,a=b.getTotalCount();return{total:a,currentPage:b.currentPage,pageCount:Math.ceil(a/b.pageSize),fromRecord:((b.currentPage-1)*b.pageSize)+1,toRecord:Math.min(b.currentPage*b.pageSize,a)}},onLoadError:function(){if(!this.rendered){return}this.child("#refresh").enable()},readPageFromInput:function(b){var a=this.child("#inputItem").getValue(),c=parseInt(a,10);if(!a||isNaN(c)){this.child("#inputItem").setValue(b.currentPage);return false}return c},onPagingFocus:function(){this.child("#inputItem").select()},onPagingBlur:function(b){var a=this.getPageData().currentPage;this.child("#inputItem").setValue(a)},onPagingKeyDown:function(i,h){var d=this,b=h.getKey(),c=d.getPageData(),a=h.shiftKey?10:1,g;if(b==h.RETURN){h.stopEvent();g=d.readPageFromInput(c);if(g!==false){g=Math.min(Math.max(1,g),c.pageCount);if(d.fireEvent("beforechange",d,g)!==false){d.store.loadPage(g)}}}else{if(b==h.HOME||b==h.END){h.stopEvent();g=b==h.HOME?1:c.pageCount;i.setValue(g)}else{if(b==h.UP||b==h.PAGE_UP||b==h.DOWN||b==h.PAGE_DOWN){h.stopEvent();g=d.readPageFromInput(c);if(g){if(b==h.DOWN||b==h.PAGE_DOWN){a*=-1}g+=a;if(g>=1&&g<=c.pageCount){i.setValue(g)}}}}}},beforeLoad:function(){if(this.rendered&&this.refresh){this.refresh.disable()}},moveFirst:function(){if(this.fireEvent("beforechange",this,1)!==false){this.store.loadPage(1)}},movePrevious:function(){var b=this,a=b.store.currentPage-1;if(a>0){if(b.fireEvent("beforechange",b,a)!==false){b.store.previousPage()}}},moveNext:function(){var c=this,b=c.getPageData().pageCount,a=c.store.currentPage+1;if(a<=b){if(c.fireEvent("beforechange",c,a)!==false){c.store.nextPage()}}},moveLast:function(){var b=this,a=b.getPageData().pageCount;if(b.fireEvent("beforechange",b,a)!==false){b.store.loadPage(a)}},doRefresh:function(){var a=this,b=a.store.currentPage;if(a.fireEvent("beforechange",a,b)!==false){a.store.loadPage(b)}},getStoreListeners:function(){return{beforeload:this.beforeLoad,load:this.onLoad,exception:this.onLoadError}},unbind:function(a){this.bindStore(null)},bind:function(a){this.bindStore(a)},onDestroy:function(){this.unbind();this.callParent()}});Ext.define("Ext.view.BoundList",{extend:"Ext.view.View",alias:"widget.boundlist",alternateClassName:"Ext.BoundList",requires:["Ext.layout.component.BoundList","Ext.toolbar.Paging"],pageSize:0,baseCls:Ext.baseCSSPrefix+"boundlist",itemCls:Ext.baseCSSPrefix+"boundlist-item",listItemCls:"",shadow:false,trackOver:true,refreshed:0,deferInitialRefresh:false,componentLayout:"boundlist",childEls:["listEl"],renderTpl:['
',"{%","var me=values.$comp, pagingToolbar=me.pagingToolbar;","if (pagingToolbar) {","pagingToolbar.ownerLayout = me.componentLayout;","Ext.DomHelper.generateMarkup(pagingToolbar.getRenderTree(), out);","}","%}",{disableFormats:true}],initComponent:function(){var b=this,a=b.baseCls,c=b.itemCls;b.selectedItemCls=a+"-selected";b.overItemCls=a+"-item-over";b.itemSelector="."+c;if(b.floating){b.addCls(a+"-floating")}if(!b.tpl){b.tpl=new Ext.XTemplate('
    ','
  • '+b.getInnerTpl(b.displayField)+"
  • ","
")}else{if(Ext.isString(b.tpl)){b.tpl=new Ext.XTemplate(b.tpl)}}if(b.pageSize){b.pagingToolbar=b.createPagingToolbar()}b.callParent()},beforeRender:function(){var a=this;a.callParent(arguments);if(a.up("menu")){a.addCls(Ext.baseCSSPrefix+"menu")}},getBubbleTarget:function(){return this.pickerField},getRefItems:function(){return this.pagingToolbar?[this.pagingToolbar]:[]},createPagingToolbar:function(){return Ext.widget("pagingtoolbar",{id:this.id+"-paging-toolbar",pageSize:this.pageSize,store:this.store,border:false,ownerCt:this,ownerLayout:this.getComponentLayout()})},finishRenderChildren:function(){var a=this.pagingToolbar;this.callParent(arguments);if(a){a.finishRender()}},refresh:function(){var b=this,a=b.pagingToolbar;b.callParent();if(b.rendered&&a&&a.rendered&&!b.preserveScrollOnRefresh){b.el.appendChild(a.el)}},bindStore:function(a,b){var c=this.pagingToolbar;this.callParent(arguments);if(c){c.bindStore(this.store,b)}},getTargetEl:function(){return this.listEl||this.el},getInnerTpl:function(a){return"{"+a+"}"},onDestroy:function(){Ext.destroyMembers(this,"pagingToolbar","listEl");this.callParent()}});Ext.define("Ext.view.BoundListKeyNav",{extend:"Ext.util.KeyNav",requires:"Ext.view.BoundList",constructor:function(b,a){var c=this;c.boundList=a.boundList;c.callParent([b,Ext.apply({},a,c.defaultHandlers)])},defaultHandlers:{up:function(){var e=this,b=e.boundList,d=b.all,g=b.highlightedItem,c=g?b.indexOf(g):-1,a=c>0?c-1:d.getCount()-1;e.highlightAt(a)},down:function(){var e=this,b=e.boundList,d=b.all,g=b.highlightedItem,c=g?b.indexOf(g):-1,a=c',' value="{[Ext.util.Format.htmlEncode(values.value)]}"
',' name="{name}"',' placeholder="{placeholder}"',' size="{size}"',' maxlength="{maxLength}"',' readonly="readonly"',' disabled="disabled"',' tabIndex="{tabIdx}"',' style="{fieldStyle}"',"/>",{compiled:true,disableFormats:true}],getSubTplData:function(){var a=this;Ext.applyIf(a.subTplData,{hiddenDataCls:a.hiddenDataCls});return a.callParent(arguments)},afterRender:function(){var a=this;a.callParent(arguments);a.setHiddenValue(a.value)},multiSelect:false,delimiter:", ",displayField:"text",triggerAction:"all",allQuery:"",queryParam:"query",queryMode:"remote",queryCaching:true,pageSize:0,autoSelect:true,typeAhead:false,typeAheadDelay:250,selectOnTab:true,forceSelection:false,growToLongestValue:true,defaultListConfig:{loadingHeight:70,minWidth:70,maxHeight:300,shadow:"sides"},ignoreSelection:0,removingRecords:null,resizeComboToGrow:function(){var a=this;return a.grow&&a.growToLongestValue},initComponent:function(){var e=this,c=Ext.isDefined,b=e.store,d=e.transform,a,g;Ext.applyIf(e.renderSelectors,{hiddenDataEl:"."+e.hiddenDataCls.split(" ").join(".")});this.addEvents("beforequery","select","beforeselect","beforedeselect");if(d){a=Ext.getDom(d);if(a){if(!e.store){b=Ext.Array.map(Ext.Array.from(a.options),function(h){return[h.value,h.text]})}if(!e.name){e.name=a.name}if(!("value" in e)){e.value=a.value}}}e.bindStore(b||"ext-empty-store",true);b=e.store;if(b.autoCreated){e.queryMode="local";e.valueField=e.displayField="field1";if(!b.expanded){e.displayField="field2"}}if(!c(e.valueField)){e.valueField=e.displayField}g=e.queryMode==="local";if(!c(e.queryDelay)){e.queryDelay=g?10:500}if(!c(e.minChars)){e.minChars=g?0:4}if(!e.displayTpl){e.displayTpl=new Ext.XTemplate('{[typeof values === "string" ? values : values["'+e.displayField+'"]]}'+e.delimiter+"")}else{if(Ext.isString(e.displayTpl)){e.displayTpl=new Ext.XTemplate(e.displayTpl)}}e.callParent();e.doQueryTask=new Ext.util.DelayedTask(e.doRawQuery,e);if(e.store.getCount()>0){e.setValue(e.value)}if(a){e.render(a.parentNode,a);Ext.removeNode(a);delete e.renderTo}},getStore:function(){return this.store},beforeBlur:function(){this.doQueryTask.cancel();this.assertValue()},assertValue:function(){var a=this,b=a.getRawValue(),c;if(a.forceSelection){if(a.multiSelect){if(b!==a.getDisplayValue()){a.setValue(a.lastSelection)}}else{c=a.findRecordByDisplay(b);if(c){a.select(c)}else{a.setValue(a.lastSelection)}}}a.collapse()},onTypeAhead:function(){var e=this,d=e.displayField,b=e.store.findRecord(d,e.getRawValue()),c=e.getPicker(),g,a,h;if(b){g=b.get(d);a=g.length;h=e.getRawValue().length;c.highlightItem(c.getNode(b));if(h!==0&&h!==a){e.setRawValue(g);e.selectText(h,g.length)}}},resetToDefault:Ext.emptyFn,beforeReset:function(){this.callParent();this.clearFilter()},onUnbindStore:function(a){var b=this.picker;if(!a&&b){b.bindStore(null)}this.clearFilter()},onBindStore:function(a,c){var b=this.picker;if(!c){this.resetToDefault()}if(b){b.bindStore(a)}},getStoreListeners:function(){var a=this;return{beforeload:a.onBeforeLoad,clear:a.onClear,datachanged:a.onDataChanged,load:a.onLoad,exception:a.onException,remove:a.onRemove}},onBeforeLoad:function(){++this.ignoreSelection},onDataChanged:function(){var a=this;if(a.resizeComboToGrow()){a.updateLayout()}},onClear:function(){var a=this;if(a.resizeComboToGrow()){a.removingRecords=true;a.onDataChanged()}},onRemove:function(){var a=this;if(a.resizeComboToGrow()){a.removingRecords=true}},onException:function(){if(this.ignoreSelection>0){--this.ignoreSelection}this.collapse()},onLoad:function(){var a=this,b=a.value;if(a.ignoreSelection>0){--a.ignoreSelection}if(a.rawQuery){a.rawQuery=false;a.syncSelection();if(a.picker&&!a.picker.getSelectionModel().hasSelection()){a.doAutoSelect()}}else{if(a.value||a.value===0){a.setValue(a.value)}else{if(a.store.getCount()){a.doAutoSelect()}else{a.setValue(a.value)}}}},doRawQuery:function(){this.doQuery(this.getRawValue(),false,true)},doQuery:function(i,d,g){i=i||"";var e=this,b={query:i,forceAll:d,combo:e,cancel:false},a=e.store,h=e.queryMode==="local",c;if(e.fireEvent("beforequery",b)===false||b.cancel){return false}i=b.query;d=b.forceAll;if(d||(i.length>=e.minChars)){e.expand();if(!e.queryCaching||e.lastQuery!==i){e.lastQuery=i;if(h){a.suspendEvents();c=e.clearFilter();if(i||!d){e.activeFilter=new Ext.util.Filter({root:"data",property:e.displayField,value:i});a.filter(e.activeFilter);c=true}else{delete e.activeFilter}a.resumeEvents();if(e.rendered&&c){e.getPicker().refresh()}}else{e.rawQuery=g;if(e.pageSize){e.loadPage(1)}else{a.load({params:e.getParams(i)})}}}if(e.getRawValue()!==e.getDisplayValue()){e.ignoreSelection++;e.picker.getSelectionModel().deselectAll();e.ignoreSelection--}if(h){e.doAutoSelect()}if(e.typeAhead){e.doTypeAhead()}}return true},clearFilter:function(){var a=this.store,c=this.activeFilter,d=a.filters,b;if(c){if(d.getCount()>1){d.remove(c);b=d.getRange()}a.clearFilter(true);if(b){a.filter(b)}}return !!c},loadPage:function(a){this.store.loadPage(a,{params:this.getParams(this.lastQuery)})},onPageChange:function(b,a){this.loadPage(a);return false},getParams:function(c){var b={},a=this.queryParam;if(a){b[a]=c}return b},doAutoSelect:function(){var b=this,a=b.picker,c,d;if(a&&b.autoSelect&&b.store.getCount()>0){c=a.getSelectionModel().lastSelected;d=a.getNode(c||0);if(d){a.highlightItem(d);a.listEl.scrollChildIntoView(d,false)}}},doTypeAhead:function(){if(!this.typeAheadTask){this.typeAheadTask=new Ext.util.DelayedTask(this.onTypeAhead,this)}if(this.lastKey!=Ext.EventObject.BACKSPACE&&this.lastKey!=Ext.EventObject.DELETE){this.typeAheadTask.delay(this.typeAheadDelay)}},onTriggerClick:function(){var a=this;if(!a.readOnly&&!a.disabled){if(a.isExpanded){a.collapse()}else{a.onFocus({});if(a.triggerAction==="all"){a.doQuery(a.allQuery,true)}else{a.doQuery(a.getRawValue(),false,true)}}a.inputEl.focus()}},onKeyUp:function(d,b){var c=this,a=d.getKey();if(!c.readOnly&&!c.disabled&&c.editable){c.lastKey=a;if(!d.isSpecialKey()||a==d.BACKSPACE||a==d.DELETE){c.doQueryTask.delay(c.queryDelay)}}if(c.enableKeyEvents){c.callParent(arguments)}},initEvents:function(){var a=this;a.callParent();if(!a.enableKeyEvents){a.mon(a.inputEl,"keyup",a.onKeyUp,a)}},onDestroy:function(){this.bindStore(null);this.callParent()},onAdded:function(){var a=this;a.callParent(arguments);if(a.picker){a.picker.ownerCt=a.up("[floating]");a.picker.registerWithOwnerCt()}},createPicker:function(){var c=this,b,a=Ext.apply({xtype:"boundlist",pickerField:c,selModel:{mode:c.multiSelect?"SIMPLE":"SINGLE"},floating:true,hidden:true,store:c.store,displayField:c.displayField,focusOnToFront:false,pageSize:c.pageSize,tpl:c.tpl},c.listConfig,c.defaultListConfig);b=c.picker=Ext.widget(a);if(c.pageSize){b.pagingToolbar.on("beforechange",c.onPageChange,c)}c.mon(b,{itemclick:c.onItemClick,refresh:c.onListRefresh,scope:c});c.mon(b.getSelectionModel(),{beforeselect:c.onBeforeSelect,beforedeselect:c.onBeforeDeselect,selectionchange:c.onListSelectionChange,scope:c});return b},alignPicker:function(){var b=this,a=b.getPicker(),e=b.getPosition()[1]-Ext.getBody().getScroll().top,d=Ext.Element.getViewHeight()-e-b.getHeight(),c=Math.max(e,d);if(a.height){delete a.height;a.updateLayout()}if(a.getHeight()>c-5){a.setHeight(c-5)}b.callParent()},onListRefresh:function(){this.alignPicker();this.syncSelection()},onItemClick:function(c,a){var e=this,d=e.picker.getSelectionModel().getSelection(),b=e.valueField;if(!e.multiSelect&&d.length){if(a.get(b)===d[0].get(b)){e.displayTplData=[a.data];e.setRawValue(e.getDisplayValue());e.collapse()}}},onBeforeSelect:function(b,a){return this.fireEvent("beforeselect",this,a,a.index)},onBeforeDeselect:function(b,a){return this.fireEvent("beforedeselect",this,a,a.index)},onListSelectionChange:function(b,d){var a=this,e=a.multiSelect,c=d.length>0;if(!a.ignoreSelection&&a.isExpanded){if(!e){Ext.defer(a.collapse,1,a)}if(e||c){a.setValue(d,false)}if(c){a.fireEvent("select",a,d)}a.inputEl.focus()}},onExpand:function(){var d=this,a=d.listKeyNav,c=d.selectOnTab,b=d.getPicker();if(a){a.enable()}else{a=d.listKeyNav=new Ext.view.BoundListKeyNav(this.inputEl,{boundList:b,forceKeyDown:true,tab:function(g){if(c){this.selectHighlighted(g);d.triggerBlur()}return true}})}if(c){d.ignoreMonitorTab=true}Ext.defer(a.enable,1,a);d.inputEl.focus()},onCollapse:function(){var b=this,a=b.listKeyNav;if(a){a.disable();b.ignoreMonitorTab=false}},select:function(a){this.setValue(a,true)},findRecord:function(d,c){var b=this.store,a=b.findExact(d,c);return a!==-1?b.getAt(a):false},findRecordByValue:function(a){return this.findRecord(this.valueField,a)},findRecordByDisplay:function(a){return this.findRecord(this.displayField,a)},setValue:function(m,e){var k=this,c=k.valueNotFoundText,n=k.inputEl,g,j,h,a,l=[],b=[],d=[];if(k.store.loading){k.value=m;k.setHiddenValue(k.value);return k}m=Ext.Array.from(m);for(g=0,j=m.length;g0){e.hiddenDataEl.update(Ext.DomHelper.markup({tag:"input",type:"hidden",name:a}));c=1;h=b.firstChild}while(c>g){b.removeChild(k[0]);--c}while(c=0){g.push(i)}}h.ignoreSelection++;c=d.getSelectionModel();c.deselectAll();if(g.length){c.select(g)}h.ignoreSelection--}},onEditorTab:function(b){var a=this.listKeyNav;if(this.selectOnTab&&a){a.selectHighlighted(b)}}});Ext.define("Ext.picker.Month",{extend:"Ext.Component",requires:["Ext.XTemplate","Ext.util.ClickRepeater","Ext.Date","Ext.button.Button"],alias:"widget.monthpicker",alternateClassName:"Ext.MonthPicker",childEls:["bodyEl","prevEl","nextEl","buttonsEl","monthEl","yearEl"],renderTpl:['
','
','','',"","
",'
','
','','',"
",'','',"","
",'
',"
",'','
{%',"var me=values.$comp, okBtn=me.okBtn, cancelBtn=me.cancelBtn;","okBtn.ownerLayout = cancelBtn.ownerLayout = me.componentLayout;","okBtn.ownerCt = cancelBtn.ownerCt = me;","Ext.DomHelper.generateMarkup(okBtn.getRenderTree(), out);","Ext.DomHelper.generateMarkup(cancelBtn.getRenderTree(), out);","%}
","
"],okText:"OK",cancelText:"Cancel",baseCls:Ext.baseCSSPrefix+"monthpicker",showButtons:true,width:178,measureWidth:35,measureMaxHeight:20,smallCls:Ext.baseCSSPrefix+"monthpicker-small",totalYears:10,yearOffset:5,monthOffset:6,initComponent:function(){var a=this;a.selectedCls=a.baseCls+"-selected";a.addEvents("cancelclick","monthclick","monthdblclick","okclick","select","yearclick","yeardblclick");if(a.small){a.addCls(a.smallCls)}a.setValue(a.value);a.activeYear=a.getYear(new Date().getFullYear()-4,-4);if(a.showButtons){a.okBtn=new Ext.button.Button({text:a.okText,handler:a.onOkClick,scope:a});a.cancelBtn=new Ext.button.Button({text:a.cancelText,handler:a.onCancelClick,scope:a})}this.callParent()},beforeRender:function(){var g=this,c=0,b=[],a=Ext.Date.getShortMonthName,e=g.monthOffset,h=g.monthMargin,d="";g.callParent();for(;cd.measureMaxHeight){--c;a.setStyle("margin","0 "+c+"px")}return c},getLargest:function(a){var b=0;this.months.each(function(d){var c=d.getHeight();if(c>b){b=c}});return b},setValue:function(d){var c=this,e=c.activeYear,g=c.monthOffset,b,a;if(!d){c.value=[null,null]}else{if(Ext.isDate(d)){c.value=[d.getMonth(),d.getFullYear()]}else{c.value=[d[0],d[1]]}}if(c.rendered){b=c.value[1];if(b!==null){if((be+c.yearOffset)){c.activeYear=b-c.yearOffset+1}}c.updateBody()}return c},getValue:function(){return this.value},hasSelection:function(){var a=this.value;return a[0]!==null&&a[1]!==null},getYears:function(){var d=this,e=d.yearOffset,g=d.activeYear,a=g+e,c=g,b=[];for(;c','",'','','','',"","",'','',"{#:this.isEndOfWeek}",'","","","",'','',"","",{firstInitial:function(a){return Ext.picker.Date.prototype.getDayInitial(a)},isEndOfWeek:function(b){b--;var a=b%7===0&&b!==0;return a?'':""},renderTodayBtn:function(a,b){Ext.DomHelper.generateMarkup(a.$comp.todayBtn.getRenderTree(),b)},renderMonthBtn:function(a,b){Ext.DomHelper.generateMarkup(a.$comp.monthBtn.getRenderTree(),b)}}],todayText:"Today",ariaTitle:"Date Picker: {0}",ariaTitleDateFormat:"F d, Y",todayTip:"{0} (Spacebar)",minText:"This date is before the minimum date",maxText:"This date is after the maximum date",disabledDaysText:"Disabled",disabledDatesText:"Disabled",nextText:"Next Month (Control+Right)",prevText:"Previous Month (Control+Left)",monthYearText:"Choose a month (Control+Up/Down to move years)",monthYearFormat:"F Y",startDay:0,showToday:true,disableAnim:false,baseCls:Ext.baseCSSPrefix+"datepicker",longDayFormat:"F d, Y",focusOnShow:false,focusOnSelect:true,width:178,initHour:12,numDays:42,initComponent:function(){var b=this,a=Ext.Date.clearTime;b.selectedCls=b.baseCls+"-selected";b.disabledCellCls=b.baseCls+"-disabled";b.prevCls=b.baseCls+"-prevday";b.activeCls=b.baseCls+"-active";b.nextCls=b.baseCls+"-prevday";b.todayCls=b.baseCls+"-today";b.dayNames=b.dayNames.slice(b.startDay).concat(b.dayNames.slice(0,b.startDay));b.listeners=Ext.apply(b.listeners||{},{mousewheel:{element:"eventEl",fn:b.handleMouseWheel,scope:b},click:{element:"eventEl",fn:b.handleDateClick,scope:b,delegate:"a."+b.baseCls+"-date"}});this.callParent();b.value=b.value?a(b.value,true):a(new Date());b.addEvents("select");b.initDisabledDays()},beforeRender:function(){var b=this,c=new Array(b.numDays),a=Ext.Date.format(new Date(),b.format);if(b.up("menu")){b.addCls(Ext.baseCSSPrefix+"menu")}b.monthBtn=new Ext.button.Split({ownerCt:b,ownerLayout:b.getComponentLayout(),text:"",tooltip:b.monthYearText,listeners:{click:b.showMonthPicker,arrowclick:b.showMonthPicker,scope:b}});if(this.showToday){b.todayBtn=new Ext.button.Button({ownerCt:b,ownerLayout:b.getComponentLayout(),text:Ext.String.format(b.todayText,a),tooltip:Ext.String.format(b.todayTip,a),tooltipType:"title",handler:b.selectToday,scope:b})}b.callParent();Ext.applyIf(b,{renderData:{}});Ext.apply(b.renderData,{dayNames:b.dayNames,showToday:b.showToday,prevText:b.prevText,nextText:b.nextText,days:c})},finishRenderChildren:function(){var a=this;a.callParent();a.monthBtn.finishRender();if(a.showToday){a.todayBtn.finishRender()}},onRender:function(b,a){var c=this;c.callParent(arguments);c.el.unselectable();c.cells=c.eventEl.select("tbody td");c.textNodes=c.eventEl.query("tbody td span")},initEvents:function(){var c=this,a=Ext.Date,b=a.DAY;c.callParent();c.prevRepeater=new Ext.util.ClickRepeater(c.prevEl,{handler:c.showPrevMonth,scope:c,preventDefault:true,stopDefault:true});c.nextRepeater=new Ext.util.ClickRepeater(c.nextEl,{handler:c.showNextMonth,scope:c,preventDefault:true,stopDefault:true});c.keyNav=new Ext.util.KeyNav(c.eventEl,Ext.apply({scope:c,left:function(d){if(d.ctrlKey){c.showPrevMonth()}else{c.update(a.add(c.activeDate,b,-1))}},right:function(d){if(d.ctrlKey){c.showNextMonth()}else{c.update(a.add(c.activeDate,b,1))}},up:function(d){if(d.ctrlKey){c.showNextYear()}else{c.update(a.add(c.activeDate,b,-7))}},down:function(d){if(d.ctrlKey){c.showPrevYear()}else{c.update(a.add(c.activeDate,b,7))}},pageUp:c.showNextMonth,pageDown:c.showPrevMonth,enter:function(d){d.stopPropagation();return true}},c.keyNavConfig));if(c.showToday){c.todayKeyListener=c.eventEl.addKeyListener(Ext.EventObject.SPACE,c.selectToday,c)}c.update(c.value)},initDisabledDays:function(){var h=this,b=h.disabledDates,g="(?:",a,i,c,e;if(!h.disabledDatesRE&&b){a=b.length-1;c=b.length;for(i=0;i0){this.showPrevMonth()}else{if(b<0){this.showNextMonth()}}}},handleDateClick:function(d,a){var c=this,b=c.handler;d.stopEvent();if(!c.disabled&&a.dateValue&&!Ext.fly(a.parentNode).hasCls(c.disabledCellCls)){c.doCancelFocus=c.focusOnSelect===false;c.setValue(new Date(a.dateValue));delete c.doCancelFocus;c.fireEvent("select",c,c.value);if(b){b.call(c.scope||c,c,c.value)}c.onSelect()}},onSelect:function(){if(this.hideOnSelect){this.hide()}},selectToday:function(){var c=this,a=c.todayBtn,b=c.handler;if(a&&!a.disabled){c.setValue(Ext.Date.clearTime(new Date()));c.fireEvent("select",c,c.value);if(b){b.call(c.scope||c,c,c.value)}c.onSelect()}return c},selectedUpdate:function(a){var d=this,i=a.getTime(),j=d.cells,k=d.selectedCls,g=j.elements,b,e=g.length,h;j.removeCls(k);for(b=0;bv||(C&&x&&C.test(n.dateFormat(F,x)))||(H&&H.indexOf(F.getDay())!=-1));if(!E.disabled){E.todayBtn.setDisabled(a);E.todayKeyListener.setDisabled(a)}}m=function(i){r=+n.clearTime(q,true);i.title=n.format(q,b);i.firstChild.dateValue=r;if(r==z){i.className+=" "+E.todayCls;i.title=E.todayText}if(r==u){i.className+=" "+E.selectedCls;E.fireEvent("highlightitem",E,i);if(e&&E.floating){Ext.fly(i.firstChild).focus(50)}}if(rv){i.className=G;i.title=E.maxText;return}if(H){if(H.indexOf(q.getDay())!=-1){i.title=B;i.className=G}}if(C&&x){j=n.dateFormat(q,x);if(C.test(j)){i.title=s.replace("%0",j);i.className=G}}};for(;w=l){o=(++D);c=E.nextCls}else{o=w-h+1;c=E.activeCls}}d[w].innerHTML=o;g[w].className=c;q.setDate(q.getDate()+1);m(g[w])}E.monthBtn.setText(Ext.Date.format(A,E.monthYearFormat))},update:function(a,d){var b=this,c=b.activeDate;if(b.rendered){b.activeDate=a;if(!d&&c&&b.el&&c.getMonth()==a.getMonth()&&c.getFullYear()==a.getFullYear()){b.selectedUpdate(a,c)}else{b.fullUpdate(a,c)}b.innerEl.dom.title=Ext.String.format(b.ariaTitle,Ext.Date.format(b.activeDate,b.ariaTitleDateFormat))}return b},beforeDestroy:function(){var a=this;if(a.rendered){Ext.destroy(a.todayKeyListener,a.keyNav,a.monthPicker,a.monthBtn,a.nextRepeater,a.prevRepeater,a.todayBtn);delete a.textNodes;delete a.cells.elements}a.callParent()},onShow:function(){this.callParent(arguments);if(this.focusOnShow){this.focus()}}},function(){var b=this.prototype,a=Ext.Date;b.monthNames=a.monthNames;b.dayNames=a.dayNames;b.format=a.defaultFormat});Ext.define("Ext.form.field.Date",{extend:"Ext.form.field.Picker",alias:"widget.datefield",requires:["Ext.picker.Date"],alternateClassName:["Ext.form.DateField","Ext.form.Date"],format:"m/d/Y",altFormats:"m/d/Y|n/j/Y|n/j/y|m/j/y|n/d/y|m/j/Y|n/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d|n-j|n/j",disabledDaysText:"Disabled",disabledDatesText:"Disabled",minText:"The date in this field must be equal to or after {0}",maxText:"The date in this field must be equal to or before {0}",invalidText:"{0} is not a valid date - it must be in the format {1}",triggerCls:Ext.baseCSSPrefix+"form-date-trigger",showToday:true,useStrict:undefined,initTime:"12",initTimeFormat:"H",matchFieldWidth:false,startDay:0,initComponent:function(){var d=this,b=Ext.isString,c,a;c=d.minValue;a=d.maxValue;if(b(c)){d.minValue=d.parseDate(c)}if(b(a)){d.maxValue=d.parseDate(a)}d.disabledDatesRE=null;d.initDisabledDays();d.callParent()},initValue:function(){var a=this,b=a.value;if(Ext.isString(b)){a.value=a.rawToValue(b)}a.callParent()},initDisabledDays:function(){if(this.disabledDates){var b=this.disabledDates,a=b.length-1,g="(?:",h,e=b.length,c;for(h=0;hk(h).getTime()){o.push(p(j.maxText,j.formatDate(h)))}if(n){l=q.getDay();for(;e'+Ext.DomHelper.markup(b)+"";c.destroy();return a},createFileInput:function(){var a=this;a.fileInputEl=a.buttonEl.createChild({name:a.getName(),id:a.id+"-fileInputEl",cls:Ext.baseCSSPrefix+"form-file-input",tag:"input",type:"file",size:1});a.fileInputEl.on({scope:a,change:a.onFileChange})},onFileChange:function(){this.lastValue=null;Ext.form.field.File.superclass.setValue.call(this,this.fileInputEl.dom.value)},setValue:Ext.emptyFn,reset:function(){var a=this;if(a.rendered){a.fileInputEl.remove();a.createFileInput();a.inputEl.dom.value=""}a.callParent()},onDisable:function(){this.callParent();this.disableItems()},disableItems:function(){var a=this.fileInputEl;if(a){a.dom.disabled=true}this["buttonEl-btnEl"].dom.disabled=true},onEnable:function(){var a=this;a.callParent();a.fileInputEl.dom.disabled=false;this["buttonEl-btnEl"].dom.disabled=false},isFileUpload:function(){return true},extractFileInput:function(){var a=this.fileInputEl.dom;this.reset();return a},onDestroy:function(){Ext.destroyMembers(this,"fileInputEl","buttonEl");this.callParent()}});Ext.define("Ext.form.field.Hidden",{extend:"Ext.form.field.Base",alias:["widget.hiddenfield","widget.hidden"],alternateClassName:"Ext.form.Hidden",inputType:"hidden",hideLabel:true,initComponent:function(){this.formItemCls+="-hidden";this.callParent()},isEqual:function(b,a){return this.isEqualAsString(b,a)},initEvents:Ext.emptyFn,setSize:Ext.emptyFn,setWidth:Ext.emptyFn,setHeight:Ext.emptyFn,setPosition:Ext.emptyFn,setPagePosition:Ext.emptyFn,markInvalid:Ext.emptyFn,clearInvalid:Ext.emptyFn});Ext.define("Ext.layout.component.field.HtmlEditor",{extend:"Ext.layout.component.field.Field",alias:["layout.htmleditor"],type:"htmleditor",toolbarSizePolicy:{setsWidth:0,setsHeight:0},beginLayout:function(a){this.callParent(arguments);a.textAreaContext=a.getEl("textareaEl");a.iframeContext=a.getEl("iframeEl");a.toolbarContext=a.context.getCmp(this.owner.getToolbar())},renderItems:Ext.emptyFn,getItemSizePolicy:function(a){return this.toolbarSizePolicy},getLayoutItems:function(){var a=this.owner.getToolbar();return a?[a]:[]},getRenderTarget:function(){return this.owner.bodyEl},publishInnerHeight:function(c,a){var b=this,d=a-b.measureLabelErrorHeight(c)-c.toolbarContext.getProp("height")-c.bodyCellContext.getPaddingInfo().height;if(Ext.isNumber(d)){c.textAreaContext.setHeight(d);c.iframeContext.setHeight(d)}else{b.done=false}}});Ext.define("Ext.picker.Color",{extend:"Ext.Component",requires:"Ext.XTemplate",alias:"widget.colorpicker",alternateClassName:"Ext.ColorPalette",componentCls:Ext.baseCSSPrefix+"color-picker",selectedCls:Ext.baseCSSPrefix+"color-picker-selected",value:null,clickEvent:"click",allowReselect:false,colors:["000000","993300","333300","003300","003366","000080","333399","333333","800000","FF6600","808000","008000","008080","0000FF","666699","808080","FF0000","FF9900","99CC00","339966","33CCCC","3366FF","800080","969696","FF00FF","FFCC00","FFFF00","00FF00","00FFFF","00CCFF","993366","C0C0C0","FF99CC","FFCC99","FFFF99","CCFFCC","CCFFFF","99CCFF","CC99FF","FFFFFF"],colorRe:/(?:^|\s)color-(.{6})(?:\s|$)/,renderTpl:['','',' ',"",""],initComponent:function(){var a=this;a.callParent(arguments);a.addEvents("select");if(a.handler){a.on("select",a.handler,a.scope,true)}},initRenderData:function(){var a=this;return Ext.apply(a.callParent(),{itemCls:a.itemCls,colors:a.colors})},onRender:function(){var b=this,a=b.clickEvent;b.callParent(arguments);b.mon(b.el,a,b.handleClick,b,{delegate:"a"});if(a!="click"){b.mon(b.el,"click",Ext.emptyFn,b,{delegate:"a",stopEvent:true})}},afterRender:function(){var a=this,b;a.callParent(arguments);if(a.value){b=a.value;a.value=null;a.select(b,true)}},handleClick:function(c,d){var b=this,a;c.stopEvent();if(!b.disabled){a=d.className.match(b.colorRe)[1];b.select(a.toUpperCase())}},select:function(b,a){var d=this,g=d.selectedCls,e=d.value,c;b=b.replace("#","");if(!d.rendered){d.value=b;return}if(b!=e||d.allowReselect){c=d.el;if(d.value){c.down("a.color-"+e).removeCls(g)}c.down("a.color-"+b).addCls(g);d.value=b;if(a!==true){d.fireEvent("select",d,b)}}},getValue:function(){return this.value||null}});Ext.define("Ext.form.field.HtmlEditor",{extend:"Ext.Component",mixins:{labelable:"Ext.form.Labelable",field:"Ext.form.field.Field"},alias:"widget.htmleditor",alternateClassName:"Ext.form.HtmlEditor",requires:["Ext.tip.QuickTipManager","Ext.picker.Color","Ext.toolbar.Item","Ext.toolbar.Toolbar","Ext.util.Format","Ext.layout.component.field.HtmlEditor"],childEls:["iframeEl","textareaEl"],fieldSubTpl:["{beforeTextAreaTpl}",'","{afterTextAreaTpl}","{beforeIFrameTpl}",'',"{afterIFrameTpl}",{disableFormats:true}],subTplInsertions:["beforeTextAreaTpl","afterTextAreaTpl","beforeIFrameTpl","afterIFrameTpl","iframeAttrTpl","inputAttrTpl"],enableFormat:true,enableFontSize:true,enableColors:true,enableAlignments:true,enableLists:true,enableSourceEdit:true,enableLinks:true,enableFont:true,createLinkText:"Please enter the URL for the link:",defaultLinkValue:"http://",fontFamilies:["Arial","Courier New","Tahoma","Times New Roman","Verdana"],defaultFont:"tahoma",defaultValue:(Ext.isOpera||Ext.isIE6)?" ":"​",editorWrapCls:Ext.baseCSSPrefix+"html-editor-wrap",componentLayout:"htmleditor",initialized:false,activated:false,sourceEditMode:false,iframePad:3,hideMode:"offsets",afterBodyEl:"",maskOnDisable:true,initComponent:function(){var a=this;a.addEvents("initialize","activate","beforesync","beforepush","sync","push","editmodechange");a.callParent(arguments);a.createToolbar(a);a.initLabelable();a.initField()},getRefItems:function(){return[this.toolbar]},createToolbar:function(g){var j=this,h=[],c,l=Ext.tip.QuickTipManager&&Ext.tip.QuickTipManager.isEnabled(),e=Ext.baseCSSPrefix,d,k,b;function a(n,i,m){return{itemId:n,cls:e+"btn-icon",iconCls:e+"edit-"+n,enableToggle:i!==false,scope:g,handler:m||g.relayBtnCmd,clickEvent:"mousedown",tooltip:l?g.buttonTips[n]||b:b,overflowText:g.buttonTips[n].title||b,tabIndex:-1}}if(j.enableFont&&!Ext.isSafari2){d=Ext.widget("component",{renderTpl:['"],renderData:{cls:e+"font-select",fonts:j.fontFamilies,defaultFont:j.defaultFont},childEls:["selectEl"],afterRender:function(){j.fontSelect=this.selectEl;Ext.Component.prototype.afterRender.apply(this,arguments)},onDisable:function(){var i=this.selectEl;if(i){i.dom.disabled=true}Ext.Component.prototype.onDisable.apply(this,arguments)},onEnable:function(){var i=this.selectEl;if(i){i.dom.disabled=false}Ext.Component.prototype.onEnable.apply(this,arguments)},listeners:{change:function(){j.relayCmd("fontname",j.fontSelect.dom.value);j.deferFocus()},element:"selectEl"}});h.push(d,"-")}if(j.enableFormat){h.push(a("bold"),a("italic"),a("underline"))}if(j.enableFontSize){h.push("-",a("increasefontsize",false,j.adjustFont),a("decreasefontsize",false,j.adjustFont))}if(j.enableColors){h.push("-",{itemId:"forecolor",cls:e+"btn-icon",iconCls:e+"edit-forecolor",overflowText:g.buttonTips.forecolor.title,tooltip:l?g.buttonTips.forecolor||b:b,tabIndex:-1,menu:Ext.widget("menu",{plain:true,items:[{xtype:"colorpicker",allowReselect:true,focus:Ext.emptyFn,value:"000000",plain:true,clickEvent:"mousedown",handler:function(m,i){j.execCmd("forecolor",Ext.isWebKit||Ext.isIE?"#"+i:i);j.deferFocus();this.up("menu").hide()}}]})},{itemId:"backcolor",cls:e+"btn-icon",iconCls:e+"edit-backcolor",overflowText:g.buttonTips.backcolor.title,tooltip:l?g.buttonTips.backcolor||b:b,tabIndex:-1,menu:Ext.widget("menu",{plain:true,items:[{xtype:"colorpicker",focus:Ext.emptyFn,value:"FFFFFF",plain:true,allowReselect:true,clickEvent:"mousedown",handler:function(m,i){if(Ext.isGecko){j.execCmd("useCSS",false);j.execCmd("hilitecolor",i);j.execCmd("useCSS",true);j.deferFocus()}else{j.execCmd(Ext.isOpera?"hilitecolor":"backcolor",Ext.isWebKit||Ext.isIE?"#"+i:i);j.deferFocus()}this.up("menu").hide()}}]})})}if(j.enableAlignments){h.push("-",a("justifyleft"),a("justifycenter"),a("justifyright"))}if(!Ext.isSafari2){if(j.enableLinks){h.push("-",a("createlink",false,j.createLink))}if(j.enableLists){h.push("-",a("insertorderedlist"),a("insertunorderedlist"))}if(j.enableSourceEdit){h.push("-",a("sourceedit",true,function(i){j.toggleSourceEdit(!j.sourceEditMode)}))}}for(c=0;c',b.iframePad,a)},getEditorBody:function(){var a=this.getDoc();return a.body||a.documentElement},getDoc:function(){return(!Ext.isIE&&this.iframeEl.dom.contentDocument)||this.getWin().document},getWin:function(){return Ext.isIE?this.iframeEl.dom.contentWindow:window.frames[this.iframeEl.dom.name]},finishRenderChildren:function(){this.callParent();this.toolbar.finishRender()},onRender:function(){var a=this;a.callParent(arguments);a.inputEl=a.iframeEl;a.monitorTask=Ext.TaskManager.start({run:a.checkDesignMode,scope:a,interval:100})},initRenderTpl:function(){var a=this;if(!a.hasOwnProperty("renderTpl")){a.renderTpl=a.getTpl("labelableRenderTpl")}return a.callParent()},initRenderData:function(){this.beforeSubTpl='
'+Ext.DomHelper.markup(this.toolbar.getRenderTree());return Ext.applyIf(this.callParent(),this.getLabelableRenderData())},getSubTplData:function(){return{$comp:this,cmpId:this.id,id:this.getInputId(),textareaCls:Ext.baseCSSPrefix+"hidden",value:this.value,iframeName:Ext.id(),iframeSrc:Ext.SSL_SECURE_URL,size:"height:100px;width:100%"}},getSubTplMarkup:function(){return this.getTpl("fieldSubTpl").apply(this.getSubTplData())},initFrameDoc:function(){var b=this,c,a;Ext.TaskManager.stop(b.monitorTask);c=b.getDoc();b.win=b.getWin();c.open();c.write(b.getDocMarkup());c.close();a={run:function(){var d=b.getDoc();if(d.body||d.readyState==="complete"){Ext.TaskManager.stop(a);b.setDesignMode(true);Ext.defer(b.initEditor,10,b)}},interval:10,duration:10000,scope:b};Ext.TaskManager.start(a)},checkDesignMode:function(){var a=this,b=a.getDoc();if(b&&(!b.editorInitialized||a.getDesignMode()!=="on")){a.initFrameDoc()}},setDesignMode:function(c){var a=this,b=a.getDoc();if(b){if(a.readOnly){c=false}b.designMode=(/on|true/i).test(String(c).toLowerCase())?"on":"off"}},getDesignMode:function(){var a=this.getDoc();return !a?"":String(a.designMode).toLowerCase()},disableItems:function(d){var b=this.getToolbar().items.items,c,a=b.length,e;for(c=0;c'+d+"
"}}d=e.cleanHtml(d);if(e.fireEvent("beforesync",e,d)!==false){if(e.textareaEl.dom.value!=d){e.textareaEl.dom.value=d;g=true}e.fireEvent("sync",e,d);if(g){e.checkChange()}}}},getValue:function(){var a=this,b;if(!a.sourceEditMode){a.syncValue()}b=a.rendered?a.textareaEl.dom.value:a.value;a.value=b;return b},pushValue:function(){var b=this,a;if(b.initialized){a=b.textareaEl.dom.value||"";if(!b.activated&&a.length<1){a=b.defaultValue}if(b.fireEvent("beforepush",b,a)!==false){b.getEditorBody().innerHTML=a;if(Ext.isGecko){b.setDesignMode(false);b.setDesignMode(true)}b.fireEvent("push",b,a)}}},deferFocus:function(){this.focus(false,true)},getFocusEl:function(){var a=this,b=a.win;return b&&!a.sourceEditMode?b:a.textareaEl},initEditor:function(){try{var g=this,d=g.getEditorBody(),b=g.textareaEl.getStyles("font-size","font-family","background-image","background-repeat","background-color","color"),i,c;b["background-attachment"]="fixed";d.bgProperties="fixed";Ext.DomHelper.applyStyles(d,b);i=g.getDoc();if(i){try{Ext.EventManager.removeAll(i)}catch(h){}}c=Ext.Function.bind(g.onEditorEvent,g);Ext.EventManager.on(i,{mousedown:c,dblclick:c,click:c,keyup:c,buffer:100});c=g.onRelayedEvent;Ext.EventManager.on(i,{mousedown:c,mousemove:c,mouseup:c,click:c,dblclick:c,scope:g});if(Ext.isGecko){Ext.EventManager.on(i,"keypress",g.applyCommand,g)}if(g.fixKeys){Ext.EventManager.on(i,"keydown",g.fixKeys,g)}Ext.EventManager.on(window,"unload",g.beforeDestroy,g);i.editorInitialized=true;g.initialized=true;g.pushValue();g.setReadOnly(g.readOnly);g.fireEvent("initialize",g)}catch(a){}},beforeDestroy:function(){var a=this,d=a.monitorTask,c,g;if(d){Ext.TaskManager.stop(d)}if(a.rendered){try{c=a.getDoc();if(c){Ext.EventManager.removeAll(Ext.fly(c));for(g in c){if(c.hasOwnProperty&&c.hasOwnProperty(g)){delete c[g]}}}}catch(b){}Ext.destroyMembers(a,"toolbar","iframeEl","textareaEl")}a.callParent()},onRelayedEvent:function(c){var b=this.iframeEl,d=b.getXY(),a=c.getXY();c.xy=[d[0]+a[0],d[1]+a[1]];c.injectEvent(b);c.xy=a},onFirstFocus:function(){var c=this,b,a;c.activated=true;c.disableItems(c.readOnly);if(Ext.isGecko){c.win.focus();b=c.win.getSelection();if(!b.focusNode||b.focusNode.nodeType!==3){a=b.getRangeAt(0);a.selectNodeContents(c.getEditorBody());a.collapse(true);c.deferFocus()}try{c.execCmd("useCSS",true);c.execCmd("styleWithCSS",false)}catch(d){}}c.fireEvent("activate",c)},adjustFont:function(d){var e=d.getItemId()==="increasefontsize"?1:-1,c=this.getDoc().queryCommandValue("FontSize")||"2",a=Ext.isString(c)&&c.indexOf("px")!==-1,b;c=parseInt(c,10);if(a){if(c<=10){c=1+e}else{if(c<=13){c=2+e}else{if(c<=16){c=3+e}else{if(c<=18){c=4+e}else{if(c<=24){c=5+e}else{c=6+e}}}}}c=Ext.Number.constrain(c,1,6)}else{b=Ext.isSafari;if(b){e*=2}c=Math.max(1,c+e)+(b?"px":0)}this.execCmd("FontSize",c)},onEditorEvent:function(a){this.updateToolbar()},updateToolbar:function(){var e=this,d,g,a,c;if(e.readOnly){return}if(!e.activated){e.onFirstFocus();return}d=e.getToolbar().items.map;g=e.getDoc();if(e.enableFont&&!Ext.isSafari2){a=(g.queryCommandValue("FontName")||e.defaultFont).toLowerCase();c=e.fontSelect.dom;if(a!==c.value){c.value=a}}function b(){for(var k=0,h=arguments.length,j;k0){g=String.fromCharCode(g);switch(g){case"b":b="bold";break;case"i":b="italic";break;case"u":b="underline";break}if(b){a.win.focus();a.execCmd(b);a.deferFocus();d.preventDefault()}}}},insertAtCursor:function(c){var b=this,a;if(b.activated){b.win.focus();if(Ext.isIE){a=b.getDoc().selection.createRange();if(a){a.pasteHTML(c);b.syncValue();b.deferFocus()}}else{b.execCmd("InsertHTML",c);b.deferFocus()}}},fixKeys:(function(){if(Ext.isIE){return function(h){var c=this,b=h.getKey(),g=c.getDoc(),i=c.readOnly,a,d;if(b===h.TAB){h.stopEvent();if(!i){a=g.selection.createRange();if(a){a.collapse(true);a.pasteHTML("    ");c.deferFocus()}}}else{if(b===h.ENTER){if(!i){a=g.selection.createRange();if(a){d=a.parentElement();if(!d||d.tagName.toLowerCase()!=="li"){h.stopEvent();a.pasteHTML("
");a.collapse(false);a.select()}}}}}}}if(Ext.isOpera){return function(b){var a=this;if(b.getKey()===b.TAB){b.stopEvent();if(!a.readOnly){a.win.focus();a.execCmd("InsertHTML","    ");a.deferFocus()}}}}if(Ext.isWebKit){return function(c){var b=this,a=c.getKey(),d=b.readOnly;if(a===c.TAB){c.stopEvent();if(!d){b.execCmd("InsertText","\t");b.deferFocus()}}else{if(a===c.ENTER){c.stopEvent();if(!d){b.execCmd("InsertHtml","

");b.deferFocus()}}}}}return null}()),getToolbar:function(){return this.toolbar},buttonTips:{bold:{title:"Bold (Ctrl+B)",text:"Make the selected text bold.",cls:Ext.baseCSSPrefix+"html-editor-tip"},italic:{title:"Italic (Ctrl+I)",text:"Make the selected text italic.",cls:Ext.baseCSSPrefix+"html-editor-tip"},underline:{title:"Underline (Ctrl+U)",text:"Underline the selected text.",cls:Ext.baseCSSPrefix+"html-editor-tip"},increasefontsize:{title:"Grow Text",text:"Increase the font size.",cls:Ext.baseCSSPrefix+"html-editor-tip"},decreasefontsize:{title:"Shrink Text",text:"Decrease the font size.",cls:Ext.baseCSSPrefix+"html-editor-tip"},backcolor:{title:"Text Highlight Color",text:"Change the background color of the selected text.",cls:Ext.baseCSSPrefix+"html-editor-tip"},forecolor:{title:"Font Color",text:"Change the color of the selected text.",cls:Ext.baseCSSPrefix+"html-editor-tip"},justifyleft:{title:"Align Text Left",text:"Align text to the left.",cls:Ext.baseCSSPrefix+"html-editor-tip"},justifycenter:{title:"Center Text",text:"Center text in the editor.",cls:Ext.baseCSSPrefix+"html-editor-tip"},justifyright:{title:"Align Text Right",text:"Align text to the right.",cls:Ext.baseCSSPrefix+"html-editor-tip"},insertunorderedlist:{title:"Bullet List",text:"Start a bulleted list.",cls:Ext.baseCSSPrefix+"html-editor-tip"},insertorderedlist:{title:"Numbered List",text:"Start a numbered list.",cls:Ext.baseCSSPrefix+"html-editor-tip"},createlink:{title:"Hyperlink",text:"Make the selected text a hyperlink.",cls:Ext.baseCSSPrefix+"html-editor-tip"},sourceedit:{title:"Source Edit",text:"Switch to source editing mode.",cls:Ext.baseCSSPrefix+"html-editor-tip"}}});Ext.define("Ext.form.field.Radio",{extend:"Ext.form.field.Checkbox",alias:["widget.radiofield","widget.radio"],alternateClassName:"Ext.form.Radio",requires:["Ext.form.RadioManager"],isRadio:true,inputType:"radio",ariaRole:"radio",formId:null,getGroupValue:function(){var a=this.getManager().getChecked(this.name,this.getFormId());return a?a.inputValue:null},onBoxClick:function(b){var a=this;if(!a.disabled&&!a.readOnly){this.setValue(true)}},onRemoved:function(){this.callParent(arguments);this.formId=null},setValue:function(a){var b=this,c;if(Ext.isBoolean(a)){b.callParent(arguments)}else{c=b.getManager().getWithValue(b.name,a,b.getFormId()).getAt(0);if(c){c.setValue(true)}}return b},getSubmitValue:function(){return this.checked?this.inputValue:null},getModelData:function(){return this.getSubmitData()},onChange:function(c,a){var g=this,e,d,b,h;g.callParent(arguments);if(c){h=g.getManager().getByName(g.name,g.getFormId()).items;d=h.length;for(e=0;e=b&&e<=a})},createStore:function(){var d=this,c=Ext.Date,e=[],b=d.absMin,a=d.absMax;while(b<=a){e.push({disp:c.dateFormat(b,d.format),date:b});b=c.add(b,"mi",d.increment)}return new Ext.data.Store({fields:["disp","date"],data:e})}});Ext.define("Ext.form.field.Time",{extend:"Ext.form.field.ComboBox",alias:"widget.timefield",requires:["Ext.form.field.Date","Ext.picker.Time","Ext.view.BoundListKeyNav","Ext.Date"],alternateClassName:["Ext.form.TimeField","Ext.form.Time"],triggerCls:Ext.baseCSSPrefix+"form-time-trigger",minText:"The time in this field must be equal to or after {0}",maxText:"The time in this field must be equal to or before {0}",invalidText:"{0} is not a valid time",format:"g:i A",altFormats:"g:ia|g:iA|g:i a|g:i A|h:i|g:i|H:i|ga|ha|gA|h a|g a|g A|gi|hi|gia|hia|g|H|gi a|hi a|giA|hiA|gi A|hi A",increment:15,pickerMaxHeight:300,selectOnTab:true,snapToIncrement:false,initDate:"1/1/2008",initDateFormat:"j/n/Y",ignoreSelection:0,queryMode:"local",displayField:"disp",valueField:"date",initComponent:function(){var c=this,b=c.minValue,a=c.maxValue;if(b){c.setMinValue(b)}if(a){c.setMaxValue(a)}c.displayTpl=new Ext.XTemplate('{[typeof values === "string" ? values : this.formatDate(values["'+c.displayField+'"])]}'+c.delimiter+"",{formatDate:Ext.Function.bind(c.formatDate,c)});this.callParent()},transformOriginalValue:function(a){if(Ext.isString(a)){return this.rawToValue(a)}return a},isEqual:function(b,a){return Ext.Date.isEqual(b,a)},setMinValue:function(c){var b=this,a=b.picker;b.setLimit(c,true);if(a){a.setMinValue(b.minValue)}},setMaxValue:function(c){var b=this,a=b.picker;b.setLimit(c,false);if(a){a.setMaxValue(b.maxValue)}},setLimit:function(b,g){var a=this,e,c;if(Ext.isString(b)){e=a.parseDate(b)}else{if(Ext.isDate(b)){e=b}}if(e){c=Ext.Date.clearTime(new Date(a.initDate));c.setHours(e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds())}else{c=null}a[g?"minValue":"maxValue"]=c},rawToValue:function(a){return this.parseDate(a)||a||null},valueToRaw:function(a){return this.formatDate(this.parseDate(a))},getErrors:function(d){var b=this,g=Ext.String.format,h=b.callParent(arguments),c=b.minValue,e=b.maxValue,a;d=b.formatDate(d||b.processRawValue(b.getRawValue()));if(d===null||d.length<1){return h}a=b.parseDate(d);if(!a){h.push(g(b.invalidText,d,Ext.Date.unescapeFormat(b.format)));return h}if(c&&ae){h.push(g(b.maxText,b.formatDate(e)))}return h},formatDate:function(){return Ext.form.field.Date.prototype.formatDate.apply(this,arguments)},parseDate:function(e){var d=this,h=e,b=d.altFormats,g=d.altFormatsArray,c=0,a;if(e&&!Ext.isDate(e)){h=d.safeParse(e,d.format);if(!h&&b){g=g||b.split("|");a=g.length;for(;c0){c=c[0];if(c&&Ext.Date.isEqual(a.get("date"),c.get("date"))){d.collapse()}}},onListSelectionChange:function(c,e){var b=this,a=e[0],d=a?a.get("date"):null;if(!b.ignoreSelection){b.skipSync=true;b.setValue(d);b.skipSync=false;b.fireEvent("select",b,d);b.picker.clearHighlight();b.collapse();b.inputEl.focus()}},syncSelection:function(){var j=this,h=j.picker,c,g,k,b,i,e,a;if(h&&!j.skipSync){h.clearHighlight();k=j.getValue();g=h.getSelectionModel();j.ignoreSelection++;if(k===null){g.deselectAll()}else{if(Ext.isDate(k)){b=h.store.data.items;e=b.length;for(i=0;i1||(g===1&&c[0].nodeType!==3))){b=j.last();i=b.getOffsetsTo(j)[0]+b.getWidth();m=j.getWidth();a=m-i;if(!k.editingPlugin.grid.columnLines){a--}d[0]+=i;k.addCls(Ext.baseCSSPrefix+"grid-editor-on-text-node")}else{a=h.getWidth()-1}if(e===true){k.field.setWidth(a)}k.alignTo(h,k.alignment,d)},onEditorTab:function(b){var a=this.field;if(a.onEditorTab){a.onEditorTab(b)}},alignment:"tl-tl",hideEl:false,cls:Ext.baseCSSPrefix+"small-editor "+Ext.baseCSSPrefix+"grid-editor",shim:false,shadow:false});Ext.define("Ext.grid.ColumnComponentLayout",{extend:"Ext.layout.component.Auto",alias:"layout.columncomponent",type:"columncomponent",setWidthInDom:true,getContentHeight:function(a){return this.owner.isGroupHeader?a.getProp("contentHeight"):this.callParent(arguments)},calculateOwnerHeightFromContentHeight:function(c,b){var a=this.callParent(arguments);if(this.owner.isGroupHeader){a+=this.owner.titleEl.dom.offsetHeight}return a},getContentWidth:function(a){return this.owner.isGroupHeader?a.getProp("contentWidth"):this.callParent(arguments)},calculateOwnerWidthFromContentWidth:function(b,a){return a+b.getPaddingInfo().width}});Ext.define("Ext.grid.ColumnLayout",{extend:"Ext.layout.container.HBox",alias:"layout.gridcolumn",type:"gridcolumn",reserveOffset:false,firstHeaderCls:Ext.baseCSSPrefix+"column-header-first",lastHeaderCls:Ext.baseCSSPrefix+"column-header-last",initLayout:function(){this.grid=this.owner.up("[scrollerOwner]");this.callParent()},beginLayout:function(j){var h=this,e=h.grid,b=e.view,d=0,c=h.getVisibleItems(),a=c.length,g;j.gridContext=j.context.getCmp(h.grid);if(e.lockable){if(h.owner.up("tablepanel")===b.normalGrid){b=b.normalGrid.getView()}else{b=null}}h.callParent(arguments);for(;d0){c[0].addCls(h.firstHeaderCls);c[a-1].addCls(h.lastHeaderCls)}if(!h.owner.isHeader&&Ext.getScrollbarSize().width&&!e.collapsed&&b&&b.table.dom&&(b.autoScroll||b.overflowY)){j.viewContext=j.context.getCmp(b)}},roundFlex:function(a){return Math.floor(a)},calculate:function(e){var d=this,c=e.viewContext,b,a;d.callParent(arguments);if(e.state.parallelDone){e.setProp("columnWidthsDone",true)}if(c&&!e.state.overflowAdjust.width&&!e.gridContext.heightModel.shrinkWrap){b=c.tableContext.getProp("height");a=c.getProp("height");if(isNaN(b+a)){d.done=false}else{if(b>=a){e.gridContext.invalidate({after:function(){e.state.overflowAdjust={width:Ext.getScrollbarSize().width,height:0}}})}}}},completeLayout:function(c){var j=this,b=j.owner,a=c.state,g=false,k=j.sizeModels.calculated,e,h,d,m,l;j.callParent(arguments);if(!a.flexesCalculated&&b.forceFit&&!b.isHeader){e=c.childItems;h=e.length;for(d=0;d",initComponent:function(){var b=this,a=b.scroll;b.table=new Ext.dom.Element.Fly();b.table.id=b.id+"gridTable";b.autoScroll=undefined;if(a===true||a==="both"){b.autoScroll=true}else{if(a==="horizontal"){b.overflowX="auto"}else{if(a==="vertical"){b.overflowY="auto"}}}b.selModel.view=b;b.headerCt.view=b;b.headerCt.markDirty=b.markDirty;b.initFeatures(b.grid);delete b.grid;b.tpl=b.getTpl("initialTpl");b.callParent()},moveColumn:function(a,p,d){var n=this,l=(d>1)?document.createDocumentFragment():undefined,c=p,q=n.getGridColumns().length,o=q-1,b=(n.firstCls||n.lastCls)&&(p===0||p==q||a===0||a==o),g,e,r,k,m,h;if(n.rendered){h=n.el.query(n.headerRowSelector);r=n.el.query(n.rowSelector);if(p>a&&l){c-=d}for(g=0,k=h.length;ge){i=j.bottom-e}}d=g.getRecord(k);b=g.store.indexOf(d);if(i){a.scrollByDeltaY(i)}g.fireEvent("rowfocus",d,k,b)}},focusCell:function(h){var j=this,k=j.getCellByPosition(h),b=j.el,d=0,e=0,c=b.getRegion(),a=j.ownerCt,i,g;c.bottom=c.top+b.dom.clientHeight;c.right=c.left+b.dom.clientWidth;if(k){i=k.getRegion();if(i.topc.bottom){d=i.bottom-c.bottom}}if(i.leftc.right){e=i.right-c.right}}if(d){a.scrollByDeltaY(d)}if(e){a.scrollByDeltaX(e)}b.focus();j.fireEvent("cellfocus",g,k,h)}},scrollByDelta:function(c,b){b=b||"scrollTop";var a=this.el.dom;a[b]=(a[b]+=c)},onUpdate:function(g,e,k,p){var v=this,j,d,l,s,r,u,q,b,c,w,t,r,a,n,m,h,o=v.editingPlugin&&v.editingPlugin.editing;if(v.viewReady){j=v.store.indexOf(e);a=v.headerCt.getGridColumns();n=v.overItemCls;if(a.length&&j>-1){d=v.bufferRender([e],j)[0];q=v.all.item(j);if(q){b=q.dom;m=q.hasCls(n);if(b.mergeAttributes){b.mergeAttributes(d,true)}else{l=d.attributes;s=l.length;for(r=0;re){e=b}}return e},getPositionByEvent:function(g){var d=this,b=g.getTarget(d.cellSelector),c=g.getTarget(d.itemSelector),a=d.getRecord(c),h=d.getHeaderByCell(b);return d.getPosition(a,h)},getHeaderByCell:function(b){if(b){var a=b.className.match(this.cellRe);if(a&&a[1]){return Ext.getCmp(a[1])}}return false},walkCells:function(l,m,h,n,a,o){if(!l){return}var j=this,p=l.row,d=l.column,k=j.store.getCount(),g=j.getFirstVisibleColumnIndex(),b=j.getLastVisibleColumnIndex(),i={row:p,column:d},c=j.headerCt.getHeaderAtIndex(d);if(!c||c.hidden){return false}h=h||{};m=m.toLowerCase();switch(m){case"right":if(d===b){if(n||p===k-1){return false}if(!h.ctrlKey){i.row=p+1;i.column=g}}else{if(!h.ctrlKey){i.column=d+j.getRightGap(c)}else{i.column=b}}break;case"left":if(d===g){if(n||p===0){return false}if(!h.ctrlKey){i.row=p-1;i.column=b}}else{if(!h.ctrlKey){i.column=d+j.getLeftGap(c)}else{i.column=g}}break;case"up":if(p===0){return false}else{if(!h.ctrlKey){i.row=p-1}else{i.row=0}}break;case"down":if(p===k-1){return false}else{if(!h.ctrlKey){i.row=p+1}else{i.row=k-1}}break}if(a&&a.call(o||window,i)!==true){return false}else{return i}},getFirstVisibleColumnIndex:function(){var a=this.getHeaderCt().getVisibleGridColumns()[0];return a?a.getIndex():-1},getLastVisibleColumnIndex:function(){var b=this.getHeaderCt().getVisibleGridColumns(),a=b[b.length-1];return a.getIndex()},getHeaderCt:function(){return this.headerCt},getPosition:function(a,e){var d=this,b=d.store,c=d.headerCt.getGridColumns();return{row:b.indexOf(a),column:Ext.Array.indexOf(c,e)}},getRightGap:function(a){var g=this.getHeaderCt(),e=g.getGridColumns(),b=Ext.Array.indexOf(e,a),c=b+1,d;for(;c<=e.length;c++){if(!e[c].hidden){d=c;break}}return d-b},beforeDestroy:function(){if(this.rendered){this.el.removeAllListeners()}this.callParent(arguments)},getLeftGap:function(a){var g=this.getHeaderCt(),e=g.getGridColumns(),c=Ext.Array.indexOf(e,a),d=c-1,b;for(;d>=0;d--){if(!e[d].hidden){b=d;break}}return b-c},onAdd:function(c,a,b){this.callParent(arguments);this.doStripeRows(b)},onRemove:function(c,a,b){this.callParent(arguments);this.doStripeRows(b)},doStripeRows:function(b,a){var d=this,e,h,c,g;if(d.rendered&&d.stripeRows){e=d.getNodes(b,a);for(c=0,h=e.length;c>#normalHeaderCt"},normal:{items:c,itemId:"normalHeaderCt",stretchMaxPartner:"^^>>#lockedHeaderCt"}}},onLockedViewMouseWheel:function(i){var d=this,h=-d.scrollDelta,a=h*i.getWheelDeltas().y,b=d.lockedGrid.getView().el.dom,c,g;if(b){c=b.scrollTop!==b.scrollHeight-b.clientHeight;g=b.scrollTop!==0}if((a<0&&g)||(a>0&&c)){i.stopEvent();d.scrolling=true;b.scrollTop+=a;d.normalGrid.getView().el.dom.scrollTop=b.scrollTop;d.scrolling=false;d.onNormalViewScroll()}},onLockedViewScroll:function(){var e=this,d=e.lockedGrid.getView(),c=e.normalGrid.getView(),a,b;if(!e.scrolling){e.scrolling=true;c.el.dom.scrollTop=d.el.dom.scrollTop;if(e.store.buffered){b=d.el.child("table",true);a=c.el.child("table",true);b.style.position="absolute"}e.scrolling=false}},onNormalViewScroll:function(){var e=this,d=e.lockedGrid.getView(),c=e.normalGrid.getView(),a,b;if(!e.scrolling){e.scrolling=true;d.el.dom.scrollTop=c.el.dom.scrollTop;if(e.store.buffered){b=d.el.child("table",true);a=c.el.child("table",true);b.style.position="absolute";b.style.top=a.style.top}e.scrolling=false}},onLockedHeaderMove:function(){if(this.syncRowHeight){this.onNormalViewRefresh()}},onNormalHeaderMove:function(){if(this.syncRowHeight){this.onLockedViewRefresh()}},updateSpacer:function(){var d=this,b=d.lockedGrid.getView().el,c=d.normalGrid.getView().el.dom,a=b.dom.id+"-spacer",e=(c.offsetHeight-c.clientHeight)+"px";d.spacerEl=Ext.getDom(a);if(d.spacerEl){d.spacerEl.style.height=e}else{Ext.core.DomHelper.append(b,{id:a,style:"height: "+e})}},onLockedViewRefresh:function(){if(this.normalGrid.headerCt.getGridColumns().length){var e=this,a=e.lockedGrid.getView(),c=a.el,g=c.query(a.getItemSelector()),d=g.length,b=0;e.lockedHeights=[];for(;bk[e]){Ext.fly(g[e]).setHeight(a[e])}else{if(a[e]0){a.setWidth(b);a.show()}else{a.hide()}Ext.resumeLayouts(true);return b>0},onLockedHeaderResize:function(){this.syncLockedWidth()},onLockedHeaderHide:function(){this.syncLockedWidth()},onLockedHeaderShow:function(){this.syncLockedWidth()},onLockedHeaderSortChange:function(b,c,a){if(a){this.normalGrid.headerCt.clearOtherSortStates(null,true)}},onNormalHeaderSortChange:function(b,c,a){if(a){this.lockedGrid.headerCt.clearOtherSortStates(null,true)}},unlock:function(a,e){var d=this,g=d.normalGrid,i=d.lockedGrid,h=g.headerCt,c=i.headerCt,b=false;if(!Ext.isDefined(e)){e=0}a=a||c.getMenu().activeHeader;Ext.suspendLayouts();a.ownerCt.remove(a,false);if(d.syncLockedWidth()){b=true}a.locked=false;h.insert(e,a);d.normalGrid.getView().refresh();if(b){d.lockedGrid.getView().refresh()}Ext.resumeLayouts(true);d.fireEvent("unlockcolumn",d,a)},applyColumnsState:function(h){var p=this,e=p.lockedGrid,g=e.headerCt,n=p.normalGrid.headerCt,q=Ext.Array.toMap(g.items,"headerId"),j=Ext.Array.toMap(n.items,"headerId"),m=[],o=[],l=1,b=h.length,k,a,d,c;for(k=0;ke.viewSize){e.viewSize=e.store.viewSize=c;e.handleViewScroll(e.lastScrollDirection||1)}},beforeViewRefresh:function(){var b=this,a=b.view,c,d;b.focusOnRefresh=Ext.Element.getActiveElement===a.el.dom;if(b.variableRowHeight){d=b.lastScrollDirection;b.commonRecordIndex=undefined;if(d&&(b.previousStart!==undefined)&&(b.scrollProportion===undefined)&&(c=a.getNodes()).length){if(d===1){if(b.tableStart<=b.previousEnd){b.commonRecordIndex=c.length-1}}else{if(d===-1){if(b.tableEnd>=b.previousStart){b.commonRecordIndex=0}}}b.scrollOffset=-a.el.getOffsetsTo(c[b.commonRecordIndex])[1];b.commonRecordIndex-=(b.tableStart-b.previousStart)}else{b.scrollOffset=undefined}}},onLockRefresh:function(a){a.table.dom.style.position="absolute"},onViewRefresh:function(){var d=this,g=d.store,c,e=d.view,j=e.el,k=j.dom,m,i,b,l=e.table.dom,h,a;if(d.focusOnRefresh){j.focus();d.focusOnRefresh=false}d.disabled=true;if(g.getCount()===g.getTotalCount()||(g.isFiltered()&&!g.remoteFilter)){d.stretcher.setHeight(0);d.position=k.scrollTop=0;d.setTablePosition("absolute");return}d.stretcher.setHeight(c=d.getScrollHeight());a=k.scrollTop;d.isScrollRefresh=(a>0);if(d.scrollProportion!==undefined){d.setTablePosition("absolute");d.setTableTop((d.scrollProportion?(c*d.scrollProportion)-(l.offsetHeight*d.scrollProportion):0)+"px")}else{d.setTablePosition("absolute");d.setTableTop((h=(d.tableStart||0)*d.rowHeight)+"px");if(d.scrollOffset){m=e.getNodes();i=-j.getOffsetsTo(m[d.commonRecordIndex])[1];b=i-d.scrollOffset;d.position=(k.scrollTop+=b)}else{if((h>a)||((h+l.offsetHeight)b?1:-1;if(b!==d.position){d.handleViewScroll(d.lastScrollDirection)}}},handleViewScroll:function(i){var e=this,k=e.store,h=e.view,g=e.viewSize,l=k.getTotalCount(),d=l-g,c=e.getFirstVisibleRowIndex(),j=e.getLastVisibleRowIndex(),a=h.el.dom,b,m;if(l>=g){e.scrollProportion=undefined;if(i==-1){if(e.tableStart){if(c!==undefined){if(c<(e.tableStart+e.numFromEdge)){b=Math.max(0,j+e.trailingBufferZone-g)}}else{e.scrollProportion=a.scrollTop/(a.scrollHeight-a.clientHeight);b=Math.max(0,l*e.scrollProportion-(g/2)-e.numFromEdge-((e.leadingBufferZone+e.trailingBufferZone)/2))}}}else{if(c!==undefined){if(j>(e.tableEnd-e.numFromEdge)){b=Math.max(0,c-e.trailingBufferZone)}}else{e.scrollProportion=a.scrollTop/(a.scrollHeight-a.clientHeight);b=l*e.scrollProportion-(g/2)-e.numFromEdge-((e.leadingBufferZone+e.trailingBufferZone)/2)}}if(b!==undefined){if(b>d){b=d&~1;m=l-1}else{b=b&~1;m=b+g-1}if(k.rangeCached(b,m)){e.cancelLoad();k.guaranteeRange(b,m)}else{e.attemptLoad(b,m)}}}},getFirstVisibleRowIndex:function(){var d=this,a=d.view,h=a.el.dom.scrollTop,e,c,b,g;if(d.variableRowHeight){e=a.getNodes();c=e.length;if(!c){return}g=Ext.fly(e[0]).getOffsetsTo(a.el)[1];for(b=0;ba.el.dom.clientHeight){return}if(g>0){return a.getRecord(e[b]).index}}}else{return Math.floor(h/d.rowHeight)}},getLastVisibleRowIndex:function(){var h=this,c=h.store,a=h.view,b=a.el.dom.clientHeight,j,g,e,d;if(h.variableRowHeight){j=a.getNodes();if(!j.length){return}g=c.getCount()-1;d=Ext.fly(j[g]).getOffsetsTo(a.el)[1]+j[g].offsetHeight;for(e=g;e>=0;e--){d-=j[e].offsetHeight;if(d<0){return}if(de.viewSize){g-=e.rowHeight}}}else{if(c){h=a.el.down(a.getItemSelector());if(h){e.rowHeight=h.getHeight(false,true)}}}return Math.floor(b.getTotalCount()*e.rowHeight)+g},attemptLoad:function(c,a){var b=this;if(b.scrollToLoadBuffer){if(!b.loadTask){b.loadTask=new Ext.util.DelayedTask(b.doAttemptLoad,b,[])}b.loadTask.delay(b.scrollToLoadBuffer,b.doAttemptLoad,b,[c,a])}else{b.store.guaranteeRange(c,a)}},cancelLoad:function(){if(this.loadTask){this.loadTask.cancel()}},doAttemptLoad:function(b,a){this.store.guaranteeRange(b,a)},destroy:function(){var b=this,a=b.viewListeners.scroll;b.store.un({guaranteedrange:b.onGuaranteedRange,scope:b});b.view.un(b.viewListeners);if(b.view.rendered){b.stretcher.remove();b.view.el.un("scroll",a.fn,a.scope)}}});Ext.define("Ext.layout.container.Fit",{extend:"Ext.layout.container.Container",alternateClassName:"Ext.layout.FitLayout",alias:"layout.fit",itemCls:Ext.baseCSSPrefix+"fit-item",targetCls:Ext.baseCSSPrefix+"layout-fit",type:"fit",defaultMargins:{top:0,right:0,bottom:0,left:0},manageMargins:true,sizePolicies:{0:{setsWidth:0,setsHeight:0},1:{setsWidth:1,setsHeight:0},2:{setsWidth:0,setsHeight:1},3:{setsWidth:1,setsHeight:1}},getItemSizePolicy:function(b,c){var a=c||this.owner.getSizeModel(),d=(a.width.shrinkWrap?0:1)|(a.height.shrinkWrap?0:2);return this.sizePolicies[d]},beginLayoutCycle:function(k,g){var t=this,u=t.lastHeightModel&&t.lastHeightModel.calculated,h=t.lastWidthModel&&t.lastWidthModel.calculated,o=h||u,l=0,m=0,s,b,p,r,e,a,j,n,q,d;t.callParent(arguments);if(o&&k.targetContext.el.dom.tagName.toUpperCase()!="TD"){o=h=u=false}b=k.childItems;e=b.length;for(p=0;p'+a.emptyText+"":""}));a.view.getComponentLayout().headerCt=a.headerCt;a.mon(a.view,{uievent:a.processEvent,scope:a});b.view=a.view;a.headerCt.view=a.view;a.relayEvents(a.view,["cellclick","celldblclick"])}return a.view},setAutoScroll:Ext.emptyFn,processEvent:function(g,b,a,c,d,i){var h=this,j;if(d!==-1){j=h.headerCt.getGridColumns()[d];return j.processEvent.apply(j,arguments)}},determineScrollbars:function(){},invalidateScroller:function(){},scrollByDeltaY:function(b,a){this.getView().scrollBy(0,b,a)},scrollByDeltaX:function(b,a){this.getView().scrollBy(b,0,a)},afterCollapse:function(){var a=this;a.saveScrollPos();a.saveScrollPos();a.callParent(arguments)},afterExpand:function(){var a=this;a.callParent(arguments);a.restoreScrollPos();a.restoreScrollPos()},saveScrollPos:Ext.emptyFn,restoreScrollPos:Ext.emptyFn,onHeaderResize:function(){this.delayScroll()},onHeaderMove:function(e,g,a,b,d){var c=this;if(c.optimizedColumnMove===false){c.view.refresh()}else{c.view.moveColumn(b,d,a)}c.delayScroll()},onHeaderHide:function(a,b){this.delayScroll()},onHeaderShow:function(a,b){this.delayScroll()},delayScroll:function(){var a=this.getScrollTarget().el;if(a){this.scrollTask.delay(10,null,null,[a.dom.scrollLeft])}},onViewReady:function(){this.fireEvent("viewready",this)},onRestoreHorzScroll:function(){var a=this.scrollLeftPos;if(a){this.syncHorizontalScroll(a,true)}},getScrollerOwner:function(){var a=this;if(!this.scrollerOwner){a=this.up("[scrollerOwner]")}return a},getLhsMarker:function(){var a=this;return a.lhsMarker||(a.lhsMarker=Ext.DomHelper.append(a.el,{cls:Ext.baseCSSPrefix+"grid-resize-marker"},true))},getRhsMarker:function(){var a=this;return a.rhsMarker||(a.rhsMarker=Ext.DomHelper.append(a.el,{cls:Ext.baseCSSPrefix+"grid-resize-marker"},true))},getSelectionModel:function(){if(!this.selModel){this.selModel={}}var b="SINGLE",a;if(this.simpleSelect){b="SIMPLE"}else{if(this.multiSelect){b="MULTI"}}Ext.applyIf(this.selModel,{allowDeselect:this.allowDeselect,mode:b});if(!this.selModel.events){a=this.selModel.selType||this.selType;this.selModel=Ext.create("selection."+a,this.selModel)}if(!this.selModel.hasRelaySetup){this.relayEvents(this.selModel,["selectionchange","beforeselect","beforedeselect","select","deselect"]);this.selModel.hasRelaySetup=true}if(this.disableSelection){this.selModel.locked=true}return this.selModel},getScrollTarget:function(){var a=this.getScrollerOwner(),b=a.query("tableview");return b[1]||b[0]},onHorizontalScroll:function(a,b){this.syncHorizontalScroll(b.scrollLeft)},syncHorizontalScroll:function(d,b){var c=this,a;b=b===true;if(c.rendered&&(b||d!==c.scrollLeftPos)){if(b){a=c.getScrollTarget();a.el.dom.scrollLeft=d}c.headerCt.el.dom.scrollLeft=d;c.scrollLeftPos=d}},onStoreLoad:Ext.emptyFn,getEditorParent:function(){return this.body},bindStore:function(a){var b=this;b.store=a;b.getView().bindStore(a)},beforeDestroy:function(){Ext.destroy(this.verticalScroller);this.callParent()},reconfigure:function(a,b){var c=this,d=c.headerCt;if(c.lockable){c.reconfigureLockable(a,b)}else{Ext.suspendLayouts();if(b){delete c.scrollLeftPos;d.removeAll();d.add(b)}if(a){a=Ext.StoreManager.lookup(a);c.bindStore(a)}else{c.getView().refresh()}d.setSortState();Ext.resumeLayouts(true)}c.fireEvent("reconfigure",c,a,b)}});Ext.define("Ext.grid.View",{extend:"Ext.view.Table",alias:"widget.gridview",stripeRows:true,autoScroll:true});Ext.define("Ext.grid.Panel",{extend:"Ext.panel.Table",requires:["Ext.grid.View"],alias:["widget.gridpanel","widget.grid"],alternateClassName:["Ext.list.ListView","Ext.ListView","Ext.grid.GridPanel"],viewType:"gridview",lockable:false,bothCfgCopy:["invalidateScrollerOnRefresh","hideHeaders","enableColumnHide","enableColumnMove","enableColumnResize","sortableColumns"],normalCfgCopy:["verticalScroller","verticalScrollDock","verticalScrollerType","scroll"],lockedCfgCopy:[],rowLines:true});Ext.define("Ext.grid.RowEditor",{extend:"Ext.form.Panel",requires:["Ext.tip.ToolTip","Ext.util.HashMap","Ext.util.KeyNav"],saveBtnText:"Update",cancelBtnText:"Cancel",errorsText:"Errors",dirtyText:"You need to commit or cancel your changes",lastScrollLeft:0,lastScrollTop:0,border:false,hideMode:"offsets",initComponent:function(){var b=this,a;b.cls=Ext.baseCSSPrefix+"grid-row-editor";b.layout={type:"hbox",align:"middle"};b.columns=new Ext.util.HashMap();b.columns.getKey=function(d){var c;if(d.getEditor){c=d.getEditor();if(c){return c.id}}return d.id};b.mon(b.columns,{add:b.onFieldAdd,remove:b.onFieldRemove,replace:b.onFieldReplace,scope:b});b.callParent(arguments);if(b.fields){b.setField(b.fields);delete b.fields}b.mon(Ext.container.Container.hierarchyEventSource,{scope:b,show:b.repositionIfVisible});a=b.getForm();a.trackResetOnLoad=true},onFieldChange:function(){var c=this,b=c.getForm(),a=b.isValid();if(c.errorSummary&&c.isVisible()){c[a?"hideToolTip":"showToolTip"]()}c.updateButton(a);c.isValid=a},updateButton:function(b){var a=this.floatingButtons;if(a){a.child("#update").setDisabled(!b)}},afterRender:function(){var b=this,a=b.editingPlugin;b.callParent(arguments);b.mon(b.renderTo,"scroll",b.onCtScroll,b,{buffer:100});b.mon(b.el,{click:Ext.emptyFn,stopPropagation:true});b.el.swallowEvent(["keypress","keydown"]);b.keyNav=new Ext.util.KeyNav(b.el,{enter:a.completeEdit,esc:a.onEscKey,scope:a});b.mon(a.view,{beforerefresh:b.onBeforeViewRefresh,refresh:b.onViewRefresh,itemremove:b.onViewItemRemove,scope:b})},onBeforeViewRefresh:function(b){var c=this,a=b.el.dom;if(c.el.dom.parentNode===a){a.removeChild(c.el.dom)}},onViewRefresh:function(c){var e=this,b=c.el.dom,d=e.context,a;b.appendChild(e.el.dom);if(d&&(a=d.store.indexOf(d.record))>=0){d.row=c.getNode(a);e.reposition();if(e.tooltip&&e.tooltip.isVisible()){e.tooltip.setTarget(d.row)}}else{e.editingPlugin.cancelEdit()}},onViewItemRemove:function(a,b){var c=this.context;if(c&&a===c.record){this.editingPlugin.cancelEdit()}},onCtScroll:function(d,c){var a=this,b=c.scrollTop,g=c.scrollLeft;if(b!==a.lastScrollTop){a.lastScrollTop=b;if((a.tooltip&&a.tooltip.isVisible())||a.hiddenTip){a.repositionTip()}}if(g!==a.lastScrollLeft){a.lastScrollLeft=g;a.reposition()}},onColumnAdd:function(a){if(!a.isGroupHeader){this.setField(a)}},onColumnRemove:function(a){this.columns.remove(a)},onColumnResize:function(b,a){if(!b.isGroupHeader){b.getEditor().setWidth(a-2);this.repositionIfVisible()}},onColumnHide:function(a){if(!a.isGroupHeader){a.getEditor().hide();this.repositionIfVisible()}},onColumnShow:function(a){var b=a.getEditor();b.setWidth(a.getWidth()-2).show();this.repositionIfVisible()},onColumnMove:function(b,a,c){if(!b.isGroupHeader){var d=b.getEditor();if(this.items.indexOf(d)!=c){this.move(a,c)}}},onFieldAdd:function(e,a,b){var c=this,g,d;if(!b.isGroupHeader){g=c.editingPlugin.grid.headerCt.getHeaderIndex(b);d=b.getEditor({xtype:"displayfield"});c.insert(g,d)}},onFieldRemove:function(g,a,b){var c=this,e,d;if(!b.isGroupHeader){e=b.getEditor();d=e.el;c.remove(e,false);if(d){d.remove()}}},onFieldReplace:function(d,a,c,b){this.onFieldRemove(d,a,b)},clearFields:function(){var b=this.columns,a;for(a in b){if(b.hasOwnProperty(a)){b.removeAtKey(a)}}},getFloatingButtons:function(){var e=this,g=Ext.baseCSSPrefix,d=g+"grid-row-editor-buttons",c=e.editingPlugin,a=Ext.panel.Panel.prototype.minButtonWidth,b;if(!e.floatingButtons){b=e.floatingButtons=new Ext.Container({renderTpl:['
','
','
','
','
',"{%this.renderContainer(out,values)%}"],width:200,renderTo:e.el,baseCls:d,layout:{type:"hbox",align:"middle"},defaults:{flex:1,margins:"0 1 0 1"},items:[{itemId:"update",xtype:"button",handler:c.completeEdit,scope:c,text:e.saveBtnText,minWidth:a},{xtype:"button",handler:c.cancelEdit,scope:c,text:e.cancelBtnText,minWidth:a}]});e.mon(b.el,{mousedown:Ext.emptyFn,click:Ext.emptyFn,stopEvent:true})}return e.floatingButtons},repositionIfVisible:function(d){var b=this,a=b.view;if(d&&(d==b||!a.isDescendantOf(d))){return}if(b.isVisible()&&a.isVisible(true)){b.reposition()}},reposition:function(r){var s=this,c=s.context,e=c&&Ext.get(c.row),p=s.getFloatingButtons(),q=p.el,a=s.editingPlugin.grid,g=a.view.el,o=a.headerCt.getFullWidth(),t=a.getWidth(),l=Math.min(o,t),n=a.view.el.dom.scrollLeft,i=p.getWidth(),d=(l-i)/2+n,j,h,m,k=function(){q.scrollIntoView(g,false);if(r&&r.callback){r.callback.call(r.scope||s)}},b;if(e&&Ext.isElement(e.dom)){e.scrollIntoView(g,false);j=e.getXY()[1]-5;h=e.getHeight();m=h+(s.editingPlugin.grid.rowLines?9:10);if(s.getHeight()!=m){s.setHeight(m);s.el.setLeft(0)}if(r){b={to:{y:j},duration:r.duration||125,listeners:{afteranimate:function(){k();j=e.getXY()[1]-5}}};s.el.animate(b)}else{s.el.setY(j);k()}}if(s.getWidth()!=o){s.setWidth(o)}q.setLeft(d)},getEditor:function(a){var b=this;if(Ext.isNumber(a)){return b.query(">[isFormField]")[a]}else{if(a.isHeader&&!a.isGroupHeader){return a.getEditor()}}},removeField:function(b){var a=this;b=a.getEditor(b);a.mun(b,"validitychange",a.onValidityChange,a);a.columns.removeAtKey(b.id);Ext.destroy(b)},setField:function(b){var d=this,a,c,e;if(Ext.isArray(b)){c=b.length;for(a=0;adisplayfield");b=g.length;for(c=0;cg&&a":"",h=[],a=d.query(">[isFormField]"),c=a.length,b;function g(i){return"
  • "+i+"
  • "}for(b=0;b"+h.join("")+""},beforeDestroy:function(){Ext.destroy(this.floatingButtons,this.tooltip);this.callParent()}});Ext.define("Ext.grid.plugin.HeaderResizer",{extend:"Ext.AbstractPlugin",requires:["Ext.dd.DragTracker","Ext.util.Region"],alias:"plugin.gridheaderresizer",disabled:false,config:{dynamic:false},colHeaderCls:Ext.baseCSSPrefix+"column-header",minColWidth:40,maxColWidth:1000,wResizeCursor:"col-resize",eResizeCursor:"col-resize",init:function(a){this.headerCt=a;a.on("render",this.afterHeaderRender,this,{single:true})},destroy:function(){if(this.tracker){this.tracker.destroy()}},afterHeaderRender:function(){var b=this.headerCt,a=b.el;b.mon(a,"mousemove",this.onHeaderCtMouseMove,this);this.tracker=new Ext.dd.DragTracker({disabled:this.disabled,onBeforeStart:Ext.Function.bind(this.onBeforeStart,this),onStart:Ext.Function.bind(this.onStart,this),onDrag:Ext.Function.bind(this.onDrag,this),onEnd:Ext.Function.bind(this.onEnd,this),tolerance:3,autoStart:300,el:a})},onHeaderCtMouseMove:function(b,k){var d=this,a,i,j,g,c,h;if(d.headerCt.dragging){if(d.activeHd){d.activeHd.el.dom.style.cursor="";delete d.activeHd}}else{i=b.getTarget("."+d.colHeaderCls,3,true);if(i){j=Ext.getCmp(i.id);if(j.isOnLeftEdge(b)){g=j.previousNode("gridcolumn:not([hidden]):not([isGroupHeader])");if(g){h=d.headerCt.up("tablepanel");c=g.up("tablepanel");if(!((c===h)||((h.ownerCt.isXType("tablepanel"))&&h.ownerCt.view.lockedGrid===c))){g=null}}}else{if(j.isOnRightEdge(b)){g=j}else{g=null}}if(g){if(g.isGroupHeader){a=g.getGridColumns();g=a[a.length-1]}if(g&&!(g.fixed||(g.resizable===false)||d.disabled)){d.activeHd=g;j.el.dom.style.cursor=d.eResizeCursor}}else{j.el.dom.style.cursor="";delete d.activeHd}}}},onBeforeStart:function(b){var a=b.getTarget();this.dragHd=this.activeHd;if(!!this.dragHd&&!Ext.fly(a).hasCls(Ext.baseCSSPrefix+"column-header-trigger")&&!this.headerCt.dragging){this.tracker.constrainTo=this.getConstrainRegion();return true}else{this.headerCt.dragging=false;return false}},getConstrainRegion:function(){var c=this,a=c.dragHd.el,d=Ext.util.Region.getRegion(a),b;if(c.headerCt.forceFit){b=c.dragHd.nextNode("gridcolumn:not([hidden]):not([isGroupHeader])")}return d.adjust(0,c.headerCt.forceFit?(b?b.getWidth()-c.minColWidth:0):c.maxColWidth-a.getWidth(),0,c.minColWidth)},onStart:function(u){var v=this,h=v.dragHd,b=h.el,o=b.getWidth(),j=v.headerCt,l=u.getTarget(),d,r,g,k,c,n,a,i,s,q,p,m;if(v.dragHd&&!Ext.fly(l).hasCls(Ext.baseCSSPrefix+"column-header-trigger")){j.dragging=true}v.origWidth=o;if(!v.dynamic){d=b.getXY();r=j.up("[scrollerOwner]");g=v.dragHd.up(":not([isGroupHeader])");k=g.up();c=r.getLhsMarker();n=r.getRhsMarker();a=n.parent();i=a.getLocalX();s=a.getLocalY();q=a.translatePoints(d);p=k.body.getHeight()+j.getHeight();m=q.top-s;c.setTop(m);n.setTop(m);c.setHeight(p);n.setHeight(p);c.setLeft(q.left-i);n.setLeft(q.left+o-i)}},onDrag:function(h){if(!this.dynamic){var g=this.tracker.getXY("point"),a=this.headerCt.up("[scrollerOwner]"),i=a.getRhsMarker(),c=i.parent(),b=c.translatePoints(g),d=c.getLocalX();i.setLeft(b.left-d)}else{this.doResize()}},onEnd:function(g){this.headerCt.dragging=false;if(this.dragHd){if(!this.dynamic){var d=this.dragHd,b=this.headerCt.up("[scrollerOwner]"),c=b.getLhsMarker(),h=b.getRhsMarker(),a=-9999;c.setLeft(a);h.setLeft(a)}this.doResize()}},doResize:function(){if(this.dragHd){var b=this.dragHd,a,c=this.tracker.getOffset("point");if(b.flex){delete b.flex}Ext.suspendLayouts();b.setWidth(this.origWidth+c[0]);if(this.headerCt.forceFit){a=b.nextNode("gridcolumn:not([hidden]):not([isGroupHeader])");if(a){delete a.flex;a.setWidth(a.getWidth()-c[0])}}Ext.resumeLayouts(true)}},disable:function(){this.disabled=true;if(this.tracker){this.tracker.disable()}},enable:function(){this.disabled=false;if(this.tracker){this.tracker.enable()}}});Ext.define("Ext.grid.header.DragZone",{extend:"Ext.dd.DragZone",colHeaderCls:Ext.baseCSSPrefix+"column-header",maxProxyWidth:120,constructor:function(a){this.headerCt=a;this.ddGroup=this.getDDGroup();this.callParent([a.el]);this.proxy.el.addCls(Ext.baseCSSPrefix+"grid-col-dd")},getDDGroup:function(){return"header-dd-zone-"+this.headerCt.up("[scrollerOwner]").id},getDragData:function(b){var d=b.getTarget("."+this.colHeaderCls),a,c;if(d){a=Ext.getCmp(d.id);if(!this.headerCt.dragging&&a.draggable&&!(a.isOnLeftEdge(b)||a.isOnRightEdge(b))){c=document.createElement("div");c.innerHTML=Ext.getCmp(d.id).text;return{ddel:c,header:a}}}return false},onBeforeDrag:function(){return !(this.headerCt.dragging||this.disabled)},onInitDrag:function(){this.headerCt.dragging=true;this.callParent(arguments)},onDragDrop:function(){this.headerCt.dragging=false;this.callParent(arguments)},afterRepair:function(){this.callParent();this.headerCt.dragging=false},getRepairXY:function(){return this.dragData.header.el.getXY()},disable:function(){this.disabled=true},enable:function(){this.disabled=false}});Ext.define("Ext.grid.header.DropZone",{extend:"Ext.dd.DropZone",colHeaderCls:Ext.baseCSSPrefix+"column-header",proxyOffsets:[-4,-9],constructor:function(a){this.headerCt=a;this.ddGroup=this.getDDGroup();this.callParent([a.el])},getDDGroup:function(){return"header-dd-zone-"+this.headerCt.up("[scrollerOwner]").id},getTargetFromEvent:function(a){return a.getTarget("."+this.colHeaderCls)},getTopIndicator:function(){if(!this.topIndicator){this.topIndicator=Ext.DomHelper.append(Ext.getBody(),{cls:"col-move-top",html:" "},true)}return this.topIndicator},getBottomIndicator:function(){if(!this.bottomIndicator){this.bottomIndicator=Ext.DomHelper.append(Ext.getBody(),{cls:"col-move-bottom",html:" "},true)}return this.bottomIndicator},getLocation:function(d,b){var a=d.getXY()[0],c=Ext.fly(b).getRegion(),h,g;if((c.right-a)<=(c.right-c.left)/2){h="after"}else{h="before"}return{pos:h,header:Ext.getCmp(b.id),node:b}},positionIndicator:function(v,o,u){var a=this.getLocation(u,o),q=a.header,g=a.pos,d=v.nextSibling("gridcolumn:not([hidden])"),t=v.previousSibling("gridcolumn:not([hidden])"),l,r,s,b,c,k,m,x,w,n,j,p,h;if(!q.draggable&&q.getIndex()===0){return false}this.lastLocation=a;if((v!==q)&&((g==="before"&&d!==q)||(g==="after"&&t!==q))&&!q.isDescendantOf(v)){n=Ext.dd.DragDropManager.getRelated(this);j=n.length;p=0;for(;pl)){p-=1}Ext.suspendLayouts();if(t!==a){t.remove(q,false);if(t.isGroupHeader){if(!t.items.getCount()){c=t.ownerCt;c.remove(t,false);t.el.dom.parentNode.removeChild(t.el.dom)}}}if(t===a){a.move(l,p)}else{a.insert(p,q)}if(a.isGroupHeader){if(a!==t){q.savedFlex=q.flex;delete q.flex;q.width=q.getWidth()}}else{if(q.savedFlex){q.flex=q.savedFlex;delete q.width}}i.purgeCache();Ext.resumeLayouts(true);i.onHeaderMoved(q,m,b,s);if(!t.items.getCount()){t.destroy()}}}}}});Ext.define("Ext.grid.plugin.HeaderReorderer",{extend:"Ext.AbstractPlugin",requires:["Ext.grid.header.DragZone","Ext.grid.header.DropZone"],alias:"plugin.gridheaderreorderer",init:function(a){this.headerCt=a;a.on({render:this.onHeaderCtRender,single:true,scope:this})},destroy:function(){Ext.destroy(this.dragZone,this.dropZone)},onHeaderCtRender:function(){var a=this;a.dragZone=new Ext.grid.header.DragZone(a.headerCt);a.dropZone=new Ext.grid.header.DropZone(a.headerCt);if(a.disabled){a.dragZone.disable()}},enable:function(){this.disabled=false;if(this.dragZone){this.dragZone.enable()}},disable:function(){this.disabled=true;if(this.dragZone){this.dragZone.disable()}}});Ext.define("Ext.grid.header.Container",{extend:"Ext.container.Container",requires:["Ext.grid.ColumnLayout","Ext.grid.plugin.HeaderResizer","Ext.grid.plugin.HeaderReorderer"],uses:["Ext.grid.column.Column","Ext.menu.Menu","Ext.menu.CheckItem","Ext.menu.Separator"],border:true,alias:"widget.headercontainer",baseCls:Ext.baseCSSPrefix+"grid-header-ct",dock:"top",weight:100,defaultType:"gridcolumn",detachOnRemove:false,defaultWidth:100,sortAscText:"Sort Ascending",sortDescText:"Sort Descending",sortClearText:"Clear Sort",columnsText:"Columns",headerOpenCls:Ext.baseCSSPrefix+"column-header-open",triStateSort:false,ddLock:false,dragging:false,sortable:true,initComponent:function(){var a=this;a.headerCounter=0;a.plugins=a.plugins||[];if(!a.isHeader){if(a.enableColumnResize){a.resizer=new Ext.grid.plugin.HeaderResizer();a.plugins.push(a.resizer)}if(a.enableColumnMove){a.reorderer=new Ext.grid.plugin.HeaderReorderer();a.plugins.push(a.reorderer)}}if(a.isHeader&&!a.items){a.layout=a.layout||"auto"}else{a.layout=Ext.apply({type:"gridcolumn",align:"stretchmax"},a.initialConfig.layout)}a.defaults=a.defaults||{};Ext.applyIf(a.defaults,{triStateSort:a.triStateSort,sortable:a.sortable});a.menuTask=new Ext.util.DelayedTask(a.updateMenuDisabledState,a);a.callParent();a.addEvents("columnresize","headerclick","headertriggerclick","columnmove","columnhide","columnshow","sortchange","menucreate")},onDestroy:function(){var a=this;a.menuTask.cancel();Ext.destroy(a.resizer,a.reorderer);a.callParent()},applyColumnsState:function(e){if(!e||!e.length){return}var m=this,k=m.items.items,j=k.length,g=0,b=e.length,l,d,a,h;for(l=0;lgridcolumn[hideable]"),h=a.length,d;for(;b{text}
    {%this.renderContainer(out,values)%}',dataIndex:null,text:" ",menuText:null,emptyCellText:" ",sortable:true,resizable:true,hideable:true,menuDisabled:false,renderer:false,editRenderer:false,align:"left",draggable:true,tooltipType:"qtip",initDraggable:Ext.emptyFn,isHeader:true,componentLayout:"columncomponent",initResizable:Ext.emptyFn,initComponent:function(){var a=this,b;if(Ext.isDefined(a.header)){a.text=a.header;delete a.header}if(!a.triStateSort){a.possibleSortStates.length=2}if(Ext.isDefined(a.columns)){a.isGroupHeader=true;a.items=a.columns;delete a.columns;delete a.flex;delete a.width;a.cls=(a.cls||"")+" "+Ext.baseCSSPrefix+"group-header";a.sortable=false;a.resizable=false;a.align="center"}else{a.isContainer=false;if(a.flex){a.minWidth=a.minWidth||Ext.grid.plugin.HeaderResizer.prototype.minColWidth}}a.addCls(Ext.baseCSSPrefix+"column-header-align-"+a.align);b=a.renderer;if(b){if(typeof b=="string"){a.renderer=Ext.util.Format[b]}a.hasCustomRenderer=true}else{if(a.defaultRenderer){a.scope=a;a.renderer=a.defaultRenderer}}a.callParent(arguments);a.on({element:"el",click:a.onElClick,dblclick:a.onElDblClick,scope:a});a.on({element:"titleEl",mouseenter:a.onTitleMouseOver,mouseleave:a.onTitleMouseOut,scope:a})},onAdd:function(a){a.isSubHeader=true;a.addCls(Ext.baseCSSPrefix+"group-sub-header");this.callParent(arguments)},onRemove:function(a){a.isSubHeader=false;a.removeCls(Ext.baseCSSPrefix+"group-sub-header");this.callParent(arguments)},initRenderData:function(){var b=this,d="",c=b.tooltip,a=b.tooltipType=="qtip"?"data-qtip":"title";if(!Ext.isEmpty(c)){d=a+'="'+c+'" '}return Ext.applyIf(b.callParent(arguments),{text:b.text,menuDisabled:b.menuDisabled,tipMarkup:d})},applyColumnState:function(b){var a=this,c=Ext.isDefined;a.applyColumnsState(b.columns);if(c(b.hidden)){a.hidden=b.hidden}if(c(b.locked)){a.locked=b.locked}if(c(b.sortable)){a.sortable=b.sortable}if(c(b.width)){delete a.flex;a.width=b.width}else{if(c(b.flex)){delete a.width;a.flex=b.flex}}},getColumnState:function(){var e=this,b=e.items.items,a=b?b.length:0,d,c=[],g={id:e.getStateId()};e.savePropsToState(["hidden","sortable","locked","flex","width"],g);if(e.isGroupHeader){for(d=0;d:not([hidden])");if(h.length===1&&h[0]==j){j.ownerCt.hide();return}}Ext.suspendLayouts();if(j.isGroupHeader){h=j.items.items;for(d=0,g=h.length;d*");for(e=0,a=c.length;e
    ',indicatorCls:Ext.baseCSSPrefix+"grid-drop-indicator",constructor:function(a){var b=this;Ext.apply(b,a);if(!b.ddGroup){b.ddGroup="view-dd-zone-"+b.view.id}b.callParent([b.view.el])},fireViewEvent:function(){var b=this,a;b.lock();a=b.view.fireEvent.apply(b.view,arguments);b.unlock();return a},getTargetFromEvent:function(k){var j=k.getTarget(this.view.getItemSelector()),d,c,b,g,a,h;if(!j){d=k.getPageY();for(g=0,c=this.view.getNodes(),a=c.length;g=(b.bottom-b.top)/2){d="before"}else{d="after"}return d},containsRecordAtOffset:function(d,b,g){if(!b){return false}var a=this.view,c=a.indexOf(b),e=a.getNode(c+g),h=e?a.getRecord(e):null;return h&&Ext.Array.contains(d,h)},positionIndicator:function(b,c,d){var g=this,i=g.view,h=g.getPosition(d,b),k=i.getRecord(b),a=c.records,j;if(!Ext.Array.contains(a,k)&&(h=="before"&&!g.containsRecordAtOffset(a,k,-1)||h=="after"&&!g.containsRecordAtOffset(a,k,1))){g.valid=true;if(g.overRecord!=k||g.currentPosition!=h){j=Ext.fly(b).getY()-i.el.getY()-1;if(h=="after"){j+=Ext.fly(b).getHeight()}g.getIndicator().setWidth(Ext.fly(i.el).getWidth()).showAt(0,j);g.overRecord=k;g.currentPosition=h}}else{g.invalidateDrop()}},invalidateDrop:function(){if(this.valid){this.valid=false;this.getIndicator().hide()}},onNodeOver:function(c,a,g,d){var b=this;if(!Ext.Array.contains(d.records,b.view.getRecord(c))){b.positionIndicator(c,d,g)}return b.valid?b.dropAllowed:b.dropNotAllowed},notifyOut:function(c,a,g,d){var b=this;b.callParent(arguments);delete b.overRecord;delete b.currentPosition;if(b.indicator){b.indicator.hide()}},onContainerOver:function(a,h,g){var d=this,b=d.view,c=b.store.getCount();if(c){d.positionIndicator(b.getNode(c-1),g,h)}else{delete d.overRecord;delete d.currentPosition;d.getIndicator().setWidth(Ext.fly(b.el).getWidth()).showAt(0,0);d.valid=true}return d.dropAllowed},onContainerDrop:function(a,c,b){return this.onNodeDrop(a,null,c,b)},onNodeDrop:function(g,a,i,h){var d=this,c=false,b={wait:false,processDrop:function(){d.invalidateDrop();d.handleNodeDrop(h,d.overRecord,d.currentPosition);c=true;d.fireViewEvent("drop",g,h,d.overRecord,d.currentPosition)},cancelDrop:function(){d.invalidateDrop();c=true}},j=false;if(d.valid){j=d.fireViewEvent("beforedrop",g,h,d.overRecord,d.currentPosition,b);if(b.wait){return}if(j!==false){if(!c){b.processDrop()}}}return j},destroy:function(){Ext.destroy(this.indicator);delete this.indicator;this.callParent()}});Ext.define("Ext.grid.ViewDropZone",{extend:"Ext.view.DropZone",indicatorHtml:'
    ',indicatorCls:Ext.baseCSSPrefix+"grid-drop-indicator",handleNodeDrop:function(b,d,e){var j=this.view,k=j.getStore(),h,a,c,g;if(b.copy){a=b.records;b.records=[];for(c=0,g=a.length;cActions",sortable:false,constructor:function(d){var g=this,b=Ext.apply({},d),c=b.items||[g],h,e,a;g.origRenderer=b.renderer||g.renderer;g.origScope=b.scope||g.scope;delete g.renderer;delete g.scope;delete b.renderer;delete b.scope;delete b.items;g.callParent([b]);g.items=c;for(e=0,a=c.length;e"}return g},enableAction:function(b,a){var c=this;if(!b){b=0}else{if(!Ext.isNumber(b)){b=Ext.Array.indexOf(c.items,b)}}c.items[b].disabled=false;c.up("tablepanel").el.select("."+Ext.baseCSSPrefix+"action-col-"+b).removeCls(c.disabledCls);if(!a){c.fireEvent("enable",c)}},disableAction:function(b,a){var c=this;if(!b){b=0}else{if(!Ext.isNumber(b)){b=Ext.Array.indexOf(c.items,b)}}c.items[b].disabled=true;c.up("tablepanel").el.select("."+Ext.baseCSSPrefix+"action-col-"+b).addCls(c.disabledCls);if(!a){c.fireEvent("disable",c)}},destroy:function(){delete this.items;delete this.renderer;return this.callParent(arguments)},processEvent:function(i,l,n,a,j,g,c,p){var h=this,d=g.getTarget(),b,o,k,m=i=="keydown"&&g.getKey();if(m&&!Ext.fly(d).findParent(l.cellSelector)){d=Ext.fly(n).down("."+Ext.baseCSSPrefix+"action-col-icon",true)}if(d&&(b=d.className.match(h.actionIdRe))){o=h.items[parseInt(b[1],10)];if(o){if(i=="click"||(m==g.ENTER||m==g.SPACE)){k=o.handler||h.handler;if(k&&!o.disabled){k.call(o.scope||h.origScope||h,l,a,j,o,g,c,p)}}else{if(i=="mousedown"&&o.stopSelection!==false){return false}}}}return h.callParent(arguments)},cascade:function(b,a){b.call(a||this,this)},getRefItems:function(){return[]}});Ext.define("Ext.grid.column.Boolean",{extend:"Ext.grid.column.Column",alias:["widget.booleancolumn"],alternateClassName:"Ext.grid.BooleanColumn",trueText:"true",falseText:"false",undefinedText:" ",defaultRenderer:function(a){if(a===undefined){return this.undefinedText}if(!a||a==="false"){return this.falseText}return this.trueText}});Ext.define("Ext.grid.column.Date",{extend:"Ext.grid.column.Column",alias:["widget.datecolumn"],requires:["Ext.Date"],alternateClassName:"Ext.grid.DateColumn",initComponent:function(){if(!this.format){this.format=Ext.Date.defaultFormat}this.callParent(arguments)},defaultRenderer:function(a){return Ext.util.Format.date(a,this.format)}});Ext.define("Ext.grid.column.Number",{extend:"Ext.grid.column.Column",alias:["widget.numbercolumn"],requires:["Ext.util.Format"],alternateClassName:"Ext.grid.NumberColumn",format:"0,000.00",defaultRenderer:function(a){return Ext.util.Format.number(a,this.format)}});Ext.define("Ext.grid.column.Template",{extend:"Ext.grid.column.Column",alias:["widget.templatecolumn"],requires:["Ext.XTemplate"],alternateClassName:"Ext.grid.TemplateColumn",initComponent:function(){var a=this;a.tpl=(!Ext.isPrimitive(a.tpl)&&a.tpl.compile)?a.tpl:new Ext.XTemplate(a.tpl);a.hasCustomRenderer=true;a.callParent(arguments)},defaultRenderer:function(c,d,a){var b=Ext.apply({},a.data,a.getAssociatedData());return this.tpl.apply(b)}});Ext.define("Ext.grid.feature.Feature",{extend:"Ext.util.Observable",alias:"feature.feature",isFeature:true,disabled:false,hasFeatureEvent:true,eventPrefix:null,eventSelector:null,view:null,grid:null,collectData:false,constructor:function(a){this.initialConfig=a;this.callParent(arguments)},clone:function(){return new this.self(this.initialConfig)},init:Ext.emptyFn,getFeatureTpl:function(){return""},getFireEventArgs:function(b,a,c,d){return[b,a,c,d]},attachEvents:function(){},getFragmentTpl:Ext.emptyFn,mutateMetaRowTpl:Ext.emptyFn,getMetaRowTplFragments:function(){return{}},getTableFragments:function(){return{}},getAdditionalData:function(c,a,b,d){return{}},enable:function(){this.disabled=false},disable:function(){this.disabled=true}});Ext.define("Ext.grid.feature.AbstractSummary",{extend:"Ext.grid.feature.Feature",alias:"feature.abstractsummary",showSummaryRow:true,nestedIdRe:/\{\{id\}([\w\-]*)\}/g,init:function(){var a=this;a.grid.optimizedColumnMove=false;a.view.mon(a.view.store,{update:a.onStoreUpdate,scope:a})},onStoreUpdate:function(){var a=this.view;if(this.showSummaryRow){a.saveScrollState();a.refresh();a.restoreScrollState()}},toggleSummaryRow:function(a){this.showSummaryRow=!!a},getSummaryFragments:function(){var a={};if(this.showSummaryRow){Ext.apply(a,{printSummaryRow:Ext.bind(this.printSummaryRow,this)})}return a},printSummaryRow:function(b){var a=this.view.getTableChunker().metaRowTpl.join(""),c=Ext.baseCSSPrefix;a=a.replace(c+"grid-row",c+"grid-row-summary");a=a.replace("{{id}}","{gridSummaryValue}");a=a.replace(this.nestedIdRe,"{id$1}");a=a.replace("{[this.embedRowCls()]}","{rowCls}");a=a.replace("{[this.embedRowAttr()]}","{rowAttr}");a=new Ext.XTemplate(a,{firstOrLastCls:Ext.view.TableChunker.firstOrLastCls});return a.applyTemplate({columns:this.getPrintData(b)})},getColumnValue:function(c,a){var b=Ext.getCmp(c.id),e=a[c.id],d=b.summaryRenderer;if(!e&&e!==0){e="\u00a0"}if(d){e=d.call(b.scope||this,e,a,c.dataIndex)}return e},getSummary:function(a,b,d,c){if(b){if(Ext.isFunction(b)){return a.aggregate(b,null,c)}switch(b){case"count":return a.count(c);case"min":return a.min(d,c);case"max":return a.max(d,c);case"sum":return a.sum(d,c);case"average":return a.average(d,c);default:return c?{}:""}}}});Ext.define("Ext.grid.feature.Chunking",{extend:"Ext.grid.feature.Feature",alias:"feature.chunking",chunkSize:20,rowHeight:Ext.isIE?27:26,visibleChunk:0,hasFeatureEvent:false,attachEvents:function(){this.view.el.on("scroll",this.onBodyScroll,this,{buffer:300})},onBodyScroll:function(g,c){var b=this.view,d=c.scrollTop,a=Math.floor(d/this.rowHeight/this.chunkSize);if(a!==this.visibleChunk){this.visibleChunk=a;b.refresh();b.el.dom.scrollTop=d;b.el.dom.scrollTop=d}},collectData:function(d,m,l,k,c){var j=this,e=c.rows.length,b=0,g=0,a=j.visibleChunk,p,n,h=c.rows;delete c.rows;c.chunks=[];for(;be){n=e-b}else{n=j.chunkSize}if(g>=a-1&&g<=a+1){p=h.slice(b,b+j.chunkSize)}else{p=[]}c.chunks.push({rows:p,fullWidth:k,chunkHeight:n*j.rowHeight})}return c},getTableFragments:function(){return{openTableWrap:function(){return'
    '},closeTableWrap:function(){return"
    "}}}});Ext.define("Ext.grid.feature.Grouping",{extend:"Ext.grid.feature.Feature",alias:"feature.grouping",eventPrefix:"group",eventSelector:"."+Ext.baseCSSPrefix+"grid-group-hd",bodySelector:"."+Ext.baseCSSPrefix+"grid-group-body",constructor:function(){var a=this;a.collapsedState={};a.callParent(arguments)},groupHeaderTpl:"{columnName}: {name}",depthToIndent:17,collapsedCls:Ext.baseCSSPrefix+"grid-group-collapsed",hdCollapsedCls:Ext.baseCSSPrefix+"grid-group-hd-collapsed",hdCollapsibleCls:Ext.baseCSSPrefix+"grid-group-hd-collapsible",groupByText:"Group by this field",showGroupsText:"Show in groups",hideGroupedHeader:false,startCollapsed:false,enableGroupingMenu:true,enableNoGroups:true,collapsible:true,enable:function(){var c=this,a=c.view,b=a.store,d;c.lastGroupField=c.getGroupField();if(c.lastGroupIndex){c.block();b.group(c.lastGroupIndex);c.unblock()}c.callParent();d=c.view.headerCt.getMenu().down("#groupToggleMenuItem");d.setChecked(true,true);c.refreshIf()},disable:function(){var d=this,a=d.view,b=a.store,g=b.remoteGroup,e,c;c=b.groupers.first();if(c){d.lastGroupIndex=c.property;d.block();b.clearGrouping();d.unblock()}d.callParent();e=d.view.headerCt.getMenu().down("#groupToggleMenuItem");e.setChecked(true,true);e.setChecked(false,true);d.refreshIf()},refreshIf:function(){var b=this.grid.ownerCt,a=this.view;if(!a.store.remoteGroup&&!this.blockRefresh){if(b&&b.lockable){b.view.refresh()}else{a.refresh()}}},getFeatureTpl:function(b,c,a,d){return["",'
    {collapsed}{[this.renderGroupHeaderTpl(values, parent)]}
    ','{[this.recurse(values)]}',"
    "].join("")},getFragmentTpl:function(){var a=this;return{indentByDepth:a.indentByDepth,depthToIndent:a.depthToIndent,renderGroupHeaderTpl:function(b,c){return Ext.XTemplate.getTpl(a,"groupHeaderTpl").apply(b,c)}}},indentByDepth:function(a){return'style="padding-left:'+((a.depth||0)*this.depthToIndent)+'px;"'},destroy:function(){delete this.view;delete this.prunedHeader},attachEvents:function(){var b=this,a=b.view;a.on({scope:b,groupclick:b.onGroupClick,rowfocus:b.onRowFocus});a.mon(a.store,{scope:b,groupchange:b.onGroupChange,remove:b.onRemove,add:b.onAdd,update:b.onUpdate});if(b.enableGroupingMenu){b.injectGroupingMenu()}b.pruneGroupedHeader();b.lastGroupField=b.getGroupField();b.block();b.onGroupChange();b.unblock()},onAdd:function(l,c){var j=this,k=j.view,a=j.getGroupField(),g=0,h=c.length,n,d,b,e,m;if(k.rendered){d={};n={};for(;g"},closeRow:function(){return""},mutateMetaRowTpl:function(a){a.unshift("{[this.isRow()]}");a.push("{[this.closeRow()]}")},getAdditionalData:function(e,j,g,i){var h=this.view,d=h.headerCt,c=d.items.getAt(0),b={},a;if(c){a=c.id+"-tdAttr";b[a]=this.indentByDepth(e)+" "+(i[a]?i[a]:"");b.collapsed="true";b.data=g.getData()}return b},getGroupRows:function(m,d,n,k){var i=this,c=m.children,o=m.rows=[],j=i.view,g=i.getGroupedHeader(),b=i.getGroupField(),h=-1,a,l=d.length,e;if(j.store.buffered){i.collapsible=false}m.viewId=j.id;for(a=0;a-1){m.name=m.renderedValue=n[h][g.id]}if(i.collapsedState[m.name]){m.collapsedCls=i.collapsedCls;m.hdCollapsedCls=i.hdCollapsedCls}else{m.collapsedCls=m.hdCollapsedCls=""}if(i.collapsible){m.collapsibleClass=i.hdCollapsibleCls}else{m.collapsibleClass=""}return m},getGroupHeaderId:function(a){return this.view.id+"-hd-"+a},getGroupBodyId:function(a){return this.view.id+"-bd-"+a},getGroupName:function(a){var b=this,c;c=Ext.fly(a).findParent(b.eventSelector);if(c){return c.id.split(this.view.id+"-hd-")[1]}c=Ext.fly(a).findParent(b.bodySelector);if(c){return c.id.split(this.view.id+"-bd-")[1]}},collectData:function(c,p,n,k,a){var h=this,l=h.view.store,j=h.collapsedState,e,d,b,i,m;if(h.startCollapsed){h.startCollapsed=false;e=true}if(!h.disabled&&l.isGrouped()){a.rows=b=l.getGroups();i=b.length;for(d=0;d","");a+="{[this.printSummaryRow(xindex)]}"}return a},getFragmentTpl:function(){var b=this,a=b.callParent();Ext.apply(a,b.getSummaryFragments());if(b.showSummaryRow){b.summaryGroups=b.view.store.getGroups();b.summaryData=b.generateSummaryData()}return a},getPrintData:function(j){var k=this,e=k.view.headerCt.getColumnsForTpl(),h=0,b=e.length,g=[],a=k.summaryGroups[j-1].name,d=k.summaryData[a],c;for(;h','','
    {rowBody}
    ',"",""].join("")},getMetaRowTplFragments:function(){return{getRowBody:this.getRowBody,rowBodyTrCls:this.rowBodyTrCls,rowBodyTdCls:this.rowBodyTdCls,rowBodyDivCls:this.rowBodyDivCls}},mutateMetaRowTpl:function(a){a.push("{[this.getRowBody(values)]}")},getAdditionalData:function(c,a,b,g){var d=this.view.headerCt,e=d.getColumnCount();return{rowBody:"",rowBodyCls:this.rowBodyCls,rowBodyColspan:e}}});Ext.define("Ext.grid.feature.RowWrap",{extend:"Ext.grid.feature.Feature",alias:"feature.rowwrap",hasFeatureEvent:false,init:function(){if(!this.disabled){this.enable()}},getRowSelector:function(){return"tr:has(> "+this.view.cellSelector+")"},enable:function(){var b=this,a=b.view;b.callParent();b.savedRowSelector=a.rowSelector;a.rowSelector=b.getRowSelector();a.getComponentLayout().getColumnSelector=b.getColumnSelector},disable:function(){var c=this,a=c.view,b=c.savedRowSelector;c.callParent();if(b){a.rowSelector=b}delete c.savedRowSelector},mutateMetaRowTpl:function(a){var b=Ext.baseCSSPrefix;a[0]=a[0].replace(b+"grid-row","");a[0]=a[0].replace("{[this.embedRowCls()]}","");a.unshift('');a.unshift('
    ');a.push("
    ");a.push("")},embedColSpan:function(){return"{colspan}"},embedFullWidth:function(){return"{fullWidth}"},getAdditionalData:function(h,p,k,m){var d=this.view.headerCt,c=d.getColumnCount(),n=d.getFullWidth(),l=d.query("gridcolumn"),q=l.length,g=0,b={colspan:c,fullWidth:n},a,j,e;for(;g{[this.printSummaryRow()]}"},getPrintData:function(a){var g=this,c=g.view.headerCt.getColumnsForTpl(),b=0,e=c.length,h=[],j=g.summaryData,d;for(;bc?1:0))}},setColumnField:function(b,d){var c=this,a=c.getEditor();a.removeField(b);c.callParent(arguments);c.getEditor().setField(b)}});Ext.define("Ext.grid.property.Grid",{extend:"Ext.grid.Panel",alias:"widget.propertygrid",alternateClassName:"Ext.grid.PropertyGrid",uses:["Ext.grid.plugin.CellEditing","Ext.grid.property.Store","Ext.grid.property.HeaderContainer","Ext.XTemplate","Ext.grid.CellEditor","Ext.form.field.Date","Ext.form.field.Text","Ext.form.field.Number","Ext.form.field.ComboBox"],valueField:"value",nameField:"name",enableColumnMove:false,columnLines:true,stripeRows:false,trackMouseOver:false,clicksToEdit:1,enableHdMenu:false,initComponent:function(){var a=this;a.addCls(Ext.baseCSSPrefix+"property-grid");a.plugins=a.plugins||[];a.plugins.push(new Ext.grid.plugin.CellEditing({clicksToEdit:a.clicksToEdit,startEdit:function(b,c){return this.self.prototype.startEdit.call(this,b,a.headerCt.child("#"+a.valueField))}}));a.selModel={selType:"cellmodel",onCellSelect:function(b){if(b.column!=1){b.column=1}return this.self.prototype.onCellSelect.call(this,b)}};a.customRenderers=a.customRenderers||{};a.customEditors=a.customEditors||{};if(!a.store){a.propStore=a.store=new Ext.grid.property.Store(a,a.source)}if(a.sortableColumns){a.store.sort("name","ASC")}a.columns=new Ext.grid.property.HeaderContainer(a,a.store);a.addEvents("beforepropertychange","propertychange");a.callParent();a.getView().walkCells=this.walkCells;a.editors={date:new Ext.grid.CellEditor({field:new Ext.form.field.Date({selectOnFocus:true})}),string:new Ext.grid.CellEditor({field:new Ext.form.field.Text({selectOnFocus:true})}),number:new Ext.grid.CellEditor({field:new Ext.form.field.Number({selectOnFocus:true})}),"boolean":new Ext.grid.CellEditor({field:new Ext.form.field.ComboBox({editable:false,store:[[true,a.headerCt.trueText],[false,a.headerCt.falseText]]})})};a.store.on("update",a.onUpdate,a)},onUpdate:function(d,a,c){var g=this,b,e;if(g.rendered&&c==Ext.data.Model.EDIT){b=a.get(g.valueField);e=a.modified.value;if(g.fireEvent("beforepropertychange",g.source,a.getId(),b,e)!==false){if(g.source){g.source[a.getId()]=b}a.commit();g.fireEvent("propertychange",g.source,a.getId(),b,e)}else{a.reject()}}},walkCells:function(h,g,d,c,a,b){if(g=="left"){g="up"}else{if(g=="right"){g="down"}}h=Ext.view.Table.prototype.walkCells.call(this,h,g,d,c,a,b);if(!h.column){h.column=1}return h},getCellEditor:function(a,c){var d=this,e=a.get(d.nameField),g=a.get(d.valueField),b=d.customEditors[e];if(b){if(!(b instanceof Ext.grid.CellEditor)){if(!(b instanceof Ext.form.field.Base)){b=Ext.ComponentManager.create(b,"textfield")}b=d.customEditors[e]=new Ext.grid.CellEditor({field:b})}}else{if(Ext.isDate(g)){b=d.editors.date}else{if(Ext.isNumber(g)){b=d.editors.number}else{if(Ext.isBoolean(g)){b=d.editors["boolean"]}else{b=d.editors.string}}}}b.editorId=e;return b},beforeDestroy:function(){var a=this;a.callParent();a.destroyEditors(a.editors);a.destroyEditors(a.customEditors);delete a.source},destroyEditors:function(b){for(var a in b){if(b.hasOwnProperty(a)){Ext.destroy(b[a])}}},setSource:function(a){this.source=a;this.propStore.setSource(a)},getSource:function(){return this.propStore.getSource()},setProperty:function(c,b,a){this.propStore.setValue(c,b,a)},removeProperty:function(a){this.propStore.remove(a)}});Ext.define("Ext.grid.property.HeaderContainer",{extend:"Ext.grid.header.Container",alternateClassName:"Ext.grid.PropertyColumnModel",nameWidth:115,nameText:"Name",valueText:"Value",dateFormat:"m/j/Y",trueText:"true",falseText:"false",nameColumnCls:Ext.baseCSSPrefix+"grid-property-name",constructor:function(b,a){var c=this;c.grid=b;c.store=a;c.callParent([{items:[{header:c.nameText,width:b.nameColumnWidth||c.nameWidth,sortable:b.sortableColumns,dataIndex:b.nameField,renderer:Ext.Function.bind(c.renderProp,c),itemId:b.nameField,menuDisabled:true,tdCls:c.nameColumnCls},{header:c.valueText,renderer:Ext.Function.bind(c.renderCell,c),getEditor:Ext.Function.bind(c.getCellEditor,c),sortable:b.sortableColumns,flex:1,fixed:true,dataIndex:b.valueField,itemId:b.valueField,menuDisabled:true}]}])},getCellEditor:function(a){return this.grid.getCellEditor(a,this)},renderProp:function(a){return this.getPropertyName(a)},renderCell:function(g,d,e){var b=this,c=b.grid.customRenderers[e.get(b.grid.nameField)],a=g;if(c){return c.apply(b,arguments)}if(Ext.isDate(g)){a=b.renderDate(g)}else{if(Ext.isBoolean(g)){a=b.renderBool(g)}}return Ext.util.Format.htmlEncode(a)},renderDate:Ext.util.Format.date,renderBool:function(a){return this[a?"trueText":"falseText"]},getPropertyName:function(b){var a=this.grid.propertyNames;return a&&a[b]?a[b]:b}});Ext.define("Ext.grid.property.Property",{extend:"Ext.data.Model",alternateClassName:"Ext.PropGridProperty",fields:[{name:"name",type:"string"},{name:"value"}],idProperty:"name"});Ext.define("Ext.grid.property.Store",{extend:"Ext.data.Store",alternateClassName:"Ext.grid.PropertyStore",sortOnLoad:false,uses:["Ext.data.reader.Reader","Ext.data.proxy.Proxy","Ext.data.ResultSet","Ext.grid.property.Property"],constructor:function(a,c){var b=this;b.grid=a;b.source=c;b.callParent([{data:c,model:Ext.grid.property.Property,proxy:b.getProxy()}])},getProxy:function(){if(!this.proxy){Ext.grid.property.Store.prototype.proxy=new Ext.data.proxy.Memory({model:Ext.grid.property.Property,reader:this.getReader()})}return this.proxy},getReader:function(){if(!this.reader){Ext.grid.property.Store.prototype.reader=new Ext.data.reader.Reader({model:Ext.grid.property.Property,buildExtractors:Ext.emptyFn,read:function(a){return this.readRecords(a)},readRecords:function(b){var d,c,a={records:[],success:true};for(c in b){if(b.hasOwnProperty(c)){d=b[c];if(this.isEditableValue(d)){a.records.push(new Ext.grid.property.Property({name:c,value:d},c))}}}a.total=a.count=a.records.length;return new Ext.data.ResultSet(a)},isEditableValue:function(a){return Ext.isPrimitive(a)||Ext.isDate(a)}})}return this.reader},setSource:function(a){var b=this;b.source=a;b.suspendEvents();b.removeAll();b.proxy.data=a;b.load();b.resumeEvents();b.fireEvent("datachanged",b);b.fireEvent("refresh",b)},getProperty:function(a){return Ext.isNumber(a)?this.getAt(a):this.getById(a)},setValue:function(e,c,a){var b=this,d=b.getRec(e);if(d){d.set("value",c);b.source[e]=c}else{if(a){b.source[e]=c;d=new Ext.grid.property.Property({name:e,value:c},e);b.add(d)}}},remove:function(b){var a=this.getRec(b);if(a){this.callParent([a]);delete this.source[b]}},getRec:function(a){return this.getById(a)},getSource:function(){return this.source}});Ext.define("Ext.layout.ClassList",(function(){var b=Ext.String.splitWords,a=Ext.Array.toMap;return{dirty:false,constructor:function(c){this.owner=c;this.map=a(this.classes=b(c.el.className))},add:function(c){var d=this;if(!d.map[c]){d.map[c]=true;d.classes.push(c);if(!d.dirty){d.dirty=true;d.owner.markDirty()}}},addMany:function(c){Ext.each(b(c),this.add,this)},contains:function(c){return this.map[c]},flush:function(){this.owner.el.className=this.classes.join(" ");this.dirty=false},remove:function(c){var d=this;if(d.map[c]){delete d.map[c];d.classes=Ext.Array.filter(d.classes,function(e){return e!=c});if(!d.dirty){d.dirty=true;d.owner.markDirty()}}},removeMany:function(d){var e=this,c=a(b(d));e.classes=Ext.Array.filter(e.classes,function(g){if(!c[g]){return true}delete e.map[g];if(!e.dirty){e.dirty=true;e.owner.markDirty()}return false})}}}()));Ext.define("Ext.util.Queue",{constructor:function(){this.clear()},add:function(c){var b=this,a=b.getKey(c);if(!b.map[a]){++b.length;b.items.push(c);b.map[a]=c}return c},clear:function(){var b=this,a=b.items;b.items=[];b.map={};b.length=0;return a},contains:function(b){var a=this.getKey(b);return this.map.hasOwnProperty(a)},getCount:function(){return this.length},getKey:function(a){return a.id},remove:function(e){var d=this,c=d.getKey(e),a=d.items,b;if(d.map[c]){b=Ext.Array.indexOf(a,e);Ext.Array.erase(a,b,1);delete d.map[c];--d.length}return e}});Ext.define("Ext.layout.ContextItem",{requires:["Ext.layout.ClassList"],heightModel:null,widthModel:null,sizeModel:null,boxChildren:null,boxParent:null,children:[],dirty:null,dirtyCount:0,hasRawContent:true,isContextItem:true,isTopLevel:false,consumersContentHeight:0,consumersContentWidth:0,consumersContainerHeight:0,consumersContainerWidth:0,consumersHeight:0,consumersWidth:0,ownerCtContext:null,remainingChildLayouts:0,remainingComponentChildLayouts:0,remainingContainerChildLayouts:0,props:null,state:null,wrapsComponent:false,constructor:function(b){var g=this,e,d,a,c,h;Ext.apply(g,b);e=g.el;g.id=e.id;g.lastBox=e.lastBox;g.flushedProps={};g.props={};g.styles={};h=g.target;if(h.isComponent){g.wrapsComponent=true;d=h.ownerCt;if(d&&(a=g.context.items[d.el.id])){g.ownerCtContext=a}g.sizeModel=c=h.getSizeModel(a&&a.widthModel.pairsByHeightOrdinal[a.heightModel.ordinal]);g.widthModel=c.width;g.heightModel=c.height}},init:function(j,c){var s=this,a=s.props,d=s.dirty,l=s.ownerCtContext,p=s.target.ownerLayout,h=!s.state,t=j||h,e,o,m,q,b,u,v=s.heightModel,g=s.widthModel,k,r;s.dirty=s.invalid=false;s.props={};if(s.boxChildren){s.boxChildren.length=0}if(!h){s.clearAllBlocks("blocks");s.clearAllBlocks("domBlocks")}if(!s.wrapsComponent){return t}u=s.target;s.state={};if(h){if(u.beforeLayout){u.beforeLayout()}if(!l&&(q=u.ownerCt)){l=s.context.items[q.el.id]}if(l){s.ownerCtContext=l;s.isBoxParent=u.ownerLayout.isItemBoxParent(s)}else{s.isTopLevel=true}s.frameBodyContext=s.getEl("frameBody")}else{l=s.ownerCtContext;s.isTopLevel=!l;e=s.children;for(o=0,m=e.length;o0);if(j){s.widthModel=s.heightModel=null;b=u.getSizeModel(l&&l.widthModel.pairsByHeightOrdinal[l.heightModel.ordinal]);if(h){s.sizeModel=b}s.widthModel=b.width;s.heightModel=b.height}else{if(a){s.recoverProp("x",a,d);s.recoverProp("y",a,d);if(s.widthModel.calculated){s.recoverProp("width",a,d)}if(s.heightModel.calculated){s.recoverProp("height",a,d)}}}if(a&&p&&p.manageMargins){s.recoverProp("margin-top",a,d);s.recoverProp("margin-right",a,d);s.recoverProp("margin-bottom",a,d);s.recoverProp("margin-left",a,d)}if(c){k=c.heightModel;r=c.widthModel;if(r&&k&&g&&v){if(g.shrinkWrap&&v.shrinkWrap){if(r.constrainedMax&&k.constrainedMin){k=null}}}if(r){s.widthModel=r}if(k){s.heightModel=k}if(c.state){Ext.apply(s.state,c.state)}}return t},initContinue:function(d){var e=this,c=e.ownerCtContext,b=e.widthModel,a;if(d){if(c&&b.shrinkWrap){a=c.isBoxParent?c:c.boxParent;if(a){a.addBoxChild(e)}}else{if(b.natural){e.boxParent=c}}}return d},initDone:function(b,g,a,h){var d=this,c=d.props,e=d.state;if(g){c.componentChildrenDone=true}if(a){c.containerChildrenDone=true}if(h){c.containerLayoutDone=true}if(d.boxChildren&&d.boxChildren.length&&d.widthModel.shrinkWrap){d.el.setWidth(10000);e.blocks=(e.blocks||0)+1}},initAnimation:function(){var b=this,c=b.target,a=b.ownerCtContext;if(a&&a.isTopLevel){b.animatePolicy=c.ownerLayout.getAnimatePolicy(b)}else{if(!a&&c.isCollapsingOrExpanding&&c.animCollapse){b.animatePolicy=c.componentLayout.getAnimatePolicy(b)}}if(b.animatePolicy){b.context.queueAnimation(b)}},noFraming:{left:0,top:0,right:0,bottom:0,width:0,height:0},addCls:function(a){this.getClassList().addMany(a)},removeCls:function(a){this.getClassList().removeMany(a)},addBlock:function(b,d,e){var c=this,g=c[b]||(c[b]={}),a=g[e]||(g[e]={});if(!a[d.id]){a[d.id]=d;++d.blockCount;++c.context.blockCount}},addBoxChild:function(d){var c=this,b,a=d.widthModel;d.boxParent=this;d.measuresBox=a.shrinkWrap?d.hasRawContent:a.natural;if(d.measuresBox){b=c.boxChildren;if(b){b.push(d)}else{c.boxChildren=[d]}}},addTrigger:function(g,h){var e=this,a=h?"domTriggers":"triggers",i=e[a]||(e[a]={}),b=e.context,d=b.currentLayout,c=i[g]||(i[g]={});if(!c[d.id]){c[d.id]=d;++d.triggerCount;c=b.triggers[h?"dom":"data"];(c[d.id]||(c[d.id]=[])).push({item:this,prop:g});if(e.props[g]!==undefined){if(!h||!(e.dirty&&(g in e.dirty))){++d.firedTriggers}}}},boxChildMeasured:function(){var b=this,c=b.state,a=(c.boxesMeasured=(c.boxesMeasured||0)+1);if(a==b.boxChildren.length){c.clearBoxWidth=1;++b.context.progressCount;b.markDirty()}},borderNames:["border-top-width","border-right-width","border-bottom-width","border-left-width"],marginNames:["margin-top","margin-right","margin-bottom","margin-left"],paddingNames:["padding-top","padding-right","padding-bottom","padding-left"],trblNames:["top","right","bottom","left"],cacheMissHandlers:{borderInfo:function(a){var b=a.getStyles(a.borderNames,a.trblNames);b.width=b.left+b.right;b.height=b.top+b.bottom;return b},marginInfo:function(a){var b=a.getStyles(a.marginNames,a.trblNames);b.width=b.left+b.right;b.height=b.top+b.bottom;return b},paddingInfo:function(b){var a=b.frameBodyContext||b,c=a.getStyles(b.paddingNames,b.trblNames);c.width=c.left+c.right;c.height=c.top+c.bottom;return c}},checkCache:function(a){return this.cacheMissHandlers[a](this)},clearAllBlocks:function(a){var c=this[a],b;if(c){for(b in c){this.clearBlocks(a,b)}}},clearBlocks:function(c,g){var h=this[c],b=h&&h[g],d,e,a;if(b){delete h[g];d=this.context;for(a in b){e=b[a];--d.blockCount;if(!--e.blockCount&&!e.pending&&!e.done){d.queueLayout(e)}}}},block:function(a,b){this.addBlock("blocks",a,b)},domBlock:function(a,b){this.addBlock("domBlocks",a,b)},fireTriggers:function(b,g){var h=this[b],d=h&&h[g],c=this.context,e,a;if(d){for(a in d){e=d[a];++e.firedTriggers;if(!e.done&&!e.blockCount&&!e.pending){c.queueLayout(e)}}}},flush:function(){var b=this,a=b.dirty,c=b.state,d=b.el;b.dirtyCount=0;if(b.classList&&b.classList.dirty){b.classList.flush()}if("attributes" in b){d.set(b.attributes);delete b.attributes}if("innerHTML" in b){d.innerHTML=b.innerHTML;delete b.innerHTML}if(c&&c.clearBoxWidth){c.clearBoxWidth=0;b.el.setStyle("width",null);if(!--c.blocks){b.context.queueItemLayouts(b)}}if(a){delete b.dirty;b.writeProps(a,true)}},flushAnimations:function(){var o=this,c=o.lastBox,l,n,e,h,g,d,i,m,k,a,b;if(c){l=o.target;n=l.layout&&l.layout.animate;if(n){e=Ext.isNumber(n)?n:n.duration}h=Ext.Object.getKeys(o.animatePolicy);g=Ext.apply({},{from:{},to:{},duration:e||Ext.fx.Anim.prototype.duration},n);for(d=0,i=0,m=h.length;i0||p>0)){if(!C.frameBodyContext){z=C.paddingInfo.width;o=C.paddingInfo.height}if(t){t=v(parseInt(t,10)-(C.borderInfo.width+z),0);i.width=t+"px";++h}if(p){p=v(parseInt(p,10)-(C.borderInfo.height+o),0);i.height=p+"px";++h}}if(C.wrapsComponent&&Ext.isIE9&&Ext.isStrict){if((g=t!==undefined&&C.hasOverflowY)||(a=p!==undefined&&C.hasOverflowX)){s=C.isAbsolute;if(s===undefined){s=false;q=C.target.getTargetEl();w=q.getStyle("position");if(w=="absolute"){w=q.getStyle("box-sizing");s=(w=="border-box")}C.isAbsolute=s}if(s){u=Ext.getScrollbarSize();if(g){t=parseInt(t,10)+u.width;i.width=t+"px";++h}if(a){p=parseInt(p,10)+u.height;i.height=p+"px";++h}}}}if(h){c.setStyle(i)}}},function(){var c={dom:true,parseInt:true,suffix:"px"},b={dom:true},a={dom:false};this.prototype.styleInfo={childrenDone:a,componentChildrenDone:a,containerChildrenDone:a,containerLayoutDone:a,displayed:a,done:a,x:a,y:a,columnWidthsDone:a,left:c,top:c,right:c,bottom:c,width:c,height:c,"border-top-width":c,"border-right-width":c,"border-bottom-width":c,"border-left-width":c,"margin-top":c,"margin-right":c,"margin-bottom":c,"margin-left":c,"padding-top":c,"padding-right":c,"padding-bottom":c,"padding-left":c,"line-height":b,display:b}});Ext.define("Ext.layout.Context",{requires:["Ext.util.Queue","Ext.layout.ContextItem","Ext.layout.Layout","Ext.fx.Anim","Ext.fx.Manager"],remainingLayouts:0,state:0,constructor:function(a){var b=this;Ext.apply(b,a);b.items={};b.layouts={};b.blockCount=0;b.cycleCount=0;b.flushCount=0;b.calcCount=0;b.animateQueue=b.newQueue();b.completionQueue=b.newQueue();b.finalizeQueue=b.newQueue();b.finishQueue=b.newQueue();b.flushQueue=b.newQueue();b.invalidateData={};b.layoutQueue=b.newQueue();b.invalidQueue=[];b.triggers={data:{},dom:{}}},callLayout:function(b,a){this.currentLayout=b;b[a](this.getCmp(b.owner))},cancelComponent:function(j,a,m){var p=this,h=j,l=!j.isComponent,b=l?h.length:1,d,c,o,n,g,s,q,r,t,e;for(d=0;d0},runLayout:function(b){var a=this,c=a.getCmp(b.owner);b.pending=false;if(c.state.blocks){return}b.done=true;++b.calcCount;++a.calcCount;b.calculate(c);if(b.done){a.layoutDone(b);if(b.completeLayout){a.queueCompletion(b)}if(b.finalizeLayout){a.queueFinalize(b)}}else{if(!b.pending&&!b.invalid&&!(b.blockCount+b.triggerCount-b.firedTriggers)){a.queueLayout(b)}}},setItemSize:function(h,g,b){var d=h,a=1,c,e;if(h.isComposite){d=h.elements;a=d.length;h=d[0]}else{if(!h.dom&&!h.el){a=d.length;h=d[0]}}for(e=0;epanel:not([collapsed])");g=c.length;for(d=0;dpanel:not([collapsed])");if(c.length===1){g.expand()}}else{if(g){g.expand()}}a.deferLayouts=b;e.processing=false}},onComponentShow:function(a){this.onComponentExpand(a)}});Ext.define("Ext.resizer.Splitter",{extend:"Ext.Component",requires:["Ext.XTemplate"],uses:["Ext.resizer.SplitterTracker"],alias:"widget.splitter",childEls:["collapseEl"],renderTpl:['','
     
    ',"
    "],baseCls:Ext.baseCSSPrefix+"splitter",collapsedClsInternal:Ext.baseCSSPrefix+"splitter-collapsed",canResize:true,collapsible:false,collapseOnDblClick:true,defaultSplitMin:40,defaultSplitMax:1000,collapseTarget:"next",horizontal:false,vertical:false,getTrackerConfig:function(){return{xclass:"Ext.resizer.SplitterTracker",el:this.el,splitter:this}},beforeRender:function(){var d=this,e=d.getCollapseTarget(),g=d.getCollapseDirection(),c=d.vertical,b=c?"width":"height",h=c?"height":"width",a;d.callParent();if(!d.hasOwnProperty(h)){d[h]="100%"}if(!d.hasOwnProperty(b)){d[b]=5}if(e.collapsed){d.addCls(d.collapsedClsInternal)}a=d.baseCls+"-"+d.orientation;d.addCls(a);if(!d.canResize){d.addCls(a+"-noresize")}Ext.applyIf(d.renderData,{collapseDir:g,collapsible:d.collapsible||e.collapsible})},onRender:function(){var a=this;a.callParent(arguments);if(a.performCollapse!==false){if(a.renderData.collapsible){a.mon(a.collapseEl,"click",a.toggleTargetCmp,a)}if(a.collapseOnDblClick){a.mon(a.el,"dblclick",a.toggleTargetCmp,a)}}a.mon(a.getCollapseTarget(),{collapse:a.onTargetCollapse,expand:a.onTargetExpand,scope:a});a.el.unselectable();if(a.canResize){a.tracker=Ext.create(a.getTrackerConfig());a.relayEvents(a.tracker,["beforedragstart","dragstart","dragend"])}},getCollapseDirection:function(){var g=this,c=g.collapseDirection,e,a,b,d;if(!c){e=g.collapseTarget;if(e.isComponent){c=e.collapseDirection}if(!c){d=g.ownerCt.layout.type;if(e.isComponent){b=g.ownerCt.items;a=Number(b.indexOf(e)==b.indexOf(g)-1)<<1|Number(d=="hbox")}else{a=Number(g.collapseTarget=="prev")<<1|Number(d=="hbox")}c=["bottom","right","top","left"][a]}g.collapseDirection=c}g.orientation=(c=="top"||c=="bottom")?"horizontal":"vertical";g[g.orientation]=true;return c},getCollapseTarget:function(){var a=this;return a.collapseTarget.isComponent?a.collapseTarget:a.collapseTarget=="prev"?a.previousSibling():a.nextSibling()},onTargetCollapse:function(a){this.el.addCls([this.collapsedClsInternal,this.collapsedCls])},onTargetExpand:function(a){this.el.removeCls([this.collapsedClsInternal,this.collapsedCls])},toggleTargetCmp:function(d,b){var c=this.getCollapseTarget(),g=c.placeholder,a;if(g&&!g.hidden){a=true}else{a=!c.hidden}if(a){if(c.collapsed){c.expand()}else{if(c.collapseDirection){c.collapse()}else{c.collapse(this.renderData.collapseDir)}}}},setSize:function(){var a=this;a.callParent(arguments);if(Ext.isIE&&a.el){a.el.repaint()}},beforeDestroy:function(){Ext.destroy(this.tracker);this.callParent()}});Ext.define("Ext.resizer.BorderSplitter",{extend:"Ext.resizer.Splitter",uses:["Ext.resizer.BorderSplitterTracker"],alias:"widget.bordersplitter",collapseTarget:null,getTrackerConfig:function(){var a=this.callParent();a.xclass="Ext.resizer.BorderSplitterTracker";return a}});Ext.define("Ext.layout.container.Border",{alias:"layout.border",extend:"Ext.layout.container.Container",requires:["Ext.resizer.BorderSplitter","Ext.Component","Ext.fx.Anim"],alternateClassName:"Ext.layout.BorderLayout",targetCls:Ext.baseCSSPrefix+"border-layout-ct",itemCls:[Ext.baseCSSPrefix+"border-item",Ext.baseCSSPrefix+"box-item"],type:"border",padding:undefined,percentageRe:/(\d+)%/,axisProps:{horz:{borderBegin:"west",borderEnd:"east",horizontal:true,posProp:"x",sizeProp:"width",sizePropCap:"Width"},vert:{borderBegin:"north",borderEnd:"south",horizontal:false,posProp:"y",sizeProp:"height",sizePropCap:"Height"}},centerRegion:null,collapseDirections:{north:"top",south:"bottom",east:"right",west:"left"},manageMargins:true,panelCollapseAnimate:true,panelCollapseMode:"placeholder",regionWeights:{north:20,south:10,center:0,west:-10,east:-20},beginAxis:function(m,b,w){var u=this,c=u.axisProps[w],r=!c.horizontal,l=c.sizeProp,p=0,a=m.childItems,g=a.length,t,q,o,h,s,e,k,n,d,v,j;for(q=0;q',"{%this.renderBody(out,values)%}",'
    ',"","{%this.renderPadder(out,values)%}"],getItemSizePolicy:function(a){if(a.columnWidth){return this.columnWidthSizePolicy}return this.autoSizePolicy},beginLayout:function(){this.callParent(arguments);this.innerCt.dom.style.width=""},calculate:function(c){var a=this,d=a.getContainerSize(c),b=c.state;if(b.calculatedColumns||(b.calculatedColumns=a.calculateColumns(c))){if(a.calculateHeights(c)){a.calculateOverflow(c,d);return}}a.done=false},calculateColumns:function(d){var m=this,a=m.getContainerSize(d),o=d.getEl("innerCt",m),l=d.childItems,j=l.length,b=0,g,n,e,c,h,k;if(!d.heightModel.shrinkWrap&&!d.targetContext.hasProp("height")){return false}if(!a.gotWidth){d.targetContext.block(m,"width");g=true}else{n=a.width;o.setWidth(n)}for(e=0;e',renderTpl:['',"{%this.renderBody(out,values)%}","
    ","{%this.renderPadder(out,values)%}"],getRenderData:function(){var a=this.callParent();a.tableCls=this.tableCls;return a},calculate:function(e){var d=this,h=d.getContainerSize(e,true),a,g,b=0,c;if(h.gotWidth){this.callParent(arguments);a=d.formTable.dom.offsetWidth;g=e.childItems;for(c=g.length;b',"{text}","",'target="{hrefTarget}" hidefocus="true" unselectable="on">','','style="margin-right: 17px;" >{text}','',"",""],maskOnDisable:false,activate:function(){var a=this;if(!a.activated&&a.canActivate&&a.rendered&&!a.isDisabled()&&a.isVisible()){a.el.addCls(a.activeCls);a.focus();a.activated=true;a.fireEvent("activate",a)}},getFocusEl:function(){return this.itemEl},deactivate:function(){var a=this;if(a.activated){a.el.removeCls(a.activeCls);a.blur();a.hideMenu();a.activated=false;a.fireEvent("deactivate",a)}},deferExpandMenu:function(){var a=this;if(a.activated&&(!a.menu.rendered||!a.menu.isVisible())){a.parentMenu.activeChild=a.menu;a.menu.parentItem=a;a.menu.parentMenu=a.menu.ownerCt=a.parentMenu;a.menu.showBy(a,a.menuAlign)}},deferHideMenu:function(){if(this.menu.isVisible()){this.menu.hide()}},cancelDeferHide:function(){clearTimeout(this.hideMenuTimer)},deferHideParentMenus:function(){var a;Ext.menu.Manager.hideAll();if(!Ext.Element.getActiveElement()){a=this.up(":not([hidden])");if(a){a.focus()}}},expandMenu:function(a){var b=this;if(b.menu){b.cancelDeferHide();if(a===0){b.deferExpandMenu()}else{b.expandMenuTimer=Ext.defer(b.deferExpandMenu,Ext.isNumber(a)?a:b.menuExpandDelay,b)}}},getRefItems:function(a){var c=this.menu,b;if(c){b=c.getRefItems(a);b.unshift(c)}return b||[]},hideMenu:function(a){var b=this;if(b.menu){clearTimeout(b.expandMenuTimer);b.hideMenuTimer=Ext.defer(b.deferHideMenu,Ext.isNumber(a)?a:b.menuHideDelay,b)}},initComponent:function(){var b=this,c=Ext.baseCSSPrefix,a=[c+"menu-item"],d;b.addEvents("activate","click","deactivate");if(b.plain){a.push(c+"menu-item-plain")}if(b.cls){a.push(b.cls)}b.cls=a.join(" ");if(b.menu){d=b.menu;delete b.menu;b.setMenu(d)}b.callParent(arguments)},onClick:function(b){var a=this;if(!a.href){b.stopEvent()}if(a.disabled){return}if(a.hideOnClick){a.deferHideParentMenusTimer=Ext.defer(a.deferHideParentMenus,a.clickHideDelay,a)}Ext.callback(a.handler,a.scope||a,[a,b]);a.fireEvent("click",a,b);if(!a.hideOnClick){a.focus()}},onRemoved:function(){var a=this;if(a.activated&&a.parentMenu.activeItem===a){a.parentMenu.deactivateActiveItem()}a.callParent(arguments);delete a.parentMenu;delete a.ownerButton},beforeDestroy:function(){var a=this;if(a.rendered){a.clearTip()}a.callParent()},onDestroy:function(){var a=this;clearTimeout(a.expandMenuTimer);a.cancelDeferHide();clearTimeout(a.deferHideParentMenusTimer);a.setMenu(null);a.callParent(arguments)},beforeRender:function(){var b=this,d=Ext.BLANK_IMAGE_URL,a,c;b.callParent();if(b.iconAlign==="right"){a=b.checkChangeDisabled?b.disabledCls:"";c=Ext.baseCSSPrefix+"menu-item-icon-right "+b.iconCls}else{a=b.iconCls+(b.checkChangeDisabled?" "+b.disabledCls:"");c=b.menu?b.arrowCls:""}Ext.applyIf(b.renderData,{href:b.href||"#",hrefTarget:b.hrefTarget,icon:b.icon||d,iconCls:a,plain:b.plain,text:b.text,arrowCls:c,blank:d})},onRender:function(){var a=this;a.callParent(arguments);if(a.tooltip){a.setTooltip(a.tooltip,true)}},setMenu:function(e,d){var c=this,b=c.menu,a=c.arrowEl;if(b){delete b.parentItem;delete b.parentMenu;delete b.ownerCt;delete b.ownerItem;if(d===true||(d!==false&&c.destroyMenu)){Ext.destroy(b)}}if(e){c.menu=Ext.menu.Manager.get(e);c.menu.ownerItem=c}else{c.menu=null}if(c.rendered&&!c.destroying&&a){a[c.menu?"addCls":"removeCls"](c.arrowCls)}},setHandler:function(b,a){this.handler=b||null;this.scope=a},setIcon:function(b){var a=this.iconEl;if(a){a.src=b||Ext.BLANK_IMAGE_URL}this.icon=b},setIconCls:function(b){var c=this,a=c.iconEl;if(a){if(c.iconCls){a.removeCls(c.iconCls)}if(b){a.addCls(b)}}c.iconCls=b},setText:function(c){var b=this,a=b.textEl||b.el;b.text=c;if(b.rendered){a.update(c||"");b.ownerCt.updateLayout()}},getTipAttr:function(){return this.tooltipType=="qtip"?"data-qtip":"title"},clearTip:function(){if(Ext.isObject(this.tooltip)){Ext.tip.QuickTipManager.unregister(this.itemEl)}},setTooltip:function(c,a){var b=this;if(b.rendered){if(!a){b.clearTip()}if(Ext.isObject(c)){Ext.tip.QuickTipManager.register(Ext.apply({target:b.itemEl.id},c));b.tooltip=c}else{b.itemEl.dom.setAttribute(b.getTipAttr(),c)}}else{b.tooltip=c}return b}});Ext.define("Ext.menu.CheckItem",{extend:"Ext.menu.Item",alias:"widget.menucheckitem",checkedCls:Ext.baseCSSPrefix+"menu-item-checked",uncheckedCls:Ext.baseCSSPrefix+"menu-item-unchecked",groupCls:Ext.baseCSSPrefix+"menu-group-icon",hideOnClick:false,checkChangeDisabled:false,afterRender:function(){var a=this;a.callParent();a.checked=!a.checked;a.setChecked(!a.checked,true);if(a.checkChangeDisabled){a.disableCheckChange()}},initComponent:function(){var a=this;a.addEvents("beforecheckchange","checkchange");a.callParent(arguments);Ext.menu.Manager.registerCheckable(a);if(a.group){if(!a.iconCls){a.iconCls=a.groupCls}if(a.initialConfig.hideOnClick!==false){a.hideOnClick=true}}},disableCheckChange:function(){var b=this,a=b.iconEl;if(a){a.addCls(b.disabledCls)}if(!(Ext.isIE9&&Ext.isStrict)&&b.rendered){b.el.repaint()}b.checkChangeDisabled=true},enableCheckChange:function(){var b=this,a=b.iconEl;if(a){a.removeCls(b.disabledCls)}b.checkChangeDisabled=false},onClick:function(b){var a=this;if(!a.disabled&&!a.checkChangeDisabled&&!(a.checked&&a.group)){a.setChecked(!a.checked)}this.callParent([b])},onDestroy:function(){Ext.menu.Manager.unregisterCheckable(this);this.callParent(arguments)},setChecked:function(c,a){var b=this;if(b.checked!==c&&(a||b.fireEvent("beforecheckchange",b,c)!==false)){if(b.el){b.el[c?"addCls":"removeCls"](b.checkedCls)[!c?"addCls":"removeCls"](b.uncheckedCls)}b.checked=c;Ext.menu.Manager.onCheckChange(b,c);if(!a){Ext.callback(b.checkHandler,b.scope,[b,c]);b.fireEvent("checkchange",b,c)}}}});Ext.define("Ext.menu.KeyNav",{extend:"Ext.util.KeyNav",requires:["Ext.FocusManager"],constructor:function(b){var a=this;a.menu=b;a.callParent([b.el,{down:a.down,enter:a.enter,esc:a.escape,left:a.left,right:a.right,space:a.enter,tab:a.tab,up:a.up}])},down:function(b){var a=this,c=a.menu.focusedItem;if(c&&b.getKey()==Ext.EventObject.DOWN&&a.isWhitelisted(c)){return true}a.focusNextItem(1)},enter:function(b){var c=this.menu,a=c.focusedItem;if(c.activeItem){c.onClick(b)}else{if(a&&a.isFormField){return true}}},escape:function(a){Ext.menu.Manager.hideAll()},focusNextItem:function(g){var h=this.menu,b=h.items,d=h.focusedItem,c=d?b.indexOf(d):-1,a=c+g,e;while(a!=c){if(a<0){a=b.length-1}else{if(a>=b.length){a=0}}e=b.getAt(a);if(h.canActivateItem(e)){h.setActiveItem(e);break}a+=g}},isWhitelisted:function(a){return Ext.FocusManager.isWhitelisted(a)},left:function(b){var c=this.menu,d=c.focusedItem,a=c.activeItem;if(d&&this.isWhitelisted(d)){return true}c.hide();if(c.parentMenu){c.parentMenu.focus()}},right:function(c){var d=this.menu,g=d.focusedItem,a=d.activeItem,b;if(g&&this.isWhitelisted(g)){return true}if(a){b=d.activeItem.menu;if(b){a.expandMenu(0);Ext.defer(function(){b.setActiveItem(b.items.getAt(0))},25)}}},tab:function(b){var a=this;if(b.shiftKey){a.up(b)}else{a.down(b)}},up:function(b){var a=this,c=a.menu.focusedItem;if(c&&b.getKey()==Ext.EventObject.UP&&a.isWhitelisted(c)){return true}a.focusNextItem(-1)}});Ext.define("Ext.menu.Separator",{extend:"Ext.menu.Item",alias:"widget.menuseparator",canActivate:false,focusable:false,hideOnClick:false,plain:true,separatorCls:Ext.baseCSSPrefix+"menu-item-separator",text:" ",beforeRender:function(a,c){var b=this;b.callParent();b.addCls(b.separatorCls)}});Ext.define("Ext.menu.Menu",{extend:"Ext.panel.Panel",alias:"widget.menu",requires:["Ext.layout.container.Fit","Ext.layout.container.VBox","Ext.menu.CheckItem","Ext.menu.Item","Ext.menu.KeyNav","Ext.menu.Manager","Ext.menu.Separator"],enableKeyNav:true,allowOtherMenus:false,ariaRole:"menu",defaultAlign:"tl-bl?",floating:true,constrain:true,hidden:true,hideMode:"visibility",ignoreParentClicks:false,isMenu:true,showSeparator:true,minWidth:undefined,defaultMinWidth:120,initComponent:function(){var b=this,d=Ext.baseCSSPrefix,a=[d+"menu"],c=b.bodyCls?[b.bodyCls]:[],e=b.floating!==false;b.addEvents("click","mouseenter","mouseleave","mouseover");Ext.menu.Manager.register(b);if(b.plain){a.push(d+"menu-plain")}b.cls=a.join(" ");c.unshift(d+"menu-body");b.bodyCls=c.join(" ");if(!b.layout){b.layout={type:"vbox",align:"stretchmax",overflowHandler:"Scroller"}}if(e&&b.minWidth===undefined){b.minWidth=b.defaultMinWidth}if(!e&&b.initialConfig.hidden!==true){b.hidden=false}b.callParent(arguments);b.on("beforeshow",function(){var g=!!b.items.length;if(g&&b.rendered){b.el.setStyle("visibility",null)}return g})},beforeRender:function(){this.callParent(arguments);if(!this.getSizeModel().width.shrinkWrap){this.layout.align="stretch"}},onBoxReady:function(){var a=this,b;a.callParent(arguments);if(a.showSeparator){b={cls:Ext.baseCSSPrefix+"menu-icon-separator",html:" "};if((!Ext.isStrict&&Ext.isIE)||Ext.isIE6){b.style="height:"+a.el.getHeight()+"px"}a.iconSepEl=a.layout.getElementTarget().insertFirst(b)}a.mon(a.el,{click:a.onClick,mouseover:a.onMouseOver,scope:a});a.mouseMonitor=a.el.monitorMouseLeave(100,a.onMouseLeave,a);if(a.enableKeyNav){a.keyNav=new Ext.menu.KeyNav(a)}},getBubbleTarget:function(){return this.parentMenu||this.ownerButton||this.callParent(arguments)},canActivateItem:function(a){return a&&!a.isDisabled()&&a.isVisible()&&(a.canActivate||a.getXTypes().indexOf("menuitem")<0)},deactivateActiveItem:function(b){var c=this,d=c.activeItem,a=c.focusedItem;if(d){d.deactivate();if(!d.activated){delete c.activeItem}}if(a&&b){a.blur();delete c.focusedItem}},getFocusEl:function(){return this.focusedItem||this.el},hide:function(){this.deactivateActiveItem(true);this.callParent(arguments)},getItemFromEvent:function(a){return this.getChildByElement(a.getTarget())},lookupComponent:function(b){var a=this;if(typeof b=="string"){b=a.lookupItemFromString(b)}else{if(Ext.isObject(b)){b=a.lookupItemFromObject(b)}}b.minWidth=b.minWidth||a.minWidth;return b},lookupItemFromObject:function(c){var b=this,d=Ext.baseCSSPrefix,a;if(!c.isComponent){if(!c.xtype){c=Ext.create("Ext.menu."+(Ext.isBoolean(c.checked)?"Check":"")+"Item",c)}else{c=Ext.ComponentManager.create(c,c.xtype)}}if(c.isMenuItem){c.parentMenu=b}if(!c.isMenuItem&&!c.dock){a=[d+"menu-item",d+"menu-item-cmp"];if(!b.plain&&(c.indent===true||c.iconCls==="no-icon")){a.push(d+"menu-item-indent")}if(c.rendered){c.el.addCls(a)}else{c.cls=(c.cls?c.cls:"")+" "+a.join(" ")}}return c},lookupItemFromString:function(a){return(a=="separator"||a=="-")?new Ext.menu.Separator():new Ext.menu.Item({canActivate:false,hideOnClick:false,plain:true,text:a})},onClick:function(c){var b=this,a;if(b.disabled){c.stopEvent();return}a=(c.type==="click")?b.getItemFromEvent(c):b.activeItem;if(a&&a.isMenuItem){if(!a.menu||!b.ignoreParentClicks){a.onClick(c)}else{c.stopEvent()}}if(!a||a.disabled){a=undefined}b.fireEvent("click",b,a,c)},onDestroy:function(){var a=this;Ext.menu.Manager.unregister(a);delete a.parentMenu;delete a.ownerButton;if(a.rendered){a.el.un(a.mouseMonitor);Ext.destroy(a.keyNav);delete a.keyNav}a.callParent(arguments)},onMouseLeave:function(b){var a=this;a.deactivateActiveItem();if(a.disabled){return}a.fireEvent("mouseleave",a,b)},onMouseOver:function(h){var g=this,i=h.getRelatedTarget(),b=!g.el.contains(i),d=g.getItemFromEvent(h),c=g.parentMenu,a=g.parentItem;if(b&&c){c.setActiveItem(a);a.cancelDeferHide();c.mouseMonitor.mouseenter()}if(g.disabled){return}if(d&&!d.activated){g.setActiveItem(d);if(d.activated&&d.expandMenu){d.expandMenu()}}if(b){g.fireEvent("mouseenter",g,h)}g.fireEvent("mouseover",g,d,h)},setActiveItem:function(b){var a=this;if(b&&(b!=a.activeItem)){a.deactivateActiveItem();if(a.canActivateItem(b)){if(b.activate){b.activate();if(b.activated){a.activeItem=b;a.focusedItem=b;a.focus()}}else{b.focus();a.focusedItem=b}}b.el.scrollIntoView(a.layout.getRenderTarget())}},showBy:function(b,d,c){var a=this;if(a.floating&&b){a.show();a.setPagePosition(a.el.getAlignToXY(b.el||b,d||a.defaultAlign,c));a.setVerticalPosition()}return a},show:function(){var d=this,c,b,a,e=d.maxHeight;if(!d.rendered){d.doAutoRender()}if(d.floating){c=Ext.fly(d.el.getScopeParent());b=c.getViewSize().height;d.maxHeight=Math.min(e||b,b)}a=d.callParent(arguments);d.maxHeight=e;return a},afterComponentLayout:function(c,a,b,e){var d=this;d.callParent(arguments);if(d.showSeparator){d.iconSepEl.setHeight(d.componentLayout.lastComponentSize.contentHeight)}},setVerticalPosition:function(){var d=this,g,e=d.el.getY(),h=e,j=d.getHeight(),b=Ext.Element.getViewportHeight().height,c=Ext.fly(d.el.getScopeParent()),a=c.getViewSize().height,i=e-c.getScroll().top;c=null;if(d.floating){g=d.maxHeight?d.maxHeight:a-i;if(j>a){h=e-i}else{if(gb){h=b-j}}}}d.el.setY(h)}});Ext.define("Ext.menu.ColorPicker",{extend:"Ext.menu.Menu",alias:"widget.colormenu",requires:["Ext.picker.Color"],hideOnClick:true,pickerId:null,initComponent:function(){var b=this,a=Ext.apply({},b.initialConfig);delete a.listeners;Ext.apply(b,{plain:true,showSeparator:false,items:Ext.applyIf({cls:Ext.baseCSSPrefix+"menu-color-item",id:b.pickerId,xtype:"colorpicker"},a)});b.callParent(arguments);b.picker=b.down("colorpicker");b.relayEvents(b.picker,["select"]);if(b.hideOnClick){b.on("select",b.hidePickerOnSelect,b)}},hidePickerOnSelect:function(){Ext.menu.Manager.hideAll()}});Ext.define("Ext.menu.DatePicker",{extend:"Ext.menu.Menu",alias:"widget.datemenu",requires:["Ext.picker.Date"],hideOnClick:true,pickerId:null,initComponent:function(){var b=this,a=Ext.apply({},b.initialConfig);delete a.listeners;Ext.apply(b,{showSeparator:false,plain:true,border:false,bodyPadding:0,items:Ext.applyIf({cls:Ext.baseCSSPrefix+"menu-date-item",id:b.pickerId,xtype:"datepicker"},a)});b.callParent(arguments);b.picker=b.down("datepicker");b.relayEvents(b.picker,["select"]);if(b.hideOnClick){b.on("select",b.hidePickerOnSelect,b)}},hidePickerOnSelect:function(){Ext.menu.Manager.hideAll()}});Ext.define("Ext.panel.Tool",{extend:"Ext.Component",requires:["Ext.tip.QuickTipManager"],alias:"widget.tool",baseCls:Ext.baseCSSPrefix+"tool",disabledCls:Ext.baseCSSPrefix+"tool-disabled",toolPressedCls:Ext.baseCSSPrefix+"tool-pressed",toolOverCls:Ext.baseCSSPrefix+"tool-over",ariaRole:"button",childEls:["toolEl"],renderTpl:[''],tooltipType:"qtip",stopEvent:true,height:15,width:15,initComponent:function(){var a=this;a.addEvents("click");a.type=a.type||a.id;Ext.applyIf(a.renderData,{baseCls:a.baseCls,blank:Ext.BLANK_IMAGE_URL,type:a.type});a.tooltip=a.tooltip||a.qtip;a.callParent();a.on({element:"toolEl",click:a.onClick,mousedown:a.onMouseDown,mouseover:a.onMouseOver,mouseout:a.onMouseOut,scope:a})},afterRender:function(){var b=this,a;b.callParent(arguments);if(b.tooltip){if(Ext.isObject(b.tooltip)){Ext.tip.QuickTipManager.register(Ext.apply({target:b.id},b.tooltip))}else{a=b.tooltipType=="qtip"?"data-qtip":"title";b.toolEl.dom.setAttribute(a,b.tooltip)}}},getFocusEl:function(){return this.el},setType:function(a){var b=this;b.type=a;if(b.rendered){b.toolEl.dom.className=b.baseCls+"-"+a}return b},bindTo:function(a){this.owner=a},onClick:function(d,c){var b=this,a;if(b.disabled){return false}a=b.owner||b.ownerCt;b.el.removeCls(b.toolPressedCls);b.el.removeCls(b.toolOverCls);if(b.stopEvent!==false){d.stopEvent()}Ext.callback(b.handler,b.scope||b,[d,c,a,b]);b.fireEvent("click",b,d);return true},onDestroy:function(){if(Ext.isObject(this.tooltip)){Ext.tip.QuickTipManager.unregister(this.id)}this.callParent()},onMouseDown:function(){if(this.disabled){return false}this.el.addCls(this.toolPressedCls)},onMouseOver:function(){if(this.disabled){return false}this.el.addCls(this.toolOverCls)},onMouseOut:function(){this.el.removeCls(this.toolOverCls)}});Ext.define("Ext.resizer.SplitterTracker",{extend:"Ext.dd.DragTracker",requires:["Ext.util.Region"],enabled:true,overlayCls:Ext.baseCSSPrefix+"resizable-overlay",createDragOverlay:function(){var a;a=this.overlay=Ext.getBody().createChild({cls:this.overlayCls,html:" "});a.unselectable();a.setSize(Ext.Element.getViewWidth(true),Ext.Element.getViewHeight(true));a.show()},getPrevCmp:function(){var a=this.getSplitter();return a.previousSibling()},getNextCmp:function(){var a=this.getSplitter();return a.nextSibling()},onBeforeStart:function(i){var d=this,g=d.getPrevCmp(),a=d.getNextCmp(),c=d.getSplitter().collapseEl,h=i.getTarget(),b;if(c&&h===d.getSplitter().collapseEl.dom){return false}if(a.collapsed||g.collapsed){return false}d.prevBox=g.getEl().getBox();d.nextBox=a.getEl().getBox();d.constrainTo=b=d.calculateConstrainRegion();if(!b){return false}d.createDragOverlay();return b},onStart:function(b){var a=this.getSplitter();a.addCls(a.baseCls+"-active")},calculateConstrainRegion:function(){var g=this,a=g.getSplitter(),h=a.getWidth(),i=a.defaultSplitMin,b=a.orientation,d=g.prevBox,j=g.getPrevCmp(),c=g.nextBox,e=g.getNextCmp(),l,k;if(b==="vertical"){l=new Ext.util.Region(d.y,(j.maxWidth?d.x+j.maxWidth:c.right-(e.minWidth||i))+h,d.bottom,d.x+(j.minWidth||i));k=new Ext.util.Region(c.y,c.right-(e.minWidth||i),c.bottom,(e.maxWidth?c.right-e.maxWidth:d.x+(d.minWidth||i))-h)}else{l=new Ext.util.Region(d.y+(j.minHeight||i),d.right,(j.maxHeight?d.y+j.maxHeight:c.bottom-(e.minHeight||i))+h,d.x);k=new Ext.util.Region((e.maxHeight?c.bottom-e.maxHeight:d.y+(j.minHeight||i))-h,c.right,c.bottom-(e.minHeight||i),c.x)}return l.intersect(k)},performResize:function(m,g){var o=this,a=o.getSplitter(),h=a.orientation,p=o.getPrevCmp(),n=o.getNextCmp(),b=a.ownerCt,k=b.query(">[flex]"),l=k.length,j=0,d,q,c=0;for(;jq){v=q}}if(v-m<2){return null}n=new Ext.util.Region(p,x,k,g);y.constraintAdjusters[a.collapseDirection](n,m,v,a);y.dragInfo={minRange:m,maxRange:v,targetSize:b};return n},constraintAdjusters:{left:function(c,a,b,d){c[0]=c.x=c.left=c.right+a;c.right+=b+d.getWidth()},top:function(c,a,b,d){c[1]=c.y=c.top=c.bottom+a;c.bottom+=b+d.getHeight()},bottom:function(c,a,b,d){c.bottom=c.top-a;c.top-=b+d.getHeight()},right:function(c,a,b,d){c.right=c.left-a;c.left-=b+d.getWidth()}},onBeforeStart:function(h){var k=this,b=k.splitter,a=b.collapseTarget,m=b.neighbors,d=k.getSplitter().collapseEl,j=h.getTarget(),c=m.length,g,l;if(d&&j===b.collapseEl.dom){return false}if(a.collapsed){return false}for(g=0;gc){d.minWidth=d.el.getWidth()*a}else{d.minHeight=d.el.getHeight()*c}}if(d.throttle){e=Ext.Function.createThrottled(function(){Ext.resizer.ResizeTracker.prototype.resize.apply(d,arguments)},d.throttle);d.resize=function(h,i,g){if(g){Ext.resizer.ResizeTracker.prototype.resize.apply(d,arguments)}else{e.apply(null,arguments)}}}},onBeforeStart:function(a){this.startBox=this.el.getBox()},getDynamicTarget:function(){var a=this,b=a.target;if(a.dynamic){return b}else{if(!a.proxy){a.proxy=a.createProxy(b)}}a.proxy.show();return a.proxy},createProxy:function(c){var b,a=this.proxyCls,d;if(c.isComponent){b=c.getProxy().addCls(a)}else{d=Ext.getBody();if(Ext.scopeResetCSS){d=Ext.getBody().createChild({cls:Ext.resetCls})}b=c.createProxy({tag:"div",cls:a,id:c.id+"-rzproxy"},d)}b.removeCls(Ext.baseCSSPrefix+"proxy-el");return b},onStart:function(a){this.activeResizeHandle=Ext.get(this.getDragTarget().id);if(!this.dynamic){this.resize(this.startBox,{horizontal:"none",vertical:"none"})}},onDrag:function(a){if(this.dynamic||this.proxy){this.updateDimensions(a)}},updateDimensions:function(s,m){var t=this,c=t.activeResizeHandle.region,g=t.getOffset(t.constrainTo?"dragTarget":null),k=t.startBox,h,p=0,u=0,j,q,a=0,w=0,v,n=g[0]<0?"right":"left",r=g[1]<0?"down":"up",i,b,d,o,l;switch(c){case"south":u=g[1];b=2;break;case"north":u=-g[1];w=-u;b=2;break;case"east":p=g[0];b=1;break;case"west":p=-g[0];a=-p;b=1;break;case"northeast":u=-g[1];w=-u;p=g[0];i=[k.x,k.y+k.height];b=3;break;case"southeast":u=g[1];p=g[0];i=[k.x,k.y];b=3;break;case"southwest":p=-g[0];a=-p;u=g[1];i=[k.x+k.width,k.y];b=3;break;case"northwest":u=-g[1];w=-u;p=-g[0];a=-p;i=[k.x+k.width,k.y+k.height];b=3;break}d={width:k.width+p,height:k.height+u,x:k.x+a,y:k.y+w};j=Ext.Number.snap(d.width,t.widthIncrement);q=Ext.Number.snap(d.height,t.heightIncrement);if(j!=d.width||q!=d.height){switch(c){case"northeast":d.y-=q-d.height;break;case"north":d.y-=q-d.height;break;case"southwest":d.x-=j-d.width;break;case"west":d.x-=j-d.width;break;case"northwest":d.x-=j-d.width;d.y-=q-d.height}d.width=j;d.height=q}if(d.widtht.maxWidth){d.width=Ext.Number.constrain(d.width,t.minWidth,t.maxWidth);if(a){d.x=k.x+(k.width-d.width)}}else{t.lastX=d.x}if(d.heightt.maxHeight){d.height=Ext.Number.constrain(d.height,t.minHeight,t.maxHeight);if(w){d.y=k.y+(k.height-d.height)}}else{t.lastY=d.y}if(t.preserveRatio||s.shiftKey){h=t.startBox.width/t.startBox.height;o=Math.min(Math.max(t.minHeight,d.width/h),t.maxHeight);l=Math.min(Math.max(t.minWidth,d.height*h),t.maxWidth);if(b==1){d.height=o}else{if(b==2){d.width=l}else{v=Math.abs(i[0]-this.lastXY[0])/Math.abs(i[1]-this.lastXY[1]);if(v>h){d.height=o}else{d.width=l}if(c=="northeast"){d.y=k.y-(d.height-k.height)}else{if(c=="northwest"){d.y=k.y-(d.height-k.height);d.x=k.x-(d.width-k.width)}else{if(c=="southwest"){d.x=k.x-(d.width-k.width)}}}}}}if(u===0){r="none"}if(p===0){n="none"}t.resize(d,{horizontal:n,vertical:r},m)},getResizeTarget:function(a){return a?this.target:this.getDynamicTarget()},resize:function(b,d,a){var c=this.getResizeTarget(a);if(c.isComponent){c.setSize(b.width,b.height);if(c.floating){c.setPagePosition(b.x,b.y)}}else{c.setBox(b)}c=this.originalTarget;if(c&&(this.dynamic||a)){if(c.isComponent){c.setSize(b.width,b.height);if(c.floating){c.setPagePosition(b.x,b.y)}}else{c.setBox(b)}}},onEnd:function(a){this.updateDimensions(a,true);if(this.proxy){this.proxy.hide()}}});Ext.define("Ext.resizer.Resizer",{mixins:{observable:"Ext.util.Observable"},uses:["Ext.resizer.ResizeTracker","Ext.Component"],alternateClassName:"Ext.Resizable",handleCls:Ext.baseCSSPrefix+"resizable-handle",pinnedCls:Ext.baseCSSPrefix+"resizable-pinned",overCls:Ext.baseCSSPrefix+"resizable-over",wrapCls:Ext.baseCSSPrefix+"resizable-wrap",dynamic:true,handles:"s e se",height:null,width:null,heightIncrement:0,widthIncrement:0,minHeight:20,minWidth:20,maxHeight:10000,maxWidth:10000,pinned:false,preserveRatio:false,transparent:false,possiblePositions:{n:"north",s:"south",e:"east",w:"west",se:"southeast",sw:"southwest",nw:"northwest",ne:"northeast"},constructor:function(b){var k=this,j,o,q,p=k.handles,c,n,g,d=0,m,l=[],h,a,e;k.addEvents("beforeresize","resizedrag","resize");if(Ext.isString(b)||Ext.isElement(b)||b.dom){j=b;b=arguments[1]||{};b.target=j}k.mixins.observable.constructor.call(k,b);j=k.target;if(j){if(j.isComponent){k.el=j.getEl();if(j.minWidth){k.minWidth=j.minWidth}if(j.minHeight){k.minHeight=j.minHeight}if(j.maxWidth){k.maxWidth=j.maxWidth}if(j.maxHeight){k.maxHeight=j.maxHeight}if(j.floating){if(!k.hasOwnProperty("handles")){k.handles="n ne e se s sw w nw"}}}else{k.el=k.target=Ext.get(j)}}else{k.target=k.el=Ext.get(k.el)}q=k.el.dom.tagName.toUpperCase();if(q=="TEXTAREA"||q=="IMG"||q=="TABLE"){k.originalTarget=k.target;o=k.el;e=o.getBox();k.target=k.el=k.el.wrap({cls:k.wrapCls,id:k.el.id+"-rzwrap",style:o.getStyles("margin-top","margin-bottom")});k.el.setPositioning(o.getPositioning());o.clearPositioning();k.el.setBox(e);o.setStyle("position","absolute")}k.el.position();if(k.pinned){k.el.addCls(k.pinnedCls)}k.resizeTracker=new Ext.resizer.ResizeTracker({disabled:k.disabled,target:k.target,constrainTo:k.constrainTo,overCls:k.overCls,throttle:k.throttle,originalTarget:k.originalTarget,delegate:"."+k.handleCls,dynamic:k.dynamic,preserveRatio:k.preserveRatio,heightIncrement:k.heightIncrement,widthIncrement:k.widthIncrement,minHeight:k.minHeight,maxHeight:k.maxHeight,minWidth:k.minWidth,maxWidth:k.maxWidth});k.resizeTracker.on({mousedown:k.onBeforeResize,drag:k.onResize,dragend:k.onResizeEnd,scope:k});if(k.handles=="all"){k.handles="n s e w ne nw se sw"}p=k.handles=k.handles.split(/ |\s*?[,;]\s*?/);n=k.possiblePositions;g=p.length;c=k.handleCls+" "+(k.target.isComponent?(k.target.baseCls+"-handle "):"")+k.handleCls+"-";h=Ext.isIE6?' style="height:'+k.el.getHeight()+'px"':"";for(;d")}}Ext.DomHelper.append(k.el,l.join(""));for(d=0;d-1){this.doSelect(a.view.getStore().getAt(a.row),false,b)}},onCellDeselect:function(a,b){if(a&&a.row!==undefined){this.doDeselect(a.view.getStore().getAt(a.row),b)}},onSelectChange:function(b,e,d,h){var g=this,i,c,a;if(e){i=g.nextSelection;c="select"}else{i=g.lastSelection||g.noSelection;c="deselect"}a=i.view||g.primaryView;if((d||g.fireEvent("before"+c,g,b,i.row,i.column))!==false&&h()!==false){if(e){a.onCellSelect(i);a.onCellFocus(i)}else{a.onCellDeselect(i);delete g.selection}if(!d){g.fireEvent(c,g,b,i.row,i.column)}}},onKeyTab:function(d,b){var c=this,a=c.getCurrentPosition().view.editingPlugin;if(a&&c.wasEditing){c.onEditorTab(a,d)}else{c.move(d.shiftKey?"left":"right",d)}},onEditorTab:function(b,g){var c=this,d=g.shiftKey?"left":"right",a=c.move(d,g);if(a){if(b.startEditByPosition(a)){c.wasEditing=false}else{c.wasEditing=true;if(!a.columnHeader.dataIndex){c.onEditorTab(b,g)}}}},refresh:function(){var b=this.getCurrentPosition(),a;if(b&&(a=this.store.indexOf(this.selected.last()))!==-1){b.row=a}},onColumnMove:function(d,e,b,c){var a=d.up("tablepanel");if(a){this.onViewRefresh(a.view)}},onViewRefresh:function(b){var c=this,g=c.getCurrentPosition(),e=b.headerCt,a,d;if(g&&g.view===b){a=g.record;d=g.columnHeader;if(!d.isDescendantOf(e)){d=e.queryById(d.id)||e.down('[text="'+d.text+'"]')||e.down('[dataIndex="'+d.dataIndex+'"]')}if(d&&(b.store.indexOfId(a.getId())!==-1)){c.setCurrentPosition({row:a,column:d,view:b})}}},selectByPosition:function(a){this.setCurrentPosition(a)}},function(){var a=this.prototype.Selection=function(b){this.model=b};a.prototype.setPosition=function(e,c){var d=this,b;if(arguments.length===1){if(e.view){d.view=b=e.view}c=e.column;e=e.row}if(!b){d.view=b=d.model.primaryView}if(typeof e==="number"){d.row=e;d.record=b.store.getAt(e)}else{if(e.isModel){d.record=e;d.row=b.indexOf(e)}else{if(e.tagName){d.record=b.getRecord(e);d.row=b.indexOf(d.record)}}}if(typeof c==="number"){d.column=c;d.columnHeader=b.getHeaderAtIndex(c)}else{d.columnHeader=c;d.column=c.getIndex()}return d}});Ext.define("Ext.selection.RowModel",{extend:"Ext.selection.Model",alias:"selection.rowmodel",requires:["Ext.util.KeyNav"],deltaScroll:5,enableKeyNav:true,ignoreRightMouseSelection:false,constructor:function(){this.addEvents("beforedeselect","beforeselect","deselect","select");this.views=[];this.callParent(arguments)},bindComponent:function(a){var b=this;b.views=b.views||[];b.views.push(a);b.bindStore(a.getStore(),true);a.on({itemmousedown:b.onRowMouseDown,scope:b});if(b.enableKeyNav){b.initKeyNav(a)}},initKeyNav:function(a){var b=this;if(!a.rendered){a.on("render",Ext.Function.bind(b.initKeyNav,b,[a],0),b,{single:true});return}a.el.set({tabIndex:-1});b.keyNav=new Ext.util.KeyNav({target:a,ignoreInputFields:true,eventName:"itemkeydown",processEvent:function(d,c,h,e,g){g.record=c;g.recordIndex=e;return g},up:b.onKeyUp,down:b.onKeyDown,right:b.onKeyRight,left:b.onKeyLeft,pageDown:b.onKeyPageDown,pageUp:b.onKeyPageUp,home:b.onKeyHome,end:b.onKeyEnd,space:b.onKeySpace,enter:b.onKeyEnter,scope:b})},getRowsVisible:function(){var e=false,a=this.views[0],d=a.getNode(0),b,c;if(d){b=Ext.fly(d).getHeight();c=a.el.getHeight();e=Math.floor(c/b)}return e},onKeyEnd:function(c){var b=this,a=b.store.getAt(b.store.getCount()-1);if(a){if(c.shiftKey){b.selectRange(a,b.lastFocused||0);b.setLastFocused(a)}else{if(c.ctrlKey){b.setLastFocused(a)}else{b.doSelect(a)}}}},onKeyHome:function(b){var a=this,c=a.store.getAt(0);if(c){if(b.shiftKey){a.selectRange(c,a.lastFocused||0);a.setLastFocused(c)}else{if(b.ctrlKey){a.setLastFocused(c)}else{a.doSelect(c,false)}}}},onKeyPageUp:function(g){var d=this,h=d.getRowsVisible(),b,c,a;if(h){b=g.recordIndex;c=b-h;if(c<0){c=0}a=d.store.getAt(c);if(g.shiftKey){d.selectRange(a,g.record,g.ctrlKey,"up");d.setLastFocused(a)}else{if(g.ctrlKey){g.preventDefault();d.setLastFocused(a)}else{d.doSelect(a)}}}},onKeyPageDown:function(g){var c=this,h=c.getRowsVisible(),a,d,b;if(h){a=g.recordIndex;d=a+h;if(d>=c.store.getCount()){d=c.store.getCount()-1}b=c.store.getAt(d);if(g.shiftKey){c.selectRange(b,g.record,g.ctrlKey,"down");c.setLastFocused(b)}else{if(g.ctrlKey){g.preventDefault();c.setLastFocused(b)}else{c.doSelect(b)}}}},onKeySpace:function(c){var b=this,a=b.lastFocused;if(a){if(b.isSelected(a)){b.doDeselect(a,false)}else{b.doSelect(a,true)}}},onKeyEnter:Ext.emptyFn,onKeyUp:function(d){var c=this,a=c.store.indexOf(c.lastFocused),b;if(a>0){b=c.store.getAt(a-1);if(d.shiftKey&&c.lastFocused){if(c.isSelected(c.lastFocused)&&c.isSelected(b)){c.doDeselect(c.lastFocused,true);c.setLastFocused(b)}else{if(!c.isSelected(c.lastFocused)){c.doSelect(c.lastFocused,true);c.doSelect(b,true)}else{c.doSelect(b,true)}}}else{if(d.ctrlKey){c.setLastFocused(b)}else{c.doSelect(b)}}}},onKeyDown:function(d){var c=this,a=c.store.indexOf(c.lastFocused),b;if(a+1 '},onRowMouseDown:function(b,a,h,d,i){b.el.focus();var g=this,c=i.getTarget("."+Ext.baseCSSPrefix+"grid-row-checker"),j;if(!g.allowRightMouseSelection(i)){return}if(g.checkOnly&&!c){return}if(c){j=g.getSelectionMode();if(j!=="SINGLE"){g.setSelectionMode("SIMPLE")}g.selectWithEvent(a,i);g.setSelectionMode(j)}else{g.selectWithEvent(a,i)}},onSelectChange:function(){var a=this;a.callParent(arguments);a.updateHeaderState()},onStoreLoad:function(){var a=this;a.callParent(arguments);a.updateHeaderState()},updateHeaderState:function(){var a=this.selected.getCount()===this.store.getCount();this.toggleUiHeader(a)}});Ext.define("Ext.selection.TreeModel",{extend:"Ext.selection.RowModel",alias:"selection.treemodel",pruneRemoved:false,onKeyRight:function(d,b){var c=this.getLastFocused(),a=this.view;if(c){if(c.isExpanded()){this.onKeyDown(d,b)}else{if(c.isExpandable()){a.expand(c)}}}},onKeyLeft:function(i,d){var h=this.getLastFocused(),c=this.view,b=c.getSelectionModel(),a,g;if(h){a=h.parentNode;if(h.isExpanded()){c.collapse(h)}else{if(a&&!a.isRoot()){if(i.shiftKey){b.selectRange(a,h,i.ctrlKey,"up");b.setLastFocused(a)}else{if(i.ctrlKey){b.setLastFocused(a)}else{b.select(a)}}}}}},onKeySpace:function(b,a){this.toggleCheck(b)},onKeyEnter:function(b,a){this.toggleCheck(b)},toggleCheck:function(b){b.stopEvent();var a=this.getLastSelected();if(a){this.view.onCheckChange(a)}}});Ext.define("Ext.slider.Thumb",{requires:["Ext.dd.DragTracker","Ext.util.Format"],topZIndex:10000,constructor:function(a){var b=this;Ext.apply(b,a||{},{cls:Ext.baseCSSPrefix+"slider-thumb",constrain:false});b.callParent([a])},render:function(){var a=this;a.el=a.slider.innerEl.insertFirst(a.getElConfig());a.onRender()},onRender:function(){if(this.disabled){this.disable()}this.initEvents()},getElConfig:function(){var c=this,b=c.slider,a={};a[b.vertical?"bottom":"left"]=b.calculateThumbPosition(b.normalizeValue(c.value))+"%";return{style:a,id:this.id,cls:this.cls}},move:function(c,b){var d=this.el,a=this.slider.vertical?"bottom":"left",g,e;c+="%";if(!b){d.dom.style[a]=c}else{g={};g[a]=c;if(!Ext.supports.GetPositionPercentage){e={};e[a]=d.dom.style[a]}new Ext.fx.Anim({target:d,duration:350,from:e,to:g})}},bringToFront:function(){this.el.setStyle("zIndex",this.topZIndex)},sendToBack:function(){this.el.setStyle("zIndex","")},enable:function(){var a=this;a.disabled=false;if(a.el){a.el.removeCls(a.slider.disabledCls)}},disable:function(){var a=this;a.disabled=true;if(a.el){a.el.addCls(a.slider.disabledCls)}},initEvents:function(){var b=this,a=b.el;b.tracker=new Ext.dd.DragTracker({onBeforeStart:Ext.Function.bind(b.onBeforeDragStart,b),onStart:Ext.Function.bind(b.onDragStart,b),onDrag:Ext.Function.bind(b.onDrag,b),onEnd:Ext.Function.bind(b.onDragEnd,b),tolerance:3,autoStart:300,overCls:Ext.baseCSSPrefix+"slider-thumb-over"});b.tracker.initEl(a)},onBeforeDragStart:function(a){if(this.disabled){return false}else{this.slider.promoteThumb(this);return true}},onDragStart:function(b){var a=this;a.el.addCls(Ext.baseCSSPrefix+"slider-thumb-drag");a.dragging=a.slider.dragging=true;a.dragStartValue=a.value;a.slider.fireEvent("dragstart",a.slider,b,a)},onDrag:function(h){var d=this,c=d.slider,b=d.index,g=d.getValueFromTracker(),a,i;if(g!==undefined){if(d.constrain){a=c.thumbs[b+1];i=c.thumbs[b-1];if(i!==undefined&&g<=i.value){g=i.value}if(a!==undefined&&g>=a.value){g=a.value}}c.setValue(b,g,false);c.fireEvent("drag",c,h,d)}},getValueFromTracker:function(){var a=this.slider,b=a.getTrackpoint(this.tracker.getXY());if(b!==undefined){return a.reversePixelValue(b)}},onDragEnd:function(d){var b=this,a=b.slider,c=b.value;b.el.removeCls(Ext.baseCSSPrefix+"slider-thumb-drag");b.dragging=a.dragging=false;a.fireEvent("dragend",a,d);if(b.dragStartValue!=c){a.fireEvent("changecomplete",a,c,b)}},destroy:function(){Ext.destroy(this.tracker)}});Ext.define("Ext.slider.Tip",{extend:"Ext.tip.Tip",minWidth:10,alias:"widget.slidertip",offsets:null,align:null,position:"",defaultVerticalPosition:"left",defaultHorizontalPosition:"top",isSliderTip:true,init:function(c){var b=this,d,a;if(!b.position){b.position=c.vertical?b.defaultVerticalPosition:b.defaultHorizontalPosition}switch(b.position){case"top":a=[0,-10];d="b-t?";break;case"bottom":a=[0,10];d="t-b?";break;case"left":a=[-10,0];d="r-l?";break;case"right":a=[10,0];d="l-r?"}if(!b.align){b.align=d}if(!b.offsets){b.offsets=a}c.on({scope:b,dragstart:b.onSlide,drag:b.onSlide,dragend:b.hide,destroy:b.destroy})},onSlide:function(c,d,a){var b=this;b.show();b.update(b.getText(a));b.el.alignTo(a.el,b.align,b.offsets)},getText:function(a){return String(a.value)}});Ext.define("Ext.slider.Multi",{extend:"Ext.form.field.Base",alias:"widget.multislider",alternateClassName:"Ext.slider.MultiSlider",requires:["Ext.slider.Thumb","Ext.slider.Tip","Ext.Number","Ext.util.Format","Ext.Template","Ext.layout.component.field.Slider"],childEls:["endEl","innerEl"],fieldSubTpl:['
    ','","
    ",{renderThumbs:function(g,e){var j=e.$comp,h=0,c=j.thumbs,b=c.length,d,a;for(;hg?g:c.value}e.syncThumbs()},setValue:function(c,g,b,e){var d=this,a=d.thumbs[c];g=d.normalizeValue(g);if(g!==a.value&&d.fireEvent("beforechange",d,g,a.value,a)!==false){a.value=g;if(d.rendered){d.inputEl.set({"aria-valuenow":g,"aria-valuetext":g});a.move(d.calculateThumbPosition(g),Ext.isDefined(b)?b!==false:d.animate);d.fireEvent("change",d,g,a);d.checkDirty();if(e){d.fireEvent("changecomplete",d,g,a)}}}},calculateThumbPosition:function(a){return(a-this.minValue)/(this.maxValue-this.minValue)*100},getRatio:function(){var b=this,a=this.vertical?this.innerEl.getHeight():this.innerEl.getWidth(),c=this.maxValue-this.minValue;return c===0?a:(a/c)},reversePixelValue:function(a){return this.minValue+(a/this.getRatio())},reversePercentageValue:function(a){return this.minValue+(this.maxValue-this.minValue)*(a/100)},onDisable:function(){var g=this,d=0,b=g.thumbs,a=b.length,c,e,h;g.callParent();for(;d {baseCls}-body-{ui} {parent.baseCls}-body-{parent.ui}-{.}" style="{bodyStyle}">',"{%this.renderContainer(out,values)%}","",'
    {baseCls}-strip-{ui} {parent.baseCls}-strip-{parent.ui}-{.}">
    '],initComponent:function(){var a=this;if(a.plain){a.setUI(a.ui+"-plain")}a.addClsWithUI(a.dock);a.addEvents("change");a.callParent(arguments);a.layout.align=(a.orientation=="vertical")?"left":"top";a.layout.overflowHandler=new Ext.layout.container.boxOverflow.Scroller(a.layout);a.remove(a.titleCmp);delete a.titleCmp;Ext.apply(a.renderData,{bodyCls:a.bodyCls})},getLayout:function(){var a=this;a.layout.type=(a.dock==="top"||a.dock==="bottom")?"hbox":"vbox";return a.callParent(arguments)},onAdd:function(a){a.position=this.dock;this.callParent(arguments)},onRemove:function(a){var b=this;if(a===b.previousTab){b.previousTab=null}b.callParent(arguments)},afterComponentLayout:function(a){this.callParent(arguments);this.strip.setWidth(a)},onClick:function(g,d){var c=this,i=g.getTarget("."+Ext.tab.Tab.prototype.baseCls),b=i&&Ext.getCmp(i.id),h=c.tabPanel,a=b&&b.closeEl&&(d===b.closeEl.dom);if(a){g.preventDefault()}if(b&&b.isDisabled&&!b.isDisabled()){if(b.closable&&a){b.onCloseClick()}else{if(h){h.setActiveTab(b.card)}else{c.setActiveTab(b)}b.focus()}}},closeTab:function(c){var d=this,b=c.card,e=d.tabPanel,a;if(b&&b.fireEvent("beforeclose",b)===false){return false}a=d.findNextActivatable(c);Ext.suspendLayouts();if(e&&b){delete c.ownerCt;b.fireEvent("close",b);e.remove(b);if(!e.getComponent(b)){c.fireClose();d.remove(c)}else{c.ownerCt=d;Ext.resumeLayouts(true);return false}}if(a){if(e){e.setActiveTab(a.card)}else{d.setActiveTab(a)}a.focus()}Ext.resumeLayouts(true)},findNextActivatable:function(a){var b=this;if(a.active&&b.items.getCount()>1){return(b.previousTab&&b.previousTab!==a&&!b.previousTab.disabled)?b.previousTab:(a.next("tab[disabled=false]")||a.prev("tab[disabled=false]"))}},setActiveTab:function(a){var b=this;if(!a.disabled&&a!==b.activeTab){if(b.activeTab){if(b.activeTab.isDestroyed){b.previousTab=null}else{b.previousTab=b.activeTab;b.activeTab.deactivate()}}a.activate();b.activeTab=a;b.fireEvent("change",b,a,a.card);b.on({afterlayout:b.afterTabActivate,scope:b,single:true});b.updateLayout()}},afterTabActivate:function(){this.layout.overflowHandler.scrollToItem(this.activeTab)}});Ext.define("Ext.tab.Panel",{extend:"Ext.panel.Panel",alias:"widget.tabpanel",alternateClassName:["Ext.TabPanel"],requires:["Ext.layout.container.Card","Ext.tab.Bar"],tabPosition:"top",removePanelHeader:true,plain:false,itemCls:Ext.baseCSSPrefix+"tabpanel-child",minTabWidth:undefined,maxTabWidth:undefined,deferredRender:true,initComponent:function(){var c=this,b=[].concat(c.dockedItems||[]),a=c.activeTab||(c.activeTab=0);c.layout=new Ext.layout.container.Card(Ext.apply({owner:c,deferredRender:c.deferredRender,itemCls:c.itemCls,activeItem:c.activeTab},c.layout));c.tabBar=new Ext.tab.Bar(Ext.apply({dock:c.tabPosition,plain:c.plain,border:c.border,cardLayout:c.layout,tabPanel:c},c.tabBar));b.push(c.tabBar);c.dockedItems=b;c.addEvents("beforetabchange","tabchange");c.callParent(arguments);c.activeTab=c.getComponent(a);if(c.activeTab){c.activeTab.tab.activate(true);c.tabBar.activeTab=c.activeTab.tab}},setActiveTab:function(a){var c=this,b;a=c.getComponent(a);if(a){b=c.getActiveTab();if(b!==a&&c.fireEvent("beforetabchange",c,a,b)===false){return false}if(!a.isComponent){Ext.suspendLayouts();a=c.add(a);Ext.resumeLayouts()}c.activeTab=a;Ext.suspendLayouts();c.layout.setActiveItem(a);a=c.activeTab=c.layout.getActiveItem();if(a&&a!==b){c.tabBar.setActiveTab(a.tab);Ext.resumeLayouts(true);if(b!==a){c.fireEvent("tabchange",c,a,b)}}else{Ext.resumeLayouts(true)}return a}},getActiveTab:function(){var b=this,a=b.getComponent(b.activeTab);if(a&&b.items.indexOf(a)!=-1){b.activeTab=a}else{b.activeTab=null}return b.activeTab},getTabBar:function(){return this.tabBar},onAdd:function(e,c){var d=this,b=e.tabConfig||{},a={xtype:"tab",card:e,disabled:e.disabled,closable:e.closable,hidden:e.hidden&&!e.hiddenByLayout,tooltip:e.tooltip,tabBar:d.tabBar,closeText:e.closeText};b=Ext.applyIf(b,a);e.tab=d.tabBar.insert(c,b);e.on({scope:d,enable:d.onItemEnable,disable:d.onItemDisable,beforeshow:d.onItemBeforeShow,iconchange:d.onItemIconChange,iconclschange:d.onItemIconClsChange,titlechange:d.onItemTitleChange});if(e.isPanel){if(d.removePanelHeader){if(e.rendered){if(e.header){e.header.hide()}}else{e.header=false}}if(e.isPanel&&d.border){e.setBorder(false)}}},onItemEnable:function(a){a.tab.enable()},onItemDisable:function(a){a.tab.disable()},onItemBeforeShow:function(a){if(a!==this.activeTab){this.setActiveTab(a);return false}},onItemIconChange:function(b,a){b.tab.setIcon(a)},onItemIconClsChange:function(b,a){b.tab.setIconCls(a)},onItemTitleChange:function(a,b){a.tab.setText(b)},doRemove:function(d,b){var c=this,a;if(c.destroying||c.items.getCount()==1){c.activeTab=null}else{if((a=c.tabBar.items.indexOf(c.tabBar.findNextActivatable(d.tab)))!==-1){c.setActiveTab(a)}}this.callParent(arguments);delete d.tab.card;delete d.tab},onRemove:function(b,c){var a=this;b.un({scope:a,enable:a.onItemEnable,disable:a.onItemDisable,beforeshow:a.onItemBeforeShow});if(!a.destroying&&b.tab.ownerCt===a.tabBar){a.tabBar.remove(b.tab)}}});Ext.define("Ext.toolbar.Spacer",{extend:"Ext.Component",alias:"widget.tbspacer",alternateClassName:"Ext.Toolbar.Spacer",baseCls:Ext.baseCSSPrefix+"toolbar-spacer",focusable:false});Ext.define("Ext.tree.Column",{extend:"Ext.grid.column.Column",alias:"widget.treecolumn",tdCls:Ext.baseCSSPrefix+"grid-cell-treecolumn",treePrefix:Ext.baseCSSPrefix+"tree-",elbowPrefix:Ext.baseCSSPrefix+"tree-elbow-",expanderCls:Ext.baseCSSPrefix+"tree-expander",imgText:'',checkboxText:'',initComponent:function(){var a=this;a.origRenderer=a.renderer||a.defaultRenderer;a.origScope=a.scope||window;a.renderer=a.treeRenderer;a.scope=a;a.callParent()},treeRenderer:function(l,n,c,b,k,e,j){var s=this,r=[],p=Ext.String.format,u=c.getDepth(),q=s.treePrefix,d=s.elbowPrefix,m=s.expanderCls,i=s.imgText,v=s.checkboxText,h=s.origRenderer.apply(s.origScope,arguments),g=Ext.BLANK_IMAGE_URL,o=c.get("href"),t=c.get("hrefTarget"),a=c.get("cls");while(c){if(!c.isRoot()||(c.isRoot()&&j.rootVisible)){if(c.getDepth()===u){r.unshift(p(i,q+"icon "+q+"icon"+(c.get("icon")?"-inline ":(c.isLeaf()?"-leaf ":"-parent "))+(c.get("iconCls")||""),c.get("icon")||g));if(c.get("checked")!==null){r.unshift(p(v,(q+"checkbox")+(c.get("checked")?" "+q+"checkbox-checked":""),c.get("checked")?'aria-checked="true"':""));if(c.get("checked")){n.tdCls+=(" "+q+"checked")}}if(c.isLast()){if(c.isExpandable()){r.unshift(p(i,(d+"end-plus "+m),g))}else{r.unshift(p(i,(d+"end"),g))}}else{if(c.isExpandable()){r.unshift(p(i,(d+"plus "+m),g))}else{r.unshift(p(i,(q+"elbow"),g))}}}else{if(c.isLast()||c.getDepth()===0){r.unshift(p(i,(d+"empty"),g))}else{if(c.getDepth()!==0){r.unshift(p(i,(d+"line"),g))}}}}c=c.parentNode}if(o){r.push('',h,"")}else{r.push(h)}if(a){n.tdCls+=" "+a}return r.join("")},defaultRenderer:function(a){return a}});Ext.define("Ext.tree.View",{extend:"Ext.view.Table",alias:"widget.treeview",requires:["Ext.data.NodeStore"],loadingCls:Ext.baseCSSPrefix+"grid-tree-loading",expandedCls:Ext.baseCSSPrefix+"grid-tree-node-expanded",leafCls:Ext.baseCSSPrefix+"grid-tree-node-leaf",expanderSelector:"."+Ext.baseCSSPrefix+"tree-expander",checkboxSelector:"."+Ext.baseCSSPrefix+"tree-checkbox",expanderIconOverCls:Ext.baseCSSPrefix+"tree-expander-over",nodeAnimWrapCls:Ext.baseCSSPrefix+"tree-animator-wrap",blockRefresh:true,loadMask:false,rootVisible:true,deferInitialRefresh:false,expandDuration:250,collapseDuration:250,toggleOnDblClick:true,stripeRows:false,uiFields:["expanded","loaded","checked","expandable","leaf","icon","iconCls","loading","qtip","qtitle"],initComponent:function(){var a=this,b=a.panel.getStore();if(a.initialConfig.animate===undefined){a.animate=Ext.enableFx}a.store=new Ext.data.NodeStore({treeStore:b,recursive:true,rootVisible:a.rootVisible,listeners:{beforeexpand:a.onBeforeExpand,expand:a.onExpand,beforecollapse:a.onBeforeCollapse,collapse:a.onCollapse,write:a.onStoreWrite,datachanged:a.onStoreDataChanged,scope:a}});if(a.node){a.setRootNode(a.node)}a.animQueue={};a.animWraps={};a.addEvents("afteritemexpand","afteritemcollapse");a.callParent(arguments);a.on({element:"el",scope:a,delegate:a.expanderSelector,mouseover:a.onExpanderMouseOver,mouseout:a.onExpanderMouseOut});a.on({element:"el",scope:a,delegate:a.checkboxSelector,click:a.onCheckboxChange})},getMaskStore:function(){return this.panel.getStore()},afterComponentLayout:function(){this.callParent(arguments);var a=this.stretcher;if(a){a.setWidth((this.getWidth()-Ext.getScrollbarSize().width))}},processUIEvent:function(a){if(a.getTarget("."+this.nodeAnimWrapCls,this.el)){return false}return this.callParent(arguments)},onClear:function(){this.store.removeAll()},setRootNode:function(b){var a=this;a.store.setNode(b);a.node=b},onCheckboxChange:function(d,a){var c=this,b=d.getTarget(c.getItemSelector(),c.getTargetEl());if(b){c.onCheckChange(c.getRecord(b))}},onCheckChange:function(a){var b=a.get("checked");if(Ext.isBoolean(b)){b=!b;a.set("checked",b);this.fireEvent("checkchange",a,b)}},getChecked:function(){var a=[];this.node.cascadeBy(function(b){if(b.get("checked")){a.push(b)}});return a},isItemChecked:function(a){return a.get("checked")},createAnimWrap:function(j,k){var g="",e=this.panel.headerCt,b=e.getGridColumns(),h=0,l=b.length,m,d=this.getNode(j),a,c;for(;h'}c=Ext.get(d);a=c.insertSibling({tag:"tr",html:['','
    ','',g,"
    ","
    ",""].join("")},"after");return{record:j,node:d,el:a,expanding:false,collapsing:false,animating:false,animateEl:a.down("div"),targetEl:a.down("tbody")}},getAnimWrap:function(d,a){if(!this.animate){return null}var b=this.animWraps,c=b[d.internalId];if(a!==false){while(!c&&d){d=d.parentNode;if(d){c=b[d.internalId]}}}return c},doAdd:function(b,d,i){var j=this,g=d[0],l=g.parentNode,k=j.all.elements,n=0,e=j.getAnimWrap(l),m,c,h;if(!e||!e.expanding){return j.callParent(arguments)}l=e.record;m=e.targetEl;c=m.dom.childNodes;h=c.length-1;n=i-j.indexOf(l)-1;if(!h||n>=h){m.appendChild(b)}else{Ext.fly(c[n+1]).insertSibling(b,"before",true)}Ext.Array.insert(k,i,b);if(e.isAnimating){j.onExpand(l)}},beginBulkUpdate:function(){this.bulkUpdate=true},endBulkUpdate:function(){this.bulkUpdate=false},onRemove:function(e,a,b){var d=this,c=d.bulkUpdate;if(d.viewReady){d.doRemove(a,b);if(!c){d.updateIndexes(b)}if(d.store.getCount()===0){d.refresh()}if(!c){d.fireEvent("itemremove",a,b)}}},doRemove:function(a,c){var h=this,d=h.all,b=h.getAnimWrap(a),g=d.item(c),e=g?g.dom:null;if(!e||!b||!b.collapsing){return h.callParent(arguments)}b.targetEl.appendChild(e);d.removeElement(c)},onBeforeExpand:function(d,b,c){var e=this,a;if(!e.rendered||!e.animate){return}if(e.getNode(d)){a=e.getAnimWrap(d,false);if(!a){a=e.animWraps[d.internalId]=e.createAnimWrap(d);a.animateEl.setHeight(0)}else{if(a.collapsing){a.targetEl.select(e.itemSelector).remove()}}a.expanding=true;a.collapsing=false}},onExpand:function(i){var h=this,e=h.animQueue,a=i.getId(),c=h.getNode(i),g=c?h.indexOf(c):-1,d,b,j;if(h.singleExpand){h.ensureSingleExpand(i)}if(g===-1){return}d=h.getAnimWrap(i,false);if(!d){h.isExpandingOrCollapsing=false;h.fireEvent("afteritemexpand",i,g,c);return}b=d.animateEl;j=d.targetEl;b.stopAnimation();e[a]=true;b.slideIn("t",{duration:h.expandDuration,listeners:{scope:h,lastframe:function(){d.el.insertSibling(j.query(h.itemSelector),"before");d.el.remove();h.refreshSize();delete h.animWraps[d.record.internalId];delete e[a]}},callback:function(){h.isExpandingOrCollapsing=false;h.fireEvent("afteritemexpand",i,g,c)}});d.isAnimating=true},onBeforeCollapse:function(d,b,c){var e=this,a;if(!e.rendered||!e.animate){return}if(e.getNode(d)){a=e.getAnimWrap(d);if(!a){a=e.animWraps[d.internalId]=e.createAnimWrap(d,c)}else{if(a.expanding){a.targetEl.select(this.itemSelector).remove()}}a.expanding=false;a.collapsing=true}},onCollapse:function(i){var h=this,e=h.animQueue,a=i.getId(),c=h.getNode(i),g=c?h.indexOf(c):-1,d=h.getAnimWrap(i),b,j;if(g===-1){return}if(!d){h.isExpandingOrCollapsing=false;h.fireEvent("afteritemcollapse",i,g,c);return}b=d.animateEl;j=d.targetEl;e[a]=true;b.stopAnimation();b.slideOut("t",{duration:h.collapseDuration,listeners:{scope:h,lastframe:function(){d.el.remove();h.refreshSize();delete h.animWraps[d.record.internalId];delete e[a]}},callback:function(){h.isExpandingOrCollapsing=false;h.fireEvent("afteritemcollapse",i,g,c)}});d.isAnimating=true},isAnimating:function(a){return !!this.animQueue[a.getId()]},collectData:function(c){var g=this.callParent(arguments),e=g.rows,a=e.length,d=0,h,b;for(;d1){b.expandPath(h.join(a),d,a,function(m,l){var k=l;if(m&&l){l=l.findChild(d,e);if(l){b.getSelectionModel().select(l);Ext.callback(g,i||b,[true,l]);return}}Ext.callback(g,i||b,[false,k])},b)}else{c=b.getRootNode();if(c.getId()===e){b.getSelectionModel().select(c);Ext.callback(g,i||b,[true,c])}else{Ext.callback(g,i||b,[false,null])}}}});Ext.define("Ext.view.DragZone",{extend:"Ext.dd.DragZone",containerScroll:false,constructor:function(b){var e=this,a,d,c;Ext.apply(e,b);if(!e.ddGroup){e.ddGroup="view-dd-zone-"+e.view.id}a=e.view;d=a.ownerCt;if(d){c=d.getTargetEl().dom}else{c=a.el.dom.parentNode}e.callParent([c]);e.ddel=Ext.get(document.createElement("div"));e.ddel.addCls(Ext.baseCSSPrefix+"grid-dd-wrap")},init:function(c,a,b){this.initTarget(c,a,b);this.view.mon(this.view,{itemmousedown:this.onItemMouseDown,scope:this})},onValidDrop:function(b,a,c){this.callParent();b.el.focus()},onItemMouseDown:function(b,a,d,c,g){if(!this.isPreventDrag(g,a,d,c)){this.view.focus();this.handleMouseDown(g);if(b.getSelectionModel().selectionMode=="MULTI"&&!g.ctrlKey&&b.getSelectionModel().isSelected(a)){return false}}},isPreventDrag:function(a){return false},getDragData:function(c){var a=this.view,b=c.getTarget(a.getItemSelector());if(b){return{copy:a.copy||(a.allowCopy&&c.ctrlKey),event:new Ext.EventObjectImpl(c),view:a,ddel:this.ddel,item:b,records:a.getSelectionModel().getSelection(),fromPosition:Ext.fly(b).getXY()}}},onInitDrag:function(b,j){var g=this,h=g.dragData,d=h.view,a=d.getSelectionModel(),c=d.getRecord(h.item),i=h.event;if(!a.isSelected(c)){a.select(c,true)}h.records=a.getSelection();g.ddel.update(g.getDragText());g.proxy.update(g.ddel.dom);g.onStartDrag(b,j);return true},getDragText:function(){var a=this.dragData.records.length;return Ext.String.format(this.dragText,a,a==1?"":"s")},getRepairXY:function(b,a){return a?a.fromPosition:false}});Ext.define("Ext.tree.ViewDragZone",{extend:"Ext.view.DragZone",isPreventDrag:function(b,a){return(a.get("allowDrag")===false)||!!b.getTarget(this.view.expanderSelector)},afterRepair:function(){var h=this,a=h.view,i=a.selectedItemCls,b=h.dragData.records,g,e=b.length,c=Ext.fly,d;if(Ext.enableFx&&h.repairHighlight){for(g=0;g=i.top&&h<(i.top+d)){return"before"}else{if(!a&&(k||(h>=(i.bottom-d)&&h<=i.bottom))){return"after"}else{return"append"}}},isValidDropPoint:function(b,j,n,k,g){if(!b||!g.item){return false}var o=this.view,l=o.getRecord(b),d=g.records,a=d.length,m=d.length,c,h;if(!(l&&j&&a)){return false}for(c=0;c=0;--k){m=o[k].selectorText;if(m){m=m.split(",");h=m.length;for(g=0;g2)?a[2]:null,h=(i>3)?a[3]:"/",d=(i>4)?a[4]:null,g=(i>5)?a[5]:false;document.cookie=c+"="+escape(e)+((b===null)?"":("; expires="+b.toGMTString()))+((h===null)?"":("; path="+h))+((d===null)?"":("; domain="+d))+((g===true)?"; secure":"")},get:function(d){var b=d+"=",g=b.length,a=document.cookie.length,e=0,c=0;while(e=0?a.substr(b+1):null},setHash:function(d){var a=this,c=a.useTopWindow?window.top:window;try{c.location.hash=d}catch(b){}},doSave:function(){this.hiddenField.value=this.currentToken},handleStateChange:function(a){this.currentToken=a;this.fireEvent("change",a)},updateIFrame:function(b){var a='
    '+Ext.util.Format.htmlEncode(b)+"
    ",d;try{d=this.iframe.contentWindow.document;d.open();d.write(a);d.close();return true}catch(c){return false}},checkIFrame:function(){var d=this,b=d.iframe.contentWindow,e,c,a,g;if(!b||!b.document){Ext.Function.defer(this.checkIFrame,10,this);return}e=b.document;c=e.getElementById("state");a=c?c.innerText:null;g=d.getHash();Ext.TaskManager.start({run:function(){var k=b.document,j=k.getElementById("state"),h=j?j.innerText:null,i=d.getHash();if(h!==a){a=h;d.handleStateChange(h);d.setHash(h);g=h;d.doSave()}else{if(i!==g){g=i;d.updateIFrame(i)}}},interval:50,scope:d});d.ready=true;d.fireEvent("ready",d)},startUp:function(){var a=this,b;a.currentToken=a.hiddenField.value||this.getHash();if(a.oldIEMode){a.checkIFrame()}else{b=a.getHash();Ext.TaskManager.start({run:function(){var c=a.getHash();if(c!==b){b=c;a.handleStateChange(b);a.doSave()}},interval:50,scope:a});a.ready=true;a.fireEvent("ready",a)}},init:function(d,b){var c=this,a=Ext.DomHelper;if(c.ready){Ext.callback(d,b,[c]);return}if(!Ext.isReady){Ext.onReady(function(){c.init(d,b)});return}c.hiddenField=Ext.getDom(c.fieldId);if(!c.hiddenField){c.hiddenField=Ext.getBody().createChild({id:Ext.id(),tag:"form",cls:Ext.baseCSSPrefix+"hide-display",children:[{tag:"input",type:"hidden",id:c.fieldId}]},false,true).firstChild}if(c.oldIEMode){c.iframe=Ext.getDom(c.iframeId);if(!c.iframe){c.iframe=a.append(c.hiddenField.parentNode,{tag:"iframe",id:c.iframeId,src:Ext.SSL_SECURE_URL})}}c.addEvents("ready","change");if(d){c.on("ready",d,b,{single:true})}c.startUp()},add:function(a,c){var b=this;if(c!==false){if(b.getToken()===a){return true}}if(b.oldIEMode){return b.updateIFrame(a)}else{b.setHash(a);return true}},back:function(){window.history.go(-1)},forward:function(){window.history.go(1)},getToken:function(){return this.ready?this.currentToken:this.getHash()}});Ext.define("Ext.util.Point",{extend:"Ext.util.Region",statics:{fromEvent:function(a){a=(a.changedTouches&&a.changedTouches.length>0)?a.changedTouches[0]:a;return new this(a.pageX,a.pageY)}},constructor:function(a,b){this.callParent([b,a,b,a])},toString:function(){return"Point["+this.x+","+this.y+"]"},equals:function(a){return(this.x==a.x&&this.y==a.y)},isWithin:function(b,a){if(!Ext.isObject(a)){a={x:a,y:a}}return(this.x<=b.x+a.x&&this.x>=b.x-a.x&&this.y<=b.y+a.y&&this.y>=b.y-a.y)},roundedEquals:function(a){return(Math.round(this.x)==Math.round(a.x)&&Math.round(this.y)==Math.round(a.y))}},function(){this.prototype.translate=Ext.util.Region.prototype.translateBy});Ext.define("Ext.view.TableChunker",{singleton:true,requires:["Ext.XTemplate"],metaTableTpl:["{%if (this.openTableWrap)out.push(this.openTableWrap())%}",'',"",'','','',"","","{[this.openRows()]}","{row}",'',"{[this.embedFeature(values, parent, xindex, xcount)]}","","{[this.closeRows()]}","","
    ","{%if (this.closeTableWrap)out.push(this.closeTableWrap())%}"],constructor:function(){Ext.XTemplate.prototype.recurse=function(b,a){return this.apply(a?b[a]:b)}},embedFeature:function(b,d,a,e){var c="";if(!b.disabled){c=b.getFeatureTpl(b,d,a,e)}return c},embedFullWidth:function(b){var a='style="width:{fullWidth}px;';if(!b.rowCount){a+="height:1px;"}return a+'"'},openRows:function(){return''},closeRows:function(){return""},metaRowTpl:['','','','
    {{id}}
    ',"","
    ",""],firstOrLastCls:function(a,b){if(a===1){return Ext.view.Table.prototype.firstCls}else{if(a===b){return Ext.view.Table.prototype.lastCls}}},embedRowCls:function(){return"{rowCls}"},embedRowAttr:function(){return"{rowAttr}"},openTableWrap:undefined,closeTableWrap:undefined,getTableTpl:function(k,b){var j,h={openRows:this.openRows,closeRows:this.closeRows,embedFeature:this.embedFeature,embedFullWidth:this.embedFullWidth,openTableWrap:this.openTableWrap,closeTableWrap:this.closeTableWrap},g={},c=k.features||[],m=c.length,e=0,l={embedRowCls:this.embedRowCls,embedRowAttr:this.embedRowAttr,firstOrLastCls:this.firstOrLastCls,unselectableAttr:k.enableTextSelection?"":'unselectable="on"',unselectableCls:k.enableTextSelection?"":Ext.baseCSSPrefix+"unselectable"},d=Array.prototype.slice.call(this.metaRowTpl,0),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 TCTt#-00000NkvXXu0mjfpUP1v literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/box/corners-blue.gif b/docs/extjs/resources/themes/images/default/box/corners-blue.gif new file mode 100755 index 0000000000000000000000000000000000000000..fa419b50abe5030db04492578d5dfd39c02fb6ab GIT binary patch literal 1010 zcmZ?wbhEHbXlGzpbnMH9^WV;$J9qKo#mkp3U%h(u+O=ypZrr$e^X8p9ckbT3 zd+*-8gExOZc<|ui!-tO^J$n53@slS{o<4p0?Af#D&!4}1`SR7PSFc~ce)Hzd+qZAu zy?gim{reZ6{(SiG;p4}TpFVy1{Q2{jFJHcX{rc_Ox9{J-|M>Ca=g*(NfB*jT=g;52 zfB*ga_y7NYhEYJJ5ODbKKqZq#iZO~mS(q6ZW-;i1JPgVc3>@bfOgUvd3KTeaMcKM` zTmT9+Dym5^6eP5&35jyCL~LwoUdG4CQ1IlzMJEOhS7<|o6TkONJB|cJt&_qGY8j_CFdSfKOOVXz5IAt4 zV}p{G0>c6amIz;I6#<3?kJdQw@UbxnC^#-)=MmtuQ0WM8YMvo$(vtdt@jw$#qNfCh wKq7O5AQyweiU(yaTnsEKITutM85$V*3^XlGzJaNxkCA+uU@@+{rdHrH*em)ef#d+yZ7(kfB5j>g)|NZ;-|Nno6kqR9CJB(DX)7#&QKUtU= zfEhstWHBgDFmRk=;OCU_C{XAUlw(`PkjU7?)Tn7;VYmK z&r@KbvglBQu=1upg@udrDMSY z2FDg@ogF$0Oia(gUJntM;F*w7{y{XRIF%d;*fMw Ru}w*2KC@pnhK+^68UTSX)nNbt literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/box/l-blue.gif b/docs/extjs/resources/themes/images/default/box/l-blue.gif new file mode 100755 index 0000000000000000000000000000000000000000..5ed7f0043b6b0f956076e02583ca7d18a150e8f6 GIT binary patch literal 810 zcmZ?wbhEHbWMN=rXlGzpbnMHWJ9pl^dGqhzKZa2-8UiCM1QdU=0Db(QK?me-P@Z7m PU}s=uVK7ioV6X-NGaC=| literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/box/l.gif b/docs/extjs/resources/themes/images/default/box/l.gif new file mode 100755 index 0000000000000000000000000000000000000000..0160f97fe75409f17ab6c3c91f7cbdc58afa8f8f GIT binary patch literal 810 zcmZ?wbhEHbWMN=rXlGzJc<|tzJ9pl^dGqhzKZa2-8UiCM1QdU=0Db(QK?me-P@Z7m PU}s=uVK7ioV6X-N<)RPU literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/box/r-blue.gif b/docs/extjs/resources/themes/images/default/box/r-blue.gif new file mode 100755 index 0000000000000000000000000000000000000000..3ea5cae3b7b571ec41ac2b5d38c8a675a1f66efc GIT binary patch literal 810 zcmZ?wbhEHbWMN=rXlGzpbnMHWJ9pl^dGr7Oe}+*o8UiCM1QdU=0Db(QK?me-P@Z7m PU}s=w;80LdV6X-NJSY$C literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/box/r.gif b/docs/extjs/resources/themes/images/default/box/r.gif new file mode 100755 index 0000000000000000000000000000000000000000..34237f6292a7da6ac5d1b95d13ce76a7194dd596 GIT binary patch literal 810 zcmZ?wbhEHbWMN=rXlGzJc<|tzJ9pl^dGr7Oe}+*o8UiCM1QdU=0Db(QK?me-P@Z7m PU}s=w;80LdV6X-N?ynEj literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/box/tb-blue.gif b/docs/extjs/resources/themes/images/default/box/tb-blue.gif new file mode 100755 index 0000000000000000000000000000000000000000..562fecca87176274af7bf13c419daaf93f169249 GIT binary patch literal 851 zcmZ?wbhEHbWMt4{XlGzpbnMHL<6oAa{JQeg*VSjft~>i}!})KUE_~a1@%#46-*;X4 zvFF;4eb;~7zJ2@P&7Vha|2%Q`=a~n;&OiEf>B+Ba&wkx{`TPEx-%p-AdGqGY@@87@w|Nk?Lg3%Bd$|0cmlLhGf{|q`H xPk{0S1BVKOBoBu|W0NBntB_a%g98I2m#~UU!-oTo%xv5uDh>q)92y%KtN|VsNKya* literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn-group/btn-group-default-framed-corners.gif b/docs/extjs/resources/themes/images/default/btn-group/btn-group-default-framed-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..70f2dd4df32e16c90d8ed55caaede6826a8b62d6 GIT binary patch literal 1598 zcmZ?wbhEHbWMbf9`2L?^+lgx@uD#fG>c)-}*Y3Ugbn3>79j9(RdiCYOt1l;RJbUos z%l}a@8Un*N1QdU=FfuT3Gw3h?0Vq$jkLHNs8{4BkBOC%8(hQ6Y77ia84lppW$Ouee TXk=vM5Ryc)-}*Y3Ugbn3>79j9(RdiCYOt1l;RJbUos z%l}a@8Un*N1QdU=FfuT3Gw3h?0Vq$jkLHNs8{4BkBOC%8(hQ6Y77ia84lppW$Ouee TXk=vM5Ry|z+UAje;)Ap|z+UAje;)Ap=dU~2cWFHR)gEau0j};&Q literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-large-bg.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-large-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..5e1f83f8b585f0c94d4f0c19640e78167fda552e GIT binary patch literal 1825 zcmZ?wbhEHbRZa5fB23 zKUo+V7&sVo7=QqjC)!7I#0ZG?Q7_^Q0gitRoE$P98x|aF<`CA>iCD1kaJzuA*Bpi8YXK5ui`ndY3b?d3`wWvcy3;HcD6*we|J&4aukH`R?BK_V$kA*Z0ou-v0jn vfo5)bzdbuXK0Yy7JO13Bou8jySnNIDZ||CMz{#M)00f{s(LS0ZhI^ck`VU_SaOg5Ha_Bg0NN8y0U}f?UNN`|aW@Qs7 enX#aOkx5uqPDDU~k+GMZi9?~F!J(;v!5RQbr2}XH literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-large-disabled-bg.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-large-disabled-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..e5ae29f88d0cb0f30f924c86b17628844fe591c9 GIT binary patch literal 1825 zcmZ?wbhEHbRZa5fB23 zKUo+V7&sVo7=QqjC)!7I#0ZG?Q7_^Q0gitRoE$P98x|aF<`CA>iCD1kaJzuA*Bpi8YXK5ui`ndY3b?d3`wWvcy3;HcD6*we|J&4aukH`R?BK_V$kA*Z0ou-v0jn vfo5)bzdbuXK0Yy7JO13Bou8jySnNIDZ||eZV!Z{EFo_wC!afB*jd9|fZ!Ffu|w@h1x- z0|PsQ4g(N?@CMz{#M)00f{s(LS0ZhI^ck`VU_SaQtUr7m+^Zc%JU=Z!fQJ3qHPYZ?t*tz5TV% zkMY)2_Di*d$TAg^+Y$otFNz5 zINT-cy=~3S%^8`2GdnjwKfl1aTh4damY0`T1h0-eyKC#~>l>0!&-2~A z?d|Oy#jo$3-M#(&{R7S1@_u`Ee0+RjvUdErJv%=?zp&VQzTe(mUtizYoPGb?-re8d ZKRDdYEAPK=&(F^qpx4FDDCmdpSE literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-large-focus-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-large-focus-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..697108e9cb369f27235f8b2d497d0ef98073cf63 GIT binary patch literal 1621 zcmZ?wbhEHbWM&Xz`2L?^)0q!PZhhHv<dG&OQ3^@87@wqhK@yhFu6K{$ycfVBllWVE_V9o@gJ<5yLK$M?FMB2yhrNuye#X zY)EKm=3wP3aA06)WZ`BIa0xhYu!)6>gUO*_Lqh`tp9q6Rg+c=ZGdqt32M2>S05$^v AxBvhE literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-large-focus-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-large-focus-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..8137ad21c72b6469ed0ee790107d047f203d9cfd GIT binary patch literal 1923 zcmZ?wbhEHbWMgn*{{Ej~!U67!85p7y^nvSr{1@co}pUfB=*y+DCK5aE#|sKM@-O9RC>@RU~FGG&nS| zaf-1lSg??(nNQxRB%`45C@Y&_hD*YShU3h#_HAD>E;M*DtNKgn9N2W=)HF8E6DkQ4 z8hzQ=*k8yb1T^?F+SapuwG`24VDMm;@LBaG^Zc%JU=Z!fQJ z3qHPYZ?t*tz5TV%kMY)2_Di*d$TAg^+Y$otFNz5 zINT-cy=~3S%^8`2GdnjwKfl1aTh4damY0`T1h0-eyKC#~>l>0!&-2~A z?d|Oy#jo$3-M#(&{R7S1@_u`Ee0+RjvUdErJv%=?zp&VQzTe(mUtizYoPGb?-re8d ZKRDdYEAPK=&(F^qpx4FKvEmc#%6 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-large-over-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-large-over-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..91cdc04e6e7ece4e648a51431f547af5324185cd GIT binary patch literal 1621 zcmZ?wbhEHbWM&Xz`2L?^)0q!PZhhHv<=D9)0?E?$M8b|Ni|S1*0J_yh1?nCkrD313!Zf0}z1nMEhut7+x_v>KoERfWwG^ zog>9zLqbC{2P#(vCWnFz4Gj$ZVhk1)3Jna*>^wFc91PX~ DdYt|_ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-large-over-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-large-over-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..6dfce7ce216d7edf9a5fd1482c15a000b4395dd8 GIT binary patch literal 1923 zcmZ?wbhEHbWMgn*{{Ej~!@RU~FGG&nS| zaf-1lSg??(nNQxRB%`45C@Y&_hD*YShU3h#_HAD>E;M*DtNKgn9N2W=)HF8E6DkQ4 z8hzQ=*k8yb1T^?F+SapuwG`24VDMm;@LBaG^Zc%JU=Z!fQJ z3qHPYZ?t*tz5TV%kMY)2_Di*d$TAg^8Un*51QdU=FfuR*GUzY>0Vq$jkLHNs61SuN zASVPk{xfiL$arj6aIl#}SS#klgon-T0?J-#%jz)zuN3gG>)>U44B$)1fX|?`>;tZqB$oN%z3EwYRqyJU%tod;7Y(yDL7wx_f&2 z`uqDEn7QSAc5HZfxIB6idh zWQG98e+Fh7i606L4oz&FVm1~R5}Mn2Wt^t`n2>aYfyGG3U`3&_Td#~`-5H5VDGcly zvJyTkjSe(T=jLIW!FeE|X*OrhBa;;imNPZ8H_0(*P00voW}77Cuxd(X&~k5Po*7mL z7BsA8T9b6OYHId12G&Dj1{!5L5gSu3&f}du?QPWN)Z2$brN6Jev%Bo`wY%Qi*GKQG z|9g(tr(#3mo(BHcqCGP{K04H^XdgDm!YK9lRQ2e4YjzetJ3qtOo6R=r%hO9M{8vBo zsoI);c}?PeKiS#ea;~qzPZ1? zJiEFve!85kb@}VN+pFv3_4n2M`265!Dt8! z_YhG0$->CMz{#M)00f{s(LS0ZhI^ck`VU_SaQtUr6p@HvXmDs^;}o;8xUitHolVAR z%8v<2E(`+tX(km59y9jIIhKk16l^#?Nu8H3!ty{u!*oU-t{IvRYQD3L3$L*_6sP;o zW#i;f6)4FFT9od4BA^s^46EJ`x)q?(g_47dGdH{^R3)%KULUI}0A4 zoUZG9Y)@oy>Zv*Q>1=N;x4gWx!gICU* z$9QWh@*f@Q*7iRqv-9)g3(fY^h-~Rmh^Xu2IA3uKl9|fZ!Ffu|w@h1x- z0|PsQ4g(N?@CMz{#M)00f{s(LS0ZhI^ck`VU_SaOg5Ha_Bg0NN8y0U}f?UNN`|aW@Qs7 enX#aOkx5uqPDDU~k+GMZi9?~F!J(;v!5RQbr2}XH literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-medium-disabled-bg.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-medium-disabled-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..23d7e57d652ec1e0a74324ce0ba59c67fdf3ff23 GIT binary patch literal 1809 zcmZ?wbhEHbeZV!Z{EFo_wC!afB*jd9|fZ!Ffu|w@h1x- z0|PsQ4g(N?@RZa5fB23 zKUo+V7&sVo7=QqjC)!7I#0ZG?Q7_^Q0gnF+>>?5o2@MWSY@A{?76yt=ZQP<(ITi;R zT$$PQlh#xiCLd>HaS}4nSg?elnIVYDVdbP$uj$(CD|#|NJ!zPw;w!~-!1%zqdG?iT zUo97?2QGG=EXKMkB;)d8pNV#%T3fTOtoB=*c9g4h_4RcLD~m*bPtCcpGGpt!(Clrw zw>IXVJ{HS8{cX(lvd`D|NGwkQS$oI=J5J`wpHI>-`Q9na9wX-&5zIb&MtT7uiN|k z+lP~zr~jW<_vhn}tM{+x@2~&&^Z!-x2Xzde%oo(NsYN_!V$!;y(9B||k=P=l#Idkd YI4R;`qm0##h3!&pHy&m&GBQ{L0Q6s@rT_o{ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-medium-focus-bg.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-medium-focus-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..fe97ab427f5c93e89c104111d92117aa3036244c GIT binary patch literal 1817 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 A>i_@% literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-small-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-small-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..76f32bd594fe44200d4e1e8968351af8c9a6863f GIT binary patch literal 1614 zcmZ?wbhEHbWM&Xz`2L^a!i5XZo;|yF@7|RwS6;k$@$cWiSFc`Ox^(HzojdCMz{#M)00f{s(LS0ZhI^ck`VU_SaA-3ya_Bg0NN8y0U}f?UNN`|aW@QtQ caZqq%WM)ybve8g*U}BP%Z(L;da4g))fjK_ur2b(#BwRAidEIiyUpzM{Sv0%~BZVBV8H5>~T zAMaOi?vnA`q;i5mBY0KJ$xTa7Pd7+DHOF)Fva_=-ieKG1xq12d`3}uovR+$OTwLri zSu6I`mX(*62Q2oQ>$P>&)zuN3v+kbSy88P1gu`93-rLsP+?;WFRqW|)Yj1BaczkNE z_x5#ncUOFVb@%l4_4oHTFmucK?AY+|aEGvV+?gF4A0MBf>^;wC=ccEpXBcPSJF|21 z^YaUwyXAa$ZFzZlMeyplv%9vwzP=&(^gQ3)+uq*ZQT+Pe+1=aU-#_5a&ca{~02ont A`v3p{ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-small-disabled-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-small-disabled-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..9188a88982fa907f2d366ef105f3299afc642c74 GIT binary patch literal 1614 zcmZ?wbhEHbWM&Xz`2L^a-o1Md9z1yU>eZV!Z{EFo_wC!afB*jd9|fZ!Ffu|w@h1x- z0|PsQ4g(N?@o}QYdo47AzrjeTObkp=(cUEprKR4f^`4o#)$cwX! zJo>esdX}v8U+lBc&R1&ctB~cstCObA`nu}c`nbbovZuGM3Eh-_HqZBT+1lt08TY$F zxu?Iov#s>wy{XdX`tiGKzyFfe*-`M|aD(t`*F6y*?;o2W@2z&GVpHPrDTeWVb7p={ zJ3ZC9`I^kH%`Yx53!Wb5yK8Iuwe_+6eZJM(a<6R2Up=jN_V;(U_BQ^%HrLvs@cz+u z>G*YfDnC6xv6#EvF80^QS2xyYr~B3JE`ELIV7>8qxp{vo-rqgFSbYA!J-@!cd%S)A o`F;B;e|>+u{`~p+{q;Y7{8gV{#~@^pP|vDVv7q57D+_})0F%Iib#-;b=B&G?wywUuKH+eetoODxH#cWoUKM+K z+uGaP3m%`E>%D#5-Q5+RU)?>uef|CY4b0qfK07u%Jlr9y9d~BO#>dAeD0|QI*}3WI z=^4h^_s;Cx{QUd^=WaRQU0YsWUJ<-H?(D9uudi=NK0VKO_qMmUcND+AcXs#o_xBGp SbIbef+41r52}^bs25SI|GJbpj literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-small-focus-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-small-focus-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..a0ed287cf33e4de80508cea3d5a20ab1864d94e9 GIT binary patch literal 1622 zcmZ?wbhEHbWM&Xz`2L?^)0q!PZhhHv<;M2czkA6J*^bZLBkAl$<7%m~8_>+Z^fkBW#hXDvcd7^zZM+}#^9rXt} zA;4kGz|K+QupyzLnS+(D!{Gr#BP&0jfK7nHp=MSdITMe92MLUfj7kO!1pT6T literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-small-focus-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-small-focus-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..f3f673c7d9163e62727c75f3bc726f871a57a670 GIT binary patch literal 1879 zcmZ?wbhEHbWMeR3{{Ej~!ZuT4+J zhlZofZ0s2_2>}i6jI#D^Uos3DPBN(aFEiOGq}ni9FLB$PpFyd<)6A1^O_@1a?fiV} z=0_}6AuG-;^61z4nmHviXt{T_m#WlMtt+d8XQ$Qf+PW%ib?n9_+231r!Z)R#t@1rx zwl;cW*28U6f19m|-BSAT(%owFy!$)rKmWQaJwyND;bviGw>=RX9~_$??``&GMp4S? z$=um#b7mSpJ3m{yeV@&)%^ByHIxdc@-DR42ZGG(QKHutXxmPz8UcXjry*2;F-p0>z z|E$YD-aXzdEk19K#pmaz7b~~h#qRp_>c;x)^1Qj#W$$m#?lxI2H_ztB=f}I3|KGQ7 xPu1tQ7Z1<>zt67v*Y~%(&!4Z~U;pzLib#-;b=B&G?wywUuKH+eetoODxH#cWoUKM+K z+uGaP3m%`E>%D#5-Q5+RU)?>uef|CY4b0qfK07u%Jlr9y9d~BO#>dAeD0|QI*}3WI z=^4h^_s;Cx{QUd^=WaRQU0YsWUJ<-H?(D9uudi=NK0VKO_qMmUcND+AcXs#o_xBGp SbIbef+41r52}^bs25SI|GJbpj literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-small-over-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-small-over-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..1f89ac57934151efcf9499f1eb8755ff75496bc1 GIT binary patch literal 1621 zcmZ?wbhEHbWM&Xz`2L?^)42~vZhhHv<=D9(?+D?$M7&pZ)>C|4}d+0>dZ-6o0ZXGB5}*=r8~QC{MJH=7?bwy`x?sIRrS2 z7}z;V95y60G;^@>H8?OZFtYM72(Sb&G%>Ss%NSTNJV;<ftj7hfrEp= F8UO{${b~RJ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-small-over-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-small-over-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..f3f673c7d9163e62727c75f3bc726f871a57a670 GIT binary patch literal 1879 zcmZ?wbhEHbWMeR3{{Ej~!ZuT4+J zhlZofZ0s2_2>}i6jI#D^Uos3DPBN(aFEiOGq}ni9FLB$PpFyd<)6A1^O_@1a?fiV} z=0_}6AuG-;^61z4nmHviXt{T_m#WlMtt+d8XQ$Qf+PW%ib?n9_+231r!Z)R#t@1rx zwl;cW*28U6f19m|-BSAT(%owFy!$)rKmWQaJwyND;bviGw>=RX9~_$??``&GMp4S? z$=um#b7mSpJ3m{yeV@&)%^ByHIxdc@-DR42ZGG(QKHutXxmPz8UcXjry*2;F-p0>z z|E$YD-aXzdEk19K#pmaz7b~~h#qRp_>c;x)^1Qj#W$$m#?lxI2H_ztB=f}I3|KGQ7 xPu1tQ7Z1<>zt67v*Y~%(&!4Z~U;pzL~Z|gacpt4t&{j;mMwJPj;Pq z@_!VJhQRO*0mYvzj0_Ci3_1)z0Ll~Xqd8*u#`dVs2!{a22L?_K8IKJM4mLB1YQ&t_ zpxD$dpzJlr<6~lDw}f%lof8`uyE7;_cga*PSaNc*2K$Pblbe>Fp034uVvgtLWoKs_ zF~7KTa`W=@^BtPGWWBbmxVYG3vR3S=Eh{fC4_NFq*K6yltE(e6XWc!ub@lc235UC6 zy|=BoxjEzVs@T)p*52M;@c7hR@9pdE?ymU!>h9_7>+kPxVCI(d*|Fi_;SOQ#xHCI8 zK0ZD{*?XSP&P`8G&oIuucV_42=jRtVcgy+i+Vb-9is038XLoIVeSJgn>3P1px4pf+ qqxki`v%9yyzki^aTi$Qaj*pK|OxBJ+w`b?)=NA@x@0Sr^um%8jj(Q*f literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-small-pressed-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-small-pressed-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..b36e111532e61d73125488c344003442276d86ce GIT binary patch literal 1621 zcmZ?wbhEHbWM&Xz`2L?^-i~_<_S~Cx=*zra54N3pvf{v_X-B?nJM(14p$97tJXm$; z(X0b+{{8#6=E$S}qhK@yhFu6K{$ycfVBllWVE_V9o@gJ<5yLK$M?FMB2yhrNuyd$5 zd}wfF<`CwRd9Z+?fr*!c!GOb|k(r5?OJ)KG!@?$3CaE$J0fz%jEQ|sc92^YR0LiEK A&Hw-a literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-small-pressed-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-small-pressed-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..d322e2c7306f42ffdba5eb8bdc82c04a6a3e9325 GIT binary patch literal 1892 zcmZ?wbhEHbWMeR3{{Ek#=fIbFyBMqk7a^M1=sye+Fg&2@iz^hbA_0jhF<3 z#=|VU@=`7if(MUuiEB!+91v_c$gIFGA>&YV;KU?0))gWXik2Q^GT`3RV=0{GJCiZ# z(Ur>0>3*~9bJ^~4PI(?M-)*v3tX4>7@G_VAUcFwTnjx!$H-_1sy81F~ebnKyy;f$~ zH`k{eoF}?^TkfsxX?Kscc9*TYyQ|{nrK{D`^Y3kKc=}KD&Gv!^d)t4j$@R?mkaW0D z*?iubh@#X}J^I<_&PW=iouBPkUgvY`Q^w^*!PEcku_}3ec}?K{Fx}l{Z*H&4eSVC$ zdi(o(2Qoj4{hM9!;pT}_`S83wm7gA-?{<&poBOlm`L)gA_w{0{%imqu-|finFK1ox z`SHc+`_J9`UG@Fdiv5f+lvO84v0N SxPB~X;R};^7|O`VU=09P5R<6@ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-small-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-small-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..52a797ee93f3aa44dce044d102b65ef51b7e2617 GIT binary patch literal 1873 zcmZ?wbhEHbWMeR3{{Elg!i5V@o;-Q<=+TcKKmPpr^Xu2I|D#|u1V&5mSmU>TBO`JF7q*0ppEdBgfTTT`~^P6v*%_OU}CF9%z z_f9p_uFWs~m-$ckD(#xGDrj}UYPX|SrK`i&CakX$l{VA9xjF4}neJ|}+~}<_kNaA! zzpstmne%biRd4hB*nQ>yxxRTx%qG`}?)c z&(-`WdVaRsdA{D>s!uPjuT0+|z`)3$!vF-JJkdUyBSvak81*+O Y1UUE@m^oxTHY_;U%pt7C!@*z;06j7TnE(I) literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-disabled-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-disabled-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..f19715a3e6339b5eef2e557a3bbd7ce11221ee9f GIT binary patch literal 1585 zcmZ?wbhEHbWM&Xz`2L^a-@kwVN5N+|z`)3$!vF-JJkdUyBSvak81*+O Y1UUE@m^oxTHY_;U%pt7C!@*z;06j7TnE(I) literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-disabled-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-disabled-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..51698b0b77c71e821200c632bec55c3857ae77ac GIT binary patch literal 1596 zcmZ?wbhEHbWMfcb`2L^a-@kwVN5N+|z`)3$!vF-JJkdUyBSvak81*+O k1UMuam^oxTHY_;U%pt55b7I57!|ejfUUOa;C@@$908dy6$^ZZW literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-focus-bg.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-focus-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..f182b67f326a4a369817ffefc56acfbc3cc85bec GIT binary patch literal 1851 zcmZ?wbhEHbC+w%$PCj)zuN3v(`#2 zSbcqc!r?Ai?`>;tZqB&8D)#iYwYRqyJU%tod;7Y(yDL7wx_f&2`uqDEn7QSAc5HZf zxIm0dwza?ad~z8`F(qTfB*3K^nCyQ|9&Jel{{35b;@PHC&lVkc z(zWW+hBGg^)?C_h?$x$)Z~l*h(GVC$A)xq^g^__lfI)`=2tawFeKbc5qv##=3dteB zVZ^}5q2jP1p`n?Bm8qd2fuV_=g-t+a0s|8xI}eAMM1etL1A~BsiNy|u1}0{19tRE% G25SJl81_~G literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-focus-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-focus-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..f787cda78a67ba643097fa5f68e1d6e49fd7c721 GIT binary patch literal 1939 zcmZ?wbhEHbWMgn*{{Ek#VabI(SHA4J^x?p@FMFg6!g@K|I1DBGPfkvT{ODCInMofZ0qdN;5Z-O^c#I^7q$dfVH`ZTWYX^?H}DySt&{;F)lPeQSH}@pEUZx4*w~Ad&s}-{>8Mj}Dirzu&vZ;?v_(3yr70v-$P;^|j6Z$M?ln ze|`60e|JH?-@K~IcaP7mcCWuz{rkiF%bVlh&$Fxf{pt1j`|J1rul@J`=k)jn7QT#x z8jeTP6&l#JUMMtkb4esN3Y&2}Y!*uLSlA|(R`IZ1u5E{6hjQ1A#7>QQE0S7uif$-% aYVXoe?$MtWk=$i|%;Ry7nU;hAgEauy9;WgD literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-over-bg.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-over-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..febf0a6f9841268ed5f254a4a89664814b0ae556 GIT binary patch literal 1851 zcmZ?wbhEHbC+w%7{*Qvu5EynLp!k!8k%57aL5BedKzX8lG)D}(NFMbN2_eAopFxyE#$&^R zgUuYmauFvsEIiyUpzJlrBk)mEw}f$)$$^cFkM}D$7r8iWT5@u-M(`w^1Dlqfo^FtQ zYR<_8%g)ZWkbZIJ$PCj)zuN3v(`#2 zSbcqc!r?Ai?`>;tZqB&8D)#iYwYRqyJU%tod;7Y(yDL7wx_f&2`uqDEn7QSAc5HZf zxIm0dwza?ad~z8`F(qTfB*3K^nCyQ|9&Jel{{35b;@PHC&lVkc z(zWW+hBGg^)?C_h?$x$)Z~l*h(GVC$A)xq^g^__lfI)`=2tawFeKbc5qv##=3dteB zVZ^}5q2jP1p`n?Bm8qd2fuV_=g-t+a0s|8xI}eAMM1etL1A~BsiNy|u1}0{19tRE% G25SJl81_~G literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-over-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-over-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..f2c097f400f57f3f16c3d16c2dbbfd8b25ad56b0 GIT binary patch literal 1939 zcmZ?wbhEHbWMgn*{{Ek#VabI(SHA4J^x?p@PkXL>y727Zr5FD$y!dzJ#lIVG{#|?Z z@5-xxXP*4obLrEbOCSD^g3%BdULm0PlZBCifuBK#0SG{OqJ1<+46hg-^$lqu!114f zQAJ_~LxV#T8>g6!g@K|I1DBGPfkvT{ODCInMofZ0qdN;5Z-O^c#I^7q$dfVH`ZTWYX^?H}DySt&{;F)lPeQSH}@pEUZx4*w~Ad&s}-{>8Mj}Dirzu&vZ;?v_(3yr70v-$P;^|j6Z$M?ln ze|`60e|JH?-@K~IcaP7mcCWuz{rkiF%bVlh&$Fxf{pt1j`|J1rul@J`=k)jn7QT#x z8jeTP6&l#JUMMtkb4esN3Y&2}Y!*uLSlA|(R`IZ1u5E{6hjQ1A#7>QQE0S7uif$-% aYVXoe?$MtWk=$i|%;Ry7nU;hAgEauC@}}wl literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-pressed-bg.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-pressed-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..37a8a7a33ec23c6a7f242016f61547a0dedc1a75 GIT binary patch literal 1846 zcmZ?wbhEHbJv(&e z*^w*H4qbY7;L5WDm!9l7_hiq7C;vymXb23K5K#Qd!pOiN$e_aj1fV?8KAIzjOWcn7 zgPaiH_|L$}A>*-O!NFz@VXc@G6B3)+1(dz!cx+sBv|C6tQ5KE>j&dD+?77R8rb4s2e2e!fHVCliM)D=sefn5-3RwP5At%DEw&CMB?SH+&*w)Xb+g2$)kdT(EMcX!3-S9ecu zUw?mp12ear&yEcb4|fP_$DP@+@$vBq%HH#Qc5ZrldWLcKy)!#EKR>^~xm(V6*Or%; zR|Kz)JG*P^>+2hmPtWt+z3uJo9mTKjo!!0t{rv;Y-12^Vc6@w%VzPGpxjj2SKfkcp xd%oY^U0+|{*qnX;+}_>a-#<9qEiCW9Z_m%qFD|c+KfiD9@9!Uuva>K)0|1Rqjhg@f literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-pressed-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-pressed-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..02e660e99868818f578dbd47fd8f5bc4f7861461 GIT binary patch literal 1623 zcmZ?wbhEHbWM&Xz`2L@vYSxhjJFd;!cByX8kzMDW%scj_Z_~YbC%!D$bz|O^E3>v- zYM6Iy&bBLkTORB=_hinAFaQ4i`#%asLtwasfZ|UUMg|5!1|0?<0Og7H(Ht>c;&#*@ z(fcAo(Pd0k?#UgYdyKv&=J}ZQ*oi@MmPJXL|ed@`A?2Y&}Y$RZ}v97#J6^ z8EBMhg{%zO7}q;%>g%x8p}U)|N_|^>V{_W&X|dkh)`oA(zuVXAUA``MOTqh9Q@f|X zzqhNF@&DD?<_3xTTiK=K*6b*Jbi6~EyUix@)5B9U^t01^DmN#ep5s`5PG;7ZjPrB7 z7mLmPwdK|Ib;;Z3o!zx9^Vas<_2DKf0 z_Evp)ePOfq@qMwsKfimhzdLLBx!OIY@1IT0~Zyyeq|G)Ro?{A;4-}m3Y zzxv<*pXTumEPNRXbqsPV<~MK{?MP_kb^5WOiPOzvVY8@T#=|zLvKbHCCE7F;JCwUB h5<4~Ktx#%LS@&XLr_P}tNnM7QEEac*vav8&0{~I$oO}QP literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..51698b0b77c71e821200c632bec55c3857ae77ac GIT binary patch literal 1596 zcmZ?wbhEHbWMfcb`2L^a-@kwVN5N+|z`)3$!vF-JJkdUyBSvak81*+O k1UMuam^oxTHY_;U%pt55b7I57!|ejfUUOa;C@@$908dy6$^ZZW literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..f19715a3e6339b5eef2e557a3bbd7ce11221ee9f GIT binary patch literal 1585 zcmZ?wbhEHbWM&Xz`2L^a-@kwVN5N+|z`)3$!vF-JJkdUyBSvak81*+O Y1UUE@m^oxTHY_;U%pt7C!@*z;06j7TnE(I) literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-disabled-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-disabled-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..f19715a3e6339b5eef2e557a3bbd7ce11221ee9f GIT binary patch literal 1585 zcmZ?wbhEHbWM&Xz`2L^a-@kwVN5N+|z`)3$!vF-JJkdUyBSvak81*+O Y1UUE@m^oxTHY_;U%pt7C!@*z;06j7TnE(I) literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-disabled-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-disabled-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..94256ef9c6221865cc142ec71613e5c5bf78062f GIT binary patch literal 1594 zcmZ?wbhEHbWMhzG`2L^a-@kwVN5N+|z`)3$!vF-JJkdUyBSvak81*+O h1USSQm^oxTHY_;U%pt55b7I57!|ejfd^{Ws)&T132fP3P literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-focus-bg.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-focus-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..012108c65350b311b1d533b794ef22839eec242e GIT binary patch literal 1826 zcmZ?wbhEHby*%rl@L=J3Tety0~GncH_m-L3k9+S0VPi+9Sdv<($d}6Y8{JA|lKR>^)*n7U;-d$f`-`Jde|J>f) M-`^i%W@4}g0GRHJ7ytkO literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-focus-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-focus-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..361fc557b6dd609fda0647360db26d76f7fa617f GIT binary patch literal 1622 zcmZ?wbhEHbWM&Xz`2L@vVabI(SH3Jc@T6_Ur5kVlZ8-Dd)|-EuPCZ+9;@P4DPdZjy z+H~qg$Er*J{{7o>?$x$)Z@N}p`acRrLtwasfZ|UUMg|5!1|0?<0Og7H(Ht>c;&#*@ z( literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-focus-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-focus-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..3605c0db4c51c4597b6b2fe98452322c6ccb95b2 GIT binary patch literal 1917 zcmZ?wbhEHbWMi;m{{Ek#VabI(SHA4J^kLtXPkXL>y7A`Ur5FFMz4~_rh+h1=@a*5Y zXaDwG`n2cLhySBsGz5lS2q^w!VPs(7W6)s$0#Kf4AI%ZNE|Nz*L_!E~{AXYkk%(Yu zaA;!V6k{n^@Q|^YPu{2`L!i->g^f4EWI|!Gd#}7DQ-DKI#a{9|o2pA%hjg>V9)=8ksm8Od1X@a%&f}-4&u4xXgd9nk!dnR`9Bz)mdjxiLSoB zI$?30sPr|ho14=v=gF?#mVI+;{@q2b*5P^4+e+RaJDP32{{Fs(pIrC6cf3nD-1=21 zZq1I5_Ye0mtJm2?8YQ2auIt{`Q(2sPZkBa7pRd%Gm*-a)&kvh>%lP&6b;YuZ{v)=LX(TPrN`Ez@|7d=1Q>O5a>@2`)~uT6H}zc1Fh^xgfv z=~2h|>T1eAJvzPG|GeDZ-=9Am-alRbzRlm?-#)LOzkYx1-@pHVw#zp#bKQ`yXOWXo zXkt@)ky*%rl@L=J3Tety0~GncH_m-L3k9+S0VPi+9Sdv<($d}6Y8{JA|lKR>^)*n7U;-d$f`-`Jde|J>f) M-`^i%W@4}g0GRHJ7ytkO literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-over-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-over-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..361fc557b6dd609fda0647360db26d76f7fa617f GIT binary patch literal 1622 zcmZ?wbhEHbWM&Xz`2L@vVabI(SH3Jc@T6_Ur5kVlZ8-Dd)|-EuPCZ+9;@P4DPdZjy z+H~qg$Er*J{{7o>?$x$)Z@N}p`acRrLtwasfZ|UUMg|5!1|0?<0Og7H(Ht>c;&#*@ z( literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-over-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-over-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..3605c0db4c51c4597b6b2fe98452322c6ccb95b2 GIT binary patch literal 1917 zcmZ?wbhEHbWMi;m{{Ek#VabI(SHA4J^kLtXPkXL>y7A`Ur5FFMz4~_rh+h1=@a*5Y zXaDwG`n2cLhySBsGz5lS2q^w!VPs(7W6)s$0#Kf4AI%ZNE|Nz*L_!E~{AXYkk%(Yu zaA;!V6k{n^@Q|^YPu{2`L!i->g^f4EWI|!Gd#}7DQ-DKI#a{9|o2pA%hjg>V9)=8ksm8Od1X@a%&f}-4&u4xXgd9nk!dnR`9Bz)mdjxiLSoB zI$?30sPr|ho14=v=gF?#mVI+;{@q2b*5P^4+e+RaJDP32{{Fs(pIrC6cf3nD-1=21 zZq1I5_Ye0mtJm2?8YQ2auIt{`Q(2sPZkBa7pRd%Gm*-a)&kvh>%lP&6b;YuZ{v)=LX(TPrN`Ez@|7d=1Q>O5a>@2`)~uT6H}zc1Fh^xgfv z=~2h|>T1eAJvzPG|GeDZ-=9Am-alRbzRlm?-#)LOzkYx1-@pHVw#zp#bKQ`yXOWXo zXkt@)kj(wSR?8}T}Uk+S)GUvpX8ArZMJMv}9kuQ5LJUMdZ z*`X`X4qSS+@4}P+qhK@yhFu6K{$ycfVBllWVE_V9o@gJ<5yLK$M?FMB2ypyo5ay8a z*pSfN%pt55bK-+SW4nN|*Bp^LH0t_^c3MXm01>aq4*?u;?JGgm}!E9fFGwGAVG^@K_3^cur(sSs{`j(CE#= zCVC=7pm^CqW()p1XEHA|_%qwqvwh7pXt>DW+OKB1OGL9_vEM?oxxYd(Lzjgwj+#1a zs@C=O(T9^*t;5z_+mvyB)z_?Pxl!A*cb`&~p00Oick%6KwY#^ki`!lMkxA~)c7yms z?YzHz&s1zoKG>ybKJAaihSVcd4TJC1SQb4$Ip4VYn#?TYmzNg@H@oeP+WO+!hWOKF zZ)cU|+}`Z{I&JQ3^LO`mXS46O-Lt*m{?SI|__{roh0o5+|z`)3$!vF-JJkdUyBSvak81*+O h1USSQm^oxTHY_;U%pt55b7I57!|ejfd^{Ws)&T132fP3P literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..f19715a3e6339b5eef2e557a3bbd7ce11221ee9f GIT binary patch literal 1585 zcmZ?wbhEHbWM&Xz`2L^a-@kwVN5N+|z`)3$!vF-JJkdUyBSvak81*+O Y1UUE@m^oxTHY_;U%pt7C!@*z;06j7TnE(I) literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-disabled-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-disabled-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..f19715a3e6339b5eef2e557a3bbd7ce11221ee9f GIT binary patch literal 1585 zcmZ?wbhEHbWM&Xz`2L^a-@kwVN5N+|z`)3$!vF-JJkdUyBSvak81*+O Y1UUE@m^oxTHY_;U%pt7C!@*z;06j7TnE(I) literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-disabled-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-disabled-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..522f864ddf7433c96e927edfd1369a2a096137b0 GIT binary patch literal 1589 zcmZ?wbhEHbWMdFu`2L^a-@kwVN5N+|z`)3$!vF-JJkdUyBSvak81*+O c1UQ5km^oxTHY_;U%pt55b7Di{!3G9v0A{@h1poj5 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-focus-bg.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-focus-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..8444d3206a6497ada05311034d0be5d5b1921780 GIT binary patch literal 1799 zcmZ?wbhEHbC=U0|8BhbckR``E3f`tdhzf7C>RZa5fB23 zKUo+V7&sVo7=QqjC)!7I#0ZG?Q7_^Q0gfjOoE$P98x|aFX5!X}Ik913W4nN|*Bp%)+ zG;_&%ZCP<~vBzYs*i&0pUS1xs*lVuW)>T(mM{Lfzdur?I>+2H^cgcEhTXS=B#^qJ9 zr?;)Wy}jV^skz?U*WKM+@%h!=)7#hI-`~K@E$6di!^6WJ!rF0Xc5Hlne1fv~JfEGL zo}QjzoPF=i&dtxyFL3Ub^WC-O<>eK@tK-h@+WPwXhUC-pe0OhqdwWOm>w9N+Z-0OP TKr^?z-<};GAFpC&Vz34P(e-?g literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-focus-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-focus-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..77031196789e4d6020aeca48199ab2c8072f3bf6 GIT binary patch literal 1622 zcmZ?wbhEHbWM&Xz`2L@vVabI(SH3Jc@T6_Ur5kVl-FWqH!e;#z&lVkc z(y`*wrc*CER$cn{@86blueP0g)3xf-|4}d+0>dH%6o0ZXG61uJ4g(N?@qG#EHB Ou<|GwOb`%Yum%8;1N43X literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-focus-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-focus-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..6c47a7c893bf05e58e6029c4032ac68a98f0cf3f GIT binary patch literal 1879 zcmZ?wbhEHbWMeR3{{Ek#VabI(S3d2!^x?v@e|s){y7A`UwO9YHy!v~kWqp?=1fLFgFBHs@zhs_!)OfqUFwY#>i3R@k!u}Sv#R-N!o>1V5a zPnWHY-k9}p+tlA?Yht&Qe!O(I+C1<6&ic>4u1e3)e|WfAnAvSl#Ks55Cdhl6y_r#z za(Xg%cG{eo#?Q{r)^6Wtvukt4`K6AF<7#)AW?ow#JG;-fdRy+*O@-I5)mm@Ozp=OR zv)n)H@{f0qH%p7pn`80$`RT>V?RK%dKE1lJKD#_`ZgtuF+q1h(mdnkv`SJPj?&bgY z?b}oJ`R&ES^Z)O&tN!)-X3H{Ka@C=U0|8BhbckR``E3f`tdhzf7C>RZa5fB23 zKUo+V7&sVo7=QqjC)!7I#0ZG?Q7_^Q0gfjOoE$P98x|aFX5!X}Ik913W4nN|*Bp%)+ zG;_&%ZCP<~vBzYs*i&0pUS1xs*lVuW)>T(mM{Lfzdur?I>+2H^cgcEhTXS=B#^qJ9 zr?;)Wy}jV^skz?U*WKM+@%h!=)7#hI-`~K@E$6di!^6WJ!rF0Xc5Hlne1fv~JfEGL zo}QjzoPF=i&dtxyFL3Ub^WC-O<>eK@tK-h@+WPwXhUC-pe0OhqdwWOm>w9N+Z-0OP TKr^?z-<};GAFpC&Vz34P(e-?g literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-over-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-over-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..77031196789e4d6020aeca48199ab2c8072f3bf6 GIT binary patch literal 1622 zcmZ?wbhEHbWM&Xz`2L@vVabI(SH3Jc@T6_Ur5kVl-FWqH!e;#z&lVkc z(y`*wrc*CER$cn{@86blueP0g)3xf-|4}d+0>dH%6o0ZXG61uJ4g(N?@qG#EHB Ou<|GwOb`%Yum%8;1N43X literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-over-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-over-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..6c47a7c893bf05e58e6029c4032ac68a98f0cf3f GIT binary patch literal 1879 zcmZ?wbhEHbWMeR3{{Ek#VabI(S3d2!^x?v@e|s){y7A`UwO9YHy!v~kWqp?=1fLFgFBHs@zhs_!)OfqUFwY#>i3R@k!u}Sv#R-N!o>1V5a zPnWHY-k9}p+tlA?Yht&Qe!O(I+C1<6&ic>4u1e3)e|WfAnAvSl#Ks55Cdhl6y_r#z za(Xg%cG{eo#?Q{r)^6Wtvukt4`K6AF<7#)AW?ow#JG;-fdRy+*O@-I5)mm@Ozp=OR zv)n)H@{f0qH%p7pn`80$`RT>V?RK%dKE1lJKD#_`ZgtuF+q1h(mdnkv`SJPj?&bgY z?b}oJ`R&ES^Z)O&tN!)-X3H{Ka@ zNIv;L3PwXCn%g@huXy%gj+Op!}VvosMv8T4Iyu3VMvDaL$t*frCj@X=a_te(a*ViW; z?vnN1w&v#MjLWNHPj6d$dwap-Q**tyue-au;`6J!r?;=azrTT*Th3?4hKGkcgtg<& z?AZAD_ylF|c|JQgJv}|cIQ!n2otvMZU*Oy==eujm%gZZ*SI3>*we|J&4aukH`R?BK u_V$kA*Z0ou-v0jnfo5)bzdbuXK0Yy7JO13Bou8jySnNID&$ifs!5RSj!F#O$ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-pressed-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-pressed-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..2f60752e7157250077297505965868c6e950fa60 GIT binary patch literal 1624 zcmZ?wbhEHbWM&Xz`2L@vYSxi?+b%WCJ61R6$ewdg<{kUex9Q%V3r`m8xHfOwm04RZ z%{%dB!LA#1^N!3p@uhFegE`x-{QLKB*SRNij(zz*3PwXj3^WuNS(!MPWE2z}8k$)- XqVV&anU2$<;Pz+epk)rIUW literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-pressed-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-pressed-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..fdf6889afa78c7276979a9bfc595a4699920844c GIT binary patch literal 1892 zcmZ?wbhEHbWMeR3{{Ek#YSxiC$G%KC@@3zJC$o-yIdbLMjALJB9QiWs$d^M`o*lUK z?9e43`Q-m77!85p7y^nvSr{1@co}pUfB=*y+DCK5aE#|sKM@-O9RC>@c_b_t8XTI~ zL^VPt6f8W*A|Pzjld+-UD3hqZl*oa=21gbJK?xIwO9xI&V&hz)GNEYcL15O|(_<-| z<~x%i>Cu(S&FOx#>~q=fa!z?3FyC#mSgck^X7DnX`Ch$VqM9MAgExlRp1S%nY<<+> zvb|Pj**Djx9GoY*dRy+T?P+(9wRV@SySuC6=B2CE)AR3bZFu@m^v(8y2YcIptI74u z_>gqCPuYClnuwy*Q$70G=gvqPrJbMcSYGFI>r=+%MZwem?XfC(eR)mb{xIF$Wp8e; z%YA-~w|e{gdj~QHE*!`(5?@)#L5<_V%@ZzkhjnfBO3U_5c2V`zfx_@Pjuap^@X0`+_ER XqZtqC1h{@IXyFT!co@pa$Y2cs4#1P< literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..522f864ddf7433c96e927edfd1369a2a096137b0 GIT binary patch literal 1589 zcmZ?wbhEHbWMdFu`2L^a-@kwVN5N+|z`)3$!vF-JJkdUyBSvak81*+O c1UQ5km^oxTHY_;U%pt55b7Di{!3G9v0A{@h1poj5 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/button/arrow.gif b/docs/extjs/resources/themes/images/default/button/arrow.gif new file mode 100755 index 0000000000000000000000000000000000000000..3ab4f71ac115188898fa2701b6b11561d0461e4d GIT binary patch literal 828 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 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/button/group-cs.gif b/docs/extjs/resources/themes/images/default/button/group-cs.gif new file mode 100755 index 0000000000000000000000000000000000000000..3d1dca8f05ca550917346830a5a0ae4e16665181 GIT binary patch literal 2459 zcmeH`i9ZvH1HdQ!yk5P2p?H)dxpp{mJU@!;=?=U!!Pkq*zsjUC!6Bk-dSFVOt_!mB{_I3VoryMO9y{@Ma z=-n9DL$B{GJqcGoa`AW@KtUEXYxS9y%>dB{M#Mz_E@4eP*_kWX z^$4C>m(33o-~&JGx7SyMz30WrFL$>$RxxA>k0+M{zIVY>_Ns?Yre=MWTI_qhMP6lu~OPcC3oegZjRc3=(^V7L)w0*({)+2G{4{T;} z!o0jGzAzuE1S`!ys~+~X;Ic~gSFD>2s0i!s44Nr2{v9?`?2ia5C=Ng`%#;QugJvIl zX2534LY2Z0<&i8qVL7rJG?#U&KWwg2Z6tfHDp4JGvpPj7exmxGdU$C3eVxYnn$L!U z`PxTjbD?!bexlEHC5Xm_h{s6L!t<)w{UTi5CucPzxwui(_yinUcAMBO2QMa*XVGKC z=GlNC5?&-)q})%Ygw02%fDp? zVNB8KSM#G-X(81lbZQu7nT3hsnXV^A4@CVZF?NFV-}t){`7%2$Np8AIR-7-nvHOnQ^Yr z29ODG<^*{=utg%~TyB+{CHl7?LfQY-rAyiI?J<{dz1}#QCwUHfpd2o~hf|W=KB6QJ zu45SUAF!!>)JvC{YD)6?1&ZX1^D@s|{)cn`#dBJlpkU5!N_ZIg4~{NC(Uzy6x{{=1 zKe?rfYg@ITrV0~|@8ub{|BR&EQ|Ia^S=qK8j9Iy>vok3>3+xaUQ15r1*4vMH-k~NY zr<-xLf4OeU(HvTdwc$>QVsM?qQfg-Hww|)w(fE}flAPtt)lx0AZ85ZzM!P3YPuBpu zIz4GQX`B=4@`f%`F)25gdrYI#mTiHRMj`BlpN4SV3>xj>^#pw_p3!SNBqur_%-}Fb({3Vq!raSJOb>jsf$Mg_Ll=3M}zGh0*jv{cQuF zqmjT9Ni1sMYJk1%XufpWRdV7?$2CxI+916|kz;5kukQ^K6G~rle?6IYiE>rdD!AJo z!NKDDVl5bDbMZ#j3K=C~N*BvVzNyC%m1wm(h9_K{;$IbDeX@-l!VY^kdI9N8_1=jfHxh8T3_)wKnK|Kp zd#kHb=JVjpZkT2o*vDFxiHooYdyV1V)pyhI?)CaUwehdL_6Z^()SB zh=d#_`1@P3XpBUY8&RN-J+pLr$&4YwYPAf?9 zNv=0?zgF??W86>)p4GbSeVcF@FJrNNcTI26z+a}2%;xSja7^K`kr~TUVtBW8#)oO;GY8+ecXL81wkhso@Q7N{RGV36L4-Fn0@B=bZS$i$`@>*e=Y6L&Ng dUQu}td}@Irs8Us{==-D1xS|KJM_Czg`hV^ynJEAO literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/button/group-lr.gif b/docs/extjs/resources/themes/images/default/button/group-lr.gif new file mode 100755 index 0000000000000000000000000000000000000000..7c549f96d6064d4b0cc022671fd823c13df36d8c GIT binary patch literal 861 zcmZ?wbhEHbe8J4f(9Xcn@V{aEiR+JFe`Od2qaiTzLO}5+3p2>qIv@g+Cm1-a7??R2 z95yUC*vuiU6?0<4!o%$X%3gCkHZD5aEn%E>=fuXv$NLqWyJS2!Ejc+^BY0KJ$xTbW LTbP(wSQxAUYf&Xs literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/button/group-tb.gif b/docs/extjs/resources/themes/images/default/button/group-tb.gif new file mode 100755 index 0000000000000000000000000000000000000000..adeb0a4cf54bdfb626ab6f3c070f6e2919f374c0 GIT binary patch literal 846 zcmZ?wbhEHbWMt4`Y-eC-_}{So#PvfrK0JQ?m0=W&hQJ650mYvz%pfo8fCx~YVBpYZ yVCE5U*s$PWGl#HNOoc$h;dTLKuQ?tY7ai@EFwVMjV&mfD{R+-`G6D(;4Aua=h#nIF literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/button/s-arrow-b-noline.gif b/docs/extjs/resources/themes/images/default/button/s-arrow-b-noline.gif new file mode 100755 index 0000000000000000000000000000000000000000..a4220ee9066357ea2270a842ed244bbaadb23de4 GIT binary patch literal 898 zcmZ?wbhEHbJi)-n(9Qq?M~)mhbnDyy|Np_fQDQU%Mo=fuXv$NLqWyJS2!Ejc+^BY0KJ z$xTa7Pd7+DHOF)FGT%0aqGx+fZdP}nYuC)RmLp-s#l;?zwPH_gS$TPRz~V9<4hCxg D_B%R6 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/button/s-arrow-b.gif b/docs/extjs/resources/themes/images/default/button/s-arrow-b.gif new file mode 100755 index 0000000000000000000000000000000000000000..84b64703006ca6d86d335b89f8d40b9fa3883c48 GIT binary patch literal 937 zcmZ?wbhEHbJi)-n(9Qq?M~)mhbnDyy|Np_fQDQU%Mo)`~r~W##4N0gJundTm{G tbu}Af#?`K^tFNzT+TJAVU8dErDdY00*wfqA-ripD_|#nQ={XJz)&S^DQ3wD4 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/button/s-arrow-bo.gif b/docs/extjs/resources/themes/images/default/button/s-arrow-bo.gif new file mode 100755 index 0000000000000000000000000000000000000000..548700bf45a4766e4633a2ad21cdd03a907e191c GIT binary patch literal 139 zcmZ?wbhEHbJi)-nu#f=+R-O3x{>OhHL-8jIBNqcRgAPa(B=5i!GpB#$>9_og=WMyv zz4@M01z+1Ek7>_3m%Tc*Z6(9;Pd?Yb^*;Y~?)yJ}o<}i97JcmS(V9N7;WKBi*YYc? qzIL6>+J0x<_w3ZJ<4-pI?D3myle6{rUd98@zwG+kS1-=MU=08a%|q${ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/button/s-arrow-light.gif b/docs/extjs/resources/themes/images/default/button/s-arrow-light.gif new file mode 100755 index 0000000000000000000000000000000000000000..08783c9d2f269eeb9799f2591ef41ddd2b14695b GIT binary patch literal 116 zcmZ?wbhEHb*_y R+_d!cbc5tmb0h^AtO41(Cb0kj literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/button/s-arrow-o.gif b/docs/extjs/resources/themes/images/default/button/s-arrow-o.gif new file mode 100755 index 0000000000000000000000000000000000000000..89c70f36fa653684087485ab673043ecbf615cdd GIT binary patch literal 937 zcmZ?wbhEHbO`C@~rWBPawEf3h$$FfcLbfcy-~6AT<} z46G~?3JVq-Y-VLwiqV*$aJZREUaCi9W8%>kKJB0>J3c15x5sMVlHA(yGnuN7&N42);+}s>}e3|KPvE1;j`8SW1{tiuYV6X-NOpiu@ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/button/s-arrow.gif b/docs/extjs/resources/themes/images/default/button/s-arrow.gif new file mode 100755 index 0000000000000000000000000000000000000000..8940774785c25d4467b239aa608a9eee40e273d1 GIT binary patch literal 937 zcmZ?wbhEHbkKJB0>J3c15x5sMVlHA(yGnuN7&N42);+}s>}e3|KPvE1;j`8SW1{tiuYV6X-Nh3iI; literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/datepicker/datepicker-footer-bg.gif b/docs/extjs/resources/themes/images/default/datepicker/datepicker-footer-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..1152ee3ad364db26296683a21b3a0f80c0319fe1 GIT binary patch literal 1833 zcmZ?wbhEHbI<*-O z!NF!GPK}ro8x|gJ7f_a);jwX%D~p72)}4$6i;wp!ICsf-1~s0XtP#u?adOkr)6)%- zPtAEL)NppTMe(aUCpRxYKZmJ_OV(@4ii?XqCJXT%*s}8S@_@x&bG^2%y1F`IbJpEc zTUTFSpK!QK)_dEUo0~H(uZlgrZSC#t1&>e7_1?bj?(T}uukN1SzW)CH24-$KpB)<> z9_|piJrDv1h z*QWlM7d%7dwbXO9)f?Eer=JwH3%{MPUv>Yz`IhU}Wu4Ex_D6nYw)iezy$=VUh%|?u m{BIdidftHN@Zdq_hvK)rG4n{X6)FV!n!(f6&t;ucLK6VW1#h_k literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/datepicker/datepicker-header-bg.gif b/docs/extjs/resources/themes/images/default/datepicker/datepicker-header-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..ee316fbb2363a8dbaff6b072e83e466685dda514 GIT binary patch literal 1860 zcmZ?wbhEHbOrGdwmfI@&FvE_LI?#>L0`70l%%JU1=zWYGv-6?1Zv>M0h3>%uS`@#!b8@r#IaY^eE?KWF8Ubt`leJ<`ZPC2M7O>cBuGWH8S64@D&RWa0VDXLoOZfB!%;x4hq;9UmW`n5-RtZqLro&o3E-r|0|c-}m?TkI%2~pWpxgO#_2904^$QiU0rr literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/datepicker/datepicker-header-bg.png b/docs/extjs/resources/themes/images/default/datepicker/datepicker-header-bg.png new file mode 100755 index 0000000000000000000000000000000000000000..45d74d7e3bd91be836654132cc24fe93423cc864 GIT binary patch literal 309 zcmeAS@N?(olHy`uVBq!ia0vp^{0t1tRvc_VR$Qm#Ng%~i?Bp530R%N1DIGvQXMsm# zF#`j)FbFd;%$g$s6uj=~;uumf=k4W#oDB{z{tPzWPQXm)!T(} zl1HTlQ>B$RHCvyw)cv`B?&rLO;Jt^f>Sx}0HRrNi@~x2S$U_D^hX)N>-zwj4X_6JX S{)`yViwvHwelF{r5}E*Fp<>4X literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/dd/drop-add.gif b/docs/extjs/resources/themes/images/default/dd/drop-add.gif new file mode 100755 index 0000000000000000000000000000000000000000..b22cd1448efa13c47ad6d3b75bdea8b4031c31e9 GIT binary patch literal 1001 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 Q&Ma5+V#7h^qYVt!09Vf94*&oF literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/form-invalid-tip/form-invalid-tip-default-corners.gif b/docs/extjs/resources/themes/images/default/form-invalid-tip/form-invalid-tip-default-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..a16f169441fceb9a515ac134c3143a3cbd525fa4 GIT binary patch literal 1690 zcmZ?wbhEHbWMz(7rLpDvtPVx@JXB}~ zA+lpZ!a)HJVXc@G8x)JxOrA&{|| zlg&ZIVMF2}_7;8#4~Gf{=Jv^&&H)OY28UUA`S}_Q3>q2Py5v;~9;`gT?8L#NB-5}U V(Sd=Lmo0|jp`sH*7b7EsH30G#+lK%E literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/form-invalid-tip/form-invalid-tip-default-sides.gif b/docs/extjs/resources/themes/images/default/form-invalid-tip/form-invalid-tip-default-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..bd64f328877e6dd3a7e7cc7f5b11dc1f2a4c67c9 GIT binary patch literal 1647 zcmZ?wbhEHb4Dos5zl2Nl0i$4P1EsCno@ab>G7$?h1Ysk3a6c$Zo4Dos5zl2Nl0i$4P1EsCno@ab>G7$?h1Ysk3a6c$ZoiedU|?(etsf6f+si5mrP-pS8AO_YNJeWr&4gHRCB0Sc&uG;qG5BSVs)lucBN-{ zr)YYrYkjM3f2vi6qg#TrcZREXlf8SEzf`8xUbgpty4+{EW4iZg!1r~=_j$(o ze8~BNf`W#IhKh=cjgF3yk&%^^m6@5Do}QkInY)acx{R8>ke$7up`oUxrl_c>uCA`G zv$?Ucv9-0evbVgnxxKl$xwyN(y}iAHo57Nw!Gfd7i>JzfyWN$c!=0zVo~g)}vCx~l z*?_*{qprxNvCXNp&#$=8rMA(ay4Rw-*{QqMyS~A`zre7$(YC(Txxdha#ps92?ux_X zfz0`e(D;ne_?E}xmeKH#)cKs$@txKDo!I)a$ltrd)vMF$qS^bZ+ViU2`?t;Gvf1yy z+wHgC^|9amt>FBz;rq1W`?ccyx8?l2;PboW`@q1#!o$SE#KgtL#m2|T#>mRW$<4^f z$jZyi%*@Qh%ihb*)XC4?%+S`+(b3h_)zQ@1)!5wH+S}RN-P+vV+}+;A+Uw8M;>+Lf z+~4BBY>io~@_|EM8-r?ij;px)l^493{)9m@t z?)}v4`PAck%;pOh<=jiC@ z>Few4>+J09?d|I9^6l>N zio1&#GrFT9WSYm1Ag2j&p{u0Hle%2EV#l(jOLnd-hM7q-Oc_2KJ3iUT^9d9}B1s|{ zN)!nbCMj3Gd>PYS7*$YJy@EvxRL*HnE@{2Ai4!NFBXuEJM0OD*NRpZ)UD~o;yQWW7 zv3ey7SG7@Bvuf??sTWwGWzkB)q*f(cw{GFirAqCZHdJ}J^6k|tQBbjF(PGM^$;n!m zh!Hm>18WvFZQQzbb9EJp*S^D&C4+RCiDpfGdl~x7E_CRoXK-EH*4r(u)_sFLlg3H6srOVndaq^Bq(PIE6uVpPZ!L!U z&MxCM^5;P#&N&1Ib6FFd^fC-I;fNECC-wQJQB$Y55=&#-aI=jzR~Z6HCZ3!}-7uFq zQ3xZFc*09C!SE7cXcJnbkwzSaWMfz;p`?<8F&5+_M+yZw(nCb5MA4Bk{aBEYK^95m zHBd$=Wt1{%B#%57)o9~7@tAX2j><#>OiI_V<f4Fm8jp3{iK`JFg0Earxg+)mYCQO1u3wt1= zNVcA`12DI}s#44gFvze2mgAjUOaw5CFb_G;k`zcSD5%iF4d?(9Nwy*b9B{9sc$0+; zGx&k!e>EE74G%D@0na%GhNXltMX=BU9^fEj3D6tz*Ak(p#8QkFT(r~8h8=2x%@07l z^UN|NhP4DDw-}MeIKJ%vk_*u6Y(w0cRl0K}jU9PpPCQ+LgrhFMIMd88Cvj>fs7eyV zq(V+UH09?|X0G|>3w7QQ=${vk(cxEZ+4$opg*m3>mlIl$7gBIw##L4H-n$r4U?57J zBz0iC@l}M70T_OkY0C4^hXRTz?AZRr^fEaKUKU0XJ51*)?MW`SK zGl&5d7??m8#=tu>fIQxXc$Y@BlAdKmu1l0~Q!KKT}XKhBEYm874ph3SgiWsMuYNz+eUi z7;*uvI7JD=LO}>XKmr#Cq!(OBMJhtCdKT$|C_vE1D*zG=SGj^HGGNFkB+?9*34s|r zAOQ(fVH9Wpg9|}%$4e5b3l#)G2v8vkQG6nlVmN>XG|&oKqTw=8xWX7d0D@7NVGIl8 r6!btbJzExzbr{joG#1ymk324NldBw{Y9~5_knSL+J00qz6c7MAhD0lK literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/form/clear-trigger.gif b/docs/extjs/resources/themes/images/default/form/clear-trigger.gif new file mode 100755 index 0000000000000000000000000000000000000000..da78d45b3214480842c62514af524f4aebb66124 GIT binary patch literal 1988 zcmdth=~t5n8U^q-VGC;mBm0hsV8ubLEt_Ll8<8_(J7+8+GN29vjM%!ALxG`*vV;KaE8sA!@Y z4L3~1jhLAW4>!Ua947Tqg?%((Kh;b$Ko$&=1w*rGb*ec?N^AxVXqe@UN>0 z891^{u56v7+E|jCmSrZke1FwUW#X##SBxOn2(GSyLZMKlQmNHyjYgx@YWd;~fq0Ft z+7v0*1j;R;!o*jZMDlHsa!;f+iM1w)YEP=(muf+oW=p08<(hqkW|zMX3O7KpZcnTO zrMf+lxo?0HvrSO0Hz^EedrHHu(zqvI1C{Hb+PJIP0JWQ-Y#UT;feI6-)9Lhjy}@8G z8jZTOUH$s*&hGy1-ahdEdx6`Q=5Zi!^uxptKLNl%;1tXUNoYe@!v1h1gG9hjRlyIY zT+i)opRVyJ$m^OWcFfcd!goE+KKq624@2~*{(Gx41$X#rT_Vu?_+4{kc3!~LZ@o|e@KE%NaSqqM2CdnRrfg1wYE_n>MZsu=aYxhs@ zZYg1(SHAI5{)vrY3S>+Sr2G5!}cb)=Lak{l#IcWFsP=h z54sOE<$IwK0i|U>!mQGuh`69u9r$a%T`NxXx|!$| z=ac7y%X=&#XG<+_jk=4wnhTGFb+y-lKaBeiK%tbtM}APdfB|~CqPsh#af)y^(trRQ zEp@1acO7D$So@a(lTLRcQP%+{D$xQ)D?;t7^o`EZs~jG0R~!KcEY9V= zMfruL`9PuG*Qsdx+dj=Ii`&E0II=PwOPulj+Tj@q29JB~T2{m(hfi&|!E zBM$OTv98=N_;e}11gu55UTB%9W)-L))9jWO$gpd{tFfCL@43sLIsT;NS-D3u+AQ2N zWr!%TS6ADl-D$@0q>qlSMI`y2eiHE9u3$58=)j+XZx;IBIT;=;f85a*t?a9*L%6-} zN85P+E0<{PUGyX_R!^ME+)_z>Mape4XM92w`b7;YV!insg9^+qDfzUevNmaJNM0}502MlVmsU>iV}`Lr`6`Bb{t@C#l~>;SXe`ck9;fs%svkL zUAe$-+haTd`enn-;A=LHa#CU?4rl5R1@d8MkEOU&)s-HE(zl)`8NRsxz3AFuDKdp$ U;ezY9-WkTkP-6N%4gg~Q2Qp;nKmY&$ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/form/date-trigger.gif b/docs/extjs/resources/themes/images/default/form/date-trigger.gif new file mode 100755 index 0000000000000000000000000000000000000000..25ef7b3ae73c0918e97b5fd9c3e0cc5c69bcc14b GIT binary patch literal 1603 zcmeH`>o?nX0EfSlh?LXSh6Gchb&K0_)}2tjEVIrf*mT-cZDZJ(tUK`vtS)2>N?|+Q73~jaWl`R5gD__+)uHa6pc+;!AnYA{)io;j^$zK-;1hccV zLZMJ363x%gFT6y&EEbCw7Z)WGiBu|`_EpHn+pf<~!qL)+^@kuX9ddA!|~^bJ3jxY7!i&- zO}gJ$d>WVTX%pGG&aZ`i7E(VkK4Ja9tTI%PI|;LlFAd7J6{u?I^lr=khW z9L7j`^i6YIRU?auTO!iU9LH=Gd5-vUS@FpVMr|<;$*%?ORm3```@bRaKQttiW@oLK zmS&$sxRipjURP}nFmq^A<(b)H=?}HU|zxLk6-(l-GH&)mfGWY^u;&^?qN?-hXLw=_HM)?_LTNA4G zsBw*La}A2CNin%bUxA;Rs<;hKb&}+dDT+tWQ+v$u1E@hHKBpB6^8%*UNu>T}-V;&` zC)e$p#G(TZQwN5F$c;GFx)QO>SxZu0WlrpuDN!QAjdPFE9)D zX+dDf+Hw?@?*Qw!SL6F*9ldlz)&-T?0ZI@{H{w9Ms2xORiTlP}%9An%vH3|!!`=mn z+mo)9C;F$}SxC~4;*|UK@Qb@@{fx)jZ~6(JsBZmC$gX$Cbhxna%csHaMO1!ZFu79z z3#m5DMw~mOPFziF?gW8O;fA?Uh7T7`rp4$Nu#bHRbCESg+@)Jxo5rcMcd>>5 g-MOq(pFXLdRU~2PX6q%R;{Do7>GCKGOG|L!Kl0xUxBvhE literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/form/error-tip-corners.gif b/docs/extjs/resources/themes/images/default/form/error-tip-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..6ea4c3838768c0ec3b5dab8e789333593295c15c GIT binary patch literal 4183 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 BA5{PV literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/form/exclamation.gif b/docs/extjs/resources/themes/images/default/form/exclamation.gif new file mode 100755 index 0000000000000000000000000000000000000000..ea31a3060a36a625cb5cfdf4fdc5cb4fa5c3b239 GIT binary patch literal 996 zcmZ?wbhEHb6krfwXlGz>`0sGY+vu>b$x(l^!y&e3LT!$PJ06d9I~VJ7A=2?olFzvm zzpDxE7n6N1CI(zd3A#}bd9NVyZb9tbn*6)9`43}*9>oVgP7HaP6#6VR?0I_l!meOY(6|dTBUw78N>aBj$UH@iM{ilZ1FAYgw8_pbc0Z{x51oBkf&`s?Q9|Ns9pjDkTQ0*XIbm_d%z0TG})!N75lfssSTW5a@j z7VZsy6h0k$;Gk@@Yl-LKR#u*NrzJaX3aNBVGqZFP(Gfc8+b>uAY)8hyXKfvg1xYiW zY*bF=5>dbAA)s8qF(=rm< znzH#Wl@*DQugyk|h0s(J9u~z4MZR499ryhC^~?K*w-=e{wl~-nv>Egj1cL7gguBx% zT)Zq@NE=-Nt6g4JyGT~9fVo?Mjr%bh_W%^(#8yHO+#|w*$V3wYFrM_Cf1JV+84je7 z9ROpGU-)jyX(BU$6nbeLjSW4@*$~LtaEfn9=b%FPo5J`zLU_AExy0xc;4Ihg&$RuV zvJGs78Rz*%p2AAl3(x<8lzp}-|FX4l%|7EfIvgRBjB8tSQLP1VZWEF#ywdLj z>2hyD&Cz7(vFsX(us-NkLs+sfDkV2EMfeY2cqXqlT3nl0R8N;Z551!ZFX)PvHbvg; zPAF=Ql@G){8oW?FobYU%-aQi8(syOzQ{37bFFif|+O^~xchYiY*TsbylHyFUEVrOS zC@mHh+?B~>#g(;XRrU9uJgcg0tgWkKmA77d(0=`qGNYy=^WpQ%CrV+BN>bPLw6R6f z(sR2_!|q(n>iQ^DjS2e4MK5Qv`<8AFEsF-0Btwh&iZ>0-?TxLUQpLzh z&8rU$BjfVd`o|+*kbdR$!ncucOIodVe0*G|(@jlJ&&BTL3F4!sWQKrZSsrbm`jlswPRiNw~ox#)EssIi3K_U?mR$7V-IC9eE}g* z5#SHoR>a6~NhI<=Q;WTt%?}Qu9NUN;+@wtJJS0y=!z59V(h!KT_cmHu5NujLLCxE9 z_QU0%P-;FGb5tI6*gk|&C@tm`|9+v*B6nv=lO}$S+iOD$Mn~aW%lOvrmnW;VvcjwTy1x_M|Vx7g?UOR%A{vxR1=O9xx`_0#)mAz z#O%%n@__a?l=898*N7xDAiI1b<_~Z{nslUk?g_Dey!Eax#h5@k{{; z%`faJ5{8R)QaC;cQD8x5`VzNXi1Wqp3x`c^8P{6P{gaVWuFtYe7c(1?zIg}q~%W>VJ1sc%Av?5s&yuiMsG8Vvph~HOnJjUP7z}R9x z!{}s!KCBJ0F`$WM&Ver~;K&ocSHW(s6Mh)nO&1ErxjYUP9z|fJI2_q7U~QAux`?+R z3gs}A84lrf=7C(=X6VrsYzT(A2H$czA`b%`i`+&{!uU_X)(G<^EyNUO6=M{u;y53QM-q4Y5!fjNf2B$c3=RvJnhbNor$)h(^K&^hwf=q`1g%>cIxsnNp85qN`tNhU3jbmaN?09D@dd_WcK8kleih literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/form/search-trigger.gif b/docs/extjs/resources/themes/images/default/form/search-trigger.gif new file mode 100755 index 0000000000000000000000000000000000000000..db8802beb370d7554d5319c0e0d5c4ecb8da2c5b GIT binary patch literal 2182 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 ZkbiNJBLYFXC1qVT#6abhSh5fT06W`UZ>azP literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/form/spinner.gif b/docs/extjs/resources/themes/images/default/form/spinner.gif new file mode 100755 index 0000000000000000000000000000000000000000..1e323bf0b68433bf86df2bd885c11a607a0c8b9b GIT binary patch literal 1975 zcmeH``%_bQ8i!8^kRZ?+paC^F0TB@qxoJ}n8&DxEbjIiwT<^AsG*V28QY%%#&=3#{ zREOex2AqnAPZYLx;C+EBHN9=EX<}=ScKfg0?d_o-U zv*T$H8Cry(&^=een8o4D;)s1$w=V6US1;5`F4jpd)k$*eB~8tLJ!8lC#>j`!51l&7e5>Kf6CXD@)##fWZLFvqEsZlI7 zh^59snPy0)5zCBX89Xf049c_vGQ*%uKOlpLWZGf5W=O6dmg|P5OmC)^yf~tmd#iv) zrs2`0DPf7yIHuG~l%_GIaa?H_QyIrprgtjC{QUgF!or7Tv>&v~%nYDnqrM6-kE10zcquDxV1+dvVzib<9v6(EW$zofypjNBZga8YI zS`eEB!K?^sLIHvxRs=Jnz=~oBYC}*AMNzX2peSas0jmulOKrn!%U}owPz=~GfMMWo z{!bV1vDo7v2tYy563agU5dq{$q%az!moE|B0uOa-g)i_c*R5qxnZB_+uTLWTx(AN$ z<`Z|sqED*-NZ9GWFRVrYmG%C5`AAQyLMY6?NsIOf&2vAA$A=y6aw+29%e%gw>3cY} zN%e($%6{4{?KS?J2VW>7T3ByNsvI`86?MuS3Pu~US9|9Q%j<~S@T2_nUXv*A;qjOM zj=pKit$2~!Z-2nuv7ur&YbN&Gn(u=TKRr|!f!hU%lj{$Xn@3xJD5%7Jm(9-R_;SWc z8Fmnnnxe}a2;R;m_qQ}1ZBJW43P|k=@fyltK1iEyp3kFpbNz6BP%cDI_=Pa=kopts z@u}3MAZzOU3TYdT4^Bp3Uch~jJo)}befgD~;1k5Hp7iv-oM7p`D@Xh9wQ{JCTUC6P z+(|$nL3T0TM3=XM_ZM+OCZ0>JARmFwxs3eA@rbM*JLk5yI@!aI@ho+^p?=wGP> z*5<~14{qQ6?jN~~s_C+XV2R=y6N5S^_O$!)Zg@MokU~f4?;U+ot5TuU3N4R?PbIZE zl53a+tFx{i3;4ZD_NR(<0dt}YxHV_(-Oe;^6jJw{*|@=*L1C(^3WE>4E8eQ%@YnAA z6ASH&7G{QtGr=j}P%&ZpYxI3wo;gOP|>-0KV+t}iCZ#?uV+SR*7n7?g~{hW|L zx8<3ib5er{?_SI9GvCgr{7XG(ZoD=Be3Smgrjd+?#epRhBQDglmEGp-{B3xRUHuqq z_`I+u+|jF5%Ja@_Ers76{@S(D!E?WuEJ<5a@aXNKoc`=lucW7&ACDbKeDcKq&V_7= z5(h~3H#4`9RFyFS%@D!wOrvT|G$WGk>BkNUyi@cGiy|-DIYtwdCSJ^SOHx$LQ1_qv z2Yqc)K>mM$UgkeuDI#^r(d|^$Q4r6|Kwv z-K3+sAi{Uv7>UWQo_ud#_N8YpMKgr6sXf+D~*JEhbc-#tI&Y%63>- z%qrlyfz0UkwBE5plBag)y$Uv6yHRqYIrbKr*5I(cw4JRGa0!p8pBuvkoFFfeQ?fRX zh2s)Mr9Ah6`!4Iyt1sKaZ@aGA;1rVY;}L)-26U|C-N?)P=&YLix?4nu8uod9J$QJv z!Jgz8ZST60TTPCj4HSOM*oAW&;BAQH@Ph;8&ZjHv1Jokkrx6_~Kl68m1#t>^)vLa4 zN~eTbg~jnnQ@C1UXH1jKB{?I1wXCfxpio!BGvleajd>2Jtd#!_@9SwHI9Akd_N|UB t9+NZTu$Z#)3}Xk~-$Ba8#=V)fUwM3XH!vlkF&BcO{s)2W&!4}4|NZ;_|3AYh7!85p p9s-I#S%6;r&!7YHC@4=ba0oCkvIrP7I50A^3uwfgFi>Ey1^^@>A+7)b literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/form/trigger-square.gif b/docs/extjs/resources/themes/images/default/form/trigger-square.gif new file mode 100755 index 0000000000000000000000000000000000000000..3004ec589026c038e7d056e2b99e3a877d1ecd50 GIT binary patch literal 1810 zcmeH`=~I#k0Eb@@(r`m7uUt*s$}CGwv#`U(3p3rqV|JbGJ~p>wuw%A$t1UBIwalz( z+{&#$%ZT+L@5&Oi)(njo!2=aJUO-TkLqNb6-<{omV!!O~!}Il-d1iizNhCtlp<{qI zFbe>0K=r2)<>eaTOHke`M`}Tc$K&-w`Z;)h1NmlC>qos_ACXo(VMBP*8NSR=2g;eC zTse!>fe=?>)ai87)6-h5_EoP^AP~Uz`M$nBKA*3fwW+K~cv^AWkZNFHpqV2d92_)R z?LwiDBeg?jq*rY07MUBnWnJRA;o;%P^jikAjW3;mVK^eS*lI_(V=4h;GFfaNL{^bV zWP|59VCLdoYHQ)h*?r>{i-ixF%vSq=!rTU`t#k0} zUggI0TWvzs=P^~+(A0Wn8IQWMaOQ0fTZF_<#RVfdDJ| zU-P$Wo*?VVKr zv>QMX8JhcNpY6P}`bdd8lUmhVPVfpMuo|9opEw=-v~3MQ=RHRG1nv9Oc-)Z|m)zHr z)TI1eNurS+6-EBZuS;&Cc#vt;!iFD%gK}8SH6tyq?@1m&3uTYPa>Im(Gk9&3h6-_B zp3}k4Vn(P0zi~{h{VkGnsuu#lr^Ct719}PhhL} zwJTGMKb;z>Igsvlx}rs~`R#5PcR8;)iRvvM|Jk(+(lJoch!ov6ixFnDlj011>WQkv_op8RKJdoL^uEJJCSo!-%b_pjdzFFrJmJ5u%l|L{a0h$@c| zQG*K7nT$MuxPuq(trliLXcs$F;zO;`Hcjg#WrSFHN-C$kgd zQHVYJk}Y{TLeFA3E+FTQu8@r5a-tocYEMo=ei(-!z!|5@yEuY}*X6J=)3sNTi&Up} Wr&xDc=v65PKOA33bU>qlt$zauvnrPW literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/form/trigger-tpl.gif b/docs/extjs/resources/themes/images/default/form/trigger-tpl.gif new file mode 100755 index 0000000000000000000000000000000000000000..e3701a383107e090fe25d3fb8d63aaa9290435e9 GIT binary patch literal 1487 zcmeH`{ZrC+0DwPCBIojs3o|_0?P^-#Ox&%!R?e}@xx}{YYR;I~>N*jn-Qn&=-p-KA zeA(%=S((N$6_|l9fQC+Hxi9#N2luQwPBW3%=l!}^GELum-8=KbTwwF%Rj%DgphgD1_aTFbxxSbc_7 z*tiC}T&|Us6}Q{%@p#OB*cyNreCzg?@X|W$2*O^k*XQ%C`Tc=FAQ%j8?6A4LxwQ?$ zFnGh80{=sSgX_p0D-7aZyI(&6LSe8g^uSq3699<4vDu>uKv9OqBv(z-4-J(@5=c^c zCvT(%gPg*qb@7!*M7$td*%d>&myq6H6@|%BvEwc%rj<`}&sV>d68bLbzTg)ez92R{ zL%OWyA+pbMNDmz0eA2_8Du?G1p`W#a zi*2IW=5FT;Nm@-f=nK&Ju|GKH$G>G{YFkTqB2{y*&pLXG@cG}HCp8gjUV5YGKrX;c zKcN|~+$?$NF%5hJAHnq}74oAsZQo5Wi&P-SqG~)}Tn55ltvZdK`IT)rc<_XRg^Z+L zEoNSBGTq*jc(eqdQjVJMM2OG;fu#t{Wg$qSxg0~TkXJ<4QMskK7QwahebOaMWkPZx zRCQcO<&}om1lH;#2Gv?~f?O}Zn-ZB9UH!@7hU*~W__FO@Msfvo|59dNOf4yZWj)Bw z%xm6#wG3~s&!Wh#gS~vA{n3r&QHV_+#^*Lr;_-`|0`e>QZ$*LSBb*;mXnE6}$b132 z(DJsR0TJCw1C%R+wAP Mbv*YluxN1lKj3usvH$=8 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/form/trigger.gif b/docs/extjs/resources/themes/images/default/form/trigger.gif new file mode 100755 index 0000000000000000000000000000000000000000..f6cba375ae3a96c87639a5b3034d204953d1db14 GIT binary patch literal 1816 zcmeH`_ft~`0DvC>l)V*M8qq2uh!jyON)b6kq!482iD+?8gcdhyFlbZ|=|RDBw1|nK zYy=g-LKp%@NJ7F0kj2X&VI?8&k(c$_{t^AH-#_r(eRtok-4Q`Qq@Dnl0SotmX1et2 znD}NDyN)jG6Qb30kilRKf(n0Ju2yFdDUimGJpp_36beNxUC5kJ*3g9v!Msd^{)2b{ zt)YWDy+JOQ)A*{nxjFfQrm0UnJ3HGlGWq@9yh#Kd7#LtOnJgA-XlMwAVF=L=4-dbm z3fXKnRiF=ye+a^8A5VqoQJqfL&C@akG8PEYxRXj))60QJM@IwV@*uUQp?9K-gJ^UH z4u_-FYMW@18U{!cz;a0asZU(Z0H>#?IrHd{2&N23`ni(|NYg@>b`8qZYBi$ODPSFh z7`jJhAVkyHJFzMLVGDbb%7s2qg)pKQKO~dc9tw(M&*S2TMv}O{ul| zX(hr_p*$X+#+A0Sq=O=OW@d&4Y7hhgA#_j(ixyB=hq5JVKA%tHNdpt|spDd)a$!U? z)5sF_^Hs10Wr_7%E*AvBz=Vf`lc;0?RY8zKjRwZ&(}g;vQppgb43Ta~iVm}RDwPWO zpZ~tVO2otn0PX`m|Em6d0x&}XXEXQ6TK?^DjDz>V9vskq*Um8{ZzSEb>&{ZYsD`$> zm)(zuOII)3T~F#=j=_{4?5+PUs&M0;zw%rhk5ixe#BCnweRnc8-_pj+BdVzUj`_L_ z?#D?-(@DGs1nWi=zJ{hbxhrf&%I9P;z^0j13zsoCgUyB!LQG$M=6Bn zEAz4?W0%OlXZ*aUKJ;U)pd(AW$gbc;9oStk74bN_sb181!*oCQpv$^Dw9=iqU&fOF zA~XHNGjV!qu8eunzbD^*Rqi>fhV#@l+mqU6##_(wB0iO=C7ZkUxySYgSDd!7KA4`t z06t~PYMpC;jw9vdJDi-&MA7~e!G~Qkj#U=LMSSMXfRx;YLuK16N&BjCr(TdvP5rdc zt{pce*VU*awki_c3{bJ8r)Ojoe=08|_7OJCv7kK{Qgd2!MVLiRi_8Mw-eFrw8P7v;1u9x z-}%LDSypYcB`tYg>w`BBcdlCOdCe)M zfedWoWIDv&Q{*sXo@UiMg$8V^0TPUXMplY3&fDl%31>0(Zc)nn!H}aK4fIu=z6)kv z-+Z?)QwhI?k0h;tqPxe!h}L*+mSyQBc8+_@CEm253L5eZ-+%~}u_Mh*3<*qT_XkyU<3LnMio0A;#iIPH2>?PU+mB(da-cCK;QqFvtUd_gzW zR3d9re%ms)ZMLbqzj@+o@P+O3jjpA7c>MCCZPR2MtU)a-vAv->;ui9GR8TT!P_r-l zp)l_j*PxyKbA^6(s&E5fn9Jqqg!@{l99z5`bkz(Dw>Ii+vxSa)plM$yeY@T53FcuX yYq-rg40qd+b;#6`NHN(^kZr9xY#!i+x4U-1Xsrs12{a3_fn)Cim5HGM5d1gxR!0f| literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/arrow-left-white.gif b/docs/extjs/resources/themes/images/default/grid/arrow-left-white.gif new file mode 100755 index 0000000000000000000000000000000000000000..63088f56e1c33fd23437ab00ef3e10570c4a57fa GIT binary patch literal 825 zcmZ?wbhEHbWMSZBXlGz>`0uc0#Y_e;`2YVugfU8vhQJ630mYvz%pkAofCx~YVBipA cVC0bDXlQU?ViVMIiI|XhxRH&WjfKG)0LI-8@c;k- literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/arrow-right-white.gif b/docs/extjs/resources/themes/images/default/grid/arrow-right-white.gif new file mode 100755 index 0000000000000000000000000000000000000000..e9e06789044eacb8a695cd1df46449bcb2b9aa07 GIT binary patch literal 825 zcmZ?wbhEHbWMSZBXlGz>`0uc0#Y_e;`2YVugfU8vhQJ630mYvz%pkAofCx~YVBipA cVB}zNNKj~OV&PY_IbpESp@o^1jfKG)0Ls}94FCWD literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/cell-special-bg.gif b/docs/extjs/resources/themes/images/default/grid/cell-special-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..d76ffbccdc66ff52433560c893ae9f3130152a2c GIT binary patch literal 1636 zcmZ?wbhEHbG-qaH`2L^a#fulOUcLJA<;$l}pFVu}@b2BaH*enj9|fZ!Ffu|w@h1x- z0|PsQ4g(N?@13PQn3)hIR%euQ?tY7ai@E uFwVMjV&mfD{R+-qGM<~3oSdu?yej78rlqH+8zi5a2*=FiKfk`du4iLoYy1EIzwv>L6f@N#hBdp@_pFUkiUlfT N@O1TaS?83{1OR1r9kKub literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/cell-special-selected-bg.gif b/docs/extjs/resources/themes/images/default/grid/cell-special-selected-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..f1da867ded3e87e53d6ac3823dd7fec84e4f3bd5 GIT binary patch literal 1640 zcmZ?wbhEHbG-qaH`2L^a)U6K}?tQrT?8}{JUv545as!ASeYy7N)0GFGF5UZd1}J;y z!?`;j{*Qvu5Ezajp!k!8k%57iL5BedKzX8lG)D}_cpmi=u_3_W%D~DY;V^-rk%^5@ z!=*vNv7wzuLL-1-!J?zx62@6~PHbF!ykEh&OU854l9Q7)f>*_y+_d!cbc5tmb38XM PJ3HH=_?3&K0E0CEWa1PZ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/cell-special-selected-bg.png b/docs/extjs/resources/themes/images/default/grid/cell-special-selected-bg.png new file mode 100755 index 0000000000000000000000000000000000000000..500c3bddb2ff42b2235619190fe461989f81559b GIT binary patch literal 136 zcmeAS@N?(olHy`uVBq!ia0vp^;y}#E!3HEvmzt^pDVAa<&kznEsNqQI0P;BtJR*x3 z7`TN&n2}-D90{PHmZytj2*=FiJ>UPl{{Nqchv)x)X9MQL^&HZA-{jAwB{Y0`_-RGf d!>WZz3|BlfrsWsL2Lg35c)I$ztaD0e0sylZCIkQg literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/checked.gif b/docs/extjs/resources/themes/images/default/grid/checked.gif new file mode 100755 index 0000000000000000000000000000000000000000..fad5893727ee8a13f428aa777380ae97152adec8 GIT binary patch literal 959 zcmZ?wbhEHb6krfwXlGz>j-2EYIms=0ihImdkJxD*ann5GrhCOt_fD7*mN_@JU|~Yh zlH}5*DP>F3%9rQXt#bJ9P}a7(ufM;0=I)-EyC%%tyKeK&xyuhMUUy>sj`JIKUfjO_ z>dyTab{)LB=kT>-Cr%wbdG^%lGbhhnIDP)=+4C1qp1*tM!nLy(uU)-*?dpv?S8v|E zb?f%+J9qBfy?6e~qdWJX+*RNl{ef##~$B&;sfByLSi(wRuh5*qap!k!8nE{v; zbU->ld4hps4uc|xjK_ur2b)<{HDXQ_Japi6Q1W6iYUvPA5Rzlscwpk<4sO9XmXjI+ zi&_OWe7|@wG&BoL67X4M6R7Omz-DfcwPk^l8<#v6OGU!M%_;%{ss?XfI5Zp-5OGar zYW(QXz|GEX#*rx~s>CVD%q0^Mz{1hH&cW`(j0A>8wr;ZvZ4rjePOb7*MGqXL4LK$% TI;tJY@rY17bXb6iiNP8GS6tA5 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/col-move-bottom.gif b/docs/extjs/resources/themes/images/default/grid/col-move-bottom.gif new file mode 100755 index 0000000000000000000000000000000000000000..cc1e473ecc1a48f6d33d935f226588c495da4e05 GIT binary patch literal 868 zcmZ?wbhEHb( zLO{cVgpLOZ6Fwx&_)sw8LBWC#1q=Q+toSft!~X>b{xgh%(GVD#A)xq^g_(hYn?VQU zd{CZX;BaIR=ZFzVT;Rwl#vu{Yu%W4$ky$xng~3BdrVc>?i4_ctPK=BUEM^-R4mL70 a^J-WG2rw*VW@C5a%Q0YR@NEQ2S_1&+BRBT| literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/col-move-top.gif b/docs/extjs/resources/themes/images/default/grid/col-move-top.gif new file mode 100755 index 0000000000000000000000000000000000000000..58ff32cc8fa2aa1be310b03bb2af77c1b77abe93 GIT binary patch literal 869 zcmZ?wbhEHbG68wVGIhem=U(^LUb4h;c?We$u2%uEc{03e(}^8f$< literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/column-header-bg.gif b/docs/extjs/resources/themes/images/default/grid/column-header-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..5895dbaa507b86b85517947bcb91879357dd045b GIT binary patch literal 1858 zcmZ?wbhEHb^U*yzT|&CAcTIW%+0zFM&2;$jbZjo4FLG+UMj zEcWVk*t+WKYN1V8cTbr%TwkAXm`TEW+nSr3GcK=+J-u!1?d=7RPtEn-zV7bsiqEg^ zp5DIx{{9ALZaJSF8y+6+5Y~=6vt#4q;}ev<=lSg1^z`%$vxOG+5TW|k$A4WHa+w!$M@3X z-^}~o-h9Je=%fFyM!WCr!8fAb5^aft20h&VflWEV-gbulkEuW}F?hQAxvXLCpIiR+|JMFF~?)$qNCjs##whxY+QW2U%|Oc#&gq> zlan=qSH+y%wDk0JgXB|lJU1^pJKLi8)t!@@m!F^S(99+4wPnS{#U7KjVoz;Zd3kxj zVz0SgTUT9O9kDsarV74J2yW+zreX$&Ue?A QmzP%rua28*uE1ao0O8YYqyPW_ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/column-header-over-bg.png b/docs/extjs/resources/themes/images/default/grid/column-header-over-bg.png new file mode 100755 index 0000000000000000000000000000000000000000..3f206494db775af4dbed9a37fe52d74953c2451e GIT binary patch literal 283 zcmeAS@N?(olHy`uVBq!ia0vp^{0t1tCLC-)R!VclP9Vin?Bp530R%N1DIGvQXMsm# zF#`j)FbFd;%$g$s6x{3S;uumf=j~ZbJ_Z2>2FD}+?X@m;T>8k)+I6#T)5a|u4<)`7 pIkdfSUF|;0!v;Kq3H@QdCwYQbb;bNWfk2Nic)I$ztaD0e0sy)ySg-&9 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/columns.gif b/docs/extjs/resources/themes/images/default/grid/columns.gif new file mode 100755 index 0000000000000000000000000000000000000000..2d3a82393e31768c22869778698613b2f5f2174a GIT binary patch literal 962 zcmZ?wbhEHb6krfwXlGyuEL<5_v@*CDh*pJ^t_~?(6IQl1ymDPc)rN@bjZrn5V(PZU z)NOSrd+hMvA+B+IeDltP)?JCMyOZ1ZrgZEJYkQj3eITRnaL%L?Ia5yNO*xf6?R5V1 zGX)b57R)?XH0ylvoQuVCFO|-_Qnuh~<)Ryvi*HsfxmC5~cGa>w)ywZpoH%jn)T#64 z&D*eH!>(Ps_U+r(Fz^e+YaA8aNxk9Lx+wXJ9gs4iBqReojG&n z?%lgL9)0`&|3AYh7!3i+LO}5+3nK#qAA=6a7*L*I;F!-K%OT^jVZp&>mh3YgjfYq| z1(lp?K5S5QW|J^Yxp3pe#^mFCnoeCZo|g`B%4>LkiP*V`#cPUi%)1K8vI{DjqJ*BN5r{ru+ zE8dX@@h1x-1A`ia4#-rHpBUIY93~fd=t%XSSW=X!RXD?mhh^5u1eqRJ zra}V|4(7yC6`@KS8NXveD>;rxe2zT3&O@bf;od_Jstz(SGPv+_sRXDB26XrI_Bk?G F0|2KMVH*Gd literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/dd-insert-arrow-left.png b/docs/extjs/resources/themes/images/default/grid/dd-insert-arrow-left.png new file mode 100755 index 0000000000000000000000000000000000000000..5dc696781e6135d37b5bf2e98e46fd94f020c48d GIT binary patch literal 345 zcmV-f0jBq$gGR5;6H z{Qv(y10{fofkH6I3@AO3$p*x`Nil#0jeqs;pT9Ds7{CaN1)$9r#n~kE{`~pF@bLXZ zhF?E_GyM7i!oL`P0x_8Wj$ni2F7#hzWPxfvDaInaJo@X+Cm!COivwWT<1&XvJeYQNiErjd+Mbq870xT@Ntjs=&42%KF O-2R=tef=(u4AuZIk#dp% literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/dd-insert-arrow-right.png b/docs/extjs/resources/themes/images/default/grid/dd-insert-arrow-right.png new file mode 100755 index 0000000000000000000000000000000000000000..b1a1819238c6de8f9e50988f4151261fa6ba64ea GIT binary patch literal 349 zcmV-j0iyniP)o>#A+qW*AYQLZl(!&BX$x7Ik;qO170ssEM z@$bKXf%rGW?|(r27bf-TSv zD}TdX0CM*JhkLO)8|Y^+n~Q^sK~hqR;q|N647YFGy>NTZJsWr!5CaSfwJm@a><8NX v2&h?|>lyj2t2o f3la`CGVn;rtSCr4)W)vpHOFJ)qNAORj11NQ63h`c literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/done.gif b/docs/extjs/resources/themes/images/default/grid/done.gif new file mode 100755 index 0000000000000000000000000000000000000000..a937cb22c84a2ac6ecfc12ae9681ab72ed83ca78 GIT binary patch literal 133 zcmZ?wbhEHb6krfwXl7towPL}p0*huu%~roJzC1V7qiQ)z(xVq;t8Q*e g@TwP&*%vbDj%DY0^FxMh_Sd^OqF)Bg*^}7&&A#5)LvkG7IyS zOnBJr%r7CL!Q$}XP&==XoWqO@51m;T- zPZpr7|1;=-+z!eU3>@+d`VlJv8V|8>3M$wXTxdAR#L6ikV-V2L(7?dJ#=^p24FK}3 BP__U7 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/grid-blue-hd.gif b/docs/extjs/resources/themes/images/default/grid/grid-blue-hd.gif new file mode 100755 index 0000000000000000000000000000000000000000..862094e6803f522712e4d193c7becd8e9b857dd3 GIT binary patch literal 829 zcmZ?wbhEHbWMmL!XlGzJa`*r7`~Ocp_<#1%{|it4Uw-=k+VlT6U;e-I>i_*W{~x~l z|K$Du=O6#S`uzXxm;WEW{r~*q|F@t2fByde=kI?YU>F6XAuyCfK=CIF(E0xvbU>Z} m<=_zzU~q6?um%8<;zWG_ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/grid-blue-split.gif b/docs/extjs/resources/themes/images/default/grid/grid-blue-split.gif new file mode 100755 index 0000000000000000000000000000000000000000..5286f58f6f798184c3eeacba1352cfd39b9ae03e GIT binary patch literal 817 zcmZ?wbhEHbWMbfDXlG!Ub?iS7FpPrH5Ezjmp!kyo=M_wPS^_`om@~ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/grid-loading.gif b/docs/extjs/resources/themes/images/default/grid/grid-loading.gif new file mode 100755 index 0000000000000000000000000000000000000000..d112c54013e1e4c2f606e848352f08958134c46f GIT binary patch literal 701 zcmZ?wbhEHb6krfw_{6~Q|NsBg$>(oA`P8%SHjuGk&%@0ppYOTwO7TCppKD04vtxj( zk)8oFBLf42;y+oZ(#)I^h4Rdj3>8V47nBGRLn+Q9-(eXZMC@T`q-A zfguTok_rhvuF+B}YGk&S-hZ1Y!QP;7UE)!jv*adK6)hob2AOf}GE&w)<#=MknJHoV zY^}*Md|xE}K6*MO&RAU_^MUKk=Djk=g^pDJi6uprK3M%`#IdVL zUEAw4e{ zmg0{~p6|Ie&p`6H%mYO|r)_gjg|As;$iv1hQk=MZgX#CFjEx2xI6HUG&(-w8Y7Wpj zcm93g6udbnGzoX) literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/grid-vista-hd.gif b/docs/extjs/resources/themes/images/default/grid/grid-vista-hd.gif new file mode 100755 index 0000000000000000000000000000000000000000..d0972638e8305d32d4a2419b3dd317f3c8fd3fe2 GIT binary patch literal 829 zcmZ?wbhEHbWMmL!XlGzJe){5xGZ#;uy>#l_<(QpFT5;g3%Bd$|0cmlLhGf{|q`H nPk{0S1BVoYrq2Wc#zV~Pyb=r?3JDC2Ol*7#9t#p29T=29Ey>tSt{5 zHY{*#Vsg}oIT5h%K(m0QN{+|JM3-h^O`|Opf{7fxyq0BWID}eGbgMYd>zNVs*sDWV zoA1qwjZY3uXHRaM;~D(iZJx6IEfY?Wr2(@o4CQoZZdq`CwriwbsHEt#km;etaZ`6L zTz!3gENh*F_qI0?jS`nu#m){}(7wIk@jlUvh3oF_E@dsdaeDjvxJFSXZaJBV1#O2r zgyqE~6rDPbPjEKrQ!sFDJ262wU4TQ;rQ!Sn=9UHq#|Nzf3_+{e1Rfn?ZRD4$;FDGQ z#@r~Pu^>)X$(*&3x9Pl?tj&%CoF~dRyY`d67r$SB{>v~5Mnhoag@EEu7NDp9Gw6W44$2b@93l*? Z95Nmo7Bnz$2y4ZhC{SczU}R*l1^^j55kLR{ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/grid3-hrow.gif b/docs/extjs/resources/themes/images/default/grid/grid3-hrow.gif new file mode 100755 index 0000000000000000000000000000000000000000..8d459a304e0b224f8c28d6b7b585da7019d28cce GIT binary patch literal 836 zcmZ?wbhEHbWMYtDXlG!!aN)x1H}BrOegF2|hj;HkzW?y)!^h7bKYjW6^C!b77!85p z9s-I#S%6;r&!7YHC@4=ba40eea>#gWNI1yM!7mYUVnf4WCKe8!85Rx=4Ga>@3=9GS G4Auam1ttan literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/grid3-rowheader.gif b/docs/extjs/resources/themes/images/default/grid/grid3-rowheader.gif new file mode 100755 index 0000000000000000000000000000000000000000..2799b45c6591f1db05c8c00bd1fd0c5c01f57614 GIT binary patch literal 43 scmZ?wbhEHbWMp7uXkcLY|NlP&1B2pE79h#MpaUX6G7L;iE{qJ;0LYaF_y7O^ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/group-by.gif b/docs/extjs/resources/themes/images/default/grid/group-by.gif new file mode 100755 index 0000000000000000000000000000000000000000..d6075bba2fd87519bce379df01d12cdbe67f255e GIT binary patch literal 917 zcmZ?wbhEHb6krfwXlGz>`0o(b_B3_s=d77u3+H|!r zfbs+bM-c-fhm6OD1qYj1`88rr6eKbU2cZFVdORzJ@!m~?8+%1KMTTg@3K$aq~=^PX>8{)(q7 acp2+dVHKAK1EYrP>l5}X$w&(@SOWm68Djnb literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/group-collapse.gif b/docs/extjs/resources/themes/images/default/grid/group-collapse.gif new file mode 100755 index 0000000000000000000000000000000000000000..495bb051dcee00b837a948af56f7a59e77b69aa5 GIT binary patch literal 881 zcmZ?wbhEHb}Lc00Z?nwEzGB literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/group-expand-sprite.gif b/docs/extjs/resources/themes/images/default/grid/group-expand-sprite.gif new file mode 100755 index 0000000000000000000000000000000000000000..9c1653b48dbd2d4bb00886c379ba3a66813737c4 GIT binary patch literal 955 zcmZ?wbhEHbuiX3i z{QdXWpZ@~^!zdUHf#DSbia%Kx85kHDbU@w$?_tHlbAgvKT&29}T*1_wr_8B7v4Oad0D zH!!O=%UO7AS#fc($7HS8Q(IPEULLU6Yp&PURaaMg26lV0F?{M|skyG2(-{0TB%q{1$Bh!Jw8USBOURwYF literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/group-expand.gif b/docs/extjs/resources/themes/images/default/grid/group-expand.gif new file mode 100755 index 0000000000000000000000000000000000000000..a33ac30bd2b3758ab2e003f70ce638ab77eaf101 GIT binary patch literal 884 zcmZ?wbhEHbbN~|U;Bpe)@m>5|?LIe~TnPxDF-7pDQklw(o P-YjR~vE{{q1_o;Y#^^iR literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/hd-pop.gif b/docs/extjs/resources/themes/images/default/grid/hd-pop.gif new file mode 100755 index 0000000000000000000000000000000000000000..eb8ba79679eabb7811c3d9d1c86c43bcf67552cc GIT binary patch literal 839 zcmZ?wbhEHb_??HKjfkTCXkweD9 mfT4kbgI~?WW5NQ*7JhN9o*xBDE*)ahRw)@D7aeL~um%9t9ucMh literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/hmenu-asc.gif b/docs/extjs/resources/themes/images/default/grid/hmenu-asc.gif new file mode 100755 index 0000000000000000000000000000000000000000..8917e0eee0cdf7758e83c4cffa7a7239f72b8427 GIT binary patch literal 931 zcmeH`u}i~197Zo~Emb-ML>(No#i13!1{`|2)F4_jl^X=3LnUJzge<}>RZc~zP~kV; zB68w#pu>SnK&adpIt5*dn`7OIQ?33Dj(x+oeanNlwY^!!2PQI6AN?^vMGITlu?Sc$ zU>9uS*}igoaC}8PN`jCCnovooc75v7&|^Bl#h|GI2x(JLP!wWjlNOK|~-m_dM?T+-E!pI0dd^5l}(d@Glq_swQ5Q<6ypk{;!;VaqFyLusAH|W zI_^hNH}3WaBSr@P!$9skWgujrrQZ^Mn?RWcN@fn{AM5KVovc^P{B4D$=SroI5_&zI zNSF`DRwb35%9fAbth<-%@nxq_$~TO}IN9OvPh(dz1*g;6JvytHv(;6&xjkRcOr!mB r{VRFNa;Pe5osHT>5@ibIb~{3g+0C%lYO~3O6<&R=-|w9m23q?84YkzM literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/hmenu-desc.gif b/docs/extjs/resources/themes/images/default/grid/hmenu-desc.gif new file mode 100755 index 0000000000000000000000000000000000000000..f26b7c2fc5836850958f7f2b1fafd3988a988d7a GIT binary patch literal 930 zcmeH`u}cC`9LIl>nH9kiSwcv;h)RPe4nCSX#PT4JtLbR)IJcwe#y6z#3aSf)9!+l$ z;%yxW@kSwnZWM)ZydeVHiWX}!?QdxG!)N_2ANcN;ig{#6Ai)s+7(q%#GE!y5mQ{jO zj5MrhrlNCIcT|&WCe|#b*{*J3-4-SmmeaOT%60^HIHrQgae`8gf*j^igs3uBp{hnT zopO)5V>`?=nQ1YLFxzIBGSTNY=9rB4oG{nnt~U^b3F->w3Rehk(B^L2>$m$u&+|JS zzvF-O{o!cJw7~xri2now00G#VJYn()2%o@AE8lw!UPJ@SiC{BRyCfUg+)-YByjskr zv+Ug{Ji~hAw(%`jAsUlHdvfpXd_GaEWO`qB`!@?~^gbD{hpr>BT&DZEGYhLy?xoZ; n!ca~nNw;=d4=v4s)H*Z{&Ndrqrwj#{39jU-m51Y}8o>51Tocwt literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/hmenu-lock.gif b/docs/extjs/resources/themes/images/default/grid/hmenu-lock.gif new file mode 100755 index 0000000000000000000000000000000000000000..1596126108fd99fc56226b412c6749c55ad5402b GIT binary patch literal 955 zcmZ?wbhEHb6krfwXlG#X4~ou+bjZoeOV2FG$|=q-C@C(jDlf0eD{N@b6W`Inv#*zP ze=o<1{(yu1+=nJ`ADhB`dOG8|nG9#s|^2dGCVn`{Pc*@>k~$=Pg%ddVgCO)!~fR||KBnE z|HJVAKg0iLR{x*dJ-;0I|GC%y_pblnMF0Qq{Qtk(|NlOXjV)~*Jzd>>6DCZaK7IO( z88c?ioVjUP%kt&RSFKvLYv;-0XzkU1m_xG3of4~3u@#FvBAOHXT`19w_f1o=? z!B7qX#h)z93=CNeIv`Jg@&p6N42G*5G9DWiIGRQ-bEs^3`rv@RCy$K9p(kC=rd|^` zST-*?>B_{iQlwx7E2E<(Ghbe(62oy`Y27&t0f`^nn;9J1SUxr?H8M5pwCs2h(8SWt zC8Qv+=HXHgep#c0o(mriDDdjJR6ObU=;Xr2&gPqN_0-kZOwH=MQtsX=WoB-cUnB8y dW3n5EfMAf!nn#R>TRBB^*6i?z@O5CY1_0nG4B-F( literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/hmenu-lock.png b/docs/extjs/resources/themes/images/default/grid/hmenu-lock.png new file mode 100755 index 0000000000000000000000000000000000000000..8b81e7ff284100752e155dff383c18bd00107eee GIT binary patch literal 648 zcmV;30(bq1P)WdKHUATcr^L}hv)GB7YRATlyKF)%tYH6SZ6F)%P+<{wS~000McNliru z(*hb477vONgHQkf010qNS#tmY3h)2`3h)6!tTdPa000DMK}|sb0I`n?{9y$E00H1h zL_t(|+NDy@YZE~f{$`WrhuKPySQAA=4|-5UL@Ysj^nd8hiS;2Kdj#HUllo z8f~>&*KFH9Nwz?Ckui3oR;%3`NI(gPUDtho|G}f2_3e8bT8ASerBbE5)1bTYdcFQ| zZM?C8k+I47`6u~>51*b--wCz*ER>uRr zeV-UkHLH%}72i$a+1i|RAKlWyIlu9^60fuoN4rrzunmYfG3Rj9y^HEzZv5(CEO81y zUYkzkSk-KQ`3%0SF=Q~vI7Aru=z0O7P{Z@#ja`PhX$8v2D-^Gzc;YIGcnR19E(0MI z;kZD@0aiO(XrN-PsAlqHZzKK#l1tJ_)zheV5(%VKYS5UK?$7C;0+>qp-G76P-YrWc z5ZrIlD9FnLDKc3)8S0<dA!cTgY+CR4-a*;u;!NrNF3LWTlP5a1_; iES|Z7@j-3=)A|j?vD&^)Yn&Va00007>1uYXA>3Qh}beSb(Ur!W`$ZoRvwlh8h#GSA{v3P9MZmob1&N}#H|)3 ziyhJ(U{)KHf*@)Iy5?}L)|RKuO{O%cx#h;IvM2X1`q0Jo18y$3o31q0)ZQR~04YGX zfXCOw7l;j1uOz`;`%xPF|1H(H=TQ-Al80O7c-*kEIp@ZM``Ch}Whn7a@ zEo{qiRYg+i%R z4h#&aR4TPvt$O^~PNy46p*I)|Mx)VWGFdDZtJOL&G4XSL3{j3aZnxWK zXJ;3eLR8p^IE^@iXhU=a0)b#Kw7t0&jYea!SUet2Boc@bilUOqB;u|J|M|xX6jAAP z03n=6?Mi(Dm?nrZ^SKu7#oi7Bm%1nSA1H5qaf|0_D`c0ZeXQSbMRJ}Wp^ujFWEojX z(Y1{1lBcW8em3h3o6B)FgQ$TZv?6jQ8yMxx;o>^&qx~ghy5ef_6fHB&ac3`cuq8MD zSbdMbr>J*|b@#!#g0h@qxe*x=qGVcHY literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/hmenu-unlock.png b/docs/extjs/resources/themes/images/default/grid/hmenu-unlock.png new file mode 100755 index 0000000000000000000000000000000000000000..9dd5df34b70b94b708e862053ef4a634246acc8d GIT binary patch literal 697 zcmV;q0!ICbP)WdKHUATcr^L}hv)GB7YRATlyKF)%tYH6SZ6F)%P+<{wS~000McNliru z(*g|-5GqRX(wr!towOa3bz1}%hRS$Ze*UVXl27U>F*+kf-M;&k-s!`fDVCrZezlf>dy^3`BTW$z=L>EIW zO>?T0B!*En2q>u<@}12dniz6|2?Qm9qx{jpBiX~P{FQ(#@rTzxF``)#1i>x@j&6Pg z`g9}R!YZ+#Bpq}r3e{~P5}$S=h*)1OVUmx@SN9wqKg;4@^1P3fXJWAV73+q9*IOoT f&)vjR{Ezq!d`RXXnklE900000NkvXXu0mjfw|6I- literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/invalid_line.gif b/docs/extjs/resources/themes/images/default/grid/invalid_line.gif new file mode 100755 index 0000000000000000000000000000000000000000..fb7e0f34d6231868ed2f80b6067be837e70cac44 GIT binary patch literal 815 zcmZ?wbhEHbWMN=tXlGzx_z#4mU^E0qXb33&WMKq(T?a&f@&p4150I4La9D7liGhiU G!5RR1hX@}4 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/loading.gif b/docs/extjs/resources/themes/images/default/grid/loading.gif new file mode 100755 index 0000000000000000000000000000000000000000..e846e1d6c58796558015ffee1fdec546bc207ee8 GIT binary patch literal 771 zcmZ?wbhEHb6krfw*v!MQYQ=(yeQk4RPu{+D?cCXuwr^cCp}%d_ius2R?!0jBXnAQ) zOH<|l|Nj|aK=D7fpKD04vtxj(k)8oFBT!uNCkrbB0}q1^NDatX1{VJbCr|b)oWWMT zS%hVC ~NwO_yO%;SvZ5MdNYf|QNy-I*%yJaj+uTdt+qbZ z4E`Fzb8m}I&!N8OKmWEcCmrLs^Hs&3i)mt@hQVdcqghkaBs*D}tG_lKew4?rTjzIZ z9tSone1TS+TR7tu^CunG)Y7Jg#sw#)sG9C!c0I%LEzP)9;hqRf&)s$D8d5Db{TBs% zgl0~5QQ91luq4Q9tJgt4QLbaxZvAaKeCM9!oy85dg4k>TdBSVqjHub_PG=PO&J-rx z7oYTuF+kH|tG-UK+EkUhDjYx?zW?T|lx>+aOQm zzL$v$zBLo4Cj=G&tw{H}dW?tlTkS)SY4<#NS92z*EY-MMB6Ftp`R=*=*Ev7cS+X%W zMCur^FdlokL}1Y+&aasU2J4#EOuNlnb9CmqgLCGTSY!1BD42pkHY^XidQ5=>YQx%` z*%Pm9D!CkBu&tMWm(%-ejACVWGS2RX5=QOJ$1*tr7F}F+*-OA+Ly&Isg|AEuUYicA z#%IG6kPXkHt{zk2M6zK@Vu^4Q(1zE$?yY6M!^&jQ+2^E?!p7{g*|X6}vuRC3p@jk0 W117c83?+LXEZI4G$p&LV25SKE>nb+@ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/mso-hd.gif b/docs/extjs/resources/themes/images/default/grid/mso-hd.gif new file mode 100755 index 0000000000000000000000000000000000000000..669f3cf089a61580a9d1c7632a5b1309f8d0439a GIT binary patch literal 875 zcmZ?wbhEHbWMYtKXlGzpd-4Cei~rYO`oH1Q|BaXbZ@T<{^OgTwuKwS8_5ZeO|94#b zzw`S4UDyBbzVUz0&HsCE{@-`&|NdM558VEL!C+hQ;zA>HJFm1! z#)%1x%x&D_IuR=Z8kt%-g@N({4h;>A%p3w50S6iynb`#tJSI3aHnDO`7-U>H(Adn* Pui(%j;MmmCz+epk$!Kdz literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/nowait.gif b/docs/extjs/resources/themes/images/default/grid/nowait.gif new file mode 100755 index 0000000000000000000000000000000000000000..4c5862cd554d78f20683709d0b450b67f81bd24d GIT binary patch literal 884 zcmZ?wbhEHb6k-r!XlGz>`0sG^=;33>fanOrC>RZa5f%c9KUtVTUe*B-pgh6A5y-&E zA>*-O!NDdb7MYkC1`iK4@=0rzWCSQRbnt4Ywd@dF=+rMIANR*%(jvDmG5%#TnwOp& kU}SchrxH17*#QO%<_$5P0_ncfbgjEYUKG8!(7<2~0Pia+WB>pF literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/page-first-disabled.gif b/docs/extjs/resources/themes/images/default/grid/page-first-disabled.gif new file mode 100755 index 0000000000000000000000000000000000000000..1e02c419f5e73fc1ba5770df0448d44adf856288 GIT binary patch literal 925 zcmZ?wbhEHb6krfwXlGzZPfyRu$tfx-s;H=_udjFb@6g=b+}hgO*4EbE-rn8a-P_yS z*VotI-#=;6q{)*fPnj}h=FFM1XV0EDZ{Ga*^A|2$xOnm6B}gPhY%v@z$+dw{PFR zd-v{x2M-uV!Dt8!L;Mq+#E6<8x|aFW_O4e+3))3Q*|Q=94?bWMk!6jGP<+(r$fM>Xwqe7gmNr&4?FkK$jz>EMMFb>zJ~*Z~ zvMU=|C?p6pu`gocw@ENKkig96%Ptk5a9{xwcPOV4M}k2k%Q{v@i4+D0okN>5F7xql HFjxZs_zi%( literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/page-first.gif b/docs/extjs/resources/themes/images/default/grid/page-first.gif new file mode 100755 index 0000000000000000000000000000000000000000..d84f41a91fca3a0ccc1107a78ffbf7b62c527afb GIT binary patch literal 925 zcmZ?wbhEHb6krfwXlGzh@tC0DJ54uuo^j+di-h&|8QW#kzUrr(*H68ylXk-(>4ag{ zZHv4+cEz{tOYf>=ebOm>XHxXSuI{Hx{sE`lD_*51{Hrf`RNeQhe(3PuA-LgMaLe7$ z)_W1{_x-!R`FH*eYuz6C>RX^ z>V<&fPZnkd21y1TkddG~!N5_)V9X)ov0=f%X7nX_llo;Ppa!i5VLFJ8Q4$&%&Em#6pV(z;0OW5pDfG_ z46F<~Am@Pc1OrC}12>0^$A$$5o7t@;-Y_UNJMxKf6&W}lT+k*Y$eyJjc<@21kdg?` z9)m}X2f37ODg+`IICZeGskVGL@ZdlLlaQT?!H)&bz6?zAIR*(A8e5nhSgkHN9C*OQ m>dC5ipkT8?(+Va*AAy7q4&fY(0%9#)p=)k#W@Tbxum%8@3U^Ha literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/page-last.gif b/docs/extjs/resources/themes/images/default/grid/page-last.gif new file mode 100755 index 0000000000000000000000000000000000000000..3df5c2ba50b143fca7d168d5acbcc4404b903ee8 GIT binary patch literal 923 zcmZ?wbhEHb6krfwXlGzh@tC0DJ54uuo^j+di-h&|8QW#kzUrr(*H68ylXk-(>4ag{ zZHv4+cEz{tOYf>=ebOm>XHxXSuI{Hx{sE`lD_*51{Hrf`RNeQhe(3PuA-LgMaLe7$ z)_W1{_x-!R`FH*eYuz6C>RX^ z>V<&fPZnkd21y1TkddG~!N5_$V9X)ov0=f%X7)sh7DeV(M==$yO&0_YC2+|IvM<}Q z@ZbVY8B+}&lf=VK2L;XIwg}8jWa;H%bG(qjsCck}M+|z`(?y z1M&eVPcU$JFtBpScx+g3u$hC^!6V}XBXb*zY)A!1phGj4Fjq*7gQ62lFOR54M?r!E kLmQ{U6cz@-#wJD`MJWvdVWq}d0_-7oPHt8|*uY>70KTb0MF0Q* literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/page-next.gif b/docs/extjs/resources/themes/images/default/grid/page-next.gif new file mode 100755 index 0000000000000000000000000000000000000000..960163530132545abe690cb8e49c5fef0f923344 GIT binary patch literal 875 zcmZ?wbhEHb6krfwXlGzh@tC0DJ54uuo^j+di-h&|8QW#kzUrr(*H68ylXk-(>4ag{ zZHv4+cEz{tOYf>=ebOm>XHxXSuI{Hx{sE`lD_*51{Hrf`RNeQhe(3PuA-LgMaLe7$ z)_W1{_x-!R`FH*eYuz6C>RX^ z>V<&fPZnkd21y1TkddG~!NB3cV9X)ov0=f%W)9;69vKr@Ionu*A5?G{Hgn3DYJ|un wK6d5q<#D`_!KiqUp-ntt3Jb$U#ts%8MWY1*!jGC}2?&SWIk{Q=U;~3S0KQg&YXATM literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/page-prev-disabled.gif b/docs/extjs/resources/themes/images/default/grid/page-prev-disabled.gif new file mode 100755 index 0000000000000000000000000000000000000000..37154d62406ddc064dba311b95f554e49ad38003 GIT binary patch literal 879 zcmZ?wbhEHb6krfwXlGzZPfyRu$tfx-s;H=_udjFb@6g=b+}hgO*4EbD-QC;U+t=4O zY0{+0lPAxdIdk5;dGqJbU$}7L;>C-XELpN*#fp_HSMJ!cW9QDDr%#{0ef##^yLTBz z!Dt8!oe)s`$->OQz{;Qlaxy4SFmU)VaC69bY*=uxnSOV literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/page-prev.gif b/docs/extjs/resources/themes/images/default/grid/page-prev.gif new file mode 100755 index 0000000000000000000000000000000000000000..eb70cf8f6a3b7f524bbeb3656d875a823b27fd7c GIT binary patch literal 879 zcmZ?wbhEHb6krfwXlGzh@tC0DJ54uuo^j+di-h&|8QW#kzUrr(*H68ylXk-(>4ag{ zZHv4+cEz{tOYf>=ebOm>XHxXSuI{Hx{sE`lD_*51{Hrf`RNeQhe(3PuA-LgMaLe7$ z)_W1{_x-!R`FH*eYuz6C>RX^ z>V<&fPZnkd21y1TkddG~!NB3eV9X)ov0=f%W)AK)kBA8^Y;DZmPc|?ZI=9Q{X*oQZ zkbJD2lgIqQijPiCj2*mD6%7sx9yN0CvxS^laG;@KrlbJNftid9=jS`{vav8&0{~Hw Bh1385 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/pick-button.gif b/docs/extjs/resources/themes/images/default/grid/pick-button.gif new file mode 100755 index 0000000000000000000000000000000000000000..6957924a8bf01f24f6930aa0213d794a3f56924d GIT binary patch literal 1036 zcmZ?wbhEHbA}e@6f*BUeEG-{mbu9UVeYtn)@A#A9pQ#+`IB&@5(0= zRzH}y`r(9CPbRH>G-dUZ>1!TLU-xM0+NU$tJ)FJ%!HkVh=4^U8ck{CaTb?f6`F!=h zms^g%-go-h&Rf5C-u=Dz!SB6~|L%M6=kVF*ht9t`fBVhRyMGQn`g7pPpQDfe9DDTl z(5wGPUi>@u`u~ZCzfU~=ed^KQvyc9qee&n@+yCcY{k`z?&xIF%F1`GB>D9kWZ~k3* z`RB^(KUZJ||Ns8~&oBx`LjW}d6o0ZXGcYhR=zxSld4hrCB?B{ujK>Cr zPF^XagaZi+ome=9Dmm#SD}7El7CSA;=KXekY^RG>e-{ zuuVYm(pR@|5zQ!{2@Y3s!WlFkEt+xRKzr=&*z_|U*@qgNWbB##KVWn?)_GXn$>4`} z#Rk5^9iqw$CMLJ{owi8Xkg$-crJaR6?!tz^#b0>Dw8Q57c+l9;Af%gcqV6G6E2r=p gYaW5X0}L(q1$Yc3_9+}>;A5Sv9e-|5r2~UC0H_cnr~m)} literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/property-cell-bg.gif b/docs/extjs/resources/themes/images/default/grid/property-cell-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..7890cf9f887ca6dcd09f0106c97b44b6bd032304 GIT binary patch literal 155 zcmZ?wbhEHblwc5Gc+AOg;lhR2Z{EFm`~K~_5AWW8eE;FohmW5>e){tB=gdaSrM&Udw>$^!;7jFpfiJKq0dh%|O{FRAsr%cJ6cQeymfr-Hy05I5B@&Et; literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/property-cell-selected-bg.gif b/docs/extjs/resources/themes/images/default/grid/property-cell-selected-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..1dfe9a69eae133929f3835ffcfd108959539b9e5 GIT binary patch literal 843 zcmZ?wbhEHblwe?DXlGzpb>`cJ$GN zbN|hshj0HpdiUqa`#(?L|9SS|&x?Tku;-OBz~m8F^(Xxn=WLtiN>a=Bx$F zE?m8F;nLL!Q)l&0o9h!C(=%n(wOe=Z-ha4p+phfwkEZ5Vc1)PQY|Z9dx9>(KWnH~~ z>(S$RNmD?mv9-+Rg2I4_CJIHMaG% zPnb4+&ceq}p0)H%FR85Wo;q*Ux=pFMWe1L)nlNk8yoJkV&R?=-^RCpKQa9hQwEXgn z!pip_KJM6ec>m#J*KXY2f8^w`6Q^e`TG`P(@#U-6IYpHfO+D3(9i5ZsY}~%Lv1{Uq zvlkaGS=HV7gkm^w5Q~jme)4VU$mmSscZUz74w#^?wB~^=g*%RMb(8> z&7BjcKYH@~{)0!8XDuwKZoPH){;G{T7>EOkKUo+V7>XHmK*~XJ!oWVSp}48JrL|2t z%F8=3u&p`0Ak5C8$Vs=)FN>E?AUn<7Baf4*MT)W6--OM=GeE4bSy-LLSvqt>F{7&i zgQ&TE6Th`WhFXr2Y&0`7J9}^ww@;xYgOHm>TsTuQk6BY}E(5EeV_RmksUj;&zVVJ? zqex9(HbbrEkeHTKIc+_OAiWO?j?WH@yUQHepwOi1&dIu?>P1B(15azY1T!OpH2`<~ B4eI~^ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/refresh.gif b/docs/extjs/resources/themes/images/default/grid/refresh.gif new file mode 100755 index 0000000000000000000000000000000000000000..110f6844b63f04ee495cb6260aadccc5c91f3245 GIT binary patch literal 977 zcmZ?wbhEHb6krfwXlGy$h}b9*vsWVToJh$rg~Ib{73bBfFRNEyRjIzARe8a@{G?U= zS=*`;&XtFqYK{lh9g^y}Bh~OmX2K7phHF|4mvmY#YBk-m>AI%V{Zwn}AFb*CO}Zah zE&Ol0{J&TG39p`WUhP-C+HU)IUUQmo-)qvfh`zI76Yqx1zV0&XfzSMxLGvGbFMQ~+ z=(Y3m{~l}q`>*>SwD@7vl2_py{zq>5pE~<)_MEHvb8Z#%9?x5TCvVmLlErrtmc7Ye z^(1@q`{eEa%QikQ+y0|u-~Un|+W)`u;QzYA|67+{YhHeP%Er5`D<5=iecZe0VgIfd z6ZSoyyYE@Yq4%wa{&t-D-*@u=lr#UQo%uiG{Quc!{>?l8fByOZOAkC-cNm zdAaJ$n+2EuFS_`D;g$bOF8yC{^Z%AJuQpuyyy5=;?RWm~z4m$Iga5mp{NMZF|DH$x z_dNZ7J^Oa?<^NmHzCC{Z^XcdR&%XSB{pru! zuYbP%{{Q3WpTGb9|NHkJ2pC4ez=eR~PZnkdh6V;5kP|?8f`MZl10$!5$A$$5)il%s zei$5ka6nGTs361eNrP~El!A@oXXa)eCC+CvI2;iHZM67s#E^NJN1wTgOT&i;3Ec;TOAjTi zTyP{|exu5jn1!2~IsF{O7w}9FI^s0Dv3!z%j9{}Lqr9=eiw8w24r1-;JbMZ*Iy$pR TTfCj3pwPfLY5NRjCI)K&rUX|l literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/row-check-sprite.gif b/docs/extjs/resources/themes/images/default/grid/row-check-sprite.gif new file mode 100755 index 0000000000000000000000000000000000000000..610116465e7e34fe6ec137d674a5a65eb44f3313 GIT binary patch literal 1083 zcmZ?wbhEHbG-BXmXlGz>j-2EYIms=0ihImdkJxD*ann5GrhCOt_fD7*mN_@JU|~Yh zlH}5*DP>F3%9rQXt#bJ9;Pl_AtZj8)e}DJP-90mRO_;lP-R7O^x9r-qeb1Jidw1;K zKX>_o#p_P2-*JBTzJq)AAKI|<;`aSlckaKi>)_Qrhp!zxeDu(fW5aL2&AYd5-M(@A-tF6WZr{0c>(2e#ckkc1d++>}M|bZ(ymSA_y$28PKYDua;miAv zUOssE@WI2!4<9{x_~`M2N6#KTe)9Oq(zkK@q?aP-hU%!6+_U+q`A3uKn{Q2YOFNRSt)Ivb< zCkrzJgCK(r$l;(o!NBpKL779wW5a@j%^bpFa}I1+c({#=)o#uSgQOPDOrxwjGt!z| zdt@$e$lSc_@o^LJpjAf}JZwJMArZPP=b&Sgps8HqqLPD`kM_zs`Roai*qqK|#L3VT zF?sR}KXId?9~w-oM=!LvF0}h7u%L13YL4V{2NpVaOx6sKXt0%-%sxprU4%n}F=ee| zk7OB3V$o4<2?NtNdOnMp+}aIPI1Cb!oedm&q`N#WDjn;2s@TV#Wb?^^L6Du@WzE4m zBH2;`fg2hOC%gI1Qk$u|ta4(CLnAZyojrZEhG#jire0bj>DOw0Oe9%D!a<-Z<>RHq z%WD>VO!l0r8@nULP;YPhBrdTFH4+!k**uiX3i z{QdXWpZ@~^!zdUHf#DSbia%Kx85kHDbU@w$^aLtQ^>)SRb9SKCQ``Jr`=eVAz{OT z183VTy}$iASS#R nB^X?DXxtttx-R#(S?*zGzsXrO9p?HCdj*-f<$NLv92l$th`d^G literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/row-over.gif b/docs/extjs/resources/themes/images/default/grid/row-over.gif new file mode 100755 index 0000000000000000000000000000000000000000..b288e38739ad9914b73eb32837303a11a37f354a GIT binary patch literal 823 zcmV-71IYYGNk%w1VF3Ug0EYko000010RaL60s{jB1Ox;H1qB8M1_uWR2nYxX2?+`c z3JVJh3=9kn4Gj(s4i66x5D*X%5fKs+5)%^>6ciK{6%`g178e&67#J8C85tTH8XFrM z92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021EG#T7 zEiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!-Jv}}? zK0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)WtPESuy zP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5dU|?Wj zVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&OadC2T za&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8f`fyD zgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@l$4Z} zm6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*!rKP5( zrl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dkwzs#p zxVX5vxw*Q!y1To(yu7@dCU$jHda z$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~>g((4 z?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF){QUg= z{r&#_{{R2~A^8LV00930EC2ui0096U000OS0Po$iSC8I2dGX-ATgb4XLx%wY06VC` Bj$r@* literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/row-sel.gif b/docs/extjs/resources/themes/images/default/grid/row-sel.gif new file mode 100755 index 0000000000000000000000000000000000000000..98209e6e7f1ea8cf1ae6c1d61c49e775a37a246c GIT binary patch literal 823 zcmZ?wbhEHbWMq(KXlG!!`QrEOm%s16{{7(1pGR;1JbC};*@r(bKmL9F`S1V#{~1QX wXb24J5K#Qd0`%X11|5(uL3x6KLxe$C!6IP+Ln9*-6GOy_4GW#y85tR@0bQ{sTL1t6 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/sort-hd.gif b/docs/extjs/resources/themes/images/default/grid/sort-hd.gif new file mode 100755 index 0000000000000000000000000000000000000000..45e545f74423d274d5ba7fd942349e9b6e377787 GIT binary patch literal 1473 zcmeH`Yfn-E06_1O8OuKCZ05?;9y0{yY?;~WgRMsR$~K$2`D~d1@}bQ#*KE^FOzmNr zk4h0m5xA%*2nq5&mj9jr&@R9m?MLJ@ z28+?&*i;q2X{glmbaXwjt9hit_dI1))x{ir6L_uMFRHs`tO}FBO&#lQRo8}|J5?7Y zU`>9C$Th8w3EHL`Ba086h!(PEnZzn=+PIK2*LI5;-9YgM=D}nEMKj(5E_P-Pm7jo~EXPhgm4T&wVplL(D->;y1`B0^KR=R4S}*a1vj)fV>NEY1mB8Uq&zYI6Q%t`{**z!J+Vr;E@5~g9*=aqW{3>u}nt)+%y z;;>ng6u?b5{(;L^(y<6nxNxiv6hU01L$+fA6FPrm&HQ1X9CMc{2sC$3gd=9b3;|~m zeo4%+^eknA7SU=RVi9X;xUJr+UX-mqm<4W0%pzn`0voy-@k72&h=Y%ZQ8zP%g((!cJJT4@8F*OhYlV-dg#cp zW5-XNI(_EM*|Vq5Up;&A+S!ZOuUxr$qNpFDl?^y$-QVDS9;ix)3mg1{>fcnt(^ zUcUi>w{PFRfB*i&hYz1Vefsj{%h#`8zkU10FbYOPfHonZ_>+YhWU>y30Obh=jxGj9 z4jGRP3l283GHb+~D0p~)!9>Yxj)(FAXDKG5ESZ1@4oAD0WI9R=9v*6Ak!N+{dHKMR zl}FY^$AdFLm4!>ptVN@75u5?#BR20ya;KC(goN;9V qqtnW!)kYaNB(j|}n>i$H<|I5^)XKF~L^CSn=7x7MEgZ~D4AuZjXTU80 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/wait.gif b/docs/extjs/resources/themes/images/default/grid/wait.gif new file mode 100755 index 0000000000000000000000000000000000000000..471c1a4f93f2cabf0b3a85c3ff8e0a8aadefc548 GIT binary patch literal 1100 zcmZwFZA@EL90u^)S14;kcS~P51JcqXyBK7YjR|$m*3qt)1nqFnf*+(nyIT_zZIrbc zP70+hE$ePOAcE2K4FU;V;KM+=xUiQtnG(k(Qx;;(oQVNl47kM11c$9(j7iV=cuw*= z&;L26aeaM*8AVX!4nUmF3luezO5JukyN8Fbj*JY)E9#Hd|0*@ZIv{eO*Nb# z12yCIrOhLLJlbn33DTB}t(F_b2bV4~y*j=}%v9m90(t13QX1^b_==P$D+H{5*5Mu? z8gKY>BXXf^7@!+sCzFj+>XgJsqfc(1Ya(r=#J=3 zlZtj9{~(p*xA$9X2mMtN6e0bM#^36uHAhJ9Q&;+@HQ_ThCJ=yPPcaaStzMs1DHP_0 zvw_E92pgO+s83$0SnZp{u*pvQ$A3#Rftg(VD(=52XCTzUftd4T-22$PQrgIR*gHx4 z{43C_yk?5j?(i$Mual4dFf?{<9Wn}qfaB%>iNwkdu&q!m&h2IcZ$2Th!C8}<*_&Pr zyKl`OZw8N)3D^4?RK}UoD=o00gbKYHy=yv32mZ9Dl8aIS8x^Z$2?NwcBLzFmZOtoW zzN62&u*QDIz{Fy}^YAXY&Txmg7ATSAhAr8K5fZbFZ*SFa$_qE2L|VVFHOI{wKE8B_ zGXV2p-56OO`rc4Z7g3zbj)2_3YjK$((`OUqD%*mgvS`YELYsVW1or1)YW%;)D$oE>#r zQ3z|D(W$Eg`c?NY^+fD&+nctrc25@u47U__J8-QW7NqK!$T9C@*SpuaHyFRRpIGae rj_Lao#za}+eaj_<`F9!mRdtBiaY8;Hc6N36?{M+r#W!!>FpPrH5Ex-0p!k!8nSp_kK?me-P@Z7m zFlAunknz~C;9xU5Gl#^14GRyqF(|p!cuZW_z#t(WR-;k)_;9y`aa9RNLW=VQMPsFy Kokpn+4AubBJRUOu literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/layout/mini-left.gif b/docs/extjs/resources/themes/images/default/layout/mini-left.gif new file mode 100755 index 0000000000000000000000000000000000000000..99f7993f260b374440c5c8baa41a600eca99d74d GIT binary patch literal 871 zcmZ?wbhEHbWMxohXlGz>c6N36?{M+r#W!!>FpPrH5Ex-0p!k!8nSp_kK?me-P@Z7m zaA9EP;893e(9p!fE+S&!pm?~AUD|4jgy5sYono4CYdSV2yD|teHi#$`Jzc6N36?{M+r#W!!>FpPrH5Ex-0p!k!8nSp_kK?me-P@Z7m zaAja+k&tj`IMB$%CgZbW!-Ix)HhHZSi@+q84iWvZBN>K^-5Dep8%#8W7*0-Pa>$EW bxpC?7J_E~BDJKIG4z;p#3-JgDFjxZsq+}v; literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/layout/mini-top.gif b/docs/extjs/resources/themes/images/default/layout/mini-top.gif new file mode 100755 index 0000000000000000000000000000000000000000..a4ca2bb20aad89264b9022fee88ee29154dfb192 GIT binary patch literal 856 zcmZ?wbhEHbRAyjhXlGz>c6N36?{M+r#W!!>FpPrH5Ex-0p!k!8nSp_kK?me-P@Z7m zFlAuo;89qx;9xU{u$s(?fCCNf0?JM-3L76eGxBgot>IYk*sW87)#{JM#>MWF#5uKM LPHswdV6X-Nu*4oA literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/menu/checked.gif b/docs/extjs/resources/themes/images/default/menu/checked.gif new file mode 100755 index 0000000000000000000000000000000000000000..fad5893727ee8a13f428aa777380ae97152adec8 GIT binary patch literal 959 zcmZ?wbhEHb6krfwXlGz>j-2EYIms=0ihImdkJxD*ann5GrhCOt_fD7*mN_@JU|~Yh zlH}5*DP>F3%9rQXt#bJ9P}a7(ufM;0=I)-EyC%%tyKeK&xyuhMUUy>sj`JIKUfjO_ z>dyTab{)LB=kT>-Cr%wbdG^%lGbhhnIDP)=+4C1qp1*tM!nLy(uU)-*?dpv?S8v|E zb?f%+J9qBfy?6e~qdWJX+*RNl{ef##~$B&;sfByLSi(wRuh5*qap!k!8nE{v; zbU->ld4hps4uc|xjK_ur2b)<{HDXQ_Japi6Q1W6iYUvPA5Rzlscwpk<4sO9XmXjI+ zi&_OWe7|@wG&BoL67X4M6R7Omz-DfcwPk^l8<#v6OGU!M%_;%{ss?XfI5Zp-5OGar zYW(QXz|GEX#*rx~s>CVD%q0^Mz{1hH&cW`(j0A>8wr;ZvZ4rjePOb7*MGqXL4LK$% TI;tJY@rY17bXb6iiNP8GS6tA5 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/menu/group-checked.gif b/docs/extjs/resources/themes/images/default/menu/group-checked.gif new file mode 100755 index 0000000000000000000000000000000000000000..d30b3e5a8f138bfbbfea3d1d6d5631a81268fe26 GIT binary patch literal 891 zcmZ?wbhEHb6krfwXlGzxGAUp-FJv++Vzw-1u&!ctt7CJoDF4C-YI>17M;4q>erj}J#1 znRLYtaeQ=iW)bC#?NNBB=*-HhDWD|4xae>zCoh|V$$>=XHZB1n7Kal~O{`q}VgeQu b3s{-ixj1G-bT~0I2=PqTialkbz+epkbq-F$ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/menu/item-over.gif b/docs/extjs/resources/themes/images/default/menu/item-over.gif new file mode 100755 index 0000000000000000000000000000000000000000..da1f289fc9d80d11f57ea8e69f8f5c738c5c0f71 GIT binary patch literal 47 zcmZ?wbhEHbWMYtFSjfz<>dd#BFMhxN{P+L=|2hmn01{_l;+WFEQt~aovJQha0J+!^ ACIA2c literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/menu/menu-item-active-bg.gif b/docs/extjs/resources/themes/images/default/menu/menu-item-active-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..afb0225751dd52de8c6cb1e9fbb5ef44e2949c11 GIT binary patch literal 1833 zcmZ?wbhEHb*-O z!NF!GagCT08x}UU3n+Wd@%X6N)GcA0rE_58;^X}a&P6^Bo0goM%o4OJ=44UB>FEZ^ zr{=u;)NppTMKRlrlbe^HpYKp^CgHVZMIf8UWUW}P1uHKv4_NFq*K6yltE(e6XWc!u zb@lc235UC6y|=BoxjEzVs@T)p*52M;@c7hR@9pdE?ymU!>h9_7>+kPxVCI(d*|Fi_ z;SOQ#xHCI8K0ZD{*?XSP&P`8G&oIuucV_42=jRtVcgy+i+Vb-9is038XLoIVeSJgn z>3P1px4pf+qxki`v%9yyzki^aTi$Qaj*pK|OxBJ+w`b?)=NA@x&-dHA>+9)V<$U*5d?aOS~}V|RW$dH3tmqaR0Z{n&Nw z$F3_sEydh_eXvtJM1{JQhv z*NqpyEkAD0g1*0J_yh1?nCkrD313!Zf0}z1nMEhut7+x_v>KoERfa5;{ zql`oaLxV#To3MsY!i5HBW?p%z5Qo6VgG>_KF=sLa8r@mgI6G7l3K~u_s`^W%9GGU|Y}j)lx*GVZPf$vDm7RjNnE7ldVFfrfObY9lY7; z=&sP!SJox$@7nrmYEH!F+Q(ef58D@%mJ3 zNZi{bC>~a0u|D}gucGn1KNf{gk4{&Po;GKu(ev}Oos-#YqqaP|w8DS&x13p}S=U!v zpH`EdZT9B&=IG~jdv|ZkyS=xNS^nQ{i~L8&dw=_#tJzun@YF){>HlnYls>t-G5CI+ zZPoXe_cvDuU6-3@{qytV%gyflOQz{a2h@&qVP zFmM<%@JmQ|Y*@g^%E=?8;=tJG)Wo9VlknjJLnFJO0!M|%0mo(rQBEC(fQyeBCb4lX KFcA=7um%9T95sFb literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/menu/menu.gif b/docs/extjs/resources/themes/images/default/menu/menu.gif new file mode 100755 index 0000000000000000000000000000000000000000..30a2c4b6c0458751f85126e8bbca6ef2ccc2ff00 GIT binary patch literal 834 zcmZ?wbhEHb{Kde?(9Xc{=<(wZA3ps5|DRzLjE2C-3jxKSEI?2HXV3w89h4^+IOG|a lIb=LGEI8Q6z#`0voy-@k72&h=Y%ZQ8zP%g((!cJJT4@8F*OhYlV-dg#cp zW5-XNI(_EM*|Vq5Up;&A+S!ZOuUxr$qNpFDl?^y$-QVDS9;ix)3mg1{>fcnt(^ zUcUi>w{PFRfB*i&hYz1Vefsj{%h#`8zkU10FbYOPfHonZ_>+YhWU>y30Obh=jxGj9 z4jGRP3l283GHb+~D0p~)!9>Yxj)(FAXDKG5ESZ1@4oAD0WI9R=9v*6Ak!N+{dHKMR zl}FY^$AdFLm4!>ptVN@75u5?#BR20ya;KC(goN;9V qqtnW!)kYaNB(j|}n>i$H<|I5^)XKF~L^CSn=7x7MEgZ~D4AuZjXTU80 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-bottom-bg.gif b/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-bottom-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..408066bfba107a3da8a8198d63140e3114b9e303 GIT binary patch literal 1862 zcmZ?wbhEHbo_)FT$>vfkU)+}xaTc~$J`ZEJ6DFL-=v zuJ`tJcXwBOes%Zs_VxGoH!yR{`Rv&6@NkE)cHEgA8y_E^pzJ-*XXmD;r)L;v|Fc@K z`T6+;&fV`~7HoNWc}4JQz1#&`UtixKdSagM?rm>xZxVlT@9ggKruzq)x!E1|?D+Ut zWRiCLxtgZW&o3-?pW(N6*VorKmV4hgw|Dn<_6LW%mF4d**z@!Ai_5F^-!Itv`}+sQ a6Z8G|+cp3G@%gp-f&Kgc|7T=mum%8ZOq&J( literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-bottom-bg.gif b/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-bottom-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..ad2113f3b3cf8d5dae45f7e0b4055d1e72cef99f GIT binary patch literal 1839 zcmZ?wbhEHbo_)FTj*a_P~R3lD(k)46+}j@nBcl$2A+jHsNj&tv}oqP9x6pV(zum}OgpDc_F3_=V#3_t+N6YZlpVpv4% zs3*t_0gnF+%p5Wv8x|aF<`CA3Ik92k;dTLKuQ?tY7ai@EFwVMjV&mfD{R+-qGM<~3 zoSdu?yej78rlqH+8zi5aWIx*cTa6yeSLkx;VxP4ZEJ3B&bYiP_Vl*3x3?EOJ~h{S`?|ZkD?Y!v zdwTo&`}-T1x#fIzY&4jI;k)E!h10`~v6hcRmZY zyu7?3c(q>af~~KwZ{R&K&v*B>x3@P5zPNXGcX`YG1I^s*4tsWde9SvZJO13Bou8lZ qFY=!6cenBD>l>T(Z=Bn^yPWmG;cg!J`3v^^{QTnbYJGVD25SJ(yNW3Q literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-bottom-corners.gif b/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-bottom-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..f4380faf23f5ebca25bf6d15eca8704ff6923b86 GIT binary patch literal 1648 zcmZ?wbhEHbWMPnC`2L?^#-0}!?!23~@5QWrFK#^ha^uODV>dqBd-dbaiyzmXd^vaT z)0Q*u794mn@4$;W`(B*5_36Z&ck52PIdtvasXL!GoO-kE+`DJ*emr>f!qsJPH}w*x8h1HW)ZIHE>H<6htT- YP-J5iHj!D-@Q{I-gGcKG4+n!a06`!CZ~y=R literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-bottom-sides.gif b/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-bottom-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..2f5557f99b9fb4c1109af6c850123f1d4a6a7bed GIT binary patch literal 2015 zcmZ?wbhEHb(Q5zP`3Jetp(ju4!u`)~D^Bc2p|t?ai&pH<#slm#>T6 zS@HOl>+I?8<95_BGt2$iw&C{S(%(XEHQ(1iJklqrU3VwK;OWUp%Ff&7%>4Z9=zRU` zbv(1SWSn1SJ^h$W)Yq3+7e_A7^R3>NdvizfYqzv>;SVU|WJYyEIe6WmJ V#85$ysBcIM0gj&x%p5Wv z8x|aF<`CA3Ik92k;dTLKuQ?tY7ai@EFwVMjV&mfD{R+-qGM<~3oSdu?yej78rlqH+ z8zi5aWIx* zcTa6yeSLkx;VxP4ZEJ3B&bYiP_Vl*3x3?EOJ~h{S`?|ZkD?Y!vdwTo&`}-T1x#fIz zY&4jI+zM7i@lhegS)jobRqJFE20RUJ-Y8*Vg9i z8w9N+Z-0M>r-@tMucq JdN~0GYXF`kewhFO literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-bottom-corners.gif b/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-bottom-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..8328b0535e6f82e0175f0ebac83d0dbf0dc16121 GIT binary patch literal 1667 zcmZ?wbhEHbWMPnC`2L?^#-0}!?!4P_=FOaaFCM-5aqhvlV>dp0`u69^n;&;x{J8h( z$Bidnww!r)=-Rt&=iZ&T^KRC@7uTMBo44=9iCdrM9e8o-&ZjRw{ycm4dmuvzyAIEcjDH!|D#|u1O`nADE?$& zWMEKZ&|v@qP@ZTX%@Knpaz-6803pDUz`)4C@?c@}K~@g&l!zGz8=RSimHak1Ts-8! zpyrh$5#Z3w#KI&Z5Ml7Zp@oOp%*3Ekp^;6PJId&Uz{7@?Ny0oi0R;=4m^mf*W*8iF ZU^>FgtkvV8@Th@_mtVs|LP~(a8UT$m{(=Ai literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-bottom-sides.gif b/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-bottom-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..59d140b6328d2f0dd667b94c71361d7720d6220c GIT binary patch literal 1998 zcmZ?wbhEHbyZ7nHjSq*eeK-I_ zS3c~!^ls0kce^gU+i~vQwsY_PkAl$<7%m~8_>+Z^fkBW#hXDvcd7^zZM+}#^9rXt} zA;9sUfl+|N!GM90fr(qn#bU#QgDrfLS~WK&C>-q+Qg+%hW8&jut@8R=Yd9t?@#t5x zo_0hc=;_I+%8|=*Jd2n4&a_B=X@13{%qTD`*7)RA-9_E>mMHJlhm%e6JhZ5n9!Q-YpDAXAE(gCJ9eQbF1*c2*V!YXE>W!nOba literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-left-bg.gif b/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-left-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..73a97fdfb20f3818f7a992d017e6f0bd5af3d978 GIT binary patch literal 1634 zcmZ?wbhEHbG+<_A`2L?^)v-5M9(}p==*xu%K=kR{y-#QEeL8aE!=Y;*4qW-L=fb;v zSKjTp^lsOMcRS9#`#%asLtuD?fZ|UUMg|6c1|0?<0Og7H(Ht?nVtCXyq=f*7Jp;dt z!-Ry!CN@3>5e)-}h6V-!Wv@9N8y6kzmN3q`b7JG-x%cVZy-!DOd^mLN z!+|Rw_FZ|m=hC}97vAl<@NUPscmGGhXb23K5K#Qd!pOiN$e_aj1fV?8KAIzjOWcn7 zgPaiH_|L$|A>*-O!NFz@VXc@G8x|gJ7f|+^7z|n~Xz%Lqh{Y!r?Ai?`>;tZqB&8D)#iYwYRqyJU%tod;7Y(yDL7wx_f&2 z`uqDEn7QSAb{NF23|X6W_0-kX506h!_MYdnbJNq)GmNwEo!M!eawK$p+TB}US3keJ zB6xM&*cmPD7&fWX8=fb;v zSKjTp^lsOMcRS9#`#%asLtuD?fZ|UUMg|6c1|0?<0Og7H(Ht?nVtCXyq=f*7Jp(g` zjK_ur2b(#BwPH?eSa`TyK-p`K$HqlRyCsaX?wr`T_;|m9bC-30dAIG{yBklwY&!F9-hmf$_Psc9>)Wv#AJ&|BGjHFE1qWVSd-Cnhvu}^y z{CM^0*M?JXZan+;;MI>$-~QZs_U+b-ZyQd$dGO}Pmv4W*{P^?l-@pH(U^D~yfq{uxgwIBUae+e%pFD$#!-@$D z8~7A>JeKSbXlUW#Fjsq{vCy$WSV@~nVd2B3rYW+9ITsEvsvTyQ_3+s6Qc#6;9xq4B x1&czJ!wiCaE;_3|wJ`Bn&n!FgQ<3RBpRwYHKMx)*-O!NFz@VXc@G8x|gJ7f|+^Y|grSYU}Fj>k|%l$$D>Fb8~aXcmPD74qW-L>%zM| zm)`BW^lrzwciYar`#%asLtuD?fZ|UUMg|6c1|0?<0Og7H(Ht?nVtCXyq=f*-F9vQ7 z8IKJM4mNWLOGTX6u<$UmfU?&dj|Gd4c1sv%t$DFv@$r5I#ts?JO-q_4YXq-~Ir-^H z({zL6Qz;Icmz|x>S@i18$>4_b^BtPmB)qn)xVYG3vR3S=Eh{fC4_NFq*K6yltE(e6 zXWc!ub@lc235UC6y|=BoxjEzVs@T)p*52M;@c7hR@9pdE?ymU!>h9_7>+kPxVCI(d z*|Fi_;SOQ#xHCI8K0ZD{*?XSP&P`8G&oIuucV_42=jRtVcgy+i+Vb-9is038XLoIV zeSJgn>3P1px4pf+qxki`v%9yyzki^aTi$Qaj*pK|OxBJ+w`b?)=NA@x&-dHA>+9dp$`ta-4i*GlceY^JT z+o?OB&fWWT=H90hAZ70kU3<6f+`Cyo#ZSI0IPhZ5z8CWjyf|^|)4CIHzI^-h=+%!q zKwVG1ow)Vw#*;6fzWurN?AxnPzaG8$@#M{q4X56G`SIu9zkmNn!Dt8!ju24%$->CM zpw6Jf00f{s(LS0Z21m?{x?*5LfFqHCk%J{*Q9>sRhp+Z^fkBW#hXDvcd7^zZM+}#^9rXt} zA;9sUfl-y@D&24wBwylm>pL%dnZ1pzX$Zh#|XZ3oQuZ!JU^zqu&>g%iSudlz% z)^=NbL*l`9&d;$n7Wt3&_H!%GTVrAL_(-3j^EI8FM$b=AF>b$Svukt4`K6AF<7#)A zW?ow#JG;-fdRy+*O@-I5)!yFp{`~%6_V&BdI|?5j@BAERXH)+9?)h%z`Ri<~K0i6P z(fPXGUaRk~uWW8#f8TE3?uz$M4=#?c-)CF-?fu=^{r>g)YQKK^c>Q|){aydx|6eMu zQ1h2DV?hJE(24s^%+IbrsN)ywc+kS-b|RsPFNtGen^4$^hpi%M5|7%H%QP0Xt2T8! z>Qdk4q13IvD1P$Y2cs(>ubE literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-left-bg.gif b/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-left-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..ff78a2bab3834ee4e573d02245cfff88bfaf3815 GIT binary patch literal 1638 zcmZ?wbhEHbG-hUG`2L?^)v-4>o_)FT zB6idhWQG8TGlQf?z=i{k%p8IYG9Cd942_J;JS;OjHZD5aEn%E>=fuXv$NLqWyJS2! hEjc+^BY0KJ$xTa7Pd7+DHOF)Fva_=-{MlF-tO4)V4D|p2 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-left-corners.gif b/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-left-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..bb487a5209f1fa0017fd7fc6a19da2a88ca94509 GIT binary patch literal 1669 zcmZ?wbhEHb^0w vsN&Pc#g}u!Vsat_BfHW!mIDV5Ffp1lo|q#sIXP&m;N)p3C#NJjFjxZsWVs75 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-left-sides.gif b/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-left-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..14f4971fff9a4dff13ea935604fe1310a485bdc1 GIT binary patch literal 1841 zcmZ?wbhEHbG-l>t`2L?^#-0~9o_)FTdGzJN10ecz?%t;} z_dXrD@!`<54+pM%*mvdKo=flcTzI$Z!n+;k-u)j1qaiTFLqPE-3nK%A2!jp-5PT|n7uj>pDDN4q7Av+kVOxcGR# zf^(OQ=cXkmC#!R=h&j1w>FMbP$*1OcZeDhFwng!)J0~|UKR@50nM>Ad%ZiJOJtk|# zp4zhV@^XJkgNz3c7+E-l*)#$g4m30}vvRRWcyC*Cb92V!Rk5eHt-Zay;PI)s-rLvR z-Cgnd)!ozE*WcgYz|1Y@vtz@l}M- x&(6=!FD&++@3(i?*Vi{TXUBJL+Wr0ggTvi?^8Wkw{QUgl^6L2WbqNj()&NHFgyjGL literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-right-bg.gif b/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-right-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..df72cd36f41beb9255d24ec9afd3706bc01358bf GIT binary patch literal 1639 zcmZ?wbhEHbG-hUG`2L?^)v-6H?tD6N>(j9tAI{wSbmh^POOL)>cmPD7&fWWT|X z*FGG$@?p<~cl)lq+jHsNt_$yWoO}0w6pV(zum}OgpDc_F3_=V#3_t+N6YZlpVpv4% zs3*t_0S*@iW)2yT4GRu7a|mn2oY=7NaJzuA*Bpt`2L?^#-10a?tD6N>(i=ZZ!SFe^ySB&3lF|rdGzJdqc3OfeL8pV z)3F;Lj@+Z^fkA{phXDvc zd7^zZM-1^O9d$lMA;9sUfssSTW5a@j%^bp7F()=GJlrmz>@~+@$PRY#l;?z zwPH_gS$TQ6KeNYNudS=Du8!E8b@$ZP)z{Z29PX0!-nQoE=8Vg$Voz^ddwYAq<5P3J zx39aqJC#)@;lP4MW_AH3ABhPLjEu}2d@=`4@7VbG_ylF|c|JQgJv}|cI6H04^!4!v znmDE1)>LeMd3ibSGJw!Xf;A+r44Z}Sfi4z&yG_nqCn{r&v|&D`>SF+bj%-{$%} zjA!f4&(AL`_MY#zch}d~H#TSAKUb@I>ivVm-GcJ|`}X|&{NnQJ`1AYr{%&MsWUvMR DRaJyH literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-top-bg.gif b/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-top-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..810660c9a65e0928fba21330be6d47429ec4692a GIT binary patch literal 1842 zcmZ?wbhEHb(j9tAI{zTbmh^POOL)>cmPD7j@B9t_$z>U3$0Y(z_k!-fcVg?*Awl4S``10*XIb7#SFZ7<3qb0F)=%M{~rmh}cn2 zkQo9T{~5SBWIQ%3IM~b~EEREL!@|SN0?J-Q}pW2$>7HG^BtPiB)qn)xX9=+Su6I`7R?~WfW=;O zr53EZx;kQW*4d)u0un=>x2iaot;?d|Oak5A3@-oEbc?uyT^?w;Ph z{{H?3W^Os39UC4V?hw|FJF{csdord-CPbwRc<20MVOu zC*GX8^J(6`7uTMAJ9qEXxd-2FJp1G_377_Z-2i0`19}I zzyG6PGz5lD2q^w!VPs&CX3${(0#Kf4AI%X%C-z2NO8pSv2xMU7V41KmfsKiSQzoL~ zK!Yy*jQwR WdORjPa&4DnaN+SXd~vja!5RP_CIL|Z literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-top-sides.gif b/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-top-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..38b27559f10179cc9754e9ea11f198c79b983b48 GIT binary patch literal 2019 zcmZ?wbhEHb(i=ZZ_eHO^ySB&E04Zhdi3SO10ecz?8b*9 zH$EJ?_Tc~!UHP!@(z`vE-tD^ZZrizcJI=lPKMF=eV2Fo+;!hSv1_luZ9R?r(<%#yu z95KYBbkzA2g#gEY21XGBhYJpj3{2coE*2XeI5x5?$yG!!G`g~gaAv4XC{%XkR8S3& zaVTOq%Auh=$H!B!$(ut&{zQ$##YSIt5y=-R4uy^9Sw%!SLIp}RTp2xB19%RY9JsX1 zf2LdMsSTQ;jbY2P)^bf<9kM>0JB4+(XmA zJ3K#rU&((iJ|7AFgu~5(;%cXNwxV%32cpUHSuQ}JZ6<@!n8(p4%Z%aKlzn_eG!Q;ad#nsR5DgAu=e64=D zpKMj>%Tt@(?f2PMet&uGaPoow>;77mf4+CIS$_S#JwHCbzkEENfBxT^@83ROzpo!( zU;ppRU-g6rmPhOh8kvM$zpN0*|UhpeMYZtDEFKE(@2@%@`z)}L}#T)l}?{+ zH=gwR|Jt!+a)?vp(kWhPl20c_tKED$C9JLU>GY_$lS^mDE#iDOBWs%GvzhtJB%jYJ U*krkUcGo_)FY zB6idhWQG8TD+8xW!h!_{o7nke92gcb9Aso>W#bSKSg`15w}f%lof8`uAMaOi?vnA` kwB+Pujo?)=CpRrUJ>4Mr)Ev*v%g)ZWD1PN5DZpS20Nvyd1poj5 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-right-bg.gif b/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-right-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..7240859e13665d79a0482ddd43d8addadcda83d2 GIT binary patch literal 1640 zcmZ?wbhEHbG-YOF`2L?^)v-6H?tD6N>(h}NA1*xj^ySB&OAo$Wdi3SmlP^~ueK~jU z)1hl04qW+g?8b*Zm)`BT@NU zB6idhWQG8TD+4o!jK_ur2b(#BwPH?eSa`TyK-p`K$HqlRyCsaX?wr`T_;|m9bC-bz{t!l@IpsGfWaC77rY9# literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-top-bg.gif b/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-top-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..df8ba358077bb37d84e98ed89c48e8bba76318d3 GIT binary patch literal 1863 zcmZ?wbhEHb(h}NAI{zT^ySB&YfrvhdGzJVlP{MZeYy1D z%Z(>rEU3vF^6pV(zP!0jbpDc_F45AD= z3_t+N6YZlpVkpPwsM{$G0gnF++#E6<8y++@a|mmh9N4h%aJzuAk&VN~MMt|OjDvg* zY+QW2pU0_7#&c4`$;leQt71-WQf-)SkbG*2!{%jYXA2j-x^vRF>HK_$W-i%RlbbFs z_LyuJacaxTVD^B;UURJ$th%~7VsqA7u7#_wuTNm@koDe{)37+Z^fkA{phXDvc zd7^zZM-1^O9d$lMA;96nz|J8fuwcQ#W)5K~8H)xcRt^RYl>`9>rlSlDJWL%A3>=zS nM7ZQ8EHF$y$id6yWg~E4A|cZ`pK5Vw1|r z$#Q{SAuA1+o}Q{7eQ1v6<}~+N=DB@6GdDl?n`2+vC6hHNJz%~|q>?U|$;!axzB9R| z?h1K%adp7*sIyUDHAC0L?`*m&wN2;d=D3S)p{q^T-rkyj`_NqN?Rnw5%HQ_&&ffk$ UZcqK!F4>%E`3d_On3x!>0UPc`5C8xG literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/progress/progress-default-bg.gif b/docs/extjs/resources/themes/images/default/progress/progress-default-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..a19c88cb1b39e521b2c8261d331698204565ea13 GIT binary patch literal 1837 zcmZ?wbhEHbdQ)6o0ZXGB5}-=r8~QC{MJH=7`}Ex1;_b zCj>bDGq7^Vcx-sk(99vMrE*}y!o%&XN?vn3E;bzPmN1sPabn|QcNPWbE}5ANmYkfd zA-W>wm|~3ak0l_wun<(Rt7T!EcTk~ zwRP3i)e)Ps?w;DZ`uh5W!(Fo8+t%FNoN;+o?CEW5Z*MPnd}^-u_H}o6SA2eT_w@Gl z_xCq2bIbYc*zoXhhp=|snH?J+AD^J?Jy@ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/shared/blue-loading.gif b/docs/extjs/resources/themes/images/default/shared/blue-loading.gif new file mode 100755 index 0000000000000000000000000000000000000000..3bbf639efae54ae59e83067121a5283ca34fc319 GIT binary patch literal 3236 zcmc(iX;4#H9>pJdFE7h`I{IF)1A#Fh5ut4e3N)(<0RjYM5fB7KViXV+Wf2GhVF?My z8p38kNgy#qTSQzyTbo4$v2makQG0ZNwnY%Pw(PNcy2b&grfRB&4^uT&J@@0STet4{ z{m(g7m+Rx@;26sUn7}&#`1tXo#kRUXJ(#IG{cZ2ar0&XiSo)d6rQJ`SzIs0Y?&jDJ z?r|;aL+gQmEt8MPR?m=a9JfHv4OVPWZ(-l$@5b(F3Hwu-=?SUvOsQodXuTcr`jbg zmue$Vu8N09Dh_e9xvlQE}RY< zP_^gH0x!E?M8)GXk?rNLfx%X3$@{f6pI0?+Kk?;dhe?AW6T(vRUoFVDuvw5lW5cx* zM2pweD1!&j%R@Gl%J=ydX7%57Vd9aac9Z_J>yuRWsDXvpfXejiTGi@9D0*{1JmRSx z+(o+p5f5SNP%4rK?c7Uak@I(U5Qm-`6W}z|87ByZglu+UIDOG|MzrAi}g)n&=PI-@(_qGEL$9luJu=GC51YSSlYON&Jk&F!xvE-3Kh z{SG%WO1_bmQiLaOZ7IfzCtMz%2Bv}IgS}6Fcn-8*XUsdior!R1FP+0~smTuSB&VVz zf%;|_uc}RCy~|cE>3~J|x6xH|BXI_vp(~ndnd8mDl300&`-+FH%kin}hc=mCs%hOr zes3miFqML|D9IX68;;&V(T#Fi!L6K$alqGL{i;8&cZ;nd>kOMh(|6kH`LF^XKOrwq zLxNUq+(^h`=fMd!A!05uF5M_In*~Z)=E03kINGd4h?H`1sjE_lYECtsMqAXUHlDb| ztz~t~4_&#&)=(SpPT$}pu^m2C#P+$NIgptsh59o_aB_$=CVOaI1t6Z-IX#`pYbsB< zh|M?7Zc2#JvdYI_9sJexAvXPJ`0xYUJtJTE_q8tV{!in#)Xt5VTX?Dk(KVGgUDF>J zOmQR2olL&^n=o0HU){)0uU^Ko7nyQf*9pubO(n7qz8!z;@rwVd5(Z;2Mi3NOw(Ahf zsISP{-77F^cj&U|Wt&4rQwiIx55Xkv+JICKVr-023Y2NQ-^1L$z5z!Xn+{V-Qg_!k zsS%~BL4)v{RU3|Xc!1TF{ve7v8CP92?CwS?1WGB30QaD9uF95`VuAErtx79^3OqN` zy3iINB2;8>3`l)c`|MfOO^*_@XTAykFI^@hCY?(joWn)+0+(uL03km${3n;g=AW;0 zU%vGC-z^qEaN9xwnEJAqO|_LYrN%R8hpzH0_8s=xParG#>lYDcHPrX<`L&79gOo=_ zg_zw`8g?DEjrib0E6~$F-AsVCF5_=UBxRzsDv6zf`l>fM|7Xe>RwkeE*`}Q=LXvgz z5##-i=6o96LMVCQQrZkV)ML z$+XDb7)0G6xcj0<3SL1Yp(soP@9YeR_GX&}QYO$WzbBgmfngMpD*|i*WMZ_(^X@z7 zN0}n*g&Do;+3-p|0YLB_U1NcX|8OX5WnYikl1=d9-#CaDtiaS)2KVjQT5K6;sdswH zdE6{8%Tm5IzvpF?=V;|mCgfb3(0~n(Jtz$^$@V@!^Qp?#AMf4pt~>5Paj$cxoIhh~ zPS!Q<`2JDqH5uPX#9PBL=Shoku(XVrp1oOGCI_ozyc)0~L1;z`y^B@=|=DKmT zTGGk2*^arSvoI-D7-dXEqM%D!orfLWIRiwHZk(v?2+9+zL+=BW+eim*J9Zz%h7q{L z-+dB?Z-Y{w3$qyXNb2wU79-tmWu)LArn{~=c*N=z5S6~PU0eLP&{9qK`uEV!719?3 zODi0*g~hTmc}|If6<)|AfS{vsfs;y`$IfnLQHWZQxTqY0-N_xT`{}z;&=7=SlAnqn zln0~eATkC}2H;95@eXP*hG4{j!D8f2AMh9_4RrFrJ5R9ZSl58`DLOy%-RwYy(H(f* zkRovM`0{XlbUk@!_J00RYttpG@Xh~;f!K*mDs;16$Uex)rZXT!qbW*@!r^ul?qm?a z_-wvfgAhIX3?UHgk6!Ic)M#-Mf@t9d4-A2MVHS50gZnT>eN+P99i7IBLyjEq?hn`t zk7vB+NG0$dd-*j_BUYuAQ7&VHmPTxL<+eY9!>LPm;_niK1tSm`(58d!0rG%hB#pe<71F7@U|0=K0NXRx zTHJ#TCcg7=l#=e90j9PjaftUw_*}?l-jkcN4{*WvjMucEqCfPyf2r&N@|*3+^wHBE zO9tWj|6~F(dQ+tTsR&lE$s1P@b)E9~@h-eT5!+L@j~R*)kt~i+qR|09Z;fO(uS$lA z94LiZv9cP6hJ%V4dVNE+T9O}D=_Iu#!th}y|2zhj)ZWfX6XgJxyGX@`p7EWDXWL2k z00q1TEK-PR?iCC!G*Vg`DcRbd8Eyv`_&CQD8Kok` zfHj_!tN?{V>KI0XRV|Gt99y)uO(*D(vaPX0QRf_1%dw_{ps3rP&LCgyug|f(hMD&h zOAP&!R(D}nt`bED?+o%+hxdU_SWfikVU{BY^nZj5crlX!W63<=ZRgf4R=}KMOz;bk gbLa4==ILrY&j|BSk=*YeL&$au32X~HXm1O3TVD6D*;+bL!L|&=p9%&Yy z$rhfe21!Q^Q_foy-7_zKYFYTes_3C(>0^ho$8NPxd}^OC{AUPgcoyFJG`!<^QvZ{z zDbMnzKTnzZDQo7}(m5|{=DsSP^R0H#i}HnEYgc@4VPKfFcR$P>d-aR%Rj;~Nz3y50x_9NPmes$yHvFEn<75zjyE6rRxuF+*-OfrGSB)`bNRn_N2hWXw`F z1SB%CNxF5h++3*4-Y2c*)x+@dA!D0_Ny3>5#Y4>Oyy6-T9SR2-+2lNnp5aC62aVf7*|&4xzT^Yd-|U2>IL4xC*cvD9p$mdk;F#a0uwaxaLi_TL;LoDk6{ z_LiSPBA|iw_G1P%(cIo|3A36`3aNVZ2}m*>X-_;{7Al|+pwP(3%EG4-A<%HJk&(@q JpNE6N8UT=&&-wrW literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/shared/glass-bg.gif b/docs/extjs/resources/themes/images/default/shared/glass-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..26fbbae3bc6d2510832a5ed709f0cb029c2c1170 GIT binary patch literal 873 zcmZ?wbhEHbWMpt*XlGzJe&g*4AiDYX)q+w@6G_xop)#NygPUI-MM=} z^!_{$-T!dm{)dbAKU@Mb9(=g)@WaK2A1*!oaQVT<%a1-@ehfsPt~~sB_0h*Gk3U^| z^yxZ~`{dJA5c+)e>E~-e^z6&^=U;C;`E>K?=UY!d-+uP_&hsxfUVOdx;_KT_KNv>A zXb8|f1QdU=0PXzGpaZfQlqVQC+!&%a1WaT)$|)>om2)9Mk%@&tK#^^Rgu{V`ZWgW# wlLCgu<17lIIuQpJG%~aEtN6@tSlD!$TihV!!H0*;9Rf;j6Erp|DKJJSK2bm`zya0vPFVPO+Hzo=EoiUW<# zt-R7&85aT+o!hu13_^AkENo)sW?~Im5RiDNg-b{!q(fjK6AOo^oXv^{2OL}3c(n`? z0um24adC-+cuZKp#Ka=XC$l2qfI}-2tCoO5K;nT0E+&=`4uJ(sK-Uz9X;c_IJk-Xo z?6;=E@bR%edFMWzN~5Qzrs*f2TT>bQ{@gtKWw+(i!R!IjKB)<%j$y1Z!Zof6-y9;DGq~5NJ}7gDVJu-S5NBXy HWUvMRItY+| literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/shared/icon-error.gif b/docs/extjs/resources/themes/images/default/shared/icon-error.gif new file mode 100755 index 0000000000000000000000000000000000000000..397b655ab83e5362fdc7eb0d18cf361c6f86bd9d GIT binary patch literal 1669 zcmV;02738NNk%w1VITk?0QUd@0|NsJ0|X2J00{{R5ds1i7Z(~66B`>G9v&Vb001Kp z5h)oOFaQ8I0021w0Y3o&E-fxEFEBACCN(uSJUcx_0Rc|{08I)CQ~&^5003P90ZlnN zZ2HgaR#tRYR&iNbdS75? zU|?otXJ=+;Yin(FU|@V`YIb#ZeSCg?et>}h0EGYmiU0tO0055<5Rm`?kOl^o005Z) z0GmN+?~005%|1f>7~rUeD5005~41+4%8tpx?M0RglK2)Y6SybBAy92~17B(5YS zt0^g|FE6h$GP@!ovpPDDN=%4PP>)+%g=J@gYio~fZHaSpjd*yLX=#~kY?O0znsITT ze0->1U$sL+wn#|6N=l(?ZKHd8zjAWJ0s_Pf3(Ero%L)p|939OP64C(y(FzLN0RhLMcRH8%DjAoeXS{Ujv)EG+gtJ^wQ^{W?3v zNJh*-LCQ@{#8XqnUth>oR?f~+Utj)HQ~z6A@Lyo#VPouQYVB}x>v?Q{t%gd(L*0R{xyxG~vlatYag2Jb&>V$^kk(2*{ zf&Yw*|C5vdnwsaLq~@lni75b z|Ns8}{@~x^A^8LW00930EC2ui03ZM$000R70RIUbNDv$>R;N^%GKK1uH+KXhN+gI) zQmI(8v}vO?E0!usk6NLdNb;LSjN7_}3)gKMEm^BfQ9=}oWJFkzOv$3fZRN_A+GfF& z32BcxoBv$pj74i3x2G;S3XK)B)FeoEmXWL#snn`jv}gsDrLa^fQ>tQ`viiu;6mb&4 zIih50RjgR4R9RKTR}rL1lO$0B9ElMiAmt)9>blUBj4Y5687efWvLQo=T3ms|nUS42 zGT05w#%K~HN|L}(qt>OeA3m=K#Zlp_nV3Y10NJUdgV?}Dj3P~n6lR(~fAPA&<^wy< z3SY;ip*i$tjvF;7)cwO(hY@E;pU(dEJAMvK96x^EuyA(#I4D2W)wt>4TNE8YjvOf} zG)mrhfAgFX#~WKj)1E)1@X?1HY^b3I4=}g`${ckFf(Rmn_^}B+|J5T5Fy|aN${TUW z0S6mQFhRr!;UgPsq@e^7N-V$&6Kb%bq#Sa*Vdfi^>~mm0dsJzqm1!)YL=j6Upi2{A zuE7S7XQmMhKT=kc#-N0zk;D-~AfZ4mcqp-i8dkz#<`P*@Bc(t0{IW!$Ngy$V5I-1@ zizZxdisc(i!~o5u$IbJ_rv6JTkwg(c{D4CNyI4a65=m^j#u6#8*Ipi;`17AUTJ(BE z5kdIy0|yB7l8z8W9HFeL2U?Ou5|`ZbpQ}X_F@z60{NTU@$Nckz5JFhX#WM$9V(qqN zczc{Zzy$F_4?N^RzzK;Blf(}}6cGhE|5-BcwnvOnPkU1IumcV|U{F8}13B@74?zS0 z#dwzlam2`nic7|EPvkH$4mJotfiVMJGlaxG_)rEWKMWD>&Oe?)03;wIQ58SrAhy#rm+eCjRSRuH))@dW!7dZ& zW5o_u2R%03bq^haWeql1000EIv_ld+Sb#9`4TvW`^x8Ju-~j^zOmNFONd2>m2p`;_ zHs5>m&A|f!9AH8(f>-{JI5cc`2#jD0Go}*+k21NqFv0{8KoG$M PBfNl1GVhQS5C8x>^BLCH literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/shared/icon-info.gif b/docs/extjs/resources/themes/images/default/shared/icon-info.gif new file mode 100755 index 0000000000000000000000000000000000000000..58281c3067b309779f5cf949a7196170c8ca97b9 GIT binary patch literal 1586 zcmV-22F>|LNk%w1VITk?0QUd@002Ay07w84PX`%A3LHrS9ajJYWB>?a019mY3w!_= zeheW`4kS_$BTNt{R2C>w87x&AE?6EhTN5*F88u@cHent&Zy_^VB{*RwJ!T<2Ybrfu zEanAeNJ0@02_k<8;bxSjRY)#049Cl8e5Y1_tY3bkWN(XQaEfVlk7;?7 zZF!SzdY5*8mt2auc!8LDgq&lBt7(C!V~et7k-lw{yKsuMageiql(2i8y-tSTQHA4U zhskM;!F86%bDF?tGlSHx~QzWsjj`Ou)c+z$A_QDf}_NMrOt$@%8RPR zi>%9lsM?CJ)Qqyzkfy4!pytE%CW@Nu*TlB$=|re)xF5pzRlaC#O0*M=&Huzs>kT8$>*ZV^`Xr3 zq{{ZD&GV%F^A_)Y{V6-P_#W#@Xx7+U3jK?!?;j!ruDO*W%II z<s1(&F;b=Ka&^{@UjA-Rbn(?f%pA|J?Ea z-}(RG-{a%sWQF}}=T6!l(LfBVqwLzTzdz--gr zA>~JRUspdjz=SD#uW#3T=*1z15PotP*O<}1TXI=rW8fk~GqY79KP}1YrcVGlvzs zDl$nW+ZJ<7GW-rh3M7OOB8UkZSwRrC?KL;(Q+JJH=Ywg3PC literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/shared/icon-question.gif b/docs/extjs/resources/themes/images/default/shared/icon-question.gif new file mode 100755 index 0000000000000000000000000000000000000000..08abd82ae86c9457172c7a4fdbc527641cf28e48 GIT binary patch literal 1607 zcmV-N2Dtf0Nk%w1VITk?0QUd@02fyP7F_@vT>uhh032%o9CQF5e-A8e03mY#BzglW zcL_0l6g7B5MoUafO-xQwNKjc)QdCG)VMGais%VD1YKp&Yk+f=&xOI)E zaEiQim9}=7y?K_jd6&3+oV;3t&|-(kYnQ@tj>UPC!+4gSZh?S#&mcD?Rw3D8!n4hVIpuCNxypy7?lBc|sslAz{ zv!1E8nykH`pQ59qrl_Z?tE#T5tFf-Ly0EXZv$D0gx4OH!y?~j^f}_NSpv#4+%#5bO zjit(rsl|+~%!H%Tg{shuuF;CD-i))_m#xK;uF0IQ!Je+okgwa9u*sgY$DOs#l(p29 zwb+%o+nKY|oV(kBuJ?(u=#RDcm$&DYyyKX=;G(m`qqxkgwZo{l%AmW~pu5Wy1~n_!_~3H*|^2hyUEtQ&D)~F!=r_S`L&GoF&_N~(Sv&!PL&+@j??Yq$Bv(odm+WouL^Ss^uzv2JK z#>vRX%gf5m#L3db&e_e*)63J`)6&(_)!NwC+uGXR!PV)++V9BJ>B`#d#N777-1y4d z^3d1g(%a?H-|XGp;>6+p%jEve=>OE=@803%+~e!f;quVt`_t+E+2!%y==0m`{@(Hb z;NRop*MI`>g(&|>+<34{Oa!Wf0xe!3Pge_@yBbqQDAy z^yqLDY^(Y`Bgb#Yy&t*SHt<)MmubQE= zM_%4K|K!o54GAF7UTBq*Ob!?g0o7_ijR4L$#5Cl7WQu5*Y1Gi(Bmg6D)2&N<*T z_(l=0(9+Fy7{;fLf+vi?iGtvWSYtTY0MiN@9f&f^H7LmFMINyXBrZBDyqCps^d=g7F3EF65lHnZVrI>UYlglJe zU~oq>afkv8HsRE$YQu zh#-bkqRKD4cwz`3RWxA(1Qnd&3}YuvgUT2`;GhH*Q&3SwBCD*Dh!i~7&_D!W@DWW; z1F;hgDs>bA#0Ei30Z1pS2x5T)7=Y0SG)EyV5IfR9lMEkstO3X(t9(I08OcCnvDYWD z6Ol7qAd-p~6!7sjC){4MV~P`tbU^{7d>1~=99ZDpN7scTEv^xRGv0Vk((EBd#a;&l F06QAMRrde@ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/shared/icon-warning.gif b/docs/extjs/resources/themes/images/default/shared/icon-warning.gif new file mode 100755 index 0000000000000000000000000000000000000000..27ff98b4f787f776e24227da0227bc781e3b11e8 GIT binary patch literal 1483 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 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/shared/left-btn.gif b/docs/extjs/resources/themes/images/default/shared/left-btn.gif new file mode 100755 index 0000000000000000000000000000000000000000..a0ddd9ee8203b9fc45eb5ee78ae6bcb7e57aed7b GIT binary patch literal 870 zcmZ?wbhEHbSKV^zd-BO3vC604f{{R1d4Yk$n}L-sZYVSj)zmI o(Q}fL|Dq=uMNdw3X~iE>$=vYlK$lteqcf2P3=A_Zn3))?0bn93t^fc4 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/shared/loading-balls.gif b/docs/extjs/resources/themes/images/default/shared/loading-balls.gif new file mode 100755 index 0000000000000000000000000000000000000000..9ce214beb5cd4db00666778d371223c605874519 GIT binary patch literal 2118 zcmbW22~ZPf7=}Y29Kir0FmlXvp;AJNF@T|n3=l~OQNReX(lJsJSV$lTCK1p9Cy_(M zQm|OSsz3m3sz4Eyf*^8<#%d)Dpydoi0>~kDK!ll=ZaA%FI-`5dzq{YQ`#%5s?JSAx z1lbx&?h&&9gFi*>!1pzUs7{@wn9`hLm1fx>(Jl7@kz#sNtqbnGu~ zQe16TTxnMP)H3+<{h@2EL)RY+mC2N450&LIW#wqY$lA~nbxPa!&C zu$mg`OY>TK<}eSK12l%IF?DpG!V-0@d@BkYlXMMpg0lep88I%nH28pK5h2~o?kkh6 z2b2xQChiFj0eW(#g;VTwwMJ5_?EDvp>#4GK+r2+JC89@-_OzrTH4{qP8k0!hnWK}9 zap_c+yqJ92gY!};(l)Zfx*I7zMHm#j&@PQG;7HGJgfynxUXLv`)H1{Pg;t0}hNdo2 zEzCw6`;fZ{f2sO<=B5-4@O@rsqC&BzvE4Uy6nRmKzwG>WQa)|oDe}n~loonAD-5{> z?UL_)*}^8e6BlB4$-lNLQ?wCd`#X$Xp*I-B46&`*HeU)u(UfY42oW;RS(7rB(NZ(l zVXa9y3Fg@)|wdEu-^Mr$bM<2lcshb1_0+qU%7*YY5d4R}04b5q{6gDK#lN_Yz+3 zA)Yn+Y!&vbrDwhDx#Nq+`TkLUbU3j!TN`d7b-gn)W>MmQ_}fG`$z)HJCVV5zccWav z)VK6731;9=Y1sl!Lg@h;g8AmhLs23E}Fg8bsA}jW84be zJj3a&!EX+(#)=!^aPHuvE0%9D^z0oWQl`8qV(5Oxp*_o)rkOg&mhP%-u(0XS@f3?_`nfh@f|7!XJ# zk%OqjKq3JM^2G-d4?(;7)p&sbDCoC_x zFgMyk0aQ)fOAm{tLDLuoh6x2UK0R(bi$jkD1vEB~9?s%M(#YylM@%FuVp#;fssZ~@ e5vO$#&5sswUKi2&Xpx=kB8ZO`!7YivcK-uGv{KRl literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/shared/right-btn.gif b/docs/extjs/resources/themes/images/default/shared/right-btn.gif new file mode 100755 index 0000000000000000000000000000000000000000..dee63e2113fcca680699455e8a56ee3eecc81c40 GIT binary patch literal 871 zcmZ?wbhEHbSKV^zd-BO3vC604f{{R1d4Yk$hk=zr!efJiBO@aVPsE804;fk*WxQe}6c#pgOBlzkIk8cxsZYUC>4${T q6OT!%mh)U@eo8sjryPH%CUe8H16^j>kIqCIFfh!NVPs)pum%9ETq}wI literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/shared/shadow-c.png b/docs/extjs/resources/themes/images/default/shared/shadow-c.png new file mode 100755 index 0000000000000000000000000000000000000000..d435f80aeaf38aa37a2afbea4363d7cf8706205b GIT binary patch literal 118 zcmeAS@N?(olHy`uVBq!ia0vp^tRT$61|)m))t&+=$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1G5}q!OAr-fhQW6q2Bsehp@I)}QHZd@=F-Y_=I0esbe+N{< N;OXk;vd$@?2>@aO9`*nL literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/shared/shadow-lr.png b/docs/extjs/resources/themes/images/default/shared/shadow-lr.png new file mode 100755 index 0000000000000000000000000000000000000000..bb88b6f2be887650f28b16726e470c09459b9c86 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^JV4CG!3HG1zpHNqQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JiZnf4978H@C8Z=JJZMPDQ+U>TNx_ce55uGN4u2%Q{wE|U g2=cJ=GBC0+@aVFNEX<$33#f^~)78&qol`;+0F-4Xf&c&j literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/shared/shadow.png b/docs/extjs/resources/themes/images/default/shared/shadow.png new file mode 100755 index 0000000000000000000000000000000000000000..75c0eba3e101e3f32cef8bde7bae7383d849e935 GIT binary patch literal 311 zcmeAS@N?(olHy`uVBq!ia0vp^Y(Q+l0V0jwbN>KRk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XZhE>nhE&`-GTD~D$v~hjI>0gT@Uw(Rj}ARr(#+ZY|Nr|R ztz576{))TQsGN9FjsN;R=N;cX_7>}LNxZmoT3OARN%FUXp-|AVh0k3k3m;=qQcOOgc@EIAyfV(r;i((zEeg z`}y44S?ng!NoE&wcK=*_2F$s1%jHel(|yj_4>tF9g$FFYCZ&0@DQ;=K_|9xe0dH@S zX*Z%4Z8@@VyGFIRewDnzd#yOua)FIqa}4Vg?=kT(Xhpeh(=cjy2J|F@r>mdKI;Vst E09T24*8l(j literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/shared/warning.gif b/docs/extjs/resources/themes/images/default/shared/warning.gif new file mode 100755 index 0000000000000000000000000000000000000000..806d4bc09385a98ef1ac19d25e30a21310964e7e GIT binary patch literal 960 zcmZ?wbhEHb6krfwXlDR{f&hVn2muENhm@owhyM-@5dsqm1SVuCOej#8P@%A(LSO-q zY!KMcp>SY^z=a6{7Zxa7SYhyB1;c|43=ehyk-&!?1`l=wJUAfm;Do@30|Fm_AFI_r#;p+LTS5IEMaRKbDQDQU%2#0{;PZnkd237_gkWx^dVBna` zz|A4!v0=eMCPx*A6NM8NOc1gSve|KQ1H(iiYYu@O7ZQ#gR8*}I_~Dqq(8*@R^@`(W z@)HIIWfz?e!wVeVa#HbKFBUvx;Axbo`SPIg5jz8ey-mRe1I2~|N`gTPEE1a-8hE@l zIU)=NI+%skoc{dSsL0&PpvCnl!Qs*I)AH$&GFuihv|L@Lt98xe!$KzpaZ%Pw4hauj N9~|!BW@BNn1^{&szCZu~ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/sizer/e-handle-dark.gif b/docs/extjs/resources/themes/images/default/sizer/e-handle-dark.gif new file mode 100755 index 0000000000000000000000000000000000000000..b5486c1a95bcc0f39a88c15c10c04ef7c3c561dd GIT binary patch literal 1062 zcmZ?wbhEHb#gW zSa7hJLs%>3#D;~3+Xa-p=6GyebhKN-IP1=djf;=>D>!$_cy3y9a}Xwye0g*kiI*?5Qm)FE0;R>^0YG>#D1(BQ|H< zJ+*c9_4NsdyJWq$t+}~5+bHZ`26bb>Fw+9?{8q{mh;)M z;o;#9VePmxJJK5%IOMqVHRPj^sIT3W`5a^n+Y$P=Sr`RJG*P^>+2hm zPtWt+z3uJo9mTKjo!!0t{rv;Y-12^Vc6@w%VzPGpxjj2SKfkcpd%oY^U0+|{*qnX; T+}_>a-#<9q&HP*pKCAv-hK1$|Ns9CqhK@yMn(uI{$v4q z^gn|R$h)9C!NBpKfm=XAL80MbGZUwri^YZqhZs0z^?H5?BpvP&kx!db5t!`W$7S2b zqB-%Q$7EIBJeSUo%H9(-b?1e=ob=3RreXN4Gm*mSr)OK$9{O`qIOF^RkA5xFQ(IO9 zFA8Y)Qk9(g>dN%6%}IB6ZPp537_~c2R9fuK^(DT0C)w`)@-kv`_TxiyyRYTm+?Dlm z+u82#x%YQh|7ByF6IPITsO+X(*qn%W@yBY|oz3n@jiJwDpWpD!D2@#*RM zbouaqd#t{`KC@K){5zTIFYoRwZ~uS)Uu;d~r?Y35yRVo1RrUSt+WvO_e>SyWKknT> zJ%9fHy1zfqK96ts%NTLLo=K|Xej|%gL_(8*oyNju5wi@%W(mC&iq(=uJ08}`wQ)S^ zU@r4m)TA`+$HFenMHNXcqO(ps>K2aMv8dblS;yl(gIhO}`i(wCBu{X-7xARuS!$-r zBtxy6DwFLl{a7+3@KuG%R2RL@rISOsESFA=YWlf!dTg9#+RVgBGoQ{#TXpj3tc*=F z(`J{P%UnLE;@C>{IW_xUs!yq9`t^KTlbF|wh3RZvD`vN;S*=*yYqTq4ZlxC2%O&OS zey&(Dz3kM>?LPQFywyoHAYVDT0ajVyEf83S5 zYUk}~v)}G~z3g<}j<=J3>+SdwC9S{f)2`L|`~Ez7{eCaQVeNvw_itHmILNZPy5Jy> z_M8uUINa|T91(v1`~4w4?>U7>|FZqra8xea=i@Pz{v4wd67%mAp3VHu<2 zhTV5Ioz;IFV|>wdeI5}aFh%{jYv+pP@iy=AuwcHjMWHRrml`Q7q*+i$mvZu8$Qzn3`O RcKf}i-@V(HGcqz*0{{svxFG-l literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/sizer/ne-handle-dark.gif b/docs/extjs/resources/themes/images/default/sizer/ne-handle-dark.gif new file mode 100755 index 0000000000000000000000000000000000000000..04e5ecf7d3837aec9510f5467282c10f158a5563 GIT binary patch literal 839 zcmZ?wbhEHb+Yh5$94ZWq95Nmo l794Em;N}uwNKib;z{ui|Vj-Z!(9Iz$HK#)0@qq>gYXJ2^5-b1! literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/sizer/ne-handle.gif b/docs/extjs/resources/themes/images/default/sizer/ne-handle.gif new file mode 100755 index 0000000000000000000000000000000000000000..09405c7ac7b321b3eb9170b1584167448819a071 GIT binary patch literal 854 zcmZ?wbhEHbc63}qqP#3eHjE2L+1SS?XB|ZfS0S0RTeD^Ni literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/sizer/nw-handle-dark.gif b/docs/extjs/resources/themes/images/default/sizer/nw-handle-dark.gif new file mode 100755 index 0000000000000000000000000000000000000000..6e49d6967c08db2c02a3aeb9c1f3cacb9c8665f6 GIT binary patch literal 839 zcmZ?wbhEHb+Yh5$94ZWq95Nmo l794Em5abeINJw;KWMp#S2{2G%=w_Cco6{kn+|a;a4FKuB5a0j+ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/sizer/nw-handle.gif b/docs/extjs/resources/themes/images/default/sizer/nw-handle.gif new file mode 100755 index 0000000000000000000000000000000000000000..2fcea8a9285dc74626ba9374055b25ab77e53a08 GIT binary patch literal 853 zcmZ?wbhEHb#gW zSa7hJLs%>3#D;~3+Xa-p=6GyebhKN-IP1=djf;=>D>!$_cy3y9a}Xwye0g*kiI*?5UEB1_q}2ZmnDnS(jHwY|grS zYU}Fj>k|%l$$D>Fb8~aX+fl6@9wVn{Oa!M?d$LFZ(!z@^VzW> zaVFC%HL)EM4v!B{Q1+hZvvbqa(=&{-@15DX`T6+;&fRjpySBW%ydrpY+}T}QUtiyl ze0rYm?rm>x?*pKCAv-hK1$|Ns9CqhK@yMn(uI{$v4q z^gn|R$h)9C!NBpKfty3dW5a@j%^bp7F()=GJlrmz>@~+@*_y+_d!cbc5tmb38XMJ3HH=_|=`0o0p%T&eFss>$PRY#l;?zwPH_g zS$TPRz+$htURzgPT^+GG>+Y$otFNz5INT-cy=~3S%^8FMbi#@YAI?A-kP`~v50 zIp1AdUS3`iygKgeuC1@HZ%95pZ|#k>jf~q0nRm>cz3u(|1I^s>etUL&e0*ZEcKo?L zJ3n7!TI4<7Z||eAWv;!(H3F^$JPCf70^_gXw#@wm_C+l$Bj4s4oFCb)=Y zKAGsDw(`j&AG4QFCI`4_KAjR0micsQMB2)y(_+eAKAoP>rul3}%CyX9Gc%U0d^Rg* z+skLO3yx_%pHp%z^ZDG0XDgr2tNHfw`TPbptrrVg#Ijy2>`+_vVo{ITs~3wWxM{sy zG9@hQ<LuU0IXmi21oie;-_ty;6~)vMJTjxl$oIxtuR03tF% AKmY&$ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/sizer/se-handle-dark.gif b/docs/extjs/resources/themes/images/default/sizer/se-handle-dark.gif new file mode 100755 index 0000000000000000000000000000000000000000..c4c1087868afab5b5bfd329f52d9907eb1c0061a GIT binary patch literal 838 zcmZ?wbhEHb+YZ5$9Lfxg96SOJ k3mltSSY>Q9925^Vv52er?AV~l(9La}b>~E3vIB!P0N;ZWjQ{`u literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/sizer/se-handle.gif b/docs/extjs/resources/themes/images/default/sizer/se-handle.gif new file mode 100755 index 0000000000000000000000000000000000000000..972055e7b297a702ab9aa2d799d133b94ac92315 GIT binary patch literal 853 zcmZ?wbhEHb{~M&wt%~@%zrJ-wdN* zGz5lq2q^w!0s8MhgAT}-pgh6AVaveCA>$E{(A3N!$mMciL!xsdyOP%wjSCG&yTw_> nZk(97*nvsGxlP1k!4l8OOsp$nb_OLhOgBgro5QJ~z+epkjJq?f literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/sizer/sw-handle-dark.gif b/docs/extjs/resources/themes/images/default/sizer/sw-handle-dark.gif new file mode 100755 index 0000000000000000000000000000000000000000..77224b0c06f1666685286c5322fb02b4cd2204bc GIT binary patch literal 839 zcmZ?wbhEHb+Yh5$94ZWq93m15 l2M#ndammSOI2<_C%q421Gvk7Sb33nm)}0d@l^YrutN|0L6o3E# literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/sizer/sw-handle.gif b/docs/extjs/resources/themes/images/default/sizer/sw-handle.gif new file mode 100755 index 0000000000000000000000000000000000000000..3ca0ed96df2059fe283c1d65fa1032a777e1ff97 GIT binary patch literal 855 zcmZ?wbhEHb_F_q!3HE}A3wtbq*&4&eH|GXHuiJ>Nn~YUV3x~t zb`J1#c2)=|%1_J8No8QDU~CP!pM5z%pKTcrzf+GR}4O9?JiK}KQU6w@P04YHl8Q~ZV%Q(n$q`&^(mcb25z#hR{r@|Lv)J@e{@B!Rx#qQchktv&e=X{IS~=;%>n(D`^nj5%7>4X2ih}xI5qXjq-Z>t=){vaEBVN(A3kD|N?uDYWtN0gZnC&$tucAp zTN(F?lkt2z;>5m2Z`$$g!S8u@Rj>E$5p6xXeesRJw_6)u?%E_gOS--^ap~f`hvqw< z&X&$y&CL<`uj}bXkGRxR{!M|`OU<552%i3@l>5BVly|CSLJ>T>)_jQjp_Rks-zt7+ z`u-~?&fQxpc)Fob$8Pn!;Iqfxs9y59^g3n7{;sc1$0UAEFm#TZyHCY;PM77UTLIka zY~@X_pFN7vzs^2y_nFv-zjku0)hkl&J0$+qwMOy7KI46M@!Rt|5|`iJcRA(tV#BD{ zyDv}NwP<72l>Xc5-)#F<2}^F;xNl=!7>D+jMafxSn@ju|m{oKArhjIg{9dqyyQX8E zZfF1Mr0@y;+FbcFdE%z?c&_)jskgzp|1I;j;A^qZGUJOaKWi1dl>U48wVrt>Tb$&9 zi^Y243ye#jaBirH(|Ij=Ti#~g_J)bpx0Bb}<|gjywhLQ*yF@Qqj&V2t>Z|k5uey5o z`ICC?ip77}Rw{E{JG3y~2$*v?3p^r=85sBufiR<}hF1dv17mS!NJL45ua8x7ey(0( zN`6wRUPW#JP<3jaZfGzAgH44Mke{1clBiITo0C^;Rbi_HR%QicgM{^!6u?SKvTcyou+33T=(vHhlRkj=$%I7^@978MwlmGnxZ_liE zpv9X>#cqpAWSD+z%jLy7L9^H__MTEYdAcoFC|_ZN&Hq2#%l)Rwzn}MbN{Wo)#wPP0 zZ4*_vHI{vUck}E2yQjq^CZ4OP_lS6FaGZUql0(;0MW@O z{~_qa=l>9N{q=tcy7uQk1U>!vAC5l%`_I6@pqH4FS4l#`mm0ptP!BO`=nfYDGc zgC3A!#9+c;#&BU%hyX}7U<-u4uocSR4(0EF(274+9@xY{TI+E|xQA&vBjfJ{=sA$#UVM0!whb#JzhgH*aM! z$V&*l5PEo%CG6hQmoHvlWV!!dp6ln&&nLg$d-3$kTj6m1xlIjBKY5iCJ}B&KVUbq4 zvV4R1;ffEBLXSLsA8lDJVRq~l$EA5ELQXf-CaUorF-kY^-=pu=`*F^>IX5>s$;rK%mHE!r zP$h3lZ zsu&tSJM$EgWSu@k&1X2N$vNfP1r2#P<>bx>9-HY>X?dzQ`iE=Wlw;RNCAE=}lB(Zo z<6gMZclprm#8~&$>T1JWM}M<~-Ml+E|D-6_*cxWgU-Z?i6ust)nk;MoNq#u7uv;l^ zc%Sp4FTSFge0_U;M2mWF(hez^x65SwD7r47cs}l{u%vZ=dWdj%&y6Bm@aZmsp732n z`nJSRY5d(iFV7q)Zw^u^L<>z!SwVOYYiDTWE^70(u!`A86P*2iZai9?pV48-{yUCV9Ec?o@;sUjk=1>cAm88uY+&dR!6>c{!;b@zv}ZnqTHCISIq3j zrmRZR!4J?JEO}MEgUxOYRO$OSzfMm1HjkLN%MA;yI5!rveWW!)Se@qKRd$^E(bb#N7V}{^+|z`)6% z1Cj)p!NB5da8lFJaRtYz>P<7A^-dCCk$%}2xhiPQk07@MnHN0qYweEe$zBM5c(TSh gNhp)&+_Xb#AC*;S@t8j6{w%jXPw*+ z6yhxKh%9Dc;5!7ujG`J|4M0JbbVpxD28NCO+UBR8*c(lVeoYIb6Mw<&;$UDTwkjI literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/slider/slider-v-thumb.gif b/docs/extjs/resources/themes/images/default/slider/slider-v-thumb.gif new file mode 100755 index 0000000000000000000000000000000000000000..58afe96aae0b9c6401d8c9991922d2cec6a86171 GIT binary patch literal 533 zcmZ?wbh9u|)Me0OxXQp#xA{%uvfIm#z6GKsSN;Lfo~!S6T>lS6FaGZUql0(;0MW@O z{~_qa=l>9N{q=tcy7uQk1U>!vAC5l%`_DjQp!k!8k%2*hK?h_H$WIJx{~abcI_OBT zvP~#DnPWBobmG!aEBwrF@C%)KtH(M!^Q+<7l&$x^2!9CZ2??R|XC)#}obq9jK70Pcr2=`DtKQdd z-a4Cp|AE4zb6i}vFTZ$sh1sl literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/slider/slider-v-thumb.png b/docs/extjs/resources/themes/images/default/slider/slider-v-thumb.png new file mode 100755 index 0000000000000000000000000000000000000000..7b3d7258ada4c81c6fc060bd5eea69524f0ddd65 GIT binary patch literal 883 zcmWkrX-ty`0R50E#}rYbBu=wW5C%9+p|mz^KUyf-HiDg2qsADUdFzy5J(6V!F6ux{ zaM+2OO$`xO3Uq)R3W!vwP+G1+0l{9h^wh2t1P1Ecw;%7wOWvRN3Pjo4mW8hgCkSGh zfX~}W=_U$Ep}`bKs$wE3`9_+#SDKM~L?S(L_6#XL@#7IfeEd9_vW3i&r8Rg-rR1}uO-*=86B3}KEpj8RNJSwCe z<7ROQqPp;lkCMd%5%jZYyEu~r&Z91X zf9j@W8dR9k4|L3<$&YFmJnu7Kt{FYwd>r5Rl|w2Y#50Oj3~YoXAgst?bG&}PJ#5B*LU z{dhi%PAi5yumtc_57k?YzK3lZCO;fAuuj1>3uQ0r2GKeOg9r8x@cfIq0W`lshXs93 zIA`IVN8>P>-au=Idk*gx@Nx_tR`fbB@($(zCT8GUfYt`J8SN(MT~J+7{6rlSB;A?4 zi{Lm$j#55Vz~hQ9js9@RB1tFCELoIyqu@p3lls?9n^{Tg3m@givo8E|x9G0ECUCv$ zW>S2Nc)=b`i+*yoGx z#+_e9u4`NQ<+fT+t3SUpVSIPU;$N@*R&qb?%B_=I<2M+#S1hId9!oIRt6i-(mIr+o zmUzJ$m2>{w#i(h~Zhb8&|6|8ij!3;n-D6VqYdY^0h8ofXcZ&8bNx3$};+3(67|G0C z237+ptgBK!Xd(M@Vq?UoRC)CgD-;F^C*wA|I6wb-VmZG|v7&PSfrH%d3oaQ}7UiZq zmftCgdwjomxq$gFHJCdQ+PZ_EoJLm54s(eZpwg8szLd;) zE0(OwSuK=zMkpZnzJ-dQ@B9A;j_J8?dE4Z1e}l&z!+950Oxai+vHr#zW~Uid3uD?V z-gL}3ne^_vwA*a<^i8+4KWsbx%;CTpe_^49MxYf>(V^3$$dK68QT0^6kZh;!-ur(qY<@lj!Smw@%R%QGe< zyH8^BbxU&T^k3>Sjak2o<%i&sqci1lw-uihNVA#8R;x8dGw6l&0^#f?mswg8szLd;) z8j5RkUaxzly*VrSe#N~N0q_4ic=)<+`Pg(~Uf01KtNA_2Mjj0g>(9PQKK-^zK2&Gh zD~;L88Jn$mM0*so*sCV=g$w_vVPd%O{A5u^1|wr>T6tY{O=m+>b4wdvM_0|%+Nw}) zZo!thb2DafPoB19hQO>j^X4sBBv83zYTeA)tL6(X3}xH3n{DczU7Pz>wr<}cuzy$0 z3ARu!u0s<9&t2Ymg6Z@b0gl_Zi!<)rxq9P7=!3iWpK*k;zIprZJ?qn#pKrhZ@cqrF zFE79S_z=p@#3keL!NI=%9fMem#0P~#H3AYwB|icdx-^LhM(xosSiHYihS#a$2cL?2 z{|_I}IG0NQr7qL{E496`n3Q5YT{!zzk9zU46LSS>&8}n$KX;m;T7AxCRzRl5GV{6f jRJ<-_IIeJPO?s;NMLl4(#LBQKyMorZZ4z>3V6X-NW`ERP literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tab-bar/tab-bar-default-bg.gif b/docs/extjs/resources/themes/images/default/tab-bar/tab-bar-default-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..5b01cf9064c88bcc2c6e0402adac913b8dcee7c0 GIT binary patch literal 1829 zcmZ?wbhEHb*+@ zp|P1mSS#klhlIv<0cEc_9vc@OWtK3`x^rTqvKzC4bC-$P>&)zuN3v+kbS zy88P1gu`93-rLsP+?;WFRqW|)Yj1BaczkNE_x5#ncUOFVb@%l4_4oHTFmucK?AY+| zaEGvV+?gF4A0MBf>^;wC=ccEpXBcPSJF|21^YaUwyXAa$ZFzZlMeyplv%9vwzP=&( z^gQ3)+uq*ZQT+Pe+1=aU-#^gIE$_Ey$H&JfCTqu^+q3iY^9zf;=lkv5_4W0Q&Dr^w z=R{${@qPtoHVMy7OHNMK2woL)a?{e&(+!eO&GFp4?Cfld;#YT0ZeD(VzC$yYtk;$m z7Z-a>)`~r~W##4N0gJundTm{Gb#=t%th=YSuD-rL;c%C%_qH`RH)mX46?=Ny+S}U; z9-o@)y?x!?-4&l--95d1{r&w7%-nK5J2pH#+##$TcV@@N$Hylqd(ZRPx#{WY8OGW7 x&g|U${QLsvZaLpwTV7sX5xhF??5?e^uWv{`JuSLv*+2qEAOW4c(Uc(hiSW>%-Zwp-@kwVN5N+|z#zh)!vF-J zJkdUyBZhdCjyj*B5a4iOVCInV*pSe`#38J-=D-G~hIR%HrWFbWNv>UN%oZX$0+k!s nMFor;3>Gr5a&l+|ELf0m@DK;9nnFSVqa!mHzrq?G4hCxgZK44< literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tab/tab-default-bottom-active-sides.gif b/docs/extjs/resources/themes/images/default/tab/tab-default-bottom-active-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..5110be98b6cefc2bca336b010e866b434a88a0cf GIT binary patch literal 1982 zcmZ?wbhEHb*wP3_t+N6YZlpVgy9{s26dD0LOm@MimK%0tY4rCT=MgiwzGBw(v=6)!dk% zaI{lM*=fs+iI0!9GVyoVI9zP-WESCGq2plKaGF6k{#c2nu-f72W~`6aocz4ZXTC|} zGoKB?8UAzaC$fcFZPB>A*k!U?tku?)A;J3m_Zxn(o`|per^vCOiAn6lgGLrLiHA+XW*Q5d zMV&exwuzT{D7MR2Wh8c}^kpn+Q(6?Us7qby#iM5ZGzsMn-9s6Rd(1DLc+_XS?8f6R y`)eJKCs?taOzyK&;#@MxN$lj4i7slAPbUSNX)c`{>eTskT6mdfY9b>egEatH%*9~< literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tab/tab-default-bottom-bg.gif b/docs/extjs/resources/themes/images/default/tab/tab-default-bottom-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..5e2b3bfc07fb548146a8594491678b81d1d566da GIT binary patch literal 1789 zcmZ?wbhEHb#tCpIoV-oxnBCF3d7aB{Ln@T!=To0guQZjgLxj_2lOXJ=a!zq)gB^YZia9h$jh zy|%2lxY%Q|R_v)QD=#k(SnM^|YwN13t0OjN-95E+_4V}$hr49Gx2?IkIpgxG*wfqA z-ripD_|#nQ?d$IDuK4`w?&vEkw24q@%MGdnguK0ZO&d!EnEO;1nH zFwVYrX6NST=NCA4%lYow^78VE;MH+wcWr%reM9o;dA_^1y}iAo`1QTBySL}>Vq|2n F1^}9Ycgp|( literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tab/tab-default-bottom-corners.gif b/docs/extjs/resources/themes/images/default/tab/tab-default-bottom-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..5cae8ae41d59cddbd6ae2cc4b7b09e4266b31f37 GIT binary patch literal 1648 zcmZ?wbhEHbWMPnC`2L@vXVar6Z+^_!^J3bLCr{q}xbfoGnqzP7z4>$N$**Vceoff+ zID^Gs>`}gn9zkeUT{rNu% zMnhmog@EEu7DfgJDFz(|AOPiw_R$CX!w`tax3hd=*E!DtAKm=I9>$->CMz{a4% z00f{s(LS0ZMoi?7dK60ta6D#U<&g2%u;5@bhp<-6jDm*4?E=bPb6!knINB{?oOLH- zW5e-&1!p!1&rM5CPSyxs6_Y8{aC*8y@~JtVo0pxPZBhK{&dJTo&(C*g=92Z=vf|=m zkI7oGr?#xTygXpB*IciytFEq&*qn9u)YjG4*C!nAlJ(xU=H}*%%d28fZ(DnNd%@#V zbG^5(ySuyM^Q*h3x39myzk!)s&S%Glhle|awd2n0*!cMP1ZD4eK07x(Jw3xX``($I zo1dRw;M^_eyKBqK%PWFc$DQ4^_4V})$*1S}?%wwH_KxD$_s;I#{{H@fW^Q@EJv%-g JWn^Tq1^`N7el`FA literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tab/tab-default-bottom-disabled-corners.gif b/docs/extjs/resources/themes/images/default/tab/tab-default-bottom-disabled-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..396aad7828d3e66c0b69102f5901a40c5ed6d5aa GIT binary patch literal 1648 zcmZ?wbhEHbWMPnC`2L?^#-0~X-u>Eh<-@K^@7{g+_2}Kd2XB78`t;|_y)XN&eAsv8 z-J>_Z?!5VN>dvPJuYO&4@a4dj50BpcI``nqoo7EjeEIY5-@k7^{(SlI=l>`e4S^vT z0*XIb7#Vz(Iz2BJ^{@IP7SOa8W9`~j7*JO5(YLN8x$N`Sr~N$90D30n0Pql Kj_`0WSOWmcj|c() literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tab/tab-default-bottom-disabled-sides.gif b/docs/extjs/resources/themes/images/default/tab/tab-default-bottom-disabled-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..f5e887f180fbfd32548fd932bfbab9749c528eb8 GIT binary patch literal 1984 zcmZ?wbhEHbRZa5fB23 zKUo+V7&sVo7=QqjC)!7I#0ZG?Q7_^Q0gnF+j4BEa6C9Wrn7E}}EH*qi*up2NRWoBj z!%-#?{iKwP1&bNG0(vw*r=FQ@M^z}PJ5+7Ux%y@-QD%n%j|W;=G5(rVpnf_ zdwp}>;bpbf;d;@#%HJMadP+Peen-XkU$Q(A`40}a3IAWa+af>tV5_|Hv^6sfl27*; zI`5N-{G4)rs&)4>AFIz9mzSC^j$6Cy>+{R&oR`Misn`6LgmSA*(+%Yw zi+3*`PjGl8@noW#+Rx-(?`JobOmMa9Tr$N==;V^Aeo359rv_$OE}b4KCMLjO4FE&q B&Jq9s literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tab/tab-default-bottom-over-bg.gif b/docs/extjs/resources/themes/images/default/tab/tab-default-bottom-over-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..bd751fdce155cde6dce6f395271df759ed89f18f GIT binary patch literal 1791 zcmZ?wbhEHbEE*t|DJsK_vqcf2XFrU9|fZ!Ffu|w@h1x- z0|PsQ4g(N?@eeyYuSbhEwl8ef#&~!>?!Wem!~j zYtptSx1Ri(vg65)3-5MZ_^{>7ha1oSTzmHG-@kviUI5XbJFk9y`tk4oC>RZaAs7OR zKUo+VfLTF@0SG{OqJ1<+48dp|bu!gLfWw1Goe51&%p80o2MibvvhYaAm;_iPK5JzWP*agO@QLwE1A{dH DrUe8F literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tab/tab-default-bottom-over-sides.gif b/docs/extjs/resources/themes/images/default/tab/tab-default-bottom-over-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..3864ac96fb1400ba5e93d2e7d04fd44546a66551 GIT binary patch literal 1985 zcmZ?wbhEHbWpTA`nma5 z*=&0)rz~fh@7nlHWY?68;Kd&EwQNsKSrxoGV71#(tJ2lsYZKPjiAtMk-`t#bxlDJr zSZ?%I&&OUdj0>s^}pXRzL?kW<869EJ{dKz~a-owm%F`1n{W6L*J>!^eh`%&PuDA_syPjsmmJo*ql#G~by#$&W-rmotWeQkZ%-Zs|m(ls|XW$c_3 zT0Jc{YDvN3V|T5>-$d`Mc=>GW>uvdWx7Ocg+qZhV!Tp1E-G3Iw@zd7qEPi%=nr%Bp$ z_48`0o_tt*{JvfMpX#4KUOwOceqa6Hum87-KdAjBdg6Y=zqjlQnwX3{9yIc)WjtsS zHj8-JEaFtLutlnD#=~~8DhZ_yiN1`aPK_duMP2HfW+*ioxJf*2Gw%AasK?^cjK#fr z-y$A&*>970(rYDl^6><_cN|M5IT?9AndqmM`D9YCS>)5nAx@P`r$m*_d^$Z$PE>%w F8UPA-&fow5 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tab/tab-default-close.gif b/docs/extjs/resources/themes/images/default/tab/tab-default-close.gif new file mode 100755 index 0000000000000000000000000000000000000000..e699878484183bf770efe1e9376a6d0d36b5f1fa GIT binary patch literal 896 zcmZ?wbhEHbJ?|=UP{`(&Y7)HTp2n_uYQ2fcl%)r3Npab#>C{HkO#4<3m zSU7BWz}U#Fsu82{@Bt$ykATIDjt0lW%z^?U8V?ebn>bh$O%xm^r7&}_$QvXWEO>f~ vokdbbz+rM46PqC~1H*!Z<&1OKC3FlnEYJv?!yK*^TN$w6U=tHF6N5DXg62z6 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tab/tab-default-top-active-bg.gif b/docs/extjs/resources/themes/images/default/tab/tab-default-top-active-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..aee1957beb2f8c0a27cb9458d2de065d1bed035e GIT binary patch literal 1775 zcmZ?wbhEHb))3j|2};C^Xk)||D#|u1V&5)`~r~W##4N0gJundTm{Gb#=t%th=YSuD-rL;c%C%_qH`RH)mX46?=Ny+S}U; z9-o@)y?x!?-4&l--95d1{r&w7%-nK5J2pH#+##$TcV@@N$Hylqd(ZRPx#{WY8OGW7 m&g|U${QLsvZaLpwTV7sX5xhF??5?e^uWv{`Eha6%U=09$-*4{# literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tab/tab-default-top-active-corners.gif b/docs/extjs/resources/themes/images/default/tab/tab-default-top-active-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..e4ee0d9a89c9d2284e0f338974268eed6f881110 GIT binary patch literal 1640 zcmZ?wbhEHbWMPnC`2L@vXVas5Z~k0)^XJBkUoSrW`t|4Ek6-_uef#t7%ddBze!cnh zYtptSo6fwOvg65tYwz}4dN*U&lUaM7{rmUt|0oy@fuSD)ia%Kx85o2abQpjDlqcFp zbHvb()lnai9|9b%42&Es4ht1pnK*=%cn)k>c(|QW%_m_)0uu|1h@8TNfCUE+GI2|I mENM_U)WRerV&UMikkPSCpZN&OhY3t)8O$V~wMYsuSOWm?6$e=W literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tab/tab-default-top-active-sides.gif b/docs/extjs/resources/themes/images/default/tab/tab-default-top-active-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..0aa990b9a0ca4e6cbdcd0614e3fa20702cd6eb1d GIT binary patch literal 1962 zcmZ?wbhEHb*wP3_t+N6YZlpVgy9{s26dD0LOm@Mim8z2@XsQOx#i~GY&L3GqbbG&8SdF zVq%nFjo>+8c;Hx{yk*;$6C0F08`a!b>2OY3>M>nicuC7np;YhL`h~~ltlYfp%xwE& zw!55Do(If#n=BTq6_Ode%w@h;ua~H1$m-yYVM|YLO~1Z4es11ZFR`4+jZv4|_U7rWWy_iAn2*LNkkQLo-3j>kP#*EAmY d+CP(c(&zBWVoAT7TI7>SPFgopycro8tO2bYzTE%- literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tab/tab-default-top-bg.gif b/docs/extjs/resources/themes/images/default/tab/tab-default-top-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..47fbdacd564945295666b79e00fb9ec93b57ca42 GIT binary patch literal 1775 zcmZ?wbhEHbd&oLe{Q_^b?w=&D^Gs>9|fZ!Ffu|w@h1x- z0|PsQ4g(N?@vEkw24q@%MGdnguK0ZO&d!EnEO;1nH pFwVYrX6NST=NCA4%lYow^78VE;MH+wcWr%reM9nTF=+t?YXB3SZIb{1 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tab/tab-default-top-corners.gif b/docs/extjs/resources/themes/images/default/tab/tab-default-top-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..3cccd3afd7cdab25685c54d9dab55e14f132b597 GIT binary patch literal 1648 zcmZ?wbhEHbWMPnC`2L@vXVaq_FMiF~^J3DrC(qvfSaa;nl{bGTYbj|-2!U3v23-@ku<{{8##<SU7|oA~+5< z9&Q(q<(i@4(9FilY@%?$V4*`BmjIj31c9K&qns=P84Ups4>EBGsqrYhn6Qj_HiL%M R9fpK-e|8&9CJqh;YXHFl0|Ed5 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tab/tab-default-top-disabled-bg.gif b/docs/extjs/resources/themes/images/default/tab/tab-default-top-disabled-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..1e50a8cf07757db219dbff22fe1af21f716bc04e GIT binary patch literal 1794 zcmZ?wbhEHb$->CMz{a4% z00f{s(LS0ZMoi?7dK60taNK8L}Xwye0g z*kiI*?5Qm)FE0;R>^0YG>#D1(BQ|H+bHZ`26bb>Fw+9?{8q{mh;)M;o;#9VePmxJ2pN(K0(=gp3lxrPfyP<&c1hM z=jP|<7dUsz`R>~C^74w{)p2KcZGC-xL-Of)zPq=*y}hIO^}VyZx4*xCpqX1f&RT)N F8UU%4d;0(Y literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tab/tab-default-top-disabled-corners.gif b/docs/extjs/resources/themes/images/default/tab/tab-default-top-disabled-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..2eccc81e48acd7ac7f1e41c3afc96d92e7811e3f GIT binary patch literal 1649 zcmZ?wbhEHbWMPnC`2L?^#-0~X-u>El<-@K^@7{g+_3YE12XB78`t;|_y)Or@eAsj4 z!=pF9ZoT?->dvPJAO2jp_vz8QUmw2w`SK6_P=jDP@xH2}0$ B38w%6 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tab/tab-default-top-disabled-sides.gif b/docs/extjs/resources/themes/images/default/tab/tab-default-top-disabled-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..641602a61d072c563f8ad3e1640e1a683f3f47b0 GIT binary patch literal 1979 zcmZ?wbhEHbCdA#zyAIE_u|8!XCMANdH3u8C>RZa5fB23 zKUo+V7&sVo7=QqjC)!7I#0ZG?Q7_^Q0gnF+j4Bci1rAIMOx#i~GafV?W@cx#YdLYD z!IfE1IOa&i$E0IS3fwh3GXonu8CCt$cn%mHI5kZ_@>t2q4XVD4X6diia86$CGv8eJ z3Ck|wbpOTn6WL@}ZCP<)vHxVZSgxrrLzaha4!f%rnjO9_WPca0x0rUs=H!dhR8MWo zyuCVq@48ZN@x0ibS)Y&D?l#Z8zq5?_@!!?o_2LiL2{OyA*|Fil;eKKFIG&jwQ;ttF z4!@@pS)6`uihVbquat4d<;8*1)z0iHe0_So?fNob>9X9LtBQ}??X@m_e{);&<9};^ zo8>>=H<4L>-JTsE9-p7=9?v)TXUX$xo5Szx#a5TUyRyG~2EV_Yb;ak$7pJSA+gJJf z_4~c+%l+l+YJa}^eB6G&eeM6B-&i~D*Z;bEe179UMUDpzTw)pz8u`^E9ySRWSuAW8 zON)5eCX{tUv0bE2BdJ3riDOZx@}dZ(Mjf*ok6QJsb}Z^PITW$DN9&oy<4)^kHy-zx uv2{M~x4L&?@kBc%&Lj_u$RHdvE^z9|fZ!Ffu|w@h1x- z0|PsQ4g(N?@<=W^zPTR z9nWq&`?KxbyD2-KY&!Ms#*1G&F1)+(=Fh)>|8BkbbL+*wJFouz9|fZ!Ff>Cz@h1x- z1A{n&4g(N?@1}0`v9UlpY3yHo==8OR)9gGbA^I58bSOf$Z FtN}Fv1L*(& literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tab/tab-default-top-over-sides.gif b/docs/extjs/resources/themes/images/default/tab/tab-default-top-over-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..b88406a322b95a52a5fe01b4479f07739f671a94 GIT binary patch literal 1963 zcmZ?wbhEHbpZ-1j@bAv6e?ai$!@o!G{@r`?@4=gY|3|@S2n_cS zQ2fcl$iTqKpu+$Jpghq&nj?mLoR9hsUkGsgXJFKja42YCVqoIeuqg;w(Adr5-ee#xVUpfLD-6t{m_r*j8rFu`$cRl8kDU{|l+cfpwm6?;5ot|q~ z`0ve0p^U&q#{GP;T3a;zm-)|S>-8#K6}mKNW7yRy)0N?i<0m%BYH!oIvM%L(QLJ=W z?(H@C+mE?si{(Y_E`56M>g?(3Ztt!8`0wp$v4X@y#r*tnIy(&GkM+y4_xV(AN*eI{W@u)*-8b@Ng%DfW~yA)U5NNUs1lThwbJ2Ycauj#3Z#eJ5SUOeiv ed-Nl@Uxz7DWumd1<&#NHW+#;=8?mx5SOWlg&$s6Q literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tab/tab-default-top-sides.gif b/docs/extjs/resources/themes/images/default/tab/tab-default-top-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..f545916db21541418bf7b7c52e17e4018a252cc5 GIT binary patch literal 1962 zcmZ?wbhEHb5RPWjPg~#Ts+`R0} zZ2MxiyPQ*=2h4YyEEcO3k{P_rWxiLhm#AjQ>fnuGOHXc1zrHwrZr)cfv7E?_QJ35H z?lQ~1y)o_aqT1EpbfS0XeLOUG_4ajlcGrJqyT?7_eZu}WVevSfh{EJ!E%M%dK9Yth zrzabRFFU<6|M}thviaY9q)IX`&I)edx5ujZ^~Gh$i|f|@GReNZuJG`@wY#^yxxK%b z{XXxU?*;ddO%{*Wi>WMrc4WSHzn`pS$?MA-!TAUr^7c7V)5oN$Z9}GmD)@VvC3p z$HG?OqzJ`YnQzx0Hp*M=SlF)86tSp7YMI2NR_(MKk2=(jbv)|Uns;JRuihh$$30fp gG#>ZbKa+UU=kUp5Nxz#~Tq|o89z@dqOk4xdi4h08hR&Egs4h{xu0Gdww Axc~qF literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tip/tip-sides.gif b/docs/extjs/resources/themes/images/default/tip/tip-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..cf4c2f62a036eb8d2924f88eb7a761f7296eeebc GIT binary patch literal 1623 zcmZ?wbhEHbWMfcb`2L@vZ`HXMpZ@(H1*0J_B11s&CkrD30~3P|0}z1nMEhut7?BBK z)YH%q;4ooeWRZ|yXmDs^;}o;8Fi>=A;}*5b;V4Wx(k`T(b>@WNV)rgt$GSZln^aCt O77NaknQ5fJU=0A~&kg|q literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/toolbar/more.gif b/docs/extjs/resources/themes/images/default/toolbar/more.gif new file mode 100755 index 0000000000000000000000000000000000000000..02c2509fee0fb4555df61072d8e8daac8dc7430e GIT binary patch literal 845 zcmZ?wbhEHb_??HKjfkTUdnM1~7 r!-9j&9Ku>L9YCQ*K7KbIgN+Z4bP31@U9tF}++`ynz+epkzXub1 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/toolbar/scroll-left.gif b/docs/extjs/resources/themes/images/default/toolbar/scroll-left.gif new file mode 100755 index 0000000000000000000000000000000000000000..2db8cf5cacdeedff17ce269eed74d98624bb1f67 GIT binary patch literal 1861 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 aAvIb&vGk?1#~7_f{bJ2zyB-JxsQnl3W4iMI literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tools/tools-sprites-trans.gif b/docs/extjs/resources/themes/images/default/tools/tools-sprites-trans.gif new file mode 100755 index 0000000000000000000000000000000000000000..ead931ef617ac8520a24a263abb456ebc1bcd54e GIT binary patch literal 2843 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 P{CU^aTq0!FVcq`#CX}cg literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tree/drop-above.gif b/docs/extjs/resources/themes/images/default/tree/drop-above.gif new file mode 100755 index 0000000000000000000000000000000000000000..30d1ca7107816233884d23239dd76fce79237fe5 GIT binary patch literal 911 zcmZ?wbhEHb6krfwXlGzB^-Oj%*Y>c~334!T+I5ReJa7x*DTyS#YWmWQ8@*yChwS&o6 zrsT(mM-FYgx*h@@4;QobG08Hm@c7Wg%*HKZQ}Uv~iG_ooBg3QNK|^B;FB^}5K!V!o j#pA)jmQU~$dc{RCEH^Pc0?BK zj4s|4Q@Ag_Y)yK_x{UHY2^CvX>NjQ8>`JNKlUBPgy>f3}?ar*)o!Rv}a|;e8R~}5M zI+k5?IJ@p(X5I1prmcC+Tl3ns7k2C@@7Z0}wX?EwUq$b}>dE`-8_$%sovdm*S<`y9 zvg=S~|DoE>6ZKu^Yp3pS>N(xmcc!K9QuCyv4O0&^O+Vf`{Y>lRvmG-|x6L@yKI2T+ z?1R&1ADl7ea@VxWol~!LO}o-P{c88ji`{c?Oj>eo%Chs*mR*>(;O5i?H>WMVJ$u!a zxvQ_tS$1N<@{-~Tgx`xUa|S^%B{CoY`?W?%iUF5@2}Z*cg>Eg z>v!B;zx&SmUDr15xw>=vgZ29!ZQJ`~+mSmvj^5pQ^4^hC_l_QYap3f`!)G2GJNw}H zxtAxeygq;Z-KCo^FW&ihj$;hsoH8C8796zp$T+b>@c4oQ4ptl9{CxcUY?nYS7uzPr^nkf~ zF-KnfWK`sLl+9v^jSOlzC8As$;v$iu&bdH0ut_86$zxX@GwwqiGMCbLCdz4)g$X=7 zcxoaWQ~HIKhmx0vy2>O}Xevx#ky5l?_wGr-qtgtHrgJ}!+;FF#5#6#i2*%nh> zyAFx!#AZoGf3_x%!Zyuz9to2P8w(l~A)jmQU~$dc{RCEH^Pc0?BK zj4s|4Q@Ag_Y)yK_x{UHY2^CvX>NjQ8>`JNKlUBPgy>f3}?ar*)o!Rv}a|;e8R~}5M zI+k5?IJ@p(X5I1prmcC+Tl3ns7k2C@@7Z0}wX?EwUq$b}>dE`-8_$%sovdm*S<`y9 zvg=S~|DoE>6ZKu^Yp3pS>N(xmcc!K9QuCyv4O0&^O+Vf`{Y>lRvmG-|x6L@yKI2T+ z?1R&1ADl7ea@VxWol~!LO}o-P{c88ji`{c?Oj>eo%Chs*mR*>(;O5i?H>WMVJ$u!a zxvQ_tS$1N<@{-~Tgx`xUa|S^%B{CoY`?W?%iUF5@2}Z*cg>Eg z>v!B;zx&SmUDr15xw>=vgZ29!ZQJ`~+mSmvj^5pQ^4^hC_l_QYap3f`!)G2GJNw}H zxtAxeygq;Z-KCo^FW&ihj$;hsoH8C8796zp$T+b>@c4oQ4ptl9{CxcUY?nYS7uzPr^nkf~ zF-KnfWK`sLl+9v^jSOlzC8As$;v$iu&bdH0ut_86$zxX@GwwqiGMCbLCdz4)g$X=7 zcxoaWQ~HIKhmx0vy2>O}Xevx#ky5l?_wGr-qtgtHrgJ}!+;FF#5#6#i2*%nh> zyAFx!#AZoGf3_x%!Zyuz9to2P8w(l~c~334eSRT}sa)VS__s8w&@Y zgu;q|!z~;Fasmw<8xA%wGBG*Ccx+O2Y*vXZDtTe_=t!5iao(F9ACgZ@)bm{w(wUgh k*e9SZBf7&RvvH|ppWc*{Usi^4=^EOswG7BU)WBd303hyMjsO4v literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tree/drop-between.gif b/docs/extjs/resources/themes/images/default/tree/drop-between.gif new file mode 100755 index 0000000000000000000000000000000000000000..5c6c09d987cf7cee99cf1baec891f85e7477cc02 GIT binary patch literal 907 zcmZ?wbhEHb6krfwXlGzB^-Oj%*Y>c~334oIij5|Ns9CqhK@yhFS=VTXXjp>_!!i-ZjhjBP9&d=d&P1P-@w z2*?REbZj`-z{teJvFE@96*ex`7^N1;;s=LXIk{il(fr(WZkkH%E}e=3)qp;}RJS=1 ZACr#t%8J+VSOzWgoT4>ViN zU%dGJ;lrOVU;h61@&EsShEXsY0)sdN6o0Y+UH6|s2joUjo?zgZ#9+@MbEA=|m5*7N zuP1?_;V=Wcmd2kAjEoFSyb3l63JeWQEzG)l4<-aOJF{^!n#_11;LyO$#4EyJxnXG= zBd1*n!vlvz??xWBngt9APKV|*$upc#SeW74&N(&d!GU0fOO1}n=k{oQNISc~334!T+I5ReJa7x*DTyS#YWmWQ8@*yChwS&o6 zrsT(mM-FYgx*h@@4;QobG08Hm@c7Wg%*HKZQ}Uv~iG_ooBg3QNK|^B;FB^}5K!V!o j#pc~334eSRT}sa)VS__s8w&@Y zgu;q|!z~;Fasmw<8xA%wGBG*Ccx+O2Y*vXZDtTe_=t!5iao(F9ACgZ@)bm{w(wUgh k*e9SZBf7&RvvH|ppWc*{Usi^4=^EOswG7BU)WBd303hyMjsO4v literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tree/drop-yes.gif b/docs/extjs/resources/themes/images/default/tree/drop-yes.gif new file mode 100755 index 0000000000000000000000000000000000000000..8aacb307e89d690f46853e01f5c4726bd5d94e31 GIT binary patch literal 1016 zcmZ?wbhEHb6krfwXlGzhFH%vfSJo_7)vQuAsWC9EH&km;*6LR^?KiYxFJMjooS=wa?sdwqwu&r?{0KDI0upwuR+x56{~g zkq<(VSvvztwnvw2k15z6Ua%vwaA$PU&gkM@F@^i$%l9PIZcnS(l~TJWt#)5}{f^9- z1J*HzZPSi=W*zp-IqIEx!mH#^WYOu+{6mTPhZFOT08vuj(d7JNDFp|U3y&lh98WDi zo>p==rRYRP$%%~86B%VEGs{k8RUS;KJD6E_Jiqc}cGa2O`cnnX`*Pb46}28MZ8%lj zaHgpFTzUJ+%FZKY-6tw0oU5O>vwy;#zG=ssCm!gZcDil)nbs*M`lp@kn035;#_6_M zr`l(nX`gwvYwo%3nHRffUg(*1rFZuAiSsW_n15;F+#8b?UYok``qahOr>(v;d-dhn ztL{u+dw=%2>kHRkU$E}Z()D+iZN9m5#o~d_ub#R;qm;f57%vfxPJS?4f`H%+y8jS!N=PUJlT2r&He)i4xD~_ z;M%)OH{V=&_T};0@2@}p{P5-1r$2vx|NZy(|Ns9CqkyasQ2fcl%)rpgpaaqk$`cG6 zR~e)^Wjr=4aC9<_3F%-wzQDoVIAhB~=k&AfoLyW-Re?t*%+d(FBC_aGf`Fq$D3_+D zkjse)Dz(dOBqZEh6jdE-UYxkdEGT3zv4dmE!Dl=ZWi9e%{1g;@!G-s^!P$| z8==@$AR3<{5^GPA?~^>Pma%d|c$9FpHozQ?Xjg>udUpBYwxjRJ5N111_ak$-+1`( z`TOs$KmUgS#h)yU3=I4XIt)MnGJ}D|<-opRJB_vEXSch-q28ikEr8>dQ*& zr*1lvbmi&;28RdllqNhC>tgCx%Fvy_p*nG)g9O)&r%wdl%(Hp0p+cvVfx#L8`j$#l literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tree/elbow-end-minus.gif b/docs/extjs/resources/themes/images/default/tree/elbow-end-minus.gif new file mode 100755 index 0000000000000000000000000000000000000000..55d8a0fa27324b7f4e38c26336106ea63a8d20c3 GIT binary patch literal 157 zcmZ?wbhEHb6krfxc+AIO=#}jB-)YLyy>ozQ?Xjg>udUpBYwxjRJ5N111_ak$-+1`( z`TOs$KmUgS#h)yU3=I4XIt)MnGJ}D|>%&P+;k_2G)3^V>tM0{}$k(hOBl&Po{$U2) zHzzoHcN%V%*me2~~eL65ZFb1$}72{STS F0{~EqN}K=y literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tree/elbow-end-plus-nl.gif b/docs/extjs/resources/themes/images/default/tree/elbow-end-plus-nl.gif new file mode 100755 index 0000000000000000000000000000000000000000..96f8d723942d4f0c5e23e2fdf9f64d5d414870f7 GIT binary patch literal 152 zcmZ?wbhEHb6krfxc+AIO=#}jB-)YLyy>ozQ?Xjg>udUpBYwxjRTTeVb1_YO$U%B`3 z`TOs$KmUgS#h)yU3=I4XIt)MnGJ}D|^}|We)q5>opRJB_vEXSch-q28ikEqT_64o= zQ&%x;mMAr~Xh@h)E@%82Bw2LM$6iowpm(o>{suv@X_;DVz34Pv!F%; literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tree/elbow-end-plus.gif b/docs/extjs/resources/themes/images/default/tree/elbow-end-plus.gif new file mode 100755 index 0000000000000000000000000000000000000000..a5c62fab32adca39a885e19ab9230d21a9cb804d GIT binary patch literal 159 zcmZ?wbhEHb6krfxc+AIO=#}jB-)YLyy>ozQ?Xjg>udUpBYwxjRTTeVb1_YO$U%B`3 z`TOs$KmUgS#h)yU3=I4XIt)MnGJ}D|=fg=&;k_2G)3^V>tM0{}$k(hOBl&Po{$U1P zo)cWXJM|Cfu-#34z#!4Oq3H+cw0Y|6j{uQT)d^~>^T<( G25SI?qe(ab literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tree/elbow-end.gif b/docs/extjs/resources/themes/images/default/tree/elbow-end.gif new file mode 100755 index 0000000000000000000000000000000000000000..406a88dff55195c8f8fbb65c37a10280e9689e25 GIT binary patch literal 70 zcmZ?wbhEHb6krfxSjfcS^xx^&v19+iK=CIFBLfiVfC!L01Cw}5e&gx43+Bx!j0#)d SwtMyY(nlWCo>_`ASOWlykQ)2| literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tree/elbow-line.gif b/docs/extjs/resources/themes/images/default/tree/elbow-line.gif new file mode 100755 index 0000000000000000000000000000000000000000..e25ed03fb6cebb2a0f891c0730f50977246ddace GIT binary patch literal 72 zcmZ?wbhEHb6krfxSjfcS^xx^&v19+iK=CIFBLfiVfC!L01CwM+e&gx43+Bx!j0#)d Tw)?qX<1KZol+K0jj11NQyrLT7 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tree/elbow-minus-nl.gif b/docs/extjs/resources/themes/images/default/tree/elbow-minus-nl.gif new file mode 100755 index 0000000000000000000000000000000000000000..f50bd40ae3db3333f583681ae0b875e2a83cadaa GIT binary patch literal 151 zcmZ?wbhEHb6krfxc+AIO=#}jB-)YLyy>ozQ?Xjg>udUpBYwxjRJ5N111_ak$-+1`( z`TOs$KmUgS#h)yU3=I4XIt)MnGJ}D|<-opRJB_vEXSch-q28ikEr8>dQ*& zr*1lvbmi&;28RdllqNhC>tgCx%Fvy_p*nG)g9O)&r%wdl%(Hp0p+cvVfx#L8`j$#l literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tree/elbow-minus.gif b/docs/extjs/resources/themes/images/default/tree/elbow-minus.gif new file mode 100755 index 0000000000000000000000000000000000000000..a7287961bd3f1eb0269c1ac04f18176dc92e9722 GIT binary patch literal 159 zcmZ?wbhEHb6krfxc+AIO=#}jB-)YLyy>ozQ?Xjg>udUpBYwxjRJ5N111_ak$-+1`( z`TOs$KmUgS#h)yU3=I4XIt)MnGJ}D|=fg=&;k_2G)3^V>tM0{}$k(hOBl&Po{$U2) zHzzoHcN%V%*me2~~eL65Xvw}qcA*DiBm HV6X-N=kiOC literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tree/elbow-plus-nl.gif b/docs/extjs/resources/themes/images/default/tree/elbow-plus-nl.gif new file mode 100755 index 0000000000000000000000000000000000000000..96f8d723942d4f0c5e23e2fdf9f64d5d414870f7 GIT binary patch literal 152 zcmZ?wbhEHb6krfxc+AIO=#}jB-)YLyy>ozQ?Xjg>udUpBYwxjRTTeVb1_YO$U%B`3 z`TOs$KmUgS#h)yU3=I4XIt)MnGJ}D|^}|We)q5>opRJB_vEXSch-q28ikEqT_64o= zQ&%x;mMAr~Xh@h)E@%82Bw2LM$6iowpm(o>{suv@X_;DVz34Pv!F%; literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tree/elbow-plus.gif b/docs/extjs/resources/themes/images/default/tree/elbow-plus.gif new file mode 100755 index 0000000000000000000000000000000000000000..ae41983cca2f762abffb8638a43869859a276e44 GIT binary patch literal 160 zcmZ?wbhEHb6krfxc+AIO=#}jB-)YLyy>ozQ?Xjg>udUpBYwxjRTTeVb1_YO$U%B`3 z`TOs$KmUgS#h)yU3=I4XIt)MnGJ}D|_rpm|;k_2G)3^V>tM0{}$k(hOBl&Po{$U1P zo)cWXJM|Cfu-#34z#!4Oq3H+cw0Y|6j{uQTpXw|H*T}0 HAcHjk$M;B$ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tree/elbow.gif b/docs/extjs/resources/themes/images/default/tree/elbow.gif new file mode 100755 index 0000000000000000000000000000000000000000..201c413e388369bf82b1a1289baf47fa3cc06f40 GIT binary patch literal 73 zcmZ?wbhEHb6krfxSjfcS^xx^&v19+iK=CIFBLfiVfC!L01Cvxse&gx43+Bx!j0#)d UwtMyYQa?4X6w5`|G{qRK0oEWJ9RL6T literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tree/folder-open.gif b/docs/extjs/resources/themes/images/default/tree/folder-open.gif new file mode 100755 index 0000000000000000000000000000000000000000..361e1be3e4b28bf8fc4e39b60f66dc805c5b7835 GIT binary patch literal 356 zcmV-q0h|6uNk%w1VGsZi0Hr+uF-l`X|3aB(0h(w6oN5G~YzCli2%>Nbqj3wQatx(& z4X1Svta=o%ei*ZX8?}NRw}cF z*SJ91zii^OL*l_u{nc>)+ja2ddjI5ql%>6#rMxBRBiTCh{|M-*t|C#^)od5r&#KgqK#l_9d&C$`(#@6fD;qmA1_v`cj`uqI<|NsC0 z|NsC0A^8LW002J#EC2ui01yBW000Joz@KnPED|#r%*A3n_MSXmrTNSBWLRuZ5`jD% z4I$>5%|4%u+wanYx!-WvqBg19@AXd$L7T+NWicHSECzjlaBng%6CedNKYlKgl#??W z9t4nnG9#X!BQqQu1CWt1A*rgVA`}8OLK6zJvk3#~t CowKL_ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tree/folder.gif b/docs/extjs/resources/themes/images/default/tree/folder.gif new file mode 100755 index 0000000000000000000000000000000000000000..b2fd81a12d520bb45ce681ad14801a3e9d2ffedb GIT binary patch literal 351 zcmZ?wbhEHb6krfwSZc;#=#}jB-)Uw#uSU{)Jbe^l-}ATyS+tzSG&^QF4Y6Q8i)F|j!x1&K1Kh;RD+Y#3{TH6J~Pwg z_V%FL+YA3+$^U=5^#7CkDNFax0iw0XmTtYaa__CZ$Bykh_2mEi&i_9q|NlSp|NlAv z|L;0*;K1qAr_Y=@bNTY+YuBzFyY~9V!;jD3e}Db?KYpP2lZBCi!Ja{f0SG{TVqmK| zFu%YrY|>(@5!KS@?CREHtr5{um^68c7E6t=mi+8FbG4XjgtX+AEM2C>RBRv5 f$IH#d!Oq6Y!lY~9Y@oM$&)yv&2M)SAGFSru#-z0M literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tree/leaf.gif b/docs/extjs/resources/themes/images/default/tree/leaf.gif new file mode 100755 index 0000000000000000000000000000000000000000..445769d3f863fff85bf8dae9e50ca2fbdd2d580f GIT binary patch literal 945 zcmZ?wbhEHb6krfwXlDQcQ_o~GuN3{H6Nag0EsGx6l|6PSd+b*I#H;qP!+!_A#wTHI zPb1o&CiOkbneseu`t#JOpR;CuEt~zKYW~Z@xnJuSzARt#t#2GZdv-WZP}~tRj*oB|LorIYr@vw({}!uwfFDhO(&LbJ2U^lzeR`sUwH800T8|T z00#d*{P_PLi2nZvyK9sf4FQ^mfZ|UUW(Ec>1|5)1pgh6A(Z?XlA>*-O!NF!$M-7&b z2M@Kd^GWGABrIrf5YP;mqG0Ic!oef1<ENsed*j@4Yk?RR_1qN#Xfm)wA literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tree/loading.gif b/docs/extjs/resources/themes/images/default/tree/loading.gif new file mode 100755 index 0000000000000000000000000000000000000000..e846e1d6c58796558015ffee1fdec546bc207ee8 GIT binary patch literal 771 zcmZ?wbhEHb6krfw*v!MQYQ=(yeQk4RPu{+D?cCXuwr^cCp}%d_ius2R?!0jBXnAQ) zOH<|l|Nj|aK=D7fpKD04vtxj(k)8oFBT!uNCkrbB0}q1^NDatX1{VJbCr|b)oWWMT zS%hVC ~NwO_yO%;SvZ5MdNYf|QNy-I*%yJaj+uTdt+qbZ z4E`Fzb8m}I&!N8OKmWEcCmrLs^Hs&3i)mt@hQVdcqghkaBs*D}tG_lKew4?rTjzIZ z9tSone1TS+TR7tu^CunG)Y7Jg#sw#)sG9C!c0I%LEzP)9;hqRf&)s$D8d5Db{TBs% zgl0~5QQ91luq4Q9tJgt4QLbaxZvAaKeCM9!oy85dg4k>TdBSVqjHub_PG=PO&J-rx z7oYTuF+kH|tG-UK+EkUhDjYx?zW?T|lx>+aOQm zzL$v$zBLo4Cj=G&tw{H}dW?tlTkS)SY4<#NS92z*EY-MMB6Ftp`R=*=*Ev7cS+X%W zMCur^FdlokL}1Y+&aasU2J4#EOuNlnb9CmqgLCGTSY!1BD42pkHY^XidQ5=>YQx%` z*%Pm9D!CkBu&tMWm(%-ejACVWGS2RX5=QOJ$1*tr7F}F+*-OA+Ly&Isg|AEuUYicA z#%IG6kPXkHt{zk2M6zK@Vu^4Q(1zE$?yY6M!^&jQ+2^E?!p7{g*|X6}vuRC3p@jk0 W117c83?+LXEZI4G$p&LV25SKE>nb+@ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tree/s.gif b/docs/extjs/resources/themes/images/default/tree/s.gif new file mode 100755 index 0000000000000000000000000000000000000000..1d11fa9ada9e93505b3d736acb204083f45d5fbf GIT binary patch literal 43 scmZ?wbhEHbWMp7uX!y@?;J^U}1_s5SEQ~;kK?g*DWEhy3To@Uw0n;G|I{*Lx literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/util/splitter/mini-bottom.gif b/docs/extjs/resources/themes/images/default/util/splitter/mini-bottom.gif new file mode 100755 index 0000000000000000000000000000000000000000..c18f9e34ac1f4d06525592c5ec25783921e7ab1c GIT binary patch literal 856 zcmZ?wbhEHbRAyjhXlGz>c6N36?{M+r#W!!>FpPrH5Ex-0p!k!8nSp_kK?me-P@Z7m zFlAunknz~C;9xU5Gl#^14GRyqF(|p!cuZW_z#t(WR-;k)_;9y`aa9RNLW=VQMPsFy Kokpn+4AubBJRUOu literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/util/splitter/mini-left.gif b/docs/extjs/resources/themes/images/default/util/splitter/mini-left.gif new file mode 100755 index 0000000000000000000000000000000000000000..99f7993f260b374440c5c8baa41a600eca99d74d GIT binary patch literal 871 zcmZ?wbhEHbWMxohXlGz>c6N36?{M+r#W!!>FpPrH5Ex-0p!k!8nSp_kK?me-P@Z7m zaA9EP;893e(9p!fE+S&!pm?~AUD|4jgy5sYono4CYdSV2yD|teHi#$`Jzc6N36?{M+r#W!!>FpPrH5Ex-0p!k!8nSp_kK?me-P@Z7m zaAja+k&tj`IMB$%CgZbW!-Ix)HhHZSi@+q84iWvZBN>K^-5Dep8%#8W7*0-Pa>$EW bxpC?7J_E~BDJKIG4z;p#3-JgDFjxZsq+}v; literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/util/splitter/mini-top.gif b/docs/extjs/resources/themes/images/default/util/splitter/mini-top.gif new file mode 100755 index 0000000000000000000000000000000000000000..a4ca2bb20aad89264b9022fee88ee29154dfb192 GIT binary patch literal 856 zcmZ?wbhEHbRAyjhXlGz>c6N36?{M+r#W!!>FpPrH5Ex-0p!k!8nSp_kK?me-P@Z7m zFlAuo;89qx;9xU{u$s(?fCCNf0?JM-3L76eGxBgot>IYk*sW87)#{JM#>MWF#5uKM LPHswdV6X-Nu*4oA literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/window-header/window-header-default-bottom-corners.gif b/docs/extjs/resources/themes/images/default/window-header/window-header-default-bottom-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..5daef146a980bce2254ac6cabf837233a67c1911 GIT binary patch literal 1664 zcmZ?wbhEHbWMz%Yl4xGEU<-ny)`z~xcaAC`#OB?oGdiCMgjYscx9lN&c#EmDfzC3#M<<+NO|3|@S z2n@9lQ2fcl$iN`Upu+$Jpghq&nj?l<9FDq|njydu%fQGXBC%k>!DbF&t&ofbiH92n z6r~I}5|R#fiRiL*WL#iq=#%HJVzE5H(AdPKqoAR|(8S2XVib^(aL}QRhe<|9!{fk# ea}2_KE(!(*9he!}_)JzzNOWXjG-qaFum%88(Ez&u literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/window-header/window-header-default-bottom-sides.gif b/docs/extjs/resources/themes/images/default/window-header/window-header-default-bottom-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..5188482551e034a7ac068cd4346c1c4c6e47c11e GIT binary patch literal 1624 zcmZ?wbhEHbDT{JFd70QF9Z~SvM@3*Ff-^d00AgZw2$V9 zk(UZaeT)bJ4pRn34i1M63m6!fxTRby0umdVIc1%4Run8c+|HvPHD$)c TlODKD6!BbUB3YE^z+epkDl89i literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-bottom-corners.gif b/docs/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-bottom-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..99eeb6d09dcb919f19af410dadfcc86ec07f676d GIT binary patch literal 213 zcmZ?wbhEHbWMzvwBg9P8_y1%ySHf5v2(Xx{QLLs&8J_FUVORn;N5|9ch>DY zw`9|?1Ly8-IdEyyz6+ZUT-b8x(uRGPUVZp=_wVs#R{c`yPEaJoO>)LZZQhMgcDFMJ5IU9bAoP5*h>SSXvmB wG<^B`gbr@dkYhfW=y2ipT`93z>% literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-bottom-sides.gif b/docs/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-bottom-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..5188482551e034a7ac068cd4346c1c4c6e47c11e GIT binary patch literal 1624 zcmZ?wbhEHbDT{JFd70QF9Z~SvM@3*Ff-^d00AgZw2$V9 zk(UZaeT)bJ4pRn34i1M63m6!fxTRby0umdVIc1%4Run8c+|HvPHD$)c TlODKD6!BbUB3YE^z+epkDl89i literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-left-corners.gif b/docs/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-left-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..3b81c20367d57dd5d8016763bbf32aa9ee7ab92a GIT binary patch literal 211 zcmZ?wbhEHbWMzqRiYY*NXICXE+ zz6(n>9XoLD&Xz-0*6lmD<7Mmeqi+5up7~EhS|5pU9D3a3z{|z**x5llMqv^^ vV_*kIK*uR2R}F){lLt0P2>fZ1Ke^69SVtm8Kg@b97uQseDH{{&oEWSDl3;g# literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-left-sides.gif b/docs/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-left-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..931428d5531ff2cc1a2a3942d105843588d9643e GIT binary patch literal 70 zcmZ?wbhEHbWM>d!Sjfz(r%w-%lsbR`99XoLD-j)NGHtoBx>A;08hc0c{cj@21e{Vkgdh+VajYscx9lN&c#EnOFz7pZV1tCfpQfF$jcOGJJK}VloHm58vbHdPPV|@|ugG8x E0FjAxP5=M^ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-right-sides.gif b/docs/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-right-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..b2b6b79db4b3b9b27c8e9c931a81dfb21962e63e GIT binary patch literal 70 zcmZ?wbhEHbWM>d!Sjfz=|)OPB5 XK$MYL)%`1CN#|>$Rm+my#2Bmrbw?NL literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-top-corners.gif b/docs/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-top-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..8886bde6e34411760067ded4e416c94c87fd390f GIT binary patch literal 215 zcmZ?wbhEHbWMzMDQctJys*^$%Bpz)6#7Z;n7u#Hp{hfP7PfSy1XL(u{oX?`zxMFwjC DF=22W literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-top-sides.gif b/docs/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-top-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..5188482551e034a7ac068cd4346c1c4c6e47c11e GIT binary patch literal 1624 zcmZ?wbhEHbDT{JFd70QF9Z~SvM@3*Ff-^d00AgZw2$V9 zk(UZaeT)bJ4pRn34i1M63m6!fxTRby0umdVIc1%4Run8c+|HvPHD$)c TlODKD6!BbUB3YE^z+epkDl89i literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/window-header/window-header-default-left-corners.gif b/docs/extjs/resources/themes/images/default/window-header/window-header-default-left-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..3c5f24235d9504f739fb96552f783848c43556ff GIT binary patch literal 1655 zcmZ?wbhEHbWMz(Q$(JC5CW^6Ja~Q7{?;Lofss zf3h$#Fi0@yFaQB4PqdHbh#?q_qfVw;2ylcjFmi}QEJ!%Wz#*&^b7F&{Q!^_&*O3Ot zgUyT*Iub%7 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/window-header/window-header-default-left-sides.gif b/docs/extjs/resources/themes/images/default/window-header/window-header-default-left-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..8c0c187a97dd03b5c2a342ecfa8747351936d79b GIT binary patch literal 1610 zcmZ?wbhEHbWMdFw`2L?^(S{@EZajPQ>DT{JFd70QF9Z~SvM@3*Ff-^d00AgZw2$V9 zk(UZaeT)bJ4s`}b4h{!_28Sj_9zLCl2@emo@G9DcbWB)uxJyvi>xhNn;^Te7%uEc{ E0ACOa6951J literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/window-header/window-header-default-right-corners.gif b/docs/extjs/resources/themes/images/default/window-header/window-header-default-right-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..853c3134ff52baf893227d1e8f67dee127111070 GIT binary patch literal 1656 zcmZ?wbhEHbWMzc z`_3)dbnL*nds_}%+O+S&rUMtY9J;h&-=%;5{=NC|>&dGxHy*v)b?n-%6E_~c`tpAi zjE2CF3IWBREQ|~cQVco_Kmf`U?V~wjNJZeNW2qbh9H9)193l}55)LwO2y4Zh*r4dt z%*yUHg+s8xshiVKNoIpX0~;@^mdlO>jSfvrd@KrECOl+xVq%rZ;4#>o=Gv*Byv{|T Xv4M386PH3kgCjFDr<^GZ3xhQP)CK*u literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/window-header/window-header-default-right-sides.gif b/docs/extjs/resources/themes/images/default/window-header/window-header-default-right-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..0a31ccd83678ba6fd18ed3b02c3f4fa3a1540311 GIT binary patch literal 1610 zcmZ?wbhEHbWMdFw`2L?^(S{@EZajPQ>DT{JFd70QF9Z~SvM@3*Ff-^d00AgZw2$V9 zk(UZaeT)bJ4s`}b76}c828Sj#b~cTQf<&hlUP-Mf9EFdZ+XeN5j${}vKHewB%*0>~ E05VqyN&o-= literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/window-header/window-header-default-top-corners.gif b/docs/extjs/resources/themes/images/default/window-header/window-header-default-top-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..0f634a6c2883627e8d19606dda6e075b78a96670 GIT binary patch literal 199 zcmZ?wbhEHbWMz6uJT;*)mqG%eme6=)0x&r^u^}mQxi4xp|nTHVAZZH}W*i n)UadeOjL4+<>MDQctOG;DDH!}sM_J635-#_Uh5N^1sJRWU+`}K literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/window-header/window-header-default-top-sides.gif b/docs/extjs/resources/themes/images/default/window-header/window-header-default-top-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..5188482551e034a7ac068cd4346c1c4c6e47c11e GIT binary patch literal 1624 zcmZ?wbhEHbDT{JFd70QF9Z~SvM@3*Ff-^d00AgZw2$V9 zk(UZaeT)bJ4pRn34i1M63m6!fxTRby0umdVIc1%4Run8c+|HvPHD$)c TlODKD6!BbUB3YE^z+epkDl89i literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/window/window-default-corners.gif b/docs/extjs/resources/themes/images/default/window/window-default-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..efae7da9c1ddc8cc43f3fb86aa8f5f51c6555384 GIT binary patch literal 1686 zcmZ?wbhEHbWMzG z_3786S6|+I`t|SMzfA`&Y&mr4|0oy@fk7Msia%Kx85k58bQpjDlqcFpbHpHyu2HAa zJOnt385lW4PAp6~$iN}26?0;PqEj;~I~NOM5+gHpxTt}hvm&ZP>H!lQ X7mMB%kp+y088{V$0t6fk6&S1m4nO=6 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/window/window-default-sides.gif b/docs/extjs/resources/themes/images/default/window/window-default-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..39edc88d118607eca8e572dc8af68748af6979e5 GIT binary patch literal 1776 zcmZ?wbhEHbS~+CNvc_RPqTbpPvn>9 Y7iW96>z%FIntgRc@aZ%gO9cjN0I9%XwEzGB literal 0 HcmV?d00001 diff --git a/docs/favicon.ico b/docs/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..ea8c545bb1d618bee4f8a29cea87fcc19b43101f GIT binary patch literal 1150 zcmbV~-%C?r7{?zam=)1+?#FqL#!e2!kS&R%A2{1pT|_w%!XRN8(W0m>YV?D0{S-4D z-Go#y+RYH68T8x8GdJgiXb@PpL4Uxhi+L4%dyd;+;8{xV;d7q%ectEuocF*>RKt%X z5x-Rmts`;}Q5(Z4&J^<;$j^HX8;cn0(x~OgJ5j+^>4+U2(HYsQcS^e(gby)7vOMa7*s;TxNztk4?sbZv!S$#pTQQXq-KzAcIp&yf!}in-d%P2l zL>C&LbwM5XqUAzkRbP4?3|glS>DKrj*b@8TczyuRsUA3A^+A3cfb-pcIA88G_3Kkt zI~ufeuul)dp6q8Q$j(WK=@7)H(-1Q!I39)k@nCGlp*dk&xS5nc--0}QnZI+M>%tJ) z6^Pku5E+h{i#!kMLK{%c{HGR_gIzzR{C?;~Yt5jpr{E5M3%@ kc!^*s6#iI frame.js \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index b86d9b1..420ba51 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,29 +1,64 @@ - index.js

    index.js

    stomp-js

    + + + + Documentation - JSDuck + + + -

    Overview

    + -

    An exercise with node.js to implement the STOMP protocol.

    + + -

    For documentation see doc/stomp.md and doc/frame.md

    + + -

    Installation

    + -

    npm install stomp

    + -

    git clone https://benjaminws@github.com/benjaminws/stomp-js.git

    + + -

    Examples

    +
    Documentation - JSDuck
    -

    Consumer

    +
    Documentation JSDuck
    + + -

    See examples/stomp-consumer.js

    + + -

    Producer

    + -

    See examples/stomp-producer.js

    + -

    Producer with Transaction Support

    - -

    See examples/stomp-producer-txn.js

    -
    -
    \ No newline at end of file + + diff --git a/docs/output/Frame.js b/docs/output/Frame.js new file mode 100644 index 0000000..2437ca2 --- /dev/null +++ b/docs/output/Frame.js @@ -0,0 +1 @@ +Ext.data.JsonP.Frame({"parentMixins":[],"statics":{"css_var":[],"event":[],"css_mixin":[],"method":[],"cfg":[],"property":[]},"html":"

    Files

    The Frame module provides an object representation of a STOMP frame

    \n
    Defined By

    Methods

    ( ) : String
    String representation of Frame object ...

    String representation of Frame object

    \n

    Returns

    • String

      returns StompJS.Frame as string

      \n
    ( args, wantReceipt ) : Objectchainable
    Build frame based on arguments provided ...

    Build frame based on arguments provided

    \n

    Parameters

    • args : Object

      arguments object needed to build frame (command, headers, body?)

      \n\n

      Example:

      \n\n
       args = {\n     command: '',\n     headers: {},\n     body: ''\n }\n
      \n
    • wantReceipt : Boolean

      boolean to indicate that you wish to get a receipt (set receipt header)

      \n

    Returns

    • Object

      returns StompJS.Frame

      \n
    ","tagname":"class","inheritable":null,"singleton":false,"override":null,"html_meta":{},"mixins":[],"files":[{"href":"frame.html#Frame","filename":"frame.js"}],"linenr":1,"members":{"css_var":[],"event":[],"css_mixin":[],"method":[{"tagname":"method","owner":"Frame","name":"asString","id":"method-asString","meta":{}},{"tagname":"method","owner":"Frame","name":"buildFrame","id":"method-buildFrame","meta":{"chainable":true}}],"cfg":[],"property":[]},"alternateClassNames":[],"aliases":{},"inheritdoc":null,"component":false,"private":null,"subclasses":[],"name":"Frame","extends":null,"uses":[],"mixedInto":[],"superclasses":[],"id":"class-Frame","enum":null,"meta":{},"requires":[]}); \ No newline at end of file diff --git a/docs/output/Stomp.js b/docs/output/Stomp.js new file mode 100644 index 0000000..1045423 --- /dev/null +++ b/docs/output/Stomp.js @@ -0,0 +1 @@ +Ext.data.JsonP.Stomp({"parentMixins":[],"statics":{"css_var":[],"event":[],"css_mixin":[],"method":[],"cfg":[],"property":[]},"html":"

    Files

    An instance of the Stomp object for interacting with STOMP messaging brokers

    \n
    Defined By

    Methods

    ( args ) : Object
    Creates a client for the StompJS.Stomp object. ...

    Creates a client for the StompJS.Stomp object.

    \n

    Parameters

    • args : Object

      arguments needed to create the client

      \n\n

      Example:

      \n\n
       args = {\n     port: 61613,\n     host: 'localhost',\n     debug: false,\n     login: 'guest',\n     passcode: 'guest'\n }\n\n If debug is set to true, extra output will be printed to the console.\n\n var client = new Stomp().Client(args);\n
      \n

    Returns

    • Object

      returns StompClient

      \n
    ( transactionId ) : void
    Aborts a transaction. ...

    Aborts a transaction.

    \n

    Parameters

    • transactionId : String

      the transaction id from begin to abort

      \n

    Returns

    • void
      \n
    ( messageId ) : void
    Acknowledges a received message. ...

    Acknowledges a received message.

    \n

    Parameters

    • messageId : String

      the message id to ack

      \n

    Returns

    • void
      \n
    ( ) : String
    Begins a transaction. ...

    Begins a transaction.

    \n

    Returns

    • String

      returns a string representing the generated transaction id

      \n
    ( options ) : Objectprivate
    Helper to build the headers from the client args/options ...

    Helper to build the headers from the client args/options

    \n

    Parameters

    • options : Object

      the client args/options

      \n

    Returns

    • Object

      returns the headers

      \n
    ( transactionId ) : void
    Commits a transaction. ...

    Commits a transaction.

    \n

    Parameters

    • transactionId : String

      the transaction id from begin to commit

      \n

    Returns

    • void
      \n
    ( ) : void
    Creates sockets used to connect to STOMP broker. ...

    Creates sockets used to connect to STOMP broker. Sets the connected flag to true upon completion.\nEmits \"connected\" upon completion.

    \n

    Returns

    • void
      \n
    ( ) : void
    Removes sockets used to connects STOMP broker. ...

    Removes sockets used to connects STOMP broker. Sets the connected flag to false upon completion.\nEmits \"disconnected\" upon completion.

    \n

    Returns

    • void
      \n
    ( str, obj ) : voidprivate
    Wrapper to emit the events for the STOMP object ...

    Wrapper to emit the events for the STOMP object

    \n

    Parameters

    • str : Object
      \n
    • obj : Object
      \n

    Returns

    • void
      \n
    ( ) : Objectprivate
    Returns the process args/options passed into the Client. ...

    Returns the process args/options passed into the Client.\nThis is only used for testing purposes which is why this public function is marked private.

    \n

    Returns

    • Object

      returns the process args/options passed into the Client

      \n
    ( frame ) : voidprivate
    Handles frame based on type. ...

    Handles frame based on type. Emits events when needed.\nEmits \"message\" upon message processed\nEmits \"connected\" upon connecting\nEmits \"receipt\" upon message receipt\nEmits \"error\" upon errors

    \n

    Parameters

    • frame : String

      the frame to handle

      \n

    Returns

    • void
      \n
    ( ) : Boolean
    Returns if the object has been connected ...

    Returns if the object has been connected

    \n

    Returns

    • Boolean

      returns true if connected; otherwise, false

      \n
    ( ) : Boolean
    Returns if the object has been initialized ...

    Returns if the object has been initialized

    \n

    Returns

    • Boolean

      returns true if initialized; otherwise, false

      \n
    ( frame ) : Booleanprivate
    Determines if the frame headers have a message id which is assigned only if its a message ...

    Determines if the frame headers have a message id which is assigned only if its a message

    \n

    Parameters

    Returns

    • Boolean

      return true if the frame is a message; otherwise, false

      \n
    ( data ) : Stringprivate
    Helper to parse the command from frame ...

    Helper to parse the command from frame

    \n

    Parameters

    • data : Object

      the frame as a buffer

      \n

    Returns

    • String

      returns the command from the frame

      \n
    ( chunk ) : Objectprivate
    Helper to parse the key data pieces (headers, command, body) from frame ...

    Helper to parse the key data pieces (headers, command, body) from frame

    \n

    Parameters

    • chunk : Object

      the frame as a buffer

      \n

    Returns

    ( rawHeaders ) : Objectprivate
    Helper to parse the headers from frame ...

    Helper to parse the headers from frame

    \n

    Parameters

    • rawHeaders : Object

      the raw headers from the frame

      \n

    Returns

    • Object

      returns the headers from the frame

      \n
    ( headers, wantReceipt ) : Object
    Sends a message to the STOMP broker. ...

    Sends a message to the STOMP broker.

    \n

    Parameters

    • headers : Object

      a header object

      \n
    • wantReceipt : Boolean

      boolean to indicate that you wish to get a receipt (set receipt header)

      \n

    Returns

    • Object

      returns a Frame object representing the message sent

      \n
    ( command, headers, body, wantReceipt ) : Objectprivate
    Create the STOMP Frame and send the command to the STOMP broker ...

    Create the STOMP Frame and send the command to the STOMP broker

    \n

    Parameters

    • command : String

      the command to send

      \n
    • headers : Object

      the headers to send

      \n
    • body : Object

      the body to send

      \n
    • wantReceipt : Boolean

      boolean to indicate that you wish to get a receipt

      \n

    Returns

    ( frame ) : voidprivate
    Sends the STOMP frame to the message broker ...

    Sends the STOMP frame to the message broker

    \n

    Parameters

    Returns

    • void
      \n
    ( frame ) : voidprivate
    Sets up the listeners for the socket events\nEmits \"error\" upon errors\nEmits \"disconnected\" upon socket close ...

    Sets up the listeners for the socket events\nEmits \"error\" upon errors\nEmits \"disconnected\" upon socket close

    \n

    Parameters

    • frame : String

      the frame to handle

      \n

    Returns

    • void
      \n
    ( frame ) : Booleanprivate
    Determines if the message callback function should be ran and runs it if it should ...

    Determines if the message callback function should be ran and runs it if it should

    \n

    Parameters

    Returns

    • Boolean

      return true if the frame is a message; otherwise, false

      \n
    ( ) : voidprivate
    Preps for and starts the STOMP connection ...

    Preps for and starts the STOMP connection

    \n

    Returns

    • void
      \n
    ( headers, callback ) : void
    Subscribes to destination (queue or topic). ...

    Subscribes to destination (queue or topic).\nEmits \"subscribed\" upon completion.

    \n

    Parameters

    • headers : Object

      a header object

      \n
    • callback : Function

      a function to call and pass it the message that is dequeued

      \n

    Returns

    • void
      \n
    ( headers ) : void
    Unsubscribes from destination (queue or topic). ...

    Unsubscribes from destination (queue or topic).\nEmits \"unsubscribed\" upon completion.

    \n

    Parameters

    • headers : Object

      a header object

      \n

    Returns

    • void
      \n
    ","tagname":"class","inheritable":null,"singleton":false,"override":null,"html_meta":{},"mixins":[],"files":[{"href":"stomp.html#Stomp","filename":"stomp.js"}],"linenr":1,"members":{"css_var":[],"event":[],"css_mixin":[],"method":[{"tagname":"method","owner":"Stomp","name":"Client","id":"method-Client","meta":{}},{"tagname":"method","owner":"Stomp","name":"abort","id":"method-abort","meta":{}},{"tagname":"method","owner":"Stomp","name":"ack","id":"method-ack","meta":{}},{"tagname":"method","owner":"Stomp","name":"begin","id":"method-begin","meta":{}},{"tagname":"method","owner":"Stomp","name":"buildHeaders","id":"method-buildHeaders","meta":{"private":true}},{"tagname":"method","owner":"Stomp","name":"commit","id":"method-commit","meta":{}},{"tagname":"method","owner":"Stomp","name":"connect","id":"method-connect","meta":{}},{"tagname":"method","owner":"Stomp","name":"disconnect","id":"method-disconnect","meta":{}},{"tagname":"method","owner":"Stomp","name":"emitWrapper","id":"method-emitWrapper","meta":{"private":true}},{"tagname":"method","owner":"Stomp","name":"getOptions","id":"method-getOptions","meta":{"private":true}},{"tagname":"method","owner":"Stomp","name":"handleNewFrame","id":"method-handleNewFrame","meta":{"private":true}},{"tagname":"method","owner":"Stomp","name":"isConnected","id":"method-isConnected","meta":{}},{"tagname":"method","owner":"Stomp","name":"isInitialized","id":"method-isInitialized","meta":{}},{"tagname":"method","owner":"Stomp","name":"isMessage","id":"method-isMessage","meta":{"private":true}},{"tagname":"method","owner":"Stomp","name":"parseCommand","id":"method-parseCommand","meta":{"private":true}},{"tagname":"method","owner":"Stomp","name":"parseFrame","id":"method-parseFrame","meta":{"private":true}},{"tagname":"method","owner":"Stomp","name":"parseHeaders","id":"method-parseHeaders","meta":{"private":true}},{"tagname":"method","owner":"Stomp","name":"send","id":"method-send","meta":{}},{"tagname":"method","owner":"Stomp","name":"sendCommand","id":"method-sendCommand","meta":{"private":true}},{"tagname":"method","owner":"Stomp","name":"sendFrame","id":"method-sendFrame","meta":{"private":true}},{"tagname":"method","owner":"Stomp","name":"setupListeners","id":"method-setupListeners","meta":{"private":true}},{"tagname":"method","owner":"Stomp","name":"shouldRunMessageCallback","id":"method-shouldRunMessageCallback","meta":{"private":true}},{"tagname":"method","owner":"Stomp","name":"stompConnect","id":"method-stompConnect","meta":{"private":true}},{"tagname":"method","owner":"Stomp","name":"subscribe","id":"method-subscribe","meta":{}},{"tagname":"method","owner":"Stomp","name":"unsubscribe","id":"method-unsubscribe","meta":{}}],"cfg":[],"property":[]},"alternateClassNames":[],"aliases":{},"inheritdoc":null,"component":false,"private":null,"subclasses":[],"name":"Stomp","extends":null,"uses":[],"mixedInto":[],"superclasses":[],"id":"class-Stomp","enum":null,"meta":{},"requires":[]}); \ No newline at end of file diff --git a/docs/output/StompLogger.js b/docs/output/StompLogger.js new file mode 100644 index 0000000..97e22b2 --- /dev/null +++ b/docs/output/StompLogger.js @@ -0,0 +1 @@ +Ext.data.JsonP.StompLogger({"parentMixins":[],"statics":{"css_var":[],"event":[],"css_mixin":[],"method":[],"cfg":[],"property":[]},"html":"

    Files

    An instance of the StompJS logger

    \n
    Defined By

    Methods

    StompLogger
    view source
    ( message ) : void
    Writes a debug message to the console only if the outputDebug flag was also set to true ...

    Writes a debug message to the console only if the outputDebug flag was also set to true

    \n

    Parameters

    • message : String

      the message to write to the console

      \n

    Returns

    • void
      \n
    StompLogger
    view source
    ( message ) : void
    Writes a error message to the console and then kills the process ...

    Writes a error message to the console and then kills the process

    \n

    Parameters

    • message : String

      the message to write to the console

      \n

    Returns

    • void
      \n
    StompLogger
    view source
    ( message, die ) : void
    Writes a error message to the console and kills the process based on die input ...

    Writes a error message to the console and kills the process based on die input

    \n

    Parameters

    • message : String

      the message to write to the console

      \n
    • die : Boolean

      if true, then kill the process after writing the message

      \n

    Returns

    • void
      \n
    StompLogger
    view source
    ( message ) : void
    Writes a info message to the console ...

    Writes a info message to the console

    \n

    Parameters

    • message : String

      the message to write to the console

      \n

    Returns

    • void
      \n
    StompLogger
    view source
    ( message ) : void
    Writes a warn message to the console ...

    Writes a warn message to the console

    \n

    Parameters

    • message : String

      the message to write to the console

      \n

    Returns

    • void
      \n
    ","tagname":"class","inheritable":null,"singleton":false,"override":null,"html_meta":{},"mixins":[],"files":[{"href":"stomp.logger.html#StompLogger","filename":"stomp.logger.js"}],"linenr":1,"members":{"css_var":[],"event":[],"css_mixin":[],"method":[{"tagname":"method","owner":"StompLogger","name":"debug","id":"method-debug","meta":{}},{"tagname":"method","owner":"StompLogger","name":"die","id":"method-die","meta":{}},{"tagname":"method","owner":"StompLogger","name":"error","id":"method-error","meta":{}},{"tagname":"method","owner":"StompLogger","name":"info","id":"method-info","meta":{}},{"tagname":"method","owner":"StompLogger","name":"warn","id":"method-warn","meta":{}}],"cfg":[],"property":[]},"alternateClassNames":[],"aliases":{},"inheritdoc":null,"component":false,"private":null,"subclasses":[],"name":"StompLogger","extends":null,"uses":[],"mixedInto":[],"superclasses":[],"id":"class-StompLogger","enum":null,"meta":{},"requires":[]}); \ No newline at end of file diff --git a/docs/output/StompUtils.js b/docs/output/StompUtils.js new file mode 100644 index 0000000..2d2b25d --- /dev/null +++ b/docs/output/StompUtils.js @@ -0,0 +1 @@ +Ext.data.JsonP.StompUtils({"parentMixins":[],"statics":{"css_var":[],"event":[],"css_mixin":[],"method":[],"cfg":[],"property":[]},"html":"

    Files

    An instance of the StompJS helper utilities

    \n
    Defined By

    Methods

    StompUtils
    view source
    ( destination, source ) : Object
    Extends the destination by adding any source properties ...

    Extends the destination by adding any source properties

    \n

    Parameters

    • destination : Object

      the object to extend

      \n
    • source : Object

      the object to extend from

      \n

    Returns

    • Object

      returns the extended object

      \n
    StompUtils
    view source
    ( varToTest ) : Boolean
    Returns if the input is defined (not null or undefined) ...

    Returns if the input is defined (not null or undefined)

    \n

    Parameters

    • varToTest : Object

      the variable to test

      \n

    Returns

    • Boolean

      returns true if the input is defined; otherwise, false

      \n
    ","tagname":"class","inheritable":null,"singleton":false,"override":null,"html_meta":{},"mixins":[],"files":[{"href":"stomp.utils.html#StompUtils","filename":"stomp.utils.js"}],"linenr":1,"members":{"css_var":[],"event":[],"css_mixin":[],"method":[{"tagname":"method","owner":"StompUtils","name":"extend","id":"method-extend","meta":{}},{"tagname":"method","owner":"StompUtils","name":"isDefined","id":"method-isDefined","meta":{}}],"cfg":[],"property":[]},"alternateClassNames":[],"aliases":{},"inheritdoc":null,"component":false,"private":null,"subclasses":[],"name":"StompUtils","extends":null,"uses":[],"mixedInto":[],"superclasses":[],"id":"class-StompUtils","enum":null,"meta":{},"requires":[]}); \ No newline at end of file diff --git a/docs/resources/css/app-851b66f18114a2a31d488e9c8d7cb964.css b/docs/resources/css/app-851b66f18114a2a31d488e9c8d7cb964.css new file mode 100644 index 0000000..9217fbf --- /dev/null +++ b/docs/resources/css/app-851b66f18114a2a31d488e9c8d7cb964.css @@ -0,0 +1 @@ +html,body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{margin:0;padding:0}table{border-collapse:collapse;border-spacing:0}fieldset,img{border:0}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal}li{list-style:none}caption,th{text-align:left}h1,h2,h3,h4,h5,h6{font-size:100%}q:before,q:after{content:""}abbr,acronym{border:0;font-variant:normal}sup{vertical-align:text-top}sub{vertical-align:text-bottom}input,textarea,select{font-family:inherit;font-size:inherit;font-weight:inherit}*:focus{outline:0}.x-border-box,.x-border-box *{box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;-webkit-box-sizing:border-box}.x-body{color:black;font-size:12px;font-family:Helvetica Neue,Arial,sans-serif}.x-rtl{direction:rtl}.x-ltr{direction:ltr}.x-clear{overflow:hidden;clear:both;font-size:0;line-height:0;display:table}.x-strict .x-ie7 .x-clear{height:0;width:0}.x-layer{position:absolute!important;overflow:hidden;zoom:1}.x-shim{position:absolute;left:0;top:0;overflow:hidden;filter:alpha(opacity=0);opacity:0}.x-hide-display{display:none!important}.x-hide-visibility{visibility:hidden!important}.x-item-disabled .x-form-item-label,.x-item-disabled .x-form-field,.x-item-disabled .x-form-cb-label,.x-item-disabled .x-form-trigger{filter:alpha(opacity=30);opacity:.3}.x-ie6 .x-item-disabled{filter:none}.x-hidden,.x-hide-offsets{display:block!important;visibility:hidden!important;position:absolute!important;left:-10000px!important;top:-10000px!important}.x-hide-nosize{height:0!important;width:0!important}.x-masked-relative{position:relative}.x-ie6 .x-masked select,.x-ie6.x-body-masked select{visibility:hidden!important}.x-css-shadow{position:absolute;-webkit-border-radius:5px 5px;-moz-border-radius:5px 5px;-ms-border-radius:5px 5px;-o-border-radius:5px 5px;border-radius:5px 5px}.x-ie-shadow{background-color:#777;display:none;position:absolute;overflow:hidden;zoom:1}.x-box-tl{background:transparent no-repeat 0 0;zoom:1}.x-box-tc{height:8px;background:transparent repeat-x 0 0;overflow:hidden}.x-box-tr{background:transparent no-repeat right -8px}.x-box-ml{background:transparent repeat-y 0;padding-left:4px;overflow:hidden;zoom:1}.x-box-mc{background:repeat-x 0 -16px;padding:4px 10px}.x-box-mc h3{margin:0 0 4px 0;zoom:1}.x-box-mr{background:transparent repeat-y right;padding-right:4px;overflow:hidden}.x-box-bl{background:transparent no-repeat 0 -16px;zoom:1}.x-box-bc{background:transparent repeat-x 0 -8px;height:8px;overflow:hidden}.x-box-br{background:transparent no-repeat right -24px}.x-box-tl,.x-box-bl{padding-left:8px;overflow:hidden}.x-box-tr,.x-box-br{padding-right:8px;overflow:hidden}.x-box-tl{background-image:url('../../extjs/resources/themes/images/default/box/corners.gif')}.x-box-tc{background-image:url('../../extjs/resources/themes/images/default/box/tb.gif')}.x-box-tr{background-image:url('../../extjs/resources/themes/images/default/box/corners.gif')}.x-box-ml{background-image:url('../../extjs/resources/themes/images/default/box/l.gif')}.x-box-mc{background-color:#eee;background-image:url('../../extjs/resources/themes/images/default/box/tb.gif');font-family:"Myriad Pro","Myriad Web","Tahoma","Helvetica","Arial",sans-serif;color:#393939;font-size:15px}.x-box-mc h3{font-size:18px;font-weight:bold}.x-box-mr{background-image:url('../../extjs/resources/themes/images/default/box/r.gif')}.x-box-bl{background-image:url('../../extjs/resources/themes/images/default/box/corners.gif')}.x-box-bc{background-image:url('../../extjs/resources/themes/images/default/box/tb.gif')}.x-box-br{background-image:url('../../extjs/resources/themes/images/default/box/corners.gif')}.x-box-blue .x-box-bl,.x-box-blue .x-box-br,.x-box-blue .x-box-tl,.x-box-blue .x-box-tr{background-image:url('../../extjs/resources/themes/images/default/box/corners-blue.gif')}.x-box-blue .x-box-bc,.x-box-blue .x-box-mc,.x-box-blue .x-box-tc{background-image:url('../../extjs/resources/themes/images/default/box/tb-blue.gif')}.x-box-blue .x-box-mc{background-color:#c3daf9}.x-box-blue .x-box-mc h3{color:#17385b}.x-box-blue .x-box-ml{background-image:url('../../extjs/resources/themes/images/default/box/l-blue.gif')}.x-box-blue .x-box-mr{background-image:url('../../extjs/resources/themes/images/default/box/r-blue.gif')}.x-container{zoom:1}.x-container:before{content:"";clear:both;display:table}table.x-container:before,tbody.x-container:before,tr.x-container:before{display:none}.x-focus-element{position:absolute;top:-10px;left:-10px;width:0;height:0}.x-focus-frame{position:absolute;left:0;top:0;z-index:100000000;width:0;height:0}.x-focus-frame-top,.x-focus-frame-bottom,.x-focus-frame-left,.x-focus-frame-right{position:absolute;top:0;left:0}.x-focus-frame-top,.x-focus-frame-bottom{border-top:solid 2px #15428b;height:2px}.x-focus-frame-left,.x-focus-frame-right{border-left:solid 2px #15428b;width:2px}.x-mask{z-index:100;position:absolute;top:0;left:0;filter:alpha(opacity=50);opacity:.5;width:100%;height:100%;zoom:1;background:#ccc}.x-mask-msg{z-index:20001;position:absolute;top:0;left:0;padding:2px;border:1px solid;border-color:#bfbfbf;background:#fdfdfd}.x-mask-msg div{padding:5px 10px 5px 25px;background-image:url('../../extjs/resources/themes/images/default/grid/loading.gif');background-repeat:no-repeat;background-position:5px center;cursor:wait;border:1px solid #d0d0d0;background-color:#eee;color:#222;font:normal 11px Helvetica Neue,Arial,sans-serif}.x-boundlist{border-width:1px;border-style:solid;border-color:#e2cfcf;background:white}.x-boundlist .x-toolbar{border-width:1px 0 0 0}.x-strict .x-ie6 .x-boundlist-list-ct,.x-strict .x-ie7 .x-boundlist-list-ct{position:relative}.x-boundlist-item{padding:2px;user-select:none;-o-user-select:none;-ms-user-select:none;-moz-user-select:-moz-none;-webkit-user-select:none;cursor:default;cursor:pointer;cursor:hand;position:relative;border-width:1px;border-style:dotted;border-color:white}.x-boundlist-selected{background:#f0f0f0;border-color:#cfc9c9}.x-boundlist-item-over{background:#fdfdfd;border-color:#dbd7d6}.x-boundlist-floating{border-top-width:0}.x-boundlist-above{border-top-width:1px;border-bottom-width:1px}.x-btn{display:inline-block;zoom:1;*display:inline;position:relative;cursor:pointer;cursor:hand;white-space:nowrap;vertical-align:middle;background-repeat:no-repeat}.x-btn *{cursor:pointer;cursor:hand}.x-btn em{background-repeat:no-repeat}.x-btn em a{text-decoration:none;display:block;color:inherit;width:100%;zoom:1}.x-btn button{width:100%;display:block;margin:0;padding:0;border:0;background:0;outline:0 none;overflow:hidden;vertical-align:bottom;-webkit-appearance:none}.x-btn button::-moz-focus-inner{border:0;padding:0}.x-btn .x-btn-inner{display:block;white-space:nowrap;background-color:transparent;background-repeat:no-repeat;background-position:left center;overflow:hidden}.x-btn .x-btn-left .x-btn-inner{text-align:left}.x-btn .x-btn-center .x-btn-inner{text-align:center}.x-btn .x-btn-right .x-btn-inner{text-align:right}.x-btn-disabled span{filter:alpha(opacity=50);opacity:.5}.x-ie6 .x-btn-disabled span,.x-ie7 .x-btn-disabled span{filter:none}.x-ie7 .x-btn-disabled,.x-ie8 .x-btn-disabled{filter:none}.x-ie6 .x-btn-disabled .x-btn-icon,.x-ie7 .x-btn-disabled .x-btn-icon,.x-ie8 .x-btn-disabled .x-btn-icon{filter:alpha(opacity=60);opacity:.6}.x-ie9 .x-btn button{overflow:visible!important}* html .x-ie .x-btn button{width:1px}.x-ie .x-btn button{overflow-x:visible;vertical-align:baseline}.x-strict .x-ie6 .x-btn .x-frame-mc,.x-strict .x-ie7 .x-btn .x-frame-mc{height:100%}.x-btn .x-frame-mc{vertical-align:middle;white-space:nowrap;cursor:pointer}.x-btn-noicon .x-frame-mc{text-align:center}.x-btn-icon-text-left .x-btn-icon{background-position:left center}.x-btn-icon-text-right .x-btn-icon{background-position:right center}.x-btn-icon-text-top .x-btn-icon{background-position:center top}.x-btn-icon-text-bottom .x-btn-icon{background-position:center bottom}.x-btn button,.x-btn a{position:relative}.x-btn button .x-btn-icon,.x-btn a .x-btn-icon{position:absolute;background-repeat:no-repeat}.x-btn-arrow-right{background:transparent no-repeat right center;padding-right:12px}.x-btn-arrow-right .x-btn-inner{padding-right:0!important}.x-toolbar .x-btn-arrow-right{padding-right:12px}.x-btn-arrow-bottom{background:transparent no-repeat center bottom;padding-bottom:12px}.x-btn-arrow{background-image:url('../../extjs/resources/themes/images/default/button/arrow.gif');display:block}.x-btn-split-right,.x-btn-over .x-btn-split-right{background:transparent no-repeat right center;background-image:url('../../extjs/resources/themes/images/default/button/s-arrow.gif');padding-right:14px!important}.x-btn-split-bottom,.x-btn-over .x-btn-split-bottom{background:transparent no-repeat center bottom;background-image:url('../../extjs/resources/themes/images/default/button/s-arrow-b.gif');padding-bottom:14px}.x-toolbar .x-btn-split-right{background-image:url('../../extjs/resources/themes/images/default/button/s-arrow-noline.gif');padding-right:12px!important}.x-toolbar .x-btn-split-bottom{background-image:url('../../extjs/resources/themes/images/default/button/s-arrow-b-noline.gif')}.x-btn-split{display:block}.x-item-disabled,.x-item-disabled *{cursor:default}.x-cycle-fixed-width .x-btn-inner{text-align:inherit}.x-btn-over .x-btn-split-right{background-image:url('../../extjs/resources/themes/images/default/button/s-arrow-o.gif')}.x-btn-over .x-btn-split-bottom{background-image:url('../../extjs/resources/themes/images/default/button/s-arrow-bo.gif')}.x-btn-default-small{border-color:#d1d1d1}.x-btn-default-small{-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;padding:2px 2px 2px 2px;border-width:1px;border-style:solid;background-image:none;background-color:white;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fff),color-stop(48%,#f9f9f9),color-stop(52%,#e2e2e2),color-stop(100%,#e7e7e7));background-image:-webkit-linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7);background-image:-moz-linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7);background-image:-o-linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7);background-image:linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7)}.x-nlg .x-btn-default-small-mc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-small-bg.gif');background-color:white}.x-nbr .x-btn-default-small{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1100303px 1000303px}.x-nbr .x-btn-default-small-tl,.x-nbr .x-btn-default-small-bl,.x-nbr .x-btn-default-small-tr,.x-nbr .x-btn-default-small-br,.x-nbr .x-btn-default-small-tc,.x-nbr .x-btn-default-small-bc,.x-nbr .x-btn-default-small-ml,.x-nbr .x-btn-default-small-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-small-corners.gif')}.x-nbr .x-btn-default-small-ml,.x-nbr .x-btn-default-small-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-small-sides.gif');background-position:0 0}.x-nbr .x-btn-default-small-mc{padding:0}.x-strict .x-ie7 .x-btn-default-small-tl,.x-strict .x-ie7 .x-btn-default-small-bl{position:relative;right:0}.x-btn-default-small .x-btn-inner{font-size:11px;font-weight:normal;font-family:Helvetica Neue,Arial,sans-serif;color:#333;background-repeat:no-repeat;padding:0 4px}.x-btn-default-small-icon button,.x-btn-default-small-icon a,.x-btn-default-small-icon .x-btn-inner,.x-btn-default-small-noicon button,.x-btn-default-small-noicon a,.x-btn-default-small-noicon .x-btn-inner{height:16px;line-height:16px}.x-btn-default-small-icon button,.x-btn-default-small-icon a{padding:0}.x-btn-default-small-icon .x-btn-inner{width:16px;padding:0}.x-btn-default-small-icon .x-btn-icon{width:16px;height:16px;top:0;left:0;bottom:0;right:0}.x-btn-default-small-icon-text-left button,.x-btn-default-small-icon-text-left a{height:16px}.x-btn-default-small-icon-text-left .x-btn-inner{height:16px;line-height:16px;padding-left:20px}.x-btn-default-small-icon-text-left .x-btn-icon{width:16px;height:auto;top:0;left:0;bottom:0;right:auto}.x-ie6 .x-btn-default-small-icon-text-left .x-btn-icon,.x-quirks .x-btn-default-small-icon-text-left .x-btn-icon{height:16px}.x-btn-default-small-icon-text-right button,.x-btn-default-small-icon-text-right a{height:16px}.x-btn-default-small-icon-text-right .x-btn-inner{height:16px;line-height:16px;padding-right:20px!important}.x-btn-default-small-icon-text-right .x-btn-icon{width:16px;height:auto;top:0;left:auto;bottom:0;right:0}.x-ie6 .x-btn-default-small-icon-text-right .x-btn-icon,.x-quirks .x-btn-default-small-icon-text-right .x-btn-icon{height:16px}.x-btn-default-small-icon-text-top .x-btn-inner{padding-top:20px}.x-btn-default-small-icon-text-top .x-btn-icon{width:auto;height:16px;top:0;left:0;bottom:auto;right:0}.x-ie6 .x-btn-default-small-icon-text-top .x-btn-icon,.x-quirks .x-ie .x-btn-default-small-icon-text-top .x-btn-icon{width:16px}.x-btn-default-small-icon-text-bottom .x-btn-inner{padding-bottom:20px}.x-btn-default-small-icon-text-bottom .x-btn-icon{width:auto;height:16px;top:auto;left:0;bottom:0;right:0}.x-ie6 .x-btn-default-small-icon-text-bottom .x-btn-icon,.x-quirks .x-ie .x-btn-default-small-icon-text-bottom .x-btn-icon{width:16px}.x-btn-default-small-over{border-color:#e4dad9;background-image:none;background-color:white;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fff),color-stop(48%,#fcf7f7),color-stop(52%,#eae5e5),color-stop(100%,#efe8e8));background-image:-webkit-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-moz-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-o-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8)}.x-btn-default-small-focus{border-color:#e4dad9;background-image:none;background-color:white;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fff),color-stop(48%,#fcf7f7),color-stop(52%,#eae5e5),color-stop(100%,#efe8e8));background-image:-webkit-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-moz-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-o-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8)}.x-btn-default-small-menu-active,.x-btn-default-small-pressed{border-color:#d5cfcf;background-image:none;background-color:#e0e0e0;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#e0e0e0),color-stop(48%,#e5e5e5),color-stop(52%,#e4c3c5),color-stop(100%,#e7cbcc));background-image:-webkit-linear-gradient(top,#e0e0e0,#e5e5e5 48%,#e4c3c5 52%,#e7cbcc);background-image:-moz-linear-gradient(top,#e0e0e0,#e5e5e5 48%,#e4c3c5 52%,#e7cbcc);background-image:-o-linear-gradient(top,#e0e0e0,#e5e5e5 48%,#e4c3c5 52%,#e7cbcc);background-image:linear-gradient(top,#e0e0e0,#e5e5e5 48%,#e4c3c5 52%,#e7cbcc)}.x-btn-default-small-disabled{border-color:#e9e9e9;background-image:none;background-color:white;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fff),color-stop(48%,#f9f9f9),color-stop(52%,#e2e2e2),color-stop(100%,#e7e7e7));background-image:-webkit-linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7);background-image:-moz-linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7);background-image:-o-linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7);background-image:linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7)}.x-btn-default-small-disabled .x-btn-inner{color:#333!important}.x-ie .x-btn-default-small-disabled .x-btn-inner{color:#595959!important}.x-ie6 .x-btn-default-small-disabled .x-btn-inner{color:#8c8c8c!important}.x-nbr .x-btn-default-small-over .x-frame-tl,.x-nbr .x-btn-default-small-over .x-frame-bl,.x-nbr .x-btn-default-small-over .x-frame-tr,.x-nbr .x-btn-default-small-over .x-frame-br,.x-nbr .x-btn-default-small-over .x-frame-tc,.x-nbr .x-btn-default-small-over .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-small-over-corners.gif')}.x-nbr .x-btn-default-small-over .x-frame-ml,.x-nbr .x-btn-default-small-over .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-small-over-sides.gif')}.x-nbr .x-btn-default-small-over .x-frame-mc{background-color:white;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-small-over-bg.gif')}.x-nbr .x-btn-default-small-focus .x-frame-tl,.x-nbr .x-btn-default-small-focus .x-frame-bl,.x-nbr .x-btn-default-small-focus .x-frame-tr,.x-nbr .x-btn-default-small-focus .x-frame-br,.x-nbr .x-btn-default-small-focus .x-frame-tc,.x-nbr .x-btn-default-small-focus .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-small-focus-corners.gif')}.x-nbr .x-btn-default-small-focus .x-frame-ml,.x-nbr .x-btn-default-small-focus .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-small-focus-sides.gif')}.x-nbr .x-btn-default-small-focus .x-frame-mc{background-color:white;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-small-focus-bg.gif')}.x-nbr .x-btn-default-small-menu-active .x-frame-tl,.x-nbr .x-btn-default-small-menu-active .x-frame-bl,.x-nbr .x-btn-default-small-menu-active .x-frame-tr,.x-nbr .x-btn-default-small-menu-active .x-frame-br,.x-nbr .x-btn-default-small-menu-active .x-frame-tc,.x-nbr .x-btn-default-small-menu-active .x-frame-bc,.x-nbr .x-btn-default-small-pressed .x-frame-tl,.x-nbr .x-btn-default-small-pressed .x-frame-bl,.x-nbr .x-btn-default-small-pressed .x-frame-tr,.x-nbr .x-btn-default-small-pressed .x-frame-br,.x-nbr .x-btn-default-small-pressed .x-frame-tc,.x-nbr .x-btn-default-small-pressed .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-small-pressed-corners.gif')}.x-nbr .x-btn-default-small-menu-active .x-frame-ml,.x-nbr .x-btn-default-small-menu-active .x-frame-mr,.x-nbr .x-btn-default-small-pressed .x-frame-ml,.x-nbr .x-btn-default-small-pressed .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-small-pressed-sides.gif')}.x-nbr .x-btn-default-small-menu-active .x-frame-mc,.x-nbr .x-btn-default-small-pressed .x-frame-mc{background-color:#e0e0e0;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-small-pressed-bg.gif')}.x-nbr .x-btn-default-small-disabled .x-frame-tl,.x-nbr .x-btn-default-small-disabled .x-frame-bl,.x-nbr .x-btn-default-small-disabled .x-frame-tr,.x-nbr .x-btn-default-small-disabled .x-frame-br,.x-nbr .x-btn-default-small-disabled .x-frame-tc,.x-nbr .x-btn-default-small-disabled .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-small-disabled-corners.gif')}.x-nbr .x-btn-default-small-disabled .x-frame-ml,.x-nbr .x-btn-default-small-disabled .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-small-disabled-sides.gif')}.x-nbr .x-btn-default-small-disabled .x-frame-mc{background-color:white;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-small-disabled-bg.gif')}.x-nlg .x-btn-default-small{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-small-bg.gif')}.x-nlg .x-btn-default-small-over{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-small-over-bg.gif')}.x-nlg .x-btn-default-small-focus{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-small-focus-bg.gif')}.x-nlg .x-btn-default-small-menu-active,.x-nlg .x-btn-default-small-pressed{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-small-pressed-bg.gif')}.x-nlg .x-btn-default-small-disabled{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-small-disabled-bg.gif')}.x-btn-default-medium{border-color:#d1d1d1}.x-btn-default-medium{-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;padding:3px 3px 3px 3px;border-width:1px;border-style:solid;background-image:none;background-color:white;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fff),color-stop(48%,#f9f9f9),color-stop(52%,#e2e2e2),color-stop(100%,#e7e7e7));background-image:-webkit-linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7);background-image:-moz-linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7);background-image:-o-linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7);background-image:linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7)}.x-nlg .x-btn-default-medium-mc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-medium-bg.gif');background-color:white}.x-nbr .x-btn-default-medium{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1100303px 1000303px}.x-nbr .x-btn-default-medium-tl,.x-nbr .x-btn-default-medium-bl,.x-nbr .x-btn-default-medium-tr,.x-nbr .x-btn-default-medium-br,.x-nbr .x-btn-default-medium-tc,.x-nbr .x-btn-default-medium-bc,.x-nbr .x-btn-default-medium-ml,.x-nbr .x-btn-default-medium-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-medium-corners.gif')}.x-nbr .x-btn-default-medium-ml,.x-nbr .x-btn-default-medium-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-medium-sides.gif');background-position:0 0}.x-nbr .x-btn-default-medium-mc{padding:1px 1px 1px 1px}.x-strict .x-ie7 .x-btn-default-medium-tl,.x-strict .x-ie7 .x-btn-default-medium-bl{position:relative;right:0}.x-btn-default-medium .x-btn-inner{font-size:11px;font-weight:normal;font-family:Helvetica Neue,Arial,sans-serif;color:#333;background-repeat:no-repeat;padding:0 3px}.x-btn-default-medium-icon button,.x-btn-default-medium-icon a,.x-btn-default-medium-icon .x-btn-inner,.x-btn-default-medium-noicon button,.x-btn-default-medium-noicon a,.x-btn-default-medium-noicon .x-btn-inner{height:24px;line-height:24px}.x-btn-default-medium-icon button,.x-btn-default-medium-icon a{padding:0}.x-btn-default-medium-icon .x-btn-inner{width:24px;padding:0}.x-btn-default-medium-icon .x-btn-icon{width:24px;height:24px;top:0;left:0;bottom:0;right:0}.x-btn-default-medium-icon-text-left button,.x-btn-default-medium-icon-text-left a{height:24px}.x-btn-default-medium-icon-text-left .x-btn-inner{height:24px;line-height:24px;padding-left:28px}.x-btn-default-medium-icon-text-left .x-btn-icon{width:24px;height:auto;top:0;left:0;bottom:0;right:auto}.x-ie6 .x-btn-default-medium-icon-text-left .x-btn-icon,.x-quirks .x-btn-default-medium-icon-text-left .x-btn-icon{height:24px}.x-btn-default-medium-icon-text-right button,.x-btn-default-medium-icon-text-right a{height:24px}.x-btn-default-medium-icon-text-right .x-btn-inner{height:24px;line-height:24px;padding-right:28px!important}.x-btn-default-medium-icon-text-right .x-btn-icon{width:24px;height:auto;top:0;left:auto;bottom:0;right:0}.x-ie6 .x-btn-default-medium-icon-text-right .x-btn-icon,.x-quirks .x-btn-default-medium-icon-text-right .x-btn-icon{height:24px}.x-btn-default-medium-icon-text-top .x-btn-inner{padding-top:28px}.x-btn-default-medium-icon-text-top .x-btn-icon{width:auto;height:24px;top:0;left:0;bottom:auto;right:0}.x-ie6 .x-btn-default-medium-icon-text-top .x-btn-icon,.x-quirks .x-ie .x-btn-default-medium-icon-text-top .x-btn-icon{width:24px}.x-btn-default-medium-icon-text-bottom .x-btn-inner{padding-bottom:28px}.x-btn-default-medium-icon-text-bottom .x-btn-icon{width:auto;height:24px;top:auto;left:0;bottom:0;right:0}.x-ie6 .x-btn-default-medium-icon-text-bottom .x-btn-icon,.x-quirks .x-ie .x-btn-default-medium-icon-text-bottom .x-btn-icon{width:24px}.x-btn-default-medium-over{border-color:#e4dad9;background-image:none;background-color:white;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fff),color-stop(48%,#fcf7f7),color-stop(52%,#eae5e5),color-stop(100%,#efe8e8));background-image:-webkit-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-moz-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-o-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8)}.x-btn-default-medium-focus{border-color:#e4dad9;background-image:none;background-color:white;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fff),color-stop(48%,#fcf7f7),color-stop(52%,#eae5e5),color-stop(100%,#efe8e8));background-image:-webkit-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-moz-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-o-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8)}.x-btn-default-medium-menu-active,.x-btn-default-medium-pressed{border-color:#d5cfcf;background-image:none;background-color:#e0e0e0;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#e0e0e0),color-stop(48%,#e5e5e5),color-stop(52%,#e4c3c5),color-stop(100%,#e7cbcc));background-image:-webkit-linear-gradient(top,#e0e0e0,#e5e5e5 48%,#e4c3c5 52%,#e7cbcc);background-image:-moz-linear-gradient(top,#e0e0e0,#e5e5e5 48%,#e4c3c5 52%,#e7cbcc);background-image:-o-linear-gradient(top,#e0e0e0,#e5e5e5 48%,#e4c3c5 52%,#e7cbcc);background-image:linear-gradient(top,#e0e0e0,#e5e5e5 48%,#e4c3c5 52%,#e7cbcc)}.x-btn-default-medium-disabled{border-color:#e9e9e9;background-image:none;background-color:white;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fff),color-stop(48%,#f9f9f9),color-stop(52%,#e2e2e2),color-stop(100%,#e7e7e7));background-image:-webkit-linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7);background-image:-moz-linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7);background-image:-o-linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7);background-image:linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7)}.x-btn-default-medium-disabled .x-btn-inner{color:#333!important}.x-ie .x-btn-default-medium-disabled .x-btn-inner{color:#595959!important}.x-ie6 .x-btn-default-medium-disabled .x-btn-inner{color:#8c8c8c!important}.x-nbr .x-btn-default-medium-over .x-frame-tl,.x-nbr .x-btn-default-medium-over .x-frame-bl,.x-nbr .x-btn-default-medium-over .x-frame-tr,.x-nbr .x-btn-default-medium-over .x-frame-br,.x-nbr .x-btn-default-medium-over .x-frame-tc,.x-nbr .x-btn-default-medium-over .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-medium-over-corners.gif')}.x-nbr .x-btn-default-medium-over .x-frame-ml,.x-nbr .x-btn-default-medium-over .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-medium-over-sides.gif')}.x-nbr .x-btn-default-medium-over .x-frame-mc{background-color:white;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-medium-over-bg.gif')}.x-nbr .x-btn-default-medium-focus .x-frame-tl,.x-nbr .x-btn-default-medium-focus .x-frame-bl,.x-nbr .x-btn-default-medium-focus .x-frame-tr,.x-nbr .x-btn-default-medium-focus .x-frame-br,.x-nbr .x-btn-default-medium-focus .x-frame-tc,.x-nbr .x-btn-default-medium-focus .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-medium-focus-corners.gif')}.x-nbr .x-btn-default-medium-focus .x-frame-ml,.x-nbr .x-btn-default-medium-focus .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-medium-focus-sides.gif')}.x-nbr .x-btn-default-medium-focus .x-frame-mc{background-color:white;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-medium-focus-bg.gif')}.x-nbr .x-btn-default-medium-menu-active .x-frame-tl,.x-nbr .x-btn-default-medium-menu-active .x-frame-bl,.x-nbr .x-btn-default-medium-menu-active .x-frame-tr,.x-nbr .x-btn-default-medium-menu-active .x-frame-br,.x-nbr .x-btn-default-medium-menu-active .x-frame-tc,.x-nbr .x-btn-default-medium-menu-active .x-frame-bc,.x-nbr .x-btn-default-medium-pressed .x-frame-tl,.x-nbr .x-btn-default-medium-pressed .x-frame-bl,.x-nbr .x-btn-default-medium-pressed .x-frame-tr,.x-nbr .x-btn-default-medium-pressed .x-frame-br,.x-nbr .x-btn-default-medium-pressed .x-frame-tc,.x-nbr .x-btn-default-medium-pressed .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-medium-pressed-corners.gif')}.x-nbr .x-btn-default-medium-menu-active .x-frame-ml,.x-nbr .x-btn-default-medium-menu-active .x-frame-mr,.x-nbr .x-btn-default-medium-pressed .x-frame-ml,.x-nbr .x-btn-default-medium-pressed .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-medium-pressed-sides.gif')}.x-nbr .x-btn-default-medium-menu-active .x-frame-mc,.x-nbr .x-btn-default-medium-pressed .x-frame-mc{background-color:#e0e0e0;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-medium-pressed-bg.gif')}.x-nbr .x-btn-default-medium-disabled .x-frame-tl,.x-nbr .x-btn-default-medium-disabled .x-frame-bl,.x-nbr .x-btn-default-medium-disabled .x-frame-tr,.x-nbr .x-btn-default-medium-disabled .x-frame-br,.x-nbr .x-btn-default-medium-disabled .x-frame-tc,.x-nbr .x-btn-default-medium-disabled .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-medium-disabled-corners.gif')}.x-nbr .x-btn-default-medium-disabled .x-frame-ml,.x-nbr .x-btn-default-medium-disabled .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-medium-disabled-sides.gif')}.x-nbr .x-btn-default-medium-disabled .x-frame-mc{background-color:white;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-medium-disabled-bg.gif')}.x-nlg .x-btn-default-medium{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-medium-bg.gif')}.x-nlg .x-btn-default-medium-over{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-medium-over-bg.gif')}.x-nlg .x-btn-default-medium-focus{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-medium-focus-bg.gif')}.x-nlg .x-btn-default-medium-menu-active,.x-nlg .x-btn-default-medium-pressed{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-medium-pressed-bg.gif')}.x-nlg .x-btn-default-medium-disabled{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-medium-disabled-bg.gif')}.x-btn-default-large{border-color:#d1d1d1}.x-btn-default-large{-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;padding:3px 3px 3px 3px;border-width:1px;border-style:solid;background-image:none;background-color:white;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fff),color-stop(48%,#f9f9f9),color-stop(52%,#e2e2e2),color-stop(100%,#e7e7e7));background-image:-webkit-linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7);background-image:-moz-linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7);background-image:-o-linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7);background-image:linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7)}.x-nlg .x-btn-default-large-mc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-large-bg.gif');background-color:white}.x-nbr .x-btn-default-large{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1100303px 1000303px}.x-nbr .x-btn-default-large-tl,.x-nbr .x-btn-default-large-bl,.x-nbr .x-btn-default-large-tr,.x-nbr .x-btn-default-large-br,.x-nbr .x-btn-default-large-tc,.x-nbr .x-btn-default-large-bc,.x-nbr .x-btn-default-large-ml,.x-nbr .x-btn-default-large-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-large-corners.gif')}.x-nbr .x-btn-default-large-ml,.x-nbr .x-btn-default-large-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-large-sides.gif');background-position:0 0}.x-nbr .x-btn-default-large-mc{padding:1px 1px 1px 1px}.x-strict .x-ie7 .x-btn-default-large-tl,.x-strict .x-ie7 .x-btn-default-large-bl{position:relative;right:0}.x-btn-default-large .x-btn-inner{font-size:11px;font-weight:normal;font-family:Helvetica Neue,Arial,sans-serif;color:#333;background-repeat:no-repeat;padding:0 3px}.x-btn-default-large-icon button,.x-btn-default-large-icon a,.x-btn-default-large-icon .x-btn-inner,.x-btn-default-large-noicon button,.x-btn-default-large-noicon a,.x-btn-default-large-noicon .x-btn-inner{height:32px;line-height:32px}.x-btn-default-large-icon button,.x-btn-default-large-icon a{padding:0}.x-btn-default-large-icon .x-btn-inner{width:32px;padding:0}.x-btn-default-large-icon .x-btn-icon{width:32px;height:32px;top:0;left:0;bottom:0;right:0}.x-btn-default-large-icon-text-left button,.x-btn-default-large-icon-text-left a{height:32px}.x-btn-default-large-icon-text-left .x-btn-inner{height:32px;line-height:32px;padding-left:36px}.x-btn-default-large-icon-text-left .x-btn-icon{width:32px;height:auto;top:0;left:0;bottom:0;right:auto}.x-ie6 .x-btn-default-large-icon-text-left .x-btn-icon,.x-quirks .x-btn-default-large-icon-text-left .x-btn-icon{height:32px}.x-btn-default-large-icon-text-right button,.x-btn-default-large-icon-text-right a{height:32px}.x-btn-default-large-icon-text-right .x-btn-inner{height:32px;line-height:32px;padding-right:36px!important}.x-btn-default-large-icon-text-right .x-btn-icon{width:32px;height:auto;top:0;left:auto;bottom:0;right:0}.x-ie6 .x-btn-default-large-icon-text-right .x-btn-icon,.x-quirks .x-btn-default-large-icon-text-right .x-btn-icon{height:32px}.x-btn-default-large-icon-text-top .x-btn-inner{padding-top:36px}.x-btn-default-large-icon-text-top .x-btn-icon{width:auto;height:32px;top:0;left:0;bottom:auto;right:0}.x-ie6 .x-btn-default-large-icon-text-top .x-btn-icon,.x-quirks .x-ie .x-btn-default-large-icon-text-top .x-btn-icon{width:32px}.x-btn-default-large-icon-text-bottom .x-btn-inner{padding-bottom:36px}.x-btn-default-large-icon-text-bottom .x-btn-icon{width:auto;height:32px;top:auto;left:0;bottom:0;right:0}.x-ie6 .x-btn-default-large-icon-text-bottom .x-btn-icon,.x-quirks .x-ie .x-btn-default-large-icon-text-bottom .x-btn-icon{width:32px}.x-btn-default-large-over{border-color:#e4dad9;background-image:none;background-color:white;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fff),color-stop(48%,#fcf7f7),color-stop(52%,#eae5e5),color-stop(100%,#efe8e8));background-image:-webkit-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-moz-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-o-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8)}.x-btn-default-large-focus{border-color:#e4dad9;background-image:none;background-color:white;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fff),color-stop(48%,#fcf7f7),color-stop(52%,#eae5e5),color-stop(100%,#efe8e8));background-image:-webkit-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-moz-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-o-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8)}.x-btn-default-large-menu-active,.x-btn-default-large-pressed{border-color:#d5cfcf;background-image:none;background-color:#e0e0e0;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#e0e0e0),color-stop(48%,#e5e5e5),color-stop(52%,#e4c3c5),color-stop(100%,#e7cbcc));background-image:-webkit-linear-gradient(top,#e0e0e0,#e5e5e5 48%,#e4c3c5 52%,#e7cbcc);background-image:-moz-linear-gradient(top,#e0e0e0,#e5e5e5 48%,#e4c3c5 52%,#e7cbcc);background-image:-o-linear-gradient(top,#e0e0e0,#e5e5e5 48%,#e4c3c5 52%,#e7cbcc);background-image:linear-gradient(top,#e0e0e0,#e5e5e5 48%,#e4c3c5 52%,#e7cbcc)}.x-btn-default-large-disabled{border-color:#e9e9e9;background-image:none;background-color:white;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fff),color-stop(48%,#f9f9f9),color-stop(52%,#e2e2e2),color-stop(100%,#e7e7e7));background-image:-webkit-linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7);background-image:-moz-linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7);background-image:-o-linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7);background-image:linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7)}.x-btn-default-large-disabled .x-btn-inner{color:#333!important}.x-ie .x-btn-default-large-disabled .x-btn-inner{color:#595959!important}.x-ie6 .x-btn-default-large-disabled .x-btn-inner{color:#8c8c8c!important}.x-nbr .x-btn-default-large-over .x-frame-tl,.x-nbr .x-btn-default-large-over .x-frame-bl,.x-nbr .x-btn-default-large-over .x-frame-tr,.x-nbr .x-btn-default-large-over .x-frame-br,.x-nbr .x-btn-default-large-over .x-frame-tc,.x-nbr .x-btn-default-large-over .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-large-over-corners.gif')}.x-nbr .x-btn-default-large-over .x-frame-ml,.x-nbr .x-btn-default-large-over .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-large-over-sides.gif')}.x-nbr .x-btn-default-large-over .x-frame-mc{background-color:white;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-large-over-bg.gif')}.x-nbr .x-btn-default-large-focus .x-frame-tl,.x-nbr .x-btn-default-large-focus .x-frame-bl,.x-nbr .x-btn-default-large-focus .x-frame-tr,.x-nbr .x-btn-default-large-focus .x-frame-br,.x-nbr .x-btn-default-large-focus .x-frame-tc,.x-nbr .x-btn-default-large-focus .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-large-focus-corners.gif')}.x-nbr .x-btn-default-large-focus .x-frame-ml,.x-nbr .x-btn-default-large-focus .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-large-focus-sides.gif')}.x-nbr .x-btn-default-large-focus .x-frame-mc{background-color:white;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-large-focus-bg.gif')}.x-nbr .x-btn-default-large-menu-active .x-frame-tl,.x-nbr .x-btn-default-large-menu-active .x-frame-bl,.x-nbr .x-btn-default-large-menu-active .x-frame-tr,.x-nbr .x-btn-default-large-menu-active .x-frame-br,.x-nbr .x-btn-default-large-menu-active .x-frame-tc,.x-nbr .x-btn-default-large-menu-active .x-frame-bc,.x-nbr .x-btn-default-large-pressed .x-frame-tl,.x-nbr .x-btn-default-large-pressed .x-frame-bl,.x-nbr .x-btn-default-large-pressed .x-frame-tr,.x-nbr .x-btn-default-large-pressed .x-frame-br,.x-nbr .x-btn-default-large-pressed .x-frame-tc,.x-nbr .x-btn-default-large-pressed .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-large-pressed-corners.gif')}.x-nbr .x-btn-default-large-menu-active .x-frame-ml,.x-nbr .x-btn-default-large-menu-active .x-frame-mr,.x-nbr .x-btn-default-large-pressed .x-frame-ml,.x-nbr .x-btn-default-large-pressed .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-large-pressed-sides.gif')}.x-nbr .x-btn-default-large-menu-active .x-frame-mc,.x-nbr .x-btn-default-large-pressed .x-frame-mc{background-color:#e0e0e0;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-large-pressed-bg.gif')}.x-nbr .x-btn-default-large-disabled .x-frame-tl,.x-nbr .x-btn-default-large-disabled .x-frame-bl,.x-nbr .x-btn-default-large-disabled .x-frame-tr,.x-nbr .x-btn-default-large-disabled .x-frame-br,.x-nbr .x-btn-default-large-disabled .x-frame-tc,.x-nbr .x-btn-default-large-disabled .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-large-disabled-corners.gif')}.x-nbr .x-btn-default-large-disabled .x-frame-ml,.x-nbr .x-btn-default-large-disabled .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-large-disabled-sides.gif')}.x-nbr .x-btn-default-large-disabled .x-frame-mc{background-color:white;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-large-disabled-bg.gif')}.x-nlg .x-btn-default-large{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-large-bg.gif')}.x-nlg .x-btn-default-large-over{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-large-over-bg.gif')}.x-nlg .x-btn-default-large-focus{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-large-focus-bg.gif')}.x-nlg .x-btn-default-large-menu-active,.x-nlg .x-btn-default-large-pressed{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-large-pressed-bg.gif')}.x-nlg .x-btn-default-large-disabled{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-large-disabled-bg.gif')}.x-btn-default-toolbar-small{border-color:transparent}.x-btn-default-toolbar-small{-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;padding:2px 2px 2px 2px;border-width:1px;border-style:solid;background-color:transparent}.x-nlg .x-btn-default-toolbar-small-mc{background-color:transparent}.x-nbr .x-btn-default-toolbar-small{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1100303px 1000303px}.x-nbr .x-btn-default-toolbar-small-tl,.x-nbr .x-btn-default-toolbar-small-bl,.x-nbr .x-btn-default-toolbar-small-tr,.x-nbr .x-btn-default-toolbar-small-br,.x-nbr .x-btn-default-toolbar-small-tc,.x-nbr .x-btn-default-toolbar-small-bc,.x-nbr .x-btn-default-toolbar-small-ml,.x-nbr .x-btn-default-toolbar-small-mr{zoom:1}.x-nbr .x-btn-default-toolbar-small-ml,.x-nbr .x-btn-default-toolbar-small-mr{zoom:1}.x-nbr .x-btn-default-toolbar-small-mc{padding:0}.x-strict .x-ie7 .x-btn-default-toolbar-small-tl,.x-strict .x-ie7 .x-btn-default-toolbar-small-bl{position:relative;right:0}.x-btn-default-toolbar-small .x-btn-inner{font-size:11px;font-weight:normal;font-family:Helvetica Neue,Arial,sans-serif;color:#333;background-repeat:no-repeat;padding:0 4px}.x-btn-default-toolbar-small-icon button,.x-btn-default-toolbar-small-icon a,.x-btn-default-toolbar-small-icon .x-btn-inner,.x-btn-default-toolbar-small-noicon button,.x-btn-default-toolbar-small-noicon a,.x-btn-default-toolbar-small-noicon .x-btn-inner{height:16px;line-height:16px}.x-btn-default-toolbar-small-icon button,.x-btn-default-toolbar-small-icon a{padding:0}.x-btn-default-toolbar-small-icon .x-btn-inner{width:16px;padding:0}.x-btn-default-toolbar-small-icon .x-btn-icon{width:16px;height:16px;top:0;left:0;bottom:0;right:0}.x-btn-default-toolbar-small-icon-text-left button,.x-btn-default-toolbar-small-icon-text-left a{height:16px}.x-btn-default-toolbar-small-icon-text-left .x-btn-inner{height:16px;line-height:16px;padding-left:20px}.x-btn-default-toolbar-small-icon-text-left .x-btn-icon{width:16px;height:auto;top:0;left:0;bottom:0;right:auto}.x-ie6 .x-btn-default-toolbar-small-icon-text-left .x-btn-icon,.x-quirks .x-btn-default-toolbar-small-icon-text-left .x-btn-icon{height:16px}.x-btn-default-toolbar-small-icon-text-right button,.x-btn-default-toolbar-small-icon-text-right a{height:16px}.x-btn-default-toolbar-small-icon-text-right .x-btn-inner{height:16px;line-height:16px;padding-right:20px!important}.x-btn-default-toolbar-small-icon-text-right .x-btn-icon{width:16px;height:auto;top:0;left:auto;bottom:0;right:0}.x-ie6 .x-btn-default-toolbar-small-icon-text-right .x-btn-icon,.x-quirks .x-btn-default-toolbar-small-icon-text-right .x-btn-icon{height:16px}.x-btn-default-toolbar-small-icon-text-top .x-btn-inner{padding-top:20px}.x-btn-default-toolbar-small-icon-text-top .x-btn-icon{width:auto;height:16px;top:0;left:0;bottom:auto;right:0}.x-ie6 .x-btn-default-toolbar-small-icon-text-top .x-btn-icon,.x-quirks .x-ie .x-btn-default-toolbar-small-icon-text-top .x-btn-icon{width:16px}.x-btn-default-toolbar-small-icon-text-bottom .x-btn-inner{padding-bottom:20px}.x-btn-default-toolbar-small-icon-text-bottom .x-btn-icon{width:auto;height:16px;top:auto;left:0;bottom:0;right:0}.x-ie6 .x-btn-default-toolbar-small-icon-text-bottom .x-btn-icon,.x-quirks .x-ie .x-btn-default-toolbar-small-icon-text-bottom .x-btn-icon{width:16px}.x-btn-default-toolbar-small-over{border-color:#bbb;background-image:none;background-color:white;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fff),color-stop(48%,#fcf7f7),color-stop(52%,#eae5e5),color-stop(100%,#efe8e8));background-image:-webkit-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-moz-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-o-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8)}.x-btn-default-toolbar-small-focus{border-color:#bbb;background-image:none;background-color:white;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fff),color-stop(48%,#fcf7f7),color-stop(52%,#eae5e5),color-stop(100%,#efe8e8));background-image:-webkit-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-moz-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-o-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8)}.x-btn-default-toolbar-small-menu-active,.x-btn-default-toolbar-small-pressed{border-color:#b1b1b1;background-image:none;background-color:#e3e3e3;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#e3e3e3),color-stop(48%,#e9e9e9),color-stop(52%,#e6c8c9),color-stop(100%,#e9d0d1));background-image:-webkit-linear-gradient(top,#e3e3e3,#e9e9e9 48%,#e6c8c9 52%,#e9d0d1);background-image:-moz-linear-gradient(top,#e3e3e3,#e9e9e9 48%,#e6c8c9 52%,#e9d0d1);background-image:-o-linear-gradient(top,#e3e3e3,#e9e9e9 48%,#e6c8c9 52%,#e9d0d1);background-image:linear-gradient(top,#e3e3e3,#e9e9e9 48%,#e6c8c9 52%,#e9d0d1)}.x-btn-default-toolbar-small-disabled{background-image:none;background-color:transparent}.x-btn-default-toolbar-small-disabled .x-btn-inner{color:#333!important}.x-ie .x-btn-default-toolbar-small-disabled .x-btn-inner{color:#595959!important}.x-ie6 .x-btn-default-toolbar-small-disabled .x-btn-inner{color:#8c8c8c!important}.x-nbr .x-btn-default-toolbar-small-over .x-frame-tl,.x-nbr .x-btn-default-toolbar-small-over .x-frame-bl,.x-nbr .x-btn-default-toolbar-small-over .x-frame-tr,.x-nbr .x-btn-default-toolbar-small-over .x-frame-br,.x-nbr .x-btn-default-toolbar-small-over .x-frame-tc,.x-nbr .x-btn-default-toolbar-small-over .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-small-over-corners.gif')}.x-nbr .x-btn-default-toolbar-small-over .x-frame-ml,.x-nbr .x-btn-default-toolbar-small-over .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-small-over-sides.gif')}.x-nbr .x-btn-default-toolbar-small-over .x-frame-mc{background-color:white;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-small-over-bg.gif')}.x-nbr .x-btn-default-toolbar-small-focus .x-frame-tl,.x-nbr .x-btn-default-toolbar-small-focus .x-frame-bl,.x-nbr .x-btn-default-toolbar-small-focus .x-frame-tr,.x-nbr .x-btn-default-toolbar-small-focus .x-frame-br,.x-nbr .x-btn-default-toolbar-small-focus .x-frame-tc,.x-nbr .x-btn-default-toolbar-small-focus .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-small-focus-corners.gif')}.x-nbr .x-btn-default-toolbar-small-focus .x-frame-ml,.x-nbr .x-btn-default-toolbar-small-focus .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-small-focus-sides.gif')}.x-nbr .x-btn-default-toolbar-small-focus .x-frame-mc{background-color:white;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-small-focus-bg.gif')}.x-nbr .x-btn-default-toolbar-small-menu-active .x-frame-tl,.x-nbr .x-btn-default-toolbar-small-menu-active .x-frame-bl,.x-nbr .x-btn-default-toolbar-small-menu-active .x-frame-tr,.x-nbr .x-btn-default-toolbar-small-menu-active .x-frame-br,.x-nbr .x-btn-default-toolbar-small-menu-active .x-frame-tc,.x-nbr .x-btn-default-toolbar-small-menu-active .x-frame-bc,.x-nbr .x-btn-default-toolbar-small-pressed .x-frame-tl,.x-nbr .x-btn-default-toolbar-small-pressed .x-frame-bl,.x-nbr .x-btn-default-toolbar-small-pressed .x-frame-tr,.x-nbr .x-btn-default-toolbar-small-pressed .x-frame-br,.x-nbr .x-btn-default-toolbar-small-pressed .x-frame-tc,.x-nbr .x-btn-default-toolbar-small-pressed .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-small-pressed-corners.gif')}.x-nbr .x-btn-default-toolbar-small-menu-active .x-frame-ml,.x-nbr .x-btn-default-toolbar-small-menu-active .x-frame-mr,.x-nbr .x-btn-default-toolbar-small-pressed .x-frame-ml,.x-nbr .x-btn-default-toolbar-small-pressed .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-small-pressed-sides.gif')}.x-nbr .x-btn-default-toolbar-small-menu-active .x-frame-mc,.x-nbr .x-btn-default-toolbar-small-pressed .x-frame-mc{background-color:#e3e3e3;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-small-pressed-bg.gif')}.x-nbr .x-btn-default-toolbar-small-disabled .x-frame-tl,.x-nbr .x-btn-default-toolbar-small-disabled .x-frame-bl,.x-nbr .x-btn-default-toolbar-small-disabled .x-frame-tr,.x-nbr .x-btn-default-toolbar-small-disabled .x-frame-br,.x-nbr .x-btn-default-toolbar-small-disabled .x-frame-tc,.x-nbr .x-btn-default-toolbar-small-disabled .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-small-disabled-corners.gif')}.x-nbr .x-btn-default-toolbar-small-disabled .x-frame-ml,.x-nbr .x-btn-default-toolbar-small-disabled .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-small-disabled-sides.gif')}.x-nbr .x-btn-default-toolbar-small-disabled .x-frame-mc{background-color:transparent}.x-nlg .x-btn-default-toolbar-small-over{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-small-over-bg.gif')}.x-nlg .x-btn-default-toolbar-small-focus{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-small-focus-bg.gif')}.x-nlg .x-btn-default-toolbar-small-menu-active,.x-nlg .x-btn-default-toolbar-small-pressed{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-small-pressed-bg.gif')}.x-btn-default-toolbar-medium{border-color:transparent}.x-btn-default-toolbar-medium{-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;padding:3px 3px 3px 3px;border-width:1px;border-style:solid;background-color:transparent}.x-nlg .x-btn-default-toolbar-medium-mc{background-color:transparent}.x-nbr .x-btn-default-toolbar-medium{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1100303px 1000303px}.x-nbr .x-btn-default-toolbar-medium-tl,.x-nbr .x-btn-default-toolbar-medium-bl,.x-nbr .x-btn-default-toolbar-medium-tr,.x-nbr .x-btn-default-toolbar-medium-br,.x-nbr .x-btn-default-toolbar-medium-tc,.x-nbr .x-btn-default-toolbar-medium-bc,.x-nbr .x-btn-default-toolbar-medium-ml,.x-nbr .x-btn-default-toolbar-medium-mr{zoom:1}.x-nbr .x-btn-default-toolbar-medium-ml,.x-nbr .x-btn-default-toolbar-medium-mr{zoom:1}.x-nbr .x-btn-default-toolbar-medium-mc{padding:1px 1px 1px 1px}.x-strict .x-ie7 .x-btn-default-toolbar-medium-tl,.x-strict .x-ie7 .x-btn-default-toolbar-medium-bl{position:relative;right:0}.x-btn-default-toolbar-medium .x-btn-inner{font-size:11px;font-weight:normal;font-family:Helvetica Neue,Arial,sans-serif;color:#333;background-repeat:no-repeat;padding:0 3px}.x-btn-default-toolbar-medium-icon button,.x-btn-default-toolbar-medium-icon a,.x-btn-default-toolbar-medium-icon .x-btn-inner,.x-btn-default-toolbar-medium-noicon button,.x-btn-default-toolbar-medium-noicon a,.x-btn-default-toolbar-medium-noicon .x-btn-inner{height:24px;line-height:24px}.x-btn-default-toolbar-medium-icon button,.x-btn-default-toolbar-medium-icon a{padding:0}.x-btn-default-toolbar-medium-icon .x-btn-inner{width:24px;padding:0}.x-btn-default-toolbar-medium-icon .x-btn-icon{width:24px;height:24px;top:0;left:0;bottom:0;right:0}.x-btn-default-toolbar-medium-icon-text-left button,.x-btn-default-toolbar-medium-icon-text-left a{height:24px}.x-btn-default-toolbar-medium-icon-text-left .x-btn-inner{height:24px;line-height:24px;padding-left:28px}.x-btn-default-toolbar-medium-icon-text-left .x-btn-icon{width:24px;height:auto;top:0;left:0;bottom:0;right:auto}.x-ie6 .x-btn-default-toolbar-medium-icon-text-left .x-btn-icon,.x-quirks .x-btn-default-toolbar-medium-icon-text-left .x-btn-icon{height:24px}.x-btn-default-toolbar-medium-icon-text-right button,.x-btn-default-toolbar-medium-icon-text-right a{height:24px}.x-btn-default-toolbar-medium-icon-text-right .x-btn-inner{height:24px;line-height:24px;padding-right:28px!important}.x-btn-default-toolbar-medium-icon-text-right .x-btn-icon{width:24px;height:auto;top:0;left:auto;bottom:0;right:0}.x-ie6 .x-btn-default-toolbar-medium-icon-text-right .x-btn-icon,.x-quirks .x-btn-default-toolbar-medium-icon-text-right .x-btn-icon{height:24px}.x-btn-default-toolbar-medium-icon-text-top .x-btn-inner{padding-top:28px}.x-btn-default-toolbar-medium-icon-text-top .x-btn-icon{width:auto;height:24px;top:0;left:0;bottom:auto;right:0}.x-ie6 .x-btn-default-toolbar-medium-icon-text-top .x-btn-icon,.x-quirks .x-ie .x-btn-default-toolbar-medium-icon-text-top .x-btn-icon{width:24px}.x-btn-default-toolbar-medium-icon-text-bottom .x-btn-inner{padding-bottom:28px}.x-btn-default-toolbar-medium-icon-text-bottom .x-btn-icon{width:auto;height:24px;top:auto;left:0;bottom:0;right:0}.x-ie6 .x-btn-default-toolbar-medium-icon-text-bottom .x-btn-icon,.x-quirks .x-ie .x-btn-default-toolbar-medium-icon-text-bottom .x-btn-icon{width:24px}.x-btn-default-toolbar-medium-over{border-color:#bbb;background-image:none;background-color:white;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fff),color-stop(48%,#fcf7f7),color-stop(52%,#eae5e5),color-stop(100%,#efe8e8));background-image:-webkit-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-moz-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-o-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8)}.x-btn-default-toolbar-medium-focus{border-color:#bbb;background-image:none;background-color:white;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fff),color-stop(48%,#fcf7f7),color-stop(52%,#eae5e5),color-stop(100%,#efe8e8));background-image:-webkit-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-moz-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-o-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8)}.x-btn-default-toolbar-medium-menu-active,.x-btn-default-toolbar-medium-pressed{border-color:#b1b1b1;background-image:none;background-color:#e3e3e3;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#e3e3e3),color-stop(48%,#e9e9e9),color-stop(52%,#e6c8c9),color-stop(100%,#e9d0d1));background-image:-webkit-linear-gradient(top,#e3e3e3,#e9e9e9 48%,#e6c8c9 52%,#e9d0d1);background-image:-moz-linear-gradient(top,#e3e3e3,#e9e9e9 48%,#e6c8c9 52%,#e9d0d1);background-image:-o-linear-gradient(top,#e3e3e3,#e9e9e9 48%,#e6c8c9 52%,#e9d0d1);background-image:linear-gradient(top,#e3e3e3,#e9e9e9 48%,#e6c8c9 52%,#e9d0d1)}.x-btn-default-toolbar-medium-disabled{background-image:none;background-color:transparent}.x-btn-default-toolbar-medium-disabled .x-btn-inner{color:#333!important}.x-ie .x-btn-default-toolbar-medium-disabled .x-btn-inner{color:#595959!important}.x-ie6 .x-btn-default-toolbar-medium-disabled .x-btn-inner{color:#8c8c8c!important}.x-nbr .x-btn-default-toolbar-medium-over .x-frame-tl,.x-nbr .x-btn-default-toolbar-medium-over .x-frame-bl,.x-nbr .x-btn-default-toolbar-medium-over .x-frame-tr,.x-nbr .x-btn-default-toolbar-medium-over .x-frame-br,.x-nbr .x-btn-default-toolbar-medium-over .x-frame-tc,.x-nbr .x-btn-default-toolbar-medium-over .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-over-corners.gif')}.x-nbr .x-btn-default-toolbar-medium-over .x-frame-ml,.x-nbr .x-btn-default-toolbar-medium-over .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-over-sides.gif')}.x-nbr .x-btn-default-toolbar-medium-over .x-frame-mc{background-color:white;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-over-bg.gif')}.x-nbr .x-btn-default-toolbar-medium-focus .x-frame-tl,.x-nbr .x-btn-default-toolbar-medium-focus .x-frame-bl,.x-nbr .x-btn-default-toolbar-medium-focus .x-frame-tr,.x-nbr .x-btn-default-toolbar-medium-focus .x-frame-br,.x-nbr .x-btn-default-toolbar-medium-focus .x-frame-tc,.x-nbr .x-btn-default-toolbar-medium-focus .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-focus-corners.gif')}.x-nbr .x-btn-default-toolbar-medium-focus .x-frame-ml,.x-nbr .x-btn-default-toolbar-medium-focus .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-focus-sides.gif')}.x-nbr .x-btn-default-toolbar-medium-focus .x-frame-mc{background-color:white;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-focus-bg.gif')}.x-nbr .x-btn-default-toolbar-medium-menu-active .x-frame-tl,.x-nbr .x-btn-default-toolbar-medium-menu-active .x-frame-bl,.x-nbr .x-btn-default-toolbar-medium-menu-active .x-frame-tr,.x-nbr .x-btn-default-toolbar-medium-menu-active .x-frame-br,.x-nbr .x-btn-default-toolbar-medium-menu-active .x-frame-tc,.x-nbr .x-btn-default-toolbar-medium-menu-active .x-frame-bc,.x-nbr .x-btn-default-toolbar-medium-pressed .x-frame-tl,.x-nbr .x-btn-default-toolbar-medium-pressed .x-frame-bl,.x-nbr .x-btn-default-toolbar-medium-pressed .x-frame-tr,.x-nbr .x-btn-default-toolbar-medium-pressed .x-frame-br,.x-nbr .x-btn-default-toolbar-medium-pressed .x-frame-tc,.x-nbr .x-btn-default-toolbar-medium-pressed .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-pressed-corners.gif')}.x-nbr .x-btn-default-toolbar-medium-menu-active .x-frame-ml,.x-nbr .x-btn-default-toolbar-medium-menu-active .x-frame-mr,.x-nbr .x-btn-default-toolbar-medium-pressed .x-frame-ml,.x-nbr .x-btn-default-toolbar-medium-pressed .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-pressed-sides.gif')}.x-nbr .x-btn-default-toolbar-medium-menu-active .x-frame-mc,.x-nbr .x-btn-default-toolbar-medium-pressed .x-frame-mc{background-color:#e3e3e3;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-pressed-bg.gif')}.x-nbr .x-btn-default-toolbar-medium-disabled .x-frame-tl,.x-nbr .x-btn-default-toolbar-medium-disabled .x-frame-bl,.x-nbr .x-btn-default-toolbar-medium-disabled .x-frame-tr,.x-nbr .x-btn-default-toolbar-medium-disabled .x-frame-br,.x-nbr .x-btn-default-toolbar-medium-disabled .x-frame-tc,.x-nbr .x-btn-default-toolbar-medium-disabled .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-disabled-corners.gif')}.x-nbr .x-btn-default-toolbar-medium-disabled .x-frame-ml,.x-nbr .x-btn-default-toolbar-medium-disabled .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-disabled-sides.gif')}.x-nbr .x-btn-default-toolbar-medium-disabled .x-frame-mc{background-color:transparent}.x-nlg .x-btn-default-toolbar-medium-over{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-over-bg.gif')}.x-nlg .x-btn-default-toolbar-medium-focus{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-focus-bg.gif')}.x-nlg .x-btn-default-toolbar-medium-menu-active,.x-nlg .x-btn-default-toolbar-medium-pressed{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-pressed-bg.gif')}.x-btn-default-toolbar-large{border-color:transparent}.x-btn-default-toolbar-large{-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;padding:3px 3px 3px 3px;border-width:1px;border-style:solid;background-color:transparent}.x-nlg .x-btn-default-toolbar-large-mc{background-color:transparent}.x-nbr .x-btn-default-toolbar-large{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1100303px 1000303px}.x-nbr .x-btn-default-toolbar-large-tl,.x-nbr .x-btn-default-toolbar-large-bl,.x-nbr .x-btn-default-toolbar-large-tr,.x-nbr .x-btn-default-toolbar-large-br,.x-nbr .x-btn-default-toolbar-large-tc,.x-nbr .x-btn-default-toolbar-large-bc,.x-nbr .x-btn-default-toolbar-large-ml,.x-nbr .x-btn-default-toolbar-large-mr{zoom:1}.x-nbr .x-btn-default-toolbar-large-ml,.x-nbr .x-btn-default-toolbar-large-mr{zoom:1}.x-nbr .x-btn-default-toolbar-large-mc{padding:1px 1px 1px 1px}.x-strict .x-ie7 .x-btn-default-toolbar-large-tl,.x-strict .x-ie7 .x-btn-default-toolbar-large-bl{position:relative;right:0}.x-btn-default-toolbar-large .x-btn-inner{font-size:11px;font-weight:normal;font-family:Helvetica Neue,Arial,sans-serif;color:#333;background-repeat:no-repeat;padding:0 3px}.x-btn-default-toolbar-large-icon button,.x-btn-default-toolbar-large-icon a,.x-btn-default-toolbar-large-icon .x-btn-inner,.x-btn-default-toolbar-large-noicon button,.x-btn-default-toolbar-large-noicon a,.x-btn-default-toolbar-large-noicon .x-btn-inner{height:32px;line-height:32px}.x-btn-default-toolbar-large-icon button,.x-btn-default-toolbar-large-icon a{padding:0}.x-btn-default-toolbar-large-icon .x-btn-inner{width:32px;padding:0}.x-btn-default-toolbar-large-icon .x-btn-icon{width:32px;height:32px;top:0;left:0;bottom:0;right:0}.x-btn-default-toolbar-large-icon-text-left button,.x-btn-default-toolbar-large-icon-text-left a{height:32px}.x-btn-default-toolbar-large-icon-text-left .x-btn-inner{height:32px;line-height:32px;padding-left:36px}.x-btn-default-toolbar-large-icon-text-left .x-btn-icon{width:32px;height:auto;top:0;left:0;bottom:0;right:auto}.x-ie6 .x-btn-default-toolbar-large-icon-text-left .x-btn-icon,.x-quirks .x-btn-default-toolbar-large-icon-text-left .x-btn-icon{height:32px}.x-btn-default-toolbar-large-icon-text-right button,.x-btn-default-toolbar-large-icon-text-right a{height:32px}.x-btn-default-toolbar-large-icon-text-right .x-btn-inner{height:32px;line-height:32px;padding-right:36px!important}.x-btn-default-toolbar-large-icon-text-right .x-btn-icon{width:32px;height:auto;top:0;left:auto;bottom:0;right:0}.x-ie6 .x-btn-default-toolbar-large-icon-text-right .x-btn-icon,.x-quirks .x-btn-default-toolbar-large-icon-text-right .x-btn-icon{height:32px}.x-btn-default-toolbar-large-icon-text-top .x-btn-inner{padding-top:36px}.x-btn-default-toolbar-large-icon-text-top .x-btn-icon{width:auto;height:32px;top:0;left:0;bottom:auto;right:0}.x-ie6 .x-btn-default-toolbar-large-icon-text-top .x-btn-icon,.x-quirks .x-ie .x-btn-default-toolbar-large-icon-text-top .x-btn-icon{width:32px}.x-btn-default-toolbar-large-icon-text-bottom .x-btn-inner{padding-bottom:36px}.x-btn-default-toolbar-large-icon-text-bottom .x-btn-icon{width:auto;height:32px;top:auto;left:0;bottom:0;right:0}.x-ie6 .x-btn-default-toolbar-large-icon-text-bottom .x-btn-icon,.x-quirks .x-ie .x-btn-default-toolbar-large-icon-text-bottom .x-btn-icon{width:32px}.x-btn-default-toolbar-large-over{border-color:#bbb;background-image:none;background-color:white;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fff),color-stop(48%,#fcf7f7),color-stop(52%,#eae5e5),color-stop(100%,#efe8e8));background-image:-webkit-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-moz-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-o-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8)}.x-btn-default-toolbar-large-focus{border-color:#bbb;background-image:none;background-color:white;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fff),color-stop(48%,#fcf7f7),color-stop(52%,#eae5e5),color-stop(100%,#efe8e8));background-image:-webkit-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-moz-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-o-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8)}.x-btn-default-toolbar-large-menu-active,.x-btn-default-toolbar-large-pressed{border-color:#b1b1b1;background-image:none;background-color:#e3e3e3;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#e3e3e3),color-stop(48%,#e9e9e9),color-stop(52%,#e6c8c9),color-stop(100%,#e9d0d1));background-image:-webkit-linear-gradient(top,#e3e3e3,#e9e9e9 48%,#e6c8c9 52%,#e9d0d1);background-image:-moz-linear-gradient(top,#e3e3e3,#e9e9e9 48%,#e6c8c9 52%,#e9d0d1);background-image:-o-linear-gradient(top,#e3e3e3,#e9e9e9 48%,#e6c8c9 52%,#e9d0d1);background-image:linear-gradient(top,#e3e3e3,#e9e9e9 48%,#e6c8c9 52%,#e9d0d1)}.x-btn-default-toolbar-large-disabled{background-image:none;background-color:transparent}.x-btn-default-toolbar-large-disabled .x-btn-inner{color:#333!important}.x-ie .x-btn-default-toolbar-large-disabled .x-btn-inner{color:#595959!important}.x-ie6 .x-btn-default-toolbar-large-disabled .x-btn-inner{color:#8c8c8c!important}.x-nbr .x-btn-default-toolbar-large-over .x-frame-tl,.x-nbr .x-btn-default-toolbar-large-over .x-frame-bl,.x-nbr .x-btn-default-toolbar-large-over .x-frame-tr,.x-nbr .x-btn-default-toolbar-large-over .x-frame-br,.x-nbr .x-btn-default-toolbar-large-over .x-frame-tc,.x-nbr .x-btn-default-toolbar-large-over .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-large-over-corners.gif')}.x-nbr .x-btn-default-toolbar-large-over .x-frame-ml,.x-nbr .x-btn-default-toolbar-large-over .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-large-over-sides.gif')}.x-nbr .x-btn-default-toolbar-large-over .x-frame-mc{background-color:white;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-large-over-bg.gif')}.x-nbr .x-btn-default-toolbar-large-focus .x-frame-tl,.x-nbr .x-btn-default-toolbar-large-focus .x-frame-bl,.x-nbr .x-btn-default-toolbar-large-focus .x-frame-tr,.x-nbr .x-btn-default-toolbar-large-focus .x-frame-br,.x-nbr .x-btn-default-toolbar-large-focus .x-frame-tc,.x-nbr .x-btn-default-toolbar-large-focus .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-large-focus-corners.gif')}.x-nbr .x-btn-default-toolbar-large-focus .x-frame-ml,.x-nbr .x-btn-default-toolbar-large-focus .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-large-focus-sides.gif')}.x-nbr .x-btn-default-toolbar-large-focus .x-frame-mc{background-color:white;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-large-focus-bg.gif')}.x-nbr .x-btn-default-toolbar-large-menu-active .x-frame-tl,.x-nbr .x-btn-default-toolbar-large-menu-active .x-frame-bl,.x-nbr .x-btn-default-toolbar-large-menu-active .x-frame-tr,.x-nbr .x-btn-default-toolbar-large-menu-active .x-frame-br,.x-nbr .x-btn-default-toolbar-large-menu-active .x-frame-tc,.x-nbr .x-btn-default-toolbar-large-menu-active .x-frame-bc,.x-nbr .x-btn-default-toolbar-large-pressed .x-frame-tl,.x-nbr .x-btn-default-toolbar-large-pressed .x-frame-bl,.x-nbr .x-btn-default-toolbar-large-pressed .x-frame-tr,.x-nbr .x-btn-default-toolbar-large-pressed .x-frame-br,.x-nbr .x-btn-default-toolbar-large-pressed .x-frame-tc,.x-nbr .x-btn-default-toolbar-large-pressed .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-large-pressed-corners.gif')}.x-nbr .x-btn-default-toolbar-large-menu-active .x-frame-ml,.x-nbr .x-btn-default-toolbar-large-menu-active .x-frame-mr,.x-nbr .x-btn-default-toolbar-large-pressed .x-frame-ml,.x-nbr .x-btn-default-toolbar-large-pressed .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-large-pressed-sides.gif')}.x-nbr .x-btn-default-toolbar-large-menu-active .x-frame-mc,.x-nbr .x-btn-default-toolbar-large-pressed .x-frame-mc{background-color:#e3e3e3;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-large-pressed-bg.gif')}.x-nbr .x-btn-default-toolbar-large-disabled .x-frame-tl,.x-nbr .x-btn-default-toolbar-large-disabled .x-frame-bl,.x-nbr .x-btn-default-toolbar-large-disabled .x-frame-tr,.x-nbr .x-btn-default-toolbar-large-disabled .x-frame-br,.x-nbr .x-btn-default-toolbar-large-disabled .x-frame-tc,.x-nbr .x-btn-default-toolbar-large-disabled .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-large-disabled-corners.gif')}.x-nbr .x-btn-default-toolbar-large-disabled .x-frame-ml,.x-nbr .x-btn-default-toolbar-large-disabled .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-large-disabled-sides.gif')}.x-nbr .x-btn-default-toolbar-large-disabled .x-frame-mc{background-color:transparent}.x-nlg .x-btn-default-toolbar-large-over{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-large-over-bg.gif')}.x-nlg .x-btn-default-toolbar-large-focus{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-large-focus-bg.gif')}.x-nlg .x-btn-default-toolbar-large-menu-active,.x-nlg .x-btn-default-toolbar-large-pressed{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-large-pressed-bg.gif')}.x-btn-default-toolbar-small-disabled,.x-btn-default-toolbar-medium-disabled,.x-btn-default-toolbar-large-disabled{border-color:transparent;background-image:none;background:transparent}.x-btn-group{position:relative;overflow:hidden}.x-btn-group-body{position:relative;zoom:1;padding:0 1px}.x-btn-group-body .x-table-layout-cell{vertical-align:top}.x-btn-group-header-text{white-space:nowrap}.x-btn-group-default-framed{-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px;padding:1px 1px 1px 1px;border-width:1px;border-style:solid;background-color:#f3f3f3}.x-nlg .x-btn-group-default-framed-mc{background-color:#f3f3f3}.x-nbr .x-btn-group-default-framed{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1000202px 1000202px}.x-nbr .x-btn-group-default-framed-tl,.x-nbr .x-btn-group-default-framed-bl,.x-nbr .x-btn-group-default-framed-tr,.x-nbr .x-btn-group-default-framed-br,.x-nbr .x-btn-group-default-framed-tc,.x-nbr .x-btn-group-default-framed-bc,.x-nbr .x-btn-group-default-framed-ml,.x-nbr .x-btn-group-default-framed-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/btn-group/btn-group-default-framed-corners.gif')}.x-nbr .x-btn-group-default-framed-ml,.x-nbr .x-btn-group-default-framed-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/btn-group/btn-group-default-framed-sides.gif');background-position:0 0;background-repeat:repeat-y}.x-nbr .x-btn-group-default-framed-mc{padding:0}.x-strict .x-ie7 .x-btn-group-default-framed-tl,.x-strict .x-ie7 .x-btn-group-default-framed-bl{position:relative;right:0}.x-btn-group-default-framed{border-color:#dadada;-webkit-box-shadow:white 0 1px 0 0 inset,white 0 -1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset;-moz-box-shadow:white 0 1px 0 0 inset,white 0 -1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset;box-shadow:white 0 1px 0 0 inset,white 0 -1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset}.x-btn-group-header-default-framed{margin:2px 2px 0 2px}.x-btn-group-header-body-default-framed{padding:1px 0;background:#edebeb;-moz-border-radius-topleft:2px;-webkit-border-top-left-radius:2px;border-top-left-radius:2px;-moz-border-radius-topright:2px;-webkit-border-top-right-radius:2px;border-top-right-radius:2px}.x-btn-group-header-text-default-framed{font:normal 11px Helvetica Neue,Arial,sans-serif;color:#878787}.x-datepicker{border:1px solid #5a5352;background-color:white;position:relative}.x-datepicker a{-moz-outline:0 none;outline:0 none;color:#745351;text-decoration:none;border-width:0}.x-datepicker-inner,.x-datepicker-inner td,.x-datepicker-inner th{border-collapse:separate}.x-datepicker-header{position:relative;height:26px;background-image:none;background-color:#626262;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#6a6969),color-stop(100%,#585857));background-image:-webkit-linear-gradient(top,#6a6969,#585857);background-image:-moz-linear-gradient(top,#6a6969,#585857);background-image:-o-linear-gradient(top,#6a6969,#585857);background-image:linear-gradient(top,#6a6969,#585857)}.x-datepicker-prev,.x-datepicker-next{position:absolute;top:5px;width:18px}.x-datepicker-prev a,.x-datepicker-next a{display:block;width:16px;height:16px;background-position:top;background-repeat:no-repeat;cursor:pointer;text-decoration:none!important;filter:alpha(opacity=70);opacity:.7}.x-datepicker-prev a:hover,.x-datepicker-next a:hover{filter:alpha(opacity=100);opacity:1}.x-datepicker-next{right:5px}.x-datepicker-next a{background-image:url('../../extjs/resources/themes/images/default/shared/right-btn.gif')}.x-datepicker-prev{left:5px}.x-datepicker-prev a{background-image:url('../../extjs/resources/themes/images/default/shared/left-btn.gif')}.x-item-disabled .x-datepicker-prev a:hover,.x-item-disabled .x-datepicker-next a:hover{filter:alpha(opacity=60);opacity:.6}.x-datepicker-month{padding-top:3px}.x-datepicker-month .x-btn,.x-datepicker-month button,.x-datepicker-month .x-btn-tc,.x-datepicker-month .x-btn-tl,.x-datepicker-month .x-btn-tr,.x-datepicker-month .x-btn-mc,.x-datepicker-month .x-btn-ml,.x-datepicker-month .x-btn-mr,.x-datepicker-month .x-btn-bc,.x-datepicker-month .x-btn-bl,.x-datepicker-month .x-btn-br{background:transparent!important;border-width:0!important}.x-datepicker-month span{color:#fff!important}.x-datepicker-month .x-btn-split-right{background-image:url('../../extjs/resources/themes/images/default/button/s-arrow-light.gif');padding-right:12px}.x-datepicker-next{text-align:right}.x-datepicker-month{text-align:center}.x-datepicker-month button{color:white!important}table.x-datepicker-inner{width:100%;table-layout:fixed}table.x-datepicker-inner th{width:25px;height:19px;padding:0;color:#5b5b5b;font:normal 10px Helvetica Neue,Arial,sans-serif;text-align:right;border-bottom:1px solid #ebe0e0;border-collapse:separate;background-image:none;background-color:white;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fff),color-stop(100%,#f7f3f3));background-image:-webkit-linear-gradient(top,#fff,#f7f3f3);background-image:-moz-linear-gradient(top,#fff,#f7f3f3);background-image:-o-linear-gradient(top,#fff,#f7f3f3);background-image:linear-gradient(top,#fff,#f7f3f3);cursor:default}table.x-datepicker-inner th span{display:block;padding-right:7px}table.x-datepicker-inner tr{height:20px}table.x-datepicker-inner td{border:1px solid;height:17px;border-color:white;text-align:right;padding:0}table.x-datepicker-inner a{padding-right:4px;display:block;zoom:1;font:normal 11px Helvetica Neue,Arial,sans-serif;color:black;text-decoration:none;text-align:right}table.x-datepicker-inner .x-datepicker-active{cursor:pointer;color:black}table.x-datepicker-inner .x-datepicker-selected a{background:repeat-x left top;background-color:#f9f9f9;border:1px solid #cdc8c8}table.x-datepicker-inner .x-datepicker-selected span{font-weight:bold}table.x-datepicker-inner .x-datepicker-today a{border:1px solid;border-color:darkred}table.x-datepicker-inner .x-datepicker-prevday a,table.x-datepicker-inner .x-datepicker-nextday a{text-decoration:none!important;color:#aaa}table.x-datepicker-inner a:hover,table.x-datepicker-inner .x-datepicker-disabled a:hover{text-decoration:none!important;color:#000;background-color:white}table.x-datepicker-inner .x-datepicker-disabled a{cursor:default;background-color:#eee;color:#bbb}.x-datepicker-footer,.x-monthpicker-buttons{position:relative;border-top:1px solid #ebe0e0;background-image:none;background-color:white;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fcfcfc),color-stop(49%,#f3f3f3),color-stop(51%,#ededed),color-stop(100%,#efefef));background-image:-webkit-linear-gradient(top,#fcfcfc,#f3f3f3 49%,#ededed 51%,#efefef);background-image:-moz-linear-gradient(top,#fcfcfc,#f3f3f3 49%,#ededed 51%,#efefef);background-image:-o-linear-gradient(top,#fcfcfc,#f3f3f3 49%,#ededed 51%,#efefef);background-image:linear-gradient(top,#fcfcfc,#f3f3f3 49%,#ededed 51%,#efefef);text-align:center}.x-datepicker-footer .x-btn,.x-monthpicker-buttons .x-btn{position:relative;margin:4px}.x-item-disabled .x-datepicker-inner a:hover{background:0}.x-datepicker .x-monthpicker{position:absolute;left:0;top:0}.x-monthpicker{border:1px solid #5a5352;background-color:white}.x-monthpicker-months,.x-monthpicker-years{float:left;height:167px;width:88px}.x-monthpicker-item{float:left;margin:4px 0 5px 0;font:normal 11px Helvetica Neue,Arial,sans-serif;text-align:center;vertical-align:middle;height:18px;width:43px;border:0 none}.x-monthpicker-item a{display:block;margin:0 5px;text-decoration:none;color:#745351;border:1px solid white;line-height:17px}.x-monthpicker-item a:hover{background-color:white}.x-monthpicker-item a.x-monthpicker-selected{background-color:white;border:1px solid #cdc8c8}.x-monthpicker-months{border-right:1px solid #5a5352;width:87px}.x-monthpicker-years .x-monthpicker-item{width:44px}.x-monthpicker-yearnav{height:28px}.x-monthpicker-yearnav button{background-image:url('../../extjs/resources/themes/images/default/tools/tool-sprites.gif');height:15px;width:15px;padding:0;margin:6px 12px 5px 15px;border:0;outline:0 none}.x-monthpicker-yearnav button::-moz-focus-inner{border:0;padding:0}.x-monthpicker-yearnav-next{background-position:0 -120px}.x-monthpicker-yearnav-next-over{cursor:pointer;cursor:hand;background-position:-15px -120px}.x-monthpicker-yearnav-prev{background-position:0 -105px}.x-monthpicker-yearnav-prev-over{cursor:pointer;cursor:hand;background-position:-15px -105px}.x-monthpicker-small .x-monthpicker-item{margin:2px 0 2px 0}.x-monthpicker-small .x-monthpicker-yearnav{height:23px}.x-monthpicker-small .x-monthpicker-months,.x-monthpicker-small .x-monthpicker-years{height:136px}.x-quirks .x-ie7 .x-monthpicker-buttons .x-btn,.x-quirks .x-ie8 .x-monthpicker-buttons .x-btn{margin-top:2px}.x-quirks .x-monthpicker-small .x-monthpicker-yearnav button{margin-top:3px;margin-bottom:3px}.x-ie6 .x-monthpicker-small .x-monthpicker-yearnav button{margin-top:3px;margin-bottom:3px}.x-nlg .x-datepicker-header{background-image:url('../../extjs/resources/themes/images/default/datepicker/datepicker-header-bg.gif');background-repeat:repeat-x;background-position:top left}.x-nlg .x-datepicker-footer,.x-nlg .x-monthpicker-buttons{background-image:url('../../extjs/resources/themes/images/default/datepicker/datepicker-footer-bg.gif');background-repeat:repeat-x;background-position:top left}.x-color-picker{width:144px;height:90px;cursor:pointer}.x-color-picker a{border:1px solid #fff;float:left;padding:2px;text-decoration:none;-moz-outline:0 none;outline:0 none;cursor:pointer}.x-color-picker a:hover,.x-color-picker a.x-color-picker-selected{border-color:#8bb8f3;background-color:#deecfd}.x-color-picker em{display:block;border:1px solid #aca899}.x-color-picker em span{cursor:pointer;display:block;height:10px;width:10px;line-height:10px}.x-menu-body{user-select:none;-o-user-select:none;-ms-user-select:none;-moz-user-select:-moz-none;-webkit-user-select:none;cursor:default;background:#f0f0f0!important;padding:2px}.x-menu-item .x-form-text{user-select:text;-webkit-user-select:text;-o-user-select:text;-ie-user-select:text;-moz-user-select:text;-ie-user-select:text}.x-menu-icon-separator{position:absolute;top:0;left:27px;z-index:0;border-left:solid 1px #e0e0e0;background-color:white;width:2px;overflow:hidden}.x-menu-plain .x-menu-icon-separator{display:none}.x-menu-focus{display:block;position:absolute;top:-10px;left:-10px;width:0;height:0}.x-menu-item{white-space:nowrap;overflow:hidden;z-index:1}.x-menu-item-cmp{margin-bottom:1px}.x-menu-item-link{display:block;margin:1px;padding:6px 2px 3px 32px;text-decoration:none!important;line-height:16px;cursor:default}.x-opera .x-menu-item-link{position:relative}.x-menu-item-icon{width:16px;height:16px;position:absolute;top:5px;left:4px;background:no-repeat center center}.x-menu-item-icon-right{width:16px;height:16px;position:absolute;top:6px;right:4px;background:no-repeat center center}.x-menu-item-text{font-size:11px;color:#222}.x-menu-item-checked .x-menu-item-icon{background-image:url('../../extjs/resources/themes/images/default/menu/checked.gif')}.x-menu-item-checked .x-menu-group-icon{background-image:url('../../extjs/resources/themes/images/default/menu/group-checked.gif')}.x-menu-item-unchecked .x-menu-item-icon{background-image:url('../../extjs/resources/themes/images/default/menu/unchecked.gif')}.x-menu-item-unchecked .x-menu-group-icon{background-image:none}.x-menu-item-separator{height:2px;border-top:solid 1px #e0e0e0;background-color:white;margin:2px 0;overflow:hidden}.x-menu-item-arrow{position:absolute;width:12px;height:9px;top:9px;right:0;background:no-repeat center center;background-image:url('../../extjs/resources/themes/images/default/menu/menu-parent.gif')}.x-menu-item-indent{margin-left:31px}.x-menu-item-active{cursor:pointer}.x-menu-item-active .x-menu-item-link{background-image:none;background-color:#fdfcfc;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fff),color-stop(100%,#f6efef));background-image:-webkit-linear-gradient(top,#fff,#f6efef);background-image:-moz-linear-gradient(top,#fff,#f6efef);background-image:-o-linear-gradient(top,#fff,#f6efef);background-image:linear-gradient(top,#fff,#f6efef);margin:0;border:1px solid #e8dbdb;cursor:pointer;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px}.x-menu-item-disabled{filter:alpha(opacity=50);opacity:.5}.x-ie .x-menu-item-disabled .x-menu-item-icon{filter:alpha(opacity=50);opacity:.5}.x-ie .x-menu-item-disabled .x-menu-item-text{background-color:transparent}.x-strict .x-ie7m .x-ie .x-menu-icon-separator{width:1px}.x-strict .x-ie7m .x-ie .x-menu-item-separator{height:1px}.x-ie6 .x-menu-item-link,.x-ie7 .x-menu-item-link,.x-quirks .x-ie8 .x-menu-item-link{padding-bottom:2px}.x-nlg .x-menu-item-active .x-menu-item-link{background:#fdfcfc repeat-x left top;background-image:url('../../extjs/resources/themes/images/default/menu/menu-item-active-bg.gif')}.x-menu-date-item{border-color:#99bbe8}.x-panel .x-grid-body{background:white;border-color:#bfbfbf;border-style:solid;border-width:1px;border-top-color:#c5c5c5}.x-panel .x-grid-header-ct-hidden{visibility:hidden}.x-grid-empty{padding:10px;color:gray;font:normal 11px tahoma,arial,helvetica,sans-serif}.x-grid-header-hidden .x-grid-body{border-top-color:#bfbfbf!important}.x-grid-view{overflow:hidden;position:relative}.x-grid-table{table-layout:fixed;border-collapse:separate}.x-autowidth-table table.x-grid-table{table-layout:auto;width:auto!important}.x-grid-row .x-grid-table{border-collapse:collapse}.x-grid-locked .x-grid-inner-locked{border-width:0 1px 0 0!important;border-style:solid}.x-grid-header-ct{cursor:default;zoom:1;padding:0;border:1px solid #bfbfbf;border-bottom-color:#c5c5c5;background-image:none;background-color:#c5c5c5;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#f9f9f9),color-stop(100%,#e3e4e6));background-image:-webkit-linear-gradient(top,#f9f9f9,#e3e4e6);background-image:-moz-linear-gradient(top,#f9f9f9,#e3e4e6);background-image:-o-linear-gradient(top,#f9f9f9,#e3e4e6);background-image:linear-gradient(top,#f9f9f9,#e3e4e6)}.x-accordion-item .x-grid-header-ct{border-width:0 0 1px 0!important}.x-column-header{padding:0;position:absolute;overflow:hidden;border-right:1px solid #c5c5c5;border-left:0 none;border-top:0 none;border-bottom:0 none;text-shadow:0 1px 0 rgba(255,255,255,0.3);font:normal 11px Helvetica Neue,Arial,sans-serif;background-image:none;background-color:#c5c5c5;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#f9f9f9),color-stop(100%,#e3e4e6));background-image:-webkit-linear-gradient(top,#f9f9f9,#e3e4e6);background-image:-moz-linear-gradient(top,#f9f9f9,#e3e4e6);background-image:-o-linear-gradient(top,#f9f9f9,#e3e4e6);background-image:linear-gradient(top,#f9f9f9,#e3e4e6)}.x-group-header{padding:0;border-left-width:0}.x-group-sub-header{background:transparent;border-top:1px solid #c5c5c5;border-left-width:0}.x-column-header-inner{zoom:1;position:relative;white-space:nowrap;line-height:15px;padding:3px 6px 4px}.x-column-header-inner .x-column-header-text{white-space:nowrap}.x-column-header-over,.x-column-header-sort-ASC,.x-column-header-sort-DESC{border-left-color:#eadbdb;border-right-color:#eadbdb;background-image:none;background-color:#eadbdb;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fff),color-stop(39%,#fff),color-stop(40%,#fdfcfc),color-stop(100%,#fdfcfc));background-image:-webkit-linear-gradient(top,#fff,#fff 39%,#fdfcfc 40%,#fdfcfc);background-image:-moz-linear-gradient(top,#fff,#fff 39%,#fdfcfc 40%,#fdfcfc);background-image:-o-linear-gradient(top,#fff,#fff 39%,#fdfcfc 40%,#fdfcfc);background-image:linear-gradient(top,#fff,#fff 39%,#fdfcfc 40%,#fdfcfc)}.x-nlg .x-grid-header-ct,.x-nlg .x-column-header{background:repeat-x 0 top;background-image:url('../../extjs/resources/themes/images/default/grid/column-header-bg.gif')}.x-nlg .x-column-header-over,.x-nlg .x-column-header-sort-ASC,.x-nlg .x-column-header-sort-DESC{background:#ebf3fd repeat-x 0 top;background-image:url('../../extjs/resources/themes/images/default/grid/column-header-over-bg.gif')}.x-column-header-trigger{display:none;height:100%;width:14px;background:no-repeat left center;background-color:#c3daf9;background-image:url('../../extjs/resources/themes/images/default/grid/grid3-hd-btn.gif');position:absolute;right:0;top:0;z-index:2;cursor:pointer}.x-column-header-over .x-column-header-trigger,.x-column-header-open .x-column-header-trigger{display:block}.x-column-header-align-right{text-align:right}.x-column-header-align-right .x-column-header-text{padding-right:.5ex;margin-right:6px}.x-column-header-align-center{text-align:center}.x-column-header-align-left{text-align:left}.x-column-header-sort-ASC .x-column-header-text{padding-right:16px;background:no-repeat right 6px;background-image:url('../../extjs/resources/themes/images/default/grid/sort_asc.gif')}.x-column-header-sort-DESC .x-column-header-text{padding-right:16px;background:no-repeat right 6px;background-image:url('../../extjs/resources/themes/images/default/grid/sort_desc.gif')}.x-grid-row{vertical-align:top}.x-grid-row .x-grid-cell{font:normal 11px/15px Helvetica Neue,Arial,sans-serif;background-color:white;border-color:#ededed;border-style:solid;border-top-color:#fafafa;border-width:0}.x-grid-with-row-lines .x-grid-cell{border-width:1px 0}.x-grid-rowwrap-div{border-width:1px 0;border-color:#ededed;border-style:solid;border-top-color:#fafafa;overflow:hidden}.x-grid-row-alt .x-grid-cell,.x-grid-row-alt .x-grid-rowwrap-div{background-color:#fafafa}.x-grid-row-over .x-grid-cell,.x-grid-row-over .x-grid-rowwrap-div{border-color:#ddd;background-color:#efefef}.x-grid-row-focused .x-grid-cell,.x-grid-row-focused .x-grid-rowwrap-div{border-color:#ddd;background-color:#efefef}.x-grid-row-selected .x-grid-cell,.x-grid-row-selected .x-grid-rowwrap-div{border-style:dotted;border-color:#dbd7d6;background-color:#d9e8fb!important}.x-grid-rowwrap-div .x-grid-cell,.x-grid-rowwrap-div .x-grid-cell-inner{border-width:0;background:transparent}.x-grid-row-body-hidden{display:none}.x-grid-rowbody{font:normal 11px/13px Helvetica Neue,Arial,sans-serif;padding:4px}.x-grid-rowbody p{margin:5px 5px 10px 5px}.x-grid-cell{overflow:hidden}.x-grid-cell-inner{overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis;padding:2px 6px 3px;white-space:nowrap}.x-grid-with-row-lines .x-grid-cell-inner{line-height:13px;padding-bottom:4px}.x-action-col-cell .x-grid-cell-inner{line-height:0;padding:2px}.x-action-col-cell .x-item-disabled{filter:alpha(opacity=30);opacity:.3}.x-grid-with-row-lines .x-action-col-cell .x-grid-cell-inner{padding-top:1px}.x-grid-row .x-grid-cell-special{padding:0;border-right:1px solid #e3e3e3;background-image:none;background-color:#f6f6f6;background-image:-webkit-gradient(linear,0% 50%,100% 50%,color-stop(0%,#f6f6f6),color-stop(100%,#e9e9e9));background-image:-webkit-linear-gradient(left,#f6f6f6,#e9e9e9);background-image:-moz-linear-gradient(left,#f6f6f6,#e9e9e9);background-image:-o-linear-gradient(left,#f6f6f6,#e9e9e9);background-image:linear-gradient(left,#f6f6f6,#e9e9e9)}.x-grid-row .x-grid-cell-row-checker{vertical-align:middle}.x-ie6 .x-grid-header-row,.x-ie7 .x-grid-header-row,.x-quirks .x-ie8 .x-grid-header-row{position:absolute}.x-grid-row-selected .x-grid-cell-special{border-right:1px solid #eadbdb;background-image:none;background-color:#d9e8fb;background-image:-webkit-gradient(linear,0% 50%,100% 50%,color-stop(0%,#d9e8fb),color-stop(100%,#c2daf9));background-image:-webkit-linear-gradient(left,#d9e8fb,#c2daf9);background-image:-moz-linear-gradient(left,#d9e8fb,#c2daf9);background-image:-o-linear-gradient(left,#d9e8fb,#c2daf9);background-image:linear-gradient(left,#d9e8fb,#c2daf9)}.x-grid-dirty-cell{background-image:url('../../extjs/resources/themes/images/default/grid/dirty.gif');background-position:0 0;background-repeat:no-repeat}.x-grid-cell-selected{background-color:#b8cfee!important}.x-nlg .x-grid-cell-special{background-repeat:repeat-y;background-position:top right}.x-nlg .x-grid-row .x-grid-cell-special,.x-nlg .x-grid-row-over .x-grid-cell-special{background-image:url('../../extjs/resources/themes/images/default/grid/cell-special-bg.gif')}.x-nlg .x-grid-row-focused .x-grid-cell-special,.x-nlg .x-grid-row-selected .x-grid-cell-special{background-image:url('../../extjs/resources/themes/images/default/grid/cell-special-selected-bg.gif')}.x-grid-with-col-lines .x-grid-cell{padding-right:0;border-right:1px solid #e3e3e3}.x-property-grid .x-grid-row .x-grid-property-name .x-grid-cell-inner,.x-property-grid .x-grid-row-over .x-grid-property-name .x-grid-cell-inner{padding-left:12px;background-image:url('../../extjs/resources/themes/images/default/grid/property-cell-bg.gif');background-repeat:no-repeat;background-position:-16px 2px}.x-grid-with-row-lines.x-property-grid .x-grid-row .x-grid-property-name .x-grid-cell-inner,.x-grid-with-row-lines.x-property-grid .x-grid-row-over .x-grid-property-name .x-grid-cell-inner{background-position:-16px 1px}.x-quirks .x-ie .x-grid-row .x-grid-property-name .x-grid-cell-inner{background-position:-16px 2px}.x-unselectable{user-select:none;-o-user-select:none;-ms-user-select:none;-moz-user-select:-moz-none;-webkit-user-select:none;cursor:default}.x-grid-row-body-hidden{display:none}.x-grid-group-collapsed{display:none}.x-grid-view .x-grid-td-expander{vertical-align:top}.x-grid-td-expander{background:repeat-y right transparent}.x-grid-view .x-grid-td-expander .x-grid-cell-inner{padding:0!important}.x-grid-row-expander{background-image:url('../../extjs/resources/themes/images/default/grid/group-collapse.gif');background-color:transparent;width:9px;height:13px;margin-left:3px;background-repeat:no-repeat;background-position:0 -2px}.x-grid-row-collapsed .x-grid-row-expander{background-image:url('../../extjs/resources/themes/images/default/grid/group-expand.gif')}.x-grid-resize-marker{position:absolute;z-index:5;top:0;width:1px;background-color:#0f0f0f}.col-move-top,.col-move-bottom{width:9px;height:9px;position:absolute;top:0;line-height:0;font-size:0;overflow:hidden;z-index:20000;background:no-repeat left top transparent}.col-move-top{background-image:url('../../extjs/resources/themes/images/default/grid/col-move-top.gif')}.col-move-bottom{background-image:url('../../extjs/resources/themes/images/default/grid/col-move-bottom.gif')}.x-tbar-page-number{width:30px}.x-grid-group,.x-grid-group-body,.x-grid-group-hd{zoom:1}.x-grid-group-hd{padding-top:6px}.x-grid-group-hd .x-grid-cell-inner{padding:10px 4px 4px 4px;background:white;border-width:0 0 2px 0;border-style:solid;border-color:#d6d0d0;cursor:pointer}.x-grid-group-hd-collapsible .x-grid-group-title{background:transparent no-repeat 0 -1px;background-image:url('../../extjs/resources/themes/images/default/grid/group-collapse.gif');padding:0 0 0 14px}.x-grid-group-title{color:#7e7e7e;font:bold 11px Helvetica Neue,Arial,sans-serif}.x-grid-group-hd-collapsed .x-grid-group-title{background-image:url('../../extjs/resources/themes/images/default/grid/group-expand.gif')}.x-grid-group-collapsed .x-grid-group-body{display:none}.x-grid-group-collapsed .x-grid-group-title{background-image:url('../../extjs/resources/themes/images/default/grid/group-expand.gif')}.x-group-by-icon{background-image:url('../../extjs/resources/themes/images/default/grid/group-by.gif')}.x-show-groups-icon{background-image:url('../../extjs/resources/themes/images/default/grid/group-by.gif')}.x-column-header-checkbox .x-column-header-inner{padding:0}.x-grid-cell-special .x-grid-cell-inner{padding-left:4px;padding-right:4px}.x-grid-row-checker,.x-column-header-checkbox .x-column-header-text{height:14px;width:14px;line-height:0;background-image:url('../../extjs/resources/themes/images/default/grid/unchecked.gif');background-position:-1px -1px;background-repeat:no-repeat;background-color:transparent}.x-column-header-checkbox .x-column-header-text{display:block;margin:0 5px}.x-quirks .x-ie .x-grid-row-checker,.x-quirks .x-ie .x-column-header-checkbox .x-column-header-text,.x-ie7m .x-grid-row-checker,.x-ie7m .x-column-header-checkbox .x-column-header-text{line-height:14px}.x-grid-hd-checker-on .x-column-header-text{background-image:url('../../extjs/resources/themes/images/default/grid/checked.gif')}.x-grid-cell-row-checker .x-grid-cell-inner{padding-top:4px;padding-bottom:2px;line-height:14px}.x-grid-with-row-lines .x-grid-cell-row-checker .x-grid-cell-inner{padding-top:3px}.x-grid-row-checker{margin-left:1px;background-position:50% -2px}.x-grid-row-selected .x-grid-row-checker,.x-grid-row-checked .x-grid-row-checker{background-image:url('../../extjs/resources/themes/images/default/grid/checked.gif')}.x-tbar-page-first{background-image:url('../../extjs/resources/themes/images/default/grid/page-first.gif')!important}.x-tbar-loading{background-image:url('../../extjs/resources/themes/images/default/grid/refresh.gif')!important}.x-tbar-page-last{background-image:url('../../extjs/resources/themes/images/default/grid/page-last.gif')!important}.x-tbar-page-next{background-image:url('../../extjs/resources/themes/images/default/grid/page-next.gif')!important}.x-tbar-page-prev{background-image:url('../../extjs/resources/themes/images/default/grid/page-prev.gif')!important}.x-item-disabled .x-tbar-loading{background-image:url('../../extjs/resources/themes/images/default/grid/refresh-disabled.gif')!important}.x-item-disabled .x-tbar-page-first{background-image:url('../../extjs/resources/themes/images/default/grid/page-first-disabled.gif')!important}.x-item-disabled .x-tbar-page-last{background-image:url('../../extjs/resources/themes/images/default/grid/page-last-disabled.gif')!important}.x-item-disabled .x-tbar-page-next{background-image:url('../../extjs/resources/themes/images/default/grid/page-next-disabled.gif')!important}.x-item-disabled .x-tbar-page-prev{background-image:url('../../extjs/resources/themes/images/default/grid/page-prev-disabled.gif')!important}.x-hmenu-sort-asc .x-menu-item-icon{background-image:url('../../extjs/resources/themes/images/default/grid/hmenu-asc.gif')}.x-hmenu-sort-desc .x-menu-item-icon{background-image:url('../../extjs/resources/themes/images/default/grid/hmenu-desc.gif')}.x-hmenu-lock .x-menu-item-icon{background-image:url('../../extjs/resources/themes/images/default/grid/hmenu-lock.gif')}.x-hmenu-unlock .x-menu-item-icon{background-image:url('../../extjs/resources/themes/images/default/grid/hmenu-unlock.gif')}.x-group-by-icon{background-image:url('../../extjs/resources/themes/images/default/grid/group-by.gif')}.x-cols-icon .x-menu-item-icon{background-image:url('../../extjs/resources/themes/images/default/grid/columns.gif')}.x-show-groups-icon{background-image:url('../../extjs/resources/themes/images/default/grid/group-by.gif')}.x-grid-drop-indicator{position:absolute;height:1px;line-height:0;background-color:#77bc71;overflow:visible}.x-grid-drop-indicator .x-grid-drop-indicator-left{position:absolute;top:-8px;left:-12px;background-image:url('../../extjs/resources/themes/images/default/grid/dd-insert-arrow-right.png');height:16px;width:16px}.x-grid-drop-indicator .x-grid-drop-indicator-right{position:absolute;top:-8px;right:-11px;background-image:url('../../extjs/resources/themes/images/default/grid/dd-insert-arrow-left.png');height:16px;width:16px}.x-ie6 .x-grid-drop-indicator-left{background-image:url('../../extjs/resources/themes/images/default/grid/dd-insert-arrow-right.gif')}.x-ie6 .x-grid-drop-indicator-right{background-image:url('../../extjs/resources/themes/images/default/grid/dd-insert-arrow-left.gif')}.x-grid-editor .x-form-text{padding:0 4px}.x-grid-editor .x-form-cb-wrap{padding-top:3px}.x-grid-row-editor{position:absolute!important;z-index:1;zoom:1;overflow:visible!important}.x-grid-row-editor .x-form-text{padding:0 2px}.x-grid-row-editor .x-form-cb-wrap{padding-top:0}.x-grid-row-editor .x-form-checkbox{margin-left:-4px}.x-grid-row-editor .x-form-display-field{font:normal 11px/15px Helvetica Neue,Arial,sans-serif;padding-top:0;padding-left:2px}.x-grid-row-editor .x-panel-body{background-color:white;border-top:1px solid #bfbfbf!important;border-bottom:1px solid #bfbfbf!important}.x-grid-editor .x-form-cb-wrap,.x-grid-row-editor .x-form-cb-wrap{text-align:center}.x-grid-editor .x-form-trigger,.x-grid-row-editor .x-form-trigger{height:19px}.x-grid-editor .x-form-trigger-wrap .x-form-spinner-up,.x-grid-editor .x-form-trigger-wrap .x-form-spinner-down,.x-grid-row-editor .x-form-trigger-wrap .x-form-spinner-up,.x-grid-row-editor .x-form-trigger-wrap .x-form-spinner-down{background-image:url('../../extjs/resources/themes/images/default/form/spinner-small.gif');height:10px!important}.x-grid-editor .x-form-text,.x-grid-row-editor .x-form-text{font:normal 11px/15px Helvetica Neue,Arial,sans-serif;height:18px}.x-border-box .x-grid-editor .x-form-trigger,.x-border-box .x-grid-row-editor .x-form-trigger{height:20px}.x-border-box .x-grid-editor .x-form-text,.x-border-box .x-grid-row-editor .x-form-text{height:20px;padding-bottom:1px}.x-ie .x-grid-editor .x-form-text{padding-left:5px}.x-ie .x-grid-row-editor .x-form-text{padding-left:3px}.x-ie8m .x-grid-editor .x-form-text,.x-ie8m .x-grid-row-editor .x-form-text{padding-top:1px}.x-strict .x-ie6 .x-grid-editor .x-form-text,.x-strict .x-ie6 .x-grid-row-editor .x-form-text,.x-strict .x-ie7 .x-grid-editor .x-form-text,.x-strict .x-ie7 .x-grid-row-editor .x-form-text{height:17px}.x-quirks .x-ie9 .x-grid-editor .x-form-text,.x-quirks .x-ie9 .x-grid-row-editor .x-form-text{line-height:17px}.x-opera .x-grid-editor .x-form-text{padding-left:5px}.x-opera .x-grid-row-editor .x-form-text{padding-left:3px}.x-grid-row-editor-buttons{background-color:white;position:absolute;bottom:-31px;padding:4px;height:32px}.x-strict .x-ie7m .x-grid-row-editor-buttons{width:192px;height:24px}.x-grid-row-editor-buttons-ml,.x-grid-row-editor-buttons-mr,.x-grid-row-editor-buttons-bl,.x-grid-row-editor-buttons-br,.x-grid-row-editor-buttons-bc{position:absolute;overflow:hidden}.x-grid-row-editor-buttons-bl,.x-grid-row-editor-buttons-br{width:4px;height:4px;bottom:0;background-image:url('../../extjs/resources/themes/images/default/panel/panel-default-framed-corners.gif')}.x-grid-row-editor-buttons-bl{left:0;background-position:0 -16px}.x-grid-row-editor-buttons-br{right:0;background-position:0 -20px}.x-grid-row-editor-buttons-bc{position:absolute;left:4px;bottom:0;width:192px;height:1px;background-color:#bfbfbf}.x-grid-row-editor-buttons-ml,.x-grid-row-editor-buttons-mr{height:27px;width:1px;top:1px;background-color:#bfbfbf}.x-grid-row-editor-buttons-ml{left:0}.x-grid-row-editor-buttons-mr{background-position:0 -20px;right:0}.x-grid-row-editor-errors ul{margin-left:5px}.x-grid-row-editor-errors li{list-style:disc;margin-left:15px}.x-webkit *:focus{outline:none!important}.x-form-item{vertical-align:top;table-layout:fixed}.x-autocontainer-form-item,.x-anchor-form-item,.x-vbox-form-item,.x-checkboxgroup-form-item,.x-table-form-item{margin-bottom:5px}.x-form-layout-table{border-collapse:separate;border-spacing:0 2px}.x-form-item-body{position:relative}.x-form-form-item td{border-top:1px solid transparent}.x-ie6 .x-form-layout-table{border-collapse:collapse;border-spacing:0}.x-ie6 .x-form-form-item td{border-top-width:0}.x-ie6 td.x-form-item-pad{height:5px}.x-editor .x-form-item-body{padding-bottom:0}.x-form-item-label{display:block;padding:3px 0 0;font-size:12px;user-select:none;-o-user-select:none;-ms-user-select:none;-moz-user-select:-moz-none;-webkit-user-select:none;cursor:default}.x-form-item-label-top{display:block;zoom:1;padding:0 0 5px 0}.x-form-item-label-right{text-align:right}.x-form-invalid-under{padding:2px 2px 2px 18px;color:#c0272b;font:normal 11px Helvetica Neue,Arial,sans-serif;line-height:16px;background:no-repeat 0 2px;background-image:url('../../extjs/resources/themes/images/default/form/exclamation.gif')}.x-form-invalid-icon{width:18px;height:14px;background:no-repeat center center;background-image:url('../../extjs/resources/themes/images/default/form/exclamation.gif');overflow:hidden}.x-form-invalid-icon ul{display:block;width:18px}.x-form-invalid-icon ul li{display:none}.x-lbl-top-err-icon{margin-bottom:4px}.x-form-field,.x-form-display-field{margin:0;font:normal 12px Helvetica Neue,Arial,sans-serif;color:black}.x-form-item-hidden{margin:0}.x-form-text,textarea.x-form-field{padding:1px 3px;background:repeat-x 0 0;border:1px solid;background-color:white;background-image:url('../../extjs/resources/themes/images/default/form/text-bg.gif');border-color:#b5b8c8}.x-form-text{height:18px;line-height:15px;vertical-align:top}.x-ie8m .x-form-text{line-height:15px}.x-border-box .x-form-text{height:22px}textarea.x-form-field{color:black;overflow:auto;height:auto;line-height:normal;background:repeat-x 0 0;background-color:white;background-image:url('../../extjs/resources/themes/images/default/form/text-bg.gif');resize:none}.x-border-box textarea.x-form-field{height:auto}.x-safari.x-mac textarea.x-form-field{margin-bottom:-2px}.x-form-focus,textarea.x-form-focus{border-color:#bebebe}.x-form-invalid-field,textarea.x-form-invalid-field{background-color:white;background-image:url('../../extjs/resources/themes/images/default/grid/invalid_line.gif');background-repeat:repeat-x;background-position:bottom;border-color:#c30}.x-form-item{font:normal 12px Helvetica Neue,Arial,sans-serif}.x-form-empty-field,textarea.x-form-empty-field{color:gray}.x-webkit .x-form-empty-field{line-height:15px}.x-form-display-field{padding-top:3px}.x-quirks .x-ie9p .x-form-text,.x-ie7m .x-form-text{margin-top:-1px;margin-bottom:-1px}.x-ie .x-form-file{height:23px;line-height:18px;vertical-align:middle}.x-field-default-toolbar .x-form-text{height:16px}.x-border-box .x-field-default-toolbar .x-form-text{height:20px}.x-field-default-toolbar .x-form-item-label-left{padding-left:4px}.x-fieldset{border:1px solid #b5b8c8;padding:10px;margin-bottom:10px;display:block;position:relative}.x-ie .x-fieldset{padding-top:0}.x-ie .x-fieldset .x-fieldset-body{padding-top:10px}.x-fieldset-header-checkbox{line-height:14px}.x-fieldset-header{font:11px/14px bold Helvetica Neue,Arial,sans-serif;color:#745351;padding:0 3px 1px;overflow:hidden}.x-fieldset-header .x-fieldset-header-text{float:left;padding:1px 0}.x-fieldset-header .x-fieldset-header-text-collapsible{cursor:pointer}.x-fieldset-header .x-form-item,.x-fieldset-header .x-tool{float:left;margin:1px 0 0 0}.x-fieldset-header .x-form-cb-wrap{padding:1px 0;font-size:0;line-height:0}.x-fieldset-with-title .x-fieldset-header-checkbox,.x-fieldset-with-title .x-tool{margin-right:3px}.x-webkit .x-fieldset-header{-webkit-padding-start:3px;-webkit-padding-end:3px}.x-opera .x-fieldset-with-legend{margin-top:-1px}.x-opera.x-mac .x-fieldset-header-text{padding:2px 0 0}.x-strict .x-ie8 .x-fieldset-header{margin-bottom:-1px}.x-strict .x-ie8 .x-fieldset-header .x-tool,.x-strict .x-ie8 .x-fieldset-header .x-fieldset-header-text,.x-strict .x-ie8 .x-fieldset-header .x-fieldset-header-checkbox{position:relative;top:-1px}.x-quirks .x-ie .x-fieldset-header,.x-ie8m .x-fieldset-header{padding-left:1px;padding-right:1px}.x-fieldset-collapsed .x-fieldset-body{display:none}.x-fieldset-collapsed{padding-bottom:0!important;border-width:1px 1px 0 1px!important;border-left-color:transparent!important;border-right-color:transparent!important}.x-ie6 .x-fieldset-collapsed{border-width:1px 0 0 0!important;padding-bottom:0!important;margin-left:1px;margin-right:1px}.x-ie .x-fieldset-bwrap{zoom:1}.x-ie .x-fieldset-noborder legend{position:relative;margin-bottom:23px}.x-ie .x-fieldset-noborder legend span{position:absolute;left:16px}.x-fieldset{overflow:hidden}.x-fieldset-bwrap{overflow:hidden;zoom:1}.x-fieldset-body{overflow:hidden}.x-form-file-wrap .x-form-text{color:#777}.x-form-file-wrap .x-form-file-btn{overflow:hidden}.x-form-file-wrap .x-form-file-input{position:absolute;top:-4px;right:-2px;height:30px;filter:alpha(opacity=0);opacity:0;font-size:100px}.x-form-cb-wrap{padding-top:3px}.x-form-checkbox,.x-form-radio{vertical-align:-1px;width:13px;height:13px;background:no-repeat;background-image:url('../../extjs/resources/themes/images/default/form/checkbox.gif');overflow:hidden;padding:0;border:0}.x-form-checkbox::-moz-focus-inner,.x-form-radio::-moz-focus-inner{padding:0;border:0}.x-nbr.x-ie .x-form-checkbox,.x-nbr.x-ie .x-form-radio{font-size:0}.x-form-cb-checked .x-form-checkbox,.x-form-cb-checked .x-form-radio{background-position:0 -13px}.x-form-cb-focus{background-position:-13px 0}.x-form-cb-checked .x-form-cb-focus{background-position:-13px -13px}.x-form-radio{background-image:url('../../extjs/resources/themes/images/default/form/radio.gif')}.x-form-cb-label-before{margin-right:4px}.x-form-cb-label-after{margin-left:4px}.x-form-checkboxgroup-body{padding:1px 4px 1px 4px}.x-form-invalid .x-form-checkboxgroup-body{border:1px solid #c30!important;background:transparent repeat-x bottom;background-image:url('../../extjs/resources/themes/images/default/grid/invalid_line.gif');padding:1px 3px 0 3px}.x-check-group-alt{background:#f2f2f2;border-top:1px dotted #d1d1d1;border-bottom:1px dotted #d1d1d1}.x-form-check-group-label{color:#333;border-bottom:1px solid #333;margin:0 30px 5px 0;padding:2px}.x-form-trigger-wrap{vertical-align:top}.x-form-trigger{background-image:url('../../extjs/resources/themes/images/default/form/trigger.gif');background-position:0 0;width:17px;height:21px;border-bottom:1px solid #b5b8c8;cursor:pointer;cursor:hand;overflow:hidden}.x-border-box .x-form-trigger{height:22px}.x-field-default-toolbar .x-form-trigger{height:19px}.x-border-box .x-field-default-toolbar .x-form-trigger{height:20px}.x-form-trigger-over{background-position:-17px 0;border-bottom-color:#bebebe}.x-form-trigger-wrap-focus .x-form-trigger{background-position:-51px 0;border-bottom-color:#bebebe}.x-form-trigger-wrap-focus .x-form-trigger-over{background-position:-68px 0}.x-form-trigger-click,.x-form-trigger-wrap-focus .x-form-trigger-click{background-position:-34px 0}.x-form-trigger-icon{height:16px;background-repeat:no-repeat;background-position:7px 6px}.x-pickerfield-open .x-form-field{-moz-border-radius-bottomleft:0;-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-moz-border-radius-bottomright:0;-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0}.x-pickerfield-open-above .x-form-field{-moz-border-radius-bottomleft:3px;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;-moz-border-radius-topright:0;-webkit-border-top-right-radius:0;border-top-right-radius:0}.x-form-arrow-trigger .x-form-trigger-icon{background-image:url('../../extjs/resources/themes/images/default/boundlist/trigger-arrow.png')}.x-form-date-trigger{background-image:url('../../extjs/resources/themes/images/default/form/date-trigger.gif')}.x-form-trigger-wrap .x-form-spinner-up,.x-form-trigger-wrap .x-form-spinner-down{background-image:url('../../extjs/resources/themes/images/default/form/spinner.gif');width:17px!important;height:11px!important;font-size:0;border-bottom:0}.x-form-trigger-wrap .x-form-spinner-down{background-position:0 -11px}.x-form-trigger-wrap-focus .x-form-spinner-down{background-position:-51px -11px}.x-form-trigger-wrap .x-form-spinner-down-over{background-position:-17px -11px}.x-form-trigger-wrap-focus .x-form-spinner-down-over{background-position:-68px -11px}.x-form-trigger-wrap .x-form-spinner-down-click{background-position:-34px -11px}.x-field-default-toolbar .x-form-trigger-wrap .x-form-spinner-up,.x-field-default-toolbar .x-form-trigger-wrap .x-form-spinner-down{background-image:url('../../extjs/resources/themes/images/default/form/spinner-small.gif');height:10px!important}.x-field-default-toolbar .x-form-trigger-wrap .x-form-spinner-down{background-position:0 -10px}.x-field-default-toolbar .x-form-trigger-wrap-focus .x-form-spinner-down{background-position:-51px -10px}.x-field-default-toolbar .x-form-trigger-wrap .x-form-spinner-down-over{background-position:-17px -10px}.x-field-default-toolbar .x-form-trigger-wrap-focus .x-form-spinner-down-over{background-position:-68px -10px}.x-field-default-toolbar .x-form-trigger-wrap .x-form-spinner-down-click{background-position:-34px -10px}.x-trigger-noedit{cursor:pointer;cursor:hand}.x-item-disabled .x-trigger-noedit,.x-item-disabled .x-form-trigger{cursor:auto}.x-form-clear-trigger{background-image:url('../../extjs/resources/themes/images/default/form/clear-trigger.gif')}.x-form-search-trigger{background-image:url('../../extjs/resources/themes/images/default/form/search-trigger.gif')}.x-quirks .prefixie6 .x-form-trigger-input-cell{height:22px}.x-quirks .prefixie6 .x-field-default-toolbar .x-form-trigger-input-cell{height:20px}.x-html-editor-wrap{border:1px solid #b5b8c8}.x-html-editor-wrap .x-toolbar{border-top-width:0;border-left-width:0;border-right-width:0}.x-html-editor-wrap textarea{background-color:white}.x-html-editor-tb .x-btn-text{background:transparent no-repeat;background-image:url('../../extjs/resources/themes/images/default/editor/tb-sprite.gif')}.x-html-editor-tb .x-edit-bold,.x-menu-item img.x-edit-bold{background-position:0 0;background-image:url('../../extjs/resources/themes/images/default/editor/tb-sprite.gif')}.x-html-editor-tb .x-edit-italic,.x-menu-item img.x-edit-italic{background-position:-16px 0;background-image:url('../../extjs/resources/themes/images/default/editor/tb-sprite.gif')}.x-html-editor-tb .x-edit-underline,.x-menu-item img.x-edit-underline{background-position:-32px 0;background-image:url('../../extjs/resources/themes/images/default/editor/tb-sprite.gif')}.x-html-editor-tb .x-edit-forecolor,.x-menu-item img.x-edit-forecolor{background-position:-160px 0;background-image:url('../../extjs/resources/themes/images/default/editor/tb-sprite.gif')}.x-html-editor-tb .x-edit-backcolor,.x-menu-item img.x-edit-backcolor{background-position:-176px 0;background-image:url('../../extjs/resources/themes/images/default/editor/tb-sprite.gif')}.x-html-editor-tb .x-edit-justifyleft,.x-menu-item img.x-edit-justifyleft{background-position:-112px 0;background-image:url('../../extjs/resources/themes/images/default/editor/tb-sprite.gif')}.x-html-editor-tb .x-edit-justifycenter,.x-menu-item img.x-edit-justifycenter{background-position:-128px 0;background-image:url('../../extjs/resources/themes/images/default/editor/tb-sprite.gif')}.x-html-editor-tb .x-edit-justifyright,.x-menu-item img.x-edit-justifyright{background-position:-144px 0;background-image:url('../../extjs/resources/themes/images/default/editor/tb-sprite.gif')}.x-html-editor-tb .x-edit-insertorderedlist,.x-menu-item img.x-edit-insertorderedlist{background-position:-80px 0;background-image:url('../../extjs/resources/themes/images/default/editor/tb-sprite.gif')}.x-html-editor-tb .x-edit-insertunorderedlist,.x-menu-item img.x-edit-insertunorderedlist{background-position:-96px 0;background-image:url('../../extjs/resources/themes/images/default/editor/tb-sprite.gif')}.x-html-editor-tb .x-edit-increasefontsize,.x-menu-item img.x-edit-increasefontsize{background-position:-48px 0;background-image:url('../../extjs/resources/themes/images/default/editor/tb-sprite.gif')}.x-html-editor-tb .x-edit-decreasefontsize,.x-menu-item img.x-edit-decreasefontsize{background-position:-64px 0;background-image:url('../../extjs/resources/themes/images/default/editor/tb-sprite.gif')}.x-html-editor-tb .x-edit-sourceedit,.x-menu-item img.x-edit-sourceedit{background-position:-192px 0;background-image:url('../../extjs/resources/themes/images/default/editor/tb-sprite.gif')}.x-html-editor-tb .x-edit-createlink,.x-menu-item img.x-edit-createlink{background-position:-208px 0;background-image:url('../../extjs/resources/themes/images/default/editor/tb-sprite.gif')}.x-html-editor-tip .x-tip-bd .x-tip-bd-inner{padding:5px;padding-bottom:1px}.x-html-editor-tb .x-toolbar{position:static!important}.x-html-editor-tb .x-font-select{font-size:11px}.x-html-editor-wrap textarea{border:0;padding:3px 2px;overflow:auto}.x-panel,.x-plain{overflow:hidden;position:relative}.x-ie .x-panel-header,.x-ie .x-panel-header-tl,.x-ie .x-panel-header-tc,.x-ie .x-panel-header-tr,.x-ie .x-panel-header-ml,.x-ie .x-panel-header-mc,.x-ie .x-panel-header-mr,.x-ie .x-panel-header-bl,.x-ie .x-panel-header-bc,.x-ie .x-panel-header-br{zoom:1}.x-ie8 td.x-frame-mc{vertical-align:top}.x-panel-header-horizontal{padding:3px 5px 4px}.x-panel-header-vertical{padding:5px 4px}.x-panel-header-icon,.x-window-header-icon{width:16px;height:16px;background-repeat:no-repeat;background-position:0 0;vertical-align:middle;margin-right:4px}.x-vertical .x-panel-header-icon,.x-vertical .x-window-header-icon{margin:0 0 4px}.x-panel-header-draggable,.x-panel-header-draggable .x-panel-header-text,.x-window-header-draggable,.x-window-header-draggable .x-window-header-text{cursor:move}.x-panel-ghost,.x-window-ghost{filter:alpha(opacity=65);opacity:.65;cursor:move}.x-panel-header-horizontal .x-panel-header-body,.x-panel-header-horizontal .x-window-header-body,.x-panel-header-horizontal .x-btn-group-header-body,.x-window-header-horizontal .x-panel-header-body,.x-window-header-horizontal .x-window-header-body,.x-window-header-horizontal .x-btn-group-header-body,.x-btn-group-header-horizontal .x-panel-header-body,.x-btn-group-header-horizontal .x-window-header-body,.x-btn-group-header-horizontal .x-btn-group-header-body{width:100%}.x-panel-header-vertical .x-panel-header-body,.x-panel-header-vertical .x-window-header-body,.x-panel-header-vertical .x-btn-group-header-body,.x-window-header-vertical .x-panel-header-body,.x-window-header-vertical .x-window-header-body,.x-window-header-vertical .x-btn-group-header-body,.x-btn-group-header-vertical .x-panel-header-body,.x-btn-group-header-vertical .x-window-header-body,.x-btn-group-header-vertical .x-btn-group-header-body{height:100%}.x-panel-header-text-container{overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.x-panel-header-text{user-select:none;-o-user-select:none;-ms-user-select:none;-moz-user-select:-moz-none;-webkit-user-select:none;cursor:default;white-space:nowrap}.x-panel-header-left .x-vml-base,.x-panel-header-right .x-vml-base{left:-3px!important}.x-panel-body{overflow:hidden;position:relative;font-size:13px}.x-panel-header-vertical .x-surface{padding-left:1px}.x-opera .x-panel-header-vertical .x-surface,.x-strict .x-ie9 .x-panel-header-vertical .x-surface{padding-left:2px}.x-panel-collapsed .x-panel-header-collapsed-border-top{border-bottom-width:1px!important}.x-panel-collapsed .x-panel-header-collapsed-border-right{border-left-width:1px!important}.x-panel-collapsed .x-panel-header-collapsed-border-bottom{border-top-width:1px!important}.x-panel-collapsed .x-panel-header-collapsed-border-left{border-right-width:1px!important}.x-nlg .x-panel-header-vertical .x-frame-mc{background-repeat:repeat-y}.x-panel-default{border-color:#bfbfbf}.x-panel-header-default{font-size:11px;border-color:#bfbfbf;border-width:1px;border-style:solid;background-image:none;background-color:#f2f1f1;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fbfafa),color-stop(45%,#f3f2f2),color-stop(46%,#e0dcdc),color-stop(50%,#e0dcdc),color-stop(51%,#e7e4e4),color-stop(100%,#f2f1f1));background-image:-webkit-linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-moz-linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-o-linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);-webkit-box-shadow:white 0 1px 0 0 inset;-moz-box-shadow:white 0 1px 0 0 inset;box-shadow:white 0 1px 0 0 inset}.x-nlg .x-panel-header-default-top{background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-top-bg.gif')}.x-nlg .x-panel-header-default-bottom{background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-bottom-bg.gif')}.x-nlg .x-panel-header-default-left{background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-left-bg.gif')}.x-nlg .x-panel-header-default-right{background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-right-bg.gif')}.x-nlg .x-panel-header-default-right{background-position:top right}.x-nlg .x-panel-header-default-bottom{background-position:bottom left}.x-panel-header-text-default{color:#7e3737;font-size:11px;font-weight:bold;font-family:Helvetica Neue,Arial,sans-serif;line-height:17px}.x-panel-body-default{background:white;border-color:#bfbfbf;color:black;border-width:1px;border-style:solid}.x-panel-collapsed .x-window-header-default,.x-panel-collapsed .x-panel-header-default{border-color:#bfbfbf}.x-panel-header-default-vertical{border-color:#bfbfbf}.x-panel-header-default-left,.x-panel-header-default-right{background-image:none;background-color:#f2f1f1;background-image:-webkit-gradient(linear,100% 50%,0% 50%,color-stop(0%,#fbfafa),color-stop(45%,#f3f2f2),color-stop(46%,#e0dcdc),color-stop(50%,#e0dcdc),color-stop(51%,#e7e4e4),color-stop(100%,#f2f1f1));background-image:-webkit-linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-moz-linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-o-linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1)}.x-panel-header-default-top{-webkit-box-shadow:white 0 1px 0 0 inset;-moz-box-shadow:white 0 1px 0 0 inset;box-shadow:white 0 1px 0 0 inset}.x-panel-header-default-right{-webkit-box-shadow:white -1px 0 0 0 inset;-moz-box-shadow:white -1px 0 0 0 inset;box-shadow:white -1px 0 0 0 inset}.x-panel-header-default-bottom{-webkit-box-shadow:white 0 -1px 0 0 inset;-moz-box-shadow:white 0 -1px 0 0 inset;box-shadow:white 0 -1px 0 0 inset}.x-panel-header-default-left{-webkit-box-shadow:white 1px 0 0 0 inset;-moz-box-shadow:white 1px 0 0 0 inset;box-shadow:white 1px 0 0 0 inset}.x-panel-header-default-right-tc,.x-panel-header-default-right-mc,.x-panel-header-default-right-bc{background-position:right 0}.x-panel-header-default-bottom-tc,.x-panel-header-default-bottom-mc,.x-panel-header-default-bottom-bc{background-position:0 bottom}.x-panel-default-framed{border-color:#bfbfbf}.x-panel-header-default-framed{font-size:11px;border-color:#bfbfbf;border-width:1px;border-style:solid;background-image:none;background-color:#f2f1f1;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fbfafa),color-stop(45%,#f3f2f2),color-stop(46%,#e0dcdc),color-stop(50%,#e0dcdc),color-stop(51%,#e7e4e4),color-stop(100%,#f2f1f1));background-image:-webkit-linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-moz-linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-o-linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);-webkit-box-shadow:white 0 1px 0 0 inset;-moz-box-shadow:white 0 1px 0 0 inset;box-shadow:white 0 1px 0 0 inset}.x-nlg .x-panel-header-default-framed-top{background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-top-bg.gif')}.x-nlg .x-panel-header-default-framed-bottom{background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-bottom-bg.gif')}.x-nlg .x-panel-header-default-framed-left{background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-left-bg.gif')}.x-nlg .x-panel-header-default-framed-right{background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-right-bg.gif')}.x-nlg .x-panel-header-default-framed-right{background-position:top right}.x-nlg .x-panel-header-default-framed-bottom{background-position:bottom left}.x-nbr .x-panel-header-default-framed{background-image:none}.x-strict .x-ie9 .x-panel-header-default-framed-top,.x-nlg.x-opera .x-panel-header-default-framed-top,.x-nlg.x-safari .x-panel-header-default-framed-top{background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-top-bg.gif')}.x-strict .x-ie9 .x-panel-header-default-framed-bottom,.x-nlg.x-opera .x-panel-header-default-framed-bottom,.x-nlg.x-safari .x-panel-header-default-framed-bottom{background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-bottom-bg.gif')}.x-strict .x-ie9 .x-panel-header-default-framed-left,.x-nlg.x-opera .x-panel-header-default-framed-left,.x-nlg.x-safari .x-panel-header-default-framed-left{background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-left-bg.gif')}.x-strict .x-ie9 .x-panel-header-default-framed-right,.x-nlg.x-opera .x-panel-header-default-framed-right,.x-nlg.x-safari .x-panel-header-default-framed-right{background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-right-bg.gif')}.x-panel-header-text-default-framed{color:#7e3737;font-size:11px;font-weight:bold;font-family:Helvetica Neue,Arial,sans-serif;line-height:17px}.x-panel-body-default-framed{background:#fdfdfd;border-color:#bfbfbf;color:black;border-width:0;border-style:solid}.x-panel-collapsed .x-window-header-default-framed,.x-panel-collapsed .x-panel-header-default-framed{border-color:#bfbfbf}.x-panel-header-default-framed-vertical{border-color:#bfbfbf}.x-panel-header-default-framed-left,.x-panel-header-default-framed-right{background-image:none;background-color:#f2f1f1;background-image:-webkit-gradient(linear,100% 50%,0% 50%,color-stop(0%,#fbfafa),color-stop(45%,#f3f2f2),color-stop(46%,#e0dcdc),color-stop(50%,#e0dcdc),color-stop(51%,#e7e4e4),color-stop(100%,#f2f1f1));background-image:-webkit-linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-moz-linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-o-linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1)}.x-panel-default-framed{-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px;padding:4px 4px 4px 4px;border-width:1px;border-style:solid;background-color:#fdfdfd}.x-nlg .x-panel-default-framed-mc{background-color:#fdfdfd}.x-nbr .x-panel-default-framed{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1000404px 1000404px}.x-nbr .x-panel-default-framed-tl,.x-nbr .x-panel-default-framed-bl,.x-nbr .x-panel-default-framed-tr,.x-nbr .x-panel-default-framed-br,.x-nbr .x-panel-default-framed-tc,.x-nbr .x-panel-default-framed-bc,.x-nbr .x-panel-default-framed-ml,.x-nbr .x-panel-default-framed-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/panel/panel-default-framed-corners.gif')}.x-nbr .x-panel-default-framed-ml,.x-nbr .x-panel-default-framed-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/panel/panel-default-framed-sides.gif');background-position:0 0;background-repeat:repeat-y}.x-nbr .x-panel-default-framed-mc{padding:1px 1px 1px 1px}.x-strict .x-ie7 .x-panel-default-framed-tl,.x-strict .x-ie7 .x-panel-default-framed-bl{position:relative;right:0}.x-panel-header-default-framed-top{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-bottomright:0;-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-moz-border-radius-bottomleft:0;-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;padding:3px 5px 4px 5px;border-width:1px 1px 0 1px;border-style:solid;background-image:none;background-color:#f2f1f1;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fbfafa),color-stop(45%,#f3f2f2),color-stop(46%,#e0dcdc),color-stop(50%,#e0dcdc),color-stop(51%,#e7e4e4),color-stop(100%,#f2f1f1));background-image:-webkit-linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-moz-linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-o-linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1)}.x-nlg .x-panel-header-default-framed-top-mc{background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-top-bg.gif');background-color:#f2f1f1}.x-nbr .x-panel-header-default-framed-top{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1000404px 1000000px}.x-nbr .x-panel-header-default-framed-top-tl,.x-nbr .x-panel-header-default-framed-top-bl,.x-nbr .x-panel-header-default-framed-top-tr,.x-nbr .x-panel-header-default-framed-top-br,.x-nbr .x-panel-header-default-framed-top-tc,.x-nbr .x-panel-header-default-framed-top-bc,.x-nbr .x-panel-header-default-framed-top-ml,.x-nbr .x-panel-header-default-framed-top-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-top-corners.gif')}.x-nbr .x-panel-header-default-framed-top-ml,.x-nbr .x-panel-header-default-framed-top-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-top-sides.gif');background-position:0 0}.x-nbr .x-panel-header-default-framed-top-mc{padding:0 2px 4px 2px}.x-strict .x-ie7 .x-panel-header-default-framed-top-tl,.x-strict .x-ie7 .x-panel-header-default-framed-top-bl{position:relative;right:0}.x-panel-header-default-framed-right{-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomleft:0;-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;padding:5px 4px 5px 4px;border-width:1px 1px 1px 0;border-style:solid;background-image:none;background-color:#f2f1f1;background-image:-webkit-gradient(linear,100% 50%,0% 50%,color-stop(0%,#fbfafa),color-stop(45%,#f3f2f2),color-stop(46%,#e0dcdc),color-stop(50%,#e0dcdc),color-stop(51%,#e7e4e4),color-stop(100%,#f2f1f1));background-image:-webkit-linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-moz-linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-o-linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1)}.x-nlg .x-panel-header-default-framed-right-mc{background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-right-bg.gif');background-color:#f2f1f1}.x-nbr .x-panel-header-default-framed-right{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1000004px 1100400px}.x-nbr .x-panel-header-default-framed-right-tl,.x-nbr .x-panel-header-default-framed-right-bl,.x-nbr .x-panel-header-default-framed-right-tr,.x-nbr .x-panel-header-default-framed-right-br,.x-nbr .x-panel-header-default-framed-right-tc,.x-nbr .x-panel-header-default-framed-right-bc,.x-nbr .x-panel-header-default-framed-right-ml,.x-nbr .x-panel-header-default-framed-right-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-right-corners.gif')}.x-nbr .x-panel-header-default-framed-right-tc,.x-nbr .x-panel-header-default-framed-right-bc{zoom:1;background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-right-sides.gif');background-position:0 0;background-repeat:repeat-x}.x-nbr .x-panel-header-default-framed-right-mc{padding:2px 1px 2px 4px}.x-strict .x-ie7 .x-panel-header-default-framed-right-tl,.x-strict .x-ie7 .x-panel-header-default-framed-right-bl{position:relative;right:0}.x-panel-header-default-framed-bottom{-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;-moz-border-radius-topright:0;-webkit-border-top-right-radius:0;border-top-right-radius:0;-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;padding:3px 5px 4px 5px;border-width:0 1px 1px 1px;border-style:solid;background-image:none;background-color:#f2f1f1;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fbfafa),color-stop(45%,#f3f2f2),color-stop(46%,#e0dcdc),color-stop(50%,#e0dcdc),color-stop(51%,#e7e4e4),color-stop(100%,#f2f1f1));background-image:-webkit-linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-moz-linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-o-linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1)}.x-nlg .x-panel-header-default-framed-bottom-mc{background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-bottom-bg.gif');background-color:#f2f1f1}.x-nbr .x-panel-header-default-framed-bottom{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1000000px 1000404px}.x-nbr .x-panel-header-default-framed-bottom-tl,.x-nbr .x-panel-header-default-framed-bottom-bl,.x-nbr .x-panel-header-default-framed-bottom-tr,.x-nbr .x-panel-header-default-framed-bottom-br,.x-nbr .x-panel-header-default-framed-bottom-tc,.x-nbr .x-panel-header-default-framed-bottom-bc,.x-nbr .x-panel-header-default-framed-bottom-ml,.x-nbr .x-panel-header-default-framed-bottom-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-bottom-corners.gif')}.x-nbr .x-panel-header-default-framed-bottom-ml,.x-nbr .x-panel-header-default-framed-bottom-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-bottom-sides.gif');background-position:0 0}.x-nbr .x-panel-header-default-framed-bottom-mc{padding:3px 2px 1px 2px}.x-strict .x-ie7 .x-panel-header-default-framed-bottom-tl,.x-strict .x-ie7 .x-panel-header-default-framed-bottom-bl{position:relative;right:0}.x-panel-header-default-framed-left{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:0;-webkit-border-top-right-radius:0;border-top-right-radius:0;-moz-border-radius-bottomright:0;-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;padding:5px 4px 5px 4px;border-width:1px 0 1px 1px;border-style:solid;background-image:none;background-color:#f2f1f1;background-image:-webkit-gradient(linear,100% 50%,0% 50%,color-stop(0%,#fbfafa),color-stop(45%,#f3f2f2),color-stop(46%,#e0dcdc),color-stop(50%,#e0dcdc),color-stop(51%,#e7e4e4),color-stop(100%,#f2f1f1));background-image:-webkit-linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-moz-linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-o-linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1)}.x-nlg .x-panel-header-default-framed-left-mc{background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-left-bg.gif');background-color:#f2f1f1}.x-nbr .x-panel-header-default-framed-left{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1000400px 1100004px}.x-nbr .x-panel-header-default-framed-left-tl,.x-nbr .x-panel-header-default-framed-left-bl,.x-nbr .x-panel-header-default-framed-left-tr,.x-nbr .x-panel-header-default-framed-left-br,.x-nbr .x-panel-header-default-framed-left-tc,.x-nbr .x-panel-header-default-framed-left-bc,.x-nbr .x-panel-header-default-framed-left-ml,.x-nbr .x-panel-header-default-framed-left-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-left-corners.gif')}.x-nbr .x-panel-header-default-framed-left-tc,.x-nbr .x-panel-header-default-framed-left-bc{zoom:1;background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-left-sides.gif');background-position:0 0;background-repeat:repeat-x}.x-nbr .x-panel-header-default-framed-left-mc{padding:2px 4px 2px 1px}.x-strict .x-ie7 .x-panel-header-default-framed-left-tl,.x-strict .x-ie7 .x-panel-header-default-framed-left-bl{position:relative;right:0}.x-panel-header-default-framed-top{-webkit-box-shadow:white 0 1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset;-moz-box-shadow:white 0 1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset;box-shadow:white 0 1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset}.x-panel-header-default-framed-right{-webkit-box-shadow:white 0 1px 0 0 inset,white 0 -1px 0 0 inset,white -1px 0 0 0 inset;-moz-box-shadow:white 0 1px 0 0 inset,white 0 -1px 0 0 inset,white -1px 0 0 0 inset;box-shadow:white 0 1px 0 0 inset,white 0 -1px 0 0 inset,white -1px 0 0 0 inset}.x-panel-header-default-framed-bottom{-webkit-box-shadow:white 0 -1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset;-moz-box-shadow:white 0 -1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset;box-shadow:white 0 -1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset}.x-panel-header-default-framed-left{-webkit-box-shadow:white 0 1px 0 0 inset,white 0 -1px 0 0 inset,white 1px 0 0 0 inset;-moz-box-shadow:white 0 1px 0 0 inset,white 0 -1px 0 0 inset,white 1px 0 0 0 inset;box-shadow:white 0 1px 0 0 inset,white 0 -1px 0 0 inset,white 1px 0 0 0 inset}.x-panel .x-panel-header-default-framed-top{border-bottom-width:1px!important}.x-panel .x-panel-header-default-framed-right{border-left-width:1px!important}.x-panel .x-panel-header-default-framed-bottom{border-top-width:1px!important}.x-panel .x-panel-header-default-framed-left{border-right-width:1px!important}.x-panel-header-default-framed-collapsed{-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.x-panel-header-default-framed-collapsed-top{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;padding:3px 5px 4px 5px;border-width:1px;border-style:solid;background-image:none;background-color:#f2f1f1;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fbfafa),color-stop(45%,#f3f2f2),color-stop(46%,#e0dcdc),color-stop(50%,#e0dcdc),color-stop(51%,#e7e4e4),color-stop(100%,#f2f1f1));background-image:-webkit-linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-moz-linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-o-linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1)}.x-nlg .x-panel-header-default-framed-collapsed-top-mc{background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-top-bg.gif');background-color:#f2f1f1}.x-nbr .x-panel-header-default-framed-collapsed-top{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1000404px 1000404px}.x-nbr .x-panel-header-default-framed-collapsed-top-tl,.x-nbr .x-panel-header-default-framed-collapsed-top-bl,.x-nbr .x-panel-header-default-framed-collapsed-top-tr,.x-nbr .x-panel-header-default-framed-collapsed-top-br,.x-nbr .x-panel-header-default-framed-collapsed-top-tc,.x-nbr .x-panel-header-default-framed-collapsed-top-bc,.x-nbr .x-panel-header-default-framed-collapsed-top-ml,.x-nbr .x-panel-header-default-framed-collapsed-top-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-top-corners.gif')}.x-nbr .x-panel-header-default-framed-collapsed-top-ml,.x-nbr .x-panel-header-default-framed-collapsed-top-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-top-sides.gif');background-position:0 0}.x-nbr .x-panel-header-default-framed-collapsed-top-mc{padding:0 2px 1px 2px}.x-strict .x-ie7 .x-panel-header-default-framed-collapsed-top-tl,.x-strict .x-ie7 .x-panel-header-default-framed-collapsed-top-bl{position:relative;right:0}.x-panel-header-default-framed-collapsed-right{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;padding:5px 4px 5px 4px;border-width:1px;border-style:solid;background-image:none;background-color:#f2f1f1;background-image:-webkit-gradient(linear,100% 50%,0% 50%,color-stop(0%,#fbfafa),color-stop(45%,#f3f2f2),color-stop(46%,#e0dcdc),color-stop(50%,#e0dcdc),color-stop(51%,#e7e4e4),color-stop(100%,#f2f1f1));background-image:-webkit-linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-moz-linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-o-linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1)}.x-nlg .x-panel-header-default-framed-collapsed-right-mc{background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-right-bg.gif');background-color:#f2f1f1}.x-nbr .x-panel-header-default-framed-collapsed-right{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1000404px 1100404px}.x-nbr .x-panel-header-default-framed-collapsed-right-tl,.x-nbr .x-panel-header-default-framed-collapsed-right-bl,.x-nbr .x-panel-header-default-framed-collapsed-right-tr,.x-nbr .x-panel-header-default-framed-collapsed-right-br,.x-nbr .x-panel-header-default-framed-collapsed-right-tc,.x-nbr .x-panel-header-default-framed-collapsed-right-bc,.x-nbr .x-panel-header-default-framed-collapsed-right-ml,.x-nbr .x-panel-header-default-framed-collapsed-right-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-right-corners.gif')}.x-nbr .x-panel-header-default-framed-collapsed-right-tc,.x-nbr .x-panel-header-default-framed-collapsed-right-bc{zoom:1;background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-right-sides.gif');background-position:0 0;background-repeat:repeat-x}.x-nbr .x-panel-header-default-framed-collapsed-right-mc{padding:2px 1px 2px 1px}.x-strict .x-ie7 .x-panel-header-default-framed-collapsed-right-tl,.x-strict .x-ie7 .x-panel-header-default-framed-collapsed-right-bl{position:relative;right:0}.x-panel-header-default-framed-collapsed-bottom{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;padding:3px 5px 4px 5px;border-width:1px;border-style:solid;background-image:none;background-color:#f2f1f1;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fbfafa),color-stop(45%,#f3f2f2),color-stop(46%,#e0dcdc),color-stop(50%,#e0dcdc),color-stop(51%,#e7e4e4),color-stop(100%,#f2f1f1));background-image:-webkit-linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-moz-linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-o-linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1)}.x-nlg .x-panel-header-default-framed-collapsed-bottom-mc{background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-bottom-bg.gif');background-color:#f2f1f1}.x-nbr .x-panel-header-default-framed-collapsed-bottom{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1000404px 1000404px}.x-nbr .x-panel-header-default-framed-collapsed-bottom-tl,.x-nbr .x-panel-header-default-framed-collapsed-bottom-bl,.x-nbr .x-panel-header-default-framed-collapsed-bottom-tr,.x-nbr .x-panel-header-default-framed-collapsed-bottom-br,.x-nbr .x-panel-header-default-framed-collapsed-bottom-tc,.x-nbr .x-panel-header-default-framed-collapsed-bottom-bc,.x-nbr .x-panel-header-default-framed-collapsed-bottom-ml,.x-nbr .x-panel-header-default-framed-collapsed-bottom-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-bottom-corners.gif')}.x-nbr .x-panel-header-default-framed-collapsed-bottom-ml,.x-nbr .x-panel-header-default-framed-collapsed-bottom-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-bottom-sides.gif');background-position:0 0}.x-nbr .x-panel-header-default-framed-collapsed-bottom-mc{padding:0 2px 1px 2px}.x-strict .x-ie7 .x-panel-header-default-framed-collapsed-bottom-tl,.x-strict .x-ie7 .x-panel-header-default-framed-collapsed-bottom-bl{position:relative;right:0}.x-panel-header-default-framed-collapsed-left{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;padding:5px 4px 5px 4px;border-width:1px;border-style:solid;background-image:none;background-color:#f2f1f1;background-image:-webkit-gradient(linear,100% 50%,0% 50%,color-stop(0%,#fbfafa),color-stop(45%,#f3f2f2),color-stop(46%,#e0dcdc),color-stop(50%,#e0dcdc),color-stop(51%,#e7e4e4),color-stop(100%,#f2f1f1));background-image:-webkit-linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-moz-linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-o-linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1)}.x-nlg .x-panel-header-default-framed-collapsed-left-mc{background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-left-bg.gif');background-color:#f2f1f1}.x-nbr .x-panel-header-default-framed-collapsed-left{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1000404px 1100404px}.x-nbr .x-panel-header-default-framed-collapsed-left-tl,.x-nbr .x-panel-header-default-framed-collapsed-left-bl,.x-nbr .x-panel-header-default-framed-collapsed-left-tr,.x-nbr .x-panel-header-default-framed-collapsed-left-br,.x-nbr .x-panel-header-default-framed-collapsed-left-tc,.x-nbr .x-panel-header-default-framed-collapsed-left-bc,.x-nbr .x-panel-header-default-framed-collapsed-left-ml,.x-nbr .x-panel-header-default-framed-collapsed-left-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-left-corners.gif')}.x-nbr .x-panel-header-default-framed-collapsed-left-tc,.x-nbr .x-panel-header-default-framed-collapsed-left-bc{zoom:1;background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-left-sides.gif');background-position:0 0;background-repeat:repeat-x}.x-nbr .x-panel-header-default-framed-collapsed-left-mc{padding:2px 1px 2px 1px}.x-strict .x-ie7 .x-panel-header-default-framed-collapsed-left-tl,.x-strict .x-ie7 .x-panel-header-default-framed-collapsed-left-bl{position:relative;right:0}.x-panel-header-default-framed-right-tc,.x-panel-header-default-framed-right-mc,.x-panel-header-default-framed-right-bc{background-position:right 0}.x-panel-header-default-framed-bottom-tc,.x-panel-header-default-framed-bottom-mc,.x-panel-header-default-framed-bottom-bc{background-position:0 bottom}.x-panel-header-plain,.x-panel-body-plain{border:0;padding:0}.x-tip{position:absolute;overflow:visible;border-color:#b9b9b9}.x-tip .x-tip-header .x-box-item{padding:3px 3px 0}.x-tip .x-tip-header .x-tool{padding:0 1px 0 0!important}.x-tip{-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;padding:2px 2px 2px 2px;border-width:1px;border-style:solid;background-color:white}.x-nlg .x-tip-mc{background-color:white}.x-nbr .x-tip{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1100303px 1000303px}.x-nbr .x-tip-tl,.x-nbr .x-tip-bl,.x-nbr .x-tip-tr,.x-nbr .x-tip-br,.x-nbr .x-tip-tc,.x-nbr .x-tip-bc,.x-nbr .x-tip-ml,.x-nbr .x-tip-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/tip/tip-corners.gif')}.x-nbr .x-tip-ml,.x-nbr .x-tip-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/tip/tip-sides.gif');background-position:0 0;background-repeat:repeat-y}.x-nbr .x-tip-mc{padding:0}.x-strict .x-ie7 .x-tip-tl,.x-strict .x-ie7 .x-tip-bl{position:relative;right:0}.x-tip-header-text{user-select:none;-o-user-select:none;-ms-user-select:none;-moz-user-select:-moz-none;-webkit-user-select:none;cursor:default;color:#444;font-size:11px;font-weight:bold}.x-tip-header-draggable .x-tip-header-text{cursor:move}.x-tip-body,.x-form-invalid-tip-body{overflow:hidden;position:relative;padding:3px}.x-tip-header,.x-tip-body,.x-form-invalid-tip-body{color:#444;font-size:11px;font-weight:normal}.x-tip-header a,.x-tip-body a,.x-form-invalid-tip-body a{color:#2a2a2a}.x-tip-anchor{position:absolute;overflow:hidden;height:0;width:0;border-style:solid;border-width:5px;border-color:#b9b9b9;zoom:1}.x-border-box .x-tip-anchor{width:10px;height:10px}.x-tip-anchor-top{border-top-color:transparent;border-left-color:transparent;border-right-color:transparent;_border-top-color:pink;_border-left-color:pink;_border-right-color:pink;_filter:chroma(color=pink)}.x-tip-anchor-bottom{border-bottom-color:transparent;border-left-color:transparent;border-right-color:transparent;_border-bottom-color:pink;_border-left-color:pink;_border-right-color:pink;_filter:chroma(color=pink)}.x-tip-anchor-left{border-top-color:transparent;border-bottom-color:transparent;border-left-color:transparent;_border-top-color:pink;_border-bottom-color:pink;_border-left-color:pink;_filter:chroma(color=pink)}.x-tip-anchor-right{border-top-color:transparent;border-bottom-color:transparent;border-right-color:transparent;_border-top-color:pink;_border-bottom-color:pink;_border-right-color:pink;_filter:chroma(color=pink)}.x-form-invalid-tip{border-color:#a1311f;-webkit-box-shadow:#d87166 0 1px 0 0 inset,#d87166 0 -1px 0 0 inset,#d87166 -1px 0 0 0 inset,#d87166 1px 0 0 0 inset;-moz-box-shadow:#d87166 0 1px 0 0 inset,#d87166 0 -1px 0 0 inset,#d87166 -1px 0 0 0 inset,#d87166 1px 0 0 0 inset;box-shadow:#d87166 0 1px 0 0 inset,#d87166 0 -1px 0 0 inset,#d87166 -1px 0 0 0 inset,#d87166 1px 0 0 0 inset}.x-form-invalid-tip-body{background:1px 1px no-repeat;background-image:url('../../extjs/resources/themes/images/default/form/exclamation.gif');padding-left:22px}.x-form-invalid-tip-body li{margin-bottom:4px}.x-form-invalid-tip-body li.last{margin-bottom:0}.x-form-invalid-tip-default{-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px;padding:4px 4px 4px 4px;border-width:1px;border-style:solid;background-color:white}.x-nlg .x-form-invalid-tip-default-mc{background-color:white}.x-nbr .x-form-invalid-tip-default{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1100505px 1000505px}.x-nbr .x-form-invalid-tip-default-tl,.x-nbr .x-form-invalid-tip-default-bl,.x-nbr .x-form-invalid-tip-default-tr,.x-nbr .x-form-invalid-tip-default-br,.x-nbr .x-form-invalid-tip-default-tc,.x-nbr .x-form-invalid-tip-default-bc,.x-nbr .x-form-invalid-tip-default-ml,.x-nbr .x-form-invalid-tip-default-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/form-invalid-tip/form-invalid-tip-default-corners.gif')}.x-nbr .x-form-invalid-tip-default-ml,.x-nbr .x-form-invalid-tip-default-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/form-invalid-tip/form-invalid-tip-default-sides.gif');background-position:0 0;background-repeat:repeat-y}.x-nbr .x-form-invalid-tip-default-mc{padding:0}.x-strict .x-ie7 .x-form-invalid-tip-default-tl,.x-strict .x-ie7 .x-form-invalid-tip-default-bl{position:relative;right:0}.x-slider{zoom:1}.x-slider-inner{position:relative;left:0;top:0;overflow:visible;zoom:1}.x-slider-focus{position:absolute;left:0;top:0;width:1px;height:1px;line-height:1px;font-size:1px;-moz-outline:0 none;outline:0 none;user-select:none;-o-user-select:none;-ms-user-select:none;-moz-user-select:-moz-none;-webkit-user-select:none;cursor:default;display:block;overflow:hidden}.x-slider-horz{padding-left:7px;background:transparent no-repeat 0 -24px;width:100%}.x-slider-horz .x-slider-end{padding-right:7px;zoom:1;background:transparent no-repeat right -46px}.x-slider-horz .x-slider-inner{background:transparent repeat-x 0 -2px;height:18px}.x-slider-horz .x-slider-thumb{width:14px;height:15px;margin-left:-7px;position:absolute;left:0;top:1px;background:transparent no-repeat 0 0}.x-slider-horz .x-slider-thumb-over{background-position:-14px -15px}.x-slider-horz .x-slider-thumb-drag{background-position:-28px -30px}.x-slider-vert{padding-top:7px;background:transparent no-repeat -44px 0}.x-slider-vert .x-slider-end{padding-bottom:7px;zoom:1;background:transparent no-repeat -22px bottom;width:22px}.x-slider-vert .x-slider-inner{background:transparent repeat-y 0 0;width:22px}.x-slider-vert .x-slider-thumb{width:15px;height:14px;margin-bottom:-7px;position:absolute;left:3px;bottom:0;background:transparent no-repeat 0 0}.x-slider-vert .x-slider-thumb-over{background-position:-15px -14px}.x-slider-vert .x-slider-thumb-drag{background-position:-30px -28px}.x-slider-horz,.x-slider-horz .x-slider-end,.x-slider-horz .x-slider-inner{background-image:url('../../extjs/resources/themes/images/default/slider/slider-bg.png')}.x-slider-horz .x-slider-thumb{background-image:url('../../extjs/resources/themes/images/default/slider/slider-thumb.png')}.x-slider-vert,.x-slider-vert .x-slider-end,.x-slider-vert .x-slider-inner{background-image:url('../../extjs/resources/themes/images/default/slider/slider-v-bg.png')}.x-slider-vert .x-slider-thumb{background-image:url('../../extjs/resources/themes/images/default/slider/slider-v-thumb.png')}.x-ie6 .x-slider-horz,.x-ie6 .x-slider-horz .x-slider-end,.x-ie6 .x-slider-horz .x-slider-inner{background-image:url('../../extjs/resources/themes/images/default/slider/slider-bg.gif')}.x-ie6 .x-slider-horz .x-slider-thumb{background-image:url('../../extjs/resources/themes/images/default/slider/slider-thumb.gif')}.x-ie6 .x-slider-vert,.x-ie6 .x-slider-vert .x-slider-end,.x-ie6 .x-slider-vert .x-slider-inner{background-image:url('../../extjs/resources/themes/images/default/slider/slider-v-bg.gif')}.x-ie6 .x-slider-vert .x-slider-thumb{background-image:url('../../extjs/resources/themes/images/default/slider/slider-v-thumb.gif')}.x-progress{position:relative;border-width:1px;border-style:solid;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;overflow:hidden;height:20px}.x-progress-bar{height:18px;overflow:hidden;position:absolute;width:0;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;border-right:1px solid;border-top:1px solid}.x-progress-text{overflow:hidden;position:absolute;padding:0 5px;height:18px;font-weight:bold;font-size:11px;line-height:16px;text-align:center}.x-progress-text-back{padding-top:1px}.x-strict .x-ie7m .x-progress{height:18px}.x-progress-default{border-color:#adadad}.x-progress-default .x-progress-bar{border-right-color:#adadad;border-top-color:#ececec;background-image:none;background-color:#c1b7b7;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#e5e0e0),color-stop(50%,#cdc4c4),color-stop(51%,#c1b7b7),color-stop(100%,#b6a9a9));background-image:-webkit-linear-gradient(top,#e5e0e0,#cdc4c4 50%,#c1b7b7 51%,#b6a9a9);background-image:-moz-linear-gradient(top,#e5e0e0,#cdc4c4 50%,#c1b7b7 51%,#b6a9a9);background-image:-o-linear-gradient(top,#e5e0e0,#cdc4c4 50%,#c1b7b7 51%,#b6a9a9);background-image:linear-gradient(top,#e5e0e0,#cdc4c4 50%,#c1b7b7 51%,#b6a9a9)}.x-progress-default .x-progress-text{color:white}.x-progress-default .x-progress-text-back{color:#7a7a7a}.x-nlg .x-progress-default .x-progress-bar{background:repeat-x;background-image:url('../../extjs/resources/themes/images/default/progress/progress-default-bg.gif')}.x-toolbar{font-size:11px;border:1px solid;padding:2px 0 2px 2px}.x-toolbar .x-form-item-label{font-size:11px;line-height:15px}.x-toolbar .x-toolbar-item{margin:0 2px 0 0}.x-toolbar .x-toolbar-text{margin-left:4px;margin-right:6px;white-space:nowrap;color:#4c4c4c;line-height:16px;font-family:Helvetica Neue,Arial,sans-serif;font-size:11px;font-weight:normal}.x-toolbar .x-toolbar-separator{display:block;font-size:1px;overflow:hidden;cursor:default;border:0}.x-toolbar .x-toolbar-separator-horizontal{margin:0 3px 0 2px;height:14px;width:0;border-left:1px solid #ffbdbe;border-right:1px solid white}.x-quirks .x-ie .x-toolbar .x-toolbar-separator-horizontal{width:2px}.x-toolbar-footer{background:transparent;border:0 none;margin-top:3px;padding:2px 0 2px 6px}.x-toolbar-footer .x-box-inner{border-width:0}.x-toolbar-footer .x-toolbar-item{margin:0 6px 0 0}.x-toolbar-vertical{padding:2px 2px 0 2px}.x-toolbar-vertical .x-toolbar-item{margin:0 0 2px 0}.x-toolbar-vertical .x-toolbar-text{margin-top:4px;margin-bottom:6px}.x-toolbar-vertical .x-toolbar-separator-vertical{margin:2px 5px 3px 5px;height:0;width:10px;line-height:0;border-top:1px solid #ffbdbe;border-bottom:1px solid white}.x-toolbar-scroller{padding-left:0}.x-toolbar-spacer{width:2px}.x-toolbar-more-icon{background-image:url('../../extjs/resources/themes/images/default/toolbar/more.gif')!important;background-position:2px center!important;background-repeat:no-repeat}.x-toolbar-default{border-color:#bfbfbf;background-image:none;background-color:#e9e9e9;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#f1f1f1),color-stop(100%,#e9e9e9));background-image:-webkit-linear-gradient(top,#f1f1f1,#e9e9e9);background-image:-moz-linear-gradient(top,#f1f1f1,#e9e9e9);background-image:-o-linear-gradient(top,#f1f1f1,#e9e9e9);background-image:linear-gradient(top,#f1f1f1,#e9e9e9)}.x-nlg .x-toolbar-default{background-image:url('../../extjs/resources/themes/images/default/toolbar/toolbar-default-bg.gif')!important;background-repeat:repeat-x}.x-toolbar-plain{border:0}.x-window{outline:0;overflow:hidden}.x-window .x-window-wrap{position:relative}.x-window-body{position:relative;border-style:solid;overflow:hidden}.x-window-maximized .x-window-wrap .x-window-header{-moz-border-radius:0!important;-webkit-border-radius:0!important;-o-border-radius:0!important;-ms-border-radius:0!important;-khtml-border-radius:0!important;border-radius:0!important}.x-window-header-top{margin-bottom:-2px}.x-window-header-body-horizontal{margin-top:-1px}.x-window-header-bottom{margin-top:-1px;margin-bottom:-1px}.x-window-header-left{margin-right:-1px}.x-window-header-right{margin-left:-1px}.x-window-header-vertical .x-surface{padding-left:1px}.x-window-collapsed .x-window-header-vertical{-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px}.x-window-collapsed .x-window-header-horizontal{-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px}.x-window-collapsed .x-window-header-left{padding-right:5px!important;margin-right:0}.x-window-collapsed .x-window-header-right{padding-left:5px!important;margin-left:0}.x-window-collapsed .x-window-header-top{padding-bottom:5px!important;margin-bottom:-1px}.x-window-collapsed .x-window-header-bottom{padding-top:5px!important;margin-top:0}.x-window-header-left .x-vml-base,.x-window-header-right .x-vml-base{left:-3px!important}.x-opera .x-window-header-vertical .x-surface,.x-strict .x-ie9 .x-window-header-vertical .x-surface{padding-left:2px}.x-window-header-text-container{overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.x-window-header-text{user-select:none;-o-user-select:none;-ms-user-select:none;-moz-user-select:-moz-none;-webkit-user-select:none;cursor:default;white-space:nowrap}.x-window-default{border-color:#c6c6c6;-webkit-border-radius:5px 5px;-moz-border-radius:5px 5px;-ms-border-radius:5px 5px;-o-border-radius:5px 5px;border-radius:5px 5px;-webkit-box-shadow:white 0 1px 0 0 inset,white 0 -1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset;-moz-box-shadow:white 0 1px 0 0 inset,white 0 -1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset;box-shadow:white 0 1px 0 0 inset,white 0 -1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset}.x-window-default{-moz-border-radius-topleft:5px;-webkit-border-top-left-radius:5px;border-top-left-radius:5px;-moz-border-radius-topright:5px;-webkit-border-top-right-radius:5px;border-top-right-radius:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-right-radius:5px;border-bottom-right-radius:5px;-moz-border-radius-bottomleft:5px;-webkit-border-bottom-left-radius:5px;border-bottom-left-radius:5px;padding:4px 4px 4px 4px;border-width:1px;border-style:solid;background-color:#ededed}.x-nlg .x-window-default-mc{background-color:#ededed}.x-nbr .x-window-default{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1000505px 1000505px}.x-nbr .x-window-default-tl,.x-nbr .x-window-default-bl,.x-nbr .x-window-default-tr,.x-nbr .x-window-default-br,.x-nbr .x-window-default-tc,.x-nbr .x-window-default-bc,.x-nbr .x-window-default-ml,.x-nbr .x-window-default-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/window/window-default-corners.gif')}.x-nbr .x-window-default-ml,.x-nbr .x-window-default-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/window/window-default-sides.gif');background-position:0 0;background-repeat:repeat-y}.x-nbr .x-window-default-mc{padding:0}.x-strict .x-ie7 .x-window-default-tl,.x-strict .x-ie7 .x-window-default-bl{position:relative;right:0}.x-window-body-default{border-color:#d6d0d0;border-width:1px;background:#fdfdfd;color:black}.x-window-header-default{font-size:11px;border-color:#c6c6c6;zoom:1}.x-window-header-text-default{color:#7e373a;font-weight:bold;line-height:17px;font-family:Helvetica Neue,Arial,sans-serif;font-size:11px}.x-window-header-default-top{-moz-border-radius-topleft:5px;-webkit-border-top-left-radius:5px;border-top-left-radius:5px;-moz-border-radius-topright:5px;-webkit-border-top-right-radius:5px;border-top-right-radius:5px;-moz-border-radius-bottomright:0;-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-moz-border-radius-bottomleft:0;-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;padding:4px 5px 0 5px;border-width:1px 1px 0 1px;border-style:solid;background-color:#ededed}.x-nlg .x-window-header-default-top-mc{background-color:#ededed}.x-nbr .x-window-header-default-top{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1000505px 1000000px}.x-nbr .x-window-header-default-top-tl,.x-nbr .x-window-header-default-top-bl,.x-nbr .x-window-header-default-top-tr,.x-nbr .x-window-header-default-top-br,.x-nbr .x-window-header-default-top-tc,.x-nbr .x-window-header-default-top-bc,.x-nbr .x-window-header-default-top-ml,.x-nbr .x-window-header-default-top-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/window-header/window-header-default-top-corners.gif')}.x-nbr .x-window-header-default-top-ml,.x-nbr .x-window-header-default-top-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/window-header/window-header-default-top-sides.gif');background-position:0 0;background-repeat:repeat-y}.x-nbr .x-window-header-default-top-mc{padding:0 1px 0 1px}.x-strict .x-ie7 .x-window-header-default-top-tl,.x-strict .x-ie7 .x-window-header-default-top-bl{position:relative;right:0}.x-window-header-default-right{-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;-moz-border-radius-topright:5px;-webkit-border-top-right-radius:5px;border-top-right-radius:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-right-radius:5px;border-bottom-right-radius:5px;-moz-border-radius-bottomleft:0;-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;padding:5px 4px 5px 0;border-width:1px 1px 1px 0;border-style:solid;background-color:#ededed}.x-nlg .x-window-header-default-right-mc{background-color:#ededed}.x-nbr .x-window-header-default-right{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1000005px 1000500px}.x-nbr .x-window-header-default-right-tl,.x-nbr .x-window-header-default-right-bl,.x-nbr .x-window-header-default-right-tr,.x-nbr .x-window-header-default-right-br,.x-nbr .x-window-header-default-right-tc,.x-nbr .x-window-header-default-right-bc,.x-nbr .x-window-header-default-right-ml,.x-nbr .x-window-header-default-right-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/window-header/window-header-default-right-corners.gif')}.x-nbr .x-window-header-default-right-ml,.x-nbr .x-window-header-default-right-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/window-header/window-header-default-right-sides.gif');background-position:0 0;background-repeat:repeat-y}.x-nbr .x-window-header-default-right-mc{padding:1px 0 1px 0}.x-strict .x-ie7 .x-window-header-default-right-tl,.x-strict .x-ie7 .x-window-header-default-right-bl{position:relative;right:0}.x-window-header-default-bottom{-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;-moz-border-radius-topright:0;-webkit-border-top-right-radius:0;border-top-right-radius:0;-moz-border-radius-bottomright:5px;-webkit-border-bottom-right-radius:5px;border-bottom-right-radius:5px;-moz-border-radius-bottomleft:5px;-webkit-border-bottom-left-radius:5px;border-bottom-left-radius:5px;padding:0 5px 4px 5px;border-width:0 1px 1px 1px;border-style:solid;background-color:#ededed}.x-nlg .x-window-header-default-bottom-mc{background-color:#ededed}.x-nbr .x-window-header-default-bottom{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1000000px 1000505px}.x-nbr .x-window-header-default-bottom-tl,.x-nbr .x-window-header-default-bottom-bl,.x-nbr .x-window-header-default-bottom-tr,.x-nbr .x-window-header-default-bottom-br,.x-nbr .x-window-header-default-bottom-tc,.x-nbr .x-window-header-default-bottom-bc,.x-nbr .x-window-header-default-bottom-ml,.x-nbr .x-window-header-default-bottom-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/window-header/window-header-default-bottom-corners.gif')}.x-nbr .x-window-header-default-bottom-ml,.x-nbr .x-window-header-default-bottom-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/window-header/window-header-default-bottom-sides.gif');background-position:0 0;background-repeat:repeat-y}.x-nbr .x-window-header-default-bottom-mc{padding:0 1px 0 1px}.x-strict .x-ie7 .x-window-header-default-bottom-tl,.x-strict .x-ie7 .x-window-header-default-bottom-bl{position:relative;right:0}.x-window-header-default-left{-moz-border-radius-topleft:5px;-webkit-border-top-left-radius:5px;border-top-left-radius:5px;-moz-border-radius-topright:0;-webkit-border-top-right-radius:0;border-top-right-radius:0;-moz-border-radius-bottomright:0;-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-moz-border-radius-bottomleft:5px;-webkit-border-bottom-left-radius:5px;border-bottom-left-radius:5px;padding:5px 0 5px 4px;border-width:1px 0 1px 1px;border-style:solid;background-color:#ededed}.x-nlg .x-window-header-default-left-mc{background-color:#ededed}.x-nbr .x-window-header-default-left{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1000500px 1000005px}.x-nbr .x-window-header-default-left-tl,.x-nbr .x-window-header-default-left-bl,.x-nbr .x-window-header-default-left-tr,.x-nbr .x-window-header-default-left-br,.x-nbr .x-window-header-default-left-tc,.x-nbr .x-window-header-default-left-bc,.x-nbr .x-window-header-default-left-ml,.x-nbr .x-window-header-default-left-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/window-header/window-header-default-left-corners.gif')}.x-nbr .x-window-header-default-left-ml,.x-nbr .x-window-header-default-left-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/window-header/window-header-default-left-sides.gif');background-position:0 0;background-repeat:repeat-y}.x-nbr .x-window-header-default-left-mc{padding:1px 0 1px 0}.x-strict .x-ie7 .x-window-header-default-left-tl,.x-strict .x-ie7 .x-window-header-default-left-bl{position:relative;right:0}.x-window-header-default-collapsed-top{-moz-border-radius-topleft:5px;-webkit-border-top-left-radius:5px;border-top-left-radius:5px;-moz-border-radius-topright:5px;-webkit-border-top-right-radius:5px;border-top-right-radius:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-right-radius:5px;border-bottom-right-radius:5px;-moz-border-radius-bottomleft:5px;-webkit-border-bottom-left-radius:5px;border-bottom-left-radius:5px;padding:4px 5px 4px 5px;border-width:1px;border-style:solid;background-color:#ededed}.x-nlg .x-window-header-default-collapsed-top-mc{background-color:#ededed}.x-nbr .x-window-header-default-collapsed-top{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1000505px 1000505px}.x-nbr .x-window-header-default-collapsed-top-tl,.x-nbr .x-window-header-default-collapsed-top-bl,.x-nbr .x-window-header-default-collapsed-top-tr,.x-nbr .x-window-header-default-collapsed-top-br,.x-nbr .x-window-header-default-collapsed-top-tc,.x-nbr .x-window-header-default-collapsed-top-bc,.x-nbr .x-window-header-default-collapsed-top-ml,.x-nbr .x-window-header-default-collapsed-top-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/window-header/window-header-default-collapsed-top-corners.gif')}.x-nbr .x-window-header-default-collapsed-top-ml,.x-nbr .x-window-header-default-collapsed-top-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/window-header/window-header-default-collapsed-top-sides.gif');background-position:0 0;background-repeat:repeat-y}.x-nbr .x-window-header-default-collapsed-top-mc{padding:0 1px 0 1px}.x-strict .x-ie7 .x-window-header-default-collapsed-top-tl,.x-strict .x-ie7 .x-window-header-default-collapsed-top-bl{position:relative;right:0}.x-window-header-default-collapsed-right{-moz-border-radius-topleft:5px;-webkit-border-top-left-radius:5px;border-top-left-radius:5px;-moz-border-radius-topright:5px;-webkit-border-top-right-radius:5px;border-top-right-radius:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-right-radius:5px;border-bottom-right-radius:5px;-moz-border-radius-bottomleft:5px;-webkit-border-bottom-left-radius:5px;border-bottom-left-radius:5px;padding:5px 4px 5px 4px;border-width:1px;border-style:solid;background-color:#ededed}.x-nlg .x-window-header-default-collapsed-right-mc{background-color:#ededed}.x-nbr .x-window-header-default-collapsed-right{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1000505px 1000505px}.x-nbr .x-window-header-default-collapsed-right-tl,.x-nbr .x-window-header-default-collapsed-right-bl,.x-nbr .x-window-header-default-collapsed-right-tr,.x-nbr .x-window-header-default-collapsed-right-br,.x-nbr .x-window-header-default-collapsed-right-tc,.x-nbr .x-window-header-default-collapsed-right-bc,.x-nbr .x-window-header-default-collapsed-right-ml,.x-nbr .x-window-header-default-collapsed-right-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/window-header/window-header-default-collapsed-right-corners.gif')}.x-nbr .x-window-header-default-collapsed-right-ml,.x-nbr .x-window-header-default-collapsed-right-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/window-header/window-header-default-collapsed-right-sides.gif');background-position:0 0;background-repeat:repeat-y}.x-nbr .x-window-header-default-collapsed-right-mc{padding:1px 0 1px 0}.x-strict .x-ie7 .x-window-header-default-collapsed-right-tl,.x-strict .x-ie7 .x-window-header-default-collapsed-right-bl{position:relative;right:0}.x-window-header-default-collapsed-bottom{-moz-border-radius-topleft:5px;-webkit-border-top-left-radius:5px;border-top-left-radius:5px;-moz-border-radius-topright:5px;-webkit-border-top-right-radius:5px;border-top-right-radius:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-right-radius:5px;border-bottom-right-radius:5px;-moz-border-radius-bottomleft:5px;-webkit-border-bottom-left-radius:5px;border-bottom-left-radius:5px;padding:4px 5px 4px 5px;border-width:1px;border-style:solid;background-color:#ededed}.x-nlg .x-window-header-default-collapsed-bottom-mc{background-color:#ededed}.x-nbr .x-window-header-default-collapsed-bottom{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1000505px 1000505px}.x-nbr .x-window-header-default-collapsed-bottom-tl,.x-nbr .x-window-header-default-collapsed-bottom-bl,.x-nbr .x-window-header-default-collapsed-bottom-tr,.x-nbr .x-window-header-default-collapsed-bottom-br,.x-nbr .x-window-header-default-collapsed-bottom-tc,.x-nbr .x-window-header-default-collapsed-bottom-bc,.x-nbr .x-window-header-default-collapsed-bottom-ml,.x-nbr .x-window-header-default-collapsed-bottom-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/window-header/window-header-default-collapsed-bottom-corners.gif')}.x-nbr .x-window-header-default-collapsed-bottom-ml,.x-nbr .x-window-header-default-collapsed-bottom-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/window-header/window-header-default-collapsed-bottom-sides.gif');background-position:0 0;background-repeat:repeat-y}.x-nbr .x-window-header-default-collapsed-bottom-mc{padding:0 1px 0 1px}.x-strict .x-ie7 .x-window-header-default-collapsed-bottom-tl,.x-strict .x-ie7 .x-window-header-default-collapsed-bottom-bl{position:relative;right:0}.x-window-header-default-collapsed-left{-moz-border-radius-topleft:5px;-webkit-border-top-left-radius:5px;border-top-left-radius:5px;-moz-border-radius-topright:5px;-webkit-border-top-right-radius:5px;border-top-right-radius:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-right-radius:5px;border-bottom-right-radius:5px;-moz-border-radius-bottomleft:5px;-webkit-border-bottom-left-radius:5px;border-bottom-left-radius:5px;padding:5px 4px 5px 4px;border-width:1px;border-style:solid;background-color:#ededed}.x-nlg .x-window-header-default-collapsed-left-mc{background-color:#ededed}.x-nbr .x-window-header-default-collapsed-left{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1000505px 1000505px}.x-nbr .x-window-header-default-collapsed-left-tl,.x-nbr .x-window-header-default-collapsed-left-bl,.x-nbr .x-window-header-default-collapsed-left-tr,.x-nbr .x-window-header-default-collapsed-left-br,.x-nbr .x-window-header-default-collapsed-left-tc,.x-nbr .x-window-header-default-collapsed-left-bc,.x-nbr .x-window-header-default-collapsed-left-ml,.x-nbr .x-window-header-default-collapsed-left-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/window-header/window-header-default-collapsed-left-corners.gif')}.x-nbr .x-window-header-default-collapsed-left-ml,.x-nbr .x-window-header-default-collapsed-left-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/window-header/window-header-default-collapsed-left-sides.gif');background-position:0 0;background-repeat:repeat-y}.x-nbr .x-window-header-default-collapsed-left-mc{padding:1px 0 1px 0}.x-strict .x-ie7 .x-window-header-default-collapsed-left-tl,.x-strict .x-ie7 .x-window-header-default-collapsed-left-bl{position:relative;right:0}.x-window-header-default-top{-webkit-box-shadow:white 0 1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset;-moz-box-shadow:white 0 1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset;box-shadow:white 0 1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset}.x-window-header-default-right{-webkit-box-shadow:white 0 1px 0 0 inset,white 0 -1px 0 0 inset,white -1px 0 0 0 inset;-moz-box-shadow:white 0 1px 0 0 inset,white 0 -1px 0 0 inset,white -1px 0 0 0 inset;box-shadow:white 0 1px 0 0 inset,white 0 -1px 0 0 inset,white -1px 0 0 0 inset}.x-window-header-default-bottom{-webkit-box-shadow:white 0 -1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset;-moz-box-shadow:white 0 -1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset;box-shadow:white 0 -1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset}.x-window-header-default-left{-webkit-box-shadow:white 0 1px 0 0 inset,white 0 -1px 0 0 inset,white 1px 0 0 0 inset;-moz-box-shadow:white 0 1px 0 0 inset,white 0 -1px 0 0 inset,white 1px 0 0 0 inset;box-shadow:white 0 1px 0 0 inset,white 0 -1px 0 0 inset,white 1px 0 0 0 inset}.x-window-body-plain{background:transparent}.x-message-box .x-window-body{background-color:#ededed;border:0}.x-message-box .x-progress-wrap{margin-top:4px}.x-message-box-icon{width:47px;height:32px}.x-message-box-info,.x-message-box-warning,.x-message-box-question,.x-message-box-error{background:transparent no-repeat top left}.x-message-box .x-msg-box-wait{background-image:url('../../extjs/resources/themes/images/default/shared/blue-loading.gif')}.x-message-box-info{background-image:url('../../extjs/resources/themes/images/default/shared/icon-info.gif')}.x-message-box-warning{background-image:url('../../extjs/resources/themes/images/default/shared/icon-warning.gif')}.x-message-box-question{background-image:url('../../extjs/resources/themes/images/default/shared/icon-question.gif')}.x-message-box-error{background-image:url('../../extjs/resources/themes/images/default/shared/icon-error.gif')}.x-tab-bar{position:relative;background-color:transparent;background-image:none;background-color:#efefef;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fcfbfb),color-stop(100%,#efefef));background-image:-webkit-linear-gradient(top,#fcfbfb,#efefef);background-image:-moz-linear-gradient(top,#fcfbfb,#efefef);background-image:-o-linear-gradient(top,#fcfbfb,#efefef);background-image:linear-gradient(top,#fcfbfb,#efefef);font-size:11px}.x-nlg .x-tab-bar{background-image:url('../../extjs/resources/themes/images/default/tab-bar/tab-bar-default-bg.gif')}.x-tab-bar-default-plain,.x-nlg .x-tab-bar-default-plain{background:transparent none}.x-tab-bar-body{border-style:solid;border-color:#bfbfbf;position:relative;z-index:2;zoom:1}.x-tab-bar-top .x-tab-bar-body{height:20px;border-width:1px 1px 0;padding:1px 0 3px}.x-tab-bar-top .x-tab-bar-strip{top:22px;border-width:1px 1px 0;height:2px}.x-border-box .x-tab-bar-top .x-tab-bar-body{height:25px}.x-border-box .x-tab-bar-top .x-tab-bar-strip{height:3px}.x-tab-bar-top .x-tab-bar-body-default-plain{height:20px;border-width:0;padding:0 0 2px}.x-tab-bar-top .x-tab-bar-strip-default-plain{top:20px;border-width:1px 1px 0 1px;height:2px}.x-border-box .x-tab-bar-top .x-tab-bar-body-default-plain{height:22px}.x-border-box .x-tab-bar-top .x-tab-bar-strip-default-plain{height:3px}.x-tab-bar-bottom .x-tab-bar-body{height:20px;border-width:0 1px 1px;padding:3px 0 1px}.x-tab-bar-bottom .x-tab-bar-body .x-box-inner{position:relative;top:-1px}.x-tab-bar-bottom .x-tab-bar-body .x-box-scroller,.x-tab-bar-bottom .x-tab-bar-body .x-box-scroller-left,.x-tab-bar-bottom .x-tab-bar-body .x-box-scroller-right{height:22px}.x-tab-bar-bottom .x-tab-bar-strip{top:0;border-width:0 1px 1px 1px;height:2px}.x-border-box .x-tab-bar-bottom .x-tab-bar-body{height:25px}.x-border-box .x-tab-bar-bottom .x-tab-bar-strip{height:3px}.x-tab-bar-bottom .x-tab-bar-body-default-plain{height:20px;border-width:0;padding:3px 0 0}.x-tab-bar-bottom .x-tab-bar-body-default-plain .x-box-inner{position:relative;top:-1px}.x-tab-bar-bottom .x-tab-bar-body-default-plain .x-box-scroller,.x-tab-bar-bottom .x-tab-bar-body-default-plain .x-box-scroller-left,.x-tab-bar-bottom .x-tab-bar-body-default-plain .x-box-scroller-right{height:21px}.x-tab-bar-bottom .x-tab-bar-strip-default-plain{top:0;border-width:0 1px 1px 1px;height:2px}.x-border-box .x-tab-bar-bottom .x-tab-bar-body-default-plain{height:23px}.x-border-box .x-tab-bar-bottom .x-tab-bar-strip-default-plain{height:3px}.x-tab-bar-strip-default,.x-tab-bar-strip-default-plain{font-size:0;line-height:0;position:absolute;z-index:1;border-style:solid;overflow:hidden;border-color:#bfbfbf;background-color:#e9e9e9;zoom:1}.x-tab-default-top{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-bottomright:0;-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-moz-border-radius-bottomleft:0;-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;padding:3px 3px 0 3px;border-width:1px 1px 0 1px;border-style:solid;background-image:none;background-color:#e9e9e9;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#dcdcdc),color-stop(25%,#e3e3e3),color-stop(45%,#e9e9e9));background-image:-webkit-linear-gradient(top,#dcdcdc,#e3e3e3 25%,#e9e9e9 45%);background-image:-moz-linear-gradient(top,#dcdcdc,#e3e3e3 25%,#e9e9e9 45%);background-image:-o-linear-gradient(top,#dcdcdc,#e3e3e3 25%,#e9e9e9 45%);background-image:linear-gradient(top,#dcdcdc,#e3e3e3 25%,#e9e9e9 45%)}.x-nlg .x-tab-default-top-mc{background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-top-bg.gif');background-color:#e9e9e9}.x-nbr .x-tab-default-top{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1100404px 1000000px}.x-nbr .x-tab-default-top-tl,.x-nbr .x-tab-default-top-bl,.x-nbr .x-tab-default-top-tr,.x-nbr .x-tab-default-top-br,.x-nbr .x-tab-default-top-tc,.x-nbr .x-tab-default-top-bc,.x-nbr .x-tab-default-top-ml,.x-nbr .x-tab-default-top-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-top-corners.gif')}.x-nbr .x-tab-default-top-ml,.x-nbr .x-tab-default-top-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-top-sides.gif');background-position:0 0}.x-nbr .x-tab-default-top-mc{padding:0}.x-strict .x-ie7 .x-tab-default-top-tl,.x-strict .x-ie7 .x-tab-default-top-bl{position:relative;right:0}.x-tab-default-bottom{-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;-moz-border-radius-topright:0;-webkit-border-top-right-radius:0;border-top-right-radius:0;-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;padding:0 3px 3px 3px;border-width:0 1px 1px 1px;border-style:solid;background-image:none;background-color:#e9e9e9;background-image:-webkit-gradient(linear,50% 100%,50% 0,color-stop(0%,#dcdcdc),color-stop(25%,#e3e3e3),color-stop(45%,#e9e9e9));background-image:-webkit-linear-gradient(bottom,#dcdcdc,#e3e3e3 25%,#e9e9e9 45%);background-image:-moz-linear-gradient(bottom,#dcdcdc,#e3e3e3 25%,#e9e9e9 45%);background-image:-o-linear-gradient(bottom,#dcdcdc,#e3e3e3 25%,#e9e9e9 45%);background-image:linear-gradient(bottom,#dcdcdc,#e3e3e3 25%,#e9e9e9 45%)}.x-nlg .x-tab-default-bottom-mc{background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-bottom-bg.gif');background-color:#e9e9e9}.x-nbr .x-tab-default-bottom{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1100000px 1000404px}.x-nbr .x-tab-default-bottom-tl,.x-nbr .x-tab-default-bottom-bl,.x-nbr .x-tab-default-bottom-tr,.x-nbr .x-tab-default-bottom-br,.x-nbr .x-tab-default-bottom-tc,.x-nbr .x-tab-default-bottom-bc,.x-nbr .x-tab-default-bottom-ml,.x-nbr .x-tab-default-bottom-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-bottom-corners.gif')}.x-nbr .x-tab-default-bottom-ml,.x-nbr .x-tab-default-bottom-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-bottom-sides.gif');background-position:0 0}.x-nbr .x-tab-default-bottom-mc{padding:0}.x-strict .x-ie7 .x-tab-default-bottom-tl,.x-strict .x-ie7 .x-tab-default-bottom-bl{position:relative;right:0}.x-tab{z-index:1;margin:0 0 0 2px;display:inline-block;zoom:1;*display:inline;white-space:nowrap;height:20px;border-color:#b4b4b4;cursor:pointer;cursor:hand}.x-tab button{cursor:pointer;cursor:hand}.x-tab em{display:block;padding:0 6px;line-height:1px}.x-tab button{background:0;border:0;padding:0;margin:0;-webkit-appearance:none;font-size:11px;font-weight:bold;font-family:Helvetica Neue,Arial,sans-serif;color:#6e6e6e;outline:0 none;overflow-x:visible}.x-tab button::-moz-focus-inner{border:0;padding:0}.x-tab button .x-tab-inner{background-color:transparent;background-repeat:no-repeat;background-position:0 -2px;display:block;text-align:center;white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis;overflow:hidden}.x-tab img{display:none}.x-border-box .x-tab-default-top{height:21px}.x-border-box .x-tab-default-bottom{height:21px}* html .x-ie .x-tab button{width:1px}.x-strict .x-ie6 .x-tab .x-frame-mc,.x-strict .x-ie7 .x-tab .x-frame-mc{height:100%}.x-ie .x-tab-active button:active{position:relative;top:-1px;left:-1px}.x-tab-default-top{-webkit-box-shadow:white 0 1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset;-moz-box-shadow:white 0 1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset;box-shadow:white 0 1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset;border-bottom:1px solid #bfbfbf!important}.x-tab-default-top em{padding-bottom:3px}.x-tab-default-top button,.x-tab-default-top .x-tab-inner{height:13px;line-height:13px}.x-safari4 .x-tab-default-top .x-tab-inner,.x-safari5_0 .x-tab-default-top .x-tab-inner{line-height:11px}.x-nbr .x-tab-default-top{border-bottom-width:1px!important}.x-tab-default-top-active{border-bottom-color:#e9e9e9!important}.x-tab-default-bottom{-webkit-box-shadow:white 0 -1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset;-moz-box-shadow:white 0 -1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset;box-shadow:white 0 -1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset;border-top:1px solid #bfbfbf!important;-webkit-box-shadow:white 0 -1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset;-moz-box-shadow:white 0 -1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset;box-shadow:white 0 -1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset}.x-tab-default-bottom em{padding-top:3px}.x-tab-default-bottom button,.x-tab-default-bottom .x-tab-inner{height:13px;line-height:13px}.x-nbr .x-tab-default-bottom{border-top-width:1px!important}.x-tab-default-bottom-active{border-top-color:#e9e9e9!important}.x-tab-default-disabled{cursor:default;border-color:#e9e6e6;background-image:none;background-color:white;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fff),color-stop(100%,#fff));background-image:-webkit-linear-gradient(top,#fff,#fff);background-image:-moz-linear-gradient(top,#fff,#fff);background-image:-o-linear-gradient(top,#fff,#fff);background-image:linear-gradient(top,#fff,#fff)}.x-tab-default-disabled button{color:#c3b3b3!important}.x-tab-icon-text-left .x-tab-inner{padding-left:20px}.x-tab button{position:relative}.x-tab-icon{position:absolute;background-repeat:no-repeat;background-position:0 -1px;top:0;left:0;right:auto;bottom:0;width:18px;height:18px}.x-strict .x-ie8 .x-tab button,.x-strict .x-ie9 .x-tab button{overflow-y:visible}.x-tab-default-disabled .x-tab-icon{filter:alpha(opacity=50);opacity:.5}.x-tab-noicon .x-tab-icon{display:none}.x-tab-top-over{background-image:none;background-color:#f1eded;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#e6e5e5),color-stop(25%,#ede9e9),color-stop(45%,#f1eded));background-image:-webkit-linear-gradient(top,#e6e5e5,#ede9e9 25%,#f1eded 45%);background-image:-moz-linear-gradient(top,#e6e5e5,#ede9e9 25%,#f1eded 45%);background-image:-o-linear-gradient(top,#e6e5e5,#ede9e9 25%,#f1eded 45%);background-image:linear-gradient(top,#e6e5e5,#ede9e9 25%,#f1eded 45%)}.x-tab-bottom-over{background-image:none;background-color:#f1eded;background-image:-webkit-gradient(linear,50% 100%,50% 0,color-stop(0%,#e6e5e5),color-stop(25%,#ede9e9),color-stop(45%,#f1eded));background-image:-webkit-linear-gradient(bottom,#e6e5e5,#ede9e9 25%,#f1eded 45%);background-image:-moz-linear-gradient(bottom,#e6e5e5,#ede9e9 25%,#f1eded 45%);background-image:-o-linear-gradient(bottom,#e6e5e5,#ede9e9 25%,#f1eded 45%);background-image:linear-gradient(bottom,#e6e5e5,#ede9e9 25%,#f1eded 45%)}.x-tab-active{z-index:3}.x-tab-active button{color:#633434}.x-tab-top-active{background-image:none;background-color:#e9e9e9;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fbfbfb),color-stop(25%,#f5f5f5),color-stop(45%,#e9e9e9));background-image:-webkit-linear-gradient(top,#fbfbfb,#f5f5f5 25%,#e9e9e9 45%);background-image:-moz-linear-gradient(top,#fbfbfb,#f5f5f5 25%,#e9e9e9 45%);background-image:-o-linear-gradient(top,#fbfbfb,#f5f5f5 25%,#e9e9e9 45%);background-image:linear-gradient(top,#fbfbfb,#f5f5f5 25%,#e9e9e9 45%)}.x-tab-bottom-active{background-image:none;background-color:#e9e9e9;background-image:-webkit-gradient(linear,50% 100%,50% 0,color-stop(0%,#fbfbfb),color-stop(25%,#f5f5f5),color-stop(45%,#e9e9e9));background-image:-webkit-linear-gradient(bottom,#fbfbfb,#f5f5f5 25%,#e9e9e9 45%);background-image:-moz-linear-gradient(bottom,#fbfbfb,#f5f5f5 25%,#e9e9e9 45%);background-image:-o-linear-gradient(bottom,#fbfbfb,#f5f5f5 25%,#e9e9e9 45%);background-image:linear-gradient(bottom,#fbfbfb,#f5f5f5 25%,#e9e9e9 45%)}.x-tab-disabled{border-color:#e9e6e6}.x-tab-disabled button{color:#c3b3b3}.x-tab-top-disabled{background-image:none;background:transparent;background-image:none;background-color:white;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fff),color-stop(100%,#fff));background-image:-webkit-linear-gradient(top,#fff,#fff);background-image:-moz-linear-gradient(top,#fff,#fff);background-image:-o-linear-gradient(top,#fff,#fff);background-image:linear-gradient(top,#fff,#fff)}.x-tab-bottom-disabled{background-image:none;background:transparent;background-image:none;background-color:white;background-image:-webkit-gradient(linear,50% 100%,50% 0,color-stop(0%,#fff),color-stop(100%,#fff));background-image:-webkit-linear-gradient(bottom,#fff,#fff);background-image:-moz-linear-gradient(bottom,#fff,#fff);background-image:-o-linear-gradient(bottom,#fff,#fff);background-image:linear-gradient(bottom,#fff,#fff)}.x-nlg .x-tab-top{background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-top-bg.gif')}.x-nlg .x-tab-bottom{background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-bottom-bg.gif')}.x-nlg .x-tab-top-over{background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-top-over-bg.gif')}.x-nlg .x-tab-bottom-over{background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-bottom-over-bg.gif')}.x-nlg .x-tab-top-active{background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-top-active-bg.gif')}.x-nlg .x-tab-bottom-active{background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-bottom-active-bg.gif')}.x-nlg .x-tab-top-disabled{background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-top-disabled-bg.gif')!important}.x-nlg .x-tab-bottom-disabled{background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-bottom-disabled-bg.gif')!important}.x-tab-closable em{padding-right:14px}.x-tab-close-btn{position:absolute;top:2px;right:2px;width:11px;height:11px;font-size:0;line-height:0;text-indent:-999px;background:no-repeat;background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-close.gif');filter:alpha(opacity=60);opacity:.6}.x-nbr .x-tab-close-btn{top:0;right:0}a.x-tab-close-btn:hover{filter:alpha(opacity=100);opacity:1}.x-tab-default-disabled a.x-tab-close-btn{filter:alpha(opacity=30);opacity:.3}.x-nbr .x-tab-top-over .x-frame-tl,.x-nbr .x-tab-top-over .x-frame-bl,.x-nbr .x-tab-top-over .x-frame-tr,.x-nbr .x-tab-top-over .x-frame-br,.x-nbr .x-tab-top-over .x-frame-tc,.x-nbr .x-tab-top-over .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-top-over-corners.gif')}.x-nbr .x-tab-top-over .x-frame-ml,.x-nbr .x-tab-top-over .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-top-over-sides.gif')}.x-nbr .x-tab-top-over .x-frame-mc{background-color:#f1eded;background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-top-over-bg.gif')}.x-nbr .x-tab-bottom-over .x-frame-tl,.x-nbr .x-tab-bottom-over .x-frame-bl,.x-nbr .x-tab-bottom-over .x-frame-tr,.x-nbr .x-tab-bottom-over .x-frame-br,.x-nbr .x-tab-bottom-over .x-frame-tc,.x-nbr .x-tab-bottom-over .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-bottom-over-corners.gif')}.x-nbr .x-tab-bottom-over .x-frame-ml,.x-nbr .x-tab-bottom-over .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-bottom-over-sides.gif')}.x-nbr .x-tab-bottom-over .x-frame-mc{background-color:#f1eded;background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-bottom-over-bg.gif')}.x-nbr .x-tab-top-active .x-frame-tl,.x-nbr .x-tab-top-active .x-frame-bl,.x-nbr .x-tab-top-active .x-frame-tr,.x-nbr .x-tab-top-active .x-frame-br,.x-nbr .x-tab-top-active .x-frame-tc,.x-nbr .x-tab-top-active .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-top-active-corners.gif')}.x-nbr .x-tab-top-active .x-frame-ml,.x-nbr .x-tab-top-active .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-top-active-sides.gif')}.x-nbr .x-tab-top-active .x-frame-mc{background-color:#e9e9e9;background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-top-active-bg.gif')}.x-nbr .x-tab-bottom-active .x-frame-tl,.x-nbr .x-tab-bottom-active .x-frame-bl,.x-nbr .x-tab-bottom-active .x-frame-tr,.x-nbr .x-tab-bottom-active .x-frame-br,.x-nbr .x-tab-bottom-active .x-frame-tc,.x-nbr .x-tab-bottom-active .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-bottom-active-corners.gif')}.x-nbr .x-tab-bottom-active .x-frame-ml,.x-nbr .x-tab-bottom-active .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-bottom-active-sides.gif')}.x-nbr .x-tab-bottom-active .x-frame-mc{background-color:#e9e9e9;background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-bottom-active-bg.gif')}.x-nbr .x-tab-top-disabled .x-frame-tl,.x-nbr .x-tab-top-disabled .x-frame-bl,.x-nbr .x-tab-top-disabled .x-frame-tr,.x-nbr .x-tab-top-disabled .x-frame-br,.x-nbr .x-tab-top-disabled .x-frame-tc,.x-nbr .x-tab-top-disabled .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-top-disabled-corners.gif')}.x-nbr .x-tab-top-disabled .x-frame-ml,.x-nbr .x-tab-top-disabled .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-top-disabled-sides.gif')}.x-nbr .x-tab-top-disabled .x-frame-mc{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-top-disabled-bg.gif')}.x-nbr .x-tab-bottom-disabled .x-frame-tl,.x-nbr .x-tab-bottom-disabled .x-frame-bl,.x-nbr .x-tab-bottom-disabled .x-frame-tr,.x-nbr .x-tab-bottom-disabled .x-frame-br,.x-nbr .x-tab-bottom-disabled .x-frame-tc,.x-nbr .x-tab-bottom-disabled .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-bottom-disabled-corners.gif')}.x-nbr .x-tab-bottom-disabled .x-frame-ml,.x-nbr .x-tab-bottom-disabled .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-bottom-disabled-sides.gif')}.x-nbr .x-tab-bottom-disabled .x-frame-mc{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-bottom-disabled-bg.gif')}.x-autowidth-table table.x-grid-table{table-layout:auto;width:auto!important}.x-tree-no-lines .x-tree-elbow{background-color:transparent}.x-tree-no-lines .x-tree-elbow-end{background-color:transparent}.x-tree-no-lines .x-tree-elbow-line{background-color:transparent}.x-tree-arrows .x-tree-elbow-plus{background:transparent no-repeat 0 0}.x-tree-arrows .x-tree-elbow-end-plus{background:transparent no-repeat 0 0}.x-tree-arrows .x-tree-elbow-end-minus{background:transparent no-repeat -16px 0}.x-tree-arrows .x-tree-elbow-minus{background:transparent no-repeat -16px 0}.x-tree-arrows .x-tree-elbow{background-color:transparent!important}.x-tree-arrows .x-tree-elbow-end{background-color:transparent!important}.x-tree-arrows .x-tree-elbow-line{background-color:transparent!important}.x-tree-arrows .x-tree-expander-over .x-tree-elbow-plus,.x-tree-arrows .x-tree-expander-over .x-tree-elbow-end-plus{background-position:-32px 0}.x-tree-arrows .x-tree-expander-over .x-tree-elbow-minus,.x-tree-arrows .x-tree-expander-over .x-tree-elbow-end-minus{background-position:-48px 0}.x-tree-arrows .x-grid-tree-node-expanded .x-tree-elbow-plus,.x-tree-arrows .x-grid-tree-node-expanded .x-tree-elbow-end-plus{background-position:-16px 0}.x-tree-arrows .x-grid-tree-node-expanded .x-tree-expander-over .x-tree-elbow-plus,.x-tree-arrows .x-grid-tree-node-expanded .x-tree-expander-over .x-tree-elbow-end-plus{background-position:-48px 0}.x-tree-elbow-plus,.x-tree-elbow-minus,.x-tree-elbow-end-plus,.x-tree-elbow-end-minus{cursor:pointer}.x-tree-lines .x-tree-elbow{background-image:url('../../extjs/resources/themes/images/default/tree/elbow.gif')}.x-tree-lines .x-tree-elbow-end{background-image:url('../../extjs/resources/themes/images/default/tree/elbow-end.gif')}.x-tree-lines .x-tree-elbow-plus{background-image:url('../../extjs/resources/themes/images/default/tree/elbow-plus.gif')}.x-tree-lines .x-tree-elbow-end-plus{background-image:url('../../extjs/resources/themes/images/default/tree/elbow-end-plus.gif')}.x-tree-lines .x-grid-tree-node-expanded .x-tree-elbow-plus{background-image:url('../../extjs/resources/themes/images/default/tree/elbow-minus.gif')}.x-tree-lines .x-grid-tree-node-expanded .x-tree-elbow-end-plus{background-image:url('../../extjs/resources/themes/images/default/tree/elbow-end-minus.gif')}.x-tree-lines .x-tree-elbow-line{background-image:url('../../extjs/resources/themes/images/default/tree/elbow-line.gif')}.x-tree-no-lines .x-tree-elbow-plus,.x-tree-no-lines .x-tree-elbow-end-plus{background-image:url('../../extjs/resources/themes/images/default/tree/elbow-plus-nl.gif')}.x-tree-no-lines .x-grid-tree-node-expanded .x-tree-elbow-plus,.x-tree-no-lines .x-grid-tree-node-expanded .x-tree-elbow-end-plus{background-image:url('../../extjs/resources/themes/images/default/tree/elbow-end-minus-nl.gif')}.x-tree-arrows .x-tree-elbow-plus,.x-tree-arrows .x-tree-elbow-minus,.x-tree-arrows .x-tree-elbow-end-plus,.x-tree-arrows .x-tree-elbow-end-minus{background-image:url('../../extjs/resources/themes/images/default/tree/arrows.gif')}.x-tree-icon{margin:2px 3px 0 0}.x-grid-with-row-lines .x-tree-icon{margin-top:1px}.x-tree-elbow,.x-tree-elbow-end,.x-tree-elbow-plus,.x-tree-elbow-end-plus,.x-tree-elbow-empty,.x-tree-elbow-line{height:20px;width:16px}.x-grid-with-row-lines .x-tree-elbow,.x-grid-with-row-lines .x-tree-elbow-end,.x-grid-with-row-lines .x-tree-elbow-plus,.x-grid-with-row-lines .x-tree-elbow-end-plus,.x-grid-with-row-lines .x-tree-elbow-empty,.x-grid-with-row-lines .x-tree-elbow-line{height:19px;background-position:0 -1px}.x-tree-icon-leaf{width:16px;background-image:url('../../extjs/resources/themes/images/default/tree/leaf.gif')}.x-tree-icon-parent{width:16px;background-image:url('../../extjs/resources/themes/images/default/tree/folder.gif')}.x-grid-tree-node-expanded .x-tree-icon-parent{background-image:url('../../extjs/resources/themes/images/default/tree/folder-open.gif')}.x-grid-rowbody{padding:0}.x-grid-cell-treecolumn .x-grid-cell-inner{padding:0;line-height:19px}.x-grid-with-row-lines .x-grid-cell-treecolumn .x-grid-cell-inner{line-height:17px}.x-tree-panel .x-grid-cell-inner{cursor:pointer}.x-tree-panel .x-grid-cell-inner img{display:inline-block;vertical-align:top}.x-ie .x-tree-panel .x-tree-elbow,.x-ie .x-tree-panel .x-tree-elbow-end,.x-ie .x-tree-panel .x-tree-elbow-plus,.x-ie .x-tree-panel .x-tree-elbow-end-plus,.x-ie .x-tree-panel .x-tree-elbow-empty,.x-ie .x-tree-panel .x-tree-elbow-line{vertical-align:-6px}.x-grid-editor-on-text-node .x-form-text{padding-left:1px;padding-right:1px}.x-ie .x-grid-editor-on-text-node .x-form-text{padding-left:2px;padding-right:2px}.x-opera .x-grid-editor-on-text-node .x-form-text{padding-left:2px;padding-right:2px}.x-tree-checkbox{margin:4px 3px 0 0;display:inline-block;vertical-align:top;width:13px;height:13px;background:no-repeat;background-image:url('../../extjs/resources/themes/images/default/form/checkbox.gif');overflow:hidden;padding:0;border:0}.x-tree-checkbox::-moz-focus-inner{padding:0;border:0}.x-grid-with-row-lines .x-tree-checkbox{margin-top:3px}.x-tree-checkbox-checked{background-position:0 -13px}.x-tree-drop-ok-append .x-dd-drop-icon{background-image:url('../../extjs/resources/themes/images/default/tree/drop-append.gif')}.x-tree-drop-ok-above .x-dd-drop-icon{background-image:url('../../extjs/resources/themes/images/default/tree/drop-above.gif')}.x-tree-drop-ok-below .x-dd-drop-icon{background-image:url('../../extjs/resources/themes/images/default/tree/drop-below.gif')}.x-tree-drop-ok-between .x-dd-drop-icon{background-image:url('../../extjs/resources/themes/images/default/tree/drop-between.gif')}.x-grid-tree-loading .x-tree-icon{background-image:url('../../extjs/resources/themes/images/default/tree/loading.gif')}.x-tree-ddindicator{height:1px;border-width:1px 0 0;border-style:dotted;border-color:green}.x-grid-tree-loading span{font-style:italic;color:#444}.x-tree-animator-wrap{overflow:hidden}.x-surface{display:-moz-inline-stack;display:inline-block;vertical-align:middle;*vertical-align:auto;zoom:1;*display:inline;overflow:hidden}.rvml{behavior:url(#default#VML)}.x-surface tspan{user-select:none;-o-user-select:none;-ms-user-select:none;-moz-user-select:-moz-none;-webkit-user-select:none;cursor:default}.x-vml-sprite{position:absolute;left:0;top:0;width:1px;height:1px}.x-vml-group{position:absolute;left:0;top:0;width:1000px;height:1000px}.x-vml-measure-span{position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;display:inline}.x-vml-base{position:relative;top:0;left:0;overflow:hidden;display:inline-block}.x-vml-base{position:relative;top:0;left:0;overflow:hidden;display:inline-block}svg,vml{overflow:hidden}.x-viewport,.x-viewport body{margin:0;padding:0;border:0 none;overflow:hidden;height:100%;position:static}.x-dd-drag-proxy{z-index:1000000!important}.x-dd-drag-repair .x-dd-drag-ghost{filter:alpha(opacity=60);opacity:.6}.x-dd-drag-repair .x-dd-drop-icon{display:none}.x-dd-drag-ghost{filter:alpha(opacity=85);opacity:.85;padding:5px;padding-left:20px;white-space:nowrap;color:#000;font:normal 11px Helvetica Neue,Arial,sans-serif;border:1px solid;border-color:#ddd #bbb #bbb #ddd;background-color:#fff}.x-dd-drop-icon{position:absolute;top:3px;left:3px;display:block;width:16px;height:16px;background-color:transparent;background-position:center;background-repeat:no-repeat;z-index:1}.x-view-selector{position:absolute;left:0;top:0;width:0;background-color:#c3daf9;border:1px dotted #39b;filter:alpha(opacity=50);opacity:.5;zoom:1}.x-dd-drop-nodrop .x-dd-drop-icon{background-image:url('../../extjs/resources/themes/images/default/dd/drop-no.gif')}.x-dd-drop-ok .x-dd-drop-icon{background-image:url('../../extjs/resources/themes/images/default/dd/drop-yes.gif')}.x-dd-drop-ok-add .x-dd-drop-icon{background-image:url('../../extjs/resources/themes/images/default/dd/drop-add.gif')}.x-resizable-handle{position:absolute;z-index:100;font-size:1px;line-height:6px;overflow:hidden;zoom:1;filter:alpha(opacity=0);opacity:0;background-color:#fff}.x-collapsed .x-resizable-handle{display:none}.x-resizable-handle-east{width:6px;height:100%;right:0;top:0}.x-resizable-over .x-resizable-handle-east{cursor:e-resize}.x-resizable-handle-south{width:100%;height:6px;left:0;bottom:0}.x-resizable-over .x-resizable-handle-south{cursor:s-resize}.x-resizable-handle-west{width:6px;height:100%;left:0;top:0}.x-resizable-over .x-resizable-handle-west{cursor:w-resize}.x-resizable-handle-north{width:100%;height:6px;left:0;top:0}.x-resizable-over .x-resizable-handle-north{cursor:n-resize}.x-resizable-handle-southeast{width:6px;height:6px;right:0;bottom:0;z-index:101}.x-resizable-over .x-resizable-handle-southeast{cursor:se-resize}.x-resizable-handle-northwest{width:6px;height:6px;left:0;top:0;z-index:101}.x-resizable-over .x-resizable-handle-northwest{cursor:nw-resize}.x-resizable-handle-northeast{width:6px;height:6px;right:0;top:0;z-index:101}.x-resizable-over .x-resizable-handle-northeast{cursor:ne-resize}.x-resizable-handle-southwest{width:6px;height:6px;left:0;bottom:0;z-index:101}.x-resizable-over .x-resizable-handle-southwest{cursor:sw-resize}.x-ie .x-resizable-handle-east{margin-right:-1px}.x-ie .x-resizable-handle-south{margin-bottom:-1px}.x-resizable-over .x-resizable-handle,.x-resizable-pinned .x-resizable-handle{filter:alpha(opacity=100);opacity:1}.x-window .x-window-handle{filter:alpha(opacity=0);opacity:0}.x-window-collapsed .x-window-handle{display:none}.x-resizable-proxy{border:1px dashed #3b5a82;position:absolute;left:0;top:0;overflow:hidden;z-index:50000}.x-resizable-overlay{position:absolute;left:0;top:0;width:100%;height:100%;display:none;z-index:200000;background-color:#fff;filter:alpha(opacity=0);opacity:0}.x-resizable-over .x-resizable-handle-east,.x-resizable-over .x-resizable-handle-west,.x-resizable-pinned .x-resizable-handle-east,.x-resizable-pinned .x-resizable-handle-west{background-position:left;background-image:url('../../extjs/resources/themes/images/default/sizer/e-handle.gif')}.x-resizable-over .x-resizable-handle-south,.x-resizable-over .x-resizable-handle-north,.x-resizable-pinned .x-resizable-handle-south,.x-resizable-pinned .x-resizable-handle-north{background-position:top;background-image:url('../../extjs/resources/themes/images/default/sizer/s-handle.gif')}.x-resizable-over .x-resizable-handle-southeast,.x-resizable-pinned .x-resizable-handle-southeast{background-position:top left;background-image:url('../../extjs/resources/themes/images/default/sizer/se-handle.gif')}.x-resizable-over .x-resizable-handle-northwest,.x-resizable-pinned .x-resizable-handle-northwest{background-position:bottom right;background-image:url('../../extjs/resources/themes/images/default/sizer/nw-handle.gif')}.x-resizable-over .x-resizable-handle-northeast,.x-resizable-pinned .x-resizable-handle-northeast{background-position:bottom left;background-image:url('../../extjs/resources/themes/images/default/sizer/ne-handle.gif')}.x-resizable-over .x-resizable-handle-southwest,.x-resizable-pinned .x-resizable-handle-southwest{background-position:top right;background-image:url('../../extjs/resources/themes/images/default/sizer/sw-handle.gif')}.x-splitter .x-collapse-el{position:absolute;cursor:pointer;background-color:transparent;background-repeat:no-repeat!important}.x-layout-split-left,.x-layout-split-right{top:50%;margin-top:-17px;width:5px;height:35px}.x-layout-split-top,.x-layout-split-bottom{left:50%;width:35px;height:5px;margin-left:-17px}.x-layout-split-left{background:no-repeat top right;background-image:url('../../extjs/resources/themes/images/default/util/splitter/mini-left.gif')}.x-layout-split-right{background:no-repeat top left;background-image:url('../../extjs/resources/themes/images/default/util/splitter/mini-right.gif')}.x-layout-split-top{background:no-repeat top left;background-image:url('../../extjs/resources/themes/images/default/util/splitter/mini-top.gif')}.x-layout-split-bottom{background:no-repeat top left;background-image:url('../../extjs/resources/themes/images/default/util/splitter/mini-bottom.gif')}.x-splitter-collapsed .x-layout-split-left{background:no-repeat top left;background-image:url('../../extjs/resources/themes/images/default/util/splitter/mini-right.gif')}.x-splitter-collapsed .x-layout-split-right{background:no-repeat top right;background-image:url('../../extjs/resources/themes/images/default/util/splitter/mini-left.gif')}.x-splitter-collapsed .x-layout-split-top{background:no-repeat top left;background-image:url('../../extjs/resources/themes/images/default/util/splitter/mini-bottom.gif')}.x-splitter-collapsed .x-layout-split-bottom{background:no-repeat top left;background-image:url('../../extjs/resources/themes/images/default/util/splitter/mini-top.gif')}.x-splitter-horizontal{cursor:e-resize;cursor:row-resize;font-size:1px}.x-splitter-vertical{cursor:e-resize;cursor:col-resize;font-size:1px}.x-splitter-collapsed,.x-splitter-horizontal-noresize,.x-splitter-vertical-noresize{cursor:default}.x-splitter-active{z-index:4;font-size:1px;background-color:#b4b4b4;filter:alpha(opacity=80);opacity:.8}.x-splitter-active .x-collapse-el{filter:alpha(opacity=30);opacity:.3}.x-proxy-el{position:absolute;background:#b4b4b4;filter:alpha(opacity=80);opacity:.8}.x-docked{position:absolute!important;z-index:1}.x-docked-top{border-bottom-width:0!important}.x-docked-bottom{border-top-width:0!important}.x-docked-left{border-right-width:0!important}.x-docked-right{border-left-width:0!important}.x-docked-noborder-top{border-top-width:0!important}.x-docked-noborder-right{border-right-width:0!important}.x-docked-noborder-bottom{border-bottom-width:0!important}.x-docked-noborder-left{border-left-width:0!important}.x-box-inner{overflow:hidden;zoom:1;position:relative;left:0;top:0}.x-box-item{position:absolute!important;left:0;top:0}.x-rtl .x-box-item{right:0;left:auto}.x-box-layout-ct,.x-border-layout-ct{overflow:hidden;zoom:1}.x-border-layout-ct{background-color:#fdfdfd;position:relative}.x-overflow-hidden{overflow:hidden!important}.x-inline-children>*{display:inline-block!important}.x-abs-layout-ct{position:relative}.x-abs-layout-item{position:absolute!important}.x-fit-item{position:relative}.x-border-region-slide-in{z-index:5}.x-region-collapsed-placeholder{z-index:4}.x-accordion-hd .x-panel-header-text{color:black;font-weight:normal}.x-accordion-hd{background:#fbfafa!important;-webkit-box-shadow:inset 0 0 0 0 #fbfafa;-moz-box-shadow:inset 0 0 0 0 #fbfafa;box-shadow:inset 0 0 0 0 #fbfafa}.x-accordion-hd .x-tool-collapse-top,.x-accordion-hd .x-tool-collapse-right,.x-accordion-hd .x-tool-collapse-bottom,.x-accordion-hd .x-tool-collapse-left{background-position:0 -255px}.x-accordion-hd .x-tool-expand-top,.x-accordion-hd .x-tool-expand-right,.x-accordion-hd .x-tool-expand-bottom,.x-accordion-hd .x-tool-expand-left{background-position:0 -240px}.x-accordion-hd .x-tool-over .x-tool-collapse-top,.x-accordion-hd .x-tool-over .x-tool-collapse-right,.x-accordion-hd .x-tool-over .x-tool-collapse-bottom,.x-accordion-hd .x-tool-over .x-tool-collapse-left{background-position:-15px -255px}.x-accordion-hd .x-tool-over .x-tool-expand-top,.x-accordion-hd .x-tool-over .x-tool-expand-right,.x-accordion-hd .x-tool-over .x-tool-expand-bottom,.x-accordion-hd .x-tool-over .x-tool-expand-left{background-position:-15px -240px}.x-accordion-hd{border-width:1px 0 1px 0!important;padding:4px 5px 5px 5px;border-top-color:white!important}.x-accordion-body{border-width:0!important}.x-accordion-hd-sibling-expanded{border-top-color:#bfbfbf!important;-webkit-box-shadow:inset 0 1px 0 0 white;-moz-box-shadow:inset 0 1px 0 0 white;box-shadow:inset 0 1px 0 0 white}.x-accordion-hd-last-collapsed{border-bottom-color:#fbfafa!important}.x-frame-tl,.x-frame-tr,.x-frame-tc,.x-frame-bl,.x-frame-br,.x-frame-bc{overflow:hidden;background-repeat:no-repeat}.x-frame-tc,.x-frame-bc{background-repeat:repeat-x}.x-frame-mc{position:relative;background-repeat:repeat-x;overflow:hidden}.x-box-scroller-left{float:left;height:100%;z-index:5}.x-box-scroller-left .x-toolbar-scroll-left,.x-box-scroller-left .x-tabbar-scroll-left{width:18px;position:relative;cursor:pointer;height:20px;background:transparent no-repeat -18px 0;background-image:url('../../extjs/resources/themes/images/default/tab-bar/scroll-left.gif')}.x-box-scroller-left .x-toolbar-scroll-left-hover{background-position:0 0}.x-box-scroller-left .x-toolbar-scroll-left-disabled,.x-box-scroller-left .x-tabbar-scroll-left-disabled{background-position:-18px 0;filter:alpha(opacity=50);opacity:.5;cursor:default}.x-box-scroller-left .x-toolbar-scroll-left{background-image:url('../../extjs/resources/themes/images/default/toolbar/scroll-left.gif');background-position:-14px 0}.x-box-scroller-left .x-toolbar-scroll-left-hover{background-position:0 0}.x-box-scroller-left .x-toolbar-scroll-left-disabled{background-position:-14px 0}.x-box-scroller-left .x-toolbar-scroll-left{width:14px;height:22px;border-bottom:1px solid #8db2e3}.x-horizontal-box-overflow-body{float:left}.x-box-scroller-right{float:right;height:100%;z-index:5}.x-box-scroller-right .x-toolbar-scroll-right,.x-box-scroller-right .x-tabbar-scroll-right{width:18px;position:relative;cursor:pointer;height:20px;background:transparent no-repeat 0 0;background-image:url('../../extjs/resources/themes/images/default/tab-bar/scroll-right.gif')}.x-box-scroller-right .x-toolbar-scroll-right-hover{background-position:-18px 0}.x-box-scroller-right .x-toolbar-scroll-right-disabled,.x-box-scroller-right .x-tabbar-scroll-right-disabled{background-position:0 0;filter:alpha(opacity=50);opacity:.5;cursor:default}.x-box-scroller-right .x-toolbar-scroll-right{background-image:url('../../extjs/resources/themes/images/default/toolbar/scroll-right.gif')}.x-box-scroller-right .x-toolbar-scroll-right-hover{background-position:-14px 0}.x-box-scroller-right .x-toolbar-scroll-right-disabled{background-position:0 0}.x-box-scroller-right .x-toolbar-scroll-right{width:14px;height:22px;border-bottom:1px solid #8db2e3}.x-box-scroller-top .x-box-scroller{line-height:0;font-size:0}.x-box-scroller-top .x-menu-scroll-top{background:transparent no-repeat center center;background-image:url('../../extjs/resources/themes/images/default/layout/mini-top.gif');height:8px;cursor:pointer}.x-box-scroller-bottom .x-box-scroller{line-height:0;font-size:0}.x-box-scroller-bottom .x-menu-scroll-bottom{background:transparent no-repeat center center;background-image:url('../../extjs/resources/themes/images/default/layout/mini-bottom.gif');height:8px;cursor:pointer}.x-box-menu-right{float:right;padding-right:2px}.x-column{float:left}.x-ie6 .x-column{display:inline}.x-quirks .x-ie .x-form-layout-table,.x-quirks .x-ie .x-form-layout-table tbody tr.x-form-item{position:relative}.x-tool{height:15px}.x-tool img{overflow:hidden;width:15px;height:15px;cursor:pointer;background-color:transparent;background-repeat:no-repeat;background-image:url('../../extjs/resources/themes/images/default/tools/tool-sprites.gif');margin:0}.x-panel-header-horizontal .x-tool,.x-window-header-horizontal .x-tool{margin-left:2px}.x-panel-header-vertical .x-tool,.x-window-header-vertical .x-tool{margin-top:2px}.x-panel-header-vertical .x-tool-top,.x-window-header-vertical .x-tool-top{margin:0 0 4px}.x-tool-placeholder{visibility:hidden}.x-tool-toggle{background-position:0 -60px}.x-tool-over .x-tool-toggle{background-position:-15px -60px}.x-panel-collapsed .x-tool-toggle,.x-fieldset-collapsed .x-tool-toggle{background-position:0 -75px}.x-panel-collapsed .x-tool-over .x-tool-toggle,.x-fieldset-collapsed .x-tool-over .x-tool-toggle{background-position:-15px -75px}.x-tool-close{background-position:0 0}.x-tool-minimize{background-position:0 -15px}.x-tool-maximize{background-position:0 -30px}.x-tool-restore{background-position:0 -45px}.x-tool-gear{background-position:0 -90px}.x-tool-prev{background-position:0 -105px}.x-tool-next{background-position:0 -120px}.x-tool-pin{background-position:0 -135px}.x-tool-unpin{background-position:0 -150px}.x-tool-right{background-position:0 -165px}.x-tool-left{background-position:0 -180px}.x-tool-help{background-position:0 -300px}.x-tool-save{background-position:0 -285px}.x-tool-search{background-position:0 -270px}.x-tool-minus{background-position:0 -255px}.x-tool-plus{background-position:0 -240px}.x-tool-refresh{background-position:0 -225px}.x-tool-up{background-position:0 -210px}.x-tool-down{background-position:0 -195px}.x-tool-collapse{background-position:0 -345px}.x-tool-expand{background-position:0 -330px}.x-tool-print{background-position:0 -315px}.x-tool-expand-bottom,.x-tool-collapse-bottom{background-position:0 -195px}.x-tool-expand-top,.x-tool-collapse-top{background-position:0 -210px}.x-tool-expand-left,.x-tool-collapse-left{background-position:0 -180px}.x-tool-expand-right,.x-tool-collapse-right{background-position:0 -165px}.x-tool-over .x-tool-close{background-position:-15px 0}.x-tool-over .x-tool-minimize{background-position:-15px -15px}.x-tool-over .x-tool-maximize{background-position:-15px -30px}.x-tool-over .x-tool-restore{background-position:-15px -45px}.x-tool-over .x-tool-gear{background-position:-15px -90px}.x-tool-over .x-tool-prev{background-position:-15px -105px}.x-tool-over .x-tool-next{background-position:-15px -120px}.x-tool-over .x-tool-pin{background-position:-15px -135px}.x-tool-over .x-tool-unpin{background-position:-15px -150px}.x-tool-over .x-tool-right{background-position:-15px -165px}.x-tool-over .x-tool-left{background-position:-15px -180px}.x-tool-over .x-tool-down{background-position:-15px -195px}.x-tool-over .x-tool-up{background-position:-15px -210px}.x-tool-over .x-tool-refresh{background-position:-15px -225px}.x-tool-over .x-tool-plus{background-position:-15px -240px}.x-tool-over .x-tool-minus{background-position:-15px -255px}.x-tool-over .x-tool-search{background-position:-15px -270px}.x-tool-over .x-tool-save{background-position:-15px -285px}.x-tool-over .x-tool-help{background-position:-15px -300px}.x-tool-over .x-tool-print{background-position:-15px -315px}.x-tool-over .x-tool-expand{background-position:-15px -330px}.x-tool-over .x-tool-collapse{background-position:-15px -345px}.x-tool-over .x-tool-expand-bottom,.x-tool-over .x-tool-collapse-bottom{background-position:-15px -195px}.x-tool-over .x-tool-expand-top,.x-tool-over .x-tool-collapse-top{background-position:-15px -210px}.x-tool-over .x-tool-expand-left,.x-tool-over .x-tool-collapse-left{background-position:-15px -180px}.x-tool-over .x-tool-expand-right,.x-tool-over .x-tool-collapse-right{background-position:-15px -165px}.x-horizontal-scroller-present .x-grid-body{border-bottom-width:0}.x-vertical-scroller-present .x-grid-body{border-right-width:0}.x-scroller{overflow:hidden}.x-scroller-vertical{border:1px solid #bfbfbf;border-top-color:#c5c5c5}.x-scroller-horizontal{border:1px solid #bfbfbf}.x-vertical-scroller-present .x-scroller-horizontal{border-right-width:0}.x-scroller-ct{overflow:hidden;position:absolute;margin:0;padding:0;border:0;left:0;top:0;box-sizing:content-box!important;-ms-box-sizing:content-box!important;-moz-box-sizing:content-box!important;-webkit-box-sizing:content-box!important}.x-scroller-vertical .x-scroller-ct{overflow-y:scroll}.x-scroller-horizontal .x-scroller-ct{overflow-x:scroll}.x-html html,.x-html address,.x-html blockquote,.x-html body,.x-html dd,.x-html div,.x-html dl,.x-html dt,.x-html fieldset,.x-html form,.x-html frame,.x-html frameset,.x-html h1,.x-html h2,.x-html h3,.x-html h4,.x-html h5,.x-html h6,.x-html noframes,.x-html ol,.x-html p,.x-html ul,.x-html center,.x-html dir,.x-html hr,.x-html menu,.x-html pre{display:block}.x-html li{display:list-item;list-style:disc}.x-html head{display:none}.x-html table{display:table}.x-html tr{display:table-row}.x-html thead{display:table-header-group}.x-html tbody{display:table-row-group}.x-html tfoot{display:table-footer-group}.x-html col{display:table-column}.x-html colgroup{display:table-column-group}.x-html td,.x-html th{display:table-cell}.x-html caption{display:table-caption}.x-html th{font-weight:bolder;text-align:center}.x-html caption{text-align:center}.x-html body{margin:8px}.x-html h1{font-size:2em;margin:.67em 0}.x-html h2{font-size:1.5em;margin:.75em 0}.x-html h3{font-size:1.17em;margin:.83em 0}.x-html h4,.x-html p,.x-html blockquote,.x-html ul,.x-html fieldset,.x-html form,.x-html ol,.x-html dl,.x-html dir,.x-html menu{margin:1.12em 0}.x-html h5{font-size:.83em;margin:1.5em 0}.x-html h6{font-size:.75em;margin:1.67em 0}.x-html h1,.x-html h2,.x-html h3,.x-html h4,.x-html h5,.x-html h6,.x-html b,.x-html strong{font-weight:bolder}.x-html blockquote{margin-left:40px;margin-right:40px}.x-html i,.x-html cite,.x-html em,.x-html var,.x-html address{font-style:italic}.x-html pre,.x-html tt,.x-html code,.x-html kbd,.x-html samp{font-family:monospace}.x-html pre{white-space:pre}.x-html button,.x-html textarea,.x-html input,.x-html select{display:inline-block}.x-html big{font-size:1.17em}.x-html small,.x-html sub,.x-html sup{font-size:.83em}.x-html sub{vertical-align:sub}.x-html sup{vertical-align:super}.x-html table{border-spacing:2px}.x-html thead,.x-html tbody,.x-html tfoot{vertical-align:middle}.x-html td,.x-html th{vertical-align:inherit}.x-html s,.x-html strike,.x-html del{text-decoration:line-through}.x-html hr{border:1px inset}.x-html ol,.x-html ul,.x-html dir,.x-html menu,.x-html dd{margin-left:40px}.x-html ul,.x-html menu,.x-html dir{list-style-type:disc}.x-html ol{list-style-type:decimal}.x-html ol ul,.x-html ul ol,.x-html ul ul,.x-html ol ol{margin-top:0;margin-bottom:0}.x-html u,.x-html ins{text-decoration:underline}.x-html br:before{content:"\A"}.x-html :before,.x-html :after{white-space:pre-line}.x-html center{text-align:center}.x-html :link,.x-html :visited{text-decoration:underline}.x-html :focus{outline:invert dotted thin}.x-html BDO[DIR="ltr"]{direction:ltr;unicode-bidi:bidi-override}.x-html BDO[DIR="rtl"]{direction:rtl;unicode-bidi:bidi-override}.x-nlg .x-toolbar-default{background-image:none!important}.x-nlg .x-btn-default-toolbar-small-focus,.x-nlg .x-btn-default-toolbar-small-over,.x-nlg .x-btn-default-toolbar-small-pressed{background-image:none}html{color:#000;background:#FFF}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,button,textarea,p,blockquote,th,td{margin:0;padding:0}table{border-collapse:collapse;border-spacing:0}fieldset,img{border:0}address,caption,cite,code,dfn,em,strong,th,var,optgroup{font-style:inherit;font-weight:inherit}del,ins{text-decoration:none}li{list-style:none}caption,th{text-align:left}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}q:before,q:after{content:''}abbr,acronym{border:0;font-variant:normal}sup{vertical-align:baseline}sub{vertical-align:baseline}legend{color:#000}input,button,textarea,select,optgroup,option{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit}input,button,textarea,select{*font-size:100%}body{font:13px/1.231 HelveticaNeue,helvetica,arial,clean,sans-serif!important;*font-size:small;*font:x-small}select,input,button,textarea,button{font:99% HelveticaNeue,helvetica,arial,clean,sans-serif}table{font-size:inherit;font:100%}pre,code,kbd,samp,tt{font-family:monospace;*font-size:108%;line-height:100%}html{height:100%}body{-webkit-font-smoothing:antialiased;font:13px/1.231 "Helvetica Neue","Helvetica","Arial","Lucida Grande",sans-serif;color:#484848;background:#f8f8f8;min-height:100%}a{color:#083772;text-decoration:none}a:hover{color:#0464bb}pre,code,kbd,samp,tt{font-family:"Menlo","Courier New","Courier",monospace}.iScroll ::-webkit-scrollbar,.iScroll::-webkit-scrollbar{width:6px;height:9px}.iScroll ::-webkit-scrollbar-button:start:decrement,.iScroll ::-webkit-scrollbar-button:end:increment,.iScroll::-webkit-scrollbar-button:start:decrement,.iScroll::-webkit-scrollbar-button:end:increment{display:block;height:0;background-color:transparent}.iScroll ::-webkit-scrollbar-track-piece,.iScroll::-webkit-scrollbar-track-piece{margin:10px 0;-webkit-border-radius:0;-webkit-border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px}.iScroll ::-webkit-scrollbar-thumb:vertical,.iScroll::-webkit-scrollbar-thumb:vertical{height:50px;background-color:rgba(0,0,0,0.12);-webkit-border-radius:4px}.iScroll ::-webkit-scrollbar-thumb:horizontal,.iScroll::-webkit-scrollbar-thumb:horizontal{width:50px;background-color:rgba(0,0,0,0.12);-webkit-border-radius:4px}#treecontainer .iScroll ::-webkit-scrollbar-thumb:vertical,#treecontainer .iScroll::-webkit-scrollbar-thumb:vertical{height:50px;background-color:rgba(0,0,0,0.06);-webkit-border-radius:4px}@media print{.logo{padding:0}.logo a{color:#000;font-size:1.4em}.members .member a.side{display:none}.members .member{padding:5px}.members h3.members-title{padding:5px}}#loading{position:absolute;top:50%;width:100%;margin-top:-70px}#loading .title{font-family:"Exo",sans-serif;font-size:2em;color:gray;text-align:center;white-space:nowrap;display:block}#loading .logo{background:url(../images/loading.gif) no-repeat center;display:block;height:120px}#north-region{background:#074e7c;background:-webkit-gradient(linear,left top,left bottom,from(#074e7c),to(#095f93));background:-moz-linear-gradient(top,#074e7c,#095f93)}#north-region .dropdown{padding-right:15px;background:url(../images/down-arr.png) no-repeat bottom right}#header-content{background:url(../images/logo.png) 0 0 no-repeat;color:#fff;font-family:"Helvetica Neue","Helvetica","Arial","Lucida Grande",sans-serif;line-height:20px;margin:10px 0 0 8px;padding-left:21px;font-size:1.1em;white-space:nowrap}#header-content a{color:#fff}#header-content strong{font-weight:bold;padding-right:3px}#loginContainer{text-align:right;color:#fff;line-height:25px}#loginContainer div{padding-left:10px;float:right}#loginContainer img.avatar{-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px}#loginContainer .register{font-weight:bold}#loginContainer a{color:#fff}.loginForm .username,.loginForm .password{width:100px;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;border:0;padding:2px 3px;margin-right:10px}.loginForm .submit{padding:2px 7px 2px 7px;-webkit-box-shadow:#b3f33d 0 1px 0 0 inset;-moz-box-shadow:#b3f33d 0 1px 0 0 inset;box-shadow:#b3f33d 0 1px 0 0 inset;color:#fff;text-shadow:rgba(0,0,0,0.3) 0 -1px 0;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;cursor:pointer;border:1px solid #264901;background:#91c632;background:-webkit-gradient(linear,left top,left bottom,from(#91c632),to(#519700));background:-moz-linear-gradient(top,#91c632,#519700)}.loginForm .submit:hover{background:#74b61e;background:-webkit-gradient(linear,left top,left bottom,from(#74b61e),to(#3d7e00));background:-moz-linear-gradient(top,#74b61e,#3d7e00)}.loginForm .submit.disabled{border-color:#707070;cursor:auto;background:#bbb;background:-webkit-gradient(linear,left top,left bottom,from(#bbb),to(#9c9c9c));background:-moz-linear-gradient(top,#bbb,#9c9c9c);-webkit-box-shadow:#d7d7d7 0 1px 0 0 inset;-moz-box-shadow:#d7d7d7 0 1px 0 0 inset;box-shadow:#d7d7d7 0 1px 0 0 inset}.loginForm label{margin-right:10px}.search{background:url(../images/search-box.png) no-repeat;padding:2px 0 0 25px}.search .x-panel-body-default{border:0;background:0}.search .x-form-text{border:0;background:0}#search-field .reset{background:url(../images/x.png) no-repeat;width:16px;height:16px;border:0;margin:2px 0 0 14px}#search-dropdown{border-style:solid;border-color:#bfbfbf;border-width:1px 1px 0 1px;background:white;position:absolute;width:190px;top:18px;left:23px;z-index:5}#search-dropdown .item,#search-dropdown .footer{position:relative;display:block;cursor:pointer;overflow:hidden;padding:5px 5px 5px 30px;border-width:0 0 1px 0;border-style:solid;border-color:#bfbfbf;color:#605f5f}#search-dropdown .item .title,#search-dropdown .item .class,#search-dropdown .footer .title,#search-dropdown .footer .class{white-space:pre}#search-dropdown .item .title strong,#search-dropdown .item .class strong,#search-dropdown .footer .title strong,#search-dropdown .footer .class strong{background:rgba(0,0,0,0.1);color:black}#search-dropdown .item .title,#search-dropdown .footer .title{font-weight:bold;overflow:hidden;text-overflow:ellipsis}#search-dropdown .item .title.private,#search-dropdown .footer .title.private{color:gray}#search-dropdown .item .title.removed,#search-dropdown .footer .title.removed{color:gray;text-decoration:line-through}#search-dropdown .item .class,#search-dropdown .footer .class{font-size:.85em;overflow:hidden;text-overflow:ellipsis}#search-dropdown .icon{position:absolute;float:left;top:6px;left:4px;width:18px;height:18px}#search-dropdown .icon-pkg{background:url(../images/icons.png) no-repeat 0 0}#search-dropdown .icon-class{background:url(../images/icons.png) no-repeat 0 -40px}#search-dropdown .icon-singleton{background:url(../images/icons.png) no-repeat 0 -80px}#search-dropdown .icon-subclass{background:url(../images/icons.png) no-repeat 0 -120px}#search-dropdown .icon-component{background:url(../images/icons.png) no-repeat 0 -160px}#search-dropdown .icon-cfg{background:url(../images/icons.png) no-repeat 0 -200px}#search-dropdown .icon-property{background:url(../images/icons.png) no-repeat 0 -240px}#search-dropdown .icon-method{background:url(../images/icons.png) no-repeat 0 -280px}#search-dropdown .icon-event{background:url(../images/icons.png) no-repeat 0 -320px}#search-dropdown .icon-guide{background:url(../images/icons.png) no-repeat 0 -360px}#search-dropdown .icon-video{background:url(../images/icons.png) no-repeat 0 -400px}#search-dropdown .icon-example{background:url(../images/icons.png) no-repeat 0 -440px}#search-dropdown .icon-css_var{background:url(../images/icons.png) no-repeat 0 -480px}#search-dropdown .icon-css_mixin{background:url(../images/icons.png) no-repeat 0 -520px}#search-dropdown .icon-class-redirect{background:url(../images/icons.png) no-repeat 0 -560px}#search-dropdown .icon-singleton-redirect{background:url(../images/icons.png) no-repeat 0 -600px}#search-dropdown .icon-component-redirect{background:url(../images/icons.png) no-repeat 0 -640px}#search-dropdown .meta{position:absolute;top:6px;right:4px}#search-dropdown .meta .signature{font-size:.6em;text-transform:uppercase;font-weight:bold;padding:0 .5em;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px;color:white;background-color:#aaa}#search-dropdown .meta .signature.deprecated{background-color:#a00}#search-dropdown .meta .signature.removed{color:#a00;background-color:transparent;border:1px solid #a00;text-decoration:line-through}#search-dropdown .meta .signature.chainable{background-color:#0a0}#search-dropdown .meta .signature.static{background-color:#484848}#search-dropdown .meta .signature.required{background-color:#484848}#search-dropdown .meta .signature.new{color:#484848;background-color:#f5d833}#search-dropdown .meta .signature.private{background-color:#fd6b1b}#search-dropdown .meta .signature.protected{background-color:#9b86fc}#search-dropdown .item.x-item-selected{background-color:#ffa}#search-dropdown .item.x-view-over{background-color:#ffa}#search-dropdown .footer{cursor:auto;text-align:right;font-size:.85em}#search-dropdown .footer a{padding:0 .5em}#footer{background:#f8f8f8;color:gray;text-align:right;font-size:10px;padding-top:3px;padding-right:40px;border-color:#ebebeb;border-width:0 1px 0 0!important;border-style:solid}#footer a{color:gray}#footer #footer-content{display:block!important}.doctabs{padding-left:10px;height:19px;position:relative}.doctabs .icon-pkg{background:url(../images/icons.png) no-repeat 0 0}.doctabs .icon-class{background:url(../images/icons.png) no-repeat 0 -40px}.doctabs .icon-singleton{background:url(../images/icons.png) no-repeat 0 -80px}.doctabs .icon-subclass{background:url(../images/icons.png) no-repeat 0 -120px}.doctabs .icon-component{background:url(../images/icons.png) no-repeat 0 -160px}.doctabs .icon-cfg{background:url(../images/icons.png) no-repeat 0 -200px}.doctabs .icon-property{background:url(../images/icons.png) no-repeat 0 -240px}.doctabs .icon-method{background:url(../images/icons.png) no-repeat 0 -280px}.doctabs .icon-event{background:url(../images/icons.png) no-repeat 0 -320px}.doctabs .icon-guide{background:url(../images/icons.png) no-repeat 0 -360px}.doctabs .icon-video{background:url(../images/icons.png) no-repeat 0 -400px}.doctabs .icon-example{background:url(../images/icons.png) no-repeat 0 -440px}.doctabs .icon-css_var{background:url(../images/icons.png) no-repeat 0 -480px}.doctabs .icon-css_mixin{background:url(../images/icons.png) no-repeat 0 -520px}.doctabs .icon-class-redirect{background:url(../images/icons.png) no-repeat 0 -560px}.doctabs .icon-singleton-redirect{background:url(../images/icons.png) no-repeat 0 -600px}.doctabs .icon-component-redirect{background:url(../images/icons.png) no-repeat 0 -640px}.doctabs .doctab{position:relative;display:block;float:left;overflow:hidden;top:0;margin-left:-8px;cursor:pointer;height:28px}.doctabs .doctab .l{position:absolute;top:0;left:0;width:9px;height:29px;background:url(../images/tabs.png) no-repeat -8px -141px;z-index:3}.doctabs .doctab .r{position:absolute;right:0;top:0;width:26px;height:29px;background:url(../images/tabs.png) no-repeat 0 -239px;z-index:5}.doctabs .doctab .m{z-index:5;position:relative;padding:6px 3px 0 6px;margin:0 7px;background:url(../images/tabs.png) repeat-x 0 -173px;height:29px;overflow:hidden;white-space:nowrap;text-shadow:1px 1px 0 rgba(255,255,255,0.5);font-family:"Helvetica Neue","Helvetica","Arial","Lucida Grande",sans-serif;font-weight:bold;font-size:11px}.doctabs .doctab .m span,.doctabs .doctab .m a{padding-bottom:5px;line-height:16px;display:block;color:#2e3841;white-space:nowrap;overflow:hidden;float:left}.doctabs .doctab .m a.ov-tab{overflow:hidden;padding:0 14px 0 17px}.doctabs .doctab .m a.ov-tab-text{overflow:hidden}.doctabs .doctab .m a.main-tab{overflow:hidden;padding:0 14px 0 17px;width:140px}.doctabs .doctab .m span.icn{display:block;position:absolute;left:3px;padding-left:15px;padding-bottom:0}.doctabs .doctab a.close{position:absolute;width:11px;height:11px;top:8px;right:9px;z-index:6;background:url(../images/tabs.png) no-repeat -8px -111px!important}.doctabs .doctab a.close.ovr{background:url(../images/tabs.png) no-repeat -8px -123px!important}.doctabs .doctab.highlight{border-width:0}.doctabs .doctab.highlight .l{background:url(../images/tabs.png) no-repeat -9px -271px}.doctabs .doctab.highlight .r{background:url(../images/tabs.png) no-repeat -9px -335px;width:10px}.doctabs .doctab.highlight .m{background:url(../images/tabs.png) repeat-x 0 -303px}.doctabs .doctab.active{border-width:0}.doctabs .doctab.active .l{background:url(../images/tabs.png) no-repeat -9px -369px;z-index:6;width:13px}.doctabs .doctab.active .r{background:url(../images/tabs.png) no-repeat 3px -479px;z-index:5;width:28px}.doctabs .doctab.active .m{background:url(../images/tabs.png) repeat-x 0 -405px;z-index:5}.doctabs .doctab.overview .m{z-index:6}.doctabs .doctab.index .m a{background:url(../images/tabs.png) no-repeat 1px 1px;padding-left:16px;padding-right:12px;padding-bottom:20px}.doctabs .doctab.classes .m a{background:url(../images/tabs.png) no-repeat 2px -20px;padding-left:16px;padding-right:12px}.doctabs .doctab.guides .m a{background:url(../images/tabs.png) no-repeat 3px -55px;padding-left:16px;padding-right:12px}.doctabs .doctab.videos .m a{background:url(../images/tabs.png) no-repeat 2px -38px;padding-left:16px;padding-right:12px}.doctabs .doctab.examples .m a{background:url(../images/tabs.png) no-repeat 1px -93px;padding-left:16px;padding-right:12px}.doctabs .doctab.comments .m a{background:url(../images/tabs.png) no-repeat 2px -72px;padding-left:16px;padding-right:12px}.doctabs .tab-overflow{position:absolute;right:5px;top:8px}.doctabs .tab-overflow button{cursor:pointer;display:block;width:14px;height:20px;background:url(../images/tabs.png) no-repeat -7px -513px;border:0}.tab-menu .x-menu-item-link{padding-top:5px}.tab-menu .overflow{background:#e3e3e3}.tab-menu .close-all{background:#e3e3e3;border-top:1px dotted #aaa;font-weight:bold}.tab-menu .close-all a .x-menu-item-text{color:#666}.tab-menu .x-menu-item-icon.close{background:url(../images/x12.png) no-repeat 4px 4px}.class-overview .x-toolbar.member-links{border-radius:2px;border-color:#e4e4e4;padding:5px;border-width:1px!important}.class-overview .x-toolbar.member-links .icon-pkg{background:url(../images/icons.png) no-repeat 0 0}.class-overview .x-toolbar.member-links .icon-class{background:url(../images/icons.png) no-repeat 0 -40px}.class-overview .x-toolbar.member-links .icon-singleton{background:url(../images/icons.png) no-repeat 0 -80px}.class-overview .x-toolbar.member-links .icon-subclass{background:url(../images/icons.png) no-repeat 0 -120px}.class-overview .x-toolbar.member-links .icon-component{background:url(../images/icons.png) no-repeat 0 -160px}.class-overview .x-toolbar.member-links .icon-cfg{background:url(../images/icons.png) no-repeat 0 -200px}.class-overview .x-toolbar.member-links .icon-property{background:url(../images/icons.png) no-repeat 0 -240px}.class-overview .x-toolbar.member-links .icon-method{background:url(../images/icons.png) no-repeat 0 -280px}.class-overview .x-toolbar.member-links .icon-event{background:url(../images/icons.png) no-repeat 0 -320px}.class-overview .x-toolbar.member-links .icon-guide{background:url(../images/icons.png) no-repeat 0 -360px}.class-overview .x-toolbar.member-links .icon-video{background:url(../images/icons.png) no-repeat 0 -400px}.class-overview .x-toolbar.member-links .icon-example{background:url(../images/icons.png) no-repeat 0 -440px}.class-overview .x-toolbar.member-links .icon-css_var{background:url(../images/icons.png) no-repeat 0 -480px}.class-overview .x-toolbar.member-links .icon-css_mixin{background:url(../images/icons.png) no-repeat 0 -520px}.class-overview .x-toolbar.member-links .icon-class-redirect{background:url(../images/icons.png) no-repeat 0 -560px}.class-overview .x-toolbar.member-links .icon-singleton-redirect{background:url(../images/icons.png) no-repeat 0 -600px}.class-overview .x-toolbar.member-links .icon-component-redirect{background:url(../images/icons.png) no-repeat 0 -640px}.member-filter{height:20px;border-style:solid;border-color:#bebebe;border-width:1px;margin-left:-1px;background:white url("../images/text-bg.gif") repeat-x 0 0}.member-filter .x-form-trigger.reset{background:url(../images/x12.png) no-repeat 2px 3px;padding:0;margin:0;border:0}.member-filter input{background:transparent;border:0}.expand-all-members{background:url(../images/expandcollapse.png) no-repeat -12px 2px}.collapse-all-members{background:url(../images/expandcollapse.png) no-repeat 2px 2px}.hover-menu-button{padding-left:20px;cursor:pointer}.hover-menu-button sup{font-size:.8em;position:relative;top:-4px}.hover-menu{font-size:12px;position:absolute;padding:5px 15px 10px;background:#eaeaea;z-index:8;top:21px;border:1px solid #e4e4e4;border-top:1px solid #eaeaea;left:-16px;-moz-border-radius-bottomleft:5px;-webkit-border-bottom-left-radius:5px;border-bottom-left-radius:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-right-radius:5px;border-bottom-right-radius:5px}.hover-menu table{width:100%}.hover-menu td{vertical-align:top}.hover-menu .item{position:relative}.hover-menu a{display:block;position:relative;padding:2px 30px 2px 0;color:#0464bb;white-space:nowrap}.hover-menu a:hover{color:#083772;text-decoration:underline}.hover-menu a .signature{font-size:.6em;text-transform:uppercase;font-weight:bold;padding:0 .5em;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px;color:white;background-color:#aaa}.hover-menu a .signature.deprecated{background-color:#a00}.hover-menu a .signature.removed{color:#a00;background-color:transparent;border:1px solid #a00;text-decoration:line-through}.hover-menu a .signature.chainable{background-color:#0a0}.hover-menu a .signature.static{background-color:#484848}.hover-menu a .signature.required{background-color:#484848}.hover-menu a .signature.new{color:#484848;background-color:#f5d833}.hover-menu a .signature.private{background-color:#fd6b1b}.hover-menu a .signature.protected{background-color:#9b86fc}.hover-menu a{font-family:Helvetica,Arial,clean,sans-serif;font-size:12px}#treecontainer{background:#f8f8f8;border:0;background:-moz-linear-gradient(top,white 0,#f8f8f8 10px);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,white),color-stop(10px,#f8f8f8));background:-webkit-linear-gradient(top,white 0,#f8f8f8 10px);background:-o-linear-gradient(top,white 0,#f8f8f8 5px);background:-ms-linear-gradient(top,white 0,#f8f8f8 5px);background:linear-gradient(top,#fff 0,#f8f8f8 5px)}#treecontainer a{color:#000}#treecontainer .x-grid-cell{background:0}#treecontainer .x-grid-cell-inner{font-family:"Helvetica Neue","Helvetica","Arial","Lucida Grande",sans-serif;font-size:13px;position:relative;-webkit-transition:background-color .15s linear;-moz-transition:background-color .15s linear;-o-transition:background-color .15s linear}#treecontainer .x-grid-cell-inner .icon-pkg{background:url(../images/icons.png) no-repeat 0 0}#treecontainer .x-grid-cell-inner .icon-class{background:url(../images/icons.png) no-repeat 0 -40px}#treecontainer .x-grid-cell-inner .icon-singleton{background:url(../images/icons.png) no-repeat 0 -80px}#treecontainer .x-grid-cell-inner .icon-subclass{background:url(../images/icons.png) no-repeat 0 -120px}#treecontainer .x-grid-cell-inner .icon-component{background:url(../images/icons.png) no-repeat 0 -160px}#treecontainer .x-grid-cell-inner .icon-cfg{background:url(../images/icons.png) no-repeat 0 -200px}#treecontainer .x-grid-cell-inner .icon-property{background:url(../images/icons.png) no-repeat 0 -240px}#treecontainer .x-grid-cell-inner .icon-method{background:url(../images/icons.png) no-repeat 0 -280px}#treecontainer .x-grid-cell-inner .icon-event{background:url(../images/icons.png) no-repeat 0 -320px}#treecontainer .x-grid-cell-inner .icon-guide{background:url(../images/icons.png) no-repeat 0 -360px}#treecontainer .x-grid-cell-inner .icon-video{background:url(../images/icons.png) no-repeat 0 -400px}#treecontainer .x-grid-cell-inner .icon-example{background:url(../images/icons.png) no-repeat 0 -440px}#treecontainer .x-grid-cell-inner .icon-css_var{background:url(../images/icons.png) no-repeat 0 -480px}#treecontainer .x-grid-cell-inner .icon-css_mixin{background:url(../images/icons.png) no-repeat 0 -520px}#treecontainer .x-grid-cell-inner .icon-class-redirect{background:url(../images/icons.png) no-repeat 0 -560px}#treecontainer .x-grid-cell-inner .icon-singleton-redirect{background:url(../images/icons.png) no-repeat 0 -600px}#treecontainer .x-grid-cell-inner .icon-component-redirect{background:url(../images/icons.png) no-repeat 0 -640px}#treecontainer .private .x-grid-cell-inner,#treecontainer .private .x-grid-cell-inner a{color:#666}#treecontainer .x-grid-row-over .x-grid-cell-inner{-webkit-transition:background-color .15s linear;-moz-transition:background-color .15s linear;-o-transition:background-color .15s linear}#treecontainer .x-panel-body{border-color:#d4d4d4;background:#f8f8f8}.x-scroller-vertical{border:0}.x-tree-arrows .x-tree-elbow-plus,.x-tree-arrows .x-tree-elbow-minus,.x-tree-arrows .x-tree-elbow-end-plus,.x-tree-arrows .x-tree-elbow-end-minus{background:url("../images/arrows.png") no-repeat 2px 1px}.x-tree-arrows .x-tree-expander-over .x-tree-elbow-plus,.x-tree-arrows .x-tree-expander-over .x-tree-elbow-end-plus{background-position:2px 1px}.x-tree-arrows .x-grid-tree-node-expanded .x-tree-elbow-plus,.x-tree-arrows .x-grid-tree-node-expanded .x-tree-elbow-end-plus{background-position:-12px 1px}.x-tree-arrows .x-grid-tree-node-expanded .x-tree-expander-over .x-tree-elbow-plus,.x-tree-arrows .x-grid-tree-node-expanded .x-tree-expander-over .x-tree-elbow-end-plus{background-position:-12px 1px}#tree-container .x-grid-cell-inner{font-family:Helvetica,Arial,clean,sans-serif;font-size:12px}#treecontainer>.x-panel-body{background:transparent;border-color:#ebebeb;border-width:0 1px 0 0!important}.x-resizable-over .x-resizable-handle-east{cursor:col-resize}.x-resizable-handle-east{width:6px}.x-resizable-over .x-resizable-handle-east,.x-resizable-over .x-resizable-handle-west,.x-resizable-pinned .x-resizable-handle-east,.x-resizable-pinned .x-resizable-handle-west{background:0;border:solid #bbb;border-width:0 1px 0 0}.cls-grouping button,.cls-private-cb{font-size:11px;color:#4d4d4d;font-weight:bold;-webkit-font-smoothing:antialiased}.cls-grouping{padding:5px 0 2px 0;text-align:center}.cls-grouping button{display:inline-block;float:left;margin:0 3px;padding:1px 13px 2px 13px;border:1px solid transparent;cursor:pointer;background:transparent}.cls-grouping button.selected{color:#fff;border:1px solid #727a81;background-color:#646b72;background:#646b72;background:-webkit-gradient(linear,left top,left bottom,from(#646b72),to(#8d949b));background:-moz-linear-gradient(top,#646b72,#8d949b);-webkit-box-shadow:#5b6167 0 0 1px 0 inset;-moz-box-shadow:#5b6167 0 0 1px 0 inset;box-shadow:#5b6167 0 0 1px 0 inset;-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;-o-border-radius:10px;border-radius:10px;text-shadow:1px 1px 0 rgba(0,0,0,0.35)}.thumb-list{padding:2px}.thumb-list dd{cursor:pointer;float:left;height:100px;margin:10px;width:300px;zoom:1;line-height:1em}.thumb-list dd.over{background:#f5fde3 url(../images/sample-over.gif) no-repeat}.thumb-list dd .thumb{float:left;height:90px;margin:5px 0 0 5px;width:120px}.thumb-list dd .thumb img{border:1px solid #ddd;max-height:88px;max-width:118px;margin:auto}.thumb-list dd div{float:left;margin-left:10px;width:160px}.thumb-list dd h4{color:#555;font-size:11px;font-weight:bold;padding:3px 0}.thumb-list dd h4 span.new-sample{color:red}.thumb-list dd h4 span.updated-sample{color:blue}.thumb-list dd p{color:#777;font-size:13px}.thumb-list h2{border-bottom:2px solid #99bbe8;cursor:pointer;padding-top:6px}.thumb-list h2 div{background:transparent url(../images/group-expand-sprite.gif) no-repeat 2px -45px;color:#3764a0;padding:4px 4px 4px 17px}.thumb-list .collapsed h2 div{background-position:2px 5px}.thumb-list .collapsed dl{display:none}.touch-examples-ui .thumb-list dd .thumb{border:1px solid #ddd;background:white;background:-webkit-gradient(linear,left top,left bottom,from(white),to(#f9f9f9));background:-moz-linear-gradient(top,white,#f9f9f9)}.touch-examples-ui .thumb-list dd .thumb img{border:0;margin:7px 0 0 22px}.class-categories h1.top{margin-bottom:12px}.class-categories .notice{background-color:#ffc;text-align:center;color:#434343;font-weight:bold;padding:8px 0;margin:0 20px 15px 0;-webkit-border-radius:8px;-moz-border-radius:8px;-ms-border-radius:8px;-o-border-radius:8px;border-radius:8px}.class-categories .section{-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px;background-color:#f7f7f7;border:1px solid #ebebeb;padding:20px 10px 20px 20px;margin:0 10px 20px 0;clear:both}.class-categories .section .left-column{float:left;width:250px;margin-left:20px}.class-categories .section .middle-column{float:left;width:280px}.class-categories .section .right-column{float:left}.class-categories .section .links{margin-left:1.5em}.class-categories .section .links .new-class,.class-categories .section .links .new-members{-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px;padding:0 .5em;background:#f5d833}.class-categories .section .links .new-members{position:relative;top:-3px;font-size:5px}#failure{padding:1em}#failure h1{padding:10px 0;font-family:"Exo",sans-serif;margin-bottom:16px;font-size:2em;color:#66ab16}#failure p{margin:0 0 .8em}#center-container h1{font-family:"Exo",sans-serif;padding-bottom:5px;padding-top:2px;border-bottom:1px #f1f1f1;font-size:2em;color:#66ab16}#center-container h1 .class-source-link{color:#66ab16;margin-left:-3px;padding:.1em 0 .4em 2.3em}#center-container h1.class .class-source-link{background:url(../images/class-m.png) no-repeat 0 -5px}#center-container h1.component .class-source-link{background:url(../images/component-m.png) no-repeat 0 -5px}#center-container h1.singleton .class-source-link{background:url(../images/singleton-m.png) no-repeat 0 -5px}#center-container h1 span{color:#929292;letter-spacing:0;margin-left:10px;font-size:.5em}#center-container h1 span.class-source-tip{font-size:.5em;position:absolute;top:35px;left:100px;color:#fff;-webkit-transition:color .2s linear;-moz-transition:color .2s linear;-o-transition:color .2s linear}#center-container h1 span.class-source-tip.hover{color:#929292}#center-container h1 .signature{font-weight:bold;text-transform:uppercase;font-size:.4em;letter-spacing:2px;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;margin-left:2px;margin-right:0;padding:0 5px;color:white;background-color:#aaa}#center-container h1 .signature.deprecated{background-color:#a00}#center-container h1 .signature.removed{color:#a00;background-color:transparent;border:1px solid #a00;text-decoration:line-through}#center-container h1 .signature.chainable{background-color:#0a0}#center-container h1 .signature.static{background-color:#484848}#center-container h1 .signature.required{background-color:#484848}#center-container h1 .signature.new{color:#484848;background-color:#f5d833}#center-container h1 .signature.private{background-color:#fd6b1b}#center-container h1 .signature.protected{background-color:#9b86fc}#center-container .guide-container table{width:900px;font-size:.9em}#center-container .guide-container table th{background-color:#eee;font-weight:bold;text-align:center;color:#333;padding:1px 2px}#center-container .guide-container table td{padding:3px}#center-container .print{background:url(../images/print.png) no-repeat;position:absolute;right:0;top:5px;display:block;text-indent:-9999px;width:32px;height:32px}#center-container .print.guide{right:15px;top:15px}.card-panel{line-height:1.5em}.card-panel h3{font-size:1.2em;padding:1em 0 .4em 0;font-weight:normal}#welcomeindex .markdown{margin:2em;color:#484848}#welcomeindex .markdown p{margin-bottom:1em}#welcomeindex .markdown h1{color:#66ab16;font-family:"Exo",sans-serif;font-size:2em}#welcomeindex .markdown h2{font-family:"Helvetica Neue","Helvetica","Arial","Lucida Grande",sans-serif;letter-spacing:-1px;line-height:20px;border-bottom:1px solid #f1f1f1;font-size:20px;font-weight:bold;color:#314e64;margin:30px 0 15px;padding-bottom:5px}#welcomeindex .markdown h3{font-weight:bold;color:#314e64;margin-top:.5em;padding-top:16px;font-size:16px;line-height:16px;margin-bottom:4px}#welcomeindex .markdown h3{font-weight:bold;font-size:1.1em}#welcomeindex .markdown h4{font-weight:bold}#welcomeindex .markdown ul{margin:0 0 1em 2em}#welcomeindex .markdown ul li{list-style:disc outside}#welcomeindex .markdown ol{margin:0 0 1em 2em}#welcomeindex .markdown ol li{list-style:decimal outside}#welcomeindex .markdown em{font-style:italic}#welcomeindex .markdown strong{font-weight:bold}#welcomeindex .markdown pre{background-color:#f7f7f7;border:solid 1px #e8e8e8;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px;color:#314e64;font-family:"Menlo","Courier New","Courier",monospace;padding:10px 12px;margin:10px 0 14px 0;overflow-x:auto;overflow-y:hidden}.class-overview .x-panel-body,.guide-container .x-panel-body,.comments-index .x-panel-body{min-height:100px}.class-overview .x-panel-body .clr,.guide-container .x-panel-body .clr,.comments-index .x-panel-body .clr{clear:both}.class-overview .x-panel-body p,.class-overview .x-panel-body ul,.class-overview .x-panel-body ol,.guide-container .x-panel-body p,.guide-container .x-panel-body ul,.guide-container .x-panel-body ol,.comments-index .x-panel-body p,.comments-index .x-panel-body ul,.comments-index .x-panel-body ol{color:#484848;max-width:900px}.class-overview .x-panel-body p,.guide-container .x-panel-body p,.comments-index .x-panel-body p{padding:0;margin:0 0 1em}.class-overview .x-panel-body p:last-child,.guide-container .x-panel-body p:last-child,.comments-index .x-panel-body p:last-child{margin:0}.class-overview .x-panel-body ul,.guide-container .x-panel-body ul,.comments-index .x-panel-body ul{margin:0 0 1em 2em}.class-overview .x-panel-body ul li,.guide-container .x-panel-body ul li,.comments-index .x-panel-body ul li{list-style:disc outside}.class-overview .x-panel-body ol,.guide-container .x-panel-body ol,.comments-index .x-panel-body ol{margin:0 0 1em 2em}.class-overview .x-panel-body ol li,.guide-container .x-panel-body ol li,.comments-index .x-panel-body ol li{list-style:decimal outside}.class-overview .x-panel-body em,.guide-container .x-panel-body em,.comments-index .x-panel-body em{font-style:italic}.class-overview .x-panel-body strong,.guide-container .x-panel-body strong,.comments-index .x-panel-body strong{font-weight:bold}.class-overview .x-panel-body h3,.guide-container .x-panel-body h3,.comments-index .x-panel-body h3{font-weight:bold;font-size:1.1em}.class-overview .x-panel-body h4,.guide-container .x-panel-body h4,.comments-index .x-panel-body h4{font-weight:bold}.class-overview .x-panel-body table,.guide-container .x-panel-body table,.comments-index .x-panel-body table{margin-bottom:10px}.class-overview .x-panel-body table tr:first-child td,.guide-container .x-panel-body table tr:first-child td,.comments-index .x-panel-body table tr:first-child td{color:#000;font-weight:bold}.class-overview .x-panel-body table td,.guide-container .x-panel-body table td,.comments-index .x-panel-body table td{color:#484848;padding:2px 20px 2px 0}.class-overview .x-panel-body blockquote,.guide-container .x-panel-body blockquote,.comments-index .x-panel-body blockquote{padding-left:1em;border-left:solid 1em #e8e8e8}.class-overview .x-panel-body pre.notpretty,.class-overview .x-panel-body pre.prettyprint,.guide-container .x-panel-body pre.notpretty,.guide-container .x-panel-body pre.prettyprint,.comments-index .x-panel-body pre.notpretty,.comments-index .x-panel-body pre.prettyprint{background-color:#f7f7f7;border:solid 1px #e8e8e8;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px;color:#314e64;font-family:"Menlo","Courier New","Courier",monospace;padding:10px 12px;line-height:1.3em;margin:10px 0 14px 0;max-width:900px;overflow-x:auto;overflow-y:hidden}.class-overview .x-panel-body pre.notpretty code,.class-overview .x-panel-body pre.prettyprint code,.guide-container .x-panel-body pre.notpretty code,.guide-container .x-panel-body pre.prettyprint code,.comments-index .x-panel-body pre.notpretty code,.comments-index .x-panel-body pre.prettyprint code{font-family:"Menlo","Courier New","Courier",monospace}.class-overview .x-panel-body pre.notpretty i,.class-overview .x-panel-body pre.notpretty em,.class-overview .x-panel-body pre.prettyprint i,.class-overview .x-panel-body pre.prettyprint em,.guide-container .x-panel-body pre.notpretty i,.guide-container .x-panel-body pre.notpretty em,.guide-container .x-panel-body pre.prettyprint i,.guide-container .x-panel-body pre.prettyprint em,.comments-index .x-panel-body pre.notpretty i,.comments-index .x-panel-body pre.notpretty em,.comments-index .x-panel-body pre.prettyprint i,.comments-index .x-panel-body pre.prettyprint em{font-style:normal}.class-overview .hierarchy,.class-overview .aside{-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px;background-color:#f7f7f7;border:1px solid #ebebeb;padding:0 15px 15px 10px;float:right;clear:right;margin:0 0 10px 60px;color:#484848;font-size:12px}.class-overview .hierarchy h4{font-family:"Helvetica Neue","Helvetica","Arial","Lucida Grande",sans-serif;font-size:90%;padding:11px 0 5px 0;text-transform:uppercase;color:#999}.class-overview .hierarchy .dependency,.class-overview .hierarchy .alternate-class-name{padding:0 0 0 12px;margin-top:3px}.class-overview .hierarchy .alternate-class-name{color:#484848}.class-overview .hierarchy .subclass{background:url(../images/elbow-end.gif) no-repeat -5px 0;margin-top:3px;padding:0 0 0 12px}.class-overview .hierarchy .subclass.first-child{background:0;padding-left:15px}.class-overview .aside{width:180px}.class-overview .aside h4{margin:4px 0;font-size:larger;color:#526c83;padding-left:22px}.class-overview .aside img{width:50px;float:left;margin-right:10px}.class-overview .aside.guide h4{background:url(../images/tabs.png) no-repeat -5px -55px}.class-overview .aside.video h4{background:url(../images/tabs.png) no-repeat -6px -38px}.class-overview .aside.example h4{background:url(../images/tabs.png) no-repeat -7px -93px}#center-container .doc-contents h1,#center-container .doc-contents h2{font-family:"Helvetica Neue","Helvetica","Arial","Lucida Grande",sans-serif;letter-spacing:-1px;line-height:20px;border-bottom:1px solid #f1f1f1;font-size:20px;font-weight:bold;color:#314e64;margin:30px 0 15px;padding-bottom:5px;letter-spacing:0}#center-container .doc-contents h3{font-weight:bold;color:#314e64;margin-top:.5em;padding-top:16px;font-size:16px;line-height:16px;margin-bottom:4px}.class-overview p.private{border:1px solid #999;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px;color:#600;background-color:#fee;padding:10px 50px;text-align:center}.class-overview p.enum{border:1px solid #999;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px;color:#060;background-color:#efe;padding:10px 50px;text-align:center}.class-overview .signature{font-weight:bold;text-transform:uppercase;font-size:.7em;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px;margin-left:5px;padding:0 3px;color:white;background-color:#aaa}.class-overview .signature.deprecated{background-color:#a00}.class-overview .signature.removed{color:#a00;background-color:transparent;border:1px solid #a00;text-decoration:line-through}.class-overview .signature.chainable{background-color:#0a0}.class-overview .signature.static{background-color:#484848}.class-overview .signature.required{background-color:#484848}.class-overview .signature.new{color:#484848;background-color:#f5d833}.class-overview .signature.private{background-color:#fd6b1b}.class-overview .signature.protected{background-color:#9b86fc}.class-overview .new-keyword{margin-left:0;margin-right:3px;color:#083772}.class-overview .cfgGroup{margin:10px 0 3px 0}.members{color:#444;padding-top:10px;clear:both;first-child-padding-top:0}.members h1,.members h2{font-family:"Helvetica Neue","Helvetica","Arial","Lucida Grande",sans-serif;letter-spacing:-1px;line-height:20px;border-bottom:1px solid #f1f1f1;font-size:20px;font-weight:bold;color:#314e64;margin:30px 0 15px;padding-bottom:5px;font-size:14px;margin:15px 0 5px}.members .pre{font-family:"Menlo","Courier New","Courier",monospace;font-size:.9em}.members .definedBy{float:right;padding:0 20px 0 0;font-weight:bold;color:#666}.members .subsection .definedBy{padding-top:0}.members h3.pa{padding:10px 0 5px 0}.members .members-section,.members .comments-section{margin-bottom:40px}.members h3.members-title{margin:20px 0 5px 0;padding:0 0 0 25px;font-size:1.3em;font-weight:bold}.members .icon-pkg{background:url(../images/icons.png) no-repeat 0 0}.members .icon-class{background:url(../images/icons.png) no-repeat 0 -40px}.members .icon-singleton{background:url(../images/icons.png) no-repeat 0 -80px}.members .icon-subclass{background:url(../images/icons.png) no-repeat 0 -120px}.members .icon-component{background:url(../images/icons.png) no-repeat 0 -160px}.members .icon-cfg{background:url(../images/icons.png) no-repeat 0 -200px}.members .icon-property{background:url(../images/icons.png) no-repeat 0 -240px}.members .icon-method{background:url(../images/icons.png) no-repeat 0 -280px}.members .icon-event{background:url(../images/icons.png) no-repeat 0 -320px}.members .icon-guide{background:url(../images/icons.png) no-repeat 0 -360px}.members .icon-video{background:url(../images/icons.png) no-repeat 0 -400px}.members .icon-example{background:url(../images/icons.png) no-repeat 0 -440px}.members .icon-css_var{background:url(../images/icons.png) no-repeat 0 -480px}.members .icon-css_mixin{background:url(../images/icons.png) no-repeat 0 -520px}.members .icon-class-redirect{background:url(../images/icons.png) no-repeat 0 -560px}.members .icon-singleton-redirect{background:url(../images/icons.png) no-repeat 0 -600px}.members .icon-component-redirect{background:url(../images/icons.png) no-repeat 0 -640px}.members h4.members-subtitle{padding-left:25px;margin:10px 0 7px 0}.members ul ul{list-style:circle;margin-top:1em}.members .sub-desc{margin:.5em 0 1em}.members .description .short p{margin:0}.members a{text-decoration:none}.members .member{position:relative;min-height:2.5em;border-style:solid;border-color:#e0e0e0;border-width:0 0 1px 0;padding:10px 22px}.members .member.open>a.side.toggleComments,.members .member.open>a.side.expandable{background:#ebf3fe}.members .member.open>a.side.toggleComments span,.members .member.open>a.side.expandable span{background:url(../images/member-expanded.gif) no-repeat 2px 12px}.members .member a.side{display:block;position:absolute;top:0;left:0;bottom:0;cursor:default!important}.members .member a.side span{display:block;width:15px;height:30px}.members .member a.side.expandable,.members .member a.side.toggleComments{cursor:pointer}.members .member a.side.expandable span,.members .member a.side.toggleComments span{background:url(../images/member-collapsed.gif) no-repeat 3px 13px}.members .member a.side.expandable:hover span,.members .member a.side.toggleComments:hover span{background:url(../images/member-hover.gif) no-repeat 3px 13px}.members .member.first-child{border-width:1px 0}.members .member .long{display:none}.members .member .meta{float:right;text-align:right}.members .member .defined-in,.members .member .view-source{font-family:"Helvetica","Arial",sans-serif;font-size:.9em}.members .member a.defined-in{color:#888}.members .member a.defined-in:hover{color:#0464bb}.members .member a.view-source{color:rgba(0,0,0,0);-webkit-transition:color .2s linear;-moz-transition:color .2s linear;-o-transition:color .2s linear;font-size:.9em}.members .member a.view-source:hover{-webkit-transition:color .2s linear;-moz-transition:color .2s linear;-o-transition:color .2s linear;color:#0464bb}.members .member:hover a.view-source{color:gray;-webkit-transition:color .2s linear;-moz-transition:color .2s linear;-o-transition:color .2s linear}.members .member.open a.side.expandable{background:#ebf3fe;background:-webkit-gradient(linear,left top,right top,from(#ebf3fe),to(#d9e8fc));background:-moz-linear-gradient(left,#ebf3fe,#d9e8fc)}.members .member.open a.side.expandable span{background:url(../images/member-expanded.gif) no-repeat 1px 2px}.members .member.open .short{display:none}.members .member.open .long{display:block}.members .member .name{font-weight:bold}.members .member .title{padding-bottom:3px}.signature-box{border:1px solid #999;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px;padding:10px 50px;text-align:center}.signature-box.template{background-color:#eee}.signature-box.deprecated,.signature-box.removed{color:#600;background-color:#fee}.signature-box.deprecated strong,.signature-box.removed strong{text-transform:uppercase;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px;padding:0 3px}.signature-box.deprecated strong{color:white;background-color:#a00}.signature-box.removed strong{color:#a00;border:1px solid #a00;background-color:transparent;text-decoration:line-through}#center-container .guide-container{padding:10px;font-size:14px}#center-container .guide-container .toc{float:right;background-color:#f7f7f7;border:solid 1px #e8e8e8;padding:10px 20px;margin:0 14px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px}#center-container .guide-container h1{background:url(../images/doc-m.png) no-repeat -5px -5px;padding:10px 0 10px 55px;font-family:"Exo",sans-serif;margin-bottom:16px;font-size:2em;color:#66ab16}#center-container .guide-container h2{font-family:"Helvetica Neue","Helvetica","Arial","Lucida Grande",sans-serif;letter-spacing:-1px;line-height:20px;border-bottom:1px solid #f1f1f1;font-size:20px;font-weight:bold;color:#314e64;margin:30px 0 15px;padding-bottom:5px}#center-container .guide-container h3{font-weight:bold;color:#314e64;margin-top:.5em;padding-top:16px;font-size:16px;line-height:16px;margin-bottom:4px}#center-container .guide-container hr{display:none}p.screenshot img{display:block;margin:0 auto}p.screenshot span{display:block;text-align:center;font-size:smaller}#video object,#video p,#video h1{margin:15px}#exampleindex,#videoindex,#guideindex,#classindex{padding:15px 10px 10px 10px}.x-panel-body-default{border-width:0}pre.inline-example{margin-top:0}.inline-example-tb{background:none!important;border:0}.inline-example-tb .x-btn table{margin:0}.inline-example-tb .x-btn table td{padding:0}.inline-example-tb .x-btn button{display:inline-block}.inline-example-tb span.x-btn-inner{line-height:16px}.inline-example-tb .active span.x-btn-inner{color:#57a7dc}.inline-example-tb span.x-btn-icon{background:url(../images/example-icons.png) no-repeat;filter:alpha(opacity=60);opacity:.6}.inline-example-tb span.x-btn-icon.code{background-position:-2px -17px}.inline-example-tb span.x-btn-icon.preview{background-position:-3px -63px}.inline-example-tb span.x-btn-icon.copy{background-position:-2px -86px}.inline-example-tb .active span.x-btn-icon{background:url(../images/example-icons.png) no-repeat;filter:alpha(opacity=100);opacity:1}.inline-example-tb .active span.x-btn-icon.code{background-position:-30px -17px}.inline-example-tb .active span.x-btn-icon.preview{background-position:-31px -63px}.inline-example-tb .active span.x-btn-icon.copy{background-position:-30px -86px}.inline-example-editor{border:0}.inline-example-editor .x-panel-body{border:solid 1px #e8e8e8;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px;padding:5px 15px!important;background:#f7f7f7}.inline-example-editor .CodeMirror-scroll{height:auto}.inline-example-editor .CodeMirror pre{line-height:1.3em}.inline-example-cmp{margin-bottom:10px;padding-right:25px}.tablet.landscape{padding:83px 87px;background:url(../images/tablet-l.jpg) no-repeat}.tablet.portrait{padding:87px 80px;background:url(../images/tablet-p.jpg) no-repeat}.phone.landscape{padding:22px 79px;width:637px;height:367px;background:url(../images/phone-l.jpg) no-repeat}.phone.portrait{padding:78px 25px;width:368px;height:637px;background:url(../images/phone-p.jpg) no-repeat}.miniphone.landscape{padding:79px 22px 6px 25px;width:368px;height:303px;background:url(../images/phone-small-p.jpg) no-repeat}.miniphone.portrait{padding:22px 6px 25px 79px;width:303px;height:368px;background:url(../images/phone-small-l.jpg) no-repeat}.example-container h1{padding:15px 0!important}.example-toolbar{height:35px;padding:7px 5px;width:100%;border-radius:2px;border-color:#e4e4e4;border-width:1px!important;border-style:solid;background:#f1f1f1;background:-webkit-gradient(linear,left top,left bottom,from(#f1f1f1),to(#e9e9e9));background:-moz-linear-gradient(top,#f1f1f1,#e9e9e9);-webkit-box-shadow:rgba(255,255,255,0.5) 0 1px 0 0 inset;-moz-box-shadow:rgba(255,255,255,0.5) 0 1px 0 0 inset;box-shadow:rgba(255,255,255,0.5) 0 1px 0 0 inset}.example-toolbar .separator{border-left:1px solid #ccc;margin:0 10px;display:inline-block;float:left;width:1px}.comment-btn{background:url(../images/comment-bubble.png) no-repeat;color:#fff;text-align:center;line-height:16px;height:20px;text-shadow:1px 1px 0 #58b0e0;font-weight:bold;cursor:pointer}.comment-counter-small{cursor:pointer;background:url(../images/comment-bubble.png) no-repeat 2px -55px;padding-left:21px;font-weight:normal;font-size:11px}#center-container .comments-large-expander{clear:both}#center-container .comments-large-expander .comments-expander.open>a.side.toggleComments,#center-container .comments-large-expander .comments-expander.open>a.side.expandable{background:#ebf3fe}#center-container .comments-large-expander .comments-expander.open>a.side.toggleComments span,#center-container .comments-large-expander .comments-expander.open>a.side.expandable span{background:url(../images/member-expanded.gif) no-repeat 2px 12px}#center-container .comments-large-expander .comments-expander a.side{display:block;position:absolute;top:0;left:0;bottom:0;cursor:default!important}#center-container .comments-large-expander .comments-expander a.side span{display:block;width:15px;height:30px}#center-container .comments-large-expander .comments-expander a.side.expandable,#center-container .comments-large-expander .comments-expander a.side.toggleComments{cursor:pointer}#center-container .comments-large-expander .comments-expander a.side.expandable span,#center-container .comments-large-expander .comments-expander a.side.toggleComments span{background:url(../images/member-collapsed.gif) no-repeat 3px 13px}#center-container .comments-large-expander .comments-expander a.side.expandable:hover span,#center-container .comments-large-expander .comments-expander a.side.toggleComments:hover span{background:url(../images/member-hover.gif) no-repeat 3px 13px}#center-container .comments-large-expander .comments-expander.open>a.side.toggleComments.drop-target-hover{background:#94b773}#center-container .comments-large-expander h3.icon-comment{padding:0 0 5px 25px;margin:30px 0 5px 0;background:url(../images/comment-bubble.png) no-repeat 1px -26px}.comments-expander{color:#484848;border-width:1px 0;border-style:solid;border-color:#e0e0e0;position:relative;padding:0 0 10px 25px}.comments-expander.open>a.side.toggleComments.drop-target-hover{background:#94b773}.comments-expander.open{min-height:40px}.comments-expander .loading{font-weight:bold;background:url(../images/ajax-loader.gif) no-repeat 0 9px;padding:8px 0 0 25px}.comments-expander .name{padding:10px 0 0 0;display:block;font-weight:normal!important}.auth-form form{position:relative;display:inline-block}.auth-form form .username,.auth-form form .password{border:1px solid #bbb}.auth-form .before-text{display:inline-block;line-height:22px;margin:10px 10px 1px 4px;font-weight:bold}form.commentForm{position:relative;border:1px solid #c7d1d9;padding:10px 15px 15px 15px;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px;background:#ecf5fc;margin:10px 55px 0 0}form.commentForm.newComment{margin:20px 55px 10px 5px}form.commentForm .subscribe{margin-right:5px;color:#444}form.commentForm .subscribe .sep{color:#aaa}form.commentForm .subscribe input{color:#000;margin-right:5px;margin-left:5px}form.commentForm .com-meta{position:relative;margin-top:8px;text-align:right}form.commentForm .com-meta .toggleCommentGuide{font-weight:bold}form.commentForm img{-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px;position:absolute;left:0;margin-right:10px}form.commentForm .form-author{font-weight:normal;line-height:25px;position:absolute;left:35px;margin-bottom:10px}form.commentForm .CodeMirror,form.commentForm textarea{border:1px solid #ccc;background:#fff;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;width:100%;padding:3px;border:auto}form.commentForm .CodeMirror .CodeMirror-scroll,form.commentForm textarea{height:auto;min-height:8em}form.commentForm input.sub{-webkit-box-shadow:#b3f33d 0 1px 0 0 inset;-moz-box-shadow:#b3f33d 0 1px 0 0 inset;box-shadow:#b3f33d 0 1px 0 0 inset;color:#fff;text-shadow:rgba(0,0,0,0.3) 0 -1px 0;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;cursor:pointer;border:1px solid #264901;background:#91c632;background:-webkit-gradient(linear,left top,left bottom,from(#91c632),to(#519700));background:-moz-linear-gradient(top,#91c632,#519700);font-weight:bold;width:120px;margin-left:20px;padding:5px 8px;font-size:12px}form.commentForm input.sub:hover{background:#74b61e;background:-webkit-gradient(linear,left top,left bottom,from(#74b61e),to(#3d7e00));background:-moz-linear-gradient(top,#74b61e,#3d7e00)}form.commentForm input.sub.disabled{border-color:#707070;cursor:auto;background:#bbb;background:-webkit-gradient(linear,left top,left bottom,from(#bbb),to(#9c9c9c));background:-moz-linear-gradient(top,#bbb,#9c9c9c);-webkit-box-shadow:#d7d7d7 0 1px 0 0 inset;-moz-box-shadow:#d7d7d7 0 1px 0 0 inset;box-shadow:#d7d7d7 0 1px 0 0 inset}form.commentForm .commentGuideTxt{border-top:1px solid #c7d1d9;margin-top:15px;padding-top:10px}form.commentForm .commentGuideTxt .markdown.preview{float:left;width:310px}form.commentForm .commentGuideTxt .markdown.preview pre{border:0;padding:0;margin:0;line-height:1.5em;background:transparent}form.commentForm .commentGuideTxt .markdown.result{margin-left:320px;width:260px}form.commentForm .commentGuideTxt .markdown{background:#fff;padding:20px;position:relative;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px}form.commentForm .commentGuideTxt .markdown h4{position:absolute;top:0;right:0;padding:5px 10px;background:rgba(0,0,0,0.05)}form.commentForm .commentGuideTxt code{padding-left:5px}form.commentForm .commentGuideTxt ul{margin-top:5px}.comment{padding-top:10px;padding-left:2px}.comment.drop-target-hover{background:#94b773}.comment:hover>.com-meta>.top-right>.command,.comment:hover>.com-meta>.top-right>.vote,.comment:hover>.comments-replies-expander>.replies-button{-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;-o-transition:opacity .2s linear;filter:alpha(opacity=100);opacity:1}.comment .target{color:#666;font-size:90%;font-weight:normal}.comment .com-meta{position:relative;text-size:13px}.comment .com-meta img{-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px}.comment .com-meta img.drag-handle{cursor:all-scroll}.comment .com-meta .author{position:absolute;left:40px;font-weight:bold;top:2px;font-size:14px}.comment .com-meta .author.moderator{color:#3d7e00}.comment .com-meta .top-right{position:absolute;right:20px;top:0}.comment .com-meta .top-right .command,.comment .com-meta .top-right .time{display:inline-block;margin-left:10px}.comment .com-meta .top-right .tag{-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px;padding:0 1em;font-weight:bold;color:white;background:#484848;position:relative}.comment .com-meta .top-right .tag a{color:#484848;position:absolute;top:-5px;right:-5px;background:white;width:13px;height:13px;text-align:center;line-height:7px;border:2px solid #484848;-webkit-border-radius:7px;-moz-border-radius:7px;-ms-border-radius:7px;-o-border-radius:7px;border-radius:7px}.comment .com-meta .top-right .tag a:hover{border-color:red;color:red}.comment .com-meta .top-right .add-tag{color:#999;background:white;width:13px;height:13px;text-align:center;text-indent:-1px;line-height:9px;border:2px solid #999;-webkit-border-radius:7px;-moz-border-radius:7px;-ms-border-radius:7px;-o-border-radius:7px;border-radius:7px;filter:alpha(opacity=0);opacity:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;-o-transition:opacity .2s linear}.comment .com-meta .top-right .add-tag:hover{border-color:#3d7e00;color:#3d7e00}.comment .com-meta .top-right .editComment,.comment .com-meta .top-right .deleteComment,.comment .com-meta .top-right .readComment{color:#999;filter:alpha(opacity=0);opacity:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;-o-transition:opacity .2s linear}.comment .com-meta .top-right .readComment.read{color:white;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px;background:#3d7e00;font-weight:bold;padding:0 1em;filter:alpha(opacity=50);opacity:.5}.comment .com-meta .top-right .time{color:#999;text-align:right;width:90px}.comment .com-meta .vote{position:absolute;left:2px;top:33px}.comment .com-meta .vote .voteCommentUp{position:absolute;display:block;width:20px;height:18px;background:url(../images/vote-arrows.png) no-repeat}.comment .com-meta .vote .voteCommentUp.selected{filter:alpha(opacity=40);opacity:.4;background-position:-22px 0}.comment .com-meta .vote .voteCommentUp:hover,.comment .com-meta .vote .voteCommentUp.selected:hover{filter:alpha(opacity=100);opacity:1;background-position:-22px 0}.comment .com-meta .vote .voteCommentDown{position:absolute;display:block;width:20px;height:18px;top:36px;background:url(../images/vote-arrows.png) no-repeat 0 -35px}.comment .com-meta .vote .voteCommentDown.selected{background-position:-22px -35px;filter:alpha(opacity=40);opacity:.4}.comment .com-meta .vote .voteCommentDown:hover,.comment .com-meta .vote .voteCommentDown.selected:hover{filter:alpha(opacity=100);opacity:1;background-position:-22px -35px}.comment .com-meta .vote .score{position:absolute;font-weight:bold;width:20px;top:15px;color:#aaa;text-align:center;font-size:16px}.comment .content{min-height:65px;padding:0 0 30px 40px;border-bottom:1px solid #eee}.comment .comments-replies-expander .replies-button{position:relative;top:-20px;height:0;display:block;padding-left:40px;font-weight:bold;filter:alpha(opacity=0);opacity:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;-o-transition:opacity .2s linear;color:#94b773}.comment .comments-replies-expander .replies-button.with-replies{filter:alpha(opacity=100);opacity:1}.comment .comments-replies-expander .replies-button:hover{color:#3d7e00}.comment .comments-replies-expander .comments-list-with-form{padding-left:1em;border-left:1em solid #ebf3fe}.comment .deleted-comment{text-align:center;background:#ffd76e;border:1px solid #e1ba53;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px;font-weight:bold}.comments-tageditor{padding-top:10px}.comments-tageditor-boundlist .x-boundlist-item-over{background:#94b773}#commentindex{padding:5px}#commentindex .comments-full-list .comments-list{margin:0 auto;max-width:1000px}#commentindex .comments-full-list .x-mask{opacity:.9;background:white url(../images/ajax-loader.gif) no-repeat center}.recent-comments-pager{display:block;padding:10px 0 5px 35px;position:relative;color:gray}.recent-comments-pager span{display:block;position:absolute;left:0;top:5px;width:27px;height:28px;background:url(../images/comment.png) no-repeat 0 -25px}.recent-comments-pager:hover span{background-position:-59px -25px}.comments-header-menu h1 a{margin-right:1em;color:gray}.comments-header-menu h1 a:hover{filter:alpha(opacity=70);opacity:.7}.comments-header-menu h1 a.selected{color:#66ab16}.comments-users .x-panel-body .users-list ul,.comments-users .x-panel-body .users-list li{margin:0;padding:0;list-style:none}.comments-users .x-panel-body .users-list li{height:30px;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px;cursor:pointer}.comments-users .x-panel-body .users-list li:hover{background:#eee}.comments-users .x-panel-body .users-list li.x-item-selected{background:#94b773}.comments-users .x-panel-body .users-list .score{display:block;float:left;width:40px;padding:0 5px;line-height:30px;font-weight:bold;color:#aaa;text-align:center;font-size:16px}.comments-users .x-panel-body .users-list img{-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px;display:block;float:left;margin-top:2px;margin-right:10px}.comments-users .x-panel-body .users-list .username{line-height:30px;font-weight:bold}.comments-users .x-panel-body .users-list .username.moderator{color:#3d7e00}.comments-users .x-panel-body .users-list .x-item-selected .score{color:#484848}.comments-users .x-panel-body .users-list .x-item-selected .username.moderator{color:#083772}.comments-toplist .x-panel-body .top-list ul,.comments-toplist .x-panel-body .top-list li{margin:0;padding:0;list-style:none}.comments-toplist .x-panel-body .top-list li{height:30px;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px;cursor:pointer}.comments-toplist .x-panel-body .top-list li:hover{background:#eee}.comments-toplist .x-panel-body .top-list li.x-item-selected{background:#94b773}.comments-toplist .x-panel-body .top-list .score{display:block;float:left;width:40px;padding:0 5px;line-height:30px;font-weight:bold;color:#aaa;text-align:center;font-size:16px}.comments-toplist .x-panel-body .top-list .x-item-selected .score{color:#484848}.comments-toplist .x-panel-body .top-list .text{float:left;width:250px;overflow:hidden;line-height:30px;font-weight:bold}.comments-filter-field table{border-style:solid;border-color:#bebebe;border-width:1px;background:white url("../images/text-bg.gif") repeat-x 0 0}.comments-filter-field .x-form-trigger.reset{background:url(../images/x12.png) no-repeat 2px 3px;padding:0;margin:0;border:0}.comments-filter-field input{background:transparent;border:0}#extjs-welcome{-webkit-font-smoothing:antialiased;color:#434343;font:14px/1.4em "Helvetica Neue","Helvetica","Arial","Lucida Grande",sans-serif}#extjs-welcome .logo{background:url(../images/logo-screen-noglow.png) no-repeat;width:155px;height:72px;margin:0 0 0 -13px;position:relative;z-index:99}#extjs-welcome .logo a{display:block;width:100%;height:100%;text-indent:-9999px}#extjs-welcome a{color:#126499}#extjs-welcome ul{font-size:13px;margin-bottom:1em;margin-left:18px}#extjs-welcome ul li{list-style:square}#extjs-welcome h1,#extjs-welcome h2{text-rendering:optimizeLegibility;text-shadow:rgba(255,255,255,0.8) 0 1px 1px}#extjs-welcome h2{color:#314e64;line-height:1.0em;margin-top:60px;margin-bottom:8px;font-size:25px;font-weight:normal;font-family:"Exo",sans-serif;font-weight:normal}#extjs-welcome h2 strong{font-size:1.2em;color:#4c8e0e}#extjs-welcome h3{font-size:16px;line-height:20px;margin-bottom:4px;margin-top:1em;font-weight:bold;color:#314e64;padding:0}#extjs-welcome p{margin-bottom:1em}#extjs-welcome p.intro{color:#314e64;font-size:16px;line-height:22px}#extjs-welcome .auto_columns{width:100%}#extjs-welcome .auto_columns::after{clear:both;content:'.';display:block;height:0;visibility:hidden}#extjs-welcome .auto_columns .auto_columns p{font-size:13px;line-height:16px}#extjs-welcome .two .column{width:48%;padding-right:2%;float:left;position:relative;box-sizing:content-box}#extjs-welcome a.button-link{font-family:"Helvetica Neue",Helvetica,Arial,"Lucida Grande",sans-serif;border-color:#274807!important;background:#4c8e0e url(../images/link-green-standard.png) 0 0 repeat-x;color:white;-webkit-background-clip:padding-box;border:1px solid #477a09;font-size:15px;font-weight:bold;line-height:1.0em;padding:6px 8px 9px;text-decoration:none;text-shadow:rgba(0,0,0,0.3) 0 -1px 0;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;display:inline-block}#extjs-welcome a.button-link:active{position:relative;top:1px}#extjs-welcome a.button-link:hover,#extjs-welcome a.button-link:focus,#extjs-welcome a.button-link:active{background:#38690a url(../images/link-green-standard-over.png) 0 0 repeat-x}#extjs-welcome a.more-icon{background:url(../images/more.png) no-repeat right center;font-size:12px;font-weight:bold;padding-right:16px}#extjs-welcome .button-group a{margin-right:12px}#extjs-welcome .right{padding-top:140px;overflow:hidden}#extjs-welcome .content{margin:0 auto;text-align:left;width:900px;padding-top:30px}#extjs-welcome section{padding:36px 18px;background:white url(../images/welcome-bg-js4.gif) left bottom no-repeat;min-height:300px;position:relative}#extjs-welcome .meta{color:#8f8f8f}#extjs-welcome .inline-social{text-indent:-9999px;margin-top:6px}#extjs-welcome .inline-social li{display:block;float:right;margin-bottom:8px}#extjs-welcome .inline-social li a{color:#314e64;display:block;line-height:1.0em;width:16px;height:16px;margin-right:4px;background-position:top left;background-repeat:no-repeat}#extjs-welcome .inline-social li a.facebook{background:url(../images/facebook-16.png) no-repeat}#extjs-welcome .inline-social li a.linkedin{background:url(../images/linkedin-16.png) no-repeat}#extjs-welcome .inline-social li a.tumblr{background:url(../images/tumblr-16.png) no-repeat}#extjs-welcome .inline-social li a.twitter{background:url(../images/twitter-16.png) no-repeat}#extjs-welcome .inline-social li a.vimeo{background:url(../images/vimeo-16.png) no-repeat}#extjs-welcome .inline-social li a.rss{background:url(../images/rss-16.png) no-repeat}#extjs-welcome .feature-img{position:absolute;right:20px;top:-100px}#extjs-welcome footer{color:#b9d4e7;padding:8px 18px;font-size:13px}#extjs-welcome .news{width:860px;margin:20px auto}#extjs-welcome .news h1{padding-bottom:15px}#extjs-welcome .news .l{float:left;width:450px}#extjs-welcome .news .r{margin-left:470px}#extjs-welcome .news .item{padding-bottom:3px}#extjs-welcome .news .date{color:#666;font-size:.8em;width:90px;display:block;float:left;font-family:"Menlo","Courier New","Courier",monospace}.doc-test-ready{font-weight:bold;color:#333}.doc-test-failure{font-weight:bold;color:red}.doc-test-success{font-weight:bold;color:green}.CodeMirror{line-height:1em;font-family:monospace}.CodeMirror-scroll{overflow:auto;height:300px;position:relative;outline:0}.CodeMirror-gutter{position:absolute;left:0;top:0;z-index:10;background-color:#f7f7f7;border-right:1px solid #eee;min-width:2em;height:100%}.CodeMirror-gutter-text{color:#aaa;text-align:right;padding:.4em .2em .4em .4em;white-space:pre!important}.CodeMirror-lines{padding:.4em;white-space:pre}.CodeMirror pre{-moz-border-radius:0;-webkit-border-radius:0;-o-border-radius:0;border-radius:0;border-width:0;margin:0;padding:0;background:transparent;font-family:inherit;font-size:inherit;padding:0;margin:0;white-space:pre;word-wrap:normal;line-height:inherit}.CodeMirror-wrap pre{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-wrap .CodeMirror-scroll{overflow-x:hidden}.CodeMirror textarea{outline:none!important}.CodeMirror pre.CodeMirror-cursor{z-index:10;position:absolute;visibility:hidden;border-left:1px solid black;border-right:0;width:0}.CodeMirror-focused pre.CodeMirror-cursor{visibility:visible}div.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused div.CodeMirror-selected{background:#d7d4f0}.CodeMirror-searching{background:#ffa;background:rgba(255,255,0,.4)}.cm-s-default span.cm-keyword{color:#708}.cm-s-default span.cm-atom{color:#219}.cm-s-default span.cm-number{color:#164}.cm-s-default span.cm-def{color:#00f}.cm-s-default span.cm-variable{color:black}.cm-s-default span.cm-variable-2{color:#05a}.cm-s-default span.cm-variable-3{color:#085}.cm-s-default span.cm-property{color:black}.cm-s-default span.cm-operator{color:black}.cm-s-default span.cm-comment{color:#a50}.cm-s-default span.cm-string{color:#a11}.cm-s-default span.cm-string-2{color:#f50}.cm-s-default span.cm-meta{color:#555}.cm-s-default span.cm-error{color:#f00}.cm-s-default span.cm-qualifier{color:#555}.cm-s-default span.cm-builtin{color:#30a}.cm-s-default span.cm-bracket{color:#cc7}.cm-s-default span.cm-tag{color:#170}.cm-s-default span.cm-attribute{color:#00c}.cm-s-default span.cm-header{color:#a0a}.cm-s-default span.cm-quote{color:#090}.cm-s-default span.cm-hr{color:#999}.cm-s-default span.cm-link{color:#00c}span.cm-header,span.cm-strong{font-weight:bold}span.cm-em{font-style:italic}span.cm-emstrong{font-style:italic;font-weight:bold}span.cm-link{text-decoration:underline}div.CodeMirror span.CodeMirror-matchingbracket{color:#0f0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#f22}.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} \ No newline at end of file diff --git a/docs/resources/css/reset.css b/docs/resources/css/reset.css new file mode 100644 index 0000000..9d68206 --- /dev/null +++ b/docs/resources/css/reset.css @@ -0,0 +1,59 @@ +/* line 1, ../sass/reset.scss */ +html { color: #000; background: #FFF; } + +/* line 1, ../sass/reset.scss */ +body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, button, textarea, p, blockquote, th, td { margin: 0; padding: 0; } + +/* line 1, ../sass/reset.scss */ +table { border-collapse: collapse; border-spacing: 0; } + +/* line 1, ../sass/reset.scss */ +fieldset, img { border: 0; } + +/* line 1, ../sass/reset.scss */ +address, caption, cite, code, dfn, em, strong, th, var, optgroup { font-style: inherit; font-weight: inherit; } + +/* line 1, ../sass/reset.scss */ +del, ins { text-decoration: none; } + +/* line 1, ../sass/reset.scss */ +li { list-style: none; } + +/* line 1, ../sass/reset.scss */ +caption, th { text-align: left; } + +/* line 1, ../sass/reset.scss */ +h1, h2, h3, h4, h5, h6 { font-size: 100%; font-weight: normal; } + +/* line 1, ../sass/reset.scss */ +q:before, q:after { content: ''; } + +/* line 1, ../sass/reset.scss */ +abbr, acronym { border: 0; font-variant: normal; } + +/* line 1, ../sass/reset.scss */ +sup { vertical-align: baseline; } + +/* line 1, ../sass/reset.scss */ +sub { vertical-align: baseline; } + +/* line 1, ../sass/reset.scss */ +legend { color: #000; } + +/* line 1, ../sass/reset.scss */ +input, button, textarea, select, optgroup, option { font-family: inherit; font-size: inherit; font-style: inherit; font-weight: inherit; } + +/* line 1, ../sass/reset.scss */ +input, button, textarea, select { *font-size: 100%; } + +/* line 1, ../sass/reset.scss */ +body { font: 13px/1.231 HelveticaNeue, helvetica, arial, clean, sans-serif !important; *font-size: small; *font: x-small; } + +/* line 1, ../sass/reset.scss */ +select, input, button, textarea, button { font: 99% HelveticaNeue,helvetica,arial,clean,sans-serif; } + +/* line 1, ../sass/reset.scss */ +table { font-size: inherit; font: 100%; } + +/* line 1, ../sass/reset.scss */ +pre, code, kbd, samp, tt { font-family: monospace; *font-size: 108%; line-height: 100%; } diff --git a/docs/resources/css/scrollbars.css b/docs/resources/css/scrollbars.css new file mode 100644 index 0000000..190869b --- /dev/null +++ b/docs/resources/css/scrollbars.css @@ -0,0 +1,17 @@ +/* line 2, ../sass/scrollbars.scss */ +.iScroll ::-webkit-scrollbar, .iScroll::-webkit-scrollbar { width: 6px; height: 9px; } + +/* line 9, ../sass/scrollbars.scss */ +.iScroll ::-webkit-scrollbar-button:start:decrement, .iScroll ::-webkit-scrollbar-button:end:increment, .iScroll::-webkit-scrollbar-button:start:decrement, .iScroll::-webkit-scrollbar-button:end:increment { display: block; height: 0; background-color: transparent; } + +/* line 15, ../sass/scrollbars.scss */ +.iScroll ::-webkit-scrollbar-track-piece, .iScroll::-webkit-scrollbar-track-piece { margin: 10px 0; -webkit-border-radius: 0; -webkit-border-bottom-right-radius: 4px; -webkit-border-bottom-left-radius: 4px; } + +/* line 22, ../sass/scrollbars.scss */ +.iScroll ::-webkit-scrollbar-thumb:vertical, .iScroll::-webkit-scrollbar-thumb:vertical { height: 50px; background-color: rgba(0, 0, 0, 0.12); -webkit-border-radius: 4px; } + +/* line 28, ../sass/scrollbars.scss */ +.iScroll ::-webkit-scrollbar-thumb:horizontal, .iScroll::-webkit-scrollbar-thumb:horizontal { width: 50px; background-color: rgba(0, 0, 0, 0.12); -webkit-border-radius: 4px; } + +/* line 36, ../sass/scrollbars.scss */ +#treecontainer .iScroll ::-webkit-scrollbar-thumb:vertical, #treecontainer .iScroll::-webkit-scrollbar-thumb:vertical { height: 50px; background-color: rgba(0, 0, 0, 0.06); -webkit-border-radius: 4px; } diff --git a/docs/resources/css/welcome.css b/docs/resources/css/welcome.css new file mode 100644 index 0000000..8975af0 --- /dev/null +++ b/docs/resources/css/welcome.css @@ -0,0 +1,84 @@ +/* line 17, ../sass/welcome.scss */ +#extjs-welcome { -webkit-font-smoothing: antialiased; color: #434343; font: 14px/1.4em "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; } +/* line 22, ../sass/welcome.scss */ +#extjs-welcome .logo { background: url(../images/logo-screen-noglow.png) no-repeat; width: 155px; height: 72px; margin: 0 0 0 -13px; position: relative; z-index: 99; } +/* line 30, ../sass/welcome.scss */ +#extjs-welcome .logo a { display: block; width: 100%; height: 100%; text-indent: -9999px; } +/* line 38, ../sass/welcome.scss */ +#extjs-welcome a { color: #126499; } +/* line 42, ../sass/welcome.scss */ +#extjs-welcome ul { font-size: 13px; margin-bottom: 1em; margin-left: 18px; } +/* line 46, ../sass/welcome.scss */ +#extjs-welcome ul li { list-style: square; } +/* line 51, ../sass/welcome.scss */ +#extjs-welcome h1, #extjs-welcome h2 { text-rendering: optimizeLegibility; text-shadow: rgba(255, 255, 255, 0.8) 0 1px 1px; } +/* line 56, ../sass/welcome.scss */ +#extjs-welcome h2 { color: #314e64; line-height: 1.0em; margin-top: 60px; margin-bottom: 8px; font-size: 28px; font-weight: normal; font-family: "klavika-web-1", "klavika-web-2", sans-serif; font-weight: normal; } +/* line 67, ../sass/welcome.scss */ +#extjs-welcome h2 strong { font-size: 1.2em; color: #4c8e0e; } +/* line 72, ../sass/welcome.scss */ +#extjs-welcome h3 { font-size: 16px; line-height: 20px; margin-bottom: 4px; margin-top: 1em; font-weight: bold; color: #314e64; padding: 0; } +/* line 82, ../sass/welcome.scss */ +#extjs-welcome p { margin-bottom: 1em; } +/* line 86, ../sass/welcome.scss */ +#extjs-welcome p.intro { color: #314e64; font-size: 16px; line-height: 22px; } +/* line 92, ../sass/welcome.scss */ +#extjs-welcome .auto_columns { width: 100%; } +/* line 94, ../sass/welcome.scss */ +#extjs-welcome .auto_columns::after { clear: both; content: '.'; display: block; height: 0px; visibility: hidden; } +/* line 101, ../sass/welcome.scss */ +#extjs-welcome .auto_columns .auto_columns p { font-size: 13px; line-height: 16px; } +/* line 107, ../sass/welcome.scss */ +#extjs-welcome .two .column { width: 48%; padding-right: 2%; float: left; position: relative; box-sizing: content-box; } +/* line 116, ../sass/welcome.scss */ +#extjs-welcome a.button-link { font-family: "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; border-color: #274807 !important; background: #4c8e0e url(../images/link-green-standard.png) 0 0 repeat-x; color: white; -webkit-background-clip: padding-box; border: 1px solid #477A09; font-size: 15px; font-weight: bold; line-height: 1.0em; padding: 6px 8px 9px; text-decoration: none; text-shadow: rgba(0, 0, 0, 0.3) 0 -1px 0; -moz-border-radius: 3px; -webkit-border-radius: 3px; -o-border-radius: 3px; -ms-border-radius: 3px; -khtml-border-radius: 3px; border-radius: 3px; display: inline-block; } +/* line 136, ../sass/welcome.scss */ +#extjs-welcome a.button-link:active { position: relative; top: 1px; } +/* line 140, ../sass/welcome.scss */ +#extjs-welcome a.button-link:hover, #extjs-welcome a.button-link:focus, #extjs-welcome a.button-link:active { background: #38690a url(../images/link-green-standard-over.png) 0 0 repeat-x; } +/* line 145, ../sass/welcome.scss */ +#extjs-welcome a.more-icon { background: url(../images/more.png) no-repeat right center; font-size: 12px; font-weight: bold; padding-right: 16px; } +/* line 152, ../sass/welcome.scss */ +#extjs-welcome .button-group a { margin-right: 12px; } +/* line 156, ../sass/welcome.scss */ +#extjs-welcome .right { padding-top: 140px; overflow: hidden; } +/* line 161, ../sass/welcome.scss */ +#extjs-welcome .content { margin: 0 auto; text-align: left; width: 900px; padding-top: 30px; } +/* line 168, ../sass/welcome.scss */ +#extjs-welcome section { padding: 36px 18px; background: white url(../images/welcome-bg-js4.gif) left bottom no-repeat; min-height: 300px; position: relative; } +/* line 175, ../sass/welcome.scss */ +#extjs-welcome .meta { color: #8F8F8F; } +/* line 179, ../sass/welcome.scss */ +#extjs-welcome .inline-social { text-indent: -9999px; margin-top: 6px; } +/* line 185, ../sass/welcome.scss */ +#extjs-welcome .inline-social li { display: block; float: right; margin-bottom: 8px; } +/* line 190, ../sass/welcome.scss */ +#extjs-welcome .inline-social li a { color: #314e64; display: block; line-height: 1.0em; width: 16px; height: 16px; margin-right: 4px; background-position: top left; background-repeat: no-repeat; } +/* line 201, ../sass/welcome.scss */ +#extjs-welcome .inline-social li a.facebook { background: url(../images/facebook-16.png) no-repeat; } +/* line 202, ../sass/welcome.scss */ +#extjs-welcome .inline-social li a.linkedin { background: url(../images/linkedin-16.png) no-repeat; } +/* line 203, ../sass/welcome.scss */ +#extjs-welcome .inline-social li a.tumblr { background: url(../images/tumblr-16.png) no-repeat; } +/* line 204, ../sass/welcome.scss */ +#extjs-welcome .inline-social li a.twitter { background: url(../images/twitter-16.png) no-repeat; } +/* line 205, ../sass/welcome.scss */ +#extjs-welcome .inline-social li a.vimeo { background: url(../images/vimeo-16.png) no-repeat; } +/* line 206, ../sass/welcome.scss */ +#extjs-welcome .inline-social li a.rss { background: url(../images/rss-16.png) no-repeat; } +/* line 211, ../sass/welcome.scss */ +#extjs-welcome .feature-img { position: absolute; right: 20px; top: -100px; } +/* line 217, ../sass/welcome.scss */ +#extjs-welcome footer { color: #b9d4e7; padding: 8px 18px; font-size: 13px; } +/* line 223, ../sass/welcome.scss */ +#extjs-welcome .news { width: 860px; margin: 20px auto; } +/* line 226, ../sass/welcome.scss */ +#extjs-welcome .news h1 { padding-bottom: 15px; } +/* line 229, ../sass/welcome.scss */ +#extjs-welcome .news .l { float: left; width: 450px; } +/* line 233, ../sass/welcome.scss */ +#extjs-welcome .news .r { margin-left: 470px; } +/* line 236, ../sass/welcome.scss */ +#extjs-welcome .news .item { padding-bottom: 3px; } +/* line 239, ../sass/welcome.scss */ +#extjs-welcome .news .date { color: #666; font-size: 0.8em; width: 50px; display: block; float: left; font-family: "Menlo", "Courier New", Courier, monospace; } diff --git a/docs/resources/css/welcome_ie6.css b/docs/resources/css/welcome_ie6.css new file mode 100644 index 0000000..83e8b32 --- /dev/null +++ b/docs/resources/css/welcome_ie6.css @@ -0,0 +1,72 @@ +/* +Syntax error: Undefined variable: "$scope-reset-css". + on line 1 of /Users/renesaarsoo/work/jsduck/template/extjs/resources/themes/stylesheets/ext4/default/core/_reset.scss + from line 1 of /Users/renesaarsoo/work/jsduck/template/extjs/resources/themes/stylesheets/ext4/default/_core.scss + from line 10 of /Users/renesaarsoo/work/jsduck/template/resources/sass/welcome_ie6.scss + +1: /Users/renesaarsoo/work/jsduck/template/resources/sass/welcome_ie6.scss + +Backtrace: +/Users/renesaarsoo/work/jsduck/template/extjs/resources/themes/stylesheets/ext4/default/core/_reset.scss:1 +/Users/renesaarsoo/work/jsduck/template/extjs/resources/themes/stylesheets/ext4/default/_core.scss:1 +/Users/renesaarsoo/work/jsduck/template/resources/sass/welcome_ie6.scss:10 +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/script/variable.rb:50:in `_perform' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/script/node.rb:40:in `perform' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/perform.rb:126:in `visit_if' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/perform.rb:18:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/perform.rb:145:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/perform.rb:145:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/perform.rb:145:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/perform.rb:18:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/perform.rb:145:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/perform.rb:145:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/perform.rb:145:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/perform.rb:18:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/base.rb:53:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/perform.rb:27:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/perform.rb:39:in `with_environment' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/perform.rb:26:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/perform.rb:47:in `visit_root' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/perform.rb:18:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/perform.rb:7:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/perform.rb:7:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/root_node.rb:20:in `render' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/engine.rb:293:in `_render' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/engine.rb:240:in `render' +/Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/compiler.rb:136:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/compiler.rb:122:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/compiler.rb:135:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/logger.rb:45:in `red' +/Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/compiler.rb:134:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/compiler.rb:114:in `compile_if_required' +/Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/compiler.rb:99:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/compiler.rb:97:in `each' +/Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/compiler.rb:97:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/compiler.rb:122:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/compiler.rb:96:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/commands/update_project.rb:37:in `perform' +/Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/commands/base.rb:18:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/commands/project_base.rb:19:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/exec/sub_command_ui.rb:43:in `perform!' +/Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/exec/sub_command_ui.rb:15:in `run!' +/Library/Ruby/Gems/1.8/gems/compass-0.11.5/bin/compass:25 +/Library/Ruby/Gems/1.8/gems/compass-0.11.5/bin/compass:39:in `call' +/Library/Ruby/Gems/1.8/gems/compass-0.11.5/bin/compass:39 +/usr/bin/compass:19:in `load' +/usr/bin/compass:19 +*/ +body:before { + white-space: pre; + font-family: monospace; + content: "Syntax error: Undefined variable: \"$scope-reset-css\".\A on line 1 of /Users/renesaarsoo/work/jsduck/template/extjs/resources/themes/stylesheets/ext4/default/core/_reset.scss\A from line 1 of /Users/renesaarsoo/work/jsduck/template/extjs/resources/themes/stylesheets/ext4/default/_core.scss\A from line 10 of /Users/renesaarsoo/work/jsduck/template/resources/sass/welcome_ie6.scss\A \A 1: /Users/renesaarsoo/work/jsduck/template/resources/sass/welcome_ie6.scss"; } diff --git a/docs/resources/images/ajax-loader.gif b/docs/resources/images/ajax-loader.gif new file mode 100644 index 0000000000000000000000000000000000000000..e14a0487dc604ad2f12a17257bc8f21af3c3257e GIT binary patch literal 1849 zcmb8wdr(tX9tZI2z31lM+(&YVNJFGf2tkvOnD7cwta}r}L!cC>Ld!!EF|6TH0~N!z zh~$9~mU)ewQ z_ve{&=6vS+JHI*EyRr=1tPp|7KM>^Evu9?r`SIh&V`F2>%gauub9i_-xZ?GC_wL<0 zKRtgNiMx;nq#kNiIs`;0Eg-2HNfu`n}fs}5TiJRAFONk)^+ddRk4 z>a-s^Ahp(7Tj~#5_iweoR&x-EeG2$gaF;rCO9+YJPN@_{`LW-OqGl6$)94@1iSgaP z6}Tk2GH;#0-ZQ%c@Nb-S?{uW`;VV!4g(KYR?__&C?kh!c{69P}xhm4n-KK9OUKBB6 z{NSDKNpi_yj02RsRh(=z(?RGPNMhO-IbpZ(IuFBSY9$TS5@n-8AXAHw>0!)#ht(4Wj)S*45GS&?oJ=sm?4fb?b z8r$^x^ZKy4)UUNj9LhyT-dx=jq;zhinVDGx)BMSx%K;+yWcv#R=@*#0zmM4M&3tqh z&P08%;rqr7P_jJo_etB^%(r_E<|S2?mi_ouPl@kpV(l+WfsH%VoTJq`Ex+jS)wIQ( z@SV~Ro{S3%XbS;8QU?KU8R=P-EU2hs>5QZJN<8YFh|}>#&R8x;=OkNhR1YaeqOieS zj*HoJ{ki#TqDYB0ao&!lz^;I0rsT532Qbsuvn4>tHXrfIstE$O7TC26QAsdLWv_-H zk$hYIQ9eO8*pDE9U>j`Z31LaU3XyifASoatUwo`zPz6S1X_>cAd0kw#LXp4uo};mr zE9-dQ_w?fkDdYVip1TYn?z~i{ltQng9#c^LovwSA`$)3!r)JgqD1s>7T+M@g!a@j@ zN(Dn;#Op_^a{ZudXH|uO*doYoNF#gX;WcXmy{17`>f=(yf@)UrvnjP)lqg;|CH-yL z)E{?Q55)4aPhYgPh~Jocl&kBqUDwYAxRTaA<2YDN`FPsgFx3$+7u^2McMdT_@hb>C z8^K!meD(;!C4g4IFsP7tA%P+iPipv?)>O1!8Q!v%jPmT#=-XS2XY5)r>GT46 zd{lRiww_7<^YObA>s~du_E}OMzBaOn4vd=iA?|&jw8YHf>dEyUnzqJB(y%MXNYciS*VkYD8xc{?A{L7re z8hga-k{u};1pOXkA?Mf#Gk9#g8DR@~5D1G>^b8)vu=Z*@3dw?6os;z{!;jQ|yR?;Q zoE@dq*(m)%E<~CXAI9YR4Gh_tv9hF!=ooH*X1Ep3-%S`eCsW51-PwV!9d z61Nvtq=`&IXcAmNnzWrZaR4E0mu-S+8WJFGDDpdf@aq_G1UAf)o#CWS+_1D5Rf zzW2W0@B8m_^RtIWhQ@{%h8Zax)+=<~Pv6m}o}}MLbDvzI%RW-9lPYeKwizHsvvC7~ zl54h51)28B>95c`Jsm{uiG6$H?GSZXb>n`%Wj zdbX&PWfutXRi1CR+gw}XaM0qRq9`$kC?=^!GFDXF!kw;2;mZdkG?bxc2Qi__c6%|bs3Y5 z($a$7=hz9W$q=SQC`v_9g0Lv$4TI8%azT-0MUo4BY{?6W=~<|6*P(WMSom11S_qIy za8Sc|sow$f3z*<=0sEj(odjjma=ciM%d-`&jsoWmWE%l?!DfC{X9xR=GAZeXp+Rvg z?u?evbc1FhpHg%Krq~|V{y#b6sWW`s9RF#S{t@lKc)Q*DRM;LKf4g8)uQhje{XEe3}zF11}`M;C2j5JiIdmK*!hnV>+SBGp(t z<*$v%KX?i39cY}N;}f60oEUyHaXRt*pHsQ%3wJZ!f%TKQo4Y#4f4lPi&=+@eiSDuS z7eCB_&xY>&5Or$<4^K7r=ifQYpUDh&POKjb_jOvk_jHdwv3_}P=lEL0?cP_t)yrz5eC1Y;|L5{K%{4zJ5FBk95Md=!Fkn@t*0n9(1nFj~@Byy@A|n`^W07 g%&)`v3^T}l^GoLUoU=Y4#?@5j5|AKzK)oW1XT?(4d9uXWCjH_+FlBx553005NQTIxpEqx|(POGFSPB1nqRZ1OeTh6+!0GdSE>tHKd!nRxk!> z9IS7G2=+wCIfImL0TqH^*96{3KSyAYw-*Wv3sMCA%?rDp|6Udc0smI<^Hc==%P9*z z1E3ljg9J*8fkhEu88A==A_kF^fAyno_R-V(H!%wPPol07{_wtl zESmMcyD6m##fA6H$nY8I(s&sD5=u~C)O%WV62FzveY{>4$7WLw_wG^gtm;Gq>1yOS%qvWc!ihizD& z&ynsZcIi;Z^V{n#uB|Ettp?J5^Dr^Tvww%MCMa6C=@6a#LM?Zq$BTS*i+Dr)39r&_ zuyDlA)l27qBCiC!`9z&!9M{{*g~b~gX~=p?d|t6#J1=_Ui-7Tlx!7tdF=ema;9W(f zi5}I7_Jw%8sODeT2szITG{H9)X#p94!1rXP38UwGkp!@zSv!qSa z#S|?R7N}^Nc)bRG5|xAyr3|HuVd3WFh2WE^TSsmDoE>Xw<`HYL!hA~muVxtOUhYFT zREF*y#E}y^=|qZ`xqRmc_(-`q{(SDh!+c68TbHR9V!^1MopIMjiLJ-4e-I6a_N{Iq>>*cDx{ z1@oDuGV>~IUvgT;eLQ&(vE$1B%Qavx<7#_tCM2Zttk)y#e%;R$Dq<5Sx@^B9%=-)b z7=+ZWADd2i;dcJ%G^KgyX{F-V{Fgh8$E?Xs)!xhLtFue_ zzCah|0Hu>@EOlq=^yLYr^w>YKddA6?zBsnAboeIm{~k7Dh%sr%Ji%aMP2@xtybS_F3~L|BH~@VCK} z^L_XZuiPQPY4H0U+H$LIP7?_650+}`tG}w6!bqu7T~{fD@4y&3`V7()&OWhIUz|n1 z^cj1_XF1QX`Ta9|A^SxH%=XLOKy&hD1u5OmY5~C4GJFm^gCogz$|TChmZjh0L$3y} zLIrJbS5F%^b4i7h3n2~Kq8=q%`5l*8nP>2IW0X3wi^$hXxRvYb%fQ-EQAgp~lIH}j zbK@wG4Wn|~N|nl~fWm)jrN)U&GJC3A)mlef*#WT6V4^Dvg~XB50Gf=E)%0Y^8eY&VqR0_l{LJ*T-ZATT)DueiQ~q z4<*%+Ftzjvj~^srhITz^tp3OVta*4pnHctte~y6R$()XmmrACfPr|!1iiE_8n)xUl zD@n>WK`%QCOlut^??ZgtXXA6XSc$Xv(3sEKs{9?S(xEeH9`yzLTwR%8niF@G7#U{4 z285nc%RS?7t;!{&!gz=FvO=h$jHbyU7B;IH8ODvb2GS^*kOe%Wrv|m!b|cl523R+0 z4p#Bi*WH>!xl~;vy6(NQ&YA`y&VUWL67R+5G~r>IRu-CL3Q9w~k@q|$Z}gLc`(wSV z3F_E%9mao&K6-CQwpbHIIS3&VLk(FO0ff&pm~aL9LTh(x-Rp1Np3+So5#N?` z=WZCWr!htMSC7wG5vH`KSgJ@O5K<2tf)H&wuGt(OF2uuv;_kWBmZBmzGQ`XM_|P-& zTivWbSp(XR7N6i{6B@Sy+=!^0IGk_l(>5?8e1+o+T=$k{Jajb!cZwID&8YA*o3B>1 zalYpllP#?@Yr+;2Q?eAsm_5jg=u+8IAVGM!852#39^00M$RKG`2 zDg#m2)lW++)ui(t&(anfdSNQQ3_(dj*WFeeHcm!4npR)y?sMt zcRDAFFXbQbh`(YGYhqfvP2jl4CPJ;4Vf~kVnknnERV6lcl8vbCwt$>~k0HS)=dNpq zCHfY$r5xp=4WtGEl;z}>qRPkkN|fS+B@LsfDq_Ndv7uC)$(&pD<=fS`1&5XWPTh?v z&S2Em`}ot;i!xL=`6$j86Tn+iP18WkV1G5L__K%Wme}w!?)TCgncWsQR0j%6>a|KG zI|Mr^W|Dm@7mJz9LSfuz+nK2@%vmPMph!Fk#Z09Gl*+)2q?*y@O97$%I*)N*SaV42ibF z*o~Xrc2mJZJ3q|!L6}l;rc@8ID9}A2r}cZY#16vUgxRyVUbMC(($R#t5+gXK_!>xV z?@CJ&TePNFy678(j|lh+k$x6-&G19%68ZgT&HA+T*s0|1yPbTGRSF2@9=imm6}1=L+R_Yg%g-E5o-5Rq>0$~xwYt=9}_ zev47V-c`;0PV`w4;*}r1uMG?OMk*>MHd>DuSp9XrQ#La*bI^-<5{pP@rNidhdjQ0 zI>iWk<~Q27j2g{<6nJQLBJ!30zRpq@RGJ23`T}5?^lJ;E$ymL!oJqG5F451;VFz(21TWpoMNE!t- zNl?{^+5mEyDcTEibfOlr>HOUE#0V>%xZvK6<`Q_{-*BF+i!|qzw;<%orTo6URGOwW zHm+&NL(+@WciM3JHVzN?7;s<}Q$-rqknpFKLTCu=Xb56VG(xn&>(8aHWq)O()sKi{H0y= zj!X#{VnMvFW;jd3LV=&xJ6T+bpHFYWCxy>jRf1>c*ruZWxWyVi=`Hc%Th3ZA6SOPb zI<=9UZBQ4MG?Uuv)QVwCoLJPpzoALn$SA>5O}TR-bcBnd^FEJ;TB$P-L*uBZ)P@|$ zGaK7__Cy)H@prQEsv|R%x6&?~uK#f~&VjF`6ENpdM3l``xydyKY!MW3LJb-$Jk#}C zv8w?26)x7}ln<>xbiYzUV6gQ=V%{ODhXWrMBYO4CoYLI_B4p<`FjS6@-eDm3`n~pm zsClCN4?lWhsy{o-Cr$J^vJ#fAVdLzHt5#(jZZ_JuKL6N$&x?5d2=Bp$i3(!Ci%CO6 z^=Yg9}&Ua4`im4#}v7U%BIXF;l|cCxE}sgqzJ!&zcS~ zQuuO-kkI!QR>N^!A~{dkerN}kvtKce&;KPV+ONbfRNeyeUj>>?dhqlIjC?yG6crgp zQ>0hqU<`?S>8fD~+-BPspxL`JXWiDdze3IzYMqm~hQB!R9c!SDDbn23+h%F3d<3P4 z_hUIZ*6HCIdQT1H-$#QEp1G3ex!AZ@ZYj$|^X=AksHW!J>nS-nPv*GvKn8`*oZd+J z%H!6#e5TS!N7g6k)t^sknqyG^lshCe%xi9oftiKS%#?h66-4-0MUd%q+EXE7nLnGJWCOKM_ROJ}t!6;yr|x#Ii1My&f+zdvye@_%G1Y4_ ze?AjewH-wwL!4-sJj%oZF&}^MZ7^)=*V~tOJ`Q&pBnj7^P3Zu>tcOc8`)gcK%@OH9{<$JLuE;G7YP*ue^&BYd(ERmt zwtLrRMwT$ot+N>V4YdB?J$4k0uBw;%GME@QCqc;idP&a6-I-> zHO@`GPDkl&Q`XSo!=Fo`9vY{LW96PXkB-ee7~5Ue?D$*KT3*=WFO&(dRSzWue5p4H0t`ir;Xn6nLk5y} zW+TQ94&y7v4wvdn@JpiJ_C9#a@I^2t$`4RZqP?!1O~)&;KH-?Byr=QG*Y??*2UWts zYh$8gF2f4TqeAW(jKkx32YCcz^;U-vO5R7*hd#%Zx$@!Qa9GVk^t4^iJ*`$@^FG|u z2_dUzCyV2WMI8hB9H@YocYlx^KyjUZXX$S$s$x4z3C2F{KV_WCnNzwPzNco+S!?Dg zIyy1V#9E@AOz=#3yj_I-iF0Y1+wwANmNvO@Iwh+=sXCmM)FigDuA7a$zCENjPkQ*t zWwsW?eE7NA9Z!y%%yp_Mh>YVK9ZETj&2JCmD1tMVI|X|J zXEFo@CHfRTE`>P7&{|g(dg_StzZ;CM$&R33&K~@h^~DS8-5fx&Q+VL5#(7v7r6>`@ z4j4J9Gc-K7p>VIg1&4pZXhVO8dFGXdTQlUKZ=*G%2~zk5?7V45Xmfv&Rs|y;E4d3+ zDtrKEF@V75jC{xu-oW>VsIk-}?`47mj{4(k@y((v6Al<#oLz8`*#(s9yllB zVI#4xfy%COvqr=b_*0e+cB1W(!|cqxui~0(#t%P=dY2^VZF|*D*6Y@csoi#wW+{$x zJ;Bi3P8C!}v)9*fbIRB}2T&2nRFPz(k!{6MGx$V%!c{ywN{#GBz{FwR5V~95OF`!S z`_tA{1#-M^gbbAGTsIfC`Pya|FBe~!zIx<}?>^v+em=hRi-SVZMJ(;6fAw&JZRunv zbofcZ9+Iu-ac*m} zbfNi+drUn&1pFj?_45FRFhMx2Dtvcya1i-{1$@GlwKHdnLUUf>|#)Mm+4 zuux`Tb+9)?=3zbgffvJ}aP$r+Zn{2@sk>8-+^o*@;H`j#=*3K)ufp|rxM99nlR}>8 z_u2E?3*YD7V6#K-OddnGY}_>>BiwS*pTjqs0{UP8cANlPRb+O`4;B}u%tGkr*uaa& zzTcT4-}V>9hV(joUh1d+`0gEH?BCHHwE^wh85+g++%huSwN-*R-fS}v`+=%9SOiS; z?7RXdo5@)whLRWMGeotV@9Bp>z39xIQ5cFnlgxv)`9_l@nWwI7O?aPK?S_tP)!VJ7K@k*^Pg8qRSo<;sn&+;tK(E1 GqW%X?0KIAe literal 0 HcmV?d00001 diff --git a/docs/resources/images/comment-bubble.png b/docs/resources/images/comment-bubble.png new file mode 100644 index 0000000000000000000000000000000000000000..b092c31faf3e3174d94ce7ba92fe35660a3c73b5 GIT binary patch literal 1250 zcmV<81ReW{P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2ipoB z4-Ex?!?V5s00d%5L_t(&-tC#sYujcR$G^4}+ez%Kq)XWk5){}7406h8ko*lZJsApx zLf*p$h5Z4A9k;)rP;}^NVCW7x?zB@*WrIRk52H}I*$lN^$%=kN{_*PFA(q|PvL(HG zHRz%T1h)11!|O-V^L+h$fs`T#0QD2~YXCn3*cHG$15lU7Z=Qa&{qgQ6x7HI=|9)rg z|JBl-Nc9u7Qpo4_XmK4)JNb4C<#hnsz67Aaki)4Rw+Uk*3VV9xJ`9YcbB3rOb(8j3NK137)L4?ODV@uz!WULa9IS- z`!9Uq;$FrRF7D-(KnY95eWw>JTvk@ASXrI6x#6XS;pJ4IEUgtW1ZNaV}JzjWDz{W2`4S!oaT4834H3sL5xcn}}Jzj~g}lH_^)H z$E+{L4pmiImW3=rBv!!Fwh!PjfWv^(e*pNtQIk)3%I4#}&o&P~zg?X>@wR6l{CVDe z3gAl~@D5#Bg=)>8C>GZNbid#(^v(#7r0CKrGMF*|93zLYdfagw7efzohh^J=-8m}w z*zCPK?flckg|1=b0k&mAd)vZ=)_nos0oUy|bL%zBA8qZpM#lhf6xN>N_B@(a&wH3g z&-*qjR9W1})}$y(dd`h3%e$MKn~ABNPG|r8{QQZeC`u)t&+kc+gkGF{6B$lK>g(|?#^l&8;0AN=8^Le!40ff-{T*2SY~q{1&k%}S-RGkzQs zMZe#NZQCy<&W&YR&j3VrZc3#RN~O{@V87p=3`V$}8%0s(oEt)j80ThfZ4Hj&PymnK zhb9HXaU2c6Jwk|h=Y|j>*11s>C39}FxLIQbP7QYkpiT%`?%c%HaK2W&U%SAa{*A1Kv%{e!Q zVFU`7a=DChxjdb=xULUP=G+7bl;?yHG0x4##s)^C5gf-6>)bHL;5d#k))V5K8`Crg z0PYe(#5*^H5V2D%MNu;6CVphjO%@R(R>0F1>f8`Q_?(;V?d`*@t@%H!nx-A7s><)& z6bc3Cx<3EKE7yhJxfu?JJ|tE*4+VRk$2F6S;M_RyJa6u>lR7tsVVt&FE$F%qN+~SM zLc86DuIpl)8%0r?)oOLeG))7*QCNG5+w*8zJ?~)}Juh=^vPc;J0^&N~BnfwSXaE2J M07*qoM6N<$f`Y$Kb^rhX literal 0 HcmV?d00001 diff --git a/docs/resources/images/comment.png b/docs/resources/images/comment.png new file mode 100644 index 0000000000000000000000000000000000000000..5bf3391ecd12763a4078d4d8a628df2d56b0c44b GIT binary patch literal 5163 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 Z9{^V0BcfHYtWf{}002ovPDHLkV1g<)@nZl0 literal 0 HcmV?d00001 diff --git a/docs/resources/images/component-m.png b/docs/resources/images/component-m.png new file mode 100644 index 0000000000000000000000000000000000000000..e002685db56a163f2f6459729e640ca019a31ff3 GIT binary patch literal 3287 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 MoV$IEZE*5`01;TesQ>@~ literal 0 HcmV?d00001 diff --git a/docs/resources/images/default-guide.png b/docs/resources/images/default-guide.png new file mode 100644 index 0000000000000000000000000000000000000000..a8f9f7a047e37e238c5c4e6ad52f0fd95961f9bd GIT binary patch literal 13215 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 RnjioG002ovPDHLkV1hq!UH1S0 literal 0 HcmV?d00001 diff --git a/docs/resources/images/doc-m.png b/docs/resources/images/doc-m.png new file mode 100644 index 0000000000000000000000000000000000000000..c1b8639d43aea3b6ae06e968d91007825e79a8ea GIT binary patch literal 3368 zcmbVPX*iVa9+x65LX1K*h9ohY!I-Ep!^plf6tg@tCT512!PrZiX|v1HCK72RQK2GP z6IotVmV}DJ2rp7DXY|&4&WHD$59hhA=eh6yegA*I|Ni0OJK9@GZ&cnWCMG6rjmJ8R zR^;j{B`Nx<9f-dtT9mjrPp%7#$_*p30WmWQiv)nJ8AKZ33=k>d!Oeh)nAln>-PM!p zX=jTevlvj~st%OL2oj;i#7qwGf{5e*fD0x8G&<81BCM*0faw%dh=+k4+%Cuh@TcP= z*nmrfy(>8)fNV^G9M}&w;bBAs41h}n^B93l4u)q6`N@kB?N^Us5b#eGZh$G|FQ+{1 z9KjYWHUKt&!u7~-LpazF0Y&JejEszQ!ALj)4ud0M2&5ju2&0e0z~SIu4@6{*O`&3( zv6jDVi6m2qKbISXfx*JU!k}ULP!^j8Ll_$yuW}%fdLj)yPB@cGO(7yr{|bQ-WM}s`F_ZHvQKFQ=c*GzW0t$yQ7^`vp)aG!Vfq%R4 zkJ=p9@E`!@3~*Q>Y_g~xRE^(YQSSb?p;bkZHy8&tT~rieAeKcAVE|07HP#d&x`9&Y z6bu|?j5EWU;f&3Ya6>c#VP+0TTVhdIBTIz7nGqcOo8zCbSW6?6nX#c63XKpUad2al zA=1Lk0FAS>MCqgTEq-IInH(;WNd|t~rHkw$&Gd~e5eN$r7WH4T7z;K)7f9{lFed(f94lM{|EaPhDd!h7KgCF zBGIdH8zar(=2!!Ba|9Y~i9_f^eqky9PtIT>XJD(%@gL3d`$*J*tJ}X@UnKlJJOEQP zF>KLjxLeOP87mv(*+SlRB21Iq4ZkL%5QuH>UfkMg&UIK*{iHTaV{m5cH^x5HD##n-1^I{{Qw zEnmBm$%=Z)q7sD>yJVR%q>O%!@a4n%`oh^K2i|>;DUvWdwsOXz%6=4+^aWci@6>p> zPsV5FIWu~uVf=K+u%PY|zgo6B{E2Xd@w~VHN$P;WU*9;aw!mX}JAFj0C3b*JUx4_3IyN=YDxAEhdb z69D@aIDS-ZaE?P-xFfHAJX>2$YcTU(*PD|>jRvm;1NB+-(E6E#!o(F6wzo`@zs~$n z@~QPH?q5`VQjH@&PrJ-`ozxG&;)fFygspWh{6}&gha?CE+R>+{@^Jk4HifZvYumxK z&w{O8x3zyTur6P`Vq3cYf^CeO06D)WX1uUiUVTkP&*O88LpANr14^bFKkrdJ<9-l5 zdz_m)9XFV}U!DuI({oAAi|@DHIt!xv&L%c19)u*!r9_FLYigjy-a~5k72dmi9 zg6mG!zH+j%a%*x@H_7Vgo^)K0N{~ImQ{%n#Gg&x%r0US;GW!R&s?W$Q2BUTz-UV4+ zaIN5N?Os|}YU5tRGAQ)S2wcbKy*za59Bs@1<5PJ72HO2&te=(Qgwz~Oi5FJj`@Fto z?Bkao-c`Hw>9Wu0*4n$O@5<%pzsO& z*1EV^#`YPL%Mmaset4O^Lk!gF>)OiT;-Y8vNR6mw8I^jnjP3bLiC&L)kRy+bW~rBV zIu+Z4FD2wU7v>UDm=d6EJ|?w*c~{yeec7#zz_&q^xq2+OiV zWlJlZ!%akf*nYcP%axQ11iGXn7qxZ=27BH3GY zUyo@-L^4Ka)i<8fTv|$Lvhl(b{lGSRAE6`WH2KDfncnS$P$XkkwHmA>$W}~h6pl!R zrfqq;`C1$El}elqsX5QOJ_@B&qbFJNJcHiBAS7`w%L?2#+4VX#t7qFFmzB}n#dU%n z*K`BH$*4xXx?5F;PP%6%*5~Lw?rC1GN>V;ji$**uE&&HV_~WylAQuU`pY?(;8SpK0 zssBt1_I+Y%T1n!e0JJxz5l$j}TGrj3XP?lnvv!~?-eh#+iuvSRQ9<`@{1&}9VFVs& zS(;y@zzC0faj4z`dG&>T@*fhstG9IXzgRx<@6>v_&3!Gk_Ui85Vt>Tc7C8bA3cltb zS-US}8kBKrO-8fkNxC}qX5vE=9Z<4=hw??uhOCwkG@S81!QL?P@?cL*BBAh#=hkNK))U66Pl9*u@j6`+<*;{Lo#FUd z-Fb89;aLTua!UGicctbgiHfEMhWE!QM%mf!$(T{1_on?(REqCPEvQKLewVC3^0uD^ zkYB)4&77_Gj4aZ)v)3)11Zpqng?CJQ`Q0WscV9B!w9l^h}({j;-|_@+A>7b0PXVZ%$at%4sF&?bnWPJ-)Kn@DXJgh@hP z;TNnwD1j7xR?Zv4QOp904ocs5h`&Ct@2Ki0IoDfzKuI4Eg3f|or`wz61mDm-QIijw zw&*6`{Yne){o;FCHrBAe;d>DPO&;HT`76h%Tcz?vUPeN(!KC?Ce+&q9YC~j4EAPAN zf;v?zD5&p5f$Hnv_^=;rLmwLguI+VnX3gESwhM*hUBl@|!*3D5{ulrNxD-d)*xUy8B4SdBnH7 zf#^(cCkE>MXZq%M^GYv$pKKxTdoc1Ydw^8_=P_~ofEQ3 zHM(8h7wf*=bb@bDp13wL=KYnad!$P423LH2Y^4)6(kD#*`wi!@OZmaN$!o3^EW|nC-a9^W$#i} z?`H-o#B-v{wAbpU&lz0(ncl%u5=E@Wqyr`wNA_JyDwmoXVb>qeDrNGSXAP^*c`S7@m-m;NzW@FXDb66~=8WiF z`vE2KO)fI3cD9lu7hc%0hU+um)=X*1(bHg~hOtr_H24oQwUbLwqR2ecdMK}s5eyz0vL zv=J`)WNW#Xy;<}k9=)kzn-X4^`bI(Z{v>W%V^3p0{w#f%S{W9?*jFI9)04yVHiIQI t=lTw*wBjpOr!jfGU+=U$Xj@sgU94T@qi=@FjNj_Ni#5(3TWszZ_b>P=+hYI# literal 0 HcmV?d00001 diff --git a/docs/resources/images/down-arr.png b/docs/resources/images/down-arr.png new file mode 100644 index 0000000000000000000000000000000000000000..2b9e3ffb957a1cfc6ff1c7bd7f2cb2e796c5e04b GIT binary patch literal 963 zcmaJ=J#W)M7&ambrBW9r%5=CD10p_OnvdFwsT|vFBh^)vMj}WIIQFHnQv1yLLYz!h zH#X?R&d$KffU?2FiueU=3@i+Ya8Bctfne!;cdy>(dB2`}adf!1wt8n(5QMeHzS-pa z4Zd!!&$AiW71_qhhjnZNC$&P;GEzlcD&KEPq-!s*EjuEo3-r&)g^)C zq&`v-L>w&$wVfn#+&*TYgHQZW6TiRzAOhdh#7AXYwj%@g{QWV-$K%76JMO!RC+<81 zwM69v0cH+Jg3~Zo6HT1)s{EXqp$KL!tgnfeNww`GU=WHyS&|E`TtT2xl2A!jO3DLJ zl#vWk5z5s9lGSoml@XYKB9BJBuG%zr=dt)r6MKwBDulz~P#SJYgq}d8C<>H|uvjc` zk3u{OnUfU4cq3ylaqLn*Vm=8$%II{+fN3Jn^s zas4p0%n-J%Ho}-Wp^F=)CUOqR_dVWB#n@6RidEN5ge+On>&PnVb*qYuN=e_!uqJT_ z0S;M)^{%k`Qfw-QAmWitO#SEB+odD`v!Ydhc`ntZd~>X~JeTdISjdxs>1h8Nb!OuF zNskNR^2`qqTDd`R`Rv;b2^>=ntqw&@?dgiO>!@{4{kl4*Uok?gll<$esf>Sv9Of^KJd<`5zq3E3W_m literal 0 HcmV?d00001 diff --git a/docs/resources/images/elbow-end.gif b/docs/resources/images/elbow-end.gif new file mode 100644 index 0000000000000000000000000000000000000000..f24ddee799ccebea4dfe60fd65a5703a6a59d44f GIT binary patch literal 844 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 literal 0 HcmV?d00001 diff --git a/docs/resources/images/group-expand-sprite.gif b/docs/resources/images/group-expand-sprite.gif new file mode 100644 index 0000000000000000000000000000000000000000..9c1653b48dbd2d4bb00886c379ba3a66813737c4 GIT binary patch literal 955 zcmZ?wbhEHbuiX3i z{QdXWpZ@~^!zdUHf#DSbia%Kx85kHDbU@w$?_tHlbAgvKT&29}T*1_wr_8B7v4Oad0D zH!!O=%UO7AS#fc($7HS8Q(IPEULLU6Yp&PURaaMg26lV0F?{M|skyG2(-{0TB%q{1$Bh!Jw8USBOURwYF literal 0 HcmV?d00001 diff --git a/docs/resources/images/guide-icon.png b/docs/resources/images/guide-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..0a3845c3a41db03bcb177c9d36b5587d4c9d2e36 GIT binary patch literal 1659 zcmV->288*EP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2ipc4 z2MiDhI4Yk200sL=L_t(Y$HkUwh+S6|$A5e8^SbBWxsRF2ByH17WYX5Lu~k}%>4zwC zeN%i83qpyCg4)WGbDpEis*@4Kvf3 zT<6}&x%Zs2AAXpdhtb%3lb{P0i@o>Rd;QOUt-baV&N=>{;$7^uc33C{JCD7Z#X% z`d|jUv(ZZCFFSx{JuU*D1nwymO4nA(TPTiAAc6qt`AE;F+g|4NV}E@P*wbhw`DF>g zAjWq9UnxYzYf6POQB(xwp>>MH;7pFyK4XlC1QAGykP_*62%!*4A*6>?3Z%js!{X7ytHAC?D_I^EfIQFnUBF!AM?a_)syoJ_ z5=u#o)flbOT4VAYqjPkgq4ShHOVL>hII0s@O#%;J6a&qAyc3w8n7pcBJ8eV|A%s8( z0YZTQDdi>;LL#IZSP4=ggg_~urKO`}{p3B3R&r=m2KI@uN@4uQJs2Dgi^JiBBi9*1 zIE*z|YcNJ*OpdYnrqwCNWMp}dv0@eAu|W=v1mIV$yMC&((V;Yb4JPelaR@0{d1IB% z#s;1*5CVj-AROQj!l9G{r!hK5`2lgUG6UQ_auPP{@k1tv?%uWcBb5}XrAA#hTFb3{={ZM;O5X>g9U)e{@Qjg40F_fY^$0xuM2c289bG3zfq zkClpknqssi>1hN41Ryrq*c`~stEqf;?AV5LkoHcIB%MRRdmF994s{C}tz;E=pnYrs zYEyV|3Fj=w*&trA)C@ z#2Aasa`Ikp9=NH|O8P^;hRu5X)6@&@n7VE^y;omG<4{P1bZ0#SSU_%$ZFd!I403D| zrR15fOuvswv#$c*KljCyZ&D||9_p-fa(S6xd<#x%EEZ!O#@e%r#aM%}23M>S1Oa5^E60}rQbOXSK&h7s0S?4VHpC)L)GM@6hPSm!_pblPLRpPqjH zuN)e{K)xG0v)o=@!mm_t(&7X-F^Ix>DwF`>a7y58PG`MCHhv|u`@aQ{1J8{FpwUX& z!2KfW(n~d}5aW!+Ik4xb8Cd7QSx0}POV>qgzwL|6?A_0+KfcESzXo0!xhHJaV-I+t zqoQkTQ#JHPXOn^RuN06cr|4Oq$y+|e_8Z>M$v^&*_2*mjz?T}Wq;)Ax=?8${CgpKi z48f%7*+YatXMK99rZ9a2yFU1Nx^uthQ>%z+g*4YZ5DsnNP)+I2O6zp>9Vxt0~X$)g*@Di3RDYnF}xztDkhSOEX>=YRRhw*^3LdRDX-7esA()*X5Lp|HL9 z;#=?h&FT?=qlXTP_Ts`Bz_saF2hd(za5wM2*Znsp{s|%?6&IWXxUv8M002ovPDHLk FV1low2Q2^q literal 0 HcmV?d00001 diff --git a/docs/resources/images/guides.png b/docs/resources/images/guides.png new file mode 100644 index 0000000000000000000000000000000000000000..68e76f62f8d03b79c44bf7c33c9e965f5f85c684 GIT binary patch literal 22038 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 k0#Q&GT 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 unQZ_4K?h6yv}Tn5e zazcRk9uQAFzG=xHkR5d*(()Xv?3{mK%3nRY)5OHZ%P$BMTsNVn4nzYT63@afD)AX6 z00PhN-8cpGnE}hMA3s=w3R;?Af;CG=uj64Tyv){0ij11mYQBPlJF>Py&mfgp3)` r9~wZe0#wsOAif5~r+|L?3labT>U*fZl3zTU00000NkvXXu0mjfVHwR$ literal 0 HcmV?d00001 diff --git a/docs/resources/images/link-green-standard-over.png b/docs/resources/images/link-green-standard-over.png new file mode 100644 index 0000000000000000000000000000000000000000..0f08df25041c29d5f344059536ac7103939d8bb0 GIT binary patch literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{I!3-p)H>>^wQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jib4W>LR_8d_#);?HG~Eo*jaLlSN#b_@~~t@aq@OT&?QUBWPX1UA|Q(Y_^zPB~S2l(WK>ym0R^}%XwlK z$)>JUwm5yD8EC$dr;B4q#VwYD?Tiiv3=A7)EKLji{NG+RZF}ru;i+Nsz29EdmhoHc kYP7t<8 literal 0 HcmV?d00001 diff --git a/docs/resources/images/link-green-standard.png b/docs/resources/images/link-green-standard.png new file mode 100644 index 0000000000000000000000000000000000000000..e7512aad722fd4389ebf8e883c35e72a1db480a0 GIT binary patch literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{I!3-p)H>>^wQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jib4W>LR|X~SvKs@uHB}QFkh@{i(272+1>-@K7D-M`%R-} zi3Cg(=-6xI*UuL;Ss-MpVEHEHtslI?rwgYn63<#8)wbK9d6(YA!&W656w;SU=B}2B zohv%|u+4pwe4z0RMxHK?Ar-e+4z@Eo7%(twn6Wf1@biCr)v)=(YtKEHAnLXC=+cij l?wU;v*PrRTDDVfX1cT-c#_IDi_ojffd%F6$taD0e0stYmRr3G< literal 0 HcmV?d00001 diff --git a/docs/resources/images/loading.gif b/docs/resources/images/loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..ea83910a143c54d4d2c350b7e204404f3bf385bd GIT binary patch literal 16717 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 FO#l@5x}E?4 literal 0 HcmV?d00001 diff --git a/docs/resources/images/member-collapsed.gif b/docs/resources/images/member-collapsed.gif new file mode 100644 index 0000000000000000000000000000000000000000..16bce1d3023a0327127a1a3b01c0052a82be4fdb GIT binary patch literal 856 zcmZ?wbhEHb`0vot(lTw@wE6SrFI~EH`SRr_PMo-N=g$56_n$p`_VVS+ zSFc{Ze*OCW`}cqT{9zacqaiT7LO}5+3p2<^Iv@g+Cm1+P85lWaJT@$FWMGq$VR2Z% t(A3N##$%B%p@Er|NkU}H3kAmpRumEJGz1RLG2aZ#?lG#`otN{>aA`t)p literal 0 HcmV?d00001 diff --git a/docs/resources/images/more.png b/docs/resources/images/more.png new file mode 100644 index 0000000000000000000000000000000000000000..a270ab4a65526cf9780b566b5fa8d9afb5b00d1d GIT binary patch literal 498 zcmV*{|cGeT@hQ0s+!~o>*0L<{_!SWU z0SF+lgmCICD;2(1Y%a0hk$Np0@8m3x!Dih>W{kv76&S{1=4OXg&^>HR_Z=I zIgx!Jd7vwutm;>LgKPm=BhJUk_6g{POFJ(<`T$k`c7JWqPoP0R85tSeUVQk<4~hej z;(ecg{0eH@aK;8^a{ZbU=cnwvqzf_)=!t&~Ar@DF>>u!;1bSQi_^s!L&p&(vnZh6m o^m@6U@gq+Ig>OLa8zBAy0QY>X;`dL66#xJL07*qoM6N<$f`z8qb^rhX literal 0 HcmV?d00001 diff --git a/docs/resources/images/phone-l.jpg b/docs/resources/images/phone-l.jpg new file mode 100644 index 0000000000000000000000000000000000000000..004a88ce2c460a7d77d8d6f413be8e2c1af23560 GIT binary patch literal 23894 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 OlIREs2nYxWKmXas5ieE% literal 0 HcmV?d00001 diff --git a/docs/resources/images/phone-p.jpg b/docs/resources/images/phone-p.jpg new file mode 100644 index 0000000000000000000000000000000000000000..58a99b75b2378b7a7992ab0414007d231fd437cf GIT binary patch literal 24174 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 W4$Hy42P}YqfPjF2fPjF2ga6r8*XQ2= literal 0 HcmV?d00001 diff --git a/docs/resources/images/phone-small-l.jpg b/docs/resources/images/phone-small-l.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e4eaac2df987d2adb600f3a1e70c3755d9ebf20b GIT binary patch literal 12852 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 literal 0 HcmV?d00001 diff --git a/docs/resources/images/phone-small-p.jpg b/docs/resources/images/phone-small-p.jpg new file mode 100644 index 0000000000000000000000000000000000000000..244e55374faffde6b5415f8ef741be2ddb104a7c GIT binary patch literal 12905 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 literal 0 HcmV?d00001 diff --git a/docs/resources/images/preview.png b/docs/resources/images/preview.png new file mode 100644 index 0000000000000000000000000000000000000000..3aac3b48e42088b5de36b285e0cc1bad6fe0a619 GIT binary patch literal 1361 zcmbtTTTC2P7#>4v8)6$JK6r_Coc5uy-JO}e@5owlXK6QfH|wymBtGb{dw`M7rL#j> zNWcKHA}p7n;SxwC1T00X#7KmY03ifYStKAKNGv1}pfN-VSGju@Sn7lL;z{OQ{`}wf zfB$7Zb2+b_jeaQ_L6Ecd>ofz;bK&ny6x=UWKAMHci;68#Nf48j3|0n6oL5W&sGVn1 z00UTW=Iw_d7D1vea_&SW(Q$+Fh`gE&`>6fA1knf*d(|(oo;0AKNg#z2EZCo&-5APw zE!a)HgK$Vzkjh=pl0ib2)9uMh^O(KZ)i=>tKLrVRps=W)za{u6zXdzsrQkhm#xeB3 zMM<+@hoTZ4F4QW@0M)Arm4`5ps6nSDb%a@GzJh89lE6s~P8d}rLFtVYL83)yT z6iyV-Fe95JrYjZC+3?6RnKUy6z!TAYa zj|Ue%jz=E|aNcD&*sp#QlHpGga@}y-^78VwwzgJRSGTvfJ32b@^Yb@1HwOj=0)aqL zQBiJgZdX@VX=&-&+S=UQTyJmh&dyFrNlAHmd3$?%c6N4KTU$XvK}AJHb#--NVd2Qg zNGKEv27`@_jpO6vGcz;8!^1f_IV&qG^Yil?8yl08lMM|Gqobphm6hGy-ObI-6B84y zt*!n2{maYCb#-+uEiHY0eG3Z#l`FE>r+!x)6>&UO-(~XLt|rOOG``j_4R{; zgFQVxv$M0iySsaPd;15gc6aJ4m=~=u&V)nD|Jsq;qh&FWuhve-x&4#wpY<_OanI22 zsK3t}%Bp?kulX3~>iMN#KK{~p{;8)C|MRcC_sMCS0%an0 Mo0Ii_@% literal 0 HcmV?d00001 diff --git a/docs/resources/images/print.png b/docs/resources/images/print.png new file mode 100644 index 0000000000000000000000000000000000000000..f19d9a607903b3683c314144720827c3c63a7691 GIT binary patch literal 829 zcmV-D1H$}?P)xAig5s)Yia-%7ME2FVUGMSj&o|<6h$oW3^Stp>P^rM(`w!px1A!_N(wj&h zH3ksG>4D&3%Io#Y^CL$GVd=#Jl*?tq0Cu|_PK}Jh+Su3BU`2(?U{^ z$rY-#YV7<4(}gA$i^0XqSLAUdG7mIG(3&COc|neOyTsvi!}!EGc^nFbfG=dVbAaP` zI5~8zZ2;KT#Ms&Dd~SAD8-PX0_Uz?y$7(;TlFYRL$OBXdTQqE6vm;_TuA|+Ln*IMg zVD0(Glwnek&t+TQ)amMlz55R|^Z-#$ND@|goKC0U!^hQ@0Y*oLp|8JRp9kWW* zLtodG=$k+3Uz?9#zlzMkOt`j8@2=0NW*<`i1Hcy?Jm~i9^Q}aq(+tCya{r~NsXMuB zCYkv0J*nJ^qy3Uv05ZD*;lUjldj4*!P&Nh7>vWt}yqrP0iT@GwG$gqD_@+D?#y4m? z)k+?|$92w3Pber}x!2-B(ClW^LQpTqTiE<-gFmLK{1spT!gfpHpLZW~00000NkvXX Hu0mjfOs<3b literal 0 HcmV?d00001 diff --git a/docs/resources/images/sample-over.gif b/docs/resources/images/sample-over.gif new file mode 100644 index 0000000000000000000000000000000000000000..612ee1c59457584dbf5b6f3b178e1dc65a2f2199 GIT binary patch literal 2594 zcmeH`c~_E&0*A3<>6n%`OFd2tw>oaQwM-h#f>TEk(YUuxnq%cOUNyDkR>wTvnoFB7 ziIdZ!W>&Za$R@5RntQTplqII-h61uL!V9RpxA_+LkNJIq=RD{4#Ky%$9r-!LDIJ1? zKqRV$DNWmFZTq~TUuqoGSU+lQ5}oan&NiX9Pa5n~#+7N~%8Y4s&b%hItSwsBWPn2s zI22Y;X#!4;AZP=@6%bqlK?ewekiYhqf&ViD zf44b*Ap#*Ge{%iV1jH4D#76l-h{V1-u3o{ZJXZAp&T|j43ei~err7sjHa)7h&(+yE z4DTD)RL6f5c#@jRZ+ayxkN8DU71vA}eioH^4vK}sahu_H+;$*aDDP?!kAlw%TIxs1 z=vw4+WGnT2fV)m~ciBveQQG>baTsOj4fEV1vNZw6(qXnVe54hJm?oX77i%bNc!kVKikA3{P@-wPcI zloAe&Wl2k-WY)Q2m_;Fd0N)U_@E|-RZQ&1ufBnKk)ZwLtN9dTK#mA>kUtD~WoKe46 zmh8=6EKe&6l2xRaU6egd?8f(1=C&=#o?(W9KQ|S<~QpFnd&QUk=Hf^M{_=i>MW^s&A)%5;!j;3||LMMIw zRK7~Xo-Nv^ZC@zM(RL_EG%ZKnrqXumhg8}&<5-UFwN*ybb+20D!(KZ!gy?&neR46q zkX>|rzk8%QqUWn0LJWgjlUDUj+tTTVq3zez1}+pAV&v^D&o%M`$#kP2gsnCTe0xGn zqC=8g({PlWewDXhr#8KXyM!)_zXwpu?+^iu<@ZOz;1*Wb^E&-nl785eT4wJ0T(-{P z1DMu%0(VCgWIFvw*|u1b$+XF;u4`>_A}-9Xs4Ks0U#h!`MlVpyS zNSGbU(n;ouwhPd%=(?ocPWnNgyj25F)g2u@5TIK%iDNgf86k(l*UaOY4c{q0M?##_KtGoeptOB|(4?KPzfWmv%`RTE)DB?OF zUhf8&{+1_!=p2CPb4$_R_7xG=yHNTz73%Lm-K$+=5&c^Zu>P|dQSFw*>-Xm9??n)* z-7^sbeiQnlC{gvM>%4)Tb`0+GRjen7Lk#ZrGvE=Znl0tLL4TOxH#DJUD;e=7IK^=P zl>2UPHt$VXp`kdM72ACWbRR; z;Q`jY4oXvSqy3Df_^o@*2gKMInDLKNLfzhgI6gAP_^?7$=O4-ECl(qX5#3(}{_ynH z?T9OnDX3S$NqoU+j`0bLo*v|c5hPC-%i2Y+!meKwp2@&E^}3THaB-pwex?c@igciy zFUo+Ko{9;iL*%&OY~*P9n22E^@4? z(oD}vpq(L8$J#h%2Bw6TDo08g2NQ#fpPKgr+Ib1gE9Jr|84TzUmoTrr?3`Rm0XXBs%zU=+ zv$jyu{&9_2z>S|aRsvm8kMKf?aN5EFUQb_QIM2q<*e8H);0ZihRy^ad13i#7=C4k@ zGmx*Xy{<8O?8d6u4M(kg>a!7d15k5rc}e}=BdnrGLaO^!>i~3`g*%3t-x66c=%3hl z-%vcit<(BOb!k5#6D8FO+J~Y>{(UWvF5S6eZU5HMSc;pPgnHR{u(1Znb~I$~(KEdD w7%aq7{5P)@n;?0lsf?Ywcndna=gcR31s5ed@XRL4N^Gw5*@6vsafTfIAJJoI&j0`b literal 0 HcmV?d00001 diff --git a/docs/resources/images/search-box.png b/docs/resources/images/search-box.png new file mode 100644 index 0000000000000000000000000000000000000000..1d2871581f542250bcf848ee4bdff81f3dfeac55 GIT binary patch literal 1988 zcmaJ?Yg7~07LHVrheAZXT46~D!c`&3Or9hrAV~-!1e745v{gbfkOY#6lL3OLH7HzP zK)~{_EwsF}tvsw4E3p=KHp`T3l4{yAF)mti>*Il?-D0R?5nCW9>kV+(Xa$m0;ix^G6cefD&S;@5TTK! zLa~rck-fDO;^J`ctWd=zpb6qAjvUsIWp*F3L8HUaI2<>`pp(hdAe4{{rK+?%;*&FN zM1o4eBT5-!K&%r$O4Yh;2qf7S9Vg$GCTA;%A;AQ$frAlfAXG*$XwtQMj)6yf$;-j^ zb~A-Yc-7-WDX2bds%NhgDJfK6uy5~u(OP(UgLV39z8!(ed$ zkns8;V$l#q3MW=5dL0Wp@rX(k)p014tgI|@7L5!esT7dSW>Wwvg-Ru19wdFX7L^%D zTD|WKgAmfo5tR;A!CHcyQI-s6pgba`^i>KP-5Xl1{&ktKf>8`I9R(x<_LOEE#p3_( zs?ogh)}yh|-+JFltdGmqL6lfX4`(29tZ^y6_E0*G0D)vEjKslk`b-r!C}9-VD`6c$ zAYqU}f>D*V7zXg!e2~o- z2*N-Hl}`_%&tQeHJVOI%(HX4bZ!CuR2dsS5D4j~%>WWY#^KXLD#+FG?%N>(ryi_k zE;s#Pd$L=|g==OrqYq{>7>7TKa`KA|tjBW_67wz$dDCx*ijyjDhFJFR-`~_ZCnY6C zk)3TFFWcNKRjbuevmJMb?i1BggM+n?7xFzys;9fITwzsiUb$$j_Tn?EN~Z4mPd^?- z(TY=ehX)+7#bW7x-rCBhiGB8bu--AIcmC?lOEcVmtoKwueEj&6fFCEM#>!t=;F0#d zC3s}j(o<%jYuEeuZirPZF&c2R7srx#`IYH^(pGr;411hLhw?n*JG7jly~Vtxo}Q6M z-py!ky%j-&YU@OD1sRjbSbNR1F(2r&cz4qbrxG^q1)%p4GqGR-=}TqS|7i0 z;}7G+k0VFU+3;|tr@5_ZLq-2d1f{O^+eb9XpT2DkRkijIoj575tnR5;^s8xl&dSAjgEY%*SB=t`|YWu zd(SQ6zg$Q|=g&Jh?xffzwk(T3%5ur{vGUGx`xyPcUQbCB3Tu?~*?V>A!%dNS&YX!> zezj@RvP(&y@{Wz{SSH@_^KYeasinC*JTbU&edF}@1J1>aMpJ)VqTqh}iR}xLaMgtm Uz5F7_*VzB75n<87CVo=xU+|qJZvX%Q literal 0 HcmV?d00001 diff --git a/docs/resources/images/sencha-stamp.png b/docs/resources/images/sencha-stamp.png new file mode 100644 index 0000000000000000000000000000000000000000..089455c720a7d881d62c5456a03ae33384cd4f88 GIT binary patch literal 1849 zcmd^=`#;-<8pqS}I>Sc3my}kuF1@HWXr(7RR!Z806UthwysEY&OPIEz6mhF5s$%US z?devlRy$g^Akq<%(vTa|qRb^iQ1>K=RHSP=JNfOr&fjpJA3pET=Xrj8p4Y=X9qeyu zVQYavAS{Xh#D^ddTZ)a|%gn^6-*?$f8nGjZ5RnubADzS?C(;l&YCMJJK#U{D&_ZZr zYFa`!%?p7rL7YAnMre}9dh+4mb{JC$GTOno4mjaA@TwHf>I5&eL1&ua{BAg11O;%R zYZ54`8A_JGer<4I6Kq=oF}tB3WMEDgOqZg_Z7`t$G8hb_qob>D-?>!$w{3~r&6g#Mn=}x*R@*h{QUgP%*^cU?AqGe%F4>}^77Qw z)Z*ge!otFvH*eHxwNj~^o12@Sp4MnIOG``UF;3!9Gc9*UJXUJ*hC{qW4(7_AxT=wnmF;88A=Ed(PvP!U|D2WvN_ z1r&8jq(cGd?|i@ELpd$mFTb$4eD9n;4|c5pLY~7x>E}fvkyi~=AOW*_tOD~%9lv{* z^0KqL;MV>_!rq_?cG*_~I8OpPGyaj-2JS4iieMcG;vnl3u|vzR9>4N^^xM}H^Ceon zioy;Yo698@I7jnAYz4P?mRtbQm>hC=h8HkmM^9dP_<8!6_j5^i`U4IRnswYUho?Q^ZC+m?}k0L__$SA($J^sGbmx0*(J8UmvN-BT6 z&`u*IY2(oj@h>TN*6Np8F-p&Q^LJ5r>VUz1??Y$ zhn|23D{RVz&aRKa>iSw-3zYE^y4np_4%we=fsbUmaTT#rsq_K+e$}u;xDch*N+Oy- z-MX@Op4+p?+4m64>;-UafPO1=Pqw4&Lm;mkJ}-o^W!A^5k=}LSaW+hO0S``pQ^;|u ztSieAfwOChvwZkkUqZeZJdosFFbEkp=lLgEmhplRNg=_ZfBkOc)*f%@l@&Zr3WwwOID=f6?`Ks;0U$}1OkG_4X;U2u3q_E z>(kO#UpC@?EG9-^NNZoc(l^m74?8T7U4jbX z+^Wx90t&(Ms=Y40I?VnvE+Kid(E-K2`z!a_zz*H?JFnd0YyQ2Uap$%<`+kv=babg- zgB~!Kx5^KG=efW6aI;_YxpUY^ABA}wb0eB0pnjkoi@}fv`x`qrJBTy4{bbVZ)ce&} zrJL2?@**}Zx0XgZW;GT1*>f=4M*@+nA0MqDyJ#i`HHWte*1ikm{zA zsLX|}z5Ri-Ta%lW^dF?JmprPX&O_0CQ44Rk;;2LXziK^sk-I#1Ph{RYTN}0ftVzx= zW!)jK{n4_%j7h%9Oh`^nQ4Uc9#am2SLpSLOaeig3+M^x=BZk4JjG{drMFhZe>2J#l z!G}LD`Y=A{34DG@f5K$EXF6~_qWGhi)B1i5^?BEtk-A>M_?c&do288(uI}yPg*WUo z{5eXBRH&JI0DScOsT;M{sp;*{OENhpDNl4X5Wl&Ts2%Yx$9`G;b@|iL86f8}iyFbG z_LmHrbrNrj3|0PJ9;VZCfp3ne$PbGg#xs@gT{jl%P6BlFXGad_Ea;csjl zVYJdXPG;^;k*R~SweLe~9yws_O%IZ6EG#HtVmIxLU8Y-1aeyyi#2?6y+eirW#kkb@ SO>fZn3lT&@Fuwi-Dd#^_#SD4? literal 0 HcmV?d00001 diff --git a/docs/resources/images/singleton-m.png b/docs/resources/images/singleton-m.png new file mode 100644 index 0000000000000000000000000000000000000000..212e7007f789f9cf198b5f27a0bcbacf7495e68b GIT binary patch literal 6253 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 BvQ7X1 literal 0 HcmV?d00001 diff --git a/docs/resources/images/tablet-p.jpg b/docs/resources/images/tablet-p.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ecbec6cf0e4d044b331657bd5e6782c426dd67e6 GIT binary patch literal 34731 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 literal 0 HcmV?d00001 diff --git a/docs/resources/images/text-bg.gif b/docs/resources/images/text-bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..4179607cc1e9486dd6fcc8467c79b5b41dbf4f76 GIT binary patch literal 819 zcmZ?wbhEHbWMmLxXlG!!_xRa|&!0bk{rdI$_wPS{{`~#>&!4}4|NZ;_|3AYh7!85p p9s-I#S%6;r&!7YHC@4=ba0oCkvIrP7I50A^3uwfgFi>Ey1^^@>A+7)b literal 0 HcmV?d00001 diff --git a/docs/resources/images/version-tabs.png b/docs/resources/images/version-tabs.png new file mode 100644 index 0000000000000000000000000000000000000000..0a67c460a5c38f83972a413e24216e3cd3f4ff5d GIT binary patch literal 3594 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 Q9RL6T07*qoM6N<$f|D`mumAu6 literal 0 HcmV?d00001 diff --git a/docs/resources/images/vote-arrows.png b/docs/resources/images/vote-arrows.png new file mode 100644 index 0000000000000000000000000000000000000000..bb94c7c957f8192a27597faf6f6ba79d14f0e1fd GIT binary patch literal 883 zcmV-(1C0EMP)!Ga=Wux z-y|>IW-~jP$;`m5nHRofcYb^_d^7v@$LvzK+XaOD((eH!&^R);iG8l*m#+2_tOfLs0&b%OR^qb{K`Lj(2=ca{N9P!|jP7pUy6;Xvo( zvfMgXX231f9YHxS+d)06>X^u<>fGGa0k_J4bEpl;k8Mzbd9OK8BW{w~=ZXwCM#s*I z1h_(Nc#`>6uG|$L0_I%tAz;J}1R3-#YE>cIu2S2x0d}~leQr?7pwCfFP>&|{ zxmL`yrGeVxCib~S10JESfPU~k4^a>P9jlWAwZ=^yaK{F$q3*%_aUb;wwON`0cDadt zE;rx|>M589XM9F&kpZ>fasxi14uZv?fm-LXG`G$Tz(J%bI0=^6XF4%}F-Hclni!B} zZVbrkVgPexfCKK5;scTYHV(johd00*;0^Ewcmuov-T-faH^3X<4e$nd0~RryJPmxT&Z(y|KJWpiA*clt(f}1(uj;{mSD3fzn zL<}g*0IoJFD(vejBF1oku%|XE8cdeyC?dv04tR_@38STFo!F$lRmbYS=9ZJ-Z5X{{ zcS;eqMSV&!wTfwln>pYHf{|ZFZKICPfPJU7$#k|(zzsLG&J~>od(`j)>QDvj54GuO zoUe_!%mKIRW~hS-C2oe)rXs~wemba7QXf(q;fJBM73!cuNqtCdrs`yOgDq4nD37U5 zdc`JD3l$5>W2&p{%j9aIVnKOKb;5ostHb=|f z6kdnD_wUy&UbAa+Gqt-xEv||IJb_#-Y%3U`G*E3WbHM#8zyQ0SxO@!1W%>XB002ov JPDHLkV1j-x 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 WuS9_B8hb6Mw<&;$U>gU$;8 literal 0 HcmV?d00001 diff --git a/docs/resources/images/x12.png b/docs/resources/images/x12.png new file mode 100644 index 0000000000000000000000000000000000000000..a729b48ee422aa3d301945b9b0b539cd5c6739e5 GIT binary patch literal 1242 zcmbVMTWs4@7^_i(_sE1+vB_lsZ#!mx zB)0CJ_-HJVNbCm! zutirATPDO7Ij&NvL@Ln;cE&kAnM`^bf)J*NusdTBwHmhEJq-mJxte3x#K0Et6xAZ0 zCK5|Mt%qRR+3cpUu8tc&_8Z$iFWfdHsW%~#nX;P>rvX% zAk*C4*^mdM-iSkvL5reJ%2=B=kwr4H#L|<9Zs=k>nTp8?1qzA)giH62jTndV(<2tA$ z9i$TM!YJ@Hyyv;DaU`9^mtDhIIUq0IE-!bo- z+7&v@T-+Oq`hRW%Pqr?socQCxfwrdn#aIaYivB>p(0cXSW8eE1o_k@g6My(h$IkEi zTE5m#ivEXdptihR(95;j($Z4x%9U-UQwz_>zBzt=$Nk$6kB$~Y540CyT+j=;uHU$| z>R%aOe(ChSvv+@12&_Kw4teqB>V=`gNa~s1V}C8$H^17eUwA$G@*}^kt*tHYZeBhf zJOA|5FTaxaUpsXup!$5i`HuEW_uc;BVEIz?`nyM4_XnN8;t$~J?>~Nd;FI}h+d8J^ z3X;ERU(b!s&^egWKHh$YTRnX2o;SX2T3Q)8@#*d}AI)_>bS~H)y{kC?1+%T0>3_4Y U^yjP65$|u4=^vEe>MNZ58#hawrvLx| literal 0 HcmV?d00001 diff --git a/docs/resources/images/x122.png b/docs/resources/images/x122.png new file mode 100644 index 0000000000000000000000000000000000000000..3a1416d7c6ff59992ed52d3d57bb3c955cf8bf84 GIT binary patch literal 1418 zcmeAS@N?(olHy`uVBq!ia0vp^d_XM6!3HE{=IMI@DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_cg49qH-ArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{%1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XP}#GU}mUbW};_k zVqj@vsiRh+i#(Mch>H3D2mX`VkM*2oZxQ#zd*q`*i_F@!8b8E zGY=#J*5T`G<(XGpl9-pA>gi&u1T;f0Gc(1?)y&z{z|F+e$dO;yW843T@l_t>#|aUI7^_sV~B@9O}kC-svm4-nmRnc7#c;qJk(jP z9CmvDWP|XOGxax(pFcHG^gVHi|5@7e{kx6Ny?9+>^&lq3+RN?6TZtGpA-pT~MPd{y1ofbATnbq8wY&a{pqJK}(PMND&rdcLZ zP7Dc$muJqJYn|ko81jrwzWZoXNvygI17n!l#s}G z4+>Z}UP!7^`kWHPz&MXRVR?|Imx>Tj_cZ@9KCf?WOD0awoTU^$F+f3qFIsQ9ivG^D z5^MLlJCnC@Y;Y|*xFkb6xupDg$;?%MbFRNSx%b_|j&%*;&%UYquAA`PXm3-0OXa&s z_tylQ|7)-GDQ32)7B;I%e{ML{FL-6hqN1frEDUBf8M`Nc-tjEVn76rrfhA(qs!Ltg z>3iem&vQR>C&NUjQGj8~?FyTJb#i~}>{*)+p8qei?V+`G|B01BYbTvjPFWMibmM8! z&BzVwKTC8U)sX7tVw}g5aQso>u9W{5ZS21OcK_V5$87dlMRglt_NZy4b#j6aG+H(+ gebN8?qjLiz!-7qBzQib9ssojdp00i_>zopr01O2JKmY&$ literal 0 HcmV?d00001 diff --git a/docs/resources/prettify/prettify.css b/docs/resources/prettify/prettify.css new file mode 100644 index 0000000..d44b3a2 --- /dev/null +++ b/docs/resources/prettify/prettify.css @@ -0,0 +1 @@ +.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} \ No newline at end of file diff --git a/docs/resources/prettify/prettify.js b/docs/resources/prettify/prettify.js new file mode 100644 index 0000000..eef5ad7 --- /dev/null +++ b/docs/resources/prettify/prettify.js @@ -0,0 +1,28 @@ +var q=null;window.PR_SHOULD_USE_CONTINUATION=!0; +(function(){function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92)return f;var b=a.charAt(1);return(f=r[b])?f:"0"<=b&&b<="7"?parseInt(a.substring(1),8):b==="u"||b==="x"?parseInt(a.substring(2),16):a.charCodeAt(1)}function e(a){if(a<32)return(a<16?"\\x0":"\\x")+a.toString(16);a=String.fromCharCode(a);if(a==="\\"||a==="-"||a==="["||a==="]")a="\\"+a;return a}function h(a){for(var f=a.substring(1,a.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),a= +[],b=[],o=f[0]==="^",c=o?1:0,i=f.length;c122||(d<65||j>90||b.push([Math.max(65,j)|32,Math.min(d,90)|32]),d<97||j>122||b.push([Math.max(97,j)&-33,Math.min(d,122)&-33]))}}b.sort(function(a,f){return a[0]-f[0]||f[1]-a[1]});f=[];j=[NaN,NaN];for(c=0;ci[0]&&(i[1]+1>i[0]&&b.push("-"),b.push(e(i[1])));b.push("]");return b.join("")}function y(a){for(var f=a.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),b=f.length,d=[],c=0,i=0;c=2&&a==="["?f[c]=h(j):a!=="\\"&&(f[c]=j.replace(/[A-Za-z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return f.join("")}for(var t=0,s=!1,l=!1,p=0,d=a.length;p=5&&"lang-"===b.substring(0,5))&&!(o&&typeof o[1]==="string"))c=!1,b="src";c||(r[f]=b)}i=d;d+=f.length;if(c){c=o[1];var j=f.indexOf(c),k=j+c.length;o[2]&&(k=f.length-o[2].length,j=k-c.length);b=b.substring(5);B(l+i,f.substring(0,j),e,p);B(l+i+j,c,C(b,c),p);B(l+i+k,f.substring(k),e,p)}else p.push(l+i,b)}a.e=p}var h={},y;(function(){for(var e=a.concat(m), +l=[],p={},d=0,g=e.length;d=0;)h[n.charAt(k)]=r;r=r[1];n=""+r;p.hasOwnProperty(n)||(l.push(r),p[n]=q)}l.push(/[\S\s]/);y=L(l)})();var t=m.length;return e}function u(a){var m=[],e=[];a.tripleQuotedStrings?m.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):a.multiLineStrings?m.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/, +q,"'\"`"]):m.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);a.verbatimStrings&&e.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var h=a.hashComments;h&&(a.cStyleComments?(h>1?m.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):m.push(["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),e.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,q])):m.push(["com",/^#[^\n\r]*/, +q,"#"]));a.cStyleComments&&(e.push(["com",/^\/\/[^\n\r]*/,q]),e.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));a.regexLiterals&&e.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(h=a.types)&&e.push(["typ",h]);a=(""+a.keywords).replace(/^ | $/g, +"");a.length&&e.push(["kwd",RegExp("^(?:"+a.replace(/[\s,]+/g,"|")+")\\b"),q]);m.push(["pln",/^\s+/,q," \r\n\t\xa0"]);e.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]);return x(m,e)}function D(a,m){function e(a){switch(a.nodeType){case 1:if(k.test(a.className))break;if("BR"===a.nodeName)h(a), +a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)e(a);break;case 3:case 4:if(p){var b=a.nodeValue,d=b.match(t);if(d){var c=b.substring(0,d.index);a.nodeValue=c;(b=b.substring(d.index+d[0].length))&&a.parentNode.insertBefore(s.createTextNode(b),a.nextSibling);h(a);c||a.parentNode.removeChild(a)}}}}function h(a){function b(a,d){var e=d?a.cloneNode(!1):a,f=a.parentNode;if(f){var f=b(f,1),g=a.nextSibling;f.appendChild(e);for(var h=g;h;h=g)g=h.nextSibling,f.appendChild(h)}return e} +for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),e;(e=a.parentNode)&&e.nodeType===1;)a=e;d.push(a)}var k=/(?:^|\s)nocode(?:\s|$)/,t=/\r\n?|\n/,s=a.ownerDocument,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=s.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);for(l=s.createElement("LI");a.firstChild;)l.appendChild(a.firstChild);for(var d=[l],g=0;g=0;){var h=m[e];A.hasOwnProperty(h)?window.console&&console.warn("cannot override language handler %s",h):A[h]=a}}function C(a,m){if(!a||!A.hasOwnProperty(a))a=/^\s*=o&&(h+=2);e>=c&&(a+=2)}}catch(w){"console"in window&&console.log(w&&w.stack?w.stack:w)}}var v=["break,continue,do,else,for,if,return,while"],w=[[v,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"], +"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],F=[w,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],G=[w,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"], +H=[G,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],w=[w,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],I=[v,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"], +J=[v,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],v=[v,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],K=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,N=/\S/,O=u({keywords:[F,H,w,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+ +I,J,v],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),A={};k(O,["default-code"]);k(x([],[["pln",/^[^]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]), +["default-markup","htm","html","mxml","xhtml","xml","xsl"]);k(x([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css", +/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);k(x([],[["atv",/^[\S\s]+/]]),["uq.val"]);k(u({keywords:F,hashComments:!0,cStyleComments:!0,types:K}),["c","cc","cpp","cxx","cyc","m"]);k(u({keywords:"null,true,false"}),["json"]);k(u({keywords:H,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:K}),["cs"]);k(u({keywords:G,cStyleComments:!0}),["java"]);k(u({keywords:v,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);k(u({keywords:I,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}), +["cv","py"]);k(u({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);k(u({keywords:J,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb"]);k(u({keywords:w,cStyleComments:!0,regexLiterals:!0}),["js"]);k(u({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes", +hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);k(x([],[["str",/^[\S\s]+/]]),["regex"]);window.prettyPrintOne=function(a,m,e){var h=document.createElement("PRE");h.innerHTML=a;e&&D(h,e);E({g:m,i:e,h:h});return h.innerHTML};window.prettyPrint=function(a){function m(){for(var e=window.PR_SHOULD_USE_CONTINUATION?l.now()+250:Infinity;p=0){var k=k.match(g),f,b;if(b= +!k){b=n;for(var o=void 0,c=b.firstChild;c;c=c.nextSibling)var i=c.nodeType,o=i===1?o?b:c:i===3?N.test(c.nodeValue)?b:o:o;b=(f=o===b?void 0:o)&&"CODE"===f.tagName}b&&(k=f.className.match(g));k&&(k=k[1]);b=!1;for(o=n.parentNode;o;o=o.parentNode)if((o.tagName==="pre"||o.tagName==="code"||o.tagName==="xmp")&&o.className&&o.className.indexOf("prettyprint")>=0){b=!0;break}b||((b=(b=n.className.match(/\blinenums\b(?::(\d+))?/))?b[1]&&b[1].length?+b[1]:!0:!1)&&D(n,b),d={g:k,h:n,i:b},E(d))}}p + + + + The source code + + + + + + +

    /**
    + * @class Frame
    + * The `Frame` module provides an object representation of a [STOMP frame](http://stomp.github.io/stomp-specification-1.0.html)
    + *
    + * @type {StompJS.Frame}
    + */
    +var Frame = module.exports = function() {
    +    "use strict";
    +    this.command = null;
    +    this.headers = null;
    +    this.body = null;
    +
    +    /**
    +     * Build frame based on arguments provided
    +     *
    +     * @param {Object}      args            arguments object needed to build frame (command, headers, body?)
    +     *
    +     * ***Example:***
    +     *
    +     *      args = {
    +     *          command: '',
    +     *          headers: {},
    +     *          body: ''
    +     *      }
    +     *
    +     * @param {Boolean}     wantReceipt     boolean to indicate that you wish to get a receipt (set receipt header)
    +     * @returns {Object}                    returns {@link StompJS.Frame}
    +     */
    +    var buildFrame = function(args, wantReceipt) {
    +        var receiptStamp = null;
    +
    +        this.command = args.command;
    +        this.headers = args.headers;
    +        this.body = args.body;
    +
    +        if (wantReceipt) {
    +            var receipt = '';
    +            receiptStamp = Math.floor(Math.random()*99999999999).toString();
    +            if (this.headers.session !== undefined) {
    +                receipt = receiptStamp + "-" + this.headers.session;
    +            }
    +            else {
    +                receipt = receiptStamp;
    +            }
    +            this.headers.receipt = receipt;
    +        }
    +
    +        return this;
    +    };
    +
    +    /**
    +     * String representation of Frame object
    +     *
    +     * @returns {String}                    returns {@link StompJS.Frame} as string
    +     */
    +    var asString = function() {
    +        var headerStrs = [],
    +            frame = "",
    +            command = this.command,
    +            headers = this.headers,
    +            body = this.body;
    +
    +        for (var header in headers) {
    +            if (headers.hasOwnProperty(header)){
    +                headerStrs.push(header + ':' + headers[header]);
    +            }
    +        }
    +
    +        frame += command + "\n";
    +        frame += headerStrs.join("\n");
    +        frame += "\n\n";
    +
    +        if(body) {
    +            frame += body;
    +        }
    +
    +        frame += '\x00';
    +
    +        return frame;
    +    };
    +
    +    return {
    +        buildFrame: buildFrame,
    +        asString: asString
    +    };
    +};
    +
    + + diff --git a/docs/source/stomp.html b/docs/source/stomp.html new file mode 100644 index 0000000..5a12fe4 --- /dev/null +++ b/docs/source/stomp.html @@ -0,0 +1,652 @@ + + + + + The source code + + + + + + +
    /**
    + * @class Stomp
    + * An instance of the Stomp object for interacting with STOMP messaging brokers
    + *
    + * @type {StompJS.Stomp}
    + */
    +var Stomp = module.exports = function() {
    +    "use strict";
    +
    +    var errMsgNotInitialized = "not initialized";
    +    var errMsgNotConnected = "not connected";
    +
    +    var events = require('events');
    +    var Frame = require('./frame.js');
    +
    +    var StompUtils = require('./stomp.utils.js');
    +    var stompUtils = new StompUtils();
    +
    +    var net, tls, sys, log;
    +
    +    var _initialized = false;
    +    var _connected = false;
    +    var options = {};
    +    var subscribedTo, session, socket, thisPointer;
    +
    +    /**
    +     * @method Client
    +     *
    +     * Creates a client for the {@link StompJS.Stomp} object.
    +     *
    +     * @param {Object}     args    arguments needed to create the client
    +     *
    +     * ***Example:***
    +     *
    +     *      args = {
    +     *          port: 61613,
    +     *          host: 'localhost',
    +     *          debug: false,
    +     *          login: 'guest',
    +     *          passcode: 'guest'
    +     *      }
    +     *
    +     *      If debug is set to true, extra output will be printed to the console.
    +     *
    +     *      var client = new Stomp().Client(args);
    +     *
    +     * @returns {Object}                    returns StompClient
    +     */
    +    var Client = function(args) {
    +        net = require('net');
    +        tls = require('tls');
    +        sys = require('util');
    +
    +        options.port = args.port || 61613;
    +        options.host = args.host || '127.0.0.1';
    +        options.login = args.login || null;
    +        options.passcode = args.passcode || null;
    +        options.ssl = args.ssl ? true : false;
    +        options.sslValidate = args.ssl_validate ? true : false;
    +        options.sslOptions = args.ssl_options || {};
    +        options.clientId = args['client-id'] || null;
    +        options.vhost = args.vhost || null;
    +
    +        var debug = args.debug || false;
    +        var StompLogger = require('./stomp.logger.js');
    +        log = new StompLogger(debug);
    +
    +        subscribedTo = {};
    +        session = null;
    +        socket = null;
    +
    +        // Stomp is an EventEmitter
    +        stompUtils.extend(this, events.EventEmitter.prototype );
    +
    +        // need to save ref to this object for emitWrapper
    +        // TODO: maybe use .call(this)
    +        thisPointer = this;
    +
    +        _initialized = true;
    +        return this;
    +    };
    +
    +    /**
    +     * Returns if the object has been initialized
    +     *
    +     * @returns {Boolean}            returns *true* if initialized; otherwise, *false*
    +     */
    +    var isInitialized = function() {
    +        return _initialized;
    +    };
    +
    +    /**
    +     * Returns if the object has been connected
    +     *
    +     * @returns {Boolean}            returns *true* if connected; otherwise, *false*
    +     */
    +    var isConnected = function() {
    +        return _connected;
    +    };
    +
    +    /**
    +     * Creates sockets used to connect to STOMP broker. Sets the connected flag to *true* upon completion.
    +     * Emits "connected" upon completion.
    +     *
    +     * @returns {void}
    +     */
    +    var connect = function() {
    +        if(!_initialized) {throw new Error(errMsgNotInitialized);}
    +
    +        var host = options.host;
    +        var port = options.port;
    +
    +        if (options.ssl) {
    +            log.debug('Connecting to ' + host + ':' + port + ' using SSL');
    +            socket = tls.connect(port, host, options.sslOptions, function() {
    +                log.debug('SSL connection complete');
    +                if (!socket.authorized) {
    +                    log.error('SSL is not authorized: '+ socket.authorizationError);
    +                    if (options.sslValidate) {
    +                        disconnect();
    +                        return;
    +                    }
    +                }
    +                setupListeners();
    +            });
    +        }
    +        else {
    +            log.debug('Connecting to ' + host + ':' + port);
    +            socket = new net.Socket();
    +            socket.connect(port, host);
    +            setupListeners();
    +        }
    +        _connected = true;
    +    };
    +
    +    /**
    +     * Removes sockets used to connects STOMP broker.  Sets the connected flag to *false* upon completion.
    +     * Emits "disconnected" upon completion.
    +     *
    +     * @returns {void}
    +     */
    +    var disconnect = function() {
    +        if(!_initialized) {throw new Error(errMsgNotInitialized);}
    +
    +        socket.end();
    +
    +        if (socket.readyState === 'readOnly') {
    +            socket.destroy();
    +        }
    +
    +        log.debug('disconnect called');
    +        _connected = false;
    +    };
    +
    +    /**
    +     * Subscribes to destination (queue or topic).
    +     * Emits "subscribed" upon completion.
    +     *
    +     * @param {Object}      headers     a header object
    +     * @param {Function}    callback    a function to call and pass it the message that is dequeued
    +     * @returns {void}
    +     */
    +    var subscribe = function(headers, callback) {
    +        if(!_initialized) {throw new Error(errMsgNotInitialized);}
    +        if(!_connected) {throw new Error(errMsgNotConnected);}
    +
    +        var destination = headers.destination;
    +        headers.session = session;
    +
    +        if (destination instanceof Array) {
    +            for (var i=0; i < destination.length; i++) {
    +                headers.destination = destination[i];
    +                sendCommand('SUBSCRIBE', headers);
    +                subscribedTo[destination[i]] = { enabled: true, callback: callback };
    +                log.debug('subscribed to: ' + destination[i] + ' with headers ' + sys.inspect(headers));
    +            }
    +        }
    +        else {
    +            sendCommand('SUBSCRIBE', headers);
    +            subscribedTo[destination] = { enabled: true, callback: callback };
    +            log.debug('subscribed to: ' + destination + ' with headers ' + sys.inspect(headers));
    +        }
    +
    +        emitWrapper("subscribed", destination);
    +    };
    +
    +    /**
    +     * Unsubscribes from destination (queue or topic).
    +     * Emits "unsubscribed" upon completion.
    +     *
    +     * @param {Object}      headers     a header object
    +     * @returns {void}
    +     */
    +    var unsubscribe = function(headers) {
    +        if(!_initialized) {throw new Error(errMsgNotInitialized);}
    +        if(!_connected) {throw new Error(errMsgNotConnected);}
    +
    +        var destination = headers.destination;
    +        headers.session = session;
    +
    +        if (destination instanceof Array) {
    +            for (var i=0; i < destination.length; i++) {
    +                headers.destination = destination[i];
    +                sendCommand('UNSUBSCRIBE', headers);
    +                subscribedTo[destination[i]].enabled = false;
    +                log.debug('no longer subscribed to: ' + destination[i]);
    +            }
    +        }
    +        else {
    +            sendCommand('UNSUBSCRIBE', headers);
    +            subscribedTo[destination].enabled = false;
    +            log.debug('no longer subscribed to: ' + destination);
    +        }
    +
    +        emitWrapper("unsubscribed", destination);
    +    };
    +
    +    /**
    +     * Sends a message to the STOMP broker.
    +     *
    +     * @param {Object}      headers         a header object
    +     * @param {Boolean}     wantReceipt     boolean to indicate that you wish to get a receipt (set receipt header)
    +     * @returns {Object}                    returns a `Frame` object representing the message sent
    +     */
    +    var send = function(headers, wantReceipt) {
    +        var body = headers.body || null;
    +        delete headers.body;
    +        headers.session = session;
    +        return sendCommand('SEND', headers, body, wantReceipt);
    +    };
    +
    +    /**
    +     * Acknowledges a received message.
    +     *
    +     * @param {String}      messageId       the message id to ack
    +     * @returns {void}
    +     */
    +    var ack = function(messageId) {
    +        sendCommand('ACK', {'message-id': messageId});
    +        log.debug('acknowledged message: ' + messageId);
    +    };
    +
    +    /**
    +     * Begins a transaction.
    +     *
    +     * @returns {String}    returns a string representing the generated transaction id
    +     */
    +    var begin = function() {
    +        var transactionId = Math.floor(Math.random()*99999999999).toString();
    +        sendCommand('BEGIN', {'transaction': transactionId});
    +        log.debug('begin transaction: ' + transactionId);
    +        return transactionId;
    +    };
    +
    +    /**
    +     * Commits a transaction.
    +     *
    +     * @param {String}      transactionId       the transaction id from {@link Stomp#begin begin} to commit
    +     * @returns {void}
    +     */
    +    var commit = function(transactionId) {
    +        sendCommand('COMMIT', {'transaction': transactionId});
    +        log.debug('commit transaction: ' + transactionId);
    +    };
    +
    +    /**
    +     * Aborts a transaction.
    +     *
    +     * @param {String}      transactionId       the transaction id from {@link Stomp#begin begin} to abort
    +     * @returns {void}
    +     */
    +    var abort = function(transactionId) {
    +        sendCommand('ABORT', {'transaction': transactionId});
    +        log.debug('abort transaction: ' + transactionId);
    +    };
    +
    +    /**
    +     * @private
    +     *
    +     * Handles frame based on type.  Emits events when needed.
    +     * Emits "message" upon message processed
    +     * Emits "connected" upon connecting
    +     * Emits "receipt" upon message receipt
    +     * Emits "error" upon errors
    +     *
    +     * @param {String}      frame       the frame to handle
    +     * @returns {void}
    +     */
    +    var handleNewFrame = function(frame) {
    +        switch (frame.command) {
    +        case "MESSAGE":
    +            if (isMessage(frame)) {
    +                shouldRunMessageCallback(frame);
    +                emitWrapper('message', frame);
    +            }
    +            break;
    +        case "CONNECTED":
    +            log.debug('Connected to STOMP');
    +            session = frame.headers.session;
    +            emitWrapper('connected');
    +            break;
    +        case "RECEIPT":
    +            emitWrapper('receipt', frame.headers['receipt-id']);
    +            break;
    +        case "ERROR":
    +            emitWrapper('error', frame);
    +            break;
    +        default:
    +            log.debug("Could not parse command: " + frame.command);
    +        }
    +    };
    +
    +    /**
    +     * @private
    +     *
    +     * Sets up the listeners for the socket events
    +     * Emits "error" upon errors
    +     * Emits "disconnected" upon socket close
    +     *
    +     * @param {String}      frame       the frame to handle
    +     * @returns {void}
    +     */
    +    var setupListeners = function() {
    +
    +        socket.on('drain', function(data) {
    +            log.debug('draining');
    +        });
    +
    +        var buffer = '';
    +        socket.on('data', function(chunk) {
    +            buffer += chunk;
    +            var frames = buffer.split('\0\n');
    +
    +            // Temporary fix : NULL,LF is not a guaranteed standard, the LF is optional, so lets deal with it.  (Rauls)
    +            if (frames.length === 1) {
    +                frames = buffer.split('\0');
    +            }
    +
    +            if (frames.length === 1) {return;}
    +            buffer = frames.pop();
    +
    +            var pFrame = null;
    +            var moreFrames = true;
    +            while (moreFrames) {
    +                var frame = frames.shift();
    +                if (!frame) {
    +                    moreFrames = false;
    +                } else {
    +                    pFrame = parseFrame(frame);
    +                    handleNewFrame(pFrame);
    +                }
    +            }
    +        });
    +
    +        socket.on('end', function() {
    +            log.debug("end");
    +        });
    +
    +        socket.on('error', function(error) {
    +            log.error(error.stack + 'error name: ' + error.name);
    +            emitWrapper("error", error);
    +        });
    +
    +        socket.on('close', function(error) {
    +            log.debug('disconnected');
    +            if (error) {
    +                log.error('Disconnected with error: ' + error);
    +            }
    +            emitWrapper("disconnected", error);
    +        });
    +
    +        if (options.ssl) {
    +            stompConnect();
    +        } else {
    +            socket.on('connect', stompConnect);
    +        }
    +    };
    +
    +    /**
    +     * @private
    +     *
    +     * Preps for and starts the STOMP connection
    +     *
    +     * @returns {void}
    +     */
    +    var stompConnect = function() {
    +        log.debug('Connected to socket');
    +        var headers = buildHeaders(options);
    +
    +        var args = {};
    +
    +        headers = headers || {};
    +
    +        args.command = 'CONNECT';
    +        args.headers = headers;
    +
    +        var frame = new Frame();
    +        var newFrame = frame.buildFrame(args);
    +
    +        sendFrame(newFrame);
    +    };
    +
    +    /**
    +     * @private
    +     *
    +     * Wrapper to emit the events for the STOMP object
    +     *
    +     * @returns {void}
    +     */
    +    var emitWrapper = function(str, obj){
    +        thisPointer.emit(str, obj);
    +    };
    +
    +    /**
    +     * @private
    +     *
    +     * Returns the process args/options passed into the Client.
    +     * This is only used for testing purposes which is why this public function is marked private.
    +     *
    +     * @returns {Object}        returns the process args/options passed into the Client
    +     */
    +    var getOptions = function(){
    +        return options;
    +    };
    +
    +    /**
    +     * @private
    +     *
    +     * Helper to parse the command from frame
    +     *
    +     * @param {Object}      data       the frame as a buffer
    +     * @returns {String}               returns the command from the frame
    +     */
    +    var parseCommand = function(data) {
    +        var dataStr = data.toString('utf8', 0, data.length);
    +        var command = dataStr.split('\n');
    +        return command[0];
    +    };
    +
    +    /**
    +     * @private
    +     *
    +     * Helper to parse the headers from frame
    +     *
    +     * @param {Object}      rawHeaders       the raw headers from the frame
    +     * @returns {Object}                     returns the headers from the frame
    +     */
    +    var parseHeaders = function(rawHeaders) {
    +        var headers = {};
    +        var headersSplit = rawHeaders.split('\n');
    +
    +        for (var i = 0; i < headersSplit.length; i++) {
    +            var header = headersSplit[i].split(':');
    +            if (header.length > 1) {
    +                var headerKey = header.shift().trim();
    +                var headerVal = header.join(':').trim();
    +                headers[headerKey] = headerVal;
    +                continue;
    +            }
    +            headers[header[0].trim()] = header[1].trim();
    +        }
    +        return headers;
    +    };
    +
    +    /**
    +     * @private
    +     *
    +     * Helper to parse the key data pieces (headers, command, body) from frame
    +     *
    +     * @param {Object}      chunk       the frame as a buffer
    +     * @returns {Object}                returns the frame as a [StompJS.Frame](#!/api/Frame)
    +     */
    +    var parseFrame = function(chunk) {
    +        if (!stompUtils.isDefined(chunk)) {
    +            return null;
    +        }
    +
    +        var command = parseCommand(chunk);
    +        var data = chunk.slice(command.length + 1, chunk.length);
    +        data = data.toString('utf8', 0, data.length);
    +
    +        var theRest = data.split('\n\n');
    +        var headers = parseHeaders(theRest[0]);
    +        var body = theRest.slice(1, theRest.length);
    +
    +        if ('content-length' in headers) {
    +            headers.bytes_message = true;
    +        }
    +
    +        var args = {
    +            command: command,
    +            headers: headers,
    +            body: body
    +        };
    +
    +        var frame = new Frame();
    +        var newFrame = frame.buildFrame(args);
    +
    +        return newFrame;
    +    };
    +
    +    /**
    +     * @private
    +     *
    +     * Helper to build the headers from the client args/options
    +     *
    +     * @param {Object}      options     the client args/options
    +     * @returns {Object}                returns the headers
    +     */
    +    var buildHeaders = function(options) {
    +        var headers = {};
    +        if (stompUtils.isDefined(options.login) &&
    +            stompUtils.isDefined(options.passcode)) {
    +            headers.login = options.login;
    +            headers.passcode = options.passcode;
    +        }
    +        if (stompUtils.isDefined(options.clientId)) {
    +            headers["client-id"] = options.clientId;
    +        }
    +        if (stompUtils.isDefined(options.vhost)) {
    +            headers.host = options.vhost;
    +        }
    +        return headers;
    +    };
    +
    +    /**
    +     * @private
    +     *
    +     * Create the STOMP Frame and send the command to the STOMP broker
    +     *
    +     * @param {String}      command         the command to send
    +     * @param {Object}      headers         the headers to send
    +     * @param {Object}      body            the body to send
    +     * @param {Boolean}     wantReceipt     boolean to indicate that you wish to get a receipt
    +     * @returns {Object}                    returns a [StompJS.Frame](#!/api/Frame)
    +     */
    +    var sendCommand = function(command, headers, body, wantReceipt) {
    +        if (!stompUtils.isDefined(wantReceipt)) {
    +            wantReceipt = false;
    +        }
    +
    +        if (!stompUtils.isDefined(headers)) {
    +            headers = {};
    +        }
    +
    +        var args = {
    +            'command': command,
    +            'headers': headers,
    +            'body': body
    +        };
    +
    +        var frame = new Frame();
    +        var newFrame = frame.buildFrame(args, wantReceipt);
    +        sendFrame(newFrame);
    +
    +        return newFrame;
    +    };
    +
    +    /**
    +     * @private
    +     *
    +     * Sends the STOMP frame to the message broker
    +     *
    +     * @param {String}      frame           the [StompJS.Frame](#!/api/Frame)
    +     * @returns {void}
    +     */
    +    var sendFrame = function(frame) {
    +        var frameStr = frame.asString();
    +
    +        if (frame) {
    +            if (frame.headers) {
    +                if (frame.headers.login) {
    +                    log.debug('attempting to login with: ' + frame.headers.login);
    +                    log.debug('login passcode: ' + frame.headers.passcode);  //TODO remove this
    +                }
    +            }
    +        }
    +
    +        if (socket.write(frameStr) === false) {
    +            log.debug('Write buffered');
    +        }
    +    };
    +
    +    /**
    +     * @private
    +     *
    +     * Determines if the frame headers have a message id which is assigned only if its a message
    +     *
    +     * @param {String}      frame           the [StompJS.Frame](#!/api/Frame)
    +     * @returns {Boolean}                   return *true* if the frame is a message; otherwise, *false*
    +     */
    +    var isMessage = function(frame) {
    +        return (frame.headers !== null && stompUtils.isDefined(frame.headers['message-id']));
    +    };
    +
    +    /**
    +     * @private
    +     *
    +     * Determines if the message callback function should be ran and runs it if it should
    +     *
    +     * @param {String}      frame           the [StompJS.Frame](#!/api/Frame)
    +     * @returns {Boolean}                   return *true* if the frame is a message; otherwise, *false*
    +     */
    +    var shouldRunMessageCallback = function(frame) {
    +        var subscription = subscribedTo[frame.headers.destination];
    +        if (frame.headers.destination !== null && subscription !== null) {
    +            if (subscription.enabled && subscription.callback !== null && typeof(subscription.callback) === 'function') {
    +                subscription.callback(frame.body, frame.headers);
    +            }
    +        }
    +    };
    +
    +    return {
    +        Client: Client,
    +
    +        isInitialized: isInitialized,
    +        isConnected: isConnected,
    +        connect: connect,
    +        disconnect: disconnect,
    +        subscribe: subscribe,
    +        unsubscribe: unsubscribe,
    +        send: send,
    +        ack: ack,
    +        abort: abort,
    +        commit: commit,
    +        begin: begin,
    +        emitWrapper: emitWrapper,
    +
    +        // exposed for testing purposes only
    +        getOptions: getOptions
    +    };
    +};
    +
    + + diff --git a/docs/source/stomp.logger.html b/docs/source/stomp.logger.html new file mode 100644 index 0000000..2f1affa --- /dev/null +++ b/docs/source/stomp.logger.html @@ -0,0 +1,95 @@ + + + + + The source code + + + + + + +
    /**
    + * @class StompLogger
    + * An instance of the StompJS logger
    + *
    + * @type {StompJS.Logger}
    + */
    +var StompLogger = module.exports = function(outputDebugInit) {
    +    "use strict";
    +
    +    var outputDebug = outputDebugInit;
    +
    +    /**
    +     * Writes a debug message to the console only if the outputDebug flag was also set to true
    +     *
    +     * @param {String}     message     the message to write to the console
    +     * @returns {void}
    +     */
    +    var debug = function(message) {
    +        if (outputDebug) {
    +            console.log("debug: " + message);
    +        }
    +    };
    +
    +    /**
    +     * Writes a info message to the console
    +     *
    +     * @param {String}     message     the message to write to the console
    +     * @returns {void}
    +     */
    +    var info = function(message) {
    +        console.log("info: " + message);
    +    };
    +
    +    /**
    +     * Writes a warn message to the console
    +     *
    +     * @param {String}     message     the message to write to the console
    +     * @returns {void}
    +     */
    +    var warn = function(message) {
    +        console.log("warn: " + message);
    +    };
    +
    +    /**
    +     * Writes a error message to the console and kills the process based on die input
    +     *
    +     * @param {String}     message     the message to write to the console
    +     * @param {Boolean}     die        if *true*, then kill the process after writing the message
    +     * @returns {void}
    +     */
    +    var error = function(message, die) {
    +        console.log("error: " + message);
    +        if (die) {
    +            process.exit(1);
    +        }
    +    };
    +
    +    /**
    +     * Writes a error message to the console and then kills the process
    +     *
    +     * @param {String}     message     the message to write to the console
    +     * @returns {void}
    +     */
    +    var die = function(message) {
    +        error(message, true);
    +    };
    +
    +    return {
    +        debug: debug,
    +        info: info,
    +        warn: warn,
    +        error: error,
    +        die: die
    +    };
    +};
    +
    + + diff --git a/docs/source/stomp.utils.html b/docs/source/stomp.utils.html new file mode 100644 index 0000000..18bd5b8 --- /dev/null +++ b/docs/source/stomp.utils.html @@ -0,0 +1,62 @@ + + + + + The source code + + + + + + +
    /**
    + * @class StompUtils
    + * An instance of the StompJS helper utilities
    + *
    + * @type {StompJS.StompUtils}
    + */
    +var StompUtils = module.exports = function() {
    +    "use strict";
    +
    +    /**
    +     * Returns if the input is defined (not null or undefined)
    +     *
    +     * @param {Object}  varToTest   the variable to test
    +     * @returns {Boolean}           returns *true* if the input is defined; otherwise, *false*
    +     */
    +    var isDefined = function(varToTest) {
    +        return !(varToTest === null || typeof varToTest === "undefined");
    +    };
    +
    +    /**
    +     * Extends the destination by adding any source properties
    +     *
    +     * @param {Object}      destination     the object to extend
    +     * @param {Object}      source          the object to extend from
    +     * @returns {Object}                    returns the extended object
    +     */
    +    var extend = function(destination, source) {
    +        if (!isDefined(destination)) {return destination;}
    +        if (!isDefined(source)) {return destination;}
    +        for (var property in source) {
    +            if (source.hasOwnProperty(property)) {
    +                destination[property] = source[property];
    +            }
    +        }
    +        return destination;
    +    };
    +
    +    return {
    +        isDefined: isDefined,
    +        extend: extend
    +    };
    +};
    +
    + + diff --git a/docs/stomp-exceptions.html b/docs/stomp-exceptions.html deleted file mode 100644 index e59c063..0000000 --- a/docs/stomp-exceptions.html +++ /dev/null @@ -1,10 +0,0 @@ - stomp-exceptions.js

    stomp-exceptions.js

    QueueEmpty = exports.QueueEmpty = function() {
    -    this.name = "QueueEmpty";
    -    this.message = "Queue is Empty";
    -};
    -
    -QueueEmpty.prototype.toString = function() {
    -    return this.message;
    -};
    -
    -
    \ No newline at end of file diff --git a/docs/stomp-utils.html b/docs/stomp-utils.html deleted file mode 100644 index 7a0a755..0000000 --- a/docs/stomp-utils.html +++ /dev/null @@ -1,44 +0,0 @@ - stomp-utils.js

    stomp-utils.js

    var exceptions = require('./stomp-exceptions');
    -var sys = require('util');
    -
    -StompLogging = exports.StompLogging = function(should_debug) {
    -    this.should_debug = should_debug;
    -};
    -
    -StompLogging.prototype.debug = function(message) {
    -    if (this.should_debug) {
    -        console.log("debug: " + message);
    -    }
    -};
    -
    -StompLogging.prototype.warn = function(message) {
    -    console.log("warn: " + message);
    -};
    -
    -StompLogging.prototype.error = function(message, die) {
    -    console.log("error: " + message);
    -    if (die) {
    -        process.exit(1);
    -    }
    -};
    -
    -StompLogging.prototype.die = function(message) {
    -    this.error(message, true);
    -};
    -
    -StompUtils = exports.StompUtils = function() {
    -    this.available_utils = [];
    -};
    -
    -StompUtils.prototype.really_defined = function(var_to_test) {
    -    return !(var_to_test == null || var_to_test == undefined);
    -};
    -
    -StompUtils.prototype.extend = function(destination, source) {
    -    for (var property in source) {
    -        destination[property] = source[property];
    -    }
    -    return destination;
    -};
    -
    -
    \ No newline at end of file diff --git a/docs/stomp.html b/docs/stomp.html deleted file mode 100644 index 76e795d..0000000 --- a/docs/stomp.html +++ /dev/null @@ -1,365 +0,0 @@ - stomp.js

    stomp.js

    stomp

    - -

    The Stomp module provides you with a client interface for interacting with STOMP messaging brokers

    - -

    stomp.Stomp

    - -

    An instance of the Stomp object. Initialized like so:

    - -
    var stomp_args = {
    -    port: 61613,
    -    host: 'localhost',
    -    debug: false,
    -    login: 'guest',
    -    passcode: 'guest',
    -};
    -
    -var client = new stomp.Stomp(stomp_args);
    - -

    If debug is set to true, extra output will be printed to the console.

    Helpers to handle frames, and do parsing

    var net = require('net'),
    -    tls = require('tls'),
    -    sys = require('util'),
    -    frame = require('./frame'),
    -    stomp_utils = require('./stomp-utils'),
    -    exceptions = require('./stomp-exceptions'),
    -    utils = new stomp_utils.StompUtils(),
    -    log = null;
    -
    -
    -function parse_command(data) {
    -    var command,
    -        this_string = data.toString('utf8', 0, data.length);
    -    command = this_string.split('\n');
    -    return command[0];
    -};
    -
    -function parse_headers(headers_str) {
    -    var these_headers = {},
    -        one_header = [],
    -        header_key = null,
    -        header_val = null,
    -        headers_split = headers_str.split('\n');
    -
    -    for (var i = 0; i < headers_split.length; i++) {
    -        one_header = headers_split[i].split(':');
    -        if (one_header.length > 1) {
    -            header_key = one_header.shift();
    -            header_val = one_header.join(':');
    -            these_headers[header_key] = header_val;
    -        }
    -        else {
    -            these_headers[one_header[0]] = one_header[1];
    -        }
    -    }
    -    return these_headers;
    -};
    -
    -function parse_frame(chunk) {
    -    var args = {},
    -        data = null,
    -        command = null,
    -        headers = null,
    -        body = null,
    -        headers_str = null;
    -
    -    if (!utils.really_defined(chunk))
    -        return null;
    -
    -    command = parse_command(chunk);
    -    data = chunk.slice(command.length + 1, chunk.length);
    -    data = data.toString('utf8', 0, data.length);
    -
    -    var the_rest = data.split('\n\n');
    -    headers = parse_headers(the_rest[0]);
    -    body = the_rest.slice(1, the_rest.length);
    -
    -    if ('content-length' in headers)
    -       headers['bytes_message'] = true;
    -
    -    args = {
    -        command: command,
    -        headers: headers,
    -        body: body
    -    }
    -
    -    var this_frame = new frame.Frame();
    -    var return_frame = this_frame.build_frame(args);
    -
    -    return return_frame;
    -};
    -
    -function _connect(stomp) {
    -    log = stomp.log;
    -
    -    if (stomp.ssl) {
    -        log.debug('Connecting to ' + stomp.host + ':' + stomp.port + ' using SSL');
    -        stomp.socket = tls.connect(stomp.port, stomp.host, stomp.ssl_options, function() {
    -            log.debug('SSL connection complete');
    -            if (!stomp.socket.authorized) {
    -                log.error('SSL is not authorized: '+stomp.socket.authorizationError);
    -                if (stomp.ssl_validate) {
    -                    _disconnect(stomp);
    -                    return;
    -                }
    -            }
    -            _setupListeners(stomp);
    -        });
    -    } else {
    -        log.debug('Connecting to ' + stomp.host + ':' + stomp.port);
    -        stomp.socket = new net.Socket();
    -        stomp.socket.connect(stomp.port, stomp.host);
    -        _setupListeners(stomp);
    -    }
    -}
    -
    -function _setupListeners(stomp) {
    -    function _connected() {
    -        log.debug('Connected to socket');
    -        var headers = {};
    -        if (utils.really_defined(stomp.login) &&
    -            utils.really_defined(stomp.passcode)) {
    -            headers.login = stomp.login;
    -            headers.passcode = stomp.passcode;
    -        }
    -        if (utils.really_defined(stomp["client-id"])) {
    -            headers["client-id"] = stomp["client-id"];
    -        }
    -        stomp_connect(stomp, headers);
    -    }
    -
    -    var socket = stomp.socket;
    -
    -    socket.on('drain', function(data) {
    -        log.debug('draining');
    -    });
    -
    -    var buffer = '';
    -    socket.on('data', function(chunk) {
    -        buffer += chunk;
    -        var frames = buffer.split('\0\n');

    Temporary fix : NULL,LF is not a guranteed standard, the LF is optional, so lets deal with it. (Rauls)

            if (frames.length == 1) {
    -            frames = buffer.split('\0');
    -        }
    -
    -        if (frames.length == 1) return;
    -        buffer = frames.pop();
    -
    -        var parsed_frame = null;
    -        var _frame = null;
    -        while (_frame = frames.shift()) {
    -            parsed_frame = parse_frame(_frame);
    -            stomp.handle_new_frame(parsed_frame);
    -        }
    -    });
    -
    -    socket.on('end', function() {
    -        log.debug("end");
    -    });
    -
    -    socket.on('error', function(error) {
    -        log.error(error.stack + 'error name: ' + error.name);
    -        stomp.emit("error", error);
    -    });
    -
    -    socket.on('close', function(error) {
    -        log.debug('disconnected');
    -        if (error) {
    -            log.error('Disconnected with error: ' + error);
    -        }
    -        stomp.emit("disconnected", error);
    -    });
    -
    -    if (stomp.ssl) {
    -        _connected();
    -    } else {
    -        socket.on('connect', _connected);
    -    }
    -};
    -
    -function stomp_connect(stomp, headers) {
    -    var _frame = new frame.Frame(),
    -        args = {},
    -        headers = headers || {};
    -
    -    args['command'] = 'CONNECT';
    -    args['headers'] = headers;
    -
    -    var frame_to_send = _frame.build_frame(args);
    -
    -    send_frame(stomp, frame_to_send);
    -};
    -
    -function _disconnect(stomp) {
    -    var socket = stomp.socket;
    -    socket.end();
    -    if (socket.readyState == 'readOnly')
    -        socket.destroy();
    -    log.debug('disconnect called');
    -};
    -
    -function send_command(stomp, command, headers, body, want_receipt) {
    -    var want_receipt = want_receipt || false;
    -    if (!utils.really_defined(headers))
    -        headers = {};
    -
    -    var args = {
    -        'command': command,
    -        'headers': headers,
    -        'body': body
    -    };
    -
    -    var _frame = new frame.Frame();
    -    var this_frame = _frame.build_frame(args, want_receipt);
    -    send_frame(stomp, this_frame);
    -
    -    return this_frame;
    -};
    -
    -function send_frame(stomp, _frame) {
    -    var socket = stomp.socket;
    -    var frame_str = _frame.as_string();
    -
    -    if (socket.write(frame_str) === false) {
    -        log.debug('Write buffered');
    -    }
    -
    -    return true;
    -};

    Stomp - Client API

    - -

    Takes an argument object

    function Stomp(args) {
    -    this.port = args['port'] || 61613;
    -    this.host = args['host'] || "127.0.0.1";
    -    this.debug = args['debug'];
    -    this.login = args['login'] || null;
    -    this.passcode = args['passcode'] || null;
    -    this.log = new StompLogging(this.debug);
    -    this._subscribed_to = {};
    -    this.session = null;
    -    this.ssl = args['ssl'] ? true : false;
    -    this.ssl_validate = args['ssl_validate'] ? true : false;
    -    this.ssl_options = args['ssl_options'] || {};
    -    this['client-id'] = args['client-id'] || null;
    -};

    Stomp is an EventEmitter

    Stomp.prototype = new process.EventEmitter();

    Stomp.connect()

    - -

    Begin connection

    Stomp.prototype.connect = function() {
    -    _connect(this);
    -};

    Stomp.handle_new_frame()

    - -

    Handle frame based on type. Emit events when needed.

    - -

    Takes a Frame object

    Stomp.prototype.handle_new_frame = function(this_frame) {
    -    switch (this_frame.command) {
    -        case "MESSAGE":
    -            if (utils.really_defined(this_frame.headers['message-id'])) {
    -                if (this_frame.headers !== null && this_frame.headers.destination !== null && this._subscribed_to[this_frame.headers.destination] !== null) {
    -                    var subscription = this._subscribed_to[this_frame.headers.destination];
    -                    if (subscription.enabled && subscription.callback !== null && typeof(subscription.callback) == 'function') {
    -                        subscription.callback(this_frame.body, this_frame.headers);
    -                    }
    -                }
    -                this.emit('message', this_frame);
    -            }
    -
    -            break;
    -        case "CONNECTED":
    -            log.debug('Connected to STOMP');
    -            this.session = this_frame.headers['session'];
    -            this.emit('connected');
    -            break;
    -        case "RECEIPT":
    -            this.emit('receipt', this_frame.headers['receipt-id']);
    -            break;
    -        case "ERROR":
    -            this.emit('error', this_frame);
    -            break;
    -        default:
    -            console.log("Could not parse command: " + this_frame.command);
    -    }
    -};

    Stomp.disconnect()

    - -

    Disconnect from STOMP broker

    Stomp.prototype.disconnect = function() {
    -    _disconnect(this);
    -}

    Stomp.subscribe(headers, callback)

    - -

    Subscribe to destination (queue or topic)

    - -

    Takes a header object

    - -

    Takes a callback function

    Stomp.prototype.subscribe = function(headers, callback) {
    -    var destination = headers['destination'];
    -    headers['session'] = this.session;
    -    send_command(this, 'SUBSCRIBE', headers);
    -
    -    /**
    -    / Maybe we could subscribe to mulitple queues?
    -    / if (destination instanceof Array) {
    -    /   for (var = i; i < 0; i++) {
    -    /     this._subscribed_to[destination[i]] = { enabled: true, callback: callback };
    -    /   }
    -    / }
    -    / else {
    -    /     this._subscribed_to[destination] = { enabled: true, callback: callback };
    -    / }
    -    /
    -    */
    -
    -    this._subscribed_to[destination] = { enabled: true, callback: callback };
    -    this.log.debug('subscribed to: ' + destination + ' with headers ' + sys.inspect(headers));
    -};

    Stomp.unsubscribe()

    - -

    Unsubscribe from destination (queue or topic)

    - -

    Takes a header object

    Stomp.prototype.unsubscribe = function(headers) {
    -    var destination = headers['destination'];
    -    headers['session'] = this.session;
    -    send_command(this, 'UNSUBSCRIBE', headers);
    -    this._subscribed_to[destination].enabled = false;
    -    this.log.debug('no longer subscribed to: ' + destination);
    -};

    Stomp.ack()

    - -

    Acknowledge received message

    - -

    Takes a string representing the message id to ack

    Stomp.prototype.ack = function(message_id) {
    -    send_command(this, 'ACK', {'message-id': message_id});
    -    this.log.debug('acknowledged message: ' + message_id);
    -};

    Stomp.begin()

    - -

    Begin transaction

    - -

    Return a string representing the generated transaction id

    Stomp.prototype.begin = function() {
    -    var transaction_id = Math.floor(Math.random()*99999999999).toString();
    -    send_command(this, 'BEGIN', {'transaction': transaction_id});
    -    this.log.debug('begin transaction: ' + transaction_id);
    -    return transaction_id;
    -};

    Stomp.commit()

    - -

    Commit transaction

    - -

    Takes a string representing the transaction id generated by stomp.Stomp.begin()

    Stomp.prototype.commit = function(transaction_id) {
    -    send_command(this, 'COMMIT', {'transaction': transaction_id});
    -    this.log.debug('commit transaction: ' + transaction_id);
    -};

    Stomp.abort()

    - -

    Abort transaction

    - -

    Takes a string representing the transaction id generated by stomp.Stomp.begin()

    Stomp.prototype.abort = function(transaction_id) {
    -    send_command(this, 'ABORT', {'transaction': transaction_id});
    -    this.log.debug('abort transaction: ' + transaction_id);
    -};

    Stomp.send()

    - -

    Send MESSAGE to STOMP broker

    - -

    Takes a header object (destination is required)

    - -

    Takes a boolean requesting recipt of the sent message

    - -

    Returns a Frame object representing the message sent

    Stomp.prototype.send = function(headers, want_receipt) {
    -    var destination = headers['destination'],
    -    body = headers['body'] || null;
    -    delete headers['body'];
    -    headers['session'] = this.session;
    -    return send_command(this, 'SEND', headers, body, want_receipt)
    -};
    -
    -module.exports.Stomp = Stomp;
    -
    -
    \ No newline at end of file diff --git a/examples/app.js b/examples/app.js new file mode 100644 index 0000000..020f492 --- /dev/null +++ b/examples/app.js @@ -0,0 +1,52 @@ +module.exports = function App() { + "use strict"; + + var program, exec, log; + + var init = function() { + program = require('commander'); + var version = require('../package.json').version; + var debugOptions = ['true','false']; + + program + .version(version) + .option('-f, --file ', 'The example file to load.') + .option('-d, --debug ', 'Run in debug mode.', debugOptions) + .option('-p, --params ', 'Other parameters to pass to example file.') + .parse(process.argv); + + var debug = false; + if (program.debug) { + if (program.debug === "true") { + debug = true; + } + } + + var file = './examples/stomp-example.js'; + if (program.file) { + file = program.file; + } + + var params = null; + if (program.params) { + params = program.params[0]; + } + + var StompLogger = require('../lib/stomp.logger.js'); + log = new StompLogger(debug); + + log.info('initializing app...'); + log.debug('root dir:' + __dirname); + exec = require(program.file).init(debug, params); + }; + + var execute = function() { + log.info('executing app...'); + exec.execute(); + }; + + init(); + execute(); + + return {}; +} (); diff --git a/examples/stomp-consumer.js b/examples/stomp-consumer.js deleted file mode 100755 index 3954e81..0000000 --- a/examples/stomp-consumer.js +++ /dev/null @@ -1,58 +0,0 @@ -#!/usr/bin/env node - -var sys = require('util'); -var stomp = require('stomp'); - -// Set debug to true for more verbose output. -// login and passcode are optional (required by rabbitMQ) -var stomp_args = { - port: 61613, - host: 'localhost', - debug: false, - login: 'guest', - passcode: 'guest', -}; - -var client = new stomp.Stomp(stomp_args); - -// 'activemq.prefetchSize' is optional. -// Specified number will 'fetch' that many messages -// and dump it to the client. -var headers = { - destination: '/queue/test_stomp', - ack: 'client', -// 'activemq.prefetchSize': '10' -}; - -var messages = 0; - -client.connect(); - -function message_callback(body, headers) { - console.log('Message Callback Fired!'); - console.log('Headers: ' + sys.inspect(headers)); - console.log('Body: ' + body); -} - -client.on('connected', function() { - client.subscribe(headers, message_callback); - console.log('Connected'); -}); - -client.on('message', function(message) { - //console.log("HEADERS: " + sys.inspect(message.headers)); - //console.log("BODY: " + message.body); - console.log("Got message: " + message.headers['message-id']); - client.ack(message.headers['message-id']); - messages++; -}); - -client.on('error', function(error_frame) { - console.log(error_frame.body); - client.disconnect(); -}); - -process.on('SIGINT', function() { - console.log('\nConsumed ' + messages + ' messages'); - client.disconnect(); -}); diff --git a/examples/stomp-examples.js b/examples/stomp-examples.js new file mode 100644 index 0000000..401712b --- /dev/null +++ b/examples/stomp-examples.js @@ -0,0 +1,280 @@ +module.exports = function Examples() { + "use strict"; + + var debug, params, util, log, stompSettings; + + var Stomp; + + var getParams = function(){ + return params; + }; + + var init = function(debugInit, paramsInit) { + debug = debugInit; + params = paramsInit; + util = require('util'); + Stomp = require('../lib/stomp.js'); + var StompLogger = require('../lib/stomp.logger.js'); + log = new StompLogger(debug); + + log.info('initializing example...'); + + if (!params) { + params = "Publisher"; + } + + log.debug('params: ' + params); + + stompSettings = { + "host" : "localhost", + "port" : 61613, + "user" : "guest", + "password" : "guest", + "debug" : debug + }; + + return this; + }; + + var execute = function() { + log.info('executing example...'); + stompConnect(); + }; + + var stompConnect = function() { + + var stompArgs = { + host: stompSettings.host, + port: stompSettings.port, + login: stompSettings.user, + passcode: stompSettings.password, + debug: stompSettings.debug + }; + + // login only important if using security on the MQ end + if (params === 'ListenerA') { + stompArgs.login = "siteAuser1"; + stompArgs.passcode = "siteAuser1"; + } else if (params === 'ListenerB') { + stompArgs.login = "siteBuser1"; + stompArgs.passcode = "siteBuser1"; + } else if (params === 'ListenerC') { + stompArgs.login = "siteCuser1"; + stompArgs.passcode = "siteCuser1"; + } else if (params === 'ListenerAll') { + stompArgs.login = "alluser2"; + stompArgs.passcode = "alluser2"; + } else if (params === 'Publisher') { + stompArgs.login = "alluser1"; + stompArgs.passcode = "alluser1"; + } + log.debug(util.format("login:" + stompArgs.login)); + + + var stompClient = new Stomp().Client(stompArgs); + + stompClient.on('connected', function () { + log.info(util.format("stomp.onConnected")); + + runStomp(stompClient, function(err, result){ + if (err) {log.error(err);} + log.debug('result', result); + exit(); + }); + }); + + stompClient.on('receipt', function (receipt) { + log.debug(util.format("stomp.onReceipt %s", receipt)); + }); + + stompClient.on('error', function (errorFrame) { + log.error(util.format("stomp.onError %s", JSON.stringify(errorFrame))); + stompClient.disconnect(); + exit(); + }); + + stompClient.on('SIGINT', function () { + log.warn(util.format("stomp.onSIGINT")); + stompClient.disconnect(); + exit(); + }); + + stompClient.connect(); + }; + + var runStomp = function(stompClient, callback) { + + try + { + var topic = "/topic/"; + var queue = "/queue/"; + var baseQueueName = "%sSite.%s"; + var queueNameSiteA = util.format(baseQueueName, topic, "A"); + var queueNameSiteB = util.format(baseQueueName, queue, "B"); + var queueNameSiteC = util.format(baseQueueName, topic, "C"); + + var baseRoutingKey = "command.siteCode%s.msgId%d"; + + var message, routingKey; + + + if (params === 'ListenerA') { + // listener for site A + listener(stompClient, queueNameSiteA, "", processMessage); + } else if (params === 'ListenerB') { + // listener for site B + listener(stompClient, queueNameSiteB, "", processMessage); + } else if (params === 'ListenerC') { + // listener for site C + listener(stompClient, queueNameSiteC, "", processMessage); + } else if (params === 'ListenerAll') { + // listener for site ALL + //var allQueues = util.format(baseQueueName, baseQueueType, "*"); + // all queues with wild card doesn't work, errors on stomp.js:299 + + var allQueues = [queueNameSiteA, queueNameSiteB,queueNameSiteC]; + listener(stompClient, allQueues, "", processMessage); + } else if (params === 'Publisher') { + // publish 3 messages for A + message = {message: "msg1 for A", queue: "A", msgId: 1}; + routingKey = util.format(baseRoutingKey, message.queue, message.msgId); + publishMessage(stompClient, message, queueNameSiteA, routingKey); + + message = {message: "msg2 for A", queue: "A", msgId: 2}; + routingKey = util.format(baseRoutingKey, message.queue, message.msgId); + publishMessage(stompClient, message, queueNameSiteA, routingKey); + + message = {message: "msg3 for A", queue: "A", msgId: 3}; + routingKey = util.format(baseRoutingKey, message.queue, message.msgId); + publishMessage(stompClient, message, queueNameSiteA, routingKey); + + // publish 2 messages for B + message = {message: "msg1 for B", queue: "B", msgId: 4}; + routingKey = util.format(baseRoutingKey, message.queue, message.msgId); + publishMessageWithTransaction(stompClient, message, queueNameSiteB, routingKey); + + message = {message: "msg2 for B", queue: "B", msgId: 5}; + routingKey = util.format(baseRoutingKey, message.queue, message.msgId); + publishMessageWithTransaction(stompClient, message, queueNameSiteB, routingKey); + + // publish 1 message for C + message = {message: "msg1 for C", queue: "C", msgId: 6}; + routingKey = util.format(baseRoutingKey, message.queue, message.msgId); + publishMessageWithTransaction(stompClient, message, queueNameSiteC, routingKey); + + return callback(null, 'All messages have been published'); + } + + } catch (err) { + var errMsg; + if (err.stack) { + errMsg = err.stack; + } else if (err.message) { + errMsg = err.message; + } else { + errMsg = err; + } + + log.error('trapped the following error:' + errMsg); + exit(); + } + }; + + var exit = function(){ + log.info('exiting program'); + process.nextTick(function () { + process.exit(1); + }); + }; + + var processMessage = function(msg) { + log.info(util.format('processMessage received', msg)); + }; + + var listener = function(client, destination, selector, messageProcessorFunction){ + + var subscribeArgs = { + destination: destination, + //selector: 'RoutingKey LIKE '%s', + ack: 'auto' + }; + + client.on('message', function (messageData) { + log.debug(util.format("listener.onMessage = %s", JSON.stringify(messageData))); + + var messageHeaders = messageData.headers; + var deliveryInfo = { + routingKey: messageHeaders.RoutingKey + }; + var messageBody = messageData.body; + messageBody = JSON.parse(messageBody); + + log.debug(util.format("listener started message with routing key %s = %s", deliveryInfo.routingKey, messageBody)); + + process.nextTick(function () { + messageProcessorFunction(messageBody, messageHeaders, deliveryInfo, function (err, handlerMsg) { + log.debug(util.format("listener finished message with routing key %s", deliveryInfo.routingKey)); + + if (err) { + var errMsg = util.format("listener handler returned error: %s", err.message); + log.error(errMsg); + } else { + log.debug(util.format("listener handler message returned: %s", handlerMsg)); + } + }); + }); + }); + + log.info('listener listening to ' + subscribeArgs.destination); + client.subscribe(subscribeArgs, function (body, headers) { + log.debug(util.format("subscribe body: %s headers:%s", JSON.stringify(body), JSON.stringify(headers))); + }); + }; + + var publishMessage = function(client, message, queueName, routingKey) { + var publisherArgs = { + body: JSON.stringify(message), + persistent: 'true' + }; + if (routingKey) { + publisherArgs.RoutingKey = routingKey; + } + publisherArgs.destination = queueName; + + var wantReceipt = false; + client.send(publisherArgs, wantReceipt); + + log.info(util.format("publishMessage %s", JSON.stringify(publisherArgs))); + }; + + var publishMessageWithTransaction = function(client, message, queueName, routingKey) { + + var txn = client.begin(); + + var publisherArgs = { + body: JSON.stringify(message), + persistent: 'true', + transaction: txn + }; + if (routingKey) { + publisherArgs.RoutingKey = routingKey; + } + publisherArgs.destination = queueName; + + var wantReceipt = false; + + client.send(publisherArgs, wantReceipt); + + client.commit(txn); + //client.abort(txn); + + log.info(util.format("publishMessageWithTransaction %s", JSON.stringify(publisherArgs))); + }; + + + return { + init: init, + execute: execute, + getParams: getParams + }; +}(); diff --git a/examples/stomp-producer-txn.js b/examples/stomp-producer-txn.js deleted file mode 100755 index 8ff980d..0000000 --- a/examples/stomp-producer-txn.js +++ /dev/null @@ -1,58 +0,0 @@ -#!/usr/bin/env node -// Same as stomp-producer.js, but transactional - -var stomp = require('stomp'); - -var num = process.argv[2]; - -// Set to true if you want a receipt -// of all messages sent. -var receipt = false; - -// Set debug to true for more verbose output. -// login and passcode are optional (required by rabbitMQ) -var stomp_args = { - port: 61613, - host: 'localhost', - debug: true, - login: 'guest', - passcode: 'guest', -} - -var client = new stomp.Stomp(stomp_args); - -var queue = '/queue/test_stomp'; - -client.connect(); - -client.on('connected', function() { - num = num || 1000; - for (var i = 0; i < num; i++) { - txn = client.begin(); - client.send({ - 'destination': queue, - 'body': 'Testing' + i, - 'persistent': 'true', - 'transaction': txn - }, receipt); - client.commit(txn); - //client.abort(txn); - } - console.log('Produced ' + num + ' messages'); - client.disconnect(); -}); - -client.on('receipt', function(receipt) { - console.log("RECEIPT: " + receipt); -}); - -client.on('error', function(error_frame) { - console.log(error_frame.body); - client.disconnect(); -}); - -process.on('SIGINT', function() { - console.log('Produced ' + num + ' messages'); - client.disconnect(); - process.exit(0); -}); diff --git a/examples/stomp-producer.js b/examples/stomp-producer.js deleted file mode 100755 index 4eff967..0000000 --- a/examples/stomp-producer.js +++ /dev/null @@ -1,59 +0,0 @@ -#!/usr/bin/env node - -var stomp = require('stomp'); - -var num = process.argv[2]; - -// Set to true if you want a receipt -// of all messages sent. -var receipt = true; - -// Set debug to true for more verbose output. -// login and passcode are optional (required by rabbitMQ) -var stomp_args = { - port: 61613, - host: 'localhost', - debug: false, - login: 'guest', - passcode: 'guest', -} - -var client = new stomp.Stomp(stomp_args); - -var queue = '/queue/test_stomp'; - -client.connect(); - -function sleep(milliSeconds) { - var startTime = new Date().getTime(); - while (new Date().getTime() < startTime + milliSeconds); -} - -client.on('connected', function() { - num = num || 1000; - for (var i = 0; i < num; i++) { - client.send({ - 'destination': queue, - 'body': 'Testing\n\ntesting1\n\ntesting2 ' + i, - 'persistent': 'true' - }, receipt); - sleep(250); - } - console.log('Produced ' + num + ' messages'); - client.disconnect(); -}); - -client.on('receipt', function(receipt) { - console.log("RECEIPT: " + receipt); -}); - -client.on('error', function(error_frame) { - console.log(error_frame.body); - client.disconnect(); -}); - -process.on('SIGINT', function() { - console.log('Produced ' + num + ' messages'); - client.disconnect(); - process.exit(0); -}); diff --git a/jsduckCategories.json b/jsduckCategories.json new file mode 100644 index 0000000..286a55e --- /dev/null +++ b/jsduckCategories.json @@ -0,0 +1,21 @@ +[ + { + "name":"StompJS", + "groups": [ + { + "name":"Classes", + "classes":[ + "Frame", + "Stomp" + ] + }, + { + "name":"Utilities", + "classes":[ + "StompUtils", + "StompLogger" + ] + } + ] + } +] \ No newline at end of file diff --git a/jsduckConfig.json b/jsduckConfig.json new file mode 100644 index 0000000..faee3e2 --- /dev/null +++ b/jsduckConfig.json @@ -0,0 +1,11 @@ +{ + "--output": "docs", + "--warnings": ["-link","-no_doc","-link_ambiguous"], + "--categories": "jsduckCategories.json", + "--": [ + "lib/frame.js", + "lib/stomp.js", + "lib/stomp.logger.js", + "lib/stomp.utils.js" + ] +} \ No newline at end of file diff --git a/lib/frame.js b/lib/frame.js index e9943bb..7525ba3 100644 --- a/lib/frame.js +++ b/lib/frame.js @@ -1,97 +1,86 @@ -// ## frame -// -// The `Frame` module provides an object representation of a `Stomp` frame. -// -// ### frame.Frame -// -// An instance of the `Frame` object. -// -// var frame = new frame.Frame(); -// -// ### frame.Frame.build_frame() -// -// Build a frame object from an object of arguments. -// -// var args = { -// command: '', -// headers: {}, -// body: '' -// }; -// -// this_frame = frame.build_frame(args); -// - - -// -// ## Frame - Object representation of a STOMP frame -// -function Frame() { +/** + * @class Frame + * The `Frame` module provides an object representation of a [STOMP frame](http://stomp.github.io/stomp-specification-1.0.html) + * + * @type {StompJS.Frame} + */ +var Frame = module.exports = function() { + "use strict"; this.command = null; this.headers = null; this.body = null; -}; -// -// ## Frame.build_frame(args, want_receipt) -// -// **Build frame based on arguments provided** -// -// Takes arguments object needed to build frame (command, headers, body?) -// -// Takes boolean to indicate that you wish to get a receipt (set receipt header) -// -// Returns an object representing a frame -// -Frame.prototype.build_frame = function(args, want_receipt) { - var receipt_stamp = null; + /** + * Build frame based on arguments provided + * + * @param {Object} args arguments object needed to build frame (command, headers, body?) + * + * ***Example:*** + * + * args = { + * command: '', + * headers: {}, + * body: '' + * } + * + * @param {Boolean} wantReceipt boolean to indicate that you wish to get a receipt (set receipt header) + * @returns {Object} returns {@link StompJS.Frame} + */ + var buildFrame = function(args, wantReceipt) { + var receiptStamp = null; - this.command = args['command']; - this.headers = args['headers']; - this.body = args['body']; + this.command = args.command; + this.headers = args.headers; + this.body = args.body; - if (want_receipt) { - var _receipt = ''; - receipt_stamp = Math.floor(Math.random()*99999999999).toString(); - if (this.headers['session'] != undefined) { - _receipt = receipt_stamp + "-" + this.headers['session']; + if (wantReceipt) { + var receipt = ''; + receiptStamp = Math.floor(Math.random()*99999999999).toString(); + if (this.headers.session !== undefined) { + receipt = receiptStamp + "-" + this.headers.session; + } + else { + receipt = receiptStamp; + } + this.headers.receipt = receipt; } - else { - _receipt = receipt_stamp; - } - this.headers['receipt'] = _receipt; - } - return this; -}; -// -// ## Frame.as_string() -// -// **String representation of Frame object** -// -// Returns `Frame` as string -// -Frame.prototype.as_string = function() { - var header_strs = [], - frame = "", - command = this.command, - headers = this.headers, - body = this.body; + return this; + }; - for (var header in headers) { - header_strs.push(header + ':' + headers[header]); - } + /** + * String representation of Frame object + * + * @returns {String} returns {@link StompJS.Frame} as string + */ + var asString = function() { + var headerStrs = [], + frame = "", + command = this.command, + headers = this.headers, + body = this.body; - frame += command + "\n"; - frame += header_strs.join("\n"); - frame += "\n\n"; + for (var header in headers) { + if (headers.hasOwnProperty(header)){ + headerStrs.push(header + ':' + headers[header]); + } + } - if(body) { - frame += body; - } + frame += command + "\n"; + frame += headerStrs.join("\n"); + frame += "\n\n"; - frame += '\x00'; + if(body) { + frame += body; + } - return frame; -}; + frame += '\x00'; -module.exports.Frame = Frame; + return frame; + }; + + return { + buildFrame: buildFrame, + asString: asString + }; +}; diff --git a/lib/stomp-exceptions.js b/lib/stomp-exceptions.js deleted file mode 100644 index d137882..0000000 --- a/lib/stomp-exceptions.js +++ /dev/null @@ -1,8 +0,0 @@ -var QueueEmpty = exports.QueueEmpty = function() { - this.name = "QueueEmpty"; - this.message = "Queue is Empty"; -}; - -QueueEmpty.prototype.toString = function() { - return this.message; -}; diff --git a/lib/stomp-utils.js b/lib/stomp-utils.js deleted file mode 100644 index cb7b156..0000000 --- a/lib/stomp-utils.js +++ /dev/null @@ -1,42 +0,0 @@ -var exceptions = require('./stomp-exceptions'); -var sys = require('util'); - -var StompLogging = exports.StompLogging = function(should_debug) { - this.should_debug = should_debug; -}; - -StompLogging.prototype.debug = function(message) { - if (this.should_debug) { - console.log("debug: " + message); - } -}; - -StompLogging.prototype.warn = function(message) { - console.log("warn: " + message); -}; - -StompLogging.prototype.error = function(message, die) { - console.log("error: " + message); - if (die) { - process.exit(1); - } -}; - -StompLogging.prototype.die = function(message) { - this.error(message, true); -}; - -var StompUtils = exports.StompUtils = function() { - this.available_utils = []; -}; - -StompUtils.prototype.really_defined = function(var_to_test) { - return !(var_to_test == null || var_to_test == undefined); -}; - -StompUtils.prototype.extend = function(destination, source) { - for (var property in source) { - destination[property] = source[property]; - } - return destination; -}; diff --git a/lib/stomp.js b/lib/stomp.js index 47f58db..1017628 100644 --- a/lib/stomp.js +++ b/lib/stomp.js @@ -1,467 +1,632 @@ -// ## stomp -// -// The `Stomp` module provides you with a client interface for interacting with STOMP messaging brokers -// -// ### stomp.Stomp -// -// An instance of the `Stomp` object. Initialized like so: -// -// var stomp_args = { -// port: 61613, -// host: 'localhost', -// debug: false, -// login: 'guest', -// passcode: 'guest', -// }; -// -// var client = new stomp.Stomp(stomp_args); -// -// If debug is set to true, extra output will be printed to the console. - -// ## Helpers to handle frames, and do parsing - -var events = require('events'), - net = require('net'), - tls = require('tls'), - sys = require('util'), - util = require('util'), - frame = require('./frame'), - stomp_utils = require('./stomp-utils'), - exceptions = require('./stomp-exceptions'), - utils = new stomp_utils.StompUtils(), - log = null; - - -function parse_command(data) { - var command, - this_string = data.toString('utf8', 0, data.length); - command = this_string.split('\n'); - return command[0]; -}; +/** + * @class Stomp + * An instance of the Stomp object for interacting with STOMP messaging brokers + * + * @type {StompJS.Stomp} + */ +var Stomp = module.exports = function() { + "use strict"; + + var errMsgNotInitialized = "not initialized"; + var errMsgNotConnected = "not connected"; + + var events = require('events'); + var Frame = require('./frame.js'); + + var StompUtils = require('./stomp.utils.js'); + var stompUtils = new StompUtils(); + + var net, tls, sys, log; + + var _initialized = false; + var _connected = false; + var options = {}; + var subscribedTo, session, socket, thisPointer; + + /** + * @method Client + * + * Creates a client for the {@link StompJS.Stomp} object. + * + * @param {Object} args arguments needed to create the client + * + * ***Example:*** + * + * args = { + * port: 61613, + * host: 'localhost', + * debug: false, + * login: 'guest', + * passcode: 'guest' + * } + * + * If debug is set to true, extra output will be printed to the console. + * + * var client = new Stomp().Client(args); + * + * @returns {Object} returns StompClient + */ + var Client = function(args) { + net = require('net'); + tls = require('tls'); + sys = require('util'); + + options.port = args.port || 61613; + options.host = args.host || '127.0.0.1'; + options.login = args.login || null; + options.passcode = args.passcode || null; + options.ssl = args.ssl ? true : false; + options.sslValidate = args.ssl_validate ? true : false; + options.sslOptions = args.ssl_options || {}; + options.clientId = args['client-id'] || null; + options.vhost = args.vhost || null; + + var debug = args.debug || false; + var StompLogger = require('./stomp.logger.js'); + log = new StompLogger(debug); + + subscribedTo = {}; + session = null; + socket = null; + + // Stomp is an EventEmitter + stompUtils.extend(this, events.EventEmitter.prototype ); + + // need to save ref to this object for emitWrapper + // TODO: maybe use .call(this) + thisPointer = this; + + _initialized = true; + return this; + }; -function parse_headers(raw_headers) { - var headers = {}, - headers_split = raw_headers.split('\n'); - - for (var i = 0; i < headers_split.length; i++) { - var header = headers_split[i].split(':'); - if (header.length > 1) { - var header_key = header.shift().trim(); - var header_val = header.join(':').trim(); - headers[header_key] = header_val; - continue; - } - headers[header[0].trim()] = header[1].trim(); - } - return headers; -}; + /** + * Returns if the object has been initialized + * + * @returns {Boolean} returns *true* if initialized; otherwise, *false* + */ + var isInitialized = function() { + return _initialized; + }; -function parse_frame(chunk) { - var args = {}, - data = null, - command = null, - headers = null, - body = null, - headers_str = null; + /** + * Returns if the object has been connected + * + * @returns {Boolean} returns *true* if connected; otherwise, *false* + */ + var isConnected = function() { + return _connected; + }; - if (!utils.really_defined(chunk)) { - return null; - } + /** + * Creates sockets used to connect to STOMP broker. Sets the connected flag to *true* upon completion. + * Emits "connected" upon completion. + * + * @returns {void} + */ + var connect = function() { + if(!_initialized) {throw new Error(errMsgNotInitialized);} + + var host = options.host; + var port = options.port; + + if (options.ssl) { + log.debug('Connecting to ' + host + ':' + port + ' using SSL'); + socket = tls.connect(port, host, options.sslOptions, function() { + log.debug('SSL connection complete'); + if (!socket.authorized) { + log.error('SSL is not authorized: '+ socket.authorizationError); + if (options.sslValidate) { + disconnect(); + return; + } + } + setupListeners(); + }); + } + else { + log.debug('Connecting to ' + host + ':' + port); + socket = new net.Socket(); + socket.connect(port, host); + setupListeners(); + } + _connected = true; + }; - command = parse_command(chunk); - data = chunk.slice(command.length + 1, chunk.length); - data = data.toString('utf8', 0, data.length); + /** + * Removes sockets used to connects STOMP broker. Sets the connected flag to *false* upon completion. + * Emits "disconnected" upon completion. + * + * @returns {void} + */ + var disconnect = function() { + if(!_initialized) {throw new Error(errMsgNotInitialized);} - var the_rest = data.split('\n\n'); - headers = parse_headers(the_rest[0]); - body = the_rest.slice(1, the_rest.length); + socket.end(); - if ('content-length' in headers) { - headers['bytes_message'] = true; - } + if (socket.readyState === 'readOnly') { + socket.destroy(); + } - args = { - command: command, - headers: headers, - body: body - } + log.debug('disconnect called'); + _connected = false; + }; - var this_frame = new frame.Frame(); - var return_frame = this_frame.build_frame(args); + /** + * Subscribes to destination (queue or topic). + * Emits "subscribed" upon completion. + * + * @param {Object} headers a header object + * @param {Function} callback a function to call and pass it the message that is dequeued + * @returns {void} + */ + var subscribe = function(headers, callback) { + if(!_initialized) {throw new Error(errMsgNotInitialized);} + if(!_connected) {throw new Error(errMsgNotConnected);} + + var destination = headers.destination; + headers.session = session; + + if (destination instanceof Array) { + for (var i=0; i < destination.length; i++) { + headers.destination = destination[i]; + sendCommand('SUBSCRIBE', headers); + subscribedTo[destination[i]] = { enabled: true, callback: callback }; + log.debug('subscribed to: ' + destination[i] + ' with headers ' + sys.inspect(headers)); + } + } + else { + sendCommand('SUBSCRIBE', headers); + subscribedTo[destination] = { enabled: true, callback: callback }; + log.debug('subscribed to: ' + destination + ' with headers ' + sys.inspect(headers)); + } - return return_frame; -}; + emitWrapper("subscribed", destination); + }; -function _connect(stomp) { - log = stomp.log; - - if (stomp.ssl) { - log.debug('Connecting to ' + stomp.host + ':' + stomp.port + ' using SSL'); - stomp.socket = tls.connect(stomp.port, stomp.host, stomp.ssl_options, function() { - log.debug('SSL connection complete'); - if (!stomp.socket.authorized) { - log.error('SSL is not authorized: '+stomp.socket.authorizationError); - if (stomp.ssl_validate) { - _disconnect(stomp); - return; - } + /** + * Unsubscribes from destination (queue or topic). + * Emits "unsubscribed" upon completion. + * + * @param {Object} headers a header object + * @returns {void} + */ + var unsubscribe = function(headers) { + if(!_initialized) {throw new Error(errMsgNotInitialized);} + if(!_connected) {throw new Error(errMsgNotConnected);} + + var destination = headers.destination; + headers.session = session; + + if (destination instanceof Array) { + for (var i=0; i < destination.length; i++) { + headers.destination = destination[i]; + sendCommand('UNSUBSCRIBE', headers); + subscribedTo[destination[i]].enabled = false; + log.debug('no longer subscribed to: ' + destination[i]); } - _setupListeners(stomp); - }); - } - else { - log.debug('Connecting to ' + stomp.host + ':' + stomp.port); - stomp.socket = new net.Socket(); - stomp.socket.connect(stomp.port, stomp.host); - _setupListeners(stomp); - } -} - -function _setupListeners(stomp) { - function _connected() { - log.debug('Connected to socket'); - var headers = {}; - if (utils.really_defined(stomp.login) && - utils.really_defined(stomp.passcode)) { - headers.login = stomp.login; - headers.passcode = stomp.passcode; - } - if (utils.really_defined(stomp["client-id"])) { - headers["client-id"] = stomp["client-id"]; } - if (utils.really_defined(stomp["vhost"])) { - headers["host"] = stomp["vhost"]; + else { + sendCommand('UNSUBSCRIBE', headers); + subscribedTo[destination].enabled = false; + log.debug('no longer subscribed to: ' + destination); } - stomp_connect(stomp, headers); - } - var socket = stomp.socket; + emitWrapper("unsubscribed", destination); + }; - socket.on('drain', function(data) { - log.debug('draining'); - }); + /** + * Sends a message to the STOMP broker. + * + * @param {Object} headers a header object + * @param {Boolean} wantReceipt boolean to indicate that you wish to get a receipt (set receipt header) + * @returns {Object} returns a `Frame` object representing the message sent + */ + var send = function(headers, wantReceipt) { + var body = headers.body || null; + delete headers.body; + headers.session = session; + return sendCommand('SEND', headers, body, wantReceipt); + }; - var buffer = ''; - socket.on('data', function(chunk) { - buffer += chunk; - var frames = buffer.split('\0\n'); + /** + * Acknowledges a received message. + * + * @param {String} messageId the message id to ack + * @returns {void} + */ + var ack = function(messageId) { + sendCommand('ACK', {'message-id': messageId}); + log.debug('acknowledged message: ' + messageId); + }; - // Temporary fix : NULL,LF is not a guranteed standard, the LF is optional, so lets deal with it. (Rauls) - if (frames.length == 1) { - frames = buffer.split('\0'); - } + /** + * Begins a transaction. + * + * @returns {String} returns a string representing the generated transaction id + */ + var begin = function() { + var transactionId = Math.floor(Math.random()*99999999999).toString(); + sendCommand('BEGIN', {'transaction': transactionId}); + log.debug('begin transaction: ' + transactionId); + return transactionId; + }; - if (frames.length == 1) return; - buffer = frames.pop(); + /** + * Commits a transaction. + * + * @param {String} transactionId the transaction id from {@link Stomp#begin begin} to commit + * @returns {void} + */ + var commit = function(transactionId) { + sendCommand('COMMIT', {'transaction': transactionId}); + log.debug('commit transaction: ' + transactionId); + }; - var parsed_frame = null; - var _frame = null; - while (_frame = frames.shift()) { - parsed_frame = parse_frame(_frame); - stomp.handle_new_frame(parsed_frame); + /** + * Aborts a transaction. + * + * @param {String} transactionId the transaction id from {@link Stomp#begin begin} to abort + * @returns {void} + */ + var abort = function(transactionId) { + sendCommand('ABORT', {'transaction': transactionId}); + log.debug('abort transaction: ' + transactionId); + }; + + /** + * @private + * + * Handles frame based on type. Emits events when needed. + * Emits "message" upon message processed + * Emits "connected" upon connecting + * Emits "receipt" upon message receipt + * Emits "error" upon errors + * + * @param {String} frame the frame to handle + * @returns {void} + */ + var handleNewFrame = function(frame) { + switch (frame.command) { + case "MESSAGE": + if (isMessage(frame)) { + shouldRunMessageCallback(frame); + emitWrapper('message', frame); + } + break; + case "CONNECTED": + log.debug('Connected to STOMP'); + session = frame.headers.session; + emitWrapper('connected'); + break; + case "RECEIPT": + emitWrapper('receipt', frame.headers['receipt-id']); + break; + case "ERROR": + emitWrapper('error', frame); + break; + default: + log.debug("Could not parse command: " + frame.command); } - }); + }; + + /** + * @private + * + * Sets up the listeners for the socket events + * Emits "error" upon errors + * Emits "disconnected" upon socket close + * + * @param {String} frame the frame to handle + * @returns {void} + */ + var setupListeners = function() { + + socket.on('drain', function(data) { + log.debug('draining'); + }); + + var buffer = ''; + socket.on('data', function(chunk) { + buffer += chunk; + var frames = buffer.split('\0\n'); + + // Temporary fix : NULL,LF is not a guaranteed standard, the LF is optional, so lets deal with it. (Rauls) + if (frames.length === 1) { + frames = buffer.split('\0'); + } + + if (frames.length === 1) {return;} + buffer = frames.pop(); + + var pFrame = null; + var moreFrames = true; + while (moreFrames) { + var frame = frames.shift(); + if (!frame) { + moreFrames = false; + } else { + pFrame = parseFrame(frame); + handleNewFrame(pFrame); + } + } + }); - socket.on('end', function() { - log.debug("end"); - }); + socket.on('end', function() { + log.debug("end"); + }); - socket.on('error', function(error) { - log.error(error.stack + 'error name: ' + error.name); - stomp.emit("error", error); - }); + socket.on('error', function(error) { + log.error(error.stack + 'error name: ' + error.name); + emitWrapper("error", error); + }); - socket.on('close', function(error) { - log.debug('disconnected'); - if (error) { - log.error('Disconnected with error: ' + error); + socket.on('close', function(error) { + log.debug('disconnected'); + if (error) { + log.error('Disconnected with error: ' + error); + } + emitWrapper("disconnected", error); + }); + + if (options.ssl) { + stompConnect(); + } else { + socket.on('connect', stompConnect); } - stomp.emit("disconnected", error); - }); - - if (stomp.ssl) { - _connected(); - } else { - socket.on('connect', _connected); - } -}; + }; -function stomp_connect(stomp, headers) { - var _frame = new frame.Frame(), - args = {}, - headers = headers || {}; + /** + * @private + * + * Preps for and starts the STOMP connection + * + * @returns {void} + */ + var stompConnect = function() { + log.debug('Connected to socket'); + var headers = buildHeaders(options); - args['command'] = 'CONNECT'; - args['headers'] = headers; + var args = {}; - var frame_to_send = _frame.build_frame(args); + headers = headers || {}; - send_frame(stomp, frame_to_send); -}; + args.command = 'CONNECT'; + args.headers = headers; -function _disconnect(stomp) { - var socket = stomp.socket; - socket.end(); + var frame = new Frame(); + var newFrame = frame.buildFrame(args); - if (socket.readyState == 'readOnly') { - socket.destroy(); - } + sendFrame(newFrame); + }; - log.debug('disconnect called'); -}; + /** + * @private + * + * Wrapper to emit the events for the STOMP object + * + * @returns {void} + */ + var emitWrapper = function(str, obj){ + thisPointer.emit(str, obj); + }; -function send_command(stomp, command, headers, body, want_receipt) { - var want_receipt = want_receipt || false; + /** + * @private + * + * Returns the process args/options passed into the Client. + * This is only used for testing purposes which is why this public function is marked private. + * + * @returns {Object} returns the process args/options passed into the Client + */ + var getOptions = function(){ + return options; + }; - if (!utils.really_defined(headers)) { - headers = {}; - } + /** + * @private + * + * Helper to parse the command from frame + * + * @param {Object} data the frame as a buffer + * @returns {String} returns the command from the frame + */ + var parseCommand = function(data) { + var dataStr = data.toString('utf8', 0, data.length); + var command = dataStr.split('\n'); + return command[0]; + }; - var args = { - 'command': command, - 'headers': headers, - 'body': body + /** + * @private + * + * Helper to parse the headers from frame + * + * @param {Object} rawHeaders the raw headers from the frame + * @returns {Object} returns the headers from the frame + */ + var parseHeaders = function(rawHeaders) { + var headers = {}; + var headersSplit = rawHeaders.split('\n'); + + for (var i = 0; i < headersSplit.length; i++) { + var header = headersSplit[i].split(':'); + if (header.length > 1) { + var headerKey = header.shift().trim(); + var headerVal = header.join(':').trim(); + headers[headerKey] = headerVal; + continue; + } + headers[header[0].trim()] = header[1].trim(); + } + return headers; }; - var _frame = new frame.Frame(); - var this_frame = _frame.build_frame(args, want_receipt); - send_frame(stomp, this_frame); + /** + * @private + * + * Helper to parse the key data pieces (headers, command, body) from frame + * + * @param {Object} chunk the frame as a buffer + * @returns {Object} returns the frame as a [StompJS.Frame](#!/api/Frame) + */ + var parseFrame = function(chunk) { + if (!stompUtils.isDefined(chunk)) { + return null; + } - return this_frame; -}; + var command = parseCommand(chunk); + var data = chunk.slice(command.length + 1, chunk.length); + data = data.toString('utf8', 0, data.length); -function send_frame(stomp, _frame) { - var socket = stomp.socket; - var frame_str = _frame.as_string(); + var theRest = data.split('\n\n'); + var headers = parseHeaders(theRest[0]); + var body = theRest.slice(1, theRest.length); - if (socket.write(frame_str) === false) { - log.debug('Write buffered'); - } + if ('content-length' in headers) { + headers.bytes_message = true; + } - return true; -}; + var args = { + command: command, + headers: headers, + body: body + }; -// -// ## Stomp - Client API -// -// Takes an argument object -// -function Stomp(args) { - events.EventEmitter.call(this); - - this.port = args['port'] || 61613; - this.host = args['host'] || '127.0.0.1'; - this.debug = args['debug']; - this.login = args['login'] || null; - this.passcode = args['passcode'] || null; - this.log = new stomp_utils.StompLogging(this.debug); - this._subscribed_to = {}; - this.session = null; - this.ssl = args['ssl'] ? true : false; - this.ssl_validate = args['ssl_validate'] ? true : false; - this.ssl_options = args['ssl_options'] || {}; - this['client-id'] = args['client-id'] || null; - if(typeof args.vhost !== 'undefined'){ - this.vhost = args['vhost'] ; - } -}; + var frame = new Frame(); + var newFrame = frame.buildFrame(args); -// ## Stomp is an EventEmitter -util.inherits(Stomp, events.EventEmitter); + return newFrame; + }; -// ## Stomp.connect() -// -// **Begin connection** -// -Stomp.prototype.connect = function() { - _connect(this); -}; + /** + * @private + * + * Helper to build the headers from the client args/options + * + * @param {Object} options the client args/options + * @returns {Object} returns the headers + */ + var buildHeaders = function(options) { + var headers = {}; + if (stompUtils.isDefined(options.login) && + stompUtils.isDefined(options.passcode)) { + headers.login = options.login; + headers.passcode = options.passcode; + } + if (stompUtils.isDefined(options.clientId)) { + headers["client-id"] = options.clientId; + } + if (stompUtils.isDefined(options.vhost)) { + headers.host = options.vhost; + } + return headers; + }; -// ## Stomp.is_a_message(frame) -// -// **Test that `Frame` is a message** -// -// Takes a `Frame` object -// -Stomp.prototype.is_a_message = function(this_frame) { - return (this_frame.headers !== null && utils.really_defined(this_frame.headers['message-id'])) -} - -// ## Stomp.should_run_message_callback -// -// **Handle any registered message callbacks** -// -// Takes a `Frame` object -// -Stomp.prototype.should_run_message_callback = function(this_frame) { - var subscription = this._subscribed_to[this_frame.headers.destination]; - if (this_frame.headers.destination !== null && subscription !== null) { - if (subscription.enabled && subscription.callback !== null && typeof(subscription.callback) == 'function') { - subscription.callback(this_frame.body, this_frame.headers); + /** + * @private + * + * Create the STOMP Frame and send the command to the STOMP broker + * + * @param {String} command the command to send + * @param {Object} headers the headers to send + * @param {Object} body the body to send + * @param {Boolean} wantReceipt boolean to indicate that you wish to get a receipt + * @returns {Object} returns a [StompJS.Frame](#!/api/Frame) + */ + var sendCommand = function(command, headers, body, wantReceipt) { + if (!stompUtils.isDefined(wantReceipt)) { + wantReceipt = false; } - } -} - -// ## Stomp.handle\_new_frame(frame) -// -// **Handle frame based on type. Emit events when needed.** -// -// Takes a `Frame` object -// -Stomp.prototype.handle_new_frame = function(this_frame) { - switch (this_frame.command) { - case "MESSAGE": - if (this.is_a_message(this_frame)) { - this.should_run_message_callback(this_frame); - this.emit('message', this_frame); - } - break; - case "CONNECTED": - log.debug('Connected to STOMP'); - this.session = this_frame.headers['session']; - this.emit('connected'); - break; - case "RECEIPT": - this.emit('receipt', this_frame.headers['receipt-id']); - break; - case "ERROR": - this.emit('error', this_frame); - break; - default: - console.log("Could not parse command: " + this_frame.command); - } -}; -// -// ## Stomp.disconnect() -// -// **Disconnect from STOMP broker** -// -Stomp.prototype.disconnect = function() { - _disconnect(this); -} - -// -// ## Stomp.subscribe(headers, callback) -// -// **Subscribe to destination (queue or topic)** -// -// Takes a header object -// -// Takes a callback function -// -Stomp.prototype.subscribe = function(headers, callback) { - var destination = headers['destination']; - headers['session'] = this.session; - - if (destination instanceof Array) { - for (var i=0; i < destination.length; i++) { - headers.destination = destination[i]; - send_command(this, 'SUBSCRIBE', headers); - this._subscribed_to[destination[i]] = { enabled: true, callback: callback }; + if (!stompUtils.isDefined(headers)) { + headers = {}; } - } - else { - send_command(this, 'SUBSCRIBE', headers); - this._subscribed_to[destination] = { enabled: true, callback: callback }; - } - this.log.debug('subscribed to: ' + destination + ' with headers ' + sys.inspect(headers)); -}; + var args = { + 'command': command, + 'headers': headers, + 'body': body + }; -// -// ## Stomp.unsubscribe(headers) -// -// **Unsubscribe from destination (queue or topic)** -// -// Takes a header object -// -Stomp.prototype.unsubscribe = function(headers) { - var destination = headers['destination']; - headers['session'] = this.session; - - if (destination instanceof Array) { - for (var i=0; i < destination.length; i++) { - headers.destination = destination[i]; - send_command(this, 'UNSUBSCRIBE', headers); - this._subscribed_to[destination[i]].enabled = false; - } - } - else { - send_command(this, 'UNSUBSCRIBE', headers); - this._subscribed_to[destination].enabled = false; - } + var frame = new Frame(); + var newFrame = frame.buildFrame(args, wantReceipt); + sendFrame(newFrame); - this.log.debug('no longer subscribed to: ' + destination); -}; + return newFrame; + }; -// -// ## Stomp.ack(message_id) -// -// **Acknowledge received message** -// -// Takes a string representing the message id to ack -// -Stomp.prototype.ack = function(message_id) { - send_command(this, 'ACK', {'message-id': message_id}); - this.log.debug('acknowledged message: ' + message_id); -}; + /** + * @private + * + * Sends the STOMP frame to the message broker + * + * @param {String} frame the [StompJS.Frame](#!/api/Frame) + * @returns {void} + */ + var sendFrame = function(frame) { + var frameStr = frame.asString(); + + if (frame) { + if (frame.headers) { + if (frame.headers.login) { + log.debug('attempting to login with: ' + frame.headers.login); + log.debug('login passcode: ' + frame.headers.passcode); //TODO remove this + } + } + } -// -// ## Stomp.begin() -// -// **Begin transaction** -// -// Return a string representing the generated transaction id -// -Stomp.prototype.begin = function() { - var transaction_id = Math.floor(Math.random()*99999999999).toString(); - send_command(this, 'BEGIN', {'transaction': transaction_id}); - this.log.debug('begin transaction: ' + transaction_id); - return transaction_id; -}; + if (socket.write(frameStr) === false) { + log.debug('Write buffered'); + } + }; -// -// ## Stomp.commit(transaction_id) -// -// **Commit transaction** -// -// Takes a string representing the transaction id generated by stomp.Stomp.begin() -// -Stomp.prototype.commit = function(transaction_id) { - send_command(this, 'COMMIT', {'transaction': transaction_id}); - this.log.debug('commit transaction: ' + transaction_id); -}; + /** + * @private + * + * Determines if the frame headers have a message id which is assigned only if its a message + * + * @param {String} frame the [StompJS.Frame](#!/api/Frame) + * @returns {Boolean} return *true* if the frame is a message; otherwise, *false* + */ + var isMessage = function(frame) { + return (frame.headers !== null && stompUtils.isDefined(frame.headers['message-id'])); + }; -// -// ## Stomp.abort(transaction_id) -// -// **Abort transaction** -// -// Takes a string representing the transaction id generated by stomp.Stomp.begin() -// -Stomp.prototype.abort = function(transaction_id) { - send_command(this, 'ABORT', {'transaction': transaction_id}); - this.log.debug('abort transaction: ' + transaction_id); -}; + /** + * @private + * + * Determines if the message callback function should be ran and runs it if it should + * + * @param {String} frame the [StompJS.Frame](#!/api/Frame) + * @returns {Boolean} return *true* if the frame is a message; otherwise, *false* + */ + var shouldRunMessageCallback = function(frame) { + var subscription = subscribedTo[frame.headers.destination]; + if (frame.headers.destination !== null && subscription !== null) { + if (subscription.enabled && subscription.callback !== null && typeof(subscription.callback) === 'function') { + subscription.callback(frame.body, frame.headers); + } + } + }; -// -// ## Stomp.send(headers, want_receipt) -// -// **Send MESSAGE to STOMP broker** -// -// Takes a header object (destination is required) -// -// Takes a boolean requesting receipt of the sent message -// -// Returns a `Frame` object representing the message sent -// -Stomp.prototype.send = function(headers, want_receipt) { - var destination = headers['destination'], - body = headers['body'] || null; - delete headers['body']; - headers['session'] = this.session; - return send_command(this, 'SEND', headers, body, want_receipt) + return { + Client: Client, + + isInitialized: isInitialized, + isConnected: isConnected, + connect: connect, + disconnect: disconnect, + subscribe: subscribe, + unsubscribe: unsubscribe, + send: send, + ack: ack, + abort: abort, + commit: commit, + begin: begin, + emitWrapper: emitWrapper, + + // exposed for testing purposes only + getOptions: getOptions + }; }; - -module.exports.Stomp = Stomp; diff --git a/lib/stomp.logger.js b/lib/stomp.logger.js new file mode 100644 index 0000000..b4b1b0a --- /dev/null +++ b/lib/stomp.logger.js @@ -0,0 +1,75 @@ +/** + * @class StompLogger + * An instance of the StompJS logger + * + * @type {StompJS.Logger} + */ +var StompLogger = module.exports = function(outputDebugInit) { + "use strict"; + + var outputDebug = outputDebugInit; + + /** + * Writes a debug message to the console only if the outputDebug flag was also set to true + * + * @param {String} message the message to write to the console + * @returns {void} + */ + var debug = function(message) { + if (outputDebug) { + console.log("debug: " + message); + } + }; + + /** + * Writes a info message to the console + * + * @param {String} message the message to write to the console + * @returns {void} + */ + var info = function(message) { + console.log("info: " + message); + }; + + /** + * Writes a warn message to the console + * + * @param {String} message the message to write to the console + * @returns {void} + */ + var warn = function(message) { + console.log("warn: " + message); + }; + + /** + * Writes a error message to the console and kills the process based on die input + * + * @param {String} message the message to write to the console + * @param {Boolean} die if *true*, then kill the process after writing the message + * @returns {void} + */ + var error = function(message, die) { + console.log("error: " + message); + if (die) { + process.exit(1); + } + }; + + /** + * Writes a error message to the console and then kills the process + * + * @param {String} message the message to write to the console + * @returns {void} + */ + var die = function(message) { + error(message, true); + }; + + return { + debug: debug, + info: info, + warn: warn, + error: error, + die: die + }; +}; diff --git a/lib/stomp.utils.js b/lib/stomp.utils.js new file mode 100644 index 0000000..0db6f8a --- /dev/null +++ b/lib/stomp.utils.js @@ -0,0 +1,42 @@ +/** + * @class StompUtils + * An instance of the StompJS helper utilities + * + * @type {StompJS.StompUtils} + */ +var StompUtils = module.exports = function() { + "use strict"; + + /** + * Returns if the input is defined (not null or undefined) + * + * @param {Object} varToTest the variable to test + * @returns {Boolean} returns *true* if the input is defined; otherwise, *false* + */ + var isDefined = function(varToTest) { + return !(varToTest === null || typeof varToTest === "undefined"); + }; + + /** + * Extends the destination by adding any source properties + * + * @param {Object} destination the object to extend + * @param {Object} source the object to extend from + * @returns {Object} returns the extended object + */ + var extend = function(destination, source) { + if (!isDefined(destination)) {return destination;} + if (!isDefined(source)) {return destination;} + for (var property in source) { + if (source.hasOwnProperty(property)) { + destination[property] = source[property]; + } + } + return destination; + }; + + return { + isDefined: isDefined, + extend: extend + }; +}; diff --git a/package.json b/package.json index 1cb2caa..3abf0c6 100644 --- a/package.json +++ b/package.json @@ -1,22 +1,41 @@ { - "name" : "stomp", - "description": "Implementation of the STOMP protocol in node.js", - "keywords": [ "STOMP", "messaging", "queue", "protocol" ], - "version": "v0.1.2", - "homepage": "https://github.com/benjaminws/stomp-js", - "author": "Benjamin W. Smith ", - "contributors" : [ "rofflwaffls@gmail.com" ], - "main" : "lib/stomp", - "repository" : { - "type" : "git", - "url" : "https://benjaminws@github.com/benjaminws/stomp-js.git" - }, - "directories" : { - "lib": "./lib", - "examples": "./examples" - }, - "licenses" : [{ - "type" : "BSD", - "url" : "https://github.com/benjaminws/stomp-js/raw/master/LICENSE" - }] + "name": "stomp", + "description": "Implementation of the STOMP protocol in node.js", + "keywords": [ + "STOMP", + "messaging", + "queue", + "protocol" + ], + "version": "0.2.0", + "homepage": "https://github.com/benjaminws/stomp-js", + "author": "Benjamin W. Smith ", + "contributors": [ + "rofflwaffls@gmail.com", + "dkhunt27@gmail.com" + ], + "main": "lib/stomp", + "repository": { + "type": "git", + "url": "https://benjaminws@github.com/benjaminws/stomp-js.git" + }, + "directories": { + "lib": "./lib", + "examples": "./examples" + }, + "licenses": [ + { + "type": "BSD", + "url": "https://github.com/benjaminws/stomp-js/raw/master/LICENSE" + } + ], + "dependencies": { + }, + "devDependencies": { + "chai": "1.5.0", + "mocha": "1.8.1", + "injectr": "0.4.0", + "sinon": "1.7.3", + "commander": "2.0.0" + } } diff --git a/test/stomp.Integration.Tests.js b/test/stomp.Integration.Tests.js new file mode 100644 index 0000000..6070c88 --- /dev/null +++ b/test/stomp.Integration.Tests.js @@ -0,0 +1,361 @@ +describe('stomp.Integration.Tests', function(){ + "use strict"; + + var path = require('path'); + var injectr = require('injectr'); + var should = require("chai").should(); + var sinon = require("sinon"); + + var injectrFilePath = path.join(path.join(__dirname, '../lib'),'stomp.js'); + var injectrRequireOverrides = {}; //{ fs: mockfs} would update require('fs') to use mockfs in the injectr file + var injectrContext = {}; // {"__dirname": __dirname, "Buffer": Buffer} would update those context variables + + // TODO figure out how to delete this queue after test + var testQueue = "/queue/testQ"; + + var Stomp,stompClient,eventSpy; + + beforeEach(function(){ + Stomp = injectr(injectrFilePath, injectrRequireOverrides, injectrContext); + eventSpy = sinon.spy(); + }); + + describe('#Client() constructor', function() { + var args; + beforeEach(function(){ + stompClient = new Stomp(); + }); + describe('given empty args,', function(){ + beforeEach(function(){ + args = {}; + }); + describe('when called', function(){ + beforeEach(function(){ + stompClient.isInitialized().should.equal(false); + stompClient = stompClient.Client(args); + stompClient.isInitialized().should.equal(true); + }); + it('then should use defaults', function(){ + var options = stompClient.getOptions(); + + options.port.should.equal(61613); + options.host.should.equal('127.0.0.1'); + should.not.exist(options.login); + should.not.exist(options.passcode); + options.ssl.should.equal(false); + options.sslValidate.should.equal(false); + should.exist(options.sslOptions); + should.not.exist(options.clientId); + should.not.exist(options.vhost); + }); + }); + }); + describe('given valid args,', function(){ + beforeEach(function(){ + args = { + port: 123, + host: "local", + debug: false, + login: "blah", + passcode: "secret", + ssl: true, + ssl_validate: true, + ssl_options: "abc", + "client-id": "def", + vhost: "ghi" + }; + }); + describe('when called', function(){ + beforeEach(function(){ + stompClient.isInitialized().should.equal(false); + stompClient = stompClient.Client(args); + stompClient.isInitialized().should.equal(true); + }); + + it('then should use inputs and be initialized', function(){ + var options = stompClient.getOptions(); + + options.port.should.equal(123); + options.host.should.equal('local'); + options.login.should.equal("blah"); + options.passcode.should.equal("secret"); + options.ssl.should.equal(true); + options.sslValidate.should.equal(true); + options.sslOptions.should.equal("abc"); + options.clientId.should.equal("def"); + options.vhost.should.equal("ghi"); + + }); + }); + }); + }); + + describe('#connect() and #disconnect()', function() { + describe('given not initialized', function(){ + beforeEach(function(){ + stompClient = new Stomp(); + }); + describe('when connect called', function(){ + var errCaught, errThrown, errReturned; + beforeEach(function(){ + try { + stompClient.isInitialized().should.equal(false); + stompClient.connect(); + errThrown = false; + } catch (err) { + errThrown = true; + errCaught = err; + } + }); + + it('then should error', function(){ + shouldThrowError(errThrown, errCaught, errReturned, 'not initialized'); + }); + }); + describe('when disconnect called', function(){ + var errCaught, errThrown, errReturned; + beforeEach(function(){ + try { + try { + stompClient.isInitialized().should.equal(false); + stompClient.disconnect(); + errThrown = false; + } catch (err) { + errThrown = true; + errCaught = err; + } + } catch (err) { + errThrown = true; + errCaught = err; + } + }); + + it('then should error', function(){ + shouldThrowError(errThrown, errCaught, errReturned, 'not initialized'); + }); + }); + }); + describe('given initialized', function(){ + beforeEach(function(){ + var args = {port:61613, host:'localhost', debug:false, login:'guest', passcode:'guest'}; + stompClient = new Stomp().Client(args); + }); + describe('when connect/disconnect called', function(){ + var errCaught, errThrown, errReturned; + beforeEach(function(done){ + try { + stompClient.isConnected().should.equal(false); + stompClient.on('connected',function(data){ + stompClient.isConnected().should.equal(true); + done(); + }); + stompClient.connect(); + errThrown = false; + } catch (err) { + errThrown = true; + errCaught = err; + } + }); + afterEach(function(done){ + stompClient.isConnected().should.equal(true); + stompClient.on('disconnected',function(data){ + stompClient.isConnected().should.equal(false); + done(); + }); + stompClient.disconnect(); + }); + it('then should emit connected/disconnected without error', function(){ + shouldReturnNoErrors(errThrown, errCaught, errReturned); + + // emit checking checked in before/after + }); + }); + }); + }); + + describe('#subscribe() and #unsubscribe()', function() { + + describe('given not initialized', function(){ + beforeEach(function(){ + stompClient = new Stomp(); + }); + describe('when subscribe called', function(){ + var errCaught, errThrown, resultsReturned, errReturned; + beforeEach(function(){ + try { + try { + stompClient.subscribe(); + errThrown = false; + } catch (err) { + errThrown = true; + errCaught = err; + } + } catch (err) { + errThrown = true; + errCaught = err; + } + }); + + it('then should error', function(){ + shouldThrowError(errThrown, errCaught, errReturned, 'not initialized'); + }); + }); + describe('when unsubscribe called', function(){ + var errCaught, errThrown, errReturned; + beforeEach(function(){ + try { + try { + stompClient.unsubscribe(); + errThrown = false; + } catch (err) { + errThrown = true; + errCaught = err; + } + } catch (err) { + errThrown = true; + errCaught = err; + } + }); + + it('then should error', function(){ + shouldThrowError(errThrown, errCaught, errReturned, 'not initialized'); + }); + }); + }); + describe('given initialized', function(){ + beforeEach(function(){ + var args = {port:61613, host:'localhost', debug:false, login:'guest', passcode:'guest'}; + stompClient = new Stomp().Client(args); + }); + describe('given not connected', function(){ + beforeEach(function(){ + // do nothing so its not connected + }); + describe('when subscribe called', function(){ + var errCaught, errThrown, errReturned; + beforeEach(function(){ + try { + try { + stompClient.on('subscribed', eventSpy); + stompClient.subscribe(); + errThrown = false; + } catch (err) { + errThrown = true; + errCaught = err; + } + } catch (err) { + errThrown = true; + errCaught = err; + } + }); + + it('then should error', function(){ + shouldThrowError(errThrown, errCaught, errReturned, 'not connected'); + eventSpy.called.should.equal(false, 'event should not fire'); + }); + }); + describe('when unsubscribe called', function(){ + var errCaught, errThrown, resultsReturned, errReturned; + beforeEach(function(){ + try { + try { + stompClient.on('unsubscribed', eventSpy); + stompClient.unsubscribe(); + errThrown = false; + } catch (err) { + errThrown = true; + errCaught = err; + } + } catch (err) { + errThrown = true; + errCaught = err; + } + }); + + it('then should error', function(){ + shouldThrowError(errThrown, errCaught, errReturned, 'not connected'); + eventSpy.called.should.equal(false, 'event should not fire'); + }); + }); + }); + describe('given connected', function(){ + beforeEach(function(done){ + stompClient.on('connected', function(){ + done(); + }); + stompClient.connect(); + }); + afterEach(function(done){ + stompClient.on('disconnected', function(){ + done(); + }); + stompClient.disconnect(); + }); + describe('given subscribe args', function(){ + var subscribeArgs; + beforeEach(function(){ + subscribeArgs = {destination: testQueue}; + }); + describe('when subscribe/unsubscribe called', function(){ + var errCaught, errThrown, errReturned; + beforeEach(function(done){ + try { + stompClient.on('subscribed',function(data){ + errThrown = false; + done(); + }); + stompClient.subscribe(subscribeArgs); + } catch (err) { + errThrown = true; + errCaught = err; + done(); + } + }); + afterEach(function(done){ + stompClient.on('unsubscribed',function(data){ + done(); + }); + stompClient.unsubscribe(subscribeArgs); + }); + it('then should emit connected/disconnected without error', function(){ + shouldReturnNoErrors(errThrown, errCaught, errReturned); + + // emit checking checked in before/after + }); + }); + }); + }); + }); + }); + + describe.skip("TODO #send(), #ack()", function(){}); + describe.skip("TODO #begin(), #commit(), #abort()", function(){}); + + var shouldReturnNoErrors = function(errThrown, errCaught, errReturned) { + if (errThrown) {console.error('errCaught',errCaught);} //output the error for better debugging purposes since it should not exist + if (errReturned) {console.error('errReturned',errReturned);} //output the error for better debugging purposes since it should not exist + errThrown.should.equal(false, 'errThrown.should.equal(false)'); + should.not.exist(errCaught, 'should.not.exist(errCaught)'); + should.not.exist(errReturned, 'should.not.exist(errReturned)'); + return; + }; + + var shouldThrowError = function(errThrown, errCaught, errReturned, expectedErrMsg){ + if (errReturned) {console.error(errReturned);} //output the error for better debugging purposes since it should not exist + errThrown.should.equal(true, 'errThrown.should.equal(true)'); + should.exist(errCaught, 'should.exist(errCaught)'); + should.not.exist(errReturned, 'should.not.exist(errReturned)'); + should.exist(errCaught.message,'should.exist(errCaught.message)'); + errCaught.message.should.contain(expectedErrMsg, 'errCaught.message.should.contain(expectedErrMsg)'); + return; + }; + + var shouldThrowSomeError = function(errThrown, errCaught, errReturned){ + if (errReturned) {console.error(errReturned);} //output the error for better debugging purposes since it should not exist + errThrown.should.equal(true, 'errThrown.should.equal(true)'); + should.exist(errCaught, 'should.exist(errCaught)'); + should.exist(errCaught.message,'should.exist(errCaught.message)'); + return; + }; +}); + diff --git a/test/stomp.utils.Unit.Tests.js b/test/stomp.utils.Unit.Tests.js new file mode 100644 index 0000000..e260f72 --- /dev/null +++ b/test/stomp.utils.Unit.Tests.js @@ -0,0 +1,357 @@ +describe('stomp.utils.Unit.Tests', function(){ + "use strict"; + + var path = require('path'); + var injectr = require('injectr'); + var should = require("chai").should(); + var sinon = require("sinon"); + + var injectrFilePath = path.join(path.join(__dirname, '../lib'),'stomp.utils.js'); + var injectrRequireOverrides = {}; //{ fs: mockfs} would update require('fs') to use mockfs in the injectr file + var injectrContext = {}; // {"__dirname": __dirname, "Buffer": Buffer} would update those context variables + + + var StompUtils; + + beforeEach(function(){ + StompUtils = injectr(injectrFilePath, injectrRequireOverrides, injectrContext); + }); + + describe('#isDefined()', function() { + var functionToTest, nothing, value; + beforeEach(function(){ + var stompUtils = new StompUtils(); + functionToTest = function(value) { + return stompUtils.isDefined(value); + }; + }); + describe('given typeof undefined;', function() { + beforeEach(function(){ + value = nothing; + }); + + describe('when called', function() { + var resultsReturned; + beforeEach(function(){ + resultsReturned = functionToTest(value); + }); + it('then should return false', function(){ + resultsReturned.should.equal(false); + }); + }); + }); + + describe('given null;', function() { + beforeEach(function(){ + value = null; + }); + + describe('when called', function() { + var resultsReturned; + beforeEach(function(){ + resultsReturned = functionToTest(value); + }); + it('then should return false', function(){ + resultsReturned.should.equal(false); + }); + }); + }); + describe('given empty string;', function() { + beforeEach(function(){ + value = ''; + }); + + describe('when called', function() { + var resultsReturned; + beforeEach(function(){ + resultsReturned = functionToTest(value); + }); + it('then should return true', function(){ + resultsReturned.should.equal(true); + }); + }); + }); + + describe('given 0;', function() { + beforeEach(function(){ + value = 0; + }); + + describe('when called', function() { + var resultsReturned; + beforeEach(function(){ + resultsReturned = functionToTest(value); + }); + it('then should return true', function(){ + resultsReturned.should.equal(true); + }); + }); + }); + + describe('given false;', function() { + beforeEach(function(){ + value = false; + }); + + describe('when called', function() { + var resultsReturned; + beforeEach(function(){ + resultsReturned = functionToTest(value); + }); + it('then should return true', function(){ + resultsReturned.should.equal(true); + }); + }); + }); + + describe('given an empty object;', function() { + beforeEach(function(){ + value = {}; + }); + + describe('when called', function() { + var resultsReturned; + beforeEach(function(){ + resultsReturned = functionToTest(value); + }); + it('then should return true', function(){ + resultsReturned.should.equal(true); + }); + }); + }); + + describe('given an empty array;', function() { + beforeEach(function(){ + value = []; + }); + + describe('when called', function() { + var resultsReturned; + beforeEach(function(){ + resultsReturned = functionToTest(value); + }); + it('then should return true', function(){ + resultsReturned.should.equal(true); + }); + }); + }); + + describe('given a string;', function() { + beforeEach(function(){ + value = 'abc'; + }); + + describe('when called', function() { + var resultsReturned; + beforeEach(function(){ + resultsReturned = functionToTest(value); + }); + it('then should return true', function(){ + resultsReturned.should.equal(true); + }); + }); + }); + + describe('given a integer;', function() { + beforeEach(function(){ + value = 123; + }); + + describe('when called', function() { + var resultsReturned; + beforeEach(function(){ + resultsReturned = functionToTest(value); + }); + it('then should return true', function(){ + resultsReturned.should.equal(true); + }); + }); + }); + + describe('given a populated object;', function() { + beforeEach(function(){ + value = {"abc":123}; + }); + + describe('when called', function() { + var resultsReturned; + beforeEach(function(){ + resultsReturned = functionToTest(value); + }); + it('then should return true', function(){ + resultsReturned.should.equal(true); + }); + }); + }); + + describe('given a populated array;', function() { + beforeEach(function(){ + value = [{"abc":123}]; + }); + + describe('when called', function() { + var resultsReturned; + beforeEach(function(){ + resultsReturned = functionToTest(value); + }); + it('then should return true', function(){ + resultsReturned.should.equal(true); + }); + }); + }); + + describe('given a date object;', function() { + beforeEach(function(){ + value = new Date(); + }); + + describe('when called', function() { + var resultsReturned; + beforeEach(function(){ + resultsReturned = functionToTest(value); + }); + it('then should return true', function(){ + resultsReturned.should.equal(true); + }); + }); + }); + }); + + describe('#extend', function() { + var stompUtils; + beforeEach(function(){ + stompUtils = new StompUtils(); + }); + describe('given undefined destination,', function(){ + var destination; + beforeEach(function(){ + // do nothing + }); + describe('given undefined source,', function(){ + var source; + beforeEach(function(){ + // do nothing + }); + describe('when called', function(){ + var results; + beforeEach(function(){ + results = stompUtils.extend(destination, source); + }); + + it('then should return nothing', function(){ + should.not.exist(results); + }); + }); + }); + describe('given defined source,', function(){ + var source; + beforeEach(function(){ + source = {abc:123, def:456}; + }); + describe('when called', function(){ + var results; + beforeEach(function(){ + results = stompUtils.extend(destination, source); + }); + + it('then should return nothing', function(){ + should.not.exist(results); + }); + }); + }); + }); + describe('given empty destination,', function(){ + var destination; + beforeEach(function(){ + destination = {}; + }); + describe('given undefined source,', function(){ + var source; + beforeEach(function(){ + // do nothing + }); + describe('when called', function(){ + var results; + beforeEach(function(){ + results = stompUtils.extend(destination, source); + }); + + it('then should return orig object', function(){ + should.exist(results); + }); + }); + }); + describe('given defined source,', function(){ + var source; + beforeEach(function(){ + source = {abc:123, def:456}; + }); + describe('when called', function(){ + var results; + beforeEach(function(){ + results = stompUtils.extend(destination, source); + }); + + it('then should return extended obj', function(){ + should.exist(results); + should.exist(results.abc); + should.exist(results.def); + results.abc.should.equal(123); + results.def.should.equal(456); + }); + }); + }); + }); + describe('given defined destination,', function(){ + var destination; + beforeEach(function(){ + destination = {a:1, b:2}; + }); + describe('given undefined source,', function(){ + var source; + beforeEach(function(){ + // do nothing + }); + describe('when called', function(){ + var results; + beforeEach(function(){ + results = stompUtils.extend(destination, source); + }); + + it('then should return orig object', function(){ + should.exist(results); + should.exist(results.a); + should.exist(results.b); + results.a.should.equal(1); + results.b.should.equal(2); + }); + }); + }); + describe('given defined source,', function(){ + var source; + beforeEach(function(){ + source = {abc:123, def:456}; + }); + describe('when called', function(){ + var results; + beforeEach(function(){ + results = stompUtils.extend(destination, source); + }); + + it('then should return extended obj', function(){ + should.exist(results); + should.exist(results.a); + should.exist(results.b); + results.a.should.equal(1); + results.b.should.equal(2); + should.exist(results.abc); + should.exist(results.def); + results.abc.should.equal(123); + results.def.should.equal(456); + }); + }); + }); + }); + }); +}); + diff --git a/test/test-frame.js b/test/test-frame.js deleted file mode 100644 index 6005852..0000000 --- a/test/test-frame.js +++ /dev/null @@ -1,65 +0,0 @@ -var stomp = require("stomp"); -var testCase = require("nodeunit/nodeunit").testCase; - -module.exports['initialize'] = testCase({ - setUp: function (callback) { - var stomp_args = { - port: 61613, - host: 'localhost', - debug: false, - login: 'guest', - passcode: 'guest', - }; - - this.client = new stomp.Stomp(stomp_args); - callback(); - }, - tearDown: function (callback) { - callback(); - }, - 'port is 61613': function(test) { - test.equal(this.client.port, 61613); - test.done(); - }, - 'host is localhost': function(test) { - test.equal(this.client.host, 'localhost'); - test.done(); - }, - 'debug is false': function(test) { - test.equal(this.client.debug, false); - test.done(); - }, - 'login is guest': function(test) { - test.equal(this.client.login, 'guest'); - test.done(); - }, - 'passcode is guest': function(test) { - test.equal(this.client.passcode, 'guest'); - test.done(); - } -}); -module.exports['connect'] = testCase({ - setUp: function (callback) { - var stomp_args = { - port: 61613, - host: 'localhost', - debug: false, - login: 'guest', - passcode: 'guest', - }; - this.client = new stomp.Stomp(stomp_args); - this._connect = this.client.connect; - this.client.connect = function() { - return true; - }; - callback(); - }, - tearDown: function (callback) { - this.client.connect = this._connect; - callback(); - }, - 'should call connect': function(test) { - test.ok(this.client.connect()); - test.done(); - } -});

    frame.js

    frame

    - -

    The Frame module provides an object representation of a Stomp frame.

    - -

    frame.Frame

    - -

    An instance of the Frame object.

    - -
    var frame = new frame.Frame();
    - -

    frame.Frame.build_frame()

    - -

    Build a frame object from an object of arguments.

    - -
    var args = {
    -    command: '',
    -    headers: {},
    -    body: ''
    -};
    -
    -this_frame = frame.build_frame(args);

    Frame - Object representation of a STOMP frame

    function Frame() {
    -    this.command = null;
    -    this.headers = null;
    -    this.body = null;
    -};

    Frame.buildframe(args, wantreceipt)

    - -

    Build frame based on arguments provided

    - -

    Takes arguments object needed to build frame (command, headers, body?)

    - -

    Takes boolean to indicate that you wish to get a receipt (set receipt header)

    - -

    Returns an object representing a frame

    Frame.prototype.build_frame = function(args, want_receipt) {
    -    var receipt_stamp = null;
    -
    -    this.command = args['command'];
    -    this.headers = args['headers'];
    -    this.body = args['body'];
    -
    -    if (want_receipt) {
    -        var _receipt = '';
    -        receipt_stamp = Math.floor(Math.random()*99999999999).toString();
    -        if (this.headers['session'] != undefined) {
    -            _receipt = receipt_stamp + "-" + this.headers['session'];
    -        }
    -        else {
    -            _receipt = receipt_stamp;
    -        }
    -        this.headers['receipt'] = _receipt;
    -    }
    -    return this;
    -};

    Frame.as_string()

    - -

    String representation of Frame object

    - -

    Returns Frame as string

    Frame.prototype.as_string = function() {
    -    var header_strs = [],
    -        frame = "",
    -        command = this.command,
    -        headers = this.headers,
    -        body = this.body;
    -
    -    for (var header in headers) {
    -       header_strs.push(header + ':' + headers[header]);
    -    }
    -
    -    frame += command + "\n";
    -    frame += header_strs.join("\n");
    -    frame += "\n\n";
    -
    -    if(body) {
    -        frame += body;
    -    }
    -
    -    frame += '\x00';
    -
    -    return frame;
    -};
    -
    -module.exports.Frame = Frame;
    -
    -